@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,349 @@
|
|
|
1
|
+
// Pretui — Odometer: a number whose changed digits roll into place.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { htmlSafe } from '@ember/template';
|
|
4
|
+
import { cssDeclaration } from '../pretui-css';
|
|
5
|
+
import { modifier } from 'ember-modifier';
|
|
6
|
+
import { defined, formatNumber, toNumber } from '../internal/reading-format';
|
|
7
|
+
import type { FormatOptionBag } from '../internal/reading-format';
|
|
8
|
+
|
|
9
|
+
// ── Odometer — the Law 5 canonical mechanism ─────────────────────────────
|
|
10
|
+
// "Each digit a 1ch window over a stacked 0–9 column, translateY sprung;
|
|
11
|
+
// offset > 5 → offset -= 10 so every digit takes the shortest path around
|
|
12
|
+
// the ring (9→0 rolls forward one, not backward nine)."
|
|
13
|
+
//
|
|
14
|
+
// That arithmetic is `rollPath` below, verbatim. Two implementation notes,
|
|
15
|
+
// both deliberate:
|
|
16
|
+
//
|
|
17
|
+
// 1. The rendered column is the SLICE of the 0–9 ring the digit must travel
|
|
18
|
+
// (at most six cells), not the whole ring. A ring-plus-winding-offset
|
|
19
|
+
// implementation drifts without bound — a counter that only ever ticks up
|
|
20
|
+
// drives its units digit to +1 every update forever, and re-basing that
|
|
21
|
+
// offset needs a second frame (rAF/timeout), which the realm forbids. The
|
|
22
|
+
// slice keeps every position bounded, and the visible travel is identical:
|
|
23
|
+
// 8→3 rolls forward through 9-0-1-2, 7→3 rolls backward through 6-5-4.
|
|
24
|
+
// 2. The motion is ONE CSS animation whose from-state is the custom property
|
|
25
|
+
// `--pretui-odo-start`; the resting transform (`--pretui-odo-rest`) is the
|
|
26
|
+
// base style, so `animation: none` under prefers-reduced-motion lands on
|
|
27
|
+
// the end state, never a frozen midpoint (Law 5). Replay on change comes
|
|
28
|
+
// from a keyed {{#each}} — the digit's key encodes from>to, so a changed
|
|
29
|
+
// digit is a new element and its animation starts fresh. No timers, no
|
|
30
|
+
// JS animation loop, no transitionend bookkeeping.
|
|
31
|
+
//
|
|
32
|
+
// A11y: the whole digit track is aria-hidden with an sr-only mirror of the
|
|
33
|
+
// real value beside it. `@announce` defaults to 'off' — a value that rolls on
|
|
34
|
+
// every tick would otherwise spam a screen reader with every intermediate
|
|
35
|
+
// number; turn it on only where the value settles at human pace.
|
|
36
|
+
export interface RollFrame {
|
|
37
|
+
/** the ring slice, top to bottom, as digit characters */
|
|
38
|
+
cells: string[];
|
|
39
|
+
/** index the window starts on (the old digit) */
|
|
40
|
+
start: number;
|
|
41
|
+
/** index the window rests on (the new digit) */
|
|
42
|
+
rest: number;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The Law 5 ring walk: shortest path from one digit to another.
|
|
47
|
+
* `(to - from + 10) % 10`, then `offset > 5 → offset -= 10`.
|
|
48
|
+
*/
|
|
49
|
+
export function rollPath(from: number, to: number): RollFrame {
|
|
50
|
+
let offset = (((to - from) % 10) + 10) % 10;
|
|
51
|
+
if (offset > 5) {
|
|
52
|
+
offset -= 10;
|
|
53
|
+
}
|
|
54
|
+
let steps = Math.abs(offset);
|
|
55
|
+
let cells: string[] = [];
|
|
56
|
+
if (offset >= 0) {
|
|
57
|
+
// forward: the ring slice ascends from the old digit; the window rides up
|
|
58
|
+
for (let i = 0; i <= steps; i++) {
|
|
59
|
+
cells.push(String((from + i) % 10));
|
|
60
|
+
}
|
|
61
|
+
return { cells, start: 0, rest: steps };
|
|
62
|
+
}
|
|
63
|
+
// backward: the same ascending slice, entered from its bottom; window rides down
|
|
64
|
+
for (let i = steps; i >= 0; i--) {
|
|
65
|
+
cells.push(String((((from - i) % 10) + 10) % 10));
|
|
66
|
+
}
|
|
67
|
+
return { cells, start: steps, rest: 0 };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface OdoSlot {
|
|
71
|
+
key: string;
|
|
72
|
+
digit: boolean;
|
|
73
|
+
char: string;
|
|
74
|
+
cells: string[];
|
|
75
|
+
style: ReturnType<typeof htmlSafe>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const DIGIT_RE = /[0-9]/;
|
|
79
|
+
|
|
80
|
+
export interface OdometerSignature {
|
|
81
|
+
Args: {
|
|
82
|
+
/** the value to display. A number is formatted through Intl; a string is used verbatim, so a pre-formatted value ('$12,480') rolls too. */
|
|
83
|
+
value?: number | string;
|
|
84
|
+
/** BCP-47 locale tag for number formatting; ignored when @value is a string */
|
|
85
|
+
locale?: string;
|
|
86
|
+
/** 'decimal' (default), 'currency', 'percent' or 'unit' */
|
|
87
|
+
style?: 'decimal' | 'currency' | 'percent' | 'unit';
|
|
88
|
+
/** ISO 4217 code for style='currency'; without it the style degrades to decimal */
|
|
89
|
+
currency?: string;
|
|
90
|
+
/** floor on fraction digits */
|
|
91
|
+
minimumFractionDigits?: number;
|
|
92
|
+
/** ceiling on fraction digits */
|
|
93
|
+
maximumFractionDigits?: number;
|
|
94
|
+
/** grouping separators (default: the locale's own choice) */
|
|
95
|
+
useGrouping?: boolean | 'always' | 'auto' | 'min2';
|
|
96
|
+
/** any Intl.NumberFormat option not named above; named knobs win over it */
|
|
97
|
+
options?: FormatOptionBag;
|
|
98
|
+
/** roll duration in seconds (default 0.5) */
|
|
99
|
+
duration?: number;
|
|
100
|
+
/** CSS timing function for the roll (default a sprung cubic-bezier) */
|
|
101
|
+
ease?: string;
|
|
102
|
+
/** seconds of delay added per digit so the carry cascades (default 0.03; 0 rolls every digit together) */
|
|
103
|
+
stagger?: number;
|
|
104
|
+
/** which end the stagger counts from: 'right' (default — the units digit leads, like a carry) or 'left' */
|
|
105
|
+
staggerFrom?: 'right' | 'left';
|
|
106
|
+
/** height of one digit cell, any CSS length (default 1em) */
|
|
107
|
+
cellHeight?: string;
|
|
108
|
+
/** live-region politeness for the sr-only value. 'off' (default) because a value that rolls on every tick would spam a screen reader; use 'polite' only where the value settles at human pace. */
|
|
109
|
+
announce?: 'off' | 'polite' | 'assertive';
|
|
110
|
+
/** rendered when the value is missing or not a finite number (default '—') */
|
|
111
|
+
placeholder?: string;
|
|
112
|
+
};
|
|
113
|
+
Blocks: {
|
|
114
|
+
/** static content before the digits — read aloud before the value */
|
|
115
|
+
before: [];
|
|
116
|
+
/** static content after the digits — read aloud after the value */
|
|
117
|
+
after: [];
|
|
118
|
+
};
|
|
119
|
+
Element: HTMLSpanElement;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Records what the odometer just rendered, AFTER the DOM has it, so the
|
|
123
|
+
// next render can diff against it. This bookkeeping used to live inside the
|
|
124
|
+
// slots getter; a getter that writes is a side effect (ember/no-side-effects
|
|
125
|
+
// flags it) and it is genuinely post-render state, not derivation. Args are
|
|
126
|
+
// positional: the text that was just rendered, and the sink that stores it.
|
|
127
|
+
const recordRendered = modifier(
|
|
128
|
+
(_el: HTMLElement, [text, sink]: [string, (rendered: string) => void]) => {
|
|
129
|
+
sink(text);
|
|
130
|
+
},
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
export class Odometer extends Component<OdometerSignature> {
|
|
134
|
+
// Untracked on purpose: this is "what the DOM currently shows". It is read
|
|
135
|
+
// during render (by the slots getter) and written after render (by the
|
|
136
|
+
// recordRendered modifier). Tracking it would make that write a
|
|
137
|
+
// backtracking violation; leaving it untracked is correct, because a
|
|
138
|
+
// change to it must never by itself schedule a re-render.
|
|
139
|
+
private previous: string | undefined = undefined;
|
|
140
|
+
|
|
141
|
+
// Called by the modifier once the browser is showing `text`.
|
|
142
|
+
private remember = (rendered: string) => {
|
|
143
|
+
this.previous = rendered;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
get text(): string {
|
|
147
|
+
let raw = this.args.value;
|
|
148
|
+
if (typeof raw === 'string' && raw !== '') {
|
|
149
|
+
return raw;
|
|
150
|
+
}
|
|
151
|
+
let n = toNumber(raw);
|
|
152
|
+
if (n === undefined) {
|
|
153
|
+
return this.args.placeholder ?? '—';
|
|
154
|
+
}
|
|
155
|
+
let a = this.args;
|
|
156
|
+
return formatNumber(
|
|
157
|
+
n,
|
|
158
|
+
a.locale,
|
|
159
|
+
defined({
|
|
160
|
+
...(a.options ?? {}),
|
|
161
|
+
style: a.style,
|
|
162
|
+
currency: a.currency,
|
|
163
|
+
minimumFractionDigits: a.minimumFractionDigits,
|
|
164
|
+
maximumFractionDigits: a.maximumFractionDigits,
|
|
165
|
+
useGrouping: a.useGrouping,
|
|
166
|
+
}),
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
get rootStyle(): ReturnType<typeof htmlSafe> {
|
|
171
|
+
let a = this.args;
|
|
172
|
+
// Durations are numbers we formatted ourselves; `@cellHeight` and
|
|
173
|
+
// `@ease` are caller strings and clear the kit-wide allowlist first
|
|
174
|
+
// (pretui-css.gts) — a rejected one falls back to the stylesheet.
|
|
175
|
+
let bits = [
|
|
176
|
+
`--pretui-odo-duration: ${(a.duration ?? 0.5).toFixed(3)}s`,
|
|
177
|
+
`--pretui-odo-stagger: ${(a.stagger ?? 0.03).toFixed(3)}s`,
|
|
178
|
+
cssDeclaration('--pretui-odo-cell', a.cellHeight ?? '1em') ??
|
|
179
|
+
'--pretui-odo-cell: 1em',
|
|
180
|
+
];
|
|
181
|
+
let ease = cssDeclaration('--pretui-odo-ease', a.ease);
|
|
182
|
+
if (ease) {
|
|
183
|
+
bits.push(ease);
|
|
184
|
+
}
|
|
185
|
+
return htmlSafe(bits.join('; '));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* The rendered slots, right-anchored against what the DOM currently shows,
|
|
190
|
+
* so a value that grows a digit keeps its columns aligned. Characters that
|
|
191
|
+
* are digits on both sides roll; everything else (separators, currency
|
|
192
|
+
* marks, compact suffixes) is static — a documented edge, since a value
|
|
193
|
+
* crossing '999' → '1,000' re-shapes the string and those positions snap.
|
|
194
|
+
*/
|
|
195
|
+
get slots(): OdoSlot[] {
|
|
196
|
+
let next = this.text;
|
|
197
|
+
// Pure read: `previous` is whatever the DOM is currently showing. The
|
|
198
|
+
// recordRendered modifier advances it after this render commits.
|
|
199
|
+
let prev = this.previous ?? next;
|
|
200
|
+
let shift = next.length - prev.length;
|
|
201
|
+
let digitIndex = 0;
|
|
202
|
+
let total = 0;
|
|
203
|
+
for (let ch of next) {
|
|
204
|
+
if (DIGIT_RE.test(ch)) {
|
|
205
|
+
total++;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
let out: OdoSlot[] = [];
|
|
209
|
+
for (let i = 0; i < next.length; i++) {
|
|
210
|
+
let ch = next[i] as string;
|
|
211
|
+
let before = prev[i - shift];
|
|
212
|
+
let isDigit = DIGIT_RE.test(ch);
|
|
213
|
+
let frame: RollFrame = { cells: [ch], start: 0, rest: 0 };
|
|
214
|
+
if (isDigit && before !== undefined && DIGIT_RE.test(before) && before !== ch) {
|
|
215
|
+
frame = rollPath(Number(before), Number(ch));
|
|
216
|
+
}
|
|
217
|
+
let order =
|
|
218
|
+
this.args.staggerFrom === 'left' ? digitIndex : total - 1 - digitIndex;
|
|
219
|
+
out.push({
|
|
220
|
+
key: `${i}:${before ?? ''}>${ch}`,
|
|
221
|
+
digit: isDigit,
|
|
222
|
+
char: ch,
|
|
223
|
+
cells: frame.cells,
|
|
224
|
+
style: htmlSafe(
|
|
225
|
+
`--pretui-odo-start: ${frame.start}; --pretui-odo-rest: ${frame.rest}; --pretui-odo-i: ${Math.max(order, 0)}`,
|
|
226
|
+
),
|
|
227
|
+
});
|
|
228
|
+
if (isDigit) {
|
|
229
|
+
digitIndex++;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return out;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
get liveAttr(): string | undefined {
|
|
236
|
+
let mode = this.args.announce ?? 'off';
|
|
237
|
+
return mode === 'off' ? undefined : mode;
|
|
238
|
+
}
|
|
239
|
+
get isEmpty(): string | undefined {
|
|
240
|
+
return toNumber(this.args.value) === undefined &&
|
|
241
|
+
!(typeof this.args.value === 'string' && this.args.value !== '')
|
|
242
|
+
? 'true'
|
|
243
|
+
: undefined;
|
|
244
|
+
}
|
|
245
|
+
<template>
|
|
246
|
+
<span
|
|
247
|
+
class='pretui-odometer'
|
|
248
|
+
style={{this.rootStyle}}
|
|
249
|
+
data-empty={{this.isEmpty}}
|
|
250
|
+
data-test-pretui-odometer
|
|
251
|
+
{{recordRendered this.text this.remember}}
|
|
252
|
+
...attributes
|
|
253
|
+
>
|
|
254
|
+
{{yield to='before'}}
|
|
255
|
+
<span class='pretui-odo-track' aria-hidden='true'>
|
|
256
|
+
{{#each this.slots key='key' as |slot|}}
|
|
257
|
+
{{#if slot.digit}}
|
|
258
|
+
<span class='pretui-odo-digit'>
|
|
259
|
+
<span class='pretui-odo-strut'>{{slot.char}}</span>
|
|
260
|
+
<span class='pretui-odo-ring' style={{slot.style}}>
|
|
261
|
+
{{#each slot.cells as |cell|}}
|
|
262
|
+
<span class='pretui-odo-cell'>{{cell}}</span>
|
|
263
|
+
{{/each}}
|
|
264
|
+
</span>
|
|
265
|
+
</span>
|
|
266
|
+
{{else}}
|
|
267
|
+
<span class='pretui-odo-char'>{{slot.char}}</span>
|
|
268
|
+
{{/if}}
|
|
269
|
+
{{/each}}
|
|
270
|
+
</span>
|
|
271
|
+
<span class='pretui-odo-sr' aria-live={{this.liveAttr}}>{{this.text}}</span>
|
|
272
|
+
{{yield to='after'}}
|
|
273
|
+
</span>
|
|
274
|
+
<style scoped>
|
|
275
|
+
@layer PretComponent {
|
|
276
|
+
.pretui-odometer {
|
|
277
|
+
display: inline-flex;
|
|
278
|
+
align-items: baseline;
|
|
279
|
+
font-variant-numeric: tabular-nums;
|
|
280
|
+
line-height: var(--pretui-odo-cell, 1em);
|
|
281
|
+
}
|
|
282
|
+
.pretui-odometer[data-empty='true'] {
|
|
283
|
+
color: var(--muted-foreground);
|
|
284
|
+
}
|
|
285
|
+
.pretui-odo-track {
|
|
286
|
+
display: inline-flex;
|
|
287
|
+
align-items: baseline;
|
|
288
|
+
}
|
|
289
|
+
.pretui-odo-char {
|
|
290
|
+
white-space: pre;
|
|
291
|
+
}
|
|
292
|
+
.pretui-odo-digit {
|
|
293
|
+
position: relative;
|
|
294
|
+
display: inline-block;
|
|
295
|
+
/* clip-path, not overflow: hidden — an overflow-clipped inline-block
|
|
296
|
+
synthesises its baseline from the bottom margin edge, which drops
|
|
297
|
+
the digits below the surrounding text. Clipping keeps the strut's
|
|
298
|
+
real baseline. The small vertical bleed is intentional: display
|
|
299
|
+
fonts can paint cap/bowl antialiasing just outside their fractional
|
|
300
|
+
line box (Space Grotesk's 5 is the visible case). A zero inset
|
|
301
|
+
sheared that ink off at every Odometer size. Horizontal clipping
|
|
302
|
+
remains exact, so adjacent digit columns cannot overlap. */
|
|
303
|
+
clip-path: inset(-0.08em 0);
|
|
304
|
+
}
|
|
305
|
+
.pretui-odo-strut {
|
|
306
|
+
visibility: hidden;
|
|
307
|
+
}
|
|
308
|
+
.pretui-odo-ring {
|
|
309
|
+
position: absolute;
|
|
310
|
+
inset-inline: 0;
|
|
311
|
+
top: 0;
|
|
312
|
+
transform: translateY(
|
|
313
|
+
calc(var(--pretui-odo-rest, 0) * var(--pretui-odo-cell, 1em) * -1)
|
|
314
|
+
);
|
|
315
|
+
animation: pretui-odo-roll var(--pretui-odo-duration, 0.5s)
|
|
316
|
+
var(--pretui-odo-ease, cubic-bezier(0.16, 1, 0.3, 1)) backwards;
|
|
317
|
+
animation-delay: calc(
|
|
318
|
+
var(--pretui-odo-i, 0) * var(--pretui-odo-stagger, 0.03s)
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
@keyframes pretui-odo-roll {
|
|
322
|
+
from {
|
|
323
|
+
transform: translateY(
|
|
324
|
+
calc(var(--pretui-odo-start, 0) * var(--pretui-odo-cell, 1em) * -1)
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
.pretui-odo-cell {
|
|
329
|
+
display: block;
|
|
330
|
+
height: var(--pretui-odo-cell, 1em);
|
|
331
|
+
line-height: var(--pretui-odo-cell, 1em);
|
|
332
|
+
text-align: center;
|
|
333
|
+
}
|
|
334
|
+
.pretui-odo-sr {
|
|
335
|
+
position: absolute;
|
|
336
|
+
width: 1px;
|
|
337
|
+
height: 1px;
|
|
338
|
+
overflow: hidden;
|
|
339
|
+
clip: rect(0 0 0 0);
|
|
340
|
+
}
|
|
341
|
+
@media (prefers-reduced-motion: reduce) {
|
|
342
|
+
.pretui-odo-ring {
|
|
343
|
+
animation: none;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
</style>
|
|
348
|
+
</template>
|
|
349
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A number that rolls to its new value, digit by digit, with the carry cascading from the units end.
|
|
4
|
+
|
|
5
|
+
Use it where a value changes and the change is worth noticing — a live total, a counter settling. **Stat** composes it for the headline case.
|
|
6
|
+
|
|
7
|
+
## The contract
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
@value? — a number is formatted through Intl; a STRING is used verbatim,
|
|
11
|
+
so a pre-formatted value ('$12,480') rolls too
|
|
12
|
+
@locale?, @style?, @currency?, @minimumFractionDigits?, @maximumFractionDigits?,
|
|
13
|
+
@useGrouping?, @options? — the Intl surface, ignored when @value is a string
|
|
14
|
+
@duration? — roll duration in seconds. Default 0.5
|
|
15
|
+
@ease? — CSS timing function. Default a sprung cubic-bezier
|
|
16
|
+
@stagger? — seconds of delay added per digit so the carry cascades. Default 0.03;
|
|
17
|
+
0 rolls every digit together
|
|
18
|
+
@staggerFrom? — which end the stagger counts from: 'right' (default — the units
|
|
19
|
+
digit leads, like a carry) | 'left'
|
|
20
|
+
@cellHeight? — height of one digit cell, any CSS length. Default 1em
|
|
21
|
+
@announce? — live-region politeness for the sr-only value. Default 'off'
|
|
22
|
+
@placeholder? — when the value is missing or not finite. Default '—'
|
|
23
|
+
|
|
24
|
+
<:before>, <:after> — static content read aloud before and after the value
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**A string `@value` rolls verbatim.** That is what lets a caller who has already formatted a number — through **FormatNumber**, or from a server — get the roll without the component re-parsing and re-formatting it.
|
|
28
|
+
|
|
29
|
+
**`@staggerFrom='right'` is the default because that is how a carry works.** The units digit moves first and the tens follow it, which is what makes the roll read as counting rather than as a row of independent wheels.
|
|
30
|
+
|
|
31
|
+
**`@announce` defaults to `'off'`, and that is a deliberate accessibility decision**, not an oversight — see below.
|
|
32
|
+
|
|
33
|
+
## Prior art
|
|
34
|
+
|
|
35
|
+
The odometer/rolling-number component that appears in every dashboard kit.
|
|
36
|
+
|
|
37
|
+
Where Pretui is better: the string passthrough, the carry direction as a knob, and the live region defaulting to silent.
|
|
38
|
+
|
|
39
|
+
Where it is thinner: no per-digit colour or emphasis, no roll on mount (the first render is the resting value), and no count-up-from-zero mode.
|
|
40
|
+
|
|
41
|
+
## Accessibility
|
|
42
|
+
|
|
43
|
+
- **The rolling digits are `aria-hidden` and the value is mirrored in a live region.** Announcing a wheel of digits mid-roll would be meaningless.
|
|
44
|
+
- **That region is `'off'` by default because a value that rolls on every tick would spam a screen reader.** Use `'polite'` only where the value settles at human pace — a total that updates when someone acts, not a metric streaming from a socket.
|
|
45
|
+
- **`<:before>` and `<:after>` are read in order around the value**, so "$" and "per month" land in the right places in the announcement rather than being visual decoration.
|
|
46
|
+
- **`@placeholder` announces as a dash**, so a missing value is perceivable.
|
|
47
|
+
- **Reduced motion should land on the resting value**, which costs nothing — the digits' resting position is the value.
|
|
48
|
+
|
|
49
|
+
## Theming
|
|
50
|
+
|
|
51
|
+
`--pretui-odo-cell` (digit cell height, from `@cellHeight`), `--pretui-odo-duration` and `--pretui-odo-ease` (the roll), `--pretui-odo-stagger` and `--pretui-odo-i` (the cascade and each digit's index), `--pretui-odo-start` and `--pretui-odo-rest` (the roll's endpoints).
|
|
52
|
+
|
|
53
|
+
Everything is derived from args rather than from tokens, because a roll's timing belongs to the moment rather than to the theme — and the digits inherit their face and color from context, so an odometer inside a **Stat** looks like that headline rather than like a widget.
|
|
54
|
+
|
|
55
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
// Pretui — Odometer usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
6
|
+
import { Odometer } from './odometer';
|
|
7
|
+
import { LOCALES, NUMBER_STYLES } from '../demo-reading-format';
|
|
8
|
+
|
|
9
|
+
// ── Odometer ─────────────────────────────────────────────────────────────
|
|
10
|
+
const STAGGER_FROM = ['right', 'left'];
|
|
11
|
+
// Locales chosen to break naive formatters: RTL digits, a comma decimal
|
|
12
|
+
// separator, a lakh/crore grouping, and an East Asian compact scale.
|
|
13
|
+
|
|
14
|
+
// Law 5 names this as one of Pretui's two canonical motion mechanisms, and
|
|
15
|
+
// the law is specific: each digit is a 1ch window over a stacked 0–9
|
|
16
|
+
// column, and `offset > 5 → offset -= 10` so every digit takes the
|
|
17
|
+
// SHORTEST path around the ring — 9→0 rolls forward one, not backward
|
|
18
|
+
// nine. That shortest-path rule is the whole difference between "the
|
|
19
|
+
// number changed" and a slot machine. The example has to be interactive
|
|
20
|
+
// because a still Odometer is just a number.
|
|
21
|
+
class OdometerUsage extends Component {
|
|
22
|
+
staggerFromOptions = STAGGER_FROM;
|
|
23
|
+
styleOptions = NUMBER_STYLES;
|
|
24
|
+
localeOptions = LOCALES;
|
|
25
|
+
|
|
26
|
+
@tracked value = 128480;
|
|
27
|
+
@tracked duration: number | null = 0.5;
|
|
28
|
+
@tracked stagger: number | null = 0.03;
|
|
29
|
+
@tracked staggerFrom = 'right';
|
|
30
|
+
@tracked style = 'currency';
|
|
31
|
+
@tracked currency = 'USD';
|
|
32
|
+
@tracked cellHeight = '1em';
|
|
33
|
+
|
|
34
|
+
setDuration = (v: number | null) => (this.duration = v);
|
|
35
|
+
setStagger = (v: number | null) => (this.stagger = v);
|
|
36
|
+
setStaggerFrom = (v: string) => (this.staggerFrom = v);
|
|
37
|
+
setStyle = (v: string) => (this.style = v);
|
|
38
|
+
setCurrency = (v: string) => (this.currency = v);
|
|
39
|
+
setCellHeight = (v: string) => (this.cellHeight = v);
|
|
40
|
+
setValue = (v: number | null) => (this.value = v ?? 0);
|
|
41
|
+
|
|
42
|
+
// The carry cases that matter: +1 rolls one digit, +9 forces a cascade,
|
|
43
|
+
// and the 9→0 wrap is where the shortest-path rule proves itself.
|
|
44
|
+
bumpOne = (_e: Event) => (this.value = this.value + 1);
|
|
45
|
+
bumpNine = (_e: Event) => (this.value = this.value + 9);
|
|
46
|
+
bumpLot = (_e: Event) => (this.value = this.value + 4821);
|
|
47
|
+
dropLot = (_e: Event) => (this.value = Math.max(0, this.value - 3607));
|
|
48
|
+
wrap = (_e: Event) => (this.value = this.value + (9 - (this.value % 10)));
|
|
49
|
+
|
|
50
|
+
get styleVal() {
|
|
51
|
+
return this.style as 'decimal' | 'currency' | 'percent' | 'unit';
|
|
52
|
+
}
|
|
53
|
+
get staggerFromVal() {
|
|
54
|
+
return this.staggerFrom as 'right' | 'left';
|
|
55
|
+
}
|
|
56
|
+
get durationVal() {
|
|
57
|
+
return this.duration ?? undefined;
|
|
58
|
+
}
|
|
59
|
+
get staggerVal() {
|
|
60
|
+
return this.stagger ?? undefined;
|
|
61
|
+
}
|
|
62
|
+
get usage() {
|
|
63
|
+
let bits = [`@value={{${this.value}}}`];
|
|
64
|
+
if (this.style !== 'decimal') bits.push(`@style='${this.style}'`);
|
|
65
|
+
if (this.style === 'currency') bits.push(`@currency='${this.currency}'`);
|
|
66
|
+
if (this.duration !== 0.5) bits.push(`@duration={{${this.duration}}}`);
|
|
67
|
+
if (this.stagger !== 0.03) bits.push(`@stagger={{${this.stagger}}}`);
|
|
68
|
+
if (this.staggerFrom !== 'right')
|
|
69
|
+
bits.push(`@staggerFrom='${this.staggerFrom}'`);
|
|
70
|
+
if (this.cellHeight !== '1em')
|
|
71
|
+
bits.push(`@cellHeight='${this.cellHeight}'`);
|
|
72
|
+
return `<Odometer ${bits.join(' ')} />`;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
<template>
|
|
76
|
+
<FreestyleUsage
|
|
77
|
+
@name='Odometer'
|
|
78
|
+
@description="A numeral that rolls when it changes — Law 5's canonical mechanism for motion that encodes a state transition rather than decorating one. Each digit is a window over a stacked 0–9 ring, and every digit takes the shortest path around it, so 9→0 rolls forward one step instead of spinning back nine. Motion is a CSS transition on a custom property (no timers, no animation engine); reduced motion snaps straight to the end state. The animated digits are aria-hidden with an sr-only real value beside them, and @announce defaults to off because a figure that moves on every tick would flood a screen reader. Stat composes this."
|
|
79
|
+
@source={{this.usage}}
|
|
80
|
+
>
|
|
81
|
+
<:example>
|
|
82
|
+
<div class='odo-stack'>
|
|
83
|
+
<div class='odo-hero'>
|
|
84
|
+
<Odometer
|
|
85
|
+
@value={{this.value}}
|
|
86
|
+
@style={{this.styleVal}}
|
|
87
|
+
@currency={{this.currency}}
|
|
88
|
+
@duration={{this.durationVal}}
|
|
89
|
+
@stagger={{this.staggerVal}}
|
|
90
|
+
@staggerFrom={{this.staggerFromVal}}
|
|
91
|
+
@cellHeight={{this.cellHeight}}
|
|
92
|
+
>
|
|
93
|
+
<:after><span class='odo-suffix'>settled</span></:after>
|
|
94
|
+
</Odometer>
|
|
95
|
+
</div>
|
|
96
|
+
<p class='odo-note'>Season total for
|
|
97
|
+
<em>Alishan Cloud Farms</em>. Move it and watch the carry.</p>
|
|
98
|
+
<div class='odo-controls'>
|
|
99
|
+
<button type='button' class='odo-btn' {{on 'click' this.bumpOne}}>
|
|
100
|
+
+1
|
|
101
|
+
</button>
|
|
102
|
+
<button type='button' class='odo-btn' {{on 'click' this.bumpNine}}>
|
|
103
|
+
+9
|
|
104
|
+
</button>
|
|
105
|
+
<button type='button' class='odo-btn' {{on 'click' this.wrap}}>
|
|
106
|
+
roll to 9
|
|
107
|
+
</button>
|
|
108
|
+
<button type='button' class='odo-btn' {{on 'click' this.bumpLot}}>
|
|
109
|
+
+4,821
|
|
110
|
+
</button>
|
|
111
|
+
<button type='button' class='odo-btn' {{on 'click' this.dropLot}}>
|
|
112
|
+
−3,607
|
|
113
|
+
</button>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</:example>
|
|
117
|
+
<:api as |Args|>
|
|
118
|
+
<Args.Number
|
|
119
|
+
@name='value'
|
|
120
|
+
@value={{this.value}}
|
|
121
|
+
@description='The value. A number is formatted through Intl; a string is used verbatim, so a pre-formatted value like $12,480 rolls too.'
|
|
122
|
+
@onInput={{this.setValue}}
|
|
123
|
+
/>
|
|
124
|
+
<Args.Number
|
|
125
|
+
@name='duration'
|
|
126
|
+
@defaultValue={{0.5}}
|
|
127
|
+
@value={{this.duration}}
|
|
128
|
+
@min={{0}}
|
|
129
|
+
@max={{3}}
|
|
130
|
+
@step={{0.05}}
|
|
131
|
+
@description='Roll duration in seconds.'
|
|
132
|
+
@onInput={{this.setDuration}}
|
|
133
|
+
/>
|
|
134
|
+
<Args.Number
|
|
135
|
+
@name='stagger'
|
|
136
|
+
@defaultValue={{0.03}}
|
|
137
|
+
@value={{this.stagger}}
|
|
138
|
+
@min={{0}}
|
|
139
|
+
@max={{0.3}}
|
|
140
|
+
@step={{0.01}}
|
|
141
|
+
@description='Seconds added per digit so the carry cascades. 0 rolls every digit together — which reads as a slot machine, not a carry.'
|
|
142
|
+
@onInput={{this.setStagger}}
|
|
143
|
+
/>
|
|
144
|
+
<Args.String
|
|
145
|
+
@name='staggerFrom'
|
|
146
|
+
@defaultValue='right'
|
|
147
|
+
@value={{this.staggerFrom}}
|
|
148
|
+
@options={{this.staggerFromOptions}}
|
|
149
|
+
@description='Which end the stagger counts from. right means the units digit leads, which is the direction a real carry travels.'
|
|
150
|
+
@onInput={{this.setStaggerFrom}}
|
|
151
|
+
/>
|
|
152
|
+
<Args.String
|
|
153
|
+
@name='cellHeight'
|
|
154
|
+
@defaultValue='1em'
|
|
155
|
+
@value={{this.cellHeight}}
|
|
156
|
+
@description='Height of one digit cell, any CSS length. Sets the window the ring rolls behind.'
|
|
157
|
+
@onInput={{this.setCellHeight}}
|
|
158
|
+
/>
|
|
159
|
+
<Args.String
|
|
160
|
+
@name='style'
|
|
161
|
+
@defaultValue='decimal'
|
|
162
|
+
@value={{this.style}}
|
|
163
|
+
@options={{this.styleOptions}}
|
|
164
|
+
@description='Intl style for numeric values — decimal, currency, percent, or unit.'
|
|
165
|
+
@onInput={{this.setStyle}}
|
|
166
|
+
/>
|
|
167
|
+
<Args.String
|
|
168
|
+
@name='currency'
|
|
169
|
+
@value={{this.currency}}
|
|
170
|
+
@description='ISO 4217 code for style=currency; without it the style degrades to decimal.'
|
|
171
|
+
@onInput={{this.setCurrency}}
|
|
172
|
+
/>
|
|
173
|
+
<Args.String
|
|
174
|
+
@name='ease'
|
|
175
|
+
@description='CSS timing function for the roll. Defaults to a sprung cubic-bezier so the digit settles rather than stopping dead.'
|
|
176
|
+
/>
|
|
177
|
+
<Args.String
|
|
178
|
+
@name='announce'
|
|
179
|
+
@defaultValue='off'
|
|
180
|
+
@description='Live-region politeness for the sr-only value. off by default — a value that rolls on every tick would spam a screen reader. Use polite only where it settles at human pace.'
|
|
181
|
+
/>
|
|
182
|
+
<Args.String
|
|
183
|
+
@name='locale, minimum/maximumFractionDigits, useGrouping, options'
|
|
184
|
+
@description='The Intl surface, matching FormatNumber.'
|
|
185
|
+
/>
|
|
186
|
+
<Args.Yield
|
|
187
|
+
@name='before / after'
|
|
188
|
+
@description='Static content on either side of the digits, read aloud in order — a currency word, a unit, a label.'
|
|
189
|
+
/>
|
|
190
|
+
<Args.String
|
|
191
|
+
@name='placeholder'
|
|
192
|
+
@defaultValue='—'
|
|
193
|
+
@description='Rendered when the value is missing or non-finite.'
|
|
194
|
+
/>
|
|
195
|
+
</:api>
|
|
196
|
+
</FreestyleUsage>
|
|
197
|
+
<style scoped>
|
|
198
|
+
.odo-stack {
|
|
199
|
+
display: flex;
|
|
200
|
+
flex-direction: column;
|
|
201
|
+
gap: var(--space-4, 14px);
|
|
202
|
+
}
|
|
203
|
+
.odo-hero {
|
|
204
|
+
font-size: 33px;
|
|
205
|
+
font-weight: 700;
|
|
206
|
+
letter-spacing: -0.02em;
|
|
207
|
+
color: var(--foreground);
|
|
208
|
+
}
|
|
209
|
+
.odo-suffix {
|
|
210
|
+
margin-left: var(--space-2, 6px);
|
|
211
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
212
|
+
font-weight: 500;
|
|
213
|
+
color: var(--muted-foreground);
|
|
214
|
+
}
|
|
215
|
+
.odo-note {
|
|
216
|
+
margin: 0;
|
|
217
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
218
|
+
color: var(--muted-foreground);
|
|
219
|
+
}
|
|
220
|
+
.odo-note em {
|
|
221
|
+
font-style: normal;
|
|
222
|
+
font-weight: 600;
|
|
223
|
+
color: var(--foreground);
|
|
224
|
+
}
|
|
225
|
+
.odo-controls {
|
|
226
|
+
display: flex;
|
|
227
|
+
flex-wrap: wrap;
|
|
228
|
+
gap: var(--space-2, 6px);
|
|
229
|
+
}
|
|
230
|
+
.odo-btn {
|
|
231
|
+
padding: 5px 10px;
|
|
232
|
+
border: 0;
|
|
233
|
+
border-radius: var(--radius-control, 7px);
|
|
234
|
+
background: var(--card);
|
|
235
|
+
box-shadow: var(
|
|
236
|
+
--pretui-shadow-control,
|
|
237
|
+
0 0 0 1px var(--border)
|
|
238
|
+
);
|
|
239
|
+
font-family: var(--font-mono);
|
|
240
|
+
font-size: var(--text-ui-xs, 11px);
|
|
241
|
+
font-weight: 500;
|
|
242
|
+
color: var(--foreground);
|
|
243
|
+
cursor: pointer;
|
|
244
|
+
}
|
|
245
|
+
.odo-btn:hover {
|
|
246
|
+
background: var(--muted);
|
|
247
|
+
}
|
|
248
|
+
.odo-btn:focus-visible {
|
|
249
|
+
outline: 2px solid var(--ring);
|
|
250
|
+
outline-offset: 2px;
|
|
251
|
+
}
|
|
252
|
+
</style>
|
|
253
|
+
</template>
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export const DEMOS_ODOMETER: Record<string, unknown> = {
|
|
257
|
+
Odometer: OdometerUsage,
|
|
258
|
+
};
|