@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,104 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
The record listing an agent means by "data table": sortable headers, per-column filters, a column switcher, row selection, expandable detail rows, pinned columns, paging and density, over a plain `<table>`. It is the fourth of the kit's row-drawing things, and the other three are worth naming because the wrong one is a common reach. **Table** is the markup primitive: you write the `<tr>`s. **DataGrid** is the read-only structured grid, args in and rows out, with no toolbar and no view state. **Sheet** is the spreadsheet — editable cells, a real `role='grid'`, the boxel-grid engine. When the pane is too narrow for columns, the same rows go into **List** with **Item** rows, which share this component's selection model and load chrome.
|
|
4
|
+
|
|
5
|
+
Not built, and not stubbed: virtualization (the kit already has one windowing engine in **AssetGrid**; page instead), tree data (**Tree** is the kit's tree; `<:expanded>` covers per-row detail, and **List** takes the same `<:expanded>` and `@expandedKeys` for the narrow pane), multi-column sort, column resize and drag-reorder, and server-side filtering as a mode (hold `@filters` yourself, feed them into `@loadKey`, and let `@load` return the narrowed set).
|
|
6
|
+
|
|
7
|
+
## The contract
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
@columns — DataColumn[]: key, label, value?, sortable?, align?, mono?, width?, pin?, fixed?, hidden?, alwaysVisible?, filter?
|
|
11
|
+
@rows? | @dataSource? — the records (either spelling); OR
|
|
12
|
+
@load?, @loadKey? — an async loader, re-run when the key changes
|
|
13
|
+
@key? — (row, index) => RowKey; pass it
|
|
14
|
+
@caption?, @label? — a real <caption>, or a name for the scroll region
|
|
15
|
+
@size? — xs|s|m|l|xl; sm/md/lg/small/medium/large/middle accepted
|
|
16
|
+
@sortable?, @sort?, @defaultSort?, @onSortChange?, @comparator?
|
|
17
|
+
@selectionMode? — none|single|multi
|
|
18
|
+
@selected?, @defaultSelected?, @onSelectionChange?
|
|
19
|
+
@visibleColumns?, @defaultVisibleColumns?, @onVisibleColumnsChange?, @columnMenu?
|
|
20
|
+
@filters?, @defaultFilters?, @onFiltersChange?
|
|
21
|
+
@expandedKeys?, @defaultExpandedKeys?, @onExpandedChange?
|
|
22
|
+
@pageSize?, @page?, @defaultPage?, @onPageChange?
|
|
23
|
+
@rowLabel? — (row, index) => the row's accessible name
|
|
24
|
+
@striped?, @stickyHeader?, @minWidth?
|
|
25
|
+
@busy? | @loading? — aria-busy without replacing the rows
|
|
26
|
+
@placeholder?, @itemNoun?, @emptyTitle?, @emptyMessage?, @loadingLabel?, @skeletonRows?
|
|
27
|
+
<:cell as |text row col|> — one block for every column; switch on col.key
|
|
28
|
+
<:expanded as |row index|> — supplying it turns on the expander column
|
|
29
|
+
<:actions as |row|> — the row's Menu or IconButton
|
|
30
|
+
<:toolbar> <:empty> <:loading> <:error>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Every view axis is controlled or uncontrolled by the same rule.** Sort, selection, visibility, filters, expansion and page each take a value, a `default*` seed and an `on*Change` callback. Passing the value makes the axis controlled and the component stops writing its own copy; leaving it out lets the component keep state and still report every change. There is no separate flag that switches modes.
|
|
34
|
+
|
|
35
|
+
**Pass `@key`.** Without it the row's identity is its index, and a listing sorts. The index handed to the key function is absolute across pages, so even the index fallback does not let selection leak from page 1 to page 2, but a keyed row is the only one that survives a sort.
|
|
36
|
+
|
|
37
|
+
**The `<:cell>` block's first parameter is the printed value**, already through `@placeholder` (`null`, `undefined` and `''` print as the placeholder; booleans as Yes/No). The row is the second parameter, fully typed, so a template never narrows `unknown`. The block is invoked for every column; branch on `col.key`.
|
|
38
|
+
|
|
39
|
+
**Filtering happens before sorting and before selection.** Two `DataSource` machines are stacked: the loader owns load state, the table owns sort and selection over rows that are already filtered, so select-all means "every row you can see" and a sort never disagrees with a filter. A text filter is a case-insensitive contains match over the printed value; an options filter is a multi-select over a fixed set; `filter.match(row, value)` replaces either. A filter change resets to page 1.
|
|
40
|
+
|
|
41
|
+
**Pinning is declared, never measured.** A pinned column and every pinned column before it must declare `width`; offsets are summed from those declared widths. A pinned column that follows an unmeasurable one is left unpinned rather than laid on top of it. Ant's `fixed: true` is accepted and means `pin: 'start'`.
|
|
42
|
+
|
|
43
|
+
**The toolbar earns its space.** It renders only when there is a `<:toolbar>` block, a filterable column, a hideable column, or a current selection. A selectable table with nothing selected has no bar.
|
|
44
|
+
|
|
45
|
+
## Prior art
|
|
46
|
+
|
|
47
|
+
**shadcn's Data Table** is a recipe, not a component: TanStack Table plus the Table primitives, Pagination, DropdownMenu and Checkbox, assembled per project. **Ant `Table`** is the enterprise maximalist: `sorter`, `filters`, `rowSelection`, `expandable`, `fixed`, `scroll`, `pagination`. **MUI `DataGrid`** is a product with its own licence tiers. **Tremor `Table`** and **Mantine `Table`** are presentational. **React Aria `Table`** is the accessibility reference and takes on `role='grid'` in full.
|
|
48
|
+
|
|
49
|
+
What this component fixes, read against that corpus:
|
|
50
|
+
|
|
51
|
+
- **Sort reaches assistive technology.** shadcn, Mantine and Tremor emit no `aria-sort` at all; Ant sets it only on the active column; MUI only if the caller passes `sortDirection`. Here every sortable `<th>` carries `aria-sort`, `none` when it is not the active one, so the header row says which columns can be sorted as well as which one is. The sort control is a real `<button>`, not Ant's `tabindex='0'` `<th>` or MUI's `<span>` dressed as one, and it carries a visually hidden mirror that names the next state ("sorted ascending — activate to sort descending").
|
|
52
|
+
- **Every `<th>` has `scope='col'`.** shadcn's, Mantine's and Tremor's do not.
|
|
53
|
+
- **Row selection state is on the row.** The corpus uses `data-state`, a class, or `data-selected`; MUI's docs put `role='checkbox'` on the `<tr>`, which makes the row's cells presentational. Here the `<tr>` carries `aria-selected` and `data-selected`, and the operable control stays a real per-row checkbox with its own name.
|
|
54
|
+
- **The scroll container has a tab stop.** MUI's `TableContainer` is `overflow: auto` with no `tabindex` and no role, so a wide table cannot be scrolled from the keyboard; Tremor and shadcn ship the same. Here it is a named `role='region'` in the tab sequence.
|
|
55
|
+
- **Filtered-empty is its own state.** shadcn renders one "No results." for an empty dataset and for filters that matched nothing. Here the second is a distinct state with a Clear filters action; the first is **DataShell**'s empty state.
|
|
56
|
+
- **Filters live in the toolbar.** Ant hides each column's filter behind a funnel icon inside the `<th>`, which puts a second control in the sort cell and leaves the active filter invisible. Here every filterable column gets a labelled toolbar control, and the affected `<th>` is marked `data-filtered`.
|
|
57
|
+
- **Select-all covers the whole filtered set**, and its accessible name says so ("Select all 24 lots"). shadcn and Ant scope it to the page and add a second "select all N" affordance.
|
|
58
|
+
- **No window media queries.** Density and the rest respond to the component's own box.
|
|
59
|
+
|
|
60
|
+
Where it is thinner: **`role='grid'` is not claimed**, deliberately, so there is no arrow-key cell travel, no `aria-rowindex` and no roving tabindex — the browser's native table navigation and the document tab order are what you get, and the kit's full grid role lives in **Sheet**. No multi-column sort, no column resize, no drag-reorder, no virtualization, no tree rows. Ant's header-cell filter popovers, `rowSelection.getCheckboxProps`, `summary` rows and `expandable.expandRowByClick` have no equivalent.
|
|
61
|
+
|
|
62
|
+
## Accessibility
|
|
63
|
+
|
|
64
|
+
Governing pattern: a native `<table>` with the APG **Sorted Table** conventions layered on. `role='grid'` is not claimed, so the APG Grid keyboard contract does not apply and no cell-level focus management is attempted.
|
|
65
|
+
|
|
66
|
+
What the component does, from its rendered markup and its tests:
|
|
67
|
+
|
|
68
|
+
- **Every header cell is `<th scope='col'>`.** A sortable one carries `aria-sort` in all three states (`none`, `ascending`, `descending`); a column with `sortable: false` carries no `aria-sort` and renders no button. `@caption` renders a real `<caption>`.
|
|
69
|
+
- **The sort control is a `<button>`** whose text includes a hidden hint naming the state it will move to.
|
|
70
|
+
- **Selectable rows carry `aria-selected`** (`'false'` before anything is picked); a non-selectable table carries no `aria-selected` anywhere. Each row's checkbox or radio is named by `@rowLabel` — pass it, or the name is "Row N". Single-select radios share one `name`, so the browser enforces the single choice.
|
|
71
|
+
- **Select-all is a genuinely mixed checkbox** (`indeterminate` set as a property, so `aria-checked='mixed'` follows) and is named with the count it covers.
|
|
72
|
+
- **The expander is a `<button>`** with `aria-expanded`, an `aria-label` built from the row's name ("Expand Gyokuro"), and `aria-controls` resolving to the detail `<tr>`'s id while the row is open. A collapsed row's detail is not rendered, so it carries no `aria-controls` then rather than a dangling one.
|
|
73
|
+
- **The scroll box is `role='region'`** with an `aria-label` (from `@label`, falling back to `@caption`, then "Table") and `tabindex='0'`.
|
|
74
|
+
- **A `role='status'` live region** announces the settled count: "6 of 24 lots", "3 lots", or "No lots". It is rendered empty at first and filled only from settled load state, so a filter keystroke that re-queries announces once when the results land. Paging composes **Pagination**, whose current page carries `aria-current='page'`.
|
|
75
|
+
- **`@busy` sets `aria-busy`** and dims the scroll box without replacing the rows, so focus and scroll position survive.
|
|
76
|
+
|
|
77
|
+
The caller's failures to avoid: a `<:cell>` that puts an interactive control in a cell relies on document tab order, which is correct for a table without `role='grid'` but means a long page of buttons is a long Tab sequence; a `<:actions>` trigger needs its own `aria-label` (the usage page shows "Actions for …"); and the meaning of a row must not depend on `@striped` or the selection tint alone — the selected row also gets a rule down its inline start, so it reads in greyscale.
|
|
78
|
+
|
|
79
|
+
## Theming
|
|
80
|
+
|
|
81
|
+
Consumed directly: `--foreground`, `--muted-foreground`, `--card`, `--border`, `--primary`, `--primary-foreground`, `--ring`, `--radius`, `--radius-surface`, `--inset`, `--hover`, `--stripe`, `--line-strong`, `--input`, `--field`, `--font-mono`, `--font-sans`, `--text-ui-md`, `--text-ui-sm`, `--track-ui`, `--track-eyebrow`, `--space-2` … `--space-5`, `--pretui-shadow-hairline`, `--pretui-control-rest`, `--pretui-control-border`, `--pretui-edge-highlight`, `--pretui-selected`, `--pretui-dur-snap`, `--pretui-ease-snap`, `--pretui-z-sticky`, `--pretui-z-sticky-header`.
|
|
82
|
+
|
|
83
|
+
Its own knobs: `--pretui-dt-pick-w` (2.6em), `--pretui-dt-exp-w` (2.2em) and `--pretui-dt-act-w` (3em) are the widths of the selection, expander and actions columns. The template stamps `data-pick`, `data-detail` and `data-actions` on the root and the stylesheet resolves `--pretui-dt-lead` and `--pretui-dt-tail` from them, which is how a pin offset computed in JS can add the control columns without knowing whether they exist. `--pretui-dt-min-w` is set from `@minWidth`.
|
|
84
|
+
|
|
85
|
+
Density is one axis: `@size` sets the root `font-size` and every internal dimension is in `em`, so a theme retunes the whole table by retuning `--text-ui-md`. Header cells are the eyebrow voice (mono, uppercase, `--track-eyebrow`) on `--inset`. Coarse pointers get 44px rows and 20px checkboxes; `prefers-reduced-motion` removes the chevron transition.
|
|
86
|
+
|
|
87
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
88
|
+
|
|
89
|
+
## React ecosystem
|
|
90
|
+
|
|
91
|
+
| TanStack / Ant / shadcn | Pretui |
|
|
92
|
+
| --------------------------------------- | ----------------------------------------------------- |
|
|
93
|
+
| `columns` / `accessorKey` / `header` | `@columns` with `key` / `label` / `value` |
|
|
94
|
+
| `data` / `dataSource` | `@rows` (`@dataSource` accepted) |
|
|
95
|
+
| `sorting` / `onSortingChange` | `@sort` / `@onSortChange` |
|
|
96
|
+
| `rowSelection` / `onRowSelectionChange` | `@selected` / `@onSelectionChange` + `@selectionMode` |
|
|
97
|
+
| `columnVisibility` | `@visibleColumns` / `@onVisibleColumnsChange` |
|
|
98
|
+
| `columnFilters` | `@filters` / `@onFiltersChange` |
|
|
99
|
+
| `pagination` | `@pageSize` / `@page` / `@onPageChange` |
|
|
100
|
+
| Ant `expandable` | `<:expanded as \|row index\|>` |
|
|
101
|
+
| Ant `fixed` | `pin` on the column (`fixed: true` accepted) |
|
|
102
|
+
| Ant `size` / density | `@size` |
|
|
103
|
+
| `getRowId` | `@key` |
|
|
104
|
+
| empty / loading | `<:empty>` / `<:loading>` / `@busy` |
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
// Pretui — DataTable usage page. The lots come from examples-listing.gts.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
6
|
+
import { Button } from './button';
|
|
7
|
+
import { StatusChip } from './status-chip';
|
|
8
|
+
import { Token } from './token';
|
|
9
|
+
import { Menu } from './menu';
|
|
10
|
+
import type { MenuEntry } from '../internal/menu';
|
|
11
|
+
import { DataTable } from './data-table';
|
|
12
|
+
import { Descriptions } from './descriptions';
|
|
13
|
+
import type { DataColumn, FilterState } from './data-table';
|
|
14
|
+
import type { DescriptionsItem } from './descriptions';
|
|
15
|
+
import type { ListingSizeArg } from '../internal/reading-listing';
|
|
16
|
+
import type {
|
|
17
|
+
RowKey,
|
|
18
|
+
SelectionMode,
|
|
19
|
+
SortState,
|
|
20
|
+
} from '../data-component';
|
|
21
|
+
import { GRADES, LOTS, MODES, SIZES, lotLabel } from '../examples-listing';
|
|
22
|
+
import type { Lot } from '../examples-listing';
|
|
23
|
+
|
|
24
|
+
const GRADE_OPTIONS = GRADES.map((g) => ({ value: g, label: g }));
|
|
25
|
+
const PLACE_OPTIONS = Array.from(new Set(LOTS.map((l) => l.place))).map(
|
|
26
|
+
(p) => ({ value: p, label: p }),
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const COLUMNS: DataColumn<Lot>[] = [
|
|
30
|
+
{ key: 'id', label: 'Lot', mono: true, width: '6.5em', alwaysVisible: true },
|
|
31
|
+
{ key: 'tea', label: 'Tea', filter: { kind: 'text' } },
|
|
32
|
+
{ key: 'supplier', label: 'Supplier' },
|
|
33
|
+
{
|
|
34
|
+
key: 'place',
|
|
35
|
+
label: 'Origin',
|
|
36
|
+
filter: { kind: 'options', options: PLACE_OPTIONS },
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'grade',
|
|
40
|
+
label: 'Grade',
|
|
41
|
+
filter: { kind: 'options', options: GRADE_OPTIONS },
|
|
42
|
+
},
|
|
43
|
+
{ key: 'kg', label: 'Weight', align: 'end', mono: true, width: '6em' },
|
|
44
|
+
{ key: 'price', label: 'Price', align: 'end', mono: true, width: '7em' },
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const PINNED_COLUMNS: DataColumn<Lot>[] = COLUMNS.map((col) =>
|
|
48
|
+
col.key === 'id' ? { ...col, pin: 'start' as const } : col,
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class DataTableUsage extends Component {
|
|
53
|
+
modes = MODES;
|
|
54
|
+
sizes = SIZES;
|
|
55
|
+
lots = LOTS;
|
|
56
|
+
columns = COLUMNS;
|
|
57
|
+
|
|
58
|
+
@tracked selectionMode: SelectionMode = 'multi';
|
|
59
|
+
@tracked size: ListingSizeArg = 'm';
|
|
60
|
+
@tracked pinFirst = false;
|
|
61
|
+
@tracked striped = true;
|
|
62
|
+
@tracked pageSize = 6;
|
|
63
|
+
@tracked showDetail = true;
|
|
64
|
+
@tracked lastSort = '—';
|
|
65
|
+
@tracked lastSelection = '—';
|
|
66
|
+
@tracked lastFilters = '—';
|
|
67
|
+
|
|
68
|
+
setSelectionMode = (v: string) => (this.selectionMode = v as SelectionMode);
|
|
69
|
+
setSize = (v: string) => (this.size = v as ListingSizeArg);
|
|
70
|
+
setPinFirst = (v: boolean) => (this.pinFirst = v);
|
|
71
|
+
setStriped = (v: boolean) => (this.striped = v);
|
|
72
|
+
setPageSize = (v: number) => (this.pageSize = v);
|
|
73
|
+
setShowDetail = (v: boolean) => (this.showDetail = v);
|
|
74
|
+
|
|
75
|
+
get activeColumns(): DataColumn<Lot>[] {
|
|
76
|
+
return this.pinFirst ? PINNED_COLUMNS : COLUMNS;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
rowKey = (row: Lot): RowKey => row.id;
|
|
80
|
+
rowLabel = (row: Lot): string => lotLabel(row);
|
|
81
|
+
|
|
82
|
+
onSortChange = (sort: SortState | null) => {
|
|
83
|
+
this.lastSort = sort ? sort.key + ' ' + sort.dir : 'unsorted';
|
|
84
|
+
};
|
|
85
|
+
onSelectionChange = (keys: RowKey[]) => {
|
|
86
|
+
this.lastSelection = keys.length ? keys.join(', ') : 'none';
|
|
87
|
+
};
|
|
88
|
+
onFiltersChange = (filters: FilterState) => {
|
|
89
|
+
let parts = Object.keys(filters)
|
|
90
|
+
.map((key) => {
|
|
91
|
+
let value = filters[key];
|
|
92
|
+
let text = Array.isArray(value) ? value.join('+') : String(value);
|
|
93
|
+
return text.length ? key + '=' + text : '';
|
|
94
|
+
})
|
|
95
|
+
.filter((s) => s.length > 0);
|
|
96
|
+
this.lastFilters = parts.length ? parts.join(' · ') : 'none';
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
rowMenu = (row: Lot): MenuEntry[] => [
|
|
100
|
+
{ label: 'Open ' + row.id },
|
|
101
|
+
{ label: 'Duplicate' },
|
|
102
|
+
'---',
|
|
103
|
+
{ label: 'Archive', destructive: true },
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
isPriceCol = (key: string): boolean => key === 'price';
|
|
107
|
+
isGradeCol = (key: string): boolean => key === 'grade';
|
|
108
|
+
|
|
109
|
+
detailItems = (row: Lot): DescriptionsItem[] => [
|
|
110
|
+
{ label: 'Lot', value: row.id, mono: true },
|
|
111
|
+
{ label: 'Supplier', value: row.supplier },
|
|
112
|
+
{ label: 'Origin', value: row.place },
|
|
113
|
+
{ label: 'Grade', value: row.grade },
|
|
114
|
+
{ label: 'Weight', value: String(row.kg) + ' kg', mono: true },
|
|
115
|
+
{ label: 'Price', value: row.price, mono: true },
|
|
116
|
+
{ label: 'Cupping note', value: row.note, span: 'fill' },
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
actionsLabel = (row: Lot): string => 'Actions for ' + lotLabel(row);
|
|
120
|
+
|
|
121
|
+
<template>
|
|
122
|
+
<FreestyleUsage
|
|
123
|
+
@name='DataTable'
|
|
124
|
+
@slug='data-table'
|
|
125
|
+
@description='The record listing: sortable headers with real aria-sort, per-column filters in the toolbar, a column switcher, row selection, expandable detail rows, pinned columns and density. It is NOT the spreadsheet — that is Sheet — and it is not the markup primitive Table.'
|
|
126
|
+
>
|
|
127
|
+
<:example>
|
|
128
|
+
<div class='dt-demo'>
|
|
129
|
+
<div class='dt-readout'>
|
|
130
|
+
<span>sort
|
|
131
|
+
<strong>{{this.lastSort}}</strong></span>
|
|
132
|
+
<span>selected
|
|
133
|
+
<strong>{{this.lastSelection}}</strong></span>
|
|
134
|
+
<span>filters
|
|
135
|
+
<strong>{{this.lastFilters}}</strong></span>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
{{#if this.showDetail}}
|
|
139
|
+
<DataTable
|
|
140
|
+
@columns={{this.activeColumns}}
|
|
141
|
+
@rows={{this.lots}}
|
|
142
|
+
@key={{this.rowKey}}
|
|
143
|
+
@rowLabel={{this.rowLabel}}
|
|
144
|
+
@caption='Lots booked this season'
|
|
145
|
+
@size={{this.size}}
|
|
146
|
+
@selectionMode={{this.selectionMode}}
|
|
147
|
+
@striped={{this.striped}}
|
|
148
|
+
@pageSize={{this.pageSize}}
|
|
149
|
+
@itemNoun='lot'
|
|
150
|
+
@minWidth='46rem'
|
|
151
|
+
@onSortChange={{this.onSortChange}}
|
|
152
|
+
@onSelectionChange={{this.onSelectionChange}}
|
|
153
|
+
@onFiltersChange={{this.onFiltersChange}}
|
|
154
|
+
>
|
|
155
|
+
<:cell as |text row col|>
|
|
156
|
+
{{#if (this.isGradeCol col.key)}}
|
|
157
|
+
<StatusChip @value={{row.grade}} />
|
|
158
|
+
{{else if (this.isPriceCol col.key)}}
|
|
159
|
+
<Token @value={{row.price}} />
|
|
160
|
+
{{else}}
|
|
161
|
+
{{text}}
|
|
162
|
+
{{/if}}
|
|
163
|
+
</:cell>
|
|
164
|
+
<:expanded as |row|>
|
|
165
|
+
<Descriptions
|
|
166
|
+
@items={{this.detailItems row}}
|
|
167
|
+
@columns={{3}}
|
|
168
|
+
@bordered={{true}}
|
|
169
|
+
@size='s'
|
|
170
|
+
/>
|
|
171
|
+
</:expanded>
|
|
172
|
+
<:actions as |row|>
|
|
173
|
+
<Menu @items={{this.rowMenu row}} @label='Lot actions' @align='end'>
|
|
174
|
+
<:trigger as |isOpen toggle|>
|
|
175
|
+
<Button
|
|
176
|
+
@appearance='plain'
|
|
177
|
+
@size='s'
|
|
178
|
+
aria-label={{this.actionsLabel row}}
|
|
179
|
+
data-open={{if isOpen 'true'}}
|
|
180
|
+
{{on 'click' toggle}}
|
|
181
|
+
>⋯</Button>
|
|
182
|
+
</:trigger>
|
|
183
|
+
</Menu>
|
|
184
|
+
</:actions>
|
|
185
|
+
</DataTable>
|
|
186
|
+
{{else}}
|
|
187
|
+
<DataTable
|
|
188
|
+
@columns={{this.activeColumns}}
|
|
189
|
+
@rows={{this.lots}}
|
|
190
|
+
@key={{this.rowKey}}
|
|
191
|
+
@rowLabel={{this.rowLabel}}
|
|
192
|
+
@caption='Lots booked this season'
|
|
193
|
+
@size={{this.size}}
|
|
194
|
+
@selectionMode={{this.selectionMode}}
|
|
195
|
+
@striped={{this.striped}}
|
|
196
|
+
@pageSize={{this.pageSize}}
|
|
197
|
+
@itemNoun='lot'
|
|
198
|
+
@minWidth='46rem'
|
|
199
|
+
@onSortChange={{this.onSortChange}}
|
|
200
|
+
@onSelectionChange={{this.onSelectionChange}}
|
|
201
|
+
@onFiltersChange={{this.onFiltersChange}}
|
|
202
|
+
/>
|
|
203
|
+
{{/if}}
|
|
204
|
+
</div>
|
|
205
|
+
</:example>
|
|
206
|
+
<:api as |Args|>
|
|
207
|
+
<Args.Object
|
|
208
|
+
@name='columns'
|
|
209
|
+
@value={{this.columns}}
|
|
210
|
+
@description='The column model, in display order. Each column carries key (identity, default field read and sort key), label, and optionally value(row), sortable, align, mono, width, pin, hidden, alwaysVisible and filter. Ant spellings land too: fixed:true means pin start.'
|
|
211
|
+
/>
|
|
212
|
+
<Args.Object
|
|
213
|
+
@name='rows'
|
|
214
|
+
@value={{this.lots}}
|
|
215
|
+
@description='The records. dataSource is accepted as an alias. Supply EITHER rows or load, never both. Filters run in the browser over whatever rows are in hand, eager or loaded; to filter at the source instead, hold filters yourself and feed them into loadKey.'
|
|
216
|
+
/>
|
|
217
|
+
<Args.Action
|
|
218
|
+
@name='key'
|
|
219
|
+
@description='(row, index) => string | number. Pass it. A listing sorts, and without a key an index-keyed row loses its identity the moment it does — selection and expansion would follow the position rather than the record.'
|
|
220
|
+
/>
|
|
221
|
+
<Args.String
|
|
222
|
+
@name='size'
|
|
223
|
+
@value={{this.size}}
|
|
224
|
+
@options={{this.sizes}}
|
|
225
|
+
@defaultValue='m'
|
|
226
|
+
@description='Density. The house scale is xs|s|m|l|xl and it sets the host font-size only, so every internal dimension scales together. sm/md/lg/default/small/medium/large/middle are accepted spellings.'
|
|
227
|
+
@onInput={{this.setSize}}
|
|
228
|
+
/>
|
|
229
|
+
<Args.String
|
|
230
|
+
@name='selectionMode'
|
|
231
|
+
@value={{this.selectionMode}}
|
|
232
|
+
@options={{this.modes}}
|
|
233
|
+
@defaultValue='none'
|
|
234
|
+
@description="'none', 'single' or 'multi'. multi adds a header select-all whose mixed state is a real indeterminate checkbox, so it announces aria-checked mixed. Every selected tr carries aria-selected as well as data-selected."
|
|
235
|
+
@onInput={{this.setSelectionMode}}
|
|
236
|
+
/>
|
|
237
|
+
<Args.Bool
|
|
238
|
+
@name='pinFirst (demo knob)'
|
|
239
|
+
@value={{this.pinFirst}}
|
|
240
|
+
@defaultValue={{false}}
|
|
241
|
+
@description='Pins the Lot column with pin start. A pinned column must declare a width — offsets are summed from declared widths, never measured — and a pinned column whose predecessors are unmeasurable is left unpinned rather than laid on top of one. Narrow the artboard to see it hold.'
|
|
242
|
+
@onInput={{this.setPinFirst}}
|
|
243
|
+
/>
|
|
244
|
+
<Args.Bool
|
|
245
|
+
@name='striped'
|
|
246
|
+
@value={{this.striped}}
|
|
247
|
+
@defaultValue={{true}}
|
|
248
|
+
@description='Zebra rows. Pinned cells take the row’s computed background, so striping, hover and selection all survive the pin.'
|
|
249
|
+
@onInput={{this.setStriped}}
|
|
250
|
+
/>
|
|
251
|
+
<Args.Number
|
|
252
|
+
@name='pageSize'
|
|
253
|
+
@value={{this.pageSize}}
|
|
254
|
+
@min={{0}}
|
|
255
|
+
@max={{12}}
|
|
256
|
+
@step={{1}}
|
|
257
|
+
@defaultValue={{0}}
|
|
258
|
+
@description='Rows per page. 0 renders every row and no pager. Paging composes the kit’s Pagination; page / defaultPage / onPageChange drive it, and a filter change resets to page 1 because it is the only page guaranteed to exist in the new result set.'
|
|
259
|
+
@onInput={{this.setPageSize}}
|
|
260
|
+
/>
|
|
261
|
+
<Args.Bool
|
|
262
|
+
@name='expanded block (demo knob)'
|
|
263
|
+
@value={{this.showDetail}}
|
|
264
|
+
@defaultValue={{true}}
|
|
265
|
+
@description='Supplying the expanded named block turns on the expander column. Each toggle is a real button with aria-expanded and aria-controls pointing at the detail row.'
|
|
266
|
+
@onInput={{this.setShowDetail}}
|
|
267
|
+
/>
|
|
268
|
+
<Args.Object
|
|
269
|
+
@name='sort'
|
|
270
|
+
@description='Controlled sort ({ key, dir } or null); defaultSort seeds the uncontrolled case. Clicking a header cycles ascending → descending → unsorted, and aria-sort on the th follows. Every SORTABLE column carries aria-sort, none when it is not the active one, so the header row says which columns can be sorted as well as which one is.'
|
|
271
|
+
/>
|
|
272
|
+
<Args.Object
|
|
273
|
+
@name='filters'
|
|
274
|
+
@description='Controlled filter state keyed by column: a string for a text filter, an array of values for an options filter. defaultFilters seeds it, onFiltersChange reports it, and a column filter’s own match(row, value) replaces the built-in matcher for dates, ranges or nested paths.'
|
|
275
|
+
/>
|
|
276
|
+
<Args.Object
|
|
277
|
+
@name='visibleColumns'
|
|
278
|
+
@description='Controlled column visibility — the keys that are SHOWN. defaultVisibleColumns seeds it (every column without hidden), onVisibleColumnsChange reports it, and the Columns menu drives it. A column marked alwaysVisible never leaves.'
|
|
279
|
+
/>
|
|
280
|
+
<Args.Object
|
|
281
|
+
@name='expandedKeys'
|
|
282
|
+
@description='Controlled expansion (array of row keys). defaultExpandedKeys seeds it; onExpandedChange reports it.'
|
|
283
|
+
/>
|
|
284
|
+
<Args.String
|
|
285
|
+
@name='caption / label'
|
|
286
|
+
@description='caption renders a real table caption; label names the scroll region when there should be no visible caption. The scroll box is a named region with a tab stop, so a table wider than its pane can be scrolled from the keyboard — MUI, Tremor and shadcn all ship that box with neither.'
|
|
287
|
+
@hideControls={{true}}
|
|
288
|
+
/>
|
|
289
|
+
<Args.String
|
|
290
|
+
@name='minWidth'
|
|
291
|
+
@description='The width at which the table starts scrolling instead of squeezing. Mantine’s ScrollContainer requires this and is right to: a table with no floor silently crushes its columns to unreadable slivers.'
|
|
292
|
+
@hideControls={{true}}
|
|
293
|
+
/>
|
|
294
|
+
<Args.Yield
|
|
295
|
+
@description='Named blocks: cell (text, row, col) where text is the printed value and row is your own fully typed record — a caller should never have to narrow unknown inside a template; expanded (row) for the detail row; actions (row) for the row menu; toolbar for extra toolbar content; and loading / empty / error, which replace DataShell’s defaults. The filtered-empty state is separate from empty — it means your filters matched nothing and it offers a way out.'
|
|
296
|
+
@hideControls={{true}}
|
|
297
|
+
/>
|
|
298
|
+
</:api>
|
|
299
|
+
</FreestyleUsage>
|
|
300
|
+
<style scoped>
|
|
301
|
+
.dt-demo {
|
|
302
|
+
display: grid;
|
|
303
|
+
gap: var(--space-4, 11px);
|
|
304
|
+
min-width: 0;
|
|
305
|
+
}
|
|
306
|
+
.dt-readout {
|
|
307
|
+
display: flex;
|
|
308
|
+
flex-wrap: wrap;
|
|
309
|
+
gap: var(--space-4, 11px);
|
|
310
|
+
font-family: var(--font-mono);
|
|
311
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
312
|
+
color: var(--muted-foreground);
|
|
313
|
+
}
|
|
314
|
+
.dt-readout strong {
|
|
315
|
+
color: var(--foreground);
|
|
316
|
+
font-weight: 500;
|
|
317
|
+
}
|
|
318
|
+
</style>
|
|
319
|
+
</template>
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
export const DEMOS_DATA_TABLE: Record<string, unknown> = {
|
|
323
|
+
DataTable: DataTableUsage,
|
|
324
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Pretui — DatePicker: an Input trigger opening a single-date Calendar.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { fn } from '@ember/helper';
|
|
6
|
+
import { Input } from './input';
|
|
7
|
+
import { Popover } from './popover';
|
|
8
|
+
import { Calendar } from './calendar';
|
|
9
|
+
import { DISPLAY_FMT, fromIso } from '../internal/reading-extras';
|
|
10
|
+
|
|
11
|
+
// ── DatePicker ───────────────────────────────────────────────────────────
|
|
12
|
+
// Single-date input: readonly Pretui Input trigger + Popover around a
|
|
13
|
+
// single-mode Calendar (the popover renders its content only while open, so
|
|
14
|
+
// the calendar re-derives its view from @value on every open).
|
|
15
|
+
export interface DatePickerSignature {
|
|
16
|
+
Args: {
|
|
17
|
+
value?: string; // ISO yyyy-mm-dd (controlled)
|
|
18
|
+
defaultValue?: string; // ISO yyyy-mm-dd (uncontrolled seed)
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
onValueChange?: (iso: string) => void;
|
|
21
|
+
};
|
|
22
|
+
Element: HTMLSpanElement;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class DatePicker extends Component<DatePickerSignature> {
|
|
26
|
+
@tracked internal: string | undefined = this.args.defaultValue;
|
|
27
|
+
|
|
28
|
+
get selectedIso(): string | undefined {
|
|
29
|
+
return this.args.value ?? this.internal;
|
|
30
|
+
}
|
|
31
|
+
get display(): string {
|
|
32
|
+
let iso = this.selectedIso;
|
|
33
|
+
if (!iso) {
|
|
34
|
+
return '';
|
|
35
|
+
}
|
|
36
|
+
let d = fromIso(iso);
|
|
37
|
+
return d ? DISPLAY_FMT.format(d) : iso;
|
|
38
|
+
}
|
|
39
|
+
onTriggerKey = (open: boolean, toggle: () => void, e: Event) => {
|
|
40
|
+
let key = (e as KeyboardEvent).key;
|
|
41
|
+
if (!open && (key === 'Enter' || key === ' ' || key === 'ArrowDown')) {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
toggle();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
pick = (close: () => void, iso: string) => {
|
|
47
|
+
this.internal = iso;
|
|
48
|
+
this.args.onValueChange?.(iso);
|
|
49
|
+
close();
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<span class='pretui-datepicker' data-test-pretui-date-picker ...attributes>
|
|
54
|
+
<Popover @placement='bottom-start' @label='Choose date'>
|
|
55
|
+
<:trigger as |open toggle|>
|
|
56
|
+
<Input
|
|
57
|
+
@value={{this.display}}
|
|
58
|
+
@placeholder='Select date'
|
|
59
|
+
@disabled={{@disabled}}
|
|
60
|
+
class='pretui-datepicker-trigger'
|
|
61
|
+
readonly
|
|
62
|
+
aria-haspopup='dialog'
|
|
63
|
+
aria-expanded={{if open 'true' 'false'}}
|
|
64
|
+
{{on 'click' toggle}}
|
|
65
|
+
{{on 'keydown' (fn this.onTriggerKey open toggle)}}
|
|
66
|
+
/>
|
|
67
|
+
</:trigger>
|
|
68
|
+
<:default as |close|>
|
|
69
|
+
<Calendar
|
|
70
|
+
@value={{this.selectedIso}}
|
|
71
|
+
@onValueChange={{fn this.pick close}}
|
|
72
|
+
/>
|
|
73
|
+
</:default>
|
|
74
|
+
</Popover>
|
|
75
|
+
</span>
|
|
76
|
+
<style scoped>
|
|
77
|
+
/* above Input's layer, so these win by layer order, not file order */
|
|
78
|
+
@layer PretComponent, PretComposite;
|
|
79
|
+
@layer PretComposite {
|
|
80
|
+
.pretui-datepicker {
|
|
81
|
+
display: inline-block;
|
|
82
|
+
}
|
|
83
|
+
.pretui-datepicker-trigger {
|
|
84
|
+
min-width: 150px;
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
}
|
|
87
|
+
/* the Calendar root is an inline-size container (its width comes from
|
|
88
|
+
the parent), so the panel takes the one-month width explicitly:
|
|
89
|
+
7 × 30px cells + 6 × 2px gaps + panel padding. Sized through
|
|
90
|
+
Popover's own custom-property knobs (they inherit — no :deep()). */
|
|
91
|
+
.pretui-datepicker {
|
|
92
|
+
--pretui-popover-width: calc(222px + 2 * var(--space-4, 11px));
|
|
93
|
+
--pretui-popover-min-width: 0;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
</style>
|
|
97
|
+
</template>
|
|
98
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A date field: a Pretui **Input** as the trigger, a **Popover** holding a single-mode **Calendar**. Use it wherever a single date is collected. For a start/end pair, **DateRangePicker** — do not compose two of these, because a range needs the prospective-span preview that only range mode gives. For a time of day, **TimeInput**. For a relative timestamp you are displaying rather than collecting, **RelativeTime**.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@value? (ISO yyyy-mm-dd), @defaultValue?, @onValueChange?(iso), @disabled?
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Four args, and the shortness is the thing to notice — see the gaps below.
|
|
12
|
+
|
|
13
|
+
ISO `yyyy-mm-dd` strings at the boundary, matching **Calendar** — which means the value a form stores is the value the component speaks, with no parsing step and no timezone in play.
|
|
14
|
+
|
|
15
|
+
**It is a composition, not a new implementation.** The trigger is the kit's **Input** so it matches every other field in a form pixel for pixel; the surface is the kit's **Popover** so it inherits light-dismiss, Escape and the anchored positioning; the grid is the kit's one **Calendar**. Nothing here re-implements date logic. That is the whole design, and it is why fixing a bug in Calendar fixes it in both date controls at once.
|
|
16
|
+
|
|
17
|
+
**The trigger opens on Enter, Space or ArrowDown** — the standard combobox-style opening keys — which is a genuine addition over the underlying Popover, whose trigger is otherwise pointer-only.
|
|
18
|
+
|
|
19
|
+
## Prior art
|
|
20
|
+
|
|
21
|
+
**React Spectrum `DatePicker`** is the reference: a _segmented_ field (each of day/month/year is its own `role="spinbutton"` with `aria-valuetext`) plus a calendar popover, with `granularity`, `minValue`/`maxValue`, `isDateUnavailable` and full internationalisation through `@internationalized/date`. **Web Awesome** ships no date picker. **shadcn** composes Popover + react-day-picker + a Button trigger.
|
|
22
|
+
|
|
23
|
+
Where Pretui sits: closer to shadcn's composition than to Spectrum's segmented field, and honestly so. The improvement over the shadcn recipe is that **the trigger is a real text input** rather than a button showing formatted text — so the value is visible, selectable, and copyable — and that everything is kit components rather than an assembly of three libraries.
|
|
24
|
+
|
|
25
|
+
The improvement over Spectrum, such as it is: much less machinery. The cost is everything Spectrum's machinery buys — no locale support (the formatters are hard-coded `en-US`), no granularity, no unavailable-dates predicate, no time component.
|
|
26
|
+
|
|
27
|
+
**It also has no date bounds and no placeholder**, which **DateRangePicker** does have: that component takes min and max dates, this one takes four args and none of them constrain the value. A single date that must fall inside a window has to be validated by the form around it.
|
|
28
|
+
|
|
29
|
+
**The segmented-field question is the interesting trade.** Spectrum's approach — three spinbuttons — is more accessible for keyboard entry and much better for screen readers, because each segment announces its own value and steps independently. A single text input is simpler and lets a user paste a date. Pretui chose the input; that is defensible, and it does mean typed entry has no parsing feedback (see below).
|
|
30
|
+
|
|
31
|
+
## Accessibility
|
|
32
|
+
|
|
33
|
+
Governing pattern: APG's **datepicker dialog** — a trigger with `aria-haspopup="dialog"` and `aria-expanded`, a modal or non-modal dialog containing the grid, focus into the dialog on open and back to the trigger on close.
|
|
34
|
+
|
|
35
|
+
What is right: `aria-haspopup="dialog"` and `aria-expanded` are both present on the trigger — which is more than **Menu** or **Popover** do in this kit, and worth noting as the right pattern the others should copy. Enter/Space/ArrowDown open.
|
|
36
|
+
|
|
37
|
+
Gaps, and they stack:
|
|
38
|
+
|
|
39
|
+
- **The Popover's own gaps are inherited.** Focus is not moved into the panel on open and not restored to the trigger on close, and **Escape only works once focus is already inside the panel** — so opening the calendar with the keyboard and pressing Escape does nothing. For a date picker that is a genuine trap: the user has opened a surface they cannot dismiss without tabbing into it first.
|
|
40
|
+
- **All of Calendar's keyboard gaps apply**: Arrow keys only, no Home/End, no Page Up/Down for month, no Shift+Page for year, and no live-region announcement of month changes.
|
|
41
|
+
- **Typed input is not validated or parsed against the calendar.** The trigger is an `Input`; what happens when a user types "next tuesday" or "3/4/26" into it is unspecified by the component, and there is no `aria-invalid`, no error message, and no format hint. **WCAG 3.3.2** wants the expected format stated — use **FormField**'s `@description`.
|
|
42
|
+
- **No accessible name of its own, and no `controlId` arg to wire one.** Unlike **Input**, this component does not accept an id for a wrapper's `<label for>`, so outside a labelling wrapper the name has to arrive as an `aria-label` through `...attributes`.
|
|
43
|
+
- **The selected date is not announced on selection** — the popover closes and the input's value changes silently.
|
|
44
|
+
- **`@disabled` uses the native attribute**, removing the trigger from the tab order.
|
|
45
|
+
- Because Popover renders in place with a `position: fixed` panel, an `overflow: hidden` ancestor can still clip it in some layouts — and the Calendar needs an explicit width from its host, so a mis-sized popover is the first thing to check when the grid renders squashed.
|
|
46
|
+
|
|
47
|
+
## Theming
|
|
48
|
+
|
|
49
|
+
Trigger: **Input**'s tokens (`--field`, `--input`, `--primary` via `--ring`, `--ink-3`, `--control-h`, `--radius`, `--text-ui-md`). Surface: **Popover**'s (`--popover`, `--popover-foreground`, `--pretui-shadow-overlay`, and the `--pretui-popover-*` sizing knobs — which is where you set the calendar's width). Grid: **Calendar**'s day-state tokens.
|
|
50
|
+
|
|
51
|
+
Three components' token sets, no tokens of its own — which is the intended shape. The one thing a theme must do here that it does not have to do elsewhere is **set `--pretui-popover-width` or `--pretui-popover-min-width` wide enough for a month grid**, since Calendar's inline-size containment means it takes its width from the panel rather than pushing the panel open.
|
|
52
|
+
|
|
53
|
+
The styles sit in `@layer PretComposite`, above Input's `PretComponent` layer, so what this component sets on Input wins by layer order. A caller's unlayered CSS overrides both without a more specific selector.
|
|
54
|
+
|
|
55
|
+
## React ecosystem
|
|
56
|
+
|
|
57
|
+
Date only (DateField, `YYYY-MM-DD`, no `T`). Date+time is
|
|
58
|
+
**DateTimePicker**. Range is **DateRangePicker**. Permissive birthday
|
|
59
|
+
is **KnownDate**. Accept `onChange` / `isDisabled` / `min` / `max`.
|