@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,123 @@
|
|
|
1
|
+
// Pretui — Descriptions usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import { Button } from './button';
|
|
6
|
+
import { Descriptions } from './descriptions';
|
|
7
|
+
import type { DescriptionsItem } from './descriptions';
|
|
8
|
+
import type { ListingSizeArg } from '../internal/reading-listing';
|
|
9
|
+
import { LOTS, SIZES } from '../examples-listing';
|
|
10
|
+
import type { Lot } from '../examples-listing';
|
|
11
|
+
|
|
12
|
+
class DescriptionsUsage extends Component {
|
|
13
|
+
sizes = SIZES;
|
|
14
|
+
layouts = ['horizontal', 'vertical'];
|
|
15
|
+
|
|
16
|
+
@tracked columns = 3;
|
|
17
|
+
@tracked bordered = true;
|
|
18
|
+
@tracked layout: 'horizontal' | 'vertical' = 'horizontal';
|
|
19
|
+
@tracked size: ListingSizeArg = 'm';
|
|
20
|
+
@tracked colon = false;
|
|
21
|
+
|
|
22
|
+
setColumns = (v: number) => (this.columns = v);
|
|
23
|
+
setBordered = (v: boolean) => (this.bordered = v);
|
|
24
|
+
setLayout = (v: string) => (this.layout = v as 'horizontal' | 'vertical');
|
|
25
|
+
setSize = (v: string) => (this.size = v as ListingSizeArg);
|
|
26
|
+
setColon = (v: boolean) => (this.colon = v);
|
|
27
|
+
|
|
28
|
+
items: DescriptionsItem[] = [
|
|
29
|
+
{ label: 'Lot', value: (LOTS[0] as Lot).id, mono: true },
|
|
30
|
+
{ label: 'Tea', value: (LOTS[0] as Lot).tea },
|
|
31
|
+
{ label: 'Supplier', value: (LOTS[0] as Lot).supplier },
|
|
32
|
+
{ label: 'Origin', value: (LOTS[0] as Lot).place },
|
|
33
|
+
{ label: 'Grade', value: (LOTS[0] as Lot).grade },
|
|
34
|
+
{ label: 'Weight', value: String((LOTS[0] as Lot).kg) + ' kg', mono: true },
|
|
35
|
+
{ label: 'Price', value: (LOTS[0] as Lot).price, mono: true },
|
|
36
|
+
{ label: 'Chests', value: '2', mono: true },
|
|
37
|
+
{ label: 'Cupping note', value: (LOTS[0] as Lot).note, span: 'fill' },
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<FreestyleUsage
|
|
42
|
+
@name='Descriptions'
|
|
43
|
+
@slug='descriptions'
|
|
44
|
+
@description='The read-only record display: label/value pairs in an N-column grid that folds to stacked. It is not RecordDetail (that is the editing machine) and not KeyValue (that is the plain two-column dl, which stays exactly what it is).'
|
|
45
|
+
>
|
|
46
|
+
<:example>
|
|
47
|
+
<Descriptions
|
|
48
|
+
@items={{this.items}}
|
|
49
|
+
@columns={{this.columns}}
|
|
50
|
+
@bordered={{this.bordered}}
|
|
51
|
+
@layout={{this.layout}}
|
|
52
|
+
@size={{this.size}}
|
|
53
|
+
@colon={{this.colon}}
|
|
54
|
+
@title='Lot record'
|
|
55
|
+
>
|
|
56
|
+
<:extra>
|
|
57
|
+
<Button @appearance='outlined' @size='s'>Edit</Button>
|
|
58
|
+
</:extra>
|
|
59
|
+
</Descriptions>
|
|
60
|
+
</:example>
|
|
61
|
+
<:api as |Args|>
|
|
62
|
+
<Args.Object
|
|
63
|
+
@name='items'
|
|
64
|
+
@value={{this.items}}
|
|
65
|
+
@description='The pairs, in reading order. Each carries label, an optional value string, an optional span (a number, or "fill" to take the rest of the row), an optional key, and mono for machine values.'
|
|
66
|
+
/>
|
|
67
|
+
<Args.Number
|
|
68
|
+
@name='columns'
|
|
69
|
+
@value={{this.columns}}
|
|
70
|
+
@min={{1}}
|
|
71
|
+
@max={{4}}
|
|
72
|
+
@step={{1}}
|
|
73
|
+
@defaultValue={{3}}
|
|
74
|
+
@description='Pairs per row at full width, 1–4. column is accepted as Ant’s spelling. The container query only ever REDUCES this — narrow the artboard and watch it go 3 → 2 → 1 and then fold the label above the value. Ant resolves the same thing through matchMedia on the window, which is the wrong box inside a card.'
|
|
75
|
+
@onInput={{this.setColumns}}
|
|
76
|
+
/>
|
|
77
|
+
<Args.Bool
|
|
78
|
+
@name='bordered'
|
|
79
|
+
@value={{this.bordered}}
|
|
80
|
+
@defaultValue={{false}}
|
|
81
|
+
@description='Rule the grid and tint the label cells. Unlike Ant, the semantics do not change with the flag: dt is the term and dd the description in both modes, because this is a dl and not a table dressed as one.'
|
|
82
|
+
@onInput={{this.setBordered}}
|
|
83
|
+
/>
|
|
84
|
+
<Args.String
|
|
85
|
+
@name='layout'
|
|
86
|
+
@value={{this.layout}}
|
|
87
|
+
@options={{this.layouts}}
|
|
88
|
+
@defaultValue='horizontal'
|
|
89
|
+
@description="'horizontal' puts the label beside its value, 'vertical' above it. At the narrowest container width horizontal folds to vertical anyway — two columns of text in a 26rem pane is not a record, it is a wrap."
|
|
90
|
+
@onInput={{this.setLayout}}
|
|
91
|
+
/>
|
|
92
|
+
<Args.String
|
|
93
|
+
@name='size'
|
|
94
|
+
@value={{this.size}}
|
|
95
|
+
@options={{this.sizes}}
|
|
96
|
+
@defaultValue='m'
|
|
97
|
+
@description='Density on the house scale.'
|
|
98
|
+
@onInput={{this.setSize}}
|
|
99
|
+
/>
|
|
100
|
+
<Args.Bool
|
|
101
|
+
@name='colon'
|
|
102
|
+
@value={{this.colon}}
|
|
103
|
+
@defaultValue={{false}}
|
|
104
|
+
@description='Trailing colon after every label. Ant defaults this to true, which puts a colon on labels that already sit in their own tinted cell; here it is opt-in and the glyph is aria-hidden so it is never read aloud.'
|
|
105
|
+
@onInput={{this.setColon}}
|
|
106
|
+
/>
|
|
107
|
+
<Args.String
|
|
108
|
+
@name='labelWidth'
|
|
109
|
+
@description='Width of the label column in horizontal layout (any CSS length; default max-content). It goes through the kit’s cssValue guard, so a caller string can never inject a second declaration.'
|
|
110
|
+
@hideControls={{true}}
|
|
111
|
+
/>
|
|
112
|
+
<Args.Yield
|
|
113
|
+
@description='Named blocks: value (item, index) for markup in a description; title and extra for the header.'
|
|
114
|
+
@hideControls={{true}}
|
|
115
|
+
/>
|
|
116
|
+
</:api>
|
|
117
|
+
</FreestyleUsage>
|
|
118
|
+
</template>
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export const DEMOS_DESCRIPTIONS: Record<string, unknown> = {
|
|
122
|
+
Descriptions: DescriptionsUsage,
|
|
123
|
+
};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
// Pretui — Dialog: a modal on the native <dialog> top layer.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { emit, resolveSize } from '../pretui-primitives';
|
|
4
|
+
import type { PretuiSizeArg } from '../pretui-primitives';
|
|
5
|
+
import { provide } from 'ember-provide-consume-context';
|
|
6
|
+
import { POPUPS_IN_PLACE, resolveOpen, modalBehavior } from '../internal/overlay';
|
|
7
|
+
import type { OpenArgs } from '../internal/overlay';
|
|
8
|
+
|
|
9
|
+
/** The three width steps a Dialog paints, and every spelling of them. */
|
|
10
|
+
type DialogSize = 's' | 'm' | 'l';
|
|
11
|
+
const DIALOG_SIZES: Record<string, DialogSize> = {
|
|
12
|
+
xs: 's',
|
|
13
|
+
s: 's',
|
|
14
|
+
m: 'm',
|
|
15
|
+
l: 'l',
|
|
16
|
+
xl: 'l',
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export interface DialogSignature {
|
|
20
|
+
Args: OpenArgs & {
|
|
21
|
+
/** Canonical close notify. Optional since 2026-08-13: a caller who only
|
|
22
|
+
* passes `@onOpenChange` (the Radix/shadcn contract, and what an agent
|
|
23
|
+
* will type) used to hit a hard `this.args.onClose is not a function`. */
|
|
24
|
+
onClose?: () => void;
|
|
25
|
+
/** alias — the Radix/shadcn layer notify, called with `false` on close.
|
|
26
|
+
* A layer needs a two-way knob: `@onClose` alone cannot reopen it. */
|
|
27
|
+
onOpenChange?: (open: boolean) => void;
|
|
28
|
+
label?: string;
|
|
29
|
+
/** the `s|m|l` width steps; `sm`/`md`/`lg`/`default` accepted */
|
|
30
|
+
size?: DialogSize | PretuiSizeArg;
|
|
31
|
+
dismissible?: boolean;
|
|
32
|
+
};
|
|
33
|
+
Blocks: { title: []; default: []; footer: [] };
|
|
34
|
+
Element: HTMLDialogElement;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export class Dialog extends Component<DialogSignature> {
|
|
38
|
+
@provide(POPUPS_IN_PLACE)
|
|
39
|
+
get popupsInPlace() {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
get dismissible() {
|
|
43
|
+
return this.args.dismissible ?? true;
|
|
44
|
+
}
|
|
45
|
+
get open() {
|
|
46
|
+
return resolveOpen(this.args);
|
|
47
|
+
}
|
|
48
|
+
get size(): DialogSize {
|
|
49
|
+
return DIALOG_SIZES[resolveSize(this.args.size)] ?? 'm';
|
|
50
|
+
}
|
|
51
|
+
private requestClose() {
|
|
52
|
+
emit([this.args.onClose]);
|
|
53
|
+
emit([this.args.onOpenChange], false);
|
|
54
|
+
}
|
|
55
|
+
onCancel = (e: Event) => {
|
|
56
|
+
// Escape. Keep the element controlled: never let the platform close it
|
|
57
|
+
// out from under the @open arg.
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
if (this.dismissible) {
|
|
60
|
+
this.requestClose();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
onClick = (e: Event) => {
|
|
64
|
+
// The inner wrapper covers the whole dialog, so a click that targets the
|
|
65
|
+
// <dialog> itself landed on the ::backdrop.
|
|
66
|
+
if (this.dismissible && e.target === e.currentTarget) {
|
|
67
|
+
this.requestClose();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
<template>
|
|
71
|
+
<dialog
|
|
72
|
+
class='pretui-dialog'
|
|
73
|
+
data-size={{this.size}}
|
|
74
|
+
aria-label={{@label}}
|
|
75
|
+
data-test-pretui-dialog
|
|
76
|
+
{{modalBehavior this.open this.onCancel this.onClick}}
|
|
77
|
+
...attributes
|
|
78
|
+
>
|
|
79
|
+
<div class='pretui-dialog-inner'>
|
|
80
|
+
{{#if (has-block 'title')}}
|
|
81
|
+
<header class='pretui-dialog-title'>{{yield to='title'}}</header>
|
|
82
|
+
{{/if}}
|
|
83
|
+
<div class='pretui-dialog-body'>{{yield}}</div>
|
|
84
|
+
{{#if (has-block 'footer')}}
|
|
85
|
+
<footer class='pretui-dialog-footer'>{{yield to='footer'}}</footer>
|
|
86
|
+
{{/if}}
|
|
87
|
+
</div>
|
|
88
|
+
</dialog>
|
|
89
|
+
<style scoped>
|
|
90
|
+
@layer PretComponent {
|
|
91
|
+
.pretui-dialog {
|
|
92
|
+
border: 0;
|
|
93
|
+
padding: 0;
|
|
94
|
+
background: var(--card);
|
|
95
|
+
color: var(--foreground);
|
|
96
|
+
border-radius: var(--radius-surface, 10px);
|
|
97
|
+
box-shadow: var(--pretui-shadow-overlay, 0 0 0 1px var(--border), 0 12px 40px rgb(16 24 40 / 0.18));
|
|
98
|
+
width: min(560px, calc(100vw - 32px));
|
|
99
|
+
max-height: calc(100dvh - 64px);
|
|
100
|
+
font-family: var(--font-sans);
|
|
101
|
+
font-size: var(--text-body, 15px);
|
|
102
|
+
}
|
|
103
|
+
.pretui-dialog[data-size='s'] {
|
|
104
|
+
width: min(400px, calc(100vw - 32px));
|
|
105
|
+
}
|
|
106
|
+
.pretui-dialog[data-size='l'] {
|
|
107
|
+
width: min(760px, calc(100vw - 32px));
|
|
108
|
+
}
|
|
109
|
+
.pretui-dialog::backdrop {
|
|
110
|
+
background: var(--pretui-overlay-scrim, rgb(16 24 40 / 0.4));
|
|
111
|
+
}
|
|
112
|
+
.pretui-dialog[open] {
|
|
113
|
+
opacity: 1;
|
|
114
|
+
transform: none;
|
|
115
|
+
transition: opacity 200ms cubic-bezier(0.23, 1, 0.32, 1),
|
|
116
|
+
transform 200ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
117
|
+
}
|
|
118
|
+
@starting-style {
|
|
119
|
+
.pretui-dialog[open] {
|
|
120
|
+
opacity: 0;
|
|
121
|
+
transform: translateY(6px) scale(0.98);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
.pretui-dialog-inner {
|
|
125
|
+
display: grid;
|
|
126
|
+
gap: var(--space-4, 11px);
|
|
127
|
+
padding: var(--space-6, 19px);
|
|
128
|
+
}
|
|
129
|
+
.pretui-dialog-title {
|
|
130
|
+
font-size: var(--text-heading, 19px);
|
|
131
|
+
font-weight: var(--weight-heading, 700);
|
|
132
|
+
letter-spacing: var(--track-heading, -0.02em);
|
|
133
|
+
}
|
|
134
|
+
.pretui-dialog-body {
|
|
135
|
+
color: var(--muted-foreground);
|
|
136
|
+
line-height: calc(var(--leading-body, 24px) / var(--text-body, 15px));
|
|
137
|
+
}
|
|
138
|
+
.pretui-dialog-footer {
|
|
139
|
+
display: flex;
|
|
140
|
+
justify-content: flex-end;
|
|
141
|
+
gap: var(--space-3, 8px);
|
|
142
|
+
border-top: 1px solid var(--border);
|
|
143
|
+
padding-top: var(--space-4, 11px);
|
|
144
|
+
}
|
|
145
|
+
@media (prefers-reduced-motion: reduce) {
|
|
146
|
+
.pretui-dialog[open] {
|
|
147
|
+
transition: none;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
</style>
|
|
152
|
+
</template>
|
|
153
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A modal window built on the native `<dialog>` element. Use it when a task must be finished or abandoned before the user returns to the page beneath — confirmations, destructive-action guards, short focused forms. Do not use it for anything the user should be able to work alongside; that is **Popover** (anchored, non-modal) or **Drawer** (edge-docked, still modal but sized for longer content). For transient, non-blocking notice use **Toast**; for inline blocking notice use **Alert**.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@open, @onClose (required), @label?, @size? ('s'|'m'|'l'), @dismissible? (default true)
|
|
9
|
+
<:title> <:default> <:footer>
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The one non-obvious decision: **the dialog is strictly controlled, and the platform is never allowed to close it.** The `cancel` event (Escape) is `preventDefault()`ed, and `@onClose` is called instead. So `@open` remains the single source of truth — the DOM cannot drift from your state. The consequence is that ignoring `@onClose` makes the dialog uncloseable; that is intended, and it is how `@dismissible={{false}}` is implemented (both Escape and backdrop click become no-ops).
|
|
13
|
+
|
|
14
|
+
The second decision: `showModal()` is driven from a modifier rather than from a template `{{on}}` handler, because the kit's lint rule `no-invalid-interactive` rejects listeners on `<dialog>`. The modifier syncs `open`→`showModal()` / `!open`→`close()` on every re-render, and owns the `cancel` and `click` listeners with matching teardown.
|
|
15
|
+
|
|
16
|
+
Backdrop detection is a nice trick worth understanding: the inner wrapper covers the whole dialog box, so any `click` whose `target === currentTarget` (the `<dialog>` itself) necessarily landed on the `::backdrop`. No hit-testing, no extra scrim element.
|
|
17
|
+
|
|
18
|
+
## Prior art
|
|
19
|
+
|
|
20
|
+
**Web Awesome `wa-dialog`** exposes `open`, `label`, `without-header`, `with-footer`, and `light-dismiss`. **Radix `Dialog`** composes `Root/Trigger/Portal/Overlay/Content/Title/Description/Close` with `open`/`onOpenChange`/`modal`, and implements its own focus trap, scroll lock and `aria-hidden` background over a plain `<div>`. **React Spectrum** wraps it in a `DialogTrigger` and adds `isDismissable`, `isKeyboardDismissDisabled`, and a `type` axis (`modal`/`popover`/`tray`) that swaps presentation by viewport.
|
|
21
|
+
|
|
22
|
+
Pretui differs on two axes deliberately.
|
|
23
|
+
|
|
24
|
+
_Default polarity._ Web Awesome makes light dismiss **opt-in** (`light-dismiss`); Pretui makes it **opt-out** (`@dismissible` defaults to `true`). Modals in this kit are overwhelmingly confirmations, and the safe-by-default reading is that a user can always get out; the rare "you must answer this" dialog pays the extra arg.
|
|
25
|
+
|
|
26
|
+
_Native top layer instead of a JS overlay stack._ Radix and Spectrum re-implement focus trapping, stacking and inertness in JavaScript because they target a portalled `<div>`. Pretui rides `showModal()`, which gives focus trapping, Escape via `cancel`, `::backdrop`, correct stacking of nested dialogs, and `inert` background _from the browser_, with no dismissible-stack bookkeeping and nothing to leak on teardown. That is a smaller, more correct implementation — the platform maintains it.
|
|
27
|
+
|
|
28
|
+
Entry/exit motion is pure CSS via `@starting-style`, so open state is encoded in the DOM rather than in an animation controller, and `prefers-reduced-motion: reduce` drops straight to the end state.
|
|
29
|
+
|
|
30
|
+
## Accessibility
|
|
31
|
+
|
|
32
|
+
Governing pattern: APG **Dialog (Modal)**. What the platform supplies via `showModal()`: `role="dialog"` + `aria-modal` semantics, focus trap, Escape, background inertness, top-layer stacking. What Pretui supplies: `aria-label` from `@label`.
|
|
33
|
+
|
|
34
|
+
Honest gaps:
|
|
35
|
+
|
|
36
|
+
- **`@label` is the only labelling route.** If you render a heading into `<:title>` there is no `aria-labelledby` wiring it to the dialog — you must _also_ pass `@label`, duplicating the string. Radix enforces a `Title` and warns when it is missing; Pretui does not warn.
|
|
37
|
+
- **No description wiring** (`aria-describedby`) for the body.
|
|
38
|
+
- **No initial-focus control.** The browser focuses the first focusable descendant. There is no `@initialFocus` equivalent to Spectrum's autofocus handling, so a destructive confirm dialog will focus whatever comes first in DOM order, not necessarily "Cancel".
|
|
39
|
+
- **Focus return on close** is the browser's default (back to the invoker) and is generally correct, but it is not asserted by the component — if the trigger unmounts while the dialog is open, focus is lost to `<body>`.
|
|
40
|
+
- Escape reaching `@onClose` depends on the caller actually flipping `@open`; a caller that ignores it silently creates a keyboard trap. Worth a lint rule.
|
|
41
|
+
|
|
42
|
+
## Theming
|
|
43
|
+
|
|
44
|
+
`--card`, `--foreground`, `--radius-surface`, `--pretui-shadow-overlay`, `--pretui-overlay-scrim` (the `::backdrop` fill), `--font-sans`, `--text-body`, `--text-heading`, `--weight-heading`, `--track-heading`, `--space-3/4/6`, `--border`, `--muted-foreground`, `--leading-body`. Widths are hard-capped at `min(400|560|760px, 100vw - 32px)` and height at `100dvh - 64px`; a theme cannot retune those without a variant. `--pretui-overlay-scrim` is the token most themes get wrong — it must read as a scrim in both light and dark, not simply invert.
|
|
45
|
+
|
|
46
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
47
|
+
|
|
48
|
+
## React ecosystem
|
|
49
|
+
|
|
50
|
+
Ant/Mantine/MUI agents will type **Modal** (alias stub). Destructive
|
|
51
|
+
confirms should be **AlertDialog**, not this.
|
|
52
|
+
|
|
53
|
+
| React | Pretui |
|
|
54
|
+
| ----------------------------------- | ------------------------- |
|
|
55
|
+
| Dialog / Modal | this tile |
|
|
56
|
+
| AlertDialog / Modal.confirm | **AlertDialog** |
|
|
57
|
+
| Sheet (slide-over) | **Drawer** |
|
|
58
|
+
| `open` / `onOpenChange` / `onClose` | hybrid — accept `onClose` |
|
|
59
|
+
| `title` / `footer` | blocks |
|
|
60
|
+
| `fullScreen` / `size` | @size |
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Pretui — Dialog usage page.
|
|
2
|
+
import GlimmerComponent from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
6
|
+
import { Button } from './button';
|
|
7
|
+
import { Dialog } from './dialog';
|
|
8
|
+
|
|
9
|
+
const DIALOG_SIZES = ['s', 'm', 'l'];
|
|
10
|
+
|
|
11
|
+
class DialogUsage extends GlimmerComponent {
|
|
12
|
+
@tracked open = false;
|
|
13
|
+
@tracked size = 's';
|
|
14
|
+
@tracked dismissible = true;
|
|
15
|
+
show = () => (this.open = true);
|
|
16
|
+
hide = () => (this.open = false);
|
|
17
|
+
setSize = (v: string) => (this.size = v);
|
|
18
|
+
setDismissible = (v: boolean) => (this.dismissible = v);
|
|
19
|
+
get sizeVal() {
|
|
20
|
+
return this.size as 's' | 'm' | 'l';
|
|
21
|
+
}
|
|
22
|
+
<template>
|
|
23
|
+
<FreestyleUsage
|
|
24
|
+
@name='Dialog'
|
|
25
|
+
@description='Modal dialog on the native top layer (showModal). Focus trap, Escape (as a cancelable controlled close), ::backdrop, and stacking come from the platform — no JS dismissible-stack. Supersedes boxel-ui Modal, which owns the viewport and ships no focus trap.'
|
|
26
|
+
>
|
|
27
|
+
<:example>
|
|
28
|
+
<Button @tone='neutral' @appearance='outlined' {{on 'click' this.show}}>
|
|
29
|
+
Open the dialog
|
|
30
|
+
</Button>
|
|
31
|
+
<Dialog
|
|
32
|
+
@open={{this.open}}
|
|
33
|
+
@onClose={{this.hide}}
|
|
34
|
+
@label='Demo'
|
|
35
|
+
@size={{this.sizeVal}}
|
|
36
|
+
@dismissible={{this.dismissible}}
|
|
37
|
+
>
|
|
38
|
+
<:title>Native top layer</:title>
|
|
39
|
+
<:default>Focus trap, Escape, backdrop click, and stacking come from
|
|
40
|
+
the platform dialog. Entry motion is pure CSS via
|
|
41
|
+
@starting-style.</:default>
|
|
42
|
+
<:footer>
|
|
43
|
+
<Button @tone='primary' {{on 'click' this.hide}}>Done</Button>
|
|
44
|
+
</:footer>
|
|
45
|
+
</Dialog>
|
|
46
|
+
</:example>
|
|
47
|
+
<:api as |Args|>
|
|
48
|
+
<Args.String
|
|
49
|
+
@name='size'
|
|
50
|
+
@value={{this.size}}
|
|
51
|
+
@options={{DIALOG_SIZES}}
|
|
52
|
+
@defaultValue='m'
|
|
53
|
+
@description='Dialog width: s 400px, m 560px, l 760px (all clamped to the viewport).'
|
|
54
|
+
@onInput={{this.setSize}}
|
|
55
|
+
/>
|
|
56
|
+
<Args.Bool
|
|
57
|
+
@name='dismissible'
|
|
58
|
+
@value={{this.dismissible}}
|
|
59
|
+
@defaultValue={{true}}
|
|
60
|
+
@description='Whether Escape and backdrop click close the dialog.'
|
|
61
|
+
@onInput={{this.setDismissible}}
|
|
62
|
+
/>
|
|
63
|
+
<Args.Bool
|
|
64
|
+
@name='open'
|
|
65
|
+
@value={{this.open}}
|
|
66
|
+
@description='Controlled open state — the component never closes itself out from under it.'
|
|
67
|
+
@onInput={{this.setDismissible}}
|
|
68
|
+
@hideControls={{true}}
|
|
69
|
+
/>
|
|
70
|
+
<Args.Action
|
|
71
|
+
@name='onClose'
|
|
72
|
+
@required={{true}}
|
|
73
|
+
@description='Called when the user dismisses (Escape, backdrop, or your own buttons).'
|
|
74
|
+
/>
|
|
75
|
+
<Args.Yield
|
|
76
|
+
@name='title / default / footer'
|
|
77
|
+
@description='Named blocks: heading, body, and the right-aligned action row above a hairline.'
|
|
78
|
+
/>
|
|
79
|
+
</:api>
|
|
80
|
+
</FreestyleUsage>
|
|
81
|
+
</template>
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export const DEMOS_DIALOG: Record<string, unknown> = {
|
|
85
|
+
Dialog: DialogUsage,
|
|
86
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// Pretui — DiffBlock: a before/after change rendered as a line diff.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
|
|
6
|
+
export interface DiffLine {
|
|
7
|
+
op?: 'add' | 'del';
|
|
8
|
+
text: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface DiffBlockSignature {
|
|
12
|
+
Args: { lines: DiffLine[]; receipt?: string; maxLines?: number };
|
|
13
|
+
Element: HTMLDivElement;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Staged change with an immutable receipt line; long diffs collapse.
|
|
17
|
+
export class DiffBlock extends Component<DiffBlockSignature> {
|
|
18
|
+
@tracked collapsed = true;
|
|
19
|
+
get maxLines() {
|
|
20
|
+
return this.args.maxLines ?? 8;
|
|
21
|
+
}
|
|
22
|
+
get overflows() {
|
|
23
|
+
return this.args.lines.length > this.maxLines;
|
|
24
|
+
}
|
|
25
|
+
get shown() {
|
|
26
|
+
return this.collapsed && this.overflows
|
|
27
|
+
? this.args.lines.slice(0, this.maxLines)
|
|
28
|
+
: this.args.lines;
|
|
29
|
+
}
|
|
30
|
+
get toggleLabel() {
|
|
31
|
+
return this.collapsed ? `… ${this.args.lines.length - this.maxLines} more lines` : 'collapse';
|
|
32
|
+
}
|
|
33
|
+
prefix = (line: DiffLine) => (line.op === 'add' ? '+ ' : line.op === 'del' ? '- ' : ' ');
|
|
34
|
+
toggle = () => {
|
|
35
|
+
this.collapsed = !this.collapsed;
|
|
36
|
+
};
|
|
37
|
+
<template>
|
|
38
|
+
<div class='pretui-diff' data-test-pretui-diff-block ...attributes>
|
|
39
|
+
{{#each this.shown as |line|}}
|
|
40
|
+
<div class='pretui-diff-line' data-op={{line.op}}>{{this.prefix line}}{{line.text}}</div>
|
|
41
|
+
{{/each}}
|
|
42
|
+
{{#if this.overflows}}
|
|
43
|
+
<button type='button' class='pretui-diff-line pretui-diff-toggle' {{on 'click' this.toggle}}>{{this.toggleLabel}}</button>
|
|
44
|
+
{{/if}}
|
|
45
|
+
{{#if @receipt}}<div class='pretui-diff-receipt'>{{@receipt}}</div>{{/if}}
|
|
46
|
+
</div>
|
|
47
|
+
<style scoped>
|
|
48
|
+
@layer PretComponent {
|
|
49
|
+
.pretui-diff {
|
|
50
|
+
font-family: var(--font-mono);
|
|
51
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
52
|
+
line-height: 1.7;
|
|
53
|
+
background: var(--inset, var(--boxel-100));
|
|
54
|
+
border-radius: 8px;
|
|
55
|
+
box-shadow: var(--pretui-shadow-hairline, 0 0 0 1px var(--border));
|
|
56
|
+
overflow: hidden;
|
|
57
|
+
}
|
|
58
|
+
.pretui-diff-line {
|
|
59
|
+
padding: 0 10px;
|
|
60
|
+
white-space: pre;
|
|
61
|
+
}
|
|
62
|
+
.pretui-diff-line[data-op='add'] {
|
|
63
|
+
background: color-mix(in oklch, var(--success, var(--boxel-success)) 12%, transparent);
|
|
64
|
+
color: color-mix(in oklch, var(--foreground) 30%, var(--success, var(--boxel-success)));
|
|
65
|
+
}
|
|
66
|
+
.pretui-diff-line[data-op='del'] {
|
|
67
|
+
background: color-mix(in oklch, var(--destructive) 10%, transparent);
|
|
68
|
+
color: color-mix(in oklch, var(--foreground) 30%, var(--destructive));
|
|
69
|
+
}
|
|
70
|
+
.pretui-diff-toggle {
|
|
71
|
+
display: block;
|
|
72
|
+
width: 100%;
|
|
73
|
+
text-align: left;
|
|
74
|
+
border: 0;
|
|
75
|
+
background: none;
|
|
76
|
+
font: inherit;
|
|
77
|
+
color: var(--pretui-primary-ink, var(--primary));
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
}
|
|
80
|
+
.pretui-diff-receipt {
|
|
81
|
+
padding: 5px 10px;
|
|
82
|
+
font-size: 10.5px;
|
|
83
|
+
color: var(--ink-3, var(--boxel-400));
|
|
84
|
+
box-shadow: 0 -1px 0 var(--border);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
</style>
|
|
88
|
+
</template>
|
|
89
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A staged change rendered as a diff, with an immutable receipt line, collapsing when long. Use it wherever an agent shows what it altered — a file edit, a field patch, a config change — before or after **ApprovalFooter** gates it. If you are showing a _result_ rather than a change, **ResultCard**. If it is a code sample rather than a diff, that is `<pre>` inside **Prose**.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@lines: DiffLine[] (required)
|
|
9
|
+
@receipt?, @maxLines? (default 8)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
**`@maxLines` defaults to 8 and long diffs collapse by default** (`@tracked collapsed = true`). That is the right default for a transcript: an agent that edits three files should not fill the viewport with 400 lines the user has not asked to read. Expansion is per-block, so the user opens the one they care about.
|
|
13
|
+
|
|
14
|
+
**The receipt is immutable and separate from the diff.** It is the line that survives after the change is folded away — the thing a user scrolling a settled transcript sees in place of the full diff. That is the territory's fold law in miniature: settled work folds to receipts, and the receipt is the durable artefact, not the diff.
|
|
15
|
+
|
|
16
|
+
`DiffLine` carries the per-line kind (added, removed, context) that drives the row dress.
|
|
17
|
+
|
|
18
|
+
## Prior art
|
|
19
|
+
|
|
20
|
+
No component kit ships a diff view. The references are `diff2html`, GitHub's blob diff, VS Code's inline diff, and Monaco's diff editor — all of them tools rather than components, and all much larger.
|
|
21
|
+
|
|
22
|
+
The interesting comparison is what this deliberately does not do:
|
|
23
|
+
|
|
24
|
+
- **No syntax highlighting.** GitHub and Monaco both highlight; this renders plain mono text. That keeps the component free of a language grammar dependency and keeps a diff in a transcript reading as _a change_, not as code — which is the right emphasis when the user is deciding whether to approve it.
|
|
25
|
+
- **No side-by-side mode.** Unified only. In a transcript column that is the only mode that fits.
|
|
26
|
+
- **No line numbers**, so a diff here cannot be referenced by line — a real limitation when discussing a change with the agent.
|
|
27
|
+
- **No hunk headers or context expansion.** `@maxLines` truncates from the top of the block rather than showing collapsed context regions the way GitHub does.
|
|
28
|
+
|
|
29
|
+
Where it is better than dropping a `diff2html` render into a transcript: the receipt line, the collapse default, and the fact that it wears the kit's mono voice rather than a diff library's own theme.
|
|
30
|
+
|
|
31
|
+
## Accessibility
|
|
32
|
+
|
|
33
|
+
No pattern governs it, and diffs are genuinely hard to make accessible. The relevant criteria are WCAG **1.4.1 Use of Colour**, **1.3.1** and **2.1.1**.
|
|
34
|
+
|
|
35
|
+
Gaps, and the first is the classic diff failure:
|
|
36
|
+
|
|
37
|
+
- **Added and removed lines are almost certainly distinguished by fill colour and a `+`/`-` prefix character.** If the prefix is present and part of the text, **WCAG 1.4.1** is satisfied — verify it, because if the `+`/`-` is a CSS `::before` or a background tint alone, colour is the only channel and the diff is unreadable for a colour-blind user. This is the single most important thing to check on this component.
|
|
38
|
+
- **Diffs are hostile to linear reading.** A screen reader announcing forty lines of mono text with `+`/`-` prefixes conveys very little. The accessible affordance is a _summary_ — "3 lines added, 1 removed in config.json" — and the **receipt** is very nearly that already. Making the receipt the primary announced content, with the diff as expandable detail, would be a genuine improvement and the structure is already there.
|
|
39
|
+
- **The collapse control's state is not described here.** Verify it is a real `<button>` with `aria-expanded` and a name that says what expands ("Show 40 more lines"), not a bare chevron.
|
|
40
|
+
- **The truncation is silent.** A collapsed diff shows 8 of 40 lines; nothing announces that 32 are hidden, so a screen-reader user may believe they have read the whole change before approving it. Given that this component feeds an approval decision, that is a **WCAG 3.3.4** concern, not just an annoyance.
|
|
41
|
+
- **No `<table>` or list semantics**, so line-to-line relationships are positional only.
|
|
42
|
+
- **Long lines**: verify they wrap rather than scroll horizontally, or a keyboard user cannot reach the end of one (**WCAG 2.1.1**, and **1.4.10 Reflow**).
|
|
43
|
+
- The receipt is text, which is right — it is the durable, readable form.
|
|
44
|
+
|
|
45
|
+
## Theming
|
|
46
|
+
|
|
47
|
+
Mono voice (`--font-mono`, `--text-ui-sm`), added and removed row tints derived from `--success` and `--destructive` mixed against `--card`, context rows in `--muted-foreground`, `--inset` for the block surface, `--border` for its edge, and the receipt in the quieter ink.
|
|
48
|
+
|
|
49
|
+
The added/removed tints are the tokens to check per theme. They must be distinguishable from each other **and** legible as backgrounds behind mono text at 11.5px — a theme that tunes `--success` and `--destructive` for **Delta**'s foreground ink will usually find them far too strong as fills here. Because the tints are `color-mix` derivations rather than fixed hexes, adjusting the mix ratio is the lever; adjusting the hue is not.
|
|
50
|
+
|
|
51
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Pretui — DiffBlock usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
4
|
+
import { DiffBlock } from './diff-block';
|
|
5
|
+
|
|
6
|
+
const DIFF_LINES = [
|
|
7
|
+
{ text: 'lot: B-103' },
|
|
8
|
+
{ op: 'del' as const, text: 'status: draft' },
|
|
9
|
+
{ op: 'add' as const, text: 'status: approved' },
|
|
10
|
+
{ op: 'add' as const, text: 'approvedBy: Mei-Lin Chua' },
|
|
11
|
+
{ op: 'add' as const, text: 'approvedAt: 2026-08-13' },
|
|
12
|
+
{ text: 'origin: Shizuoka' },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
class DiffBlockUsage extends Component {
|
|
16
|
+
lines = DIFF_LINES;
|
|
17
|
+
<template>
|
|
18
|
+
<FreestyleUsage @name='DiffBlock' @description='A compact staged diff with textual prefixes, controlled expansion and an immutable receipt line.' @source='<DiffBlock @lines={{this.lines}} @receipt="3 fields changed" />' @viewportMode='wide'>
|
|
19
|
+
<:example><DiffBlock @lines={{this.lines}} @receipt='3 fields changed · run_8F3C' @maxLines={{3}} /></:example>
|
|
20
|
+
<:api as |Args|><Args.Object @name='lines' @value={{this.lines}} /><Args.String @name='receipt' @value='3 fields changed · run_8F3C' /><Args.Number @name='maxLines' @value={{3}} /></:api>
|
|
21
|
+
</FreestyleUsage>
|
|
22
|
+
</template>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const DEMOS_DIFF_BLOCK: Record<string, unknown> = {
|
|
26
|
+
DiffBlock: DiffBlockUsage,
|
|
27
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
**Collapsible** under the name React Aria uses. The export is the same class — `import { Disclosure } from './disclosure';` and `import { Collapsible }` from the same module resolve to one component — so the tile exists for the reader who arrives with the Aria vocabulary: a port of an Aria `Disclosure`, or an agent whose first guess is that word. The contract, the behaviour and the depth are on **Collapsible**; this page says what the Aria names map to. **Accordion** is several of these behind boxel-ui's engine; **Fold** is the agentic receipt shape.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@open? — controlled state (Aria isExpanded)
|
|
9
|
+
@defaultOpen? — uncontrolled initial state (Aria defaultExpanded)
|
|
10
|
+
@onOpenChange? — every toggle, with the next state (Aria onExpandedChange)
|
|
11
|
+
@label? — trigger text; sugar for <:trigger>
|
|
12
|
+
@disabled? — aria-disabled, still focusable (Aria isDisabled)
|
|
13
|
+
@size? — the kit size scale (xs · s · m · l · xl)
|
|
14
|
+
@hideCaret? — drop the rotating chevron
|
|
15
|
+
<:trigger as |open|> — the DisclosureButton content
|
|
16
|
+
<:default> — the DisclosurePanel
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**The Aria spellings are not accepted.** `isExpanded`, `onExpandedChange` and `isDisabled` have to be renamed at the call site; the alias gives a port the component name, not the arg names.
|
|
20
|
+
|
|
21
|
+
## Prior art
|
|
22
|
+
|
|
23
|
+
**React Aria `Disclosure`** is a headless pair — `DisclosureButton` and `DisclosurePanel` — with `isExpanded` / `defaultExpanded` / `onExpandedChange` / `isDisabled`, `useDisclosure` for the ARIA wiring and no animation of its own; a consumer animates the panel or uses the `hidden="until-found"` mode for find-in-page. It also ships a `DisclosureGroup` (one open at a time), which here is **Accordion**'s job.
|
|
24
|
+
|
|
25
|
+
What this has that Aria's does not: the height animation, with content that stays mounted and is taken out of the tab order through `visibility` when closed; a built-in rotating caret; a `@label` shortcut so the common case is one line. What Aria's has that this does not: `hidden="until-found"` (closed content here is never `hidden`, so browser find never expands it), the `DisclosureGroup` wrapper, and the `isExpanded` spellings.
|
|
26
|
+
|
|
27
|
+
## Accessibility
|
|
28
|
+
|
|
29
|
+
Collapsible's, exactly, and it is the APG **Disclosure** pattern Aria's component is named after: a native `<button>` with `aria-expanded` and `aria-controls`, a `role='region'` panel labelled by its trigger, Enter and Space from the native button, closed content removed from the tab order, and `@disabled` as `aria-disabled` so the trigger stays discoverable. The trigger carries no heading semantics; wrap it in the heading you mean.
|
|
30
|
+
|
|
31
|
+
## Theming
|
|
32
|
+
|
|
33
|
+
Collapsible's tokens: `--foreground`, `--muted-foreground`, `--hover`, `--ring`, `--radius-chip`, the `--pretui-size-*` and `--text-ui-*` scales, the component's own `--pretui-collapsible-h` and `--pretui-collapsible-px`, and the kit motion pairs `--pretui-dur-morph` / `--pretui-ease-morph` (fold) and `--pretui-dur-snap` / `--pretui-ease-snap` (caret). Nothing is themed under a Disclosure name.
|
|
34
|
+
|
|
35
|
+
## React ecosystem
|
|
36
|
+
|
|
37
|
+
| React Aria | Pretui |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| `isExpanded` / `defaultExpanded` | `@open` / `@defaultOpen` |
|
|
40
|
+
| `onExpandedChange` | `@onOpenChange` |
|
|
41
|
+
| `isDisabled` | `@disabled` |
|
|
42
|
+
| `<DisclosureButton>` | `@label` or `<:trigger>` |
|
|
43
|
+
| `<DisclosurePanel>` | `<:default>` |
|
|
44
|
+
| `<DisclosureGroup>` | **Accordion** |
|
|
45
|
+
| `hidden="until-found"` | not offered |
|