@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,44 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A grid of switches: rows against columns, with every intersection independently on or off. The permissions matrix — roles against capabilities, people against projects.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@rows, @columns (required)
|
|
9
|
+
@label (required) — the grid's accessible name
|
|
10
|
+
@value?, @defaultValue? — every switched-on intersection
|
|
11
|
+
@onValueChange? — fires with the whole next value, always in rows × columns order
|
|
12
|
+
@onToggle? — fires once per cell that ACTUALLY changed, including inside a
|
|
13
|
+
bulk or span operation
|
|
14
|
+
@rowAxisLabel? — name for the header of the row axis, e.g. 'Role'
|
|
15
|
+
@bulk? — show the row / column / whole-matrix select-all checkboxes. Default true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Two callbacks, two consumers.** `@onValueChange` hands you the whole next state, in a stable order, for storing. `@onToggle` fires once per cell that actually changed — including inside a bulk operation — so an **audit log gets individual grants rather than a diff**. That distinction is the reason both exist.
|
|
19
|
+
|
|
20
|
+
**`@label` is required**, for the same reason **ToggleGroup**'s is: a matrix of unnamed checkboxes is the worst case of the unnamed-group problem, because there are now two axes to be lost on.
|
|
21
|
+
|
|
22
|
+
**Bulk operations are per row, per column and whole-matrix.** A permissions grid without them is unusable at any real size.
|
|
23
|
+
|
|
24
|
+
## Prior art
|
|
25
|
+
|
|
26
|
+
A kit addition. The comparison is against the hand-rolled permissions table every product grows, and the two things those get wrong: no bulk selection, and a change event that reports the new state rather than the individual grants — which makes an audit trail impossible to reconstruct.
|
|
27
|
+
|
|
28
|
+
Where it is thinner: no tri-state or inherited-permission model, no row or column grouping, no virtualisation for a large matrix, and no per-cell disabled state — the grid is uniform.
|
|
29
|
+
|
|
30
|
+
## Accessibility
|
|
31
|
+
|
|
32
|
+
- **The grid is named, and both axes are labelled.** `@rowAxisLabel` names the row header column, which is the thing that is usually blank and leaves a reader unable to tell what the rows *are*.
|
|
33
|
+
- **A cell's meaning is the intersection of two headers**, which is why the axis labels matter more here than in a normal table — announcing "on" tells a reader nothing without both.
|
|
34
|
+
- **Bulk checkboxes are real controls**, so select-all-in-row is reachable rather than being a pointer-only convenience.
|
|
35
|
+
- **`@onToggle` firing per changed cell inside a bulk operation** means a caller can announce "4 permissions granted" accurately, rather than guessing from a diff.
|
|
36
|
+
- **The column rule aid is visual only.** A heavier rule every Nth column helps scanning and conveys nothing, which is correct.
|
|
37
|
+
|
|
38
|
+
## Theming
|
|
39
|
+
|
|
40
|
+
The matrix uses the kit's shared control and border tokens rather than a component-specific surface; the scanning rule is a border-weight change on the shared border token.
|
|
41
|
+
|
|
42
|
+
That sharing is what keeps a permissions grid looking like a table in the same product rather than like a spreadsheet embedded in it.
|
|
43
|
+
|
|
44
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// Pretui — ToggleMatrix usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import type { PretuiSize, PretuiTone } from '../pretui-primitives';
|
|
5
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
6
|
+
import { ToggleMatrix } from './toggle-matrix';
|
|
7
|
+
import type { ToggleCell, ToggleMatrixColumn, ToggleMatrixRow } from './toggle-matrix';
|
|
8
|
+
import { SIZES, TONES } from '../internal/toggle-controls-fixtures';
|
|
9
|
+
|
|
10
|
+
// ── ToggleMatrix ← beat-maker step grid ──────────────────────────────────
|
|
11
|
+
const ROLES: ToggleMatrixRow[] = [
|
|
12
|
+
{ id: 'owner', label: 'Owner', hint: 'Billing and deletion' },
|
|
13
|
+
{ id: 'admin', label: 'Admin', hint: 'Manages the workspace' },
|
|
14
|
+
{ id: 'editor', label: 'Editor', hint: 'Writes and publishes' },
|
|
15
|
+
{ id: 'author', label: 'Author', hint: 'Writes drafts only' },
|
|
16
|
+
{ id: 'viewer', label: 'Viewer', hint: 'Read-only' },
|
|
17
|
+
{ id: 'guest', label: 'Guest', hint: 'Invited to one item', disabled: true },
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const PERMISSIONS: ToggleMatrixColumn[] = [
|
|
21
|
+
{ id: 'view', label: 'View' },
|
|
22
|
+
{ id: 'comment', label: 'Comment' },
|
|
23
|
+
{ id: 'edit', label: 'Edit' },
|
|
24
|
+
{ id: 'publish', label: 'Publish' },
|
|
25
|
+
{ id: 'share', label: 'Share' },
|
|
26
|
+
{ id: 'invite', label: 'Invite' },
|
|
27
|
+
{ id: 'billing', label: 'Billing' },
|
|
28
|
+
{ id: 'delete', label: 'Delete' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const GRANTS: ToggleCell[] = [
|
|
32
|
+
{ row: 'owner', column: 'view' },
|
|
33
|
+
{ row: 'owner', column: 'comment' },
|
|
34
|
+
{ row: 'owner', column: 'edit' },
|
|
35
|
+
{ row: 'owner', column: 'publish' },
|
|
36
|
+
{ row: 'owner', column: 'share' },
|
|
37
|
+
{ row: 'owner', column: 'invite' },
|
|
38
|
+
{ row: 'owner', column: 'billing' },
|
|
39
|
+
{ row: 'owner', column: 'delete' },
|
|
40
|
+
{ row: 'admin', column: 'view' },
|
|
41
|
+
{ row: 'admin', column: 'comment' },
|
|
42
|
+
{ row: 'admin', column: 'edit' },
|
|
43
|
+
{ row: 'admin', column: 'publish' },
|
|
44
|
+
{ row: 'admin', column: 'share' },
|
|
45
|
+
{ row: 'admin', column: 'invite' },
|
|
46
|
+
{ row: 'editor', column: 'view' },
|
|
47
|
+
{ row: 'editor', column: 'comment' },
|
|
48
|
+
{ row: 'editor', column: 'edit' },
|
|
49
|
+
{ row: 'editor', column: 'publish' },
|
|
50
|
+
{ row: 'author', column: 'view' },
|
|
51
|
+
{ row: 'author', column: 'comment' },
|
|
52
|
+
{ row: 'author', column: 'edit' },
|
|
53
|
+
{ row: 'viewer', column: 'view' },
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
class ToggleMatrixUsage extends Component {
|
|
57
|
+
tones = TONES;
|
|
58
|
+
sizes = SIZES;
|
|
59
|
+
rows = ROLES;
|
|
60
|
+
columns = PERMISSIONS;
|
|
61
|
+
|
|
62
|
+
@tracked grants: ToggleCell[] = GRANTS;
|
|
63
|
+
@tracked bulk = true;
|
|
64
|
+
@tracked groupEvery = 4;
|
|
65
|
+
@tracked activeColumn = 'publish';
|
|
66
|
+
@tracked rowAxisLabel = 'Role';
|
|
67
|
+
@tracked tone = 'primary';
|
|
68
|
+
@tracked sizeName = 'm';
|
|
69
|
+
@tracked lastChange = 'nothing yet';
|
|
70
|
+
|
|
71
|
+
setGrants = (v: ToggleCell[]) => (this.grants = v);
|
|
72
|
+
setBulk = (v: boolean) => (this.bulk = v);
|
|
73
|
+
setGroupEvery = (v: number | null) => (this.groupEvery = v ?? 0);
|
|
74
|
+
setActiveColumn = (v: string) => (this.activeColumn = v);
|
|
75
|
+
setRowAxisLabel = (v: string) => (this.rowAxisLabel = v);
|
|
76
|
+
setTone = (v: string) => (this.tone = v);
|
|
77
|
+
setSize = (v: string) => (this.sizeName = v);
|
|
78
|
+
noteChange = (row: string, column: string, live: boolean) => {
|
|
79
|
+
this.lastChange = `${row} · ${column} → ${live ? 'granted' : 'revoked'}`;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
get columnIds() {
|
|
83
|
+
return ['', ...this.columns.map((column) => column.id)];
|
|
84
|
+
}
|
|
85
|
+
get toneVal() {
|
|
86
|
+
return this.tone as PretuiTone;
|
|
87
|
+
}
|
|
88
|
+
get sizeVal() {
|
|
89
|
+
return this.sizeName as PretuiSize;
|
|
90
|
+
}
|
|
91
|
+
get grantCount() {
|
|
92
|
+
return this.grants.length;
|
|
93
|
+
}
|
|
94
|
+
get usage() {
|
|
95
|
+
let bits = [
|
|
96
|
+
"@label='Role permissions'",
|
|
97
|
+
'@rows={{this.roles}}',
|
|
98
|
+
'@columns={{this.permissions}}',
|
|
99
|
+
'@value={{this.grants}}',
|
|
100
|
+
'@onValueChange={{this.setGrants}}',
|
|
101
|
+
];
|
|
102
|
+
if (this.groupEvery) bits.push(`@groupEvery={{${this.groupEvery}}}`);
|
|
103
|
+
return `<ToggleMatrix ${bits.join(' ')} />`;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
<template>
|
|
107
|
+
<FreestyleUsage
|
|
108
|
+
@name='ToggleMatrix'
|
|
109
|
+
@description="A two-dimensional grid of toggles with real header semantics: a table with role='grid', scoped row and column headers, select-all boxes carrying a true indeterminate state, and two-axis keyboard navigation over one tab stop — arrows in both directions, Home and End along the row, Ctrl+Home and Ctrl+End to the corners. Shift-activate paints the rectangle from the anchor, and Shift+Arrow does exactly the same thing from the keyboard, which is why drag-to-paint was not built. The mechanism comes from the beat-maker step grid with the music thrown away; the unnamed colour-only pads did not survive the trip."
|
|
110
|
+
@source={{this.usage}}
|
|
111
|
+
>
|
|
112
|
+
<:example>
|
|
113
|
+
<ToggleMatrix
|
|
114
|
+
@rows={{this.rows}}
|
|
115
|
+
@columns={{this.columns}}
|
|
116
|
+
@label='Role permissions'
|
|
117
|
+
@value={{this.grants}}
|
|
118
|
+
@onValueChange={{this.setGrants}}
|
|
119
|
+
@onToggle={{this.noteChange}}
|
|
120
|
+
@rowAxisLabel={{this.rowAxisLabel}}
|
|
121
|
+
@bulk={{this.bulk}}
|
|
122
|
+
@groupEvery={{this.groupEvery}}
|
|
123
|
+
@activeColumn={{this.activeColumn}}
|
|
124
|
+
@tone={{this.toneVal}}
|
|
125
|
+
@size={{this.sizeVal}}
|
|
126
|
+
/>
|
|
127
|
+
<p class='pretui-demo-readout' data-test-tm-readout>
|
|
128
|
+
{{this.grantCount}} grants · last change:
|
|
129
|
+
{{this.lastChange}}
|
|
130
|
+
</p>
|
|
131
|
+
</:example>
|
|
132
|
+
<:api as |Args|>
|
|
133
|
+
<Args.Object
|
|
134
|
+
@name='rows'
|
|
135
|
+
@description='Row descriptors: id, label, an optional hint line and an optional disabled flag. Data-driven, unlike the source, whose rows were a literal array of drum names.'
|
|
136
|
+
@value={{this.rows}}
|
|
137
|
+
/>
|
|
138
|
+
<Args.Object
|
|
139
|
+
@name='columns'
|
|
140
|
+
@description='Column descriptors: id, label, an optional abbr drawn when the full label will not fit (assistive tech still hears the full one), and an optional disabled flag.'
|
|
141
|
+
@value={{this.columns}}
|
|
142
|
+
/>
|
|
143
|
+
<Args.String
|
|
144
|
+
@name='label'
|
|
145
|
+
@required={{true}}
|
|
146
|
+
@defaultValue='Role permissions'
|
|
147
|
+
@description='The grid name. Required for the same reason as ToggleGroup label.'
|
|
148
|
+
/>
|
|
149
|
+
<Args.Object
|
|
150
|
+
@name='value'
|
|
151
|
+
@description='Controlled value: every switched-on intersection, as row and column ids. An array of pairs rather than interpolated string keys, which cannot survive an id containing the separator.'
|
|
152
|
+
@value={{this.grants}}
|
|
153
|
+
/>
|
|
154
|
+
<Args.Action
|
|
155
|
+
@name='onValueChange'
|
|
156
|
+
@description='Receives the whole next value, always rebuilt in rows-by-columns order — so two identical selections serialize identically no matter how they were reached.'
|
|
157
|
+
/>
|
|
158
|
+
<Args.Action
|
|
159
|
+
@name='onToggle'
|
|
160
|
+
@description='Fires once per cell that actually changed, including inside a bulk or span operation, so an audit log records individual grants rather than a diff.'
|
|
161
|
+
/>
|
|
162
|
+
<Args.Bool
|
|
163
|
+
@name='bulk'
|
|
164
|
+
@defaultValue={{true}}
|
|
165
|
+
@value={{this.bulk}}
|
|
166
|
+
@description='Show the row, column and whole-matrix select-all boxes. They live in row and column minus-one of the same navigation space, so they are reachable by arrowing rather than by Tab, and they are aria-disabled rather than disabled so a tab stop can never land somewhere unfocusable.'
|
|
167
|
+
@onInput={{this.setBulk}}
|
|
168
|
+
/>
|
|
169
|
+
<Args.Number
|
|
170
|
+
@name='groupEvery'
|
|
171
|
+
@defaultValue={{0}}
|
|
172
|
+
@value={{this.groupEvery}}
|
|
173
|
+
@min={{0}}
|
|
174
|
+
@max={{8}}
|
|
175
|
+
@description='Draw a heavier rule before every Nth column — the scanning aid the source hardcoded as three separate equality comparisons.'
|
|
176
|
+
@onInput={{this.setGroupEvery}}
|
|
177
|
+
/>
|
|
178
|
+
<Args.String
|
|
179
|
+
@name='activeColumn'
|
|
180
|
+
@value={{this.activeColumn}}
|
|
181
|
+
@options={{this.columnIds}}
|
|
182
|
+
@description='Marks one column as current — a playhead, today, the live shift. Carried by aria-current and a drawn caret, never by colour alone.'
|
|
183
|
+
@onInput={{this.setActiveColumn}}
|
|
184
|
+
/>
|
|
185
|
+
<Args.String
|
|
186
|
+
@name='rowAxisLabel'
|
|
187
|
+
@value={{this.rowAxisLabel}}
|
|
188
|
+
@description='Names the row axis in the corner cell, e.g. Role or Shift.'
|
|
189
|
+
@onInput={{this.setRowAxisLabel}}
|
|
190
|
+
/>
|
|
191
|
+
<Args.String
|
|
192
|
+
@name='tone'
|
|
193
|
+
@defaultValue='primary'
|
|
194
|
+
@value={{this.tone}}
|
|
195
|
+
@options={{this.tones}}
|
|
196
|
+
@description='Semantic hue for switched-on cells and the current-column caret.'
|
|
197
|
+
@onInput={{this.setTone}}
|
|
198
|
+
/>
|
|
199
|
+
<Args.String
|
|
200
|
+
@name='size'
|
|
201
|
+
@defaultValue='m'
|
|
202
|
+
@value={{this.sizeName}}
|
|
203
|
+
@options={{this.sizes}}
|
|
204
|
+
@description='Scale for the whole grid. Cells are em, so one declaration moves everything.'
|
|
205
|
+
@onInput={{this.setSize}}
|
|
206
|
+
/>
|
|
207
|
+
<Args.Bool
|
|
208
|
+
@name='disabled'
|
|
209
|
+
@defaultValue={{false}}
|
|
210
|
+
@description='Dims and inerts the whole grid.'
|
|
211
|
+
/>
|
|
212
|
+
<Args.Yield
|
|
213
|
+
@name='empty'
|
|
214
|
+
@description='Replaces the built-in line shown when there are no rows or no columns.'
|
|
215
|
+
/>
|
|
216
|
+
</:api>
|
|
217
|
+
<:cssVars as |Css|>
|
|
218
|
+
<Css.Basic
|
|
219
|
+
@name='pretui-togglematrix-cell'
|
|
220
|
+
@type='length'
|
|
221
|
+
@description='Cell size, in em so it rides the size scale. Grows to a 44px-class target on coarse pointers.'
|
|
222
|
+
/>
|
|
223
|
+
<Css.Basic
|
|
224
|
+
@name='pretui-togglematrix-radius'
|
|
225
|
+
@type='length'
|
|
226
|
+
@description='Corner radius of one cell.'
|
|
227
|
+
/>
|
|
228
|
+
</:cssVars>
|
|
229
|
+
</FreestyleUsage>
|
|
230
|
+
<style scoped>
|
|
231
|
+
.pretui-demo-readout {
|
|
232
|
+
margin: 12px 0 0;
|
|
233
|
+
font-family: var(--font-mono);
|
|
234
|
+
font-size: var(--text-ui-xs, 11px);
|
|
235
|
+
color: var(--muted-foreground);
|
|
236
|
+
}
|
|
237
|
+
</style>
|
|
238
|
+
</template>
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export const DEMOS_TOGGLE_MATRIX: Record<string, unknown> = {
|
|
242
|
+
ToggleMatrix: ToggleMatrixUsage,
|
|
243
|
+
};
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
// Pretui — Toggle: one button whose meaning is state.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { hash } from '@ember/helper';
|
|
5
|
+
import { on } from '@ember/modifier';
|
|
6
|
+
import { Button } from './button';
|
|
7
|
+
import { PRETUI_TONES, emit, firstDefined, resolveSize, resolveTone } from '../pretui-primitives';
|
|
8
|
+
import type {
|
|
9
|
+
PretuiAppearance,
|
|
10
|
+
PretuiSize,
|
|
11
|
+
PretuiSizeArg,
|
|
12
|
+
PretuiToneArg,
|
|
13
|
+
PretuiTone,
|
|
14
|
+
} from '../pretui-primitives';
|
|
15
|
+
|
|
16
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
17
|
+
// Toggle
|
|
18
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
19
|
+
|
|
20
|
+
/** Which ARIA attribute carries the pressed state.
|
|
21
|
+
*
|
|
22
|
+
* `pressed` is a standalone toggle button and a multi-select toolbar member.
|
|
23
|
+
* `checked` is what a single-select group needs, where the member also wears
|
|
24
|
+
* `role='radio'` — the same swap Radix's ToggleGroup performs by deleting
|
|
25
|
+
* `aria-pressed` from the item's props. `none` hands the state to a parent
|
|
26
|
+
* that owns the ARIA itself. */
|
|
27
|
+
export type ToggleAriaState = 'pressed' | 'checked' | 'none';
|
|
28
|
+
|
|
29
|
+
export interface ToggleSignature {
|
|
30
|
+
Args: {
|
|
31
|
+
/** CONTROLLED pressed state. Omit to let the component own it. */
|
|
32
|
+
pressed?: boolean;
|
|
33
|
+
/** uncontrolled seed; ignored once `@pressed` is supplied */
|
|
34
|
+
defaultPressed?: boolean;
|
|
35
|
+
/** fires with the NEXT state on every activation */
|
|
36
|
+
onPressedChange?: (pressed: boolean) => void;
|
|
37
|
+
/** which ARIA attribute carries the state. `pressed` (default) is a
|
|
38
|
+
* standalone toggle or a toolbar member; `checked` is what a single-select
|
|
39
|
+
* `ToggleGroup` member needs beside its `role='radio'`; `none` hands the
|
|
40
|
+
* state to a parent that writes the ARIA itself. */
|
|
41
|
+
ariaState?: ToggleAriaState;
|
|
42
|
+
/** alias — the Radix/shadcn spelling is already the house name here, so
|
|
43
|
+
* this is the HTML-shaped notify for an agent that reaches for it */
|
|
44
|
+
onChange?: (pressed: boolean) => void;
|
|
45
|
+
/** accessible name. Required in `@iconOnly` mode, where there is no text
|
|
46
|
+
* for a reader to fall back on. */
|
|
47
|
+
label?: string;
|
|
48
|
+
/** draw the glyph only; `@label` becomes the sr-only name and the title */
|
|
49
|
+
iconOnly?: boolean;
|
|
50
|
+
/** Hue, default `neutral`. Accepts `destructive`/`brand`/… */
|
|
51
|
+
tone?: PretuiToneArg;
|
|
52
|
+
/** recipe worn at rest, default `outlined` */
|
|
53
|
+
appearance?: PretuiAppearance;
|
|
54
|
+
/** recipe worn while pressed, default `accent`. The pressed state is an
|
|
55
|
+
* APPEARANCE SWAP rather than a tint, so it survives greyscale (Law 6). */
|
|
56
|
+
pressedAppearance?: PretuiAppearance;
|
|
57
|
+
/** Scale, default `m`. Accepts `sm`/`md`/`lg`/`default`. */
|
|
58
|
+
size?: PretuiSizeArg;
|
|
59
|
+
/** dims and inerts, but stays focusable and announced (`aria-disabled`) */
|
|
60
|
+
disabled?: boolean;
|
|
61
|
+
/** alias — React Aria / Base UI spelling of `@disabled` */
|
|
62
|
+
isDisabled?: boolean;
|
|
63
|
+
/** pending: `aria-busy`, a spinner, clicks ignored, FOCUS RETAINED */
|
|
64
|
+
busy?: boolean;
|
|
65
|
+
/** aliases — the spellings the React corpus emits for `@busy` */
|
|
66
|
+
loading?: boolean;
|
|
67
|
+
isPending?: boolean;
|
|
68
|
+
};
|
|
69
|
+
Blocks: {
|
|
70
|
+
/** yields the resolved state, so a caller can swap the glyph in place
|
|
71
|
+
* rather than render two of them and hide one */
|
|
72
|
+
default: [{ pressed: boolean }];
|
|
73
|
+
};
|
|
74
|
+
Element: HTMLButtonElement;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* A single button whose meaning is a state rather than an action.
|
|
79
|
+
*
|
|
80
|
+
* **From:** Radix `Toggle` (`packages/react/toggle/src/toggle.tsx`), whose
|
|
81
|
+
* whole body is `aria-pressed`, `data-state`, and a controllable boolean.
|
|
82
|
+
*
|
|
83
|
+
* **Better than the inspiration.** Radix's Toggle passes `disabled` straight
|
|
84
|
+
* to the button element, which removes it from the tab order — fine for one
|
|
85
|
+
* button on a page, wrong the moment a toolbar with roving tabindex holds it,
|
|
86
|
+
* because the group changes shape between visits and can never be learned.
|
|
87
|
+
* This one is always `aria-disabled`, which is the kit's law and the reason
|
|
88
|
+
* `ToggleGroup` could adopt it unchanged. Radix also has no visual opinion at
|
|
89
|
+
* all, so every consumer re-derives "what does pressed look like" and almost
|
|
90
|
+
* every one of them reaches for a tint — colour-only signalling. Here pressed
|
|
91
|
+
* is an appearance recipe swap over the tone channel, so it reads
|
|
92
|
+
* in grayscale AND re-tints with a theme it has never seen. Radix has no
|
|
93
|
+
* pending state; `@busy` here is React Aria's *pending* semantics (`aria-busy`
|
|
94
|
+
* + retained focus) rather than a disable. And Radix's `data-state` is the
|
|
95
|
+
* only thing it exposes to CSS; this reflects the whole resolved treatment as
|
|
96
|
+
* `data-tone` / `data-appearance` / `data-size` / `data-state` so a consumer
|
|
97
|
+
* styles states in CSS instead of through args.
|
|
98
|
+
*/
|
|
99
|
+
export class Toggle extends Component<ToggleSignature> {
|
|
100
|
+
@tracked private internal: boolean = this.args.defaultPressed ?? false;
|
|
101
|
+
|
|
102
|
+
get pressed(): boolean {
|
|
103
|
+
return this.args.pressed ?? this.internal;
|
|
104
|
+
}
|
|
105
|
+
get inert(): boolean {
|
|
106
|
+
return firstDefined(this.args.disabled, this.args.isDisabled) ?? false;
|
|
107
|
+
}
|
|
108
|
+
get busy(): boolean {
|
|
109
|
+
return (
|
|
110
|
+
firstDefined(this.args.busy, this.args.loading, this.args.isPending) ??
|
|
111
|
+
false
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
get tone(): PretuiTone {
|
|
115
|
+
return resolveTone(this.args.tone, PRETUI_TONES, 'neutral');
|
|
116
|
+
}
|
|
117
|
+
get size(): PretuiSize {
|
|
118
|
+
return resolveSize(this.args.size);
|
|
119
|
+
}
|
|
120
|
+
/** The recipe actually worn right now — the whole visual contract of the
|
|
121
|
+
* component is this one line. */
|
|
122
|
+
get appearance(): PretuiAppearance {
|
|
123
|
+
return this.pressed
|
|
124
|
+
? (this.args.pressedAppearance ?? 'accent')
|
|
125
|
+
: (this.args.appearance ?? 'outlined');
|
|
126
|
+
}
|
|
127
|
+
get ariaState(): ToggleAriaState {
|
|
128
|
+
return this.args.ariaState ?? 'pressed';
|
|
129
|
+
}
|
|
130
|
+
get pressedAttr(): string | undefined {
|
|
131
|
+
return this.ariaState === 'pressed' ? String(this.pressed) : undefined;
|
|
132
|
+
}
|
|
133
|
+
get checkedAttr(): string | undefined {
|
|
134
|
+
return this.ariaState === 'checked' ? String(this.pressed) : undefined;
|
|
135
|
+
}
|
|
136
|
+
/** Busy wins the state slot so `Button`'s own busy rules still apply; the
|
|
137
|
+
* pressed state is still legible because it lives in the appearance. */
|
|
138
|
+
get stateAttr(): string {
|
|
139
|
+
if (this.busy) {
|
|
140
|
+
return 'busy';
|
|
141
|
+
}
|
|
142
|
+
return this.pressed ? 'on' : 'off';
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
activate = () => {
|
|
146
|
+
if (this.inert || this.busy) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
let next = !this.pressed;
|
|
150
|
+
if (this.args.pressed === undefined) {
|
|
151
|
+
this.internal = next;
|
|
152
|
+
}
|
|
153
|
+
emit([this.args.onPressedChange, this.args.onChange], next);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
<template>
|
|
157
|
+
<Button
|
|
158
|
+
class='pretui-toggle'
|
|
159
|
+
@tone={{this.tone}}
|
|
160
|
+
@appearance={{this.appearance}}
|
|
161
|
+
@size={{this.size}}
|
|
162
|
+
aria-pressed={{this.pressedAttr}}
|
|
163
|
+
aria-checked={{this.checkedAttr}}
|
|
164
|
+
aria-disabled={{if this.inert 'true'}}
|
|
165
|
+
aria-busy={{if this.busy 'true'}}
|
|
166
|
+
aria-label={{if @iconOnly @label}}
|
|
167
|
+
title={{if @iconOnly @label}}
|
|
168
|
+
data-state={{this.stateAttr}}
|
|
169
|
+
data-pressed={{if this.pressed 'true' 'false'}}
|
|
170
|
+
data-test-pretui-toggle
|
|
171
|
+
...attributes
|
|
172
|
+
{{on 'click' this.activate}}
|
|
173
|
+
>
|
|
174
|
+
{{#if this.busy}}
|
|
175
|
+
<span class='pretui-toggle-spin' aria-hidden='true'></span>
|
|
176
|
+
{{/if}}
|
|
177
|
+
<span class='pretui-toggle-face'>
|
|
178
|
+
{{yield (hash pressed=this.pressed)}}
|
|
179
|
+
</span>
|
|
180
|
+
</Button>
|
|
181
|
+
<style scoped>
|
|
182
|
+
/* above Button's layer, so these win by layer order, not file order */
|
|
183
|
+
@layer PretComponent, PretComposite;
|
|
184
|
+
@layer PretComposite {
|
|
185
|
+
/* Everything visual arrives through Button's own token channel and its
|
|
186
|
+
appearance recipes, so this file paints nothing a theme cannot
|
|
187
|
+
retune. What is left is the press feedback and the pending ring. */
|
|
188
|
+
.pretui-toggle {
|
|
189
|
+
flex: none;
|
|
190
|
+
}
|
|
191
|
+
.pretui-toggle:active:not([aria-disabled='true']) {
|
|
192
|
+
transform: scale(0.96);
|
|
193
|
+
}
|
|
194
|
+
.pretui-toggle[aria-disabled='true'] {
|
|
195
|
+
opacity: 0.45;
|
|
196
|
+
cursor: default;
|
|
197
|
+
}
|
|
198
|
+
.pretui-toggle[aria-busy='true'] {
|
|
199
|
+
cursor: progress;
|
|
200
|
+
}
|
|
201
|
+
.pretui-toggle-face {
|
|
202
|
+
display: inline-flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
gap: 0.4em;
|
|
205
|
+
min-width: 0;
|
|
206
|
+
}
|
|
207
|
+
@keyframes pretui-toggle-spin {
|
|
208
|
+
to {
|
|
209
|
+
transform: rotate(360deg);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
.pretui-toggle-spin {
|
|
213
|
+
flex: none;
|
|
214
|
+
width: 1.04em;
|
|
215
|
+
height: 1.04em;
|
|
216
|
+
border-radius: 50%;
|
|
217
|
+
border: 1.5px solid color-mix(in oklch, currentColor 25%, transparent);
|
|
218
|
+
border-top-color: currentColor;
|
|
219
|
+
animation: pretui-toggle-spin 0.7s linear infinite;
|
|
220
|
+
}
|
|
221
|
+
/* The end state has to still READ as pending, so the ring stops at an
|
|
222
|
+
angle that is obviously not a closed circle rather than at rest. */
|
|
223
|
+
@media (prefers-reduced-motion: reduce) {
|
|
224
|
+
.pretui-toggle-spin {
|
|
225
|
+
animation: none;
|
|
226
|
+
transform: rotate(135deg);
|
|
227
|
+
}
|
|
228
|
+
.pretui-toggle:active:not([aria-disabled='true']) {
|
|
229
|
+
transform: none;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
</style>
|
|
234
|
+
</template>
|
|
235
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
One button whose meaning is a **state**, not an action: pressed or unpressed.
|
|
4
|
+
|
|
5
|
+
It is deliberately neither of its neighbours. It is not a **Switch** — a setting that takes effect the moment it moves — and not a **Button**, which does a thing and returns to rest. Bold in a formatting bar is a Toggle. "Dark mode" is a Switch. "Save" is a Button.
|
|
6
|
+
|
|
7
|
+
## The contract
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
@pressed?, @defaultPressed?, @onPressedChange? — controlled / uncontrolled state
|
|
11
|
+
@onChange? — alias; the HTML-shaped notify an agent reaches for
|
|
12
|
+
@ariaState? — which ARIA attribute carries the state:
|
|
13
|
+
'pressed' (default) | 'checked' | 'none'
|
|
14
|
+
@label? — accessible name; REQUIRED in @iconOnly mode
|
|
15
|
+
@iconOnly? — draw the glyph only; @label becomes the sr-only name and the title
|
|
16
|
+
@tone? — hue, default 'neutral'
|
|
17
|
+
@appearance? — recipe worn at rest, default 'outlined'
|
|
18
|
+
@pressedAppearance? — recipe worn while pressed, default 'accent'
|
|
19
|
+
@size? — scale, default 'm'
|
|
20
|
+
@disabled?, @isDisabled? — dims and inerts, but stays focusable and announced
|
|
21
|
+
@busy?, @loading?, @isPending? — pending: aria-busy, a spinner, clicks ignored, FOCUS RETAINED
|
|
22
|
+
|
|
23
|
+
<:default> — yields { pressed }, so a caller can swap the glyph in place
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**The pressed state is an appearance swap, not a tint.** It changes recipe — outlined to accent — rather than shifting a colour, which is what makes it survive greyscale, a colour-blind reader, and a printout. This is the single most-copied mistake in toggle implementations.
|
|
27
|
+
|
|
28
|
+
**`@ariaState` exists because the same button means different things in different parents.** Standalone or in a toolbar it is `aria-pressed`; as a single-select **ToggleGroup** member beside `role='radio'` it must be `aria-checked`; `'none'` hands the ARIA to a parent that writes it.
|
|
29
|
+
|
|
30
|
+
**`@disabled` is `aria-disabled`, not the `disabled` attribute** — so the button stays focusable and announced, which is what a roving-tabindex toolbar requires. A natively disabled button vanishes from the tab order and a reader cannot discover it exists.
|
|
31
|
+
|
|
32
|
+
**`@busy` keeps focus.** A pending toggle is not a disabled toggle; disabling it on activation throws focus to the document.
|
|
33
|
+
|
|
34
|
+
**The block yields the resolved state** so a caller swaps the glyph in place rather than rendering two and hiding one.
|
|
35
|
+
|
|
36
|
+
## Prior art
|
|
37
|
+
|
|
38
|
+
**Radix/shadcn Toggle**, **React Aria's ToggleButton**, **MUI's ToggleButton**, **Tremor's Toggle**.
|
|
39
|
+
|
|
40
|
+
Where Pretui is better — three fixes over the Radix port: `aria-disabled` instead of `disabled` so it survives a toolbar; the pressed state as an appearance recipe rather than a tint so it reads in greyscale; and `@busy` as a real pending state that keeps focus rather than being modelled as a disable.
|
|
41
|
+
|
|
42
|
+
Where it is thinner: no indeterminate state, no long-press or hold behaviour, and no built-in tooltip for the icon-only mode — `@label` becomes the `title`, which is the browser's tooltip rather than the kit's.
|
|
43
|
+
|
|
44
|
+
## Accessibility
|
|
45
|
+
|
|
46
|
+
- **`aria-pressed` is the default and the right one** for a standalone toggle: it says "this control has a state" rather than "this control does a thing".
|
|
47
|
+
- **`@iconOnly` requires `@label`.** There is no text for a reader to fall back on, and an unnamed icon button is the most common accessibility defect in a formatting bar.
|
|
48
|
+
- **Disabled stays discoverable.** `aria-disabled` keeps the control in the tab order and in the accessibility tree, announced as unavailable rather than absent.
|
|
49
|
+
- **Busy is announced as busy** through `aria-busy`, and the spinner is `aria-hidden` so it is not read as content.
|
|
50
|
+
- **The state survives without colour.** The appearance swap changes border, fill and ink together, so pressed is perceivable in greyscale.
|
|
51
|
+
- **`@ariaState='none'` is a promise the parent has to keep.** Using it without a parent that writes the ARIA leaves a button with no state at all.
|
|
52
|
+
|
|
53
|
+
## Theming
|
|
54
|
+
|
|
55
|
+
The tone, appearance and size args resolve through the kit's shared recipe system rather than through component-local tokens, which is why a Toggle sits at exactly the same weight as a **Button** of the same size and tone beside it.
|
|
56
|
+
|
|
57
|
+
That shared resolution is the reason `@pressedAppearance` is an appearance name rather than a color: a theme defines what `accent` looks like once, and every pressed toggle in the product follows it — including in a theme that expresses accent through border weight rather than fill.
|
|
58
|
+
|
|
59
|
+
The styles sit in `@layer PretComposite`, above Button's `PretComponent` layer, so what this component sets on Button wins by layer order. A caller's unlayered CSS overrides both without a more specific selector.
|