@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,503 @@
|
|
|
1
|
+
// Pretui — structure/dashboard: `DashboardGrid`, a grid whose arrangement
|
|
2
|
+
// the END USER owns, and `DashboardItem`, its cell.
|
|
3
|
+
//
|
|
4
|
+
// ENGINE: gridstack.js (MIT, zero runtime dependencies), vendored at
|
|
5
|
+
// ./gridstack/index.js — built from the local checkout at commit d9c9bc41
|
|
6
|
+
// (v13.1.2-18-gd9c9bc41), which carries a resize-handle listener-leak fix the
|
|
7
|
+
// published 13.1.2 does not. gridstack/README.md records the full provenance,
|
|
8
|
+
// the build command, and what is deliberately not wired.
|
|
9
|
+
//
|
|
10
|
+
// ════════════════════════════════════════════════════════════════════════
|
|
11
|
+
// THE DOM OWNERSHIP BOUNDARY — read this before changing anything here
|
|
12
|
+
// ════════════════════════════════════════════════════════════════════════
|
|
13
|
+
//
|
|
14
|
+
// gridstack is a DOM library: left to itself it CREATES grid items from
|
|
15
|
+
// markup strings (`addWidget`), MOVES them between grids, and REMOVES them
|
|
16
|
+
// (`removeWidget`). Glimmer believes it owns exactly those nodes. Two
|
|
17
|
+
// systems mutating the same nodes is the failure mode that makes this class
|
|
18
|
+
// of integration flaky, so the boundary is drawn explicitly and narrowly:
|
|
19
|
+
//
|
|
20
|
+
// GLIMMER OWNS element existence and identity: it creates every
|
|
21
|
+
// `.grid-stack-item`, it destroys them, and `{{#each}}`
|
|
22
|
+
// keyed by the caller's id decides which is which.
|
|
23
|
+
// Glimmer also owns every class, all content, and every
|
|
24
|
+
// listener bound with `{{on}}`.
|
|
25
|
+
//
|
|
26
|
+
// GRIDSTACK OWNS geometry, and only geometry: the inline `top`/`left`/
|
|
27
|
+
// `width`/`height`, the `--gs-*` custom properties and
|
|
28
|
+
// the `gs-x`/`gs-y`/`gs-w`/`gs-h` attributes it writes
|
|
29
|
+
// onto those elements, plus two nodes of its own that
|
|
30
|
+
// Glimmer never sees — the drag placeholder and the
|
|
31
|
+
// resize handle, both children of elements we hand it.
|
|
32
|
+
//
|
|
33
|
+
// Seven rules keep that boundary intact. Breaking any one of them is how this
|
|
34
|
+
// component would start dropping tiles:
|
|
35
|
+
//
|
|
36
|
+
// 1. `addWidget()` IS NEVER CALLED. It would inject markup Glimmer thinks
|
|
37
|
+
// it owns. Items are registered with `makeWidget(existingElement, …)`.
|
|
38
|
+
// 2. `init` passes `auto: false`, so gridstack never adopts the item
|
|
39
|
+
// elements on its own initiative — every registration goes through the
|
|
40
|
+
// cell's own modifier, in one direction, once.
|
|
41
|
+
// 3. `removeWidget(el, false, false)` — the `false`s are load-bearing:
|
|
42
|
+
// do not remove the DOM (Glimmer will) and do not fire events (nobody
|
|
43
|
+
// asked for a layout change). Likewise `destroy(false)` on teardown; a
|
|
44
|
+
// `destroy(true)` would rip Glimmer's container out of the document.
|
|
45
|
+
// 4. Geometry flows ONE WAY AT A TIME. `applying` is raised whenever we
|
|
46
|
+
// push a placement INTO the engine, and every event handler bails while
|
|
47
|
+
// it is up; without it the engine's `change` event would call back into
|
|
48
|
+
// `@onLayoutChange` during a render pass and trip Ember's backtracking
|
|
49
|
+
// assertion.
|
|
50
|
+
// 5. The `style` attribute of an item is bound ONLY in read-only mode. In
|
|
51
|
+
// editable mode it is left permanently unset, so Glimmer's attribute
|
|
52
|
+
// cache never writes it and can never clobber the inline geometry
|
|
53
|
+
// gridstack keeps there. Never add a `style=` binding to an editable
|
|
54
|
+
// cell, and never splat caller attributes that could carry one.
|
|
55
|
+
// 6. Glimmer may reorder the `{{#each}}` freely — items are absolutely
|
|
56
|
+
// positioned, so DOM order carries no meaning, and a keyed move is an
|
|
57
|
+
// `insertBefore` within the same parent, which leaves `gridstackNode`
|
|
58
|
+
// intact. What Glimmer must NEVER do is reparent an item out of the
|
|
59
|
+
// plane while the engine is live, which is why `DashboardGrid` renders
|
|
60
|
+
// the cells itself instead of yielding one for the caller to place
|
|
61
|
+
// wherever they like.
|
|
62
|
+
// 7. `_sortDom()` IS NEUTRALISED, per instance, in `mount`. It is the one
|
|
63
|
+
// place gridstack genuinely trespasses: after every change it
|
|
64
|
+
// re-`appendChild`s each item so DOM order matches visual order. There is
|
|
65
|
+
// no option for it, it moves nodes `{{#each}}` has bounds for, and moving
|
|
66
|
+
// a node blurs anything focused inside it — the first arrow key of a
|
|
67
|
+
// keyboard move threw focus to <body> and collapsed the mode. The full
|
|
68
|
+
// reasoning, and what it costs, is at the call site.
|
|
69
|
+
//
|
|
70
|
+
// An eighth rule is about DATA rather than DOM, and it is the one that bit
|
|
71
|
+
// during the render proof: `@layout` is only pushed back into a LIVE engine
|
|
72
|
+
// when `@onLayoutChange` is supplied (see `controlled` below), and never
|
|
73
|
+
// while a drag or a keyboard adjustment is in flight. Without both guards a
|
|
74
|
+
// re-render for any unrelated reason re-asserts the authored coordinates and
|
|
75
|
+
// snaps the user's tile back — which is exactly what happened, twice, before
|
|
76
|
+
// the guards existed.
|
|
77
|
+
//
|
|
78
|
+
// The engine instance is created in `mountDashboardPlane` (an
|
|
79
|
+
// `ember-modifier`) and `destroy(false)`d in that modifier's destructor,
|
|
80
|
+
// along with the ResizeObserver and every listener. That ownership is what
|
|
81
|
+
// makes the engine's internal drag timers legal in a realm: a timer is
|
|
82
|
+
// allowed when the element that owns it clears it.
|
|
83
|
+
//
|
|
84
|
+
// ── READ-ONLY MODE ──────────────────────────────────────────────────────
|
|
85
|
+
// A dashboard is edited rarely and read constantly, so `@editable={{false}}`
|
|
86
|
+
// never constructs a GridStack at all: no engine, no listeners, no observer,
|
|
87
|
+
// no injected stylesheet, no drag affordances. It renders the SAME layout as
|
|
88
|
+
// a plain CSS grid. The two modes cannot drift because both resolve their
|
|
89
|
+
// coordinates through the same code — `resolveLayout()` runs gridstack's own
|
|
90
|
+
// `GridStackEngine`, which is entirely DOM-free.
|
|
91
|
+
//
|
|
92
|
+
// ── BETTER THAN THE INSPIRATION ─────────────────────────────────────────
|
|
93
|
+
// gridstack's own demos are the inspiration, and four things they get wrong:
|
|
94
|
+
// • No keyboard path whatsoever. Drag and resize are pointer-only; a
|
|
95
|
+
// keyboard user cannot rearrange a gridstack dashboard at all. Pretui
|
|
96
|
+
// puts move AND resize on the tile's handle button (arrows / shift+
|
|
97
|
+
// arrows) with an announced mode and a live region — see `onItemKeydown`.
|
|
98
|
+
// • The stylesheet hard-codes its palette (a grey `rgba(0,0,0,.1)`
|
|
99
|
+
// placeholder, a grey inline-SVG arrow handle) with no variable in
|
|
100
|
+
// front of it, and reaches for `!important` in ~30 places. Pretui
|
|
101
|
+
// restates only the structural rules, in tokens, with zero `!important`.
|
|
102
|
+
// • Layout is stored ON the widget objects, so a caller's data and its
|
|
103
|
+
// positions are one mutable blob. Pretui follows `Board`'s precedent:
|
|
104
|
+
// placements are a separate `{id,x,y,w,h}[]` keyed by id, and the items
|
|
105
|
+
// never carry coordinates.
|
|
106
|
+
// • `alwaysShowResizeHandle` is either always or hover — never focus. The
|
|
107
|
+
// affordance here appears on `:hover` AND `:focus-within`, and is
|
|
108
|
+
// permanent on coarse pointers, where hover does not exist.
|
|
109
|
+
//
|
|
110
|
+
// Pretui — the dashboard engine: layout as data, the host seam, stylesheet delivery and the GridStack modifiers.
|
|
111
|
+
import { modifier } from 'ember-modifier';
|
|
112
|
+
import { DASHBOARD_ENGINE_CSS } from '../structure-dashboard-css';
|
|
113
|
+
import { GridStack, GridStackEngine } from '../gridstack/index.js';
|
|
114
|
+
|
|
115
|
+
// ── the bundle's shapes, re-declared locally ─────────────────────────────
|
|
116
|
+
// The realm bundle carries no .d.ts glint can see. These mirror exactly the
|
|
117
|
+
// parts of gridstack's public API this module touches, so the rest of the
|
|
118
|
+
// file is honestly typed instead of leaking `any` through every call site.
|
|
119
|
+
|
|
120
|
+
interface EngineNode {
|
|
121
|
+
id?: string | number;
|
|
122
|
+
x?: number;
|
|
123
|
+
y?: number;
|
|
124
|
+
w?: number;
|
|
125
|
+
h?: number;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export type WidgetOptions = EngineNode & { autoPosition?: boolean };
|
|
129
|
+
|
|
130
|
+
export interface GridItemElement extends HTMLElement {
|
|
131
|
+
gridstackNode?: EngineNode;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
interface EngineLike {
|
|
135
|
+
nodes: EngineNode[];
|
|
136
|
+
addNode(node: EngineNode): EngineNode;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export interface GridLike {
|
|
140
|
+
makeWidget(el: HTMLElement, options?: WidgetOptions): void;
|
|
141
|
+
removeWidget(el: HTMLElement, removeDOM: boolean, triggerEvent: boolean): void;
|
|
142
|
+
update(el: HTMLElement, opts: EngineNode): void;
|
|
143
|
+
save(saveContent: boolean): EngineNode[];
|
|
144
|
+
batchUpdate(flag: boolean): void;
|
|
145
|
+
column(column: number, layout: string): void;
|
|
146
|
+
cellHeight(val: number): void;
|
|
147
|
+
margin(val: number): void;
|
|
148
|
+
float(val: boolean): void;
|
|
149
|
+
setAnimation(enabled: boolean): void;
|
|
150
|
+
getColumn(): number;
|
|
151
|
+
on(name: string, cb: (...args: unknown[]) => void): void;
|
|
152
|
+
offAll(): void;
|
|
153
|
+
destroy(removeDOM: boolean): void;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* gridstack's one genuine trespass into Glimmer's territory, and the reason
|
|
158
|
+
* it needs a name: `_triggerChangeEvent` ends by calling `_sortDom()`, which
|
|
159
|
+
* `appendChild`s every item in visual order to make DOM order match the
|
|
160
|
+
* layout. There is no option to turn it off. See `SORT_DOM` below.
|
|
161
|
+
*/
|
|
162
|
+
export interface SortDomInternal {
|
|
163
|
+
_sortDom?: () => unknown;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface GridStackStatic {
|
|
167
|
+
init(options: Record<string, unknown>, el: HTMLElement): GridLike;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
interface GridStackEngineStatic {
|
|
171
|
+
new (opts: { column: number; float: boolean; maxRow: number }): EngineLike;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const Engine = GridStackEngine as unknown as GridStackEngineStatic;
|
|
175
|
+
export const Grids = GridStack as unknown as GridStackStatic;
|
|
176
|
+
|
|
177
|
+
// ── layout as data ───────────────────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* One tile's position on the grid. This is the whole persistence format:
|
|
181
|
+
* plain, flat, JSON-safe, and — following `Board`'s `KanbanPlacement`
|
|
182
|
+
* precedent — stored SEPARATELY from the items, keyed by id. A tile's data
|
|
183
|
+
* never carries coordinates, and the grid never carries the tile's data.
|
|
184
|
+
*/
|
|
185
|
+
export interface DashboardPlacement {
|
|
186
|
+
/** matches the id `@idFor` returns for the item this positions */
|
|
187
|
+
id: string;
|
|
188
|
+
/** 0-based column of the tile's inline start */
|
|
189
|
+
x: number;
|
|
190
|
+
/** 0-based row of the tile's block start */
|
|
191
|
+
y: number;
|
|
192
|
+
/** width in columns, at least 1 */
|
|
193
|
+
w: number;
|
|
194
|
+
/** height in rows, at least 1 */
|
|
195
|
+
h: number;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/** The serialized arrangement. Hand this straight to a Boxel field. */
|
|
199
|
+
export type DashboardLayout = readonly DashboardPlacement[];
|
|
200
|
+
|
|
201
|
+
/** Which geometry the arrow keys act on while a tile is being adjusted. */
|
|
202
|
+
export type AdjustMode = 'move' | 'resize';
|
|
203
|
+
|
|
204
|
+
export function intAt(value: number | undefined, fallback: number): number {
|
|
205
|
+
return typeof value === 'number' && Number.isFinite(value)
|
|
206
|
+
? Math.round(value)
|
|
207
|
+
: fallback;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Force one placement into the legal range for a grid of `columns` columns.
|
|
212
|
+
* Pure, total, and never throws — a placement read back from a card field may
|
|
213
|
+
* be anything at all, including `w: 999`, a negative `y`, or `NaN`.
|
|
214
|
+
*/
|
|
215
|
+
export function clampPlacement(
|
|
216
|
+
placement: DashboardPlacement,
|
|
217
|
+
columns: number,
|
|
218
|
+
): DashboardPlacement {
|
|
219
|
+
const cols = Math.max(1, Math.round(columns));
|
|
220
|
+
const w = Math.min(cols, Math.max(1, intAt(placement.w, 1)));
|
|
221
|
+
const h = Math.max(1, intAt(placement.h, 1));
|
|
222
|
+
const x = Math.min(cols - w, Math.max(0, intAt(placement.x, 0)));
|
|
223
|
+
const y = Math.max(0, intAt(placement.y, 0));
|
|
224
|
+
return { id: placement.id, x, y, w, h };
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Resolve a layout the way the live grid would: clamp every placement, then
|
|
229
|
+
* run gridstack's own `GridStackEngine` to push overlapping tiles apart and
|
|
230
|
+
* (unless `float`) pack them upwards. Input order is preserved on the way
|
|
231
|
+
* out; the engine sorts internally.
|
|
232
|
+
*
|
|
233
|
+
* DOM-FREE — the engine never touches `document`, which is what lets
|
|
234
|
+
* read-only mode, the caller, and the unit tests share one layout truth with
|
|
235
|
+
* the interactive grid instead of approximating it.
|
|
236
|
+
*/
|
|
237
|
+
export function resolveLayout(
|
|
238
|
+
layout: DashboardLayout,
|
|
239
|
+
columns: number,
|
|
240
|
+
float = false,
|
|
241
|
+
): DashboardPlacement[] {
|
|
242
|
+
const cols = Math.max(1, Math.round(columns));
|
|
243
|
+
const engine = new Engine({ column: cols, float, maxRow: 0 });
|
|
244
|
+
for (const placement of layout) {
|
|
245
|
+
const safe = clampPlacement(placement, cols);
|
|
246
|
+
engine.addNode({ id: safe.id, x: safe.x, y: safe.y, w: safe.w, h: safe.h });
|
|
247
|
+
}
|
|
248
|
+
const resolved = new Map<string, DashboardPlacement>();
|
|
249
|
+
for (const node of engine.nodes) {
|
|
250
|
+
const id = String(node.id ?? '');
|
|
251
|
+
resolved.set(id, {
|
|
252
|
+
id,
|
|
253
|
+
x: intAt(node.x, 0),
|
|
254
|
+
y: intAt(node.y, 0),
|
|
255
|
+
w: Math.max(1, intAt(node.w, 1)),
|
|
256
|
+
h: Math.max(1, intAt(node.h, 1)),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
return layout.map(
|
|
260
|
+
(placement) => resolved.get(placement.id) ?? clampPlacement(placement, cols),
|
|
261
|
+
);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/** Order-insensitive layout equality — the emit guard and the test oracle. */
|
|
265
|
+
export function sameLayout(a: DashboardLayout, b: DashboardLayout): boolean {
|
|
266
|
+
if (a.length !== b.length) {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
const index = new Map(a.map((placement) => [placement.id, placement]));
|
|
270
|
+
return b.every((placement) => {
|
|
271
|
+
const other = index.get(placement.id);
|
|
272
|
+
return (
|
|
273
|
+
!!other &&
|
|
274
|
+
other.x === placement.x &&
|
|
275
|
+
other.y === placement.y &&
|
|
276
|
+
other.w === placement.w &&
|
|
277
|
+
other.h === placement.h
|
|
278
|
+
);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* The keyboard geometry step. Arrows move by one cell; the same arrows in
|
|
284
|
+
* resize mode grow or shrink by one cell from the inline/block end. Returns
|
|
285
|
+
* the REQUESTED placement, clamped to the grid — the engine still gets to
|
|
286
|
+
* push neighbours around, so what the live grid announces is read back from
|
|
287
|
+
* the engine afterwards rather than assumed from this.
|
|
288
|
+
*/
|
|
289
|
+
export function nudge(
|
|
290
|
+
placement: DashboardPlacement,
|
|
291
|
+
key: string,
|
|
292
|
+
mode: AdjustMode,
|
|
293
|
+
columns: number,
|
|
294
|
+
): DashboardPlacement {
|
|
295
|
+
const next = { ...placement };
|
|
296
|
+
if (mode === 'move') {
|
|
297
|
+
if (key === 'ArrowLeft') {
|
|
298
|
+
next.x -= 1;
|
|
299
|
+
} else if (key === 'ArrowRight') {
|
|
300
|
+
next.x += 1;
|
|
301
|
+
} else if (key === 'ArrowUp') {
|
|
302
|
+
next.y -= 1;
|
|
303
|
+
} else if (key === 'ArrowDown') {
|
|
304
|
+
next.y += 1;
|
|
305
|
+
}
|
|
306
|
+
} else {
|
|
307
|
+
if (key === 'ArrowLeft') {
|
|
308
|
+
next.w -= 1;
|
|
309
|
+
} else if (key === 'ArrowRight') {
|
|
310
|
+
next.w += 1;
|
|
311
|
+
} else if (key === 'ArrowUp') {
|
|
312
|
+
next.h -= 1;
|
|
313
|
+
} else if (key === 'ArrowDown') {
|
|
314
|
+
next.h += 1;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return clampPlacement(next, columns);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/** "Revenue moved to column 3, row 2." — the live-region sentence. */
|
|
321
|
+
export function describeMove(label: string, p: DashboardPlacement): string {
|
|
322
|
+
return `${label} moved to column ${p.x + 1}, row ${p.y + 1}.`;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/** "Revenue resized to 4 by 2." — width by height, in cells. */
|
|
326
|
+
export function describeResize(label: string, p: DashboardPlacement): string {
|
|
327
|
+
return `${label} resized to ${p.w} by ${p.h}.`;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/** The sentence read when an adjustment is committed. */
|
|
331
|
+
export function describePlaced(label: string, p: DashboardPlacement): string {
|
|
332
|
+
return `${label} placed at column ${p.x + 1}, row ${p.y + 1}, ${p.w} by ${p.h}.`;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// ── the host seam ────────────────────────────────────────────────────────
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* What a `DashboardItem` needs from the grid that renders it. Declared as an
|
|
339
|
+
* interface rather than referencing the class so the cell can be read (and
|
|
340
|
+
* tested, and reimplemented) without pulling the engine in behind it.
|
|
341
|
+
*/
|
|
342
|
+
export interface DashboardHost {
|
|
343
|
+
/** false in read-only mode: no handle, no engine, no listeners */
|
|
344
|
+
editable: boolean;
|
|
345
|
+
/** id of the shared keyboard-instructions element */
|
|
346
|
+
hintId: string;
|
|
347
|
+
/** true while this id is in keyboard adjust mode */
|
|
348
|
+
isAdjusting(id: string): boolean;
|
|
349
|
+
/** 'move' | 'resize' while adjusting this id, else null */
|
|
350
|
+
adjustMode(id: string): AdjustMode | null;
|
|
351
|
+
/** engine registration — driven from the cell's own modifier */
|
|
352
|
+
attachItem(id: string, el: HTMLElement, seed: WidgetOptions): void;
|
|
353
|
+
detachItem(id: string, el: HTMLElement): void;
|
|
354
|
+
syncItem(
|
|
355
|
+
el: HTMLElement,
|
|
356
|
+
x: number | undefined,
|
|
357
|
+
y: number | undefined,
|
|
358
|
+
w: number | undefined,
|
|
359
|
+
h: number | undefined,
|
|
360
|
+
): void;
|
|
361
|
+
onItemKeydown(id: string, label: string, event: KeyboardEvent): void;
|
|
362
|
+
onItemBlur(id: string): void;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* The stable handle a cell hands its registration modifier. Plain, untracked,
|
|
367
|
+
* created once per cell — see `registerDashboardItem` for why that matters.
|
|
368
|
+
*/
|
|
369
|
+
export interface CellRegistry {
|
|
370
|
+
attach(el: HTMLElement): void;
|
|
371
|
+
detach(el: HTMLElement): void;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// ── stylesheet delivery ──────────────────────────────────────────────────
|
|
375
|
+
// Refcounted <style> in document.head: the engine's structural rules must
|
|
376
|
+
// reach nodes gridstack creates at runtime (placeholder, resize handle),
|
|
377
|
+
// which can never carry a scoped-css attribute. See structure-dashboard-css.
|
|
378
|
+
|
|
379
|
+
const ENGINE_SHEET_ID = 'pretui-dashboard-engine-css';
|
|
380
|
+
|
|
381
|
+
function retainSheet(id: string, css: string) {
|
|
382
|
+
let el: HTMLElement | null = document.getElementById(id);
|
|
383
|
+
if (!el) {
|
|
384
|
+
const style = document.createElement('style');
|
|
385
|
+
style.id = id;
|
|
386
|
+
style.textContent = css;
|
|
387
|
+
document.head.appendChild(style);
|
|
388
|
+
el = style;
|
|
389
|
+
}
|
|
390
|
+
el.dataset['refs'] = String(Number(el.dataset['refs'] ?? '0') + 1);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
function releaseSheet(id: string) {
|
|
394
|
+
const el: HTMLElement | null = document.getElementById(id);
|
|
395
|
+
if (!el) {
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
const remaining = Number(el.dataset['refs'] ?? '1') - 1;
|
|
399
|
+
if (remaining <= 0) {
|
|
400
|
+
el.remove();
|
|
401
|
+
} else {
|
|
402
|
+
el.dataset['refs'] = String(remaining);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// ── modifiers ────────────────────────────────────────────────────────────
|
|
407
|
+
//
|
|
408
|
+
// Four of them, and the split between them is deliberate. A functional
|
|
409
|
+
// modifier re-runs its whole body — destructor first — whenever ANY argument
|
|
410
|
+
// changes, so a single modifier taking both the host and the live options
|
|
411
|
+
// would tear the engine down and rebuild it every time `@cellHeight` moved,
|
|
412
|
+
// losing every item registration on the way. Therefore: the two LIFECYCLE
|
|
413
|
+
// modifiers take only stable arguments and never re-run, and the two SYNC
|
|
414
|
+
// modifiers that carry changing values have no destructor at all.
|
|
415
|
+
|
|
416
|
+
/** Creates the engine, and destroys it. Stable arg only — never re-runs. */
|
|
417
|
+
export const mountDashboardPlane = modifier(
|
|
418
|
+
(element: HTMLElement, [host]: [DashboardGridHost]) => {
|
|
419
|
+
retainSheet(ENGINE_SHEET_ID, DASHBOARD_ENGINE_CSS);
|
|
420
|
+
host.mount(element);
|
|
421
|
+
return () => {
|
|
422
|
+
host.unmount();
|
|
423
|
+
releaseSheet(ENGINE_SHEET_ID);
|
|
424
|
+
};
|
|
425
|
+
},
|
|
426
|
+
);
|
|
427
|
+
|
|
428
|
+
/** Pushes changed grid options into a live engine. No destructor by design. */
|
|
429
|
+
export const syncDashboardOptions = modifier(
|
|
430
|
+
(
|
|
431
|
+
_element: HTMLElement,
|
|
432
|
+
[host, cellHeight, gap, float, animate]: [
|
|
433
|
+
DashboardGridHost,
|
|
434
|
+
number,
|
|
435
|
+
number,
|
|
436
|
+
boolean,
|
|
437
|
+
boolean,
|
|
438
|
+
],
|
|
439
|
+
) => {
|
|
440
|
+
host.applyOptions(cellHeight, gap, float, animate);
|
|
441
|
+
},
|
|
442
|
+
);
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Registers one cell with the engine, and unregisters it.
|
|
446
|
+
*
|
|
447
|
+
* Its ONE argument is a plain untracked object the cell creates once, and
|
|
448
|
+
* that is the whole point — a functional modifier's destructor also runs
|
|
449
|
+
* before every RE-RUN, so if this modifier ever re-ran it would unregister
|
|
450
|
+
* and re-register a live tile: gridstack would tear down the drag/resize
|
|
451
|
+
* wiring (blurring whatever inside the tile had focus) and re-seed the tile
|
|
452
|
+
* at its AUTHORED cell, silently undoing the move in progress. Measured, not
|
|
453
|
+
* theorised — it is what the keyboard render proof caught.
|
|
454
|
+
*
|
|
455
|
+
* Nothing tracked may be read from here, directly or through the registry's
|
|
456
|
+
* closures: ember-modifier runs the body in an autotracking frame, so a read
|
|
457
|
+
* of `this.args.anything` would re-subscribe the modifier to exactly the
|
|
458
|
+
* churn this design exists to avoid. `DashboardItem` therefore captures its
|
|
459
|
+
* id, host and seed placement as untracked fields at construction, which is
|
|
460
|
+
* sound because `{{#each}}` is keyed by id — a cell's identity cannot change
|
|
461
|
+
* during its life.
|
|
462
|
+
*/
|
|
463
|
+
export const registerDashboardItem = modifier(
|
|
464
|
+
(element: HTMLElement, [registry]: [CellRegistry]) => {
|
|
465
|
+
registry.attach(element);
|
|
466
|
+
return () => registry.detach(element);
|
|
467
|
+
},
|
|
468
|
+
);
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Pushes a changed placement into a live engine. Re-running is its job, so it
|
|
472
|
+
* has no destructor and touches nothing but geometry.
|
|
473
|
+
*/
|
|
474
|
+
export const syncDashboardItem = modifier(
|
|
475
|
+
(
|
|
476
|
+
element: HTMLElement,
|
|
477
|
+
[host, live, x, y, w, h]: [
|
|
478
|
+
DashboardHost | undefined,
|
|
479
|
+
boolean,
|
|
480
|
+
number | undefined,
|
|
481
|
+
number | undefined,
|
|
482
|
+
number | undefined,
|
|
483
|
+
number | undefined,
|
|
484
|
+
],
|
|
485
|
+
) => {
|
|
486
|
+
if (!live) {
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
host?.syncItem(element, x, y, w, h);
|
|
490
|
+
},
|
|
491
|
+
);
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
export interface DashboardGridHost extends DashboardHost {
|
|
495
|
+
mount(element: HTMLElement): void;
|
|
496
|
+
unmount(): void;
|
|
497
|
+
applyOptions(
|
|
498
|
+
cellHeight: number,
|
|
499
|
+
gap: number,
|
|
500
|
+
float: boolean,
|
|
501
|
+
animate: boolean,
|
|
502
|
+
): void;
|
|
503
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Pretui — focus-on-token modifiers shared by the flow components.
|
|
2
|
+
import { modifier } from 'ember-modifier';
|
|
3
|
+
|
|
4
|
+
// ── focusOnToken ─────────────────────────────────────────────────────────
|
|
5
|
+
// `focus.gts`'s `focusWhen` focuses on the render where a boolean BECAME
|
|
6
|
+
// true, which is exactly wrong for a surface that must re-take focus on
|
|
7
|
+
// every transition: the flag stays true from step 2 to step 3 and the
|
|
8
|
+
// modifier never runs again. This one keys on a monotonic token, so each
|
|
9
|
+
// increment is a fresh install of the same intent — and token 0 means "the
|
|
10
|
+
// first render", which never steals focus (the `autofocus` sin the
|
|
11
|
+
// EditInPlace source committed).
|
|
12
|
+
//
|
|
13
|
+
// Exported as its own primitive per the build contract; both Wizard and
|
|
14
|
+
// EditInPlace use it, and any component with a "focus moved because the user
|
|
15
|
+
// navigated" transition should.
|
|
16
|
+
export const focusOnToken = modifier((el: HTMLElement, [token]: [number]) => {
|
|
17
|
+
if (token > 0) {
|
|
18
|
+
el.focus();
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const FOCUSABLE_INSIDE =
|
|
23
|
+
'input, textarea, select, button, [contenteditable="true"], [tabindex]:not([tabindex="-1"])';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The same token contract, aimed one level in: focuses the first focusable
|
|
27
|
+
* descendant and selects its text when it has any.
|
|
28
|
+
*
|
|
29
|
+
* This is what an inline editor needs. Focusing the WRAPPER — which is what
|
|
30
|
+
* a naive `{{focusWhen}}` on the editor box does — leaves the caret nowhere
|
|
31
|
+
* and the reader typing into the void, and it is the difference between an
|
|
32
|
+
* inline edit that feels native and one that needs a second click.
|
|
33
|
+
*/
|
|
34
|
+
export const focusInnerOnToken = modifier(
|
|
35
|
+
(el: HTMLElement, [token]: [number]) => {
|
|
36
|
+
if (token <= 0) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
let target = el.querySelector<HTMLElement>(FOCUSABLE_INSIDE) ?? el;
|
|
40
|
+
target.focus();
|
|
41
|
+
if (
|
|
42
|
+
target instanceof HTMLInputElement ||
|
|
43
|
+
target instanceof HTMLTextAreaElement
|
|
44
|
+
) {
|
|
45
|
+
target.select();
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Pretui — fixtures shared by the structure-layout usage pages.
|
|
2
|
+
import { PLACES, TEAS, seedFrom, take } from '../examples';
|
|
3
|
+
|
|
4
|
+
export
|
|
5
|
+
const LAYOUT_SEED = seedFrom('pretui-layout-demo');
|
|
6
|
+
|
|
7
|
+
export
|
|
8
|
+
interface Lot {
|
|
9
|
+
id: string;
|
|
10
|
+
tea: string;
|
|
11
|
+
place: string;
|
|
12
|
+
chests: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export
|
|
16
|
+
const LOTS: Lot[] = take(LAYOUT_SEED, 0, 5, TEAS).map((tea, i) => ({
|
|
17
|
+
id: 'B-' + (201 + i),
|
|
18
|
+
tea,
|
|
19
|
+
place: PLACES[(seedFrom(tea) + i) % PLACES.length] as string,
|
|
20
|
+
chests: 20 + (seedFrom('layout#' + tea) % 180),
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
export
|
|
24
|
+
// A deterministic, network-free image. Two flat bands and a disc, so the
|
|
25
|
+
// difference between `contain` and `cover` is visible at a glance.
|
|
26
|
+
const SWATCH =
|
|
27
|
+
'data:image/svg+xml;utf8,' +
|
|
28
|
+
encodeURIComponent(
|
|
29
|
+
[
|
|
30
|
+
"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 180'>",
|
|
31
|
+
"<rect width='320' height='180' fill='%23274b45'/>",
|
|
32
|
+
"<rect y='120' width='320' height='60' fill='%23c8d6c0'/>",
|
|
33
|
+
"<circle cx='236' cy='62' r='34' fill='%23e8c06a'/>",
|
|
34
|
+
'</svg>',
|
|
35
|
+
].join(''),
|
|
36
|
+
);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Pretui — structure/layout: the four atoms a React-trained agent reaches for
|
|
2
|
+
// before any domain UI exists.
|
|
3
|
+
//
|
|
4
|
+
// Stack the default React layout atom (Mantine Stack/Group,
|
|
5
|
+
// Chakra HStack/VStack, MUI Stack)
|
|
6
|
+
// Card header / media / body / footer COMPOSITION (shadcn Card)
|
|
7
|
+
// Collapsible a single disclosure (Radix Collapsible) — Accordion is the
|
|
8
|
+
// multi-panel set
|
|
9
|
+
// AspectRatio Law 8 in one component (Radix AspectRatio, Mantine
|
|
10
|
+
// AspectRatio) — also exported as `AspectBox`, the shared
|
|
11
|
+
// frame Gallery / AssetWell / MediaPlayer / CopyFit /
|
|
12
|
+
// Skeleton all want
|
|
13
|
+
//
|
|
14
|
+
// ── The kit constraint that shaped every one of these ────────────────────
|
|
15
|
+
//
|
|
16
|
+
// The scoped-CSS transpiler appends a `data-scopedcss-<fileHash>-<blockHash>`
|
|
17
|
+
// attribute selector to the LAST COMPOUND of every selector, and each template
|
|
18
|
+
// block in a file gets its own block hash. Verified through
|
|
19
|
+
// `boxel read-transpiled structure.gts`:
|
|
20
|
+
//
|
|
21
|
+
// .pretui-panel-header h2 → .pretui-panel-header h2[data-scopedcss-…]
|
|
22
|
+
//
|
|
23
|
+
// So a component can only style elements IT authored. `.pretui-stack > * + *`
|
|
24
|
+
// would compile to `… > * + *[data-scopedcss-mine]` and match nothing, because
|
|
25
|
+
// yielded children carry the CALLER's hash. That single fact decides three
|
|
26
|
+
// designs below and is why none of them reach for `:deep()`:
|
|
27
|
+
//
|
|
28
|
+
// • Stack's `@dividers` and the `min-inline-size: 0` overflow fix are only
|
|
29
|
+
// available in the `@items` + `<:item>` form, where the cell is authored
|
|
30
|
+
// here. The plain `{{yield}}` form says so rather than shipping a rule
|
|
31
|
+
// that silently does nothing.
|
|
32
|
+
// • Card authors every region wrapper, so its header grid needs no `:has()`.
|
|
33
|
+
// • AspectRatio's `contain`/`cover` modes paint the image themselves rather
|
|
34
|
+
// than styling a caller's `<img>`.
|
|
35
|
+
//
|
|
36
|
+
// ── Realm laws in force ─────────────────────────────────────────────────
|
|
37
|
+
// No timers, no `Date.now()`, no `Math.random()`, no `!important`, no
|
|
38
|
+
// `:deep()`, no `:global()`, no dark-mode branches, unnamed
|
|
39
|
+
// container queries only, every colour a token with a light fallback.
|
|
40
|
+
//
|
|
41
|
+
// Pretui — the layout vocabulary shared by Stack, Card, Collapsible and StackDivider: the size and orientation alias maps.
|
|
42
|
+
import { resolveSize } from '../pretui-primitives';
|
|
43
|
+
import type { PretuiSize } from '../pretui-primitives';
|
|
44
|
+
|
|
45
|
+
// ── Shared vocabulary + the inbound alias map ────────────────────────────
|
|
46
|
+
//
|
|
47
|
+
// The kit's size scale is `xs | s | m | l | xl`. Agents trained on
|
|
48
|
+
// shadcn/Tailwind emit `sm | md | lg | default`; those resolve here rather
|
|
49
|
+
// than becoming a second enum. This is Button's `@variant` model generalised:
|
|
50
|
+
// aliases resolve IN the component, docs teach the house name.
|
|
51
|
+
|
|
52
|
+
/** Every spelling of a size this kit will accept. */
|
|
53
|
+
export type SizeAlias =
|
|
54
|
+
| PretuiSize
|
|
55
|
+
| 'sm'
|
|
56
|
+
| 'md'
|
|
57
|
+
| 'lg'
|
|
58
|
+
| 'default'
|
|
59
|
+
| 'small'
|
|
60
|
+
| 'medium'
|
|
61
|
+
| 'large'
|
|
62
|
+
| 'middle';
|
|
63
|
+
|
|
64
|
+
/** Resolve any accepted size spelling to the house enum. */
|
|
65
|
+
export function pretuiSize(
|
|
66
|
+
raw: string | undefined,
|
|
67
|
+
fallback: PretuiSize = 'm',
|
|
68
|
+
): PretuiSize {
|
|
69
|
+
return resolveSize(raw, fallback);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Logical orientation. `direction` is accepted as an alias because MUI Stack
|
|
74
|
+
* and react-resizable-panels both spell it that way, and `row`/`column` are
|
|
75
|
+
* accepted because that is what an agent copying flexbox will type.
|
|
76
|
+
*/
|
|
77
|
+
export type Orientation = 'horizontal' | 'vertical';
|
|
78
|
+
export type OrientationAlias = Orientation | 'row' | 'column';
|
|
79
|
+
|
|
80
|
+
const ORIENTATIONS: Record<string, Orientation> = Object.assign(
|
|
81
|
+
Object.create(null) as Record<string, Orientation>,
|
|
82
|
+
{
|
|
83
|
+
horizontal: 'horizontal',
|
|
84
|
+
row: 'horizontal',
|
|
85
|
+
vertical: 'vertical',
|
|
86
|
+
column: 'vertical',
|
|
87
|
+
},
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
/** Resolve `@orientation` / `@direction` to the house enum. */
|
|
91
|
+
export function pretuiOrientation(
|
|
92
|
+
primary: string | undefined,
|
|
93
|
+
alias: string | undefined,
|
|
94
|
+
fallback: Orientation,
|
|
95
|
+
): Orientation {
|
|
96
|
+
let hit = primary === undefined ? undefined : ORIENTATIONS[primary];
|
|
97
|
+
let alt = alias === undefined ? undefined : ORIENTATIONS[alias];
|
|
98
|
+
return hit ?? alt ?? fallback;
|
|
99
|
+
}
|