@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,62 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
One component that paints nine compiled ambient fields behind its content: `dot-grid` (the default), `line-grid`, `mesh`, `aurora`, `wave`, `beams`, `glow`, `stripes`, `grain`.
|
|
4
|
+
|
|
5
|
+
It is chrome, never content. The painted layer is `aria-hidden` and takes no pointer events, the caller gives the element its size, and the field fills whatever box it lands in and inherits that box's border radius. Yield content into it and the content sits above the paint.
|
|
6
|
+
|
|
7
|
+
Reach for it when a surface needs texture rather than an image. If you want a scrim over content, that is **Backdrop**; if you want a decorative shape that is part of the composition rather than behind it, that is not this.
|
|
8
|
+
|
|
9
|
+
## The contract
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
@variant? — 'dot-grid' (default) | 'line-grid' | 'mesh' | 'aurora' | 'wave'
|
|
13
|
+
| 'beams' | 'glow' | 'stripes' | 'grain'
|
|
14
|
+
@animated? — ambient motion; OFF by default
|
|
15
|
+
@scale? — pattern size multiplier, clamped 0.25–4 (1 = the field's natural cell)
|
|
16
|
+
@speed? — motion rate, clamped 0.05–6; ignored when @animated is false
|
|
17
|
+
@opacity? — strength of the whole painted stack, 0–1
|
|
18
|
+
@hue? — primary colour; any CSS colour or a token reference
|
|
19
|
+
@hue2? — second colour: mesh, aurora, wave, beams, glow
|
|
20
|
+
@hue3? — third colour: aurora, wave, mesh
|
|
21
|
+
@fade? — 'none' | 'edges' | 'bottom' | 'top'
|
|
22
|
+
<:default> — content stacked above the field
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**The arg is `@variant` rather than the obvious `field`, and that is a platform trap rather than a naming preference.** An `Args` key named `field` makes the realm's lint endpoint inject a phantom card-api `field` import and then fail on it.
|
|
26
|
+
|
|
27
|
+
**Motion is off by default.** A background is chrome, and chrome that moves by default is a tax on every card that renders one. `@speed` of zero or less also counts as off. **`grain` is exempt in the other direction**: it never animates, whatever `@animated` says, because honest film grain needs per-frame noise and a drifting static noise tile reads as sliding sandpaper.
|
|
28
|
+
|
|
29
|
+
**Every numeric arg is clamped and every colour goes through the kit's CSS guard**, so a rejected value drops its declaration and the field's own default stands.
|
|
30
|
+
|
|
31
|
+
**Each field renders exactly the layers it uses** — one for `grain`, two for the grids and `mesh`, three for `aurora` and `wave`. An unused empty layer is cheap but not free, and this is the component that sits under everything.
|
|
32
|
+
|
|
33
|
+
**The paint wrapper clips, not the root.** Layers are deliberately oversized so a drifting pattern never shows its own edge; clipping them on the wrapper rather than on the element means yielded content is never cut off.
|
|
34
|
+
|
|
35
|
+
**The overhang invariant is the non-obvious part.** A drifting layer travels `--pretui-field-dx/dy` and has to stay covered for the whole trip, so each axis overhangs by at least the unsigned drift distance — `max()` of that and 25%, not a sum, so a tall box does not pay twice. Without it a coarse tile in a short box walks its own edge into view near the end of its cycle.
|
|
36
|
+
|
|
37
|
+
## Prior art
|
|
38
|
+
|
|
39
|
+
Three upstreams, all of them catalogues rather than components: **react-bits' Backgrounds** category (Aurora, DotGrid, GridMotion, Waves, Particles, Silk, Topography and some fifty others), **cult-ui's** `bg-*` and `hero-*` families, and **fancy's** AnimatedGradientWithSvg.
|
|
40
|
+
|
|
41
|
+
Where Pretui is better: **one import and one arg instead of a component per effect**, and **color from theme tokens instead of hardcoded palettes**, so a theme restyles every ambient surface in the product at once. Motion is compositor-driven with no animation frame loop, and `prefers-reduced-motion` lands on the base rule — which _is_ the resting state, so a reduced-motion reader gets a still, deliberate field rather than a frozen midpoint of a loop.
|
|
42
|
+
|
|
43
|
+
Where it is thinner, and the cuts were deliberate: **the shader and particle cohort is gone** — react-bits' Ballpit, MetaBalls and LiquidEther and cult-ui's shader heroes need a rendering engine, and this component owns none. **The mouse-follow variants are gone**, because a background that tracks the cursor cannot be screenshotted honestly. And nine fields is not fifty-five: the CSS-drivable subset covers the gradient, grid, wave and glow families, and anything outside it is not here at all.
|
|
44
|
+
|
|
45
|
+
## Accessibility
|
|
46
|
+
|
|
47
|
+
- **The paint layer is `aria-hidden` and `pointer-events: none`.** It contributes nothing to the accessibility tree and cannot intercept a click meant for the content above it. That is the whole accessibility design, and it is the right one: this is decoration.
|
|
48
|
+
- **`prefers-reduced-motion` stops every field.** Because the base rule is the resting state rather than frame zero of a keyframe, the still frame is composed rather than arbitrary.
|
|
49
|
+
- **Contrast is the caller's problem, and it is a real one.** Text yielded over `mesh`, `aurora` or `glow` sits on a gradient whose luminance varies across the box, so a contrast ratio measured at one point does not hold at another. `@opacity` and `@fade` are the levers; neither is checked, and nothing warns.
|
|
50
|
+
- **The field carries no name and no role**, so a surface whose _meaning_ is partly carried by its texture — a status conveyed by which field is painted — is conveying it invisibly.
|
|
51
|
+
|
|
52
|
+
## Theming
|
|
53
|
+
|
|
54
|
+
Caller-facing: `--pretui-field-scale`, `--pretui-field-opacity`, `--pretui-field-speed`, `--pretui-field-hue`, `--pretui-field-hue-2`, `--pretui-field-hue-3` — each written by the matching arg after its guard.
|
|
55
|
+
|
|
56
|
+
Derived on the element: `--pretui-field-cell` (22px × scale) and `--pretui-field-tile` (120px × scale), the two sizes every field's geometry is built from.
|
|
57
|
+
|
|
58
|
+
Per-layer internals, set by the field rules rather than by callers: `--pretui-field-o0` / `--pretui-field-o1` (layer opacity), `--pretui-field-fx0` / `--pretui-field-fy0` / `--pretui-field-fx1` / `--pretui-field-fy1` (offsets), `--pretui-field-r0` / `--pretui-field-r1` (rotation), `--pretui-field-s0` / `--pretui-field-s1` (scale), `--pretui-field-dx` / `--pretui-field-dy` with `--pretui-field-over-x` / `--pretui-field-over-y` (drift and its matching overhang).
|
|
59
|
+
|
|
60
|
+
Hue defaults are per field — the `--chart-*` channel for the pattern fields, `--foreground` for `grain` — so a theme that retunes its chart palette retunes every ambient surface with it, and a theme that changes `--foreground` changes the grain's weight in both light and dark without touching this component.
|
|
61
|
+
|
|
62
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
// Pretui — BackgroundField usage page. One knob rail drives the focus specimen and all nine catalogue tiles at once, so a single @hue change re-tints every field.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { fn } from '@ember/helper';
|
|
5
|
+
import { on } from '@ember/modifier';
|
|
6
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
7
|
+
import { BACKGROUND_FIELDS, BackgroundField } from './background-field';
|
|
8
|
+
import type { BackgroundFieldFade, BackgroundFieldName } from './background-field';
|
|
9
|
+
import { Chip } from './chip';
|
|
10
|
+
import { Token } from './token';
|
|
11
|
+
import { HUE_OPTIONS, hueArg } from '../demo-texture';
|
|
12
|
+
|
|
13
|
+
// ── BackgroundField ──────────────────────────────────────────────────────
|
|
14
|
+
const FADE_OPTIONS: BackgroundFieldFade[] = ['none', 'edges', 'bottom', 'top'];
|
|
15
|
+
|
|
16
|
+
class BackgroundFieldUsage extends Component {
|
|
17
|
+
@tracked variant: BackgroundFieldName = 'mesh';
|
|
18
|
+
@tracked animated = true;
|
|
19
|
+
@tracked scale = 1;
|
|
20
|
+
@tracked opacity = 1;
|
|
21
|
+
@tracked speed = 1;
|
|
22
|
+
@tracked hue = 'default';
|
|
23
|
+
@tracked hue2 = 'default';
|
|
24
|
+
@tracked hue3 = 'default';
|
|
25
|
+
@tracked fade: BackgroundFieldFade = 'none';
|
|
26
|
+
|
|
27
|
+
setVariant = (v: string) => (this.variant = v as BackgroundFieldName);
|
|
28
|
+
selectVariant = (v: BackgroundFieldName) => (this.variant = v);
|
|
29
|
+
setAnimated = (v: boolean) => (this.animated = v);
|
|
30
|
+
setScale = (v: number | null) => (this.scale = v ?? 1);
|
|
31
|
+
setOpacity = (v: number | null) => (this.opacity = v ?? 1);
|
|
32
|
+
setSpeed = (v: number | null) => (this.speed = v ?? 1);
|
|
33
|
+
setHue = (v: string) => (this.hue = v);
|
|
34
|
+
setHue2 = (v: string) => (this.hue2 = v);
|
|
35
|
+
setHue3 = (v: string) => (this.hue3 = v);
|
|
36
|
+
setFade = (v: string) => (this.fade = v as BackgroundFieldFade);
|
|
37
|
+
|
|
38
|
+
get fieldNames(): BackgroundFieldName[] {
|
|
39
|
+
return BACKGROUND_FIELDS;
|
|
40
|
+
}
|
|
41
|
+
get hueOptions() {
|
|
42
|
+
return HUE_OPTIONS;
|
|
43
|
+
}
|
|
44
|
+
get fadeOptions() {
|
|
45
|
+
return FADE_OPTIONS;
|
|
46
|
+
}
|
|
47
|
+
// Selection state is computed here rather than compared in the template —
|
|
48
|
+
// the kit ships no `eq` helper, and a getter keeps the tracked read honest.
|
|
49
|
+
// `pressed` is a STRING because both consumers need an explicit "false":
|
|
50
|
+
// `aria-pressed={{false}}` drops the attribute entirely, which reads as
|
|
51
|
+
// "not a toggle button" rather than "an unpressed toggle button".
|
|
52
|
+
get catalogue() {
|
|
53
|
+
return BACKGROUND_FIELDS.map((name) => ({
|
|
54
|
+
name,
|
|
55
|
+
pressed: name === this.variant ? 'true' : 'false',
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
get hueValue() {
|
|
59
|
+
return hueArg(this.hue);
|
|
60
|
+
}
|
|
61
|
+
get hue2Value() {
|
|
62
|
+
return hueArg(this.hue2);
|
|
63
|
+
}
|
|
64
|
+
get hue3Value() {
|
|
65
|
+
return hueArg(this.hue3);
|
|
66
|
+
}
|
|
67
|
+
get usage() {
|
|
68
|
+
let bits = [`@variant='${this.variant}'`];
|
|
69
|
+
if (this.animated) bits.push('@animated={{true}}');
|
|
70
|
+
if (this.scale !== 1) bits.push(`@scale={{${this.scale}}}`);
|
|
71
|
+
if (this.opacity !== 1) bits.push(`@opacity={{${this.opacity}}}`);
|
|
72
|
+
if (this.speed !== 1) bits.push(`@speed={{${this.speed}}}`);
|
|
73
|
+
if (this.hueValue) bits.push(`@hue='${this.hueValue}'`);
|
|
74
|
+
if (this.hue2Value) bits.push(`@hue2='${this.hue2Value}'`);
|
|
75
|
+
if (this.hue3Value) bits.push(`@hue3='${this.hue3Value}'`);
|
|
76
|
+
if (this.fade !== 'none') bits.push(`@fade='${this.fade}'`);
|
|
77
|
+
return `<BackgroundField ${bits.join(' ')}>\n <h3>Spring lots · Wuyishan</h3>\n <p>Da Hong Pao, first flush</p>\n</BackgroundField>`;
|
|
78
|
+
}
|
|
79
|
+
<template>
|
|
80
|
+
<FreestyleUsage
|
|
81
|
+
@name='BackgroundField'
|
|
82
|
+
@description="One component, nine compiled ambient fields. Reach for it when a surface needs atmosphere — a hero band, an empty state, a dashboard header, a card that should feel like a place rather than a box. The painted stack is aria-hidden and pointer-events:none, so it is chrome and never content (Law 6); yielded children stack above it and stay fully interactive. Every field rides theme tokens through color-mix, so it re-tints with the theme and with light/dark mode without a single dark branch — set a hue below and watch all nine change at once. Motion is CSS keyframes only (no shader, no canvas, no rAF), animates transform/opacity only, and stops dead under prefers-reduced-motion on a still resting state. Honest limits: the element has no intrinsic height, so you size it; grain is static whatever @animated says; and everything upstream that needs a shader or a particle integrator (Plasma, Galaxy, Iridescence, Dither, GridDistortion) is deliberately absent rather than faked."
|
|
83
|
+
@source={{this.usage}}
|
|
84
|
+
>
|
|
85
|
+
<:example>
|
|
86
|
+
<div class='bf-wrap'>
|
|
87
|
+
<div class='bf-focus'>
|
|
88
|
+
<BackgroundField
|
|
89
|
+
class='bf-focus-paint'
|
|
90
|
+
@variant={{this.variant}}
|
|
91
|
+
@animated={{this.animated}}
|
|
92
|
+
@scale={{this.scale}}
|
|
93
|
+
@opacity={{this.opacity}}
|
|
94
|
+
@speed={{this.speed}}
|
|
95
|
+
@hue={{this.hueValue}}
|
|
96
|
+
@hue2={{this.hue2Value}}
|
|
97
|
+
@hue3={{this.hue3Value}}
|
|
98
|
+
@fade={{this.fade}}
|
|
99
|
+
>
|
|
100
|
+
<div class='bf-copy'>
|
|
101
|
+
<Chip @hue='var(--chart-2)'>Spring lots</Chip>
|
|
102
|
+
<h3 class='bf-title'>Wuyishan · first flush</h3>
|
|
103
|
+
<p class='bf-sub'>Da Hong Pao and Rou Gui from Junshan Estate
|
|
104
|
+
Direct, cupped and priced. Content sits above the field and
|
|
105
|
+
stays selectable — the paint never intercepts a pointer.</p>
|
|
106
|
+
<p class='bf-meta'>Field
|
|
107
|
+
<Token @value={{this.variant}} />
|
|
108
|
+
· 2026-04-19</p>
|
|
109
|
+
</div>
|
|
110
|
+
</BackgroundField>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<div class='bf-cat'>
|
|
114
|
+
<p class='bf-cat-head'>The catalogue — all nine on the same knobs.
|
|
115
|
+
Pick one to focus it.</p>
|
|
116
|
+
<ul class='bf-grid'>
|
|
117
|
+
{{#each this.catalogue key='name' as |entry|}}
|
|
118
|
+
<li class='bf-tile' data-selected={{entry.pressed}}>
|
|
119
|
+
<BackgroundField
|
|
120
|
+
class='bf-tile-paint'
|
|
121
|
+
@variant={{entry.name}}
|
|
122
|
+
@animated={{this.animated}}
|
|
123
|
+
@scale={{this.scale}}
|
|
124
|
+
@opacity={{this.opacity}}
|
|
125
|
+
@speed={{this.speed}}
|
|
126
|
+
@hue={{this.hueValue}}
|
|
127
|
+
@hue2={{this.hue2Value}}
|
|
128
|
+
@hue3={{this.hue3Value}}
|
|
129
|
+
@fade={{this.fade}}
|
|
130
|
+
/>
|
|
131
|
+
<button
|
|
132
|
+
type='button'
|
|
133
|
+
class='bf-pick'
|
|
134
|
+
aria-pressed={{entry.pressed}}
|
|
135
|
+
{{on 'click' (fn this.selectVariant entry.name)}}
|
|
136
|
+
>{{entry.name}}</button>
|
|
137
|
+
</li>
|
|
138
|
+
{{/each}}
|
|
139
|
+
</ul>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
</:example>
|
|
143
|
+
<:api as |Args|>
|
|
144
|
+
<Args.String
|
|
145
|
+
@name='variant'
|
|
146
|
+
@options={{this.fieldNames}}
|
|
147
|
+
@value={{this.variant}}
|
|
148
|
+
@onInput={{this.setVariant}}
|
|
149
|
+
@defaultValue='dot-grid'
|
|
150
|
+
@description='Which compiled field to paint — the one knob that replaces 55 separate upstream imports. Named variant rather than field because an Args key called field makes the realm lint endpoint inject a phantom card-api import and then fail on it (platform trap, not a design choice).'
|
|
151
|
+
/>
|
|
152
|
+
<Args.Bool
|
|
153
|
+
@name='animated'
|
|
154
|
+
@value={{this.animated}}
|
|
155
|
+
@onInput={{this.setAnimated}}
|
|
156
|
+
@defaultValue={{false}}
|
|
157
|
+
@description='Ambient motion on/off. Off by default — a background is chrome, and chrome that moves by default taxes every card that renders one. Grain is exempt: honest film grain needs per-frame noise, and a drifting noise tile reads as sliding sandpaper.'
|
|
158
|
+
/>
|
|
159
|
+
<Args.Number
|
|
160
|
+
@name='scale'
|
|
161
|
+
@min={{0.25}}
|
|
162
|
+
@max={{4}}
|
|
163
|
+
@step={{0.25}}
|
|
164
|
+
@value={{this.scale}}
|
|
165
|
+
@onInput={{this.setScale}}
|
|
166
|
+
@defaultValue={{1}}
|
|
167
|
+
@description='Pattern size multiplier against the field’s natural cell (clamped 0.25–4). Drives --pretui-field-scale.'
|
|
168
|
+
/>
|
|
169
|
+
<Args.Number
|
|
170
|
+
@name='opacity'
|
|
171
|
+
@min={{0}}
|
|
172
|
+
@max={{1}}
|
|
173
|
+
@step={{0.05}}
|
|
174
|
+
@value={{this.opacity}}
|
|
175
|
+
@onInput={{this.setOpacity}}
|
|
176
|
+
@defaultValue={{1}}
|
|
177
|
+
@description='Strength of the whole painted stack, applied once to the paint wrapper rather than per layer, so the layers keep their relative weighting. Drives --pretui-field-opacity.'
|
|
178
|
+
/>
|
|
179
|
+
<Args.Number
|
|
180
|
+
@name='speed'
|
|
181
|
+
@min={{0.25}}
|
|
182
|
+
@max={{4}}
|
|
183
|
+
@step={{0.25}}
|
|
184
|
+
@value={{this.speed}}
|
|
185
|
+
@onInput={{this.setSpeed}}
|
|
186
|
+
@defaultValue={{1}}
|
|
187
|
+
@description='Motion rate multiplier (clamped 0.05–6); every field divides its own duration by it, so the layers within a field stay in their intended relationship. Ignored when @animated is false.'
|
|
188
|
+
/>
|
|
189
|
+
<Args.String
|
|
190
|
+
@name='hue'
|
|
191
|
+
@options={{this.hueOptions}}
|
|
192
|
+
@value={{this.hue}}
|
|
193
|
+
@onInput={{this.setHue}}
|
|
194
|
+
@defaultValue='var(--chart-1) — var(--foreground) for grain'
|
|
195
|
+
@description='Primary field color. Any CSS color, or a token reference like var(--chart-4) — the token form is the point: it re-tints with the theme. “default” here means the arg is omitted entirely.'
|
|
196
|
+
/>
|
|
197
|
+
<Args.String
|
|
198
|
+
@name='hue2'
|
|
199
|
+
@options={{this.hueOptions}}
|
|
200
|
+
@value={{this.hue2}}
|
|
201
|
+
@onInput={{this.setHue2}}
|
|
202
|
+
@defaultValue='var(--chart-3)'
|
|
203
|
+
@description='Secondary color, used by every field that layers two hues (dot-grid, line-grid, mesh, aurora, wave, beams, glow, stripes). Ignored by grain, which is a single layer.'
|
|
204
|
+
/>
|
|
205
|
+
<Args.String
|
|
206
|
+
@name='hue3'
|
|
207
|
+
@options={{this.hueOptions}}
|
|
208
|
+
@value={{this.hue3}}
|
|
209
|
+
@onInput={{this.setHue3}}
|
|
210
|
+
@defaultValue='var(--chart-2)'
|
|
211
|
+
@description='Third color. Only mesh, aurora and wave compose a third layer; the other fields ignore it.'
|
|
212
|
+
/>
|
|
213
|
+
<Args.String
|
|
214
|
+
@name='fade'
|
|
215
|
+
@options={{this.fadeOptions}}
|
|
216
|
+
@value={{this.fade}}
|
|
217
|
+
@onInput={{this.setFade}}
|
|
218
|
+
@defaultValue='none'
|
|
219
|
+
@description='Edge falloff masked over the whole painted stack: a soft vignette (edges) or a one-directional fade (bottom / top). Use it to hand a field back to the surface it sits on instead of ending at a hard rectangle.'
|
|
220
|
+
/>
|
|
221
|
+
<Args.Yield
|
|
222
|
+
@description='The default block stacks above the field in its own positioned layer. Omit it entirely and the component renders paint only — but then you must give the element a height, since the field has no intrinsic size.'
|
|
223
|
+
@hideControls={{true}}
|
|
224
|
+
/>
|
|
225
|
+
</:api>
|
|
226
|
+
</FreestyleUsage>
|
|
227
|
+
<style scoped>
|
|
228
|
+
.bf-wrap {
|
|
229
|
+
display: grid;
|
|
230
|
+
gap: var(--space-5, 15px);
|
|
231
|
+
}
|
|
232
|
+
/* radius lives on the wrapper; BackgroundField’s root inherits it, which
|
|
233
|
+
is how the component is meant to be cornered — no override needed */
|
|
234
|
+
.bf-focus {
|
|
235
|
+
position: relative;
|
|
236
|
+
border-radius: var(--radius-surface, 10px);
|
|
237
|
+
box-shadow: 0 0 0 1px var(--border);
|
|
238
|
+
overflow: hidden;
|
|
239
|
+
}
|
|
240
|
+
.bf-focus-paint {
|
|
241
|
+
min-height: 200px;
|
|
242
|
+
padding: var(--space-6, 19px);
|
|
243
|
+
box-sizing: border-box;
|
|
244
|
+
}
|
|
245
|
+
.bf-copy {
|
|
246
|
+
display: grid;
|
|
247
|
+
gap: var(--space-2, 6px);
|
|
248
|
+
justify-items: start;
|
|
249
|
+
max-width: 46ch;
|
|
250
|
+
}
|
|
251
|
+
.bf-title {
|
|
252
|
+
margin: 0;
|
|
253
|
+
font-size: var(--text-heading, 19px);
|
|
254
|
+
font-weight: var(--weight-heading, 700);
|
|
255
|
+
letter-spacing: var(--track-heading, -0.02em);
|
|
256
|
+
color: var(--foreground);
|
|
257
|
+
}
|
|
258
|
+
.bf-sub {
|
|
259
|
+
margin: 0;
|
|
260
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
261
|
+
line-height: 1.5;
|
|
262
|
+
color: var(--muted-foreground);
|
|
263
|
+
}
|
|
264
|
+
.bf-meta {
|
|
265
|
+
margin: 0;
|
|
266
|
+
font-size: var(--text-ui-xs, 11px);
|
|
267
|
+
color: var(--muted-foreground);
|
|
268
|
+
}
|
|
269
|
+
.bf-cat-head {
|
|
270
|
+
margin: 0 0 var(--space-3, 8px);
|
|
271
|
+
font-size: var(--text-ui-xs, 11px);
|
|
272
|
+
letter-spacing: var(--track-ui, 0.01em);
|
|
273
|
+
text-transform: uppercase;
|
|
274
|
+
color: var(--muted-foreground);
|
|
275
|
+
}
|
|
276
|
+
.bf-grid {
|
|
277
|
+
display: grid;
|
|
278
|
+
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
|
279
|
+
gap: var(--space-3, 8px);
|
|
280
|
+
margin: 0;
|
|
281
|
+
padding: 0;
|
|
282
|
+
list-style: none;
|
|
283
|
+
}
|
|
284
|
+
.bf-tile {
|
|
285
|
+
position: relative;
|
|
286
|
+
border-radius: var(--radius-chip, 6px);
|
|
287
|
+
box-shadow: 0 0 0 1px var(--border);
|
|
288
|
+
overflow: hidden;
|
|
289
|
+
}
|
|
290
|
+
.bf-tile[data-selected='true'] {
|
|
291
|
+
box-shadow: 0 0 0 2px var(--primary);
|
|
292
|
+
}
|
|
293
|
+
.bf-tile-paint {
|
|
294
|
+
height: 92px;
|
|
295
|
+
}
|
|
296
|
+
/* the whole tile is one real button whose content is just the field
|
|
297
|
+
name — the field itself never intercepts the pointer, so the target
|
|
298
|
+
is the tile and the accessible name is the field */
|
|
299
|
+
.bf-pick {
|
|
300
|
+
position: absolute;
|
|
301
|
+
inset: 0;
|
|
302
|
+
display: flex;
|
|
303
|
+
align-items: flex-end;
|
|
304
|
+
margin: 0;
|
|
305
|
+
padding: var(--space-2, 6px) var(--space-3, 8px);
|
|
306
|
+
border: 0;
|
|
307
|
+
background: linear-gradient(
|
|
308
|
+
to top,
|
|
309
|
+
color-mix(in oklch, var(--card) 82%, transparent) 0%,
|
|
310
|
+
transparent 58%
|
|
311
|
+
);
|
|
312
|
+
font-family: var(--font-mono);
|
|
313
|
+
font-size: var(--text-ui-xs, 11px);
|
|
314
|
+
color: var(--foreground);
|
|
315
|
+
cursor: pointer;
|
|
316
|
+
text-align: left;
|
|
317
|
+
}
|
|
318
|
+
.bf-pick:focus-visible {
|
|
319
|
+
outline: 2px solid var(--ring);
|
|
320
|
+
outline-offset: -2px;
|
|
321
|
+
}
|
|
322
|
+
</style>
|
|
323
|
+
</template>
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export const DEMOS_BACKGROUND_FIELD: Record<string, unknown> = {
|
|
327
|
+
BackgroundField: BackgroundFieldUsage,
|
|
328
|
+
};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// Pretui — Badge: a count or status mark overlaid on the corner of another control.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { VisuallyHidden } from './visually-hidden';
|
|
4
|
+
import { guidFor } from '@ember/object/internals';
|
|
5
|
+
import { cornerHueStyle, describesFocusable, resolveCorner, resolveCornerTone } from '../internal/corner-mark';
|
|
6
|
+
import type { CornerPlacement } from '../internal/corner-mark';
|
|
7
|
+
import type { PretuiTone, PretuiToneArg } from '../pretui-primitives';
|
|
8
|
+
|
|
9
|
+
export interface BadgeSignature {
|
|
10
|
+
Args: {
|
|
11
|
+
/** The number to show. Omit it, or pass `@dot`, for a mark without a number. */
|
|
12
|
+
count?: number;
|
|
13
|
+
/** Above this the badge reads `max+` (default 99). */
|
|
14
|
+
max?: number;
|
|
15
|
+
/** A small dot instead of the count. */
|
|
16
|
+
dot?: boolean;
|
|
17
|
+
/** Show the badge at a count of 0 (hidden by default). */
|
|
18
|
+
showZero?: boolean;
|
|
19
|
+
/** Hide the badge without unmounting the child. */
|
|
20
|
+
invisible?: boolean;
|
|
21
|
+
/** Default 'danger'. Accepts the kit's tone spellings. */
|
|
22
|
+
tone?: PretuiToneArg;
|
|
23
|
+
/** Which corner (default 'top-end'). The physical spellings map. */
|
|
24
|
+
placement?: CornerPlacement | string;
|
|
25
|
+
/** Pull the mark in for a round child such as an Avatar. */
|
|
26
|
+
circular?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* What the count means, read after it: `@label='unread'` announces
|
|
29
|
+
* "3 unread". Without it the count is announced alone.
|
|
30
|
+
*/
|
|
31
|
+
label?: string;
|
|
32
|
+
};
|
|
33
|
+
Blocks: { default: [] };
|
|
34
|
+
Element: HTMLSpanElement;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The overlay badge MUI, Ant and Mantine ship — the unread 3 on an inbox
|
|
39
|
+
* icon, 99+ on an avatar. shadcn's inline Badge is Chip in Pretui; a dot
|
|
40
|
+
* with no number is Indicator.
|
|
41
|
+
*
|
|
42
|
+
* The visible mark is `aria-hidden`: a bare "3" read in the middle of a
|
|
43
|
+
* button name means nothing. The meaning is a visually hidden run after the
|
|
44
|
+
* child — "3 unread" — and the child's first focusable element points at it
|
|
45
|
+
* with `aria-describedby`, so focusing the control reads its own name and
|
|
46
|
+
* then the count.
|
|
47
|
+
*/
|
|
48
|
+
export class Badge extends Component<BadgeSignature> {
|
|
49
|
+
private spokenId = guidFor(this) + '-spoken';
|
|
50
|
+
get describedBy(): string | undefined {
|
|
51
|
+
return this.spoken ? this.spokenId : undefined;
|
|
52
|
+
}
|
|
53
|
+
get tone(): PretuiTone {
|
|
54
|
+
return resolveCornerTone(this.args.tone, 'danger');
|
|
55
|
+
}
|
|
56
|
+
get max(): number {
|
|
57
|
+
return this.args.max ?? 99;
|
|
58
|
+
}
|
|
59
|
+
get hasCount(): boolean {
|
|
60
|
+
return typeof this.args.count === 'number' && Number.isFinite(this.args.count);
|
|
61
|
+
}
|
|
62
|
+
get visible(): boolean {
|
|
63
|
+
if (this.args.invisible) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (this.args.dot) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
if (!this.hasCount) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
return (this.args.count as number) > 0 || (this.args.showZero ?? false);
|
|
73
|
+
}
|
|
74
|
+
get isDot(): boolean {
|
|
75
|
+
return (this.args.dot ?? false) || !this.hasCount;
|
|
76
|
+
}
|
|
77
|
+
get display(): string {
|
|
78
|
+
let count = this.args.count as number;
|
|
79
|
+
return count > this.max ? `${this.max}+` : String(count);
|
|
80
|
+
}
|
|
81
|
+
get spoken(): string | undefined {
|
|
82
|
+
if (!this.visible) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
let words = this.hasCount ? [String(this.args.count)] : [];
|
|
86
|
+
if (this.args.label) {
|
|
87
|
+
words.push(this.args.label);
|
|
88
|
+
}
|
|
89
|
+
return words.length ? words.join(' ') : undefined;
|
|
90
|
+
}
|
|
91
|
+
get style() {
|
|
92
|
+
return cornerHueStyle(this.tone);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
<template>
|
|
96
|
+
<span
|
|
97
|
+
class='pretui-badge'
|
|
98
|
+
data-placement={{resolveCorner @placement}}
|
|
99
|
+
data-circular={{if @circular 'true' 'false'}}
|
|
100
|
+
style={{this.style}}
|
|
101
|
+
data-test-pretui-badge
|
|
102
|
+
...attributes
|
|
103
|
+
{{describesFocusable this.describedBy}}
|
|
104
|
+
>
|
|
105
|
+
{{yield}}
|
|
106
|
+
{{#if this.visible}}
|
|
107
|
+
<span
|
|
108
|
+
class='pretui-badge-mark'
|
|
109
|
+
data-dot={{if this.isDot 'true' 'false'}}
|
|
110
|
+
data-tone={{this.tone}}
|
|
111
|
+
aria-hidden='true'
|
|
112
|
+
data-test-pretui-badge-mark
|
|
113
|
+
>{{#unless this.isDot}}{{this.display}}{{/unless}}</span>
|
|
114
|
+
{{/if}}
|
|
115
|
+
{{#if this.spoken}}
|
|
116
|
+
<VisuallyHidden id={{this.spokenId}} data-test-pretui-badge-spoken>{{this.spoken}}</VisuallyHidden>
|
|
117
|
+
{{/if}}
|
|
118
|
+
</span>
|
|
119
|
+
<style scoped>
|
|
120
|
+
@layer PretComponent {
|
|
121
|
+
.pretui-badge {
|
|
122
|
+
position: relative;
|
|
123
|
+
display: inline-flex;
|
|
124
|
+
vertical-align: middle;
|
|
125
|
+
--pretui-mark-inset: 0%;
|
|
126
|
+
--pretui-mark-x: 50%;
|
|
127
|
+
}
|
|
128
|
+
.pretui-badge:dir(rtl) {
|
|
129
|
+
--pretui-mark-x: -50%;
|
|
130
|
+
}
|
|
131
|
+
.pretui-badge[data-circular='true'] {
|
|
132
|
+
--pretui-mark-inset: 14%;
|
|
133
|
+
}
|
|
134
|
+
.pretui-badge-mark {
|
|
135
|
+
position: absolute;
|
|
136
|
+
z-index: 1;
|
|
137
|
+
display: inline-grid;
|
|
138
|
+
place-items: center;
|
|
139
|
+
box-sizing: border-box;
|
|
140
|
+
min-inline-size: 1.125rem;
|
|
141
|
+
block-size: 1.125rem;
|
|
142
|
+
padding-inline: 0.3rem;
|
|
143
|
+
border-radius: 999px;
|
|
144
|
+
background: var(--pretui-mark-hue);
|
|
145
|
+
color: var(--pretui-badge-ink, var(--card));
|
|
146
|
+
box-shadow: 0 0 0 2px var(--pretui-badge-ring, var(--card));
|
|
147
|
+
font-family: var(--font-sans);
|
|
148
|
+
font-size: var(--text-ui-xs, 0.66rem);
|
|
149
|
+
font-weight: 600;
|
|
150
|
+
font-variant-numeric: tabular-nums;
|
|
151
|
+
line-height: 1;
|
|
152
|
+
white-space: nowrap;
|
|
153
|
+
pointer-events: none;
|
|
154
|
+
}
|
|
155
|
+
.pretui-badge-mark[data-dot='true'] {
|
|
156
|
+
min-inline-size: 0.5rem;
|
|
157
|
+
inline-size: 0.5rem;
|
|
158
|
+
block-size: 0.5rem;
|
|
159
|
+
padding: 0;
|
|
160
|
+
}
|
|
161
|
+
.pretui-badge-mark[data-tone='warning'],
|
|
162
|
+
.pretui-badge-mark[data-tone='attention'] {
|
|
163
|
+
color: var(--foreground);
|
|
164
|
+
}
|
|
165
|
+
.pretui-badge[data-placement='top-end'] .pretui-badge-mark {
|
|
166
|
+
inset-block-start: var(--pretui-mark-inset);
|
|
167
|
+
inset-inline-end: var(--pretui-mark-inset);
|
|
168
|
+
translate: var(--pretui-mark-x) -50%;
|
|
169
|
+
}
|
|
170
|
+
.pretui-badge[data-placement='top-start'] .pretui-badge-mark {
|
|
171
|
+
inset-block-start: var(--pretui-mark-inset);
|
|
172
|
+
inset-inline-start: var(--pretui-mark-inset);
|
|
173
|
+
translate: calc(-1 * var(--pretui-mark-x)) -50%;
|
|
174
|
+
}
|
|
175
|
+
.pretui-badge[data-placement='bottom-end'] .pretui-badge-mark {
|
|
176
|
+
inset-block-end: var(--pretui-mark-inset);
|
|
177
|
+
inset-inline-end: var(--pretui-mark-inset);
|
|
178
|
+
translate: var(--pretui-mark-x) 50%;
|
|
179
|
+
}
|
|
180
|
+
.pretui-badge[data-placement='bottom-start'] .pretui-badge-mark {
|
|
181
|
+
inset-block-end: var(--pretui-mark-inset);
|
|
182
|
+
inset-inline-start: var(--pretui-mark-inset);
|
|
183
|
+
translate: calc(-1 * var(--pretui-mark-x)) 50%;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
</style>
|
|
187
|
+
</template>
|
|
188
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A **count or status mark on the corner of another control**: the unread 3 on an inbox button, 99+ on an avatar, a dot on a tab with new activity. It wraps the control and overlays the mark on one corner.
|
|
4
|
+
|
|
5
|
+
Reach for a neighbour when the mark is something else:
|
|
6
|
+
|
|
7
|
+
- **Chip** is an inline label in the flow of text. That is what shadcn calls `Badge`.
|
|
8
|
+
- **StatusChip** is a tone-mapped inline chip.
|
|
9
|
+
- **Indicator** is a named dot with no number, such as online or live.
|
|
10
|
+
|
|
11
|
+
## The contract
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
@count?, @max? (default 99), @dot?, @showZero?, @invisible?
|
|
15
|
+
@tone? (default 'danger'), @placement? ('top-end' | 'top-start' | 'bottom-end' | 'bottom-start'; default 'top-end')
|
|
16
|
+
@circular?, @label?
|
|
17
|
+
<:default> — the control the badge sits on
|
|
18
|
+
Element: HTMLSpanElement
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**The number is shown; the meaning is spoken.** The visible mark is `aria-hidden`, because a bare "3" read in the middle of a button name means nothing. The count, followed by `@label`, is a visually hidden run after the child: `@label='unread'` gives "3 unread". The child's first focusable element points at that run with `aria-describedby`, so focusing an inbox button reads "Messages, button, 3 unread": its own name, then the count. Existing descriptions on the child are kept.
|
|
22
|
+
|
|
23
|
+
**Display rules.** Above `@max` the mark reads `99+` (or `9+` with `@max={{9}}`), and the spoken count stays exact. A count of 0 hides the badge unless `@showZero`. `@dot`, or no `@count` at all, draws a dot without a number. `@invisible` hides the mark and its announcement without unmounting the child.
|
|
24
|
+
|
|
25
|
+
**Placement is logical**, so `top-end` follows the reading direction in RTL and the mark still straddles the corner, and the MUI and Mantine physical spellings (`top-right`…) map. `@circular` pulls the mark in toward a round child such as an **Avatar** so it sits on the curve, not in empty space.
|
|
26
|
+
|
|
27
|
+
## Prior art
|
|
28
|
+
|
|
29
|
+
**MUI `Badge`** takes `badgeContent`, `max`, `showZero`, `invisible`, `variant` (`standard | dot`), `color`, `anchorOrigin` and `overlap` (`rectangular | circular`). **Ant `Badge`** takes `count`, `overflowCount`, `dot`, `showZero`, `offset`, `color` and `status`. **Mantine** puts the overlay on `Indicator` and keeps `Badge` inline. **shadcn `Badge`** is inline only.
|
|
30
|
+
|
|
31
|
+
Where Pretui is better: **the announcement is built in.** MUI and Ant render the count as plain text inside the badge, so a screen reader reads "Messages 3" or reads the number with no context. Here focus reads the child's own name and then "3 unread" as its description. **Placement is logical** rather than physical.
|
|
32
|
+
|
|
33
|
+
Where it is thinner: **no `offset`** for pixel nudging; `@circular` covers the common case. There is **no custom content**: the mark is a number or a dot, not arbitrary markup. **No `status` text mode** as in Ant; use **StatusChip**.
|
|
34
|
+
|
|
35
|
+
## Accessibility
|
|
36
|
+
|
|
37
|
+
No APG pattern. What matters is the name.
|
|
38
|
+
|
|
39
|
+
- **The mark is `aria-hidden`.** The tests assert it.
|
|
40
|
+
- **The spoken run follows the child**, "3 unread", and the child's text is untouched. A focusable child is described by the run (`aria-describedby`). The tests assert the run, the exact count above `@max`, the child's name, and the description wiring.
|
|
41
|
+
- **Hidden means silent.** A zero badge without `@showZero`, and an `@invisible` badge, have no spoken run either. The tests assert both.
|
|
42
|
+
- **Give `@label` the meaning**, not the colour. "unread", "new", "failed builds".
|
|
43
|
+
- **Live changes are not announced.** A count that ticks up while the user is elsewhere is not a live region. If the change matters right now, announce it separately, for example with **Toaster**.
|
|
44
|
+
|
|
45
|
+
## Theming
|
|
46
|
+
|
|
47
|
+
`--pretui-mark-hue` (set from the tone: `--destructive` by default, or `--primary`, `--pretui-info`, `--success`, `--warning`, `--pretui-attention`, `--muted-foreground`), `--pretui-badge-ink` (the number, default `--card`), `--pretui-badge-ring` (the separating ring, default `--card`), `--foreground` (ink on warning and attention hues), `--font-sans` and `--text-ui-xs`.
|
|
48
|
+
|
|
49
|
+
The ring mixes against `--card`, so the mark reads as cut out of the control in any theme. The 1.125rem height, the 0.5rem dot and the half-out corner offset are fixed.
|
|
50
|
+
|
|
51
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
52
|
+
|
|
53
|
+
## React ecosystem
|
|
54
|
+
|
|
55
|
+
| Agent types | Give them |
|
|
56
|
+
| --------------------------------- | --------------------------------- |
|
|
57
|
+
| MUI `<Badge badgeContent={4}>` | `<Badge @count={{4}} @label='…'>` |
|
|
58
|
+
| MUI `max` / Ant `overflowCount` | `@max` |
|
|
59
|
+
| MUI `variant="dot"` / Ant `dot` | `@dot={{true}}` |
|
|
60
|
+
| MUI `anchorOrigin` / Ant `offset` | `@placement`; no pixel offset |
|
|
61
|
+
| MUI `overlap="circular"` | `@circular={{true}}` |
|
|
62
|
+
| shadcn `<Badge>` (inline) | **Chip** |
|