@kerfjs/ui 5.0.0-beta.11 → 5.0.0-beta.111
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/README.md +708 -160
- package/ai/application-ui-diagnostic-ids-v1.json +115 -0
- package/ai/application-ui-profile-sync.cjs +548 -0
- package/ai/application-ui-profile.d.mts +1 -0
- package/ai/application-ui-profile.d.ts +106 -0
- package/ai/application-ui-profile.defaults.json +222 -0
- package/ai/application-ui-profile.mjs +653 -0
- package/ai/application-ui-profile.schema.json +140 -0
- package/ai/catalog-authoring.json +34 -0
- package/ai/catalog-authoring.schema.json +105 -0
- package/ai/compile-time-contracts-v1.json +149 -0
- package/ai/compile-time-contracts-v1.schema.json +52 -0
- package/ai/component-catalog-extension.schema.json +104 -0
- package/ai/component-catalog.json +9118 -1376
- package/ai/component-catalog.schema.json +94 -1
- package/ai/component-class-owners.cjs +83 -0
- package/ai/component-composition-extension.d.ts +7 -0
- package/ai/component-composition-extension.schema.json +7 -0
- package/ai/component-composition-rules.json +570 -0
- package/ai/component-composition.d.ts +143 -0
- package/ai/component-composition.json +10444 -0
- package/ai/component-composition.schema.json +444 -0
- package/ai/components/README.md +206 -0
- package/ai/components/anchored-surface.md +99 -0
- package/ai/components/application-tabs.md +65 -0
- package/ai/components/backdrop-image.md +84 -0
- package/ai/components/badge.md +77 -0
- package/ai/components/button.md +97 -0
- package/ai/components/checkbox-group.md +89 -0
- package/ai/components/checkbox.md +90 -0
- package/ai/components/chip.md +80 -0
- package/ai/components/choice-chips.md +93 -0
- package/ai/components/collapsible-panel.md +103 -0
- package/ai/components/color-field.md +92 -0
- package/ai/components/color-picker.md +93 -0
- package/ai/components/color-swatches.md +82 -0
- package/ai/components/column-track.md +78 -0
- package/ai/components/combobox.md +90 -0
- package/ai/components/content-item.md +101 -0
- package/ai/components/content-swap.md +78 -0
- package/ai/components/corner-status.md +88 -0
- package/ai/components/disclosure-arrow.md +77 -0
- package/ai/components/disclosure.md +88 -0
- package/ai/components/document-baseline.md +77 -0
- package/ai/components/edge-activity-indicator.md +81 -0
- package/ai/components/empty-state.md +80 -0
- package/ai/components/feedback.md +71 -0
- package/ai/components/file-picker.md +89 -0
- package/ai/components/floating-toolbar.md +82 -0
- package/ai/components/foundation.md +65 -0
- package/ai/components/framed-list.md +80 -0
- package/ai/components/grid.md +101 -0
- package/ai/components/headers.md +63 -0
- package/ai/components/layout.md +75 -0
- package/ai/components/list-action-row.md +108 -0
- package/ai/components/list-detail-dialog.md +90 -0
- package/ai/components/list-header.md +91 -0
- package/ai/components/list-inset-control.md +74 -0
- package/ai/components/list-inset-text.md +72 -0
- package/ai/components/list-item.md +108 -0
- package/ai/components/list.md +127 -0
- package/ai/components/loading-spinner.md +73 -0
- package/ai/components/lucide-icon.md +99 -0
- package/ai/components/message-composer.md +85 -0
- package/ai/components/nav-stack.md +120 -0
- package/ai/components/pane.md +127 -0
- package/ai/components/popup-menu.md +174 -0
- package/ai/components/progress-bar.md +82 -0
- package/ai/components/progress-ring.md +80 -0
- package/ai/components/radio-group.md +89 -0
- package/ai/components/recipe-app-shell.md +57 -0
- package/ai/components/recipe-collapsible-sidebar.md +57 -0
- package/ai/components/recipe-compact-toolbar.md +57 -0
- package/ai/components/recipe-composer-form.md +57 -0
- package/ai/components/recipe-list-detail-dialog.md +57 -0
- package/ai/components/recipe-list-workspace-states.md +57 -0
- package/ai/components/recipe-loading-inspector.md +57 -0
- package/ai/components/recipe-media-detail.md +57 -0
- package/ai/components/recipe-navigation-sidebar.md +57 -0
- package/ai/components/recipe-navigation-stack.md +57 -0
- package/ai/components/recipe-workspace-header.md +57 -0
- package/ai/components/resize.md +106 -0
- package/ai/components/row.md +96 -0
- package/ai/components/search-field.md +108 -0
- package/ai/components/segmented-control.md +83 -0
- package/ai/components/select.md +118 -0
- package/ai/components/skeleton.md +84 -0
- package/ai/components/slider.md +84 -0
- package/ai/components/spacer.md +86 -0
- package/ai/components/split-button.md +83 -0
- package/ai/components/split-view.md +105 -0
- package/ai/components/state-banner.md +96 -0
- package/ai/components/summary-row.md +85 -0
- package/ai/components/sunken-panel.md +79 -0
- package/ai/components/surface-scaffold.md +120 -0
- package/ai/components/switch.md +81 -0
- package/ai/components/tab-bar.md +114 -0
- package/ai/components/tab-navigator.md +105 -0
- package/ai/components/tabs.md +95 -0
- package/ai/components/tag-field.md +86 -0
- package/ai/components/text-field.md +102 -0
- package/ai/components/text.md +93 -0
- package/ai/components/toast.md +85 -0
- package/ai/components/toolbar-control-group.md +127 -0
- package/ai/components/toolbar-text.md +100 -0
- package/ai/components/toolbar.md +103 -0
- package/ai/components/tooltip.md +81 -0
- package/ai/components/value-table.md +80 -0
- package/ai/components/wa-accordion-item.md +61 -0
- package/ai/components/wa-accordion.md +71 -0
- package/ai/components/wa-animated-image.md +56 -0
- package/ai/components/wa-animation.md +56 -0
- package/ai/components/wa-avatar.md +56 -0
- package/ai/components/wa-badge.md +62 -0
- package/ai/components/wa-breadcrumb-item.md +54 -0
- package/ai/components/wa-breadcrumb.md +56 -0
- package/ai/components/wa-button-group.md +62 -0
- package/ai/components/wa-button.md +61 -0
- package/ai/components/wa-callout.md +60 -0
- package/ai/components/wa-card.md +67 -0
- package/ai/components/wa-carousel-item.md +54 -0
- package/ai/components/wa-carousel.md +56 -0
- package/ai/components/wa-checkbox-group.md +62 -0
- package/ai/components/wa-checkbox.md +61 -0
- package/ai/components/wa-color-picker.md +63 -0
- package/ai/components/wa-comparison.md +56 -0
- package/ai/components/wa-copy-button.md +56 -0
- package/ai/components/wa-details.md +67 -0
- package/ai/components/wa-dialog.md +65 -0
- package/ai/components/wa-divider.md +54 -0
- package/ai/components/wa-drawer.md +62 -0
- package/ai/components/wa-dropdown-item.md +62 -0
- package/ai/components/wa-dropdown.md +62 -0
- package/ai/components/wa-format-bytes.md +54 -0
- package/ai/components/wa-format-date.md +54 -0
- package/ai/components/wa-format-number.md +54 -0
- package/ai/components/wa-icon.md +59 -0
- package/ai/components/wa-include.md +55 -0
- package/ai/components/wa-input.md +62 -0
- package/ai/components/wa-intersection-observer.md +54 -0
- package/ai/components/wa-known-date.md +54 -0
- package/ai/components/wa-markdown.md +54 -0
- package/ai/components/wa-mutation-observer.md +54 -0
- package/ai/components/wa-number-input.md +56 -0
- package/ai/components/wa-option.md +61 -0
- package/ai/components/wa-otp-input.md +54 -0
- package/ai/components/wa-page.md +62 -0
- package/ai/components/wa-pagination.md +56 -0
- package/ai/components/wa-popover.md +61 -0
- package/ai/components/wa-popup.md +60 -0
- package/ai/components/wa-progress-bar.md +60 -0
- package/ai/components/wa-progress-ring.md +60 -0
- package/ai/components/wa-qr-code.md +54 -0
- package/ai/components/wa-radio-group.md +67 -0
- package/ai/components/wa-radio.md +61 -0
- package/ai/components/wa-random-content.md +54 -0
- package/ai/components/wa-rating.md +56 -0
- package/ai/components/wa-relative-time.md +54 -0
- package/ai/components/wa-resize-observer.md +54 -0
- package/ai/components/wa-scroller.md +61 -0
- package/ai/components/wa-select.md +65 -0
- package/ai/components/wa-skeleton.md +60 -0
- package/ai/components/wa-slider.md +61 -0
- package/ai/components/wa-spinner.md +60 -0
- package/ai/components/wa-split-panel.md +60 -0
- package/ai/components/wa-step.md +56 -0
- package/ai/components/wa-stepper.md +56 -0
- package/ai/components/wa-switch.md +60 -0
- package/ai/components/wa-tab-group.md +71 -0
- package/ai/components/wa-tab-panel.md +62 -0
- package/ai/components/wa-tab.md +61 -0
- package/ai/components/wa-tag-input.md +62 -0
- package/ai/components/wa-tag.md +62 -0
- package/ai/components/wa-textarea.md +60 -0
- package/ai/components/wa-time-input.md +56 -0
- package/ai/components/wa-toast-item.md +62 -0
- package/ai/components/wa-toast.md +62 -0
- package/ai/components/wa-tooltip.md +61 -0
- package/ai/components/wa-tree-item.md +56 -0
- package/ai/components/wa-tree.md +56 -0
- package/ai/components/wa-zoomable-frame.md +56 -0
- package/ai/components/workbench-dialog.md +90 -0
- package/ai/components/workbench.md +120 -0
- package/ai/public-api-signatures-v1.md +6162 -446
- package/ai/skill.md +549 -65
- package/ai/webawesome-jsx-signatures-v1.md +12 -2
- package/analyzer/cli.mjs +49 -0
- package/analyzer/component-ownership.d.mts +72 -0
- package/analyzer/component-ownership.mjs +429 -0
- package/analyzer/index.d.mts +53 -0
- package/analyzer/index.mjs +2375 -0
- package/analyzer/loud-pairs.d.mts +49 -0
- package/analyzer/loud-pairs.mjs +357 -0
- package/analyzer/report.schema.json +66 -0
- package/analyzer/selectors.d.mts +21 -0
- package/analyzer/selectors.mjs +212 -0
- package/catalog-projection-cli.mjs +96 -0
- package/catalog-projection.d.mts +55 -0
- package/catalog-projection.mjs +62 -0
- package/dist/anchored-surface.d.ts +69 -0
- package/dist/anchored-surface.js +3 -0
- package/dist/anchored-surface.js.map +1 -0
- package/dist/backdrop-image.d.ts +140 -0
- package/dist/backdrop-image.js +5 -0
- package/dist/backdrop-image.js.map +1 -0
- package/dist/badge.d.ts +91 -0
- package/dist/badge.js +4 -0
- package/dist/badge.js.map +1 -0
- package/dist/browser/anchored-surface.js +3 -0
- package/dist/browser/backdrop-image.js +3 -0
- package/dist/browser/badge.js +3 -0
- package/dist/browser/button.js +5 -0
- package/dist/browser/catalog.js +29 -0
- package/dist/browser/checkbox-group.js +5 -0
- package/dist/browser/checkbox.js +4 -0
- package/dist/browser/chip.js +3 -0
- package/dist/browser/choice-chips.js +3 -0
- package/dist/browser/collapsible-panel.js +9 -0
- package/dist/browser/color-field.js +4 -0
- package/dist/browser/color-picker.js +5 -0
- package/dist/browser/color-swatches.js +3 -0
- package/dist/browser/column-track.js +3 -0
- package/dist/browser/combobox.js +3 -0
- package/dist/browser/content-item.js +4 -0
- package/dist/browser/content-swap.js +3 -0
- package/dist/browser/corner-status.js +3 -0
- package/dist/browser/disclosure.js +5 -0
- package/dist/browser/edge-activity-indicator.js +3 -0
- package/dist/browser/file-picker.js +3 -0
- package/dist/browser/framed-list.js +3 -0
- package/dist/browser/grid.js +3 -0
- package/dist/browser/list-action-row.js +3 -0
- package/dist/browser/list-detail-dialog.js +14 -0
- package/dist/browser/list-header.js +3 -1
- package/dist/browser/list-inset-control.js +3 -0
- package/dist/browser/list-inset-text.js +3 -0
- package/dist/browser/list-item.js +1 -0
- package/dist/browser/list.js +3 -0
- package/dist/browser/message-composer.js +5 -0
- package/dist/browser/nav-stack.js +11 -0
- package/dist/browser/pane.js +3 -0
- package/dist/browser/popup-menu.js +4 -0
- package/dist/browser/progress-bar.js +3 -0
- package/dist/browser/progress-ring.js +3 -0
- package/dist/browser/radio-group.js +3 -0
- package/dist/browser/row.js +3 -0
- package/dist/browser/search-field.js +4 -0
- package/dist/browser/segmented-control.js +0 -1
- package/dist/browser/select.js +2 -1
- package/dist/browser/slider.js +3 -0
- package/dist/browser/spacer.js +3 -0
- package/dist/browser/split-button.js +5 -0
- package/dist/browser/split-view.js +13 -0
- package/dist/browser/state-banner.js +1 -0
- package/dist/browser/summary-row.js +3 -0
- package/dist/browser/sunken-panel.js +3 -0
- package/dist/browser/surface-scaffold.js +4 -0
- package/dist/browser/switch.js +3 -0
- package/dist/browser/tab-bar-item.js +4 -0
- package/dist/browser/tab-navigator.js +4 -0
- package/dist/browser/tag-field.js +5 -0
- package/dist/browser/text-field.js +4 -0
- package/dist/browser/text.js +3 -0
- package/dist/browser/toolbar-control-group.js +1 -0
- package/dist/browser/workbench-dialog.js +15 -0
- package/dist/browser/workbench.js +14 -0
- package/dist/button.d.ts +123 -0
- package/dist/button.js +7 -0
- package/dist/button.js.map +1 -0
- package/dist/catalog-resources.d.ts +51 -0
- package/dist/catalog-resources.js +22 -0
- package/dist/catalog-resources.js.map +1 -0
- package/dist/catalog.d.ts +135 -101
- package/dist/catalog.js +701 -108
- package/dist/catalog.js.map +1 -1
- package/dist/checkbox-group.d.ts +70 -0
- package/dist/checkbox-group.js +7 -0
- package/dist/checkbox-group.js.map +1 -0
- package/dist/checkbox.d.ts +45 -0
- package/dist/checkbox.js +6 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.d.ts +117 -0
- package/dist/chip.js +4 -0
- package/dist/chip.js.map +1 -0
- package/dist/choice-chips.d.ts +116 -0
- package/dist/choice-chips.js +3 -0
- package/dist/choice-chips.js.map +1 -0
- package/dist/chunk-2FW7D4IG.js +52 -0
- package/dist/chunk-2FW7D4IG.js.map +1 -0
- package/dist/chunk-2GOCOLQL.js +270 -0
- package/dist/chunk-2GOCOLQL.js.map +1 -0
- package/dist/chunk-2LM3PYHA.js +300 -0
- package/dist/chunk-2LM3PYHA.js.map +1 -0
- package/dist/chunk-36HVQ72F.js +123 -0
- package/dist/chunk-36HVQ72F.js.map +1 -0
- package/dist/chunk-3GLYIIFR.js +230 -0
- package/dist/chunk-3GLYIIFR.js.map +1 -0
- package/dist/chunk-3VZ6SFD4.js +8 -0
- package/dist/chunk-3VZ6SFD4.js.map +1 -0
- package/dist/chunk-3WYREXW4.js +120 -0
- package/dist/chunk-3WYREXW4.js.map +1 -0
- package/dist/chunk-3Z7N2NAZ.js +385 -0
- package/dist/chunk-3Z7N2NAZ.js.map +1 -0
- package/dist/chunk-4OV272LF.js +93 -0
- package/dist/chunk-4OV272LF.js.map +1 -0
- package/dist/chunk-4RECPEHI.js +67 -0
- package/dist/chunk-4RECPEHI.js.map +1 -0
- package/dist/chunk-4UB5Z3ZZ.js +68 -0
- package/dist/chunk-4UB5Z3ZZ.js.map +1 -0
- package/dist/chunk-5J6Z4BWY.js +141 -0
- package/dist/chunk-5J6Z4BWY.js.map +1 -0
- package/dist/chunk-6C6DLP3W.js +31 -0
- package/dist/chunk-6C6DLP3W.js.map +1 -0
- package/dist/chunk-6VVIW7VB.js +69 -0
- package/dist/chunk-6VVIW7VB.js.map +1 -0
- package/dist/chunk-7AK5I7U7.js +55 -0
- package/dist/chunk-7AK5I7U7.js.map +1 -0
- package/dist/chunk-7K6U6FCN.js +122 -0
- package/dist/chunk-7K6U6FCN.js.map +1 -0
- package/dist/chunk-AMIHGFLP.js +59 -0
- package/dist/chunk-AMIHGFLP.js.map +1 -0
- package/dist/chunk-AN5IWMTM.js +24 -0
- package/dist/chunk-AN5IWMTM.js.map +1 -0
- package/dist/chunk-ATGAJVZ6.js +268 -0
- package/dist/chunk-ATGAJVZ6.js.map +1 -0
- package/dist/chunk-AYPGXR2E.js +20 -0
- package/dist/chunk-AYPGXR2E.js.map +1 -0
- package/dist/chunk-B53PS2LE.js +34 -0
- package/dist/chunk-B53PS2LE.js.map +1 -0
- package/dist/chunk-BKUMG2KB.js +95 -0
- package/dist/chunk-BKUMG2KB.js.map +1 -0
- package/dist/chunk-C26Q6P4Q.js +76 -0
- package/dist/chunk-C26Q6P4Q.js.map +1 -0
- package/dist/chunk-CEJ5FK6G.js +288 -0
- package/dist/chunk-CEJ5FK6G.js.map +1 -0
- package/dist/chunk-CIAUILRR.js +222 -0
- package/dist/chunk-CIAUILRR.js.map +1 -0
- package/dist/chunk-CNM6ZWP2.js +38 -0
- package/dist/chunk-CNM6ZWP2.js.map +1 -0
- package/dist/chunk-CTQUDCY5.js +26 -0
- package/dist/chunk-CTQUDCY5.js.map +1 -0
- package/dist/chunk-CVD5IZGB.js +66 -0
- package/dist/chunk-CVD5IZGB.js.map +1 -0
- package/dist/chunk-D4MXSAMI.js +50 -0
- package/dist/chunk-D4MXSAMI.js.map +1 -0
- package/dist/chunk-D5RGM3XA.js +38 -0
- package/dist/chunk-D5RGM3XA.js.map +1 -0
- package/dist/chunk-DZJ4GBSP.js +59 -0
- package/dist/chunk-DZJ4GBSP.js.map +1 -0
- package/dist/chunk-EIET4QLK.js +51 -0
- package/dist/chunk-EIET4QLK.js.map +1 -0
- package/dist/chunk-EKHDLBRP.js +86 -0
- package/dist/chunk-EKHDLBRP.js.map +1 -0
- package/dist/chunk-ETFP7HAR.js +147 -0
- package/dist/chunk-ETFP7HAR.js.map +1 -0
- package/dist/chunk-EYDXFOSH.js +457 -0
- package/dist/chunk-EYDXFOSH.js.map +1 -0
- package/dist/chunk-G3J7JDP6.js +29 -0
- package/dist/chunk-G3J7JDP6.js.map +1 -0
- package/dist/chunk-GS2QD3N7.js +14 -0
- package/dist/chunk-GS2QD3N7.js.map +1 -0
- package/dist/chunk-GXSX6Q6O.js +42 -0
- package/dist/chunk-GXSX6Q6O.js.map +1 -0
- package/dist/chunk-HDXUHLTQ.js +90 -0
- package/dist/chunk-HDXUHLTQ.js.map +1 -0
- package/dist/chunk-HJXVVFBT.js +108 -0
- package/dist/chunk-HJXVVFBT.js.map +1 -0
- package/dist/chunk-HTERKONR.js +49 -0
- package/dist/chunk-HTERKONR.js.map +1 -0
- package/dist/chunk-HU5IHXCI.js +73 -0
- package/dist/chunk-HU5IHXCI.js.map +1 -0
- package/dist/chunk-IIQ2XIMU.js +197 -0
- package/dist/chunk-IIQ2XIMU.js.map +1 -0
- package/dist/chunk-IKS72C6P.js +53 -0
- package/dist/chunk-IKS72C6P.js.map +1 -0
- package/dist/chunk-IO27YTL3.js +73 -0
- package/dist/chunk-IO27YTL3.js.map +1 -0
- package/dist/chunk-IQSRHXZR.js +164 -0
- package/dist/chunk-IQSRHXZR.js.map +1 -0
- package/dist/chunk-IRC5N7FA.js +16 -0
- package/dist/chunk-IRC5N7FA.js.map +1 -0
- package/dist/chunk-ITENVZ6Q.js +24 -0
- package/dist/chunk-ITENVZ6Q.js.map +1 -0
- package/dist/chunk-ITUQC4FW.js +163 -0
- package/dist/chunk-ITUQC4FW.js.map +1 -0
- package/dist/chunk-JCCN3U6X.js +176 -0
- package/dist/chunk-JCCN3U6X.js.map +1 -0
- package/dist/chunk-K57NINLH.js +137 -0
- package/dist/chunk-K57NINLH.js.map +1 -0
- package/dist/chunk-KC6WUSNS.js +34 -0
- package/dist/chunk-KC6WUSNS.js.map +1 -0
- package/dist/chunk-KCS6NJ3O.js +82 -0
- package/dist/chunk-KCS6NJ3O.js.map +1 -0
- package/dist/chunk-KDQZ3E5C.js +75 -0
- package/dist/chunk-KDQZ3E5C.js.map +1 -0
- package/dist/chunk-KH4KEMSP.js +71 -0
- package/dist/chunk-KH4KEMSP.js.map +1 -0
- package/dist/chunk-KK3S5OTW.js +98 -0
- package/dist/chunk-KK3S5OTW.js.map +1 -0
- package/dist/chunk-LMHN2TJL.js +167 -0
- package/dist/chunk-LMHN2TJL.js.map +1 -0
- package/dist/chunk-LTBVP6VN.js +59 -0
- package/dist/chunk-LTBVP6VN.js.map +1 -0
- package/dist/{chunk-YGN7OMLT.js → chunk-LZUUUHNH.js} +13 -6
- package/dist/chunk-LZUUUHNH.js.map +1 -0
- package/dist/chunk-MHMWQ7RB.js +19 -0
- package/dist/chunk-MHMWQ7RB.js.map +1 -0
- package/dist/chunk-MJ5RU6XT.js +173 -0
- package/dist/chunk-MJ5RU6XT.js.map +1 -0
- package/dist/chunk-MVKHSAKE.js +169 -0
- package/dist/chunk-MVKHSAKE.js.map +1 -0
- package/dist/chunk-NB6POCFH.js +103 -0
- package/dist/chunk-NB6POCFH.js.map +1 -0
- package/dist/chunk-NR6O74ST.js +169 -0
- package/dist/chunk-NR6O74ST.js.map +1 -0
- package/dist/chunk-OHPYT2BH.js +82 -0
- package/dist/chunk-OHPYT2BH.js.map +1 -0
- package/dist/chunk-OQP3PFKQ.js +341 -0
- package/dist/chunk-OQP3PFKQ.js.map +1 -0
- package/dist/chunk-OUCHU7JB.js +162 -0
- package/dist/chunk-OUCHU7JB.js.map +1 -0
- package/dist/chunk-OZ6X76G5.js +547 -0
- package/dist/chunk-OZ6X76G5.js.map +1 -0
- package/dist/chunk-PS24PVR6.js +124 -0
- package/dist/chunk-PS24PVR6.js.map +1 -0
- package/dist/chunk-QDSZTQXL.js +28 -0
- package/dist/chunk-QDSZTQXL.js.map +1 -0
- package/dist/chunk-QH5KOFNS.js +39 -0
- package/dist/chunk-QH5KOFNS.js.map +1 -0
- package/dist/chunk-QPTJ5DOO.js +87 -0
- package/dist/chunk-QPTJ5DOO.js.map +1 -0
- package/dist/chunk-QYMJHS4K.js +36 -0
- package/dist/chunk-QYMJHS4K.js.map +1 -0
- package/dist/chunk-RMWNO6BA.js +89 -0
- package/dist/chunk-RMWNO6BA.js.map +1 -0
- package/dist/chunk-S2XULQEK.js +52 -0
- package/dist/chunk-S2XULQEK.js.map +1 -0
- package/dist/chunk-S3ECMF23.js +33 -0
- package/dist/chunk-S3ECMF23.js.map +1 -0
- package/dist/chunk-S4Y3YTAI.js +35 -0
- package/dist/chunk-S4Y3YTAI.js.map +1 -0
- package/dist/chunk-S4ZGTDSG.js +18 -0
- package/dist/chunk-S4ZGTDSG.js.map +1 -0
- package/dist/chunk-SOBRGH7T.js +151 -0
- package/dist/chunk-SOBRGH7T.js.map +1 -0
- package/dist/chunk-T74YB76U.js +547 -0
- package/dist/chunk-T74YB76U.js.map +1 -0
- package/dist/chunk-TI2GV36S.js +90 -0
- package/dist/chunk-TI2GV36S.js.map +1 -0
- package/dist/{chunk-56RJXPHG.js → chunk-TKNVL53O.js} +7 -4
- package/dist/chunk-TKNVL53O.js.map +1 -0
- package/dist/chunk-TNJLNLVE.js +115 -0
- package/dist/chunk-TNJLNLVE.js.map +1 -0
- package/dist/chunk-TUID42UE.js +15 -0
- package/dist/chunk-TUID42UE.js.map +1 -0
- package/dist/chunk-UMNHJSIO.js +848 -0
- package/dist/chunk-UMNHJSIO.js.map +1 -0
- package/dist/chunk-VEME3D7K.js +298 -0
- package/dist/chunk-VEME3D7K.js.map +1 -0
- package/dist/chunk-VGECEXM6.js +213 -0
- package/dist/chunk-VGECEXM6.js.map +1 -0
- package/dist/chunk-WD6KABEU.js +200 -0
- package/dist/chunk-WD6KABEU.js.map +1 -0
- package/dist/chunk-WPNIKZMJ.js +507 -0
- package/dist/chunk-WPNIKZMJ.js.map +1 -0
- package/dist/chunk-WVS6CUCT.js +48 -0
- package/dist/chunk-WVS6CUCT.js.map +1 -0
- package/dist/chunk-XRZSK2WC.js +159 -0
- package/dist/chunk-XRZSK2WC.js.map +1 -0
- package/dist/chunk-XWNXGFX3.js +381 -0
- package/dist/chunk-XWNXGFX3.js.map +1 -0
- package/dist/chunk-Y6KT7ZTR.js +109 -0
- package/dist/chunk-Y6KT7ZTR.js.map +1 -0
- package/dist/chunk-YMUIQRWK.js +44 -0
- package/dist/chunk-YMUIQRWK.js.map +1 -0
- package/dist/chunk-YPAQFBMN.js +527 -0
- package/dist/chunk-YPAQFBMN.js.map +1 -0
- package/dist/chunk-ZCDRLN3B.js +138 -0
- package/dist/chunk-ZCDRLN3B.js.map +1 -0
- package/dist/chunk-ZKKO4MHC.js +25 -0
- package/dist/chunk-ZKKO4MHC.js.map +1 -0
- package/dist/chunk-ZN7KUMPY.js +48 -0
- package/dist/chunk-ZN7KUMPY.js.map +1 -0
- package/dist/chunk-ZNROKDSZ.js +54 -0
- package/dist/chunk-ZNROKDSZ.js.map +1 -0
- package/dist/chunk-ZX2QQJXD.js +249 -0
- package/dist/chunk-ZX2QQJXD.js.map +1 -0
- package/dist/collapsible-panel.d.ts +97 -17
- package/dist/collapsible-panel.js +134 -14
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/color-field.d.ts +51 -0
- package/dist/color-field.js +92 -0
- package/dist/color-field.js.map +1 -0
- package/dist/color-picker.d.ts +113 -0
- package/dist/color-picker.js +8 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/color-swatches.d.ts +56 -0
- package/dist/color-swatches.js +4 -0
- package/dist/color-swatches.js.map +1 -0
- package/dist/column-track.d.ts +41 -0
- package/dist/column-track.js +4 -0
- package/dist/column-track.js.map +1 -0
- package/dist/combobox.d.ts +40 -0
- package/dist/combobox.js +3 -0
- package/dist/combobox.js.map +1 -0
- package/dist/content-item.d.ts +170 -0
- package/dist/content-item.js +7 -0
- package/dist/content-item.js.map +1 -0
- package/dist/content-swap.d.ts +34 -0
- package/dist/content-swap.js +3 -0
- package/dist/content-swap.js.map +1 -0
- package/dist/corner-status.d.ts +36 -0
- package/dist/corner-status.js +3 -0
- package/dist/corner-status.js.map +1 -0
- package/dist/css-values.d.ts +127 -0
- package/dist/css-values.js +3 -0
- package/dist/css-values.js.map +1 -0
- package/dist/device-class.js +34 -6
- package/dist/device-class.js.map +1 -1
- package/dist/disclosure-arrow.d.ts +6 -1
- package/dist/disclosure-arrow.js +2 -1
- package/dist/disclosure.d.ts +66 -0
- package/dist/disclosure.js +51 -0
- package/dist/disclosure.js.map +1 -0
- package/dist/edge-activity-indicator.d.ts +28 -0
- package/dist/edge-activity-indicator.js +3 -0
- package/dist/edge-activity-indicator.js.map +1 -0
- package/dist/empty-state.d.ts +5 -2
- package/dist/empty-state.js +2 -1
- package/dist/extension-attributes-mu8MFUl0.d.ts +13 -0
- package/dist/file-picker.d.ts +54 -0
- package/dist/file-picker.js +3 -0
- package/dist/file-picker.js.map +1 -0
- package/dist/flex-alignment-4ms8ZbV8.d.ts +5 -0
- package/dist/floating-toolbar.d.ts +29 -6
- package/dist/floating-toolbar.js +1 -1
- package/dist/framed-list.d.ts +47 -0
- package/dist/framed-list.js +4 -0
- package/dist/framed-list.js.map +1 -0
- package/dist/grid.d.ts +58 -0
- package/dist/grid.js +6 -0
- package/dist/grid.js.map +1 -0
- package/dist/help-tags-register.d.ts +13 -0
- package/dist/help-tags-register.js +10 -0
- package/dist/help-tags-register.js.map +1 -0
- package/dist/index.d.ts +73 -17
- package/dist/index.js +85 -25
- package/dist/list-action-row.d.ts +69 -12
- package/dist/list-action-row.js +8 -1
- package/dist/list-detail-dialog.d.ts +124 -0
- package/dist/list-detail-dialog.js +168 -0
- package/dist/list-detail-dialog.js.map +1 -0
- package/dist/list-header.d.ts +72 -10
- package/dist/list-header.js +4 -1
- package/dist/list-icon-tile-B8dr97OW.d.ts +18 -0
- package/dist/list-inset-control.d.ts +22 -0
- package/dist/list-inset-control.js +3 -0
- package/dist/list-inset-control.js.map +1 -0
- package/dist/list-inset-text.d.ts +30 -0
- package/dist/list-inset-text.js +4 -0
- package/dist/list-inset-text.js.map +1 -0
- package/dist/list-item.d.ts +49 -5
- package/dist/list-item.js +4 -1
- package/dist/list.d.ts +149 -0
- package/dist/list.js +7 -0
- package/dist/list.js.map +1 -0
- package/dist/loading-spinner.d.ts +12 -2
- package/dist/loading-spinner.js +2 -1
- package/dist/lucide-icon.d.ts +23 -3
- package/dist/lucide-icon.js +2 -1
- package/dist/message-composer.d.ts +70 -0
- package/dist/message-composer.js +6 -0
- package/dist/message-composer.js.map +1 -0
- package/dist/nav-stack-CrZF95VO.d.ts +195 -0
- package/dist/nav-stack.d.ts +16 -38
- package/dist/nav-stack.js +15 -1
- package/dist/pane.d.ts +238 -0
- package/dist/pane.js +7 -0
- package/dist/pane.js.map +1 -0
- package/dist/panel-toolbar-vg6Ir5Dy.d.ts +77 -0
- package/dist/popup-menu-register.d.ts +11 -0
- package/dist/popup-menu-register.js +13 -0
- package/dist/popup-menu-register.js.map +1 -0
- package/dist/popup-menu.d.ts +153 -0
- package/dist/popup-menu.js +7 -0
- package/dist/popup-menu.js.map +1 -0
- package/dist/progress-bar.d.ts +52 -0
- package/dist/progress-bar.js +68 -0
- package/dist/progress-bar.js.map +1 -0
- package/dist/progress-ring.d.ts +44 -0
- package/dist/progress-ring.js +73 -0
- package/dist/progress-ring.js.map +1 -0
- package/dist/radio-group.d.ts +62 -0
- package/dist/radio-group.js +4 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/resizable-region.d.ts +32 -3
- package/dist/resizable-region.js +1 -1
- package/dist/row.d.ts +53 -0
- package/dist/row.js +7 -0
- package/dist/row.js.map +1 -0
- package/dist/scroll-clearance-BikHljTc.d.ts +14 -0
- package/dist/search-field-CrGTN5sa.d.ts +208 -0
- package/dist/search-field-model.d.ts +3 -0
- package/dist/search-field-model.js +3 -0
- package/dist/search-field-model.js.map +1 -0
- package/dist/search-field.d.ts +3 -0
- package/dist/search-field.js +5 -0
- package/dist/search-field.js.map +1 -0
- package/dist/segmented-control.d.ts +14 -9
- package/dist/segmented-control.js +1 -2
- package/dist/select-register.d.ts +6 -3
- package/dist/select-register.js +402 -8
- package/dist/select-register.js.map +1 -1
- package/dist/select.d.ts +128 -9
- package/dist/select.js +6 -1
- package/dist/selection.d.ts +54 -0
- package/dist/selection.js +3 -0
- package/dist/selection.js.map +1 -0
- package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
- package/dist/semantic-tone-CdW013KF.d.ts +4 -0
- package/dist/sides-BPSWde0A.d.ts +4 -0
- package/dist/skeleton.d.ts +14 -7
- package/dist/skeleton.js +2 -1
- package/dist/slider.d.ts +74 -0
- package/dist/slider.js +103 -0
- package/dist/slider.js.map +1 -0
- package/dist/spacer.d.ts +18 -0
- package/dist/spacer.js +4 -0
- package/dist/spacer.js.map +1 -0
- package/dist/split-button.d.ts +69 -0
- package/dist/split-button.js +7 -0
- package/dist/split-button.js.map +1 -0
- package/dist/split-view.d.ts +67 -6
- package/dist/split-view.js +15 -15
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.d.ts +41 -7
- package/dist/state-banner.js +4 -1
- package/dist/styles/anchored-surface.css +44 -0
- package/dist/styles/backdrop-image.css +258 -0
- package/dist/styles/badge.css +157 -0
- package/dist/styles/button.css +293 -0
- package/dist/styles/catalog/components/catalog-example-stack.css +14 -0
- package/dist/styles/catalog/components/catalog-example.css +250 -0
- package/dist/styles/catalog/components/catalog-stage.css +61 -0
- package/dist/styles/catalog/components/catalog.css +26 -0
- package/dist/styles/catalog.css +5 -522
- package/dist/styles/checkbox-group.css +63 -0
- package/dist/styles/checkbox.css +122 -0
- package/dist/styles/chip.css +234 -0
- package/dist/styles/choice-chips.css +205 -0
- package/dist/styles/collapsible-panel.css +450 -16
- package/dist/styles/color-field.css +125 -0
- package/dist/styles/color-picker.css +366 -0
- package/dist/styles/color-swatches.css +122 -0
- package/dist/styles/column-track.css +57 -0
- package/dist/styles/combobox.css +115 -0
- package/dist/styles/components/actions/button/button.css +293 -0
- package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
- package/dist/styles/components/actions/popup-menu/popup-menu.css +498 -0
- package/dist/styles/components/actions/split-button/split-button.css +141 -0
- package/dist/styles/components/actions/toolbar/toolbar.css +483 -0
- package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +1188 -0
- package/dist/styles/components/actions/toolbar-text/toolbar-text.css +256 -0
- package/dist/styles/components/collections/framed-list/framed-list.css +53 -0
- package/dist/styles/components/collections/list/list.css +293 -0
- package/dist/styles/components/collections/list-action-row/list-action-row.css +466 -0
- package/dist/styles/components/collections/list-header/list-header.css +236 -0
- package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
- package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
- package/dist/styles/components/collections/list-item/list-item.css +461 -0
- package/dist/styles/components/collections/summary-row/summary-row.css +161 -0
- package/dist/styles/components/data-display/value-table/value-table.css +183 -0
- package/dist/styles/components/feedback/anchored-surface/anchored-surface.css +44 -0
- package/dist/styles/components/feedback/badge/badge.css +157 -0
- package/dist/styles/components/feedback/chip/chip.css +234 -0
- package/dist/styles/components/feedback/corner-status/corner-status.css +60 -0
- package/dist/styles/components/feedback/edge-activity-indicator/edge-activity-indicator.css +127 -0
- package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
- package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
- package/dist/styles/components/feedback/progress-bar/progress-bar.css +168 -0
- package/dist/styles/components/feedback/progress-ring/progress-ring.css +91 -0
- package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
- package/dist/styles/components/feedback/state-banner/state-banner.css +312 -0
- package/dist/styles/components/forms/checkbox/checkbox.css +122 -0
- package/dist/styles/components/forms/checkbox-group/checkbox-group.css +63 -0
- package/dist/styles/components/forms/choice-chips/choice-chips.css +205 -0
- package/dist/styles/components/forms/color-field/color-field.css +125 -0
- package/dist/styles/components/forms/color-picker/color-picker.css +366 -0
- package/dist/styles/components/forms/color-swatches/color-swatches.css +122 -0
- package/dist/styles/components/forms/combobox/combobox.css +115 -0
- package/dist/styles/components/forms/file-picker/file-picker.css +81 -0
- package/dist/styles/components/forms/message-composer/message-composer.css +84 -0
- package/dist/styles/components/forms/radio-group/radio-group.css +158 -0
- package/dist/styles/components/forms/search-field/search-field.css +441 -0
- package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
- package/dist/styles/components/forms/select/select.css +580 -0
- package/dist/styles/components/forms/slider/slider.css +241 -0
- package/dist/styles/components/forms/switch/switch.css +132 -0
- package/dist/styles/components/forms/tag-field/tag-field.css +8 -0
- package/dist/styles/components/forms/text-field/text-field.css +193 -0
- package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +580 -0
- package/dist/styles/components/layout/column-track/column-track.css +57 -0
- package/dist/styles/components/layout/content-swap/content-swap.css +154 -0
- package/dist/styles/components/layout/grid/grid.css +88 -0
- package/dist/styles/components/layout/pane/pane.css +780 -0
- package/dist/styles/components/layout/resizable-region/resizable-region.css +546 -0
- package/dist/styles/components/layout/row/row.css +125 -0
- package/dist/styles/components/layout/spacer/spacer.css +11 -0
- package/dist/styles/components/layout/split-view/split-view.css +171 -0
- package/dist/styles/components/layout/workbench/workbench.css +1098 -0
- package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
- package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +43 -0
- package/dist/styles/components/navigation/nav-stack/nav-stack.css +619 -0
- package/dist/styles/components/navigation/tab-bar/tab-bar.css +203 -0
- package/dist/styles/components/navigation/tab-bar-item/tab-bar-item.css +389 -0
- package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +460 -0
- package/dist/styles/components/surfaces/backdrop-image/backdrop-image.css +258 -0
- package/dist/styles/components/surfaces/content-item/content-item.css +220 -0
- package/dist/styles/components/surfaces/disclosure/disclosure.css +136 -0
- package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +34 -0
- package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +752 -0
- package/dist/styles/components/typography/text/text.css +232 -0
- package/dist/styles/content-item.css +3 -0
- package/dist/styles/content-swap.css +154 -0
- package/dist/styles/corner-status.css +60 -0
- package/dist/styles/disclosure-arrow.css +20 -0
- package/dist/styles/disclosure.css +136 -0
- package/dist/styles/document.css +98 -0
- package/dist/styles/edge-activity-indicator.css +127 -0
- package/dist/styles/file-picker.css +81 -0
- package/dist/styles/floating-toolbar.css +87 -6
- package/dist/styles/foundation.css +491 -51
- package/dist/styles/framed-list.css +53 -0
- package/dist/styles/grid.css +88 -0
- package/dist/styles/layout.css +3 -41
- package/dist/styles/list-action-row.css +324 -18
- package/dist/styles/list-detail-dialog.css +11 -0
- package/dist/styles/list-header.css +135 -59
- package/dist/styles/list-inset-control.css +30 -0
- package/dist/styles/list-inset-text.css +29 -0
- package/dist/styles/list-item.css +371 -33
- package/dist/styles/list.css +293 -0
- package/dist/styles/loading-spinner.css +4 -0
- package/dist/styles/lucide-icon.css +9 -0
- package/dist/styles/message-composer.css +84 -0
- package/dist/styles/nav-stack.css +555 -47
- package/dist/styles/overlay-sheet.css +211 -0
- package/dist/styles/overlay-toast.css +149 -0
- package/dist/styles/overlay-tooltip.css +55 -0
- package/dist/styles/pane.css +780 -0
- package/dist/styles/popup-menu.css +498 -0
- package/dist/styles/progress-bar.css +168 -0
- package/dist/styles/progress-ring.css +91 -0
- package/dist/styles/radio-group.css +158 -0
- package/dist/styles/resizable-region.css +439 -4
- package/dist/styles/row.css +125 -0
- package/dist/styles/search-field.css +441 -0
- package/dist/styles/segmented-control.css +36 -9
- package/dist/styles/select.css +516 -74
- package/dist/styles/skeleton.css +64 -3
- package/dist/styles/slider.css +241 -0
- package/dist/styles/spacer.css +11 -0
- package/dist/styles/split-button.css +141 -0
- package/dist/styles/split-view.css +139 -3
- package/dist/styles/state-banner.css +164 -25
- package/dist/styles/styles.css +38 -3
- package/dist/styles/summary-row.css +161 -0
- package/dist/styles/sunken-panel.css +34 -0
- package/dist/styles/surface-scaffold.css +752 -0
- package/dist/styles/switch.css +132 -0
- package/dist/styles/tab-bar-item.css +389 -0
- package/dist/styles/tab-bar.css +167 -9
- package/dist/styles/tab-navigator.css +460 -0
- package/dist/styles/tag-field.css +8 -0
- package/dist/styles/text-field.css +193 -0
- package/dist/styles/text.css +232 -0
- package/dist/styles/toolbar-control-group.css +1000 -37
- package/dist/styles/toolbar-text.css +223 -7
- package/dist/styles/toolbar.css +433 -11
- package/dist/styles/value-table.css +115 -7
- package/dist/styles/webawesome.css +476 -20
- package/dist/styles/workbench-dialog.css +10 -0
- package/dist/styles/workbench.css +1011 -7
- package/dist/summary-row.d.ts +56 -0
- package/dist/summary-row.js +4 -0
- package/dist/summary-row.js.map +1 -0
- package/dist/sunken-panel.d.ts +38 -0
- package/dist/sunken-panel.js +4 -0
- package/dist/sunken-panel.js.map +1 -0
- package/dist/surface-scaffold-register.d.ts +12 -0
- package/dist/surface-scaffold-register.js +10 -0
- package/dist/surface-scaffold-register.js.map +1 -0
- package/dist/surface-scaffold.d.ts +284 -0
- package/dist/surface-scaffold.js +8 -0
- package/dist/surface-scaffold.js.map +1 -0
- package/dist/surface-tint-DQgYCaP9.d.ts +25 -0
- package/dist/switch.d.ts +38 -0
- package/dist/switch.js +4 -0
- package/dist/switch.js.map +1 -0
- package/dist/tab-bar-item.d.ts +65 -0
- package/dist/tab-bar-item.js +6 -0
- package/dist/tab-bar-item.js.map +1 -0
- package/dist/tab-bar.d.ts +33 -7
- package/dist/tab-bar.js +1 -1
- package/dist/tab-navigator.d.ts +155 -0
- package/dist/tab-navigator.js +132 -0
- package/dist/tab-navigator.js.map +1 -0
- package/dist/tag-field.d.ts +52 -0
- package/dist/tag-field.js +6 -0
- package/dist/tag-field.js.map +1 -0
- package/dist/text-field.d.ts +91 -0
- package/dist/text-field.js +6 -0
- package/dist/text-field.js.map +1 -0
- package/dist/text.d.ts +103 -0
- package/dist/text.js +3 -0
- package/dist/text.js.map +1 -0
- package/dist/toolbar-control-group.d.ts +112 -8
- package/dist/toolbar-control-group.js +3 -1
- package/dist/toolbar-text.d.ts +63 -9
- package/dist/toolbar-text.js +2 -1
- package/dist/toolbar.d.ts +78 -7
- package/dist/toolbar.js +1 -1
- package/dist/types-DmHWkSd6.d.ts +207 -0
- package/dist/value-table.d.ts +30 -4
- package/dist/value-table.js +2 -1
- package/dist/webawesome.d.ts +11 -1
- package/dist/wire-catalog.d.ts +118 -5
- package/dist/wire-catalog.js +314 -14
- package/dist/wire-catalog.js.map +1 -1
- package/dist/wire-checkboxes.d.ts +10 -0
- package/dist/wire-checkboxes.js +3 -0
- package/dist/{wire-token-search-fields.js.map → wire-checkboxes.js.map} +1 -1
- package/dist/wire-choice-chips.d.ts +17 -0
- package/dist/wire-choice-chips.js +4 -0
- package/dist/wire-choice-chips.js.map +1 -0
- package/dist/wire-color-fields.d.ts +33 -0
- package/dist/wire-color-fields.js +82 -0
- package/dist/wire-color-fields.js.map +1 -0
- package/dist/wire-color-pickers.d.ts +35 -0
- package/dist/wire-color-pickers.js +9 -0
- package/dist/wire-color-pickers.js.map +1 -0
- package/dist/wire-comboboxes.d.ts +26 -0
- package/dist/wire-comboboxes.js +4 -0
- package/dist/wire-comboboxes.js.map +1 -0
- package/dist/wire-content-items.d.ts +15 -0
- package/dist/wire-content-items.js +270 -0
- package/dist/wire-content-items.js.map +1 -0
- package/dist/wire-corner-status.d.ts +11 -0
- package/dist/wire-corner-status.js +3 -0
- package/dist/wire-corner-status.js.map +1 -0
- package/dist/wire-file-pickers.d.ts +27 -0
- package/dist/wire-file-pickers.js +3 -0
- package/dist/wire-file-pickers.js.map +1 -0
- package/dist/wire-list-focus-scroll.d.ts +16 -0
- package/dist/wire-list-focus-scroll.js +3 -0
- package/dist/wire-list-focus-scroll.js.map +1 -0
- package/dist/wire-list-reorder.d.ts +41 -0
- package/dist/wire-list-reorder.js +3 -0
- package/dist/wire-list-reorder.js.map +1 -0
- package/dist/wire-message-composers.d.ts +17 -0
- package/dist/wire-message-composers.js +3 -0
- package/dist/wire-message-composers.js.map +1 -0
- package/dist/wire-nav-stack.d.ts +4 -1
- package/dist/wire-nav-stack.js +352 -15
- package/dist/wire-nav-stack.js.map +1 -1
- package/dist/wire-overlay-sheets.d.ts +20 -0
- package/dist/wire-overlay-sheets.js +4 -0
- package/dist/wire-overlay-sheets.js.map +1 -0
- package/dist/wire-pane-chrome.d.ts +21 -0
- package/dist/wire-pane-chrome.js +67 -0
- package/dist/wire-pane-chrome.js.map +1 -0
- package/dist/wire-resizable-regions.d.ts +2 -1
- package/dist/wire-resizable-regions.js +2 -1
- package/dist/wire-scroll-dividers.d.ts +87 -0
- package/dist/wire-scroll-dividers.js +3 -0
- package/dist/wire-scroll-dividers.js.map +1 -0
- package/dist/{wire-token-search-fields.d.ts → wire-search-fields.d.ts} +34 -25
- package/dist/wire-search-fields.js +6 -0
- package/dist/wire-search-fields.js.map +1 -0
- package/dist/wire-sidebar.d.ts +24 -4
- package/dist/wire-sidebar.js +159 -45
- package/dist/wire-sidebar.js.map +1 -1
- package/dist/wire-sliders.d.ts +12 -0
- package/dist/wire-sliders.js +31 -0
- package/dist/wire-sliders.js.map +1 -0
- package/dist/wire-tab-bars.d.ts +6 -2
- package/dist/wire-tab-bars.js +1 -1
- package/dist/wire-tab-navigator.d.ts +13 -0
- package/dist/wire-tab-navigator.js +153 -0
- package/dist/wire-tab-navigator.js.map +1 -0
- package/dist/wire-tag-fields.d.ts +41 -0
- package/dist/wire-tag-fields.js +258 -0
- package/dist/wire-tag-fields.js.map +1 -0
- package/dist/wire-text-fields.d.ts +12 -0
- package/dist/wire-text-fields.js +3 -0
- package/dist/wire-text-fields.js.map +1 -0
- package/dist/wire-toolbar-visibility.d.ts +13 -0
- package/dist/wire-toolbar-visibility.js +3 -0
- package/dist/wire-toolbar-visibility.js.map +1 -0
- package/dist/wire-workbench.d.ts +116 -0
- package/dist/wire-workbench.js +6 -0
- package/dist/wire-workbench.js.map +1 -0
- package/dist/workbench-dialog.d.ts +107 -0
- package/dist/workbench-dialog.js +128 -0
- package/dist/workbench-dialog.js.map +1 -0
- package/dist/workbench.d.ts +259 -10
- package/dist/workbench.js +22 -15
- package/dist/workbench.js.map +1 -1
- package/docs/accessibility.md +835 -41
- package/docs/anchored-surface.md +107 -0
- package/docs/app-layouts.md +200 -10
- package/docs/apple-hig.md +2 -0
- package/docs/backdrop-image.md +132 -0
- package/docs/button.md +15 -0
- package/docs/catalog.md +599 -63
- package/docs/collapsible-panel.md +308 -25
- package/docs/color-field.md +65 -0
- package/docs/color-picker.md +102 -0
- package/docs/color-swatches.md +46 -0
- package/docs/component-contract.md +872 -57
- package/docs/component-integration.md +75 -0
- package/docs/component-selection.md +1124 -108
- package/docs/design/templates/button/emphasis-dark.svg +1 -0
- package/docs/design/templates/button/emphasis.svg +1 -0
- package/docs/design/templates/button/full-width-dark.svg +1 -0
- package/docs/design/templates/button/full-width.svg +1 -0
- package/docs/design/templates/button/icons-dark.svg +1 -0
- package/docs/design/templates/button/icons.svg +1 -0
- package/docs/design/templates/button/pill-dark.svg +1 -0
- package/docs/design/templates/button/pill.svg +1 -0
- package/docs/design/templates/button/states-dark.svg +1 -0
- package/docs/design/templates/button/states.svg +1 -0
- package/docs/design/templates/button/toggles-dark.svg +1 -0
- package/docs/design/templates/button/toggles.svg +1 -0
- package/docs/design/templates/button/tones-dark.svg +1 -0
- package/docs/design/templates/button/tones.svg +1 -0
- package/docs/design/templates/button-dark.svg +1 -0
- package/docs/design/templates/button.svg +1 -0
- package/docs/design/templates/checkbox/compact-dark.svg +1 -0
- package/docs/design/templates/checkbox/compact.svg +1 -0
- package/docs/design/templates/checkbox/error-dark.svg +1 -0
- package/docs/design/templates/checkbox/error.svg +1 -0
- package/docs/design/templates/checkbox/mixed-dark.svg +1 -0
- package/docs/design/templates/checkbox/mixed.svg +1 -0
- package/docs/design/templates/checkbox/states-dark.svg +1 -0
- package/docs/design/templates/checkbox/states.svg +1 -0
- package/docs/design/templates/checkbox-dark.svg +1 -0
- package/docs/design/templates/checkbox-group/horizontal-dark.svg +1 -0
- package/docs/design/templates/checkbox-group/horizontal.svg +1 -0
- package/docs/design/templates/checkbox-group/vertical-dark.svg +1 -0
- package/docs/design/templates/checkbox-group/vertical.svg +1 -0
- package/docs/design/templates/checkbox-group-dark.svg +1 -0
- package/docs/design/templates/checkbox-group.svg +1 -0
- package/docs/design/templates/checkbox.svg +1 -0
- package/docs/design/templates/chip/action-filters-dark.svg +1 -0
- package/docs/design/templates/chip/action-filters.svg +1 -0
- package/docs/design/templates/chip/tags-dark.svg +1 -0
- package/docs/design/templates/chip/tags.svg +1 -0
- package/docs/design/templates/chip-dark.svg +1 -0
- package/docs/design/templates/chip.svg +1 -0
- package/docs/design/templates/choice-chips/color-palette-dark.svg +1 -0
- package/docs/design/templates/choice-chips/color-palette.svg +1 -0
- package/docs/design/templates/choice-chips/compact-icons-dark.svg +1 -0
- package/docs/design/templates/choice-chips/compact-icons.svg +1 -0
- package/docs/design/templates/choice-chips/multiple-dark.svg +1 -0
- package/docs/design/templates/choice-chips/multiple.svg +1 -0
- package/docs/design/templates/choice-chips-dark.svg +1 -0
- package/docs/design/templates/choice-chips.svg +1 -0
- package/docs/design/templates/color-field/compact-dark.svg +1 -0
- package/docs/design/templates/color-field/compact.svg +1 -0
- package/docs/design/templates/color-field/error-dark.svg +1 -0
- package/docs/design/templates/color-field/error.svg +1 -0
- package/docs/design/templates/color-field/hint-dark.svg +1 -0
- package/docs/design/templates/color-field/hint.svg +1 -0
- package/docs/design/templates/color-field-dark.svg +1 -0
- package/docs/design/templates/color-field.svg +1 -0
- package/docs/design/templates/color-picker/gray-dark.svg +1 -0
- package/docs/design/templates/color-picker/gray.svg +1 -0
- package/docs/design/templates/color-picker/hsb-dark.svg +1 -0
- package/docs/design/templates/color-picker/hsb.svg +1 -0
- package/docs/design/templates/color-picker/rgb-dark.svg +1 -0
- package/docs/design/templates/color-picker/rgb.svg +1 -0
- package/docs/design/templates/color-picker-dark.svg +1 -0
- package/docs/design/templates/color-picker.svg +1 -0
- package/docs/design/templates/color-swatches/palette-dark.svg +1 -0
- package/docs/design/templates/color-swatches/palette.svg +1 -0
- package/docs/design/templates/color-swatches-dark.svg +1 -0
- package/docs/design/templates/color-swatches.svg +1 -0
- package/docs/design/templates/disclosure/embedded-dark.svg +1 -0
- package/docs/design/templates/disclosure/embedded.svg +1 -0
- package/docs/design/templates/disclosure/framed-sunken-dark.svg +1 -0
- package/docs/design/templates/disclosure/framed-sunken.svg +1 -0
- package/docs/design/templates/disclosure/plain-dark.svg +1 -0
- package/docs/design/templates/disclosure/plain.svg +1 -0
- package/docs/design/templates/disclosure-dark.svg +1 -0
- package/docs/design/templates/disclosure.svg +1 -0
- package/docs/design/templates/empty-state/filtered-dark.svg +1 -1
- package/docs/design/templates/empty-state/filtered.svg +1 -1
- package/docs/design/templates/empty-state/with-action-dark.svg +1 -1
- package/docs/design/templates/empty-state/with-action.svg +1 -1
- package/docs/design/templates/empty-state-dark.svg +1 -7
- package/docs/design/templates/empty-state.svg +1 -7
- package/docs/design/templates/list/compact-dark.svg +1 -0
- package/docs/design/templates/list/compact.svg +1 -0
- package/docs/design/templates/list/stack-dark.svg +1 -0
- package/docs/design/templates/list/stack.svg +1 -0
- package/docs/design/templates/list-action-row/default-dark.svg +1 -1
- package/docs/design/templates/list-action-row/default.svg +1 -1
- package/docs/design/templates/list-action-row/icon-tile-dark.svg +1 -0
- package/docs/design/templates/list-action-row/icon-tile.svg +1 -0
- package/docs/design/templates/list-action-row/selected-dark.svg +1 -1
- package/docs/design/templates/list-action-row/selected.svg +1 -1
- package/docs/design/templates/list-action-row/trailing-menu-dark.svg +1 -0
- package/docs/design/templates/list-action-row/trailing-menu.svg +1 -0
- package/docs/design/templates/list-action-row-dark.svg +1 -7
- package/docs/design/templates/list-action-row.svg +1 -7
- package/docs/design/templates/list-dark.svg +1 -0
- package/docs/design/templates/list-header/action-dark.svg +1 -1
- package/docs/design/templates/list-header/action.svg +1 -1
- package/docs/design/templates/list-header/count-dark.svg +1 -1
- package/docs/design/templates/list-header/count.svg +1 -1
- package/docs/design/templates/list-header/inline-action-dark.svg +1 -0
- package/docs/design/templates/list-header/inline-action.svg +1 -0
- package/docs/design/templates/list-header/size-l-dark.svg +1 -0
- package/docs/design/templates/list-header/size-l.svg +1 -0
- package/docs/design/templates/list-header/size-m-dark.svg +1 -0
- package/docs/design/templates/list-header/size-m.svg +1 -0
- package/docs/design/templates/list-header/size-xl-dark.svg +1 -0
- package/docs/design/templates/list-header/size-xl.svg +1 -0
- package/docs/design/templates/list-header/size-xs-dark.svg +1 -0
- package/docs/design/templates/list-header/size-xs.svg +1 -0
- package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-collapsed.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded.svg +1 -1
- package/docs/design/templates/list-header-dark.svg +1 -11
- package/docs/design/templates/list-header.svg +1 -11
- package/docs/design/templates/list-item/default-dark.svg +1 -1
- package/docs/design/templates/list-item/default.svg +1 -1
- package/docs/design/templates/list-item/icon-tile-dark.svg +1 -0
- package/docs/design/templates/list-item/icon-tile.svg +1 -0
- package/docs/design/templates/list-item/multiline-dark.svg +1 -1
- package/docs/design/templates/list-item/multiline.svg +1 -1
- package/docs/design/templates/list-item/selected-dark.svg +1 -1
- package/docs/design/templates/list-item/selected.svg +1 -1
- package/docs/design/templates/list-item/trailing-dark.svg +1 -1
- package/docs/design/templates/list-item/trailing.svg +1 -1
- package/docs/design/templates/list-item-dark.svg +1 -11
- package/docs/design/templates/list-item.svg +1 -11
- package/docs/design/templates/list.svg +1 -0
- package/docs/design/templates/message-composer/chat-dark.svg +1 -0
- package/docs/design/templates/message-composer/chat.svg +1 -0
- package/docs/design/templates/message-composer/prompt-dark.svg +1 -0
- package/docs/design/templates/message-composer/prompt.svg +1 -0
- package/docs/design/templates/message-composer-dark.svg +1 -0
- package/docs/design/templates/message-composer.svg +1 -0
- package/docs/design/templates/progress-bar/determinate-dark.svg +1 -0
- package/docs/design/templates/progress-bar/determinate.svg +1 -0
- package/docs/design/templates/progress-bar/tones-dark.svg +1 -0
- package/docs/design/templates/progress-bar/tones.svg +1 -0
- package/docs/design/templates/progress-bar-dark.svg +1 -0
- package/docs/design/templates/progress-bar.svg +1 -0
- package/docs/design/templates/progress-ring/sizes-dark.svg +1 -0
- package/docs/design/templates/progress-ring/sizes.svg +1 -0
- package/docs/design/templates/progress-ring/tones-dark.svg +1 -0
- package/docs/design/templates/progress-ring/tones.svg +1 -0
- package/docs/design/templates/progress-ring-dark.svg +1 -0
- package/docs/design/templates/progress-ring.svg +1 -0
- package/docs/design/templates/radio-group/horizontal-dark.svg +1 -0
- package/docs/design/templates/radio-group/horizontal.svg +1 -0
- package/docs/design/templates/radio-group/vertical-dark.svg +1 -0
- package/docs/design/templates/radio-group/vertical.svg +1 -0
- package/docs/design/templates/radio-group-dark.svg +1 -0
- package/docs/design/templates/radio-group.svg +1 -0
- package/docs/design/templates/search-field/empty-dark.svg +1 -0
- package/docs/design/templates/search-field/empty.svg +1 -0
- package/docs/design/templates/search-field/tokens-dark.svg +1 -0
- package/docs/design/templates/search-field/tokens.svg +1 -0
- package/docs/design/templates/search-field-dark.svg +1 -0
- package/docs/design/templates/search-field.svg +1 -0
- package/docs/design/templates/segmented-control/equal-dark.svg +1 -1
- package/docs/design/templates/segmented-control/equal.svg +1 -1
- package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -1
- package/docs/design/templates/segmented-control/pill-small.svg +1 -1
- package/docs/design/templates/segmented-control-dark.svg +1 -7
- package/docs/design/templates/segmented-control.svg +1 -7
- package/docs/design/templates/select/compact-dark.svg +1 -0
- package/docs/design/templates/select/compact.svg +1 -0
- package/docs/design/templates/select/form-dark.svg +1 -0
- package/docs/design/templates/select/form.svg +1 -0
- package/docs/design/templates/select/icons-dark.svg +1 -0
- package/docs/design/templates/select/icons.svg +1 -0
- package/docs/design/templates/select-dark.svg +1 -0
- package/docs/design/templates/select.svg +1 -0
- package/docs/design/templates/skeleton-dark.svg +1 -9
- package/docs/design/templates/skeleton.svg +1 -9
- package/docs/design/templates/slider/compact-dark.svg +1 -0
- package/docs/design/templates/slider/compact.svg +1 -0
- package/docs/design/templates/slider/readout-dark.svg +1 -0
- package/docs/design/templates/slider/readout.svg +1 -0
- package/docs/design/templates/slider/ticks-dark.svg +1 -0
- package/docs/design/templates/slider/ticks.svg +1 -0
- package/docs/design/templates/slider-dark.svg +1 -0
- package/docs/design/templates/slider.svg +1 -0
- package/docs/design/templates/split-button/full-width-dark.svg +1 -0
- package/docs/design/templates/split-button/full-width.svg +1 -0
- package/docs/design/templates/split-button/pill-dark.svg +1 -0
- package/docs/design/templates/split-button/pill.svg +1 -0
- package/docs/design/templates/split-button/states-dark.svg +1 -0
- package/docs/design/templates/split-button/states.svg +1 -0
- package/docs/design/templates/split-button/tones-dark.svg +1 -0
- package/docs/design/templates/split-button/tones.svg +1 -0
- package/docs/design/templates/split-button-dark.svg +1 -0
- package/docs/design/templates/split-button.svg +1 -0
- package/docs/design/templates/state-banner/danger-dark.svg +1 -1
- package/docs/design/templates/state-banner/danger.svg +1 -1
- package/docs/design/templates/state-banner/info-badge-dark.svg +1 -0
- package/docs/design/templates/state-banner/info-badge.svg +1 -0
- package/docs/design/templates/state-banner/info-dark.svg +1 -1
- package/docs/design/templates/state-banner/info.svg +1 -1
- package/docs/design/templates/state-banner/strip-dark.svg +1 -0
- package/docs/design/templates/state-banner/strip.svg +1 -0
- package/docs/design/templates/state-banner/success-dark.svg +1 -1
- package/docs/design/templates/state-banner/success.svg +1 -1
- package/docs/design/templates/state-banner/warning-dark.svg +1 -1
- package/docs/design/templates/state-banner/warning.svg +1 -1
- package/docs/design/templates/state-banner-dark.svg +1 -11
- package/docs/design/templates/state-banner.svg +1 -11
- package/docs/design/templates/switch/compact-dark.svg +1 -0
- package/docs/design/templates/switch/compact.svg +1 -0
- package/docs/design/templates/switch/states-dark.svg +1 -0
- package/docs/design/templates/switch/states.svg +1 -0
- package/docs/design/templates/switch-dark.svg +1 -0
- package/docs/design/templates/switch.svg +1 -0
- package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
- package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
- package/docs/design/templates/tab-bar-dark.svg +1 -5
- package/docs/design/templates/tab-bar.svg +1 -5
- package/docs/design/templates/tag-field/error-dark.svg +1 -0
- package/docs/design/templates/tag-field/error.svg +1 -0
- package/docs/design/templates/tag-field/tags-dark.svg +1 -0
- package/docs/design/templates/tag-field/tags.svg +1 -0
- package/docs/design/templates/tag-field-dark.svg +1 -0
- package/docs/design/templates/tag-field.svg +1 -0
- package/docs/design/templates/text-field/compact-dark.svg +1 -0
- package/docs/design/templates/text-field/compact.svg +1 -0
- package/docs/design/templates/text-field/error-dark.svg +1 -0
- package/docs/design/templates/text-field/error.svg +1 -0
- package/docs/design/templates/text-field/labeled-dark.svg +1 -0
- package/docs/design/templates/text-field/labeled.svg +1 -0
- package/docs/design/templates/text-field/multiline-dark.svg +1 -0
- package/docs/design/templates/text-field/multiline.svg +1 -0
- package/docs/design/templates/text-field/number-dark.svg +1 -0
- package/docs/design/templates/text-field/number.svg +1 -0
- package/docs/design/templates/text-field/search-dark.svg +1 -0
- package/docs/design/templates/text-field/search.svg +1 -0
- package/docs/design/templates/text-field-dark.svg +1 -0
- package/docs/design/templates/text-field.svg +1 -0
- package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
- package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
- package/docs/design/templates/toolbar/width-visibility-320-dark.svg +1 -0
- package/docs/design/templates/toolbar/width-visibility-320.svg +1 -0
- package/docs/design/templates/toolbar/width-visibility-600-dark.svg +1 -0
- package/docs/design/templates/toolbar/width-visibility-600.svg +1 -0
- package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -1
- package/docs/design/templates/toolbar-control-group/glass-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/glass.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -1
- package/docs/design/templates/toolbar-control-group/icon-tile-brand-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-brand.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-danger-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-danger.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-neutral-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-neutral.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-success-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-success.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-warning-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-tile-warning.svg +1 -0
- package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
- package/docs/design/templates/toolbar-control-group-dark.svg +1 -11
- package/docs/design/templates/toolbar-control-group.svg +1 -11
- package/docs/design/templates/toolbar-dark.svg +1 -5
- package/docs/design/templates/toolbar-text/dark-tone-dark.svg +1 -0
- package/docs/design/templates/toolbar-text/dark-tone.svg +1 -0
- package/docs/design/templates/toolbar-text/default-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/default.svg +1 -1
- package/docs/design/templates/toolbar-text/large-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/large.svg +1 -1
- package/docs/design/templates/toolbar-text/small-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/small.svg +1 -1
- package/docs/design/templates/toolbar-text-dark.svg +1 -9
- package/docs/design/templates/toolbar-text.svg +1 -9
- package/docs/design/templates/toolbar.svg +1 -5
- package/docs/design/templates/value-table/details-dark.svg +1 -1
- package/docs/design/templates/value-table/details.svg +1 -1
- package/docs/design/templates/value-table-dark.svg +1 -5
- package/docs/design/templates/value-table.svg +1 -5
- package/docs/design/templates.md +89 -33
- package/docs/design-philosophy.md +65 -20
- package/docs/device-class.md +10 -9
- package/docs/disclosure.md +97 -0
- package/docs/document-baseline.md +93 -0
- package/docs/examples/application-ui-profile.json +60 -0
- package/docs/examples/command-palette-adapter.tsx +69 -17
- package/docs/examples/component-catalog-extension.json +52 -0
- package/docs/examples/component-composition-extension.json +80 -0
- package/docs/layout.md +971 -53
- package/docs/list-detail-dialog.md +100 -0
- package/docs/manual-test-plan.md +55 -0
- package/docs/message-composer.md +156 -0
- package/docs/nav-stack.md +327 -14
- package/docs/overlay-toast.md +62 -0
- package/docs/overlay-tooltip.md +53 -0
- package/docs/progress.md +62 -0
- package/docs/recipes.md +156 -73
- package/docs/slider.md +64 -0
- package/docs/split-view.md +96 -7
- package/docs/sunken-panel.md +106 -0
- package/docs/surface-scaffold.md +490 -0
- package/docs/tab-navigator.md +291 -0
- package/docs/tag-field.md +66 -0
- package/docs/type-contracts.md +137 -0
- package/docs/ui-analyzer.md +406 -0
- package/docs/ui-doctor.md +298 -0
- package/docs/ui-evaluator.md +139 -0
- package/docs/ux-demo.md +58 -17
- package/docs/webawesome-migration.md +82 -0
- package/docs/webawesome-theme.md +306 -47
- package/docs/workbench-dialog.md +88 -0
- package/docs/workbench.md +637 -12
- package/docs/writing.md +154 -0
- package/doctor/cli.mjs +120 -0
- package/doctor/component-style-checks.mjs +457 -0
- package/doctor/config.schema.json +94 -0
- package/doctor/copy-capitalization-checks.mjs +603 -0
- package/doctor/eslint-diagnostics.d.mts +24 -0
- package/doctor/eslint-diagnostics.mjs +24 -0
- package/doctor/index.d.mts +122 -0
- package/doctor/index.mjs +1424 -0
- package/doctor/report.schema.json +118 -0
- package/evaluator/cli.mjs +89 -0
- package/evaluator/index.d.mts +90 -0
- package/evaluator/index.mjs +1203 -0
- package/evaluator/report.schema.json +152 -0
- package/llms.txt +943 -54
- package/package.json +488 -43
- package/scripts/component-catalog-extension-validation.mjs +28 -0
- package/traversal-exclusions.mjs +86 -0
- package/ux-demo/recipes/app-shell.tsx +204 -16
- package/ux-demo/recipes/collapsible-sidebar.tsx +206 -45
- package/ux-demo/recipes/compact-toolbar.tsx +135 -14
- package/ux-demo/recipes/composer-form.tsx +135 -24
- package/ux-demo/recipes/list-detail-dialog.tsx +155 -21
- package/ux-demo/recipes/list-workspace-states.tsx +183 -11
- package/ux-demo/recipes/loaders.ts +11 -3
- package/ux-demo/recipes/loading-inspector.tsx +162 -39
- package/ux-demo/recipes/media-detail.tsx +272 -0
- package/ux-demo/recipes/mount-recipe.ts +28 -11
- package/ux-demo/recipes/navigation-sidebar.tsx +137 -11
- package/ux-demo/recipes/navigation-stack.tsx +79 -24
- package/ux-demo/recipes/types.ts +18 -2
- package/ux-demo/recipes/workspace-header.tsx +86 -5
- package/vite-ux-review.d.mts +83 -0
- package/vite-ux-review.mjs +120 -0
- package/dist/app-tab.d.ts +0 -30
- package/dist/app-tab.js +0 -5
- package/dist/app-tab.js.map +0 -1
- package/dist/browser/app-tab.js +0 -4
- package/dist/browser/panel-header.js +0 -7
- package/dist/browser/token-search-field.js +0 -4
- package/dist/chunk-2Z5TWHKQ.js +0 -34
- package/dist/chunk-2Z5TWHKQ.js.map +0 -1
- package/dist/chunk-37T3VNIZ.js +0 -19
- package/dist/chunk-37T3VNIZ.js.map +0 -1
- package/dist/chunk-55DATV3A.js +0 -10
- package/dist/chunk-55DATV3A.js.map +0 -1
- package/dist/chunk-56RJXPHG.js.map +0 -1
- package/dist/chunk-5ATCDSQS.js +0 -42
- package/dist/chunk-5ATCDSQS.js.map +0 -1
- package/dist/chunk-5E2HVJ33.js +0 -10
- package/dist/chunk-5E2HVJ33.js.map +0 -1
- package/dist/chunk-7BR3DO2A.js +0 -31
- package/dist/chunk-7BR3DO2A.js.map +0 -1
- package/dist/chunk-7JB7VPRI.js +0 -34
- package/dist/chunk-7JB7VPRI.js.map +0 -1
- package/dist/chunk-7LDCTU7D.js +0 -134
- package/dist/chunk-7LDCTU7D.js.map +0 -1
- package/dist/chunk-AQNKJRFH.js +0 -79
- package/dist/chunk-AQNKJRFH.js.map +0 -1
- package/dist/chunk-AVZHJN6C.js +0 -14
- package/dist/chunk-AVZHJN6C.js.map +0 -1
- package/dist/chunk-B24C4A6T.js +0 -22
- package/dist/chunk-B24C4A6T.js.map +0 -1
- package/dist/chunk-BLK3UEEI.js +0 -23
- package/dist/chunk-BLK3UEEI.js.map +0 -1
- package/dist/chunk-CH4SQ6H5.js +0 -39
- package/dist/chunk-CH4SQ6H5.js.map +0 -1
- package/dist/chunk-DAFFDO33.js +0 -14
- package/dist/chunk-DAFFDO33.js.map +0 -1
- package/dist/chunk-I7INRJO4.js +0 -17
- package/dist/chunk-I7INRJO4.js.map +0 -1
- package/dist/chunk-L4OKFDJY.js +0 -24
- package/dist/chunk-L4OKFDJY.js.map +0 -1
- package/dist/chunk-LCOBDOCC.js +0 -265
- package/dist/chunk-LCOBDOCC.js.map +0 -1
- package/dist/chunk-M5JRI6MN.js +0 -27
- package/dist/chunk-M5JRI6MN.js.map +0 -1
- package/dist/chunk-RNPGFQ33.js +0 -10
- package/dist/chunk-RNPGFQ33.js.map +0 -1
- package/dist/chunk-RUNWEPR4.js +0 -10
- package/dist/chunk-RUNWEPR4.js.map +0 -1
- package/dist/chunk-W2FK7ZNY.js +0 -26
- package/dist/chunk-W2FK7ZNY.js.map +0 -1
- package/dist/chunk-WVPYVDXY.js +0 -15
- package/dist/chunk-WVPYVDXY.js.map +0 -1
- package/dist/chunk-XE5ZLPCC.js +0 -20
- package/dist/chunk-XE5ZLPCC.js.map +0 -1
- package/dist/chunk-XXMOARTH.js +0 -229
- package/dist/chunk-XXMOARTH.js.map +0 -1
- package/dist/chunk-YGN7OMLT.js.map +0 -1
- package/dist/panel-header.d.ts +0 -36
- package/dist/panel-header.js +0 -7
- package/dist/panel-header.js.map +0 -1
- package/dist/styles/app-tab.css +0 -152
- package/dist/styles/panel-header.css +0 -64
- package/dist/styles/tab-scaffold.css +0 -84
- package/dist/styles/token-search-field.css +0 -289
- package/dist/tab-scaffold.d.ts +0 -30
- package/dist/tab-scaffold.js +0 -16
- package/dist/tab-scaffold.js.map +0 -1
- package/dist/token-search-field.d.ts +0 -43
- package/dist/token-search-field.js +0 -4
- package/dist/token-search-field.js.map +0 -1
- package/dist/wire-tab-scaffold.d.ts +0 -11
- package/dist/wire-tab-scaffold.js +0 -16
- package/dist/wire-tab-scaffold.js.map +0 -1
- package/dist/wire-token-search-fields.js +0 -5
- package/docs/design/templates/panel-header/icon-actions-dark.svg +0 -1
- package/docs/design/templates/panel-header/icon-actions.svg +0 -1
- package/docs/design/templates/panel-header/icon-summary-actions-dark.svg +0 -1
- package/docs/design/templates/panel-header/icon-summary-actions.svg +0 -1
- package/docs/design/templates/panel-header/no-icon-dark.svg +0 -1
- package/docs/design/templates/panel-header/no-icon.svg +0 -1
- package/docs/design/templates/panel-header/page-heading-dark.svg +0 -1
- package/docs/design/templates/panel-header/page-heading.svg +0 -1
- package/docs/design/templates/panel-header/title-only-dark.svg +0 -1
- package/docs/design/templates/panel-header/title-only.svg +0 -1
- package/docs/design/templates/panel-header-dark.svg +0 -13
- package/docs/design/templates/panel-header.svg +0 -13
- package/docs/design/templates/token-search-field/empty-dark.svg +0 -1
- package/docs/design/templates/token-search-field/empty.svg +0 -1
- package/docs/design/templates/token-search-field/tokens-dark.svg +0 -1
- package/docs/design/templates/token-search-field/tokens.svg +0 -1
- package/docs/design/templates/token-search-field-dark.svg +0 -7
- package/docs/design/templates/token-search-field.svg +0 -7
- package/docs/tab-scaffold.md +0 -41
- package/ux-demo/recipes/recipes.css +0 -448
package/docs/nav-stack.md
CHANGED
|
@@ -5,14 +5,19 @@ and out over one another while the top chrome settles. A **single-pane layout is
|
|
|
5
5
|
a `NavStack` with one entry**. It is one of the opt-in app layouts (see
|
|
6
6
|
[`../../docs/23-app-layouts.md`](../../docs/23-app-layouts.md)).
|
|
7
7
|
|
|
8
|
-
Import the component and its
|
|
8
|
+
Import the component and its wiring helper:
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
|
-
import { NavStack, type NavStackView } from
|
|
12
|
-
import { wireNavStack } from
|
|
13
|
-
import '@kerfjs/ui/nav-stack.css';
|
|
11
|
+
import { NavStack, type NavStackView } from "@kerfjs/ui/nav-stack";
|
|
12
|
+
import { wireNavStack } from "@kerfjs/ui/wire-nav-stack";
|
|
14
13
|
```
|
|
15
14
|
|
|
15
|
+
In a browser bundler that honors the `browser` export condition (Vite, esbuild, and
|
|
16
|
+
webpack do by default), the import above also
|
|
17
|
+
loads NavStack's stylesheet and those of the components it renders internally
|
|
18
|
+
(`Toolbar`, `ToolbarControlGroup`, `ToolbarText`, `Pane`, `List`, `LucideIcon`). Without that condition, import the manual stylesheets instead:
|
|
19
|
+
`@kerfjs/ui/nav-stack.css` plus those components' CSS, or `@kerfjs/ui/styles.css`.
|
|
20
|
+
|
|
16
21
|
## State lives in the app
|
|
17
22
|
|
|
18
23
|
Like every `@kerfjs/ui` component, `NavStack` is declarative: the app owns the
|
|
@@ -20,28 +25,336 @@ stack as a `signal<NavStackView[]>`, `NavStack({ views })` renders it, and
|
|
|
20
25
|
`wireNavStack` animates the transitions.
|
|
21
26
|
|
|
22
27
|
```tsx
|
|
23
|
-
const views = signal<NavStackView[]>([
|
|
28
|
+
const views = signal<NavStackView[]>([
|
|
29
|
+
{
|
|
30
|
+
key: "inbox",
|
|
31
|
+
toolbar: { title: "Inbox" },
|
|
32
|
+
content: <InboxView />,
|
|
33
|
+
bottomToolbar: {
|
|
34
|
+
label: "Inbox status",
|
|
35
|
+
leading: <InboxStatus />,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
24
39
|
|
|
25
40
|
// render inside mount():
|
|
26
41
|
<NavStack id="mail" label="Mail" views={views.value} />;
|
|
27
42
|
|
|
28
43
|
// once, after first render:
|
|
29
|
-
const dispose = wireNavStack(root, {
|
|
44
|
+
const dispose = wireNavStack(root, {
|
|
45
|
+
onBack: () => {
|
|
46
|
+
views.value = views.value.slice(0, -1);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
30
49
|
|
|
31
50
|
// push / pop by editing the signal:
|
|
32
|
-
views.value = [
|
|
51
|
+
views.value = [
|
|
52
|
+
...views.value,
|
|
53
|
+
{ key: id, toolbar: { title: "Message" }, content: <MessageView id={id} /> },
|
|
54
|
+
];
|
|
33
55
|
```
|
|
34
56
|
|
|
35
57
|
`NavStack` renders every entry stacked, the last one active and the rest kept
|
|
36
|
-
mounted (so their DOM state
|
|
37
|
-
`key` (stable identity), `content`, an optional `
|
|
38
|
-
`
|
|
39
|
-
|
|
58
|
+
mounted (so their DOM state survives) but hidden. Each entry carries a
|
|
59
|
+
`key` (stable identity), `content`, an optional `toolbar` object with `title`,
|
|
60
|
+
`leading`, `center`, and `trailing` groups, and an optional structured
|
|
61
|
+
`bottomToolbar`. The component-level structured
|
|
62
|
+
`bottomToolbar` remains a persistent fallback for views that do not provide one.
|
|
63
|
+
Each view can also provide `header`, `footer`, `headerList`, `footerList`, and
|
|
64
|
+
`pane` configuration, as a `WorkbenchStaticPanel` does. With any of these,
|
|
65
|
+
the view renders a `Pane`: its header and footer stay pinned around the view's
|
|
66
|
+
scrolling content, and slide with that view during navigation. The header and
|
|
67
|
+
footer list configuration forwards to their `List`s; `pane` forwards
|
|
68
|
+
`contentElement`, `contentLabel`, `separators`, `safeAreaEdges`,
|
|
69
|
+
`chromeDividers`, `appearance`, `deepInset`, `scrollClearance`, `headerPresentation`, `tabIndex`,
|
|
70
|
+
and `outlined` to the Pane. Without those fields, the view
|
|
71
|
+
keeps its simple direct scroll area. Use `pane: { appearance: "sunken" }` for a
|
|
72
|
+
lowered scrolling work surface.
|
|
73
|
+
The back control appears automatically once the stack has more than one entry;
|
|
74
|
+
`wireNavStack`'s `onBack` is where the app pops its own signal.
|
|
75
|
+
|
|
76
|
+
See [Lowered work surfaces](layout.md#lowered-work-surfaces) for nested Pane
|
|
77
|
+
and layout content.
|
|
78
|
+
|
|
79
|
+
## The top toolbar
|
|
80
|
+
|
|
81
|
+
The top chrome is a real `Toolbar`, so it follows the same zone,
|
|
82
|
+
group, and responsive rules as every other toolbar. Its leading zone holds the
|
|
83
|
+
back control (a contained, bordered `ToolbarControlGroup`, shown once the stack has
|
|
84
|
+
depth), then `toolbar.leading`. `toolbar.trailing` fills the trailing zone.
|
|
85
|
+
Give each zone `ToolbarControlGroup`s or `ToolbarText`, as in any toolbar.
|
|
86
|
+
|
|
87
|
+
Where `toolbar.title` goes depends on the back control:
|
|
88
|
+
|
|
89
|
+
- **At the root** (no back control) the title is a filling `ToolbarText` at
|
|
90
|
+
the end of the leading zone, so it reads left-aligned.
|
|
91
|
+
- **Once the stack has depth**, the title is the center zone's only child and
|
|
92
|
+
the toolbar is `centerAlign="balanced"`, like a platform navigation bar. The
|
|
93
|
+
title sits on the bar's midpoint while the sides leave room, moves away from
|
|
94
|
+
a wider side when they do not, and truncates with an ellipsis before it
|
|
95
|
+
reaches the back control or a trailing group. It keeps the root title's
|
|
96
|
+
full-strength text color at its smaller size. This overrides a configured
|
|
97
|
+
`centerAlign`, which applies to view-owned center content.
|
|
98
|
+
- **A view that sets `toolbar.center`** owns the center zone, so its title
|
|
99
|
+
stays left-aligned in the leading zone at any depth.
|
|
100
|
+
|
|
101
|
+
Configure the toolbar with `toolbarConfig` instead of styling it:
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
<NavStack
|
|
105
|
+
id="mail"
|
|
106
|
+
label="Mail"
|
|
107
|
+
views={views.value}
|
|
108
|
+
backText={previousTitle}
|
|
109
|
+
toolbarConfig={{
|
|
110
|
+
headingLevel: 1,
|
|
111
|
+
titleSize: "xlarge",
|
|
112
|
+
dividerSides: "b",
|
|
113
|
+
responsive: "wrap",
|
|
114
|
+
}}
|
|
115
|
+
/>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- Each view's `toolbar` can forward the `Toolbar` configuration (`dividerSides`,
|
|
119
|
+
`centerAlign`, `responsive`, `responsiveAt`, `safeAreaEdges`) and its `label`,
|
|
120
|
+
`titleSize`, and `headingLevel`. A view value overrides the corresponding
|
|
121
|
+
`toolbarConfig` default. Its `bottomToolbar` forwards the same `Toolbar`
|
|
122
|
+
configuration and has a required accessible `label`.
|
|
123
|
+
- `toolbarConfig` supplies stack-wide defaults (`dividerSides`,
|
|
124
|
+
`centerAlign`, `responsive`, `responsiveAt`, `safeAreaEdges`) and adds
|
|
125
|
+
`label` (the toolbar's accessible name), `titleSize` (the title's
|
|
126
|
+
`ToolbarText` size; default `xlarge` at the root, where the title is the page
|
|
127
|
+
heading, and `large` once a back control shares the bar; a Workbench panel's
|
|
128
|
+
stack keeps `large` at every depth), and `headingLevel` (expose the title as
|
|
129
|
+
a heading; default a plain span). The defaults keep the stack's own chrome:
|
|
130
|
+
no divider, the standard Toolbar height (a 44px control band with 8px above and below), and the top and side safe-area edges
|
|
131
|
+
claimed.
|
|
132
|
+
- `backIcon` replaces the default chevron-left icon. `backText` adds visible
|
|
133
|
+
text beside it (for example, the previous view's title); visible text names
|
|
134
|
+
the control, so `backLabel` applies only to the icon-only control.
|
|
135
|
+
|
|
136
|
+
`panelToggle` supplies a persistent final group in the trailing zone of every
|
|
137
|
+
view's top toolbar. `Workbench` uses it for a navigation panel's standard
|
|
138
|
+
collapse toggle; the active view still owns the preceding toolbar groups.
|
|
139
|
+
|
|
140
|
+
The catalog's **Configured Toolbar** example shows these together: a level-2
|
|
141
|
+
heading title over a bottom divider, leading and center groups on the root
|
|
142
|
+
view, a trailing group on the pushed view, and `backText` set to the previous
|
|
143
|
+
view's title.
|
|
144
|
+
|
|
145
|
+
Focus follows the controlled stack automatically. On push, `wireNavStack`
|
|
146
|
+
remembers the focused descendant of the departing view and moves focus into the
|
|
147
|
+
new top view. On pop it restores that exact descendant when it still exists. A
|
|
148
|
+
new view prefers a descendant marked `data-nav-focus`, then its first enabled
|
|
149
|
+
focusable descendant, and finally the view container itself. Use
|
|
150
|
+
`data-nav-focus` for a heading or primary control when DOM order is not the best
|
|
151
|
+
initial reading position; it may use `tabindex="-1"` for programmatic focus.
|
|
152
|
+
When a remembered control was removed during the controlled rerender, the same
|
|
153
|
+
fallback order applies. While focus rests on the view container itself (it
|
|
154
|
+
had nothing focusable, such as an inert loading placeholder), a later
|
|
155
|
+
re-render that morphs away the temporary `tabindex` keeps it there, and once
|
|
156
|
+
content with a focus target arrives under the same key, focus moves to it;
|
|
157
|
+
focus the person moved elsewhere is never reclaimed. Disposing the helper stops future transitions and
|
|
158
|
+
cleans up any temporary fallback `tabindex` it added.
|
|
159
|
+
|
|
160
|
+
## Separators and scroll dividers
|
|
161
|
+
|
|
162
|
+
`separator="auto"` (the default) draws a line under the top chrome and above
|
|
163
|
+
the optional bottom toolbar when the active view's Pane has
|
|
164
|
+
`appearance="sunken"`, even if its content fits and no scroll wiring runs. The
|
|
165
|
+
line follows the active view on push and pop. Set `separator="hidden"` to hide
|
|
166
|
+
both stack-owned edges, including lines requested by `chromeDividers`. The
|
|
167
|
+
existing 1px edges change color without moving the content. A view's own Pane
|
|
168
|
+
header and footer separators remain controlled by that Pane.
|
|
169
|
+
|
|
170
|
+
For a flat active view, the stack draws no permanent line. With
|
|
171
|
+
`wireScrollDividers(appRoot)` installed (see
|
|
172
|
+
[Layout › Scroll dividers](layout.md#scroll-dividers)), the top chrome shows a
|
|
173
|
+
line along its bottom edge only while the active view's content is scrolled
|
|
174
|
+
beneath it, and the bottom toolbar a line along its top edge only while more
|
|
175
|
+
content lies below it — neither when the content fits. The line follows the
|
|
176
|
+
active view across a push or pop. The chrome's line is overlaid on its bottom
|
|
177
|
+
edge and the bottom toolbar's is its always-present 1px top border, colored
|
|
178
|
+
only while shown, so neither ever moves the chrome or the content. When the view's only child is a `Pane`,
|
|
179
|
+
the line keys on whichever actually scrolls — the view, or the Pane's content —
|
|
180
|
+
and a Pane header or footer draws its own boundary instead. An explicit
|
|
181
|
+
`toolbarConfig.dividerSides` still draws a permanent Toolbar edge.
|
|
182
|
+
|
|
183
|
+
`chromeDividers` configures both lines for flat views, with the same values as a `Pane`'s:
|
|
184
|
+
`scroll` (the default) follows the scroll state above and draws nothing until
|
|
185
|
+
the wiring runs; `always` keeps both lines, with or without the wiring; `none`
|
|
186
|
+
drops them even when the wiring reports scroll state. A sunken active Pane still
|
|
187
|
+
shows the separator unless `separator="hidden"`. This option does not change the
|
|
188
|
+
top Toolbar's own `dividerSides`.
|
|
189
|
+
|
|
190
|
+
```tsx
|
|
191
|
+
<NavStack id="settings" label="Settings" views={views.value} chromeDividers="always" />
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Background colors
|
|
195
|
+
|
|
196
|
+
`background` paints the stack, its docked chrome and bottom toolbar, and every
|
|
197
|
+
view in an app-chosen color from `@kerfjs/ui/css-values` instead of the
|
|
198
|
+
surface. One view's own color goes in its `pane: { background }`, which paints
|
|
199
|
+
over the stack's. Overlay chrome keeps the chrome material. The app keeps text
|
|
200
|
+
at AA over the color; forced colors paint `Canvas`. See
|
|
201
|
+
[Background colors](layout.md#background-colors).
|
|
202
|
+
|
|
203
|
+
```tsx
|
|
204
|
+
<NavStack id="music" label="Music" views={views.value} background={uiColor("surface-raised")} />
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
`tint={{ color, scheme }}` re-derives the stack's surface and text tokens from
|
|
208
|
+
an app color instead, so its chrome, views, and content all take on the color
|
|
209
|
+
with text kept at AA. See [Tinted surfaces](layout.md#tinted-surfaces).
|
|
210
|
+
|
|
211
|
+
## Overlay chrome
|
|
212
|
+
|
|
213
|
+
`chromePresentation="overlay"` lays the top chrome over the active view's top
|
|
214
|
+
edge, like an iOS navigation bar, instead of docking it above the view
|
|
215
|
+
(`"docked"`, the default). The chrome paints the shared chrome material,
|
|
216
|
+
`--kui-chrome-material` behind `--kui-chrome-material-filter`, so content
|
|
217
|
+
scrolls visibly, blurred, beneath it.
|
|
218
|
+
|
|
219
|
+
```tsx
|
|
220
|
+
<NavStack id="mail" label="Mail" views={views.value} chromePresentation="overlay" />
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
- **`wireNavStack` measures it.** The helper you already call for transitions
|
|
224
|
+
reads the live chrome's border-box height with a `ResizeObserver`, publishes
|
|
225
|
+
it on the stack root, and marks the root `data-chrome-overlay="measured"`.
|
|
226
|
+
Only then does the chrome leave its band. Unwired, or with `hideToolbar`, the
|
|
227
|
+
chrome stays docked, so it never covers content it has not measured. The
|
|
228
|
+
measurement follows the chrome as its title wraps, text grows, or a pushed
|
|
229
|
+
view changes its toolbar. A re-render that strips the measurement gets it
|
|
230
|
+
back before paint.
|
|
231
|
+
- **Every view clears it automatically.** The measured height becomes the
|
|
232
|
+
viewport's block-start edge context (`--kui-edge-inset-block-start`), the
|
|
233
|
+
same context that carries safe areas. A plain view pads and scroll-pads by
|
|
234
|
+
it, a sole `Pane` adds it to its content's (or its header's) block-start
|
|
235
|
+
inset, and a nested layout hands it on. The first item rests just below the
|
|
236
|
+
chrome, and anything focused or scrolled into view stops clear of it. No
|
|
237
|
+
`scrollClearance` prop is involved, so a Pane that also opts into
|
|
238
|
+
`scrollClearance` does not clear the chrome twice.
|
|
239
|
+
- **Safe area.** The chrome keeps claiming the top safe area: its toolbar pads
|
|
240
|
+
for it while the material paints through it. The measured height already
|
|
241
|
+
includes that padding, so views clear the chrome and the safe area exactly
|
|
242
|
+
once.
|
|
243
|
+
- **Transitions.** Only the live chrome is measured, never a cross-fading
|
|
244
|
+
copy. An overlay bar (top chrome or bottom toolbar) cross-fades its
|
|
245
|
+
contents, never its material: the live bar keeps the material at full
|
|
246
|
+
opacity while its new contents fade in, and the copy fading out above it
|
|
247
|
+
carries only the old contents, so the sliding views never show through the
|
|
248
|
+
chrome mid push or pop. The incoming view settles at the incoming chrome's
|
|
249
|
+
clearance.
|
|
250
|
+
- **Classic scrollbars.** Where the active view's scroller (the view, or a
|
|
251
|
+
sole header-less Pane's content) shows a classic, space-taking scrollbar,
|
|
252
|
+
`wireNavStack` measures it and the chrome ends where its track begins, so
|
|
253
|
+
the thumb and arrows stay visible and usable. An overlay scrollbar takes no
|
|
254
|
+
space and passes beneath the material like the content.
|
|
255
|
+
- **Dividers.** With `wireScrollDividers`, the line under the chrome still
|
|
256
|
+
appears only while content is scrolled beneath it.
|
|
257
|
+
- **Contrast.** The material keeps normal text at AA over any content. An
|
|
258
|
+
untoned `ToolbarText` in the chrome lifts itself: its title takes the normal
|
|
259
|
+
text color at every size and its `description` mixes the quiet color halfway
|
|
260
|
+
toward it, and a default-tone `ToolbarControlGroup` takes the normal text
|
|
261
|
+
color for its controls. Other quiet copy you place in the chrome has no such
|
|
262
|
+
lift, so keep it in the view (see
|
|
263
|
+
[Accessibility › Chrome material](accessibility.md#chrome-material)). The
|
|
264
|
+
material turns opaque under `prefers-reduced-transparency`,
|
|
265
|
+
`prefers-contrast: more`, or without `backdrop-filter`, and forced colors
|
|
266
|
+
paint `Canvas` with a `CanvasText` bottom edge.
|
|
267
|
+
|
|
268
|
+
`SplitView`'s `compactStack.chromePresentation` and a Workbench navigation
|
|
269
|
+
panel's `navStack.chromePresentation` forward the same option.
|
|
270
|
+
`chromePresentation` governs only the top chrome; the bottom toolbar has its
|
|
271
|
+
own option below.
|
|
272
|
+
|
|
273
|
+
### Overlay bottom toolbar
|
|
274
|
+
|
|
275
|
+
`bottomToolbarPresentation="overlay"` does the same for the bottom toolbar,
|
|
276
|
+
like an iOS toolbar: it lies over the active view's bottom edge on the same
|
|
277
|
+
chrome material instead of docking below the view (`"docked"`, the default).
|
|
278
|
+
It is a separate prop, so either bar can be overlaid alone, and it mirrors
|
|
279
|
+
`Pane.headerPresentation` and `DialogSurface.footerPresentation` in naming one
|
|
280
|
+
edge.
|
|
281
|
+
|
|
282
|
+
```tsx
|
|
283
|
+
<NavStack
|
|
284
|
+
id="mail"
|
|
285
|
+
label="Mail"
|
|
286
|
+
views={views.value}
|
|
287
|
+
chromePresentation="overlay"
|
|
288
|
+
bottomToolbarPresentation="overlay"
|
|
289
|
+
bottomToolbar={{ label: 'Mail Actions', trailing: composeGroup }}
|
|
290
|
+
/>
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- **`wireNavStack` measures it.** It reads the live bottom toolbar's
|
|
294
|
+
border-box height (never a cross-fading copy's), publishes it on the stack
|
|
295
|
+
root, and marks the root `data-bottom-toolbar-overlay="measured"`. Only then
|
|
296
|
+
does the toolbar leave its band. Unwired, or while no bottom toolbar is
|
|
297
|
+
shown (a view without one and no stack-level fallback), it stays docked. The
|
|
298
|
+
measurement follows a view-owned toolbar as views push and pop, and a
|
|
299
|
+
re-render that strips it gets it back before paint.
|
|
300
|
+
- **Every view clears it automatically.** The measured height becomes the
|
|
301
|
+
viewport's block-end edge context (`--kui-edge-inset-block-end`). A plain
|
|
302
|
+
view pads and scroll-pads by it, a sole `Pane` adds it to its content's
|
|
303
|
+
block-end inset (or its footer's, so the footer rests just above the
|
|
304
|
+
toolbar), and a nested layout hands it on. The last item rests just above
|
|
305
|
+
the toolbar, and anything focused or scrolled into view stops clear of it.
|
|
306
|
+
- **Safe area.** The toolbar keeps claiming the bottom safe area (the home
|
|
307
|
+
indicator), and the measured height includes it, so views clear both exactly
|
|
308
|
+
once. Inside a `TabNavigator` scene the tab bar owns that edge, so the
|
|
309
|
+
stack's toolbar sits just above the tab bar and counts no safe area.
|
|
310
|
+
- **Classic scrollbars and dividers.** The toolbar ends where a classic
|
|
311
|
+
scrollbar's track begins (a sole Pane with a footer ends its scroller above
|
|
312
|
+
the toolbar, so nothing needs leaving there). With `wireScrollDividers`, the
|
|
313
|
+
toolbar's top line still appears only while more content lies below.
|
|
314
|
+
- **Contrast.** An untoned `ToolbarText` lifts itself as in the top chrome,
|
|
315
|
+
and a default-tone `ToolbarControlGroup` in either overlaid bar takes the
|
|
316
|
+
normal text color for its controls, so labels and icons keep AA over the
|
|
317
|
+
content beneath. The material has the same opaque fallbacks; in forced
|
|
318
|
+
colors the toolbar paints `Canvas` and its always-present 1px top border
|
|
319
|
+
becomes a `CanvasText` edge, which the measurement includes.
|
|
320
|
+
|
|
321
|
+
`SplitView`'s `compactStack.bottomToolbarPresentation` and a Workbench
|
|
322
|
+
navigation panel's `navStack.bottomToolbarPresentation` forward it too.
|
|
323
|
+
|
|
324
|
+
### Clear chrome
|
|
325
|
+
|
|
326
|
+
`chromePresentation="clear"` and `bottomToolbarPresentation="clear"` lay the
|
|
327
|
+
bars over the active view like `overlay`, with the same measuring and edge
|
|
328
|
+
insets, but fully transparent, for chrome over imagery. Keep their controls
|
|
329
|
+
in glass control groups (`ToolbarControlGroup material="glass"`); the stack's
|
|
330
|
+
own back control is one automatically under clear chrome. They stay
|
|
331
|
+
clear while content scrolls beneath them; with `scrollEdge="material"` (or
|
|
332
|
+
`"surface"`) a backing fades in gradually, opacity only, over
|
|
333
|
+
`scrollEdgeDistance` pixels of scroll (default 60): behind the top chrome as
|
|
334
|
+
the view's content scrolls beneath it, and behind the bottom toolbar until
|
|
335
|
+
the content nears its end. Clear bars draw no scroll
|
|
336
|
+
divider, turn opaque under reduced transparency or increased contrast, and
|
|
337
|
+
paint `Canvas` in forced colors. See [Clear header](layout.md#clear-header).
|
|
338
|
+
|
|
339
|
+
## Safe areas
|
|
340
|
+
|
|
341
|
+
The stack paints through a device's unsafe areas. Its chrome pads for the top
|
|
342
|
+
and side insets, its bottom toolbar for the bottom and side insets, and each
|
|
343
|
+
view pads the remaining edges inside its scroller, so content scrolls under the
|
|
344
|
+
unsafe area but can always be scrolled clear. A view whose only child is a
|
|
345
|
+
`Pane` or layout lets that child own the insets. See [Choosing an app layout › Safe areas](app-layouts.md#safe-areas).
|
|
40
346
|
|
|
41
347
|
## Transitions
|
|
42
348
|
|
|
43
349
|
`wireNavStack(root, { onBack, duration? })` observes the rendered stack and
|
|
44
350
|
animates each change: a pushed view slides in from the trailing edge; a popped
|
|
45
|
-
view slides back off it over the revealed view
|
|
46
|
-
|
|
47
|
-
|
|
351
|
+
view slides back off it over the revealed view; and snapshots of the previous
|
|
352
|
+
top and bottom chrome cross-fade into the active view's chrome. The preserved
|
|
353
|
+
underlying view remains visible during a push, while remaining inaccessible.
|
|
354
|
+
Starting transforms and opacity apply instantly before the transition begins.
|
|
355
|
+
A new navigation settles the previous transition and cancels its pending frames
|
|
356
|
+
and cleanup timers; disposal removes temporary copies and exiting views. Focus moves to
|
|
357
|
+
the new top view independently of animation duration. It returns a disposer.
|
|
358
|
+
The animation honors `prefers-reduced-motion` (transitions collapse to instant)
|
|
359
|
+
and `duration: 0` disables it. Applicable at every device size and inside
|
|
360
|
+
dialogs.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Toasts
|
|
2
|
+
|
|
3
|
+
`kerfjs/overlay`'s `toast()` shows a brief, auto-dismissing notification in
|
|
4
|
+
one body-level live region. The core ships no CSS. Import
|
|
5
|
+
`@kerfjs/ui/overlay-toast.css` once and every toast takes Kerf's look:
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import "@kerfjs/ui/overlay-toast.css";
|
|
9
|
+
import { toast } from "kerfjs/overlay";
|
|
10
|
+
|
|
11
|
+
const exit = { exitClass: "kui-toast-exit", exitDuration: 200 };
|
|
12
|
+
|
|
13
|
+
toast("Draft saved.", exit);
|
|
14
|
+
toast("Project published.", { ...exit, variant: "success" });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What the stylesheet does
|
|
18
|
+
|
|
19
|
+
- **Placement.** The region (`.kerf-toasts`) sits above the bottom edge,
|
|
20
|
+
centered, 16px from the viewport edge plus the bottom safe area, at most
|
|
21
|
+
480px wide. It never blocks the page; only the toasts take presses.
|
|
22
|
+
- **Stacking.** Toasts stack newest last with an 8px gap.
|
|
23
|
+
- **Surface.** Each toast (`.kerf-toast`) is the raised surface with a neutral
|
|
24
|
+
border, the rounded radius, and the large shadow.
|
|
25
|
+
- **Tones.** `variant: 'info' | 'success' | 'warning'` lays the brand,
|
|
26
|
+
success, or warning quiet fill over the opaque surface, with the matching
|
|
27
|
+
border and text.
|
|
28
|
+
- **StateBanner content.** A toast whose only content is a `StateBanner` takes
|
|
29
|
+
the banner's tone, border, and inset, and keeps its own elevation:
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
toast(
|
|
33
|
+
() => <StateBanner title="Export Finished" detail="report.csv is ready." tone="success" />,
|
|
34
|
+
{ ...exit, duration: 6000 },
|
|
35
|
+
);
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- **Motion.** A new toast rises and fades in on its own (no `enterClass`
|
|
39
|
+
needed). Pass `exitClass: 'kui-toast-exit'` with `exitDuration: 200` and it
|
|
40
|
+
sinks and fades out before removal. Under `prefers-reduced-motion` or
|
|
41
|
+
`:root[data-kui-effects="static"]` it only fades, or not at all.
|
|
42
|
+
- **Forced colors.** Toasts draw a `CanvasText` border on `Canvas`.
|
|
43
|
+
|
|
44
|
+
## Choices the app owns
|
|
45
|
+
|
|
46
|
+
- What to say and when: a toast confirms a completed action (saved, copied,
|
|
47
|
+
published) or reports a status. An error the person must act on, or a
|
|
48
|
+
decision, belongs in a `StateBanner` in the affected surface or a
|
|
49
|
+
`DialogSurface`, not a toast that disappears.
|
|
50
|
+
- `duration` (default 4000ms; `0` keeps it until you call `dismiss()`), and
|
|
51
|
+
`mode: 'replace'` to collapse a rapid sequence to the latest message.
|
|
52
|
+
- Top-edge stacking: pass your own region as `container` with
|
|
53
|
+
`data-placement="top"` (and the `kerf-toasts` class); it stacks from the top
|
|
54
|
+
safe area down.
|
|
55
|
+
- Stacking order above other layers: set `--kui-overlay-toast-z-index`
|
|
56
|
+
(default 1100).
|
|
57
|
+
|
|
58
|
+
The region is `aria-live="polite"` and each toast is `role="status"`, so a
|
|
59
|
+
screen reader announces it without moving focus. Never make a toast the only
|
|
60
|
+
path to an action.
|
|
61
|
+
|
|
62
|
+
Use this instead of `wa-toast` and `wa-toast-item`, which are Discouraged.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Tooltips
|
|
2
|
+
|
|
3
|
+
`kerfjs/overlay`'s `tooltip(anchor, content, options?)` shows a hover and
|
|
4
|
+
keyboard-focus tooltip beside any element and positions it there. The core
|
|
5
|
+
ships no CSS. Import `@kerfjs/ui/overlay-tooltip.css` once and every tooltip
|
|
6
|
+
takes the help tag's look:
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import "@kerfjs/ui/overlay-tooltip.css";
|
|
10
|
+
import { tooltip } from "kerfjs/overlay";
|
|
11
|
+
|
|
12
|
+
const stop = tooltip(
|
|
13
|
+
deployButton,
|
|
14
|
+
"Builds the current branch and deploys it to staging.",
|
|
15
|
+
{ exitClass: "kui-tooltip-exit", exitDuration: 100 },
|
|
16
|
+
);
|
|
17
|
+
// Later: stop() removes the listeners and any shown tooltip.
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## What the stylesheet does
|
|
21
|
+
|
|
22
|
+
- **Look.** The `.kerf-tooltip` wrapper takes the loud neutral fill with
|
|
23
|
+
on-loud text at 14px and a 3px radius: the same look as the help tags that
|
|
24
|
+
icon-only Kerf controls show.
|
|
25
|
+
- **Width.** It sizes to its text and wraps at 40 characters, staying 8px
|
|
26
|
+
inside a narrow viewport.
|
|
27
|
+
- **Pointer.** It never takes the pointer, so it cannot block the control
|
|
28
|
+
beneath it.
|
|
29
|
+
- **Motion.** It fades in on its own (no `enterClass` needed). Pass
|
|
30
|
+
`exitClass: 'kui-tooltip-exit'` with `exitDuration: 100` and it fades out as
|
|
31
|
+
it hides. Under `prefers-reduced-motion` or
|
|
32
|
+
`:root[data-kui-effects="static"]` it appears and leaves at once.
|
|
33
|
+
- **Forced colors.** It draws `CanvasText` on `Canvas`.
|
|
34
|
+
- **Stacking.** Set `--kui-overlay-tooltip-z-index` (default 1200) to change
|
|
35
|
+
its stacking order. With `native: true` it is in the top layer instead.
|
|
36
|
+
|
|
37
|
+
Structured content from a render function inherits the tooltip's colors, so
|
|
38
|
+
use plain inline markup (`<strong>`, a line break) rather than components that
|
|
39
|
+
set their own text color.
|
|
40
|
+
|
|
41
|
+
## When to use it
|
|
42
|
+
|
|
43
|
+
- A control or value needs a short explanation on hover and focus: a longer
|
|
44
|
+
description of an action, a chart point, or a truncated label.
|
|
45
|
+
- Not for icon-only Kerf controls: `@kerfjs/ui/help-tags-register` already
|
|
46
|
+
shows their help tag.
|
|
47
|
+
- Not for interactive content or the only copy of important information. Use an
|
|
48
|
+
`AnchoredSurface` the person opens, or visible text.
|
|
49
|
+
|
|
50
|
+
Keep the anchor's accessible name complete without the tooltip; the wrapper is
|
|
51
|
+
`role="tooltip"` and appears on keyboard focus as well as hover.
|
|
52
|
+
|
|
53
|
+
Use this instead of `wa-tooltip`, which is Discouraged.
|
package/docs/progress.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Progress
|
|
2
|
+
|
|
3
|
+
Two components show progress: `ProgressBar` (`@kerfjs/ui/progress-bar`), a
|
|
4
|
+
linear bar on the native `<progress>` element, and `ProgressRing`
|
|
5
|
+
(`@kerfjs/ui/progress-ring`), a compact circle for a line of text, a row, or a
|
|
6
|
+
toolbar. Both are determinate (`value` of `max`, default `max` 1) or, without a
|
|
7
|
+
`value`, indeterminate.
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { ProgressBar } from "@kerfjs/ui/progress-bar";
|
|
11
|
+
import { ProgressRing } from "@kerfjs/ui/progress-ring";
|
|
12
|
+
|
|
13
|
+
<ProgressBar
|
|
14
|
+
id="upload"
|
|
15
|
+
label="Uploading Files"
|
|
16
|
+
value={3}
|
|
17
|
+
max={12}
|
|
18
|
+
valueText="3 of 12 files"
|
|
19
|
+
showValue
|
|
20
|
+
/>;
|
|
21
|
+
<ProgressRing label="Claim Time Remaining" value={0.75} valueText="45 minutes left" />;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## ProgressBar
|
|
25
|
+
|
|
26
|
+
- **Name.** `label` is a visible line above the bar that also names it (with
|
|
27
|
+
an `id`, through `aria-labelledby`); `ariaLabel` names a bar without one.
|
|
28
|
+
- **Readout.** `showValue` puts the percentage, or `valueText`, at the end of
|
|
29
|
+
the label row. `valueText` also replaces the spoken percentage.
|
|
30
|
+
- **Indeterminate.** Omit `value` and a band sweeps across the track. It holds
|
|
31
|
+
still under `prefers-reduced-motion` or the static-effects switch.
|
|
32
|
+
- **Tone and size.** `tone` is `brand` (default), `success`, `warning`, or
|
|
33
|
+
`danger`; `size="compact"` is a 4px track for a row or table cell (default
|
|
34
|
+
6px).
|
|
35
|
+
|
|
36
|
+
The bar takes the full available width and the shared block-content inset (a
|
|
37
|
+
transparent 1px border and 8px padding), so its label sits on the same text
|
|
38
|
+
column as `Text`.
|
|
39
|
+
|
|
40
|
+
## ProgressRing
|
|
41
|
+
|
|
42
|
+
- **Name.** `label` is required: the ring is `role="progressbar"` with
|
|
43
|
+
`aria-valuenow` as a percentage, or `valueText`.
|
|
44
|
+
- **Size.** `small` (16px) for a line of text, `medium` (24px, the default)
|
|
45
|
+
beside an icon in a row or toolbar, `large` (40px) on its own. Its box is
|
|
46
|
+
exactly its diameter, so it aligns with icons of the same size.
|
|
47
|
+
- **Indeterminate.** Omit `value` and it spins a quarter arc, which holds still
|
|
48
|
+
under reduced motion.
|
|
49
|
+
- **Tone.** The same tones as the bar.
|
|
50
|
+
|
|
51
|
+
## Choosing
|
|
52
|
+
|
|
53
|
+
- A measurable task with room for a label row: `ProgressBar`.
|
|
54
|
+
- Compact progress beside an item: `ProgressRing`.
|
|
55
|
+
- A brief busy glyph inside a control: `LoadingSpinner`.
|
|
56
|
+
- App-wide progress with no home beside the work: `CornerStatus` or
|
|
57
|
+
`EdgeActivityIndicator`.
|
|
58
|
+
- A reading on a scale that is not progress (a rating, a level): a native
|
|
59
|
+
`<meter>`.
|
|
60
|
+
|
|
61
|
+
Forced colors draw the fills in `Highlight`. Use these instead of
|
|
62
|
+
`wa-progress-bar` and `wa-progress-ring`, which are Discouraged.
|