Add comprehensive development roadmap via GitHub Issues

Created 10 detailed GitHub issues covering:
- Project activation and management UI (#1-2)
- Worker node coordination and visualization (#3-4)
- Automated GitHub repository scanning (#5)
- Intelligent model-to-issue matching (#6)
- Multi-model task execution system (#7)
- N8N workflow integration (#8)
- Hive-Bzzz P2P bridge (#9)
- Peer assistance protocol (#10)

Each issue includes detailed specifications, acceptance criteria,
technical implementation notes, and dependency mapping.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-07-12 19:41:01 +10:00
parent 9a6a06da89
commit e89f2f4b7b
4980 changed files with 1501266 additions and 57 deletions

51
frontend/node_modules/storybook/README.md generated vendored Normal file
View File

@@ -0,0 +1,51 @@
# Storybook Core
The `@storybook/core` package is the core of Storybook. It is responsible for the following:
- the main UI of storybook
- the UI used by addons
- the API used by addons
- the API used by the CLI
- the API used by the server
- prebundled code used by the browser
- static assets used by the browser
- utilities for CSF, MDX & Docs
## Private package
This package is not intended to be used by anyone but storybook internally.
Even though this is where all of the code is located, it is NOT to be the entry point when using functionality within!
Consumers of the code should import like so:
```ts
import { addons } from 'storybook/manager-api';
```
Importing from `@storybook/core` is explicitly NOT supported; it WILL break in a future version of storybook, very likely in a non-major version bump.
# For maintainers
## When to use `@storybook/core`
In the following packages you should import from `@storybook/core` (and ONLY from `@storybook/core`):
- `@storybook/core`
- `@storybook/codemod`
To prevent cyclical dependencies, these packages cannot depend on the `storybook` package.
## When to use `storybook/internal`
In every other package you should import from `storybook/internal` (and ONLY from `storybook/internal`).
The heuristic is simple:
> If you see a peerDependency on `storybook` in the `package.json` of the package you are working on, you should import from `storybook/internal`.
## The 1 exception: the `storybook` package itself
The sole exception is the `storybook` package itself.
Obviously, the `storybook` package cannot depend on itself, so it must import from `@storybook/core`.

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svgjs="http://svgjs.com/svgjs" xmlns:xlink="http://www.w3.org/1999/xlink" width="164" height="164" version="1.1"><svg xmlns="http://www.w3.org/2000/svg" width="164" height="164" fill="none" viewBox="0 0 164 164"><path fill="#FF4785" d="M22.467 147.762 17.5 15.402a8.062 8.062 0 0 1 7.553-8.35L137.637.016a8.061 8.061 0 0 1 8.565 8.047v144.23a8.063 8.063 0 0 1-8.424 8.054l-107.615-4.833a8.062 8.062 0 0 1-7.695-7.752Z"/><path fill="#fff" fill-rule="evenodd" d="m128.785.57-15.495.968-.755 18.172a1.203 1.203 0 0 0 1.928 1.008l7.06-5.354 5.962 4.697a1.202 1.202 0 0 0 1.946-.987L128.785.569Zm-12.059 60.856c-2.836 2.203-23.965 3.707-23.965.57.447-11.969-4.912-12.494-7.889-12.494-2.828 0-7.59.855-7.59 7.267 0 6.534 6.96 10.223 15.13 14.553 11.607 6.15 25.654 13.594 25.654 32.326 0 17.953-14.588 27.871-33.194 27.871-19.201 0-35.981-7.769-34.086-34.702.744-3.163 25.156-2.411 25.156 0-.298 11.114 2.232 14.383 8.633 14.383 4.912 0 7.144-2.708 7.144-7.267 0-6.9-7.252-10.973-15.595-15.657C64.827 81.933 51.53 74.468 51.53 57.34c0-17.098 11.76-28.497 32.747-28.497 20.988 0 32.449 11.224 32.449 32.584Z" clip-rule="evenodd"/></svg><style>@media (prefers-color-scheme:light){:root{filter:none}}</style></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
frontend/node_modules/storybook/assets/docs/hero.gif generated vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@@ -0,0 +1,6 @@
{
"compilerOptions": {
"jsx": "react",
"jsxImportSource": "react"
}
}

View File

@@ -0,0 +1,119 @@
<div class="sb-preparing-story sb-wrapper">
<div class="sb-loader"></div>
</div>
<div class="sb-preparing-docs sb-wrapper">
<div class="sb-previewBlock">
<div class="sb-previewBlock_header">
<div class="sb-previewBlock_icon"></div>
<div class="sb-previewBlock_icon"></div>
<div class="sb-previewBlock_icon"></div>
<div class="sb-previewBlock_icon"></div>
</div>
<div class="sb-previewBlock_body">
<div class="sb-loader"></div>
</div>
</div>
<table aria-hidden="true" class="sb-argstableBlock">
<thead class="sb-argstableBlock-head">
<tr>
<th><span>Name</span></th>
<th><span>Description</span></th>
<th><span>Default</span></th>
<th><span>Control </span></th>
</tr>
</thead>
<tbody class="sb-argstableBlock-body">
<tr>
<td><span>propertyName</span><span title="Required">*</span></td>
<td>
<div><span>This is a short description</span></div>
<div class="sb-argstableBlock-summary">
<div><span class="sb-argstableBlock-code">summary</span></div>
</div>
</td>
<td>
<div><span class="sb-argstableBlock-code">defaultValue</span></div>
</td>
<td><button>Set string</button></td>
</tr>
<tr>
<td><span>propertyName</span><span>*</span></td>
<td>
<div><span>This is a short description</span></div>
<div class="sb-argstableBlock-summary">
<div><span class="sb-argstableBlock-code">summary</span></div>
</div>
</td>
<td>
<div><span class="sb-argstableBlock-code">defaultValue</span></div>
</td>
<td><button>Set string</button></td>
</tr>
<tr>
<td><span>propertyName</span><span>*</span></td>
<td>
<div><span>This is a short description</span></div>
<div class="sb-argstableBlock-summary">
<div><span class="sb-argstableBlock-code">summary</span></div>
</div>
</td>
<td>
<div><span class="sb-argstableBlock-code">defaultValue</span></div>
</td>
<td><button>Set string</button></td>
</tr>
</tbody>
</table>
</div>
<div class="sb-nopreview sb-wrapper">
<div class="sb-nopreview_main">
<h1 class="sb-nopreview_heading sb-heading">No Preview</h1>
<p>Sorry, but you either have no stories or none are selected somehow.</p>
<ul>
<li>Please check the Storybook config.</li>
<li>Try reloading the page.</li>
</ul>
<p>
If the problem persists, check the browser console, or the terminal you've run Storybook from.
</p>
</div>
</div>
<div class="sb-errordisplay sb-wrapper">
<div class="sb-errordisplay_main">
<h1 id="error-message"></h1>
<p>
The component failed to render properly, likely due to a configuration issue in Storybook.
Here are some common causes and how you can address them:
</p>
<ol>
<li>
<strong>Missing Context/Providers</strong>: You can use decorators to supply specific
contexts or providers, which are sometimes necessary for components to render correctly. For
detailed instructions on using decorators, please visit the
<a href="https://storybook.js.org/docs/writing-stories/decorators"
>Decorators documentation</a
>.
</li>
<li>
<strong>Misconfigured Webpack or Vite</strong>: Verify that Storybook picks up all necessary
settings for loaders, plugins, and other relevant parameters. You can find step-by-step
guides for configuring
<a href="https://storybook.js.org/docs/builders/webpack">Webpack</a> or
<a href="https://storybook.js.org/docs/builders/vite">Vite</a>
with Storybook.
</li>
<li>
<strong>Missing Environment Variables</strong>: Your Storybook may require specific
environment variables to function as intended. You can set up custom environment variables
as outlined in the
<a href="https://storybook.js.org/docs/configure/environment-variables"
>Environment Variables documentation</a
>.
</li>
</ol>
<pre class="sb-errordisplay_code"><code id="error-stack"></code></pre>
</div>
</div>

View File

@@ -0,0 +1,471 @@
<base target="_parent" />
<style>
/* While we aren't showing the main block yet, but still preparing, we want everything the user has rendered, which may or may not be in #storybook-root, to be display none */
.sb-show-preparing-story:not(.sb-show-main) > :not(.sb-preparing-story) {
display: none;
}
.sb-show-preparing-docs:not(.sb-show-main) > :not(.sb-preparing-docs) {
display: none;
}
/* Hide our own blocks when we aren't supposed to be showing them */
:not(.sb-show-preparing-story) > .sb-preparing-story,
:not(.sb-show-preparing-docs) > .sb-preparing-docs,
:not(.sb-show-nopreview) > .sb-nopreview,
:not(.sb-show-errordisplay) > .sb-errordisplay {
display: none;
}
.sb-show-main.sb-main-centered {
margin: 0;
display: flex;
align-items: center;
min-height: 100vh;
}
.sb-show-main.sb-main-centered #storybook-root {
box-sizing: border-box;
margin: auto;
padding: 1rem;
max-height: 100%;
/* Hack for centering correctly in IE11 */
}
/* Vertical centering fix for IE11 */
@media screen and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.sb-show-main.sb-main-centered:after {
content: '';
min-height: inherit;
font-size: 0;
}
}
.sb-show-main.sb-main-fullscreen {
margin: 0;
padding: 0;
display: block;
}
.sb-show-main.sb-main-padded {
margin: 0;
padding: 1rem;
display: block;
box-sizing: border-box;
}
.sb-wrapper {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
box-sizing: border-box;
padding: 40px;
font-family:
'Nunito Sans',
-apple-system,
'.SFNSText-Regular',
'San Francisco',
BlinkMacSystemFont,
'Segoe UI',
'Helvetica Neue',
Helvetica,
Arial,
sans-serif;
-webkit-font-smoothing: antialiased;
overflow: auto;
}
@media (max-width: 700px) {
.sb-wrapper {
padding: 20px;
}
}
@media (max-width: 500px) {
.sb-wrapper {
padding: 10px;
}
}
.sb-heading {
font-size: 14px;
font-weight: 600;
letter-spacing: 0.2px;
margin: 10px 0;
padding-right: 25px;
}
.sb-nopreview {
display: flex;
align-content: center;
justify-content: center;
box-sizing: border-box;
}
.sb-nopreview_main {
margin: auto;
padding: 30px;
border-radius: 10px;
background: rgba(0, 0, 0, 0.03);
}
.sb-nopreview_heading {
text-align: center;
}
.sb-errordisplay {
background: #f6f9fc;
color: black;
z-index: 999999;
width: 100vw;
min-height: 100vh;
box-sizing: border-box;
& ol {
padding-left: 18px;
margin: 0;
}
& h1 {
font-family: Nunito Sans;
font-size: 22px;
font-weight: 400;
line-height: 30px;
font-weight: normal;
margin: 0;
&::before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: #ff4400;
border-radius: 50%;
margin-right: 8px;
}
}
& p,
& ol {
font-family: Nunito Sans;
font-size: 14px;
font-weight: 400;
line-height: 19px;
margin: 0;
}
& li + li {
margin: 0;
padding: 0;
padding-top: 12px;
}
& a {
color: currentColor;
}
}
.sb-errordisplay_main {
margin: auto;
padding: 24px;
display: flex;
box-sizing: border-box;
flex-direction: column;
min-height: 100%;
width: 100%;
border-radius: 6px;
background: white;
border: 1px solid #ff0000;
box-shadow: 0 0 64px rgba(0, 0, 0, 0.1);
gap: 24px;
}
.sb-errordisplay_code {
padding: 10px;
flex: 1;
background: #242424;
color: #c6c6c6;
box-sizing: border-box;
font-size: 14px;
font-weight: 400;
line-height: 19px;
border-radius: 4px;
font-family:
'Operator Mono', 'Fira Code Retina', 'Fira Code', 'FiraCode-Retina', 'Andale Mono',
'Lucida Console', Consolas, Monaco, monospace;
margin: 0;
overflow: auto;
}
.sb-errordisplay pre {
white-space: pre-wrap;
white-space: revert;
}
@-webkit-keyframes sb-rotate360 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes sb-rotate360 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@-webkit-keyframes sb-glow {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.4;
}
}
@keyframes sb-glow {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.4;
}
}
/* We display the preparing loaders *over* the rendering story */
.sb-preparing-story,
.sb-preparing-docs {
background-color: white;
/* Maximum possible z-index. It would be better to use stacking contexts to ensure it's always
on top, but this isn't possible as it would require making CSS changes that could affect user code */
z-index: 2147483647;
}
.sb-loader {
-webkit-animation: sb-rotate360 0.7s linear infinite;
animation: sb-rotate360 0.7s linear infinite;
border-color: rgba(97, 97, 97, 0.29);
border-radius: 50%;
border-style: solid;
border-top-color: #646464;
border-width: 2px;
display: inline-block;
height: 32px;
left: 50%;
margin-left: -16px;
margin-top: -16px;
mix-blend-mode: difference;
overflow: hidden;
position: absolute;
top: 50%;
transition: all 200ms ease-out;
vertical-align: top;
width: 32px;
z-index: 4;
}
.sb-previewBlock {
background: #fff;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
box-shadow: rgba(0, 0, 0, 0.1) 0 1px 3px 0;
margin: 25px auto 40px;
max-width: 600px;
}
.sb-previewBlock_header {
align-items: center;
box-shadow: rgba(0, 0, 0, 0.1) 0 -1px 0 0 inset;
display: flex;
gap: 14px;
height: 40px;
padding: 0 12px;
}
.sb-previewBlock_icon {
-webkit-animation: sb-glow 1.5s ease-in-out infinite;
animation: sb-glow 1.5s ease-in-out infinite;
background: #e6e6e6;
height: 14px;
width: 14px;
}
.sb-previewBlock_icon:last-child {
margin-left: auto;
}
.sb-previewBlock_body {
-webkit-animation: sb-glow 1.5s ease-in-out infinite;
animation: sb-glow 1.5s ease-in-out infinite;
height: 182px;
position: relative;
}
.sb-argstableBlock {
border-collapse: collapse;
border-spacing: 0;
font-size: 13px;
line-height: 20px;
margin: 25px auto 40px;
max-width: 600px;
text-align: left;
width: 100%;
}
.sb-argstableBlock th:first-of-type,
.sb-argstableBlock td:first-of-type {
padding-left: 20px;
}
.sb-argstableBlock th:nth-of-type(2),
.sb-argstableBlock td:nth-of-type(2) {
width: 35%;
}
.sb-argstableBlock th:nth-of-type(3),
.sb-argstableBlock td:nth-of-type(3) {
width: 15%;
}
.sb-argstableBlock th:last-of-type,
.sb-argstableBlock td:last-of-type {
width: 25%;
padding-right: 20px;
}
.sb-argstableBlock th span,
.sb-argstableBlock td span {
-webkit-animation: sb-glow 1.5s ease-in-out infinite;
animation: sb-glow 1.5s ease-in-out infinite;
background-color: rgba(0, 0, 0, 0.1);
border-radius: 0;
box-shadow: none;
color: transparent;
}
.sb-argstableBlock th {
padding: 10px 15px;
}
.sb-argstableBlock-body {
border-radius: 4px;
box-shadow:
rgba(0, 0, 0, 0.1) 0 1px 3px 1px,
rgba(0, 0, 0, 0.065) 0 0 0 1px;
}
.sb-argstableBlock-body tr {
background: transparent;
overflow: hidden;
}
.sb-argstableBlock-body tr:not(:first-child) {
border-top: 1px solid #e6e6e6;
}
.sb-argstableBlock-body tr:first-child td:first-child {
border-top-left-radius: 4px;
}
.sb-argstableBlock-body tr:first-child td:last-child {
border-top-right-radius: 4px;
}
.sb-argstableBlock-body tr:last-child td:first-child {
border-bottom-left-radius: 4px;
}
.sb-argstableBlock-body tr:last-child td:last-child {
border-bottom-right-radius: 4px;
}
.sb-argstableBlock-body td {
background: #fff;
padding-bottom: 10px;
padding-top: 10px;
vertical-align: top;
}
.sb-argstableBlock-body td:not(:first-of-type) {
padding-left: 15px;
padding-right: 15px;
}
.sb-argstableBlock-body button {
-webkit-animation: sb-glow 1.5s ease-in-out infinite;
animation: sb-glow 1.5s ease-in-out infinite;
background-color: rgba(0, 0, 0, 0.1);
border: 0;
border-radius: 0;
box-shadow: none;
color: transparent;
display: inline;
font-size: 12px;
line-height: 1;
padding: 10px 16px;
}
.sb-argstableBlock-summary {
margin-top: 4px;
}
.sb-argstableBlock-code {
margin-right: 4px;
margin-bottom: 4px;
padding: 2px 5px;
}
.sb-sr-only,
.sb-hidden-until-focus:not(:focus) {
position: absolute;
width: 1px;
height: 1px;
padding: 0px;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: none;
}
.sb-hidden-until-focus {
opacity: 0;
transition: opacity 150ms ease-out;
}
.sb-hidden-until-focus:focus {
opacity: 1;
}
</style>
<script>
/* globals window */
try {
if (window.top !== window) {
window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.top.__REACT_DEVTOOLS_GLOBAL_HOOK__;
window.__VUE_DEVTOOLS_GLOBAL_HOOK__ = window.top.__VUE_DEVTOOLS_GLOBAL_HOOK__;
window.top.__VUE_DEVTOOLS_CONTEXT__ = window.document;
}
} catch (e) {
// eslint-disable-next-line no-console
console.warn('unable to connect to top frame for connecting dev tools');
}
</script>

View File

@@ -0,0 +1,87 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title><%= typeof title !== 'undefined'? title : 'Storybook'%></title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<% if (favicon.endsWith('.svg')) {%>
<link rel="icon" type="image/svg+xml" href="./<%= favicon %>" />
<% } else if (favicon.endsWith('.ico')) { %>
<link rel="icon" type="image/x-icon" href="./<%= favicon %>" />
<% } %>
<style>
@font-face {
font-family: 'Nunito Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('./sb-common-assets/nunito-sans-regular.woff2') format('woff2');
}
@font-face {
font-family: 'Nunito Sans';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url('./sb-common-assets/nunito-sans-italic.woff2') format('woff2');
}
@font-face {
font-family: 'Nunito Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('./sb-common-assets/nunito-sans-bold.woff2') format('woff2');
}
@font-face {
font-family: 'Nunito Sans';
font-style: italic;
font-weight: 700;
font-display: swap;
src: url('./sb-common-assets/nunito-sans-bold-italic.woff2') format('woff2');
}
</style>
<link href="./sb-manager/runtime.js" rel="modulepreload" />
<% files.js.forEach(file => { %>
<link href="<%= file %>" rel="modulepreload" />
<% }); %> <% if (typeof head !== 'undefined') { %> <%- head %> <% } %>
<style>
#storybook-root[hidden] {
display: none !important;
}
</style>
<% files.css.forEach(file => { %>
<link href="<%= file %>" rel="stylesheet" />
<% }); %>
</head>
<body>
<div id="root"></div>
<% if (typeof globals !== 'undefined' && Object.keys(globals).length) { %>
<script>
<% for (var varName in globals) { %>
<% if (globals[varName] !== undefined) { %>
window['<%=varName%>'] = <%- (globals[varName]) %>;
<% } %>
<% } %>
</script>
<% } %>
<script type="module">
import './sb-manager/globals-runtime.js';
<% files.js.forEach(file => { %>
import '<%= file %>';
<% }); %>
import './sb-manager/runtime.js';
</script>
</body>
</html>

26
frontend/node_modules/storybook/bin/index.cjs generated vendored Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env node
const majorNodeVersion = parseInt(process.versions.node, 10);
if (majorNodeVersion < 20) {
console.error('To run Storybook you need to have Node.js 20 or higher');
process.exit(1);
}
// The Storybook CLI has a catch block for all of its commands, but if an error
// occurs before the command even runs, for instance, if an import fails, then
// such error will fall under the uncaughtException handler.
// This is the earliest moment we can catch such errors.
process.once('uncaughtException', (error) => {
if (error.message.includes('string-width')) {
console.error(
[
'🔴 Error: It looks like you are having a known issue with package hoisting.',
'Please check the following issue for details and solutions: https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092\n\n',
].join('\n')
);
}
throw error;
});
require('../dist/bin/index.cjs');

View File

@@ -0,0 +1,6 @@
import { Renderer, PartialStoryFn } from 'storybook/internal/types';
/** @deprecated Will be removed in Storybook v10 */
declare const withActions: <T extends Renderer>(storyFn: PartialStoryFn<T>) => T['storyResult'];
export { withActions };

View File

@@ -0,0 +1,131 @@
var D = Object.defineProperty;
var r = (e, n) => D(e, "name", { value: n, configurable: !0 });
// src/actions/decorator.ts
import { makeDecorator as P, useEffect as x } from "storybook/preview-api";
// src/actions/constants.ts
var h = "actions", y = "storybook/actions", $ = `${y}/panel`, g = `${y}/action-event`, B = `${y}/action-clear`;
// src/actions/runtime/action.ts
import { ImplicitActionsDuringRendering as R } from "storybook/internal/preview-errors";
import { global as E } from "@storybook/global";
import { addons as S } from "storybook/preview-api";
// src/actions/runtime/configureActions.ts
var a = {
depth: 10,
clearOnStoryChange: !0,
limit: 50
};
// src/actions/runtime/action.ts
var A = /* @__PURE__ */ r((e, n) => {
let t = Object.getPrototypeOf(e);
return !t || n(t) ? t : A(t, n);
}, "findProto"), j = /* @__PURE__ */ r((e) => !!(typeof e == "object" && e && A(e, (n) => /^Synthetic(?:Base)?Event$/.test(n.constructor.name)) &&
typeof e.persist == "function"), "isReactSyntheticEvent"), I = /* @__PURE__ */ r((e) => {
if (j(e)) {
let n = Object.create(
e.constructor.prototype,
Object.getOwnPropertyDescriptors(e)
);
n.persist();
let t = Object.getOwnPropertyDescriptor(n, "view"), o = t?.value;
return typeof o == "object" && o?.constructor.name === "Window" && Object.defineProperty(n, "view", {
...t,
value: Object.create(o.constructor.prototype)
}), n;
}
return e;
}, "serializeArg");
function O(e, n = {}) {
let t = {
...a,
...n
}, o = /* @__PURE__ */ r(function(...i) {
if (n.implicit) {
let d = ("__STORYBOOK_PREVIEW__" in E ? E.__STORYBOOK_PREVIEW__ : void 0)?.storyRenders.find(
(c) => c.phase === "playing" || c.phase === "rendering"
);
if (d) {
let c = !globalThis?.FEATURES?.disallowImplicitActionsInRenderV8, u = new R({
phase: d.phase,
name: e,
deprecated: c
});
if (c)
console.warn(u);
else
throw u;
}
}
let m = S.getChannel(), p = Date.now().toString(36) + Math.random().toString(36).substring(2), l = 5, f = i.map(I), w = i.length > 1 ? f :
f[0], _ = {
id: p,
count: 0,
data: { name: e, args: w },
options: {
...t,
maxDepth: l + (t.depth || 3)
}
};
m.emit(g, _);
}, "actionHandler");
return o.isAction = !0, o.implicit = n.implicit, o;
}
r(O, "action");
// src/actions/runtime/actions.ts
var b = /* @__PURE__ */ r((...e) => {
let n = a, t = e;
t.length === 1 && Array.isArray(t[0]) && ([t] = t), t.length !== 1 && typeof t[t.length - 1] != "string" && (n = {
...a,
...t.pop()
});
let o = t[0];
(t.length !== 1 || typeof o == "string") && (o = {}, t.forEach((i) => {
o[i] = i;
}));
let s = {};
return Object.keys(o).forEach((i) => {
s[i] = O(o[i], n);
}), s;
}, "actions");
// src/actions/decorator.ts
var T = /^(\S+)\s*(.*)$/, k = Element != null && !Element.prototype.matches, F = k ? "msMatchesSelector" : "matches", v = /* @__PURE__ */ r(
(e, n) => {
if (e[F](n))
return !0;
let t = e.parentElement;
return t ? v(t, n) : !1;
}, "hasMatchInAncestry"), M = /* @__PURE__ */ r((e, ...n) => {
let t = e(...n);
return Object.entries(t).map(([o, s]) => {
let [i, m, p] = o.match(T) || [];
return {
eventName: m,
handler: /* @__PURE__ */ r((l) => {
(!p || v(l.target, p)) && s(l);
}, "handler")
};
});
}, "createHandlers"), C = /* @__PURE__ */ r((e, ...n) => {
let t = typeof globalThis.document < "u" && globalThis.document.getElementById("storybook-root");
x(() => {
if (t) {
let o = M(e, ...n);
return o.forEach(({ eventName: s, handler: i }) => t.addEventListener(s, i)), () => o.forEach(({ eventName: s, handler: i }) => t.removeEventListener(
s, i));
}
}, [t, e, n]);
}, "applyEventHandlers"), rt = P({
name: "withActions",
parameterName: h,
skipIfNoParametersOrOptions: !0,
wrapper: /* @__PURE__ */ r((e, n, { parameters: t }) => (t?.handles && C(b, ...t.handles), e(n)), "wrapper")
});
export {
rt as withActions
};

121
frontend/node_modules/storybook/dist/actions/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,121 @@
"use strict";
var a = Object.defineProperty;
var D = Object.getOwnPropertyDescriptor;
var x = Object.getOwnPropertyNames;
var R = Object.prototype.hasOwnProperty;
var i = (t, o) => a(t, "name", { value: o, configurable: !0 });
var j = (t, o) => {
for (var n in o)
a(t, n, { get: o[n], enumerable: !0 });
}, P = (t, o, n, e) => {
if (o && typeof o == "object" || typeof o == "function")
for (let r of x(o))
!R.call(t, r) && r !== n && a(t, r, { get: () => o[r], enumerable: !(e = D(o, r)) || e.enumerable });
return t;
};
var S = (t) => P(a({}, "__esModule", { value: !0 }), t);
// src/actions/index.ts
var $ = {};
j($, {
ADDON_ID: () => l,
CLEAR_ID: () => k,
CYCLIC_KEY: () => C,
EVENT_ID: () => m,
PANEL_ID: () => T,
PARAM_KEY: () => I,
action: () => f,
actions: () => Y,
config: () => s,
configureActions: () => F
});
module.exports = S($);
// src/actions/constants.ts
var I = "actions", l = "storybook/actions", T = `${l}/panel`, m = `${l}/action-event`, k = `${l}/action-clear`, C = "$___storybook.isCyclic";
// src/actions/runtime/action.ts
var A = require("storybook/internal/preview-errors"), y = require("@storybook/global"), O = require("storybook/preview-api");
// src/actions/runtime/configureActions.ts
var s = {
depth: 10,
clearOnStoryChange: !0,
limit: 50
}, F = /* @__PURE__ */ i((t = {}) => {
Object.assign(s, t);
}, "configureActions");
// src/actions/runtime/action.ts
var h = /* @__PURE__ */ i((t, o) => {
let n = Object.getPrototypeOf(t);
return !n || o(n) ? n : h(n, o);
}, "findProto"), V = /* @__PURE__ */ i((t) => !!(typeof t == "object" && t && h(t, (o) => /^Synthetic(?:Base)?Event$/.test(o.constructor.name)) &&
typeof t.persist == "function"), "isReactSyntheticEvent"), W = /* @__PURE__ */ i((t) => {
if (V(t)) {
let o = Object.create(
t.constructor.prototype,
Object.getOwnPropertyDescriptors(t)
);
o.persist();
let n = Object.getOwnPropertyDescriptor(o, "view"), e = n?.value;
return typeof e == "object" && e?.constructor.name === "Window" && Object.defineProperty(o, "view", {
...n,
value: Object.create(e.constructor.prototype)
}), o;
}
return t;
}, "serializeArg");
function f(t, o = {}) {
let n = {
...s,
...o
}, e = /* @__PURE__ */ i(function(...c) {
if (o.implicit) {
let u = ("__STORYBOOK_PREVIEW__" in y.global ? y.global.__STORYBOOK_PREVIEW__ : void 0)?.storyRenders.find(
(p) => p.phase === "playing" || p.phase === "rendering"
);
if (u) {
let p = !globalThis?.FEATURES?.disallowImplicitActionsInRenderV8, g = new A.ImplicitActionsDuringRendering({
phase: u.phase,
name: t,
deprecated: p
});
if (p)
console.warn(g);
else
throw g;
}
}
let E = O.addons.getChannel(), b = Date.now().toString(36) + Math.random().toString(36).substring(2), w = 5, d = c.map(W), _ = c.length >
1 ? d : d[0], v = {
id: b,
count: 0,
data: { name: t, args: _ },
options: {
...n,
maxDepth: w + (n.depth || 3)
}
};
E.emit(m, v);
}, "actionHandler");
return e.isAction = !0, e.implicit = o.implicit, e;
}
i(f, "action");
// src/actions/runtime/actions.ts
var Y = /* @__PURE__ */ i((...t) => {
let o = s, n = t;
n.length === 1 && Array.isArray(n[0]) && ([n] = n), n.length !== 1 && typeof n[n.length - 1] != "string" && (o = {
...s,
...n.pop()
});
let e = n[0];
(n.length !== 1 || typeof e == "string") && (e = {}, n.forEach((c) => {
e[c] = c;
}));
let r = {};
return Object.keys(e).forEach((c) => {
r[c] = f(e[c], o);
}), r;
}, "actions");

102
frontend/node_modules/storybook/dist/actions/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,102 @@
declare const PARAM_KEY = "actions";
declare const ADDON_ID = "storybook/actions";
declare const PANEL_ID = "storybook/actions/panel";
declare const EVENT_ID = "storybook/actions/action-event";
declare const CLEAR_ID = "storybook/actions/action-clear";
declare const CYCLIC_KEY = "$___storybook.isCyclic";
interface Options$1 {
allowRegExp: boolean;
allowSymbol: boolean;
allowDate: boolean;
allowUndefined: boolean;
allowError: boolean;
maxDepth: number;
space: number | undefined;
}
interface Options {
depth: number;
clearOnStoryChange: boolean;
limit: number;
implicit: boolean;
id: string;
}
type ActionOptions = Partial<Options> & Partial<Options$1>;
interface ActionDisplay {
id: string;
data: {
name: string;
args: any[];
};
count: number;
options: ActionOptions;
}
type HandlerFunction = (...args: any[]) => void;
type ActionsMap<T extends string = string> = Record<T, HandlerFunction>;
interface ActionsFunction {
<T extends string>(handlerMap: Record<T, string>, options?: ActionOptions): ActionsMap<T>;
<T extends string>(...handlers: T[]): ActionsMap<T>;
<T extends string>(handler1: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, handler5: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, handler5: T, handler6: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, handler5: T, handler6: T, handler7: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, handler5: T, handler6: T, handler7: T, handler8: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, handler5: T, handler6: T, handler7: T, handler8: T, handler9: T, options?: ActionOptions): ActionsMap<T>;
<T extends string>(handler1: T, handler2: T, handler3: T, handler4: T, handler5: T, handler6: T, handler7: T, handler8: T, handler9: T, handler10: T, options?: ActionOptions): ActionsMap<T>;
}
type DecoratorFunction = (args: any[]) => any[];
declare function action(name: string, options?: ActionOptions): HandlerFunction;
declare const actions: ActionsFunction;
declare const config: ActionOptions;
declare const configureActions: (options?: ActionOptions) => void;
interface ActionsParameters {
/**
* Actions configuration
*
* @see https://storybook.js.org/docs/essentials/actions#parameters
*/
actions: {
/**
* Create actions for each arg that matches the regex. (**NOT recommended, see below**)
*
* This is quite useful when your component has dozens (or hundreds) of methods and you do not
* want to manually apply the fn utility for each of those methods. However, this is not the
* recommended way of writing actions. That's because automatically inferred args are not
* available as spies in your play function. If you use argTypesRegex and your stories have play
* functions, you will need to also define args with the fn utility to test them in your play
* function.
*
* @example `argTypesRegex: '^on.*'`
*/
argTypesRegex?: string;
/** Remove the addon panel and disable the addon's behavior */
disable?: boolean;
/**
* Binds a standard HTML event handler to the outermost HTML element rendered by your component
* and triggers an action when the event is called for a given selector. The format is
* `<eventname> <selector>`. The selector is optional; it defaults to all elements.
*
* **To enable this feature, you must use the `withActions` decorator.**
*
* @example `handles: ['mouseover', 'click .btn']`
*
* @see https://storybook.js.org/docs/essentials/actions#action-event-handlers
*/
handles?: string[];
};
}
export { ADDON_ID, type ActionDisplay, type ActionOptions, type ActionsFunction, type ActionsMap, type ActionsParameters, CLEAR_ID, CYCLIC_KEY, type DecoratorFunction, EVENT_ID, type HandlerFunction, PANEL_ID, PARAM_KEY, action, actions, config, configureActions };

105
frontend/node_modules/storybook/dist/actions/index.js generated vendored Normal file
View File

@@ -0,0 +1,105 @@
var w = Object.defineProperty;
var i = (o, n) => w(o, "name", { value: n, configurable: !0 });
// src/actions/constants.ts
var P = "actions", a = "storybook/actions", S = `${a}/panel`, f = `${a}/action-event`, I = `${a}/action-clear`, T = "$___storybook.isCyclic";
// src/actions/runtime/action.ts
import { ImplicitActionsDuringRendering as _ } from "storybook/internal/preview-errors";
import { global as d } from "@storybook/global";
import { addons as v } from "storybook/preview-api";
// src/actions/runtime/configureActions.ts
var c = {
depth: 10,
clearOnStoryChange: !0,
limit: 50
}, C = /* @__PURE__ */ i((o = {}) => {
Object.assign(c, o);
}, "configureActions");
// src/actions/runtime/action.ts
var u = /* @__PURE__ */ i((o, n) => {
let t = Object.getPrototypeOf(o);
return !t || n(t) ? t : u(t, n);
}, "findProto"), D = /* @__PURE__ */ i((o) => !!(typeof o == "object" && o && u(o, (n) => /^Synthetic(?:Base)?Event$/.test(n.constructor.name)) &&
typeof o.persist == "function"), "isReactSyntheticEvent"), x = /* @__PURE__ */ i((o) => {
if (D(o)) {
let n = Object.create(
o.constructor.prototype,
Object.getOwnPropertyDescriptors(o)
);
n.persist();
let t = Object.getOwnPropertyDescriptor(n, "view"), e = t?.value;
return typeof e == "object" && e?.constructor.name === "Window" && Object.defineProperty(n, "view", {
...t,
value: Object.create(e.constructor.prototype)
}), n;
}
return o;
}, "serializeArg");
function g(o, n = {}) {
let t = {
...c,
...n
}, e = /* @__PURE__ */ i(function(...r) {
if (n.implicit) {
let m = ("__STORYBOOK_PREVIEW__" in d ? d.__STORYBOOK_PREVIEW__ : void 0)?.storyRenders.find(
(s) => s.phase === "playing" || s.phase === "rendering"
);
if (m) {
let s = !globalThis?.FEATURES?.disallowImplicitActionsInRenderV8, y = new _({
phase: m.phase,
name: o,
deprecated: s
});
if (s)
console.warn(y);
else
throw y;
}
}
let A = v.getChannel(), O = Date.now().toString(36) + Math.random().toString(36).substring(2), h = 5, l = r.map(x), E = r.length > 1 ? l :
l[0], b = {
id: O,
count: 0,
data: { name: o, args: E },
options: {
...t,
maxDepth: h + (t.depth || 3)
}
};
A.emit(f, b);
}, "actionHandler");
return e.isAction = !0, e.implicit = n.implicit, e;
}
i(g, "action");
// src/actions/runtime/actions.ts
var L = /* @__PURE__ */ i((...o) => {
let n = c, t = o;
t.length === 1 && Array.isArray(t[0]) && ([t] = t), t.length !== 1 && typeof t[t.length - 1] != "string" && (n = {
...c,
...t.pop()
});
let e = t[0];
(t.length !== 1 || typeof e == "string") && (e = {}, t.forEach((r) => {
e[r] = r;
}));
let p = {};
return Object.keys(e).forEach((r) => {
p[r] = g(e[r], n);
}), p;
}, "actions");
export {
a as ADDON_ID,
I as CLEAR_ID,
T as CYCLIC_KEY,
f as EVENT_ID,
S as PANEL_ID,
P as PARAM_KEY,
g as action,
L as actions,
c as config,
C as configureActions
};

54126
frontend/node_modules/storybook/dist/babel/index.cjs generated vendored Normal file

File diff suppressed because one or more lines are too long

7507
frontend/node_modules/storybook/dist/babel/index.d.ts generated vendored Normal file

File diff suppressed because one or more lines are too long

54136
frontend/node_modules/storybook/dist/babel/index.js generated vendored Normal file

File diff suppressed because one or more lines are too long

102
frontend/node_modules/storybook/dist/bin/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,102 @@
"use strict";
var l = Object.create;
var y = Object.defineProperty;
var d = Object.getOwnPropertyDescriptor;
var p = Object.getOwnPropertyNames;
var v = Object.getPrototypeOf, u = Object.prototype.hasOwnProperty;
var m = (o, t, e, r) => {
if (t && typeof t == "object" || typeof t == "function")
for (let i of p(t))
!u.call(o, i) && i !== e && y(o, i, { get: () => t[i], enumerable: !(r = d(t, i)) || r.enumerable });
return o;
};
var c = (o, t, e) => (e = o != null ? l(v(o)) : {}, m(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
t || !o || !o.__esModule ? y(e, "default", { value: o, enumerable: !0 }) : e,
o
));
// src/bin/index.ts
var a = require("node:child_process"), n = require("node:fs"), b = require("node:path");
// src/common/versions.ts
var k = {
"@storybook/addon-a11y": "9.0.16",
"@storybook/addon-docs": "9.0.16",
"@storybook/addon-jest": "9.0.16",
"@storybook/addon-links": "9.0.16",
"@storybook/addon-onboarding": "9.0.16",
"storybook-addon-pseudo-states": "9.0.16",
"@storybook/addon-themes": "9.0.16",
"@storybook/addon-vitest": "9.0.16",
"@storybook/builder-vite": "9.0.16",
"@storybook/builder-webpack5": "9.0.16",
storybook: "9.0.16",
"@storybook/angular": "9.0.16",
"@storybook/ember": "9.0.16",
"@storybook/html-vite": "9.0.16",
"@storybook/nextjs": "9.0.16",
"@storybook/nextjs-vite": "9.0.16",
"@storybook/preact-vite": "9.0.16",
"@storybook/react-native-web-vite": "9.0.16",
"@storybook/react-vite": "9.0.16",
"@storybook/react-webpack5": "9.0.16",
"@storybook/server-webpack5": "9.0.16",
"@storybook/svelte-vite": "9.0.16",
"@storybook/sveltekit": "9.0.16",
"@storybook/vue3-vite": "9.0.16",
"@storybook/web-components-vite": "9.0.16",
sb: "9.0.16",
"@storybook/cli": "9.0.16",
"@storybook/codemod": "9.0.16",
"@storybook/core-webpack": "9.0.16",
"create-storybook": "9.0.16",
"@storybook/csf-plugin": "9.0.16",
"eslint-plugin-storybook": "9.0.16",
"@storybook/react-dom-shim": "9.0.16",
"@storybook/preset-create-react-app": "9.0.16",
"@storybook/preset-react-webpack": "9.0.16",
"@storybook/preset-server-webpack": "9.0.16",
"@storybook/html": "9.0.16",
"@storybook/preact": "9.0.16",
"@storybook/react": "9.0.16",
"@storybook/server": "9.0.16",
"@storybook/svelte": "9.0.16",
"@storybook/vue3": "9.0.16",
"@storybook/web-components": "9.0.16"
};
// src/bin/index.ts
var s = process.argv.slice(2);
if (["dev", "build", "index"].includes(s[0]))
require("storybook/internal/cli/bin");
else {
let o;
if (s[0] === "init") {
let e;
try {
e = require.resolve("create-storybook/package.json");
} catch {
}
e ? JSON.parse((0, n.readFileSync)(e, "utf-8")).version === k["create-storybook"] && (o = [
"node",
(0, b.join)((0, b.dirname)(e), "bin", "index.cjs"),
...s.slice(1)
]) : o = ["npx", "--yes", `create-storybook@${k.storybook}`, ...s.slice(1)];
} else {
let e;
try {
e = require.resolve("@storybook/cli/package.json");
} catch {
}
e ? JSON.parse((0, n.readFileSync)(e, "utf-8")).version === k["@storybook/cli"] && (o = ["node", (0, b.join)((0, b.dirname)(e), "bin", "\
index.cjs"), ...s]) : o = ["npx", "--yes", `@storybook/cli@${k.storybook}`, ...s];
}
o || (console.error("Could not run storybook cli, please report this as a bug"), process.exit(1)), (0, a.spawn)(o[0], o.slice(1), { stdio: "\
inherit", shell: !0 }).on("exit", (e) => {
e != null && process.exit(e), process.exit(1);
});
}

96
frontend/node_modules/storybook/dist/bin/index.js generated vendored Normal file
View File

@@ -0,0 +1,96 @@
import ESM_COMPAT_Module from "node:module";
import { fileURLToPath as ESM_COMPAT_fileURLToPath } from 'node:url';
import { dirname as ESM_COMPAT_dirname } from 'node:path';
const __filename = ESM_COMPAT_fileURLToPath(import.meta.url);
const __dirname = ESM_COMPAT_dirname(__filename);
const require = ESM_COMPAT_Module.createRequire(import.meta.url);
var s = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, {
get: (i, o) => (typeof require < "u" ? require : i)[o]
}) : e)(function(e) {
if (typeof require < "u") return require.apply(this, arguments);
throw Error('Dynamic require of "' + e + '" is not supported');
});
// src/bin/index.ts
import { spawn as c } from "node:child_process";
import { readFileSync as k } from "node:fs";
import { dirname as n, join as y } from "node:path";
// src/common/versions.ts
var r = {
"@storybook/addon-a11y": "9.0.16",
"@storybook/addon-docs": "9.0.16",
"@storybook/addon-jest": "9.0.16",
"@storybook/addon-links": "9.0.16",
"@storybook/addon-onboarding": "9.0.16",
"storybook-addon-pseudo-states": "9.0.16",
"@storybook/addon-themes": "9.0.16",
"@storybook/addon-vitest": "9.0.16",
"@storybook/builder-vite": "9.0.16",
"@storybook/builder-webpack5": "9.0.16",
storybook: "9.0.16",
"@storybook/angular": "9.0.16",
"@storybook/ember": "9.0.16",
"@storybook/html-vite": "9.0.16",
"@storybook/nextjs": "9.0.16",
"@storybook/nextjs-vite": "9.0.16",
"@storybook/preact-vite": "9.0.16",
"@storybook/react-native-web-vite": "9.0.16",
"@storybook/react-vite": "9.0.16",
"@storybook/react-webpack5": "9.0.16",
"@storybook/server-webpack5": "9.0.16",
"@storybook/svelte-vite": "9.0.16",
"@storybook/sveltekit": "9.0.16",
"@storybook/vue3-vite": "9.0.16",
"@storybook/web-components-vite": "9.0.16",
sb: "9.0.16",
"@storybook/cli": "9.0.16",
"@storybook/codemod": "9.0.16",
"@storybook/core-webpack": "9.0.16",
"create-storybook": "9.0.16",
"@storybook/csf-plugin": "9.0.16",
"eslint-plugin-storybook": "9.0.16",
"@storybook/react-dom-shim": "9.0.16",
"@storybook/preset-create-react-app": "9.0.16",
"@storybook/preset-react-webpack": "9.0.16",
"@storybook/preset-server-webpack": "9.0.16",
"@storybook/html": "9.0.16",
"@storybook/preact": "9.0.16",
"@storybook/react": "9.0.16",
"@storybook/server": "9.0.16",
"@storybook/svelte": "9.0.16",
"@storybook/vue3": "9.0.16",
"@storybook/web-components": "9.0.16"
};
// src/bin/index.ts
var t = process.argv.slice(2);
if (["dev", "build", "index"].includes(t[0]))
s("storybook/internal/cli/bin");
else {
let e;
if (t[0] === "init") {
let o;
try {
o = s.resolve("create-storybook/package.json");
} catch {
}
o ? JSON.parse(k(o, "utf-8")).version === r["create-storybook"] && (e = [
"node",
y(n(o), "bin", "index.cjs"),
...t.slice(1)
]) : e = ["npx", "--yes", `create-storybook@${r.storybook}`, ...t.slice(1)];
} else {
let o;
try {
o = s.resolve("@storybook/cli/package.json");
} catch {
}
o ? JSON.parse(k(o, "utf-8")).version === r["@storybook/cli"] && (e = ["node", y(n(o), "bin", "index.cjs"), ...t]) : e = ["npx", "--yes",
`@storybook/cli@${r.storybook}`, ...t];
}
e || (console.error("Could not run storybook cli, please report this as a bug"), process.exit(1)), c(e[0], e.slice(1), { stdio: "inherit",
shell: !0 }).on("exit", (o) => {
o != null && process.exit(o), process.exit(1);
});
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
import * as esbuild from 'esbuild';
import { BuildOptions } from 'esbuild';
import { Builder, Builder_WithRequiredProperty, BuilderStats } from 'storybook/internal/types';
type ManagerBuilder = Builder<Builder_WithRequiredProperty<BuildOptions, 'outdir'> & {
entryPoints: string[];
}, BuilderStats>;
declare const getConfig: ManagerBuilder['getConfig'];
declare const executor: {
get: () => Promise<typeof esbuild.build>;
};
declare const bail: ManagerBuilder['bail'];
declare const start: ManagerBuilder['start'];
declare const build: ManagerBuilder['build'];
declare const corePresets: ManagerBuilder['corePresets'];
declare const overridePresets: ManagerBuilder['overridePresets'];
export { bail, build, corePresets, executor, getConfig, overridePresets, start };

File diff suppressed because it is too large Load Diff

1983
frontend/node_modules/storybook/dist/channels/index.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,108 @@
interface Config {
page: 'manager' | 'preview';
}
type ChannelHandler = (event: ChannelEvent) => void;
interface ChannelTransport {
send(event: ChannelEvent, options?: any): void;
setHandler(handler: ChannelHandler): void;
}
interface ChannelEvent {
type: string;
from: string;
args: any[];
}
interface Listener {
(...args: any[]): void;
}
interface ChannelArgsSingle {
transport?: ChannelTransport;
async?: boolean;
}
interface ChannelArgsMulti {
transports: ChannelTransport[];
async?: boolean;
}
declare class Channel {
readonly isAsync: boolean;
private sender;
private events;
private data;
private readonly transports;
constructor(input: ChannelArgsMulti);
constructor(input: ChannelArgsSingle);
get hasTransport(): boolean;
addListener(eventName: string, listener: Listener): void;
emit(eventName: string, ...args: any): void;
last(eventName: string): any;
eventNames(): string[];
listenerCount(eventName: string): number;
listeners(eventName: string): Listener[] | undefined;
once(eventName: string, listener: Listener): void;
removeAllListeners(eventName?: string): void;
removeListener(eventName: string, listener: Listener): void;
on(eventName: string, listener: Listener): void;
off(eventName: string, listener: Listener): void;
private handleEvent;
private onceListener;
}
declare class PostMessageTransport implements ChannelTransport {
private readonly config;
private buffer;
private handler?;
private connected;
constructor(config: Config);
setHandler(handler: ChannelHandler): void;
/**
* Sends `event` to the associated window. If the window does not yet exist the event will be
* stored in a buffer and sent when the window exists.
*
* @param event
*/
send(event: ChannelEvent, options?: any): Promise<any>;
private flush;
private getFrames;
private getCurrentFrames;
private getLocalFrame;
private handleEvent;
}
type OnError = (message: Event) => void;
interface WebsocketTransportArgs extends Partial<Config> {
url: string;
onError: OnError;
}
declare const HEARTBEAT_INTERVAL = 15000;
declare const HEARTBEAT_MAX_LATENCY = 5000;
declare class WebsocketTransport implements ChannelTransport {
private buffer;
private handler?;
private socket;
private isReady;
private isClosed;
private pingTimeout;
private heartbeat;
constructor({ url, onError, page }: WebsocketTransportArgs);
setHandler(handler: ChannelHandler): void;
send(event: any): void;
private sendLater;
private sendNow;
private flush;
}
type Options = Config & {
extraTransports?: ChannelTransport[];
};
/**
* Creates a new browser channel instance.
*
* @param {Options} options - The options object.
* @param {Page} options.page - Page identifier.
* @param {ChannelTransport[]} [options.extraTransports=[]] - An optional array of extra channel
* transports. Default is `[]`
* @returns {Channel} - The new channel instance.
*/
declare function createBrowserChannel({ page, extraTransports }: Options): Channel;
export { Channel, type ChannelEvent, type ChannelHandler, type ChannelTransport, HEARTBEAT_INTERVAL, HEARTBEAT_MAX_LATENCY, type Listener, PostMessageTransport, WebsocketTransport, createBrowserChannel, Channel as default };

1914
frontend/node_modules/storybook/dist/channels/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

6136
frontend/node_modules/storybook/dist/cli/bin/index.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
export { }

6158
frontend/node_modules/storybook/dist/cli/bin/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

79911
frontend/node_modules/storybook/dist/cli/index.cjs generated vendored Normal file

File diff suppressed because one or more lines are too long

1884
frontend/node_modules/storybook/dist/cli/index.d.ts generated vendored Normal file

File diff suppressed because it is too large Load Diff

79940
frontend/node_modules/storybook/dist/cli/index.js generated vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,80 @@
"use strict";
var s = Object.defineProperty;
var L = Object.getOwnPropertyDescriptor;
var v = Object.getOwnPropertyNames;
var b = Object.prototype.hasOwnProperty;
var t = (r, e) => s(r, "name", { value: e, configurable: !0 });
var w = (r, e) => {
for (var n in e)
s(r, n, { get: e[n], enumerable: !0 });
}, h = (r, e, n, i) => {
if (e && typeof e == "object" || typeof e == "function")
for (let c of v(e))
!b.call(r, c) && c !== n && s(r, c, { get: () => e[c], enumerable: !(i = L(e, c)) || i.enumerable });
return r;
};
var m = (r) => h(s({}, "__esModule", { value: !0 }), r);
// src/client-logger/index.ts
var k = {};
w(k, {
deprecate: () => F,
logger: () => y,
once: () => o,
pretty: () => a
});
module.exports = m(k);
var p = require("@storybook/global");
var { LOGLEVEL: x } = p.global, g = {
trace: 1,
debug: 2,
info: 3,
warn: 4,
error: 5,
silent: 10
}, R = x, l = g[R] || g.info, y = {
trace: /* @__PURE__ */ t((r, ...e) => {
l <= g.trace && console.trace(r, ...e);
}, "trace"),
debug: /* @__PURE__ */ t((r, ...e) => {
l <= g.debug && console.debug(r, ...e);
}, "debug"),
info: /* @__PURE__ */ t((r, ...e) => {
l <= g.info && console.info(r, ...e);
}, "info"),
warn: /* @__PURE__ */ t((r, ...e) => {
l <= g.warn && console.warn(r, ...e);
}, "warn"),
error: /* @__PURE__ */ t((r, ...e) => {
l <= g.error && console.error(r, ...e);
}, "error"),
log: /* @__PURE__ */ t((r, ...e) => {
l < g.silent && console.log(r, ...e);
}, "log")
}, d = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ t((r) => (e, ...n) => {
if (!d.has(e))
return d.add(e), y[r](e, ...n);
}, "once");
o.clear = () => d.clear();
o.trace = o("trace");
o.debug = o("debug");
o.info = o("info");
o.warn = o("warn");
o.error = o("error");
o.log = o("log");
var F = o("warn"), a = /* @__PURE__ */ t((r) => (...e) => {
let n = [];
if (e.length) {
let i = /<span\s+style=(['"])([^'"]*)\1\s*>/gi, c = /<\/span>/gi, u;
for (n.push(e[0].replace(i, "%c").replace(c, "%c")); u = i.exec(e[0]); )
n.push(u[2]), n.push("");
for (let f = 1; f < e.length; f++)
n.push(e[f]);
}
y[r].apply(y, n);
}, "pretty");
a.trace = a("trace");
a.debug = a("debug");
a.info = a("info");
a.warn = a("warn");
a.error = a("error");

View File

@@ -0,0 +1,30 @@
type LoggingFn = (message: any, ...args: any[]) => void;
declare const logger: {
readonly trace: (message: any, ...rest: any[]) => void;
readonly debug: (message: any, ...rest: any[]) => void;
readonly info: (message: any, ...rest: any[]) => void;
readonly warn: (message: any, ...rest: any[]) => void;
readonly error: (message: any, ...rest: any[]) => void;
readonly log: (message: any, ...rest: any[]) => void;
};
declare const once: {
(type: keyof typeof logger): (message: any, ...rest: any[]) => void;
clear(): void;
trace: (message: any, ...rest: any[]) => void;
debug: (message: any, ...rest: any[]) => void;
info: (message: any, ...rest: any[]) => void;
warn: (message: any, ...rest: any[]) => void;
error: (message: any, ...rest: any[]) => void;
log: (message: any, ...rest: any[]) => void;
};
declare const deprecate: (message: any, ...rest: any[]) => void;
declare const pretty: {
(type: keyof typeof logger): (...args: Parameters<LoggingFn>) => void;
trace: (message: any, ...args: any[]) => void;
debug: (message: any, ...args: any[]) => void;
info: (message: any, ...args: any[]) => void;
warn: (message: any, ...args: any[]) => void;
error: (message: any, ...args: any[]) => void;
};
export { deprecate, logger, once, pretty };

View File

@@ -0,0 +1,64 @@
var u = Object.defineProperty;
var a = (r, e) => u(r, "name", { value: e, configurable: !0 });
// src/client-logger/index.ts
import { global as p } from "@storybook/global";
var { LOGLEVEL: L } = p, t = {
trace: 1,
debug: 2,
info: 3,
warn: 4,
error: 5,
silent: 10
}, v = L, c = t[v] || t.info, i = {
trace: /* @__PURE__ */ a((r, ...e) => {
c <= t.trace && console.trace(r, ...e);
}, "trace"),
debug: /* @__PURE__ */ a((r, ...e) => {
c <= t.debug && console.debug(r, ...e);
}, "debug"),
info: /* @__PURE__ */ a((r, ...e) => {
c <= t.info && console.info(r, ...e);
}, "info"),
warn: /* @__PURE__ */ a((r, ...e) => {
c <= t.warn && console.warn(r, ...e);
}, "warn"),
error: /* @__PURE__ */ a((r, ...e) => {
c <= t.error && console.error(r, ...e);
}, "error"),
log: /* @__PURE__ */ a((r, ...e) => {
c < t.silent && console.log(r, ...e);
}, "log")
}, s = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ a((r) => (e, ...g) => {
if (!s.has(e))
return s.add(e), i[r](e, ...g);
}, "once");
o.clear = () => s.clear();
o.trace = o("trace");
o.debug = o("debug");
o.info = o("info");
o.warn = o("warn");
o.error = o("error");
o.log = o("log");
var h = o("warn"), n = /* @__PURE__ */ a((r) => (...e) => {
let g = [];
if (e.length) {
let y = /<span\s+style=(['"])([^'"]*)\1\s*>/gi, d = /<\/span>/gi, f;
for (g.push(e[0].replace(y, "%c").replace(d, "%c")); f = y.exec(e[0]); )
g.push(f[2]), g.push("");
for (let l = 1; l < e.length; l++)
g.push(e[l]);
}
i[r].apply(i, g);
}, "pretty");
n.trace = n("trace");
n.debug = n("debug");
n.info = n("info");
n.warn = n("warn");
n.error = n("error");
export {
h as deprecate,
i as logger,
o as once,
n as pretty
};

27826
frontend/node_modules/storybook/dist/common/index.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

1252
frontend/node_modules/storybook/dist/common/index.d.ts generated vendored Normal file

File diff suppressed because it is too large Load Diff

27924
frontend/node_modules/storybook/dist/common/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

23714
frontend/node_modules/storybook/dist/components/index.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

13083
frontend/node_modules/storybook/dist/components/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
import { DecoratorFunction } from 'storybook/internal/types';
declare const withControls: DecoratorFunction;
export { withControls };

View File

@@ -0,0 +1,8 @@
var n = Object.defineProperty;
var r = (t, o) => n(t, "name", { value: o, configurable: !0 });
// src/controls/decorator.ts
var a = /* @__PURE__ */ r((t, o) => t(o), "withControls");
export {
a as withControls
};

View File

@@ -0,0 +1,26 @@
"use strict";
var n = Object.defineProperty;
var e = Object.getOwnPropertyDescriptor;
var p = Object.getOwnPropertyNames;
var x = Object.prototype.hasOwnProperty;
var a = (t, o) => {
for (var s in o)
n(t, s, { get: o[s], enumerable: !0 });
}, A = (t, o, s, c) => {
if (o && typeof o == "object" || typeof o == "function")
for (let r of p(o))
!x.call(t, r) && r !== s && n(t, r, { get: () => o[r], enumerable: !(c = e(o, r)) || c.enumerable });
return t;
};
var D = (t) => A(n({}, "__esModule", { value: !0 }), t);
// src/controls/index.ts
var l = {};
a(l, {
ADDON_ID: () => d,
PARAM_KEY: () => f
});
module.exports = D(l);
// src/controls/constants.ts
var d = "addon-controls", f = "controls";

View File

@@ -0,0 +1,39 @@
declare const ADDON_ID: "addon-controls";
declare const PARAM_KEY: "controls";
interface ControlsParameters {
/**
* Controls configuration
*
* @see https://storybook.js.org/docs/essentials/controls#parameters-1
*/
controls: {
/** Remove the addon panel and disable the addon's behavior */
disable?: boolean;
/** Disable the ability to create or edit stories from the Controls panel */
disableSaveFromUI?: boolean;
/** Exclude specific properties from the Controls panel */
exclude?: string[] | RegExp;
/**
* Show the full documentation for each property in the Controls addon panel, including the
* description and default value.
*/
expanded?: boolean;
/** Exclude only specific properties in the Controls panel */
include?: string[] | RegExp;
/**
* Preset color swatches for the color picker control
*
* @example PresetColors: [{ color: '#ff4785', title: 'Coral' }, 'rgba(0, 159, 183, 1)',
* '#fe4a49']
*/
presetColors?: Array<string | {
color: string;
title?: string;
}>;
/** Controls sorting order */
sort?: 'none' | 'alpha' | 'requiredFirst';
};
}
export { ADDON_ID, type ControlsParameters, PARAM_KEY };

View File

@@ -0,0 +1,6 @@
// src/controls/constants.ts
var o = "addon-controls", t = "controls";
export {
o as ADDON_ID,
t as PARAM_KEY
};

View File

@@ -0,0 +1,155 @@
"use strict";
var O = Object.defineProperty;
var r = Object.getOwnPropertyDescriptor;
var D = Object.getOwnPropertyNames;
var I = Object.prototype.hasOwnProperty;
var o = (S, R) => {
for (var T in R)
O(S, T, { get: R[T], enumerable: !0 });
}, C = (S, R, T, N) => {
if (R && typeof R == "object" || typeof R == "function")
for (let _ of D(R))
!I.call(S, _) && _ !== T && O(S, _, { get: () => R[_], enumerable: !(N = r(R, _)) || N.enumerable });
return S;
};
var P = (S) => C(O({}, "__esModule", { value: !0 }), S);
// src/core-events/index.ts
var HE = {};
o(HE, {
ARGTYPES_INFO_REQUEST: () => aE,
ARGTYPES_INFO_RESPONSE: () => UE,
CHANNEL_CREATED: () => a,
CHANNEL_WS_DISCONNECT: () => Y,
CONFIG_ERROR: () => U,
CREATE_NEW_STORYFILE_REQUEST: () => H,
CREATE_NEW_STORYFILE_RESPONSE: () => G,
CURRENT_STORY_WAS_SET: () => W,
DOCS_PREPARED: () => d,
DOCS_RENDERED: () => t,
FILE_COMPONENT_SEARCH_REQUEST: () => p,
FILE_COMPONENT_SEARCH_RESPONSE: () => i,
FORCE_REMOUNT: () => l,
FORCE_RE_RENDER: () => F,
GLOBALS_UPDATED: () => y,
NAVIGATE_URL: () => e,
PLAY_FUNCTION_THREW_EXCEPTION: () => c,
PRELOAD_ENTRIES: () => f,
PREVIEW_BUILDER_PROGRESS: () => g,
PREVIEW_KEYDOWN: () => u,
REGISTER_SUBSCRIPTION: () => s,
REQUEST_WHATS_NEW_DATA: () => DE,
RESET_STORY_ARGS: () => x,
RESULT_WHATS_NEW_DATA: () => IE,
SAVE_STORY_REQUEST: () => LE,
SAVE_STORY_RESPONSE: () => YE,
SELECT_STORY: () => m,
SET_CONFIG: () => M,
SET_CURRENT_STORY: () => Q,
SET_FILTER: () => V,
SET_GLOBALS: () => w,
SET_INDEX: () => B,
SET_STORIES: () => X,
SET_WHATS_NEW_CACHE: () => oE,
SHARED_STATE_CHANGED: () => b,
SHARED_STATE_SET: () => q,
STORIES_COLLAPSE_ALL: () => K,
STORIES_EXPAND_ALL: () => j,
STORY_ARGS_UPDATED: () => k,
STORY_CHANGED: () => z,
STORY_ERRORED: () => J,
STORY_FINISHED: () => RE,
STORY_HOT_UPDATED: () => OE,
STORY_INDEX_INVALIDATED: () => Z,
STORY_MISSING: () => $,
STORY_PREPARED: () => n,
STORY_RENDERED: () => EE,
STORY_RENDER_PHASE_CHANGED: () => v,
STORY_SPECIFIED: () => SE,
STORY_THREW_EXCEPTION: () => _E,
STORY_UNCHANGED: () => TE,
TELEMETRY_ERROR: () => PE,
TOGGLE_WHATS_NEW_NOTIFICATIONS: () => CE,
UNHANDLED_ERRORS_WHILE_PLAYING: () => h,
UPDATE_GLOBALS: () => AE,
UPDATE_QUERY_PARAMS: () => NE,
UPDATE_STORY_ARGS: () => rE,
default: () => L
});
module.exports = P(HE);
var A = /* @__PURE__ */ ((E) => (E.CHANNEL_WS_DISCONNECT = "channelWSDisconnect", E.CHANNEL_CREATED = "channelCreated", E.CONFIG_ERROR = "co\
nfigError", E.STORY_INDEX_INVALIDATED = "storyIndexInvalidated", E.STORY_SPECIFIED = "storySpecified", E.SET_CONFIG = "setConfig", E.SET_STORIES =
"setStories", E.SET_INDEX = "setIndex", E.SET_CURRENT_STORY = "setCurrentStory", E.CURRENT_STORY_WAS_SET = "currentStoryWasSet", E.FORCE_RE_RENDER =
"forceReRender", E.FORCE_REMOUNT = "forceRemount", E.PRELOAD_ENTRIES = "preloadStories", E.STORY_PREPARED = "storyPrepared", E.DOCS_PREPARED =
"docsPrepared", E.STORY_CHANGED = "storyChanged", E.STORY_UNCHANGED = "storyUnchanged", E.STORY_RENDERED = "storyRendered", E.STORY_FINISHED =
"storyFinished", E.STORY_MISSING = "storyMissing", E.STORY_ERRORED = "storyErrored", E.STORY_THREW_EXCEPTION = "storyThrewException", E.STORY_RENDER_PHASE_CHANGED =
"storyRenderPhaseChanged", E.STORY_HOT_UPDATED = "storyHotUpdated", E.PLAY_FUNCTION_THREW_EXCEPTION = "playFunctionThrewException", E.UNHANDLED_ERRORS_WHILE_PLAYING =
"unhandledErrorsWhilePlaying", E.UPDATE_STORY_ARGS = "updateStoryArgs", E.STORY_ARGS_UPDATED = "storyArgsUpdated", E.RESET_STORY_ARGS = "res\
etStoryArgs", E.SET_FILTER = "setFilter", E.SET_GLOBALS = "setGlobals", E.UPDATE_GLOBALS = "updateGlobals", E.GLOBALS_UPDATED = "globalsUpda\
ted", E.REGISTER_SUBSCRIPTION = "registerSubscription", E.PREVIEW_KEYDOWN = "previewKeydown", E.PREVIEW_BUILDER_PROGRESS = "preview_builder_\
progress", E.SELECT_STORY = "selectStory", E.STORIES_COLLAPSE_ALL = "storiesCollapseAll", E.STORIES_EXPAND_ALL = "storiesExpandAll", E.DOCS_RENDERED =
"docsRendered", E.SHARED_STATE_CHANGED = "sharedStateChanged", E.SHARED_STATE_SET = "sharedStateSet", E.NAVIGATE_URL = "navigateUrl", E.UPDATE_QUERY_PARAMS =
"updateQueryParams", E.REQUEST_WHATS_NEW_DATA = "requestWhatsNewData", E.RESULT_WHATS_NEW_DATA = "resultWhatsNewData", E.SET_WHATS_NEW_CACHE =
"setWhatsNewCache", E.TOGGLE_WHATS_NEW_NOTIFICATIONS = "toggleWhatsNewNotifications", E.TELEMETRY_ERROR = "telemetryError", E.FILE_COMPONENT_SEARCH_REQUEST =
"fileComponentSearchRequest", E.FILE_COMPONENT_SEARCH_RESPONSE = "fileComponentSearchResponse", E.SAVE_STORY_REQUEST = "saveStoryRequest", E.
SAVE_STORY_RESPONSE = "saveStoryResponse", E.ARGTYPES_INFO_REQUEST = "argtypesInfoRequest", E.ARGTYPES_INFO_RESPONSE = "argtypesInfoResponse",
E.CREATE_NEW_STORYFILE_REQUEST = "createNewStoryfileRequest", E.CREATE_NEW_STORYFILE_RESPONSE = "createNewStoryfileResponse", E))(A || {}), L = A,
{
CHANNEL_WS_DISCONNECT: Y,
CHANNEL_CREATED: a,
CONFIG_ERROR: U,
CREATE_NEW_STORYFILE_REQUEST: H,
CREATE_NEW_STORYFILE_RESPONSE: G,
CURRENT_STORY_WAS_SET: W,
DOCS_PREPARED: d,
DOCS_RENDERED: t,
FILE_COMPONENT_SEARCH_REQUEST: p,
FILE_COMPONENT_SEARCH_RESPONSE: i,
FORCE_RE_RENDER: F,
FORCE_REMOUNT: l,
GLOBALS_UPDATED: y,
NAVIGATE_URL: e,
PLAY_FUNCTION_THREW_EXCEPTION: c,
UNHANDLED_ERRORS_WHILE_PLAYING: h,
PRELOAD_ENTRIES: f,
PREVIEW_BUILDER_PROGRESS: g,
PREVIEW_KEYDOWN: u,
REGISTER_SUBSCRIPTION: s,
RESET_STORY_ARGS: x,
SELECT_STORY: m,
SET_CONFIG: M,
SET_CURRENT_STORY: Q,
SET_FILTER: V,
SET_GLOBALS: w,
SET_INDEX: B,
SET_STORIES: X,
SHARED_STATE_CHANGED: b,
SHARED_STATE_SET: q,
STORIES_COLLAPSE_ALL: K,
STORIES_EXPAND_ALL: j,
STORY_ARGS_UPDATED: k,
STORY_CHANGED: z,
STORY_ERRORED: J,
STORY_INDEX_INVALIDATED: Z,
STORY_MISSING: $,
STORY_PREPARED: n,
STORY_RENDER_PHASE_CHANGED: v,
STORY_RENDERED: EE,
STORY_FINISHED: RE,
STORY_SPECIFIED: SE,
STORY_THREW_EXCEPTION: _E,
STORY_UNCHANGED: TE,
STORY_HOT_UPDATED: OE,
UPDATE_GLOBALS: AE,
UPDATE_QUERY_PARAMS: NE,
UPDATE_STORY_ARGS: rE,
REQUEST_WHATS_NEW_DATA: DE,
RESULT_WHATS_NEW_DATA: IE,
SET_WHATS_NEW_CACHE: oE,
TOGGLE_WHATS_NEW_NOTIFICATIONS: CE,
TELEMETRY_ERROR: PE,
SAVE_STORY_REQUEST: LE,
SAVE_STORY_RESPONSE: YE,
ARGTYPES_INFO_REQUEST: aE,
ARGTYPES_INFO_RESPONSE: UE
} = A;

View File

@@ -0,0 +1,350 @@
import { Report } from 'storybook/preview-api';
interface CreateNewStoryRequestPayload {
componentFilePath: string;
componentExportName: string;
componentIsDefaultExport: boolean;
componentExportCount: number;
}
interface CreateNewStoryResponsePayload {
storyId: string;
storyFilePath: string;
exportedStoryName: string;
}
type CreateNewStoryErrorPayload = {
type: 'STORY_FILE_EXISTS';
kind: string;
};
interface FileComponentSearchRequestPayload {
}
interface FileComponentSearchResponsePayload {
files: Array<{
filepath: string;
storyFileExists: boolean;
exportedComponents: Array<{
name: string;
default: boolean;
}> | null;
}> | null;
}
declare global {
interface SymbolConstructor {
readonly observable: symbol;
}
}
interface SBBaseType {
required?: boolean;
raw?: string;
}
type SBScalarType = SBBaseType & {
name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';
};
type SBArrayType = SBBaseType & {
name: 'array';
value: SBType;
};
type SBObjectType = SBBaseType & {
name: 'object';
value: Record<string, SBType>;
};
type SBEnumType = SBBaseType & {
name: 'enum';
value: (string | number)[];
};
type SBIntersectionType = SBBaseType & {
name: 'intersection';
value: SBType[];
};
type SBUnionType = SBBaseType & {
name: 'union';
value: SBType[];
};
type SBOtherType = SBBaseType & {
name: 'other';
value: string;
};
type SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;
type ControlType = 'object' | 'boolean' | 'check' | 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select' | 'number' | 'range' | 'file' | 'color' | 'date' | 'text';
type ConditionalTest = {
truthy?: boolean;
} | {
exists: boolean;
} | {
eq: any;
} | {
neq: any;
};
type ConditionalValue = {
arg: string;
} | {
global: string;
};
type Conditional = ConditionalValue & ConditionalTest;
interface ControlBase {
[key: string]: any;
/** @see https://storybook.js.org/docs/api/arg-types#controltype */
type?: ControlType;
disable?: boolean;
}
type Control = ControlType | false | (ControlBase & (ControlBase | {
type: 'color';
/** @see https://storybook.js.org/docs/api/arg-types#controlpresetcolors */
presetColors?: string[];
} | {
type: 'file';
/** @see https://storybook.js.org/docs/api/arg-types#controlaccept */
accept?: string;
} | {
type: 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select';
/** @see https://storybook.js.org/docs/api/arg-types#controllabels */
labels?: {
[options: string]: string;
};
} | {
type: 'number' | 'range';
/** @see https://storybook.js.org/docs/api/arg-types#controlmax */
max?: number;
/** @see https://storybook.js.org/docs/api/arg-types#controlmin */
min?: number;
/** @see https://storybook.js.org/docs/api/arg-types#controlstep */
step?: number;
}));
interface InputType {
/** @see https://storybook.js.org/docs/api/arg-types#control */
control?: Control;
/** @see https://storybook.js.org/docs/api/arg-types#description */
description?: string;
/** @see https://storybook.js.org/docs/api/arg-types#if */
if?: Conditional;
/** @see https://storybook.js.org/docs/api/arg-types#mapping */
mapping?: {
[key: string]: any;
};
/** @see https://storybook.js.org/docs/api/arg-types#name */
name?: string;
/** @see https://storybook.js.org/docs/api/arg-types#options */
options?: readonly any[];
/** @see https://storybook.js.org/docs/api/arg-types#table */
table?: {
[key: string]: unknown;
/** @see https://storybook.js.org/docs/api/arg-types#tablecategory */
category?: string;
/** @see https://storybook.js.org/docs/api/arg-types#tabledefaultvalue */
defaultValue?: {
summary?: string;
detail?: string;
};
/** @see https://storybook.js.org/docs/api/arg-types#tabledisable */
disable?: boolean;
/** @see https://storybook.js.org/docs/api/arg-types#tablesubcategory */
subcategory?: string;
/** @see https://storybook.js.org/docs/api/arg-types#tabletype */
type?: {
summary?: string;
detail?: string;
};
};
/** @see https://storybook.js.org/docs/api/arg-types#type */
type?: SBType | SBScalarType['name'];
/**
* @deprecated Use `table.defaultValue.summary` instead.
* @see https://storybook.js.org/docs/api/arg-types#defaultvalue
*/
defaultValue?: any;
[key: string]: any;
}
interface Args {
[name: string]: any;
}
/** @see https://storybook.js.org/docs/api/arg-types#argtypes */
type ArgTypes<TArgs = Args> = {
[name in keyof TArgs]: InputType;
};
interface ArgTypesRequestPayload {
storyId: string;
}
interface ArgTypesResponsePayload {
argTypes: ArgTypes;
}
type RequestData<Payload = void> = {
id: string;
payload: Payload;
};
type ResponseData<Payload = void, ErrorPayload extends Record<string, any> | void = void> = {
id: string;
success: true;
error: null;
payload: Payload;
} | {
id: string;
success: false;
error: string;
payload?: ErrorPayload;
};
interface SaveStoryRequestPayload {
args: string | undefined;
csfId: string;
importPath: string;
name?: string;
}
interface SaveStoryResponsePayload {
csfId: string;
newStoryId?: string;
newStoryName?: string;
newStoryExportName?: string;
sourceFileContent?: string;
sourceFileName?: string;
sourceStoryName?: string;
sourceStoryExportName?: string;
}
interface WhatsNewCache {
lastDismissedPost?: string;
lastReadPost?: string;
}
type WhatsNewData = {
status: 'SUCCESS';
title: string;
url: string;
blogUrl?: string;
publishedAt: string;
excerpt: string;
postIsRead: boolean;
showNotification: boolean;
disableWhatsNewNotifications: boolean;
} | {
status: 'ERROR';
};
interface StoryFinishedPayload {
storyId: string;
status: 'error' | 'success';
reporters: Report[];
}
declare enum events {
CHANNEL_WS_DISCONNECT = "channelWSDisconnect",
CHANNEL_CREATED = "channelCreated",
CONFIG_ERROR = "configError",
STORY_INDEX_INVALIDATED = "storyIndexInvalidated",
STORY_SPECIFIED = "storySpecified",
SET_CONFIG = "setConfig",
SET_STORIES = "setStories",
SET_INDEX = "setIndex",
SET_CURRENT_STORY = "setCurrentStory",
CURRENT_STORY_WAS_SET = "currentStoryWasSet",
FORCE_RE_RENDER = "forceReRender",
FORCE_REMOUNT = "forceRemount",
PRELOAD_ENTRIES = "preloadStories",
STORY_PREPARED = "storyPrepared",
DOCS_PREPARED = "docsPrepared",
STORY_CHANGED = "storyChanged",
STORY_UNCHANGED = "storyUnchanged",
STORY_RENDERED = "storyRendered",
STORY_FINISHED = "storyFinished",
STORY_MISSING = "storyMissing",
STORY_ERRORED = "storyErrored",
STORY_THREW_EXCEPTION = "storyThrewException",
STORY_RENDER_PHASE_CHANGED = "storyRenderPhaseChanged",
STORY_HOT_UPDATED = "storyHotUpdated",
PLAY_FUNCTION_THREW_EXCEPTION = "playFunctionThrewException",
UNHANDLED_ERRORS_WHILE_PLAYING = "unhandledErrorsWhilePlaying",
UPDATE_STORY_ARGS = "updateStoryArgs",
STORY_ARGS_UPDATED = "storyArgsUpdated",
RESET_STORY_ARGS = "resetStoryArgs",
SET_FILTER = "setFilter",
SET_GLOBALS = "setGlobals",
UPDATE_GLOBALS = "updateGlobals",
GLOBALS_UPDATED = "globalsUpdated",
REGISTER_SUBSCRIPTION = "registerSubscription",
PREVIEW_KEYDOWN = "previewKeydown",
PREVIEW_BUILDER_PROGRESS = "preview_builder_progress",
SELECT_STORY = "selectStory",
STORIES_COLLAPSE_ALL = "storiesCollapseAll",
STORIES_EXPAND_ALL = "storiesExpandAll",
DOCS_RENDERED = "docsRendered",
SHARED_STATE_CHANGED = "sharedStateChanged",
SHARED_STATE_SET = "sharedStateSet",
NAVIGATE_URL = "navigateUrl",
UPDATE_QUERY_PARAMS = "updateQueryParams",
REQUEST_WHATS_NEW_DATA = "requestWhatsNewData",
RESULT_WHATS_NEW_DATA = "resultWhatsNewData",
SET_WHATS_NEW_CACHE = "setWhatsNewCache",
TOGGLE_WHATS_NEW_NOTIFICATIONS = "toggleWhatsNewNotifications",
TELEMETRY_ERROR = "telemetryError",
FILE_COMPONENT_SEARCH_REQUEST = "fileComponentSearchRequest",
FILE_COMPONENT_SEARCH_RESPONSE = "fileComponentSearchResponse",
SAVE_STORY_REQUEST = "saveStoryRequest",
SAVE_STORY_RESPONSE = "saveStoryResponse",
ARGTYPES_INFO_REQUEST = "argtypesInfoRequest",
ARGTYPES_INFO_RESPONSE = "argtypesInfoResponse",
CREATE_NEW_STORYFILE_REQUEST = "createNewStoryfileRequest",
CREATE_NEW_STORYFILE_RESPONSE = "createNewStoryfileResponse"
}
declare const CHANNEL_WS_DISCONNECT: events;
declare const CHANNEL_CREATED: events;
declare const CONFIG_ERROR: events;
declare const CREATE_NEW_STORYFILE_REQUEST: events;
declare const CREATE_NEW_STORYFILE_RESPONSE: events;
declare const CURRENT_STORY_WAS_SET: events;
declare const DOCS_PREPARED: events;
declare const DOCS_RENDERED: events;
declare const FILE_COMPONENT_SEARCH_REQUEST: events;
declare const FILE_COMPONENT_SEARCH_RESPONSE: events;
declare const FORCE_RE_RENDER: events;
declare const FORCE_REMOUNT: events;
declare const GLOBALS_UPDATED: events;
declare const NAVIGATE_URL: events;
declare const PLAY_FUNCTION_THREW_EXCEPTION: events;
declare const UNHANDLED_ERRORS_WHILE_PLAYING: events;
declare const PRELOAD_ENTRIES: events;
declare const PREVIEW_BUILDER_PROGRESS: events;
declare const PREVIEW_KEYDOWN: events;
declare const REGISTER_SUBSCRIPTION: events;
declare const RESET_STORY_ARGS: events;
declare const SELECT_STORY: events;
declare const SET_CONFIG: events;
declare const SET_CURRENT_STORY: events;
declare const SET_FILTER: events;
declare const SET_GLOBALS: events;
declare const SET_INDEX: events;
declare const SET_STORIES: events;
declare const SHARED_STATE_CHANGED: events;
declare const SHARED_STATE_SET: events;
declare const STORIES_COLLAPSE_ALL: events;
declare const STORIES_EXPAND_ALL: events;
declare const STORY_ARGS_UPDATED: events;
declare const STORY_CHANGED: events;
declare const STORY_ERRORED: events;
declare const STORY_INDEX_INVALIDATED: events;
declare const STORY_MISSING: events;
declare const STORY_PREPARED: events;
declare const STORY_RENDER_PHASE_CHANGED: events;
declare const STORY_RENDERED: events;
declare const STORY_FINISHED: events;
declare const STORY_SPECIFIED: events;
declare const STORY_THREW_EXCEPTION: events;
declare const STORY_UNCHANGED: events;
declare const STORY_HOT_UPDATED: events;
declare const UPDATE_GLOBALS: events;
declare const UPDATE_QUERY_PARAMS: events;
declare const UPDATE_STORY_ARGS: events;
declare const REQUEST_WHATS_NEW_DATA: events;
declare const RESULT_WHATS_NEW_DATA: events;
declare const SET_WHATS_NEW_CACHE: events;
declare const TOGGLE_WHATS_NEW_NOTIFICATIONS: events;
declare const TELEMETRY_ERROR: events;
declare const SAVE_STORY_REQUEST: events;
declare const SAVE_STORY_RESPONSE: events;
declare const ARGTYPES_INFO_REQUEST: events;
declare const ARGTYPES_INFO_RESPONSE: events;
export { ARGTYPES_INFO_REQUEST, ARGTYPES_INFO_RESPONSE, type ArgTypesRequestPayload, type ArgTypesResponsePayload, CHANNEL_CREATED, CHANNEL_WS_DISCONNECT, CONFIG_ERROR, CREATE_NEW_STORYFILE_REQUEST, CREATE_NEW_STORYFILE_RESPONSE, CURRENT_STORY_WAS_SET, type CreateNewStoryErrorPayload, type CreateNewStoryRequestPayload, type CreateNewStoryResponsePayload, DOCS_PREPARED, DOCS_RENDERED, FILE_COMPONENT_SEARCH_REQUEST, FILE_COMPONENT_SEARCH_RESPONSE, FORCE_REMOUNT, FORCE_RE_RENDER, type FileComponentSearchRequestPayload, type FileComponentSearchResponsePayload, GLOBALS_UPDATED, NAVIGATE_URL, PLAY_FUNCTION_THREW_EXCEPTION, PRELOAD_ENTRIES, PREVIEW_BUILDER_PROGRESS, PREVIEW_KEYDOWN, REGISTER_SUBSCRIPTION, REQUEST_WHATS_NEW_DATA, RESET_STORY_ARGS, RESULT_WHATS_NEW_DATA, type RequestData, type ResponseData, SAVE_STORY_REQUEST, SAVE_STORY_RESPONSE, SELECT_STORY, SET_CONFIG, SET_CURRENT_STORY, SET_FILTER, SET_GLOBALS, SET_INDEX, SET_STORIES, SET_WHATS_NEW_CACHE, SHARED_STATE_CHANGED, SHARED_STATE_SET, STORIES_COLLAPSE_ALL, STORIES_EXPAND_ALL, STORY_ARGS_UPDATED, STORY_CHANGED, STORY_ERRORED, STORY_FINISHED, STORY_HOT_UPDATED, STORY_INDEX_INVALIDATED, STORY_MISSING, STORY_PREPARED, STORY_RENDERED, STORY_RENDER_PHASE_CHANGED, STORY_SPECIFIED, STORY_THREW_EXCEPTION, STORY_UNCHANGED, type SaveStoryRequestPayload, type SaveStoryResponsePayload, type StoryFinishedPayload, TELEMETRY_ERROR, TOGGLE_WHATS_NEW_NOTIFICATIONS, UNHANDLED_ERRORS_WHILE_PLAYING, UPDATE_GLOBALS, UPDATE_QUERY_PARAMS, UPDATE_STORY_ARGS, type WhatsNewCache, type WhatsNewData, events as default };

View File

@@ -0,0 +1,137 @@
// src/core-events/index.ts
var R = /* @__PURE__ */ ((E) => (E.CHANNEL_WS_DISCONNECT = "channelWSDisconnect", E.CHANNEL_CREATED = "channelCreated", E.CONFIG_ERROR = "co\
nfigError", E.STORY_INDEX_INVALIDATED = "storyIndexInvalidated", E.STORY_SPECIFIED = "storySpecified", E.SET_CONFIG = "setConfig", E.SET_STORIES =
"setStories", E.SET_INDEX = "setIndex", E.SET_CURRENT_STORY = "setCurrentStory", E.CURRENT_STORY_WAS_SET = "currentStoryWasSet", E.FORCE_RE_RENDER =
"forceReRender", E.FORCE_REMOUNT = "forceRemount", E.PRELOAD_ENTRIES = "preloadStories", E.STORY_PREPARED = "storyPrepared", E.DOCS_PREPARED =
"docsPrepared", E.STORY_CHANGED = "storyChanged", E.STORY_UNCHANGED = "storyUnchanged", E.STORY_RENDERED = "storyRendered", E.STORY_FINISHED =
"storyFinished", E.STORY_MISSING = "storyMissing", E.STORY_ERRORED = "storyErrored", E.STORY_THREW_EXCEPTION = "storyThrewException", E.STORY_RENDER_PHASE_CHANGED =
"storyRenderPhaseChanged", E.STORY_HOT_UPDATED = "storyHotUpdated", E.PLAY_FUNCTION_THREW_EXCEPTION = "playFunctionThrewException", E.UNHANDLED_ERRORS_WHILE_PLAYING =
"unhandledErrorsWhilePlaying", E.UPDATE_STORY_ARGS = "updateStoryArgs", E.STORY_ARGS_UPDATED = "storyArgsUpdated", E.RESET_STORY_ARGS = "res\
etStoryArgs", E.SET_FILTER = "setFilter", E.SET_GLOBALS = "setGlobals", E.UPDATE_GLOBALS = "updateGlobals", E.GLOBALS_UPDATED = "globalsUpda\
ted", E.REGISTER_SUBSCRIPTION = "registerSubscription", E.PREVIEW_KEYDOWN = "previewKeydown", E.PREVIEW_BUILDER_PROGRESS = "preview_builder_\
progress", E.SELECT_STORY = "selectStory", E.STORIES_COLLAPSE_ALL = "storiesCollapseAll", E.STORIES_EXPAND_ALL = "storiesExpandAll", E.DOCS_RENDERED =
"docsRendered", E.SHARED_STATE_CHANGED = "sharedStateChanged", E.SHARED_STATE_SET = "sharedStateSet", E.NAVIGATE_URL = "navigateUrl", E.UPDATE_QUERY_PARAMS =
"updateQueryParams", E.REQUEST_WHATS_NEW_DATA = "requestWhatsNewData", E.RESULT_WHATS_NEW_DATA = "resultWhatsNewData", E.SET_WHATS_NEW_CACHE =
"setWhatsNewCache", E.TOGGLE_WHATS_NEW_NOTIFICATIONS = "toggleWhatsNewNotifications", E.TELEMETRY_ERROR = "telemetryError", E.FILE_COMPONENT_SEARCH_REQUEST =
"fileComponentSearchRequest", E.FILE_COMPONENT_SEARCH_RESPONSE = "fileComponentSearchResponse", E.SAVE_STORY_REQUEST = "saveStoryRequest", E.
SAVE_STORY_RESPONSE = "saveStoryResponse", E.ARGTYPES_INFO_REQUEST = "argtypesInfoRequest", E.ARGTYPES_INFO_RESPONSE = "argtypesInfoResponse",
E.CREATE_NEW_STORYFILE_REQUEST = "createNewStoryfileRequest", E.CREATE_NEW_STORYFILE_RESPONSE = "createNewStoryfileResponse", E))(R || {}), S = R,
{
CHANNEL_WS_DISCONNECT: _,
CHANNEL_CREATED: T,
CONFIG_ERROR: O,
CREATE_NEW_STORYFILE_REQUEST: A,
CREATE_NEW_STORYFILE_RESPONSE: N,
CURRENT_STORY_WAS_SET: r,
DOCS_PREPARED: D,
DOCS_RENDERED: I,
FILE_COMPONENT_SEARCH_REQUEST: o,
FILE_COMPONENT_SEARCH_RESPONSE: C,
FORCE_RE_RENDER: P,
FORCE_REMOUNT: L,
GLOBALS_UPDATED: Y,
NAVIGATE_URL: a,
PLAY_FUNCTION_THREW_EXCEPTION: U,
UNHANDLED_ERRORS_WHILE_PLAYING: H,
PRELOAD_ENTRIES: G,
PREVIEW_BUILDER_PROGRESS: W,
PREVIEW_KEYDOWN: d,
REGISTER_SUBSCRIPTION: t,
RESET_STORY_ARGS: p,
SELECT_STORY: i,
SET_CONFIG: F,
SET_CURRENT_STORY: l,
SET_FILTER: y,
SET_GLOBALS: e,
SET_INDEX: c,
SET_STORIES: h,
SHARED_STATE_CHANGED: f,
SHARED_STATE_SET: g,
STORIES_COLLAPSE_ALL: u,
STORIES_EXPAND_ALL: s,
STORY_ARGS_UPDATED: x,
STORY_CHANGED: m,
STORY_ERRORED: M,
STORY_INDEX_INVALIDATED: Q,
STORY_MISSING: V,
STORY_PREPARED: w,
STORY_RENDER_PHASE_CHANGED: B,
STORY_RENDERED: X,
STORY_FINISHED: b,
STORY_SPECIFIED: q,
STORY_THREW_EXCEPTION: K,
STORY_UNCHANGED: j,
STORY_HOT_UPDATED: k,
UPDATE_GLOBALS: z,
UPDATE_QUERY_PARAMS: J,
UPDATE_STORY_ARGS: Z,
REQUEST_WHATS_NEW_DATA: $,
RESULT_WHATS_NEW_DATA: n,
SET_WHATS_NEW_CACHE: v,
TOGGLE_WHATS_NEW_NOTIFICATIONS: EE,
TELEMETRY_ERROR: RE,
SAVE_STORY_REQUEST: SE,
SAVE_STORY_RESPONSE: _E,
ARGTYPES_INFO_REQUEST: TE,
ARGTYPES_INFO_RESPONSE: OE
} = R;
export {
TE as ARGTYPES_INFO_REQUEST,
OE as ARGTYPES_INFO_RESPONSE,
T as CHANNEL_CREATED,
_ as CHANNEL_WS_DISCONNECT,
O as CONFIG_ERROR,
A as CREATE_NEW_STORYFILE_REQUEST,
N as CREATE_NEW_STORYFILE_RESPONSE,
r as CURRENT_STORY_WAS_SET,
D as DOCS_PREPARED,
I as DOCS_RENDERED,
o as FILE_COMPONENT_SEARCH_REQUEST,
C as FILE_COMPONENT_SEARCH_RESPONSE,
L as FORCE_REMOUNT,
P as FORCE_RE_RENDER,
Y as GLOBALS_UPDATED,
a as NAVIGATE_URL,
U as PLAY_FUNCTION_THREW_EXCEPTION,
G as PRELOAD_ENTRIES,
W as PREVIEW_BUILDER_PROGRESS,
d as PREVIEW_KEYDOWN,
t as REGISTER_SUBSCRIPTION,
$ as REQUEST_WHATS_NEW_DATA,
p as RESET_STORY_ARGS,
n as RESULT_WHATS_NEW_DATA,
SE as SAVE_STORY_REQUEST,
_E as SAVE_STORY_RESPONSE,
i as SELECT_STORY,
F as SET_CONFIG,
l as SET_CURRENT_STORY,
y as SET_FILTER,
e as SET_GLOBALS,
c as SET_INDEX,
h as SET_STORIES,
v as SET_WHATS_NEW_CACHE,
f as SHARED_STATE_CHANGED,
g as SHARED_STATE_SET,
u as STORIES_COLLAPSE_ALL,
s as STORIES_EXPAND_ALL,
x as STORY_ARGS_UPDATED,
m as STORY_CHANGED,
M as STORY_ERRORED,
b as STORY_FINISHED,
k as STORY_HOT_UPDATED,
Q as STORY_INDEX_INVALIDATED,
V as STORY_MISSING,
w as STORY_PREPARED,
X as STORY_RENDERED,
B as STORY_RENDER_PHASE_CHANGED,
q as STORY_SPECIFIED,
K as STORY_THREW_EXCEPTION,
j as STORY_UNCHANGED,
RE as TELEMETRY_ERROR,
EE as TOGGLE_WHATS_NEW_NOTIFICATIONS,
H as UNHANDLED_ERRORS_WHILE_PLAYING,
z as UPDATE_GLOBALS,
J as UPDATE_QUERY_PARAMS,
Z as UPDATE_STORY_ARGS,
S as default
};

38501
frontend/node_modules/storybook/dist/core-server/index.cjs generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

38596
frontend/node_modules/storybook/dist/core-server/index.js generated vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,170 @@
/* ../node_modules/@devtools-ds/tree/dist/main.css */
.Tree-tree-fbbbe38 {
width: 100%;
font-family: Menlo, monospace;
}
.Tree-item-353d6f3 {
list-style: none;
}
.Tree-group-d3c3d8a {
margin: 0;
padding: 0;
list-style: none;
}
.Tree-group-d3c3d8a .Tree-label-d819155 {
cursor: default;
line-height: 1.5;
width: 100%;
display: inline-block;
outline: 0;
padding-left: 5px;
}
.Tree-group-d3c3d8a .Tree-label-d819155:focus {
background-color: var(--focusColor,#007feb);
color: var(--focusTextColor,undefined);
}
.Tree-group-d3c3d8a .Tree-label-d819155:focus.Tree-focusWhite-f1e00c2 * {
color: #fff;
}
.Tree-group-d3c3d8a .Tree-label-d819155:focus.Tree-focusWhite-f1e00c2 .Tree-arrow-03ab2e7 {
border-color: transparent transparent transparent #fff;
}
.Tree-group-d3c3d8a .Tree-label-d819155.Tree-hover-3cc4e5d:hover:not(:focus) {
background-color: var(--hoverColor,#f2fafe);
border-radius: var(--hoverRadius,0);
}
.Tree-arrow-03ab2e7 {
margin: 0 .7em 0 .1em;
display: inline-block;
width: 0;
height: 0;
border-style: solid;
border-width: .4em 0 .4em .4em;
border-color: transparent transparent transparent var(--arrowColor,#bebec0);
vertical-align: baseline;
}
.Tree-arrow-03ab2e7.Tree-open-3f1a336 {
transform: rotate(90deg);
bottom: -.05em;
}
@media screen and (prefers-reduced-motion:reduce) {
.Tree-arrow-03ab2e7 {
transition: none;
}
}
.Tree-dark-1b4aa00 {
--focusColor:#235895;
--hoverColor:#27272C;
--arrowColor:#9D9D9E;
}
.Tree-chrome-bcbcac6.Tree-light-09174ee {
--focusColor:#CFE8FC;
--hoverColor:#EDF2FC;
--arrowColor:#8E8E8E;
--hoverRadius:6px;
}
.Tree-chrome-bcbcac6.Tree-dark-1b4aa00 {
--focusColor:#093D69;
--hoverColor:#192538;
--arrowColor:#B7B7B7;
}
/* ../node_modules/@devtools-ds/object-inspector/dist/main.css */
.ObjectInspector-object-inspector-0c33e82 {
width: 100%;
font-family: Menlo, monospace;
color: var(--textColor);
}
.ObjectInspector-object-label-b81482b {
color: var(--labelColor,#0a66e6);
}
.ObjectInspector-text-25f57f3 {
color: var(--textColor);
}
.ObjectInspector-key-4f712bb {
color: var(--keyColor,#0a66e6);
}
.ObjectInspector-value-f7ec2e5 {
color: var(--valueColor,#e51ebb);
}
.ObjectInspector-string-c496000 {
color: var(--stringColor,#e51ebb);
}
.ObjectInspector-regex-59d45a3 {
color: var(--regexColor,#0a66e6);
}
.ObjectInspector-error-b818698 {
color: var(--errorColor,#b30000);
}
.ObjectInspector-boolean-2dd1642 {
color: var(--booleanColor,#117c04);
}
.ObjectInspector-number-a6daabb {
color: var(--numberColor,#117c04);
}
.ObjectInspector-undefined-3a68263 {
color: var(--undefinedColor,#6a6a6a);
}
.ObjectInspector-null-74acb50 {
color: var(--nullColor,#6a6a6a);
}
.ObjectInspector-function-07bbdcd {
color: var(--functionColor,#0a66e6);
}
.ObjectInspector-function-decorator-3d22c24 {
color: var(--functionDecoratorColor,#0a66e6);
}
.ObjectInspector-prototype-f2449ee {
color: var(--prototypeColor,#6a6a6a);
}
:root {
--textColor:#6A6A6A;
}
.ObjectInspector-dark-0c96c97 {
--labelColor:#6FB9FF;
--textColor:#9D9D9E;
--keyColor:#6FB9FF;
--valueColor:#EB7ED9;
--stringColor:#EB7ED9;
--regexColor:#6FB9FF;
--errorColor:#FFAED3;
--booleanColor:#81DF6C;
--numberColor:#81DF6C;
--undefinedColor:#9D9D9E;
--nullColor:#9D9D9E;
--prototypeColor:#9D9D9E;
--functionColor:#6FB9FF;
--functionDecoratorColor:#6FB9FF;
}
.ObjectInspector-chrome-2f3ca98.ObjectInspector-light-78bef54 {
--labelColor:#444444;
--textColor:#8E8E8E;
--keyColor:#881280;
--valueColor:#8E8E8E;
--stringColor:#CF4B49;
--regexColor:#CF4B49;
--errorColor:#FF0000;
--booleanColor:#3646B6;
--numberColor:#2D0BC9;
--undefinedColor:#444444;
--nullColor:#444444;
--prototypeColor:#BD84C2;
--functionColor:#303942;
--functionDecoratorColor:#3646B6;
}
.ObjectInspector-chrome-2f3ca98.ObjectInspector-dark-0c96c97 {
--labelColor:#C8C8C8;
--textColor:#EDEEEE;
--keyColor:#F6D9F8;
--valueColor:#C8C8C8;
--stringColor:#EE8953;
--regexColor:#EE8953;
--errorColor:#FD7E7E;
--booleanColor:#987FFD;
--numberColor:#987FFD;
--undefinedColor:#848484;
--nullColor:#848484;
--prototypeColor:#AB98AC;
--functionColor:#EDEEEE;
--functionDecoratorColor:#D0D6FB;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1445
frontend/node_modules/storybook/dist/csf-tools/index.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,246 @@
import { types, NodePath, GeneratorOptions, generate, RecastOptions } from 'storybook/internal/babel';
export { babelParse } from 'storybook/internal/babel';
import { ComponentAnnotations, StoryAnnotations, IndexInputStats, IndexedCSFFile, IndexInput, StoriesEntry, Tag } from 'storybook/internal/types';
interface PrintResultType {
code: string;
map?: any;
toString(): string;
}
interface BabelFile {
ast: types.File;
opts: any;
hub: any;
metadata: object;
path: any;
scope: any;
inputMap: object | null;
code: string;
}
declare const isValidPreviewPath: (filepath: string) => boolean;
declare const isModuleMock: (importPath: string) => boolean;
interface CsfOptions {
fileName?: string;
makeTitle: (userTitle: string) => string;
/**
* If an inline meta is detected e.g. `export default { title: 'foo' }` it will be transformed
* into a constant format e.g. `export const _meta = { title: 'foo' }; export default _meta;`
*/
transformInlineMeta?: boolean;
}
declare class NoMetaError extends Error {
constructor(message: string, ast: types.Node, fileName?: string);
}
declare class MultipleMetaError extends Error {
constructor(message: string, ast: types.Node, fileName?: string);
}
declare class MixedFactoryError extends Error {
constructor(message: string, ast: types.Node, fileName?: string);
}
declare class BadMetaError extends Error {
constructor(message: string, ast: types.Node, fileName?: string);
}
interface StaticMeta extends Pick<ComponentAnnotations, 'id' | 'title' | 'includeStories' | 'excludeStories' | 'tags'> {
component?: string;
}
interface StaticStory extends Pick<StoryAnnotations, 'name' | 'parameters' | 'tags'> {
id: string;
localName?: string;
__stats: IndexInputStats;
}
declare class CsfFile {
_ast: types.File;
_file: BabelFile;
_options: CsfOptions;
_rawComponentPath?: string;
_meta?: StaticMeta;
_stories: Record<string, StaticStory>;
_metaAnnotations: Record<string, types.Node>;
_storyExports: Record<string, types.VariableDeclarator | types.FunctionDeclaration>;
_storyPaths: Record<string, NodePath<types.ExportNamedDeclaration>>;
_metaStatement: types.Statement | undefined;
_metaNode: types.Expression | undefined;
_metaPath: NodePath<types.ExportDefaultDeclaration> | undefined;
_metaVariableName: string | undefined;
_metaIsFactory: boolean | undefined;
_storyStatements: Record<string, types.ExportNamedDeclaration | types.Expression>;
_storyAnnotations: Record<string, Record<string, types.Node>>;
_templates: Record<string, types.Expression>;
_namedExportsOrder?: string[];
imports: string[];
constructor(ast: types.File, options: CsfOptions, file: BabelFile);
_parseTitle(value: types.Node): string;
_parseMeta(declaration: types.ObjectExpression, program: types.Program): void;
getStoryExport(key: string): types.Node;
parse(): CsfFile & IndexedCSFFile;
get meta(): StaticMeta | undefined;
get stories(): StaticStory[];
get indexInputs(): IndexInput[];
}
/** Using new babel.File is more powerful and give access to API such as buildCodeFrameError */
declare const babelParseFile: ({ code, filename, ast, }: {
code: string;
filename?: string;
ast?: types.File;
}) => BabelFile;
declare const loadCsf: (code: string, options: CsfOptions) => CsfFile;
declare const formatCsf: (csf: CsfFile, options?: GeneratorOptions & {
inputSourceMap?: any;
}, code?: string) => ReturnType<typeof generate> | string;
/** Use this function, if you want to preserve styles. Uses recast under the hood. */
declare const printCsf: (csf: CsfFile, options?: RecastOptions) => PrintResultType;
declare const readCsf: (fileName: string, options: CsfOptions) => Promise<CsfFile>;
declare const writeCsf: (csf: CsfFile, fileName?: string) => Promise<void>;
declare const _getPathProperties: (path: string[], node: types.Node) => types.ObjectProperty[] | undefined;
declare class ConfigFile {
_ast: types.File;
_code: string;
_exports: Record<string, types.Expression>;
_exportDecls: Record<string, types.VariableDeclarator | types.FunctionDeclaration>;
_exportsObject: types.ObjectExpression | undefined;
_quotes: 'single' | 'double' | undefined;
fileName?: string;
hasDefaultExport: boolean;
constructor(ast: types.File, code: string, fileName?: string);
_parseExportsObject(exportsObject: types.ObjectExpression): void;
parse(): this;
getFieldNode(path: string[]): types.Node | undefined;
getFieldProperties(path: string[]): ReturnType<typeof _getPathProperties>;
getFieldValue<T = any>(path: string[]): T | undefined;
getSafeFieldValue(path: string[]): any;
setFieldNode(path: string[], expr: types.Expression): void;
/**
* @example
*
* ```ts
* // 1. { framework: 'framework-name' }
* // 2. { framework: { name: 'framework-name', options: {} }
* getNameFromPath(['framework']); // => 'framework-name'
* ```
*
* @returns The name of a node in a given path, supporting the following formats:
*/
getNameFromPath(path: string[]): string | undefined;
/**
* Returns an array of names of a node in a given path, supporting the following formats:
*
* @example
*
* ```ts
* const config = {
* addons: ['first-addon', { name: 'second-addon', options: {} }],
* };
* // => ['first-addon', 'second-addon']
* getNamesFromPath(['addons']);
* ```
*/
getNamesFromPath(path: string[]): string[] | undefined;
_getPnpWrappedValue(node: types.Node): string | undefined;
/**
* Given a node and a fallback property, returns a **non-evaluated** string value of the node.
*
* 1. `{ node: 'value' }`
* 2. `{ node: { fallbackProperty: 'value' } }`
*/
_getPresetValue(node: types.Node, fallbackProperty: string): string;
removeField(path: string[]): void;
appendValueToArray(path: string[], value: any): void;
appendNodeToArray(path: string[], node: types.Expression): void;
/**
* Specialized helper to remove addons or other array entries that can either be strings or
* objects with a name property.
*/
removeEntryFromArray(path: string[], value: string): void;
_inferQuotes(): "single" | "double";
valueToNode(value: any): types.Expression | undefined;
setFieldValue(path: string[], value: any): void;
getBodyDeclarations(): types.Statement[];
setBodyDeclaration(declaration: types.Declaration): void;
/**
* Import specifiers for a specific require import
*
* @example
*
* ```ts
* // const { foo } = require('bar');
* setRequireImport(['foo'], 'bar');
*
* // const foo = require('bar');
* setRequireImport('foo', 'bar');
* ```
*
* @param importSpecifiers - The import specifiers to set. If a string is passed in, a default
* import will be set. Otherwise, an array of named imports will be set
* @param fromImport - The module to import from
*/
setRequireImport(importSpecifier: string[] | string, fromImport: string): void;
/**
* Set import specifiers for a given import statement.
*
* Does not support setting type imports (yet)
*
* @example
*
* ```ts
* // import { foo } from 'bar';
* setImport(['foo'], 'bar');
*
* // import foo from 'bar';
* setImport('foo', 'bar');
*
* // import * as foo from 'bar';
* setImport({ namespace: 'foo' }, 'bar');
*
* // import 'bar';
* setImport(null, 'bar');
* ```
*
* @param importSpecifiers - The import specifiers to set. If a string is passed in, a default
* import will be set. Otherwise, an array of named imports will be set
* @param fromImport - The module to import from
*/
setImport(importSpecifier: string[] | string | {
namespace: string;
} | null, fromImport: string): void;
}
declare const loadConfig: (code: string, fileName?: string) => ConfigFile;
declare const formatConfig: (config: ConfigFile) => string;
declare const printConfig: (config: ConfigFile, options?: RecastOptions) => PrintResultType;
declare const readConfig: (fileName: string) => Promise<ConfigFile>;
declare const writeConfig: (config: ConfigFile, fileName?: string) => Promise<void>;
declare const isCsfFactoryPreview: (previewConfig: ConfigFile) => boolean;
declare const getStorySortParameter: (previewCode: string) => any;
interface EnrichCsfOptions {
disableSource?: boolean;
disableDescription?: boolean;
}
declare const enrichCsfStory: (csf: CsfFile, csfSource: CsfFile, key: string, options?: EnrichCsfOptions) => void;
declare const enrichCsfMeta: (csf: CsfFile, csfSource: CsfFile, options?: EnrichCsfOptions) => void;
declare const enrichCsf: (csf: CsfFile, csfSource: CsfFile, options?: EnrichCsfOptions) => void;
declare const extractSource: (node: types.Node) => string;
declare const extractDescription: (node?: types.Node) => string;
type TagsFilter = {
include: string[];
exclude: string[];
skip: string[];
};
/**
* TODO: the functionality in this file can be moved back to the vitest plugin itself It can use
* `storybook/internal/babel` for all it's babel needs, without duplicating babel embedding in our
* bundles.
*/
declare function vitestTransform({ code, fileName, configDir, stories, tagsFilter, previewLevelTags, }: {
code: string;
fileName: string;
configDir: string;
tagsFilter: TagsFilter;
stories: StoriesEntry[];
previewLevelTags: Tag[];
}): Promise<ReturnType<typeof formatCsf>>;
export { BadMetaError, ConfigFile, CsfFile, type CsfOptions, type EnrichCsfOptions, MixedFactoryError, MultipleMetaError, NoMetaError, type StaticMeta, type StaticStory, babelParseFile, enrichCsf, enrichCsfMeta, enrichCsfStory, extractDescription, extractSource, formatConfig, formatCsf, getStorySortParameter, isCsfFactoryPreview, isModuleMock, isValidPreviewPath, loadConfig, loadCsf, printConfig, printCsf, readConfig, readCsf, vitestTransform, writeConfig, writeCsf };

1464
frontend/node_modules/storybook/dist/csf-tools/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

179
frontend/node_modules/storybook/dist/csf/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,179 @@
"use strict";
var v = Object.create;
var d = Object.defineProperty;
var j = Object.getOwnPropertyDescriptor;
var _ = Object.getOwnPropertyNames;
var C = Object.getPrototypeOf, E = Object.prototype.hasOwnProperty;
var a = (e, r) => d(e, "name", { value: r, configurable: !0 });
var P = (e, r) => () => (r || e((r = { exports: {} }).exports, r), r.exports), z = (e, r) => {
for (var t in r)
d(e, t, { get: r[t], enumerable: !0 });
}, x = (e, r, t, n) => {
if (r && typeof r == "object" || typeof r == "function")
for (let s of _(r))
!E.call(e, s) && s !== t && d(e, s, { get: () => r[s], enumerable: !(n = j(r, s)) || n.enumerable });
return e;
};
var I = (e, r, t) => (t = e != null ? v(C(e)) : {}, x(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
r || !e || !e.__esModule ? d(t, "default", { value: e, enumerable: !0 }) : t,
e
)), M = (e) => x(d({}, "__esModule", { value: !0 }), e);
// ../node_modules/@ngard/tiny-isequal/index.js
var w = P((g) => {
Object.defineProperty(g, "__esModule", { value: !0 }), g.isEqual = /* @__PURE__ */ function() {
var e = Object.prototype.toString, r = Object.getPrototypeOf, t = Object.getOwnPropertySymbols ? function(n) {
return Object.keys(n).concat(Object.getOwnPropertySymbols(n));
} : Object.keys;
return function(n, s) {
return (/* @__PURE__ */ a(function l(o, i, p) {
var c, f, u, A = e.call(o), $ = e.call(i);
if (o === i) return !0;
if (o == null || i == null) return !1;
if (p.indexOf(o) > -1 && p.indexOf(i) > -1) return !0;
if (p.push(o, i), A != $ || (c = t(o), f = t(i), c.length != f.length || c.some(function(m) {
return !l(o[m], i[m], p);
}))) return !1;
switch (A.slice(8, -1)) {
case "Symbol":
return o.valueOf() == i.valueOf();
case "Date":
case "Number":
return +o == +i || +o != +o && +i != +i;
case "RegExp":
case "Function":
case "String":
case "Boolean":
return "" + o == "" + i;
case "Set":
case "Map":
c = o.entries(), f = i.entries();
do
if (!l((u = c.next()).value, f.next().value, p)) return !1;
while (!u.done);
return !0;
case "ArrayBuffer":
o = new Uint8Array(o), i = new Uint8Array(i);
case "DataView":
o = new Uint8Array(o.buffer), i = new Uint8Array(i.buffer);
case "Float32Array":
case "Float64Array":
case "Int8Array":
case "Int16Array":
case "Int32Array":
case "Uint8Array":
case "Uint16Array":
case "Uint32Array":
case "Uint8ClampedArray":
case "Arguments":
case "Array":
if (o.length != i.length) return !1;
for (u = 0; u < o.length; u++) if ((u in o || u in i) && (u in o != u in i || !l(o[u], i[u], p))) return !1;
return !0;
case "Object":
return l(r(o), r(i), p);
default:
return !1;
}
}, "n"))(n, s, []);
};
}();
});
// src/csf/index.ts
var V = {};
z(V, {
combineTags: () => J,
includeConditionalArg: () => T,
isExportStory: () => F,
isMeta: () => D,
isPreview: () => U,
isStory: () => B,
parseKind: () => G,
sanitize: () => O,
storyNameFromExport: () => q,
toId: () => k
});
module.exports = M(V);
// src/csf/toStartCaseStr.ts
function S(e) {
return e.replace(/_/g, " ").replace(/-/g, " ").replace(/\./g, " ").replace(/([^\n])([A-Z])([a-z])/g, (r, t, n, s) => `${t} ${n}${s}`).replace(
/([a-z])([A-Z])/g, (r, t, n) => `${t} ${n}`).replace(/([a-z])([0-9])/gi, (r, t, n) => `${t} ${n}`).replace(/([0-9])([a-z])/gi, (r, t, n) => `${t}\
${n}`).replace(/(\s|^)(\w)/g, (r, t, n) => `${t}${n.toUpperCase()}`).replace(/ +/g, " ").trim();
}
a(S, "toStartCaseStr");
// src/csf/includeConditionalArg.ts
var y = I(w(), 1);
var R = /* @__PURE__ */ a((e) => e.map((r) => typeof r < "u").filter(Boolean).length, "count"), N = /* @__PURE__ */ a((e, r) => {
let { exists: t, eq: n, neq: s, truthy: l } = e;
if (R([t, n, s, l]) > 1)
throw new Error(`Invalid conditional test ${JSON.stringify({ exists: t, eq: n, neq: s })}`);
if (typeof n < "u")
return (0, y.isEqual)(r, n);
if (typeof s < "u")
return !(0, y.isEqual)(r, s);
if (typeof t < "u") {
let i = typeof r < "u";
return t ? i : !i;
}
return (typeof l > "u" ? !0 : l) ? !!r : !r;
}, "testValue"), T = /* @__PURE__ */ a((e, r, t) => {
if (!e.if)
return !0;
let { arg: n, global: s } = e.if;
if (R([n, s]) !== 1)
throw new Error(`Invalid conditional value ${JSON.stringify({ arg: n, global: s })}`);
let l = n ? r[n] : t[s];
return N(e.if, l);
}, "includeConditionalArg");
// src/csf/csf-factories.ts
function U(e) {
return e != null && typeof e == "object" && "_tag" in e && e?._tag === "Preview";
}
a(U, "isPreview");
function D(e) {
return e != null && typeof e == "object" && "_tag" in e && e?._tag === "Meta";
}
a(D, "isMeta");
function B(e) {
return e != null && typeof e == "object" && "_tag" in e && e?._tag === "Story";
}
a(B, "isStory");
// src/csf/index.ts
var O = /* @__PURE__ */ a((e) => e.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, "-").replace(/-+/g,
"-").replace(/^-+/, "").replace(/-+$/, ""), "sanitize"), b = /* @__PURE__ */ a((e, r) => {
let t = O(e);
if (t === "")
throw new Error(`Invalid ${r} '${e}', must include alphanumeric characters`);
return t;
}, "sanitizeSafe"), k = /* @__PURE__ */ a((e, r) => `${b(e, "kind")}${r ? `--${b(r, "name")}` : ""}`, "toId"), q = /* @__PURE__ */ a((e) => S(
e), "storyNameFromExport");
function h(e, r) {
return Array.isArray(r) ? r.includes(e) : e.match(r);
}
a(h, "matches");
function F(e, { includeStories: r, excludeStories: t }) {
return (
// https://babeljs.io/docs/en/babel-plugin-transform-modules-commonjs
e !== "__esModule" && (!r || h(e, r)) && (!t || !h(e, t))
);
}
a(F, "isExportStory");
var G = /* @__PURE__ */ a((e, { rootSeparator: r, groupSeparator: t }) => {
let [n, s] = e.split(r, 2), l = (s || e).split(t).filter((o) => !!o);
return {
root: s ? n : null,
groups: l
};
}, "parseKind"), J = /* @__PURE__ */ a((...e) => {
let r = e.reduce((t, n) => (n.startsWith("!") ? t.delete(n.slice(1)) : t.add(n), t), /* @__PURE__ */ new Set());
return Array.from(r);
}, "combineTags");

750
frontend/node_modules/storybook/dist/csf/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,750 @@
import { Renderer as Renderer$1, ProjectAnnotations as ProjectAnnotations$1, NormalizedProjectAnnotations, ComponentAnnotations as ComponentAnnotations$1, Args as Args$1, NormalizedComponentAnnotations, StoryAnnotations as StoryAnnotations$1, NormalizedStoryAnnotations } from 'storybook/internal/types';
declare global {
interface SymbolConstructor {
readonly observable: symbol;
}
}
/**
@see Simplify
*/
interface SimplifyOptions {
/**
Do the simplification recursively.
@default false
*/
deep?: boolean;
}
// Flatten a type without worrying about the result.
type Flatten<
AnyType,
Options extends SimplifyOptions = {},
> = Options['deep'] extends true
? {[KeyType in keyof AnyType]: Simplify<AnyType[KeyType], Options>}
: {[KeyType in keyof AnyType]: AnyType[KeyType]};
/**
Useful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.
@example
```
import type {Simplify} from 'type-fest';
type PositionProps = {
top: number;
left: number;
};
type SizeProps = {
width: number;
height: number;
};
// In your editor, hovering over `Props` will show a flattened object with all the properties.
type Props = Simplify<PositionProps & SizeProps>;
```
Sometimes it is desired to pass a value as a function argument that has a different type. At first inspection it may seem assignable, and then you discover it is not because the `value`'s type definition was defined as an interface. In the following example, `fn` requires an argument of type `Record<string, unknown>`. If the value is defined as a literal, then it is assignable. And if the `value` is defined as type using the `Simplify` utility the value is assignable. But if the `value` is defined as an interface, it is not assignable because the interface is not sealed and elsewhere a non-string property could be added to the interface.
If the type definition must be an interface (perhaps it was defined in a third-party npm package), then the `value` can be defined as `const value: Simplify<SomeInterface> = ...`. Then `value` will be assignable to the `fn` argument. Or the `value` can be cast as `Simplify<SomeInterface>` if you can't re-declare the `value`.
@example
```
import type {Simplify} from 'type-fest';
interface SomeInterface {
foo: number;
bar?: string;
baz: number | undefined;
}
type SomeType = {
foo: number;
bar?: string;
baz: number | undefined;
};
const literal = {foo: 123, bar: 'hello', baz: 456};
const someType: SomeType = literal;
const someInterface: SomeInterface = literal;
function fn(object: Record<string, unknown>): void {}
fn(literal); // Good: literal object type is sealed
fn(someType); // Good: type is sealed
fn(someInterface); // Error: Index signature for type 'string' is missing in type 'someInterface'. Because `interface` can be re-opened
fn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface` into a `type`
```
@link https://github.com/microsoft/TypeScript/issues/15300
@category Object
*/
type Simplify<
AnyType,
Options extends SimplifyOptions = {},
> = Flatten<AnyType> extends AnyType
? Flatten<AnyType, Options>
: AnyType;
/**
Remove any index signatures from the given object type, so that only explicitly defined properties remain.
Use-cases:
- Remove overly permissive signatures from third-party types.
This type was taken from this [StackOverflow answer](https://stackoverflow.com/a/68261113/420747).
It relies on the fact that an empty object (`{}`) is assignable to an object with just an index signature, like `Record<string, unknown>`, but not to an object with explicitly defined keys, like `Record<'foo' | 'bar', unknown>`.
(The actual value type, `unknown`, is irrelevant and could be any type. Only the key type matters.)
```
const indexed: Record<string, unknown> = {}; // Allowed
const keyed: Record<'foo', unknown> = {}; // Error
// => TS2739: Type '{}' is missing the following properties from type 'Record<"foo" | "bar", unknown>': foo, bar
```
Instead of causing a type error like the above, you can also use a [conditional type](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html) to test whether a type is assignable to another:
```
type Indexed = {} extends Record<string, unknown>
? '✅ `{}` is assignable to `Record<string, unknown>`'
: '❌ `{}` is NOT assignable to `Record<string, unknown>`';
// => '✅ `{}` is assignable to `Record<string, unknown>`'
type Keyed = {} extends Record<'foo' | 'bar', unknown>
? "✅ `{}` is assignable to `Record<'foo' | 'bar', unknown>`"
: "❌ `{}` is NOT assignable to `Record<'foo' | 'bar', unknown>`";
// => "❌ `{}` is NOT assignable to `Record<'foo' | 'bar', unknown>`"
```
Using a [mapped type](https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#further-exploration), you can then check for each `KeyType` of `ObjectType`...
```
import type {RemoveIndexSignature} from 'type-fest';
type RemoveIndexSignature<ObjectType> = {
[KeyType in keyof ObjectType // Map each key of `ObjectType`...
]: ObjectType[KeyType]; // ...to its original value, i.e. `RemoveIndexSignature<Foo> == Foo`.
};
```
...whether an empty object (`{}`) would be assignable to an object with that `KeyType` (`Record<KeyType, unknown>`)...
```
import type {RemoveIndexSignature} from 'type-fest';
type RemoveIndexSignature<ObjectType> = {
[KeyType in keyof ObjectType
// Is `{}` assignable to `Record<KeyType, unknown>`?
as {} extends Record<KeyType, unknown>
? ... // ✅ `{}` is assignable to `Record<KeyType, unknown>`
: ... // ❌ `{}` is NOT assignable to `Record<KeyType, unknown>`
]: ObjectType[KeyType];
};
```
If `{}` is assignable, it means that `KeyType` is an index signature and we want to remove it. If it is not assignable, `KeyType` is a "real" key and we want to keep it.
```
import type {RemoveIndexSignature} from 'type-fest';
type RemoveIndexSignature<ObjectType> = {
[KeyType in keyof ObjectType
as {} extends Record<KeyType, unknown>
? never // => Remove this `KeyType`.
: KeyType // => Keep this `KeyType` as it is.
]: ObjectType[KeyType];
};
```
@example
```
import type {RemoveIndexSignature} from 'type-fest';
interface Example {
// These index signatures will be removed.
[x: string]: any
[x: number]: any
[x: symbol]: any
[x: `head-${string}`]: string
[x: `${string}-tail`]: string
[x: `head-${string}-tail`]: string
[x: `${bigint}`]: string
[x: `embedded-${number}`]: string
// These explicitly defined keys will remain.
foo: 'bar';
qux?: 'baz';
}
type ExampleWithoutIndexSignatures = RemoveIndexSignature<Example>;
// => { foo: 'bar'; qux?: 'baz' | undefined; }
```
@category Object
*/
type RemoveIndexSignature<ObjectType> = {
[KeyType in keyof ObjectType as {} extends Record<KeyType, unknown>
? never
: KeyType]: ObjectType[KeyType];
};
/**
Convert a union type to an intersection type using [distributive conditional types](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).
Inspired by [this Stack Overflow answer](https://stackoverflow.com/a/50375286/2172153).
@example
```
import type {UnionToIntersection} from 'type-fest';
type Union = {the(): void} | {great(arg: string): void} | {escape: boolean};
type Intersection = UnionToIntersection<Union>;
//=> {the(): void; great(arg: string): void; escape: boolean};
```
A more applicable example which could make its way into your library code follows.
@example
```
import type {UnionToIntersection} from 'type-fest';
class CommandOne {
commands: {
a1: () => undefined,
b1: () => undefined,
}
}
class CommandTwo {
commands: {
a2: (argA: string) => undefined,
b2: (argB: string) => undefined,
}
}
const union = [new CommandOne(), new CommandTwo()].map(instance => instance.commands);
type Union = typeof union;
//=> {a1(): void; b1(): void} | {a2(argA: string): void; b2(argB: string): void}
type Intersection = UnionToIntersection<Union>;
//=> {a1(): void; b1(): void; a2(argA: string): void; b2(argB: string): void}
```
@category Type
*/
type UnionToIntersection<Union> = (
// `extends unknown` is always going to be the case and is used to convert the
// `Union` into a [distributive conditional
// type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).
Union extends unknown
// The union type is used as the only argument to a function since the union
// of function arguments is an intersection.
? (distributedUnion: Union) => void
// This won't happen.
: never
// Infer the `Intersection` type since TypeScript represents the positional
// arguments of unions of functions as an intersection of the union.
) extends ((mergedIntersection: infer Intersection) => void)
? Intersection
: never;
interface SBBaseType {
required?: boolean;
raw?: string;
}
type SBScalarType = SBBaseType & {
name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';
};
type SBArrayType = SBBaseType & {
name: 'array';
value: SBType;
};
type SBObjectType = SBBaseType & {
name: 'object';
value: Record<string, SBType>;
};
type SBEnumType = SBBaseType & {
name: 'enum';
value: (string | number)[];
};
type SBIntersectionType = SBBaseType & {
name: 'intersection';
value: SBType[];
};
type SBUnionType = SBBaseType & {
name: 'union';
value: SBType[];
};
type SBOtherType = SBBaseType & {
name: 'other';
value: string;
};
type SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;
type StoryId = string;
type ComponentId = string;
type ComponentTitle = string;
type StoryName = string;
/** @deprecated */
type StoryKind = ComponentTitle;
type Tag = string;
interface StoryIdentifier {
componentId: ComponentId;
title: ComponentTitle;
/** @deprecated */
kind: ComponentTitle;
id: StoryId;
name: StoryName;
/** @deprecated */
story: StoryName;
tags: Tag[];
}
interface Parameters {
[name: string]: any;
}
interface StrictParameters {
[name: string]: unknown;
}
type ControlType = 'object' | 'boolean' | 'check' | 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select' | 'number' | 'range' | 'file' | 'color' | 'date' | 'text';
type ConditionalTest = {
truthy?: boolean;
} | {
exists: boolean;
} | {
eq: any;
} | {
neq: any;
};
type ConditionalValue = {
arg: string;
} | {
global: string;
};
type Conditional = ConditionalValue & ConditionalTest;
interface ControlBase {
[key: string]: any;
/** @see https://storybook.js.org/docs/api/arg-types#controltype */
type?: ControlType;
disable?: boolean;
}
interface Report {
type: string;
version?: number;
result: unknown;
status: 'failed' | 'passed' | 'warning';
}
interface ReportingAPI {
reports: Report[];
addReport: (report: Report) => void;
}
type Control = ControlType | false | (ControlBase & (ControlBase | {
type: 'color';
/** @see https://storybook.js.org/docs/api/arg-types#controlpresetcolors */
presetColors?: string[];
} | {
type: 'file';
/** @see https://storybook.js.org/docs/api/arg-types#controlaccept */
accept?: string;
} | {
type: 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select';
/** @see https://storybook.js.org/docs/api/arg-types#controllabels */
labels?: {
[options: string]: string;
};
} | {
type: 'number' | 'range';
/** @see https://storybook.js.org/docs/api/arg-types#controlmax */
max?: number;
/** @see https://storybook.js.org/docs/api/arg-types#controlmin */
min?: number;
/** @see https://storybook.js.org/docs/api/arg-types#controlstep */
step?: number;
}));
interface InputType {
/** @see https://storybook.js.org/docs/api/arg-types#control */
control?: Control;
/** @see https://storybook.js.org/docs/api/arg-types#description */
description?: string;
/** @see https://storybook.js.org/docs/api/arg-types#if */
if?: Conditional;
/** @see https://storybook.js.org/docs/api/arg-types#mapping */
mapping?: {
[key: string]: any;
};
/** @see https://storybook.js.org/docs/api/arg-types#name */
name?: string;
/** @see https://storybook.js.org/docs/api/arg-types#options */
options?: readonly any[];
/** @see https://storybook.js.org/docs/api/arg-types#table */
table?: {
[key: string]: unknown;
/** @see https://storybook.js.org/docs/api/arg-types#tablecategory */
category?: string;
/** @see https://storybook.js.org/docs/api/arg-types#tabledefaultvalue */
defaultValue?: {
summary?: string;
detail?: string;
};
/** @see https://storybook.js.org/docs/api/arg-types#tabledisable */
disable?: boolean;
/** @see https://storybook.js.org/docs/api/arg-types#tablesubcategory */
subcategory?: string;
/** @see https://storybook.js.org/docs/api/arg-types#tabletype */
type?: {
summary?: string;
detail?: string;
};
};
/** @see https://storybook.js.org/docs/api/arg-types#type */
type?: SBType | SBScalarType['name'];
/**
* @deprecated Use `table.defaultValue.summary` instead.
* @see https://storybook.js.org/docs/api/arg-types#defaultvalue
*/
defaultValue?: any;
[key: string]: any;
}
interface StrictInputType extends InputType {
name: string;
type?: SBType;
}
interface Args {
[name: string]: any;
}
interface StrictArgs {
[name: string]: unknown;
}
/** @see https://storybook.js.org/docs/api/arg-types#argtypes */
type ArgTypes<TArgs = Args> = {
[name in keyof TArgs]: InputType;
};
type StrictArgTypes<TArgs = Args> = {
[name in keyof TArgs]: StrictInputType;
};
interface Globals {
[name: string]: any;
}
interface GlobalTypes {
[name: string]: InputType;
}
interface StrictGlobalTypes {
[name: string]: StrictInputType;
}
interface Renderer {
/** What is the type of the `component` annotation in this renderer? */
component: any;
/** What does the story function return in this renderer? */
storyResult: any;
/** What type of element does this renderer render to? */
canvasElement: any;
mount(): Promise<Canvas>;
T?: unknown;
}
/** @deprecated - Use `Renderer` */
type AnyFramework = Renderer;
interface StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryIdentifier {
component?: (TRenderer & {
T: any;
})['component'];
subcomponents?: Record<string, (TRenderer & {
T: any;
})['component']>;
parameters: Parameters;
initialArgs: TArgs;
argTypes: StrictArgTypes<TArgs>;
}
type ArgsEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForEnhancers<TRenderer, TArgs>) => TArgs;
type ArgTypesEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = ((context: StoryContextForEnhancers<TRenderer, TArgs>) => StrictArgTypes<TArgs>) & {
secondPass?: boolean;
};
interface StoryContextUpdate<TArgs = Args> {
args?: TArgs;
globals?: Globals;
[key: string]: any;
}
type ViewMode = 'story' | 'docs';
type LoaderFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForLoaders<TRenderer, TArgs>) => Promise<Record<string, any> | void> | Record<string, any> | void;
type Awaitable<T> = T | PromiseLike<T>;
type CleanupCallback = () => Awaitable<unknown>;
type BeforeAll = () => Awaitable<CleanupCallback | void>;
type BeforeEach<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => Awaitable<CleanupCallback | void>;
type AfterEach<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => Awaitable<void>;
interface Canvas {
}
interface StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContextForEnhancers<TRenderer, TArgs>, Required<StoryContextUpdate<TArgs>> {
loaded: Record<string, any>;
abortSignal: AbortSignal;
canvasElement: TRenderer['canvasElement'];
hooks: unknown;
originalStoryFn: ArgsStoryFn<TRenderer>;
viewMode: ViewMode;
step: StepFunction<TRenderer, TArgs>;
context: this;
canvas: Canvas;
mount: TRenderer['mount'];
reporting: ReportingAPI;
}
/** @deprecated Use {@link StoryContext} instead. */
interface StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContext<TRenderer, TArgs> {
}
/** @deprecated Use {@link StoryContext} instead. */
interface PlayFunctionContext<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContext<TRenderer, TArgs> {
}
type StepLabel = string;
type StepFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>) => Promise<void> | void;
type PlayFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: PlayFunctionContext<TRenderer, TArgs>) => Promise<void> | void;
type PartialStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (update?: StoryContextUpdate<Partial<TArgs>>) => TRenderer['storyResult'];
type LegacyStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
type ArgsStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (args: TArgs, context: StoryContext<TRenderer, TArgs>) => (TRenderer & {
T: TArgs;
})['storyResult'];
type StoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyStoryFn<TRenderer, TArgs> | ArgsStoryFn<TRenderer, TArgs>;
type DecoratorFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (fn: PartialStoryFn<TRenderer, TArgs>, c: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
type DecoratorApplicator<TRenderer extends Renderer = Renderer, TArgs = Args> = (storyFn: LegacyStoryFn<TRenderer, TArgs>, decorators: DecoratorFunction<TRenderer, TArgs>[]) => LegacyStoryFn<TRenderer, TArgs>;
type StepRunner<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>, context: StoryContext<TRenderer, TArgs>) => Promise<void>;
interface BaseAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> {
/**
* Wrapper components or Storybook decorators that wrap a story.
*
* Decorators defined in Meta will be applied to every story variation.
*
* @see [Decorators](https://storybook.js.org/docs/writing-stories/decorators)
*/
decorators?: DecoratorFunction<TRenderer, Simplify<TArgs>>[] | DecoratorFunction<TRenderer, Simplify<TArgs>>;
/**
* Custom metadata for a story.
*
* @see [Parameters](https://storybook.js.org/docs/writing-stories/parameters)
*/
parameters?: Parameters;
/**
* Dynamic data that are provided (and possibly updated by) Storybook and its addons.
*
* @see [Args](https://storybook.js.org/docs/writing-stories/args)
*/
args?: Partial<TArgs>;
/**
* ArgTypes encode basic metadata for args, such as `name`, `description`, `defaultValue` for an
* arg. These get automatically filled in by Storybook Docs.
*
* @see [ArgTypes](https://storybook.js.org/docs/api/arg-types)
*/
argTypes?: Partial<ArgTypes<TArgs>>;
/**
* Asynchronous functions which provide data for a story.
*
* @see [Loaders](https://storybook.js.org/docs/writing-stories/loaders)
*/
loaders?: LoaderFunction<TRenderer, TArgs>[] | LoaderFunction<TRenderer, TArgs>;
/**
* Function to be called before each story. When the function is async, it will be awaited.
*
* `beforeEach` can be added to preview, the default export and to a specific story. They are run
* (and awaited) in the order: preview, default export, story
*
* A cleanup function can be returned.
*/
beforeEach?: BeforeEach<TRenderer, TArgs>[] | BeforeEach<TRenderer, TArgs>;
/**
* Function to be called after each play function for post-test assertions. Don't use this
* function for cleaning up state. You can use the return callback of `beforeEach` for that, which
* is run when switching stories. When the function is async, it will be awaited.
*
* `afterEach` can be added to preview, the default export and to a specific story. They are run
* (and awaited) reverse order: preview, default export, story
*/
afterEach?: AfterEach<TRenderer, TArgs>[] | AfterEach<TRenderer, TArgs>;
/**
* Define a custom render function for the story(ies). If not passed, a default render function by
* the renderer will be used.
*/
render?: ArgsStoryFn<TRenderer, TArgs>;
/** Named tags for a story, used to filter stories in different contexts. */
tags?: Tag[];
mount?: (context: StoryContext<TRenderer, TArgs>) => TRenderer['mount'];
}
interface ProjectAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> extends BaseAnnotations<TRenderer, TArgs> {
argsEnhancers?: ArgsEnhancer<TRenderer, Args>[];
argTypesEnhancers?: ArgTypesEnhancer<TRenderer, Args>[];
/**
* Lifecycle hook which runs once, before any loaders, decorators or stories, and may rerun when
* configuration changes or when reinitializing (e.g. between test runs). The function may be
* synchronous or asynchronous, and may return a cleanup function which may also be synchronous or
* asynchronous. The cleanup function is not guaranteed to run (e.g. when the browser closes), but
* runs when configuration changes or when reinitializing. This hook may only be defined globally
* (i.e. not on component or story level). When multiple hooks are specified, they are to be
* executed sequentially (and awaited) in the following order:
*
* - Addon hooks (in order of addons array in e.g. .storybook/main.js)
* - Annotation hooks (in order of previewAnnotations array in e.g. .storybook/main.js)
* - Preview hook (via e.g. .storybook/preview.js) Cleanup functions are executed sequentially in
* reverse order of initialization.
*/
beforeAll?: BeforeAll;
initialGlobals?: Globals;
globalTypes?: GlobalTypes;
applyDecorators?: DecoratorApplicator<TRenderer, Args>;
runStep?: StepRunner<TRenderer, TArgs>;
}
type StoryDescriptor$1 = string[] | RegExp;
interface ComponentAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> extends BaseAnnotations<TRenderer, TArgs> {
/**
* Title of the component which will be presented in the navigation. **Should be unique.**
*
* Components can be organized in a nested structure using "/" as a separator.
*
* Since CSF 3.0 this property is optional -- it can be inferred from the filesystem path
*
* @example Export default { ... title: 'Design System/Atoms/Button' }
*
* @see [Story Hierarchy](https://storybook.js.org/docs/writing-stories/naming-components-and-hierarchy#structure-and-hierarchy)
*/
title?: ComponentTitle;
/**
* Id of the component (prefix of the story id) which is used for URLs.
*
* By default is inferred from sanitizing the title
*
* @see [Permalink to stories](https://storybook.js.org/docs/configure/sidebar-and-urls#permalink-to-stories)
*/
id?: ComponentId;
/**
* Used to only include certain named exports as stories. Useful when you want to have non-story
* exports such as mock data or ignore a few stories.
*
* @example IncludeStories: ['SimpleStory', 'ComplexStory'] includeStories: /.*Story$/
*
* @see [Non-story exports](https://storybook.js.org/docs/api/csf#non-story-exports)
*/
includeStories?: StoryDescriptor$1;
/**
* Used to exclude certain named exports. Useful when you want to have non-story exports such as
* mock data or ignore a few stories.
*
* @example ExcludeStories: ['simpleData', 'complexData'] excludeStories: /.*Data$/
*
* @see [Non-story exports](https://storybook.js.org/docs/api/csf#non-story-exports)
*/
excludeStories?: StoryDescriptor$1;
/**
* The primary component for your story.
*
* Used by addons for automatic prop table generation and display of other component metadata.
*/
component?: (TRenderer & {
T: Record<string, unknown> extends Required<TArgs> ? any : TArgs;
})['component'];
/**
* Auxiliary subcomponents that are part of the stories.
*
* Used by addons for automatic prop table generation and display of other component metadata.
*
* @example Import { Button, ButtonGroup } from './components';
*
* Export default { ... subcomponents: { Button, ButtonGroup } }
*
* By defining them each component will have its tab in the args table.
*/
subcomponents?: Record<string, (TRenderer & {
T: any;
})['component']>;
/** Function that is executed after the story is rendered. */
play?: PlayFunction<TRenderer, TArgs>;
/** Override the globals values for all stories in this component */
globals?: Globals;
}
type StoryAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args, TRequiredArgs = Partial<TArgs>> = BaseAnnotations<TRenderer, TArgs> & {
/** Override the display name in the UI (CSF v3) */
name?: StoryName;
/** Override the display name in the UI (CSF v2) */
storyName?: StoryName;
/** Function that is executed after the story is rendered. */
play?: PlayFunction<TRenderer, TArgs>;
/** Override the globals values for this story */
globals?: Globals;
/** @deprecated */
story?: Omit<StoryAnnotations<TRenderer, TArgs>, 'story'>;
} & ({} extends TRequiredArgs ? {
args?: TRequiredArgs;
} : {
args: TRequiredArgs;
});
type LegacyAnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;
type LegacyStoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyAnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;
type AnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = ArgsStoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;
type StoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = AnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;
type ArgsFromMeta<TRenderer extends Renderer, Meta> = Meta extends {
render?: ArgsStoryFn<TRenderer, infer RArgs>;
loaders?: (infer Loaders)[] | infer Loaders;
decorators?: (infer Decorators)[] | infer Decorators;
} ? Simplify<RemoveIndexSignature<RArgs & DecoratorsArgs<TRenderer, Decorators> & LoaderArgs<TRenderer, Loaders>>> : unknown;
type DecoratorsArgs<TRenderer extends Renderer, Decorators> = UnionToIntersection<Decorators extends DecoratorFunction<TRenderer, infer TArgs> ? TArgs : unknown>;
type LoaderArgs<TRenderer extends Renderer, Loaders> = UnionToIntersection<Loaders extends LoaderFunction<TRenderer, infer TArgs> ? TArgs : unknown>;
/**
* Helper function to include/exclude an arg based on the value of other other args aka "conditional
* args"
*/
declare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) => any;
interface Preview<TRenderer extends Renderer$1 = Renderer$1> {
readonly _tag: 'Preview';
input: ProjectAnnotations$1<TRenderer>;
composed: NormalizedProjectAnnotations<TRenderer>;
meta(input: ComponentAnnotations$1<TRenderer>): Meta<TRenderer>;
}
declare function isPreview(input: unknown): input is Preview<Renderer$1>;
interface Meta<TRenderer extends Renderer$1, TArgs extends Args$1 = Args$1> {
readonly _tag: 'Meta';
input: ComponentAnnotations$1<TRenderer, TArgs>;
composed: NormalizedComponentAnnotations<TRenderer>;
preview: Preview<TRenderer>;
story(input: StoryAnnotations$1<TRenderer, TArgs>): Story<TRenderer, TArgs>;
}
declare function isMeta(input: unknown): input is Meta<Renderer$1>;
interface Story<TRenderer extends Renderer$1, TArgs extends Args$1 = Args$1> {
readonly _tag: 'Story';
input: StoryAnnotations$1<TRenderer, TArgs>;
composed: NormalizedStoryAnnotations<TRenderer>;
meta: Meta<TRenderer, TArgs>;
}
declare function isStory<TRenderer extends Renderer$1>(input: unknown): input is Story<TRenderer>;
/**
* Remove punctuation and illegal characters from a story ID.
*
* See https://gist.github.com/davidjrice/9d2af51100e41c6c4b4a
*/
declare const sanitize: (string: string) => string;
/** Generate a storybook ID from a component/kind and story name. */
declare const toId: (kind: string, name?: string) => string;
/** Transform a CSF named export into a readable story name */
declare const storyNameFromExport: (key: string) => string;
type StoryDescriptor = string[] | RegExp;
interface IncludeExcludeOptions {
includeStories?: StoryDescriptor;
excludeStories?: StoryDescriptor;
}
/** Does a named export match CSF inclusion/exclusion options? */
declare function isExportStory(key: string, { includeStories, excludeStories }: IncludeExcludeOptions): boolean | null;
interface SeparatorOptions {
rootSeparator: string | RegExp;
groupSeparator: string | RegExp;
}
/** Parse out the component/kind name from a path, using the given separator config. */
declare const parseKind: (kind: string, { rootSeparator, groupSeparator }: SeparatorOptions) => {
root: string | null;
groups: string[];
};
/** Combine a set of project / meta / story tags, removing duplicates and handling negations. */
declare const combineTags: (...tags: string[]) => string[];
export { type AfterEach, type AnnotatedStoryFn, type AnyFramework, type ArgTypes, type ArgTypesEnhancer, type Args, type ArgsEnhancer, type ArgsFromMeta, type ArgsStoryFn, type BaseAnnotations, type BeforeAll, type BeforeEach, type Canvas, type CleanupCallback, type ComponentAnnotations, type ComponentId, type ComponentTitle, type Conditional, type DecoratorApplicator, type DecoratorFunction, type GlobalTypes, type Globals, type IncludeExcludeOptions, type InputType, type LegacyAnnotatedStoryFn, type LegacyStoryAnnotationsOrFn, type LegacyStoryFn, type LoaderFunction, type Meta, type Parameters, type PartialStoryFn, type PlayFunction, type PlayFunctionContext, type Preview, type ProjectAnnotations, type Renderer, type SBArrayType, type SBEnumType, type SBIntersectionType, type SBObjectType, type SBOtherType, type SBScalarType, type SBType, type SBUnionType, type SeparatorOptions, type StepFunction, type StepLabel, type StepRunner, type Story, type StoryAnnotations, type StoryAnnotationsOrFn, type StoryContext, type StoryContextForEnhancers, type StoryContextForLoaders, type StoryContextUpdate, type StoryFn, type StoryId, type StoryIdentifier, type StoryKind, type StoryName, type StrictArgTypes, type StrictArgs, type StrictGlobalTypes, type StrictInputType, type StrictParameters, type Tag, type ViewMode, combineTags, includeConditionalArg, isExportStory, isMeta, isPreview, isStory, parseKind, sanitize, storyNameFromExport, toId };

172
frontend/node_modules/storybook/dist/csf/index.js generated vendored Normal file
View File

@@ -0,0 +1,172 @@
var h = Object.create;
var f = Object.defineProperty;
var O = Object.getOwnPropertyDescriptor;
var $ = Object.getOwnPropertyNames;
var v = Object.getPrototypeOf, j = Object.prototype.hasOwnProperty;
var a = (e, r) => f(e, "name", { value: r, configurable: !0 });
var _ = (e, r) => () => (r || e((r = { exports: {} }).exports, r), r.exports);
var C = (e, r, t, n) => {
if (r && typeof r == "object" || typeof r == "function")
for (let s of $(r))
!j.call(e, s) && s !== t && f(e, s, { get: () => r[s], enumerable: !(n = O(r, s)) || n.enumerable });
return e;
};
var E = (e, r, t) => (t = e != null ? h(v(e)) : {}, C(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
r || !e || !e.__esModule ? f(t, "default", { value: e, enumerable: !0 }) : t,
e
));
// ../node_modules/@ngard/tiny-isequal/index.js
var S = _((g) => {
Object.defineProperty(g, "__esModule", { value: !0 }), g.isEqual = /* @__PURE__ */ function() {
var e = Object.prototype.toString, r = Object.getPrototypeOf, t = Object.getOwnPropertySymbols ? function(n) {
return Object.keys(n).concat(Object.getOwnPropertySymbols(n));
} : Object.keys;
return function(n, s) {
return (/* @__PURE__ */ a(function l(o, i, p) {
var c, d, u, A = e.call(o), b = e.call(i);
if (o === i) return !0;
if (o == null || i == null) return !1;
if (p.indexOf(o) > -1 && p.indexOf(i) > -1) return !0;
if (p.push(o, i), A != b || (c = t(o), d = t(i), c.length != d.length || c.some(function(m) {
return !l(o[m], i[m], p);
}))) return !1;
switch (A.slice(8, -1)) {
case "Symbol":
return o.valueOf() == i.valueOf();
case "Date":
case "Number":
return +o == +i || +o != +o && +i != +i;
case "RegExp":
case "Function":
case "String":
case "Boolean":
return "" + o == "" + i;
case "Set":
case "Map":
c = o.entries(), d = i.entries();
do
if (!l((u = c.next()).value, d.next().value, p)) return !1;
while (!u.done);
return !0;
case "ArrayBuffer":
o = new Uint8Array(o), i = new Uint8Array(i);
case "DataView":
o = new Uint8Array(o.buffer), i = new Uint8Array(i.buffer);
case "Float32Array":
case "Float64Array":
case "Int8Array":
case "Int16Array":
case "Int32Array":
case "Uint8Array":
case "Uint16Array":
case "Uint32Array":
case "Uint8ClampedArray":
case "Arguments":
case "Array":
if (o.length != i.length) return !1;
for (u = 0; u < o.length; u++) if ((u in o || u in i) && (u in o != u in i || !l(o[u], i[u], p))) return !1;
return !0;
case "Object":
return l(r(o), r(i), p);
default:
return !1;
}
}, "n"))(n, s, []);
};
}();
});
// src/csf/toStartCaseStr.ts
function x(e) {
return e.replace(/_/g, " ").replace(/-/g, " ").replace(/\./g, " ").replace(/([^\n])([A-Z])([a-z])/g, (r, t, n, s) => `${t} ${n}${s}`).replace(
/([a-z])([A-Z])/g, (r, t, n) => `${t} ${n}`).replace(/([a-z])([0-9])/gi, (r, t, n) => `${t} ${n}`).replace(/([0-9])([a-z])/gi, (r, t, n) => `${t}\
${n}`).replace(/(\s|^)(\w)/g, (r, t, n) => `${t}${n.toUpperCase()}`).replace(/ +/g, " ").trim();
}
a(x, "toStartCaseStr");
// src/csf/includeConditionalArg.ts
var y = E(S(), 1);
var w = /* @__PURE__ */ a((e) => e.map((r) => typeof r < "u").filter(Boolean).length, "count"), P = /* @__PURE__ */ a((e, r) => {
let { exists: t, eq: n, neq: s, truthy: l } = e;
if (w([t, n, s, l]) > 1)
throw new Error(`Invalid conditional test ${JSON.stringify({ exists: t, eq: n, neq: s })}`);
if (typeof n < "u")
return (0, y.isEqual)(r, n);
if (typeof s < "u")
return !(0, y.isEqual)(r, s);
if (typeof t < "u") {
let i = typeof r < "u";
return t ? i : !i;
}
return (typeof l > "u" ? !0 : l) ? !!r : !r;
}, "testValue"), z = /* @__PURE__ */ a((e, r, t) => {
if (!e.if)
return !0;
let { arg: n, global: s } = e.if;
if (w([n, s]) !== 1)
throw new Error(`Invalid conditional value ${JSON.stringify({ arg: n, global: s })}`);
let l = n ? r[n] : t[s];
return P(e.if, l);
}, "includeConditionalArg");
// src/csf/csf-factories.ts
function F(e) {
return e != null && typeof e == "object" && "_tag" in e && e?._tag === "Preview";
}
a(F, "isPreview");
function G(e) {
return e != null && typeof e == "object" && "_tag" in e && e?._tag === "Meta";
}
a(G, "isMeta");
function J(e) {
return e != null && typeof e == "object" && "_tag" in e && e?._tag === "Story";
}
a(J, "isStory");
// src/csf/index.ts
var I = /* @__PURE__ */ a((e) => e.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, "-").replace(/-+/g,
"-").replace(/^-+/, "").replace(/-+$/, ""), "sanitize"), R = /* @__PURE__ */ a((e, r) => {
let t = I(e);
if (t === "")
throw new Error(`Invalid ${r} '${e}', must include alphanumeric characters`);
return t;
}, "sanitizeSafe"), W = /* @__PURE__ */ a((e, r) => `${R(e, "kind")}${r ? `--${R(r, "name")}` : ""}`, "toId"), H = /* @__PURE__ */ a((e) => x(
e), "storyNameFromExport");
function T(e, r) {
return Array.isArray(r) ? r.includes(e) : e.match(r);
}
a(T, "matches");
function K(e, { includeStories: r, excludeStories: t }) {
return (
// https://babeljs.io/docs/en/babel-plugin-transform-modules-commonjs
e !== "__esModule" && (!r || T(e, r)) && (!t || !T(e, t))
);
}
a(K, "isExportStory");
var Q = /* @__PURE__ */ a((e, { rootSeparator: r, groupSeparator: t }) => {
let [n, s] = e.split(r, 2), l = (s || e).split(t).filter((o) => !!o);
return {
root: s ? n : null,
groups: l
};
}, "parseKind"), X = /* @__PURE__ */ a((...e) => {
let r = e.reduce((t, n) => (n.startsWith("!") ? t.delete(n.slice(1)) : t.add(n), t), /* @__PURE__ */ new Set());
return Array.from(r);
}, "combineTags");
export {
X as combineTags,
z as includeConditionalArg,
K as isExportStory,
G as isMeta,
F as isPreview,
J as isStory,
Q as parseKind,
I as sanitize,
H as storyNameFromExport,
W as toId
};

2935
frontend/node_modules/storybook/dist/docs-tools/index.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,160 @@
import { StrictArgTypes, Renderer, StoryContextForEnhancers } from 'storybook/internal/types';
import * as storybook_internal_csf from 'storybook/internal/csf';
type Component = any;
interface JsDocParam {
name: string | undefined | null;
description?: string | null;
}
interface JsDocReturns {
description?: string | null;
}
interface JsDocTags {
params?: JsDocParam[] | null;
returns?: JsDocReturns | null;
}
interface PropSummaryValue {
summary?: string;
detail?: string;
}
type PropType = PropSummaryValue;
type PropDefaultValue = PropSummaryValue;
interface PropDef {
name: string;
type: PropType | null;
sbType?: any;
required: boolean;
description?: string;
defaultValue?: PropDefaultValue | null;
jsDocTags?: JsDocTags;
}
type PropsExtractor = (component: Component) => {
rows?: PropDef[];
} | null;
type ArgTypesExtractor = (component: Component) => StrictArgTypes | null;
interface DocgenType {
name: string;
description?: string;
required?: boolean;
value?: any;
}
interface DocgenPropType extends DocgenType {
value?: any;
raw?: string;
computed?: boolean;
}
interface DocgenFlowType extends DocgenType {
type?: string;
raw?: string;
signature?: any;
elements?: any[];
}
interface DocgenTypeScriptType extends DocgenType {
raw?: string;
}
interface DocgenPropDefaultValue {
value: string;
computed?: boolean;
func?: boolean;
}
interface DocgenInfo {
type: DocgenPropType;
flowType?: DocgenFlowType;
tsType?: DocgenTypeScriptType;
required: boolean;
description: string;
defaultValue: DocgenPropDefaultValue;
}
declare enum TypeSystem {
JAVASCRIPT = "JavaScript",
FLOW = "Flow",
TYPESCRIPT = "TypeScript",
UNKNOWN = "Unknown"
}
declare const convert: (docgenInfo: DocgenInfo) => any;
declare function isDefaultValueBlacklisted(value: string): boolean;
declare const str: (obj: any) => string;
declare function hasDocgen<T = any>(component: Component): component is object & {
__docgenInfo: T;
};
declare function isValidDocgenSection(docgenSection: any): boolean;
declare function getDocgenSection(component: Component, section: string): any;
declare function getDocgenDescription(component: Component): string;
interface ExtractedJsDocParam extends JsDocParam {
type?: any;
getPrettyName: () => string | undefined;
getTypeName: () => string | null;
}
interface ExtractedJsDocReturns extends JsDocReturns {
type?: any;
getTypeName: () => string | null;
}
interface ExtractedJsDoc {
params?: ExtractedJsDocParam[] | null;
deprecated?: string | null;
returns?: ExtractedJsDocReturns | null;
ignore: boolean;
}
interface JsDocParsingOptions {
tags?: string[];
}
interface JsDocParsingResult {
includesJsDoc: boolean;
ignore: boolean;
description?: string;
extractedTags?: ExtractedJsDoc;
}
type ParseJsDoc = (value: string | null, options?: JsDocParsingOptions) => JsDocParsingResult;
declare const parseJsDoc: ParseJsDoc;
interface ExtractedProp {
propDef: PropDef;
docgenInfo: DocgenInfo;
jsDocTags?: ExtractedJsDoc;
typeSystem: TypeSystem;
}
type ExtractProps = (component: Component, section: string) => ExtractedProp[];
declare const extractComponentSectionArray: (docgenSection: any) => any;
declare const extractComponentSectionObject: (docgenSection: any) => (ExtractedProp | null)[];
declare const extractComponentProps: ExtractProps;
declare function extractComponentDescription(component?: Component): string;
declare const MAX_TYPE_SUMMARY_LENGTH = 90;
declare const MAX_DEFAULT_VALUE_SUMMARY_LENGTH = 50;
declare function isTooLongForTypeSummary(value: string): boolean;
declare function isTooLongForDefaultValueSummary(value: string): boolean;
declare function createSummaryValue(summary?: string, detail?: string): PropSummaryValue;
declare const normalizeNewlines: (string: string) => string;
declare const enhanceArgTypes: <TRenderer extends Renderer>(context: StoryContextForEnhancers<TRenderer>) => storybook_internal_csf.Parameters;
declare const ADDON_ID = "storybook/docs";
declare const PANEL_ID = "storybook/docs/panel";
declare const PARAM_KEY = "docs";
declare const SNIPPET_RENDERED = "storybook/docs/snippet-rendered";
declare enum SourceType {
/**
* AUTO is the default
*
* Use the CODE logic if:
*
* - The user has set a custom source snippet in `docs.source.code` story parameter
* - The story is not an args-based story
*
* Use the DYNAMIC rendered snippet if the story is an args story
*/
AUTO = "auto",
/** Render the code extracted by csf-plugin */
CODE = "code",
/** Render dynamically-rendered source snippet from the story's virtual DOM (currently React only) */
DYNAMIC = "dynamic"
}
export { ADDON_ID, type ArgTypesExtractor, type Component, type DocgenFlowType, type DocgenInfo, type DocgenPropDefaultValue, type DocgenPropType, type DocgenType, type DocgenTypeScriptType, type ExtractProps, type ExtractedJsDoc, type ExtractedJsDocParam, type ExtractedJsDocReturns, type ExtractedProp, type JsDocParam, type JsDocParsingOptions, type JsDocParsingResult, type JsDocReturns, type JsDocTags, MAX_DEFAULT_VALUE_SUMMARY_LENGTH, MAX_TYPE_SUMMARY_LENGTH, PANEL_ID, PARAM_KEY, type ParseJsDoc, type PropDef, type PropDefaultValue, type PropSummaryValue, type PropType, type PropsExtractor, SNIPPET_RENDERED, SourceType, TypeSystem, convert, createSummaryValue, enhanceArgTypes, extractComponentDescription, extractComponentProps, extractComponentSectionArray, extractComponentSectionObject, getDocgenDescription, getDocgenSection, hasDocgen, isDefaultValueBlacklisted, isTooLongForDefaultValueSummary, isTooLongForTypeSummary, isValidDocgenSection, normalizeNewlines, parseJsDoc, str };

2921
frontend/node_modules/storybook/dist/docs-tools/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,28 @@
"use strict";
var r = Object.defineProperty;
var G = Object.getOwnPropertyDescriptor;
var n = Object.getOwnPropertyNames;
var T = Object.prototype.hasOwnProperty;
var L = (o, t) => {
for (var H in t)
r(o, H, { get: t[H], enumerable: !0 });
}, c = (o, t, H, s) => {
if (t && typeof t == "object" || typeof t == "function")
for (let e of n(t))
!T.call(o, e) && e !== H && r(o, e, { get: () => t[e], enumerable: !(s = G(t, e)) || s.enumerable });
return o;
};
var h = (o) => c(r({}, "__esModule", { value: !0 }), o);
// src/highlight/index.ts
var x = {};
L(x, {
HIGHLIGHT: () => E,
REMOVE_HIGHLIGHT: () => _,
RESET_HIGHLIGHT: () => i,
SCROLL_INTO_VIEW: () => p
});
module.exports = h(x);
// src/highlight/constants.ts
var I = "storybook/highlight", E = `${I}/add`, _ = `${I}/remove`, i = `${I}/reset`, p = `${I}/scroll-into-view`;

View File

@@ -0,0 +1,73 @@
declare const HIGHLIGHT = "storybook/highlight/add";
declare const REMOVE_HIGHLIGHT = "storybook/highlight/remove";
declare const RESET_HIGHLIGHT = "storybook/highlight/reset";
declare const SCROLL_INTO_VIEW = "storybook/highlight/scroll-into-view";
declare const iconPaths: {
chevronLeft: string[];
chevronRight: string[];
info: string[];
shareAlt: string[];
};
type IconName = keyof typeof iconPaths;
interface HighlightParameters {
/**
* Highlight configuration
*
* @see https://storybook.js.org/docs/essentials/highlight#parameters
*/
highlight: {
/** Remove the addon panel and disable the addon's behavior */
disable?: boolean;
};
}
interface HighlightMenuItem {
/** Unique identifier for the menu item */
id: string;
/** Title of the menu item */
title: string;
/** Description of the menu item */
description?: string;
/** Icon for the menu item, left side */
iconLeft?: IconName;
/** Icon for the menu item, right side */
iconRight?: IconName;
/** Name for a channel event to trigger when the menu item is clicked */
clickEvent?: string;
/** HTML selectors for which this menu item should show (subset of `selectors`) */
selectors?: HighlightOptions['selectors'];
}
interface HighlightOptions {
/** Unique identifier for the highlight, required if you want to remove the highlight later */
id?: string;
/** HTML selectors of the elements */
selectors: string[];
/** Priority of the highlight, higher takes precedence, defaults to 0 */
priority?: number;
/** CSS styles to apply to the highlight */
styles?: Record<string, string>;
/** CSS styles to apply to the highlight when it is hovered */
hoverStyles?: Record<string, string>;
/** CSS styles to apply to the highlight when it is focused or selected */
focusStyles?: Record<string, string>;
/** Keyframes required for animations */
keyframes?: string;
/** Groups of menu items to show when the highlight is selected */
menu?: HighlightMenuItem[][];
}
interface ClickEventDetails {
top: number;
left: number;
width: number;
height: number;
selectors: string[];
element: {
attributes: Record<string, string>;
localName: string;
tagName: string;
outerHTML: string;
};
}
export { type ClickEventDetails, HIGHLIGHT, type HighlightMenuItem, type HighlightOptions, type HighlightParameters, REMOVE_HIGHLIGHT, RESET_HIGHLIGHT, SCROLL_INTO_VIEW };

View File

@@ -0,0 +1,8 @@
// src/highlight/constants.ts
var t = "storybook/highlight", o = `${t}/add`, e = `${t}/remove`, H = `${t}/reset`, I = `${t}/scroll-into-view`;
export {
o as HIGHLIGHT,
e as REMOVE_HIGHLIGHT,
H as RESET_HIGHLIGHT,
I as SCROLL_INTO_VIEW
};

17
frontend/node_modules/storybook/dist/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,17 @@
"use strict";
var l = Object.defineProperty;
var t = Object.getOwnPropertyDescriptor;
var h = Object.getOwnPropertyNames;
var n = Object.prototype.hasOwnProperty;
var d = (o, e, s, i) => {
if (e && typeof e == "object" || typeof e == "function")
for (let u of h(e))
!n.call(o, u) && u !== s && l(o, u, { get: () => e[u], enumerable: !(i = t(e, u)) || i.enumerable });
return o;
};
var r = (o) => d(l({}, "__esModule", { value: !0 }), o);
// src/index.ts
var a = {};
module.exports = r(a);
console.log("This file should remain unused until we have figured out the best API");

2
frontend/node_modules/storybook/dist/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
export { }

2
frontend/node_modules/storybook/dist/index.js generated vendored Normal file
View File

@@ -0,0 +1,2 @@
// src/index.ts
console.log("This file should remain unused until we have figured out the best API");

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,106 @@
import { StoryId } from 'storybook/internal/types';
interface Call {
id: string;
cursor: number;
storyId: StoryId;
ancestors: Call['id'][];
path: Array<string | CallRef>;
method: string;
args: any[];
interceptable: boolean;
retain: boolean;
status?: CallStates.DONE | CallStates.ERROR | CallStates.ACTIVE | CallStates.WAITING;
exception?: {
name: Error['name'];
message: Error['message'];
stack: Error['stack'];
callId: Call['id'];
showDiff?: boolean;
diff?: string;
actual?: unknown;
expected?: unknown;
};
}
declare enum CallStates {
DONE = "done",
ERROR = "error",
ACTIVE = "active",
WAITING = "waiting"
}
interface CallRef {
__callId__: Call['id'];
}
interface ElementRef {
__element__: {
prefix?: string;
localName: string;
id?: string;
classNames?: string[];
innerText?: string;
};
}
interface ControlStates {
detached: boolean;
start: boolean;
back: boolean;
goto: boolean;
next: boolean;
end: boolean;
}
interface LogItem {
callId: Call['id'];
status: Call['status'];
ancestors: Call['id'][];
}
interface SyncPayload {
controlStates: ControlStates;
logItems: LogItem[];
pausedAt?: Call['id'];
}
interface State {
renderPhase?: 'loading' | 'rendering' | 'playing' | 'played' | 'completed' | 'aborted' | 'errored';
isDebugging: boolean;
isPlaying: boolean;
isLocked: boolean;
cursor: number;
calls: Call[];
shadowCalls: Call[];
callRefsByResult: Map<any, CallRef & {
retain: boolean;
}>;
chainedCallIds: Set<Call['id']>;
ancestors: Call['id'][];
playUntil?: Call['id'];
resolvers: Record<Call['id'], Function>;
syncTimeout?: ReturnType<typeof setTimeout>;
forwardedException?: Error;
}
interface Options {
intercept?: boolean | ((method: string, path: Array<string | CallRef>) => boolean);
retain?: boolean;
mutate?: boolean;
path?: Array<string | CallRef>;
getArgs?: (call: Call, state: State) => Call['args'];
getKeys?: (originalObject: Record<string, unknown>, depth: number) => string[];
}
/**
* Instruments an object or module by traversing its properties, patching any functions (methods) to
* enable debugging. Patched functions will emit a `call` event when invoked. When intercept = true,
* patched functions will return a Promise when the debugger stops before this function. As such,
* "interceptable" functions will have to be `await`-ed.
*/
declare function instrument<TObj extends Record<string, any>>(obj: TObj, options?: Options): TObj;
declare const EVENTS: {
CALL: string;
SYNC: string;
START: string;
BACK: string;
GOTO: string;
NEXT: string;
END: string;
};
export { type Call, type CallRef, CallStates, type ControlStates, EVENTS, type ElementRef, type LogItem, type Options, type State, type SyncPayload, instrument };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5015
frontend/node_modules/storybook/dist/manager-api/index.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
import { StoryId } from 'storybook/internal/csf';
type StatusValue = 'status-value:pending' | 'status-value:success' | 'status-value:error' | 'status-value:warning' | 'status-value:unknown';
type StatusTypeId = string;
interface Status {
value: StatusValue;
typeId: StatusTypeId;
storyId: StoryId;
title: string;
description: string;
data?: any;
sidebarContextMenu?: boolean;
}
declare abstract class StorybookError extends Error {
/** Category of the error. Used to classify the type of error, e.g., 'PREVIEW_API'. */
readonly category: string;
/** Code representing the error. Used to uniquely identify the error, e.g., 1. */
readonly code: number;
/**
* Data associated with the error. Used to provide additional information in the error message or
* to be passed to telemetry.
*/
readonly data: {};
/**
* Specifies the documentation for the error.
*
* - If `true`, links to a documentation page on the Storybook website (make sure it exists before
* enabling) This is not implemented yet.
* - If a string, uses the provided URL for documentation (external or FAQ links).
* - If `false` (default), no documentation link is added.
*/
readonly documentation: boolean | string | string[];
/** Flag used to easily determine if the error originates from Storybook. */
readonly fromStorybook: true;
get fullErrorCode(): `SB_${string}_${string}`;
/** Overrides the default `Error.name` property in the format: SB_<CATEGORY>_<CODE>. */
get name(): string;
constructor(props: {
category: string;
code: number;
message: string;
documentation?: boolean | string | string[];
});
/** Generates the error message along with additional documentation link (if applicable). */
static getFullMessage({ documentation, code, category, message, }: ConstructorParameters<typeof StorybookError>[0]): string;
}
/**
* If you can't find a suitable category for your error, create one based on the package name/file
* path of which the error is thrown. For instance: If it's from `storybook/internal/client-logger`,
* then MANAGER_CLIENT-LOGGER
*
* Categories are prefixed by a logical grouping, e.g. MANAGER_ to prevent manager and preview
* errors from having the same category and error code.
*/
declare enum Category {
MANAGER_UNCAUGHT = "MANAGER_UNCAUGHT",
MANAGER_UI = "MANAGER_UI",
MANAGER_API = "MANAGER_API",
MANAGER_CLIENT_LOGGER = "MANAGER_CLIENT-LOGGER",
MANAGER_CHANNELS = "MANAGER_CHANNELS",
MANAGER_CORE_EVENTS = "MANAGER_CORE-EVENTS",
MANAGER_ROUTER = "MANAGER_ROUTER",
MANAGER_THEMING = "MANAGER_THEMING"
}
declare class ProviderDoesNotExtendBaseProviderError extends StorybookError {
constructor();
}
declare class UncaughtManagerError extends StorybookError {
data: {
error: Error;
};
constructor(data: {
error: Error;
});
}
declare class StatusTypeIdMismatchError extends StorybookError {
data: {
status: Status;
typeId: StatusTypeId;
};
constructor(data: {
status: Status;
typeId: StatusTypeId;
});
}
export { Category, ProviderDoesNotExtendBaseProviderError, StatusTypeIdMismatchError, UncaughtManagerError };

99
frontend/node_modules/storybook/dist/manager-errors.js generated vendored Normal file
View File

@@ -0,0 +1,99 @@
var R = Object.defineProperty;
var r = (A, s) => R(A, "name", { value: s, configurable: !0 });
// src/storybook-error.ts
function l({
code: A,
category: s
}) {
let e = String(A).padStart(4, "0");
return `SB_${s}_${e}`;
}
r(l, "parseErrorCode");
var c = class c extends Error {
constructor(e) {
super(c.getFullMessage(e));
/**
* Data associated with the error. Used to provide additional information in the error message or
* to be passed to telemetry.
*/
this.data = {};
/** Flag used to easily determine if the error originates from Storybook. */
this.fromStorybook = !0;
this.category = e.category, this.documentation = e.documentation ?? !1, this.code = e.code;
}
get fullErrorCode() {
return l({ code: this.code, category: this.category });
}
/** Overrides the default `Error.name` property in the format: SB_<CATEGORY>_<CODE>. */
get name() {
let e = this.constructor.name;
return `${this.fullErrorCode} (${e})`;
}
/** Generates the error message along with additional documentation link (if applicable). */
static getFullMessage({
documentation: e,
code: p,
category: y,
message: G
}) {
let n;
return e === !0 ? n = `https://storybook.js.org/error/${l({ code: p, category: y })}` : typeof e == "string" ? n = e : Array.isArray(e) &&
(n = `
${e.map((g) => ` - ${g}`).join(`
`)}`), `${G}${n != null ? `
More info: ${n}
` : ""}`;
}
};
r(c, "StorybookError");
var o = c;
// src/manager-errors.ts
var M = /* @__PURE__ */ ((t) => (t.MANAGER_UNCAUGHT = "MANAGER_UNCAUGHT", t.MANAGER_UI = "MANAGER_UI", t.MANAGER_API = "MANAGER_API", t.MANAGER_CLIENT_LOGGER =
"MANAGER_CLIENT-LOGGER", t.MANAGER_CHANNELS = "MANAGER_CHANNELS", t.MANAGER_CORE_EVENTS = "MANAGER_CORE-EVENTS", t.MANAGER_ROUTER = "MANAGER\
_ROUTER", t.MANAGER_THEMING = "MANAGER_THEMING", t))(M || {}), a = class a extends o {
constructor() {
super({
category: "MANAGER_UI",
code: 1,
message: "The Provider passed into Storybook's UI is not extended from the base Provider. Please check your Provider implementation."
});
}
};
r(a, "ProviderDoesNotExtendBaseProviderError");
var d = a, u = class u extends o {
constructor(e) {
super({
category: "MANAGER_UNCAUGHT",
code: 1,
message: e.error.message
});
this.data = e;
this.stack = e.error.stack;
}
};
r(u, "UncaughtManagerError");
var E = u, i = class i extends o {
constructor(e) {
super({
category: "MANAGER_API",
code: 1,
message: `Status has typeId "${e.status.typeId}" but was added to store with typeId "${e.typeId}". Full status: ${JSON.stringify(
e.status,
null,
2
)}`
});
this.data = e;
}
};
r(i, "StatusTypeIdMismatchError");
var N = i;
export {
M as Category,
d as ProviderDoesNotExtendBaseProviderError,
N as StatusTypeIdMismatchError,
E as UncaughtManagerError
};

View File

@@ -0,0 +1,810 @@
"use strict";
var r = Object.defineProperty;
var E = Object.getOwnPropertyDescriptor;
var _ = Object.getOwnPropertyNames;
var s = Object.prototype.hasOwnProperty;
var S = (o, e) => {
for (var n in e)
r(o, n, { get: e[n], enumerable: !0 });
}, i = (o, e, n, c) => {
if (e && typeof e == "object" || typeof e == "function")
for (let t of _(e))
!s.call(o, t) && t !== n && r(o, t, { get: () => e[t], enumerable: !(c = E(e, t)) || c.enumerable });
return o;
};
var T = (o) => i(r({}, "__esModule", { value: !0 }), o);
// src/manager/globals-module-info.ts
var A = {};
S(A, {
globalsModuleInfoMap: () => R
});
module.exports = T(A);
// src/manager/globals/exports.ts
var l = {
react: [
"Children",
"Component",
"Fragment",
"Profiler",
"PureComponent",
"StrictMode",
"Suspense",
"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED",
"act",
"cloneElement",
"createContext",
"createElement",
"createFactory",
"createRef",
"forwardRef",
"isValidElement",
"lazy",
"memo",
"startTransition",
"unstable_act",
"useCallback",
"useContext",
"useDebugValue",
"useDeferredValue",
"useEffect",
"useId",
"useImperativeHandle",
"useInsertionEffect",
"useLayoutEffect",
"useMemo",
"useReducer",
"useRef",
"useState",
"useSyncExternalStore",
"useTransition",
"version"
],
"react-dom": [
"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED",
"createPortal",
"createRoot",
"findDOMNode",
"flushSync",
"hydrate",
"hydrateRoot",
"render",
"unmountComponentAtNode",
"unstable_batchedUpdates",
"unstable_renderSubtreeIntoContainer",
"version"
],
"react-dom/client": ["createRoot", "hydrateRoot"],
"@storybook/icons": [
"AccessibilityAltIcon",
"AccessibilityIcon",
"AccessibilityIgnoredIcon",
"AddIcon",
"AdminIcon",
"AlertAltIcon",
"AlertIcon",
"AlignLeftIcon",
"AlignRightIcon",
"AppleIcon",
"ArrowBottomLeftIcon",
"ArrowBottomRightIcon",
"ArrowDownIcon",
"ArrowLeftIcon",
"ArrowRightIcon",
"ArrowSolidDownIcon",
"ArrowSolidLeftIcon",
"ArrowSolidRightIcon",
"ArrowSolidUpIcon",
"ArrowTopLeftIcon",
"ArrowTopRightIcon",
"ArrowUpIcon",
"AzureDevOpsIcon",
"BackIcon",
"BasketIcon",
"BatchAcceptIcon",
"BatchDenyIcon",
"BeakerIcon",
"BellIcon",
"BitbucketIcon",
"BoldIcon",
"BookIcon",
"BookmarkHollowIcon",
"BookmarkIcon",
"BottomBarIcon",
"BottomBarToggleIcon",
"BoxIcon",
"BranchIcon",
"BrowserIcon",
"ButtonIcon",
"CPUIcon",
"CalendarIcon",
"CameraIcon",
"CameraStabilizeIcon",
"CategoryIcon",
"CertificateIcon",
"ChangedIcon",
"ChatIcon",
"CheckIcon",
"ChevronDownIcon",
"ChevronLeftIcon",
"ChevronRightIcon",
"ChevronSmallDownIcon",
"ChevronSmallLeftIcon",
"ChevronSmallRightIcon",
"ChevronSmallUpIcon",
"ChevronUpIcon",
"ChromaticIcon",
"ChromeIcon",
"CircleHollowIcon",
"CircleIcon",
"ClearIcon",
"CloseAltIcon",
"CloseIcon",
"CloudHollowIcon",
"CloudIcon",
"CogIcon",
"CollapseIcon",
"CommandIcon",
"CommentAddIcon",
"CommentIcon",
"CommentsIcon",
"CommitIcon",
"CompassIcon",
"ComponentDrivenIcon",
"ComponentIcon",
"ContrastIcon",
"ContrastIgnoredIcon",
"ControlsIcon",
"CopyIcon",
"CreditIcon",
"CrossIcon",
"DashboardIcon",
"DatabaseIcon",
"DeleteIcon",
"DiamondIcon",
"DirectionIcon",
"DiscordIcon",
"DocChartIcon",
"DocListIcon",
"DocumentIcon",
"DownloadIcon",
"DragIcon",
"EditIcon",
"EllipsisIcon",
"EmailIcon",
"ExpandAltIcon",
"ExpandIcon",
"EyeCloseIcon",
"EyeIcon",
"FaceHappyIcon",
"FaceNeutralIcon",
"FaceSadIcon",
"FacebookIcon",
"FailedIcon",
"FastForwardIcon",
"FigmaIcon",
"FilterIcon",
"FlagIcon",
"FolderIcon",
"FormIcon",
"GDriveIcon",
"GithubIcon",
"GitlabIcon",
"GlobeIcon",
"GoogleIcon",
"GraphBarIcon",
"GraphLineIcon",
"GraphqlIcon",
"GridAltIcon",
"GridIcon",
"GrowIcon",
"HeartHollowIcon",
"HeartIcon",
"HomeIcon",
"HourglassIcon",
"InfoIcon",
"ItalicIcon",
"JumpToIcon",
"KeyIcon",
"LightningIcon",
"LightningOffIcon",
"LinkBrokenIcon",
"LinkIcon",
"LinkedinIcon",
"LinuxIcon",
"ListOrderedIcon",
"ListUnorderedIcon",
"LocationIcon",
"LockIcon",
"MarkdownIcon",
"MarkupIcon",
"MediumIcon",
"MemoryIcon",
"MenuIcon",
"MergeIcon",
"MirrorIcon",
"MobileIcon",
"MoonIcon",
"NutIcon",
"OutboxIcon",
"OutlineIcon",
"PaintBrushIcon",
"PaperClipIcon",
"ParagraphIcon",
"PassedIcon",
"PhoneIcon",
"PhotoDragIcon",
"PhotoIcon",
"PhotoStabilizeIcon",
"PinAltIcon",
"PinIcon",
"PlayAllHollowIcon",
"PlayBackIcon",
"PlayHollowIcon",
"PlayIcon",
"PlayNextIcon",
"PlusIcon",
"PointerDefaultIcon",
"PointerHandIcon",
"PowerIcon",
"PrintIcon",
"ProceedIcon",
"ProfileIcon",
"PullRequestIcon",
"QuestionIcon",
"RSSIcon",
"RedirectIcon",
"ReduxIcon",
"RefreshIcon",
"ReplyIcon",
"RepoIcon",
"RequestChangeIcon",
"RewindIcon",
"RulerIcon",
"SaveIcon",
"SearchIcon",
"ShareAltIcon",
"ShareIcon",
"ShieldIcon",
"SideBySideIcon",
"SidebarAltIcon",
"SidebarAltToggleIcon",
"SidebarIcon",
"SidebarToggleIcon",
"SpeakerIcon",
"StackedIcon",
"StarHollowIcon",
"StarIcon",
"StatusFailIcon",
"StatusIcon",
"StatusPassIcon",
"StatusWarnIcon",
"StickerIcon",
"StopAltHollowIcon",
"StopAltIcon",
"StopIcon",
"StorybookIcon",
"StructureIcon",
"SubtractIcon",
"SunIcon",
"SupportIcon",
"SweepIcon",
"SwitchAltIcon",
"SyncIcon",
"TabletIcon",
"ThumbsUpIcon",
"TimeIcon",
"TimerIcon",
"TransferIcon",
"TrashIcon",
"TwitterIcon",
"TypeIcon",
"UbuntuIcon",
"UndoIcon",
"UnfoldIcon",
"UnlockIcon",
"UnpinIcon",
"UploadIcon",
"UserAddIcon",
"UserAltIcon",
"UserIcon",
"UsersIcon",
"VSCodeIcon",
"VerifiedIcon",
"VideoIcon",
"WandIcon",
"WatchIcon",
"WindowsIcon",
"WrenchIcon",
"XIcon",
"YoutubeIcon",
"ZoomIcon",
"ZoomOutIcon",
"ZoomResetIcon",
"iconList"
],
"storybook/manager-api": [
"ActiveTabs",
"Consumer",
"ManagerContext",
"Provider",
"RequestResponseError",
"addons",
"combineParameters",
"controlOrMetaKey",
"controlOrMetaSymbol",
"eventMatchesShortcut",
"eventToShortcut",
"experimental_MockUniversalStore",
"experimental_UniversalStore",
"experimental_getStatusStore",
"experimental_getTestProviderStore",
"experimental_requestResponse",
"experimental_useStatusStore",
"experimental_useTestProviderStore",
"experimental_useUniversalStore",
"internal_fullStatusStore",
"internal_fullTestProviderStore",
"internal_universalStatusStore",
"internal_universalTestProviderStore",
"isMacLike",
"isShortcutTaken",
"keyToSymbol",
"merge",
"mockChannel",
"optionOrAltSymbol",
"shortcutMatchesShortcut",
"shortcutToHumanString",
"types",
"useAddonState",
"useArgTypes",
"useArgs",
"useChannel",
"useGlobalTypes",
"useGlobals",
"useParameter",
"useSharedState",
"useStoryPrepared",
"useStorybookApi",
"useStorybookState"
],
"storybook/theming": [
"CacheProvider",
"ClassNames",
"Global",
"ThemeProvider",
"background",
"color",
"convert",
"create",
"createCache",
"createGlobal",
"createReset",
"css",
"darken",
"ensure",
"ignoreSsrWarning",
"isPropValid",
"jsx",
"keyframes",
"lighten",
"styled",
"themes",
"typography",
"useTheme",
"withTheme"
],
"storybook/theming/create": ["create", "themes"],
"storybook/test": [
"buildQueries",
"clearAllMocks",
"configure",
"createEvent",
"expect",
"findAllByAltText",
"findAllByDisplayValue",
"findAllByLabelText",
"findAllByPlaceholderText",
"findAllByRole",
"findAllByTestId",
"findAllByText",
"findAllByTitle",
"findByAltText",
"findByDisplayValue",
"findByLabelText",
"findByPlaceholderText",
"findByRole",
"findByTestId",
"findByText",
"findByTitle",
"fireEvent",
"fn",
"getAllByAltText",
"getAllByDisplayValue",
"getAllByLabelText",
"getAllByPlaceholderText",
"getAllByRole",
"getAllByTestId",
"getAllByText",
"getAllByTitle",
"getByAltText",
"getByDisplayValue",
"getByLabelText",
"getByPlaceholderText",
"getByRole",
"getByTestId",
"getByText",
"getByTitle",
"getConfig",
"getDefaultNormalizer",
"getElementError",
"getNodeText",
"getQueriesForElement",
"getRoles",
"getSuggestedQuery",
"isInaccessible",
"isMockFunction",
"logDOM",
"logRoles",
"mocked",
"mocks",
"onMockCall",
"prettyDOM",
"prettyFormat",
"queries",
"queryAllByAltText",
"queryAllByAttribute",
"queryAllByDisplayValue",
"queryAllByLabelText",
"queryAllByPlaceholderText",
"queryAllByRole",
"queryAllByTestId",
"queryAllByText",
"queryAllByTitle",
"queryByAltText",
"queryByAttribute",
"queryByDisplayValue",
"queryByLabelText",
"queryByPlaceholderText",
"queryByRole",
"queryByTestId",
"queryByText",
"queryByTitle",
"queryHelpers",
"resetAllMocks",
"restoreAllMocks",
"screen",
"spyOn",
"uninstrumentedUserEvent",
"userEvent",
"waitFor",
"waitForElementToBeRemoved",
"within"
],
"storybook/internal/channels": [
"Channel",
"HEARTBEAT_INTERVAL",
"HEARTBEAT_MAX_LATENCY",
"PostMessageTransport",
"WebsocketTransport",
"createBrowserChannel"
],
"storybook/internal/client-logger": ["deprecate", "logger", "once", "pretty"],
"storybook/internal/components": [
"A",
"ActionBar",
"AddonPanel",
"Badge",
"Bar",
"Blockquote",
"Button",
"Checkbox",
"ClipboardCode",
"Code",
"DL",
"Div",
"DocumentWrapper",
"EmptyTabContent",
"ErrorFormatter",
"FlexBar",
"Form",
"H1",
"H2",
"H3",
"H4",
"H5",
"H6",
"HR",
"IconButton",
"Img",
"LI",
"Link",
"ListItem",
"Loader",
"Modal",
"OL",
"P",
"Placeholder",
"Pre",
"ProgressSpinner",
"ResetWrapper",
"ScrollArea",
"Separator",
"Spaced",
"Span",
"StorybookIcon",
"StorybookLogo",
"SyntaxHighlighter",
"TT",
"TabBar",
"TabButton",
"TabWrapper",
"Table",
"Tabs",
"TabsState",
"TooltipLinkList",
"TooltipMessage",
"TooltipNote",
"UL",
"WithTooltip",
"WithTooltipPure",
"Zoom",
"codeCommon",
"components",
"createCopyToClipboardFunction",
"getStoryHref",
"interleaveSeparators",
"nameSpaceClassNames",
"resetComponents",
"withReset"
],
"storybook/internal/core-errors": [
"ARGTYPES_INFO_REQUEST",
"ARGTYPES_INFO_RESPONSE",
"CHANNEL_CREATED",
"CHANNEL_WS_DISCONNECT",
"CONFIG_ERROR",
"CREATE_NEW_STORYFILE_REQUEST",
"CREATE_NEW_STORYFILE_RESPONSE",
"CURRENT_STORY_WAS_SET",
"DOCS_PREPARED",
"DOCS_RENDERED",
"FILE_COMPONENT_SEARCH_REQUEST",
"FILE_COMPONENT_SEARCH_RESPONSE",
"FORCE_REMOUNT",
"FORCE_RE_RENDER",
"GLOBALS_UPDATED",
"NAVIGATE_URL",
"PLAY_FUNCTION_THREW_EXCEPTION",
"PRELOAD_ENTRIES",
"PREVIEW_BUILDER_PROGRESS",
"PREVIEW_KEYDOWN",
"REGISTER_SUBSCRIPTION",
"REQUEST_WHATS_NEW_DATA",
"RESET_STORY_ARGS",
"RESULT_WHATS_NEW_DATA",
"SAVE_STORY_REQUEST",
"SAVE_STORY_RESPONSE",
"SELECT_STORY",
"SET_CONFIG",
"SET_CURRENT_STORY",
"SET_FILTER",
"SET_GLOBALS",
"SET_INDEX",
"SET_STORIES",
"SET_WHATS_NEW_CACHE",
"SHARED_STATE_CHANGED",
"SHARED_STATE_SET",
"STORIES_COLLAPSE_ALL",
"STORIES_EXPAND_ALL",
"STORY_ARGS_UPDATED",
"STORY_CHANGED",
"STORY_ERRORED",
"STORY_FINISHED",
"STORY_HOT_UPDATED",
"STORY_INDEX_INVALIDATED",
"STORY_MISSING",
"STORY_PREPARED",
"STORY_RENDERED",
"STORY_RENDER_PHASE_CHANGED",
"STORY_SPECIFIED",
"STORY_THREW_EXCEPTION",
"STORY_UNCHANGED",
"TELEMETRY_ERROR",
"TOGGLE_WHATS_NEW_NOTIFICATIONS",
"UNHANDLED_ERRORS_WHILE_PLAYING",
"UPDATE_GLOBALS",
"UPDATE_QUERY_PARAMS",
"UPDATE_STORY_ARGS"
],
"storybook/internal/core-events": [
"ARGTYPES_INFO_REQUEST",
"ARGTYPES_INFO_RESPONSE",
"CHANNEL_CREATED",
"CHANNEL_WS_DISCONNECT",
"CONFIG_ERROR",
"CREATE_NEW_STORYFILE_REQUEST",
"CREATE_NEW_STORYFILE_RESPONSE",
"CURRENT_STORY_WAS_SET",
"DOCS_PREPARED",
"DOCS_RENDERED",
"FILE_COMPONENT_SEARCH_REQUEST",
"FILE_COMPONENT_SEARCH_RESPONSE",
"FORCE_REMOUNT",
"FORCE_RE_RENDER",
"GLOBALS_UPDATED",
"NAVIGATE_URL",
"PLAY_FUNCTION_THREW_EXCEPTION",
"PRELOAD_ENTRIES",
"PREVIEW_BUILDER_PROGRESS",
"PREVIEW_KEYDOWN",
"REGISTER_SUBSCRIPTION",
"REQUEST_WHATS_NEW_DATA",
"RESET_STORY_ARGS",
"RESULT_WHATS_NEW_DATA",
"SAVE_STORY_REQUEST",
"SAVE_STORY_RESPONSE",
"SELECT_STORY",
"SET_CONFIG",
"SET_CURRENT_STORY",
"SET_FILTER",
"SET_GLOBALS",
"SET_INDEX",
"SET_STORIES",
"SET_WHATS_NEW_CACHE",
"SHARED_STATE_CHANGED",
"SHARED_STATE_SET",
"STORIES_COLLAPSE_ALL",
"STORIES_EXPAND_ALL",
"STORY_ARGS_UPDATED",
"STORY_CHANGED",
"STORY_ERRORED",
"STORY_FINISHED",
"STORY_HOT_UPDATED",
"STORY_INDEX_INVALIDATED",
"STORY_MISSING",
"STORY_PREPARED",
"STORY_RENDERED",
"STORY_RENDER_PHASE_CHANGED",
"STORY_SPECIFIED",
"STORY_THREW_EXCEPTION",
"STORY_UNCHANGED",
"TELEMETRY_ERROR",
"TOGGLE_WHATS_NEW_NOTIFICATIONS",
"UNHANDLED_ERRORS_WHILE_PLAYING",
"UPDATE_GLOBALS",
"UPDATE_QUERY_PARAMS",
"UPDATE_STORY_ARGS"
],
"storybook/internal/manager-errors": [
"Category",
"ProviderDoesNotExtendBaseProviderError",
"StatusTypeIdMismatchError",
"UncaughtManagerError"
],
"storybook/internal/router": [
"BaseLocationProvider",
"DEEPLY_EQUAL",
"Link",
"Location",
"LocationProvider",
"Match",
"Route",
"buildArgsParam",
"deepDiff",
"getMatch",
"parsePath",
"queryFromLocation",
"stringifyQuery",
"useNavigate"
],
"storybook/internal/types": ["Addon_TypesEnum"],
"storybook/internal/manager-api": [
"ActiveTabs",
"Consumer",
"ManagerContext",
"Provider",
"RequestResponseError",
"addons",
"combineParameters",
"controlOrMetaKey",
"controlOrMetaSymbol",
"eventMatchesShortcut",
"eventToShortcut",
"experimental_MockUniversalStore",
"experimental_UniversalStore",
"experimental_getStatusStore",
"experimental_getTestProviderStore",
"experimental_requestResponse",
"experimental_useStatusStore",
"experimental_useTestProviderStore",
"experimental_useUniversalStore",
"internal_fullStatusStore",
"internal_fullTestProviderStore",
"internal_universalStatusStore",
"internal_universalTestProviderStore",
"isMacLike",
"isShortcutTaken",
"keyToSymbol",
"merge",
"mockChannel",
"optionOrAltSymbol",
"shortcutMatchesShortcut",
"shortcutToHumanString",
"types",
"useAddonState",
"useArgTypes",
"useArgs",
"useChannel",
"useGlobalTypes",
"useGlobals",
"useParameter",
"useSharedState",
"useStoryPrepared",
"useStorybookApi",
"useStorybookState"
],
"storybook/internal/theming": [
"CacheProvider",
"ClassNames",
"Global",
"ThemeProvider",
"background",
"color",
"convert",
"create",
"createCache",
"createGlobal",
"createReset",
"css",
"darken",
"ensure",
"ignoreSsrWarning",
"isPropValid",
"jsx",
"keyframes",
"lighten",
"styled",
"themes",
"typography",
"useTheme",
"withTheme"
],
"storybook/internal/theming/create": ["create", "themes"]
};
// src/manager/globals/globals.ts
var a = {
react: "__REACT__",
"react-dom": "__REACT_DOM__",
"react-dom/client": "__REACT_DOM_CLIENT__",
"@storybook/icons": "__STORYBOOK_ICONS__",
"storybook/manager-api": "__STORYBOOK_API__",
"storybook/test": "__STORYBOOK_TEST__",
"storybook/theming": "__STORYBOOK_THEMING__",
"storybook/theming/create": "__STORYBOOK_THEMING_CREATE__",
"storybook/internal/channels": "__STORYBOOK_CHANNELS__",
"storybook/internal/client-logger": "__STORYBOOK_CLIENT_LOGGER__",
"storybook/internal/components": "__STORYBOOK_COMPONENTS__",
"storybook/internal/core-errors": "__STORYBOOK_CORE_EVENTS__",
"storybook/internal/core-events": "__STORYBOOK_CORE_EVENTS__",
"storybook/internal/manager-errors": "__STORYBOOK_CORE_EVENTS_MANAGER_ERRORS__",
"storybook/internal/router": "__STORYBOOK_ROUTER__",
"storybook/internal/types": "__STORYBOOK_TYPES__",
// @deprecated TODO: delete in 9.1
"storybook/internal/manager-api": "__STORYBOOK_API__",
"storybook/internal/theming": "__STORYBOOK_THEMING__",
"storybook/internal/theming/create": "__STORYBOOK_THEMING_CREATE__"
}, I = Object.keys(a);
// src/manager/globals/globals-module-info.ts
var R = I.reduce(
(o, e) => (o[e] = {
type: "esm",
varName: a[e],
namedExports: l[e],
defaultExport: !0
}, o),
{}
);

Some files were not shown because too many files have changed in this diff Show More