@kerfjs/ui 5.0.0-beta.95 → 5.0.0-beta.97
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 +95 -55
- package/ai/component-catalog.json +1330 -94
- package/ai/component-composition-rules.json +11 -0
- package/ai/component-composition.d.ts +3 -0
- package/ai/component-composition.json +955 -23
- package/ai/component-composition.schema.json +4 -0
- package/ai/components/README.md +12 -0
- package/ai/components/badge.md +6 -2
- package/ai/components/choice-chips.md +80 -0
- package/ai/components/column-track.md +78 -0
- package/ai/components/combobox.md +88 -0
- package/ai/components/content-item.md +2 -0
- package/ai/components/content-swap.md +78 -0
- package/ai/components/corner-status.md +88 -0
- package/ai/components/document-baseline.md +3 -1
- package/ai/components/edge-activity-indicator.md +81 -0
- package/ai/components/file-picker.md +88 -0
- package/ai/components/foundation.md +1 -1
- package/ai/components/framed-list.md +80 -0
- package/ai/components/grid.md +2 -1
- package/ai/components/icon-button.md +82 -0
- package/ai/components/icon-toggle-button.md +80 -0
- package/ai/components/list-action-row.md +20 -7
- package/ai/components/list-item.md +17 -7
- package/ai/components/list.md +5 -2
- package/ai/components/nav-stack.md +2 -1
- package/ai/components/popup-menu.md +2 -2
- package/ai/components/row.md +1 -1
- package/ai/components/select.md +2 -1
- package/ai/components/split-button.md +80 -0
- package/ai/components/split-view.md +1 -1
- package/ai/components/state-banner.md +4 -2
- package/ai/components/summary-row.md +85 -0
- package/ai/components/sunken-panel.md +1 -1
- package/ai/components/surface-scaffold.md +8 -2
- package/ai/components/text.md +3 -0
- package/ai/components/toolbar-control-group.md +4 -2
- package/ai/components/toolbar-text.md +1 -0
- package/ai/components/toolbar.md +1 -0
- package/ai/components/value-table.md +9 -2
- package/ai/components/wa-button-group.md +2 -1
- package/ai/components/wa-button.md +5 -1
- package/ai/public-api-signatures-v1.md +1063 -52
- package/ai/skill.md +55 -53
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/dist/anchored-surface.d.ts +13 -2
- package/dist/anchored-surface.js +1 -1
- package/dist/app-tab.js +1 -1
- package/dist/badge.d.ts +31 -2
- package/dist/badge.js +2 -1
- package/dist/browser/choice-chips.js +3 -0
- package/dist/browser/column-track.js +3 -0
- package/dist/browser/combobox.js +3 -0
- package/dist/browser/content-swap.js +3 -0
- package/dist/browser/corner-status.js +3 -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/icon-button.js +4 -0
- package/dist/browser/icon-toggle-button.js +4 -0
- package/dist/browser/list-action-row.js +1 -0
- package/dist/browser/split-button.js +5 -0
- package/dist/browser/summary-row.js +3 -0
- package/dist/catalog-resources.d.ts +1 -0
- package/dist/catalog.d.ts +1 -0
- package/dist/catalog.js +16 -13
- package/dist/catalog.js.map +1 -1
- package/dist/chip.d.ts +1 -0
- package/dist/choice-chips.d.ts +58 -0
- package/dist/choice-chips.js +3 -0
- package/dist/choice-chips.js.map +1 -0
- package/dist/chunk-2MSPNRWJ.js +82 -0
- package/dist/chunk-2MSPNRWJ.js.map +1 -0
- package/dist/{chunk-3PO7JEK7.js → chunk-36TL6BCR.js} +18 -4
- package/dist/chunk-36TL6BCR.js.map +1 -0
- package/dist/{chunk-MORVLMDG.js → chunk-44A6LP54.js} +3 -3
- package/dist/chunk-44A6LP54.js.map +1 -0
- package/dist/{chunk-7QQ3HE47.js → chunk-4LOK4634.js} +7 -3
- package/dist/chunk-4LOK4634.js.map +1 -0
- package/dist/chunk-4UB5Z3ZZ.js +68 -0
- package/dist/chunk-4UB5Z3ZZ.js.map +1 -0
- package/dist/{chunk-PGL6TXFW.js → chunk-6BRRUPJY.js} +6 -2
- package/dist/chunk-6BRRUPJY.js.map +1 -0
- package/dist/{chunk-KAJVVN7Q.js → chunk-6NOLL5KG.js} +2 -2
- package/dist/{chunk-KAJVVN7Q.js.map → chunk-6NOLL5KG.js.map} +1 -1
- package/dist/{chunk-IOS2NXW7.js → chunk-76PWEN5Y.js} +13 -2
- package/dist/chunk-76PWEN5Y.js.map +1 -0
- package/dist/{chunk-B3TROLC2.js → chunk-7IUEBNCO.js} +7 -3
- package/dist/chunk-7IUEBNCO.js.map +1 -0
- package/dist/{chunk-75YOTZ25.js → chunk-AYHC62OZ.js} +10 -6
- package/dist/chunk-AYHC62OZ.js.map +1 -0
- package/dist/{chunk-RZYQFGMM.js → chunk-BBU2SPRE.js} +4 -4
- package/dist/{chunk-RZYQFGMM.js.map → chunk-BBU2SPRE.js.map} +1 -1
- package/dist/{chunk-QCLLBMLA.js → chunk-BU23Z5HZ.js} +37 -12
- package/dist/chunk-BU23Z5HZ.js.map +1 -0
- package/dist/{chunk-BYHGRKC3.js → chunk-CMLPFIC5.js} +3 -1
- package/dist/chunk-CMLPFIC5.js.map +1 -0
- package/dist/{chunk-3XPGJUUQ.js → chunk-D5RGM3XA.js} +3 -2
- package/dist/chunk-D5RGM3XA.js.map +1 -0
- package/dist/chunk-EIET4QLK.js +51 -0
- package/dist/chunk-EIET4QLK.js.map +1 -0
- package/dist/chunk-ETCWQLJV.js +85 -0
- package/dist/chunk-ETCWQLJV.js.map +1 -0
- package/dist/chunk-FDZNYD4C.js +138 -0
- package/dist/chunk-FDZNYD4C.js.map +1 -0
- package/dist/{chunk-XKZPBRU7.js → chunk-FOQK4F3L.js} +25 -5
- package/dist/chunk-FOQK4F3L.js.map +1 -0
- package/dist/{chunk-FL6J644M.js → chunk-GJYQ27C2.js} +4 -2
- package/dist/chunk-GJYQ27C2.js.map +1 -0
- package/dist/{chunk-DL55BSQX.js → chunk-GZE2XVKC.js} +8 -1
- package/dist/chunk-GZE2XVKC.js.map +1 -0
- package/dist/{chunk-YP2G67S7.js → chunk-HO6FU3G7.js} +2 -2
- package/dist/{chunk-YP2G67S7.js.map → chunk-HO6FU3G7.js.map} +1 -1
- package/dist/{chunk-3DXHNLME.js → chunk-IGTWXPTN.js} +25 -8
- package/dist/chunk-IGTWXPTN.js.map +1 -0
- package/dist/chunk-IKS72C6P.js +53 -0
- package/dist/chunk-IKS72C6P.js.map +1 -0
- package/dist/chunk-JYD7G4RG.js +130 -0
- package/dist/chunk-JYD7G4RG.js.map +1 -0
- package/dist/{chunk-LAZLBC2Q.js → chunk-KH4KEMSP.js} +33 -2
- package/dist/chunk-KH4KEMSP.js.map +1 -0
- package/dist/chunk-LL45C7BB.js +122 -0
- package/dist/chunk-LL45C7BB.js.map +1 -0
- package/dist/chunk-M2NRCFRO.js +45 -0
- package/dist/chunk-M2NRCFRO.js.map +1 -0
- package/dist/chunk-MJ5RU6XT.js +173 -0
- package/dist/chunk-MJ5RU6XT.js.map +1 -0
- package/dist/{chunk-GIUOXAVL.js → chunk-P74VXMB6.js} +39 -19
- package/dist/chunk-P74VXMB6.js.map +1 -0
- package/dist/{chunk-TKDDTLG5.js → chunk-PBT3CPPY.js} +31 -3
- package/dist/chunk-PBT3CPPY.js.map +1 -0
- package/dist/chunk-PRG4CL3Q.js +88 -0
- package/dist/chunk-PRG4CL3Q.js.map +1 -0
- package/dist/chunk-QH5KOFNS.js +39 -0
- package/dist/chunk-QH5KOFNS.js.map +1 -0
- package/dist/{chunk-CD5TOO22.js → chunk-QIAPOWHH.js} +2 -2
- package/dist/{chunk-CD5TOO22.js.map → chunk-QIAPOWHH.js.map} +1 -1
- package/dist/chunk-QQ3TTWFH.js +29 -0
- package/dist/chunk-QQ3TTWFH.js.map +1 -0
- package/dist/chunk-QYMJHS4K.js +36 -0
- package/dist/chunk-QYMJHS4K.js.map +1 -0
- package/dist/chunk-R42D2BAO.js +44 -0
- package/dist/chunk-R42D2BAO.js.map +1 -0
- package/dist/chunk-S2XULQEK.js +52 -0
- package/dist/chunk-S2XULQEK.js.map +1 -0
- package/dist/{chunk-NMWDHZVM.js → chunk-S4Y3YTAI.js} +2 -2
- package/dist/{chunk-NMWDHZVM.js.map → chunk-S4Y3YTAI.js.map} +1 -1
- package/dist/{chunk-O27D24CA.js → chunk-TDMHA7C3.js} +3 -2
- package/dist/chunk-TDMHA7C3.js.map +1 -0
- package/dist/chunk-U6QYTMDB.js +85 -0
- package/dist/chunk-U6QYTMDB.js.map +1 -0
- package/dist/{chunk-QQICWWNX.js → chunk-V6W56V3N.js} +18 -7
- package/dist/chunk-V6W56V3N.js.map +1 -0
- package/dist/chunk-W4IK7AWD.js +73 -0
- package/dist/chunk-W4IK7AWD.js.map +1 -0
- package/dist/{chunk-TNG3XKHB.js → chunk-Y3LC7JQO.js} +26 -8
- package/dist/chunk-Y3LC7JQO.js.map +1 -0
- package/dist/chunk-YWQGSUF2.js +84 -0
- package/dist/chunk-YWQGSUF2.js.map +1 -0
- package/dist/{chunk-MTCTX25G.js → chunk-YXOMI7ES.js} +1 -1
- package/dist/chunk-YXOMI7ES.js.map +1 -0
- package/dist/chunk-ZKKO4MHC.js +25 -0
- package/dist/chunk-ZKKO4MHC.js.map +1 -0
- package/dist/collapsible-panel.d.ts +10 -3
- package/dist/collapsible-panel.js +8 -5
- package/dist/collapsible-panel.js.map +1 -1
- 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 +21 -4
- package/dist/content-item.js +1 -1
- 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/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/extension-attributes-mu8MFUl0.d.ts +13 -0
- package/dist/file-picker.d.ts +47 -0
- package/dist/file-picker.js +3 -0
- package/dist/file-picker.js.map +1 -0
- 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.js +1 -1
- package/dist/help-tags-register.js +1 -1
- package/dist/icon-button.d.ts +46 -0
- package/dist/icon-button.js +6 -0
- package/dist/icon-button.js.map +1 -0
- package/dist/icon-toggle-button.d.ts +42 -0
- package/dist/icon-toggle-button.js +6 -0
- package/dist/icon-toggle-button.js.map +1 -0
- package/dist/index.d.ts +23 -6
- package/dist/index.js +44 -27
- package/dist/list-action-row.d.ts +47 -10
- package/dist/list-action-row.js +2 -1
- package/dist/list-header.js +1 -1
- package/dist/list-inset-text.js +1 -1
- package/dist/list-item.d.ts +10 -2
- package/dist/list-item.js +1 -1
- package/dist/list.d.ts +37 -5
- package/dist/list.js +1 -1
- package/dist/nav-stack.d.ts +1 -0
- package/dist/nav-stack.js +2 -1
- package/dist/pane.js +2 -1
- package/dist/popup-menu-register.js +18 -1
- package/dist/popup-menu-register.js.map +1 -1
- package/dist/popup-menu.d.ts +28 -3
- package/dist/popup-menu.js +1 -1
- package/dist/row.d.ts +6 -2
- package/dist/row.js +1 -1
- package/dist/select-register.js +1 -1
- package/dist/select.js +2 -1
- package/dist/split-button.d.ts +57 -0
- package/dist/split-button.js +7 -0
- package/dist/split-button.js.map +1 -0
- package/dist/split-view.d.ts +20 -2
- package/dist/split-view.js +22 -1
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.d.ts +17 -2
- package/dist/state-banner.js +2 -1
- package/dist/styles/badge.css +27 -0
- package/dist/styles/catalog/components/catalog-example.css +7 -3
- package/dist/styles/choice-chips.css +154 -0
- package/dist/styles/column-track.css +57 -0
- package/dist/styles/combobox.css +113 -0
- package/dist/styles/components/actions/icon-button/icon-button.css +22 -0
- package/dist/styles/components/actions/icon-toggle-button/icon-toggle-button.css +83 -0
- package/dist/styles/components/actions/popup-menu/popup-menu.css +69 -1
- package/dist/styles/components/actions/split-button/split-button.css +95 -0
- package/dist/styles/components/actions/toolbar/toolbar.css +16 -9
- package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +152 -48
- package/dist/styles/components/actions/toolbar-text/toolbar-text.css +23 -0
- package/dist/styles/components/collections/framed-list/framed-list.css +47 -0
- package/dist/styles/components/collections/list/list.css +44 -0
- package/dist/styles/components/collections/list-action-row/list-action-row.css +53 -0
- package/dist/styles/components/collections/list-item/list-item.css +59 -0
- package/dist/styles/components/collections/summary-row/summary-row.css +161 -0
- package/dist/styles/components/data-display/value-table/value-table.css +76 -0
- package/dist/styles/components/feedback/badge/badge.css +27 -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/state-banner/state-banner.css +38 -0
- package/dist/styles/components/forms/choice-chips/choice-chips.css +154 -0
- package/dist/styles/components/forms/combobox/combobox.css +113 -0
- package/dist/styles/components/forms/file-picker/file-picker.css +81 -0
- package/dist/styles/components/forms/token-search-field/token-search-field.css +30 -1
- 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/pane/pane.css +2 -8
- package/dist/styles/components/layout/workbench/workbench.css +2 -8
- package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +1 -4
- package/dist/styles/components/surfaces/content-item/content-item.css +18 -0
- package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +1 -4
- package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +119 -0
- package/dist/styles/components/typography/text/text.css +62 -0
- package/dist/styles/content-item.css +18 -0
- package/dist/styles/content-swap.css +154 -0
- package/dist/styles/corner-status.css +60 -0
- package/dist/styles/document.css +65 -0
- package/dist/styles/edge-activity-indicator.css +127 -0
- package/dist/styles/file-picker.css +81 -0
- package/dist/styles/foundation.css +8 -0
- package/dist/styles/framed-list.css +47 -0
- package/dist/styles/icon-button.css +22 -0
- package/dist/styles/icon-toggle-button.css +83 -0
- package/dist/styles/list-action-row.css +53 -0
- package/dist/styles/list-item.css +59 -0
- package/dist/styles/list.css +44 -0
- package/dist/styles/pane.css +2 -8
- package/dist/styles/popup-menu.css +69 -1
- package/dist/styles/split-button.css +95 -0
- package/dist/styles/state-banner.css +38 -0
- package/dist/styles/styles.css +12 -0
- package/dist/styles/summary-row.css +161 -0
- package/dist/styles/sunken-panel.css +1 -4
- package/dist/styles/surface-scaffold.css +119 -0
- package/dist/styles/tab-navigator.css +1 -4
- package/dist/styles/text.css +62 -0
- package/dist/styles/token-search-field.css +30 -1
- package/dist/styles/toolbar-control-group.css +152 -48
- package/dist/styles/toolbar-text.css +23 -0
- package/dist/styles/toolbar.css +16 -9
- package/dist/styles/value-table.css +76 -0
- package/dist/styles/webawesome.css +4 -4
- package/dist/styles/workbench.css +2 -8
- 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 +8 -1
- package/dist/sunken-panel.js +2 -1
- package/dist/surface-scaffold-register.js +7 -1
- package/dist/surface-scaffold-register.js.map +1 -1
- package/dist/surface-scaffold.d.ts +75 -2
- package/dist/surface-scaffold.js +2 -1
- package/dist/tab-navigator.js +4 -1
- package/dist/tab-navigator.js.map +1 -1
- package/dist/text.d.ts +39 -4
- package/dist/text.js +1 -1
- package/dist/toolbar-control-group.d.ts +8 -1
- package/dist/toolbar-control-group.js +1 -1
- package/dist/toolbar-text.d.ts +14 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +14 -3
- package/dist/toolbar.js +1 -1
- package/dist/value-table.d.ts +20 -2
- package/dist/value-table.js +1 -1
- package/dist/wire-catalog.d.ts +1 -0
- package/dist/wire-comboboxes.d.ts +26 -0
- package/dist/wire-comboboxes.js +3 -0
- package/dist/wire-comboboxes.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 +26 -0
- package/dist/wire-file-pickers.js +3 -0
- package/dist/wire-file-pickers.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-token-search-fields.js +1 -1
- package/dist/workbench.d.ts +1 -0
- package/dist/workbench.js +2 -1
- package/docs/accessibility.md +45 -2
- package/docs/anchored-surface.md +15 -7
- package/docs/app-layouts.md +2 -1
- package/docs/component-contract.md +30 -6
- package/docs/component-selection.md +165 -13
- 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-dark.svg +1 -0
- package/docs/design/templates/choice-chips.svg +1 -0
- 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 -1
- package/docs/design/templates/list-action-row.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-dark.svg +1 -1
- package/docs/design/templates/state-banner.svg +1 -1
- package/docs/design/templates.md +1 -1
- package/docs/document-baseline.md +51 -0
- package/docs/layout.md +52 -1
- package/docs/split-view.md +20 -2
- package/docs/sunken-panel.md +13 -0
- package/docs/surface-scaffold.md +66 -1
- package/docs/ux-demo.md +1 -0
- package/docs/webawesome-theme.md +6 -2
- package/llms.txt +138 -16
- package/package.json +89 -1
- package/dist/chunk-3DXHNLME.js.map +0 -1
- package/dist/chunk-3PO7JEK7.js.map +0 -1
- package/dist/chunk-3XPGJUUQ.js.map +0 -1
- package/dist/chunk-4Y4L5YEI.js +0 -66
- package/dist/chunk-4Y4L5YEI.js.map +0 -1
- package/dist/chunk-75YOTZ25.js.map +0 -1
- package/dist/chunk-7QQ3HE47.js.map +0 -1
- package/dist/chunk-A7DYEERU.js +0 -59
- package/dist/chunk-A7DYEERU.js.map +0 -1
- package/dist/chunk-B3TROLC2.js.map +0 -1
- package/dist/chunk-BYHGRKC3.js.map +0 -1
- package/dist/chunk-DL55BSQX.js.map +0 -1
- package/dist/chunk-FL6J644M.js.map +0 -1
- package/dist/chunk-GIUOXAVL.js.map +0 -1
- package/dist/chunk-IOS2NXW7.js.map +0 -1
- package/dist/chunk-J3AWE5I4.js +0 -50
- package/dist/chunk-J3AWE5I4.js.map +0 -1
- package/dist/chunk-LAZLBC2Q.js.map +0 -1
- package/dist/chunk-MORVLMDG.js.map +0 -1
- package/dist/chunk-MTCTX25G.js.map +0 -1
- package/dist/chunk-O27D24CA.js.map +0 -1
- package/dist/chunk-PGL6TXFW.js.map +0 -1
- package/dist/chunk-QCLLBMLA.js.map +0 -1
- package/dist/chunk-QQICWWNX.js.map +0 -1
- package/dist/chunk-TKDDTLG5.js.map +0 -1
- package/dist/chunk-TNG3XKHB.js.map +0 -1
- package/dist/chunk-XKZPBRU7.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"wire-corner-status.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
type Root = HTMLElement | Document;
|
|
2
|
+
/** Files a picker reported, and how they arrived. */
|
|
3
|
+
interface FilePickerSelection {
|
|
4
|
+
/** The trigger or drop zone element. */
|
|
5
|
+
picker: HTMLElement;
|
|
6
|
+
/** Its `pickerId`, when set. */
|
|
7
|
+
id?: string;
|
|
8
|
+
files: File[];
|
|
9
|
+
via: 'browse' | 'drop';
|
|
10
|
+
}
|
|
11
|
+
interface WireFilePickersOptions {
|
|
12
|
+
onFiles: (selection: FilePickerSelection) => void;
|
|
13
|
+
}
|
|
14
|
+
/** Whether a file matches a native `accept` list (`.png, image/*, text/plain`). */
|
|
15
|
+
declare function fileMatchesAccept(file: File, accept: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Report files chosen through any `FilePickerTrigger` or `FileDropZone` below
|
|
18
|
+
* root, or dropped on a `FileDropZone`, and mark a zone `data-dragging` while
|
|
19
|
+
* files are dragged over it. Dropped files are filtered by the input's
|
|
20
|
+
* `accept` (and to one when it is not `multiple`); a disabled picker ignores
|
|
21
|
+
* drops. The input is reset after each report, so choosing the same file again
|
|
22
|
+
* reports again. Dispose with the owning application.
|
|
23
|
+
*/
|
|
24
|
+
declare function wireFilePickers(root: Root, { onFiles }: WireFilePickersOptions): () => void;
|
|
25
|
+
|
|
26
|
+
export { type FilePickerSelection, type WireFilePickersOptions, fileMatchesAccept, wireFilePickers };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"wire-file-pickers.js"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** Which edge of the target row the moved rows land beside. */
|
|
2
|
+
type ListDropPosition = 'before' | 'after';
|
|
3
|
+
/** How the person asked for the move. */
|
|
4
|
+
type ListReorderSource = 'pointer' | 'keyboard';
|
|
5
|
+
/** The row the moved rows land beside, and on which side of it. */
|
|
6
|
+
interface ListReorderTarget {
|
|
7
|
+
id: string;
|
|
8
|
+
position: ListDropPosition;
|
|
9
|
+
}
|
|
10
|
+
/** One requested reorder. The application applies it to its own ordered state. */
|
|
11
|
+
interface ListReorder {
|
|
12
|
+
/** The containing list's `data-list-id`, when it has one. */
|
|
13
|
+
listId?: string;
|
|
14
|
+
/** The moved rows' `itemId`s, in their current order. */
|
|
15
|
+
sourceIds: string[];
|
|
16
|
+
target: ListReorderTarget;
|
|
17
|
+
source: ListReorderSource;
|
|
18
|
+
}
|
|
19
|
+
interface WireListReorderOptions {
|
|
20
|
+
/** Apply the change synchronously (for example with `reorderListItems`) and re-render. */
|
|
21
|
+
onReorder: (change: ListReorder) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Move `sourceIds` (kept in their current relative order) to `target`'s side
|
|
25
|
+
* of the target row. Returns a new array; an unknown target, a target that is
|
|
26
|
+
* itself being moved, or no known sources leave the order unchanged.
|
|
27
|
+
*/
|
|
28
|
+
declare function reorderListItems<T>(items: readonly T[], getId: (item: T) => string, sourceIds: readonly string[], target: ListReorderTarget): T[];
|
|
29
|
+
/**
|
|
30
|
+
* Wire native drag-and-drop and Alt+Shift+ArrowUp/ArrowDown reordering for
|
|
31
|
+
* draggable `ListItem`, `ListItemLink`, and `ListActionRow` rows below `root`.
|
|
32
|
+
* Rows reorder within their `List` (or parent element) and are identified by
|
|
33
|
+
* `itemId`. Dragging a selected or pressed row moves every selected row of
|
|
34
|
+
* its list. While a pointer drag is in progress the wiring paints the same
|
|
35
|
+
* `data-dragging` / `data-drop-position` attributes the rows' `dragging` and
|
|
36
|
+
* `dropPosition` props render. Order stays application state: `onReorder`
|
|
37
|
+
* reports the change and the application re-renders. Returns a disposer.
|
|
38
|
+
*/
|
|
39
|
+
declare function wireListReorder(root: HTMLElement | Document, { onReorder }: WireListReorderOptions): () => void;
|
|
40
|
+
|
|
41
|
+
export { type ListDropPosition, type ListReorder, type ListReorderSource, type ListReorderTarget, type WireListReorderOptions, reorderListItems, wireListReorder };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"wire-list-reorder.js"}
|
package/dist/workbench.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { a as PanelToolbar, c as PanelBottomToolbar, b as PanelChromePlacement,
|
|
|
8
8
|
import { ToolbarConfig } from './toolbar.js';
|
|
9
9
|
import './toolbar-text.js';
|
|
10
10
|
import './css-values.js';
|
|
11
|
+
import './extension-attributes-mu8MFUl0.js';
|
|
11
12
|
import './flex-alignment-4ms8ZbV8.js';
|
|
12
13
|
import './sides-BPSWde0A.js';
|
|
13
14
|
import './lucide-icon.js';
|
package/dist/workbench.js
CHANGED
package/docs/accessibility.md
CHANGED
|
@@ -256,6 +256,29 @@ light and dark themes. The application owns controlled
|
|
|
256
256
|
selection and the lifecycle, focus, and dismissal policy of any related
|
|
257
257
|
popover or context menu.
|
|
258
258
|
|
|
259
|
+
With `trailingMenu`, the trailing control is a `PopupMenu` trigger instead of
|
|
260
|
+
the native trailing button: an icon-only Web Awesome button named by
|
|
261
|
+
`trailingMenu.label`, announced with `aria-haspopup="menu"` and
|
|
262
|
+
`aria-expanded`, in the same primary-then-trailing order. Opening it moves
|
|
263
|
+
focus to the first command; Escape or a choice closes the menu and returns
|
|
264
|
+
focus to the trigger. An interaction-revealed trigger stays visible while its
|
|
265
|
+
menu is open. A pointer opening through `openPopupMenuAt` (for example from
|
|
266
|
+
the row's `contextmenu`) keeps the same keyboard and dismissal behavior.
|
|
267
|
+
|
|
268
|
+
## Reorderable list rows
|
|
269
|
+
|
|
270
|
+
A `draggable` `ListItem`, `ListItemLink`, or `ListActionRow` is a native HTML
|
|
271
|
+
drag source (a `ListActionRow` is dragged by its noninteractive root, so its two
|
|
272
|
+
buttons keep their own activation). Pointer dragging is never the only way to
|
|
273
|
+
reorder: `wireListReorder()` moves the focused row (or, when it is selected or
|
|
274
|
+
pressed, every selected row of its list) with Alt+Shift+ArrowUp and
|
|
275
|
+
Alt+Shift+ArrowDown, and returns focus to the moved row's focusable control
|
|
276
|
+
after the application re-renders. The dragged rows dim and the drop target
|
|
277
|
+
draws a 2px brand insertion line (system `Highlight` in forced colors), so the
|
|
278
|
+
landing position never relies on color alone. A loading placeholder is never
|
|
279
|
+
draggable. The application owns order, selection, and any announcement of the
|
|
280
|
+
completed move.
|
|
281
|
+
|
|
259
282
|
## ResizableRegion
|
|
260
283
|
|
|
261
284
|
Set `responsiveFillAt="narrow"` or `"compact"` when a responsive composition
|
|
@@ -321,7 +344,11 @@ so screen-reader heading navigation and "main heading" semantics work — the sa
|
|
|
321
344
|
role/level pair used throughout Kerf UI. Keep the levels meaningful and
|
|
322
345
|
non-skipping within a view. Pass trailing
|
|
323
346
|
controls as a labeled `ToolbarControlGroup` when that group needs an accessible
|
|
324
|
-
name.
|
|
347
|
+
name. A short supporting line belongs in the title's `description`: with it,
|
|
348
|
+
`id` and `headingLevel` move to the title span, so `aria-labelledby` names only
|
|
349
|
+
the title, and `descriptionId` gives the description its own id for
|
|
350
|
+
`aria-describedby`. Keep longer supporting copy as app-owned content below the
|
|
351
|
+
toolbar.
|
|
325
352
|
An editable title can use `ToolbarText action="edit-title"`; it renders a native
|
|
326
353
|
button whose full text remains its accessible name even when visually truncated.
|
|
327
354
|
Click, Enter, and Space activate the delegated action. The app owns the input
|
|
@@ -423,6 +450,22 @@ icon. The filled track uses the normal neutral text role for readable unselected
|
|
|
423
450
|
labels in light and dark themes. Use tabs—not a segmented control—when choices switch page regions that
|
|
424
451
|
need `tab`/`tabpanel` semantics.
|
|
425
452
|
|
|
453
|
+
## ChoiceChips
|
|
454
|
+
|
|
455
|
+
`ChoiceChips` renders `role="radiogroup"`, named by `label` (`aria-label`) or
|
|
456
|
+
by `labelledBy` (`aria-labelledby`, typically a visible `FieldLabel`). Each
|
|
457
|
+
choice is a native `<input type="radio">` inside its pill `<label>`, so the
|
|
458
|
+
browser owns the interaction: the group is a single Tab stop on the checked
|
|
459
|
+
radio (or the first enabled one when nothing is selected), arrow keys move and
|
|
460
|
+
select, Space selects, and the checked radio submits its value under `name`.
|
|
461
|
+
`required` makes an unselected group fail native form validation, and
|
|
462
|
+
`disabled` (group) or a choice's `disabled` removes it from interaction. The
|
|
463
|
+
radio's accessible name is the visible label; a `swatch` or `icon` is
|
|
464
|
+
`aria-hidden` decoration. The focus ring is drawn on the pill around the
|
|
465
|
+
focused radio, and the checked pill adds a second pixel of border so the
|
|
466
|
+
selection does not rely on hue alone; forced-colors mode paints it with
|
|
467
|
+
`Highlight`.
|
|
468
|
+
|
|
426
469
|
## TokenSearchField
|
|
427
470
|
|
|
428
471
|
Use `presentation="form-field"` when a structured search query sits beside
|
|
@@ -491,7 +534,7 @@ controlled state), and ArrowRight moves the caret past a trailing chip so typed
|
|
|
491
534
|
text lands after it. An optional `onEdit({ id, editor, event })` — with the
|
|
492
535
|
originating `InputEvent` so a caller can gate on `inputType`/`data` — fires on every editor
|
|
493
536
|
`input`, letting a caller drop its own `input` listener; the application still
|
|
494
|
-
owns query parsing and result-count/loading announcements.
|
|
537
|
+
owns query parsing and result-count/loading announcements. When the app's `onEdit` or `onRemoveToken` changes tokens and the controlled render replaces the focused editor, `wireTokenSearchFields` moves focus and caret to the replacement at the same mutation checkpoint (a caret at the end of the query stays at the end; any other caret keeps its place in the remaining text), so keys typed at full speed are not lost.
|
|
495
538
|
|
|
496
539
|
With a `createTokenSearchModel` passed to the field and registered in
|
|
497
540
|
`wireTokenSearchFields(root, { models })`, grammar parsing, chips, clear/edit/
|
package/docs/anchored-surface.md
CHANGED
|
@@ -36,13 +36,21 @@ openAnchoredSurfaceAt(
|
|
|
36
36
|
);
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Pass `context` for a pointer opened inside a modal
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
Pass `context` for a pointer opened inside a modal dialog. Inside a Web
|
|
40
|
+
Awesome `wa-dialog` or `wa-drawer`, the surface stays interactive with no extra
|
|
41
|
+
markup: `kerfjs/overlay` finds the modal `<dialog>` in the element's shadow
|
|
42
|
+
root and hosts the surface in the element's light DOM, slotted inside the
|
|
43
|
+
dialog. Dialogs opened by `kerfjs/overlay` get a host automatically too. For an
|
|
44
|
+
app-owned native `<dialog>`, include
|
|
45
|
+
`<div data-kerf-overlay-host data-morph-skip></div>` in the dialog markup so
|
|
46
|
+
controls in the anchored surface stay interactive. For any other modal context,
|
|
47
|
+
pass `container`: an element inside the open modal, where the surface is
|
|
48
|
+
appended instead. The helper uses the browser top layer where available, and
|
|
49
|
+
the shared overlay fallback elsewhere.
|
|
50
|
+
|
|
51
|
+
Closing the anchor's modal dialog also closes the surface. Escape closes only
|
|
52
|
+
the surface; the dialog beneath stays open. The temporary pointer anchor is
|
|
53
|
+
removed when the surface closes.
|
|
46
54
|
|
|
47
55
|
Override `--kui-anchored-surface-inset` and
|
|
48
56
|
`--kui-anchored-surface-radius` for a theme; content can compose any Kerf UI
|
package/docs/app-layouts.md
CHANGED
|
@@ -23,7 +23,8 @@ Full-height shells retain `height: 100%` so they remain embeddable. Give a
|
|
|
23
23
|
top-level shell a definite height chain by importing `@kerfjs/ui/document.css`
|
|
24
24
|
and applying `.kui-app-root` to the direct mount container; see the
|
|
25
25
|
[document baseline](document-baseline.md). Do not replace an embeddable shell's
|
|
26
|
-
height with `100dvh
|
|
26
|
+
height with `100dvh`; a full-viewport app instead adds `data-viewport="locked"`
|
|
27
|
+
to its `.kui-app-root`, which locks the document (not the shell) to `100dvh`.
|
|
27
28
|
|
|
28
29
|
## Safe areas
|
|
29
30
|
|
|
@@ -114,6 +114,14 @@ package root; `ui-wiring` resolves helper imports through this file, including
|
|
|
114
114
|
relative re-export barrels. Every named export must also appear in
|
|
115
115
|
`wiring.helpers`.
|
|
116
116
|
|
|
117
|
+
When a component's required wiring is the application's own root-delegated
|
|
118
|
+
handlers rather than a named helper, list the `data-action` values it must
|
|
119
|
+
handle in `wiring.actions`. Required wiring names at least one helper or action.
|
|
120
|
+
`ui-wiring` accepts an action when a reachable module that imports `delegate`,
|
|
121
|
+
`delegateCapture`, or `delegateActions` (from `kerfjs` or `kerfjs/actions`)
|
|
122
|
+
names it as a string, selector, or table key; a cataloged component's own
|
|
123
|
+
source never counts, because it renders the attribute.
|
|
124
|
+
|
|
117
125
|
The selection catalog's `wiringProviders` lists public helpers that install
|
|
118
126
|
other wiring helpers. The `ui-wiring` rule accepts a provider call for each
|
|
119
127
|
helper it declares; `wireCatalog` provides `wireScrollDividers`.
|
|
@@ -316,6 +324,9 @@ and disposal.
|
|
|
316
324
|
contain controls. When a row needs an independently interactive trailing
|
|
317
325
|
region, `ListActionRow` owns the noninteractive root and the two sibling native
|
|
318
326
|
buttons; the application owns their delegated behavior and controlled state.
|
|
327
|
+
A `ListActionRow` with `trailingMenu` composes a real `PopupMenu` as that
|
|
328
|
+
sibling trailing control instead of a button; the menu styles its trigger in
|
|
329
|
+
the row's context from `popup-menu.css`, and the row never styles it.
|
|
319
330
|
Both row components align a leading icon with the first label line when
|
|
320
331
|
`multiline` allows the label to wrap; additional lines extend below that fixed
|
|
321
332
|
visual anchor.
|
|
@@ -550,9 +561,11 @@ a plain `<button>` — the group styles `> button` fully, and it keeps the group
|
|
|
550
561
|
free of a Web Awesome dependency and shadow DOM. Use `ToolbarActionLink` when
|
|
551
562
|
the action must retain native anchor navigation; the group owns its geometry,
|
|
552
563
|
hover, and focus treatment. Set `overflow="scroll"` when a row of controls must
|
|
553
|
-
stay inside the available toolbar width. A disabled native button
|
|
554
|
-
|
|
555
|
-
|
|
564
|
+
stay inside the available toolbar width. A disabled native button — `disabled`,
|
|
565
|
+
or `aria-disabled="true"` when it must stay focusable — keeps the group's
|
|
566
|
+
geometry, dims to half opacity, uses the `not-allowed` cursor, and paints
|
|
567
|
+
neither its own nor a lone group's hover surface; a disabled raw `wa-button`
|
|
568
|
+
likewise paints no hover surface.
|
|
556
569
|
Set `visibility="compact-only"` for a
|
|
557
570
|
group that replaces wider toolbar controls below the Toolbar's compact container
|
|
558
571
|
breakpoint; do not hide the group with an application class.
|
|
@@ -560,7 +573,15 @@ Use `sizing="grow"` on an expanded search group in a wrapping zone: it grows fro
|
|
|
560
573
|
`growBasis` (19rem by default) into available row space, then takes a whole
|
|
561
574
|
row at 480px container width or less. The basis remains its intrinsic minimum
|
|
562
575
|
in a wider, non-stacked Toolbar, so sibling trailing groups can share the
|
|
563
|
-
row. The collapsed search stays icon-sized.
|
|
576
|
+
row. The collapsed search stays icon-sized. The group owns the open and
|
|
577
|
+
close motion: its flex size animates while a collapsible `TokenSearchField`
|
|
578
|
+
inside fills it on every frame, laid out at least basis-wide and clipped by the
|
|
579
|
+
group, so a query never wraps or leaves an empty band mid-transition. At 480px
|
|
580
|
+
container width or less, and under reduced motion, it opens in one frame.
|
|
581
|
+
A plain collapsible search group (no `sizing`) animates its own width the same
|
|
582
|
+
way: the `TokenSearchField` follows the group on every frame and keeps its
|
|
583
|
+
query on one line until the opening ends, so it never shows an empty band or a
|
|
584
|
+
query wrapped in a narrow, still-opening field.
|
|
564
585
|
Use `sizing="fill"` for a group, including a non-search segmented control,
|
|
565
586
|
that spans its wrapping row. Set `visibility="hide-collapsed-tiny"` on a
|
|
566
587
|
collapsible group to omit its closed icon at 224px or less; expanded content
|
|
@@ -649,8 +670,11 @@ owners. The [layout contract](./layout.md) lists the public roles and tokens.
|
|
|
649
670
|
Panel, dialog, and page headings are direct `Toolbar` compositions. The leading
|
|
650
671
|
zone holds an optional icon `ToolbarControlGroup` and a direct extra-large
|
|
651
672
|
`ToolbarText`; app actions belong in a trailing `ToolbarControlGroup`. Omit the
|
|
652
|
-
icon group when it has no content.
|
|
653
|
-
|
|
673
|
+
icon group when it has no content. A short supporting line is the title's
|
|
674
|
+
`ToolbarText` `description`: it renders quiet, single-line, truncating copy
|
|
675
|
+
under the title, starting at the title's text with or without an icon group,
|
|
676
|
+
and the title and description share the control band so the icon and actions
|
|
677
|
+
stay aligned. Longer supporting copy is app-owned content below the toolbar.
|
|
654
678
|
For an editable title, `ToolbarText action="edit-title"` renders a native button
|
|
655
679
|
directly in the leading zone. It keeps content width when there is room, shrinks
|
|
656
680
|
and ellipsizes beside a status chip when space is tight, and emits the delegated
|