@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,73 @@
|
|
|
1
|
+
// Pretui — Badge usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import { Badge } from './badge';
|
|
6
|
+
import { Avatar } from './avatar';
|
|
7
|
+
import { IconButton } from './icon-button';
|
|
8
|
+
|
|
9
|
+
const PLACEMENTS = ['top-end', 'top-start', 'bottom-end', 'bottom-start'];
|
|
10
|
+
|
|
11
|
+
export class BadgeUsage extends Component {
|
|
12
|
+
placements = PLACEMENTS;
|
|
13
|
+
@tracked count = 3;
|
|
14
|
+
@tracked max = 99;
|
|
15
|
+
@tracked dot = false;
|
|
16
|
+
@tracked showZero = false;
|
|
17
|
+
@tracked placement = 'top-end';
|
|
18
|
+
setCount = (v: number | null) => (this.count = v ?? 0);
|
|
19
|
+
setMax = (v: number | null) => (this.max = v ?? 99);
|
|
20
|
+
setDot = (v: boolean) => (this.dot = v);
|
|
21
|
+
setShowZero = (v: boolean) => (this.showZero = v);
|
|
22
|
+
setPlacement = (v: string) => (this.placement = v);
|
|
23
|
+
get usage() {
|
|
24
|
+
let bits = [`@count={{${this.count}}}`, "@label='unread'"];
|
|
25
|
+
if (this.max !== 99) bits.push(`@max={{${this.max}}}`);
|
|
26
|
+
if (this.dot) bits.push('@dot={{true}}');
|
|
27
|
+
if (this.showZero) bits.push('@showZero={{true}}');
|
|
28
|
+
if (this.placement !== 'top-end') bits.push(`@placement='${this.placement}'`);
|
|
29
|
+
return `<Badge ${bits.join(' ')}>\n <IconButton @label='Messages'>…</IconButton>\n</Badge>`;
|
|
30
|
+
}
|
|
31
|
+
<template>
|
|
32
|
+
<FreestyleUsage
|
|
33
|
+
@name='Badge'
|
|
34
|
+
@description='A count or status mark on the corner of another control: the unread 3 on an inbox button, 99+ on an avatar. The mark is hidden from assistive technology and the meaning is spoken after the child, so the child keeps its own name. The inline pill shadcn calls Badge is Chip; a dot with no number is Indicator.'
|
|
35
|
+
@source={{this.usage}}
|
|
36
|
+
>
|
|
37
|
+
<:example>
|
|
38
|
+
<div class='bd-demo'>
|
|
39
|
+
<Badge @count={{this.count}} @max={{this.max}} @dot={{this.dot}} @showZero={{this.showZero}} @placement={{this.placement}} @label='unread'>
|
|
40
|
+
<IconButton @label='Messages'>✉</IconButton>
|
|
41
|
+
</Badge>
|
|
42
|
+
<Badge @count={{128}} @circular={{true}} @label='notifications'>
|
|
43
|
+
<Avatar @name='Ana Ruiz' />
|
|
44
|
+
</Badge>
|
|
45
|
+
</div>
|
|
46
|
+
</:example>
|
|
47
|
+
<:api as |Args|>
|
|
48
|
+
<Args.Number @name='count' @value={{this.count}} @onInput={{this.setCount}} />
|
|
49
|
+
<Args.Number @name='max' @value={{this.max}} @defaultValue={{99}} @description='Above this it reads max+.' @onInput={{this.setMax}} />
|
|
50
|
+
<Args.Bool @name='dot' @value={{this.dot}} @defaultValue={{false}} @description='A dot instead of the number.' @onInput={{this.setDot}} />
|
|
51
|
+
<Args.Bool @name='showZero' @value={{this.showZero}} @defaultValue={{false}} @onInput={{this.setShowZero}} />
|
|
52
|
+
<Args.Bool @name='invisible' @defaultValue={{false}} @description='Hide without unmounting the child.' />
|
|
53
|
+
<Args.String @name='tone' @defaultValue='danger' />
|
|
54
|
+
<Args.String @name='placement' @value={{this.placement}} @options={{this.placements}} @defaultValue='top-end' @onInput={{this.setPlacement}} />
|
|
55
|
+
<Args.Bool @name='circular' @defaultValue={{false}} @description='Pull the mark in for a round child.' />
|
|
56
|
+
<Args.String @name='label' @value='unread' @description='What the count means, read after it.' />
|
|
57
|
+
<Args.Yield @name='default' @description='The control the badge sits on.' />
|
|
58
|
+
</:api>
|
|
59
|
+
</FreestyleUsage>
|
|
60
|
+
<style scoped>
|
|
61
|
+
.bd-demo {
|
|
62
|
+
display: flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
gap: var(--space-6, 1.25rem);
|
|
65
|
+
padding: var(--space-4, 0.6875rem);
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
68
|
+
</template>
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const DEMOS_BADGE: Record<string, unknown> = {
|
|
72
|
+
Badge: BadgeUsage,
|
|
73
|
+
};
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// Pretui — BarList: a ranked list of labelled horizontal bars.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { htmlSafe } from '@ember/template';
|
|
4
|
+
import { DataShell, DataSource } from '../data-component';
|
|
5
|
+
import type { DataArgs } from '../data-component';
|
|
6
|
+
import { cssStyleFrom, cssDeclaration } from '../pretui-css';
|
|
7
|
+
import { NUMBERS } from '../internal/structure-chart';
|
|
8
|
+
|
|
9
|
+
// ── BarList ──────────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
export interface BarListItem {
|
|
12
|
+
/** Row label. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Magnitude. Negative values are clamped to zero for the bar length. */
|
|
15
|
+
value: number;
|
|
16
|
+
/** Optional href — when present the label becomes a link. */
|
|
17
|
+
href?: string;
|
|
18
|
+
/** Optional hue override for this row's bar. Validated through `cssValue`. */
|
|
19
|
+
hue?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface BarListArgs extends DataArgs<BarListItem> {
|
|
23
|
+
/** Sort descending by value before rendering. Default true. */
|
|
24
|
+
ranked?: boolean;
|
|
25
|
+
/** Cap the number of rows rendered. The remainder is summarised. */
|
|
26
|
+
limit?: number;
|
|
27
|
+
/** Scale the bars against this instead of the largest value — use it to
|
|
28
|
+
* keep two BarLists comparable side by side. */
|
|
29
|
+
max?: number;
|
|
30
|
+
/** Formats the printed value. Defaults to a locale integer. */
|
|
31
|
+
format?: (value: number) => string;
|
|
32
|
+
/** Accessible name for the list. */
|
|
33
|
+
label?: string;
|
|
34
|
+
/** Row hue. Every bar shares it; per-row `hue` wins. */
|
|
35
|
+
hue?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface BarListSignature {
|
|
39
|
+
Args: BarListArgs;
|
|
40
|
+
Blocks: {
|
|
41
|
+
loading: [];
|
|
42
|
+
empty: [];
|
|
43
|
+
error: [];
|
|
44
|
+
};
|
|
45
|
+
Element: HTMLDivElement;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
interface BarRow {
|
|
49
|
+
name: string;
|
|
50
|
+
value: number;
|
|
51
|
+
display: string;
|
|
52
|
+
href: string | undefined;
|
|
53
|
+
style: ReturnType<typeof htmlSafe> | undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The ranked distribution: label, a proportional bar, and the value AS TEXT
|
|
58
|
+
* on every row. Independently the most-copied dashboard component in the
|
|
59
|
+
* audit, and a genuine gap in the kit — `Meter` expresses one level, `Chart`
|
|
60
|
+
* plots a series, and neither answers "which five things are biggest".
|
|
61
|
+
*
|
|
62
|
+
* It needs no plotting engine, so it costs a caller nothing at the package
|
|
63
|
+
* boundary (Law 9): a card that shows a top-five list never loads Plot.
|
|
64
|
+
*
|
|
65
|
+
* Better than the inspiration: upstream bar lists render `<div>` rows with
|
|
66
|
+
* the value in a floated span. Here it is an ordered list — the ranking is
|
|
67
|
+
* in the markup, not implied by visual order — every row carries
|
|
68
|
+
* `role=meter`-equivalent text, the bar is `aria-hidden` because the number
|
|
69
|
+
* beside it already says the same thing, and the bar length is a clamped
|
|
70
|
+
* NUMBER so no caller string reaches the style attribute unvalidated.
|
|
71
|
+
*/
|
|
72
|
+
export class BarList extends Component<BarListSignature> {
|
|
73
|
+
data = new DataSource<BarListItem>(() => this.args);
|
|
74
|
+
|
|
75
|
+
get ranked(): boolean {
|
|
76
|
+
return this.args.ranked ?? true;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
get format(): (value: number) => string {
|
|
80
|
+
return this.args.format ?? ((value: number) => NUMBERS.format(value));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private get ordered(): BarListItem[] {
|
|
84
|
+
let rows = this.data.visibleRows.slice();
|
|
85
|
+
if (this.ranked) {
|
|
86
|
+
rows.sort((a, b) => b.value - a.value);
|
|
87
|
+
}
|
|
88
|
+
return rows;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
get scale(): number {
|
|
92
|
+
if (this.args.max !== undefined && this.args.max > 0) {
|
|
93
|
+
return this.args.max;
|
|
94
|
+
}
|
|
95
|
+
let top = 0;
|
|
96
|
+
for (let row of this.ordered) {
|
|
97
|
+
if (Number.isFinite(row.value) && row.value > top) {
|
|
98
|
+
top = row.value;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return top > 0 ? top : 1;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
get rows(): BarRow[] {
|
|
105
|
+
let limit =
|
|
106
|
+
this.args.limit === undefined
|
|
107
|
+
? this.ordered.length
|
|
108
|
+
: Math.max(0, Math.round(this.args.limit));
|
|
109
|
+
let scale = this.scale;
|
|
110
|
+
return this.ordered.slice(0, limit).map((row) => {
|
|
111
|
+
// A clamped number can never carry a semicolon, so the percentage is
|
|
112
|
+
// safe by construction; the HUE is a caller string and goes through
|
|
113
|
+
// the kit's allowlist guard instead.
|
|
114
|
+
let pct = Math.max(0, Math.min(100, (row.value / scale) * 100));
|
|
115
|
+
return {
|
|
116
|
+
name: row.name,
|
|
117
|
+
value: row.value,
|
|
118
|
+
display: this.format(row.value),
|
|
119
|
+
href: row.href,
|
|
120
|
+
style: cssStyleFrom([
|
|
121
|
+
'--pretui-barlist-fill: ' + pct.toFixed(2) + '%',
|
|
122
|
+
cssDeclaration('--pretui-barlist-hue', row.hue ?? this.args.hue),
|
|
123
|
+
]),
|
|
124
|
+
};
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
get remainder(): number {
|
|
129
|
+
return Math.max(0, this.ordered.length - this.rows.length);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
<template>
|
|
133
|
+
<div class='pretui-barlist' data-test-pretui-barlist ...attributes>
|
|
134
|
+
<DataShell
|
|
135
|
+
@state={{this.data}}
|
|
136
|
+
@hasLoading={{has-block 'loading'}}
|
|
137
|
+
@hasEmpty={{has-block 'empty'}}
|
|
138
|
+
@hasError={{has-block 'error'}}
|
|
139
|
+
@emptyTitle='Nothing ranked yet'
|
|
140
|
+
@emptyMessage='No rows to rank. Once the desk logs something it appears here, largest first.'
|
|
141
|
+
@skeletonRows={{4}}
|
|
142
|
+
>
|
|
143
|
+
<:default>
|
|
144
|
+
<ol class='pretui-barlist-rows' aria-label={{@label}}>
|
|
145
|
+
{{#each this.rows key='name' as |row|}}
|
|
146
|
+
<li class='pretui-barlist-row' style={{row.style}}>
|
|
147
|
+
{{! The bar is decoration: the number to its right states the
|
|
148
|
+
same magnitude, so announcing both would be a stutter. }}
|
|
149
|
+
<span class='pretui-barlist-bar' aria-hidden='true'></span>
|
|
150
|
+
<span class='pretui-barlist-name'>
|
|
151
|
+
{{#if row.href}}
|
|
152
|
+
<a href={{row.href}}>{{row.name}}</a>
|
|
153
|
+
{{else}}
|
|
154
|
+
{{row.name}}
|
|
155
|
+
{{/if}}
|
|
156
|
+
</span>
|
|
157
|
+
<span class='pretui-barlist-value'>{{row.display}}</span>
|
|
158
|
+
</li>
|
|
159
|
+
{{/each}}
|
|
160
|
+
</ol>
|
|
161
|
+
{{#if this.remainder}}
|
|
162
|
+
<p class='pretui-barlist-more'>
|
|
163
|
+
{{this.remainder}}
|
|
164
|
+
more not shown.
|
|
165
|
+
</p>
|
|
166
|
+
{{/if}}
|
|
167
|
+
</:default>
|
|
168
|
+
<:loading>{{yield to='loading'}}</:loading>
|
|
169
|
+
<:empty>{{yield to='empty'}}</:empty>
|
|
170
|
+
<:error>{{yield to='error'}}</:error>
|
|
171
|
+
</DataShell>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<style scoped>
|
|
175
|
+
@layer PretComponent {
|
|
176
|
+
.pretui-barlist {
|
|
177
|
+
container-type: inline-size;
|
|
178
|
+
display: block;
|
|
179
|
+
min-width: 0;
|
|
180
|
+
font-family: var(--font-sans);
|
|
181
|
+
color: var(--foreground);
|
|
182
|
+
}
|
|
183
|
+
.pretui-barlist-rows {
|
|
184
|
+
list-style: none;
|
|
185
|
+
margin: 0;
|
|
186
|
+
padding: 0;
|
|
187
|
+
display: grid;
|
|
188
|
+
gap: var(--pretui-barlist-gap, 3px);
|
|
189
|
+
}
|
|
190
|
+
.pretui-barlist-row {
|
|
191
|
+
position: relative;
|
|
192
|
+
display: grid;
|
|
193
|
+
grid-template-columns: 1fr auto;
|
|
194
|
+
align-items: center;
|
|
195
|
+
gap: var(--space-3, 8px);
|
|
196
|
+
min-block-size: var(--pretui-barlist-row-height, 28px);
|
|
197
|
+
padding: 3px var(--space-3, 8px);
|
|
198
|
+
border-radius: var(--radius-control, 7px);
|
|
199
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
200
|
+
}
|
|
201
|
+
.pretui-barlist-bar {
|
|
202
|
+
position: absolute;
|
|
203
|
+
inset-block: 0;
|
|
204
|
+
inset-inline-start: 0;
|
|
205
|
+
inline-size: var(--pretui-barlist-fill, 0%);
|
|
206
|
+
border-radius: var(--radius-control, 7px);
|
|
207
|
+
background: color-mix(
|
|
208
|
+
in oklch,
|
|
209
|
+
var(--pretui-barlist-hue, var(--chart-2)) 18%,
|
|
210
|
+
transparent
|
|
211
|
+
);
|
|
212
|
+
/* Law 5: the bar grows when the value changes, which encodes the
|
|
213
|
+
change. It lands on the end state under reduced motion. */
|
|
214
|
+
transition: inline-size 320ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
215
|
+
}
|
|
216
|
+
.pretui-barlist-name {
|
|
217
|
+
position: relative;
|
|
218
|
+
min-width: 0;
|
|
219
|
+
overflow: hidden;
|
|
220
|
+
text-overflow: ellipsis;
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
}
|
|
223
|
+
.pretui-barlist-name a {
|
|
224
|
+
color: inherit;
|
|
225
|
+
text-decoration-color: color-mix(
|
|
226
|
+
in oklch,
|
|
227
|
+
currentColor 40%,
|
|
228
|
+
transparent
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
.pretui-barlist-name a:focus-visible {
|
|
232
|
+
outline: 2px solid var(--ring);
|
|
233
|
+
outline-offset: 2px;
|
|
234
|
+
border-radius: 3px;
|
|
235
|
+
}
|
|
236
|
+
.pretui-barlist-value {
|
|
237
|
+
position: relative;
|
|
238
|
+
font-variant-numeric: tabular-nums;
|
|
239
|
+
font-weight: var(--weight-strong, 600);
|
|
240
|
+
color: var(--muted-foreground);
|
|
241
|
+
}
|
|
242
|
+
.pretui-barlist-more {
|
|
243
|
+
margin: var(--space-3, 8px) 0 0;
|
|
244
|
+
color: var(--muted-foreground);
|
|
245
|
+
font-size: var(--text-ui-xs, 11px);
|
|
246
|
+
}
|
|
247
|
+
@media (prefers-reduced-motion: reduce) {
|
|
248
|
+
.pretui-barlist-bar {
|
|
249
|
+
transition: none;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
</style>
|
|
254
|
+
</template>
|
|
255
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A ranked list of labelled bars: the "top N by value" list that sits beside a chart rather than in it.
|
|
4
|
+
|
|
5
|
+
It is a `DataComponent<BarListItem>`, so rows, loading, empty and error states come from that foundation.
|
|
6
|
+
|
|
7
|
+
## The contract
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
every DataArgs<BarListItem> arg — @rows or @load, @loadKey, @key, and the rest
|
|
11
|
+
@ranked? — sort descending by value before rendering. Default true
|
|
12
|
+
@limit? — cap the number of rows rendered; the remainder is summarised
|
|
13
|
+
@max? — scale the bars against this instead of the largest value
|
|
14
|
+
@format? — formats the printed value. Defaults to a locale integer
|
|
15
|
+
@label? — accessible name for the list
|
|
16
|
+
@hue? — row hue; every bar shares it, and a per-row hue wins
|
|
17
|
+
|
|
18
|
+
<:loading>, <:empty>, <:error>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**`@max` is what keeps two BarLists comparable side by side.** Scaling each list against its own largest value makes two lists look the same shape regardless of magnitude — which is exactly wrong when they are meant to be compared. Pass the same `@max` to both.
|
|
22
|
+
|
|
23
|
+
**`@limit` summarises the remainder** rather than silently dropping it, so "top 5" does not misrepresent a long tail as nothing.
|
|
24
|
+
|
|
25
|
+
**`@ranked` defaults to true**, because an unranked bar list is a bar chart with no axis.
|
|
26
|
+
|
|
27
|
+
## Prior art
|
|
28
|
+
|
|
29
|
+
The "top N" list in every analytics dashboard, and Tremor's BarList as the closest named equivalent.
|
|
30
|
+
|
|
31
|
+
Where Pretui is better: `@max` as an explicit comparability lever, the remainder being summarised rather than dropped, and riding **DataComponent** so loading and empty states behave like every other data surface in the kit.
|
|
32
|
+
|
|
33
|
+
Where it is thinner: no drill-down or row selection, no negative values, no stacked or grouped bars — one value per row — and no inline sparkline.
|
|
34
|
+
|
|
35
|
+
## Accessibility
|
|
36
|
+
|
|
37
|
+
- **The rows are an ordered list with an accessible name** from `@label`, which is what conveys rank: a reader is told this is first, second, third.
|
|
38
|
+
- **The bars are `aria-hidden`.** The value is printed as text on every row, so the bar is redundant to anyone not looking at it — and announcing a bar conveys nothing.
|
|
39
|
+
- **The printed value is the data.** `@format` shapes what is announced as well as what is shown.
|
|
40
|
+
- **Rank is conveyed by list order rather than by bar length alone**, which means the ordering survives without sight.
|
|
41
|
+
- **`@hue` is decoration.** Nothing in this component depends on distinguishing one bar's colour from another's.
|
|
42
|
+
|
|
43
|
+
## Theming
|
|
44
|
+
|
|
45
|
+
`--pretui-barlist-fill` and `--pretui-barlist-hue` (the bars), `--pretui-barlist-row-height` and `--pretui-barlist-gap` (density), plus `--pretui-chart-key` shared with **Chart**'s legend.
|
|
46
|
+
|
|
47
|
+
Sharing the chart key token matters when a BarList sits beside a Chart showing the same series: the two should agree on what a given series looks like, and pulling from one token is how that stays true through a theme change.
|
|
48
|
+
|
|
49
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// Pretui — BarList usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { seedFrom } from '../examples';
|
|
5
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
6
|
+
import { BarList } from './bar-list';
|
|
7
|
+
import type { BarListItem } from './bar-list';
|
|
8
|
+
|
|
9
|
+
// ── BarList ──────────────────────────────────────────────────────────────
|
|
10
|
+
const REFERRERS: BarListItem[] = [
|
|
11
|
+
'Direct',
|
|
12
|
+
'Catalog search',
|
|
13
|
+
'Assistant suggestion',
|
|
14
|
+
'Shared link',
|
|
15
|
+
'Embedded card',
|
|
16
|
+
'Realm index',
|
|
17
|
+
'External referral',
|
|
18
|
+
].map((name) => ({
|
|
19
|
+
name,
|
|
20
|
+
value: 40 + (seedFrom('referrer#' + name) % 940),
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
export class BarListUsage extends Component {
|
|
24
|
+
@tracked limit = 5;
|
|
25
|
+
@tracked ranked = true;
|
|
26
|
+
|
|
27
|
+
setLimit = (v: number | null) => {
|
|
28
|
+
this.limit = v ?? 5;
|
|
29
|
+
};
|
|
30
|
+
setRanked = (v: boolean) => {
|
|
31
|
+
this.ranked = v;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
rows = REFERRERS;
|
|
35
|
+
|
|
36
|
+
get usage(): string {
|
|
37
|
+
return [
|
|
38
|
+
'<BarList',
|
|
39
|
+
' @rows={{this.referrers}}',
|
|
40
|
+
' @limit={{' + this.limit + '}}',
|
|
41
|
+
" @label='Traffic by source'",
|
|
42
|
+
'/>',
|
|
43
|
+
].join('\n');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<FreestyleUsage
|
|
48
|
+
@name='BarList'
|
|
49
|
+
@description='The ranked distribution: a label, a proportional bar, and the value as text on every row. It answers "which five things are biggest", which neither Meter (one level) nor Chart (a series) does. No plotting engine — a card that shows a top-five list never loads Plot.'
|
|
50
|
+
@source={{this.usage}}
|
|
51
|
+
>
|
|
52
|
+
<:example>
|
|
53
|
+
<div class='barlist-stage'>
|
|
54
|
+
<BarList
|
|
55
|
+
@rows={{this.rows}}
|
|
56
|
+
@limit={{this.limit}}
|
|
57
|
+
@ranked={{this.ranked}}
|
|
58
|
+
@label='Card opens by traffic source, last 30 days'
|
|
59
|
+
/>
|
|
60
|
+
</div>
|
|
61
|
+
</:example>
|
|
62
|
+
<:api as |Args|>
|
|
63
|
+
<Args.Object
|
|
64
|
+
@name='rows'
|
|
65
|
+
@description='BarListItem[] — name, value, and optional href and hue. Accepts @load / @loadKey instead, with the same DataComponent state machine.'
|
|
66
|
+
/>
|
|
67
|
+
<Args.Bool
|
|
68
|
+
@name='ranked'
|
|
69
|
+
@description='Sort descending by value before rendering. Turn it off to keep the caller order — a time-ordered list stays time-ordered.'
|
|
70
|
+
@defaultValue={{true}}
|
|
71
|
+
@value={{this.ranked}}
|
|
72
|
+
@onInput={{this.setRanked}}
|
|
73
|
+
/>
|
|
74
|
+
<Args.Number
|
|
75
|
+
@name='limit'
|
|
76
|
+
@description='Cap the rows rendered. The remainder is reported as a count rather than silently dropped.'
|
|
77
|
+
@defaultValue={{0}}
|
|
78
|
+
@min={{1}}
|
|
79
|
+
@max={{7}}
|
|
80
|
+
@step={{1}}
|
|
81
|
+
@value={{this.limit}}
|
|
82
|
+
@onInput={{this.setLimit}}
|
|
83
|
+
/>
|
|
84
|
+
<Args.Number
|
|
85
|
+
@name='max'
|
|
86
|
+
@description='Scale bars against this instead of the largest value — the way to keep two BarLists comparable side by side.'
|
|
87
|
+
/>
|
|
88
|
+
<Args.Object
|
|
89
|
+
@name='format'
|
|
90
|
+
@description='Formats the printed value. Defaults to a locale number.'
|
|
91
|
+
/>
|
|
92
|
+
<Args.String
|
|
93
|
+
@name='hue'
|
|
94
|
+
@description='Bar hue for every row; a per-row hue wins. Caller strings are validated through the kit cssValue allowlist before they reach the style attribute.'
|
|
95
|
+
/>
|
|
96
|
+
</:api>
|
|
97
|
+
<:cssVars as |Css|>
|
|
98
|
+
<Css.Basic
|
|
99
|
+
@name='pretui-barlist-row-height'
|
|
100
|
+
@type='dimension'
|
|
101
|
+
@description='Minimum row height. Raise it for a touch-first surface.'
|
|
102
|
+
@defaultValue='28px'
|
|
103
|
+
/>
|
|
104
|
+
<Css.Basic
|
|
105
|
+
@name='pretui-barlist-hue'
|
|
106
|
+
@type='color'
|
|
107
|
+
@description='Bar fill hue, mixed to 18% against the surface.'
|
|
108
|
+
@defaultValue='var(--chart-2)'
|
|
109
|
+
/>
|
|
110
|
+
</:cssVars>
|
|
111
|
+
</FreestyleUsage>
|
|
112
|
+
|
|
113
|
+
<style scoped>
|
|
114
|
+
.barlist-stage {
|
|
115
|
+
padding: var(--space-5, 14px);
|
|
116
|
+
border-radius: var(--radius-surface, 10px);
|
|
117
|
+
background: var(--card);
|
|
118
|
+
box-shadow: var(
|
|
119
|
+
--pretui-shadow-hairline,
|
|
120
|
+
0 0 0 1px var(--border)
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
</style>
|
|
124
|
+
</template>
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export const DEMOS_BAR_LIST: Record<string, unknown> = {
|
|
128
|
+
BarList: BarListUsage,
|
|
129
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// Pretui — Board: a kanban plane, a thin wrap of boxel-ui KanbanPlane.
|
|
2
|
+
import type { TemplateOnlyComponent } from '@ember/component/template-only';
|
|
3
|
+
import { KanbanPlane as BoxelKanbanPlane } from '@cardstack/boxel-ui/components';
|
|
4
|
+
import type { KanbanColumnConfig, KanbanPlacement } from '@cardstack/boxel-ui/components';
|
|
5
|
+
import type { FittedFormatId } from '@cardstack/boxel-ui/helpers';
|
|
6
|
+
|
|
7
|
+
// ── Board — WRAPS boxel-ui ───────────────────────────────────────────────
|
|
8
|
+
// boxel-ui's KanbanPlane — the newer of its two kanbans, chosen per the
|
|
9
|
+
// matrix ("adopt the newer pure-fn placement engine"): an internally
|
|
10
|
+
// owned drag manager over pure placement functions, configurable columns
|
|
11
|
+
// (KanbanColumnConfig: key/label/color/wipLimit/collapsed/sortOrder),
|
|
12
|
+
// card placements as data (KanbanPlacement: columnId/index/sortOrder), a
|
|
13
|
+
// hidden-columns tray, and per-lane add-card affordances. The consumer
|
|
14
|
+
// renders cards through <:card>/<:ghost> blocks and owns all state —
|
|
15
|
+
// every interaction arrives as a callback. The engine already dresses
|
|
16
|
+
// itself from the semantic tokens (--card, --border, --ring, --primary,
|
|
17
|
+
// --destructive…); the wrapper adds light no-theme fallbacks through the
|
|
18
|
+
// --boxel-kanban-* channel so an unthemed context renders the Pretui
|
|
19
|
+
// light uniform. Column config UI (KanbanColumnConfigSidebar) is a
|
|
20
|
+
// separate boxel-ui component, not part of this wrap.
|
|
21
|
+
//
|
|
22
|
+
// NOT GENERIC, deliberately — the one collection in the kit that keeps a
|
|
23
|
+
// closed row type, and the reason is worth writing down. A KanbanPlacement is
|
|
24
|
+
// `{ columnId, index, sortOrder }`: a POSITION, not a record. The card
|
|
25
|
+
// payload never passes through the board at all — the consumer looks it up by
|
|
26
|
+
// `placement.index` — and boxel-ui's pure placement engine both clones
|
|
27
|
+
// (`placements.map((p) => ({ ...p }))`) and MANUFACTURES placements
|
|
28
|
+
// (`autoPlaceKanban`), so a `T extends KanbanPlacement` yielded from <:card>
|
|
29
|
+
// would be a cast the engine is under no obligation to honour. Typing a lie
|
|
30
|
+
// is worse than typing a position. Grid/Feed/Masonry are generic because
|
|
31
|
+
// their items are the caller's own rows, passed straight through.
|
|
32
|
+
|
|
33
|
+
export interface BoardSignature {
|
|
34
|
+
Args: {
|
|
35
|
+
columns: KanbanColumnConfig[];
|
|
36
|
+
placements: KanbanPlacement[];
|
|
37
|
+
/** accessible board label */
|
|
38
|
+
boardLabel?: string;
|
|
39
|
+
/** fitted format id for card sizing — 'regular-tile' by default */
|
|
40
|
+
cardSize?: FittedFormatId;
|
|
41
|
+
/** move empty columns into the hidden-columns tray */
|
|
42
|
+
hideEmpty?: boolean;
|
|
43
|
+
onChange?: (placements: KanbanPlacement[]) => void;
|
|
44
|
+
onSelect?: (index: number | null) => void;
|
|
45
|
+
onOpen?: (index: number) => void;
|
|
46
|
+
onAddCard?: (columnKey: string | null) => void;
|
|
47
|
+
onToggleCollapsed?: (column: KanbanColumnConfig | null) => void;
|
|
48
|
+
};
|
|
49
|
+
Blocks: {
|
|
50
|
+
card: [KanbanPlacement];
|
|
51
|
+
ghost: [number];
|
|
52
|
+
};
|
|
53
|
+
Element: HTMLDivElement;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export const Board: TemplateOnlyComponent<BoardSignature> = <template>
|
|
57
|
+
<div class='pretui-board' data-test-pretui-board ...attributes>
|
|
58
|
+
<BoxelKanbanPlane
|
|
59
|
+
@boardLabel={{@boardLabel}}
|
|
60
|
+
@columns={{@columns}}
|
|
61
|
+
@placements={{@placements}}
|
|
62
|
+
@cardSize={{@cardSize}}
|
|
63
|
+
@hideEmpty={{@hideEmpty}}
|
|
64
|
+
@onChange={{@onChange}}
|
|
65
|
+
@onSelect={{@onSelect}}
|
|
66
|
+
@onOpen={{@onOpen}}
|
|
67
|
+
@onAddCard={{@onAddCard}}
|
|
68
|
+
@onToggleCollapsed={{@onToggleCollapsed}}
|
|
69
|
+
>
|
|
70
|
+
<:card as |placement|>
|
|
71
|
+
{{yield placement to='card'}}
|
|
72
|
+
</:card>
|
|
73
|
+
<:ghost as |dragIndex|>
|
|
74
|
+
{{yield dragIndex to='ghost'}}
|
|
75
|
+
</:ghost>
|
|
76
|
+
</BoxelKanbanPlane>
|
|
77
|
+
</div>
|
|
78
|
+
<style scoped>
|
|
79
|
+
@layer PretComponent {
|
|
80
|
+
/* The plane fills its host — give the wrapping context a height.
|
|
81
|
+
Channel values are the Pretui semantic tokens WITH their light
|
|
82
|
+
fallbacks, so the board holds the light uniform even unthemed
|
|
83
|
+
(the engine's own defaults lean on bare var(--foreground) etc.,
|
|
84
|
+
which have no no-theme value). */
|
|
85
|
+
.pretui-board {
|
|
86
|
+
height: 100%;
|
|
87
|
+
min-height: 0;
|
|
88
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
89
|
+
letter-spacing: var(--track-ui, 0.01em);
|
|
90
|
+
color: var(--foreground);
|
|
91
|
+
--boxel-kanban-fg: var(--foreground, var(--boxel-dark));
|
|
92
|
+
--boxel-kanban-card-bg: var(--card, var(--boxel-light));
|
|
93
|
+
--boxel-kanban-card-fg: var(--card-foreground, var(--boxel-dark));
|
|
94
|
+
--boxel-kanban-col-bg: var(--inset, var(--boxel-100));
|
|
95
|
+
--boxel-kanban-col-fg: var(--foreground, var(--boxel-dark));
|
|
96
|
+
--boxel-kanban-ring: var(--primary, var(--boxel-highlight));
|
|
97
|
+
--boxel-kanban-primary: var(--primary, var(--boxel-highlight));
|
|
98
|
+
--boxel-kanban-primary-fg: var(--primary-foreground, var(--boxel-dark));
|
|
99
|
+
--boxel-kanban-destructive: var(--destructive, var(--boxel-danger));
|
|
100
|
+
--boxel-kanban-destructive-fg: var(--destructive-foreground, var(--boxel-light));
|
|
101
|
+
--boxel-kanban-muted-fg: var(--muted-foreground, var(--boxel-450));
|
|
102
|
+
--boxel-kanban-radius: var(--radius, var(--boxel-border-radius));
|
|
103
|
+
--boxel-kanban-border: var(--border, var(--boxel-border-color));
|
|
104
|
+
--boxel-kanban-bg: transparent;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
</style>
|
|
108
|
+
</template>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A kanban board: configurable columns, cards you drag between them, a hidden-columns tray, per-lane add affordances and WIP limits. Reach for it when items move through named states and the movement is the interaction. If the states are a fixed linear process, **StepList** or **Timeline** reads better. If you just want tiles, **Grid**. If the arrangement is spatial and freeform rather than columnar, **NodeCanvas**.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@columns: KanbanColumnConfig[] { key, label, color, wipLimit, collapsed, sortOrder }
|
|
9
|
+
@placements: KanbanPlacement[] { columnId, index, sortOrder }
|
|
10
|
+
@boardLabel?, @cardSize?, @hideEmpty?
|
|
11
|
+
@onChange?, @onSelect?, @onOpen?, @onAddCard?, @onToggleCollapsed?
|
|
12
|
+
<:card as |placement|> <:ghost as |dragIndex|>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**The consumer owns all state; every interaction arrives as a callback.** The board never mutates your data — it hands you the next `placements` array and you decide.
|
|
16
|
+
|
|
17
|
+
**It is deliberately not generic, and the reason is worth reading.** A `KanbanPlacement` is `{ columnId, index, sortOrder }` — a **position, not a record**. The card payload never passes through the board at all; the consumer looks it up by `placement.index`. And boxel-ui's pure placement engine both _clones_ placements (`placements.map(p => ({...p}))`) and _manufactures_ them (`autoPlaceKanban`), so a `T extends KanbanPlacement` yielded from `<:card>` would be a cast the engine is under no obligation to honor. Typing a lie is worse than typing a position. **Grid**, **Feed** and **Masonry** are generic because their items are the caller's own rows passed straight through; Board is the one collection in the kit that keeps a closed row type, and this is why.
|
|
18
|
+
|
|
19
|
+
`<:ghost>` renders the drag preview, receiving the dragged index.
|
|
20
|
+
|
|
21
|
+
## Prior art
|
|
22
|
+
|
|
23
|
+
A **thin runtime wrap of boxel-ui's `KanbanPlane`** — the newer of boxel-ui's two kanbans, chosen per the component matrix as "the pure-fn placement engine". The engine owns a drag manager over pure placement functions, which is the good architecture here: placement is a function of `(placements, from, to)` rather than mutation scattered through drag handlers, so it is testable and undoable.
|
|
24
|
+
|
|
25
|
+
Against the field: **dnd-kit** and **react-beautiful-dnd** are the reference drag libraries, and neither is a board — you assemble one. **Atlassian's Jira board** is the canonical product. **shadcn**, **Radix**, **Web Awesome** and **React Spectrum** all ship nothing in this space; Spectrum's `dragAndDropHooks` on `ListBox`/`Table` is the closest primitive.
|
|
26
|
+
|
|
27
|
+
So the honest framing is that this exists because boxel-ui had a board and the kit wanted one cheaply, not because it out-designs a category leader. What it does bring that a dnd-kit assembly does not: WIP limits, a hidden-columns tray and column collapse as first-class config, plus placement-as-data so board state serialises to a card field trivially.
|
|
28
|
+
|
|
29
|
+
**Column configuration UI is not part of this wrap** — `KanbanColumnConfigSidebar` is a separate boxel-ui component. And the wrapper adds light no-theme fallbacks through the `--boxel-kanban-*` channel, because the engine's own defaults lean on bare `var(--foreground)` and friends, which have no unthemed value.
|
|
30
|
+
|
|
31
|
+
## Accessibility
|
|
32
|
+
|
|
33
|
+
This is the component with the largest accessibility surface in the kit and the least of it under Pretui's control. **All behaviour is boxel-ui's KanbanPlane; this wrapper adds no ARIA.** What the engine does today:
|
|
34
|
+
|
|
35
|
+
- **Keyboard moves.** Space or Enter picks a card up, arrows move it between columns and positions, Space or Enter drops it and Escape cancels, which covers **WCAG 2.1.1 Keyboard**.
|
|
36
|
+
- **Announced drags.** A polite status region speaks each step: "Column 2. Position 3 of 5.", "Card dropped.", "Movement cancelled.".
|
|
37
|
+
- **Structure.** The plane is named by `@boardLabel`, each column carries its label, its body is `role="list"` and every card is a `listitem`.
|
|
38
|
+
- **Gap: no single-pointer alternative.** Moving a card by pointer needs a drag, so **WCAG 2.5.7 Dragging Movements** (AA, 2.2) is not met; a "move to column" control in your `<:card>` block is the usual answer.
|
|
39
|
+
- **Cards need accessible names**, and that is on your `<:card>` block, not the board.
|
|
40
|
+
- **`@hideEmpty` removes columns from the DOM**, which changes the board's structure without announcement.
|
|
41
|
+
|
|
42
|
+
Pretui-level note: `@boardLabel` is the only accessibility affordance this wrapper exposes. Pass it.
|
|
43
|
+
|
|
44
|
+
## Theming
|
|
45
|
+
|
|
46
|
+
Consumed: `--foreground`, `--text-ui-md`, `--track-ui`.
|
|
47
|
+
|
|
48
|
+
Remapped into the `--boxel-kanban-*` channel, each with an explicit light fallback so the board holds the Pretui light uniform even unthemed: `--boxel-kanban-fg` ← `--foreground`, `-card-bg` ← `--card`, `-card-fg` ← `--card-foreground`, `-col-bg` ← `--inset`, `-col-fg` ← `--foreground`, `-ring` and `-primary` ← `--primary`, `-primary-fg` ← `--primary-foreground`, `-destructive` ← `--destructive`, `-destructive-fg` ← `--destructive-foreground`, `-muted-fg` ← `--muted-foreground`, `-radius` ← `--radius`, `-border` ← `--border`, `-bg` → `transparent`.
|
|
49
|
+
|
|
50
|
+
**The plane fills its host, so the wrapping context must have a height** — `height: 100%; min-height: 0` on the wrapper means a Board in an auto-height container renders as nothing. That is the first thing to check when it comes up blank.
|
|
51
|
+
|
|
52
|
+
Column colors come from `KanbanColumnConfig.color` — caller data, not tokens — so a theme cannot retune them and a caller can trivially produce column headers that fail contrast against `--inset`. Prefer deriving those colors from theme tokens at the call site.
|
|
53
|
+
|
|
54
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|