@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,61 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A number field you can drag: type into it, arrow it, click steppers, or scrub horizontally from a grip.
|
|
4
|
+
|
|
5
|
+
It is the design-tool number input, and it handles the case a plain number field cannot — a **stepped scale** whose legal values are not evenly spaced.
|
|
6
|
+
|
|
7
|
+
## The contract
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
@value?, @defaultValue? — null renders empty
|
|
11
|
+
@min?, @max?
|
|
12
|
+
@step? — one arrow press, one stepper click, and @pixelsPerStep px of
|
|
13
|
+
horizontal scrub each move by this much. Default 1
|
|
14
|
+
@pixelsPerStep? — px of pointer travel that buys one step. Default 1, or 6
|
|
15
|
+
on a stepped scale
|
|
16
|
+
@steps? — A STEPPED SCALE: the ordered list of legal values
|
|
17
|
+
@precision? — decimal places kept on commit. Default 2
|
|
18
|
+
@unit?, @unitPosition? — 'px', '%', '°', 'ms'; prefix or suffix
|
|
19
|
+
@grip? — short text shown in the grip when there is no unit
|
|
20
|
+
@scrubFrom? — 'grip' scrubs from the affix only; 'field' makes the
|
|
21
|
+
whole control a scrub surface; 'none'. Default 'grip' when
|
|
22
|
+
there is a grip (@unit or @grip), otherwise 'field'
|
|
23
|
+
@label? — accessible name. REQUIRED in practice
|
|
24
|
+
@placeholder?
|
|
25
|
+
@steppers? — show the up/down stepper pair
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**`@steps` is the interesting arg.** Apertures, ISO speeds, type ramps and zoom levels are numeric without being continuous — the gaps between legal values are not uniform, so `@step` cannot describe them. Supply the ordered list and the control becomes a discrete spinbutton: scrub, arrows and steppers travel whole stops, `@min`/`@max` default to the ends of the list, a typed number snaps to the nearest legal value on commit, and the field shows the stop's label — `f/5.6` — while `aria-valuenow` still carries the number.
|
|
29
|
+
|
|
30
|
+
**`@pixelsPerStep` defaults to 1, and to 6 on a stepped scale**, where one stop per pixel is unusable. Raise it for any control that needs a slower hand.
|
|
31
|
+
|
|
32
|
+
**A scrub commits once, on release.** Move frames fire `@onInput`; `@onChange` gets the scrubbed value when the pointer lifts, so a controlled `@value` persisted only through `@onChange` still receives the drag. Escape or a `pointercancel` puts the starting value back through `@onInput` and commits nothing, and that Escape goes no further, so an enclosing dialog stays open.
|
|
33
|
+
|
|
34
|
+
**`@scrubFrom='field'` still lets you select text**, because the field only scrubs while it is not focused.
|
|
35
|
+
|
|
36
|
+
**`@label` is required in practice**: a bare spinbutton in a panel of twenty is unusable without one.
|
|
37
|
+
|
|
38
|
+
## Prior art
|
|
39
|
+
|
|
40
|
+
**figui3's** number input and steppers.
|
|
41
|
+
|
|
42
|
+
Where Pretui is better: the stepped scale. Every design-tool number input assumes a uniform step, which means an aperture or ISO control has to be a select — losing the scrub — or a slider — losing the exact value. This is both.
|
|
43
|
+
|
|
44
|
+
Where it is thinner: no expression evaluation (`120/2`), no unit conversion on typing, and no multi-value scrub across a selection.
|
|
45
|
+
|
|
46
|
+
## Accessibility
|
|
47
|
+
|
|
48
|
+
- **It is a spinbutton with a name**, and the name is the arg the contract calls required.
|
|
49
|
+
- **On a stepped scale, `aria-valuenow` carries the number while the field shows the label.** A reader hears the value; a viewer sees the stop. Both are true, and neither is a translation of the other.
|
|
50
|
+
- **Arrows, steppers and scrub all move by the same `@step`**, so the three input methods agree — a control where dragging and arrowing disagree is disorienting for anyone switching between them.
|
|
51
|
+
- **Scrub is pointer-only by nature**, which is why arrows and steppers are not optional extras: they are the equal path.
|
|
52
|
+
- **`@steppers` adds visible controls** that are useful well beyond keyboard users — a precise single increment is hard to scrub.
|
|
53
|
+
- **Typed values snap on commit**, not on keystroke, so a reader can type through intermediate states.
|
|
54
|
+
|
|
55
|
+
## Theming
|
|
56
|
+
|
|
57
|
+
The control takes the kit's shared input and control tokens; the grip is a affix rather than a separate surface.
|
|
58
|
+
|
|
59
|
+
There is deliberately no scrub-specific palette — a scrub input in a property panel should be indistinguishable from the other fields until you drag it.
|
|
60
|
+
|
|
61
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
// Pretui — ScrubInput usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import { ScrubInput } from './scrub-input';
|
|
6
|
+
import type { ScaleStops } from '../internal/design-tools';
|
|
7
|
+
import { APERTURES } from '../demo-design-tools';
|
|
8
|
+
|
|
9
|
+
// ── ScrubInput ───────────────────────────────────────────────────────────
|
|
10
|
+
const SCRUB_FROM = ['grip', 'field', 'none'];
|
|
11
|
+
|
|
12
|
+
const UNIT_POSITIONS = ['suffix', 'prefix'];
|
|
13
|
+
|
|
14
|
+
class ScrubInputUsage extends Component {
|
|
15
|
+
scrubFromOptions = SCRUB_FROM;
|
|
16
|
+
unitPositionOptions = UNIT_POSITIONS;
|
|
17
|
+
|
|
18
|
+
@tracked value: number | null = 24;
|
|
19
|
+
@tracked committed: number | null = 24;
|
|
20
|
+
@tracked step = 1;
|
|
21
|
+
@tracked pixelsPerStep = 1;
|
|
22
|
+
@tracked precision = 2;
|
|
23
|
+
@tracked unit = 'px';
|
|
24
|
+
@tracked unitPosition = 'suffix';
|
|
25
|
+
@tracked scrubFrom = 'grip';
|
|
26
|
+
@tracked steppers = true;
|
|
27
|
+
@tracked mixed = false;
|
|
28
|
+
@tracked disabled = false;
|
|
29
|
+
@tracked labelText = 'Corner radius';
|
|
30
|
+
@tracked min: number | null = 0;
|
|
31
|
+
@tracked max: number | null = 200;
|
|
32
|
+
@tracked stepped = false;
|
|
33
|
+
|
|
34
|
+
setStepped = (v: boolean) => {
|
|
35
|
+
this.stepped = v;
|
|
36
|
+
// Swap the whole configuration together, so the knob shows the control
|
|
37
|
+
// in the two shapes a caller actually uses it in rather than a hybrid
|
|
38
|
+
// neither of them would ship.
|
|
39
|
+
if (v) {
|
|
40
|
+
this.value = 2.8;
|
|
41
|
+
this.committed = 2.8;
|
|
42
|
+
this.labelText = 'Aperture';
|
|
43
|
+
this.unit = '';
|
|
44
|
+
this.min = null;
|
|
45
|
+
this.max = null;
|
|
46
|
+
this.precision = 2;
|
|
47
|
+
} else {
|
|
48
|
+
this.value = 24;
|
|
49
|
+
this.committed = 24;
|
|
50
|
+
this.labelText = 'Corner radius';
|
|
51
|
+
this.unit = 'px';
|
|
52
|
+
this.min = 0;
|
|
53
|
+
this.max = 200;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
get steps(): ScaleStops | undefined {
|
|
57
|
+
return this.stepped ? APERTURES : undefined;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
setValue = (v: number | null) => (this.value = v);
|
|
61
|
+
commit = (v: number | null) => (this.committed = v);
|
|
62
|
+
setStep = (v: number) => (this.step = v);
|
|
63
|
+
setPixels = (v: number) => (this.pixelsPerStep = v);
|
|
64
|
+
setPrecision = (v: number) => (this.precision = v);
|
|
65
|
+
setUnit = (v: string) => (this.unit = v);
|
|
66
|
+
setUnitPosition = (v: string) => (this.unitPosition = v);
|
|
67
|
+
setScrubFrom = (v: string) => (this.scrubFrom = v);
|
|
68
|
+
setSteppers = (v: boolean) => (this.steppers = v);
|
|
69
|
+
setMixed = (v: boolean) => (this.mixed = v);
|
|
70
|
+
setDisabled = (v: boolean) => (this.disabled = v);
|
|
71
|
+
setLabel = (v: string) => (this.labelText = v);
|
|
72
|
+
setMin = (v: number) => (this.min = v);
|
|
73
|
+
setMax = (v: number) => (this.max = v);
|
|
74
|
+
|
|
75
|
+
get unitPositionVal() {
|
|
76
|
+
return this.unitPosition as 'prefix' | 'suffix';
|
|
77
|
+
}
|
|
78
|
+
get scrubFromVal() {
|
|
79
|
+
return this.scrubFrom as 'grip' | 'field' | 'none';
|
|
80
|
+
}
|
|
81
|
+
get minVal() {
|
|
82
|
+
return this.min === null ? undefined : this.min;
|
|
83
|
+
}
|
|
84
|
+
get maxVal() {
|
|
85
|
+
return this.max === null ? undefined : this.max;
|
|
86
|
+
}
|
|
87
|
+
get usage() {
|
|
88
|
+
let bits = ["@label='" + this.labelText + "'", '@value={{this.value}}'];
|
|
89
|
+
if (this.stepped) {
|
|
90
|
+
bits.push('@steps={{APERTURES}}');
|
|
91
|
+
}
|
|
92
|
+
if (this.unit) {
|
|
93
|
+
bits.push("@unit='" + this.unit + "'");
|
|
94
|
+
}
|
|
95
|
+
if (this.steppers) {
|
|
96
|
+
bits.push('@steppers={{true}}');
|
|
97
|
+
}
|
|
98
|
+
if (this.scrubFrom !== 'grip') {
|
|
99
|
+
bits.push("@scrubFrom='" + this.scrubFrom + "'");
|
|
100
|
+
}
|
|
101
|
+
bits.push('@onChange={{this.commit}}');
|
|
102
|
+
return '<ScrubInput ' + bits.join(' ') + ' />';
|
|
103
|
+
}
|
|
104
|
+
<template>
|
|
105
|
+
<FreestyleUsage
|
|
106
|
+
@name='ScrubInput'
|
|
107
|
+
@description='The numeric field a design tool lives on: drag the unit grip horizontally to change the value, or type into it. Shift coarsens ×10, Alt/⌘ refines ×0.1, and the same multipliers drive the arrow keys. PageUp/PageDown coarse-step, Home/End jump to min/max, Escape abandons a half-typed value. Ported from figui3 fig-input-number + fig-steppers. Turn on “stepped” to see the same control over a DISCRETE scale — the f-stop ladder, where the legal values are an ordered non-uniform list and the gesture travels whole stops.'
|
|
108
|
+
@source={{this.usage}}
|
|
109
|
+
>
|
|
110
|
+
<:example>
|
|
111
|
+
<div class='pretui-scrub-demo'>
|
|
112
|
+
<ScrubInput
|
|
113
|
+
@label={{this.labelText}}
|
|
114
|
+
@value={{this.value}}
|
|
115
|
+
@steps={{this.steps}}
|
|
116
|
+
@min={{this.minVal}}
|
|
117
|
+
@max={{this.maxVal}}
|
|
118
|
+
@step={{this.step}}
|
|
119
|
+
@pixelsPerStep={{this.pixelsPerStep}}
|
|
120
|
+
@precision={{this.precision}}
|
|
121
|
+
@unit={{this.unit}}
|
|
122
|
+
@unitPosition={{this.unitPositionVal}}
|
|
123
|
+
@scrubFrom={{this.scrubFromVal}}
|
|
124
|
+
@steppers={{this.steppers}}
|
|
125
|
+
@mixed={{this.mixed}}
|
|
126
|
+
@disabled={{this.disabled}}
|
|
127
|
+
@onInput={{this.setValue}}
|
|
128
|
+
@onChange={{this.commit}}
|
|
129
|
+
/>
|
|
130
|
+
<p class='pretui-demo-readout' data-test-scrub-readout>
|
|
131
|
+
live = {{this.value}} · committed = {{this.committed}}
|
|
132
|
+
</p>
|
|
133
|
+
</div>
|
|
134
|
+
</:example>
|
|
135
|
+
<:api as |Args|>
|
|
136
|
+
<Args.Number
|
|
137
|
+
@name='value'
|
|
138
|
+
@value={{this.value}}
|
|
139
|
+
@description='Controlled value. Omit and seed @defaultValue for uncontrolled use (kit contract: args.value ?? internal).'
|
|
140
|
+
@onInput={{this.setValue}}
|
|
141
|
+
/>
|
|
142
|
+
<Args.Bool
|
|
143
|
+
@name='steps'
|
|
144
|
+
@defaultValue={{false}}
|
|
145
|
+
@value={{this.stepped}}
|
|
146
|
+
@description='A STEPPED SCALE — the ordered list of legal values, as numbers or {value,label} pairs. Numeric does not mean continuous: apertures, ISO speeds and type ramps have non-uniform gaps that @step cannot describe. With @steps the gesture addresses the scale by INDEX (a scrub, an arrow and a stepper each travel whole stops), @min/@max default to the ends of the list, a typed number snaps to the nearest legal value on commit, and the field shows the stop’s label while aria-valuenow keeps the number. The knob here swaps in the thirteen-stop aperture ladder.'
|
|
147
|
+
@onInput={{this.setStepped}}
|
|
148
|
+
/>
|
|
149
|
+
<Args.Number
|
|
150
|
+
@name='min'
|
|
151
|
+
@value={{this.min}}
|
|
152
|
+
@description='Lower bound. Also the target of the Home key — without a min, Home is inert rather than wrong.'
|
|
153
|
+
@onInput={{this.setMin}}
|
|
154
|
+
/>
|
|
155
|
+
<Args.Number
|
|
156
|
+
@name='max'
|
|
157
|
+
@value={{this.max}}
|
|
158
|
+
@description='Upper bound, and the End key target.'
|
|
159
|
+
@onInput={{this.setMax}}
|
|
160
|
+
/>
|
|
161
|
+
<Args.Number
|
|
162
|
+
@name='step'
|
|
163
|
+
@defaultValue={{1}}
|
|
164
|
+
@value={{this.step}}
|
|
165
|
+
@description='One arrow press, one stepper click, and one pixelsPerStep of scrub each move the value this far.'
|
|
166
|
+
@onInput={{this.setStep}}
|
|
167
|
+
/>
|
|
168
|
+
<Args.Number
|
|
169
|
+
@name='pixelsPerStep'
|
|
170
|
+
@defaultValue={{1}}
|
|
171
|
+
@value={{this.pixelsPerStep}}
|
|
172
|
+
@min={{1}}
|
|
173
|
+
@max={{20}}
|
|
174
|
+
@description='Pixels of pointer travel that buy one step. figui3 hardcodes 1; raise it for a control that needs a slower hand.'
|
|
175
|
+
@onInput={{this.setPixels}}
|
|
176
|
+
/>
|
|
177
|
+
<Args.Number
|
|
178
|
+
@name='precision'
|
|
179
|
+
@defaultValue={{2}}
|
|
180
|
+
@value={{this.precision}}
|
|
181
|
+
@min={{0}}
|
|
182
|
+
@max={{6}}
|
|
183
|
+
@description='Decimal places kept on commit. Rounding runs through roundTo (×10ⁿ integer round), not toFixed, so a long drag cannot accumulate drift.'
|
|
184
|
+
@onInput={{this.setPrecision}}
|
|
185
|
+
/>
|
|
186
|
+
<Args.String
|
|
187
|
+
@name='unit'
|
|
188
|
+
@value={{this.unit}}
|
|
189
|
+
@description="Unit rendered in the grip and folded into aria-valuetext: 'px', '%', '°', 'ms'."
|
|
190
|
+
@onInput={{this.setUnit}}
|
|
191
|
+
/>
|
|
192
|
+
<Args.String
|
|
193
|
+
@name='unitPosition'
|
|
194
|
+
@defaultValue='suffix'
|
|
195
|
+
@value={{this.unitPosition}}
|
|
196
|
+
@options={{this.unitPositionOptions}}
|
|
197
|
+
@description='Which side the grip sits on.'
|
|
198
|
+
@onInput={{this.setUnitPosition}}
|
|
199
|
+
/>
|
|
200
|
+
<Args.String
|
|
201
|
+
@name='scrubFrom'
|
|
202
|
+
@defaultValue='grip'
|
|
203
|
+
@value={{this.scrubFrom}}
|
|
204
|
+
@options={{this.scrubFromOptions}}
|
|
205
|
+
@description="'grip' scrubs from the unit affix only (discoverable, and leaves text selection alone); 'field' makes the whole control a scrub surface; 'none' is a plain spinbutton."
|
|
206
|
+
@onInput={{this.setScrubFrom}}
|
|
207
|
+
/>
|
|
208
|
+
<Args.Bool
|
|
209
|
+
@name='steppers'
|
|
210
|
+
@defaultValue={{false}}
|
|
211
|
+
@value={{this.steppers}}
|
|
212
|
+
@description='The up/down pair — figui3 fig-steppers, folded in as an arg rather than shipped as a second component.'
|
|
213
|
+
@onInput={{this.setSteppers}}
|
|
214
|
+
/>
|
|
215
|
+
<Args.Bool
|
|
216
|
+
@name='mixed'
|
|
217
|
+
@defaultValue={{false}}
|
|
218
|
+
@value={{this.mixed}}
|
|
219
|
+
@description='Multi-selection with differing values. Rendered as the WORD “Mixed” in the placeholder and in aria-valuetext — never colour alone.'
|
|
220
|
+
@onInput={{this.setMixed}}
|
|
221
|
+
/>
|
|
222
|
+
<Args.Bool
|
|
223
|
+
@name='disabled'
|
|
224
|
+
@defaultValue={{false}}
|
|
225
|
+
@value={{this.disabled}}
|
|
226
|
+
@description='readonly + aria-disabled rather than the disabled attribute, so the row stays keyboard-reachable and still announces its value.'
|
|
227
|
+
@onInput={{this.setDisabled}}
|
|
228
|
+
/>
|
|
229
|
+
<Args.String
|
|
230
|
+
@name='label'
|
|
231
|
+
@value={{this.labelText}}
|
|
232
|
+
@description='Accessible name. A panel of twenty unnamed spinbuttons is unusable, so this is required in practice.'
|
|
233
|
+
@onInput={{this.setLabel}}
|
|
234
|
+
/>
|
|
235
|
+
<Args.String
|
|
236
|
+
@name='grip'
|
|
237
|
+
@description='Grip text when there is no unit — the scrub affordance needs something to grab.'
|
|
238
|
+
/>
|
|
239
|
+
<Args.String
|
|
240
|
+
@name='controlId'
|
|
241
|
+
@description='id placed on the inner input, so a PropertyRow label can point at it.'
|
|
242
|
+
/>
|
|
243
|
+
<Args.String
|
|
244
|
+
@name='describedBy'
|
|
245
|
+
@description='id of a description element (PropertyRow yields one).'
|
|
246
|
+
/>
|
|
247
|
+
<Args.Action
|
|
248
|
+
@name='onInput'
|
|
249
|
+
@description='Continuous — every scrub frame and every keystroke.'
|
|
250
|
+
/>
|
|
251
|
+
<Args.Action
|
|
252
|
+
@name='onChange'
|
|
253
|
+
@description='Committed — blur, Enter, scrub release, stepper click. This is the one to persist.'
|
|
254
|
+
/>
|
|
255
|
+
<Args.Yield @description='The grip block replaces the grip content with an axis glyph or icon.' />
|
|
256
|
+
</:api>
|
|
257
|
+
</FreestyleUsage>
|
|
258
|
+
<style scoped>
|
|
259
|
+
.pretui-scrub-demo {
|
|
260
|
+
max-width: 220px;
|
|
261
|
+
}
|
|
262
|
+
.pretui-demo-readout {
|
|
263
|
+
margin: 8px 0 0;
|
|
264
|
+
font-family: var(--font-mono);
|
|
265
|
+
font-size: var(--text-ui-xs, 11px);
|
|
266
|
+
color: var(--muted-foreground);
|
|
267
|
+
font-variant-numeric: tabular-nums;
|
|
268
|
+
}
|
|
269
|
+
</style>
|
|
270
|
+
</template>
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export const DEMOS_SCRUB_INPUT: Record<string, unknown> = {
|
|
274
|
+
ScrubInput: ScrubInputUsage,
|
|
275
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// Pretui — SearchInput: a search field with a clear button.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { htmlSafe } from '@ember/template';
|
|
6
|
+
import { BoxelInput } from '@cardstack/boxel-ui/components';
|
|
7
|
+
import { emit, firstDefined } from '../pretui-primitives';
|
|
8
|
+
import type { ControlAliasArgs } from '../pretui-primitives';
|
|
9
|
+
|
|
10
|
+
// BoxelInput @type='search' — boxel's search dress (leading magnifier
|
|
11
|
+
// icon) re-pointed at the Pretui field tokens via its --boxel-input-
|
|
12
|
+
// search-* knobs — plus the clear button boxel-ui doesn't ship: an overlay
|
|
13
|
+
// ✕ appears once the field holds text and resets it through @onInput('').
|
|
14
|
+
// Wave-0 adaptation (documented): no debounce knob — realm code takes no
|
|
15
|
+
// timers; debounce belongs to the consumer's data layer.
|
|
16
|
+
|
|
17
|
+
const SEARCH_METRICS = htmlSafe(
|
|
18
|
+
'font: inherit; letter-spacing: inherit; line-height: 18px; padding-block: 4px; border-radius: var(--radius); padding-right: 28px;',
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
export interface SearchInputSignature {
|
|
22
|
+
Args: ControlAliasArgs & {
|
|
23
|
+
value?: string;
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
controlId?: string;
|
|
27
|
+
/** show the clear button once the field holds text — true by default */
|
|
28
|
+
clearable?: boolean;
|
|
29
|
+
onInput?: (value: string) => void;
|
|
30
|
+
};
|
|
31
|
+
Element: HTMLDivElement;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export class SearchInput extends Component<SearchInputSignature> {
|
|
35
|
+
@tracked internal = this.args.value ?? '';
|
|
36
|
+
|
|
37
|
+
get current() {
|
|
38
|
+
return this.args.value ?? this.internal;
|
|
39
|
+
}
|
|
40
|
+
get showClear() {
|
|
41
|
+
return (
|
|
42
|
+
(this.args.clearable ?? true) && this.current !== '' && !this.disabled
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
get disabled() {
|
|
46
|
+
return firstDefined(this.args.disabled, this.args.isDisabled);
|
|
47
|
+
}
|
|
48
|
+
private notify(value: string) {
|
|
49
|
+
emit(
|
|
50
|
+
[this.args.onInput, this.args.onChange, this.args.onValueChange],
|
|
51
|
+
value,
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
handleInput = (value: string) => {
|
|
55
|
+
this.internal = value;
|
|
56
|
+
this.notify(value);
|
|
57
|
+
};
|
|
58
|
+
clear = (_e: Event) => {
|
|
59
|
+
this.internal = '';
|
|
60
|
+
this.notify('');
|
|
61
|
+
};
|
|
62
|
+
<template>
|
|
63
|
+
<div
|
|
64
|
+
class='pretui-boxelwrap'
|
|
65
|
+
data-filled={{if this.showClear 'true'}}
|
|
66
|
+
data-test-pretui-search-input
|
|
67
|
+
...attributes
|
|
68
|
+
>
|
|
69
|
+
<BoxelInput
|
|
70
|
+
@type='search'
|
|
71
|
+
@value={{this.current}}
|
|
72
|
+
@placeholder={{@placeholder}}
|
|
73
|
+
@disabled={{this.disabled}}
|
|
74
|
+
@onInput={{this.handleInput}}
|
|
75
|
+
id={{@controlId}}
|
|
76
|
+
style={{SEARCH_METRICS}}
|
|
77
|
+
/>
|
|
78
|
+
{{#if this.showClear}}
|
|
79
|
+
<button
|
|
80
|
+
type='button'
|
|
81
|
+
class='pretui-searchclear'
|
|
82
|
+
aria-label='Clear search'
|
|
83
|
+
{{on 'click' this.clear}}
|
|
84
|
+
>
|
|
85
|
+
<svg width='12' height='12' viewBox='0 0 12 12' aria-hidden='true'><path
|
|
86
|
+
d='M3 3l6 6M9 3l-6 6'
|
|
87
|
+
fill='none'
|
|
88
|
+
stroke='currentColor'
|
|
89
|
+
stroke-width='1.5'
|
|
90
|
+
stroke-linecap='round'
|
|
91
|
+
/></svg>
|
|
92
|
+
</button>
|
|
93
|
+
{{/if}}
|
|
94
|
+
</div>
|
|
95
|
+
<style scoped>
|
|
96
|
+
@layer PretComponent {
|
|
97
|
+
/* EmailInput channel + boxel's search-specific knobs: the dark host
|
|
98
|
+
pill re-dresses as the Pretui field face, magnifier in quiet ink. */
|
|
99
|
+
.pretui-boxelwrap {
|
|
100
|
+
position: relative;
|
|
101
|
+
width: 100%;
|
|
102
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
103
|
+
letter-spacing: var(--track-ui, 0.01em);
|
|
104
|
+
--background: var(--field, var(--boxel-light));
|
|
105
|
+
--border: var(--input);
|
|
106
|
+
--ring: var(--primary);
|
|
107
|
+
--muted-foreground: var(--ink-3, var(--boxel-400));
|
|
108
|
+
--boxel-input-search-background-color: var(--field, var(--boxel-light));
|
|
109
|
+
--boxel-input-search-color: var(--foreground);
|
|
110
|
+
--boxel-input-search-icon-color: var(--ink-3, var(--boxel-400));
|
|
111
|
+
--boxel-icon-sm: 14px;
|
|
112
|
+
--boxel-sp-xxl: 30px;
|
|
113
|
+
--boxel-form-control-height: var(--control-h, 28px);
|
|
114
|
+
--boxel-input-height: var(--control-h, 28px);
|
|
115
|
+
--boxel-form-control-border-radius: var(--radius);
|
|
116
|
+
--boxel-sp-xs: 5px;
|
|
117
|
+
--boxel-sp-sm: 9px;
|
|
118
|
+
}
|
|
119
|
+
.pretui-searchclear {
|
|
120
|
+
position: absolute;
|
|
121
|
+
top: calc((var(--control-h, 28px) - 20px) / 2);
|
|
122
|
+
right: 5px;
|
|
123
|
+
display: grid;
|
|
124
|
+
place-items: center;
|
|
125
|
+
width: 20px;
|
|
126
|
+
height: 20px;
|
|
127
|
+
border: 0;
|
|
128
|
+
padding: 0;
|
|
129
|
+
border-radius: 6px;
|
|
130
|
+
background: none;
|
|
131
|
+
color: var(--muted-foreground);
|
|
132
|
+
cursor: pointer;
|
|
133
|
+
}
|
|
134
|
+
.pretui-searchclear:hover {
|
|
135
|
+
background: var(--hover, var(--boxel-100));
|
|
136
|
+
color: var(--foreground);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
</style>
|
|
140
|
+
</template>
|
|
141
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A text field for filtering or querying, with a clear button that appears once it holds text. Use it above a **DataGrid**, a **FilterList**, or any list a user narrows by typing. If the field selects a _value_ from a list rather than filtering one, use **Combobox** or **Lookup**. If it filters by category rather than by text, **FilterChips**.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@value?, @placeholder?, @disabled?, @controlId?
|
|
9
|
+
@clearable? (default true)
|
|
10
|
+
@onInput?(value: string)
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**The clear button appears only when there is text and the field is enabled** (`showClear` is `clearable && current !== '' && !disabled`), so an empty search field has no dead affordance.
|
|
14
|
+
|
|
15
|
+
**The internal value tracks even when controlled.** `@tracked internal = @value ?? ''`, and `handleInput` writes `internal` _and_ calls `@onInput` unconditionally — unlike the rest of the kit, which only writes internal state when the component is uncontrolled. That means a controlled SearchInput briefly holds two copies of the value. In practice it works because the field re-renders from `@value`, but it is a deviation from the kit-wide hybrid idiom and worth knowing if you see a stale clear button.
|
|
16
|
+
|
|
17
|
+
`clear` sets the internal value to `''` **and** calls `@onInput('')`, so a controlled parent is told about the clear rather than having to notice it.
|
|
18
|
+
|
|
19
|
+
There is no debounce. `@onInput` fires per keystroke, and throttling is the caller's job — which is right for a component that cannot know whether the filter is a synchronous array filter or a network round trip.
|
|
20
|
+
|
|
21
|
+
## Prior art
|
|
22
|
+
|
|
23
|
+
**React Aria `useSearchField`** is the reference: `type` defaults to `'search'`, **Escape clears the field and fires `onClear`**, and the clear button gets a localized `aria-label` of "Clear search" and is explicitly not a submit button. **Web Awesome** has no search field — `wa-input type="search"` with `with-clear`. **shadcn** has none.
|
|
24
|
+
|
|
25
|
+
Where Pretui matches the field: the conditional clear button, and `@onInput` receiving the string.
|
|
26
|
+
|
|
27
|
+
Where it is behind React Aria, and the first one is the notable gap:
|
|
28
|
+
|
|
29
|
+
- **No Escape-to-clear.** This is the search field's one keyboard convention, it costs a `keydown` handler, and every serious implementation has it. Its absence means a keyboard user must Tab to the clear button or select-all-delete.
|
|
30
|
+
- **No `onClear` distinct from `onInput('')`.** A caller cannot tell "the user cleared" from "the user deleted the last character", which matters if clearing should also reset filters or close a results panel.
|
|
31
|
+
- **No search icon.** Every reference implementation has a leading magnifier; here the field is visually indistinguishable from a plain **Input** until you type. That is the clearest visual gap.
|
|
32
|
+
- **No result-count announcement hook** (see below).
|
|
33
|
+
|
|
34
|
+
## Accessibility
|
|
35
|
+
|
|
36
|
+
No APG pattern. The convention is `<input type="search">` inside a `role="search"` landmark (or a `<form role="search">`), with a labelled clear button and a live region for result counts.
|
|
37
|
+
|
|
38
|
+
Gaps, in order:
|
|
39
|
+
|
|
40
|
+
- **Result counts are not announced, and nothing here provides a hook.** This is the most important accessibility fact about any search field: a sighted user sees the list shrink, a screen-reader user gets silence. The fix is a `role="status"` region containing "24 results" — and **it must exist in the DOM before the count changes**, which is the usual live-region requirement. That region belongs to the caller, and this component neither provides nor prompts for one.
|
|
41
|
+
- **No Escape-to-clear** (above) is an accessibility gap as much as a usability one — it is the expected keyboard affordance.
|
|
42
|
+
- **The clear button's accessible name and tab position need checking.** It must be labelled ("Clear search"), must be `type="button"` so it never submits an enclosing form, and — arguably — should be reachable, unlike a password reveal toggle, since clearing is a real action.
|
|
43
|
+
- **Clearing announces nothing.** After pressing clear, focus should generally return to the field, and the empty state should be discoverable. Verify where focus lands.
|
|
44
|
+
- **No `role="search"` landmark.** The component does not wrap itself in one and there is no arg for it, so a page's search is not findable by landmark navigation unless the caller adds it.
|
|
45
|
+
- **No accessible name of its own.** Outside **Field**/**FormField** and without an explicit `aria-label`, the field is unnamed — and search fields are the most likely control in any kit to be shipped with only a placeholder, which is not a label.
|
|
46
|
+
- **`@disabled` uses the native attribute**, removing the field from the tab order — and also hides the clear button, which is correct.
|
|
47
|
+
|
|
48
|
+
## Theming
|
|
49
|
+
|
|
50
|
+
Consumed: `--field`, `--input`, `--primary` (focus ring via `--ring`), `--ink-3` (placeholder), `--control-h`, `--radius`, `--text-ui-md`, `--text-ui-sm`, `--text-ui-xs`, `--track-ui`, plus **IconButton**'s tokens for the clear affordance.
|
|
51
|
+
|
|
52
|
+
Forwarded into boxel-ui through the `--boxel-*` channel, matching **Input**'s metrics exactly.
|
|
53
|
+
|
|
54
|
+
`data-filled` is reflected on the wrapper when the clear button is showing, so a stylesheet can dress the filled state — a stronger hairline, a changed placeholder treatment — which is the only hook available for signaling "this search is active" without adding markup. Worth using, since the clear button alone is a small signal at 28px.
|
|
55
|
+
|
|
56
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Pretui — SearchInput usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import { SearchInput } from './search-input';
|
|
6
|
+
|
|
7
|
+
// ── SearchInput — typed-input split, fresh page ──────────────────────────
|
|
8
|
+
// Type-specific knob: clearable (the ✕ button). Wave-0 adaptation on
|
|
9
|
+
// record: no debounce knob — realm code takes no timers; debounce belongs
|
|
10
|
+
// to the consumer's data layer.
|
|
11
|
+
class SearchInputUsage extends Component {
|
|
12
|
+
@tracked value = '';
|
|
13
|
+
@tracked placeholder = 'Search components…';
|
|
14
|
+
@tracked clearable = true;
|
|
15
|
+
@tracked disabled = false;
|
|
16
|
+
setValue = (v: string) => (this.value = v);
|
|
17
|
+
setPlaceholder = (v: string) => (this.placeholder = v);
|
|
18
|
+
setClearable = (v: boolean) => (this.clearable = v);
|
|
19
|
+
setDisabled = (v: boolean) => (this.disabled = v);
|
|
20
|
+
get usage() {
|
|
21
|
+
let bits = [`@value='${this.value}'`];
|
|
22
|
+
if (this.placeholder) bits.push(`@placeholder='${this.placeholder}'`);
|
|
23
|
+
if (!this.clearable) bits.push('@clearable={{false}}');
|
|
24
|
+
bits.push('@onInput={{this.setValue}}');
|
|
25
|
+
return `<SearchInput ${bits.join(' ')} />`;
|
|
26
|
+
}
|
|
27
|
+
<template>
|
|
28
|
+
<FreestyleUsage
|
|
29
|
+
@name='SearchInput'
|
|
30
|
+
@description="Search field riding boxel-ui BoxelInput (@type=search) — the leading magnifier re-dressed in Pretui field tokens — plus the clear button boxel-ui doesn't ship: a ✕ appears once the field holds text and resets it through @onInput('')."
|
|
31
|
+
@source={{this.usage}}
|
|
32
|
+
>
|
|
33
|
+
<:example>
|
|
34
|
+
<SearchInput
|
|
35
|
+
@value={{this.value}}
|
|
36
|
+
@placeholder={{this.placeholder}}
|
|
37
|
+
@clearable={{this.clearable}}
|
|
38
|
+
@disabled={{this.disabled}}
|
|
39
|
+
@onInput={{this.setValue}}
|
|
40
|
+
/>
|
|
41
|
+
<p class='pretui-demo-readout' data-test-search-readout>
|
|
42
|
+
value = “{{this.value}}”
|
|
43
|
+
</p>
|
|
44
|
+
</:example>
|
|
45
|
+
<:api as |Args|>
|
|
46
|
+
<Args.Bool
|
|
47
|
+
@name='clearable'
|
|
48
|
+
@defaultValue={{true}}
|
|
49
|
+
@value={{this.clearable}}
|
|
50
|
+
@description='Show the ✕ clear button while the field holds text.'
|
|
51
|
+
@onInput={{this.setClearable}}
|
|
52
|
+
/>
|
|
53
|
+
<Args.String
|
|
54
|
+
@name='value'
|
|
55
|
+
@value={{this.value}}
|
|
56
|
+
@onInput={{this.setValue}}
|
|
57
|
+
/>
|
|
58
|
+
<Args.String
|
|
59
|
+
@name='placeholder'
|
|
60
|
+
@value={{this.placeholder}}
|
|
61
|
+
@onInput={{this.setPlaceholder}}
|
|
62
|
+
/>
|
|
63
|
+
<Args.Bool
|
|
64
|
+
@name='disabled'
|
|
65
|
+
@value={{this.disabled}}
|
|
66
|
+
@onInput={{this.setDisabled}}
|
|
67
|
+
/>
|
|
68
|
+
<Args.String
|
|
69
|
+
@name='controlId'
|
|
70
|
+
@description="The input's id for label wiring — supplied by a wrapping Field's yielded controlId."
|
|
71
|
+
/>
|
|
72
|
+
<Args.Action
|
|
73
|
+
@name='onInput'
|
|
74
|
+
@description="Receives the changed value as a string; the clear button sends ''."
|
|
75
|
+
/>
|
|
76
|
+
</:api>
|
|
77
|
+
</FreestyleUsage>
|
|
78
|
+
<style scoped>
|
|
79
|
+
.pretui-demo-readout {
|
|
80
|
+
margin: 8px 0 0;
|
|
81
|
+
font-family: var(--font-mono);
|
|
82
|
+
font-size: var(--text-ui-xs, 11px);
|
|
83
|
+
color: var(--muted-foreground);
|
|
84
|
+
}
|
|
85
|
+
</style>
|
|
86
|
+
</template>
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const DEMOS_SEARCH_INPUT: Record<string, unknown> = {
|
|
90
|
+
SearchInput: SearchInputUsage,
|
|
91
|
+
};
|