@kerfjs/ui 5.0.0-beta.11 → 5.0.0-beta.110
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 +707 -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 +9111 -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 +10437 -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 +94 -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 +117 -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 +6114 -445
- package/ai/skill.md +545 -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 +132 -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 +3 -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 +121 -0
- package/dist/button.js +7 -0
- package/dist/button.js.map +1 -0
- package/dist/catalog-resources.d.ts +50 -0
- package/dist/catalog-resources.js +22 -0
- package/dist/catalog-resources.js.map +1 -0
- package/dist/catalog.d.ts +134 -101
- package/dist/catalog.js +700 -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-5USKCWGL.js +113 -0
- package/dist/chunk-5USKCWGL.js.map +1 -0
- package/dist/chunk-6C6DLP3W.js +31 -0
- package/dist/chunk-6C6DLP3W.js.map +1 -0
- package/dist/chunk-6CDILXF4.js +204 -0
- package/dist/chunk-6CDILXF4.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-CPSGUGAY.js +527 -0
- package/dist/chunk-CPSGUGAY.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-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-HQZG3OFL.js +158 -0
- package/dist/chunk-HQZG3OFL.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-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-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-KPINJHIC.js +122 -0
- package/dist/chunk-KPINJHIC.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-OZ6X76G5.js +547 -0
- package/dist/chunk-OZ6X76G5.js.map +1 -0
- package/dist/chunk-P7EJ4CAD.js +147 -0
- package/dist/chunk-P7EJ4CAD.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-SCDWURBO.js +136 -0
- package/dist/chunk-SCDWURBO.js.map +1 -0
- package/dist/chunk-SOFPUW3O.js +196 -0
- package/dist/chunk-SOFPUW3O.js.map +1 -0
- package/dist/chunk-SQ5DH66U.js +37 -0
- package/dist/chunk-SQ5DH66U.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-WPNIKZMJ.js +507 -0
- package/dist/chunk-WPNIKZMJ.js.map +1 -0
- package/dist/chunk-WSEJ2FDE.js +162 -0
- package/dist/chunk-WSEJ2FDE.js.map +1 -0
- package/dist/chunk-WVS6CUCT.js +48 -0
- package/dist/chunk-WVS6CUCT.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-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 +96 -17
- package/dist/collapsible-panel.js +133 -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 +128 -0
- package/dist/content-item.js +4 -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 +72 -17
- package/dist/index.js +84 -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 +123 -0
- package/dist/list-detail-dialog.js +167 -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-CU_0dKtI.d.ts +194 -0
- package/dist/nav-stack.d.ts +15 -38
- package/dist/nav-stack.js +14 -1
- package/dist/pane.d.ts +258 -0
- package/dist/pane.js +6 -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 +66 -6
- package/dist/split-view.js +14 -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 +241 -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 +241 -0
- package/dist/styles/components/surfaces/content-item/content-item.css +168 -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 +744 -0
- package/dist/styles/components/typography/text/text.css +232 -0
- package/dist/styles/content-item.css +168 -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 +490 -50
- 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 +744 -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 +474 -18
- 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 +280 -0
- package/dist/surface-scaffold.js +8 -0
- package/dist/surface-scaffold.js.map +1 -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 +154 -0
- package/dist/tab-navigator.js +131 -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 +77 -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 +117 -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 +208 -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 +106 -0
- package/dist/workbench-dialog.js +127 -0
- package/dist/workbench-dialog.js.map +1 -0
- package/dist/workbench.d.ts +258 -10
- package/dist/workbench.js +21 -15
- package/dist/workbench.js.map +1 -1
- package/docs/accessibility.md +829 -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 +128 -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 +865 -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 +87 -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 +946 -53
- package/docs/list-detail-dialog.md +100 -0
- package/docs/manual-test-plan.md +29 -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 +147 -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 +487 -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 +940 -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 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/color-picker/wiring/wire-color-pickers.ts"],"names":["slider","number"],"mappings":"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","file":"chunk-XWNXGFX3.js","sourcesContent":["import {\n COLOR_PICKER_CHANNELS,\n COLOR_PICKER_SWATCH_ACTION,\n colorPickerAreaText,\n type ColorPickerMode,\n colorPickerSlider,\n colorPickerStyle,\n} from '../color-picker.js';\nimport {\n colorChannelValues,\n hsvFromChannels,\n} from '../model/color-channels.js';\nimport {\n formatHex,\n type Hsva,\n hsvForValue,\n hsvToRgb,\n} from '../model/color-model.js';\n\n/** Reported to {@link WireColorPickersOptions.onInput} and `onChange`. */\nexport interface ColorPickerChange {\n id: string;\n /** `#rrggbb`, or `#rrggbbaa` below full opacity. */\n value: string;\n mode: ColorPickerMode;\n element: HTMLElement;\n}\n\nexport interface WireColorPickersOptions {\n /** Every live change: a drag, an arrow key, a field edit. */\n onInput?: (change: ColorPickerChange) => void;\n /** A committed change: a drag or key run ending, a field or swatch commit, a mode switch. */\n onChange?: (change: ColorPickerChange) => void;\n}\n\n/** The live color each wired picker shows, keyed by its root element. */\ninterface PickerState {\n hsv: Hsva;\n mode: ColorPickerMode;\n /** The hex last reported or adopted, to tell an app re-render from an echo. */\n value: string;\n /**\n * The exact channel values a slider or field last set in `mode`, while\n * `hsv` is still the color they produced, so a channel the HSV state cannot\n * carry (HSL saturation at black or white) survives the next edit.\n */\n memo?: { mode: ColorPickerMode; hsv: Hsva; values: number[] };\n}\n\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(max, Math.max(min, value));\n\nconst isMode = (value: string | undefined): value is ColorPickerMode =>\n value === 'rgb' || value === 'hsl' || value === 'hsb' || value === 'gray';\n\n/**\n * Make every ColorPicker under `root` interactive. The area takes pointer\n * drags and the arrow keys (Shift for steps of 10%); the model's channel\n * sliders and the opacity slider are native ranges, each changing only its\n * own channel; channel, hex, and opacity fields commit on Enter or blur; the\n * model menu switches the channel sliders and fields; the screen sampler\n * opens the EyeDropper where the browser has it; preset and sample swatches\n * apply their color. Each change updates the picker at once, dispatches a\n * bubbling `kui-color-input` (or `kui-color-change` when committed) event\n * with `{ value, mode }`, and calls `onInput` / `onChange`. When the app\n * re-renders a picker with a different `value`, the picker adopts it.\n * Returns a disposer.\n */\nexport function wireColorPickers(\n root: HTMLElement,\n { onInput, onChange }: WireColorPickersOptions = {},\n): () => void {\n const states = new WeakMap<HTMLElement, PickerState>();\n\n const pickerOf = (element: Element | null) =>\n element?.closest<HTMLElement>('[data-component=\"color-picker\"]') ?? null;\n\n const alphaOn = (picker: HTMLElement) => picker.hasAttribute('data-alpha');\n\n const stateOf = (picker: HTMLElement): PickerState => {\n let state = states.get(picker);\n if (!state) {\n // The render always writes a formatted hex and a model.\n const value = picker.dataset.value!;\n state = {\n hsv: hsvForValue(value)!,\n mode: picker.dataset.mode as ColorPickerMode,\n value,\n };\n states.set(picker, state);\n }\n return state;\n };\n\n /** The exact channel values the picker's model shows. */\n const channelValuesOf = (state: PickerState) =>\n state.memo?.mode === state.mode && state.memo.hsv === state.hsv\n ? state.memo.values\n : colorChannelValues(state.mode, state.hsv);\n\n const hexOf = (picker: HTMLElement, hsv: Hsva) =>\n formatHex(hsvToRgb(alphaOn(picker) ? hsv : { ...hsv, a: 1 }));\n\n /** Repaint the wiring-owned surface from the state. */\n const paint = (picker: HTMLElement, skipField?: Element) => {\n const state = stateOf(picker);\n const { hsv, mode } = state;\n const exact = channelValuesOf(state);\n const surface = picker.querySelector<HTMLElement>(\n '.kui-color-picker__surface',\n )!;\n surface.setAttribute('style', colorPickerStyle(hsv));\n const area = surface.querySelector<HTMLElement>('.kui-color-picker__area');\n area?.setAttribute('aria-valuenow', String(Math.round(hsv.s * 100)));\n area?.setAttribute('aria-valuetext', colorPickerAreaText(hsv));\n for (const input of surface.querySelectorAll<HTMLInputElement>(\n '.kui-color-picker__slider',\n )) {\n const slider = colorPickerSlider(\n mode,\n Number(input.dataset.slider),\n exact,\n );\n input.hidden = slider === undefined;\n if (slider === undefined) continue;\n input.max = String(slider.max);\n if (input !== skipField) input.value = slider.value;\n input.setAttribute('aria-label', slider.label);\n input.setAttribute('aria-valuetext', slider.valueText);\n input.setAttribute('style', slider.style);\n }\n const opacity = `${Math.round(hsv.a * 100)}%`;\n const slider = surface.querySelector<HTMLInputElement>(\n '.kui-color-picker__opacity',\n );\n if (slider && slider !== skipField) {\n slider.value = String(Math.round(hsv.a * 100));\n slider.setAttribute('aria-valuetext', opacity);\n }\n const channels = COLOR_PICKER_CHANNELS[mode];\n const values = exact.map(Math.round);\n surface\n .querySelector('.kui-color-picker__channels')\n ?.setAttribute('data-count', String(channels.length));\n for (const field of surface.querySelectorAll<HTMLInputElement>(\n '.kui-color-picker__channel',\n )) {\n const index = Number(field.dataset.channel);\n const channel = channels[index];\n const label = field.closest('label')!;\n label.hidden = channel === undefined;\n label.querySelector('.kui-color-picker__field-label')!.textContent =\n channel === undefined ? '' : channel.short;\n if (channel) field.setAttribute('aria-label', channel.name);\n if (field !== skipField)\n field.value = channel ? String(values[index]) : '';\n field.dataset.shown = field.value;\n }\n const hex = hexOf(picker, hsv);\n const hexField = surface.querySelector<HTMLInputElement>(\n '.kui-color-picker__hex',\n )!;\n if (hexField !== skipField) hexField.value = hex.slice(1).toUpperCase();\n hexField.dataset.shown = hexField.value;\n const opacityField = surface.querySelector<HTMLInputElement>(\n '.kui-color-picker__opacity-field',\n );\n if (opacityField && opacityField !== skipField)\n opacityField.value = opacity;\n if (opacityField) opacityField.dataset.shown = opacityField.value;\n const hidden = surface.querySelector<HTMLInputElement>(\n 'input[type=\"hidden\"]',\n );\n if (hidden) hidden.value = hex;\n surface.querySelector<HTMLSelectElement>('.kui-color-picker__mode')!.value =\n mode;\n };\n\n const report = (picker: HTMLElement, committed: boolean) => {\n const state = stateOf(picker);\n const value = hexOf(picker, state.hsv);\n state.value = value;\n const change: ColorPickerChange = {\n id: picker.dataset.colorPickerId!,\n value,\n mode: state.mode,\n element: picker,\n };\n picker.dispatchEvent(\n new CustomEvent(committed ? 'kui-color-change' : 'kui-color-input', {\n bubbles: true,\n detail: { value, mode: state.mode },\n }),\n );\n if (committed) onChange?.(change);\n else onInput?.(change);\n };\n\n const update = (\n picker: HTMLElement,\n next: Partial<Hsva>,\n committed: boolean,\n skipField?: Element,\n ) => {\n const state = stateOf(picker);\n const held = state.memo?.hsv === state.hsv ? state.memo : undefined;\n state.hsv = { ...state.hsv, ...next };\n // An opacity change leaves the model's exact channels as they were.\n if (held && Object.keys(next).join() === 'a') held.hsv = state.hsv;\n paint(picker, skipField);\n report(picker, committed);\n };\n\n /** Set one channel of the picker's model, holding every other one. */\n const setChannel = (\n picker: HTMLElement,\n index: number,\n value: number,\n committed: boolean,\n skipField?: Element,\n ) => {\n const state = stateOf(picker);\n const values = [...channelValuesOf(state)];\n values[index] = clamp(\n value,\n 0,\n COLOR_PICKER_CHANNELS[state.mode][index]!.max,\n );\n state.hsv = hsvFromChannels(state.mode, values, state.hsv);\n state.memo = { mode: state.mode, hsv: state.hsv, values };\n paint(picker, skipField);\n report(picker, committed);\n };\n\n const disabled = (picker: HTMLElement) =>\n picker.hasAttribute('data-disabled');\n\n // The area: pointer drags.\n let dragging: { picker: HTMLElement; area: HTMLElement } | undefined;\n const fromPointer = (event: PointerEvent, area: HTMLElement) => {\n const box = area.getBoundingClientRect();\n return {\n s: clamp((event.clientX - box.left) / box.width, 0, 1),\n v: clamp(1 - (event.clientY - box.top) / box.height, 0, 1),\n };\n };\n const onPointerDown = (event: PointerEvent) => {\n const area = (event.target as Element).closest<HTMLElement>(\n '.kui-color-picker__area',\n );\n const picker = pickerOf(area);\n if (!area || !picker || disabled(picker) || event.button !== 0) return;\n event.preventDefault();\n area.focus();\n area.setPointerCapture?.(event.pointerId);\n dragging = { picker, area };\n update(picker, fromPointer(event, area), false);\n };\n const onPointerMove = (event: PointerEvent) => {\n if (!dragging) return;\n update(dragging.picker, fromPointer(event, dragging.area), false);\n };\n const onPointerUp = () => {\n if (!dragging) return;\n const { picker } = dragging;\n dragging = undefined;\n report(picker, true);\n };\n\n // The area: the arrow keys, Home / End, and Page Up / Down.\n const onKeyDown = (event: KeyboardEvent) => {\n const area = (event.target as Element).closest<HTMLElement>(\n '.kui-color-picker__area',\n );\n const picker = pickerOf(area);\n if (!area || !picker || disabled(picker)) {\n onFieldKey(event);\n return;\n }\n const step = event.shiftKey ? 0.1 : 0.01;\n const { s, v } = stateOf(picker).hsv;\n const rtl = globalThis.getComputedStyle(area).direction === 'rtl';\n const moves: Record<string, Partial<Hsva>> = {\n ArrowRight: { s: clamp(s + (rtl ? -step : step), 0, 1) },\n ArrowLeft: { s: clamp(s - (rtl ? -step : step), 0, 1) },\n ArrowUp: { v: clamp(v + step, 0, 1) },\n ArrowDown: { v: clamp(v - step, 0, 1) },\n PageUp: { v: clamp(v + 0.1, 0, 1) },\n PageDown: { v: clamp(v - 0.1, 0, 1) },\n Home: { s: 0 },\n End: { s: 1 },\n };\n const move = moves[event.key];\n if (!move) return;\n event.preventDefault();\n update(picker, move, false);\n };\n const onKeyUp = (event: KeyboardEvent) => {\n const picker = pickerOf(\n (event.target as Element).closest('.kui-color-picker__area'),\n );\n if (\n picker &&\n /^(Arrow|Page|Home$|End$)/.test(event.key) &&\n !disabled(picker)\n )\n report(picker, true);\n };\n\n // Fields: Enter commits; Escape restores the shown value.\n const commitField = (field: HTMLInputElement) => {\n const picker = pickerOf(field);\n if (!picker) return;\n // Leaving a field the person did not edit commits nothing.\n if (field.value === (field.dataset.shown ?? field.getAttribute('value')))\n return;\n const state = stateOf(picker);\n if (field.classList.contains('kui-color-picker__hex')) {\n const raw = field.value.trim().replace(/^#/, '');\n const next = /^[\\da-f]{3,8}$/i.test(raw)\n ? hsvForValue(`#${raw}`, state.hsv)\n : undefined;\n if (next && [3, 4, 6, 8].includes(raw.length)) {\n update(picker, alphaOn(picker) ? next : { ...next, a: 1 }, true);\n return;\n }\n paint(picker);\n return;\n }\n if (field.classList.contains('kui-color-picker__opacity-field')) {\n const number = Number.parseFloat(field.value);\n if (Number.isFinite(number))\n update(picker, { a: clamp(number, 0, 100) / 100 }, true);\n else paint(picker);\n return;\n }\n const index = Number(field.dataset.channel);\n const channels = COLOR_PICKER_CHANNELS[state.mode];\n const channel = channels[index];\n const number = Number.parseFloat(field.value);\n if (!channel || !Number.isFinite(number)) {\n paint(picker);\n return;\n }\n setChannel(picker, index, number, true);\n };\n const onFieldKey = (event: KeyboardEvent) => {\n const field = event.target;\n if (\n !(field instanceof HTMLInputElement) ||\n !field.matches(\n '.kui-color-picker__channel, .kui-color-picker__hex, .kui-color-picker__opacity-field',\n )\n )\n return;\n if (event.key === 'Enter') {\n event.preventDefault();\n commitField(field);\n } else if (event.key === 'Escape') {\n const picker = pickerOf(field);\n if (picker) paint(picker);\n }\n };\n const onFocusOut = (event: FocusEvent) => {\n const field = event.target;\n if (\n field instanceof HTMLInputElement &&\n field.matches(\n '.kui-color-picker__channel, .kui-color-picker__hex, .kui-color-picker__opacity-field',\n )\n )\n commitField(field);\n };\n\n // Sliders, the model menu, and swatches.\n const onInputEvent = (event: Event) => {\n const input = event.target;\n if (!(input instanceof HTMLInputElement)) return;\n const picker = pickerOf(input);\n if (!picker) return;\n if (input.classList.contains('kui-color-picker__slider')) {\n event.stopPropagation();\n setChannel(\n picker,\n Number(input.dataset.slider),\n Number(input.value),\n false,\n input,\n );\n } else if (input.classList.contains('kui-color-picker__opacity')) {\n event.stopPropagation();\n update(picker, { a: Number(input.value) / 100 }, false, input);\n }\n };\n const onChangeEvent = (event: Event) => {\n const target = event.target;\n const picker = pickerOf(target as Element);\n if (!picker) return;\n if (\n target instanceof HTMLInputElement &&\n target.matches('.kui-color-picker__slider, .kui-color-picker__opacity')\n ) {\n event.stopPropagation();\n report(picker, true);\n return;\n }\n if (\n target instanceof HTMLSelectElement &&\n target.classList.contains('kui-color-picker__mode') &&\n isMode(target.value)\n ) {\n event.stopPropagation();\n stateOf(picker).mode = target.value;\n paint(picker);\n report(picker, true);\n return;\n }\n if (\n target instanceof HTMLInputElement &&\n target.dataset.action === COLOR_PICKER_SWATCH_ACTION\n ) {\n event.stopPropagation();\n const state = stateOf(picker);\n const next = hsvForValue(target.value, state.hsv);\n if (next) update(picker, next, true);\n }\n };\n\n // The screen sampler, where the browser has it.\n type EyeDropperConstructor = new () => {\n open(): Promise<{ sRGBHex: string }>;\n };\n const EyeDropperApi = (\n globalThis as typeof globalThis & { EyeDropper?: EyeDropperConstructor }\n ).EyeDropper;\n const revealSamplers = () => {\n if (!EyeDropperApi) return;\n for (const button of root.querySelectorAll<HTMLButtonElement>(\n '.kui-color-picker__eyedropper[hidden]',\n ))\n button.hidden = false;\n };\n const onClick = (event: MouseEvent) => {\n const button = (event.target as Element).closest<HTMLButtonElement>(\n '.kui-color-picker__eyedropper',\n );\n const picker = pickerOf(button);\n if (!button || !picker || !EyeDropperApi || disabled(picker)) return;\n new EyeDropperApi().open().then(\n ({ sRGBHex }) => {\n const state = stateOf(picker);\n const next = hsvForValue(sRGBHex, state.hsv);\n if (next) update(picker, { ...next, a: state.hsv.a }, true);\n },\n () => {\n // The person dismissed the sampler; nothing changes.\n },\n );\n };\n\n // Adopt a new controlled value or mode from an app re-render. Only the\n // attribute that actually changed is adopted, so a value-only re-render\n // keeps a model the person switched to.\n const adopt = (picker: HTMLElement, attribute: string | null) => {\n const state = stateOf(picker);\n if (attribute === 'data-mode') {\n const mode = picker.dataset.mode;\n if (isMode(mode) && mode !== state.mode) {\n state.mode = mode;\n paint(picker);\n }\n return;\n }\n const value = picker.dataset.value;\n if (value === undefined || value === state.value) return;\n const next = hsvForValue(value, state.hsv);\n if (!next) return;\n state.hsv = next;\n state.value = value;\n paint(picker);\n };\n const observer = new MutationObserver((records) => {\n revealSamplers();\n for (const record of records) {\n if (record.type !== 'attributes') continue;\n const picker = record.target as HTMLElement;\n if (picker.matches('[data-component=\"color-picker\"]'))\n adopt(picker, record.attributeName);\n }\n });\n observer.observe(root, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-value', 'data-mode'],\n });\n revealSamplers();\n\n root.addEventListener('pointerdown', onPointerDown);\n root.addEventListener('pointermove', onPointerMove);\n root.addEventListener('pointerup', onPointerUp);\n root.addEventListener('pointercancel', onPointerUp);\n root.addEventListener('keydown', onKeyDown);\n root.addEventListener('keyup', onKeyUp);\n root.addEventListener('focusout', onFocusOut);\n root.addEventListener('input', onInputEvent);\n root.addEventListener('change', onChangeEvent);\n root.addEventListener('click', onClick);\n return () => {\n observer.disconnect();\n root.removeEventListener('pointerdown', onPointerDown);\n root.removeEventListener('pointermove', onPointerMove);\n root.removeEventListener('pointerup', onPointerUp);\n root.removeEventListener('pointercancel', onPointerUp);\n root.removeEventListener('keydown', onKeyDown);\n root.removeEventListener('keyup', onKeyUp);\n root.removeEventListener('focusout', onFocusOut);\n root.removeEventListener('input', onInputEvent);\n root.removeEventListener('change', onChangeEvent);\n root.removeEventListener('click', onClick);\n };\n}\n"]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'kerfjs/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/components/layout/resizable-region/internal/resize-grip.tsx
|
|
4
|
+
function ResizeGrip({ axis }) {
|
|
5
|
+
return /* @__PURE__ */ jsx(
|
|
6
|
+
"svg",
|
|
7
|
+
{
|
|
8
|
+
"aria-hidden": "true",
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
"stroke-width": "2",
|
|
13
|
+
"stroke-linecap": "round",
|
|
14
|
+
children: axis === "horizontal" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15
|
+
/* @__PURE__ */ jsx("path", { d: "M9 6v12" }),
|
|
16
|
+
/* @__PURE__ */ jsx("path", { d: "M15 6v12" })
|
|
17
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18
|
+
/* @__PURE__ */ jsx("path", { d: "M6 9h12" }),
|
|
19
|
+
/* @__PURE__ */ jsx("path", { d: "M6 15h12" })
|
|
20
|
+
] })
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
var clampRegionSize = (size, min, max) => Math.min(max, Math.max(min, Math.round(size)));
|
|
25
|
+
var resizeRegionFromPointer = (startSize, delta, edge) => startSize + delta * (edge === "start" ? -1 : 1);
|
|
26
|
+
function ResizableRegion({
|
|
27
|
+
id,
|
|
28
|
+
label,
|
|
29
|
+
size,
|
|
30
|
+
min,
|
|
31
|
+
max,
|
|
32
|
+
axis = "horizontal",
|
|
33
|
+
edge = "end",
|
|
34
|
+
collapsed = false,
|
|
35
|
+
transitioning = false,
|
|
36
|
+
separator = "auto",
|
|
37
|
+
collapseMotion = "slide",
|
|
38
|
+
contentOverflow = "clip",
|
|
39
|
+
presentation = "inline",
|
|
40
|
+
restoreControl,
|
|
41
|
+
restorePosition = axis === "horizontal" && edge === "end" ? "bottom-start" : "bottom-end",
|
|
42
|
+
restorePlacement = "corner",
|
|
43
|
+
restoreInset,
|
|
44
|
+
responsiveFillAt,
|
|
45
|
+
handleIcon,
|
|
46
|
+
children
|
|
47
|
+
}) {
|
|
48
|
+
const expandedSize = clampRegionSize(size, min, max);
|
|
49
|
+
const resolved = collapsed ? 0 : expandedSize;
|
|
50
|
+
const orientation = axis === "horizontal" ? "vertical" : "horizontal";
|
|
51
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52
|
+
/* @__PURE__ */ jsxs(
|
|
53
|
+
"section",
|
|
54
|
+
{
|
|
55
|
+
class: "kui-resizable-region",
|
|
56
|
+
"data-component": "resizable-region",
|
|
57
|
+
"data-region-id": id,
|
|
58
|
+
"data-axis": axis,
|
|
59
|
+
"data-edge": edge,
|
|
60
|
+
"data-collapsed": String(collapsed),
|
|
61
|
+
"data-transitioning": String(transitioning),
|
|
62
|
+
"data-separator": separator,
|
|
63
|
+
"data-collapse-motion": collapseMotion,
|
|
64
|
+
"data-content-overflow": contentOverflow,
|
|
65
|
+
"data-presentation": presentation,
|
|
66
|
+
"data-responsive-fill-at": responsiveFillAt,
|
|
67
|
+
style: `--kui-resizable-region-size:${resolved}px;--kui-resizable-region-expanded-size:${expandedSize}px`,
|
|
68
|
+
"aria-label": label,
|
|
69
|
+
"aria-hidden": collapsed || presentation === "hidden" ? "true" : void 0,
|
|
70
|
+
inert: collapsed,
|
|
71
|
+
children: [
|
|
72
|
+
/* @__PURE__ */ jsx("div", { class: "kui-resizable-region__content", inert: collapsed, children }),
|
|
73
|
+
/* @__PURE__ */ jsx(
|
|
74
|
+
"div",
|
|
75
|
+
{
|
|
76
|
+
class: "kui-resizable-region__handle",
|
|
77
|
+
role: "separator",
|
|
78
|
+
tabindex: collapsed || presentation !== "inline" ? "-1" : "0",
|
|
79
|
+
"aria-label": `Resize ${label}`,
|
|
80
|
+
"aria-orientation": orientation,
|
|
81
|
+
"aria-valuemin": collapsed ? 0 : min,
|
|
82
|
+
"aria-valuemax": max,
|
|
83
|
+
"aria-valuenow": resolved,
|
|
84
|
+
"aria-hidden": collapsed || presentation !== "inline" ? "true" : void 0,
|
|
85
|
+
"data-kui-resize-handle": true,
|
|
86
|
+
"data-region-id": id,
|
|
87
|
+
children: /* @__PURE__ */ jsx("span", { class: "kui-resizable-region__handle-icon", "aria-hidden": "true", children: handleIcon ?? /* @__PURE__ */ jsx(ResizeGrip, { axis }) })
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
collapsed && restoreControl && presentation !== "hidden" && /* @__PURE__ */ jsx(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
class: "kui-resizable-region__restore",
|
|
97
|
+
"data-region-restore": id,
|
|
98
|
+
"data-position": restorePosition,
|
|
99
|
+
"data-placement": restorePlacement,
|
|
100
|
+
style: restoreInset ? `--kui-resizable-region-restore-inset:${restoreInset}` : void 0,
|
|
101
|
+
children: restoreControl
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
] });
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { ResizableRegion, ResizeGrip, clampRegionSize, resizeRegionFromPointer };
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=chunk-Y6KT7ZTR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/resizable-region/internal/resize-grip.tsx","../src/components/layout/resizable-region/resizable-region.tsx"],"names":["jsxs","Fragment","jsx"],"mappings":"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","file":"chunk-Y6KT7ZTR.js","sourcesContent":["import type { ResizableRegionAxis } from '../resizable-region.js';\n\n/**\n * The dormant two-line grip a resize separator shows on hover and focus. Shared\n * by `ResizableRegion` and resizable `Workbench` panels so both separators read\n * the same. Internal.\n */\nexport function ResizeGrip({ axis }: { axis: ResizableRegionAxis }) {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n >\n {axis === 'horizontal' ? (\n <>\n <path d=\"M9 6v12\" />\n <path d=\"M15 6v12\" />\n </>\n ) : (\n <>\n <path d=\"M6 9h12\" />\n <path d=\"M6 15h12\" />\n </>\n )}\n </svg>\n );\n}\n","import type { SafeHtml } from 'kerfjs';\n\nimport type { KerfUiContent } from '../../../shared/content/semantic-content.js';\nimport type { CssLength } from '../../../shared/styles/css-values.js';\nimport { ResizeGrip } from './internal/resize-grip.js';\n\nexport type ResizableRegionAxis = 'horizontal' | 'vertical';\nexport type ResizableRegionEdge = 'start' | 'end';\nexport type ResizableRegionSeparator = 'auto' | 'hidden';\nexport type ResizableRegionCollapseMotion = 'none' | 'slide' | 'fade-slide';\nexport type ResizableRegionContentOverflow = 'clip' | 'auto' | 'visible';\nexport type ResizableRegionPresentation = 'inline' | 'overlay' | 'hidden';\nexport type ResizableRegionRestorePosition =\n 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';\nexport type ResizableRegionResponsiveFillAt = 'compact' | 'narrow';\n\nexport interface ResizableRegionProps {\n id: string;\n label: string;\n size: number;\n min: number;\n max: number;\n axis?: ResizableRegionAxis;\n edge?: ResizableRegionEdge;\n /** Snap the track to zero. The region renders `inert` and `aria-hidden`\n * while collapsed, so neither Tab nor assistive technology reaches it or\n * lands on an empty landmark; `restoreControl` renders outside the region. */\n collapsed?: boolean;\n transitioning?: boolean;\n /** Whether the separator line is painted. The resize hit target remains available. */\n separator?: ResizableRegionSeparator;\n /** Keep the track change instant while optionally sliding the fixed-size content. */\n collapseMotion?: ResizableRegionCollapseMotion;\n /** Use `visible` while an anchored popup must escape the content box; it raises the region to the popup layer. */\n contentOverflow?: ResizableRegionContentOverflow;\n /** Inline layout, an edge overlay, or a responsive replacement that removes the region. */\n presentation?: ResizableRegionPresentation;\n /** Always-available control rendered while collapsed, outside the clipped region. */\n restoreControl?: SafeHtml;\n /** Safe-area-aware corner of the region's container (not the viewport) for `restoreControl`. */\n restorePosition?: ResizableRegionRestorePosition;\n /** Position a restore control in its container corner or leave it in normal flow. */\n restorePlacement?: 'corner' | 'inline';\n /** Corner distance before the container's safe-area inset. */\n restoreInset?: CssLength;\n /** Fill the available inline track and hide the separator below a container breakpoint. */\n responsiveFillAt?: ResizableRegionResponsiveFillAt;\n /** Decorative dormant content for the separator handle. Must not contain interactive descendants. */\n handleIcon?: SafeHtml;\n children: KerfUiContent;\n}\n\nexport const clampRegionSize = (size: number, min: number, max: number) =>\n Math.min(max, Math.max(min, Math.round(size)));\nexport const resizeRegionFromPointer = (\n startSize: number,\n delta: number,\n edge: ResizableRegionEdge,\n) => startSize + delta * (edge === 'start' ? -1 : 1);\n\nexport function ResizableRegion({\n id,\n label,\n size,\n min,\n max,\n axis = 'horizontal',\n edge = 'end',\n collapsed = false,\n transitioning = false,\n separator = 'auto',\n collapseMotion = 'slide',\n contentOverflow = 'clip',\n presentation = 'inline',\n restoreControl,\n restorePosition = axis === 'horizontal' && edge === 'end'\n ? 'bottom-start'\n : 'bottom-end',\n restorePlacement = 'corner',\n restoreInset,\n responsiveFillAt,\n handleIcon,\n children,\n}: ResizableRegionProps) {\n const expandedSize = clampRegionSize(size, min, max);\n const resolved = collapsed ? 0 : expandedSize;\n const orientation = axis === 'horizontal' ? 'vertical' : 'horizontal';\n return (\n <>\n <section\n class=\"kui-resizable-region\"\n data-component=\"resizable-region\"\n data-region-id={id}\n data-axis={axis}\n data-edge={edge}\n data-collapsed={String(collapsed)}\n data-transitioning={String(transitioning)}\n data-separator={separator}\n data-collapse-motion={collapseMotion}\n data-content-overflow={contentOverflow}\n data-presentation={presentation}\n data-responsive-fill-at={responsiveFillAt}\n style={`--kui-resizable-region-size:${resolved}px;--kui-resizable-region-expanded-size:${expandedSize}px`}\n aria-label={label}\n // Collapsed, the labeled region leaves the accessibility tree whole\n // (its content is inert and its separator already hidden), so no\n // empty landmark stays behind; the restore control is a sibling.\n aria-hidden={\n collapsed || presentation === 'hidden' ? 'true' : undefined\n }\n inert={collapsed}\n >\n <div class=\"kui-resizable-region__content\" inert={collapsed}>\n {children}\n </div>\n <div\n class=\"kui-resizable-region__handle\"\n role=\"separator\"\n tabindex={collapsed || presentation !== 'inline' ? '-1' : '0'}\n aria-label={`Resize ${label}`}\n aria-orientation={orientation}\n aria-valuemin={collapsed ? 0 : min}\n aria-valuemax={max}\n aria-valuenow={resolved}\n aria-hidden={\n collapsed || presentation !== 'inline' ? 'true' : undefined\n }\n data-kui-resize-handle\n data-region-id={id}\n >\n <span class=\"kui-resizable-region__handle-icon\" aria-hidden=\"true\">\n {handleIcon ?? <ResizeGrip axis={axis} />}\n </span>\n </div>\n </section>\n {collapsed && restoreControl && presentation !== 'hidden' && (\n <div\n class=\"kui-resizable-region__restore\"\n data-region-restore={id}\n data-position={restorePosition}\n data-placement={restorePlacement}\n style={\n restoreInset\n ? `--kui-resizable-region-restore-inset:${restoreInset}`\n : undefined\n }\n >\n {restoreControl}\n </div>\n )}\n </>\n );\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { space } from './chunk-IQSRHXZR.js';
|
|
2
|
+
import { jsx } from 'kerfjs/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
var spaceNames = [
|
|
5
|
+
"none",
|
|
6
|
+
"2xs",
|
|
7
|
+
"xs",
|
|
8
|
+
"s",
|
|
9
|
+
"m",
|
|
10
|
+
"l",
|
|
11
|
+
"xl"
|
|
12
|
+
];
|
|
13
|
+
function dimension(value) {
|
|
14
|
+
return spaceNames.includes(value) ? space(value) : value;
|
|
15
|
+
}
|
|
16
|
+
function Spacer({
|
|
17
|
+
flex = false,
|
|
18
|
+
width,
|
|
19
|
+
height,
|
|
20
|
+
className = "",
|
|
21
|
+
slot
|
|
22
|
+
}) {
|
|
23
|
+
const widthValue = dimension(width);
|
|
24
|
+
const heightValue = dimension(height);
|
|
25
|
+
const style = [
|
|
26
|
+
widthValue ? `width:${widthValue}` : "",
|
|
27
|
+
heightValue ? `height:${heightValue}` : ""
|
|
28
|
+
].filter(Boolean).join(";");
|
|
29
|
+
return /* @__PURE__ */ jsx(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
class: `kui-spacer ${className}`.trim(),
|
|
33
|
+
"data-component": "spacer",
|
|
34
|
+
"data-flex": String(flex),
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
style: style || void 0,
|
|
37
|
+
slot
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { Spacer };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=chunk-YMUIQRWK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/spacer/spacer.tsx"],"names":[],"mappings":";;;AAMA,IAAM,UAAA,GAAqC;AAAA,EACzC,MAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA;AAcA,SAAS,UAAU,KAAA,EAAwD;AACzE,EAAA,OAAO,WAAW,QAAA,CAAS,KAAoB,CAAA,GAC3C,KAAA,CAAM,KAAoB,CAAA,GACzB,KAAA;AACP;AAGO,SAAS,MAAA,CAAO;AAAA,EACrB,IAAA,GAAO,KAAA;AAAA,EACP,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,EAAgB;AACd,EAAA,MAAM,UAAA,GAAa,UAAU,KAAK,CAAA;AAClC,EAAA,MAAM,WAAA,GAAc,UAAU,MAAM,CAAA;AACpC,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,UAAA,GAAa,CAAA,MAAA,EAAS,UAAU,CAAA,CAAA,GAAK,EAAA;AAAA,IACrC,WAAA,GAAc,CAAA,OAAA,EAAU,WAAW,CAAA,CAAA,GAAK;AAAA,GAC1C,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,CAAA,WAAA,EAAc,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK;AAAA,MACtC,gBAAA,EAAe,QAAA;AAAA,MACf,WAAA,EAAW,OAAO,IAAI,CAAA;AAAA,MACtB,aAAA,EAAY,MAAA;AAAA,MACZ,OAAO,KAAA,IAAS,MAAA;AAAA,MAChB;AAAA;AAAA,GACF;AAEJ","file":"chunk-YMUIQRWK.js","sourcesContent":["import {\n type CssLength,\n space,\n type UiSpaceName,\n} from '../../../shared/styles/css-values.js';\n\nconst spaceNames: readonly UiSpaceName[] = [\n 'none',\n '2xs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n];\n\nexport interface SpacerProps {\n /** Grow and shrink to fill the available space along a parent's flex axis. */\n flex?: boolean;\n /** A named UI spacing token or typed physical width. */\n width?: UiSpaceName | CssLength;\n /** A named UI spacing token or typed physical height. */\n height?: UiSpaceName | CssLength;\n className?: string;\n /** Native named-slot assignment when composed inside a web component. */\n slot?: string;\n}\n\nfunction dimension(value?: UiSpaceName | CssLength): CssLength | undefined {\n return spaceNames.includes(value as UiSpaceName)\n ? space(value as UiSpaceName)\n : (value as CssLength | undefined);\n}\n\n/** A decorative fixed-size or flexible gap for Row, List, and other flex layouts. */\nexport function Spacer({\n flex = false,\n width,\n height,\n className = '',\n slot,\n}: SpacerProps) {\n const widthValue = dimension(width);\n const heightValue = dimension(height);\n const style = [\n widthValue ? `width:${widthValue}` : '',\n heightValue ? `height:${heightValue}` : '',\n ]\n .filter(Boolean)\n .join(';');\n\n return (\n <div\n class={`kui-spacer ${className}`.trim()}\n data-component=\"spacer\"\n data-flex={String(flex)}\n aria-hidden=\"true\"\n style={style || undefined}\n slot={slot}\n />\n );\n}\n\nexport type {\n CssLength,\n UiSpaceName,\n} from '../../../shared/styles/css-values.js';\n"]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Skeleton } from './chunk-CVD5IZGB.js';
|
|
2
|
+
import { em } from './chunk-IQSRHXZR.js';
|
|
3
|
+
import { filterDataAttributes } from './chunk-KH4KEMSP.js';
|
|
4
|
+
import { jsxs, jsx } from 'kerfjs/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var PROTECTED_ROOT_DATA_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
7
|
+
"data-component",
|
|
8
|
+
"data-action",
|
|
9
|
+
"data-tab-id",
|
|
10
|
+
"data-selected",
|
|
11
|
+
"data-tab-dragging",
|
|
12
|
+
"data-tab-drop-position",
|
|
13
|
+
"data-attention",
|
|
14
|
+
"data-drop-target",
|
|
15
|
+
"data-name-overflow",
|
|
16
|
+
"data-pinned"
|
|
17
|
+
]);
|
|
18
|
+
function CloseIcon() {
|
|
19
|
+
return /* @__PURE__ */ jsxs(
|
|
20
|
+
"svg",
|
|
21
|
+
{
|
|
22
|
+
"aria-hidden": "true",
|
|
23
|
+
viewBox: "0 0 24 24",
|
|
24
|
+
fill: "none",
|
|
25
|
+
stroke: "currentColor",
|
|
26
|
+
"stroke-width": "2.25",
|
|
27
|
+
"stroke-linecap": "round",
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx("path", { d: "m7 7 10 10" }),
|
|
30
|
+
/* @__PURE__ */ jsx("path", { d: "M17 7 7 17" })
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
function TabBarItem({
|
|
36
|
+
id,
|
|
37
|
+
name,
|
|
38
|
+
selected = false,
|
|
39
|
+
attention = false,
|
|
40
|
+
dropTarget = false,
|
|
41
|
+
pinned = false,
|
|
42
|
+
closable = true,
|
|
43
|
+
draggable = false,
|
|
44
|
+
leading,
|
|
45
|
+
trailing,
|
|
46
|
+
presentation = "pill",
|
|
47
|
+
size = "default",
|
|
48
|
+
labelMaxWidth,
|
|
49
|
+
nameOverflow = "ellipsis",
|
|
50
|
+
closeIcon,
|
|
51
|
+
selectAction = "select-tab",
|
|
52
|
+
closeAction = "close-tab",
|
|
53
|
+
className = "",
|
|
54
|
+
placeholder = false,
|
|
55
|
+
pending = false,
|
|
56
|
+
rootAttributes = {},
|
|
57
|
+
slot
|
|
58
|
+
}) {
|
|
59
|
+
const dormant = placeholder || pending;
|
|
60
|
+
const named = pending && !placeholder;
|
|
61
|
+
const keyshortcuts = [
|
|
62
|
+
closable && !dormant ? "Delete Backspace" : "",
|
|
63
|
+
draggable && !dormant ? "Alt+Shift+ArrowLeft Alt+Shift+ArrowRight" : ""
|
|
64
|
+
].filter(Boolean).join(" ");
|
|
65
|
+
const extensionAttributes = filterDataAttributes(
|
|
66
|
+
rootAttributes,
|
|
67
|
+
PROTECTED_ROOT_DATA_ATTRIBUTES
|
|
68
|
+
);
|
|
69
|
+
return /* @__PURE__ */ jsxs(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
...extensionAttributes,
|
|
73
|
+
class: `kui-tab-bar-item ${className}`.trim(),
|
|
74
|
+
"data-component": "tab-bar-item",
|
|
75
|
+
"data-tab-id": id,
|
|
76
|
+
"data-selected": String(selected),
|
|
77
|
+
"data-attention": attention ? "true" : void 0,
|
|
78
|
+
"data-drop-target": dropTarget ? "true" : void 0,
|
|
79
|
+
"data-pinned": pinned ? "true" : void 0,
|
|
80
|
+
"data-name-overflow": nameOverflow,
|
|
81
|
+
"data-presentation": presentation,
|
|
82
|
+
"data-size": size,
|
|
83
|
+
"data-placeholder": placeholder ? "true" : void 0,
|
|
84
|
+
"data-pending": named ? "true" : void 0,
|
|
85
|
+
draggable: dormant ? "false" : draggable ? "true" : "false",
|
|
86
|
+
"aria-busy": dormant ? "true" : void 0,
|
|
87
|
+
style: labelMaxWidth === void 0 ? void 0 : `--kui-tab-bar-item-label-max-width:${labelMaxWidth}px`,
|
|
88
|
+
slot,
|
|
89
|
+
children: [
|
|
90
|
+
closable && /* @__PURE__ */ jsx(
|
|
91
|
+
"button",
|
|
92
|
+
{
|
|
93
|
+
type: "button",
|
|
94
|
+
tabindex: "-1",
|
|
95
|
+
class: "kui-tab-bar-item__close",
|
|
96
|
+
"data-action": dormant ? void 0 : closeAction,
|
|
97
|
+
"data-tab-id": id,
|
|
98
|
+
disabled: dormant || void 0,
|
|
99
|
+
"aria-label": `Close ${name}`,
|
|
100
|
+
title: `Close ${name}`,
|
|
101
|
+
children: /* @__PURE__ */ jsx("span", { class: "kui-tab-bar-item__close-icon", "aria-hidden": "true", children: closeIcon ?? /* @__PURE__ */ jsx(CloseIcon, {}) })
|
|
102
|
+
}
|
|
103
|
+
),
|
|
104
|
+
/* @__PURE__ */ jsxs(
|
|
105
|
+
"button",
|
|
106
|
+
{
|
|
107
|
+
type: "button",
|
|
108
|
+
class: "kui-tab-bar-item__select",
|
|
109
|
+
role: "tab",
|
|
110
|
+
"aria-selected": String(selected),
|
|
111
|
+
"aria-label": presentation === "icon-only" || named ? name : void 0,
|
|
112
|
+
"aria-keyshortcuts": keyshortcuts || void 0,
|
|
113
|
+
"data-action": placeholder ? void 0 : selectAction,
|
|
114
|
+
"data-tab-id": id,
|
|
115
|
+
disabled: placeholder || void 0,
|
|
116
|
+
tabindex: !placeholder && selected ? "0" : "-1",
|
|
117
|
+
children: [
|
|
118
|
+
leading,
|
|
119
|
+
/* @__PURE__ */ jsx(
|
|
120
|
+
"span",
|
|
121
|
+
{
|
|
122
|
+
class: "kui-tab-bar-item__name",
|
|
123
|
+
"aria-hidden": presentation === "icon-only" ? "true" : void 0,
|
|
124
|
+
children: placeholder ? /* @__PURE__ */ jsx(Skeleton, { width: em(7) }) : name
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
closable || trailing ? /* @__PURE__ */ jsx("span", { class: "kui-tab-bar-item__trailing", children: trailing }) : void 0
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
)
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export { TabBarItem };
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=chunk-ZCDRLN3B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/tab-bar-item/tab-bar-item.tsx"],"names":[],"mappings":"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","file":"chunk-ZCDRLN3B.js","sourcesContent":["import type { SafeHtml } from 'kerfjs';\n\nimport type { KerfUiContent } from '../../../shared/content/semantic-content.js';\nimport { filterDataAttributes } from '../../../shared/dom/extension-attributes.js';\nimport { em } from '../../../shared/styles/css-values.js';\nimport { Skeleton } from '../../feedback/skeleton/skeleton.js';\n\nconst PROTECTED_ROOT_DATA_ATTRIBUTES = new Set([\n 'data-component',\n 'data-action',\n 'data-tab-id',\n 'data-selected',\n 'data-tab-dragging',\n 'data-tab-drop-position',\n 'data-attention',\n 'data-drop-target',\n 'data-name-overflow',\n 'data-pinned',\n]);\n\ntype TabBarItemRootAttributes = Readonly<\n Record<`data-${string}`, string | undefined> & {\n 'data-component'?: never;\n 'data-action'?: never;\n 'data-tab-id'?: never;\n 'data-selected'?: never;\n 'data-tab-dragging'?: never;\n 'data-tab-drop-position'?: never;\n 'data-attention'?: never;\n 'data-drop-target'?: never;\n 'data-name-overflow'?: never;\n 'data-pinned'?: never;\n }\n>;\n\nexport type TabBarItemPresentation = 'pill' | 'segmented' | 'icon-only';\nexport type TabBarItemSize = 'default' | 'compact';\nexport type TabBarItemNameOverflow = 'ellipsis' | 'visible';\n\nexport interface TabBarItemProps {\n id: string;\n name: string;\n selected?: boolean;\n /** Emphasize the visible tab name with the attention color token. */\n attention?: boolean;\n /** Highlight this tab as the target of a drag over its content. */\n dropTarget?: boolean;\n /** Keep the leading tab visible within its TabBar tablist while peers scroll. */\n pinned?: boolean;\n closable?: boolean;\n draggable?: boolean;\n leading?: KerfUiContent;\n trailing?: KerfUiContent;\n /** Visual treatment within a TabBar. Icon-only tabs retain `name` as their accessible name. */\n presentation?: TabBarItemPresentation;\n /** Compact tabs use the 32px application-rail height. */\n size?: TabBarItemSize;\n /** Maximum visible label width in CSS pixels before ellipsis. */\n labelMaxWidth?: number;\n /** Keep the full name visible for an inline loading treatment. */\n nameOverflow?: TabBarItemNameOverflow;\n /** Decorative dormant content for the close button. Must not contain interactive descendants. */\n closeIcon?: SafeHtml;\n selectAction?: string;\n closeAction?: string;\n className?: string;\n /** Render as an unanimated loading skeleton, disabling select/close and dragging. */\n placeholder?: boolean;\n /**\n * Named and still opening: the tab is known but its content is loading.\n * Keeps `name` visible in the quiet text color and as the tab's accessible\n * name, shows `trailing` (for example a `LoadingSpinner`), and marks the\n * tab `aria-busy`. Unlike `placeholder` it stays selectable — the\n * application shows placeholder content in its panel until loading\n * completes — while close and dragging stay disabled. Same pill geometry\n * as the live tab, so swapping it in place does not shift the bar.\n * `placeholder` wins when both are set.\n */\n pending?: boolean;\n rootAttributes?: TabBarItemRootAttributes;\n /** Native named-slot assignment when composed inside a web component. */\n slot?: string;\n}\n\nfunction CloseIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.25\"\n stroke-linecap=\"round\"\n >\n <path d=\"m7 7 10 10\" />\n <path d=\"M17 7 7 17\" />\n </svg>\n );\n}\n\nexport function TabBarItem({\n id,\n name,\n selected = false,\n attention = false,\n dropTarget = false,\n pinned = false,\n closable = true,\n draggable = false,\n leading,\n trailing,\n presentation = 'pill',\n size = 'default',\n labelMaxWidth,\n nameOverflow = 'ellipsis',\n closeIcon,\n selectAction = 'select-tab',\n closeAction = 'close-tab',\n className = '',\n placeholder = false,\n pending = false,\n rootAttributes = {},\n slot,\n}: TabBarItemProps) {\n // Both loading states disable close and dragging; a `placeholder` (unknown\n // tab) is also unselectable and hides its name, while a `pending` (known,\n // still opening) tab stays selectable so its panel can show placeholders.\n const dormant = placeholder || pending;\n const named = pending && !placeholder;\n const keyshortcuts = [\n closable && !dormant ? 'Delete Backspace' : '',\n draggable && !dormant ? 'Alt+Shift+ArrowLeft Alt+Shift+ArrowRight' : '',\n ]\n .filter(Boolean)\n .join(' ');\n const extensionAttributes = filterDataAttributes(\n rootAttributes,\n PROTECTED_ROOT_DATA_ATTRIBUTES,\n );\n return (\n <div\n {...extensionAttributes}\n class={`kui-tab-bar-item ${className}`.trim()}\n data-component=\"tab-bar-item\"\n data-tab-id={id}\n data-selected={String(selected)}\n data-attention={attention ? 'true' : undefined}\n data-drop-target={dropTarget ? 'true' : undefined}\n data-pinned={pinned ? 'true' : undefined}\n data-name-overflow={nameOverflow}\n data-presentation={presentation}\n data-size={size}\n data-placeholder={placeholder ? 'true' : undefined}\n data-pending={named ? 'true' : undefined}\n draggable={dormant ? 'false' : draggable ? 'true' : 'false'}\n aria-busy={dormant ? 'true' : undefined}\n style={\n labelMaxWidth === undefined\n ? undefined\n : `--kui-tab-bar-item-label-max-width:${labelMaxWidth}px`\n }\n slot={slot}\n >\n {closable && (\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"kui-tab-bar-item__close\"\n data-action={dormant ? undefined : closeAction}\n data-tab-id={id}\n disabled={dormant || undefined}\n aria-label={`Close ${name}`}\n title={`Close ${name}`}\n >\n <span class=\"kui-tab-bar-item__close-icon\" aria-hidden=\"true\">\n {closeIcon ?? <CloseIcon />}\n </span>\n </button>\n )}\n <button\n type=\"button\"\n class=\"kui-tab-bar-item__select\"\n role=\"tab\"\n aria-selected={String(selected)}\n aria-label={presentation === 'icon-only' || named ? name : undefined}\n aria-keyshortcuts={keyshortcuts || undefined}\n data-action={placeholder ? undefined : selectAction}\n data-tab-id={id}\n disabled={placeholder || undefined}\n tabindex={!placeholder && selected ? '0' : '-1'}\n >\n {leading}\n <span\n class=\"kui-tab-bar-item__name\"\n aria-hidden={presentation === 'icon-only' ? 'true' : undefined}\n >\n {placeholder ? <Skeleton width={em(7)} /> : name}\n </span>\n {closable || trailing ? (\n <span class=\"kui-tab-bar-item__trailing\">{trailing}</span>\n ) : undefined}\n </button>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/components/feedback/corner-status/wiring/wire-corner-status.ts
|
|
2
|
+
var HOST = '[data-component="corner-status"][popover]';
|
|
3
|
+
function open(host) {
|
|
4
|
+
if (!(host instanceof HTMLElement) || !host.isConnected || typeof host.showPopover !== "function" || host.matches(":popover-open"))
|
|
5
|
+
return;
|
|
6
|
+
host.showPopover();
|
|
7
|
+
}
|
|
8
|
+
function openWithin(node) {
|
|
9
|
+
if (!(node instanceof Element)) return;
|
|
10
|
+
if (node.matches(HOST)) open(node);
|
|
11
|
+
for (const host of node.querySelectorAll(HOST)) open(host);
|
|
12
|
+
}
|
|
13
|
+
function wireCornerStatus(root) {
|
|
14
|
+
openWithin(root.nodeType === 9 ? root.documentElement : root);
|
|
15
|
+
const observer = new MutationObserver((records) => {
|
|
16
|
+
for (const record of records)
|
|
17
|
+
for (const node of record.addedNodes) openWithin(node);
|
|
18
|
+
});
|
|
19
|
+
observer.observe(root, { childList: true, subtree: true });
|
|
20
|
+
return () => observer.disconnect();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { wireCornerStatus };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=chunk-ZKKO4MHC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/feedback/corner-status/wiring/wire-corner-status.ts"],"names":[],"mappings":";AAEA,IAAM,IAAA,GAAO,2CAAA;AAEb,SAAS,KAAK,IAAA,EAAe;AAC3B,EAAA,IACE,EAAE,IAAA,YAAgB,WAAA,CAAA,IAClB,CAAC,IAAA,CAAK,WAAA,IACN,OAAO,IAAA,CAAK,WAAA,KAAgB,UAAA,IAC5B,IAAA,CAAK,OAAA,CAAQ,eAAe,CAAA;AAE5B,IAAA;AACF,EAAA,IAAA,CAAK,WAAA,EAAY;AACnB;AAEA,SAAS,WAAW,IAAA,EAAY;AAC9B,EAAA,IAAI,EAAE,gBAAgB,OAAA,CAAA,EAAU;AAChC,EAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAA,OAAQ,IAAI,CAAA;AACjC,EAAA,KAAA,MAAW,QAAQ,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA,OAAQ,IAAI,CAAA;AAC3D;AASO,SAAS,iBAAiB,IAAA,EAAwB;AACvD,EAAA,UAAA,CAAW,IAAA,CAAK,QAAA,KAAa,CAAA,GAAK,IAAA,CAAkB,kBAAkB,IAAI,CAAA;AAC1E,EAAA,MAAM,QAAA,GAAW,IAAI,gBAAA,CAAiB,CAAC,OAAA,KAAY;AACjD,IAAA,KAAA,MAAW,MAAA,IAAU,OAAA;AACnB,MAAA,KAAA,MAAW,IAAA,IAAQ,MAAA,CAAO,UAAA,EAAY,UAAA,CAAW,IAAI,CAAA;AAAA,EACzD,CAAC,CAAA;AACD,EAAA,QAAA,CAAS,QAAQ,IAAA,EAAM,EAAE,WAAW,IAAA,EAAM,OAAA,EAAS,MAAM,CAAA;AACzD,EAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AACnC","file":"chunk-ZKKO4MHC.js","sourcesContent":["type Root = HTMLElement | Document;\n\nconst HOST = '[data-component=\"corner-status\"][popover]';\n\nfunction open(host: Element) {\n if (\n !(host instanceof HTMLElement) ||\n !host.isConnected ||\n typeof host.showPopover !== 'function' ||\n host.matches(':popover-open')\n )\n return;\n host.showPopover();\n}\n\nfunction openWithin(node: Node) {\n if (!(node instanceof Element)) return;\n if (node.matches(HOST)) open(node);\n for (const host of node.querySelectorAll(HOST)) open(host);\n}\n\n/**\n * Open every overlay `CornerStatus` below root in the top layer, now and as\n * renders insert them. Opening never moves focus, and a manual popover has no\n * light dismiss or Escape, so the status stays until the application removes\n * it. Where the Popover API is missing the host stays a fixed-position\n * element. Dispose with the owning application.\n */\nexport function wireCornerStatus(root: Root): () => void {\n openWithin(root.nodeType === 9 ? (root as Document).documentElement : root);\n const observer = new MutationObserver((records) => {\n for (const record of records)\n for (const node of record.addedNodes) openWithin(node);\n });\n observer.observe(root, { childList: true, subtree: true });\n return () => observer.disconnect();\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'kerfjs/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/components/actions/toolbar/toolbar.tsx
|
|
4
|
+
var claim = (edges, side) => edges?.includes(side) ? "true" : void 0;
|
|
5
|
+
function Toolbar({
|
|
6
|
+
id,
|
|
7
|
+
leading,
|
|
8
|
+
center,
|
|
9
|
+
trailing,
|
|
10
|
+
label,
|
|
11
|
+
position = "header",
|
|
12
|
+
density = "default",
|
|
13
|
+
dividerSides = "",
|
|
14
|
+
centerAlign = "center",
|
|
15
|
+
responsive = "none",
|
|
16
|
+
responsiveAt = "narrow",
|
|
17
|
+
safeAreaEdges,
|
|
18
|
+
className = "",
|
|
19
|
+
slot
|
|
20
|
+
}) {
|
|
21
|
+
const attributes = {
|
|
22
|
+
id,
|
|
23
|
+
class: `kui-toolbar ${className}`.trim(),
|
|
24
|
+
"data-component": "toolbar",
|
|
25
|
+
"data-density": density === "compact" ? "compact" : void 0,
|
|
26
|
+
"divider-sides": dividerSides || void 0,
|
|
27
|
+
"data-has-center": String(Boolean(center)),
|
|
28
|
+
"data-center-align": centerAlign,
|
|
29
|
+
"data-responsive": responsive,
|
|
30
|
+
"data-responsive-at": responsiveAt,
|
|
31
|
+
"data-safe-area-block-start": claim(safeAreaEdges, "block-start"),
|
|
32
|
+
"data-safe-area-block-end": claim(safeAreaEdges, "block-end"),
|
|
33
|
+
"data-safe-area-inline-start": claim(safeAreaEdges, "inline-start"),
|
|
34
|
+
"data-safe-area-inline-end": claim(safeAreaEdges, "inline-end"),
|
|
35
|
+
"aria-label": label,
|
|
36
|
+
slot
|
|
37
|
+
};
|
|
38
|
+
const zones = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
39
|
+
/* @__PURE__ */ jsx("div", { class: "kui-toolbar__leading", children: leading }),
|
|
40
|
+
/* @__PURE__ */ jsx("div", { class: "kui-toolbar__center", children: center }),
|
|
41
|
+
/* @__PURE__ */ jsx("div", { class: "kui-toolbar__trailing", children: trailing })
|
|
42
|
+
] });
|
|
43
|
+
return position === "footer" ? /* @__PURE__ */ jsx("footer", { ...attributes, children: zones }) : /* @__PURE__ */ jsx("header", { ...attributes, children: zones });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { Toolbar };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=chunk-ZN7KUMPY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/actions/toolbar/toolbar.tsx"],"names":[],"mappings":";;;AAyFA,IAAM,KAAA,GAAQ,CACZ,KAAA,EACA,IAAA,KACI,OAAO,QAAA,CAAS,IAAI,IAAI,MAAA,GAAS,MAAA;AAEhC,SAAS,OAAA,CAAQ;AAAA,EACtB,EAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA,GAAW,QAAA;AAAA,EACX,OAAA,GAAU,SAAA;AAAA,EACV,YAAA,GAAe,EAAA;AAAA,EACf,WAAA,GAAc,QAAA;AAAA,EACd,UAAA,GAAa,MAAA;AAAA,EACb,YAAA,GAAe,QAAA;AAAA,EACf,aAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,EAAiB;AACf,EAAA,MAAM,UAAA,GAAa;AAAA,IACjB,EAAA;AAAA,IACA,KAAA,EAAO,CAAA,YAAA,EAAe,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK;AAAA,IACvC,gBAAA,EAAkB,SAAA;AAAA,IAClB,cAAA,EAAgB,OAAA,KAAY,SAAA,GAAY,SAAA,GAAY,MAAA;AAAA,IACpD,iBAAiB,YAAA,IAAgB,MAAA;AAAA,IACjC,iBAAA,EAAmB,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,IACzC,mBAAA,EAAqB,WAAA;AAAA,IACrB,iBAAA,EAAmB,UAAA;AAAA,IACnB,oBAAA,EAAsB,YAAA;AAAA,IACtB,4BAAA,EAA8B,KAAA,CAAM,aAAA,EAAe,aAAa,CAAA;AAAA,IAChE,0BAAA,EAA4B,KAAA,CAAM,aAAA,EAAe,WAAW,CAAA;AAAA,IAC5D,6BAAA,EAA+B,KAAA,CAAM,aAAA,EAAe,cAAc,CAAA;AAAA,IAClE,2BAAA,EAA6B,KAAA,CAAM,aAAA,EAAe,YAAY,CAAA;AAAA,IAC9D,YAAA,EAAc,KAAA;AAAA,IACd;AAAA,GACF;AACA,EAAA,MAAM,wBACJ,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,sBAAA,EAAwB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,oBAC3C,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,qBAAA,EAAuB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,oBACzC,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,uBAAA,EAAyB,QAAA,EAAA,QAAA,EAAS;AAAA,GAAA,EAC/C,CAAA;AAEF,EAAA,OAAO,QAAA,KAAa,QAAA,mBAClB,GAAA,CAAC,QAAA,EAAA,EAAQ,GAAG,UAAA,EAAa,QAAA,EAAA,KAAA,EAAM,CAAA,mBAE/B,GAAA,CAAC,QAAA,EAAA,EAAQ,GAAG,UAAA,EAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAEnC","file":"chunk-ZN7KUMPY.js","sourcesContent":["import type { KerfUiContent } from '../../../shared/content/semantic-content.js';\nimport type { Sides } from '../../../shared/layout/sides.js';\nimport type { PaneSeparatorSide } from '../../layout/pane/pane.js';\n\nexport type ToolbarPosition = 'header' | 'footer';\n/** Control-band density: `default` (60px with 44px groups) or `compact`. */\nexport type ToolbarDensity = 'default' | 'compact';\n\nexport interface ToolbarProps {\n /**\n * The toolbar's id, so app code can address it: name it as a scrolling\n * List's chrome in `wireScrollDividers({ targets })`, or find it in tests.\n */\n id?: string;\n leading?: KerfUiContent;\n center?: KerfUiContent;\n trailing?: KerfUiContent;\n label?: string;\n /** Use footer semantics for a bottom toolbar; defaults to header. */\n position?: ToolbarPosition;\n /**\n * `compact` sizes the toolbar to a 34px control band with 3px block\n * insets — 40px tall — for a header embedded in a panel or card. Fill it\n * with `ToolbarControlGroup size=\"compact\"` groups; inline insets and the\n * gap between zones are unchanged. Composites that render a Toolbar from a\n * `ToolbarConfig` (Workbench, CollapsiblePanel, NavStack, SplitView) forward\n * it and size the groups they compose to match. Defaults to `default`.\n */\n density?: ToolbarDensity;\n /**\n * Physical divider edges in canonical top/right/bottom/left order, drawn\n * always. Defaults to none: a toolbar pinned over or under scrolling content\n * gets its divider from the scroll state instead — a `Pane` draws the line\n * between its chrome and content while content is scrolled away beneath it,\n * and `wireScrollDividers` `targets` can name a toolbar as chrome, which\n * then draws its facing side the same way.\n */\n dividerSides?: Sides;\n /** `balanced` gives both side zones equal tracks, centering the middle zone on the toolbar even if only one side has controls. */\n centerAlign?: 'center' | 'stretch' | 'balanced';\n /**\n * Component-owned responsive layout; applications choose the policy rather\n * than restyling toolbar internals. Under every policy the trailing zone\n * wraps its groups instead of clipping an action, and the center zone keeps\n * its whole content width: when the zones do not fit one row, the leading\n * title truncates with an ellipsis rather than the center overlapping it.\n * - `none` keeps one row; the leading identity truncates first.\n * - `stack` stacks the zones at `responsiveAt`, wrapping stacked control\n * groups onto further rows.\n * - `wrap` keeps one row while every zone fits at its natural width, and\n * otherwise moves the trailing zone below a whole leading identity.\n * - `center-priority` gives an expanded center control the full row.\n * - `trailing-priority` moves an expanded trailing control to a full row\n * below the leading identity at `responsiveAt`.\n */\n responsive?:\n 'none' | 'stack' | 'wrap' | 'center-priority' | 'trailing-priority';\n /** Container width at which `stack` or `trailing-priority` activates. */\n responsiveAt?: 'compact' | 'narrow';\n /**\n * Screen edges this toolbar claims for device safe-area compensation, for an\n * app bar or bottom bar that sits directly at a screen edge rather than in a\n * Pane header or footer. Each listed side pads by the inset its surrounding\n * layout reports through `--kui-edge-inset-*`, or the full device inset when\n * nothing routes that edge, while the toolbar's box and dividers paint\n * through. Omitted, the toolbar pads only the inline edges an owner such as\n * a Pane header hands it, and never a block edge.\n */\n safeAreaEdges?: readonly PaneSeparatorSide[];\n className?: string;\n /** Native named-slot assignment when composed inside a web component. */\n slot?: string;\n}\n\n/**\n * A toolbar's configuration, apart from its content: the props a composite\n * that renders a `Toolbar` for the app (a Workbench or CollapsiblePanel\n * toolbar) forwards, so the app configures that toolbar instead of styling it.\n */\nexport type ToolbarConfig = Pick<\n ToolbarProps,\n | 'density'\n | 'dividerSides'\n | 'centerAlign'\n | 'responsive'\n | 'responsiveAt'\n | 'safeAreaEdges'\n>;\n\nconst claim = (\n edges: readonly PaneSeparatorSide[] | undefined,\n side: PaneSeparatorSide,\n) => (edges?.includes(side) ? 'true' : undefined);\n\nexport function Toolbar({\n id,\n leading,\n center,\n trailing,\n label,\n position = 'header',\n density = 'default',\n dividerSides = '',\n centerAlign = 'center',\n responsive = 'none',\n responsiveAt = 'narrow',\n safeAreaEdges,\n className = '',\n slot,\n}: ToolbarProps) {\n const attributes = {\n id,\n class: `kui-toolbar ${className}`.trim(),\n 'data-component': 'toolbar',\n 'data-density': density === 'compact' ? 'compact' : undefined,\n 'divider-sides': dividerSides || undefined,\n 'data-has-center': String(Boolean(center)),\n 'data-center-align': centerAlign,\n 'data-responsive': responsive,\n 'data-responsive-at': responsiveAt,\n 'data-safe-area-block-start': claim(safeAreaEdges, 'block-start'),\n 'data-safe-area-block-end': claim(safeAreaEdges, 'block-end'),\n 'data-safe-area-inline-start': claim(safeAreaEdges, 'inline-start'),\n 'data-safe-area-inline-end': claim(safeAreaEdges, 'inline-end'),\n 'aria-label': label,\n slot,\n };\n const zones = (\n <>\n <div class=\"kui-toolbar__leading\">{leading}</div>\n <div class=\"kui-toolbar__center\">{center}</div>\n <div class=\"kui-toolbar__trailing\">{trailing}</div>\n </>\n );\n return position === 'footer' ? (\n <footer {...attributes}>{zones}</footer>\n ) : (\n <header {...attributes}>{zones}</header>\n );\n}\n\nexport type { Sides } from '../../../shared/layout/sides.js';\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'kerfjs/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/shared/content/list-icon-tile.ts
|
|
4
|
+
var tileTones = [
|
|
5
|
+
"neutral",
|
|
6
|
+
"brand",
|
|
7
|
+
"success",
|
|
8
|
+
"warning",
|
|
9
|
+
"danger"
|
|
10
|
+
];
|
|
11
|
+
var unsafeColor = /[;{}<>"'\\]|\p{Cc}/u;
|
|
12
|
+
function colorDeclaration(value, property) {
|
|
13
|
+
const color = value.trim();
|
|
14
|
+
if (!color || unsafeColor.test(color))
|
|
15
|
+
throw new TypeError(`iconTile ${property} requires one CSS color value.`);
|
|
16
|
+
return color;
|
|
17
|
+
}
|
|
18
|
+
function listIconTilePresentation(tile, component) {
|
|
19
|
+
if (tile === void 0)
|
|
20
|
+
return { tile: void 0, tone: void 0, style: void 0 };
|
|
21
|
+
if (typeof tile === "string") {
|
|
22
|
+
if (!tileTones.includes(tile))
|
|
23
|
+
throw new RangeError(`iconTile received unknown tone ${String(tile)}.`);
|
|
24
|
+
return { tile: "tone", tone: tile, style: void 0 };
|
|
25
|
+
}
|
|
26
|
+
const declarations = [
|
|
27
|
+
`--_kui-${component}-icon-tile-fill: ${colorDeclaration(tile.color, "color")}`
|
|
28
|
+
];
|
|
29
|
+
if (tile.foreground !== void 0)
|
|
30
|
+
declarations.push(
|
|
31
|
+
`--_kui-${component}-icon-tile-foreground: ${colorDeclaration(tile.foreground, "foreground")}`
|
|
32
|
+
);
|
|
33
|
+
return { tile: "color", tone: void 0, style: declarations.join("; ") };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/shared/dom/draggable.ts
|
|
37
|
+
function nativeDraggable(draggable, placeholder) {
|
|
38
|
+
if (draggable === void 0) return void 0;
|
|
39
|
+
return draggable && !placeholder ? "true" : "false";
|
|
40
|
+
}
|
|
41
|
+
var CAMEL_BOUNDARY = /(?<=[\p{Ll}\p{N}])(?=\p{Lu})|(?<=\p{Lu})(?=\p{Lu}\p{Ll})/u;
|
|
42
|
+
function withWordBreaks(label) {
|
|
43
|
+
if (typeof label !== "string") return label;
|
|
44
|
+
const parts = label.split(CAMEL_BOUNDARY);
|
|
45
|
+
if (parts.length < 2) return label;
|
|
46
|
+
return /* @__PURE__ */ jsx(Fragment, { children: parts.map((part, index) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
47
|
+
index > 0 ? /* @__PURE__ */ jsx("wbr", {}) : null,
|
|
48
|
+
part
|
|
49
|
+
] })) });
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { listIconTilePresentation, nativeDraggable, withWordBreaks };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=chunk-ZNROKDSZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shared/content/list-icon-tile.ts","../src/shared/dom/draggable.ts","../src/shared/text/word-breaks.tsx"],"names":[],"mappings":";;;AAoBA,IAAM,SAAA,GAAyC;AAAA,EAC7C,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AACA,IAAM,WAAA,GAAc,qBAAA;AAEpB,SAAS,gBAAA,CAAiB,OAAe,QAAA,EAA0B;AACjE,EAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,EAAK;AACzB,EAAA,IAAI,CAAC,KAAA,IAAS,WAAA,CAAY,IAAA,CAAK,KAAK,CAAA;AAClC,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,SAAA,EAAY,QAAQ,CAAA,8BAAA,CAAgC,CAAA;AAC1E,EAAA,OAAO,KAAA;AACT;AAUO,SAAS,wBAAA,CACd,MACA,SAAA,EAC0B;AAC1B,EAAA,IAAI,IAAA,KAAS,MAAA;AACX,IAAA,OAAO,EAAE,IAAA,EAAM,MAAA,EAAW,IAAA,EAAM,MAAA,EAAW,OAAO,MAAA,EAAU;AAC9D,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,IAAI,CAAC,SAAA,CAAU,QAAA,CAAS,IAAI,CAAA;AAC1B,MAAA,MAAM,IAAI,UAAA,CAAW,CAAA,+BAAA,EAAkC,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;AACxE,IAAA,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,OAAO,MAAA,EAAU;AAAA,EACtD;AACA,EAAA,MAAM,YAAA,GAAe;AAAA,IACnB,UAAU,SAAS,CAAA,iBAAA,EAAoB,iBAAiB,IAAA,CAAK,KAAA,EAAO,OAAO,CAAC,CAAA;AAAA,GAC9E;AACA,EAAA,IAAI,KAAK,UAAA,KAAe,MAAA;AACtB,IAAA,YAAA,CAAa,IAAA;AAAA,MACX,UAAU,SAAS,CAAA,uBAAA,EAA0B,iBAAiB,IAAA,CAAK,UAAA,EAAY,YAAY,CAAC,CAAA;AAAA,KAC9F;AACF,EAAA,OAAO,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,QAAW,KAAA,EAAO,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA,EAAE;AAC1E;;;AC3DO,SAAS,eAAA,CACd,WACA,WAAA,EAC8B;AAC9B,EAAA,IAAI,SAAA,KAAc,QAAW,OAAO,MAAA;AACpC,EAAA,OAAO,SAAA,IAAa,CAAC,WAAA,GAAc,MAAA,GAAS,OAAA;AAC9C;ACNA,IAAM,cAAA,GACJ,2DAAA;AAQK,SAAS,eAAe,KAAA,EAA6C;AAC1E,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,cAAc,CAAA;AACxC,EAAA,IAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,OAAO,KAAA;AAC7B,EAAA,uCAEK,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,0BAChB,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,KAAA,GAAQ,CAAA,mBAAI,GAAA,CAAC,KAAA,EAAA,EAAI,CAAA,GAAK,IAAA;AAAA,IACtB;AAAA,GAAA,EACH,CACD,CAAA,EACH,CAAA;AAEJ","file":"chunk-ZNROKDSZ.js","sourcesContent":["import type { CssColor, CssForegroundColor } from '../styles/css-values.js';\n\n/**\n * Quiet tile palette for a list row's leading icon: the same fill, border, and\n * foreground roles as `ToolbarControlGroup`'s `tileTone`.\n */\nexport type ListIconTileTone =\n 'neutral' | 'brand' | 'success' | 'warning' | 'danger';\n\n/** A list row's leading icon tile filled with an application-chosen color. */\nexport interface ListIconTileColor {\n /** The tile fill: `uiColor()`, `colorVar()`, or `fillColor()` for an app color such as `#e5484d`. */\n color: CssColor;\n /** The glyph color over the fill. Defaults to black or white, whichever contrasts with `color`. */\n foreground?: CssForegroundColor;\n}\n\n/** A filled leading icon tile: a quiet tone preset or an application color. */\nexport type ListIconTile = ListIconTileTone | ListIconTileColor;\n\nconst tileTones: readonly ListIconTileTone[] = [\n 'neutral',\n 'brand',\n 'success',\n 'warning',\n 'danger',\n];\nconst unsafeColor = /[;{}<>\"'\\\\]|\\p{Cc}/u;\n\nfunction colorDeclaration(value: string, property: string): string {\n const color = value.trim();\n if (!color || unsafeColor.test(color))\n throw new TypeError(`iconTile ${property} requires one CSS color value.`);\n return color;\n}\n\n/** Root data attributes and the icon slot's custom properties for a tile. */\nexport interface ListIconTilePresentation {\n tile: 'tone' | 'color' | undefined;\n tone: ListIconTileTone | undefined;\n style: string | undefined;\n}\n\n/** Validate a row's `iconTile` and resolve how its icon slot renders it. */\nexport function listIconTilePresentation(\n tile: ListIconTile | undefined,\n component: 'list-item' | 'list-action-row',\n): ListIconTilePresentation {\n if (tile === undefined)\n return { tile: undefined, tone: undefined, style: undefined };\n if (typeof tile === 'string') {\n if (!tileTones.includes(tile))\n throw new RangeError(`iconTile received unknown tone ${String(tile)}.`);\n return { tile: 'tone', tone: tile, style: undefined };\n }\n const declarations = [\n `--_kui-${component}-icon-tile-fill: ${colorDeclaration(tile.color, 'color')}`,\n ];\n if (tile.foreground !== undefined)\n declarations.push(\n `--_kui-${component}-icon-tile-foreground: ${colorDeclaration(tile.foreground, 'foreground')}`,\n );\n return { tile: 'color', tone: undefined, style: declarations.join('; ') };\n}\n","/**\n * The native `draggable` attribute value for a component root: omitted unless\n * the author set it, and never `\"true\"` on an inert loading placeholder.\n */\nexport function nativeDraggable(\n draggable: boolean | undefined,\n placeholder: boolean,\n): 'true' | 'false' | undefined {\n if (draggable === undefined) return undefined;\n return draggable && !placeholder ? 'true' : 'false';\n}\n","import type { SafeHtml } from 'kerfjs';\n\n// A lowercase letter or digit followed by an uppercase letter (\"ticketBoard\"),\n// or an acronym followed by a capitalized word (\"HTMLParser\" → \"HTML|Parser\").\nconst CAMEL_BOUNDARY =\n /(?<=[\\p{Ll}\\p{N}])(?=\\p{Lu})|(?<=\\p{Lu})(?=\\p{Lu}\\p{Ll})/u;\n\n/**\n * A label with line-break opportunities (`<wbr>`) at camelCase boundaries, so a\n * wrapping row breaks a long identifier-like name (`QuickTicketComposer`) at a\n * word boundary instead of mid-word. The text, and so the accessible name, is\n * unchanged; a `SafeHtml` label is returned as given.\n */\nexport function withWordBreaks(label: string | SafeHtml): string | SafeHtml {\n if (typeof label !== 'string') return label;\n const parts = label.split(CAMEL_BOUNDARY);\n if (parts.length < 2) return label;\n return (\n <>\n {parts.map((part, index) => (\n <>\n {index > 0 ? <wbr /> : null}\n {part}\n </>\n ))}\n </>\n );\n}\n"]}
|