@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,48 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
The bulk-selection bar: "3 of 40 selected", the actions you can take against that selection, and a way to clear it.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@count (required) — how many things are selected. ZERO HIDES THE BAR ENTIRELY
|
|
9
|
+
@total? — the collection's size, for "3 of 40 selected"
|
|
10
|
+
@noun? — singular noun, pluralised by adding an s. Default 'item'
|
|
11
|
+
@actions? — the actions offered against the selection
|
|
12
|
+
@maxVisible? — how many actions get their own button before the rest collapse
|
|
13
|
+
into an overflow Menu. Default 3
|
|
14
|
+
@overflowLabel? — default 'More actions'
|
|
15
|
+
@label? — the bar's accessible name. Default 'Selection actions'
|
|
16
|
+
@clearLabel? — default 'Clear selection'
|
|
17
|
+
@onClear? — called by the clear button AND by Escape inside the bar
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Zero selection hides the bar.** The caller does not conditionally render it; it renders itself away, which is what keeps the show/hide logic in one place.
|
|
21
|
+
|
|
22
|
+
**Escape inside the bar clears the selection**, not just closes something — which is the shortcut people reach for and almost no implementation wires up.
|
|
23
|
+
|
|
24
|
+
**`@maxVisible` defaults to 3**, and everything past it folds into a Menu rather than wrapping or scrolling.
|
|
25
|
+
|
|
26
|
+
## Prior art
|
|
27
|
+
|
|
28
|
+
The bulk-action bar in table and list UIs.
|
|
29
|
+
|
|
30
|
+
Where Pretui is better: Escape clearing, the self-hiding at zero, and the count sentence being built from `@count`/`@total`/`@noun` rather than assembled at each call site — which is how "1 items selected" ships.
|
|
31
|
+
|
|
32
|
+
Where it is thinner: no undo affordance after a bulk action, no per-action confirmation, and no partial-selection state ("all on this page").
|
|
33
|
+
|
|
34
|
+
## Accessibility
|
|
35
|
+
|
|
36
|
+
- **The bar is a named region**, so it is findable when it appears.
|
|
37
|
+
- **The count is a sentence**, not a number beside an icon — "3 of 40 items selected" is what gets announced.
|
|
38
|
+
- **Escape clearing is a keyboard affordance for the most common intent**, and it is wired to the same handler as the button so the two can never diverge.
|
|
39
|
+
- **The overflow trigger is named** rather than being an unlabelled ellipsis.
|
|
40
|
+
- **A bar appearing is a change worth noticing.** Whether it is announced is the host's call — the component supplies a region, not a live region.
|
|
41
|
+
|
|
42
|
+
## Theming
|
|
43
|
+
|
|
44
|
+
The bar takes the kit's surface, elevation and control tokens.
|
|
45
|
+
|
|
46
|
+
It usually floats over content, so it uses the shared raised elevation — the same one every other floating surface uses, which is what stops a selection bar looking like a different application's toolbar.
|
|
47
|
+
|
|
48
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
// Pretui — ActionBar 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 { ActionBar } from './action-bar';
|
|
7
|
+
import type { ActionBarAction } from './action-bar';
|
|
8
|
+
import { TEAS } from '../examples-kit';
|
|
9
|
+
|
|
10
|
+
// ── ActionBar ───────────────────────────────────────────────────────────
|
|
11
|
+
const ROSTER = TEAS.slice(0, 7);
|
|
12
|
+
|
|
13
|
+
class ActionBarUsage extends Component {
|
|
14
|
+
@tracked picked: string[] = [ROSTER[0] as string, ROSTER[2] as string];
|
|
15
|
+
@tracked maxVisible = 2;
|
|
16
|
+
@tracked noun = 'lot';
|
|
17
|
+
@tracked showTotal = true;
|
|
18
|
+
@tracked lastFired = 'Nothing fired yet.';
|
|
19
|
+
|
|
20
|
+
setMaxVisible = (v: number | null) => (this.maxVisible = v ?? 2);
|
|
21
|
+
setNoun = (v: string) => (this.noun = v);
|
|
22
|
+
setShowTotal = (v: boolean) => (this.showTotal = v);
|
|
23
|
+
|
|
24
|
+
get total(): number | undefined {
|
|
25
|
+
return this.showTotal ? ROSTER.length : undefined;
|
|
26
|
+
}
|
|
27
|
+
get roster(): { name: string; on: boolean }[] {
|
|
28
|
+
return ROSTER.map((name) => ({
|
|
29
|
+
name,
|
|
30
|
+
on: this.picked.indexOf(name) !== -1,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
toggle = (event: Event) => {
|
|
35
|
+
let name = (event.currentTarget as HTMLElement).getAttribute('data-name');
|
|
36
|
+
if (!name) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.picked =
|
|
40
|
+
this.picked.indexOf(name) === -1
|
|
41
|
+
? [...this.picked, name]
|
|
42
|
+
: this.picked.filter((n) => n !== name);
|
|
43
|
+
};
|
|
44
|
+
clear = () => (this.picked = []);
|
|
45
|
+
fire = (id: string) => {
|
|
46
|
+
this.lastFired =
|
|
47
|
+
id + ' fired on ' + this.picked.length + ' selected lots.';
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
get actions(): ActionBarAction[] {
|
|
51
|
+
return [
|
|
52
|
+
{ id: 'cup', label: 'Schedule cupping', onAction: this.fire },
|
|
53
|
+
{ id: 'price', label: 'Re-price', onAction: this.fire },
|
|
54
|
+
{ id: 'export', label: 'Export', icon: 'file', onAction: this.fire },
|
|
55
|
+
{ id: 'archive', label: 'Archive', icon: 'folder', onAction: this.fire },
|
|
56
|
+
{
|
|
57
|
+
id: 'withdraw',
|
|
58
|
+
label: 'Withdraw from sale',
|
|
59
|
+
icon: 'circle-minus',
|
|
60
|
+
destructive: true,
|
|
61
|
+
onAction: this.fire,
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get usage(): string {
|
|
67
|
+
return (
|
|
68
|
+
'<ActionBar @count={{this.picked.length}} @total={{this.total}}' +
|
|
69
|
+
" @noun='" + this.noun + "'" +
|
|
70
|
+
' @actions={{this.actions}} @maxVisible={{' + this.maxVisible + '}}' +
|
|
71
|
+
' @onClear={{this.clear}} />'
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
<template>
|
|
76
|
+
<FreestyleUsage
|
|
77
|
+
@name='ActionBar'
|
|
78
|
+
@description='The bar that appears when a selection exists. Every control in it is an existing kit component — Button, IconButton and Menu for the overflow — so what the bar adds is the count as a sentence, an overflow threshold, and the APG toolbar keyboard contract: one tab stop, arrows within, Home and End to the ends, Escape to clear. Select a row or two below to bring it in.'
|
|
79
|
+
@source={{this.usage}}
|
|
80
|
+
>
|
|
81
|
+
<:example>
|
|
82
|
+
<div class='pretui-ab-demo'>
|
|
83
|
+
<ul class='pretui-ab-demo-list'>
|
|
84
|
+
{{#each this.roster key='name' as |row|}}
|
|
85
|
+
<li>
|
|
86
|
+
<button
|
|
87
|
+
type='button'
|
|
88
|
+
class='pretui-ab-demo-row'
|
|
89
|
+
data-name={{row.name}}
|
|
90
|
+
data-on={{if row.on 'true'}}
|
|
91
|
+
aria-pressed={{if row.on 'true' 'false'}}
|
|
92
|
+
{{on 'click' this.toggle}}
|
|
93
|
+
>{{row.name}}</button>
|
|
94
|
+
</li>
|
|
95
|
+
{{/each}}
|
|
96
|
+
</ul>
|
|
97
|
+
<ActionBar
|
|
98
|
+
@count={{this.picked.length}}
|
|
99
|
+
@total={{this.total}}
|
|
100
|
+
@noun={{this.noun}}
|
|
101
|
+
@actions={{this.actions}}
|
|
102
|
+
@maxVisible={{this.maxVisible}}
|
|
103
|
+
@onClear={{this.clear}}
|
|
104
|
+
@position='inline'
|
|
105
|
+
/>
|
|
106
|
+
<p class='pretui-ab-demo-note'>{{this.lastFired}}</p>
|
|
107
|
+
</div>
|
|
108
|
+
</:example>
|
|
109
|
+
<:api as |Args|>
|
|
110
|
+
<Args.Number
|
|
111
|
+
@name='count'
|
|
112
|
+
@required={{true}}
|
|
113
|
+
@description='How many things are selected. Zero hides the bar entirely.'
|
|
114
|
+
/>
|
|
115
|
+
<Args.Bool
|
|
116
|
+
@name='total'
|
|
117
|
+
@value={{this.showTotal}}
|
|
118
|
+
@description='Demo switch for the total argument: with it set the bar reads 3 lots selected of 7.'
|
|
119
|
+
@onInput={{this.setShowTotal}}
|
|
120
|
+
/>
|
|
121
|
+
<Args.String
|
|
122
|
+
@name='noun'
|
|
123
|
+
@value={{this.noun}}
|
|
124
|
+
@defaultValue='item'
|
|
125
|
+
@description='Singular noun, pluralised by adding an s.'
|
|
126
|
+
@onInput={{this.setNoun}}
|
|
127
|
+
/>
|
|
128
|
+
<Args.Number
|
|
129
|
+
@name='maxVisible'
|
|
130
|
+
@value={{this.maxVisible}}
|
|
131
|
+
@min={{0}}
|
|
132
|
+
@max={{5}}
|
|
133
|
+
@step={{1}}
|
|
134
|
+
@description='How many actions get their own button before the rest collapse into an overflow Menu. Exactly one action over the limit is promoted instead — a menu holding one item is worse than one more button.'
|
|
135
|
+
@onInput={{this.setMaxVisible}}
|
|
136
|
+
/>
|
|
137
|
+
<Args.Array
|
|
138
|
+
@name='actions'
|
|
139
|
+
@description='Each has an id, a label, and optionally an icon, tone, disabled or destructive flag and an onAction callback.'
|
|
140
|
+
/>
|
|
141
|
+
<Args.Action
|
|
142
|
+
@name='onClear'
|
|
143
|
+
@description='Called by the clear button and by Escape inside the bar. Omit it and no clear button is drawn.'
|
|
144
|
+
/>
|
|
145
|
+
<Args.Yield
|
|
146
|
+
@name='default'
|
|
147
|
+
@description='Extra controls appended after the actions. Give anything focusable a data-actionbar-item attribute so it joins the arrow-key rotation.'
|
|
148
|
+
/>
|
|
149
|
+
</:api>
|
|
150
|
+
<:cssVars as |Css|>
|
|
151
|
+
<Css.Basic
|
|
152
|
+
@name='pretui-actionbar-enter'
|
|
153
|
+
@type='duration'
|
|
154
|
+
@description='How long the bar takes to arrive. Reduced motion lands on the end state.'
|
|
155
|
+
/>
|
|
156
|
+
</:cssVars>
|
|
157
|
+
</FreestyleUsage>
|
|
158
|
+
<style scoped>
|
|
159
|
+
.pretui-ab-demo {
|
|
160
|
+
display: grid;
|
|
161
|
+
gap: var(--space-3, 8px);
|
|
162
|
+
max-width: 520px;
|
|
163
|
+
}
|
|
164
|
+
.pretui-ab-demo-list {
|
|
165
|
+
list-style: none;
|
|
166
|
+
margin: 0;
|
|
167
|
+
padding: 0;
|
|
168
|
+
display: flex;
|
|
169
|
+
flex-wrap: wrap;
|
|
170
|
+
gap: var(--space-2, 6px);
|
|
171
|
+
}
|
|
172
|
+
.pretui-ab-demo-row {
|
|
173
|
+
padding: 4px 10px;
|
|
174
|
+
border: 0;
|
|
175
|
+
border-radius: var(--radius-control, 8px);
|
|
176
|
+
background: var(--card);
|
|
177
|
+
box-shadow: var(
|
|
178
|
+
--pretui-shadow-hairline,
|
|
179
|
+
0 0 0 1px var(--border)
|
|
180
|
+
);
|
|
181
|
+
font: inherit;
|
|
182
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
183
|
+
color: var(--foreground);
|
|
184
|
+
cursor: pointer;
|
|
185
|
+
}
|
|
186
|
+
.pretui-ab-demo-row[data-on='true'] {
|
|
187
|
+
background: color-mix(
|
|
188
|
+
in oklch,
|
|
189
|
+
var(--primary) 12%,
|
|
190
|
+
var(--card)
|
|
191
|
+
);
|
|
192
|
+
color: color-mix(
|
|
193
|
+
in oklch,
|
|
194
|
+
var(--foreground) 16%,
|
|
195
|
+
var(--primary)
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
.pretui-ab-demo-row:focus-visible {
|
|
199
|
+
outline: 2px solid var(--ring);
|
|
200
|
+
outline-offset: 1px;
|
|
201
|
+
}
|
|
202
|
+
.pretui-ab-demo-note {
|
|
203
|
+
margin: 0;
|
|
204
|
+
font-size: var(--text-ui-sm, 11.5px);
|
|
205
|
+
color: var(--muted-foreground);
|
|
206
|
+
}
|
|
207
|
+
</style>
|
|
208
|
+
</template>
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export const DEMOS_ACTION_BAR: Record<string, unknown> = {
|
|
212
|
+
ActionBar: ActionBarUsage,
|
|
213
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Pretui — Affix: pin a child to the top (or bottom) of its scroll container once it scrolls past a threshold.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
// type-only gap: 'ember-modifier' resolves at realm runtime; glint cannot see
|
|
5
|
+
// it here (accepted parse baseline, same as toaster.gts / focus.gts)
|
|
6
|
+
import { modifier } from 'ember-modifier';
|
|
7
|
+
import { scrollParent } from '../internal/structure-scroll';
|
|
8
|
+
import { cssDeclaration, cssStyleFrom } from '../pretui-css';
|
|
9
|
+
|
|
10
|
+
export interface AffixSignature {
|
|
11
|
+
Args: {
|
|
12
|
+
/** Pin to the 'top' (default) or 'bottom' edge of the scroll container. */
|
|
13
|
+
position?: 'top' | 'bottom';
|
|
14
|
+
/** Distance from that edge while pinned, any kit-valid CSS length (default 0). */
|
|
15
|
+
offset?: string;
|
|
16
|
+
/** Fires with true when the child becomes pinned and false when it is released. */
|
|
17
|
+
onChange?: (pinned: boolean) => void;
|
|
18
|
+
};
|
|
19
|
+
Blocks: { default: [pinned: boolean] };
|
|
20
|
+
Element: HTMLDivElement;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Ant and Mantine Affix, done with CSS: the wrapper is `position: sticky`, so
|
|
25
|
+
* the browser pins it inside its nearest scroll container — the pane, not the
|
|
26
|
+
* window — with no scroll listener and no portal. What CSS cannot say is
|
|
27
|
+
* *whether* it is pinned, so a zero-height sentinel just before (or after)
|
|
28
|
+
* the child is watched with an IntersectionObserver rooted at the scroll
|
|
29
|
+
* container: when the sentinel leaves, the child is stuck. That state is
|
|
30
|
+
* yielded, set as `data-pinned` for styling, and reported by `@onChange`.
|
|
31
|
+
*
|
|
32
|
+
* Pinning is visual, so nothing is announced. Sticky needs the scroll
|
|
33
|
+
* container to be the nearest ancestor with overflow; a parent with
|
|
34
|
+
* `overflow: hidden` in between stops it, which is the one case a portal-
|
|
35
|
+
* based affix handles and this does not.
|
|
36
|
+
*/
|
|
37
|
+
export class Affix extends Component<AffixSignature> {
|
|
38
|
+
@tracked pinned = false;
|
|
39
|
+
|
|
40
|
+
get position(): 'top' | 'bottom' {
|
|
41
|
+
return this.args.position === 'bottom' ? 'bottom' : 'top';
|
|
42
|
+
}
|
|
43
|
+
get isTop(): boolean {
|
|
44
|
+
return this.position === 'top';
|
|
45
|
+
}
|
|
46
|
+
get style() {
|
|
47
|
+
return cssStyleFrom([cssDeclaration('--pretui-affix-offset', this.args.offset)]);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
watch = modifier((sentinel: HTMLElement, [position, offset]: [string, string | undefined]) => {
|
|
51
|
+
void offset;
|
|
52
|
+
let root = scrollParent(sentinel);
|
|
53
|
+
// The wrapper sticks at its used inset (rem, calc, whatever @offset was),
|
|
54
|
+
// so the observer's edge moves in by the same amount; otherwise the
|
|
55
|
+
// pinned state lags the pinning by the offset.
|
|
56
|
+
let wrapper = (position === 'top' ? sentinel.nextElementSibling : sentinel.previousElementSibling) as HTMLElement | null;
|
|
57
|
+
let inset = wrapper ? parseFloat(getComputedStyle(wrapper)[position === 'top' ? 'top' : 'bottom']) || 0 : 0;
|
|
58
|
+
let rootMargin = position === 'top' ? `${-inset}px 0px 0px 0px` : `0px 0px ${-inset}px 0px`;
|
|
59
|
+
let observer = new IntersectionObserver(
|
|
60
|
+
(entries) => {
|
|
61
|
+
let entry = entries[entries.length - 1];
|
|
62
|
+
if (!entry) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Stuck when the sentinel has left through the pinned edge.
|
|
66
|
+
let box = entry.rootBounds;
|
|
67
|
+
let rect = entry.boundingClientRect;
|
|
68
|
+
let gone = !entry.isIntersecting;
|
|
69
|
+
let pinned = gone && (box ? (position === 'top' ? rect.top < box.top : rect.bottom > box.bottom) : true);
|
|
70
|
+
if (pinned !== this.pinned) {
|
|
71
|
+
this.pinned = pinned;
|
|
72
|
+
this.args.onChange?.(pinned);
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{ root, rootMargin, threshold: 0 },
|
|
76
|
+
);
|
|
77
|
+
observer.observe(sentinel);
|
|
78
|
+
return () => observer.disconnect();
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
<template>
|
|
82
|
+
{{#if this.isTop}}<div class='pretui-affix-sentinel' aria-hidden='true' {{this.watch this.position @offset}}></div>{{/if}}
|
|
83
|
+
<div
|
|
84
|
+
class='pretui-affix'
|
|
85
|
+
data-position={{this.position}}
|
|
86
|
+
data-pinned={{if this.pinned 'true' 'false'}}
|
|
87
|
+
style={{this.style}}
|
|
88
|
+
data-test-pretui-affix
|
|
89
|
+
...attributes
|
|
90
|
+
>{{yield this.pinned}}</div>
|
|
91
|
+
{{#unless this.isTop}}<div class='pretui-affix-sentinel' aria-hidden='true' {{this.watch this.position @offset}}></div>{{/unless}}
|
|
92
|
+
<style scoped>
|
|
93
|
+
@layer PretComponent {
|
|
94
|
+
.pretui-affix {
|
|
95
|
+
position: sticky;
|
|
96
|
+
z-index: var(--pretui-z-sticky, 10);
|
|
97
|
+
}
|
|
98
|
+
.pretui-affix[data-position='top'] {
|
|
99
|
+
inset-block-start: var(--pretui-affix-offset, 0);
|
|
100
|
+
}
|
|
101
|
+
.pretui-affix[data-position='bottom'] {
|
|
102
|
+
inset-block-end: var(--pretui-affix-offset, 0);
|
|
103
|
+
}
|
|
104
|
+
.pretui-affix[data-pinned='true'] {
|
|
105
|
+
box-shadow: var(--pretui-affix-shadow, none);
|
|
106
|
+
}
|
|
107
|
+
.pretui-affix-sentinel {
|
|
108
|
+
block-size: 0;
|
|
109
|
+
pointer-events: none;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
</style>
|
|
113
|
+
</template>
|
|
114
|
+
|
|
115
|
+
}
|
|
116
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
**Pin a child to the edge of its scroll container once it scrolls past.** A toolbar that stays at the top of a long form, or a Save bar that stays at the bottom of a long list. The child is usually a **Toolbar**, an **ActionBar** or a **FloatButton**.
|
|
4
|
+
|
|
5
|
+
Reach for a neighbour when pinning is not the point:
|
|
6
|
+
|
|
7
|
+
- **PageScaffold**'s `@stickyMasthead` pins the page header.
|
|
8
|
+
- **FloatButton** anchors to a corner and does not follow scroll.
|
|
9
|
+
|
|
10
|
+
## The contract
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
@position? ('top' | 'bottom'; default 'top')
|
|
14
|
+
@offset? — distance from that edge while pinned (default 0)
|
|
15
|
+
@onChange? — true when pinned, false when released
|
|
16
|
+
<:default as |pinned|>
|
|
17
|
+
Element: HTMLDivElement
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**CSS does the pinning.** The wrapper is `position: sticky` against `@position`, so the browser pins it inside its nearest scroll container, the pane, not the window. There is no scroll listener and no portal.
|
|
21
|
+
|
|
22
|
+
**An observer tells you whether it is pinned.** CSS can't say whether a sticky element is stuck. So a zero-height sentinel sits just before the child (or just after it, for bottom). An IntersectionObserver rooted at the scroll container watches it, with its edge moved in by the wrapper's actual inset, so the pinned state turns on exactly when an `@offset` wrapper sticks. That state is yielded to the block, set as `data-pinned` on the wrapper for styling, and reported by `@onChange`.
|
|
23
|
+
|
|
24
|
+
## Prior art
|
|
25
|
+
|
|
26
|
+
**Ant `Affix`** takes `offsetTop`, `offsetBottom`, `target` (the scroll container) and `onChange`. It measures on scroll and switches the child to `position: fixed`, with a placeholder to hold its space. **Mantine `Affix`** is a fixed-position portal, a different idea. **MUI `useScrollTrigger`** is a hook that reports a threshold crossing.
|
|
27
|
+
|
|
28
|
+
Where Pretui is better: **sticky, not fixed.** The child keeps its place in the layout, needs no placeholder, and never jumps a frame behind the scroll. **The pinned state comes from an observer**, not a scroll listener.
|
|
29
|
+
|
|
30
|
+
Where it is thinner: **sticky needs the scroll container to be the nearest ancestor with overflow.** A parent with `overflow: hidden` in between stops it, which is the one case Ant's fixed-plus-placeholder approach handles. There is **no `target` arg**: the scroll container is found by walking up.
|
|
31
|
+
|
|
32
|
+
## Accessibility
|
|
33
|
+
|
|
34
|
+
No APG pattern.
|
|
35
|
+
|
|
36
|
+
- **Pinning is visual, so nothing is announced.** The child keeps its place in the reading and tab order, because sticky doesn't move it in the DOM.
|
|
37
|
+
- **The sentinel is `aria-hidden`**, with zero height, so it has no presence.
|
|
38
|
+
- **A pinned bar covers content.** A pinned toolbar sits over the top of the scrolled content, so give focusable content `scroll-margin-top` at least the bar's height, or a focused field can hide behind it.
|
|
39
|
+
|
|
40
|
+
## Theming
|
|
41
|
+
|
|
42
|
+
`--pretui-affix-offset` (set from `@offset`, default 0), `--pretui-affix-shadow` (applied while pinned, default none) and `--pretui-z-sticky` (the kit's sticky tier, 10).
|
|
43
|
+
|
|
44
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|
|
45
|
+
|
|
46
|
+
## React ecosystem
|
|
47
|
+
|
|
48
|
+
| Agent types | Give them |
|
|
49
|
+
| ------------------------------ | ------------------------------------------- |
|
|
50
|
+
| Ant `<Affix offsetTop={0}>` | `<Affix>` |
|
|
51
|
+
| Ant `offsetBottom` | `@position='bottom'` + `@offset` |
|
|
52
|
+
| Ant `onChange(affixed)` | `@onChange`, or the yielded `pinned` |
|
|
53
|
+
| Ant `target={() => container}` | the nearest scroll container, found for you |
|
|
54
|
+
| MUI `useScrollTrigger()` | the yielded `pinned` state |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Pretui — Affix usage page.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { FreestyleUsage } from './freestyle-usage';
|
|
5
|
+
import { Affix } from './affix';
|
|
6
|
+
import { Toolbar } from './toolbar';
|
|
7
|
+
import { Button } from './button';
|
|
8
|
+
|
|
9
|
+
const PARAS = Array.from({ length: 12 }, (_, i) => `Roast note ${i + 1}: first crack at 9:40, dropped at 11:05, development 17%.`);
|
|
10
|
+
|
|
11
|
+
export class AffixUsage extends Component {
|
|
12
|
+
paras = PARAS;
|
|
13
|
+
@tracked pinned = false;
|
|
14
|
+
setPinned = (v: boolean) => (this.pinned = v);
|
|
15
|
+
get usage() {
|
|
16
|
+
return "<Affix @onChange={{this.setPinned}} as |pinned|>\n <Toolbar>…</Toolbar>\n</Affix>";
|
|
17
|
+
}
|
|
18
|
+
<template>
|
|
19
|
+
<FreestyleUsage
|
|
20
|
+
@name='Affix'
|
|
21
|
+
@description='Pins a child, usually a Toolbar, to the top or bottom of its scroll container once it scrolls past. It is CSS sticky against the pane, not the window, with an IntersectionObserver that reports whether it is pinned. Scroll the demo pane.'
|
|
22
|
+
@source={{this.usage}}
|
|
23
|
+
>
|
|
24
|
+
<:example>
|
|
25
|
+
<div class='af-demo'>
|
|
26
|
+
<p class='af-demo-p'>Lot 7 · Huila, washed</p>
|
|
27
|
+
<Affix @onChange={{this.setPinned}} as |pinned|>
|
|
28
|
+
<div class='af-demo-bar' data-pinned={{if pinned 'true' 'false'}}>
|
|
29
|
+
<Toolbar><Button @size='s'>Save</Button><Button @size='s' @appearance='outlined'>Share</Button></Toolbar>
|
|
30
|
+
</div>
|
|
31
|
+
</Affix>
|
|
32
|
+
{{#each this.paras as |note|}}<p class='af-demo-p'>{{note}}</p>{{/each}}
|
|
33
|
+
</div>
|
|
34
|
+
<p class='af-demo-state'>Pinned: {{if this.pinned 'yes' 'no'}}</p>
|
|
35
|
+
</:example>
|
|
36
|
+
<:api as |Args|>
|
|
37
|
+
<Args.String @name='position' @defaultValue='top' @description='top or bottom.' />
|
|
38
|
+
<Args.String @name='offset' @defaultValue='0' @description='Distance from that edge while pinned.' />
|
|
39
|
+
<Args.Action @name='onChange' @description='true when pinned, false when released.' />
|
|
40
|
+
<Args.Yield @name='default' @description='The child, yielded whether it is pinned.' />
|
|
41
|
+
</:api>
|
|
42
|
+
</FreestyleUsage>
|
|
43
|
+
<style scoped>
|
|
44
|
+
.af-demo {
|
|
45
|
+
block-size: 14rem;
|
|
46
|
+
overflow-y: auto;
|
|
47
|
+
padding-inline: var(--space-4, 0.6875rem);
|
|
48
|
+
border-radius: var(--radius-surface, 10px);
|
|
49
|
+
box-shadow: 0 0 0 1px var(--border);
|
|
50
|
+
background: var(--card);
|
|
51
|
+
}
|
|
52
|
+
.af-demo-p {
|
|
53
|
+
font-size: var(--text-ui-md, 0.78rem);
|
|
54
|
+
}
|
|
55
|
+
.af-demo-bar {
|
|
56
|
+
padding-block: var(--space-2, 0.375rem);
|
|
57
|
+
background: var(--card);
|
|
58
|
+
}
|
|
59
|
+
.af-demo-bar[data-pinned='true'] {
|
|
60
|
+
box-shadow: 0 1px 0 var(--border);
|
|
61
|
+
}
|
|
62
|
+
.af-demo-state {
|
|
63
|
+
margin: var(--space-2, 0.375rem) 0 0;
|
|
64
|
+
font-size: var(--text-ui-sm, 0.72rem);
|
|
65
|
+
color: var(--muted-foreground);
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
68
|
+
</template>
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const DEMOS_AFFIX: Record<string, unknown> = {
|
|
72
|
+
Affix: AffixUsage,
|
|
73
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Pretui — AgentQuestion: a question the agent is waiting on, answered in place.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { tracked } from '@glimmer/tracking';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
import { fn } from '@ember/helper';
|
|
6
|
+
|
|
7
|
+
export interface AgentQuestionSignature {
|
|
8
|
+
Args: {
|
|
9
|
+
question: string;
|
|
10
|
+
options?: string[];
|
|
11
|
+
answered?: string;
|
|
12
|
+
onAnswer?: (answer: string) => void;
|
|
13
|
+
};
|
|
14
|
+
Element: HTMLDivElement;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// ASK verb: option pills + free answer; settles to a quiet answered line.
|
|
18
|
+
export class AgentQuestion extends Component<AgentQuestionSignature> {
|
|
19
|
+
@tracked picked?: string = this.args.answered;
|
|
20
|
+
settle = (value: string) => {
|
|
21
|
+
this.picked = value;
|
|
22
|
+
this.args.onAnswer?.(value);
|
|
23
|
+
};
|
|
24
|
+
onKey = (e: Event) => {
|
|
25
|
+
let ev = e as KeyboardEvent;
|
|
26
|
+
let input = ev.target as HTMLInputElement;
|
|
27
|
+
if (ev.key === 'Enter' && input.value) {
|
|
28
|
+
this.settle(input.value);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
<template>
|
|
32
|
+
{{#if this.picked}}
|
|
33
|
+
<div class='pretui-answered' data-test-pretui-agent-question ...attributes>
|
|
34
|
+
<span class='pretui-answered-check'>✓</span>
|
|
35
|
+
{{@question}}
|
|
36
|
+
<b>{{this.picked}}</b>
|
|
37
|
+
</div>
|
|
38
|
+
{{else}}
|
|
39
|
+
<div class='pretui-question' data-test-pretui-agent-question ...attributes>
|
|
40
|
+
<div class='pretui-question-text'>{{@question}}</div>
|
|
41
|
+
<div class='pretui-question-opts'>
|
|
42
|
+
{{#each @options as |option|}}
|
|
43
|
+
<button type='button' class='pretui-qpill' {{on 'click' (fn this.settle option)}}>{{option}}</button>
|
|
44
|
+
{{/each}}
|
|
45
|
+
</div>
|
|
46
|
+
<input class='pretui-qinput' aria-label='Answer' placeholder='Or type an answer…' {{on 'keydown' this.onKey}} />
|
|
47
|
+
</div>
|
|
48
|
+
{{/if}}
|
|
49
|
+
<style scoped>
|
|
50
|
+
@layer PretComponent {
|
|
51
|
+
.pretui-question {
|
|
52
|
+
display: grid;
|
|
53
|
+
gap: 8px;
|
|
54
|
+
}
|
|
55
|
+
.pretui-question-text {
|
|
56
|
+
font-weight: 500;
|
|
57
|
+
}
|
|
58
|
+
.pretui-question-opts {
|
|
59
|
+
display: flex;
|
|
60
|
+
flex-wrap: wrap;
|
|
61
|
+
gap: 6px;
|
|
62
|
+
}
|
|
63
|
+
.pretui-qpill {
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
height: 26px;
|
|
67
|
+
padding: 0 calc(6px * var(--pretui-capsule-base, 1.35) + 13px * var(--pretui-radius-encroach, 0.35));
|
|
68
|
+
border-radius: 13px;
|
|
69
|
+
border: 0;
|
|
70
|
+
background: var(--card);
|
|
71
|
+
box-shadow: var(--pretui-shadow-control, 0 0 0 1px var(--border));
|
|
72
|
+
font: inherit;
|
|
73
|
+
font-size: var(--text-ui, 12px);
|
|
74
|
+
font-weight: 500;
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
color: var(--foreground);
|
|
77
|
+
}
|
|
78
|
+
.pretui-qpill:hover {
|
|
79
|
+
background: var(--hover, var(--boxel-100));
|
|
80
|
+
}
|
|
81
|
+
.pretui-qinput {
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
height: var(--control-h, 28px);
|
|
85
|
+
padding: 0 9px;
|
|
86
|
+
border: 0;
|
|
87
|
+
border-radius: var(--radius);
|
|
88
|
+
font: inherit;
|
|
89
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
90
|
+
color: var(--foreground);
|
|
91
|
+
background: var(--field, var(--boxel-light));
|
|
92
|
+
box-shadow: 0 0 0 1px var(--input);
|
|
93
|
+
width: 100%;
|
|
94
|
+
}
|
|
95
|
+
.pretui-qinput:focus {
|
|
96
|
+
outline: none;
|
|
97
|
+
box-shadow: 0 0 0 2px var(--primary), var(--pretui-shadow-inset, inset 0 1px 2px rgb(0 0 0 / 0.16));
|
|
98
|
+
}
|
|
99
|
+
.pretui-answered {
|
|
100
|
+
display: flex;
|
|
101
|
+
align-items: center;
|
|
102
|
+
gap: 8px;
|
|
103
|
+
font-size: var(--text-ui-md, 12.5px);
|
|
104
|
+
color: var(--muted-foreground);
|
|
105
|
+
}
|
|
106
|
+
.pretui-answered-check {
|
|
107
|
+
color: var(--success, var(--boxel-success));
|
|
108
|
+
}
|
|
109
|
+
.pretui-answered b {
|
|
110
|
+
color: var(--foreground);
|
|
111
|
+
font-weight: 500;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
</style>
|
|
115
|
+
</template>
|
|
116
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
## What it is
|
|
2
|
+
|
|
3
|
+
The ASK verb: a question from the agent, option pills to answer it, a free-text fallback, and a quiet settled line once answered. Use it when an agent needs a decision to continue. If it needs _approval_ of work already staged, **ApprovalFooter**. If it is reporting rather than asking, **WorkItem** or **ResultCard**. If the question is a form, it is a form — use **Form**.
|
|
4
|
+
|
|
5
|
+
## The contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@question: string (required)
|
|
9
|
+
@options?: string[]
|
|
10
|
+
@answered?, @onAnswer?(answer: string)
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Options and free text coexist.** The pills are shortcuts, not a closed set — the input accepts anything and commits on Enter. That is the right model for an agent conversation, where the agent's guesses at likely answers should not constrain the human.
|
|
14
|
+
|
|
15
|
+
**It settles.** Once answered, the component collapses to a quiet answered line rather than staying open. `@answered` seeds that state, so a transcript re-rendered from history shows settled questions settled. This is the territory's general shape — attention states are loud, resolved states recede — and it is what keeps a long transcript readable.
|
|
16
|
+
|
|
17
|
+
`@onAnswer` fires for both paths; the caller cannot tell a pill from typed text, which is deliberate (the answer is the answer).
|
|
18
|
+
|
|
19
|
+
## Prior art
|
|
20
|
+
|
|
21
|
+
No component kit has this. The references are chat products: Slack's interactive message buttons, ChatGPT's suggested replies, and the general "quick reply" pattern from messaging platforms.
|
|
22
|
+
|
|
23
|
+
The decisions worth comparing:
|
|
24
|
+
|
|
25
|
+
- **Quick-reply chips in messaging platforms are usually a closed set** — you tap one or you type something the bot cannot parse. Here the pills and the free-text field are the same commitment, and both settle the question.
|
|
26
|
+
- **Most chat UIs leave answered prompts fully rendered**, so scrolling back through a conversation means scrolling past dozens of dead button rows. Settling to a quiet line is a better long-transcript behaviour and is the same instinct **Fold** and **CollapsedTurn** apply elsewhere in this territory.
|
|
27
|
+
|
|
28
|
+
Where it is thin: no multi-select answers, no typed answer validation, no "I don't know" / decline path, and no timeout or default. An agent blocked on a question that never gets answered has no expressed fallback.
|
|
29
|
+
|
|
30
|
+
## Accessibility
|
|
31
|
+
|
|
32
|
+
No APG pattern; the pieces are a group of buttons plus a text field.
|
|
33
|
+
|
|
34
|
+
Gaps, and they are the same shape as the rest of the territory — the semantics are fine, the _announcement_ is missing:
|
|
35
|
+
|
|
36
|
+
- **The question's arrival is not announced.** An agent asking a question mid-run is precisely a status message that must reach the user (**WCAG 4.1.3**), and there is no live region. A screen-reader user reading a transcript will not know the agent has stopped and is waiting. This is the same gap **ApprovalFooter** has and it is the territory's central accessibility problem.
|
|
37
|
+
- **The question is not programmatically the label of the answer controls.** The pills and the input are siblings of the question text, so a screen-reader user tabbing to the input hears an unlabelled text field. `aria-labelledby` from the input to the question, and `role="group"` with the same, would fix both.
|
|
38
|
+
- **The option pills are plain buttons with no group semantics.** For a single-choice answer the accurate model is `role="radiogroup"` — the same correction **FilterChips** and **SegmentedControl** need — though the free-text escape complicates it; a labelled `role="group"` is the minimum.
|
|
39
|
+
- **Commit-on-Enter is undiscoverable.** There is no visible submit button and no hint that Enter commits. For keyboard and screen-reader users that is a **WCAG 3.3.2 Labels or Instructions** gap; a visually-hidden instruction or a real submit button would close it.
|
|
40
|
+
- **The settled transition is silent**, and the answered line's relationship to the original question is visual.
|
|
41
|
+
- **No `aria-live` on the settled state** means a user who answers by pill gets no confirmation that their answer registered.
|
|
42
|
+
- Pill target sizes should be checked against WCAG **2.5.8**'s 24×24 minimum.
|
|
43
|
+
|
|
44
|
+
## Theming
|
|
45
|
+
|
|
46
|
+
Attention tone for the unanswered state (the territory's reserved "a human must act now" hue), receding to `--muted-foreground` once settled. Pills carry **Chip**- or **Button**-family dress; the input carries the kit's control tokens (`--field`, `--input`, `--primary`, `--control-h`, `--radius`).
|
|
47
|
+
|
|
48
|
+
The unanswered-to-settled contrast is the thing a theme must get right: the question must be visibly _pending_ in a scroll-back of forty transcript rows, and visibly _done_ afterwards. If a theme flattens that difference, a long transcript stops showing where the agent is blocked — which is the one thing the territory exists to make obvious.
|
|
49
|
+
|
|
50
|
+
The styles sit in `@layer PretComponent`, so a caller's unlayered CSS overrides them without a more specific selector.
|