@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Moving an application off Web Awesome
|
|
2
|
+
|
|
3
|
+
Kerf UI no longer needs Web Awesome. Every Kerf component renders native
|
|
4
|
+
elements and reads only `--kui-*` tokens, so an application built only from
|
|
5
|
+
Kerf components installs nothing else. Web Awesome remains an optional
|
|
6
|
+
[integration](./component-selection.md#web-awesome-integration) for an
|
|
7
|
+
application that wants one of its specialized elements.
|
|
8
|
+
|
|
9
|
+
This guide moves an existing application from the Web Awesome elements Kerf
|
|
10
|
+
now replaces to the Kerf components, then, if nothing else needs it, removes
|
|
11
|
+
Web Awesome entirely.
|
|
12
|
+
|
|
13
|
+
## 1. Replace each element
|
|
14
|
+
|
|
15
|
+
Work one element type at a time. Each Kerf component takes typed props, emits
|
|
16
|
+
standard DOM events, and keeps its state in native form controls, so a
|
|
17
|
+
delegated `input` / `change` / `click` handler usually keeps working once the
|
|
18
|
+
selector changes.
|
|
19
|
+
|
|
20
|
+
For a positive action such as Price Check, migrate `<wa-button variant="success">` to `<Button tone="success">`. The semantic success palette also applies to `secondary` and `plain` emphasis; use the component prop rather than an application color override.
|
|
21
|
+
|
|
22
|
+
| Web Awesome markup | Kerf replacement | Notes |
|
|
23
|
+
| ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
24
|
+
| `<wa-button variant="brand">Save</wa-button>` | `<Button tone="brand" action="save">Save</Button>` (`@kerfjs/ui/button`) | `tone` replaces `variant`; `emphasis` replaces `appearance`. Use `href` for a link button, `icon` with `ariaLabel` and no label for an icon-only one, and `pressed` for a toggle. |
|
|
25
|
+
| `<wa-input label="Name" hint="…" with-clear>` | `<TextField label="Name" hint="…" clearable />` (`@kerfjs/ui/text-field`) | Call `wireTextFields(root)` from `@kerfjs/ui/wire-text-fields` once for the clear button and a live `showCount`. Pass `error` for an invalid field. |
|
|
26
|
+
| `<wa-textarea rows="4" resize="auto">` | `<TextField multiline rows={4} maxRows={10} />` | `maxRows` grows the field with its content up to that height. |
|
|
27
|
+
| `<wa-checkbox>Email me</wa-checkbox>` | `<Checkbox label="Email me" action="toggle-email" />` (`@kerfjs/ui/checkbox`) | For a mixed parent, pass `indeterminate` and call `wireCheckboxes(root)` from `@kerfjs/ui/wire-checkboxes` once. |
|
|
28
|
+
| `<wa-checkbox-group label="Notifications">` | `<CheckboxGroup label="Notifications" name="channels" value={channels.value} choices={[…]} />` (`@kerfjs/ui/checkbox-group`), or `ChoiceChips` with `multiple="toggle"` | |
|
|
29
|
+
| `<wa-radio-group label="Density"><wa-radio value="compact">…` | `<RadioGroup label="Density" name="density" value={density.value} choices={[{ value: 'compact', label: 'Compact' }]} />` | `@kerfjs/ui/radio-group`. Use `orientation="horizontal"` for a row. Use `SegmentedControl` for a view switch and `ChoiceChips` for wrapping pills. |
|
|
30
|
+
| `<wa-switch>Live updates</wa-switch>` | `<Switch label="Live updates" checked={live.value} action="toggle-live" />` (`@kerfjs/ui/switch`) | Only for a setting that applies immediately; use `Checkbox` for a submitted option. |
|
|
31
|
+
| `<wa-select>` with `<wa-option>` children | `<Select label="Status" name="status" value={status.value} choices={[…]} />` (`@kerfjs/ui/select`) | Import `@kerfjs/ui/select/register` once. It emits standard `input` and `change` events. |
|
|
32
|
+
| `<wa-dropdown>` with `<wa-dropdown-item>` commands | `<PopupMenu label="More Actions" icon={…} items={[{ label: 'Archive', action: 'archive' }]} />` (`@kerfjs/ui/popup-menu`) | Import `@kerfjs/ui/popup-menu/register` once. A dropdown that picks a value becomes a `Select`. |
|
|
33
|
+
| `<wa-dialog label="Edit">` and toggling `open` | `<DialogSurface id="edit" label="Edit" footer={…}>…</DialogSurface>` with `openDialog(dialog)` / `closeDialog(dialog)` | From `@kerfjs/ui/surface-scaffold`. The surface is a native `<dialog>`; listen for its native `close` event instead of `wa-after-hide`. Never toggle the `open` attribute. |
|
|
34
|
+
| `<wa-drawer>` | `<DialogSurface presentation="side-sheet" …>` (or `"bottom-sheet"`), or `CollapsiblePanel` for a collapsible rail | |
|
|
35
|
+
| `<wa-tab-group>`, `<wa-tab>`, `<wa-tab-panel>` | `TabBar` with `wireTabBars` (`@kerfjs/ui/tab-bar`), or `SegmentedControl` for compact local views | The application owns its panels. |
|
|
36
|
+
| `<wa-tag with-remove>` | `<Chip removeAction="remove-tag">Design</Chip>` (`@kerfjs/ui/chip`) | |
|
|
37
|
+
| `<wa-badge>`, `<wa-spinner>`, `<wa-skeleton>` | `Badge`, `LoadingSpinner`, `Skeleton` | |
|
|
38
|
+
| `<wa-icon name="…">` | `<LucideIcon icon={Star} name="star" />` (`@kerfjs/ui/lucide-icon`) | |
|
|
39
|
+
| `<wa-split-panel>` | `ResizableRegion` with `wireResizableRegions` | |
|
|
40
|
+
| `<wa-card>` | `<ContentItem appearance="surface" frame="framed">` (`@kerfjs/ui/content-item`), or `SunkenPanel` for a lowered region | |
|
|
41
|
+
| `<wa-page>` | `Workbench`, `SplitView`, `NavStack`, or `TabNavigator` | |
|
|
42
|
+
| `<wa-details>`, `<wa-accordion>`, `<wa-accordion-item>` | `<Disclosure title="…">` (`@kerfjs/ui/disclosure`) | Give Disclosures the same `name` for an accordion. The open state is native: set `element.open = false` to close one from code. |
|
|
43
|
+
| `<wa-slider>` | `<Slider id="…" label="…" value={…} />` (`@kerfjs/ui/slider`) | Add `showValue`/`unit` for a readout and `ticks` for stops; call `wireSliders(root)` once. |
|
|
44
|
+
| `<wa-tag-input>` | `<TagField id="…" label="…" tags={…} name="…" />` (`@kerfjs/ui/tag-field`) | Call `wireTagFields(root, { onChange })` once and re-render with the reported tags. |
|
|
45
|
+
| `<wa-color-picker>` | `<ColorField id="…" label="…" value={…} />` (`@kerfjs/ui/color-field`) |
|
|
46
|
+
| `<wa-include src="…">` | `resource()` from `kerfjs/async`, rendering the result as Kerf content | Never inject fetched markup; it bypasses kerf's `SafeHtml` escaping. |
|
|
47
|
+
| `<wa-scroller>` | A `Pane` (scroll edges via `wireScrollDividers`) or `ColumnTrack` for a horizontal track | |
|
|
48
|
+
| `<wa-button-group>` | `ToolbarControlGroup` or `SplitButton` for actions, `SegmentedControl` for a choice | |
|
|
49
|
+
| `<wa-progress-bar value="40">`, `<wa-progress-ring>` | `<ProgressBar label="…" value={0.4} />` (`@kerfjs/ui/progress-bar`) or `<ProgressRing label="…" value={0.4} />` (`@kerfjs/ui/progress-ring`) | Omit `value` for indeterminate progress; `valueText` replaces the spoken percentage. |
|
|
50
|
+
| `<wa-popover>`, `<wa-popup>` | `openAnchoredSurface(anchor, render, { label })` (`@kerfjs/ui/anchored-surface`); `positionAnchored()` or `autoReposition()` from `kerfjs/overlay` to place another element | `openAnchoredSurfaceAt` anchors to the pointer. |
|
|
51
|
+
| `<wa-tooltip>` | `tooltip()` from `kerfjs/overlay` with `@kerfjs/ui/overlay-tooltip.css` imported | Icon-only toolbar and popup controls already get Kerf help tags. Pass `exitClass: 'kui-tooltip-exit'` with `exitDuration: 100`. |
|
|
52
|
+
| `<wa-callout>` | `<StateBanner tone="warning" …>` (`@kerfjs/ui/state-banner`) | |
|
|
53
|
+
| `<wa-toast>`, `<wa-toast-item>` | `toast()` from `kerfjs/overlay` with `@kerfjs/ui/overlay-toast.css` imported | Pass `variant` for a tone, a `StateBanner` as the content for a title and detail, and `exitClass: 'kui-toast-exit'` with `exitDuration: 200`. A persistent status stays a `StateBanner` in place. |
|
|
54
|
+
|
|
55
|
+
Event and selector changes to look for:
|
|
56
|
+
|
|
57
|
+
- Replace listeners for Web Awesome events (`wa-change`, `wa-input`,
|
|
58
|
+
`wa-show`, `wa-after-hide`) with the standard events the native controls
|
|
59
|
+
emit (`change`, `input`, `toggle`, `close`).
|
|
60
|
+
- Replace selectors that name a `wa-*` tag with the component's `data-action`
|
|
61
|
+
or a stable application attribute passed through `rootAttributes`.
|
|
62
|
+
- Delete application CSS that styled `wa-*` parts with `::part()`; configure the
|
|
63
|
+
Kerf component through its props instead.
|
|
64
|
+
|
|
65
|
+
`npx kerf-ui-doctor` and the `eslint-plugin-kerfjs` `recommended-ui` rules flag
|
|
66
|
+
remaining `Discouraged` elements.
|
|
67
|
+
|
|
68
|
+
## 2. Remove Web Awesome
|
|
69
|
+
|
|
70
|
+
Once no `wa-*` element remains in the application:
|
|
71
|
+
|
|
72
|
+
1. Delete every `@awesome.me/webawesome/dist/components/…` registration import.
|
|
73
|
+
2. Delete the `@kerfjs/ui/webawesome.css` import and any
|
|
74
|
+
`import type {} from "@kerfjs/ui/webawesome"` line.
|
|
75
|
+
3. Remove `@awesome.me/webawesome` from `package.json`.
|
|
76
|
+
4. Keep `@kerfjs/ui/foundation.css` (or your theme entry). Its tokens fall back
|
|
77
|
+
to the same values the Web Awesome theme gave them, so the application
|
|
78
|
+
renders identically.
|
|
79
|
+
|
|
80
|
+
If the application keeps a few specialized elements (Tree, Carousel, Rating,
|
|
81
|
+
and so on), keep steps 1–3 only for those elements; the integration's theme
|
|
82
|
+
bridge keeps them visually consistent with Kerf.
|
package/docs/webawesome-theme.md
CHANGED
|
@@ -1,13 +1,37 @@
|
|
|
1
1
|
# Web Awesome theme contract
|
|
2
2
|
|
|
3
|
-
`@kerfjs/ui/webawesome.css` is the optional bridge between Web Awesome 3
|
|
3
|
+
`@kerfjs/ui/webawesome.css` is the optional bridge between Web Awesome 3's
|
|
4
4
|
free components and the Kerf/Hot Sheet 2 design system.
|
|
5
5
|
|
|
6
|
+
**Optional by design.** No Kerf component needs Web Awesome or this bridge.
|
|
7
|
+
`@awesome.me/webawesome` is an optional peer, and `@kerfjs/ui/webawesome.css`
|
|
8
|
+
(with the type-only `@kerfjs/ui/webawesome`) is the only entry that touches
|
|
9
|
+
it. `foundation.css` has no `wa-*` selectors; its tokens may read a Web
|
|
10
|
+
Awesome theme variable (`--kui-font-m: var(--wa-font-size-m, 16px)`), so an
|
|
11
|
+
app's Web Awesome theme also restyles Kerf, but every such read falls back to
|
|
12
|
+
the value this theme gives it. A Kerf-only application therefore renders
|
|
13
|
+
exactly like the catalog. Kerf component stylesheets read only `--kui-*`
|
|
14
|
+
tokens; the few rules that place a raw `wa-*` child inside a Kerf container
|
|
15
|
+
match nothing when Web Awesome is absent. The consumer-bundle tests and the
|
|
16
|
+
`webawesome-optional` browser spec enforce all of this.
|
|
17
|
+
|
|
18
|
+
**Supported versions.** `@kerfjs/ui` supports every Web Awesome 3.x release
|
|
19
|
+
from 3.14 (its optional peer range is `^3.14.0`). No Kerf component patches
|
|
20
|
+
Web Awesome's internals any more: `PopupMenu`, `Select`, and `DialogSurface`
|
|
21
|
+
draw their own native controls, so an upgrade within 3.x reaches only this
|
|
22
|
+
theme and the Web Awesome elements an application renders itself. The
|
|
23
|
+
package's own tests run against 3.14.0 (the lockfile), and CI's
|
|
24
|
+
`ui-webawesome-latest` job runs the ui unit and Chromium browser suites
|
|
25
|
+
against the newest 3.x (`npm run test:webawesome-latest`). That job reports,
|
|
26
|
+
rather than fails on, elements a newer Web Awesome adds that the catalog has
|
|
27
|
+
not reviewed yet, and a demo bundle over the budget recorded for the lockfile;
|
|
28
|
+
a cataloged element that disappears upstream still fails.
|
|
29
|
+
|
|
6
30
|
```ts
|
|
7
|
-
import type {} from
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
31
|
+
import type {} from "@kerfjs/ui/webawesome";
|
|
32
|
+
import "@kerfjs/ui/webawesome.css";
|
|
33
|
+
import "@awesome.me/webawesome/dist/components/button/button.js";
|
|
34
|
+
import "@awesome.me/webawesome/dist/components/input/input.js";
|
|
11
35
|
```
|
|
12
36
|
|
|
13
37
|
The type-only package import augments `kerfjs/jsx-runtime` with the 70
|
|
@@ -54,6 +78,218 @@ pointer targets. Override `--kui-wa-carousel-icon-size`,
|
|
|
54
78
|
`--kui-wa-carousel-dot-hit-size` on a carousel or containing scope when a
|
|
55
79
|
product needs different geometry.
|
|
56
80
|
|
|
81
|
+
Code text uses Kerf's named monospace stack, `--kui-font-mono`
|
|
82
|
+
(`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
|
|
83
|
+
monospace`), and the theme points `--wa-font-family-code` at it. Web Awesome's
|
|
84
|
+
own `ui-monospace, monospace` renders the generic face (Courier on macOS) in
|
|
85
|
+
Chromium, which does not recognize `ui-monospace`; because the generic
|
|
86
|
+
`monospace` ends any stack, Kerf's token owns the stack rather than appending
|
|
87
|
+
fallbacks after Web Awesome's. Override `--kui-font-mono` to change code text in
|
|
88
|
+
both Kerf and Web Awesome components.
|
|
89
|
+
|
|
90
|
+
Form fields carry the same content-item inset as the Kerf primitives: a 1px
|
|
91
|
+
border with 8px inside it (`--wa-form-control-border-width`,
|
|
92
|
+
`--wa-form-control-padding-block`, and `--wa-form-control-padding-inline` are set
|
|
93
|
+
to the `--kui-layout-item-border-width` / `--kui-layout-item-padding` values), so
|
|
94
|
+
the value sits 9px in from the field edge. Native buttons and fields, plus Web
|
|
95
|
+
Awesome buttons and fields, use the 12px `--kui-layout-rounded-radius` through
|
|
96
|
+
`--wa-form-control-border-radius`; explicit pill and circular shapes retain
|
|
97
|
+
their own radius. Default-size single-line controls
|
|
98
|
+
share Kerf's 44px control height — the height of a Kerf `Select`, a toolbar
|
|
99
|
+
group, and a list row — so a `wa-input` or `wa-button` sits flush beside a Kerf
|
|
100
|
+
`Select`. The theme sets `--wa-form-control-height` to `2.75em` (44px at the
|
|
101
|
+
16px default) on Button, Color Picker, Input, Known Date, Number Input, Radio
|
|
102
|
+
Group, Select, Tag Input (its box's minimum height), Textarea (its minimum
|
|
103
|
+
height), and Time Input, so `size="large"` scales proportionally while `size="small"` keeps Web Awesome's compact secondary
|
|
104
|
+
height. The token is scoped to those controls rather than the root because Web
|
|
105
|
+
Awesome also derives tag, copy-button, and toast geometry from it. Buttons
|
|
106
|
+
inside a `ToolbarControlGroup` keep the group's 40px (32px compact) control
|
|
107
|
+
height. Each field's top label is inset by that same border +
|
|
108
|
+
padding (9px) so it lines up with the value inside the field, and is styled
|
|
109
|
+
exactly like a `ListHeader` label — uppercase, `--kui-font-xs`, weight 650, quiet
|
|
110
|
+
foreground. This applies to every free field that exposes a top label
|
|
111
|
+
(`::part(form-control-label)` plus the Slider's `::part(label)`). OTP Input
|
|
112
|
+
exposes `label` instead of `form-control-label`; the theme gives it the same
|
|
113
|
+
uppercase 12px/650 treatment. Inline control labels (Checkbox, Switch) keep
|
|
114
|
+
their natural sentence case.
|
|
115
|
+
|
|
116
|
+
On coarse touch devices, the editable part of small and extra-small Web Awesome
|
|
117
|
+
Input, Number Input, Tag Input, Time Input, Textarea, and Select has a 16px
|
|
118
|
+
minimum text size. Small field chrome keeps its compact height and desktop
|
|
119
|
+
typography stays small. This prevents Safari from magnifying the page just to
|
|
120
|
+
focus text; it does not constrain a user's own pinch zoom. App-owned native fields need the same
|
|
121
|
+
editable-text audit.
|
|
122
|
+
|
|
123
|
+
Known Date's field captions and bordered text-like field hints use the same 9px
|
|
124
|
+
inline inset, keeping secondary text aligned with the value rather than the
|
|
125
|
+
field's outer border. This covers Input, Known Date, Number Input, OTP Input,
|
|
126
|
+
Select, Tag Input, Textarea, and Time Input hints.
|
|
127
|
+
OTP Input's label and hint both use the 9px field-text inset. Its code cells
|
|
128
|
+
render whole in a shrink-to-fit host (a start-aligned grid or flex item):
|
|
129
|
+
upstream caps the segments' focus-ring-padded box at the host's width, which
|
|
130
|
+
there is the cells' width minus that padding and so clipped the last cell's
|
|
131
|
+
inline-end edge, and the theme caps it at the host's width plus the padding its
|
|
132
|
+
negative margins reserve. A host narrower than the code still scrolls its
|
|
133
|
+
segments; the `contained` appearance keeps upstream's cap.
|
|
134
|
+
|
|
135
|
+
Checkbox Group, Radio Group, and Color Picker follow Kerf's `Checkbox`,
|
|
136
|
+
`RadioGroup`, and `ColorField`: the control region stays flush, so each box,
|
|
137
|
+
circle, or swatch trigger sits on the host's inline-start edge, while the label
|
|
138
|
+
and hint use the same 9px text column as field labels. Stacked checkboxes and
|
|
139
|
+
radios therefore share one control column with Kerf's own toggle controls;
|
|
140
|
+
place the group where you would place a Kerf `Checkbox` or `RadioGroup` rather
|
|
141
|
+
than adding margin to its parts. Stacked
|
|
142
|
+
default-appearance Radios sit 8px apart (`0.25em` block margins instead of Web
|
|
143
|
+
Awesome's `0.375em`, the first and last radio still flush), so a Radio Group
|
|
144
|
+
keeps the same 28px pitch as a Kerf `RadioGroup` and a Checkbox Group's 8px
|
|
145
|
+
gap; horizontal and button radios keep Web Awesome's spacing.
|
|
146
|
+
|
|
147
|
+
Bordered fields (Input, Known Date, Number Input, OTP Input, Select, Tag
|
|
148
|
+
Input, Textarea, and Time Input) and Switch likewise draw their border or
|
|
149
|
+
track on the host's inline-start edge, exactly where Kerf's `TextField`, `Select`, and `Switch`
|
|
150
|
+
draw theirs, with the label and hint on the same 9px text column. Place a Web
|
|
151
|
+
Awesome field where you would place the Kerf field it stands in for, so a mixed
|
|
152
|
+
form shares one border column and one text column; the UX catalog gives these
|
|
153
|
+
specimens the same `inline-control` alignment as the Kerf field demos. Tag
|
|
154
|
+
Input is Discouraged in favor of Kerf's `TagField`, but an application that
|
|
155
|
+
still renders it gets the same label, hint, height, and border placement as the
|
|
156
|
+
other bordered fields.
|
|
157
|
+
|
|
158
|
+
Slider's complete interactive region receives the
|
|
159
|
+
shared 8px logical inline outer inset through `::part(slider)`, keeping its
|
|
160
|
+
track, markers, references, and hint together without moving the label. Placed
|
|
161
|
+
where a Kerf `Slider` goes, its label and track land on the Kerf Slider's text
|
|
162
|
+
column.
|
|
163
|
+
|
|
164
|
+
Known Date and Slider size to their container rather than to their content, so
|
|
165
|
+
give them a width (a form column, or the container's full width) instead of a
|
|
166
|
+
shrink-to-fit parent, where Known Date collapses to nothing and Slider to a
|
|
167
|
+
stub. The UX catalog gives Known Date a compact field column and Slider the
|
|
168
|
+
Kerf Slider demo's medium width.
|
|
169
|
+
|
|
170
|
+
Non-field chrome follows explicit, overridable control, surface, and container
|
|
171
|
+
tiers:
|
|
172
|
+
|
|
173
|
+
- `--kui-wa-control-inset` defaults to the 8px content-item padding. It applies
|
|
174
|
+
to tabs, tree-item trailing content, tags, and dropdown items. Tree selection
|
|
175
|
+
also uses Kerf's 8px inline outer margin, so its background reads as an inset
|
|
176
|
+
list item instead of an edge-to-edge stripe. Buttons already consume the same
|
|
177
|
+
`--wa-form-control-padding-inline` 8px value at every size, so no extra part
|
|
178
|
+
override is needed.
|
|
179
|
+
- `--kui-wa-surface-margin` and `--kui-wa-surface-inset` default to 8px.
|
|
180
|
+
Accordion, Card, Details, Callout, and Include use the margin around their
|
|
181
|
+
complete surface and the inset within it. Accordion applies the outer margin
|
|
182
|
+
once to the group rather than separating connected items; Card's header,
|
|
183
|
+
body, and footer all receive the full inset.
|
|
184
|
+
- Plain Details use the 8px `--kui-wa-surface-inset` on the trigger and keep the
|
|
185
|
+
body flush; plain Accordion items use that 8px inset on both trigger and body.
|
|
186
|
+
Outlined and sunken Details use the 16px `--kui-wa-container-inset` on the
|
|
187
|
+
trigger and the 8px surface inset on the body, while framed Accordion items
|
|
188
|
+
use the 16px container inset for both regions.
|
|
189
|
+
- `appearance="sunken"` is a Kerf theme extension for Accordion, Card, and
|
|
190
|
+
Details. It removes raised chrome, paints the shared sunken surface
|
|
191
|
+
(`--kui-sunken-surface`: the lowered semantic color with the same fine grain
|
|
192
|
+
texture as every Kerf sunken surface), and uses the shared rounded-rectangle
|
|
193
|
+
radius. The texture is generated by the first Kerf sunken component that
|
|
194
|
+
renders; a page with only Web Awesome sunken surfaces calls
|
|
195
|
+
`ensureSunkenTexture()` once. Override
|
|
196
|
+
`--kui-wa-sunken-background` or `--kui-wa-sunken-radius` on an instance or
|
|
197
|
+
containing scope when that surface needs different tokens.
|
|
198
|
+
- `--kui-wa-container-inset` defaults to the 16px homogeneous-group step. Tab
|
|
199
|
+
Panel retains this roomier tier for unframed panel content. Dialog body uses
|
|
200
|
+
the 8px surface inset, while its footer uses the 16px container inset so
|
|
201
|
+
content stays compact and the action group has a clearer boundary. These two
|
|
202
|
+
parts do not inherit the dialog's shared `--spacing` value.
|
|
203
|
+
|
|
204
|
+
## Contextual transparency
|
|
205
|
+
|
|
206
|
+
The lowered surface, neutral quiet/normal fills, and neutral borders are
|
|
207
|
+
translucent shared theme colors. The foundation mirrors them when Web Awesome
|
|
208
|
+
is absent. Nested SunkenPanel, Pane, and Web Awesome sunken surfaces therefore
|
|
209
|
+
composite on their actual backdrop without application-owned depth wrappers
|
|
210
|
+
or component-token overrides.
|
|
211
|
+
|
|
212
|
+
The lowered tint is `--wa-color-surface-lowered` in the Web Awesome theme and
|
|
213
|
+
`--kui-color-surface-lowered` in the Kerf foundation fallback;
|
|
214
|
+
`--wa-color-neutral-fill-quiet` and `--kui-color-neutral-fill-quiet` share it.
|
|
215
|
+
`SunkenPanel`, sunken Pane, Workbench, and TabNavigator surfaces read it by
|
|
216
|
+
default through the optional `--kui-sunken-panel-background` override. Web
|
|
217
|
+
Awesome Accordion, Card, and Details with `appearance="sunken"` read it
|
|
218
|
+
through the optional `--kui-wa-sunken-background` override. These names do
|
|
219
|
+
not denote separate opaque colors or distinct depth levels. A deliberate
|
|
220
|
+
nested surface adds another translucent layer and can make hierarchy clearer;
|
|
221
|
+
avoid painting a second background on a wrapper that represents the same
|
|
222
|
+
surface. Inspect the composed result over the real backdrop in light and dark
|
|
223
|
+
modes.
|
|
224
|
+
|
|
225
|
+
The lowered light tint is `rgb(0 0 98.076923 / 0.05098)` (approximately
|
|
226
|
+
`#f2f2f7` over white); dark is `rgb(228.157895 228.157895 255 / 0.07451)`
|
|
227
|
+
(approximately `#111113` over black). Repeated layers darken in light mode
|
|
228
|
+
and brighten in dark mode. The same value is used at every depth; there is no
|
|
229
|
+
arbitrary third-level cap. Neutral normal fills and borders use alpha values
|
|
230
|
+
chosen to retain their former single-layer appearance over the default surface.
|
|
231
|
+
Their painted result adapts to other backgrounds. Neutral on-quiet text uses
|
|
232
|
+
`#626267` / `#c2c2c6` to retain AA contrast across the tested layered catalog
|
|
233
|
+
surfaces.
|
|
234
|
+
|
|
235
|
+
Default/raised surfaces remain opaque canvas and overlay anchors. The optional
|
|
236
|
+
document baseline paints an opaque default surface on `html` and one lowered
|
|
237
|
+
layer on `body`. Normal/quiet foregrounds, focus indicators, and loud neutral
|
|
238
|
+
fills remain opaque for legible controls. Colored semantic fill/border tokens
|
|
239
|
+
also remain opaque pending their separate contrast evaluation. Transparency
|
|
240
|
+
is not a guarantee of contrast on an arbitrary photograph or infinitely nested
|
|
241
|
+
surface; applications must verify their actual composition and keep text and
|
|
242
|
+
interactive controls on suitable surfaces.
|
|
243
|
+
|
|
244
|
+
The catalog demonstrates three directly nested panels, a sunken Pane containing
|
|
245
|
+
a panel, and a Web Awesome card containing details, using public components and
|
|
246
|
+
no demo stylesheet. Browser tests cover repeated layers, actual compositing,
|
|
247
|
+
text contrast, light/dark switching, narrow/wide layouts, and forced colors.
|
|
248
|
+
|
|
249
|
+
The built-in close control of a `wa-dialog` or `wa-drawer` matches a borderless
|
|
250
|
+
single `ToolbarControlGroup` button, the close a toolbar-composed dialog uses
|
|
251
|
+
(see the list-detail dialog recipe): a 40px circle with no border and the
|
|
252
|
+
neutral hover fill, in place of Web Awesome's 35px rounded square. The theme
|
|
253
|
+
sizes it through the directly exported `close-button__base` part, so the
|
|
254
|
+
default header and a toolbar-composed header present one close affordance.
|
|
255
|
+
|
|
256
|
+
Add `class="hide-actions"` to a `wa-dialog` when the dialog supplies its own
|
|
257
|
+
dismissal affordance and should omit Web Awesome's header action region. The
|
|
258
|
+
theme sets `display: none` on the directly exported `header-actions` part; it
|
|
259
|
+
does not attempt to chain `::part()` through the internal `dialog` and `header`
|
|
260
|
+
parts, which CSS shadow parts do not support.
|
|
261
|
+
|
|
262
|
+
Badge remains intentionally compact at Web Awesome's intrinsic `0.375em` block /
|
|
263
|
+
`0.625em` inline padding (4.5px / 7.5px at its default 12px text size): it is a
|
|
264
|
+
short status or count, not a content item. A badge with `appearance="filled"` or
|
|
265
|
+
`appearance="filled-outlined"` uses its variant's quiet fill with normal text by
|
|
266
|
+
default so every shipped semantic variant meets WCAG AA for that small text;
|
|
267
|
+
filled-outlined keeps its normal variant border. Accent badges keep their loud
|
|
268
|
+
fills and their variant's `on-loud` foreground, which the theme sets to clear AA
|
|
269
|
+
on that fill in both themes: white on the light brand (`#0075db`) and danger
|
|
270
|
+
(`#eb0005`) fills, dark text on the success and warning fills and on the pale
|
|
271
|
+
dark-mode brand and danger fills.
|
|
272
|
+
Override
|
|
273
|
+
`--kui-wa-badge-filled-background` and `--kui-wa-badge-filled-foreground` on a
|
|
274
|
+
badge or containing scope when a product needs a different contrast-safe pair,
|
|
275
|
+
or `--kui-wa-badge-accent-foreground` for a reviewed accent foreground.
|
|
276
|
+
Breadcrumb has no bordered or filled container, and Scroller delegates item chrome
|
|
277
|
+
to its slotted children, so both retain their upstream geometry. Web Awesome
|
|
278
|
+
3.14's free catalog has
|
|
279
|
+
`wa-dropdown-item`, but no `wa-menu-item`; the theme therefore styles the
|
|
280
|
+
supported dropdown item rather than carrying a dead selector.
|
|
281
|
+
|
|
282
|
+
Override a tier for a product scope after importing the theme:
|
|
283
|
+
|
|
284
|
+
```css
|
|
285
|
+
.roomy-editor {
|
|
286
|
+
--kui-wa-control-inset: 0.75rem;
|
|
287
|
+
--kui-wa-surface-margin: 0.75rem;
|
|
288
|
+
--kui-wa-surface-inset: 0.75rem;
|
|
289
|
+
--kui-wa-container-inset: 1.5rem;
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
57
293
|
Accordion, Details, Breadcrumb, and Kerf Select share
|
|
58
294
|
`--kui-disclosure-icon-scale` (default `.5`) so disclosure and traversal
|
|
59
295
|
chevrons keep the same visual weight. The Accordion and Details components
|
|
@@ -62,8 +298,12 @@ their open state uses the independent `rotate` property.
|
|
|
62
298
|
|
|
63
299
|
That scale applies to each Web Awesome component's intrinsic glyph and is
|
|
64
300
|
independent of Kerf `DisclosureArrow`, whose default box is 18px relative to
|
|
65
|
-
the root font size and whose consumer override is
|
|
66
|
-
|
|
301
|
+
the root font size and whose consumer override is its typed `size` prop.
|
|
302
|
+
|
|
303
|
+
A loading step that is also the active `wa-stepper` step draws its spinner in
|
|
304
|
+
the marker's on-accent foreground. Upstream colors that spinner with the same
|
|
305
|
+
accent that fills an active marker, which would leave a blank disc; the theme
|
|
306
|
+
corrects it through the public `spinner` part.
|
|
67
307
|
|
|
68
308
|
Tooltip and Popover use arrowless floating surfaces by default, matching Hot
|
|
69
309
|
Sheet 2. The theme sets Web Awesome's public `--wa-tooltip-arrow-size` token to
|
|
@@ -73,12 +313,12 @@ subtree, or for one instance after the theme import:
|
|
|
73
313
|
|
|
74
314
|
```css
|
|
75
315
|
:root {
|
|
76
|
-
--wa-tooltip-arrow-size: .375rem;
|
|
77
|
-
--kui-wa-popover-arrow-size: .375rem;
|
|
316
|
+
--wa-tooltip-arrow-size: 0.375rem;
|
|
317
|
+
--kui-wa-popover-arrow-size: 0.375rem;
|
|
78
318
|
}
|
|
79
319
|
|
|
80
320
|
.pointed-popover {
|
|
81
|
-
--arrow-size: .5rem;
|
|
321
|
+
--arrow-size: 0.5rem;
|
|
82
322
|
}
|
|
83
323
|
```
|
|
84
324
|
|
|
@@ -88,10 +328,9 @@ component should declare the no-arrow choice independent of theme context.
|
|
|
88
328
|
The UX catalog includes a focused, addressable specimen for every component in
|
|
89
329
|
this list. Because these are themed ecosystem components rather than
|
|
90
330
|
first-class `@kerfjs/ui` exports, the sidebar keeps them under a collapsible
|
|
91
|
-
`Web Awesome` heading with category subgroups.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
state at once.
|
|
331
|
+
`Web Awesome` heading with category subgroups. There is no aggregate theme
|
|
332
|
+
route: the focused modal, drawer, toast, media, and helper routes make each
|
|
333
|
+
component's behavior inspectable without opening every state at once.
|
|
95
334
|
|
|
96
335
|
## Badge and tag guidance
|
|
97
336
|
|
|
@@ -100,8 +339,9 @@ generic Kerf wrappers around them. Their variants and appearances already read
|
|
|
100
339
|
the semantic palette above, and importing their component modules remains
|
|
101
340
|
independent and tree-shakeable.
|
|
102
341
|
|
|
103
|
-
- Use `wa-badge pill` for compact status, count, or activity
|
|
104
|
-
2's pill-shaped ticket status treatment
|
|
342
|
+
- Use `wa-badge pill appearance="filled"` for compact status, count, or activity
|
|
343
|
+
labels. Hot Sheet 2's quiet, contrast-safe pill-shaped ticket status treatment
|
|
344
|
+
is the reference shape.
|
|
105
345
|
- Use the default, non-pill `wa-tag` for categories, filters, and removable
|
|
106
346
|
selections. Its medium-radius rounded rectangle keeps tags distinct from
|
|
107
347
|
status badges. Handle the bubbling `wa-remove` event in the feature that owns
|
|
@@ -139,54 +379,73 @@ static content and labels that constraint next to the rendered output.
|
|
|
139
379
|
|
|
140
380
|
## Component selection guidance
|
|
141
381
|
|
|
142
|
-
The catalog lists every free Web Awesome component so
|
|
143
|
-
listing does not make
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
and `SegmentedControl` for compact local views, instead of Web Awesome Tab,
|
|
162
|
-
Tab Group, and Tab Panel.
|
|
382
|
+
The catalog lists every free Web Awesome component so an integration
|
|
383
|
+
application can inspect support; listing does not make any of them the
|
|
384
|
+
preferred Kerf pattern. Kerf components and native elements come first. The
|
|
385
|
+
[integration table](./component-selection.md#web-awesome-integration) names the
|
|
386
|
+
Kerf choice for every overlapping element, and the
|
|
387
|
+
[migration guide](./webawesome-migration.md) shows how to move an existing
|
|
388
|
+
application off them.
|
|
389
|
+
|
|
390
|
+
- Elements a Kerf component replaces are tagged `Discouraged` in the catalog:
|
|
391
|
+
Button, Dropdown, Dropdown Item, Button Group, Input, Textarea, Tag,
|
|
392
|
+
Checkbox, Checkbox Group, Radio, Radio Group, Switch, Select, Option,
|
|
393
|
+
Dialog, Drawer, Card, Page, Callout, Popover, Popup, Tab, Tab Group, Tab
|
|
394
|
+
Panel, Badge, Spinner, Skeleton, Toast, Toast Item, Tooltip, Details, Accordion,
|
|
395
|
+
Accordion Item, Progress Bar, Progress Ring, Slider, Tag Input, Color Picker,
|
|
396
|
+
Split Panel, Icon, Scroller, Include, and Zoomable Frame.
|
|
397
|
+
Never render them in application markup. Popover and Popup give way to
|
|
398
|
+
`AnchoredSurface` and `kerfjs/overlay`'s `positionAnchored()`; Tooltip,
|
|
399
|
+
Toast, and Toast Item give way to `kerfjs/overlay`'s `tooltip()` and
|
|
400
|
+
`toast()` with their Kerf stylesheets.
|
|
163
401
|
- Use Web Awesome Tree, Tree Item, Animated Image, and Comparison only for a
|
|
164
402
|
specific product requirement that needs their specialized behavior.
|
|
165
|
-
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
application panes. It provides the persistent 1px separator, hover/focus
|
|
169
|
-
grip, accessible keyboard and pointer resizing, controlled size, collapse
|
|
170
|
-
support, and application-owned persistence. Use Split Panel only when its
|
|
171
|
-
distinct Web Awesome API is itself required.
|
|
403
|
+
- Use the remaining supported elements (Carousel, Rating, and
|
|
404
|
+
the rest of the coverage list) when their native semantic contract matches
|
|
405
|
+
the product need and the application has adopted the integration.
|
|
172
406
|
|
|
173
407
|
## Customization
|
|
174
408
|
|
|
175
|
-
|
|
176
|
-
|
|
409
|
+
To change the brand, set Kerf's opt-in `--kui-color-brand` on `:root`: the
|
|
410
|
+
theme derives `--wa-color-brand-fill-loud`, `--wa-color-brand-on-quiet`, and
|
|
411
|
+
`--wa-color-focus` from it (with the matching Kerf tokens) at AA-safe
|
|
412
|
+
lightness, so brand text and the focus ring follow the new hue. See
|
|
413
|
+
[Brand color](./component-selection.md#brand-color).
|
|
414
|
+
|
|
415
|
+
For anything else, load application overrides after the package theme, or
|
|
416
|
+
scope them to the smallest subtree that needs a different identity:
|
|
177
417
|
|
|
178
418
|
```css
|
|
179
419
|
:root {
|
|
180
420
|
--wa-color-brand-fill-loud: #7540a8;
|
|
421
|
+
--wa-color-brand-on-loud: #ffffff;
|
|
181
422
|
--wa-color-focus: #7540a8;
|
|
182
|
-
--wa-form-control-border-radius: .5rem;
|
|
423
|
+
--wa-form-control-border-radius: 0.5rem;
|
|
183
424
|
}
|
|
184
425
|
|
|
185
426
|
.billing-workspace {
|
|
186
427
|
--wa-color-success-fill-loud: #10a86b;
|
|
428
|
+
--wa-color-success-on-loud: #1d1d1f;
|
|
187
429
|
}
|
|
188
430
|
```
|
|
189
431
|
|
|
432
|
+
Kerf components read only `--kui-*` tokens. `SearchField` with
|
|
433
|
+
`presentation="form-field"` follows `--kui-layout-rounded-radius` for its
|
|
434
|
+
corners, as `TextField`, `Select`, and `Button` do, so the fields in a form
|
|
435
|
+
change together.
|
|
436
|
+
|
|
437
|
+
The shipped theme pairs every `--wa-color-{variant}-fill-loud` with an
|
|
438
|
+
`--wa-color-{variant}-on-loud` that clears WCAG AA (4.5:1) in both color
|
|
439
|
+
schemes. When you override a loud fill, set its `on-loud` alongside it, in the
|
|
440
|
+
same selector and at-rule scope, to a foreground that clears 4.5:1 on the new
|
|
441
|
+
fill (white text on a bright fill usually does not: `#10a86b` above reaches
|
|
442
|
+
only 3.1:1 with white, 5.5:1 with `#1d1d1f`). `kerf-ui-analyze` and
|
|
443
|
+
`kerf-ui-doctor` report a loud fill override without a governing `on-loud`, or
|
|
444
|
+
a literal pair that measures below 4.5:1, as review finding
|
|
445
|
+
[`KUI-L018`](./ui-analyzer.md#loud-fill--on-loud-pairing-kui-l018); it cannot
|
|
446
|
+
measure a `var()` or `color-mix()` value, so choosing a readable one is still
|
|
447
|
+
yours.
|
|
448
|
+
|
|
190
449
|
Use `.wa-light`, `.wa-dark`, and `.wa-invert` for explicit appearance scopes.
|
|
191
450
|
Component-specific custom properties and documented `::part()` selectors from
|
|
192
451
|
Web Awesome remain available when a semantic theme token is not sufficiently
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Workbench dialog
|
|
2
|
+
|
|
3
|
+
`@kerfjs/ui/workbench-dialog` is the modal form of a `Workbench`: a work area
|
|
4
|
+
with side rails (layers, an inspector) inside a dialog. It is one of three
|
|
5
|
+
dialog types:
|
|
6
|
+
|
|
7
|
+
| Type | Use it for |
|
|
8
|
+
| ------------------------------------------------------------------- | -------------------------------------------------------- |
|
|
9
|
+
| `DialogSurface` ([surface-scaffold.md](surface-scaffold.md)) | One pane: a title, a body, and footer buttons. |
|
|
10
|
+
| `ListDetailDialog` ([list-detail-dialog.md](list-detail-dialog.md)) | Pick a record from a list and show its detail beside it. |
|
|
11
|
+
| `WorkbenchDialog` (this page) | An editing task with side panels. |
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { deviceClass } from "@kerfjs/ui/device-class";
|
|
15
|
+
import { openDialog, WorkbenchDialog } from "@kerfjs/ui/workbench-dialog";
|
|
16
|
+
import { wireWorkbench } from "@kerfjs/ui/wire-workbench";
|
|
17
|
+
|
|
18
|
+
const device = deviceClass();
|
|
19
|
+
const layersHidden = signal(false);
|
|
20
|
+
|
|
21
|
+
<WorkbenchDialog
|
|
22
|
+
id="edit-slide"
|
|
23
|
+
label="Edit Slide"
|
|
24
|
+
title="Edit Slide"
|
|
25
|
+
compact={device.value.compact}
|
|
26
|
+
main={<SlideCanvas />}
|
|
27
|
+
mainBottomToolbar={{ label: "Slide Actions", trailing: <SaveButtons /> }}
|
|
28
|
+
leftRail={{
|
|
29
|
+
label: "Layers",
|
|
30
|
+
collapsed: layersHidden.value,
|
|
31
|
+
toolbar: {
|
|
32
|
+
label: "Layers",
|
|
33
|
+
title: <ToolbarText text="Layers" />,
|
|
34
|
+
toggle: { action: "toggle-layers", name: "Layers" },
|
|
35
|
+
},
|
|
36
|
+
content: <LayerList />,
|
|
37
|
+
}}
|
|
38
|
+
/>;
|
|
39
|
+
|
|
40
|
+
wireWorkbench(root, {
|
|
41
|
+
id: "edit-slide-workbench",
|
|
42
|
+
panels: { leftRail: { collapsed: layersHidden } },
|
|
43
|
+
});
|
|
44
|
+
openDialog(document.getElementById("edit-slide"));
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Layout
|
|
48
|
+
|
|
49
|
+
The dialog draws no surface header and no body inset. Its body is a
|
|
50
|
+
`Workbench` (`<id>-workbench`):
|
|
51
|
+
|
|
52
|
+
- **The work area's toolbar** carries the dialog's primary title (an xl
|
|
53
|
+
level-2 heading, id `<id>-title`) with an optional `description` (id
|
|
54
|
+
`<id>-description`, the dialog's accessible description), any
|
|
55
|
+
`leading` groups, the `actions`, and the close control. Close stays the
|
|
56
|
+
outermost trailing control, after a hidden right rail's toggle.
|
|
57
|
+
- **The rails** (`leftRail`, `rightRail`) keep their own toolbars, with
|
|
58
|
+
default-size titles, and run the dialog's full height. A hidden rail's
|
|
59
|
+
toggle relocates into the work area's toolbar.
|
|
60
|
+
- **The bottom** of the work area takes `mainFooter` and a
|
|
61
|
+
`mainBottomToolbar` for the dialog's buttons; `bottomDrawer` adds a drawer
|
|
62
|
+
under the work area.
|
|
63
|
+
|
|
64
|
+
## Compact devices
|
|
65
|
+
|
|
66
|
+
Pass `compact` from `deviceClass().value.compact`. The dialog fills the
|
|
67
|
+
screen, and each rail presents as an overlay over the work area instead of
|
|
68
|
+
narrowing it. Start the rails collapsed on compact devices; their toolbar
|
|
69
|
+
toggles show them. With `wireWorkbench` and each rail's `collapsed` signal,
|
|
70
|
+
an open rail takes focus, keeps Tab inside it, and closes on Escape or a press
|
|
71
|
+
outside it. Escape closes an open rail before the dialog sees it; a second
|
|
72
|
+
Escape closes the dialog.
|
|
73
|
+
|
|
74
|
+
## Props
|
|
75
|
+
|
|
76
|
+
- `id`, `label` (required): identity and the dialog's accessible name.
|
|
77
|
+
- `title` (required), `description`, `leading`, `actions`.
|
|
78
|
+
- `describedBy`: the id of other content, such as summary copy in `main`,
|
|
79
|
+
that describes the dialog in place of `description`.
|
|
80
|
+
- `main` (required), `mainFooter`, `mainBottomToolbar`.
|
|
81
|
+
- `leftRail`, `rightRail`, `bottomDrawer`: `WorkbenchPanel`s.
|
|
82
|
+
- `compact`, `closeLabel` (default `Close`), `lightDismiss`.
|
|
83
|
+
- Roomy sizing: `size` (default `large`), `preferredWidth`, `height` (default
|
|
84
|
+
560px), `maxHeight`, `viewportGutter`, and `mainMinSize`.
|
|
85
|
+
- `rootAttributes`, `className`, `slot`.
|
|
86
|
+
|
|
87
|
+
Open and close it like any dialog surface with `openDialog()` and
|
|
88
|
+
`closeDialog()`, which this module re-exports.
|