@cardstack/boxel-cli 0.10.0 → 0.10.1-unstable.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.
- package/bundled-realms/pretui/README.md +49 -0
- package/bundled-realms/pretui/color/LICENSE +21 -0
- package/bundled-realms/pretui/color/README.md +155 -0
- package/bundled-realms/pretui/color/index.js +78 -0
- package/bundled-realms/pretui/color-engine.ts +1243 -0
- package/bundled-realms/pretui/components/accordion.gts +58 -0
- package/bundled-realms/pretui/components/accordion.md +60 -0
- package/bundled-realms/pretui/components/accordion.usage.gts +129 -0
- package/bundled-realms/pretui/components/action-bar.gts +407 -0
- package/bundled-realms/pretui/components/action-bar.md +48 -0
- package/bundled-realms/pretui/components/action-bar.usage.gts +213 -0
- package/bundled-realms/pretui/components/affix.gts +116 -0
- package/bundled-realms/pretui/components/affix.md +54 -0
- package/bundled-realms/pretui/components/affix.usage.gts +73 -0
- package/bundled-realms/pretui/components/agent-question.gts +116 -0
- package/bundled-realms/pretui/components/agent-question.md +50 -0
- package/bundled-realms/pretui/components/agent-question.usage.gts +22 -0
- package/bundled-realms/pretui/components/ai-instructions.gts +378 -0
- package/bundled-realms/pretui/components/ai-instructions.md +49 -0
- package/bundled-realms/pretui/components/ai-instructions.usage.gts +101 -0
- package/bundled-realms/pretui/components/alert-dialog.gts +223 -0
- package/bundled-realms/pretui/components/alert-dialog.md +76 -0
- package/bundled-realms/pretui/components/alert-dialog.usage.gts +128 -0
- package/bundled-realms/pretui/components/alert.gts +163 -0
- package/bundled-realms/pretui/components/alert.md +57 -0
- package/bundled-realms/pretui/components/alert.usage.gts +99 -0
- package/bundled-realms/pretui/components/amount-input.gts +621 -0
- package/bundled-realms/pretui/components/amount-input.md +63 -0
- package/bundled-realms/pretui/components/amount-input.usage.gts +170 -0
- package/bundled-realms/pretui/components/angle-dial.gts +367 -0
- package/bundled-realms/pretui/components/angle-dial.md +56 -0
- package/bundled-realms/pretui/components/angle-dial.usage.gts +166 -0
- package/bundled-realms/pretui/components/animated-image.gts +291 -0
- package/bundled-realms/pretui/components/animated-image.md +49 -0
- package/bundled-realms/pretui/components/animated-image.usage.gts +127 -0
- package/bundled-realms/pretui/components/app-shell.gts +19 -0
- package/bundled-realms/pretui/components/app-shell.md +43 -0
- package/bundled-realms/pretui/components/app-shell.usage.gts +52 -0
- package/bundled-realms/pretui/components/approval-footer.gts +69 -0
- package/bundled-realms/pretui/components/approval-footer.md +49 -0
- package/bundled-realms/pretui/components/approval-footer.usage.gts +22 -0
- package/bundled-realms/pretui/components/aspect-ratio.gts +328 -0
- package/bundled-realms/pretui/components/aspect-ratio.md +72 -0
- package/bundled-realms/pretui/components/aspect-ratio.usage.gts +174 -0
- package/bundled-realms/pretui/components/asset-grid.gts +542 -0
- package/bundled-realms/pretui/components/asset-grid.md +54 -0
- package/bundled-realms/pretui/components/asset-grid.usage.gts +171 -0
- package/bundled-realms/pretui/components/asset-well.gts +731 -0
- package/bundled-realms/pretui/components/asset-well.md +72 -0
- package/bundled-realms/pretui/components/asset-well.usage.gts +264 -0
- package/bundled-realms/pretui/components/audio-player.gts +152 -0
- package/bundled-realms/pretui/components/audio-player.md +51 -0
- package/bundled-realms/pretui/components/audio-player.usage.gts +118 -0
- package/bundled-realms/pretui/components/autocomplete.gts +1150 -0
- package/bundled-realms/pretui/components/autocomplete.md +67 -0
- package/bundled-realms/pretui/components/autocomplete.usage.gts +339 -0
- package/bundled-realms/pretui/components/avatar-group.gts +30 -0
- package/bundled-realms/pretui/components/avatar-group.md +48 -0
- package/bundled-realms/pretui/components/avatar-group.usage.gts +39 -0
- package/bundled-realms/pretui/components/avatar.gts +134 -0
- package/bundled-realms/pretui/components/avatar.md +69 -0
- package/bundled-realms/pretui/components/avatar.usage.gts +101 -0
- package/bundled-realms/pretui/components/backdrop.gts +179 -0
- package/bundled-realms/pretui/components/backdrop.md +56 -0
- package/bundled-realms/pretui/components/backdrop.usage.gts +223 -0
- package/bundled-realms/pretui/components/background-field.gts +743 -0
- package/bundled-realms/pretui/components/background-field.md +62 -0
- package/bundled-realms/pretui/components/background-field.usage.gts +328 -0
- package/bundled-realms/pretui/components/badge.gts +188 -0
- package/bundled-realms/pretui/components/badge.md +62 -0
- package/bundled-realms/pretui/components/badge.usage.gts +73 -0
- package/bundled-realms/pretui/components/bar-list.gts +255 -0
- package/bundled-realms/pretui/components/bar-list.md +49 -0
- package/bundled-realms/pretui/components/bar-list.usage.gts +129 -0
- package/bundled-realms/pretui/components/board.gts +108 -0
- package/bundled-realms/pretui/components/board.md +54 -0
- package/bundled-realms/pretui/components/board.usage.gts +321 -0
- package/bundled-realms/pretui/components/bottom-nav.gts +217 -0
- package/bundled-realms/pretui/components/bottom-nav.md +64 -0
- package/bundled-realms/pretui/components/bottom-nav.usage.gts +68 -0
- package/bundled-realms/pretui/components/breadcrumb.gts +56 -0
- package/bundled-realms/pretui/components/breadcrumb.md +52 -0
- package/bundled-realms/pretui/components/breadcrumb.usage.gts +24 -0
- package/bundled-realms/pretui/components/broken-link.gts +46 -0
- package/bundled-realms/pretui/components/broken-link.md +50 -0
- package/bundled-realms/pretui/components/broken-link.usage.gts +57 -0
- package/bundled-realms/pretui/components/button-group.gts +246 -0
- package/bundled-realms/pretui/components/button-group.md +46 -0
- package/bundled-realms/pretui/components/button-group.usage.gts +137 -0
- package/bundled-realms/pretui/components/button.examples.gts +67 -0
- package/bundled-realms/pretui/components/button.gts +594 -0
- package/bundled-realms/pretui/components/button.md +81 -0
- package/bundled-realms/pretui/components/button.usage.gts +159 -0
- package/bundled-realms/pretui/components/calendar.gts +457 -0
- package/bundled-realms/pretui/components/calendar.md +57 -0
- package/bundled-realms/pretui/components/calendar.usage.gts +161 -0
- package/bundled-realms/pretui/components/callout.gts +2 -0
- package/bundled-realms/pretui/components/callout.md +40 -0
- package/bundled-realms/pretui/components/callout.usage.gts +48 -0
- package/bundled-realms/pretui/components/card.gts +637 -0
- package/bundled-realms/pretui/components/card.md +105 -0
- package/bundled-realms/pretui/components/card.usage.gts +279 -0
- package/bundled-realms/pretui/components/carousel.gts +583 -0
- package/bundled-realms/pretui/components/carousel.md +53 -0
- package/bundled-realms/pretui/components/carousel.usage.gts +220 -0
- package/bundled-realms/pretui/components/cascader.gts +436 -0
- package/bundled-realms/pretui/components/cascader.md +61 -0
- package/bundled-realms/pretui/components/cascader.usage.gts +79 -0
- package/bundled-realms/pretui/components/channel-slider.gts +251 -0
- package/bundled-realms/pretui/components/channel-slider.md +51 -0
- package/bundled-realms/pretui/components/channel-slider.usage.gts +104 -0
- package/bundled-realms/pretui/components/chart.gts +1011 -0
- package/bundled-realms/pretui/components/chart.md +60 -0
- package/bundled-realms/pretui/components/chart.usage.gts +660 -0
- package/bundled-realms/pretui/components/checkbox-card.gts +82 -0
- package/bundled-realms/pretui/components/checkbox-card.md +73 -0
- package/bundled-realms/pretui/components/checkbox-card.usage.gts +114 -0
- package/bundled-realms/pretui/components/checkbox.examples.gts +61 -0
- package/bundled-realms/pretui/components/checkbox.gts +123 -0
- package/bundled-realms/pretui/components/checkbox.md +55 -0
- package/bundled-realms/pretui/components/checkbox.usage.gts +31 -0
- package/bundled-realms/pretui/components/chip.gts +136 -0
- package/bundled-realms/pretui/components/chip.md +54 -0
- package/bundled-realms/pretui/components/chip.usage.gts +97 -0
- package/bundled-realms/pretui/components/code-block.gts +888 -0
- package/bundled-realms/pretui/components/code-block.md +61 -0
- package/bundled-realms/pretui/components/code-block.usage.gts +374 -0
- package/bundled-realms/pretui/components/collapsed-turn.gts +44 -0
- package/bundled-realms/pretui/components/collapsed-turn.md +48 -0
- package/bundled-realms/pretui/components/collapsed-turn.usage.gts +21 -0
- package/bundled-realms/pretui/components/collapsible.gts +283 -0
- package/bundled-realms/pretui/components/collapsible.md +69 -0
- package/bundled-realms/pretui/components/collapsible.usage.gts +173 -0
- package/bundled-realms/pretui/components/color-area.gts +339 -0
- package/bundled-realms/pretui/components/color-area.md +49 -0
- package/bundled-realms/pretui/components/color-area.usage.gts +72 -0
- package/bundled-realms/pretui/components/color-field.gts +179 -0
- package/bundled-realms/pretui/components/color-field.md +47 -0
- package/bundled-realms/pretui/components/color-field.usage.gts +87 -0
- package/bundled-realms/pretui/components/color-palette.gts +198 -0
- package/bundled-realms/pretui/components/color-palette.md +48 -0
- package/bundled-realms/pretui/components/color-picker.gts +721 -0
- package/bundled-realms/pretui/components/color-picker.md +59 -0
- package/bundled-realms/pretui/components/color-picker.usage.gts +122 -0
- package/bundled-realms/pretui/components/color-stop-editor.gts +184 -0
- package/bundled-realms/pretui/components/color-stop-editor.md +46 -0
- package/bundled-realms/pretui/components/color-stop-editor.usage.gts +75 -0
- package/bundled-realms/pretui/components/combobox.gts +333 -0
- package/bundled-realms/pretui/components/combobox.md +49 -0
- package/bundled-realms/pretui/components/combobox.usage.gts +143 -0
- package/bundled-realms/pretui/components/command-palette.gts +982 -0
- package/bundled-realms/pretui/components/command-palette.md +47 -0
- package/bundled-realms/pretui/components/command-palette.usage.gts +95 -0
- package/bundled-realms/pretui/components/command.gts +2 -0
- package/bundled-realms/pretui/components/command.md +45 -0
- package/bundled-realms/pretui/components/command.usage.gts +58 -0
- package/bundled-realms/pretui/components/compaction-chip.gts +273 -0
- package/bundled-realms/pretui/components/compaction-chip.md +45 -0
- package/bundled-realms/pretui/components/compaction-chip.usage.gts +110 -0
- package/bundled-realms/pretui/components/comparison.gts +223 -0
- package/bundled-realms/pretui/components/comparison.md +46 -0
- package/bundled-realms/pretui/components/comparison.usage.gts +148 -0
- package/bundled-realms/pretui/components/composer.gts +566 -0
- package/bundled-realms/pretui/components/composer.md +59 -0
- package/bundled-realms/pretui/components/composer.usage.gts +173 -0
- package/bundled-realms/pretui/components/compound-field.gts +289 -0
- package/bundled-realms/pretui/components/compound-field.md +66 -0
- package/bundled-realms/pretui/components/compound-field.usage.gts +378 -0
- package/bundled-realms/pretui/components/contact-link.gts +583 -0
- package/bundled-realms/pretui/components/contact-link.md +53 -0
- package/bundled-realms/pretui/components/contact-link.usage.gts +273 -0
- package/bundled-realms/pretui/components/context-menu.gts +811 -0
- package/bundled-realms/pretui/components/context-menu.md +74 -0
- package/bundled-realms/pretui/components/context-menu.usage.gts +244 -0
- package/bundled-realms/pretui/components/copy-button.gts +237 -0
- package/bundled-realms/pretui/components/copy-button.md +71 -0
- package/bundled-realms/pretui/components/copy-button.usage.gts +135 -0
- package/bundled-realms/pretui/components/copy-fit.gts +396 -0
- package/bundled-realms/pretui/components/copy-fit.md +60 -0
- package/bundled-realms/pretui/components/copy-fit.usage.gts +200 -0
- package/bundled-realms/pretui/components/cta-band.gts +285 -0
- package/bundled-realms/pretui/components/cta-band.md +50 -0
- package/bundled-realms/pretui/components/cta-band.usage.gts +208 -0
- package/bundled-realms/pretui/components/cue.gts +180 -0
- package/bundled-realms/pretui/components/cue.md +53 -0
- package/bundled-realms/pretui/components/cue.usage.gts +88 -0
- package/bundled-realms/pretui/components/cursor-trail.gts +221 -0
- package/bundled-realms/pretui/components/cursor-trail.md +56 -0
- package/bundled-realms/pretui/components/cursor-trail.usage.gts +218 -0
- package/bundled-realms/pretui/components/dashboard-grid.gts +939 -0
- package/bundled-realms/pretui/components/dashboard-grid.md +60 -0
- package/bundled-realms/pretui/components/dashboard-grid.usage.gts +307 -0
- package/bundled-realms/pretui/components/dashboard-item.gts +286 -0
- package/bundled-realms/pretui/components/dashboard-item.md +52 -0
- package/bundled-realms/pretui/components/dashboard-item.usage.gts +87 -0
- package/bundled-realms/pretui/components/data-grid.gts +263 -0
- package/bundled-realms/pretui/components/data-grid.md +64 -0
- package/bundled-realms/pretui/components/data-grid.usage.gts +50 -0
- package/bundled-realms/pretui/components/data-table.gts +1618 -0
- package/bundled-realms/pretui/components/data-table.md +104 -0
- package/bundled-realms/pretui/components/data-table.usage.gts +324 -0
- package/bundled-realms/pretui/components/date-picker.gts +98 -0
- package/bundled-realms/pretui/components/date-picker.md +59 -0
- package/bundled-realms/pretui/components/date-picker.usage.gts +66 -0
- package/bundled-realms/pretui/components/date-range-picker.gts +131 -0
- package/bundled-realms/pretui/components/date-range-picker.md +55 -0
- package/bundled-realms/pretui/components/date-range-picker.usage.gts +125 -0
- package/bundled-realms/pretui/components/date-time-picker.gts +227 -0
- package/bundled-realms/pretui/components/date-time-picker.md +60 -0
- package/bundled-realms/pretui/components/date-time-picker.usage.gts +64 -0
- package/bundled-realms/pretui/components/defer.gts +374 -0
- package/bundled-realms/pretui/components/defer.md +61 -0
- package/bundled-realms/pretui/components/defer.usage.gts +174 -0
- package/bundled-realms/pretui/components/delta.gts +45 -0
- package/bundled-realms/pretui/components/delta.md +53 -0
- package/bundled-realms/pretui/components/delta.usage.gts +31 -0
- package/bundled-realms/pretui/components/descriptions.gts +365 -0
- package/bundled-realms/pretui/components/descriptions.md +73 -0
- package/bundled-realms/pretui/components/descriptions.usage.gts +123 -0
- package/bundled-realms/pretui/components/dialog.gts +153 -0
- package/bundled-realms/pretui/components/dialog.md +60 -0
- package/bundled-realms/pretui/components/dialog.usage.gts +86 -0
- package/bundled-realms/pretui/components/diff-block.gts +89 -0
- package/bundled-realms/pretui/components/diff-block.md +51 -0
- package/bundled-realms/pretui/components/diff-block.usage.gts +27 -0
- package/bundled-realms/pretui/components/disclosure.gts +2 -0
- package/bundled-realms/pretui/components/disclosure.md +45 -0
- package/bundled-realms/pretui/components/disclosure.usage.gts +47 -0
- package/bundled-realms/pretui/components/divider.gts +75 -0
- package/bundled-realms/pretui/components/divider.md +49 -0
- package/bundled-realms/pretui/components/divider.usage.gts +98 -0
- package/bundled-realms/pretui/components/doc-report.gts +306 -0
- package/bundled-realms/pretui/components/doc-report.md +45 -0
- package/bundled-realms/pretui/components/doc-report.usage.gts +126 -0
- package/bundled-realms/pretui/components/dock.gts +165 -0
- package/bundled-realms/pretui/components/dock.md +42 -0
- package/bundled-realms/pretui/components/dock.usage.gts +114 -0
- package/bundled-realms/pretui/components/drawer.gts +166 -0
- package/bundled-realms/pretui/components/drawer.md +66 -0
- package/bundled-realms/pretui/components/drawer.usage.gts +111 -0
- package/bundled-realms/pretui/components/dropzone.gts +314 -0
- package/bundled-realms/pretui/components/dropzone.md +56 -0
- package/bundled-realms/pretui/components/dropzone.usage.gts +203 -0
- package/bundled-realms/pretui/components/dueling-picklist.gts +991 -0
- package/bundled-realms/pretui/components/dueling-picklist.md +67 -0
- package/bundled-realms/pretui/components/dueling-picklist.usage.gts +182 -0
- package/bundled-realms/pretui/components/dynamic-island.gts +264 -0
- package/bundled-realms/pretui/components/dynamic-island.md +45 -0
- package/bundled-realms/pretui/components/dynamic-island.usage.gts +195 -0
- package/bundled-realms/pretui/components/easing-curve.gts +629 -0
- package/bundled-realms/pretui/components/easing-curve.md +46 -0
- package/bundled-realms/pretui/components/easing-curve.usage.gts +122 -0
- package/bundled-realms/pretui/components/edit-in-place.gts +559 -0
- package/bundled-realms/pretui/components/edit-in-place.md +63 -0
- package/bundled-realms/pretui/components/edit-in-place.usage.gts +209 -0
- package/bundled-realms/pretui/components/editable.gts +299 -0
- package/bundled-realms/pretui/components/editable.md +79 -0
- package/bundled-realms/pretui/components/editable.usage.gts +68 -0
- package/bundled-realms/pretui/components/email-input.gts +83 -0
- package/bundled-realms/pretui/components/email-input.md +52 -0
- package/bundled-realms/pretui/components/email-input.usage.gts +90 -0
- package/bundled-realms/pretui/components/emoji-button.gts +162 -0
- package/bundled-realms/pretui/components/emoji-button.md +46 -0
- package/bundled-realms/pretui/components/emoji-button.usage.gts +174 -0
- package/bundled-realms/pretui/components/emoji-picker.gts +1396 -0
- package/bundled-realms/pretui/components/emoji-picker.md +53 -0
- package/bundled-realms/pretui/components/emoji-picker.usage.gts +235 -0
- package/bundled-realms/pretui/components/empty-state.gts +162 -0
- package/bundled-realms/pretui/components/empty-state.md +63 -0
- package/bundled-realms/pretui/components/empty-state.usage.gts +113 -0
- package/bundled-realms/pretui/components/empty.gts +2 -0
- package/bundled-realms/pretui/components/empty.md +43 -0
- package/bundled-realms/pretui/components/empty.usage.gts +33 -0
- package/bundled-realms/pretui/components/entity-display.gts +126 -0
- package/bundled-realms/pretui/components/entity-display.md +50 -0
- package/bundled-realms/pretui/components/error-summary.gts +321 -0
- package/bundled-realms/pretui/components/error-summary.md +60 -0
- package/bundled-realms/pretui/components/error-summary.usage.gts +155 -0
- package/bundled-realms/pretui/components/expression-builder.gts +1211 -0
- package/bundled-realms/pretui/components/expression-builder.md +60 -0
- package/bundled-realms/pretui/components/expression-builder.usage.gts +246 -0
- package/bundled-realms/pretui/components/fab.gts +2 -0
- package/bundled-realms/pretui/components/fab.md +38 -0
- package/bundled-realms/pretui/components/fab.usage.gts +38 -0
- package/bundled-realms/pretui/components/feature-voting.gts +365 -0
- package/bundled-realms/pretui/components/feature-voting.md +44 -0
- package/bundled-realms/pretui/components/feature-voting.usage.gts +114 -0
- package/bundled-realms/pretui/components/feed.gts +244 -0
- package/bundled-realms/pretui/components/feed.md +56 -0
- package/bundled-realms/pretui/components/feed.usage.gts +250 -0
- package/bundled-realms/pretui/components/field-error.gts +127 -0
- package/bundled-realms/pretui/components/field-error.md +60 -0
- package/bundled-realms/pretui/components/field-error.usage.gts +146 -0
- package/bundled-realms/pretui/components/field.gts +185 -0
- package/bundled-realms/pretui/components/field.md +60 -0
- package/bundled-realms/pretui/components/field.usage.gts +73 -0
- package/bundled-realms/pretui/components/fieldset.gts +124 -0
- package/bundled-realms/pretui/components/fieldset.md +65 -0
- package/bundled-realms/pretui/components/fieldset.usage.gts +105 -0
- package/bundled-realms/pretui/components/file-trigger.gts +185 -0
- package/bundled-realms/pretui/components/file-trigger.md +53 -0
- package/bundled-realms/pretui/components/file-trigger.usage.gts +121 -0
- package/bundled-realms/pretui/components/file-upload.gts +353 -0
- package/bundled-realms/pretui/components/file-upload.md +63 -0
- package/bundled-realms/pretui/components/file-upload.usage.gts +64 -0
- package/bundled-realms/pretui/components/filmstrip.gts +465 -0
- package/bundled-realms/pretui/components/filmstrip.md +53 -0
- package/bundled-realms/pretui/components/filmstrip.usage.gts +115 -0
- package/bundled-realms/pretui/components/filter-chips.gts +236 -0
- package/bundled-realms/pretui/components/filter-chips.md +58 -0
- package/bundled-realms/pretui/components/filter-chips.usage.gts +102 -0
- package/bundled-realms/pretui/components/filter-set.gts +293 -0
- package/bundled-realms/pretui/components/filter-set.md +60 -0
- package/bundled-realms/pretui/components/filter-set.usage.gts +145 -0
- package/bundled-realms/pretui/components/float-button.gts +339 -0
- package/bundled-realms/pretui/components/float-button.md +69 -0
- package/bundled-realms/pretui/components/float-button.usage.gts +134 -0
- package/bundled-realms/pretui/components/fold.gts +86 -0
- package/bundled-realms/pretui/components/fold.md +54 -0
- package/bundled-realms/pretui/components/fold.usage.gts +19 -0
- package/bundled-realms/pretui/components/form-field.gts +609 -0
- package/bundled-realms/pretui/components/form-field.md +77 -0
- package/bundled-realms/pretui/components/form-field.usage.gts +279 -0
- package/bundled-realms/pretui/components/form-footer.gts +246 -0
- package/bundled-realms/pretui/components/form-footer.md +59 -0
- package/bundled-realms/pretui/components/form-footer.usage.gts +217 -0
- package/bundled-realms/pretui/components/form-layout.gts +130 -0
- package/bundled-realms/pretui/components/form-layout.md +52 -0
- package/bundled-realms/pretui/components/form-layout.usage.gts +200 -0
- package/bundled-realms/pretui/components/form-section.gts +434 -0
- package/bundled-realms/pretui/components/form-section.md +67 -0
- package/bundled-realms/pretui/components/form-section.usage.gts +402 -0
- package/bundled-realms/pretui/components/form.gts +315 -0
- package/bundled-realms/pretui/components/form.md +82 -0
- package/bundled-realms/pretui/components/form.usage.gts +306 -0
- package/bundled-realms/pretui/components/format-bytes.gts +212 -0
- package/bundled-realms/pretui/components/format-bytes.md +47 -0
- package/bundled-realms/pretui/components/format-bytes.usage.gts +274 -0
- package/bundled-realms/pretui/components/format-date.gts +249 -0
- package/bundled-realms/pretui/components/format-date.md +55 -0
- package/bundled-realms/pretui/components/format-date.usage.gts +245 -0
- package/bundled-realms/pretui/components/format-number.gts +138 -0
- package/bundled-realms/pretui/components/format-number.md +51 -0
- package/bundled-realms/pretui/components/format-number.usage.gts +261 -0
- package/bundled-realms/pretui/components/formatted-value.gts +65 -0
- package/bundled-realms/pretui/components/freestyle-usage.gts +311 -0
- package/bundled-realms/pretui/components/freestyle-usage.md +49 -0
- package/bundled-realms/pretui/components/gallery.gts +819 -0
- package/bundled-realms/pretui/components/gallery.md +65 -0
- package/bundled-realms/pretui/components/gallery.usage.gts +212 -0
- package/bundled-realms/pretui/components/gradient-editor.gts +682 -0
- package/bundled-realms/pretui/components/gradient-editor.md +43 -0
- package/bundled-realms/pretui/components/gradient-editor.usage.gts +69 -0
- package/bundled-realms/pretui/components/graph-layout.md +54 -0
- package/bundled-realms/pretui/components/graph-layout.usage.gts +343 -0
- package/bundled-realms/pretui/components/graph-outline.gts +553 -0
- package/bundled-realms/pretui/components/graph-outline.md +50 -0
- package/bundled-realms/pretui/components/graph-outline.usage.gts +88 -0
- package/bundled-realms/pretui/components/grid.gts +68 -0
- package/bundled-realms/pretui/components/grid.md +54 -0
- package/bundled-realms/pretui/components/grid.usage.gts +144 -0
- package/bundled-realms/pretui/components/handle.gts +192 -0
- package/bundled-realms/pretui/components/handle.md +55 -0
- package/bundled-realms/pretui/components/handle.usage.gts +174 -0
- package/bundled-realms/pretui/components/hero-split.gts +307 -0
- package/bundled-realms/pretui/components/hero-split.md +50 -0
- package/bundled-realms/pretui/components/hero-split.usage.gts +200 -0
- package/bundled-realms/pretui/components/hover-actions.gts +485 -0
- package/bundled-realms/pretui/components/hover-actions.md +55 -0
- package/bundled-realms/pretui/components/hover-actions.usage.gts +224 -0
- package/bundled-realms/pretui/components/hover-card.gts +347 -0
- package/bundled-realms/pretui/components/hover-card.md +72 -0
- package/bundled-realms/pretui/components/hover-card.usage.gts +174 -0
- package/bundled-realms/pretui/components/hover-video-player.gts +315 -0
- package/bundled-realms/pretui/components/hover-video-player.md +57 -0
- package/bundled-realms/pretui/components/hover-video-player.usage.gts +152 -0
- package/bundled-realms/pretui/components/icon-button.examples.gts +69 -0
- package/bundled-realms/pretui/components/icon-button.gts +153 -0
- package/bundled-realms/pretui/components/icon-button.md +72 -0
- package/bundled-realms/pretui/components/icon-button.usage.gts +208 -0
- package/bundled-realms/pretui/components/image-cropper.gts +693 -0
- package/bundled-realms/pretui/components/image-cropper.md +52 -0
- package/bundled-realms/pretui/components/image-cropper.usage.gts +108 -0
- package/bundled-realms/pretui/components/image-frame.gts +91 -0
- package/bundled-realms/pretui/components/image-frame.md +42 -0
- package/bundled-realms/pretui/components/image-frame.usage.gts +28 -0
- package/bundled-realms/pretui/components/image.gts +326 -0
- package/bundled-realms/pretui/components/image.md +71 -0
- package/bundled-realms/pretui/components/image.usage.gts +126 -0
- package/bundled-realms/pretui/components/in-view.gts +245 -0
- package/bundled-realms/pretui/components/in-view.md +53 -0
- package/bundled-realms/pretui/components/in-view.usage.gts +264 -0
- package/bundled-realms/pretui/components/indicator.gts +137 -0
- package/bundled-realms/pretui/components/indicator.md +60 -0
- package/bundled-realms/pretui/components/indicator.usage.gts +66 -0
- package/bundled-realms/pretui/components/infinite-scroll.gts +163 -0
- package/bundled-realms/pretui/components/infinite-scroll.md +54 -0
- package/bundled-realms/pretui/components/infinite-scroll.usage.gts +73 -0
- package/bundled-realms/pretui/components/input-group.gts +264 -0
- package/bundled-realms/pretui/components/input-group.md +55 -0
- package/bundled-realms/pretui/components/input-group.usage.gts +283 -0
- package/bundled-realms/pretui/components/input.examples.gts +61 -0
- package/bundled-realms/pretui/components/input.gts +202 -0
- package/bundled-realms/pretui/components/input.md +67 -0
- package/bundled-realms/pretui/components/input.usage.gts +208 -0
- package/bundled-realms/pretui/components/interactive-input.gts +343 -0
- package/bundled-realms/pretui/components/interactive-input.md +45 -0
- package/bundled-realms/pretui/components/interactive-input.usage.gts +98 -0
- package/bundled-realms/pretui/components/item.gts +218 -0
- package/bundled-realms/pretui/components/item.md +66 -0
- package/bundled-realms/pretui/components/item.usage.gts +121 -0
- package/bundled-realms/pretui/components/joystick.gts +381 -0
- package/bundled-realms/pretui/components/joystick.md +52 -0
- package/bundled-realms/pretui/components/joystick.usage.gts +140 -0
- package/bundled-realms/pretui/components/json-editor.gts +1016 -0
- package/bundled-realms/pretui/components/json-editor.md +51 -0
- package/bundled-realms/pretui/components/json-editor.usage.gts +230 -0
- package/bundled-realms/pretui/components/json-tree.gts +596 -0
- package/bundled-realms/pretui/components/json-tree.md +52 -0
- package/bundled-realms/pretui/components/json-tree.usage.gts +217 -0
- package/bundled-realms/pretui/components/jump-chip.gts +230 -0
- package/bundled-realms/pretui/components/jump-chip.md +44 -0
- package/bundled-realms/pretui/components/jump-chip.usage.gts +151 -0
- package/bundled-realms/pretui/components/kbd.gts +60 -0
- package/bundled-realms/pretui/components/kbd.md +50 -0
- package/bundled-realms/pretui/components/kbd.usage.gts +98 -0
- package/bundled-realms/pretui/components/key-value.gts +150 -0
- package/bundled-realms/pretui/components/key-value.md +81 -0
- package/bundled-realms/pretui/components/key-value.usage.gts +125 -0
- package/bundled-realms/pretui/components/known-date.gts +770 -0
- package/bundled-realms/pretui/components/known-date.md +56 -0
- package/bundled-realms/pretui/components/known-date.usage.gts +192 -0
- package/bundled-realms/pretui/components/label.gts +60 -0
- package/bundled-realms/pretui/components/label.md +56 -0
- package/bundled-realms/pretui/components/label.usage.gts +63 -0
- package/bundled-realms/pretui/components/layer-manager.gts +1884 -0
- package/bundled-realms/pretui/components/layer-manager.md +59 -0
- package/bundled-realms/pretui/components/layer-manager.usage.gts +233 -0
- package/bundled-realms/pretui/components/lightbox.gts +461 -0
- package/bundled-realms/pretui/components/lightbox.md +57 -0
- package/bundled-realms/pretui/components/lightbox.usage.gts +180 -0
- package/bundled-realms/pretui/components/line-grid.examples.gts +156 -0
- package/bundled-realms/pretui/components/line-grid.gts +523 -0
- package/bundled-realms/pretui/components/line-grid.md +55 -0
- package/bundled-realms/pretui/components/line-grid.usage.gts +181 -0
- package/bundled-realms/pretui/components/list.gts +679 -0
- package/bundled-realms/pretui/components/list.md +90 -0
- package/bundled-realms/pretui/components/list.usage.gts +203 -0
- package/bundled-realms/pretui/components/loader.gts +2 -0
- package/bundled-realms/pretui/components/loader.md +33 -0
- package/bundled-realms/pretui/components/loader.usage.gts +35 -0
- package/bundled-realms/pretui/components/loading-overlay.gts +120 -0
- package/bundled-realms/pretui/components/loading-overlay.md +68 -0
- package/bundled-realms/pretui/components/loading-overlay.usage.gts +102 -0
- package/bundled-realms/pretui/components/loading-state.gts +124 -0
- package/bundled-realms/pretui/components/loading-state.md +48 -0
- package/bundled-realms/pretui/components/loading-state.usage.gts +16 -0
- package/bundled-realms/pretui/components/lookup.gts +451 -0
- package/bundled-realms/pretui/components/lookup.md +59 -0
- package/bundled-realms/pretui/components/lookup.usage.gts +235 -0
- package/bundled-realms/pretui/components/magnetic.gts +158 -0
- package/bundled-realms/pretui/components/magnetic.md +48 -0
- package/bundled-realms/pretui/components/magnetic.usage.gts +125 -0
- package/bundled-realms/pretui/components/marquee.gts +141 -0
- package/bundled-realms/pretui/components/marquee.md +43 -0
- package/bundled-realms/pretui/components/marquee.usage.gts +116 -0
- package/bundled-realms/pretui/components/masonry.gts +95 -0
- package/bundled-realms/pretui/components/masonry.md +59 -0
- package/bundled-realms/pretui/components/masonry.usage.gts +238 -0
- package/bundled-realms/pretui/components/media-inspector.gts +145 -0
- package/bundled-realms/pretui/components/media-inspector.md +46 -0
- package/bundled-realms/pretui/components/media-inspector.usage.gts +83 -0
- package/bundled-realms/pretui/components/media-player.gts +1133 -0
- package/bundled-realms/pretui/components/media-player.md +74 -0
- package/bundled-realms/pretui/components/media-player.usage.gts +265 -0
- package/bundled-realms/pretui/components/media-viewer.gts +136 -0
- package/bundled-realms/pretui/components/media-viewer.md +47 -0
- package/bundled-realms/pretui/components/media-viewer.usage.gts +70 -0
- package/bundled-realms/pretui/components/mentions.gts +340 -0
- package/bundled-realms/pretui/components/mentions.md +65 -0
- package/bundled-realms/pretui/components/mentions.usage.gts +73 -0
- package/bundled-realms/pretui/components/menu-panel.gts +367 -0
- package/bundled-realms/pretui/components/menu.gts +652 -0
- package/bundled-realms/pretui/components/menu.md +69 -0
- package/bundled-realms/pretui/components/menu.usage.gts +116 -0
- package/bundled-realms/pretui/components/menubar.gts +1200 -0
- package/bundled-realms/pretui/components/menubar.md +49 -0
- package/bundled-realms/pretui/components/menubar.usage.gts +220 -0
- package/bundled-realms/pretui/components/meter.gts +113 -0
- package/bundled-realms/pretui/components/meter.md +50 -0
- package/bundled-realms/pretui/components/meter.usage.gts +50 -0
- package/bundled-realms/pretui/components/modal.gts +2 -0
- package/bundled-realms/pretui/components/modal.md +41 -0
- package/bundled-realms/pretui/components/modal.usage.gts +50 -0
- package/bundled-realms/pretui/components/model-viewer.gts +658 -0
- package/bundled-realms/pretui/components/model-viewer.md +57 -0
- package/bundled-realms/pretui/components/model-viewer.usage.gts +123 -0
- package/bundled-realms/pretui/components/money-input.gts +66 -0
- package/bundled-realms/pretui/components/money-input.md +43 -0
- package/bundled-realms/pretui/components/money-input.usage.gts +293 -0
- package/bundled-realms/pretui/components/morphing-dialog.gts +173 -0
- package/bundled-realms/pretui/components/morphing-dialog.md +46 -0
- package/bundled-realms/pretui/components/morphing-dialog.usage.gts +168 -0
- package/bundled-realms/pretui/components/morphing-popover.gts +245 -0
- package/bundled-realms/pretui/components/morphing-popover.md +47 -0
- package/bundled-realms/pretui/components/morphing-popover.usage.gts +176 -0
- package/bundled-realms/pretui/components/multi-select.gts +392 -0
- package/bundled-realms/pretui/components/multi-select.md +57 -0
- package/bundled-realms/pretui/components/multi-select.usage.gts +97 -0
- package/bundled-realms/pretui/components/native-select.gts +212 -0
- package/bundled-realms/pretui/components/native-select.md +77 -0
- package/bundled-realms/pretui/components/native-select.usage.gts +109 -0
- package/bundled-realms/pretui/components/navigation-menu.gts +351 -0
- package/bundled-realms/pretui/components/navigation-menu.md +65 -0
- package/bundled-realms/pretui/components/navigation-menu.usage.gts +61 -0
- package/bundled-realms/pretui/components/node-canvas.gts +1174 -0
- package/bundled-realms/pretui/components/node-canvas.md +57 -0
- package/bundled-realms/pretui/components/node-canvas.usage.gts +548 -0
- package/bundled-realms/pretui/components/node-card.gts +181 -0
- package/bundled-realms/pretui/components/node-card.md +53 -0
- package/bundled-realms/pretui/components/node-card.usage.gts +156 -0
- package/bundled-realms/pretui/components/notification.gts +242 -0
- package/bundled-realms/pretui/components/notification.md +69 -0
- package/bundled-realms/pretui/components/notification.usage.gts +125 -0
- package/bundled-realms/pretui/components/number-input.gts +191 -0
- package/bundled-realms/pretui/components/number-input.md +54 -0
- package/bundled-realms/pretui/components/number-input.usage.gts +132 -0
- package/bundled-realms/pretui/components/odometer.gts +349 -0
- package/bundled-realms/pretui/components/odometer.md +55 -0
- package/bundled-realms/pretui/components/odometer.usage.gts +258 -0
- package/bundled-realms/pretui/components/onboarding.gts +298 -0
- package/bundled-realms/pretui/components/onboarding.md +48 -0
- package/bundled-realms/pretui/components/onboarding.usage.gts +155 -0
- package/bundled-realms/pretui/components/origin-grid.gts +486 -0
- package/bundled-realms/pretui/components/origin-grid.md +47 -0
- package/bundled-realms/pretui/components/origin-grid.usage.gts +87 -0
- package/bundled-realms/pretui/components/otp-input.gts +289 -0
- package/bundled-realms/pretui/components/otp-input.md +47 -0
- package/bundled-realms/pretui/components/otp-input.usage.gts +131 -0
- package/bundled-realms/pretui/components/page-scaffold.gts +343 -0
- package/bundled-realms/pretui/components/page-scaffold.md +57 -0
- package/bundled-realms/pretui/components/page-scaffold.usage.gts +391 -0
- package/bundled-realms/pretui/components/pagination.gts +150 -0
- package/bundled-realms/pretui/components/pagination.md +56 -0
- package/bundled-realms/pretui/components/pagination.usage.gts +33 -0
- package/bundled-realms/pretui/components/panel-section.gts +301 -0
- package/bundled-realms/pretui/components/panel-section.md +48 -0
- package/bundled-realms/pretui/components/panel-section.usage.gts +137 -0
- package/bundled-realms/pretui/components/panel.gts +158 -0
- package/bundled-realms/pretui/components/panel.md +58 -0
- package/bundled-realms/pretui/components/panel.usage.gts +82 -0
- package/bundled-realms/pretui/components/password-input.gts +329 -0
- package/bundled-realms/pretui/components/password-input.md +58 -0
- package/bundled-realms/pretui/components/password-input.usage.gts +156 -0
- package/bundled-realms/pretui/components/password-strength.gts +485 -0
- package/bundled-realms/pretui/components/password-strength.md +50 -0
- package/bundled-realms/pretui/components/password-strength.usage.gts +34 -0
- package/bundled-realms/pretui/components/path-text.gts +288 -0
- package/bundled-realms/pretui/components/path-text.md +58 -0
- package/bundled-realms/pretui/components/path-text.usage.gts +239 -0
- package/bundled-realms/pretui/components/period-input.gts +1100 -0
- package/bundled-realms/pretui/components/period-input.md +54 -0
- package/bundled-realms/pretui/components/period-input.usage.gts +299 -0
- package/bundled-realms/pretui/components/phone-input.gts +80 -0
- package/bundled-realms/pretui/components/phone-input.md +55 -0
- package/bundled-realms/pretui/components/phone-input.usage.gts +91 -0
- package/bundled-realms/pretui/components/pin-input.gts +2 -0
- package/bundled-realms/pretui/components/pin-input.md +45 -0
- package/bundled-realms/pretui/components/pin-input.usage.gts +39 -0
- package/bundled-realms/pretui/components/pip-scale.gts +717 -0
- package/bundled-realms/pretui/components/pip-scale.md +55 -0
- package/bundled-realms/pretui/components/pip-scale.usage.gts +318 -0
- package/bundled-realms/pretui/components/popconfirm.gts +380 -0
- package/bundled-realms/pretui/components/popconfirm.md +78 -0
- package/bundled-realms/pretui/components/popconfirm.usage.gts +171 -0
- package/bundled-realms/pretui/components/popover.gts +198 -0
- package/bundled-realms/pretui/components/popover.md +57 -0
- package/bundled-realms/pretui/components/popover.usage.gts +106 -0
- package/bundled-realms/pretui/components/popup.gts +85 -0
- package/bundled-realms/pretui/components/popup.md +42 -0
- package/bundled-realms/pretui/components/popup.usage.gts +23 -0
- package/bundled-realms/pretui/components/presence.gts +156 -0
- package/bundled-realms/pretui/components/presence.md +55 -0
- package/bundled-realms/pretui/components/presence.usage.gts +204 -0
- package/bundled-realms/pretui/components/progress-bar.gts +177 -0
- package/bundled-realms/pretui/components/progress-bar.md +63 -0
- package/bundled-realms/pretui/components/progress-bar.usage.gts +172 -0
- package/bundled-realms/pretui/components/progress-radial.gts +67 -0
- package/bundled-realms/pretui/components/progress-radial.md +55 -0
- package/bundled-realms/pretui/components/progress-radial.usage.gts +76 -0
- package/bundled-realms/pretui/components/prompt-library.gts +358 -0
- package/bundled-realms/pretui/components/prompt-library.md +45 -0
- package/bundled-realms/pretui/components/prompt-library.usage.gts +117 -0
- package/bundled-realms/pretui/components/property-row.gts +316 -0
- package/bundled-realms/pretui/components/property-row.md +55 -0
- package/bundled-realms/pretui/components/property-row.usage.gts +146 -0
- package/bundled-realms/pretui/components/property-sheet.gts +133 -0
- package/bundled-realms/pretui/components/property-sheet.md +48 -0
- package/bundled-realms/pretui/components/property-sheet.usage.gts +132 -0
- package/bundled-realms/pretui/components/prose.gts +31 -0
- package/bundled-realms/pretui/components/prose.md +57 -0
- package/bundled-realms/pretui/components/prose.usage.gts +15 -0
- package/bundled-realms/pretui/components/pulsing-border.gts +297 -0
- package/bundled-realms/pretui/components/pulsing-border.md +65 -0
- package/bundled-realms/pretui/components/pulsing-border.usage.gts +253 -0
- package/bundled-realms/pretui/components/qr-code.gts +660 -0
- package/bundled-realms/pretui/components/qr-code.md +58 -0
- package/bundled-realms/pretui/components/qr-code.usage.gts +224 -0
- package/bundled-realms/pretui/components/queued-message.gts +83 -0
- package/bundled-realms/pretui/components/queued-message.md +53 -0
- package/bundled-realms/pretui/components/queued-message.usage.gts +21 -0
- package/bundled-realms/pretui/components/radio-card.gts +88 -0
- package/bundled-realms/pretui/components/radio-card.md +72 -0
- package/bundled-realms/pretui/components/radio-card.usage.gts +148 -0
- package/bundled-realms/pretui/components/radio-group.gts +119 -0
- package/bundled-realms/pretui/components/radio-group.md +46 -0
- package/bundled-realms/pretui/components/radio-group.usage.gts +80 -0
- package/bundled-realms/pretui/components/range-slider.gts +34 -0
- package/bundled-realms/pretui/components/range-slider.md +47 -0
- package/bundled-realms/pretui/components/range-slider.usage.gts +46 -0
- package/bundled-realms/pretui/components/rating.examples.gts +67 -0
- package/bundled-realms/pretui/components/rating.gts +266 -0
- package/bundled-realms/pretui/components/rating.md +55 -0
- package/bundled-realms/pretui/components/rating.usage.gts +96 -0
- package/bundled-realms/pretui/components/readiness-panel.gts +856 -0
- package/bundled-realms/pretui/components/readiness-panel.md +64 -0
- package/bundled-realms/pretui/components/readiness-panel.usage.gts +372 -0
- package/bundled-realms/pretui/components/recommendation.gts +316 -0
- package/bundled-realms/pretui/components/recommendation.md +49 -0
- package/bundled-realms/pretui/components/recommendation.usage.gts +103 -0
- package/bundled-realms/pretui/components/record-detail.gts +1170 -0
- package/bundled-realms/pretui/components/record-detail.md +63 -0
- package/bundled-realms/pretui/components/record-detail.usage.gts +533 -0
- package/bundled-realms/pretui/components/record-face.gts +153 -0
- package/bundled-realms/pretui/components/record-pill.gts +116 -0
- package/bundled-realms/pretui/components/record-pill.md +55 -0
- package/bundled-realms/pretui/components/record-pill.usage.gts +108 -0
- package/bundled-realms/pretui/components/relative-time.gts +88 -0
- package/bundled-realms/pretui/components/relative-time.md +58 -0
- package/bundled-realms/pretui/components/relative-time.usage.gts +89 -0
- package/bundled-realms/pretui/components/reorder.gts +620 -0
- package/bundled-realms/pretui/components/reorder.md +47 -0
- package/bundled-realms/pretui/components/reorder.usage.gts +171 -0
- package/bundled-realms/pretui/components/resizable.gts +2 -0
- package/bundled-realms/pretui/components/resizable.md +37 -0
- package/bundled-realms/pretui/components/resizable.usage.gts +53 -0
- package/bundled-realms/pretui/components/result-card.gts +68 -0
- package/bundled-realms/pretui/components/result-card.md +45 -0
- package/bundled-realms/pretui/components/result-card.usage.gts +29 -0
- package/bundled-realms/pretui/components/result.gts +204 -0
- package/bundled-realms/pretui/components/result.md +67 -0
- package/bundled-realms/pretui/components/result.usage.gts +85 -0
- package/bundled-realms/pretui/components/rule-row.gts +462 -0
- package/bundled-realms/pretui/components/rule-row.md +60 -0
- package/bundled-realms/pretui/components/rule-row.usage.gts +157 -0
- package/bundled-realms/pretui/components/scroll-area.gts +121 -0
- package/bundled-realms/pretui/components/scroll-area.md +59 -0
- package/bundled-realms/pretui/components/scroll-area.usage.gts +175 -0
- package/bundled-realms/pretui/components/scroll-progress.gts +222 -0
- package/bundled-realms/pretui/components/scroll-progress.md +48 -0
- package/bundled-realms/pretui/components/scroll-progress.usage.gts +162 -0
- package/bundled-realms/pretui/components/scroller.gts +323 -0
- package/bundled-realms/pretui/components/scroller.md +44 -0
- package/bundled-realms/pretui/components/scroller.usage.gts +184 -0
- package/bundled-realms/pretui/components/scrub-input.gts +691 -0
- package/bundled-realms/pretui/components/scrub-input.md +61 -0
- package/bundled-realms/pretui/components/scrub-input.usage.gts +275 -0
- package/bundled-realms/pretui/components/search-input.gts +141 -0
- package/bundled-realms/pretui/components/search-input.md +56 -0
- package/bundled-realms/pretui/components/search-input.usage.gts +91 -0
- package/bundled-realms/pretui/components/segmented-control.gts +198 -0
- package/bundled-realms/pretui/components/segmented-control.md +39 -0
- package/bundled-realms/pretui/components/segmented-control.usage.gts +66 -0
- package/bundled-realms/pretui/components/select.examples.gts +80 -0
- package/bundled-realms/pretui/components/select.gts +481 -0
- package/bundled-realms/pretui/components/select.md +71 -0
- package/bundled-realms/pretui/components/select.usage.gts +109 -0
- package/bundled-realms/pretui/components/separator.gts +2 -0
- package/bundled-realms/pretui/components/separator.md +36 -0
- package/bundled-realms/pretui/components/separator.usage.gts +32 -0
- package/bundled-realms/pretui/components/session-prep.gts +164 -0
- package/bundled-realms/pretui/components/session-prep.md +48 -0
- package/bundled-realms/pretui/components/session-prep.usage.gts +122 -0
- package/bundled-realms/pretui/components/sheet-toolbar.gts +130 -0
- package/bundled-realms/pretui/components/sheet-toolbar.md +51 -0
- package/bundled-realms/pretui/components/sheet-toolbar.usage.gts +151 -0
- package/bundled-realms/pretui/components/sheet.gts +1166 -0
- package/bundled-realms/pretui/components/sheet.md +78 -0
- package/bundled-realms/pretui/components/sheet.usage.gts +318 -0
- package/bundled-realms/pretui/components/sidebar.gts +1165 -0
- package/bundled-realms/pretui/components/sidebar.md +88 -0
- package/bundled-realms/pretui/components/sidebar.usage.gts +360 -0
- package/bundled-realms/pretui/components/signature-pad.gts +840 -0
- package/bundled-realms/pretui/components/signature-pad.md +57 -0
- package/bundled-realms/pretui/components/signature-pad.usage.gts +222 -0
- package/bundled-realms/pretui/components/skeleton.gts +46 -0
- package/bundled-realms/pretui/components/skeleton.md +56 -0
- package/bundled-realms/pretui/components/skeleton.usage.gts +56 -0
- package/bundled-realms/pretui/components/skip-link.gts +65 -0
- package/bundled-realms/pretui/components/skip-link.md +49 -0
- package/bundled-realms/pretui/components/skip-link.usage.gts +47 -0
- package/bundled-realms/pretui/components/slide-over.gts +2 -0
- package/bundled-realms/pretui/components/slide-over.md +41 -0
- package/bundled-realms/pretui/components/slide-over.usage.gts +50 -0
- package/bundled-realms/pretui/components/slider.examples.gts +61 -0
- package/bundled-realms/pretui/components/slider.gts +331 -0
- package/bundled-realms/pretui/components/slider.md +59 -0
- package/bundled-realms/pretui/components/slider.usage.gts +99 -0
- package/bundled-realms/pretui/components/sliding-highlight.gts +249 -0
- package/bundled-realms/pretui/components/sliding-highlight.md +58 -0
- package/bundled-realms/pretui/components/sliding-highlight.usage.gts +184 -0
- package/bundled-realms/pretui/components/snackbar.gts +2 -0
- package/bundled-realms/pretui/components/snackbar.md +34 -0
- package/bundled-realms/pretui/components/snackbar.usage.gts +31 -0
- package/bundled-realms/pretui/components/sonner.gts +2 -0
- package/bundled-realms/pretui/components/sonner.md +42 -0
- package/bundled-realms/pretui/components/sonner.usage.gts +43 -0
- package/bundled-realms/pretui/components/sparkline.gts +233 -0
- package/bundled-realms/pretui/components/sparkline.md +58 -0
- package/bundled-realms/pretui/components/sparkline.usage.gts +74 -0
- package/bundled-realms/pretui/components/spinner.gts +57 -0
- package/bundled-realms/pretui/components/spinner.md +49 -0
- package/bundled-realms/pretui/components/spinner.usage.gts +65 -0
- package/bundled-realms/pretui/components/split-panes.gts +69 -0
- package/bundled-realms/pretui/components/split-panes.md +54 -0
- package/bundled-realms/pretui/components/split-panes.usage.gts +171 -0
- package/bundled-realms/pretui/components/spotlight.gts +174 -0
- package/bundled-realms/pretui/components/spotlight.md +51 -0
- package/bundled-realms/pretui/components/spotlight.usage.gts +197 -0
- package/bundled-realms/pretui/components/stack-divider.gts +58 -0
- package/bundled-realms/pretui/components/stack.gts +284 -0
- package/bundled-realms/pretui/components/stack.md +81 -0
- package/bundled-realms/pretui/components/stack.usage.gts +228 -0
- package/bundled-realms/pretui/components/stacking-cards.gts +137 -0
- package/bundled-realms/pretui/components/stacking-cards.md +40 -0
- package/bundled-realms/pretui/components/stacking-cards.usage.gts +124 -0
- package/bundled-realms/pretui/components/stat.gts +216 -0
- package/bundled-realms/pretui/components/stat.md +57 -0
- package/bundled-realms/pretui/components/stat.usage.gts +16 -0
- package/bundled-realms/pretui/components/statement-table.examples.gts +185 -0
- package/bundled-realms/pretui/components/statement-table.gts +792 -0
- package/bundled-realms/pretui/components/statement-table.md +58 -0
- package/bundled-realms/pretui/components/statement-table.usage.gts +252 -0
- package/bundled-realms/pretui/components/status-chip.gts +37 -0
- package/bundled-realms/pretui/components/status-chip.md +48 -0
- package/bundled-realms/pretui/components/status-chip.usage.gts +36 -0
- package/bundled-realms/pretui/components/step-list.gts +624 -0
- package/bundled-realms/pretui/components/step-list.md +50 -0
- package/bundled-realms/pretui/components/step-list.usage.gts +166 -0
- package/bundled-realms/pretui/components/stepper.gts +201 -0
- package/bundled-realms/pretui/components/stepper.md +54 -0
- package/bundled-realms/pretui/components/stepper.usage.gts +103 -0
- package/bundled-realms/pretui/components/steps-with-media.gts +254 -0
- package/bundled-realms/pretui/components/steps-with-media.md +54 -0
- package/bundled-realms/pretui/components/steps-with-media.usage.gts +208 -0
- package/bundled-realms/pretui/components/streaming-text.gts +77 -0
- package/bundled-realms/pretui/components/streaming-text.md +55 -0
- package/bundled-realms/pretui/components/streaming-text.usage.gts +15 -0
- package/bundled-realms/pretui/components/swatch-chip.gts +104 -0
- package/bundled-realms/pretui/components/swatch-chip.md +47 -0
- package/bundled-realms/pretui/components/swatch-chip.usage.gts +21 -0
- package/bundled-realms/pretui/components/swatch.gts +141 -0
- package/bundled-realms/pretui/components/swatch.md +50 -0
- package/bundled-realms/pretui/components/swatch.usage.gts +80 -0
- package/bundled-realms/pretui/components/switch.examples.gts +53 -0
- package/bundled-realms/pretui/components/switch.gts +118 -0
- package/bundled-realms/pretui/components/switch.md +62 -0
- package/bundled-realms/pretui/components/switch.usage.gts +59 -0
- package/bundled-realms/pretui/components/table-of-contents.gts +384 -0
- package/bundled-realms/pretui/components/table-of-contents.md +75 -0
- package/bundled-realms/pretui/components/table-of-contents.usage.gts +270 -0
- package/bundled-realms/pretui/components/table.gts +158 -0
- package/bundled-realms/pretui/components/table.md +80 -0
- package/bundled-realms/pretui/components/table.usage.gts +44 -0
- package/bundled-realms/pretui/components/tabs.gts +117 -0
- package/bundled-realms/pretui/components/tabs.md +58 -0
- package/bundled-realms/pretui/components/tabs.usage.gts +94 -0
- package/bundled-realms/pretui/components/tags-input.gts +52 -0
- package/bundled-realms/pretui/components/tags-input.md +48 -0
- package/bundled-realms/pretui/components/tags-input.usage.gts +56 -0
- package/bundled-realms/pretui/components/task-row.gts +483 -0
- package/bundled-realms/pretui/components/task-row.md +48 -0
- package/bundled-realms/pretui/components/task-row.usage.gts +119 -0
- package/bundled-realms/pretui/components/terminal-animation.gts +355 -0
- package/bundled-realms/pretui/components/terminal-animation.md +49 -0
- package/bundled-realms/pretui/components/terminal-animation.usage.gts +110 -0
- package/bundled-realms/pretui/components/text-effects.gts +339 -0
- package/bundled-realms/pretui/components/text-effects.md +49 -0
- package/bundled-realms/pretui/components/text-effects.usage.gts +192 -0
- package/bundled-realms/pretui/components/text-morph.gts +292 -0
- package/bundled-realms/pretui/components/text-morph.md +45 -0
- package/bundled-realms/pretui/components/text-morph.usage.gts +117 -0
- package/bundled-realms/pretui/components/text-rotate.gts +121 -0
- package/bundled-realms/pretui/components/text-rotate.md +44 -0
- package/bundled-realms/pretui/components/text-rotate.usage.gts +73 -0
- package/bundled-realms/pretui/components/text-scramble.gts +189 -0
- package/bundled-realms/pretui/components/text-scramble.md +42 -0
- package/bundled-realms/pretui/components/text-scramble.usage.gts +80 -0
- package/bundled-realms/pretui/components/text-shimmer.gts +89 -0
- package/bundled-realms/pretui/components/text-shimmer.md +42 -0
- package/bundled-realms/pretui/components/text-shimmer.usage.gts +69 -0
- package/bundled-realms/pretui/components/textarea.gts +112 -0
- package/bundled-realms/pretui/components/textarea.md +51 -0
- package/bundled-realms/pretui/components/textarea.usage.gts +100 -0
- package/bundled-realms/pretui/components/theme-frame.gts +272 -0
- package/bundled-realms/pretui/components/theme-frame.md +48 -0
- package/bundled-realms/pretui/components/thinking.gts +431 -0
- package/bundled-realms/pretui/components/thinking.md +47 -0
- package/bundled-realms/pretui/components/thinking.usage.gts +134 -0
- package/bundled-realms/pretui/components/tilt.gts +194 -0
- package/bundled-realms/pretui/components/tilt.md +50 -0
- package/bundled-realms/pretui/components/tilt.usage.gts +174 -0
- package/bundled-realms/pretui/components/time-input.gts +583 -0
- package/bundled-realms/pretui/components/time-input.md +51 -0
- package/bundled-realms/pretui/components/time-input.usage.gts +110 -0
- package/bundled-realms/pretui/components/timeline.gts +269 -0
- package/bundled-realms/pretui/components/timeline.md +63 -0
- package/bundled-realms/pretui/components/timeline.usage.gts +180 -0
- package/bundled-realms/pretui/components/toast.gts +85 -0
- package/bundled-realms/pretui/components/toast.md +57 -0
- package/bundled-realms/pretui/components/toast.usage.gts +18 -0
- package/bundled-realms/pretui/components/toaster.gts +808 -0
- package/bundled-realms/pretui/components/toaster.md +83 -0
- package/bundled-realms/pretui/components/toaster.usage.gts +256 -0
- package/bundled-realms/pretui/components/toggle-group.gts +435 -0
- package/bundled-realms/pretui/components/toggle-group.md +59 -0
- package/bundled-realms/pretui/components/toggle-group.usage.gts +260 -0
- package/bundled-realms/pretui/components/toggle-matrix.gts +994 -0
- package/bundled-realms/pretui/components/toggle-matrix.md +44 -0
- package/bundled-realms/pretui/components/toggle-matrix.usage.gts +243 -0
- package/bundled-realms/pretui/components/toggle.gts +235 -0
- package/bundled-realms/pretui/components/toggle.md +59 -0
- package/bundled-realms/pretui/components/toggle.usage.gts +244 -0
- package/bundled-realms/pretui/components/token-input.gts +483 -0
- package/bundled-realms/pretui/components/token-input.md +50 -0
- package/bundled-realms/pretui/components/token-input.usage.gts +137 -0
- package/bundled-realms/pretui/components/token.gts +197 -0
- package/bundled-realms/pretui/components/token.md +63 -0
- package/bundled-realms/pretui/components/token.usage.gts +128 -0
- package/bundled-realms/pretui/components/toolbar.gts +62 -0
- package/bundled-realms/pretui/components/toolbar.md +50 -0
- package/bundled-realms/pretui/components/toolbar.usage.gts +78 -0
- package/bundled-realms/pretui/components/tooltip.gts +212 -0
- package/bundled-realms/pretui/components/tooltip.md +53 -0
- package/bundled-realms/pretui/components/tooltip.usage.gts +64 -0
- package/bundled-realms/pretui/components/tour.gts +436 -0
- package/bundled-realms/pretui/components/tour.md +62 -0
- package/bundled-realms/pretui/components/tour.usage.gts +70 -0
- package/bundled-realms/pretui/components/transfer.gts +2 -0
- package/bundled-realms/pretui/components/transfer.md +39 -0
- package/bundled-realms/pretui/components/transfer.usage.gts +52 -0
- package/bundled-realms/pretui/components/transmute.gts +103 -0
- package/bundled-realms/pretui/components/transmute.md +49 -0
- package/bundled-realms/pretui/components/transmute.usage.gts +16 -0
- package/bundled-realms/pretui/components/tree-select.gts +596 -0
- package/bundled-realms/pretui/components/tree-select.md +70 -0
- package/bundled-realms/pretui/components/tree-select.usage.gts +75 -0
- package/bundled-realms/pretui/components/tree.gts +532 -0
- package/bundled-realms/pretui/components/tree.md +68 -0
- package/bundled-realms/pretui/components/tree.usage.gts +278 -0
- package/bundled-realms/pretui/components/trim-bar.gts +611 -0
- package/bundled-realms/pretui/components/trim-bar.md +48 -0
- package/bundled-realms/pretui/components/trim-bar.usage.gts +112 -0
- package/bundled-realms/pretui/components/typewriter.gts +122 -0
- package/bundled-realms/pretui/components/typewriter.md +45 -0
- package/bundled-realms/pretui/components/typewriter.usage.gts +105 -0
- package/bundled-realms/pretui/components/typography.gts +379 -0
- package/bundled-realms/pretui/components/typography.md +77 -0
- package/bundled-realms/pretui/components/typography.usage.gts +52 -0
- package/bundled-realms/pretui/components/url-input.gts +130 -0
- package/bundled-realms/pretui/components/url-input.md +58 -0
- package/bundled-realms/pretui/components/url-input.usage.gts +97 -0
- package/bundled-realms/pretui/components/usage-action.gts +16 -0
- package/bundled-realms/pretui/components/usage-argument.gts +109 -0
- package/bundled-realms/pretui/components/usage-argument.md +44 -0
- package/bundled-realms/pretui/components/usage-array.gts +80 -0
- package/bundled-realms/pretui/components/usage-array.md +47 -0
- package/bundled-realms/pretui/components/usage-bool.gts +62 -0
- package/bundled-realms/pretui/components/usage-bool.md +47 -0
- package/bundled-realms/pretui/components/usage-component-arg.gts +16 -0
- package/bundled-realms/pretui/components/usage-css-variable.gts +56 -0
- package/bundled-realms/pretui/components/usage-css-variable.md +48 -0
- package/bundled-realms/pretui/components/usage-number.gts +127 -0
- package/bundled-realms/pretui/components/usage-number.md +48 -0
- package/bundled-realms/pretui/components/usage-object.gts +58 -0
- package/bundled-realms/pretui/components/usage-object.md +48 -0
- package/bundled-realms/pretui/components/usage-string.gts +89 -0
- package/bundled-realms/pretui/components/usage-string.md +46 -0
- package/bundled-realms/pretui/components/usage-yield.gts +16 -0
- package/bundled-realms/pretui/components/value-input.gts +265 -0
- package/bundled-realms/pretui/components/value-input.md +49 -0
- package/bundled-realms/pretui/components/value-input.usage.gts +176 -0
- package/bundled-realms/pretui/components/video-player.gts +80 -0
- package/bundled-realms/pretui/components/video-player.md +46 -0
- package/bundled-realms/pretui/components/video-player.usage.gts +107 -0
- package/bundled-realms/pretui/components/viewport.gts +520 -0
- package/bundled-realms/pretui/components/viewport.md +55 -0
- package/bundled-realms/pretui/components/visually-hidden.gts +49 -0
- package/bundled-realms/pretui/components/visually-hidden.md +47 -0
- package/bundled-realms/pretui/components/visually-hidden.usage.gts +27 -0
- package/bundled-realms/pretui/components/watermark.gts +141 -0
- package/bundled-realms/pretui/components/watermark.md +58 -0
- package/bundled-realms/pretui/components/watermark.usage.gts +63 -0
- package/bundled-realms/pretui/components/waveform.gts +376 -0
- package/bundled-realms/pretui/components/waveform.md +56 -0
- package/bundled-realms/pretui/components/waveform.usage.gts +131 -0
- package/bundled-realms/pretui/components/wizard.gts +677 -0
- package/bundled-realms/pretui/components/wizard.md +58 -0
- package/bundled-realms/pretui/components/wizard.usage.gts +188 -0
- package/bundled-realms/pretui/components/work-item.gts +207 -0
- package/bundled-realms/pretui/components/work-item.md +58 -0
- package/bundled-realms/pretui/components/work-item.usage.gts +103 -0
- package/bundled-realms/pretui/components/zoomable-frame.gts +541 -0
- package/bundled-realms/pretui/components/zoomable-frame.md +50 -0
- package/bundled-realms/pretui/components/zoomable-frame.usage.gts +175 -0
- package/bundled-realms/pretui/cropper/LICENSE +21 -0
- package/bundled-realms/pretui/cropper/README.md +92 -0
- package/bundled-realms/pretui/cropper/index.js +81 -0
- package/bundled-realms/pretui/data-component.gts +1161 -0
- package/bundled-realms/pretui/demo-design-layers.gts +112 -0
- package/bundled-realms/pretui/demo-design-tools.gts +463 -0
- package/bundled-realms/pretui/demo-design-value.gts +9 -0
- package/bundled-realms/pretui/demo-forms-core.gts +82 -0
- package/bundled-realms/pretui/demo-forms-expression.gts +76 -0
- package/bundled-realms/pretui/demo-forms-record.gts +16 -0
- package/bundled-realms/pretui/demo-foundations-more.gts +10 -0
- package/bundled-realms/pretui/demo-foundations.gts +8 -0
- package/bundled-realms/pretui/demo-ink-feedback.gts +12 -0
- package/bundled-realms/pretui/demo-json.gts +17 -0
- package/bundled-realms/pretui/demo-locations.ts +103 -0
- package/bundled-realms/pretui/demo-media-library.gts +101 -0
- package/bundled-realms/pretui/demo-media.gts +6 -0
- package/bundled-realms/pretui/demo-menu.gts +182 -0
- package/bundled-realms/pretui/demo-motion-core.gts +4 -0
- package/bundled-realms/pretui/demo-motion-pointer.gts +21 -0
- package/bundled-realms/pretui/demo-reading-format.gts +10 -0
- package/bundled-realms/pretui/demo-structure-dashboard.gts +212 -0
- package/bundled-realms/pretui/demo-structure-data.gts +4 -0
- package/bundled-realms/pretui/demo-structure-scroll.gts +19 -0
- package/bundled-realms/pretui/demo-structure.gts +21 -0
- package/bundled-realms/pretui/demo-surfaces-grid.gts +104 -0
- package/bundled-realms/pretui/demo-texture.gts +21 -0
- package/bundled-realms/pretui/docs/catalog-taxonomy.md +200 -0
- package/bundled-realms/pretui/docs/composites.md +13 -0
- package/bundled-realms/pretui/docs/reading.md +12 -0
- package/bundled-realms/pretui/docs/structure.md +8 -0
- package/bundled-realms/pretui/emoji-data/LICENSE +202 -0
- package/bundled-realms/pretui/emoji-data/LICENSE.data +202 -0
- package/bundled-realms/pretui/emoji-data/LICENSE.emojibase +21 -0
- package/bundled-realms/pretui/emoji-data/LICENSE.unicode +39 -0
- package/bundled-realms/pretui/emoji-data/README.md +360 -0
- package/bundled-realms/pretui/emoji-data/data.ts +45 -0
- package/bundled-realms/pretui/emoji-data/engine.ts +465 -0
- package/bundled-realms/pretui/example-gallery.gts +129 -0
- package/bundled-realms/pretui/examples-kit.gts +228 -0
- package/bundled-realms/pretui/examples-listing.gts +51 -0
- package/bundled-realms/pretui/examples.gts +584 -0
- package/bundled-realms/pretui/focus.gts +459 -0
- package/bundled-realms/pretui/gridstack/LICENSE +21 -0
- package/bundled-realms/pretui/gridstack/README.md +103 -0
- package/bundled-realms/pretui/gridstack/index.js +169 -0
- package/bundled-realms/pretui/icon-registry.gts +753 -0
- package/bundled-realms/pretui/index.json +11 -0
- package/bundled-realms/pretui/internal/agentic-chat.gts +101 -0
- package/bundled-realms/pretui/internal/blocks.gts +35 -0
- package/bundled-realms/pretui/internal/choice-cards.gts +258 -0
- package/bundled-realms/pretui/internal/color-fixtures.gts +3 -0
- package/bundled-realms/pretui/internal/composites-fixtures.gts +16 -0
- package/bundled-realms/pretui/internal/corner-mark.gts +83 -0
- package/bundled-realms/pretui/internal/design-tools.gts +881 -0
- package/bundled-realms/pretui/internal/extras.gts +31 -0
- package/bundled-realms/pretui/internal/feedback.gts +27 -0
- package/bundled-realms/pretui/internal/file-intake-fixtures.gts +17 -0
- package/bundled-realms/pretui/internal/file-intake.gts +193 -0
- package/bundled-realms/pretui/internal/forms-core.gts +394 -0
- package/bundled-realms/pretui/internal/forms-expression.gts +837 -0
- package/bundled-realms/pretui/internal/forms-picker-fixtures.gts +10 -0
- package/bundled-realms/pretui/internal/forms-picker.gts +129 -0
- package/bundled-realms/pretui/internal/forms-record.gts +173 -0
- package/bundled-realms/pretui/internal/freestyle.gts +117 -0
- package/bundled-realms/pretui/internal/ink.gts +25 -0
- package/bundled-realms/pretui/internal/json-tree.gts +526 -0
- package/bundled-realms/pretui/internal/keep-style.gts +168 -0
- package/bundled-realms/pretui/internal/media-assets.gts +10 -0
- package/bundled-realms/pretui/internal/media-library.gts +14 -0
- package/bundled-realms/pretui/internal/media-viewer.gts +322 -0
- package/bundled-realms/pretui/internal/media-wave.gts +270 -0
- package/bundled-realms/pretui/internal/menu.gts +522 -0
- package/bundled-realms/pretui/internal/money-fixtures.gts +6 -0
- package/bundled-realms/pretui/internal/money.gts +477 -0
- package/bundled-realms/pretui/internal/motion-core.gts +54 -0
- package/bundled-realms/pretui/internal/motion-pointer.gts +234 -0
- package/bundled-realms/pretui/internal/overlay-confirm.gts +35 -0
- package/bundled-realms/pretui/internal/overlay.gts +291 -0
- package/bundled-realms/pretui/internal/reading-extras.gts +56 -0
- package/bundled-realms/pretui/internal/reading-format.gts +232 -0
- package/bundled-realms/pretui/internal/reading-listing.gts +232 -0
- package/bundled-realms/pretui/internal/structure-chart.gts +414 -0
- package/bundled-realms/pretui/internal/structure-dashboard.gts +503 -0
- package/bundled-realms/pretui/internal/structure-flow.gts +48 -0
- package/bundled-realms/pretui/internal/structure-layout-fixtures.gts +36 -0
- package/bundled-realms/pretui/internal/structure-layout.gts +99 -0
- package/bundled-realms/pretui/internal/structure-morph.gts +140 -0
- package/bundled-realms/pretui/internal/structure-scenes.gts +25 -0
- package/bundled-realms/pretui/internal/structure-scroll.gts +72 -0
- package/bundled-realms/pretui/internal/structure-shell-fixtures.gts +25 -0
- package/bundled-realms/pretui/internal/surfaces-canvas-fixtures.gts +5 -0
- package/bundled-realms/pretui/internal/surfaces-canvas.gts +283 -0
- package/bundled-realms/pretui/internal/texture.gts +81 -0
- package/bundled-realms/pretui/internal/toggle-controls-fixtures.gts +7 -0
- package/bundled-realms/pretui/internal/toggle-controls.gts +81 -0
- package/bundled-realms/pretui/json-model.ts +1981 -0
- package/bundled-realms/pretui/media-chrome/LICENSE +19 -0
- package/bundled-realms/pretui/media-chrome/README.md +111 -0
- package/bundled-realms/pretui/media-chrome/index.js +1647 -0
- package/bundled-realms/pretui/media-examples.gts +315 -0
- package/bundled-realms/pretui/model-viewer/LICENSE +202 -0
- package/{LICENSE → bundled-realms/pretui/model-viewer/LICENSE-gainmap-js} +1 -1
- package/bundled-realms/pretui/model-viewer/LICENSE-lit +28 -0
- package/bundled-realms/pretui/model-viewer/LICENSE-three +21 -0
- package/bundled-realms/pretui/model-viewer/NOTICE +67 -0
- package/bundled-realms/pretui/model-viewer/README.md +122 -0
- package/bundled-realms/pretui/model-viewer/index.js +6413 -0
- package/bundled-realms/pretui/package.json +51 -0
- package/bundled-realms/pretui/photoswipe/LICENSE +21 -0
- package/bundled-realms/pretui/photoswipe/README.md +91 -0
- package/bundled-realms/pretui/photoswipe/index.js +149 -0
- package/bundled-realms/pretui/photoswipe/style.ts +465 -0
- package/bundled-realms/pretui/plot/LICENSE +13 -0
- package/bundled-realms/pretui/plot/LICENSE.d3 +13 -0
- package/bundled-realms/pretui/plot/LICENSE.interval-tree-1d +22 -0
- package/bundled-realms/pretui/plot/LICENSE.isoformat +13 -0
- package/bundled-realms/pretui/plot/README.md +35 -0
- package/bundled-realms/pretui/plot/index.d.ts +31 -0
- package/bundled-realms/pretui/plot/index.js +449 -0
- package/bundled-realms/pretui/pretui-component.gts +1336 -0
- package/bundled-realms/pretui/pretui-css.gts +380 -0
- package/bundled-realms/pretui/pretui-primitives.gts +162 -0
- package/bundled-realms/pretui/qrcode/LICENSE +34 -0
- package/bundled-realms/pretui/qrcode/README.md +87 -0
- package/bundled-realms/pretui/qrcode/index.js +35 -0
- package/bundled-realms/pretui/realm.json +16 -0
- package/bundled-realms/pretui/registry.ts +40 -0
- package/bundled-realms/pretui/sigpad/LICENSE +21 -0
- package/bundled-realms/pretui/sigpad/README.md +103 -0
- package/bundled-realms/pretui/sigpad/index.js +30 -0
- package/bundled-realms/pretui/structure-dashboard-css.ts +166 -0
- package/bundled-realms/pretui/surfaces/README.md +37 -0
- package/bundled-realms/pretui/surfaces/canvas/LICENSE.d3 +168 -0
- package/bundled-realms/pretui/surfaces/canvas/LICENSE.xyflow +21 -0
- package/bundled-realms/pretui/surfaces/canvas/index.js +25420 -0
- package/bundled-realms/pretui/surfaces/grid/LICENSE.tanstack +50 -0
- package/bundled-realms/pretui/surfaces/grid/index.js +21478 -0
- package/bundled-realms/pretui/surfaces/layout/index.js +9036 -0
- package/bundled-realms/pretui/surfaces-canvas-css.ts +1640 -0
- package/bundled-realms/pretui/surfaces-canvas-layout.ts +607 -0
- package/bundled-realms/pretui/tsconfig.json +54 -0
- package/bundled-realms/pretui/wavesurfer/LICENSE +29 -0
- package/bundled-realms/pretui/wavesurfer/README.md +85 -0
- package/bundled-realms/pretui/wavesurfer/index.js +184 -0
- package/bundled-realms/pretui/zxcvbn/LICENSE +21 -0
- package/bundled-realms/pretui/zxcvbn/README.md +192 -0
- package/bundled-realms/pretui/zxcvbn/index.d.ts +28 -0
- package/bundled-realms/pretui/zxcvbn/index.js +5931 -0
- package/bundled-test-harness/index.html +1 -1
- package/bundled-test-harness/tests/index.html +1 -1
- package/dist/api.js +1 -1
- package/dist/index.js +33 -33
- package/package.json +1 -1
- package/src/lib/test-engine.ts +14 -4
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
// Pretui — StepsWithMedia: a step list whose active step shows its media.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { guidFor } from '@ember/object/internals';
|
|
4
|
+
import { StepList } from './step-list';
|
|
5
|
+
import type { StepItem, StepListVariant } from './step-list';
|
|
6
|
+
import { MediaViewer } from './media-viewer';
|
|
7
|
+
import type { MediaAssetSpec } from '../internal/media-viewer';
|
|
8
|
+
import { cssStyle } from '../pretui-css';
|
|
9
|
+
import { ariaLevelFor } from '../internal/blocks';
|
|
10
|
+
import type { BlockHeadingLevel } from '../internal/blocks';
|
|
11
|
+
|
|
12
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
13
|
+
// B3 · StepsWithMedia
|
|
14
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
15
|
+
//
|
|
16
|
+
// From catalog-app's storefront-how-it-works: a framed media panel beside a
|
|
17
|
+
// numbered list of steps.
|
|
18
|
+
//
|
|
19
|
+
// THE MEDIA IS A STATIC COLUMN, NOT A PER-STEP SWITCHER, and the reason is
|
|
20
|
+
// the tier definition rather than taste. Per-step switching needs a
|
|
21
|
+
// selected index, a keyboard path across the steps, focus management and an
|
|
22
|
+
// announcement when the panel changes — that is a state machine, which
|
|
23
|
+
// makes it a COMPONENT, not a block. A block that quietly grew one would be
|
|
24
|
+
// exactly the failure this tier exists to prevent.
|
|
25
|
+
//
|
|
26
|
+
// The caller keeps the ability anyway, and keeps it correctly: `@current`
|
|
27
|
+
// and `@asset` are both args, so a host that already owns a selected index
|
|
28
|
+
// passes a different asset alongside a different `@current` and gets
|
|
29
|
+
// per-step media with the state living where state belongs. That is the
|
|
30
|
+
// controlled pattern, and it costs this block nothing.
|
|
31
|
+
//
|
|
32
|
+
// Step semantics are NOT reimplemented. `StepList` (controls-composites)
|
|
33
|
+
// already owns the <ol>/<li>, the numbered markers, six states with a
|
|
34
|
+
// glyph each, per-step detail lines, the completion summary wired with
|
|
35
|
+
// aria-describedby, the polite live region, and its own container-query
|
|
36
|
+
// responsive behaviour. This block passes `@steps`, `@current`, `@variant`
|
|
37
|
+
// and `@summary` straight through and adds nothing but the column.
|
|
38
|
+
//
|
|
39
|
+
// BETTER THAN THE INSPIRATION:
|
|
40
|
+
// · `STEPS` was a module-level const, so the block was welded to one
|
|
41
|
+
// product → steps are an arg, typed as StepList's own `StepItem`, so
|
|
42
|
+
// they gain state, detail lines and the summary for free.
|
|
43
|
+
// · The framed asset was an AUTOPLAYING GIF that could not be paused and
|
|
44
|
+
// ignored `prefers-reduced-motion`, with no static poster — the file's
|
|
45
|
+
// worst defect → the asset goes through `MediaViewer`, which routes a
|
|
46
|
+
// video to the kit's player (transport, captions, keyboard, no
|
|
47
|
+
// autoplay) and an image to a frame that reserves its ratio.
|
|
48
|
+
// · `@ts-expect-error` on the asset import → the asset is data.
|
|
49
|
+
// · A container query collapsing to one column: KEPT, and kept unnamed.
|
|
50
|
+
//
|
|
51
|
+
// No browser-chrome frame around the screenshot, deliberately: that is a
|
|
52
|
+
// visual treatment, not part of a steps block, and the source's version
|
|
53
|
+
// hardcoded its traffic-light colours and read three meaningless dots to a
|
|
54
|
+
// screen reader. A caller who wants one puts it in the `<:media>` block.
|
|
55
|
+
|
|
56
|
+
export interface StepsWithMediaSignature {
|
|
57
|
+
Args: {
|
|
58
|
+
/** Small line above the title. */
|
|
59
|
+
eyebrow?: string;
|
|
60
|
+
/** Section title. */
|
|
61
|
+
title?: string;
|
|
62
|
+
/** One paragraph under the title. */
|
|
63
|
+
lead?: string;
|
|
64
|
+
/** The steps, handed straight to StepList. */
|
|
65
|
+
steps: readonly StepItem[];
|
|
66
|
+
/** Index of the current step — StepList derives
|
|
67
|
+
* complete/current/upcoming for steps without an explicit state. */
|
|
68
|
+
current?: number;
|
|
69
|
+
/** StepList presentation: `steps` (numbered rail) or `track`. */
|
|
70
|
+
variant?: StepListVariant;
|
|
71
|
+
/** Show StepList's derived completion summary. */
|
|
72
|
+
summary?: boolean;
|
|
73
|
+
/** Accessible name for the step list. Defaults to the title. */
|
|
74
|
+
stepsLabel?: string;
|
|
75
|
+
/** The media panel's asset. Routed by MediaViewer. */
|
|
76
|
+
asset?: MediaAssetSpec;
|
|
77
|
+
/** Which side the media sits on VISUALLY at wide widths. Source order
|
|
78
|
+
* is always content-first. Default `start`, matching the source. */
|
|
79
|
+
mediaSide?: 'start' | 'end';
|
|
80
|
+
/** Hold the media panel at a fixed CSS `aspect-ratio`. */
|
|
81
|
+
ratio?: string;
|
|
82
|
+
/** Heading level for the title in the host page. */
|
|
83
|
+
headingLevel?: BlockHeadingLevel;
|
|
84
|
+
};
|
|
85
|
+
Blocks: {
|
|
86
|
+
/** Replaces the media panel — a BrowserFrame, a Chart, a Scene. */
|
|
87
|
+
media: [];
|
|
88
|
+
/** Anything under the step list. */
|
|
89
|
+
default: [];
|
|
90
|
+
};
|
|
91
|
+
Element: HTMLElement;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export class StepsWithMedia extends Component<StepsWithMediaSignature> {
|
|
95
|
+
private titleId = guidFor(this) + '-title';
|
|
96
|
+
|
|
97
|
+
get mediaSide(): 'start' | 'end' {
|
|
98
|
+
return this.args.mediaSide === 'end' ? 'end' : 'start';
|
|
99
|
+
}
|
|
100
|
+
get headingAriaLevel() {
|
|
101
|
+
return ariaLevelFor(this.args.headingLevel);
|
|
102
|
+
}
|
|
103
|
+
get style() {
|
|
104
|
+
return cssStyle('--pretui-swm-ratio', this.args.ratio);
|
|
105
|
+
}
|
|
106
|
+
get ratioMode(): string {
|
|
107
|
+
return this.args.ratio ? 'fixed' : 'intrinsic';
|
|
108
|
+
}
|
|
109
|
+
get steps(): StepItem[] {
|
|
110
|
+
return [...(this.args.steps ?? [])];
|
|
111
|
+
}
|
|
112
|
+
get stepsLabel(): string {
|
|
113
|
+
return this.args.stepsLabel ?? this.args.title ?? 'Steps';
|
|
114
|
+
}
|
|
115
|
+
get labelledBy() {
|
|
116
|
+
return this.args.title ? this.titleId : undefined;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
<template>
|
|
120
|
+
<section
|
|
121
|
+
class='pretui-swm'
|
|
122
|
+
style={{this.style}}
|
|
123
|
+
data-media-side={{this.mediaSide}}
|
|
124
|
+
aria-labelledby={{this.labelledBy}}
|
|
125
|
+
data-test-pretui-steps-with-media
|
|
126
|
+
...attributes
|
|
127
|
+
>
|
|
128
|
+
<div class='pretui-swm-grid'>
|
|
129
|
+
<div class='pretui-swm-content'>
|
|
130
|
+
{{#if @eyebrow}}
|
|
131
|
+
<p class='pretui-swm-eyebrow'>{{@eyebrow}}</p>
|
|
132
|
+
{{/if}}
|
|
133
|
+
{{#if @title}}
|
|
134
|
+
<h2
|
|
135
|
+
id={{this.titleId}}
|
|
136
|
+
class='pretui-swm-title'
|
|
137
|
+
aria-level={{this.headingAriaLevel}}
|
|
138
|
+
>{{@title}}</h2>
|
|
139
|
+
{{/if}}
|
|
140
|
+
{{#if @lead}}
|
|
141
|
+
<p class='pretui-swm-lead'>{{@lead}}</p>
|
|
142
|
+
{{/if}}
|
|
143
|
+
<StepList
|
|
144
|
+
@steps={{this.steps}}
|
|
145
|
+
@current={{@current}}
|
|
146
|
+
@variant={{@variant}}
|
|
147
|
+
@summary={{@summary}}
|
|
148
|
+
@label={{this.stepsLabel}}
|
|
149
|
+
data-test-pretui-swm-steps
|
|
150
|
+
/>
|
|
151
|
+
{{yield}}
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
{{#if (has-block 'media')}}
|
|
155
|
+
<div
|
|
156
|
+
class='pretui-swm-media'
|
|
157
|
+
data-ratio={{this.ratioMode}}
|
|
158
|
+
data-test-pretui-swm-media
|
|
159
|
+
>{{yield to='media'}}</div>
|
|
160
|
+
{{else}}
|
|
161
|
+
{{! see the note in HeroSplit — else-if does not narrow @asset }}
|
|
162
|
+
{{#if @asset}}
|
|
163
|
+
<div
|
|
164
|
+
class='pretui-swm-media'
|
|
165
|
+
data-ratio={{this.ratioMode}}
|
|
166
|
+
data-test-pretui-swm-media
|
|
167
|
+
>
|
|
168
|
+
<MediaViewer @asset={{@asset}} />
|
|
169
|
+
</div>
|
|
170
|
+
{{/if}}
|
|
171
|
+
{{/if}}
|
|
172
|
+
</div>
|
|
173
|
+
</section>
|
|
174
|
+
|
|
175
|
+
<style scoped>
|
|
176
|
+
@layer PretComponent {
|
|
177
|
+
.pretui-swm {
|
|
178
|
+
container-type: inline-size;
|
|
179
|
+
display: block;
|
|
180
|
+
}
|
|
181
|
+
.pretui-swm-grid {
|
|
182
|
+
display: grid;
|
|
183
|
+
grid-template-columns:
|
|
184
|
+
minmax(0, var(--pretui-swm-content-fr, 1fr))
|
|
185
|
+
minmax(0, var(--pretui-swm-media-fr, 1fr));
|
|
186
|
+
gap: var(--pretui-swm-gap, var(--space-8, 34px));
|
|
187
|
+
align-items: start;
|
|
188
|
+
}
|
|
189
|
+
.pretui-swm[data-media-side='start'] .pretui-swm-media {
|
|
190
|
+
order: -1;
|
|
191
|
+
}
|
|
192
|
+
.pretui-swm-content {
|
|
193
|
+
display: grid;
|
|
194
|
+
gap: var(--space-4, 11px);
|
|
195
|
+
align-content: start;
|
|
196
|
+
min-width: 0;
|
|
197
|
+
}
|
|
198
|
+
.pretui-swm-eyebrow {
|
|
199
|
+
margin: 0;
|
|
200
|
+
font-family: var(--font-mono);
|
|
201
|
+
font-size: var(--text-ui-xs, 11px);
|
|
202
|
+
font-weight: 500;
|
|
203
|
+
letter-spacing: var(--track-eyebrow, 0.08em);
|
|
204
|
+
text-transform: uppercase;
|
|
205
|
+
color: var(--muted-foreground);
|
|
206
|
+
}
|
|
207
|
+
.pretui-swm-title {
|
|
208
|
+
margin: 0;
|
|
209
|
+
font-family: var(--font-serif);
|
|
210
|
+
font-size: var(--pretui-swm-title-size, var(--text-heading, 19px));
|
|
211
|
+
font-weight: 400;
|
|
212
|
+
line-height: 1.2;
|
|
213
|
+
letter-spacing: var(--track-heading, -0.02em);
|
|
214
|
+
color: var(--foreground);
|
|
215
|
+
text-wrap: balance;
|
|
216
|
+
}
|
|
217
|
+
.pretui-swm-lead {
|
|
218
|
+
margin: 0;
|
|
219
|
+
font-size: var(--text-body, 15px);
|
|
220
|
+
line-height: 1.5;
|
|
221
|
+
color: var(--muted-foreground);
|
|
222
|
+
max-width: 58ch;
|
|
223
|
+
}
|
|
224
|
+
.pretui-swm-media {
|
|
225
|
+
min-width: 0;
|
|
226
|
+
position: sticky;
|
|
227
|
+
top: var(--pretui-swm-sticky-top, 0);
|
|
228
|
+
}
|
|
229
|
+
.pretui-swm-media[data-ratio='fixed'] {
|
|
230
|
+
aspect-ratio: var(--pretui-swm-ratio, 16 / 9);
|
|
231
|
+
overflow: hidden;
|
|
232
|
+
display: grid;
|
|
233
|
+
place-items: center;
|
|
234
|
+
border-radius: var(--radius-surface, 10px);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
@container (max-width: 46rem) {
|
|
238
|
+
.pretui-swm-grid {
|
|
239
|
+
grid-template-columns: minmax(0, 1fr);
|
|
240
|
+
gap: var(--pretui-swm-gap-narrow, var(--space-5, 14px));
|
|
241
|
+
}
|
|
242
|
+
.pretui-swm[data-media-side='start'] .pretui-swm-media {
|
|
243
|
+
order: 0;
|
|
244
|
+
}
|
|
245
|
+
/* Sticky is a wide-column affordance. In one column it would pin
|
|
246
|
+
the picture over the steps you are trying to read. */
|
|
247
|
+
.pretui-swm-media {
|
|
248
|
+
position: static;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
</style>
|
|
253
|
+
</template>
|
|
254
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A marketing-page block pairing a numbered step list with a media panel: eyebrow, title, lead, steps on one side, a picture or a live component on the other.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@eyebrow?, @title?, @lead? — the heading stack
|
|
9
|
+
@steps (required) — handed straight to StepList
|
|
10
|
+
@current? — index of the current step; StepList derives complete / current /
|
|
11
|
+
upcoming for steps without an explicit state
|
|
12
|
+
@variant? — StepList presentation: 'steps' (numbered rail) or 'track'
|
|
13
|
+
@summary? — show StepList's derived completion summary
|
|
14
|
+
@stepsLabel? — accessible name for the step list. Defaults to the title
|
|
15
|
+
@asset? — the media panel's asset; routed by MediaViewer
|
|
16
|
+
@mediaSide? — which side the media sits on VISUALLY at wide widths. Default 'start'
|
|
17
|
+
@ratio? — hold the media panel at a fixed CSS aspect-ratio
|
|
18
|
+
@headingLevel? — heading level for the title in the host page
|
|
19
|
+
|
|
20
|
+
<:media> — replaces the media panel: a BrowserFrame, a Chart, a Scene
|
|
21
|
+
<:default> — anything under the step list
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**`@mediaSide` moves the media visually and never in source order.** Source order is always content-first, so the reading order is the same whichever side the picture is on. A block that reordered the DOM to move a picture would change what a screen reader encounters first based on a visual preference.
|
|
25
|
+
|
|
26
|
+
**`@headingLevel` exists because a block does not know its page.** A section title that is an `<h2>` on one page and an `<h3>` on another is the caller's decision, and hardcoding it is how document outlines break.
|
|
27
|
+
|
|
28
|
+
**The media panel routes through MediaViewer**, so an `@asset` of any kind renders correctly; `<:media>` replaces the panel entirely for anything that is not an asset.
|
|
29
|
+
|
|
30
|
+
**`@ratio` reserves the panel** so the block does not reflow when the media lands.
|
|
31
|
+
|
|
32
|
+
## Prior art
|
|
33
|
+
|
|
34
|
+
The "how it works" section every marketing page builds by hand.
|
|
35
|
+
|
|
36
|
+
Where Pretui is better: the visual/source-order split, the heading level as an argument, and the steps being a real **StepList** rather than a styled `<ol>` — so state derivation, the completion summary and the list's own accessibility come along.
|
|
37
|
+
|
|
38
|
+
Where it is thinner: one media panel and one step list, no alternating layout across several instances (the caller alternates `@mediaSide`), and no scroll-linked step advancement.
|
|
39
|
+
|
|
40
|
+
## Accessibility
|
|
41
|
+
|
|
42
|
+
- **Source order is content-first regardless of `@mediaSide`**, which is the block's most important property: visual arrangement and reading order are decided separately.
|
|
43
|
+
- **`@headingLevel` keeps the document outline correct** in whatever page the block lands in.
|
|
44
|
+
- **`@stepsLabel` names the step list**, defaulting to the title so it is never anonymous.
|
|
45
|
+
- **The step semantics are StepList's** — complete, current and upcoming are conveyed there rather than by position or colour here.
|
|
46
|
+
- **The media is decoration unless the asset says otherwise.** An `@asset` carries its own alt text through MediaViewer; a `<:media>` block owns its own.
|
|
47
|
+
|
|
48
|
+
## Theming
|
|
49
|
+
|
|
50
|
+
The block composes **StepList** and **MediaViewer** and takes the kit's shared block spacing and heading tokens rather than defining its own surface.
|
|
51
|
+
|
|
52
|
+
That is the right shape for a Block-tier component: it is an arrangement of other components, and a theme retunes it by retuning them — a block with its own type scale would drift away from the sections above and below it on the same page.
|
|
53
|
+
|
|
54
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// Pretui — StepsWithMedia usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import type { StepItem, StepListVariant } from './step-list';
|
|
6
|
+
import type { MediaAssetSpec } from '../internal/media-viewer';
|
|
7
|
+
import { platePoster } from '../media-examples';
|
|
8
|
+
import { StepsWithMedia } from './steps-with-media';
|
|
9
|
+
|
|
10
|
+
// ── Fixtures ─────────────────────────────────────────────────────────────
|
|
11
|
+
const STEPS_ASSET: MediaAssetSpec = {
|
|
12
|
+
src: platePoster('Lot workspace', '16 / 9'),
|
|
13
|
+
name: 'Lot workspace',
|
|
14
|
+
mimeType: 'image/svg+xml',
|
|
15
|
+
kind: 'image',
|
|
16
|
+
alt: 'A generated stand-in screenshot of the lot workspace',
|
|
17
|
+
width: 1600,
|
|
18
|
+
height: 900,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const HOW_STEPS: readonly StepItem[] = [
|
|
22
|
+
{
|
|
23
|
+
label: 'Open a lot',
|
|
24
|
+
detail: 'Every lot arrives with its origin, grade and moisture already read.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: 'Set your ceiling',
|
|
28
|
+
detail: 'One number. The floor bids against it for you.',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: 'Watch the board',
|
|
32
|
+
detail: 'Live positions, with your ceiling marked on every line.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
label: 'Settle',
|
|
36
|
+
detail: 'Contract, invoice and manifest are generated from the winning bid.',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
41
|
+
// ReadinessPanel
|
|
42
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
43
|
+
|
|
44
|
+
class StepsWithMediaUsage extends Component {
|
|
45
|
+
@tracked eyebrow = 'How the floor works';
|
|
46
|
+
@tracked title = 'Four steps from sample to settlement';
|
|
47
|
+
@tracked lead =
|
|
48
|
+
'The same four steps every lot goes through, whether it is a single chest or a whole season.';
|
|
49
|
+
@tracked current = 2;
|
|
50
|
+
@tracked variant = 'steps';
|
|
51
|
+
@tracked summary = true;
|
|
52
|
+
@tracked mediaSide = 'start';
|
|
53
|
+
|
|
54
|
+
setEyebrow = (v: string) => (this.eyebrow = v);
|
|
55
|
+
setTitle = (v: string) => (this.title = v);
|
|
56
|
+
setLead = (v: string) => (this.lead = v);
|
|
57
|
+
setCurrent = (v: number) => (this.current = v);
|
|
58
|
+
setVariant = (v: string) => (this.variant = v);
|
|
59
|
+
setSummary = (v: boolean) => (this.summary = v);
|
|
60
|
+
setMediaSide = (v: string) => (this.mediaSide = v);
|
|
61
|
+
|
|
62
|
+
get variantOptions(): string[] {
|
|
63
|
+
return ['steps', 'track'];
|
|
64
|
+
}
|
|
65
|
+
get sideOptions(): string[] {
|
|
66
|
+
return ['start', 'end'];
|
|
67
|
+
}
|
|
68
|
+
get railVariant(): StepListVariant {
|
|
69
|
+
return this.variant === 'track' ? 'track' : 'steps';
|
|
70
|
+
}
|
|
71
|
+
get side(): 'start' | 'end' {
|
|
72
|
+
return this.mediaSide === 'end' ? 'end' : 'start';
|
|
73
|
+
}
|
|
74
|
+
get steps(): StepItem[] {
|
|
75
|
+
return [...HOW_STEPS];
|
|
76
|
+
}
|
|
77
|
+
get asset(): MediaAssetSpec {
|
|
78
|
+
return STEPS_ASSET;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
get usage(): string {
|
|
82
|
+
return (
|
|
83
|
+
'<StepsWithMedia\n' +
|
|
84
|
+
" @title='" +
|
|
85
|
+
this.title +
|
|
86
|
+
"'\n" +
|
|
87
|
+
' @steps={{this.steps}}\n' +
|
|
88
|
+
' @current={{this.current}}\n' +
|
|
89
|
+
' @asset={{this.asset}}\n' +
|
|
90
|
+
'/>'
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
<template>
|
|
95
|
+
<FreestyleUsage
|
|
96
|
+
@name='StepsWithMedia'
|
|
97
|
+
@description='A block: steps paired with a media panel. Composes StepList (the whole ordered list — markers, six states, per-step detail lines, the derived completion summary, the polite live region) and MediaViewer (the panel). Step semantics are not reimplemented here; this block contributes the column and nothing else. The media is a STATIC column on purpose: per-step switching needs a selected index, a keyboard path and an announcement, which is a state machine and therefore a component. A caller who already owns a selected index passes a different asset alongside a different current and gets per-step media with the state living where state belongs.'
|
|
98
|
+
@source={{this.usage}}
|
|
99
|
+
>
|
|
100
|
+
<:example>
|
|
101
|
+
<StepsWithMedia
|
|
102
|
+
@eyebrow={{this.eyebrow}}
|
|
103
|
+
@title={{this.title}}
|
|
104
|
+
@lead={{this.lead}}
|
|
105
|
+
@steps={{this.steps}}
|
|
106
|
+
@current={{this.current}}
|
|
107
|
+
@variant={{this.railVariant}}
|
|
108
|
+
@summary={{this.summary}}
|
|
109
|
+
@asset={{this.asset}}
|
|
110
|
+
@mediaSide={{this.side}}
|
|
111
|
+
@ratio='16 / 9'
|
|
112
|
+
/>
|
|
113
|
+
</:example>
|
|
114
|
+
<:api as |Args|>
|
|
115
|
+
<Args.Array
|
|
116
|
+
@name='steps'
|
|
117
|
+
@description='The steps, handed straight to StepList. Each is label plus an optional state and detail line, so a step can say it is blocked and why.'
|
|
118
|
+
/>
|
|
119
|
+
<Args.Number
|
|
120
|
+
@name='current'
|
|
121
|
+
@value={{this.current}}
|
|
122
|
+
@min={{-1}}
|
|
123
|
+
@max={{3}}
|
|
124
|
+
@description='Index of the current step. StepList derives complete, current and upcoming for every step without an explicit state.'
|
|
125
|
+
@onInput={{this.setCurrent}}
|
|
126
|
+
/>
|
|
127
|
+
<Args.String
|
|
128
|
+
@name='variant'
|
|
129
|
+
@value={{this.variant}}
|
|
130
|
+
@defaultValue='steps'
|
|
131
|
+
@options={{this.variantOptions}}
|
|
132
|
+
@description='StepList presentation. steps is the numbered rail; track is the segmented bar read at a glance.'
|
|
133
|
+
@onInput={{this.setVariant}}
|
|
134
|
+
/>
|
|
135
|
+
<Args.Bool
|
|
136
|
+
@name='summary'
|
|
137
|
+
@value={{this.summary}}
|
|
138
|
+
@defaultValue={{false}}
|
|
139
|
+
@description='Show the derived completion count, wired to the list with aria-describedby.'
|
|
140
|
+
@onInput={{this.setSummary}}
|
|
141
|
+
/>
|
|
142
|
+
<Args.String
|
|
143
|
+
@name='title'
|
|
144
|
+
@value={{this.title}}
|
|
145
|
+
@description='Section title, and the block accessible name when present.'
|
|
146
|
+
@onInput={{this.setTitle}}
|
|
147
|
+
/>
|
|
148
|
+
<Args.String
|
|
149
|
+
@name='eyebrow'
|
|
150
|
+
@value={{this.eyebrow}}
|
|
151
|
+
@description='Small mono line above the title.'
|
|
152
|
+
@onInput={{this.setEyebrow}}
|
|
153
|
+
/>
|
|
154
|
+
<Args.String
|
|
155
|
+
@name='lead'
|
|
156
|
+
@value={{this.lead}}
|
|
157
|
+
@description='One paragraph under the title.'
|
|
158
|
+
@onInput={{this.setLead}}
|
|
159
|
+
/>
|
|
160
|
+
<Args.String
|
|
161
|
+
@name='mediaSide'
|
|
162
|
+
@value={{this.mediaSide}}
|
|
163
|
+
@defaultValue='start'
|
|
164
|
+
@options={{this.sideOptions}}
|
|
165
|
+
@description='Which side the panel sits on VISUALLY at wide widths. Source order stays content-first.'
|
|
166
|
+
@onInput={{this.setMediaSide}}
|
|
167
|
+
/>
|
|
168
|
+
<Args.Object
|
|
169
|
+
@name='asset'
|
|
170
|
+
@description='The media panel asset, routed by MediaViewer. A video gets the kit player — transport, captions, keyboard, and no autoplay, which is what the source autoplaying GIF got wrong.'
|
|
171
|
+
/>
|
|
172
|
+
<Args.String
|
|
173
|
+
@name='ratio'
|
|
174
|
+
@description='Hold the panel at a fixed aspect ratio.'
|
|
175
|
+
/>
|
|
176
|
+
<Args.Yield
|
|
177
|
+
@name='media'
|
|
178
|
+
@description='Replaces the media panel. This is where a BrowserFrame will drop in once the kit has one.'
|
|
179
|
+
/>
|
|
180
|
+
</:api>
|
|
181
|
+
<:cssVars as |Css|>
|
|
182
|
+
<Css.Basic
|
|
183
|
+
@name='pretui-swm-gap'
|
|
184
|
+
@type='dimension'
|
|
185
|
+
@description='Gap between the panel and the steps at wide widths.'
|
|
186
|
+
/>
|
|
187
|
+
<Css.Basic
|
|
188
|
+
@name='pretui-swm-media-fr'
|
|
189
|
+
@type='dimension'
|
|
190
|
+
@description='Track size for the media column.'
|
|
191
|
+
/>
|
|
192
|
+
<Css.Basic
|
|
193
|
+
@name='pretui-swm-sticky-top'
|
|
194
|
+
@type='dimension'
|
|
195
|
+
@description='Sticky offset for the panel while the steps scroll past. Sticky is cancelled once the grid collapses, so a single column never pins the picture over the steps.'
|
|
196
|
+
/>
|
|
197
|
+
</:cssVars>
|
|
198
|
+
</FreestyleUsage>
|
|
199
|
+
</template>
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
203
|
+
// CtaBand
|
|
204
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
205
|
+
|
|
206
|
+
export const DEMOS_STEPS_WITH_MEDIA: Record<string, unknown> = {
|
|
207
|
+
StepsWithMedia: StepsWithMediaUsage,
|
|
208
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Pretui — StreamingText: text that reveals word by word without timers.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { htmlSafe } from '@ember/template';
|
|
4
|
+
|
|
5
|
+
export interface StreamingTextSignature {
|
|
6
|
+
Args: {
|
|
7
|
+
text: string;
|
|
8
|
+
// words per second for the CSS stagger (Law 7: seconds-based, unitless rates)
|
|
9
|
+
rate?: number;
|
|
10
|
+
startDelay?: number;
|
|
11
|
+
cursor?: boolean;
|
|
12
|
+
};
|
|
13
|
+
Element: HTMLSpanElement;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Timer-free stream: each word carries animation-delay = start + i/rate.
|
|
17
|
+
// Reduced motion / prerender shows the end state; sr-only mirror has full text.
|
|
18
|
+
export class StreamingText extends Component<StreamingTextSignature> {
|
|
19
|
+
get words(): { word: string; style: ReturnType<typeof htmlSafe> }[] {
|
|
20
|
+
let rate = this.args.rate ?? 18;
|
|
21
|
+
let start = this.args.startDelay ?? 0;
|
|
22
|
+
return this.args.text.split(' ').map((word, i) => ({
|
|
23
|
+
word,
|
|
24
|
+
style: htmlSafe(`animation-delay: ${(start + i / rate).toFixed(3)}s`),
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
<template>
|
|
28
|
+
<span class='pretui-stream' data-test-pretui-streaming-text ...attributes>
|
|
29
|
+
<span aria-hidden='true'>
|
|
30
|
+
{{#each this.words as |w|}}<span class='pretui-stream-word' style={{w.style}}>{{w.word}} </span>{{/each}}
|
|
31
|
+
</span>
|
|
32
|
+
<span class='pretui-sr'>{{@text}}</span>
|
|
33
|
+
{{#if @cursor}}<span class='pretui-stream-cursor' aria-hidden='true'></span>{{/if}}
|
|
34
|
+
</span>
|
|
35
|
+
<style scoped>
|
|
36
|
+
@layer PretComponent {
|
|
37
|
+
@keyframes pretui-stream-in {
|
|
38
|
+
from {
|
|
39
|
+
opacity: 0;
|
|
40
|
+
filter: blur(4px);
|
|
41
|
+
}
|
|
42
|
+
to {
|
|
43
|
+
opacity: 1;
|
|
44
|
+
filter: blur(0);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
.pretui-stream-word {
|
|
48
|
+
display: inline;
|
|
49
|
+
opacity: 0;
|
|
50
|
+
animation: pretui-stream-in 420ms cubic-bezier(0.22, 0.61, 0.25, 1) both;
|
|
51
|
+
}
|
|
52
|
+
.pretui-stream-cursor {
|
|
53
|
+
display: inline-block;
|
|
54
|
+
width: 2px;
|
|
55
|
+
height: 0.9em;
|
|
56
|
+
vertical-align: -0.1em;
|
|
57
|
+
border-radius: 1px;
|
|
58
|
+
background: currentColor;
|
|
59
|
+
margin-left: 1px;
|
|
60
|
+
}
|
|
61
|
+
.pretui-sr {
|
|
62
|
+
position: absolute;
|
|
63
|
+
width: 1px;
|
|
64
|
+
height: 1px;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
clip: rect(0 0 0 0);
|
|
67
|
+
}
|
|
68
|
+
@media (prefers-reduced-motion: reduce) {
|
|
69
|
+
.pretui-stream-word {
|
|
70
|
+
animation: none;
|
|
71
|
+
opacity: 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
</style>
|
|
76
|
+
</template>
|
|
77
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
Text that appears word by word, as if being typed or streamed from a model. Use it for agent output, a generated summary landing on a card, or any moment where the arrival of the text is part of the experience. If you want a character-by-character effect with a blinking caret, that is **Typewriter**; if you want letters to scramble into place, **TextScramble**; if the text is simply present, do not animate it at all — an entrance animation on static content is noise.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@text: string (required)
|
|
9
|
+
@rate? (default 18, words per second)
|
|
10
|
+
@startDelay? (default 0, seconds)
|
|
11
|
+
@cursor?
|
|
12
|
+
Element: HTMLSpanElement
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**`@rate` is words per second, and the units matter.** Law 7 of the kit: rates are unitless numbers over seconds, never milliseconds-per-item, because a rate composes (two components at rate 18 agree) where a per-item delay does not. `@startDelay` is likewise seconds, so a sequence of streaming blocks can be choreographed by adding rates.
|
|
16
|
+
|
|
17
|
+
**There is no timer.** Each word carries `animation-delay: startDelay + i / rate` seconds, and the whole reveal is CSS. That is the realm law — the prerenderer blocks timers — and it has three consequences worth knowing: the animation is correct under prerender (it simply shows the end state), it cannot leak, and **the text is fully present in the DOM from the first frame**. Nothing is being appended; opacity is being animated.
|
|
18
|
+
|
|
19
|
+
That last point is what makes the accessibility work (below), and it is also the limitation: **this animates text you already have.** It is not a streaming transport. If tokens arrive incrementally from a model, each new `@text` re-runs the whole stagger from word zero. Streaming _into_ it needs a different approach.
|
|
20
|
+
|
|
21
|
+
The entrance is opacity plus a 4px blur clearing over 420ms — the blur is what makes it read as "resolving" rather than "fading in".
|
|
22
|
+
|
|
23
|
+
## Prior art
|
|
24
|
+
|
|
25
|
+
**motion-primitives `TextEffect`** and **cult-ui's typewriter** are the closest — both drive per-character or per-word reveals through Framer Motion's stagger, i.e. a JS animation controller. **react-bits** ships several variants (`SplitText`, `BlurText`) on the same engine. **Vercel's AI SDK** streams tokens into a plain element and animates nothing.
|
|
26
|
+
|
|
27
|
+
Where Pretui is better: **no runtime.** The reference implementations all instantiate an animation controller per instance, which on a page with twenty streamed blocks is twenty controllers driving RAF loops. Here it is `n` CSS animations the compositor owns, and the component's entire JS is one `map` producing delay strings. It also works where the others cannot — under prerender, and with `prefers-reduced-motion` handled by a single CSS rule rather than a conditional in the controller.
|
|
28
|
+
|
|
29
|
+
Where it is behind: **no per-character mode**, no exit animation, no scroll-triggered start (compose **InView**), and the streaming-transport limitation above. motion-primitives' `TextEffect` also supports staggering _out_, which has no analogue here.
|
|
30
|
+
|
|
31
|
+
## Accessibility
|
|
32
|
+
|
|
33
|
+
No pattern governs it. Relevant criteria: WCAG **2.2.2 Pause, Stop, Hide**, **1.3.1**, and the live-region rules.
|
|
34
|
+
|
|
35
|
+
This is one of the better-handled animations in the kit, and the technique is worth copying:
|
|
36
|
+
|
|
37
|
+
- **A visually-hidden mirror carries the full text.** The animated words are inside an `aria-hidden="true"` wrapper, and a second `<span class='pretui-sr'>` holds `@text` complete. So a screen reader reads the whole sentence immediately and never encounters partially-revealed content, while the visual layer staggers. That is exactly right, and it is what most streaming-text implementations get wrong — they animate the real text and screen readers narrate fragments.
|
|
38
|
+
- **The cursor is `aria-hidden`.** Correct — it is decoration.
|
|
39
|
+
- **`prefers-reduced-motion: reduce` sets `animation: none; opacity: 1`**, so the end state appears immediately. Not a slower animation, not a fade: no motion at all, which is the right treatment for a decorative entrance.
|
|
40
|
+
|
|
41
|
+
Gaps:
|
|
42
|
+
|
|
43
|
+
- **The text is duplicated in the DOM.** The mirror is a second copy of the string, so `Ctrl+F`, text selection and copy-paste can pick up both. `clip: rect(0 0 0 0)` is the legacy visually-hidden recipe and does not prevent selection — a user dragging across the block may copy the sentence twice. The modern `clip-path: inset(50%)` recipe plus `user-select: none` on the mirror would tighten it.
|
|
44
|
+
- **Nothing announces that streaming has finished.** The full text is available from the start, so there is nothing to wait for — which is the right design, but it means a live region wrapping this component would announce everything instantly and then again on the next update.
|
|
45
|
+
- **WCAG 2.2.2** governs motion lasting more than five seconds. At the default rate of 18 words/second a paragraph resolves in well under a second, but a long document at a slow `@rate` can exceed it, and there is no pause control. Keep rates high enough that the whole block resolves quickly.
|
|
46
|
+
- **The blur filter is a compositing cost** on long text; a 2,000-word block is 2,000 animated elements. Use it for short passages.
|
|
47
|
+
- **Word splitting is `text.split(' ')`**, so multiple spaces collapse into empty words and the visual spacing comes from a trailing space inside each span. Text with newlines or tabs will not break as authored.
|
|
48
|
+
|
|
49
|
+
## Theming
|
|
50
|
+
|
|
51
|
+
Almost nothing: `currentColor` for the cursor, and the surrounding type styles are inherited. The 420ms duration, the `cubic-bezier(0.22, 0.61, 0.25, 1)` easing, the 4px blur and the 2px × 0.9em cursor are all fixed.
|
|
52
|
+
|
|
53
|
+
`@rate` and `@startDelay` are args rather than tokens, so a theme cannot set a house streaming speed — that is a per-call-site decision. If a theme wants slower, calmer motion across the kit it can reach `--pretui-dur-*` elsewhere but not here, which is an inconsistency worth noting.
|
|
54
|
+
|
|
55
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Pretui — StreamingText usage page.
|
|
2
|
+
import type { TemplateOnlyComponent } from '@ember/component/template-only';
|
|
3
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
4
|
+
import { StreamingText } from './streaming-text';
|
|
5
|
+
|
|
6
|
+
const StreamingTextUsage: TemplateOnlyComponent = <template>
|
|
7
|
+
<FreestyleUsage @name='StreamingText' @description='Timer-free word reveal for agent output. The full sentence remains available to assistive technology and reduced-motion users.' @source='<StreamingText @text="Comparing supplier records…" @rate={{12}} />'>
|
|
8
|
+
<:example><StreamingText @text='Comparing supplier records against 148 approved tea lots.' @rate={{12}} @cursor={{true}} /></:example>
|
|
9
|
+
<:api as |Args|><Args.String @name='text' @value='Comparing supplier records against 148 approved tea lots.' /><Args.Number @name='rate' @value={{12}} /><Args.Number @name='startDelay' @defaultValue={{0}} /><Args.Bool @name='cursor' @value={{true}} /></:api>
|
|
10
|
+
</FreestyleUsage>
|
|
11
|
+
</template>;
|
|
12
|
+
|
|
13
|
+
export const DEMOS_STREAMING_TEXT: Record<string, unknown> = {
|
|
14
|
+
StreamingText: StreamingTextUsage,
|
|
15
|
+
};
|