@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,64 @@
|
|
|
1
|
+
// Pretui — DateTimePicker usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import { DateTimePicker } from './date-time-picker';
|
|
6
|
+
|
|
7
|
+
const GRANULARITIES = ['minute', 'second'];
|
|
8
|
+
|
|
9
|
+
export class DateTimePickerUsage extends Component {
|
|
10
|
+
granularities = GRANULARITIES;
|
|
11
|
+
@tracked value = '2026-10-02T07:30';
|
|
12
|
+
@tracked granularity = 'minute';
|
|
13
|
+
setValue = (v: string) => (this.value = v);
|
|
14
|
+
setGranularity = (v: string) => (this.granularity = v);
|
|
15
|
+
get granularityArg() {
|
|
16
|
+
return this.granularity as 'minute' | 'second';
|
|
17
|
+
}
|
|
18
|
+
get usage() {
|
|
19
|
+
let bits = ['@value={{this.startsAt}}', '@onChange={{this.setStartsAt}}', "@label='Roast starts'"];
|
|
20
|
+
if (this.granularity !== 'minute') bits.push(`@granularity='${this.granularity}'`);
|
|
21
|
+
return `<DateTimePicker ${bits.join(' ')} />`;
|
|
22
|
+
}
|
|
23
|
+
<template>
|
|
24
|
+
<FreestyleUsage
|
|
25
|
+
@name='DateTimePicker'
|
|
26
|
+
@description='A date and a time in one field with one popover: the calendar and the time segments together, and Done commits a single wall-clock datetime such as 2026-10-02T07:30. Done waits until both halves are set; closing without it keeps the committed value.'
|
|
27
|
+
@source={{this.usage}}
|
|
28
|
+
>
|
|
29
|
+
<:example>
|
|
30
|
+
<div class='dt-demo'>
|
|
31
|
+
<DateTimePicker @value={{this.value}} @onChange={{this.setValue}} @granularity={{this.granularityArg}} @label='Roast starts' />
|
|
32
|
+
<p class='dt-demo-value'>Value: <code>{{this.value}}</code></p>
|
|
33
|
+
</div>
|
|
34
|
+
</:example>
|
|
35
|
+
<:api as |Args|>
|
|
36
|
+
<Args.String @name='value' @description="'YYYY-MM-DDTHH:MM', with ':SS' at second granularity. defaultValue seeds the uncontrolled form." />
|
|
37
|
+
<Args.Action @name='onChange' @description='The committed datetime, on Done. onValueChange is an alias.' />
|
|
38
|
+
<Args.String @name='granularity' @value={{this.granularity}} @options={{this.granularities}} @defaultValue='minute' @onInput={{this.setGranularity}} />
|
|
39
|
+
<Args.String @name='hourCycle' @defaultValue='24' />
|
|
40
|
+
<Args.String @name='label' @defaultValue='Date and time' />
|
|
41
|
+
<Args.String @name='placeholder' />
|
|
42
|
+
<Args.String @name='minDate' />
|
|
43
|
+
<Args.String @name='maxDate' />
|
|
44
|
+
<Args.Bool @name='disabled' @defaultValue={{false}} />
|
|
45
|
+
</:api>
|
|
46
|
+
</FreestyleUsage>
|
|
47
|
+
<style scoped>
|
|
48
|
+
.dt-demo {
|
|
49
|
+
display: grid;
|
|
50
|
+
gap: var(--space-2, 0.375rem);
|
|
51
|
+
padding-block-end: 22rem;
|
|
52
|
+
}
|
|
53
|
+
.dt-demo-value {
|
|
54
|
+
margin: 0;
|
|
55
|
+
font-size: var(--text-ui-sm, 0.72rem);
|
|
56
|
+
color: var(--muted-foreground);
|
|
57
|
+
}
|
|
58
|
+
</style>
|
|
59
|
+
</template>
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const DEMOS_DATE_TIME_PICKER: Record<string, unknown> = {
|
|
63
|
+
DateTimePicker: DateTimePickerUsage,
|
|
64
|
+
};
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
// Pretui — Defer: renders its content only when it becomes visible, idle or intended.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { modifier } from 'ember-modifier';
|
|
6
|
+
import { inViewport } from './in-view';
|
|
7
|
+
import { Skeleton } from './skeleton';
|
|
8
|
+
import { cssDeclaration, cssStyleFrom } from '../pretui-css';
|
|
9
|
+
|
|
10
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
11
|
+
// Defer
|
|
12
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
13
|
+
//
|
|
14
|
+
// From `catalog-app/components/card-with-hydration.gts`.
|
|
15
|
+
//
|
|
16
|
+
// Better than the inspiration:
|
|
17
|
+
//
|
|
18
|
+
// 1. **The guard actually guards.** The upstream wrote
|
|
19
|
+
// `new Boolean(this.hydratedCardId)` — a Boolean *object*, which is
|
|
20
|
+
// truthy even wrapping `undefined`, so the condition it looks like was
|
|
21
|
+
// never once false. Here the gate is one tracked boolean and one arg.
|
|
22
|
+
// 2. **Four triggers, and every one of them is reachable.** The upstream
|
|
23
|
+
// had `mouseenter` and nothing else: no focus path, no touch path, no
|
|
24
|
+
// click, no intersection — so keyboard and touch readers never hydrated
|
|
25
|
+
// anything, ever. `intent` mode renders a real, named `<button>` over
|
|
26
|
+
// the placeholder (hover, focus, tap and Enter all reveal); `visible`
|
|
27
|
+
// uses an IntersectionObserver; `idle` uses a one-shot, modifier-owned
|
|
28
|
+
// idle callback; `manual` obeys `@when` alone.
|
|
29
|
+
// 3. **The placeholder reserves the final layout's space.** The upstream
|
|
30
|
+
// reserved nothing, so every hydration shoved the page. `@minHeight` /
|
|
31
|
+
// `@aspect` size the gate itself, and `min-block-size` is kept after the
|
|
32
|
+
// swap so the box can never shrink back.
|
|
33
|
+
// 4. **`aria-busy` while pending, and a placeholder that is `aria-hidden`.**
|
|
34
|
+
// The upstream announced nothing at all; a shimmer with no `aria-busy`
|
|
35
|
+
// is a decoration that lies.
|
|
36
|
+
// 5. **No error branch.** The upstream painted failures as an
|
|
37
|
+
// `rgba(255,0,0,0.1)` tint with no icon, no text and no `role='alert'` —
|
|
38
|
+
// colour-only error. The right fix is not a better tint: loading and
|
|
39
|
+
// failing belong to the *deferred content*, not to the gate that decided
|
|
40
|
+
// when to render it. Defer renders; whatever it renders owns its own
|
|
41
|
+
// states (that is what `DataComponent` is for).
|
|
42
|
+
// 6. **`cursor: pointer` only where something is clickable.** The upstream
|
|
43
|
+
// put it on an element with no click handler, and an `outline` on
|
|
44
|
+
// `:hover` but never on focus.
|
|
45
|
+
// 7. **Named transition + reduced motion.** `transition: ease 0.2s` names
|
|
46
|
+
// no property; here the reveal is a `@starting-style` fade on opacity
|
|
47
|
+
// alone, and `prefers-reduced-motion` lands on the end state.
|
|
48
|
+
//
|
|
49
|
+
// Distinct from `InView`, deliberately: InView always renders its content
|
|
50
|
+
// and animates the entrance; Defer decides whether to render at all. They
|
|
51
|
+
// share the mechanism, InView's `inViewport` modifier, not the job.
|
|
52
|
+
|
|
53
|
+
export type DeferTrigger = 'visible' | 'idle' | 'intent' | 'manual';
|
|
54
|
+
|
|
55
|
+
interface IdleScheduler {
|
|
56
|
+
requestIdleCallback?: (
|
|
57
|
+
callback: () => void,
|
|
58
|
+
options?: { timeout: number },
|
|
59
|
+
) => number;
|
|
60
|
+
cancelIdleCallback?: (handle: number) => void;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Reveal when the main thread goes quiet.
|
|
65
|
+
*
|
|
66
|
+
* The realm's timer law in full: the handle is owned by this modifier, it is
|
|
67
|
+
* cleared in the destructor, and it is **one-shot** — nothing here re-arms,
|
|
68
|
+
* which is the property that keeps `await settled()` from hanging the whole
|
|
69
|
+
* suite. `requestIdleCallback` where it exists (with its own timeout as the
|
|
70
|
+
* upper bound), a single `setTimeout` where it does not.
|
|
71
|
+
*/
|
|
72
|
+
export const revealsWhenIdle = modifier(
|
|
73
|
+
(_el: HTMLElement, [armed, timeout, reveal]: [boolean, number, () => void]) => {
|
|
74
|
+
if (!armed) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
let scope = globalThis as typeof globalThis & IdleScheduler;
|
|
78
|
+
let idleHandle: number | undefined;
|
|
79
|
+
let timerHandle: ReturnType<typeof setTimeout> | undefined;
|
|
80
|
+
if (typeof scope.requestIdleCallback === 'function') {
|
|
81
|
+
idleHandle = scope.requestIdleCallback(() => {
|
|
82
|
+
idleHandle = undefined;
|
|
83
|
+
reveal();
|
|
84
|
+
}, { timeout });
|
|
85
|
+
} else {
|
|
86
|
+
timerHandle = setTimeout(() => {
|
|
87
|
+
timerHandle = undefined;
|
|
88
|
+
reveal();
|
|
89
|
+
}, timeout);
|
|
90
|
+
}
|
|
91
|
+
return () => {
|
|
92
|
+
if (idleHandle !== undefined && typeof scope.cancelIdleCallback === 'function') {
|
|
93
|
+
scope.cancelIdleCallback(idleHandle);
|
|
94
|
+
}
|
|
95
|
+
if (timerHandle !== undefined) {
|
|
96
|
+
clearTimeout(timerHandle);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
export interface DeferSignature {
|
|
103
|
+
Args: {
|
|
104
|
+
/**
|
|
105
|
+
* What decides. `visible` (default) — an IntersectionObserver.
|
|
106
|
+
* `intent` — a named button covering the placeholder: hover, focus, tap
|
|
107
|
+
* or Enter. `idle` — the first idle slice. `manual` — `@when` only.
|
|
108
|
+
*/
|
|
109
|
+
trigger?: DeferTrigger;
|
|
110
|
+
/**
|
|
111
|
+
* Explicit gate. When `true` the content renders immediately regardless
|
|
112
|
+
* of `@trigger`; when `false` the trigger still applies. This is the
|
|
113
|
+
* caller's override, not a lock.
|
|
114
|
+
*/
|
|
115
|
+
when?: boolean;
|
|
116
|
+
/** Stay revealed once revealed (default true). `false` re-hides on exit — for content too heavy to keep alive off-screen. */
|
|
117
|
+
once?: boolean;
|
|
118
|
+
/** IntersectionObserver threshold, 0–1. Default 0. */
|
|
119
|
+
threshold?: number;
|
|
120
|
+
/** IntersectionObserver rootMargin — '200px' to start early. Default '200px'. */
|
|
121
|
+
rootMargin?: string;
|
|
122
|
+
/** Upper bound in SECONDS on the idle wait. Default 2. */
|
|
123
|
+
idleTimeout?: number;
|
|
124
|
+
/** Reserved height while pending — kept afterwards as a floor. Any CSS length. */
|
|
125
|
+
minHeight?: string;
|
|
126
|
+
/** Reserved aspect ratio while pending, e.g. '16 / 9'. Dropped once revealed. */
|
|
127
|
+
aspect?: string;
|
|
128
|
+
/** Accessible name of the intent button. Default 'Load content'. */
|
|
129
|
+
intentLabel?: string;
|
|
130
|
+
/** Visible caption on the intent affordance. Omit for a bare surface. */
|
|
131
|
+
intentText?: string;
|
|
132
|
+
/** Announced politely once, after the swap. Silent by default — content arriving on scroll is not news. */
|
|
133
|
+
announceText?: string;
|
|
134
|
+
/** Fires the first time the content is revealed. */
|
|
135
|
+
onReveal?: () => void;
|
|
136
|
+
};
|
|
137
|
+
Blocks: {
|
|
138
|
+
/** The deferred subtree. Rendered only once the gate opens. */
|
|
139
|
+
default: [];
|
|
140
|
+
/** Replaces the Skeleton. Must occupy the reserved box. Requires an explicit `<:default>` alongside it. */
|
|
141
|
+
placeholder: [];
|
|
142
|
+
};
|
|
143
|
+
Element: HTMLDivElement;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export class Defer extends Component<DeferSignature> {
|
|
147
|
+
@tracked private tripped = false;
|
|
148
|
+
/** Set once the content has been shown at least once. */
|
|
149
|
+
@tracked private everRevealed = false;
|
|
150
|
+
|
|
151
|
+
get trigger(): DeferTrigger {
|
|
152
|
+
return this.args.trigger ?? 'visible';
|
|
153
|
+
}
|
|
154
|
+
get once(): boolean {
|
|
155
|
+
return this.args.once ?? true;
|
|
156
|
+
}
|
|
157
|
+
get threshold(): number {
|
|
158
|
+
let value = this.args.threshold;
|
|
159
|
+
return typeof value === 'number' && value >= 0 && value <= 1 ? value : 0;
|
|
160
|
+
}
|
|
161
|
+
get rootMargin(): string {
|
|
162
|
+
return this.args.rootMargin ?? '200px';
|
|
163
|
+
}
|
|
164
|
+
/** Seconds in, milliseconds out — the kit speaks seconds everywhere. */
|
|
165
|
+
get idleTimeout(): number {
|
|
166
|
+
let seconds = this.args.idleTimeout;
|
|
167
|
+
return Math.round(
|
|
168
|
+
(typeof seconds === 'number' && seconds > 0 ? seconds : 2) * 1000,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
get revealed(): boolean {
|
|
172
|
+
if (this.args.when === true) {
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
if (this.once && this.everRevealed) {
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
return this.tripped;
|
|
179
|
+
}
|
|
180
|
+
get pending(): boolean {
|
|
181
|
+
return !this.revealed;
|
|
182
|
+
}
|
|
183
|
+
get busyAttr(): string {
|
|
184
|
+
return this.pending ? 'true' : 'false';
|
|
185
|
+
}
|
|
186
|
+
get stateAttr(): string {
|
|
187
|
+
return this.revealed ? 'revealed' : 'pending';
|
|
188
|
+
}
|
|
189
|
+
/** Arm the observer only while it could still do something: until the
|
|
190
|
+
* first reveal, or for good when the content re-hides on exit. */
|
|
191
|
+
get watching(): boolean {
|
|
192
|
+
return this.trigger === 'visible' && (!this.once || !this.revealed);
|
|
193
|
+
}
|
|
194
|
+
get idling(): boolean {
|
|
195
|
+
return this.trigger === 'idle' && !this.revealed;
|
|
196
|
+
}
|
|
197
|
+
get showIntent(): boolean {
|
|
198
|
+
return this.trigger === 'intent' && this.pending;
|
|
199
|
+
}
|
|
200
|
+
get intentLabel(): string {
|
|
201
|
+
return this.args.intentLabel ?? 'Load content';
|
|
202
|
+
}
|
|
203
|
+
get liveText(): string {
|
|
204
|
+
return this.revealed && this.args.announceText ? this.args.announceText : '';
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* The reservation. `min-block-size` is written on the host and kept for
|
|
209
|
+
* good — a floor cannot cause a shift. `aspect-ratio` is only written
|
|
210
|
+
* while pending, because keeping it would distort real content.
|
|
211
|
+
*/
|
|
212
|
+
get hostStyle() {
|
|
213
|
+
return cssStyleFrom([
|
|
214
|
+
cssDeclaration('min-block-size', this.args.minHeight),
|
|
215
|
+
this.pending ? cssDeclaration('aspect-ratio', this.args.aspect) : undefined,
|
|
216
|
+
]);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
reveal = (): void => {
|
|
220
|
+
if (this.revealed) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
this.tripped = true;
|
|
224
|
+
if (!this.everRevealed) {
|
|
225
|
+
this.everRevealed = true;
|
|
226
|
+
this.args.onReveal?.();
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
onViewport = (inView: boolean): void => {
|
|
231
|
+
if (inView) {
|
|
232
|
+
this.reveal();
|
|
233
|
+
} else if (!this.once) {
|
|
234
|
+
this.tripped = false;
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
<template>
|
|
239
|
+
<div
|
|
240
|
+
class='pretui-defer'
|
|
241
|
+
data-state={{this.stateAttr}}
|
|
242
|
+
data-trigger={{this.trigger}}
|
|
243
|
+
aria-busy={{this.busyAttr}}
|
|
244
|
+
style={{this.hostStyle}}
|
|
245
|
+
data-test-pretui-defer
|
|
246
|
+
{{inViewport
|
|
247
|
+
this.threshold
|
|
248
|
+
this.rootMargin
|
|
249
|
+
this.once
|
|
250
|
+
enabled=this.watching
|
|
251
|
+
onChange=this.onViewport
|
|
252
|
+
}}
|
|
253
|
+
{{revealsWhenIdle this.idling this.idleTimeout this.reveal}}
|
|
254
|
+
...attributes
|
|
255
|
+
>
|
|
256
|
+
{{#if this.revealed}}
|
|
257
|
+
<div class='pretui-defer-content' data-test-pretui-defer-content>
|
|
258
|
+
{{yield}}
|
|
259
|
+
</div>
|
|
260
|
+
{{else}}
|
|
261
|
+
<div class='pretui-defer-slot' data-test-pretui-defer-placeholder>
|
|
262
|
+
{{#if (has-block 'placeholder')}}
|
|
263
|
+
{{yield to='placeholder'}}
|
|
264
|
+
{{else}}
|
|
265
|
+
<Skeleton @height='100%' />
|
|
266
|
+
{{/if}}
|
|
267
|
+
{{#if this.showIntent}}
|
|
268
|
+
{{!--
|
|
269
|
+
A real button, not a div with a hover handler. It carries the
|
|
270
|
+
only accessible name in the subtree (the Skeleton is
|
|
271
|
+
aria-hidden), so hover, focus, tap and Enter are one control
|
|
272
|
+
rather than four code paths.
|
|
273
|
+
--}}
|
|
274
|
+
<button
|
|
275
|
+
type='button'
|
|
276
|
+
class='pretui-defer-intent'
|
|
277
|
+
aria-label={{this.intentLabel}}
|
|
278
|
+
data-test-pretui-defer-intent
|
|
279
|
+
{{on 'click' this.reveal}}
|
|
280
|
+
{{on 'pointerenter' this.reveal}}
|
|
281
|
+
{{on 'focus' this.reveal}}
|
|
282
|
+
>{{#if @intentText}}<span
|
|
283
|
+
class='pretui-defer-intent-text'
|
|
284
|
+
>{{@intentText}}</span>{{/if}}</button>
|
|
285
|
+
{{/if}}
|
|
286
|
+
</div>
|
|
287
|
+
{{/if}}
|
|
288
|
+
<span class='pretui-sr' role='status' data-test-pretui-defer-live>{{this.liveText}}</span>
|
|
289
|
+
</div>
|
|
290
|
+
<style scoped>
|
|
291
|
+
@layer PretComponent {
|
|
292
|
+
.pretui-defer {
|
|
293
|
+
display: grid;
|
|
294
|
+
align-content: stretch;
|
|
295
|
+
min-width: 0;
|
|
296
|
+
position: relative;
|
|
297
|
+
}
|
|
298
|
+
.pretui-defer-content,
|
|
299
|
+
.pretui-defer-slot {
|
|
300
|
+
min-width: 0;
|
|
301
|
+
}
|
|
302
|
+
.pretui-defer-slot {
|
|
303
|
+
display: grid;
|
|
304
|
+
align-content: stretch;
|
|
305
|
+
position: relative;
|
|
306
|
+
border-radius: var(--radius-surface, 10px);
|
|
307
|
+
overflow: hidden;
|
|
308
|
+
}
|
|
309
|
+
/* The swap is a fade on opacity only, from a @starting-style — no
|
|
310
|
+
transform, because content that slides in has moved the layout the
|
|
311
|
+
placeholder just spent its life reserving. */
|
|
312
|
+
.pretui-defer-content {
|
|
313
|
+
opacity: 1;
|
|
314
|
+
transition: opacity var(--pretui-dur-snap, 180ms)
|
|
315
|
+
var(--pretui-ease-snap, cubic-bezier(0.23, 1, 0.32, 1));
|
|
316
|
+
}
|
|
317
|
+
@starting-style {
|
|
318
|
+
.pretui-defer-content {
|
|
319
|
+
opacity: 0;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/* The intent affordance covers the placeholder rather than sitting
|
|
323
|
+
beside it: the whole reserved box is the target, which is how it
|
|
324
|
+
clears 44px on touch without a size arg. */
|
|
325
|
+
.pretui-defer-intent {
|
|
326
|
+
position: absolute;
|
|
327
|
+
inset: 0;
|
|
328
|
+
display: grid;
|
|
329
|
+
place-items: center;
|
|
330
|
+
border: 0;
|
|
331
|
+
border-radius: inherit;
|
|
332
|
+
background: transparent;
|
|
333
|
+
color: var(--muted-foreground);
|
|
334
|
+
font: inherit;
|
|
335
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
336
|
+
letter-spacing: var(--track-ui, 0.01em);
|
|
337
|
+
cursor: pointer;
|
|
338
|
+
transition: background var(--pretui-dur-snap, 180ms)
|
|
339
|
+
var(--pretui-ease-snap, cubic-bezier(0.23, 1, 0.32, 1));
|
|
340
|
+
}
|
|
341
|
+
.pretui-defer-intent:hover {
|
|
342
|
+
background: var(--hover, var(--boxel-100));
|
|
343
|
+
}
|
|
344
|
+
.pretui-defer-intent:focus-visible {
|
|
345
|
+
outline: 2px solid var(--ring);
|
|
346
|
+
outline-offset: -2px;
|
|
347
|
+
}
|
|
348
|
+
.pretui-defer-intent-text {
|
|
349
|
+
padding: var(--space-2, 6px) var(--space-4, 12px);
|
|
350
|
+
border-radius: var(--radius);
|
|
351
|
+
background: var(--card);
|
|
352
|
+
box-shadow: 0 0 0 1px var(--border);
|
|
353
|
+
}
|
|
354
|
+
@media (prefers-reduced-motion: reduce) {
|
|
355
|
+
.pretui-defer-content,
|
|
356
|
+
.pretui-defer-intent {
|
|
357
|
+
transition: none;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
.pretui-sr {
|
|
361
|
+
position: absolute;
|
|
362
|
+
width: 1px;
|
|
363
|
+
height: 1px;
|
|
364
|
+
margin: -1px;
|
|
365
|
+
padding: 0;
|
|
366
|
+
overflow: hidden;
|
|
367
|
+
clip-path: inset(50%);
|
|
368
|
+
white-space: nowrap;
|
|
369
|
+
border: 0;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
</style>
|
|
373
|
+
</template>
|
|
374
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
A render gate: hold a subtree until it is in view, until the browser is idle, until the reader asks for it, or until a flag says so — with a placeholder that reserves the final space in the meantime.
|
|
4
|
+
|
|
5
|
+
It is about _work_, not choreography. **InView** animates an arrival; Defer decides whether the content is built at all. They compose.
|
|
6
|
+
|
|
7
|
+
## The contract
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
@trigger? — 'visible' (default, IntersectionObserver) | 'intent' | 'idle' | 'manual'
|
|
11
|
+
@when? — explicit gate: true renders immediately regardless of @trigger;
|
|
12
|
+
false leaves the trigger in charge. A caller override, not a lock
|
|
13
|
+
@once? — stay revealed once revealed. Default true
|
|
14
|
+
@threshold? — IntersectionObserver threshold, 0–1. Default 0
|
|
15
|
+
@rootMargin? — IntersectionObserver rootMargin. Default '200px'
|
|
16
|
+
@idleTimeout? — upper bound in seconds on the idle wait. Default 2
|
|
17
|
+
@minHeight? — reserved height while pending; kept afterwards as a floor
|
|
18
|
+
@aspect? — reserved aspect ratio while pending; dropped once revealed
|
|
19
|
+
@intentLabel? — accessible name of the intent button. Default 'Load content'
|
|
20
|
+
@intentText? — visible caption on the intent affordance
|
|
21
|
+
@announceText? — announced politely once, after the swap. Silent by default
|
|
22
|
+
@onReveal? — fires the first time the content is revealed
|
|
23
|
+
|
|
24
|
+
<:default> — the deferred subtree; rendered only once the gate opens
|
|
25
|
+
<:placeholder> — replaces the Skeleton; must occupy the reserved box
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**The placeholder reserves the final space**, which is the whole reason this is safe to use on a long page: content arriving does not push everything below it down. `@minHeight` survives as a floor afterwards; `@aspect` is dropped once revealed.
|
|
29
|
+
|
|
30
|
+
**`@when` is an override, not a lock.** True renders now; false does not prevent the trigger from firing. A caller cannot use it to hold content closed.
|
|
31
|
+
|
|
32
|
+
**`@rootMargin` defaults to 200px**, so visible-triggered content starts before it is on screen and is usually there by the time the reader arrives.
|
|
33
|
+
|
|
34
|
+
**`@trigger='intent'` puts a named button over the placeholder** — hover, focus, tap or Enter all open it. That is the trigger to use for anything expensive enough that a scroll-past should not pay for it.
|
|
35
|
+
|
|
36
|
+
**`@once={{false}}` re-hides on exit** with `@trigger='visible'`, for content too heavy to keep alive off-screen: the observer stays armed, and the content unmounts when it scrolls away and mounts again when it returns. `@onReveal` still fires only the first time.
|
|
37
|
+
|
|
38
|
+
## Prior art
|
|
39
|
+
|
|
40
|
+
**boxel-catalog's card-with-hydration** is the source.
|
|
41
|
+
|
|
42
|
+
Where Pretui is better: four triggers rather than one, a reserved box rather than a collapsing placeholder, and an intent affordance that is a real button with an accessible name — so the "load this" path is not hover-only.
|
|
43
|
+
|
|
44
|
+
Where it is thinner: no priority or concurrency control across several Defers on a page — they all open independently — no retry if the deferred subtree throws, and no way to pre-warm without revealing. The idle trigger is bounded by `@idleTimeout` rather than being truly opportunistic.
|
|
45
|
+
|
|
46
|
+
## Accessibility
|
|
47
|
+
|
|
48
|
+
- **It is silent by default, and that is the right default.** Content arriving because someone scrolled is not news, and a live region that announces every deferred block on a long page is unusable. `@announceText` is the opt-in for the cases where the arrival genuinely matters.
|
|
49
|
+
- **The announcement is polite and fires once**, after the swap — not on every re-reveal.
|
|
50
|
+
- **The intent affordance is a real button** with an accessible name defaulting to "Load content", operable by Enter and by tap as well as by hover. An intent gate that only responds to hover would be unreachable by keyboard.
|
|
51
|
+
- **`@intentLabel` is the accessible name and `@intentText` the visible caption** — separate args, so a bare surface can still be named.
|
|
52
|
+
- **The reserved box prevents layout shift**, which is a genuine accessibility property: content moving under a reader mid-sentence affects everyone, and most of all anyone using magnification.
|
|
53
|
+
- **Deferred content is not in the accessibility tree until it renders.** A screen-reader user moving by heading will not find a heading inside an unopened Defer — so do not defer navigation landmarks or anything a reader might jump to.
|
|
54
|
+
|
|
55
|
+
## Theming
|
|
56
|
+
|
|
57
|
+
`@minHeight` and `@aspect` are caller values rather than tokens, since a reserved box is a property of the content rather than of the theme. The default placeholder is the kit's **Skeleton**, so it inherits that component's tokens and a theme retunes every pending block at once.
|
|
58
|
+
|
|
59
|
+
`<:placeholder>` must occupy the reserved box — a placeholder smaller than the content reintroduces exactly the layout shift the component exists to prevent.
|
|
60
|
+
|
|
61
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// Pretui — Defer usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
6
|
+
import { Button } from './button';
|
|
7
|
+
import { Defer } from './defer';
|
|
8
|
+
|
|
9
|
+
// ── Defer ────────────────────────────────────────────────────────────────
|
|
10
|
+
const TRIGGERS = ['visible', 'idle', 'intent', 'manual'];
|
|
11
|
+
|
|
12
|
+
// Dropped upstream surface: the error branch. Loading and failing belong to
|
|
13
|
+
// the deferred content, not to the gate that decided when to render it.
|
|
14
|
+
class DeferUsage extends Component {
|
|
15
|
+
triggers = TRIGGERS;
|
|
16
|
+
|
|
17
|
+
@tracked trigger = 'intent';
|
|
18
|
+
@tracked minHeight = '120px';
|
|
19
|
+
@tracked aspect = '';
|
|
20
|
+
@tracked intentText = 'Show the chart';
|
|
21
|
+
@tracked revealCount = 0;
|
|
22
|
+
@tracked nonce = 0;
|
|
23
|
+
|
|
24
|
+
setTrigger = (v: string) => {
|
|
25
|
+
this.trigger = v;
|
|
26
|
+
this.nonce = this.nonce + 1;
|
|
27
|
+
};
|
|
28
|
+
setMinHeight = (v: string) => (this.minHeight = v);
|
|
29
|
+
setAspect = (v: string) => (this.aspect = v);
|
|
30
|
+
setIntentText = (v: string) => (this.intentText = v);
|
|
31
|
+
onReveal = () => (this.revealCount = this.revealCount + 1);
|
|
32
|
+
reset = () => (this.nonce = this.nonce + 1);
|
|
33
|
+
|
|
34
|
+
get triggerValue() {
|
|
35
|
+
return this.trigger as 'visible' | 'idle' | 'intent' | 'manual';
|
|
36
|
+
}
|
|
37
|
+
/** One keyed entry — bumping the nonce tears the gate down and builds a
|
|
38
|
+
* fresh one, which is how the demo re-arms without a timer. */
|
|
39
|
+
get gates() {
|
|
40
|
+
return [{ id: 'gate-' + this.nonce }];
|
|
41
|
+
}
|
|
42
|
+
get aspectValue() {
|
|
43
|
+
return this.aspect.length > 0 ? this.aspect : undefined;
|
|
44
|
+
}
|
|
45
|
+
get usage() {
|
|
46
|
+
return "<Defer @trigger='" +
|
|
47
|
+
this.trigger +
|
|
48
|
+
"' @minHeight='" +
|
|
49
|
+
this.minHeight +
|
|
50
|
+
"' @onReveal={{this.load}}><:default>expensive thing</:default></Defer>";
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
<FreestyleUsage
|
|
55
|
+
@name='Defer'
|
|
56
|
+
@description='A render gate. The subtree is not rendered until it is worth paying for — when it scrolls into view, when the main thread goes idle, when the reader signals intent, or when a caller flag says so — and the placeholder reserves the final space so nothing shifts when the content lands. Reset re-arms the gate.'
|
|
57
|
+
@source={{this.usage}}
|
|
58
|
+
>
|
|
59
|
+
<:example>
|
|
60
|
+
<div class='pretui-demo-defer'>
|
|
61
|
+
{{#each this.gates key='id' as |gate|}}
|
|
62
|
+
<Defer
|
|
63
|
+
@trigger={{this.triggerValue}}
|
|
64
|
+
@minHeight={{this.minHeight}}
|
|
65
|
+
@aspect={{this.aspectValue}}
|
|
66
|
+
@intentLabel='Load the revenue chart'
|
|
67
|
+
@intentText={{this.intentText}}
|
|
68
|
+
@announceText='Revenue chart loaded'
|
|
69
|
+
@onReveal={{this.onReveal}}
|
|
70
|
+
>
|
|
71
|
+
<:placeholder>
|
|
72
|
+
<div class='pretui-demo-skel' aria-hidden='true'>
|
|
73
|
+
reserved space
|
|
74
|
+
</div>
|
|
75
|
+
</:placeholder>
|
|
76
|
+
<:default>
|
|
77
|
+
<div class='pretui-demo-heavy'>
|
|
78
|
+
The expensive thing — a chart, a map, an editor, a WebGL
|
|
79
|
+
scene. Rendered exactly once,
|
|
80
|
+
{{gate.id}}.
|
|
81
|
+
</div>
|
|
82
|
+
</:default>
|
|
83
|
+
</Defer>
|
|
84
|
+
{{/each}}
|
|
85
|
+
</div>
|
|
86
|
+
<p class='pretui-demo-readout' data-test-defer-readout>
|
|
87
|
+
revealed
|
|
88
|
+
{{this.revealCount}}
|
|
89
|
+
times
|
|
90
|
+
</p>
|
|
91
|
+
<Button
|
|
92
|
+
@tone='neutral'
|
|
93
|
+
@appearance='outlined'
|
|
94
|
+
data-test-defer-reset
|
|
95
|
+
{{on 'click' this.reset}}
|
|
96
|
+
>Reset the gate</Button>
|
|
97
|
+
</:example>
|
|
98
|
+
<:api as |Args|>
|
|
99
|
+
<Args.String
|
|
100
|
+
@name='trigger'
|
|
101
|
+
@defaultValue='visible'
|
|
102
|
+
@value={{this.trigger}}
|
|
103
|
+
@options={{this.triggers}}
|
|
104
|
+
@description='What decides. visible uses an IntersectionObserver; intent renders a real named button over the placeholder so hover, focus, tap and Enter are one control; idle uses a one-shot modifier-owned idle callback; manual obeys the when flag alone.'
|
|
105
|
+
@onInput={{this.setTrigger}}
|
|
106
|
+
/>
|
|
107
|
+
<Args.String
|
|
108
|
+
@name='minHeight'
|
|
109
|
+
@defaultValue=''
|
|
110
|
+
@value={{this.minHeight}}
|
|
111
|
+
@description='Reserved height while pending, kept afterwards as a floor. A floor can never cause a shift, which an aspect ratio can.'
|
|
112
|
+
@onInput={{this.setMinHeight}}
|
|
113
|
+
/>
|
|
114
|
+
<Args.String
|
|
115
|
+
@name='aspect'
|
|
116
|
+
@defaultValue=''
|
|
117
|
+
@value={{this.aspect}}
|
|
118
|
+
@description='Reserved aspect ratio while pending, dropped once revealed so real content is never distorted.'
|
|
119
|
+
@onInput={{this.setAspect}}
|
|
120
|
+
/>
|
|
121
|
+
<Args.String
|
|
122
|
+
@name='intentText'
|
|
123
|
+
@defaultValue=''
|
|
124
|
+
@value={{this.intentText}}
|
|
125
|
+
@description='Visible caption on the intent affordance. The accessible name comes from intentLabel and is always required.'
|
|
126
|
+
@onInput={{this.setIntentText}}
|
|
127
|
+
/>
|
|
128
|
+
<Args.Action
|
|
129
|
+
@name='onReveal'
|
|
130
|
+
@description='Fires the first time the content is revealed.'
|
|
131
|
+
/>
|
|
132
|
+
<Args.Yield
|
|
133
|
+
@name='placeholder'
|
|
134
|
+
@description='Replaces the Skeleton. Supplying it requires an explicit default block alongside — a Glimmer rule, not a Defer one.'
|
|
135
|
+
/>
|
|
136
|
+
</:api>
|
|
137
|
+
</FreestyleUsage>
|
|
138
|
+
<style scoped>
|
|
139
|
+
.pretui-demo-defer {
|
|
140
|
+
display: grid;
|
|
141
|
+
gap: var(--space-4, 12px);
|
|
142
|
+
}
|
|
143
|
+
.pretui-demo-skel {
|
|
144
|
+
display: grid;
|
|
145
|
+
place-items: center;
|
|
146
|
+
height: 100%;
|
|
147
|
+
border-radius: var(--radius-surface, 10px);
|
|
148
|
+
background: var(--inset, var(--boxel-100));
|
|
149
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
150
|
+
color: var(--ink-3, var(--boxel-400));
|
|
151
|
+
}
|
|
152
|
+
.pretui-demo-heavy {
|
|
153
|
+
display: grid;
|
|
154
|
+
place-items: center;
|
|
155
|
+
height: 100%;
|
|
156
|
+
padding: var(--space-5, 16px);
|
|
157
|
+
border-radius: var(--radius-surface, 10px);
|
|
158
|
+
background: color-mix(in oklch, var(--primary) 10%, var(--card));
|
|
159
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
160
|
+
text-align: center;
|
|
161
|
+
}
|
|
162
|
+
.pretui-demo-readout {
|
|
163
|
+
margin: var(--space-3, 8px) 0;
|
|
164
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
165
|
+
font-variant-numeric: tabular-nums;
|
|
166
|
+
color: var(--muted-foreground);
|
|
167
|
+
}
|
|
168
|
+
</style>
|
|
169
|
+
</template>
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export const DEMOS_DEFER: Record<string, unknown> = {
|
|
173
|
+
Defer: DeferUsage,
|
|
174
|
+
};
|