@weasel-js/forge 1.9.3 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +34 -4
  2. package/dist/{FrameController-CpcY0DNB.d.ts → FrameController-UeTY7ubF.d.ts} +26 -36
  3. package/dist/{chunk-Q2EZXJFE.js → chunk-4NM3RTYK.js} +70 -56
  4. package/dist/chunk-4NM3RTYK.js.map +1 -0
  5. package/dist/chunk-5DXUNLV2.js +6 -0
  6. package/dist/chunk-5DXUNLV2.js.map +1 -0
  7. package/dist/{chunk-GZPQMGXJ.js → chunk-DFKCLZKS.js} +5 -4
  8. package/dist/chunk-DFKCLZKS.js.map +1 -0
  9. package/dist/{chunk-CJX3W5HY.js → chunk-DKWHGSBZ.js} +4 -3
  10. package/dist/chunk-DKWHGSBZ.js.map +1 -0
  11. package/dist/{chunk-BGOHALHO.js → chunk-ENXU34PI.js} +23 -111
  12. package/dist/chunk-ENXU34PI.js.map +1 -0
  13. package/dist/chunk-FL2MUPUL.js +10 -0
  14. package/dist/chunk-FL2MUPUL.js.map +1 -0
  15. package/dist/{chunk-MGQWCPYE.js → chunk-GB6PRJET.js} +4 -5
  16. package/dist/chunk-GB6PRJET.js.map +1 -0
  17. package/dist/{chunk-JVRHBI3V.js → chunk-V4RI7GWD.js} +53 -59
  18. package/dist/chunk-V4RI7GWD.js.map +1 -0
  19. package/dist/{chunk-HRGPFQBW.js → chunk-ZAWXMUGZ.js} +6 -3
  20. package/dist/chunk-ZAWXMUGZ.js.map +1 -0
  21. package/dist/{config-BfsYw5lg.d.ts → config-Cz7ZyGF-.d.ts} +28 -5
  22. package/dist/csf/preview-api.d.ts +5 -2
  23. package/dist/csf/preview-api.js +2 -2
  24. package/dist/csf/preview-api.js.map +1 -1
  25. package/dist/frame/index.css +19 -2
  26. package/dist/frame/index.css.map +1 -1
  27. package/dist/frame/index.d.ts +2 -2
  28. package/dist/frame/index.js +7 -41
  29. package/dist/frame/index.js.map +1 -1
  30. package/dist/index.d.ts +4 -4
  31. package/dist/index.js +3 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/shell/index.css +93 -62
  34. package/dist/shell/index.css.map +1 -1
  35. package/dist/shell/index.d.ts +10 -17
  36. package/dist/shell/index.js +724 -587
  37. package/dist/shell/index.js.map +1 -1
  38. package/dist/test/index.d.ts +4 -2
  39. package/dist/test/index.js +8 -8
  40. package/dist/test/index.js.map +1 -1
  41. package/dist/test/play.d.ts +2 -4
  42. package/dist/test/play.js.map +1 -1
  43. package/dist/vite/index.d.ts +19 -2
  44. package/dist/vite/index.js +751 -162
  45. package/dist/vite/index.js.map +1 -1
  46. package/package.json +10 -5
  47. package/dist/chunk-BGOHALHO.js.map +0 -1
  48. package/dist/chunk-CJX3W5HY.js.map +0 -1
  49. package/dist/chunk-GZPQMGXJ.js.map +0 -1
  50. package/dist/chunk-HRGPFQBW.js.map +0 -1
  51. package/dist/chunk-JVRHBI3V.js.map +0 -1
  52. package/dist/chunk-KJGXJD3U.js +0 -15
  53. package/dist/chunk-KJGXJD3U.js.map +0 -1
  54. package/dist/chunk-MGQWCPYE.js.map +0 -1
  55. package/dist/chunk-Q2EZXJFE.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shell/shell.css","../../src/shell/cssVars/cssVars.css","../../src/timeline/timeline.css","../../src/shell/Crumbs.css","../../src/frame/index/index.css"],"sourcesContent":[".fg-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--wzl-space-xs);\n min-height: 100vh;\n padding-inline: var(--wzl-space-md);\n background: var(--wzl-surface-sunken);\n color: var(--wzl-fg);\n}\n\n.fg-empty__title {\n margin: 0;\n font-weight: var(--wzl-font-weight-bold);\n}\n\n.fg-empty__globs {\n margin: 0;\n padding: 0;\n list-style: none;\n font-family: var(--wzl-font-mono);\n font-size: var(--wzl-font-size-sm);\n}\n\n/* One story's box in the workshop document; the theme attributes land on it from applyGlobals. `contain: paint`,\n exactly that value, makes it the containing block for fixed-position descendants, so a Dialog stays inside its\n trial, and it is the one containment React Aria's positioning recognizes: `layout paint` also contains, but the\n popover math then still assumes the viewport and lands a list a whole host offset too high. */\n.fg-story {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n overflow: auto;\n contain: paint;\n background: var(--wzl-surface);\n color: var(--wzl-fg);\n transition: opacity var(--wzl-motion-fast) var(--wzl-ease-out-cubic);\n}\n\n.fg-story[data-pending] {\n visibility: hidden;\n opacity: 0;\n}\n\n.fg-story[data-fg-layout='centered'] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.fg-story[data-fg-layout='padded'] {\n padding: 16px;\n}\n\n.fg-story[data-fg-layout='fullscreen'] {\n padding: 0;\n}\n\n.fg-story--loading {\n visibility: visible;\n opacity: 1;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fg-story {\n transition: none;\n }\n}\n\n.fg-frame-host {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.fg-frame-slot {\n display: contents;\n}\n\n/* Warm frames lay out at a trial's usual size, so moving one into place is not its first layout. */\n.fg-frame-pool {\n position: fixed;\n top: 0;\n left: -10000px;\n width: 1024px;\n height: 768px;\n visibility: hidden;\n pointer-events: none;\n}\n\n.fg-frame-pool > iframe {\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.fg-frame-view {\n display: block;\n width: 100%;\n height: 100%;\n border: 0;\n transition: opacity var(--wzl-motion-fast) var(--wzl-ease-out-cubic);\n}\n\n.fg-frame-view[data-pending] {\n visibility: hidden;\n opacity: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fg-frame-view {\n transition: none;\n }\n}\n\n.fg-fault {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n padding: var(--wzl-space-md);\n overflow: auto;\n background: var(--wzl-surface-sunken);\n color: var(--wzl-fg);\n font-family: var(--wzl-font-mono);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-fault__phase {\n color: var(--wzl-danger);\n font-weight: var(--wzl-font-weight-bold);\n text-transform: uppercase;\n}\n\n.fg-fault__message {\n margin: 0;\n white-space: pre-wrap;\n}\n\n.fg-tree {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n padding: 0 var(--wzl-space-sm) var(--wzl-space-sm);\n border-bottom: var(--wzl-border-w) solid var(--wzl-line-subtle);\n color: var(--wzl-fg);\n}\n\n.fg-tree__heading {\n margin: 0;\n padding-block: var(--wzl-space-xs);\n color: var(--wzl-fg-muted);\n font-family: var(--wzl-font-display);\n font-size: var(--wzl-font-size-sm);\n font-weight: var(--wzl-font-weight-bold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n}\n\n.fg-route-miss {\n margin: 0;\n color: var(--wzl-danger);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-tree__filter {\n box-sizing: border-box;\n width: 100%;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-tree__items,\n.fg-tree__group {\n display: flex;\n flex-direction: column;\n}\n\n.fg-tree__items {\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-tree__group {\n padding-inline-start: var(--wzl-space-sm);\n}\n\n.fg-tree__node {\n display: flex;\n flex-direction: column;\n min-width: 0;\n outline: none;\n}\n\n.fg-tree__item {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-xs);\n padding: calc(var(--wzl-space-xs) / 2) var(--wzl-space-xs);\n border-radius: var(--wzl-radius-sm);\n overflow: hidden;\n color: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n}\n\n/* text-overflow does not reach a flex container's anonymous text box, so the label clips itself. */\n.fg-tree__label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fg-tree__item:hover {\n background: var(--wzl-surface-hover);\n}\n\n/* Sits after the label, which is the element that shrinks, so the tag keeps\n its width and the rows' tags line up down the column. */\n.fg-tree__item > .fg-tree__tag {\n flex: none;\n margin-inline-start: auto;\n}\n\n.fg-tree__tag {\n --badge-font-size: var(--wzl-font-size-2xs);\n}\n\n.fg-tree__libraries {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wzl-space-xs);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n/* An inline badge rides the label's text baseline and hangs below the checkbox; as a flex item it is a box the label can center. */\n.fg-tree__library {\n display: flex;\n}\n\n.fg-tree__libraries-legend {\n padding: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n\n/* A folder item holds its group, so its ring goes on its own row rather than around the subtree. */\n.fg-tree__story:focus-visible,\n.fg-tree__node:focus-visible > .fg-tree__folder {\n outline: var(--wzl-line-width) solid var(--wzl-accent);\n outline-offset: calc(-1 * var(--wzl-line-width));\n}\n\n.fg-tree__item[aria-current='true'],\n.fg-tree__node[aria-current='true'] > .fg-tree__folder {\n color: var(--wzl-secondary-fg);\n}\n\n/* Padded out to a hit target and pulled back by the same amount, except on the label's side, where the padding\n widens the gap to the label. */\n.fg-tree__fold {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc(-1 * var(--wzl-space-xs));\n margin-inline-end: 0;\n padding: var(--wzl-space-xs);\n}\n\n.fg-tree__folder {\n font-weight: calc(var(--wzl-font-weight-normal) + 100);\n}\n\n.fg-tree__story {\n /* The CSS floor, which the browser rounds up to the lightest weight the face has. */\n font-weight: 100;\n /* Clears the folder rows' 13px fold mark, so a story's label lines up with its folder's. */\n padding-inline-start: calc(var(--wzl-space-xs) * 3 + 13px);\n}\n\n.lk-trial.fg-flash {\n outline: var(--wzl-line-width) solid var(--wzl-accent);\n outline-offset: calc(-1 * var(--wzl-line-width));\n animation: fg-flash 600ms ease-out forwards;\n}\n\n@keyframes fg-flash {\n from {\n outline-color: var(--wzl-accent);\n }\n to {\n outline-color: transparent;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .lk-trial.fg-flash {\n animation: none;\n }\n}\n\n.fg-globals,\n.fg-globals__item {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-xs);\n}\n\n.fg-globals__item {\n gap: 0;\n}\n\n.fg-globals__popover {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-sm);\n min-width: 14rem;\n}\n\n\n.fg-a11y,\n.fg-a11y-focus {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n min-width: 0;\n}\n\n.fg-a11y__trial {\n margin: 0;\n overflow: hidden;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fg-a11y__controls {\n display: flex;\n gap: var(--wzl-space-xs);\n}\n\n.fg-a11y__note,\n.fg-a11y__tally {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-a11y__group {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n}\n\n.fg-a11y__group-title {\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-a11y__findings,\n.fg-a11y__nodes {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.fg-a11y__finding {\n border-inline-start: 2px solid var(--wzl-border);\n padding-inline-start: var(--wzl-space-xs);\n}\n\n.fg-a11y__help {\n display: flex;\n align-items: baseline;\n gap: var(--wzl-space-xs);\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-a11y__impact {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n text-transform: uppercase;\n}\n\n.fg-a11y__impact[data-impact='serious'],\n.fg-a11y__impact[data-impact='critical'] {\n color: var(--wzl-danger);\n}\n\n.fg-a11y__nodes {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n word-break: break-all;\n}\n\n/* Get Info */\n\n.fg-info-dialog {\n /* Wide enough for the longest row a dossier carries — an absolute story file\n path — to sit on one line. */\n inline-size: min(52rem, 90vw);\n}\n\n.fg-info {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-md);\n}\n\n.fg-info__section {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n}\n\n.fg-info__heading {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n font-weight: var(--wzl-font-weight-medium);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.fg-info__doc {\n margin: 0;\n white-space: pre-line;\n}\n\n.fg-info__doc--component {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-info__rows {\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: var(--wzl-space-xs) var(--wzl-space-sm);\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-info__row {\n display: contents;\n}\n\n.fg-info__key {\n color: var(--wzl-fg-muted);\n text-align: end;\n}\n\n.fg-info__value {\n margin: 0;\n min-inline-size: 0;\n overflow-wrap: anywhere;\n}\n\n.fg-info__path {\n font-size: var(--wzl-font-size-xs);\n}\n\n.fg-info__args {\n inline-size: 100%;\n border-collapse: collapse;\n font-size: var(--wzl-font-size-sm);\n text-align: start;\n}\n\n.fg-info__args th,\n.fg-info__args td {\n padding: var(--wzl-space-xs) var(--wzl-space-xs);\n border-block-end: 1px solid var(--wzl-border);\n vertical-align: baseline;\n text-align: start;\n font-weight: var(--wzl-font-weight-normal);\n}\n\n.fg-info__args thead th {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n text-transform: uppercase;\n}\n\n.fg-info__arg-name {\n display: block;\n}\n\n.fg-info__arg-doc {\n display: block;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n}\n\n.fg-info__arg-kind {\n color: var(--wzl-fg-muted);\n}\n\n.fg-info__value-cell {\n overflow-wrap: anywhere;\n}\n\n.fg-info__empty {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n",".fg-css-vars,\n.fg-css-vars-focus {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n min-width: 0;\n}\n\n.fg-css-vars__trial {\n margin: 0;\n overflow: hidden;\n color: var(--wzl-fg-subtle);\n font-size: var(--wzl-font-size-xs);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Held under the section's own sticky title bar while the list scrolls the aside under it. */\n.fg-css-vars__controls {\n position: sticky;\n top: var(--lk-section-bar-h, 0);\n z-index: 1;\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n padding-block-end: var(--wzl-space-xs);\n background: var(--wzl-surface);\n border-bottom: var(--wzl-border-w) solid var(--wzl-line-subtle);\n}\n\n.fg-css-vars__bar {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-xs);\n --wzl-field-h: var(--wzl-control-h-sm);\n}\n\n.fg-css-vars__filter {\n flex: 1 1 auto;\n min-width: 0;\n --wzl-font-size: var(--wzl-font-size-sm);\n}\n\n.fg-css-vars__save {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--wzl-space-xs);\n}\n\n.fg-css-vars__notice {\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-css-vars__notice--saved {\n color: var(--wzl-fg-muted);\n}\n\n.fg-css-vars__notice--error {\n color: var(--wzl-danger);\n}\n\n.fg-css-vars__empty {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n",".fg-transport {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-6);\n min-inline-size: 0;\n}\n\n.fg-transport__scrub {\n inline-size: 16rem;\n min-inline-size: 6rem;\n flex: 1 1 16rem;\n}\n",".fg-crumbs {\n display: inline-flex;\n align-items: baseline;\n gap: 0.35em;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.fg-crumbs__sep {\n color: var(--wzl-fg-subtle);\n}\n\n/* Reads as the title it is until pointed at. */\n.fg-crumbs__step {\n padding: 0;\n border: 0;\n background: none;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n cursor: pointer;\n}\n\n.fg-crumbs__step:hover {\n color: var(--wzl-accent-fg);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.fg-crumbs__step:focus-visible {\n outline: var(--wzl-line-width) solid var(--wzl-focus-ring);\n outline-offset: 1px;\n border-radius: var(--wzl-radius-sm);\n}\n",".fg-index {\n box-sizing: border-box;\n max-width: 1200px;\n margin: 0 auto;\n padding: var(--wzl-space-lg);\n font-family: var(--wzl-font-ui);\n font-size: var(--wzl-font-size);\n color: var(--wzl-fg);\n}\n\n.fg-index__head {\n margin-bottom: calc(var(--wzl-space-lg) * 2);\n}\n\n.fg-index__path {\n margin: 0 0 var(--wzl-space-2);\n font-size: var(--wzl-font-size-lg);\n color: var(--wzl-fg-muted);\n}\n\n.fg-index__title {\n margin: 0;\n font-family: var(--wzl-panel-title-font);\n font-size: calc(var(--wzl-font-size-xl) * 1.6);\n font-weight: var(--wzl-font-weight-medium);\n letter-spacing: var(--wzl-panel-title-tracking);\n text-transform: var(--wzl-panel-title-case);\n}\n\n.fg-index__description,\n.fg-index-story__description {\n max-width: 72ch;\n margin: var(--wzl-space-4) 0 0;\n font-family: var(--wzl-font-body);\n line-height: 1.5;\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-story {\n padding-top: calc(var(--wzl-space-lg) * 1.5);\n margin-top: calc(var(--wzl-space-lg) * 1.5);\n border-top: var(--wzl-border-w) solid var(--wzl-border);\n}\n\n.fg-index-story__head {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-6);\n}\n\n.fg-index-story__name {\n margin: 0;\n font-family: var(--wzl-panel-title-font);\n font-size: var(--wzl-font-size-xl);\n font-weight: var(--wzl-panel-title-weight);\n letter-spacing: var(--wzl-panel-title-tracking);\n text-transform: var(--wzl-panel-title-case);\n color: var(--wzl-panel-title-color);\n}\n\n.fg-index-cell {\n margin: var(--wzl-space-8) 0 0;\n width: fit-content;\n /* A fluid specimen (a slider, a tiled workspace) has no width of its own,\n so hugging it alone collapses the cell to its padding. */\n min-width: min(100%, 20rem);\n max-width: 100%;\n}\n\n.fg-index-cell__stage {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 96px;\n padding: var(--wzl-space-2);\n border: var(--wzl-border-w) solid var(--wzl-border);\n border-radius: var(--wzl-radius-md);\n background: var(--wzl-surface);\n overflow: auto;\n}\n\n/* A padded story sits top-left as it would on a page: the column's width, and\n none of the minimum height that gives a centered one presence. */\n.fg-index-cell--padded {\n width: auto;\n}\n\n.fg-index-cell--padded > .fg-index-cell__stage {\n display: block;\n min-height: 0;\n}\n\n.fg-index-cell--fullscreen {\n width: auto;\n}\n\n.fg-index-cell--fullscreen > .fg-index-cell__stage {\n display: block;\n height: 360px;\n padding: 0;\n}\n\n.fg-index-cell__label {\n margin-top: var(--wzl-space-3);\n font-family: var(--wzl-font-mono);\n font-size: var(--wzl-font-size-sm);\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-variants__row {\n margin-top: calc(var(--wzl-space-lg) * 1.25);\n}\n\n/* Set as the kit's panel titles are, at the small size. */\n.fg-index-variants__label {\n margin: 0;\n font-family: var(--wzl-panel-title-font);\n font-size: var(--wzl-font-size-sm);\n font-weight: var(--wzl-panel-title-weight);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-variants__cells {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wzl-space-6);\n}\n\n.fg-index-variants__cells > .fg-index-cell {\n margin-top: var(--wzl-space-4);\n}\n\n.fg-index__library {\n margin-inline-end: var(--wzl-space-4);\n vertical-align: middle;\n}\n\n.fg-index__title-row {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-6);\n}\n\n.fg-index-deps {\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: var(--wzl-space-3) var(--wzl-space-8);\n margin: var(--wzl-space-8) 0 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-index-deps__row {\n display: contents;\n}\n\n.fg-index-deps__label {\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-deps__value {\n margin: 0;\n}\n\n.fg-index-deps__list {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wzl-space-2) var(--wzl-space-6);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.fg-index-deps__link {\n color: var(--wzl-accent-fg);\n text-decoration: none;\n}\n\n.fg-index-deps__link:hover {\n text-decoration: underline;\n}\n\n.fg-index-deps__prefix,\n.fg-index-deps__empty,\n.fg-index-deps__none {\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-deps__none {\n max-width: 72ch;\n margin: var(--wzl-space-8) 0 0;\n font-size: var(--wzl-font-size-sm);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/shell/shell.css","../../src/timeline/timeline.css","../../src/shell/Crumbs.css","../../src/frame/index/index.css","../../src/shell/cssVars/cssVars.css"],"sourcesContent":[".fg-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--wzl-space-xs);\n min-height: 100vh;\n padding-inline: var(--wzl-space-md);\n background: var(--wzl-surface-sunken);\n color: var(--wzl-fg);\n}\n\n.fg-empty__title {\n margin: 0;\n font-weight: var(--wzl-font-weight-bold);\n}\n\n.fg-empty__globs {\n margin: 0;\n padding: 0;\n list-style: none;\n font-family: var(--wzl-font-mono);\n font-size: var(--wzl-font-size-sm);\n}\n\n/* One story's box in the workshop document; the theme attributes land on it from applyGlobals. `contain: paint`,\n exactly that value, makes it the containing block for fixed-position descendants, so a Dialog stays inside its\n trial, and it is the one containment React Aria's positioning recognizes: `layout paint` also contains, but the\n popover math then still assumes the viewport and lands a list a whole host offset too high. */\n.fg-story {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n overflow: auto;\n contain: paint;\n background: var(--wzl-surface);\n color: var(--wzl-fg);\n transition: opacity var(--wzl-motion-fast) var(--wzl-ease-out-cubic);\n}\n\n.fg-story[data-pending] {\n opacity: 0;\n pointer-events: none;\n}\n\n.fg-story[data-fg-layout='centered'] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.fg-story[data-fg-layout='padded'] {\n padding: var(--wzl-space-8);\n}\n\n.fg-story[data-fg-layout='fullscreen'] {\n padding: 0;\n}\n\n.fg-story--loading {\n visibility: visible;\n opacity: 1;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fg-story {\n transition: none;\n }\n}\n\n.fg-frame-host {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.fg-frame-slot {\n display: contents;\n}\n\n/* Warm frames lay out at a trial's usual size, so moving one into place is not its first layout. */\n.fg-frame-pool {\n position: fixed;\n top: 0;\n left: -10000px;\n width: 1024px;\n height: 768px;\n visibility: hidden;\n pointer-events: none;\n}\n\n.fg-frame-pool > iframe {\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.fg-frame-view {\n display: block;\n width: 100%;\n height: 100%;\n border: 0;\n transition: opacity var(--wzl-motion-fast) var(--wzl-ease-out-cubic);\n}\n\n.fg-frame-view[data-pending] {\n visibility: hidden;\n opacity: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fg-frame-view {\n transition: none;\n }\n}\n\n.fg-fault {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n padding: var(--wzl-space-md);\n overflow: auto;\n background: var(--wzl-surface-sunken);\n color: var(--wzl-fg);\n font-family: var(--wzl-font-mono);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-fault__phase {\n color: var(--wzl-danger);\n font-weight: var(--wzl-font-weight-bold);\n text-transform: uppercase;\n}\n\n.fg-fault__message {\n margin: 0;\n white-space: pre-wrap;\n}\n\n.fg-tree {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n padding: 0 var(--wzl-space-sm) var(--wzl-space-sm);\n border-bottom: var(--wzl-border-w) solid var(--wzl-line-subtle);\n color: var(--wzl-fg);\n}\n\n.fg-tree__heading {\n margin: 0;\n padding-block: var(--wzl-space-xs);\n color: var(--wzl-fg-muted);\n font-family: var(--wzl-font-display);\n font-size: var(--wzl-font-size-sm);\n font-weight: var(--wzl-font-weight-bold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n}\n\n.fg-route-miss {\n margin: 0;\n color: var(--wzl-danger);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-tree__filter {\n box-sizing: border-box;\n width: 100%;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-tree__items,\n.fg-tree__group {\n display: flex;\n flex-direction: column;\n}\n\n.fg-tree__items {\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-tree__group {\n padding-inline-start: var(--wzl-space-sm);\n}\n\n.fg-tree__node {\n display: flex;\n flex-direction: column;\n min-width: 0;\n outline: none;\n}\n\n.fg-tree__item {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-xs);\n padding: calc(var(--wzl-space-xs) / 2) var(--wzl-space-xs);\n border-radius: var(--wzl-radius-sm);\n overflow: hidden;\n color: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n}\n\n/* text-overflow does not reach a flex container's anonymous text box, so the label clips itself. */\n.fg-tree__label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fg-tree__item:hover {\n background: var(--wzl-surface-hover);\n}\n\n/* Sits after the label, which is the element that shrinks, so the tag keeps\n its width and the rows' tags line up down the column. */\n.fg-tree__item > .fg-tree__tag {\n flex: none;\n margin-inline-start: auto;\n}\n\n.fg-tree__tag {\n --badge-font-size: var(--wzl-font-size-2xs);\n}\n\n.fg-tree__libraries {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wzl-space-xs);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n/* An inline badge rides the label's text baseline and hangs below the checkbox; as a flex item it is a box the label can center. */\n.fg-tree__library {\n display: flex;\n}\n\n.fg-tree__libraries-legend {\n padding: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n\n/* A folder item holds its group, so its ring goes on its own row rather than around the subtree. */\n.fg-tree__story:focus-visible,\n.fg-tree__node:focus-visible > .fg-tree__folder {\n outline: var(--wzl-line-width) solid var(--wzl-accent);\n outline-offset: calc(-1 * var(--wzl-line-width));\n}\n\n.fg-tree__item[aria-current='true'],\n.fg-tree__node[aria-current='true'] > .fg-tree__folder {\n color: var(--wzl-secondary-fg);\n}\n\n/* Padded out to a hit target and pulled back by the same amount, except on the label's side, where the padding\n widens the gap to the label. */\n.fg-tree__fold {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc(-1 * var(--wzl-space-xs));\n margin-inline-end: 0;\n padding: var(--wzl-space-xs);\n}\n\n.fg-tree__folder {\n font-weight: calc(var(--wzl-font-weight-normal) + 100);\n}\n\n.fg-tree__story {\n /* The CSS floor, which the browser rounds up to the lightest weight the face has. */\n font-weight: 100;\n /* Clears the folder rows' 13px fold mark, so a story's label lines up with its folder's. */\n padding-inline-start: calc(var(--wzl-space-xs) * 3 + 13px);\n}\n\n.lk-trial.fg-flash {\n outline: var(--wzl-line-width) solid var(--wzl-accent);\n outline-offset: calc(-1 * var(--wzl-line-width));\n animation: fg-flash 600ms ease-out forwards;\n}\n\n@keyframes fg-flash {\n from {\n outline-color: var(--wzl-accent);\n }\n to {\n outline-color: transparent;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .lk-trial.fg-flash {\n animation: none;\n }\n}\n\n.fg-globals,\n.fg-globals__item {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-xs);\n}\n\n.fg-globals__item {\n gap: 0;\n}\n\n/* A trial's pins of the globals sit under its story's own controls, at the size of the CSS Vars rows beside them. */\n.fg-globals-pins {\n --wzl-font-size-sm: var(--wzl-font-size-2xs);\n}\n\n.fg-globals__popover {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-sm);\n min-width: 14rem;\n}\n\n\n.fg-a11y,\n.fg-a11y-focus {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n min-width: 0;\n}\n\n.fg-a11y__trial {\n margin: 0;\n overflow: hidden;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fg-a11y__controls {\n display: flex;\n gap: var(--wzl-space-xs);\n}\n\n.fg-a11y__note,\n.fg-a11y__tally {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-a11y__group {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n}\n\n.fg-a11y__group-title {\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-a11y__findings,\n.fg-a11y__nodes {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.fg-a11y__finding {\n border-inline-start: 2px solid var(--wzl-border);\n padding-inline-start: var(--wzl-space-xs);\n}\n\n.fg-a11y__help {\n display: flex;\n align-items: baseline;\n gap: var(--wzl-space-xs);\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-a11y__impact {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n text-transform: uppercase;\n}\n\n.fg-a11y__impact[data-impact='serious'],\n.fg-a11y__impact[data-impact='critical'] {\n color: var(--wzl-danger);\n}\n\n.fg-a11y__nodes {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n word-break: break-all;\n}\n\n/* Get Info */\n\n.fg-info-dialog {\n /* Wide enough for the longest row a dossier carries — an absolute story file\n path — to sit on one line. */\n inline-size: min(52rem, 90vw);\n}\n\n.fg-info {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-md);\n}\n\n.fg-info__section {\n display: flex;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n}\n\n.fg-info__heading {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n font-weight: var(--wzl-font-weight-medium);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.fg-info__doc {\n margin: 0;\n white-space: pre-line;\n}\n\n.fg-info__doc--component {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-info__rows {\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: var(--wzl-space-xs) var(--wzl-space-sm);\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-info__row {\n display: contents;\n}\n\n.fg-info__key {\n color: var(--wzl-fg-muted);\n text-align: end;\n}\n\n.fg-info__value {\n margin: 0;\n min-inline-size: 0;\n overflow-wrap: anywhere;\n}\n\n.fg-info__path {\n font-size: var(--wzl-font-size-xs);\n}\n\n.fg-info__args {\n inline-size: 100%;\n border-collapse: collapse;\n font-size: var(--wzl-font-size-sm);\n text-align: start;\n}\n\n.fg-info__args th,\n.fg-info__args td {\n padding: var(--wzl-space-xs) var(--wzl-space-xs);\n border-block-end: 1px solid var(--wzl-border);\n vertical-align: baseline;\n text-align: start;\n font-weight: var(--wzl-font-weight-normal);\n}\n\n.fg-info__args thead th {\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n text-transform: uppercase;\n}\n\n.fg-info__arg-name {\n display: block;\n}\n\n.fg-info__arg-doc {\n display: block;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-xs);\n}\n\n.fg-info__arg-kind {\n color: var(--wzl-fg-muted);\n}\n\n.fg-info__value-cell {\n overflow-wrap: anywhere;\n}\n\n.fg-info__empty {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n",".fg-transport {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-6);\n min-inline-size: 0;\n}\n\n.fg-transport__scrub {\n inline-size: 16rem;\n min-inline-size: 6rem;\n flex: 1 1 16rem;\n}\n",".fg-crumbs {\n display: inline-flex;\n align-items: baseline;\n gap: 0.35em;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.fg-crumbs__sep {\n color: var(--wzl-fg-subtle);\n}\n\n/* Reads as the title it is until pointed at. */\n.fg-crumbs__step {\n padding: 0;\n border: 0;\n background: none;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n cursor: pointer;\n}\n\n.fg-crumbs__step:hover {\n color: var(--wzl-accent-fg);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.fg-crumbs__step:focus-visible {\n outline: var(--wzl-line-width) solid var(--wzl-focus-ring);\n outline-offset: 1px;\n border-radius: var(--wzl-radius-sm);\n}\n",".fg-index {\n box-sizing: border-box;\n max-width: 1200px;\n margin: 0 auto;\n padding: var(--wzl-space-lg);\n font-family: var(--wzl-font-ui);\n font-size: var(--wzl-font-size);\n color: var(--wzl-fg);\n}\n\n.fg-index__head {\n margin-bottom: calc(var(--wzl-space-lg) * 2);\n}\n\n.fg-index__path {\n margin: 0 0 var(--wzl-space-2);\n font-size: var(--wzl-font-size-lg);\n color: var(--wzl-fg-muted);\n}\n\n.fg-index__title {\n margin: 0;\n font-family: var(--wzl-panel-title-font);\n font-size: calc(var(--wzl-font-size-xl) * 1.6);\n font-weight: var(--wzl-font-weight-medium);\n letter-spacing: var(--wzl-panel-title-tracking);\n text-transform: var(--wzl-panel-title-case);\n}\n\n.fg-index__description,\n.fg-index-story__description {\n max-width: 72ch;\n margin: var(--wzl-space-4) 0 0;\n font-family: var(--wzl-font-body);\n line-height: 1.5;\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-story {\n padding-top: calc(var(--wzl-space-lg) * 1.5);\n margin-top: calc(var(--wzl-space-lg) * 1.5);\n border-top: var(--wzl-border-w) solid var(--wzl-border);\n}\n\n.fg-index-story__head {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-6);\n}\n\n.fg-index-story__name {\n margin: 0;\n font-family: var(--wzl-panel-title-font);\n font-size: var(--wzl-font-size-xl);\n font-weight: var(--wzl-panel-title-weight);\n letter-spacing: var(--wzl-panel-title-tracking);\n text-transform: var(--wzl-panel-title-case);\n color: var(--wzl-panel-title-color);\n}\n\n.fg-index-cell {\n margin: var(--wzl-space-8) 0 0;\n width: fit-content;\n /* A fluid specimen (a slider, a tiled workspace) has no width of its own,\n so hugging it alone collapses the cell to its padding. */\n min-width: min(100%, 20rem);\n max-width: 100%;\n}\n\n.fg-index-cell__stage {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 96px;\n padding: var(--wzl-space-2);\n border: var(--wzl-border-w) solid var(--wzl-border);\n border-radius: var(--wzl-radius-md);\n background: var(--wzl-surface);\n overflow: auto;\n}\n\n/* A padded story sits top-left as it would on a page: the column's width, and\n none of the minimum height that gives a centered one presence. */\n.fg-index-cell--padded {\n width: auto;\n}\n\n.fg-index-cell--padded > .fg-index-cell__stage {\n display: block;\n min-height: 0;\n}\n\n.fg-index-cell--fullscreen {\n width: auto;\n}\n\n.fg-index-cell--fullscreen > .fg-index-cell__stage {\n display: block;\n height: 360px;\n padding: 0;\n}\n\n.fg-index-cell__label {\n margin-top: var(--wzl-space-3);\n font-family: var(--wzl-font-mono);\n font-size: var(--wzl-font-size-sm);\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-variants__row {\n margin-top: calc(var(--wzl-space-lg) * 1.25);\n}\n\n/* Set as the kit's panel titles are, at the small size. */\n.fg-index-variants__label {\n margin: 0;\n font-family: var(--wzl-panel-title-font);\n font-size: var(--wzl-font-size-sm);\n font-weight: var(--wzl-panel-title-weight);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-variants__cells {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wzl-space-6);\n}\n\n.fg-index-variants__cells > .fg-index-cell {\n margin-top: var(--wzl-space-4);\n}\n\n.fg-index__library {\n margin-inline-end: var(--wzl-space-4);\n vertical-align: middle;\n}\n\n.fg-index__title-row {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-6);\n}\n\n.fg-index-history {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wzl-space-2) var(--wzl-space-8);\n margin: var(--wzl-space-8) 0 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-index-history__item {\n display: flex;\n gap: var(--wzl-space-3);\n}\n\n.fg-index-history__label {\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-history__value {\n margin: 0;\n}\n\n.fg-index-deps {\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: var(--wzl-space-3) var(--wzl-space-8);\n margin: var(--wzl-space-8) 0 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-index-deps__row {\n display: contents;\n}\n\n.fg-index-deps__label {\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-deps__value {\n margin: 0;\n}\n\n.fg-index-deps__list {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wzl-space-2) var(--wzl-space-6);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.fg-index-deps__link {\n color: var(--wzl-accent-fg);\n text-decoration: none;\n}\n\n.fg-index-deps__link:hover {\n text-decoration: underline;\n}\n\n.fg-index-deps__prefix,\n.fg-index-deps__empty,\n.fg-index-deps__none {\n color: var(--wzl-fg-muted);\n}\n\n.fg-index-deps__none {\n max-width: 72ch;\n margin: var(--wzl-space-8) 0 0;\n font-size: var(--wzl-font-size-sm);\n}\n",".fg-css-vars,\n.fg-css-vars-focus {\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n min-width: 0;\n min-height: 0;\n}\n\n/* In a torn-out tile nothing flexes it, so it takes the tile's height itself. */\n.fg-css-vars-focus {\n height: 100%;\n}\n\n.fg-css-vars__trial {\n margin: 0;\n overflow: hidden;\n color: var(--wzl-fg-subtle);\n font-size: var(--wzl-font-size-xs);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fg-css-vars__controls {\n display: flex;\n flex: none;\n flex-direction: column;\n gap: var(--wzl-space-xs);\n padding-block-end: var(--wzl-space-xs);\n border-bottom: var(--wzl-border-w) solid var(--wzl-line-subtle);\n}\n\n.fg-css-vars__list {\n flex: 1 1 0;\n min-height: 0;\n overflow-y: auto;\n}\n\n.fg-css-vars__bar {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-xs);\n --wzl-field-h: var(--wzl-control-h-sm);\n}\n\n.fg-css-vars__filter {\n flex: 1 1 auto;\n min-width: 0;\n --wzl-font-size: var(--wzl-font-size-sm);\n}\n\n.fg-css-vars__steps {\n display: flex;\n flex: none;\n}\n\n.fg-css-vars__save {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--wzl-space-xs);\n}\n\n.fg-css-vars__notice {\n margin: 0;\n font-size: var(--wzl-font-size-sm);\n}\n\n.fg-css-vars__notice--saved {\n color: var(--wzl-fg-muted);\n}\n\n.fg-css-vars__notice--error {\n color: var(--wzl-danger);\n}\n\n.fg-css-vars__empty {\n margin: 0;\n color: var(--wzl-fg-muted);\n font-size: var(--wzl-font-size-sm);\n}\n"],"mappings":"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","names":[]}
@@ -2,8 +2,9 @@ import * as react from 'react';
2
2
  import { RefObject, ReactNode } from 'react';
3
3
  import { LabContribution, StorageAdapter, RenderContext, InstrumentList } from '@weasel-js/labkit';
4
4
  import { FrameImporters } from '../frame/index.js';
5
- import { j as IndexEntry, F as FrameSetup, e as DepGraph, L as LoadedStory, k as Layout, G as Globals, l as FromFrame, c as A11yReport, m as ToFrame, n as CssVarReport, o as CapturedPicture, V as Viewport } from '../FrameController-CpcY0DNB.js';
6
- import { S as ShellConfig, a as GlobalDeclarations } from '../config-BfsYw5lg.js';
5
+ import { m as IndexEntry, F as FrameSetup, f as DepGraph, L as LoadedStory, k as Layout, G as Globals, n as FromFrame, c as A11yReport, o as ToFrame, p as CssVarReport } from '../FrameController-UeTY7ubF.js';
6
+ export { q as DescribedEntry, r as DescribedShape, s as SchemaDescription, t as SectionDescription } from '../FrameController-UeTY7ubF.js';
7
+ import { S as ShellConfig, a as GlobalDeclarations, e as Libraries } from '../config-Cz7ZyGF-.js';
7
8
  import '@weasel-js/labkit/config';
8
9
  import '@weasel-js/theme';
9
10
  import '@weasel-js/ui';
@@ -94,7 +95,7 @@ interface TrialHostProps {
94
95
  /**
95
96
  * One story's box in the workshop document: what a frame document was, as an element. It applies the globals to
96
97
  * itself, keeps its CSS variable overrides on itself, contains fixed-position descendants and portals, reports its
97
- * vars, size and audits to the trial's frame registry, and unmounts its content while out of view.
98
+ * vars and audits to the trial's frame registry, and unmounts its content while out of view.
98
99
  */
99
100
  declare function TrialHost({ layout, setup, config, children, hostRef, onRendered }: TrialHostProps): react.JSX.Element;
100
101
 
@@ -114,6 +115,7 @@ interface StoryRegistry {
114
115
  /** Drops what was loaded from `file` and loads it again for every entry that had it, as after an edit. */
115
116
  reload: (file: string) => void;
116
117
  }
118
+ /** What `useStoryRegistry` loads stories from, and what it shows them with. */
117
119
  interface StoryRegistryOptions {
118
120
  frameUrl: string;
119
121
  globals?: GlobalDeclarations;
@@ -122,6 +124,8 @@ interface StoryRegistryOptions {
122
124
  importers?: FrameImporters;
123
125
  /** The frame config, applied to each story host in the document. */
124
126
  setup?: FrameSetup;
127
+ /** Names the library an index page's component ships in. Default: its title's first segment. */
128
+ libraries?: Libraries;
125
129
  load?: (mod: Record<string, unknown>, title: string, parameters?: Record<string, unknown>) => LoadedStory[];
126
130
  }
127
131
  /**
@@ -130,7 +134,6 @@ interface StoryRegistryOptions {
130
134
  */
131
135
  declare function useStoryRegistry(index: readonly IndexEntry[], options: StoryRegistryOptions): StoryRegistry;
132
136
 
133
- type Send = (msg: ToFrame) => void;
134
137
  /** What an axe run in the frame came back with. */
135
138
  type A11yOutcome = {
136
139
  ok: true;
@@ -141,25 +144,19 @@ type A11yOutcome = {
141
144
  };
142
145
  /** The half of a trial's frame that answers a request: each call is one round trip over the frame's channel. */
143
146
  interface TrialFrameCalls {
144
- send: Send;
147
+ send: (msg: ToFrame) => void;
145
148
  audit: () => Promise<A11yOutcome>;
146
- /** Rejects when the frame could not draw itself, or went away before it did. */
147
- capture: () => Promise<CapturedPicture>;
148
149
  }
149
150
  /** What trial chrome can reach of the frame its trial shows. */
150
151
  interface TrialFrame {
151
152
  /** Null while no frame is connected. */
152
- send: Send | null;
153
+ send: ((msg: ToFrame) => void) | null;
153
154
  /** The frame's latest `vars` report. */
154
155
  vars: readonly CssVarReport[];
155
156
  /** Runs axe over the story and records the answer as `a11y`. Null while no frame is connected. */
156
157
  audit: (() => Promise<A11yOutcome>) | null;
157
158
  /** What the last audit found; null until one has run against the connected frame. */
158
159
  a11y: A11yOutcome | null;
159
- /** The story's own picture, for an export to draw over. Null while no frame is connected. */
160
- capture: (() => Promise<CapturedPicture>) | null;
161
- /** The story's content box, as the frame last measured it; null until it has. */
162
- size: Viewport | null;
163
160
  }
164
161
  /** Each trial's frame, keyed by trial id: `FrameView` connects and reports, trial chrome reads. */
165
162
  interface TrialFrames {
@@ -167,10 +164,6 @@ interface TrialFrames {
167
164
  connect(trialId: string, calls: TrialFrameCalls): () => void;
168
165
  report(trialId: string, vars: readonly CssVarReport[]): void;
169
166
  reportA11y(trialId: string, outcome: A11yOutcome): void;
170
- reportSize(trialId: string, size: Viewport): void;
171
- /** The element a trial's frame is mounted in — stable across the frame reloads that replace the link,
172
- * because an annotation target's ref has to outlive them. */
173
- hostRef(trialId: string): RefObject<HTMLElement | null>;
174
167
  get(trialId: string): TrialFrame;
175
168
  subscribe(listener: () => void): () => void;
176
169
  }
@@ -179,4 +172,4 @@ declare const TrialFramesContext: react.Context<TrialFrames | null>;
179
172
  /** The frame of the trial `trialId` names, re-read when it connects or reports. */
180
173
  declare function useTrialFrame(trialId: string): TrialFrame;
181
174
 
182
- export { A11Y_SECTION, type A11yOutcome, A11yPanel, type MountWorkshopOptions, type MountedWorkshop, StoryGlobalsContext, type StoryRegistry, StoryTrial, type StoryTrialProps, type TrialFrame, type TrialFrames, TrialFramesContext, TrialHost, type TrialHostProps, Workshop, type WorkshopProps, mountWorkshop, useStoryRegistry, useTrialFrame };
175
+ export { A11Y_SECTION, type A11yOutcome, A11yPanel, CssVarReport, IndexEntry, Libraries, type MountWorkshopOptions, type MountedWorkshop, type StoryChanges, StoryGlobalsContext, type StoryRegistry, type StoryRegistryOptions, StoryTrial, type StoryTrialProps, type TrialFrame, type TrialFrameCalls, type TrialFrames, TrialFramesContext, TrialHost, type TrialHostProps, Workshop, type WorkshopProps, mountWorkshop, useStoryRegistry, useTrialFrame };