@ixfx/components 0.13.2 → 0.13.4
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/bundle/index.d.ts +1649 -128
- package/bundle/index.js +1595 -44437
- package/bundle/rolldown-runtime-CEoa-xHZ.js +1 -0
- package/dist/ac-text.d.ts +2 -3
- package/dist/ac-text.js +0 -2
- package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -3
- package/dist/ac-token.d.ts +1 -1
- package/dist/ac-token.js +1 -3
- package/dist/button-B7mgqtxR.js +0 -2
- package/dist/{button-CTL45aBl.d.ts → button-BYuf72aR.d.ts} +2 -3
- package/dist/button.d.ts +1 -1
- package/dist/checkbox.d.ts +1 -2
- package/dist/checkbox.js +0 -2
- package/dist/checked-select-CglRukbP.d.ts +1 -2
- package/dist/checked-select-lDgAQQ7v.js +0 -2
- package/dist/colour-picker-BCMU7W7R.js +0 -2
- package/dist/colour-picker.d.ts +1 -1
- package/dist/crumbs.d.ts +2 -3
- package/dist/crumbs.js +1 -3
- package/dist/data-controller-DOlmqNKb.js +0 -2
- package/dist/data-display.d.ts +1 -2
- package/dist/data-display.js +0 -2
- package/dist/{data-grid-Ck1Qx2H1.d.ts → data-grid-BtBZt8M1.d.ts} +10 -9
- package/dist/data-grid-FHr7wZ_k.js +2108 -0
- package/dist/data-grid.d.ts +1 -1
- package/dist/data-grid.js +1 -1923
- package/dist/data-provider-35TyWclX.js +0 -2
- package/dist/data-provider-BAn_-oR1.d.ts +1 -2
- package/dist/decorate-VRK8rslU.js +0 -2
- package/dist/defaults-B4ePs4LB.js +0 -2
- package/dist/detail-list-BfYHNh6B.js +1999 -0
- package/dist/{detail-list-C1xzr1z7.d.ts → detail-list-u2rWnAXQ.d.ts} +13 -5
- package/dist/detail-list.d.ts +2 -2
- package/dist/detail-list.js +1 -1680
- package/dist/drag-ghost-DtSDvjri.js +0 -2
- package/dist/editable-label-rzXkjf1H.d.ts +1 -2
- package/dist/editable-label.js +0 -2
- package/dist/fallbacks-DQ_5OsmR.js +0 -2
- package/dist/{flat-list-Ohxqsy0g.d.ts → flat-list-DNnTQ65v.d.ts} +3 -4
- package/dist/flat-list.d.ts +1 -1
- package/dist/flat-list.js +5 -3
- package/dist/form-CsXJX15p.js +0 -2
- package/dist/form.d.ts +1 -2
- package/dist/{grid-list-pefLORIr.d.ts → grid-list-BLnV9oZE.d.ts} +9 -3
- package/dist/{grid-list-DjIl910A.js → grid-list-CkU8gHCh.js} +189 -42
- package/dist/grid-list.d.ts +1 -1
- package/dist/grid-list.js +1 -1
- package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +2 -3
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/grouped-item-lister.js +0 -2
- package/dist/grouping-CUKgmkMm.d.ts +1 -2
- package/dist/grouping-RYPnHkrS.js +0 -2
- package/dist/handle-DAXs7kbJ.js +0 -2
- package/dist/hex-editor-Caq8vNQk.d.ts +1 -2
- package/dist/hex-editor-DiYpgIKs.js +0 -2
- package/dist/highlight-B-eQrhhb.js +0 -2
- package/dist/icon-1gpwtPx8.js +0 -2
- package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -3
- package/dist/icons.d.ts +2 -2
- package/dist/icons.js +0 -2
- package/dist/{incr-search-D91M4Ozq.js → incr-search-JIhwB49y.js} +26 -6
- package/dist/incr-search.d.ts +1 -1
- package/dist/incr-search.js +1 -1
- package/dist/{index-Dq30pOnn.d.ts → index-B-hzcIP0.d.ts} +3 -4
- package/dist/{index-CxZ61DO1.d.ts → index-BYIRgv49.d.ts} +9 -3
- package/dist/index-CCC0G1nO.d.ts +324 -0
- package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +2 -3
- package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -3
- package/dist/index-DV3iaUBW.d.ts +1 -2
- package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -3
- package/dist/index-o-CWDt11.d.ts +1 -2
- package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -3
- package/dist/index.d.ts +21 -22
- package/dist/index.js +48 -29
- package/dist/item-appearance-BjcMyauw.js +0 -2
- package/dist/keyboard-B5xD7Fz-.js +0 -2
- package/dist/labelled-input-base-BFa4xlYV.js +0 -2
- package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -3
- package/dist/labelled-radial-input.d.ts +3 -4
- package/dist/labelled-radial-input.js +0 -2
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/labelled-range-input.js +0 -2
- package/dist/labelled-slider-input-FdCRi6st.js +0 -2
- package/dist/labelled-slider-input.d.ts +1 -1
- package/dist/led.d.ts +1 -2
- package/dist/led.js +0 -2
- package/dist/list-group-header.d.ts +2 -3
- package/dist/list-group-header.js +0 -2
- package/dist/list-item-animation-BUoEKi5s.js +0 -2
- package/dist/list-native-drag-controller-B9xO0XWn.js +0 -2
- package/dist/list-native-drag-controller-ChIi3eK5.d.ts +1 -2
- package/dist/list-selection-controller-BeE70lbB.js +0 -2
- package/dist/list-selection-types-PjKdhF-a.d.ts +1 -2
- package/dist/list-viewport-types-BRZsLcvp.d.ts +1 -2
- package/dist/menu-CwcXXeLM.js +0 -2
- package/dist/menu-item-BDEekBVy.js +0 -2
- package/dist/{menu-item-B0zqw2xp.d.ts → menu-item-bF6narIz.d.ts} +2 -3
- package/dist/menu.d.ts +2 -2
- package/dist/miller.d.ts +2 -3
- package/dist/miller.js +146 -102
- package/dist/narrowed-text.js +1 -3
- package/dist/notification-pill-DyZydXoZ.d.ts +1 -2
- package/dist/notifier.js +0 -2
- package/dist/pan-text-CoYmt2qd.d.ts +1 -2
- package/dist/pan-text-CqtvjPyK.js +0 -2
- package/dist/panel.d.ts +2 -3
- package/dist/panel.js +0 -2
- package/dist/polar-pad.d.ts +1 -2
- package/dist/polar-pad.js +0 -2
- package/dist/popup-D80sj2QC.js +0 -2
- package/dist/prominence-DlFShic3.js +0 -2
- package/dist/radial-input-DU6t2hYO.d.ts +1 -2
- package/dist/radial-input-KMVltQfe.js +0 -2
- package/dist/range-input.d.ts +1 -2
- package/dist/range-input.js +0 -2
- package/dist/range.d.ts +1 -2
- package/dist/range.js +0 -2
- package/dist/registry-BEtb8_wB.js +0 -2
- package/dist/{scroll-fade-BrNUIYnm.js → scroll-fade-Xx28D7mH.js} +11 -7
- package/dist/select-horiz.d.ts +1 -2
- package/dist/select-horiz.js +1 -3
- package/dist/slider-input-BxURAAmD.d.ts +1 -2
- package/dist/slider-input-ByHdotzp.js +0 -2
- package/dist/snackbar.d.ts +1 -2
- package/dist/snackbar.js +0 -2
- package/dist/snap-container.d.ts +1 -2
- package/dist/snap-container.js +0 -2
- package/dist/{split-layout-CXotkdbx.js → split-layout-Deoxy47d.js} +5 -2
- package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -3
- package/dist/split-layout.d.ts +1 -1
- package/dist/split-layout.js +1 -1
- package/dist/swipe.d.ts +1 -2
- package/dist/swipe.js +0 -2
- package/dist/{tab-list-v8mKX7Fu.d.ts → tab-list-CexFFg6O.d.ts} +3 -5
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +23 -3
- package/dist/tickled-controller-D-HZymaZ.js +0 -2
- package/dist/tickled-controller-DodxD3eQ.d.ts +1 -2
- package/dist/tickled-styles-BrAHEj1q.js +0 -2
- package/dist/timeline-BP1Ux2EV.js +0 -2
- package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -3
- package/dist/titlebar.d.ts +1 -1
- package/dist/titlebar.js +0 -2
- package/dist/tooltip-BlvBUQxx.d.ts +1 -2
- package/dist/tooltip-CJt3WLmN.js +0 -2
- package/dist/transitory-label.d.ts +1 -2
- package/dist/transitory-label.js +0 -2
- package/dist/{tree-DGveys4K.js → tree-DD8OaqsK.js} +1009 -231
- package/dist/tree-component-Cj8V3uar.d.ts +1 -2
- package/dist/tree.d.ts +4 -267
- package/dist/tree.js +1 -1
- package/dist/types-DQ7KOUIj.d.ts +1 -2
- package/dist/{vertical-list-CqBc-t8w.d.ts → vertical-list-m7GJtXwv.d.ts} +3 -3
- package/dist/vertical-list.d.ts +1 -1
- package/dist/vertical-list.js +114 -27
- package/dist/wheel-nudge-By5s_ioH.d.ts +1 -2
- package/dist/wheel-nudge-D5rmht3v.js +0 -2
- package/dist/xy-axis-CyMd_Bn1.js +0 -2
- package/dist/xy-axis-DQqd2yXJ.d.ts +1 -2
- package/dist/xy-pad.d.ts +1 -2
- package/dist/xy-pad.js +0 -2
- package/docs-user/data-grid.md +74 -4
- package/docs-user/detail-list.md +65 -0
- package/docs-user/grid-list.md +81 -4
- package/docs-user/index.json +2 -2
- package/docs-user/miller.md +59 -3
- package/docs-user/tree.md +63 -2
- package/docs-user/vertical-list.md +9 -1
- package/package.json +6 -1
- package/bundle/index.d.ts.map +0 -1
- package/bundle/index.js.map +0 -1
- package/bundle/rolldown-runtime-D7D4PA-g.js +0 -13
- package/dist/ac-text.d.ts.map +0 -1
- package/dist/ac-text.js.map +0 -1
- package/dist/ac-token-TCLAZeVg.d.ts.map +0 -1
- package/dist/ac-token.js.map +0 -1
- package/dist/button-B7mgqtxR.js.map +0 -1
- package/dist/button-CTL45aBl.d.ts.map +0 -1
- package/dist/checkbox.d.ts.map +0 -1
- package/dist/checkbox.js.map +0 -1
- package/dist/checked-select-CglRukbP.d.ts.map +0 -1
- package/dist/checked-select-lDgAQQ7v.js.map +0 -1
- package/dist/colour-picker-BCMU7W7R.js.map +0 -1
- package/dist/crumbs.d.ts.map +0 -1
- package/dist/crumbs.js.map +0 -1
- package/dist/data-controller-DOlmqNKb.js.map +0 -1
- package/dist/data-display.d.ts.map +0 -1
- package/dist/data-display.js.map +0 -1
- package/dist/data-grid-Ck1Qx2H1.d.ts.map +0 -1
- package/dist/data-grid.js.map +0 -1
- package/dist/data-provider-35TyWclX.js.map +0 -1
- package/dist/data-provider-BAn_-oR1.d.ts.map +0 -1
- package/dist/decorate-VRK8rslU.js.map +0 -1
- package/dist/defaults-B4ePs4LB.js.map +0 -1
- package/dist/detail-list-C1xzr1z7.d.ts.map +0 -1
- package/dist/detail-list.js.map +0 -1
- package/dist/drag-ghost-DtSDvjri.js.map +0 -1
- package/dist/editable-label-rzXkjf1H.d.ts.map +0 -1
- package/dist/editable-label.js.map +0 -1
- package/dist/fallbacks-DQ_5OsmR.js.map +0 -1
- package/dist/flat-list-Ohxqsy0g.d.ts.map +0 -1
- package/dist/flat-list.js.map +0 -1
- package/dist/form-CsXJX15p.js.map +0 -1
- package/dist/form.d.ts.map +0 -1
- package/dist/grid-list-DjIl910A.js.map +0 -1
- package/dist/grid-list-pefLORIr.d.ts.map +0 -1
- package/dist/grouped-item-lister-Bhyo-dkH.d.ts.map +0 -1
- package/dist/grouped-item-lister.js.map +0 -1
- package/dist/grouping-CUKgmkMm.d.ts.map +0 -1
- package/dist/grouping-RYPnHkrS.js.map +0 -1
- package/dist/handle-DAXs7kbJ.js.map +0 -1
- package/dist/hex-editor-Caq8vNQk.d.ts.map +0 -1
- package/dist/hex-editor-DiYpgIKs.js.map +0 -1
- package/dist/highlight-B-eQrhhb.js.map +0 -1
- package/dist/icon-1gpwtPx8.js.map +0 -1
- package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
- package/dist/icons.js.map +0 -1
- package/dist/incr-search-D91M4Ozq.js.map +0 -1
- package/dist/index-BOUaDIW-.d.ts.map +0 -1
- package/dist/index-BUB5SICW.d.ts.map +0 -1
- package/dist/index-CJ5fshD3.d.ts.map +0 -1
- package/dist/index-CxZ61DO1.d.ts.map +0 -1
- package/dist/index-DV3iaUBW.d.ts.map +0 -1
- package/dist/index-Dq30pOnn.d.ts.map +0 -1
- package/dist/index-garxxqgV.d.ts.map +0 -1
- package/dist/index-o-CWDt11.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/item-appearance-BjcMyauw.js.map +0 -1
- package/dist/keyboard-B5xD7Fz-.js.map +0 -1
- package/dist/labelled-input-base-BFa4xlYV.js.map +0 -1
- package/dist/labelled-input-base-Dp_9KP0G.d.ts.map +0 -1
- package/dist/labelled-radial-input.d.ts.map +0 -1
- package/dist/labelled-radial-input.js.map +0 -1
- package/dist/labelled-range-input.js.map +0 -1
- package/dist/labelled-slider-input-FdCRi6st.js.map +0 -1
- package/dist/led.d.ts.map +0 -1
- package/dist/led.js.map +0 -1
- package/dist/list-group-header.d.ts.map +0 -1
- package/dist/list-group-header.js.map +0 -1
- package/dist/list-item-animation-BUoEKi5s.js.map +0 -1
- package/dist/list-native-drag-controller-B9xO0XWn.js.map +0 -1
- package/dist/list-native-drag-controller-ChIi3eK5.d.ts.map +0 -1
- package/dist/list-selection-controller-BeE70lbB.js.map +0 -1
- package/dist/list-selection-types-PjKdhF-a.d.ts.map +0 -1
- package/dist/list-viewport-types-BRZsLcvp.d.ts.map +0 -1
- package/dist/menu-CwcXXeLM.js.map +0 -1
- package/dist/menu-item-B0zqw2xp.d.ts.map +0 -1
- package/dist/menu-item-BDEekBVy.js.map +0 -1
- package/dist/miller.d.ts.map +0 -1
- package/dist/miller.js.map +0 -1
- package/dist/narrowed-text.js.map +0 -1
- package/dist/notification-pill-DyZydXoZ.d.ts.map +0 -1
- package/dist/notifier.js.map +0 -1
- package/dist/pan-text-CoYmt2qd.d.ts.map +0 -1
- package/dist/pan-text-CqtvjPyK.js.map +0 -1
- package/dist/panel.d.ts.map +0 -1
- package/dist/panel.js.map +0 -1
- package/dist/polar-pad.d.ts.map +0 -1
- package/dist/polar-pad.js.map +0 -1
- package/dist/popup-D80sj2QC.js.map +0 -1
- package/dist/prominence-DlFShic3.js.map +0 -1
- package/dist/radial-input-DU6t2hYO.d.ts.map +0 -1
- package/dist/radial-input-KMVltQfe.js.map +0 -1
- package/dist/range-input.d.ts.map +0 -1
- package/dist/range-input.js.map +0 -1
- package/dist/range.d.ts.map +0 -1
- package/dist/range.js.map +0 -1
- package/dist/registry-BEtb8_wB.js.map +0 -1
- package/dist/scroll-fade-BrNUIYnm.js.map +0 -1
- package/dist/select-horiz.d.ts.map +0 -1
- package/dist/select-horiz.js.map +0 -1
- package/dist/slider-input-BxURAAmD.d.ts.map +0 -1
- package/dist/slider-input-ByHdotzp.js.map +0 -1
- package/dist/snackbar.d.ts.map +0 -1
- package/dist/snackbar.js.map +0 -1
- package/dist/snap-container.d.ts.map +0 -1
- package/dist/snap-container.js.map +0 -1
- package/dist/split-layout-C5SYbDrq.d.ts.map +0 -1
- package/dist/split-layout-CXotkdbx.js.map +0 -1
- package/dist/swipe.d.ts.map +0 -1
- package/dist/swipe.js.map +0 -1
- package/dist/tab-list-v8mKX7Fu.d.ts.map +0 -1
- package/dist/tabs.js.map +0 -1
- package/dist/tickled-controller-D-HZymaZ.js.map +0 -1
- package/dist/tickled-controller-DodxD3eQ.d.ts.map +0 -1
- package/dist/tickled-styles-BrAHEj1q.js.map +0 -1
- package/dist/timeline-BP1Ux2EV.js.map +0 -1
- package/dist/titlebar-B5zSTZnF.d.ts.map +0 -1
- package/dist/titlebar.js.map +0 -1
- package/dist/tooltip-BlvBUQxx.d.ts.map +0 -1
- package/dist/tooltip-CJt3WLmN.js.map +0 -1
- package/dist/transitory-label.d.ts.map +0 -1
- package/dist/transitory-label.js.map +0 -1
- package/dist/tree-DGveys4K.js.map +0 -1
- package/dist/tree-component-Cj8V3uar.d.ts.map +0 -1
- package/dist/tree.d.ts.map +0 -1
- package/dist/types-DQ7KOUIj.d.ts.map +0 -1
- package/dist/vertical-list-CqBc-t8w.d.ts.map +0 -1
- package/dist/vertical-list.js.map +0 -1
- package/dist/wheel-nudge-By5s_ioH.d.ts.map +0 -1
- package/dist/wheel-nudge-D5rmht3v.js.map +0 -1
- package/dist/xy-axis-CyMd_Bn1.js.map +0 -1
- package/dist/xy-axis-DQqd2yXJ.d.ts.map +0 -1
- package/dist/xy-pad.d.ts.map +0 -1
- package/dist/xy-pad.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handle-DAXs7kbJ.js","names":[],"sources":["../src/styles/handle.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Shared drag / resize **handle** styling.\n *\n * A handle is the grab affordance for moving or resizing an object. Apply the\n * `.ixfx-handle` class to a small decorative element inside your drag / resize\n * hit-zone and choose a look with two independent attributes:\n *\n * - `data-handle` — texture: `flat` (default) · `dotted` · `dimpled` · `grated`\n * - `data-shape` — topology: `horizontal` (default) · `vertical` · `spot`\n *\n * - **flat** — a solid rounded capsule (bar) or dot (`spot`), filled with\n * `--ixfx-handle-color`.\n * - **dotted** — marks in the [Lucide *grip*](https://lucide.dev/icons/grip)\n * arrangement: one or more marks along the long axis (`horizontal`: a row,\n * `vertical`: a column), repeated in one or more rows/columns across the\n * bar's cross axis (or a 3×3 block for `spot`, unaffected by the row/column\n * / mark-count behaviour below). Tinted by `--ixfx-handle-color`. Each\n * mark's corner rounding is `--ixfx-handle-radius` (→ the theme\n * `--radius-l`), so a flat, squared-off theme renders them as **squares**\n * instead of circles. For `horizontal` / `vertical`, `--ixfx-handle-length`\n * decides how many marks (1-7) fit along the long axis — spaced by\n * `--ixfx-handle-dot-gap` — the same way `--ixfx-handle-thickness` decides\n * how many rows (or columns) of marks (1-7) fit across the cross axis —\n * spaced by `--ixfx-handle-dot-pitch`. Both the bar's rendered length and\n * its thickness snap to the nearest whole multiple of the relevant spacing\n * so marks never clip at the edges.\n * - **dimpled** — that same layout, but each mark is pressed in: a lighter\n * copy peeking out above-left and a darker copy below-right of the base mark.\n * - **grated** — fine 45° knurling: each ridge is a lit edge, the base colour,\n * then a shaded edge. `spot` is the same hatch on a square crop.\n *\n * `dotted` / `dimpled` / `grated` are texture only — no plate, box or border; the\n * gaps are transparent so the surface behind shows through. The base colour is\n * `--ixfx-handle-color` (a theme token); the deboss edges default to that colour\n * lightened / darkened.\n *\n * The handle is `pointer-events: none` — bind pointer handlers to the surrounding\n * hit-zone. It reaches its \"active\" look (`--ixfx-handle-opacity-active`, and for\n * `flat` / `dotted` the `--ixfx-handle-color-active` tint) when its immediate\n * parent (the hit-zone) is `:hover` / `:focus-visible` / `[data-active]`, or when\n * the handle itself is. Set `[data-active]` on the hit-zone yourself while a drag\n * is live so the handle stays lit after the pointer leaves it.\n *\n * ```ts\n * import { handleStyles } from '../styles/handle.js';\n *\n * static styles = [themeFallbacks, handleStyles, css`...`];\n * ```\n * ```html\n * <div class=\"hit-zone\" @pointerdown=${this.#onDown}>\n * <span class=\"ixfx-handle\" data-handle=\"dotted\" data-shape=\"spot\" part=\"handle\"></span>\n * </div>\n * ```\n *\n * ## CSS variables (defaults shown; override on the element or any ancestor)\n * - `--ixfx-handle-color` `var(--surface-muted-text)` — `flat` / `dotted` fill\n * - `--ixfx-handle-color-active` `var(--accent)` — `flat` / `dotted` hover / focus\n * - `--ixfx-handle-thickness` `6px` — cross-axis size of a bar (dotted /\n * dimpled `horizontal` / `vertical` bars snap this to the nearest whole multiple\n * of `--ixfx-handle-dot-pitch` so their mark rows / columns fit exactly)\n * - `--ixfx-handle-length` `44px` — long-axis size of a bar (`100%` to\n * fill). For dotted / dimpled `horizontal` / `vertical` bars this also decides\n * how many marks (1-7) fit along the long axis — spaced by\n * `--ixfx-handle-dot-gap` — the same way `--ixfx-handle-thickness` decides row /\n * column count across the cross axis, and the bar's rendered length likewise\n * snaps to the nearest whole multiple of `--ixfx-handle-dot-gap` so marks\n * never clip at the edges.\n * - `--ixfx-handle-spot-size` `14px` — width = height of a `spot`\n * - `--ixfx-handle-radius` `var(--radius-l)` — `flat` capsule / dotted & dimpled mark rounding\n * - `--ixfx-handle-opacity` `0.55` — rest opacity\n * - `--ixfx-handle-opacity-active` `1`\n * - `--ixfx-handle-dot-size` `3px` — mark size (dotted / dimpled)\n * - `--ixfx-handle-dot-gap` `length/4` (bar) · `spot/3` — mark centre-to-centre\n * step along the long axis (dotted / dimpled `horizontal` / `vertical` bars fit up\n * to 7 marks, driven by `--ixfx-handle-length`; `spot` is a fixed 3×3 block)\n * - `--ixfx-handle-dot-pitch` `dot-size * 2` — row/column centre-to-centre step across\n * the cross axis (dotted / dimpled `horizontal` / `vertical` only; up to 7 rows/columns)\n * - `--ixfx-handle-tile` `5px` — knurl period (grated)\n * - `--ixfx-handle-highlight` `color-mix(currentColor 35%, #fff)` — lit deboss edge\n * - `--ixfx-handle-shadow` `color-mix(currentColor 60%, #000)` — shaded deboss edge\n */\nexport const handleStyles = css`\n .ixfx-handle {\n /* Bridge: public --ixfx-handle-* (element or ancestor) → internal alias → fallback. */\n --_handle-color: var(--ixfx-handle-color, var(--surface-3-text));\n --_handle-color-active: var(--ixfx-handle-color-active, var(--surface-3-text));\n --_handle-thickness: var(--ixfx-handle-thickness, 6px);\n --_handle-length: var(--ixfx-handle-length, 44px);\n --_handle-spot: var(--ixfx-handle-spot-size, 14px);\n --_handle-radius: var(--ixfx-handle-radius, var(--radius-l));\n --_handle-opacity: var(--ixfx-handle-opacity, 0.55);\n --_handle-opacity-active: var(--ixfx-handle-opacity-active, 1);\n --_handle-dot: var(--ixfx-handle-dot-size, 3px);\n --_handle-tile: var(--ixfx-handle-tile, 5px);\n /* Centre-to-centre step of the dotted / dimpled marks (a length). Defaults to\n a share of the long axis; a bar shows ~3 marks. */\n --_handle-gap: var(--ixfx-handle-dot-gap, calc(var(--_handle-length) / 4));\n /* Centre-to-centre step between rows (horizontal) / columns (vertical) of\n marks across the bar's cross axis. */\n --_handle-pitch: var(--ixfx-handle-dot-pitch, calc(var(--_handle-dot) * 2));\n /* How many whole pitch-steps fit across the thickness, rounded to the\n nearest step and clamped to 1-7 rows/columns. */\n --_handle-rows: clamp(1, round(nearest, calc(var(--_handle-thickness) / var(--_handle-pitch)), 1), 7);\n /* An even row/column count has no centre step, so the whole grid (the\n ::before mark and its box-shadow copies, spaced at whole --_handle-pitch\n steps from it) is nudged by half a pitch to stay centred and symmetric. */\n --_handle-row-shift: calc((1 - mod(var(--_handle-rows), 2)) * var(--_handle-pitch) / 2);\n /* The bar's cross-axis size snapped to exactly --_handle-rows steps of\n --_handle-pitch, so mark rows/columns fit without clipping. */\n --_handle-thickness-snapped: calc(var(--_handle-rows) * var(--_handle-pitch));\n /* How many whole gap-steps fit across the long axis, rounded to the\n nearest step and clamped to 1-7 marks. */\n --_handle-cols: clamp(1, round(nearest, calc(var(--_handle-length) / var(--_handle-gap)), 1), 7);\n /* An even mark count has no centre step, so the whole grid is nudged by\n half a gap along the long axis to stay centred and symmetric. */\n --_handle-col-shift: calc((1 - mod(var(--_handle-cols), 2)) * var(--_handle-gap) / 2);\n /* The bar's long-axis size snapped to exactly --_handle-cols steps of\n --_handle-gap, so marks fit without clipping. */\n --_handle-length-snapped: calc(var(--_handle-cols) * var(--_handle-gap));\n /* How far a dimpled mark's highlight / shadow copy is offset. */\n --_dimple-off: calc(var(--_handle-dot) * 0.15);\n /* The mark colour lightened / darkened for the two deboss edges. */\n --_handle-hi: var(--ixfx-handle-highlight, color-mix(in oklch, var(--surface-4) 50%, var(--_handle-color)));\n --_handle-lo: var(--ixfx-handle-shadow, color-mix(in oklch, var(--surface-2) 40%, var(--_handle-color)));\n\n box-sizing: border-box;\n display: inline-block;\n flex: none;\n width: var(--_handle-length);\n height: var(--_handle-thickness);\n color: var(--_handle-color);\n opacity: var(--_handle-opacity);\n pointer-events: none;\n transition:\n color var(--transition, 0.15s ease-out),\n opacity var(--transition, 0.15s ease-out);\n }\n\n .ixfx-handle[data-shape='vertical'] {\n width: var(--_handle-thickness);\n height: var(--_handle-length);\n }\n\n .ixfx-handle[data-shape='spot'] {\n width: var(--_handle-spot);\n height: var(--_handle-spot);\n --_handle-gap: var(--ixfx-handle-dot-gap, calc(var(--_handle-spot) / 3));\n }\n\n .ixfx-handle:hover,\n .ixfx-handle:focus-visible,\n .ixfx-handle[data-active],\n :hover > .ixfx-handle,\n :focus-visible > .ixfx-handle,\n [data-active] > .ixfx-handle {\n color: var(--_handle-color-active);\n opacity: var(--_handle-opacity-active);\n }\n\n /* ── flat: solid capsule / dot ────────────────────────────────────────── */\n .ixfx-handle[data-handle='flat'] {\n background: currentColor;\n border-radius: var(--_handle-radius);\n }\n .ixfx-handle[data-handle='flat'][data-shape='spot'] {\n border-radius: 50%;\n }\n\n /* ── dotted / dimpled: 3 marks in a row / column (or 3×3 for spot), repeated\n in --_handle-rows rows/columns across the cross axis for horizontal /\n vertical, drawn as one ::before mark whose border-radius follows the\n theme — round normally, square in a flat / squared-off theme\n (--radius-l: 0). box-shadow paints the rest of the marks. The extra\n rows/columns beyond --_handle-rows are still emitted (a fixed 7-row\n grid, CSS can't loop) but land outside the snapped, overflow: hidden\n bar, so they're clipped cleanly rather than shown or partially cut. ── */\n .ixfx-handle[data-handle='dotted'],\n .ixfx-handle[data-handle='dimpled'] {\n position: relative;\n }\n .ixfx-handle[data-handle='dotted']:not([data-shape='spot']),\n .ixfx-handle[data-handle='dimpled']:not([data-shape='spot']) {\n overflow: hidden;\n }\n .ixfx-handle[data-handle='dotted']:not([data-shape='vertical']):not([data-shape='spot']),\n .ixfx-handle[data-handle='dimpled']:not([data-shape='vertical']):not([data-shape='spot']) {\n width: var(--_handle-length-snapped);\n height: var(--_handle-thickness-snapped);\n }\n .ixfx-handle[data-handle='dotted'][data-shape='vertical'],\n .ixfx-handle[data-handle='dimpled'][data-shape='vertical'] {\n width: var(--_handle-thickness-snapped);\n height: var(--_handle-length-snapped);\n }\n .ixfx-handle[data-handle='dotted']::before,\n .ixfx-handle[data-handle='dimpled']::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: var(--_handle-dot);\n height: var(--_handle-dot);\n transform: translate(-50%, -50%);\n border-radius: var(--_handle-radius);\n background: currentColor;\n }\n\n /* dotted — the other marks are plain copies: 2 more along the long axis,\n repeated across up to 7 rows/columns on the cross axis (clipped to\n --_handle-rows by the snapped, overflow: hidden bar — see above). */\n .ixfx-handle[data-handle='dotted']:not([data-shape='vertical']):not([data-shape='spot'])::before {\n transform: translate(calc(-50% + var(--_handle-col-shift)), calc(-50% + var(--_handle-row-shift)));\n box-shadow:\n calc(-3 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n 0 calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n 0 calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n 0 calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(var(--_handle-gap)) 0 0 0 currentColor,\n calc(2 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(3 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(-3 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n 0 calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n 0 calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n 0 calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor;\n }\n .ixfx-handle[data-handle='dotted'][data-shape='vertical']::before {\n transform: translate(calc(-50% + var(--_handle-row-shift)), calc(-50% + var(--_handle-col-shift)));\n box-shadow:\n calc(-3 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(-3 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n 0 calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n 0 calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n 0 calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n 0 calc(var(--_handle-gap)) 0 0 currentColor,\n 0 calc(2 * var(--_handle-gap)) 0 0 currentColor,\n 0 calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch)) 0 0 0 currentColor,\n calc(var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor;\n }\n .ixfx-handle[data-handle='dotted'][data-shape='spot']::before,\n .ixfx-handle[data-handle='dimpled'][data-shape='spot']::before {\n box-shadow:\n calc(-1 * var(--_handle-gap)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n 0 calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n var(--_handle-gap) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) 0 0 0 currentColor,\n var(--_handle-gap) 0 0 0 currentColor,\n calc(-1 * var(--_handle-gap)) var(--_handle-gap) 0 0 currentColor,\n 0 var(--_handle-gap) 0 0 currentColor,\n var(--_handle-gap) var(--_handle-gap) 0 0 currentColor;\n }\n\n /* dimpled — each mark also gets a lighter copy up-left and a darker copy\n down-right, repeated across up to 7 rows/columns on the cross axis\n (clipped to --_handle-rows — see above). Spot stays plain — the 3D is\n imperceptible at that size. */\n .ixfx-handle[data-handle='dimpled']:not([data-shape='vertical']):not([data-shape='spot'])::before {\n transform: translate(calc(-50% + var(--_handle-col-shift)), calc(-50% + var(--_handle-row-shift)));\n box-shadow:\n calc(-1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) calc(-3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) calc(-2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) calc(-1 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) 0 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) 0 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) calc(var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) calc(var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) calc(2 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) calc(2 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-gap) + var(--_dimple-off)) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-gap) + var(--_dimple-off)) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-gap) + var(--_dimple-off)) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(var(--_handle-gap) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-gap) + var(--_dimple-off)) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-gap) + var(--_dimple-off)) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-gap)) calc(3 * var(--_handle-pitch)) 0 0 currentColor,\n calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-gap) + var(--_dimple-off)) calc(3 * var(--_handle-pitch) + var(--_dimple-off)) 0 0 var(--_handle-lo);\n }\n .ixfx-handle[data-handle='dimpled'][data-shape='vertical']::before {\n transform: translate(calc(-50% + var(--_handle-row-shift)), calc(-50% + var(--_handle-col-shift)));\n box-shadow:\n calc(-1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-3 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-3 * var(--_handle-pitch) + var(--_dimple-off)) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-2 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-2 * var(--_handle-pitch) + var(--_dimple-off)) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(-1 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(-1 * var(--_handle-pitch) + var(--_dimple-off)) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n 0 calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(-1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n var(--_dimple-off) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) 0 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(var(--_handle-pitch) + var(--_dimple-off)) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(2 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(2 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(2 * var(--_handle-pitch) + var(--_dimple-off)) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) calc(-3 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) calc(-3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) calc(-2 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) calc(-2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) calc(-1 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) calc(-1 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) 0 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(-1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) var(--_dimple-off) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) calc(var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) calc(var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) calc(2 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(2 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) calc(2 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo),\n calc(3 * var(--_handle-pitch)) calc(3 * var(--_handle-gap)) 0 0 currentColor,\n calc(3 * var(--_handle-pitch) + -1 * var(--_dimple-off)) calc(3 * var(--_handle-gap) + -1 * var(--_dimple-off)) 0 0 var(--_handle-hi),\n calc(3 * var(--_handle-pitch) + var(--_dimple-off)) calc(3 * var(--_handle-gap) + var(--_dimple-off)) 0 0 var(--_handle-lo);\n }\n\n /* ── grated: fine 45° knurling — each ridge is a lit edge, the base colour,\n then a shaded edge. Same hatch at every shape (spot is a square crop). ── */\n .ixfx-handle[data-handle='grated'] {\n background-image: repeating-linear-gradient(\n 45deg,\n var(--_handle-hi) 0 0.9px,\n currentColor 0.9px 1.6px,\n var(--_handle-lo) 1.6px 2.5px,\n transparent 2.5px var(--_handle-tile)\n );\n }\n\n @media (prefers-reduced-motion: reduce) {\n .ixfx-handle {\n transition: none;\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmFA,MAAa,eAAe,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hex-editor-Caq8vNQk.d.ts","names":[],"sources":["../src/hex/types.ts","../src/hex/hex-editor.ts"],"mappings":";;KAAY;KAEA;WAA6B;WAAyB,KAAK;;KAC3D;WAAiC;WAA6B,OAAO;WAAkB,KAAK;;KAC5F;WAAkC;WAA8B;WAAoB;WAAoB;WAAwB;;KAChI,YAAY,kBAAkB,sBAAsB;KAYpD;WAAuB;WAAyB;;KAChD,OAAO,YAAY,SAAS;KAK5B;;;cCCC,6BAA6B;EAExC;EAGA,cAAc;EAGd;EAGA;EAGA;EAGA;UAGQ;UAGA;UAGA;UAGA;UAGA;UAGA;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;SAED,sBAAM;EA4Ib,QAAQ,MAAM;EASd;EASA;EAQA;EAUE,iBAAiB;IAAY;IAAyB;IAAqB;;EAY7E,iBAAiB;EAIjB,aAAa;EAMb,iBAAiB,eAAe;EAUhC,kBAAkB,WAAW,WAAW,eAAe;EAYvD;EAMA,gBAAgB;YAIG;UAaX;UAMA;UAoCA;UAwCA;UAuDA;UA4HA;UAOA;UAsDA;UAYA;UAUA;UAQA;UAuBA;UAYM;UAyDN;UAiBA;UASA;UAUA;UAIA;YAIE,wBAAM;UAmCR;UA6BA;UAWA;UA+CA;;KAwCE;WACD,MAAM;;KAGL,iBAAiB,YAAY;KAE7B;WAAqC;WAAyB;;KAC9D;WAAyC;WAA6B;WAAwB;;KAC9F;WAA0C;WAA8B;WAAoB;WAAoB;WAAwB;;KACxI;WAAmC;;KACnC,oBAAoB,0BAA0B,8BAA8B,+BAA+B;QAE/G;YACI;IACR,mBAAmB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hex-editor-DiYpgIKs.js","names":["storeLength","undoDiff","redoDiff","customElement"],"sources":["../src/hex/colour.ts","../src/hex/data.ts","../src/hex/diff.ts","../src/hex/selection.ts","../src/hex/hex-editor.ts"],"sourcesContent":["import { Colour } from '@ixfx/visual';\n\nexport type ColourMap = {\n forByte: (byte: number) => string;\n};\n\nconst WHITESPACE_BYTES = new Set([0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x20]);\n\nfunction isControlByte(byte: number): boolean {\n return byte < 0x20 && byte !== 0x09 && byte !== 0x0A && byte !== 0x0B && byte !== 0x0C && byte !== 0x0D;\n}\n\nfunction isPrintableAscii(byte: number): boolean {\n return byte >= 0x20 && byte <= 0x7E;\n}\n\nexport function getAsciiClass(byte: number): string {\n if (byte === 0)\n return `byte-null`;\n if (WHITESPACE_BYTES.has(byte))\n return `byte-whitespace`;\n if (isControlByte(byte))\n return `byte-control`;\n if (isPrintableAscii(byte))\n return `byte-printable`;\n return `byte-other`;\n}\n\nexport function createShadeMap(nullColour: string, maxColour: string, stepStart: string, stepEnd: string): ColourMap {\n const steps = Colour.createSteps(stepStart, stepEnd, { steps: 16 });\n const cssSteps = steps.map(Colour.toCssColour);\n return {\n forByte: (byte) => {\n if (byte === 0x00)\n return nullColour;\n if (byte === 0xFF)\n return maxColour;\n return cssSteps[byte >> 4];\n },\n };\n}\n","import type { BytePos, Diff } from './types.js';\n\ntype StoreImpl = {\n data: Uint8Array;\n changeset: Set<BytePos>;\n};\n\nexport type HexStore = StoreImpl;\n\nexport function createHexStore(data: Uint8Array): HexStore {\n return {\n data: new Uint8Array(data),\n changeset: new Set<BytePos>(),\n };\n}\n\nexport function readByte(store: HexStore, pos: BytePos): number {\n return store.data[pos] ?? 0;\n}\n\nexport function readBytes(store: HexStore, positions: readonly BytePos[]): readonly number[] {\n return positions.map(p => store.data[p] ?? 0);\n}\n\nexport function length(store: HexStore): number {\n return store.data.length;\n}\n\nfunction clamp(value: number): number {\n return Math.max(0, Math.min(255, value));\n}\n\nexport function writeByte(store: HexStore, pos: BytePos, value: number): Diff {\n const clampedValue = clamp(value);\n const before = store.data[pos];\n const diff: Diff = new Map([[pos, { before, after: clampedValue }]]);\n store.data[pos] = clampedValue;\n store.changeset.add(pos);\n return diff;\n}\n\nexport function writeBytes(store: HexStore, entries: ReadonlyMap<BytePos, number>): Diff {\n const diff = new Map<BytePos, { before: number; after: number }>();\n entries.forEach((value, pos) => {\n const clampedValue = clamp(value);\n const before = store.data[pos];\n diff.set(pos, { before, after: clampedValue });\n store.data[pos] = clampedValue;\n store.changeset.add(pos);\n });\n return diff as Diff;\n}\n\nexport function applyDiff(store: HexStore, diff: Diff): Diff {\n const reverse = new Map<BytePos, { before: number; after: number }>();\n diff.forEach((entry, pos) => {\n const before = store.data[pos];\n reverse.set(pos, { before: entry.after, after: before });\n store.data[pos] = entry.after;\n store.changeset.add(pos);\n });\n return reverse as Diff;\n}\n\nexport function reverseDiff(diff: Diff): Diff {\n const reversed = new Map<BytePos, { before: number; after: number }>();\n diff.forEach((entry, pos) => {\n reversed.set(pos, { before: entry.after, after: entry.before });\n });\n return reversed as Diff;\n}\n\nexport function getChangeset(store: HexStore): ReadonlySet<BytePos> {\n return store.changeset;\n}\n\nexport function clearChangeset(store: HexStore): void {\n store.changeset.clear();\n}\n","import type { Diff } from './types.js';\n\ntype StackImpl = {\n undos: Diff[];\n redos: Diff[];\n};\n\nexport type UndoRedoStack = StackImpl;\n\nexport function createUndoRedoStack(): UndoRedoStack {\n return {\n undos: [],\n redos: [],\n };\n}\n\nexport function push(stack: UndoRedoStack, diff: Diff): void {\n stack.undos.push(diff);\n stack.redos = [];\n}\n\nexport function undo(stack: UndoRedoStack): Diff | undefined {\n const diff = stack.undos.pop();\n if (diff) {\n stack.redos.push(diff);\n }\n return diff;\n}\n\nexport function redo(stack: UndoRedoStack): Diff | undefined {\n const diff = stack.redos.pop();\n if (diff) {\n stack.undos.push(diff);\n }\n return diff;\n}\n\nexport function canUndo(stack: UndoRedoStack): boolean {\n return stack.undos.length > 0;\n}\n\nexport function canRedo(stack: UndoRedoStack): boolean {\n return stack.redos.length > 0;\n}\n","import type { BytePos, ContiguousSelection, RectangularSelection, Selection, SingleSelection } from './types.js';\n\nexport const bytesPerRow = (columns: number): number => columns * 4;\n\nconst min = (a: number, b: number): number => (a < b ? a : b);\nconst max = (a: number, b: number): number => (a > b ? a : b);\n\nexport function clampPos(pos: BytePos, dataLength: number): BytePos {\n return Math.max(0, Math.min(pos, dataLength - 1));\n}\n\nexport function getSelectedPositions(sel: Selection, columns: number): readonly BytePos[] {\n if (!sel)\n return [];\n\n const bpr = bytesPerRow(columns);\n\n if (sel.kind === `single`) {\n return [sel.pos];\n }\n\n if (sel.kind === `contiguous`) {\n const start = min(sel.start, sel.end);\n const end = max(sel.start, sel.end);\n const positions: BytePos[] = [];\n for (let i = start; i <= end; i++) {\n positions.push(i);\n }\n return positions;\n }\n\n if (sel.kind === `rectangular`) {\n const positions: BytePos[] = [];\n for (let row = 0; row < sel.height; row++) {\n for (let col = 0; col < sel.width; col++) {\n const y = sel.y + row;\n const x = sel.x + col;\n const pos = y * bpr + x;\n positions.push(pos);\n }\n }\n return positions;\n }\n\n return [];\n}\n\nexport function selectionContains(sel: Selection, pos: BytePos, columns: number): boolean {\n if (!sel)\n return false;\n\n const bpr = bytesPerRow(columns);\n\n if (sel.kind === `single`) {\n return pos === sel.pos;\n }\n\n if (sel.kind === `contiguous`) {\n const start = min(sel.start, sel.end);\n const end = max(sel.start, sel.end);\n return pos >= start && pos <= end;\n }\n\n if (sel.kind === `rectangular`) {\n const row = Math.floor(pos / bpr);\n const col = pos % bpr;\n const x = sel.x;\n const y = sel.y;\n const width = sel.width;\n const height = sel.height;\n return row >= y && row < y + height && col >= x && col < x + width;\n }\n\n return false;\n}\n\nexport function getCursorPos(sel: Selection, dir: `up` | `down` | `left` | `right`, columns: number, dataLength: number): BytePos {\n let currentPos: BytePos;\n\n if (!sel) {\n currentPos = 0;\n } else if (sel.kind === `single`) {\n currentPos = sel.pos;\n } else if (sel.kind === `contiguous`) {\n currentPos = max(sel.start, sel.end);\n } else if (sel.kind === `rectangular`) {\n currentPos = sel.y * bytesPerRow(columns) + sel.x + sel.width - 1;\n } else {\n currentPos = 0;\n }\n\n const bpr = bytesPerRow(columns);\n let newPos: BytePos;\n\n switch (dir) {\n case `left`:\n newPos = currentPos - 1;\n break;\n case `right`:\n newPos = currentPos + 1;\n break;\n case `up`:\n newPos = currentPos - bpr;\n break;\n case `down`:\n newPos = currentPos + bpr;\n break;\n default:\n newPos = currentPos;\n }\n\n return clampPos(newPos, dataLength);\n}\n\nexport function moveSelection(sel: Selection, dir: `up` | `down` | `left` | `right`, columns: number, dataLength: number): SingleSelection {\n const newPos = getCursorPos(sel, dir, columns, dataLength);\n return { kind: `single`, pos: newPos };\n}\n\nexport function extendContiguous(sel: Selection, _dir: `up` | `down` | `left` | `right`, columns: number, _dataLength: number, anchor: BytePos | null = null): ContiguousSelection {\n let currentPos: BytePos;\n\n if (!sel || sel.kind === `single`) {\n currentPos = sel?.kind === `single` ? sel.pos : 0;\n } else if (sel.kind === `contiguous`) {\n currentPos = max(sel.start, sel.end);\n } else if (sel.kind === `rectangular`) {\n currentPos = sel.y * bytesPerRow(columns) + sel.x;\n } else {\n currentPos = 0;\n }\n\n const newPos = anchor ?? currentPos;\n const start = Math.min(currentPos, newPos);\n const end = Math.max(currentPos, newPos);\n\n return {\n kind: `contiguous`,\n start,\n end,\n };\n}\n\nexport function extendRectangular(sel: Selection, dir: `up` | `down` | `left` | `right`, columns: number, _dataLength: number, anchorX: number = 0, anchorY: number = 0): RectangularSelection {\n const bpr = bytesPerRow(columns);\n\n let x: number;\n let y: number;\n let width: number;\n let height: number;\n\n if (!sel || sel.kind === `single`) {\n const pos = sel?.kind === `single` ? sel.pos : 0;\n x = pos % bpr;\n y = Math.floor(pos / bpr);\n width = 1;\n height = 1;\n } else if (sel.kind === `contiguous`) {\n const start = min(sel.start, sel.end);\n const end = max(sel.start, sel.end);\n x = start % bpr;\n y = Math.floor(start / bpr);\n width = end - start + 1;\n height = 1;\n } else if (sel.kind === `rectangular`) {\n x = sel.x;\n y = sel.y;\n width = sel.width;\n height = sel.height;\n } else {\n x = 0;\n y = 0;\n width = 1;\n height = 1;\n }\n\n const effectiveAnchorX = anchorX > 0 || (sel?.kind === `rectangular`) ? anchorX : x;\n const effectiveAnchorY = anchorY > 0 || (sel?.kind === `rectangular`) ? anchorY : y;\n\n switch (dir) {\n case `left`:\n if (x > effectiveAnchorX) {\n width -= 1;\n } else if (x === effectiveAnchorX && width > 1) {\n x -= 1;\n width += 1;\n } else if (x > 0) {\n x -= 1;\n width += 1;\n }\n break;\n case `right`:\n if (x + width < bpr) {\n width += 1;\n }\n break;\n case `up`:\n if (y > effectiveAnchorY) {\n height -= 1;\n } else if (y === effectiveAnchorY && height > 1) {\n y -= 1;\n height += 1;\n } else if (y > 0) {\n y -= 1;\n height += 1;\n }\n break;\n case `down`:\n height += 1;\n break;\n }\n\n return { kind: `rectangular`, x, y, width, height };\n}\n\nexport function selectionFromPointerRange(start: BytePos, end: BytePos, mode: `contiguous` | `rectangular`, columns: number): Selection {\n const bpr = bytesPerRow(columns);\n\n if (mode === `contiguous`) {\n const s = min(start, end);\n const e = max(start, end);\n return {\n kind: `contiguous`,\n start: s,\n end: e,\n };\n }\n\n const startX = start % bpr;\n const startY = Math.floor(start / bpr);\n const endX = end % bpr;\n const endY = Math.floor(end / bpr);\n\n const x = min(startX, endX);\n const y = min(startY, endY);\n const width = Math.abs(endX - startX) + 1;\n const height = Math.abs(endY - startY) + 1;\n\n return { kind: `rectangular`, x, y, width, height };\n}\n","import type { ColourMap } from './colour.js';\nimport type { BytePos, ColourScheme, Diff, EditState, Selection } from './types.js';\nimport { css, html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\n\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { safeCustomElement as customElement } from '../util/custom-elements.js';\nimport { createShadeMap, getAsciiClass } from './colour.js';\n\nimport { applyDiff, createHexStore, getChangeset, readByte, reverseDiff, length as storeLength, writeByte, writeBytes } from './data.js';\nimport { createUndoRedoStack, push as pushDiff, redo as redoDiff, undo as undoDiff } from './diff.js';\nimport { bytesPerRow, clampPos, extendRectangular, getCursorPos, getSelectedPositions, moveSelection, selectionContains, selectionFromPointerRange } from './selection.js';\n\ntype PointerMode = `pending` | `drag-value` | `select-cont` | `select-rect` | null;\n\ntype DragStart = {\n pos: BytePos;\n startValue: number;\n startY: number;\n startX: number;\n};\n\n@customElement(`ixfx-hex-editor`)\nexport class IxfxHexEditorElement extends LitElement {\n @property({ type: Number })\n columns = 4;\n\n @property({ type: String })\n colourScheme: ColourScheme = `ascii`;\n\n @property({ type: Boolean })\n showChangeset = true;\n\n @property({ type: Boolean, attribute: `hide-offset-col` })\n hideOffsetCol = false;\n\n @property({ type: Boolean, attribute: `hide-hex-col` })\n hideHexCol = false;\n\n @property({ type: Boolean, attribute: `hide-text-col` })\n hideTextCol = false;\n\n @state()\n private _selection: Selection = null;\n\n @state()\n private _scrollTop = 0;\n\n @state()\n private _editState: EditState | null = null;\n\n @state()\n private _containerH = 0;\n\n @state()\n private _shadeMap: ColourMap | null = null;\n\n @state()\n private _focusSide: `hex` | `text` | null = null;\n\n private _store = createHexStore(new Uint8Array(0));\n private _undoStack = createUndoRedoStack();\n private _copyBuffer: Uint8Array | null = null;\n private _rowHeight = 24;\n private _dragStart: DragStart | null = null;\n private _dragAnchor: BytePos | null = null;\n private _rectAnchorX = 0;\n private _rectAnchorY = 0;\n private _rectAnchorXFromKeyboard = 0;\n private _rectAnchorYFromKeyboard = 0;\n private _initialSelectionPoint: BytePos = 0;\n private _currentCursorPoint: BytePos = 0;\n private _pointerMode: PointerMode = null;\n private _currentDragDiff: Diff | null = null;\n private _shiftClickTarget: BytePos | null = null;\n\n static styles = css`\n :host {\n --hex-row-height: 24px;\n --hex-offset-width: 8ch;\n --hex-font: monospace;\n --hex-font-size: 0.85rem;\n --hex-changed-weight: bold;\n\n --ascii-null: #808080;\n --ascii-printable: #4caf50;\n --ascii-whitespace: #ffffff;\n --ascii-control: #f48fb1;\n --ascii-other: #ffeb3b;\n\n --shade-null: #808080;\n --shade-max: #ffffff;\n --shade-step-start: #ff0000;\n --shade-step-end: #0000ff;\n\n display: block;\n font-family: var(--hex-font);\n font-size: var(--hex-font-size);\n }\n\n .hex-editor {\n display: flex;\n flex-direction: column;\n height: 300px;\n overflow: hidden;\n background: #1e1e1e;\n color: #e0e0e0;\n border: 1px solid #333;\n border-radius: 4px;\n }\n\n .scroll-container {\n flex: 1;\n overflow-y: auto;\n position: relative;\n }\n\n .header {\n display: flex;\n background: #2d2d2d;\n font-weight: bold;\n border-bottom: 1px solid #444;\n height: var(--hex-row-height);\n flex-shrink: 0;\n align-items: center;\n }\n\n .row {\n display: flex;\n height: var(--hex-row-height);\n align-items: center;\n }\n\n .row:hover {\n background: rgba(255, 255, 255, 0.05);\n }\n\n .offset-cell {\n width: var(--hex-offset-width);\n padding: 0 8px;\n text-align: right;\n color: #888;\n flex-shrink: 0;\n box-sizing: border-box;\n }\n\n .col-group {\n display: inline-flex;\n gap: 4px;\n margin-right: 16px;\n }\n\n .col-header {\n width: calc(8ch + 28px);\n padding: 0 8px;\n color: #555;\n text-align: right;\n flex-shrink: 0;\n box-sizing: border-box;\n }\n\n .col-header.active {\n color: #aaa;\n }\n\n .text-header {\n padding: 4px 8px;\n color: #555;\n width: calc(var(--columns, 4) * 4 * 1ch);\n box-sizing: border-box;\n flex-shrink: 0;\n }\n\n .text-header.active {\n color: #aaa;\n }\n\n .hex-cell, .text-char {\n display: inline-block;\n width: 2ch;\n text-align: center;\n cursor: pointer;\n user-select: none;\n padding: 2px 0;\n }\n\n .hex-cell.selected, .text-char.selected {\n background: rgba(100, 149, 237, 0.4);\n }\n\n .hex-cell.changed, .text-char.changed {\n font-weight: var(--hex-changed-weight);\n }\n\n .hex-cell.editing {\n background: rgba(255, 215, 0, 0.3);\n }\n\n\n .text-area {\n display: inline-flex;\n gap: 0;\n }\n\n .text-char {\n width: 1ch;\n text-align: left;\n }\n\n .byte-null { color: var(--ascii-null); }\n .byte-printable { color: var(--ascii-printable); }\n .byte-whitespace { color: var(--ascii-whitespace); }\n .byte-control { color: var(--ascii-control); }\n .byte-other { color: var(--ascii-other); }\n `;\n\n setData(data: Uint8Array): void {\n this._store = createHexStore(data);\n this._undoStack = createUndoRedoStack();\n this._selection = null;\n this._editState = null;\n this._scrollTop = 0;\n this.requestUpdate();\n }\n\n undo(): void {\n const diff = undoDiff(this._undoStack);\n if (!diff)\n return;\n const reverse = reverseDiff(diff);\n applyDiff(this._store, reverse);\n this.requestUpdate();\n }\n\n redo(): void {\n const diff = redoDiff(this._undoStack);\n if (!diff)\n return;\n applyDiff(this._store, diff);\n this.requestUpdate();\n }\n\n recomputeColours(): void {\n const style = getComputedStyle(this);\n const nullC = style.getPropertyValue(`--shade-null`).trim() || `#808080`;\n const maxC = style.getPropertyValue(`--shade-max`).trim() || `#ffffff`;\n const stepStart = style.getPropertyValue(`--shade-step-start`).trim() || `#ff0000`;\n const stepEnd = style.getPropertyValue(`--shade-step-end`).trim() || `#0000ff`;\n this._shadeMap = createShadeMap(nullC, maxC, stepStart, stepEnd);\n this.requestUpdate();\n }\n\n * selectedBytes(): Generator<{ selection_index: number; array_index: number; value: number }> {\n const positions = getSelectedPositions(this._selection, this.columns);\n for (let i = 0; i < positions.length; i++) {\n const pos = positions[i];\n yield {\n selection_index: i,\n array_index: pos,\n value: readByte(this._store, pos),\n };\n }\n }\n\n containsPosition(pos: number): boolean {\n return selectionContains(this._selection, pos as BytePos, this.columns);\n }\n\n selectSingle(position: number): void {\n this._selection = { kind: `single`, pos: position as BytePos };\n this._dispatchSelectEvent();\n this.requestUpdate();\n }\n\n selectContiguous(start: number, end: number): void {\n this._selection = {\n kind: `contiguous`,\n start: start as BytePos,\n end: end as BytePos,\n };\n this._dispatchSelectEvent();\n this.requestUpdate();\n }\n\n selectRectangular(x: number, y: number, width: number, height: number): void {\n this._selection = {\n kind: `rectangular`,\n x,\n y,\n width,\n height,\n };\n this._dispatchSelectEvent();\n this.requestUpdate();\n }\n\n clearSelection(): void {\n this._selection = null;\n this._dispatchSelectEvent();\n this.requestUpdate();\n }\n\n getSelection(): Selection {\n return this._selection;\n }\n\n protected override firstUpdated(): void {\n const container = this.shadowRoot?.querySelector(`.scroll-container`);\n if (container) {\n const ro = new ResizeObserver((entries) => {\n this._containerH = entries[0].contentRect.height;\n this.requestUpdate();\n });\n ro.observe(container);\n this._containerH = container.clientHeight;\n }\n this.recomputeColours();\n }\n\n private _onScroll = (e: Event): void => {\n const target = e.target as HTMLElement;\n this._scrollTop = target.scrollTop;\n this.requestUpdate();\n };\n\n private _onPointerDown(pos: BytePos, side: `hex` | `text`, e: PointerEvent): void {\n e.preventDefault();\n if (e.button !== 0)\n return;\n\n (this.shadowRoot?.querySelector(`.hex-editor`) as HTMLElement)?.focus();\n this._focusSide = side;\n\n const target = e.target as Element;\n target.setPointerCapture(e.pointerId);\n\n const bpr = bytesPerRow(this.columns);\n const startX = pos % bpr;\n const startY = Math.floor(pos / bpr);\n\n if (e.metaKey || e.ctrlKey) {\n this._pointerMode = `select-rect`;\n this._dragAnchor = pos;\n this._rectAnchorX = startX;\n this._rectAnchorY = startY;\n } else if (e.shiftKey) {\n this._pointerMode = `select-cont`;\n if (!this._selection || this._selection.kind !== `single`) {\n this._dragAnchor = pos;\n } else {\n this._dragAnchor = this._selection.pos;\n this._shiftClickTarget = pos;\n }\n } else {\n this._pointerMode = `pending`;\n this._dragStart = { pos, startValue: readByte(this._store, pos), startY: e.clientY, startX: e.clientX };\n this._dragAnchor = pos;\n this._currentDragDiff = null;\n }\n }\n\n private _onPointerMove(pos: BytePos, _side: `hex` | `text`, e: PointerEvent): void {\n if (!this._dragStart)\n return;\n\n const dy = Math.abs(e.clientY - this._dragStart.startY);\n const dx = Math.abs(e.clientX - this._dragStart.startX);\n\n if (this._pointerMode === `pending` && dy > 4 && dy > dx) {\n this._pointerMode = `drag-value`;\n this._editState = null;\n }\n\n if (this._pointerMode === `drag-value`) {\n const delta = Math.round((e.clientY - this._dragStart.startY) / 4);\n const newValue = Math.max(0, Math.min(255, this._dragStart.startValue - delta));\n this._currentDragDiff = writeByte(this._store, pos, newValue);\n this.requestUpdate();\n }\n\n if (this._pointerMode === `select-cont`) {\n if (this._dragAnchor !== null) {\n const mode = `contiguous`;\n this._selection = selectionFromPointerRange(this._dragAnchor, pos, mode, this.columns);\n this._dispatchSelectEvent();\n }\n }\n\n if (this._pointerMode === `select-rect`) {\n const bpr = bytesPerRow(this.columns);\n const currentX = pos % bpr;\n const currentY = Math.floor(pos / bpr);\n const x = Math.min(this._rectAnchorX, currentX);\n const y = Math.min(this._rectAnchorY, currentY);\n const width = Math.abs(currentX - this._rectAnchorX) + 1;\n const height = Math.abs(currentY - this._rectAnchorY) + 1;\n this._selection = { kind: `rectangular`, x, y, width, height };\n this._dispatchSelectEvent();\n }\n }\n\n private _onPointerUp(pos: BytePos, side: `hex` | `text`, e: PointerEvent): void {\n const target = e.target as Element;\n target.releasePointerCapture(e.pointerId);\n\n if (this._pointerMode === `pending`) {\n this._selection = { kind: `single`, pos };\n this._initialSelectionPoint = pos;\n this._currentCursorPoint = pos;\n this._editState = { pos, side, partial: `` };\n this._dispatchSelectEvent();\n }\n\n if (this._pointerMode === `select-cont`) {\n if (this._dragAnchor !== null && this._shiftClickTarget !== null) {\n this._selection = {\n kind: `contiguous`,\n start: this._dragAnchor,\n end: this._shiftClickTarget,\n };\n this._initialSelectionPoint = Math.min(this._dragAnchor, this._shiftClickTarget);\n this._currentCursorPoint = Math.max(this._dragAnchor, this._shiftClickTarget);\n this._dispatchSelectEvent();\n } else if (this._dragAnchor !== null) {\n const mode = `contiguous`;\n this._selection = selectionFromPointerRange(this._dragAnchor, pos, mode, this.columns);\n this._initialSelectionPoint = this._dragAnchor;\n this._currentCursorPoint = pos;\n this._dispatchSelectEvent();\n }\n }\n\n if (this._pointerMode === `select-rect`) {\n const bpr = bytesPerRow(this.columns);\n const currentX = pos % bpr;\n const currentY = Math.floor(pos / bpr);\n const x = Math.min(this._rectAnchorX, currentX);\n const y = Math.min(this._rectAnchorY, currentY);\n const width = Math.abs(currentX - this._rectAnchorX) + 1;\n const height = Math.abs(currentY - this._rectAnchorY) + 1;\n this._selection = { kind: `rectangular`, x, y, width, height };\n this._dispatchSelectEvent();\n }\n\n if (this._pointerMode === `drag-value` && this._currentDragDiff) {\n pushDiff(this._undoStack, this._currentDragDiff);\n this._dispatchChangeEvent(this._currentDragDiff);\n }\n\n this._pointerMode = null;\n this._dragStart = null;\n this._dragAnchor = null;\n this._currentDragDiff = null;\n this._shiftClickTarget = null;\n }\n\n private _onKeyDown = (e: KeyboardEvent): void => {\n const isNavigationKey = [`ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`].includes(e.key);\n\n if (isNavigationKey) {\n e.preventDefault();\n e.stopPropagation();\n\n if (this._editState) {\n this._editState = null;\n }\n\n const dir = e.key.replace(`Arrow`, ``).toLowerCase() as `left` | `right` | `up` | `down`;\n const dataLen = storeLength(this._store);\n const bpr = bytesPerRow(this.columns);\n\n if (e.metaKey || e.ctrlKey) {\n if (!this._selection || this._selection.kind !== `rectangular`) {\n let startPos = 0;\n if (this._selection?.kind === `single`) {\n startPos = this._selection.pos;\n } else if (this._selection?.kind === `contiguous`) {\n startPos = Math.min(this._selection.start, this._selection.end);\n }\n this._rectAnchorXFromKeyboard = startPos % bpr;\n this._rectAnchorYFromKeyboard = Math.floor(startPos / bpr);\n this._selection = { kind: `rectangular`, x: this._rectAnchorXFromKeyboard, y: this._rectAnchorYFromKeyboard, width: 1, height: 1 };\n }\n this._selection = extendRectangular(this._selection, dir, this.columns, dataLen, this._rectAnchorXFromKeyboard, this._rectAnchorYFromKeyboard);\n } else if (e.shiftKey) {\n if (!this._selection) {\n this._initialSelectionPoint = 0;\n this._currentCursorPoint = 0;\n } else if (this._selection.kind === `single`) {\n this._initialSelectionPoint = this._selection.pos;\n this._currentCursorPoint = this._selection.pos;\n } else if (this._selection.kind === `rectangular`) {\n const cursorPos = this._selection.y * bpr + this._selection.x;\n this._initialSelectionPoint = cursorPos;\n this._currentCursorPoint = cursorPos;\n }\n const newPos = getCursorPos(this._selection, dir, this.columns, dataLen);\n const start = Math.min(this._initialSelectionPoint, newPos);\n const end = Math.max(this._initialSelectionPoint, newPos);\n this._currentCursorPoint = newPos;\n this._selection = { kind: `contiguous`, start, end };\n } else {\n this._selection = moveSelection(this._selection, dir, this.columns, dataLen);\n const pos = getCursorPos(this._selection, dir, this.columns, dataLen);\n this._initialSelectionPoint = pos;\n this._currentCursorPoint = pos;\n }\n this._dispatchSelectEvent();\n this.requestUpdate();\n return;\n }\n\n if (e.key === `Tab`) {\n e.preventDefault();\n e.stopPropagation();\n if (this._editState) {\n this._advanceCursor();\n } else {\n const dataLen = storeLength(this._store);\n this._selection = moveSelection(this._selection, `right`, this.columns, dataLen);\n this._dispatchSelectEvent();\n }\n this.requestUpdate();\n return;\n }\n\n if (e.key === `Escape`) {\n e.preventDefault();\n e.stopPropagation();\n if (this._editState) {\n this._editState = null;\n } else if (this._selection && this._selection.kind !== `single`) {\n const sel = this._selection;\n let firstPos = 0;\n if ((sel as { kind: string }).kind === `contiguous`) {\n const c = sel as { start: number; end: number };\n firstPos = Math.min(c.start, c.end);\n }\n if ((sel as { kind: string }).kind === `rectangular`) {\n const r = sel as { y: number; x: number };\n firstPos = r.y * bytesPerRow(this.columns) + r.x;\n }\n this._selection = { kind: `single`, pos: firstPos };\n this._dispatchSelectEvent();\n }\n this.requestUpdate();\n return;\n }\n\n if (this._editState) {\n e.stopPropagation();\n\n if (e.key === `Backspace`) {\n this._handleBackspace();\n return;\n }\n\n if (e.key === `Enter`) {\n if (this._editState.side === `hex` && this._editState.partial.startsWith(`.`)) {\n this._commitDecimalValue();\n }\n return;\n }\n\n if (e.key.length === 1) {\n this._handleValueEntry(e.key);\n }\n return;\n }\n\n if (this._selection && this._selection.kind === `single` && e.key.length === 1) {\n e.preventDefault();\n e.stopPropagation();\n const pos = this._selection.pos;\n const side: `hex` | `text` = this._focusSide ?? `hex`;\n this._editState = { pos, side, partial: `` };\n this._handleValueEntry(e.key);\n }\n };\n\n private _handleBackspace(): void {\n if (!this._editState)\n return;\n this._editState = { ...this._editState, partial: `` };\n this.requestUpdate();\n }\n\n private _handleValueEntry(key: string): void {\n if (!this._editState)\n return;\n\n const { pos, side, partial } = this._editState;\n\n if (side === `text`) {\n if (key.length === 1 && key.charCodeAt(0) >= 0x20 && key.charCodeAt(0) <= 0x7E) {\n const value = key.charCodeAt(0);\n const diff = writeByte(this._store, pos, value);\n pushDiff(this._undoStack, diff);\n this._dispatchChangeEvent(diff);\n this._advanceCursor();\n }\n return;\n }\n\n if (partial === `` && key === `.`) {\n this._editState = { ...this._editState, partial: `.` };\n this.requestUpdate();\n return;\n }\n\n if (partial.startsWith(`.`)) {\n if (/\\d/.test(key)) {\n let newPartial = partial + key;\n if (Number(newPartial.slice(1)) > 255) {\n newPartial = `.255`;\n }\n this._editState = { ...this._editState, partial: newPartial };\n this.requestUpdate();\n }\n return;\n }\n\n const hexChars = `0123456789ABCDEFabcdef`;\n if (hexChars.includes(key)) {\n const newPartial = (partial + key.toUpperCase()).slice(-2);\n this._editState = { ...this._editState, partial: newPartial };\n this.requestUpdate();\n\n if (newPartial.length === 2) {\n const value = Number.parseInt(newPartial, 16);\n const diff = writeByte(this._store, pos, value);\n pushDiff(this._undoStack, diff);\n this._dispatchChangeEvent(diff);\n this._advanceCursor();\n }\n } else if (partial !== ``) {\n this._editState = { ...this._editState, partial: `` };\n this.requestUpdate();\n }\n }\n\n private _commitDecimalValue(): void {\n if (!this._editState)\n return;\n const value = Number.parseInt(this._editState.partial.slice(1), 10);\n if (!Number.isNaN(value)) {\n const diff = writeByte(this._store, this._editState.pos, value);\n pushDiff(this._undoStack, diff);\n this._dispatchChangeEvent(diff);\n this._advanceCursor();\n }\n }\n\n private _advanceCursor(): void {\n if (!this._editState)\n return;\n const dataLen = storeLength(this._store);\n const newPos = clampPos(this._editState.pos + 1, dataLen);\n this._editState = { pos: newPos, side: this._editState.side, partial: `` };\n this._selection = { kind: `single`, pos: newPos };\n this.requestUpdate();\n }\n\n private _dispatchChangeEvent(diff: Diff): void {\n this.dispatchEvent(new CustomEvent(`hex-change`, {\n detail: { diff },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _dispatchSelectEvent(): void {\n const sel = this._selection;\n let detail: SelectEventDetail;\n\n if (!sel) {\n detail = { type: `none` };\n } else if (sel.kind === `single`) {\n detail = { type: `single`, position: sel.pos };\n } else if (sel.kind === `contiguous`) {\n detail = { type: `contiguous`, start: sel.start, end: sel.end };\n } else if (sel.kind === `rectangular`) {\n detail = { type: `rectangular`, x: sel.x, y: sel.y, width: sel.width, height: sel.height };\n } else {\n detail = { type: `none` };\n }\n\n this.dispatchEvent(new CustomEvent(`select`, {\n detail,\n bubbles: true,\n composed: true,\n }));\n }\n\n private _copy(): void {\n const positions = getSelectedPositions(this._selection, this.columns);\n if (positions.length === 0)\n return;\n\n const bytes = positions.map((p: BytePos) => readByte(this._store, p));\n this._copyBuffer = new Uint8Array(bytes);\n\n const hexStr = bytes.map((b: number) => b.toString(16).padStart(2, `0`)).join(` `);\n navigator.clipboard?.writeText(hexStr).catch(() => {});\n }\n\n private async _paste(): Promise<void> {\n let bytes: number[] | null = null;\n\n try {\n const text = await navigator.clipboard?.readText();\n if (text) {\n bytes = this._parseHexString(text);\n }\n } catch {\n // ignore\n }\n\n if (!bytes && this._copyBuffer) {\n bytes = Array.from(this._copyBuffer);\n }\n\n if (!bytes || bytes.length === 0)\n return;\n\n if (!this._selection)\n return;\n\n const entries = new Map<BytePos, number>();\n\n if (this._selection.kind === `single`) {\n const startPos = this._selection.pos;\n const dataLen = storeLength(this._store);\n for (let i = 0; i < bytes.length && startPos + i < dataLen; i++) {\n entries.set(startPos + i, bytes[i]);\n }\n } else if (this._selection.kind === `contiguous`) {\n const startPos = Math.min(this._selection.start, this._selection.end);\n const endPos = Math.max(this._selection.start, this._selection.end);\n const available = endPos - startPos + 1;\n for (let i = 0; i < Math.min(bytes.length, available); i++) {\n entries.set(startPos + i, bytes[i]);\n }\n } else if (this._selection.kind === `rectangular`) {\n const { x, y, width, height } = this._selection;\n const bpr = bytesPerRow(this.columns);\n let byteIdx = 0;\n for (let row = 0; row < height && byteIdx < bytes.length; row++) {\n for (let col = 0; col < width && byteIdx < bytes.length; col++) {\n const pos = (y + row) * bpr + x + col;\n entries.set(pos, bytes[byteIdx++]);\n }\n }\n }\n\n if (entries.size > 0) {\n const diff = writeBytes(this._store, entries);\n pushDiff(this._undoStack, diff);\n this._dispatchChangeEvent(diff);\n this.requestUpdate();\n }\n }\n\n private _parseHexString(text: string): number[] {\n const bytes: number[] = [];\n const cleaned = text.replace(/[^0-9A-F]/gi, ` `).trim();\n if (!cleaned)\n return bytes;\n\n const parts = cleaned.split(/\\s+/);\n for (const part of parts) {\n if (part.length === 1) {\n bytes.push(Number.parseInt(part + part, 16));\n } else if (part.length === 2) {\n bytes.push(Number.parseInt(part, 16));\n }\n }\n return bytes;\n }\n\n private _getColHeaders(): string[] {\n const headers: string[] = [];\n for (let i = 0; i < this.columns; i++) {\n const offset = i * 4;\n headers.push(`+${offset.toString(16).toUpperCase()}`);\n }\n return headers;\n }\n\n private _isRowShaded(pos: BytePos): boolean {\n const sel = this._selection;\n if (!sel || sel.kind !== `single`)\n return true;\n const bpr = bytesPerRow(this.columns);\n const row = Math.floor(pos / bpr);\n const selRow = Math.floor(sel.pos / bpr);\n return row === selRow;\n }\n\n private _isHexShaded(pos: BytePos): boolean {\n return this._isRowShaded(pos);\n }\n\n private _isTextShaded(pos: BytePos): boolean {\n return this._isRowShaded(pos);\n }\n\n protected render() {\n const dataLen = storeLength(this._store);\n const bpr = bytesPerRow(this.columns);\n const totalRows = Math.ceil(dataLen / bpr);\n const containerH = this._containerH > 0 ? this._containerH : 280;\n const startRow = Math.floor(this._scrollTop / this._rowHeight);\n const endRow = Math.min(startRow + Math.ceil(containerH / this._rowHeight) + 2, totalRows);\n const topSpacerHeight = startRow * this._rowHeight;\n const botSpacerHeight = (totalRows - endRow) * this._rowHeight;\n const changeset = getChangeset(this._store);\n\n const colHeaders = this._getColHeaders();\n const hexActive = this._focusSide === `hex` || this._focusSide === null;\n const textActive = this._focusSide === `text`;\n\n return html`\n <div class=\"hex-editor\" tabindex=\"0\" @keydown=${this._onKeyDown} @pointerleave=${() => {}}>\n <div class=\"header\">\n ${this.hideOffsetCol ? null : html`<span class=\"offset-cell\">Offset</span>`}\n ${this.hideHexCol ? null : repeat(colHeaders, h => html`<span class=\"col-header ${hexActive ? `active` : ``}\">${h}</span>`)}\n ${this.hideTextCol ? null : html`<span class=\"text-header ${textActive ? `active` : ``}\">Text</span>`}\n </div>\n <div class=\"scroll-container\" @scroll=${this._onScroll}>\n <div style=\"height: ${topSpacerHeight}px\"></div>\n ${repeat(\n Array.from({ length: endRow - startRow }, (_, i) => startRow + i),\n rowIndex => rowIndex,\n rowIndex => this._renderRow(rowIndex, changeset),\n )}\n <div style=\"height: ${botSpacerHeight}px\"></div>\n </div>\n </div>\n `;\n }\n\n private _renderRow(rowIndex: number, changeset: ReadonlySet<BytePos>) {\n const bpr = bytesPerRow(this.columns);\n const offset = rowIndex * bpr;\n\n return html`\n <div class=\"row\" data-row=${rowIndex}>\n ${this.hideOffsetCol ? null : html`<span class=\"offset-cell\">${offset.toString(16).toUpperCase().padStart(6, `0`)}</span>`}\n ${this.hideHexCol\n ? null\n : repeat(\n Array.from({ length: this.columns }, (_, i) => i),\n colIndex => colIndex,\n colIndex => this._renderColumn(rowIndex, colIndex, changeset),\n )}\n ${this.hideTextCol\n ? null\n : html`\n <span class=\"text-area\">\n ${repeat(\n Array.from({ length: bpr }, (_, i) => i),\n i => i,\n i => this._renderTextChar(offset + i, changeset),\n )}\n </span>\n `}\n </div>\n `;\n }\n\n private _renderColumn(rowIndex: number, colIndex: number, changeset: ReadonlySet<BytePos>) {\n const bpr = bytesPerRow(this.columns);\n const basePos = rowIndex * bpr + colIndex * 4;\n\n return html`\n <span class=\"col-group\">\n ${[0, 1, 2, 3].map(b => this._renderHexCell(basePos + b, changeset))}\n </span>\n `;\n }\n\n private _renderHexCell(pos: BytePos, changeset: ReadonlySet<BytePos>) {\n const dataLen = storeLength(this._store);\n if (pos >= dataLen) {\n return html`<span class=\"hex-cell\"></span>`;\n }\n\n const byte = readByte(this._store, pos);\n const hexStr = byte.toString(16).toUpperCase().padStart(2, `0`);\n\n const isSelected = selectionContains(this._selection, pos, this.columns);\n const isChanged = this.showChangeset && changeset.has(pos);\n const isEditing = this._editState?.pos === pos;\n\n const classes: string[] = [`hex-cell`];\n if (isSelected)\n classes.push(`selected`);\n if (isChanged)\n classes.push(`changed`);\n if (isEditing)\n classes.push(`editing`);\n if (this._isHexShaded(pos))\n classes.push(`shaded`);\n\n let displayText = hexStr;\n let colourStyle: Record<string, string> | undefined;\n\n if (isEditing && this._editState) {\n displayText = this._editState.partial === `` ? hexStr : `${this._editState.partial}_`;\n }\n\n if (this.colourScheme === `shade` && this._shadeMap) {\n colourStyle = { color: this._shadeMap.forByte(byte) };\n } else if (this.colourScheme === `ascii`) {\n classes.push(getAsciiClass(byte));\n }\n\n return html`\n <span\n class=${classes.join(` `)}\n style=${styleMap(colourStyle || {})}\n @pointerdown=${(e: PointerEvent) => this._onPointerDown(pos, `hex`, e)}\n @pointerup=${(e: PointerEvent) => this._onPointerUp(pos, `hex`, e)}\n @pointermove=${(e: PointerEvent) => this._onPointerMove(pos, `hex`, e)}\n >${displayText}</span>\n `;\n }\n\n private _renderTextChar(pos: BytePos, changeset: ReadonlySet<BytePos>) {\n const dataLen = storeLength(this._store);\n if (pos >= dataLen) {\n return html`<span class=\"text-char\"></span>`;\n }\n\n const byte = readByte(this._store, pos);\n const char = byte >= 0x20 && byte <= 0x7E ? String.fromCharCode(byte) : `.`;\n\n const isSelected = selectionContains(this._selection, pos, this.columns);\n const isChanged = this.showChangeset && changeset.has(pos);\n\n const classes: string[] = [`text-char`];\n if (isSelected)\n classes.push(`selected`);\n if (isChanged)\n classes.push(`changed`);\n if (this._isTextShaded(pos))\n classes.push(`shaded`);\n\n let colourStyle: Record<string, string> | undefined;\n\n if (this.colourScheme === `shade` && this._shadeMap) {\n colourStyle = { color: this._shadeMap.forByte(byte) };\n } else if (this.colourScheme === `ascii`) {\n classes.push(getAsciiClass(byte));\n }\n\n return html`\n <span\n class=${classes.join(` `)}\n style=${styleMap(colourStyle || {})}\n @pointerdown=${(e: PointerEvent) => this._onPointerDown(pos, `text`, e)}\n @pointerup=${(e: PointerEvent) => this._onPointerUp(pos, `text`, e)}\n @pointermove=${(e: PointerEvent) => this._onPointerMove(pos, `text`, e)}\n >${char}</span>\n `;\n }\n}\n\nexport type HexChangeDetail = {\n readonly diff: Diff;\n};\n\nexport type HexChangeEvent = CustomEvent<HexChangeDetail>;\n\nexport type SingleSelectEventDetail = { readonly type: `single`; readonly position: number };\nexport type ContiguousSelectEventDetail = { readonly type: `contiguous`; readonly start: number; readonly end: number };\nexport type RectangularSelectEventDetail = { readonly type: `rectangular`; readonly x: number; readonly y: number; readonly width: number; readonly height: number };\nexport type NoneSelectEventDetail = { readonly type: `none` };\nexport type SelectEventDetail = SingleSelectEventDetail | ContiguousSelectEventDetail | RectangularSelectEventDetail | NoneSelectEventDetail;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-hex-editor': IxfxHexEditorElement;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"highlight-B-eQrhhb.js","names":[],"sources":["../src/incr-search/highlight.ts"],"sourcesContent":["import type { HighlightOptions, HighlightTarget } from './types.js';\n\nconst DEFAULT_KEY = `incr-search-highlight`;\n\nexport function applyHighlights(\n targets: readonly HighlightTarget[],\n options: HighlightOptions = {},\n): void {\n if (typeof CSS === `undefined` || !CSS.highlights)\n return;\n\n const key = options.key ?? DEFAULT_KEY;\n CSS.highlights.delete(key);\n\n const ranges: Range[] = [];\n\n for (const { element, text, positions } of targets) {\n if (!positions.size)\n continue;\n\n const textNode = findTextNode(element, text);\n if (!textNode)\n continue;\n\n for (const pos of positions) {\n const range = new Range();\n range.setStart(textNode, pos);\n range.setEnd(textNode, pos + 1);\n ranges.push(range);\n }\n }\n\n if (ranges.length > 0) {\n CSS.highlights.set(key, new Highlight(...ranges));\n }\n}\n\nexport function clearHighlights(options: HighlightOptions = {}): void {\n if (typeof CSS === `undefined` || !CSS.highlights)\n return;\n CSS.highlights.delete(options.key ?? DEFAULT_KEY);\n}\n\nexport function buildHighlightTargets<T>(\n root: ShadowRoot | Element,\n itemSelector: string,\n positionsByItem: ReadonlyMap<T, ReadonlySet<number>>,\n getItem: (el: Element) => T | undefined,\n getText: (el: Element) => string,\n): HighlightTarget[] {\n const targets: HighlightTarget[] = [];\n const labelEls = root.querySelectorAll(itemSelector);\n\n for (const el of labelEls) {\n const item = getItem(el);\n if (item === undefined)\n continue;\n const positions = positionsByItem.get(item);\n if (!positions || positions.size === 0)\n continue;\n targets.push({ element: el, text: getText(el), positions });\n }\n\n return targets;\n}\n\nfunction findTextNode(element: Element, expectedText?: string): Text | null {\n for (const node of element.childNodes) {\n if (node.nodeType === Node.TEXT_NODE) {\n if (expectedText === undefined || node.textContent === expectedText) {\n return node as Text;\n }\n }\n }\n return null;\n}\n"],"mappings":";AAEA,MAAM,cAAc;AAEpB,SAAgB,gBACd,SACA,UAA4B,CAAC,GACvB;CACN,IAAI,OAAO,QAAQ,eAAe,CAAC,IAAI,YACrC;CAEF,MAAM,MAAM,QAAQ,OAAO;CAC3B,IAAI,WAAW,OAAO,GAAG;CAEzB,MAAM,SAAkB,CAAC;CAEzB,KAAK,MAAM,EAAE,SAAS,MAAM,eAAe,SAAS;EAClD,IAAI,CAAC,UAAU,MACb;EAEF,MAAM,WAAW,aAAa,SAAS,IAAI;EAC3C,IAAI,CAAC,UACH;EAEF,KAAK,MAAM,OAAO,WAAW;GAC3B,MAAM,QAAQ,IAAI,MAAM;GACxB,MAAM,SAAS,UAAU,GAAG;GAC5B,MAAM,OAAO,UAAU,MAAM,CAAC;GAC9B,OAAO,KAAK,KAAK;EACnB;CACF;CAEA,IAAI,OAAO,SAAS,GAClB,IAAI,WAAW,IAAI,KAAK,IAAI,UAAU,GAAG,MAAM,CAAC;AAEpD;AAEA,SAAgB,gBAAgB,UAA4B,CAAC,GAAS;CACpE,IAAI,OAAO,QAAQ,eAAe,CAAC,IAAI,YACrC;CACF,IAAI,WAAW,OAAO,QAAQ,OAAO,WAAW;AAClD;AAEA,SAAgB,sBACd,MACA,cACA,iBACA,SACA,SACmB;CACnB,MAAM,UAA6B,CAAC;CACpC,MAAM,WAAW,KAAK,iBAAiB,YAAY;CAEnD,KAAK,MAAM,MAAM,UAAU;EACzB,MAAM,OAAO,QAAQ,EAAE;EACvB,IAAI,SAAS,KAAA,GACX;EACF,MAAM,YAAY,gBAAgB,IAAI,IAAI;EAC1C,IAAI,CAAC,aAAa,UAAU,SAAS,GACnC;EACF,QAAQ,KAAK;GAAE,SAAS;GAAI,MAAM,QAAQ,EAAE;GAAG;EAAU,CAAC;CAC5D;CAEA,OAAO;AACT;AAEA,SAAS,aAAa,SAAkB,cAAoC;CAC1E,KAAK,MAAM,QAAQ,QAAQ,YACzB,IAAI,KAAK,aAAa,KAAK,WACrB;MAAA,iBAAiB,KAAA,KAAa,KAAK,gBAAgB,cACrD,OAAO;CAAA;CAIb,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-1gpwtPx8.js","names":["#onIconChange","#onFontChange","customElement"],"sources":["../src/icons/icon.ts"],"sourcesContent":["import type { IconChangedEvent } from './registry.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { themeFallbacks } from '../styles/fallbacks.js';\nimport { safeCustomElement as customElement } from '../util/custom-elements.js';\nimport { getIconEntry, getIconFont, iconBus } from './registry.js';\n\n@customElement(`ixfx-icon`)\nexport class IxfxIconElement extends LitElement {\n @property() name = ``;\n @property({ type: Number }) size: number | undefined;\n @property() label = ``;\n @property({ type: Boolean, attribute: `prominence` }) prominence = false;\n @property({ type: String, attribute: `rotate`, reflect: true }) rotate = ``;\n\n #onIconChange = (e: Event): void => {\n if ((e as IconChangedEvent).detail.name === this.name) {\n this.requestUpdate();\n }\n };\n\n #onFontChange = (): void => {\n const entry = getIconEntry(this.name);\n if (entry?.kind === `font`) {\n this.requestUpdate();\n }\n };\n\n override connectedCallback(): void {\n super.connectedCallback();\n iconBus.addEventListener(`ixfx-icon-change`, this.#onIconChange);\n iconBus.addEventListener(`ixfx-icon-font-change`, this.#onFontChange);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n iconBus.removeEventListener(`ixfx-icon-change`, this.#onIconChange);\n iconBus.removeEventListener(`ixfx-icon-font-change`, this.#onFontChange);\n }\n\n protected override render() {\n const entry = getIconEntry(this.name);\n if (!entry)\n return nothing;\n\n const hasLabel = this.label.length > 0;\n\n if (entry.kind === `font`) {\n const fontFamily = getIconFont();\n return html`\n <span\n class=\"font-icon\"\n style=${styleMap({ fontFamily: fontFamily ?? `` })}\n aria-hidden=${hasLabel ? nothing : `true`}\n aria-label=${hasLabel ? this.label : nothing}\n >${entry.char}</span>\n `;\n }\n\n return html`\n <span\n class=\"icon-wrapper\"\n aria-hidden=${hasLabel ? nothing : `true`}\n aria-label=${hasLabel ? this.label : nothing}\n >${unsafeHTML(entry.svg)}</span>\n `;\n }\n\n protected override updated(changed: Map<string, unknown>): void {\n super.updated(changed);\n if (changed.has(`rotate`)) {\n if (this.rotate?.length > 0) {\n this.style.setProperty(`--rotate`, this.rotate);\n } else {\n this.style.removeProperty(`--rotate`);\n }\n }\n if (changed.has(`size`)) {\n if (this.size !== undefined) {\n this.style.width = `${this.size}px`;\n this.style.height = `${this.size}px`;\n } else {\n this.style.removeProperty(`width`);\n this.style.removeProperty(`height`);\n }\n }\n }\n\n static override styles = [themeFallbacks, css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1em;\n height: 1em;\n opacity: var(--opacity, 1);\n }\n\n :host([prominence]) {\n opacity: var(--prominence-idle-opacity, 1);\n }\n\n :host([prominence]:hover) {\n opacity: var(--prominence-tickled-opacity, 1);\n }\n\n :host([prominence][disabled]) {\n opacity: var(--prominence-disabled-opacity, 0.5);\n }\n\n .icon-wrapper,\n .font-icon {\n display: contents;\n }\n\n :host svg,\n :host .font-icon {\n width: 100%;\n height: 100%;\n transition: transform var(--transition, 0.15s ease-out);\n }\n\n :host .font-icon {\n font-family: inherit;\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n :host([rotate]) svg,\n :host([rotate]) .font-icon {\n transform: rotate(var(--rotate));\n }\n `];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-icon': IxfxIconElement;\n }\n}\n"],"mappings":";;;;;;;;AAUO,IAAM,kBAAN,MAAM,wBAAwB,WAAW;;;EAC3B,KAAA,OAAA;EAEC,KAAA,QAAA;EAC+C,KAAA,aAAA;EACM,KAAA,SAAA;EAExD,KAAA,iBAAA,MAAmB;GAClC,IAAK,EAAuB,OAAO,SAAS,KAAK,MAC/C,KAAK,cAAc;EAEvB;EAE4B,KAAA,sBAAA;GAE1B,IADc,aAAa,KAAK,IACxB,CAAC,EAAE,SAAS,QAClB,KAAK,cAAc;EAEvB;;CAXA;CAMA;CAOA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,QAAQ,iBAAiB,oBAAoB,KAAKA,aAAa;EAC/D,QAAQ,iBAAiB,yBAAyB,KAAKC,aAAa;CACtE;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,QAAQ,oBAAoB,oBAAoB,KAAKD,aAAa;EAClE,QAAQ,oBAAoB,yBAAyB,KAAKC,aAAa;CACzE;CAEA,SAA4B;EAC1B,MAAM,QAAQ,aAAa,KAAK,IAAI;EACpC,IAAI,CAAC,OACH,OAAO;EAET,MAAM,WAAW,KAAK,MAAM,SAAS;EAErC,IAAI,MAAM,SAAS,QAAQ;GACzB,MAAM,aAAa,YAAY;GAC/B,OAAO,IAAI;;;kBAGC,SAAS,EAAE,YAAY,cAAc,GAAG,CAAC,EAAE;wBACrC,WAAW,UAAU,OAAO;uBAC7B,WAAW,KAAK,QAAQ,QAAQ;WAC5C,MAAM,KAAK;;EAElB;EAEA,OAAO,IAAI;;;sBAGO,WAAW,UAAU,OAAO;qBAC7B,WAAW,KAAK,QAAQ,QAAQ;SAC5C,WAAW,MAAM,GAAG,EAAE;;CAE7B;CAEA,QAA2B,SAAqC;EAC9D,MAAM,QAAQ,OAAO;EACrB,IAAI,QAAQ,IAAI,QAAQ,GAAG;GACzB,IAAI,KAAK,QAAQ,SAAS,GACxB,KAAK,MAAM,YAAY,YAAY,KAAK,MAAM;QAE9C,KAAK,MAAM,eAAe,UAAU;EAExC;EACA,IAAI,QAAQ,IAAI,MAAM,GAAG;GACvB,IAAI,KAAK,SAAS,KAAA,GAAW;IAC3B,KAAK,MAAM,QAAQ,GAAG,KAAK,KAAK;IAChC,KAAK,MAAM,SAAS,GAAG,KAAK,KAAK;GACnC,OAAO;IACL,KAAK,MAAM,eAAe,OAAO;IACjC,KAAK,MAAM,eAAe,QAAQ;GACpC;EACF;CACF;;EAEyB,KAAA,SAAA,CAAC,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8C5C;;AACH;AA9HG,WAAA,CAAA,SAAS,CAAA,GAAA,gBAAA,WAAA,QAAA,KAAA,CAAA;AACT,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,gBAAA,WAAA,QAAA,KAAA,CAAA;AACzB,WAAA,CAAA,SAAS,CAAA,GAAA,gBAAA,WAAA,SAAA,KAAA,CAAA;AACT,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,WAAW;AAAa,CAAC,CAAA,GAAA,gBAAA,WAAA,cAAA,KAAA,CAAA;AACnD,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAU,SAAS;AAAK,CAAC,CAAA,GAAA,gBAAA,WAAA,UAAA,KAAA,CAAA;AAN/DC,kBAAAA,WAAAA,CAAAA,kBAAc,WAAW,CAAA,GAAA,eAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-DR_3rSyZ.d.ts","names":[],"sources":["../src/icons/icon.ts"],"mappings":";;cAUa,wBAAwB;;EACvB;EACgB;EAChB;EAC0C;EACU;EAevD;EAMA;YAMU,wBAAM,2BAAA;YA4BN,QAAQ,SAAS;SAoBpB,sBAAM;;QAiDhB;YACI;IACR,aAAa"}
|
package/dist/icons.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","names":[],"sources":["../src/icons/index.ts"],"sourcesContent":["import { registerDefaults } from './defaults.js';\n\nexport { ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE } from './defaults.js';\nexport { IxfxIconElement } from './icon.js';\nexport {\n getIcon,\n getIconEntry,\n getIconFont,\n hasIcon,\n iconBus,\n registerFontIcon,\n registerIcon,\n setIconFont,\n svgToDataUri,\n} from './registry.js';\nexport type { IconChangedDetail, IconChangedEvent, IconEntry } from './registry.js';\n\nregisterDefaults();\n"],"mappings":";;;;AAiBA,iBAAiB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"incr-search-D91M4Ozq.js","names":["FzfAny","DEFAULT_HIGHLIGHT_KEY","#el","#opts","#search","#labelMap","#onInput","#onKeydown","#unsub","#onStateChange","#root","#selector","#map","#observer","#dirty","#rebuild","#host","#adapter","#modes","#mode","#placeholder","#search","#unsub","#onState","#open","#query","#matches","#matchIndex","#observer","#teardownEffects","#focusInput","#filterActive","#applyMode","#currentItems","#cycle","#itemFor","#itemByKey","#onInput","#onKeydown","#highlightKey","#applyHighlights"],"sources":["../src/incr-search/fuzzy.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/incr-search.ts","../src/incr-search/controller-tree.ts","../src/incr-search/data-list-search-adapter.ts","../src/interaction/keyed-list.ts","../src/incr-search/element-list-search-adapter.ts","../src/incr-search/element-search.ts","../src/incr-search/list-search-commands.ts","../src/incr-search/list-search-controller.ts","../src/incr-search/list-search-styles.ts","../src/incr-search/tree-list-search-adapter.ts"],"sourcesContent":["import type { FuzzySearch, FuzzySearchOptions, IncrSearchResult } from './types.js';\nimport { Fzf } from 'fzf';\n\nfunction defaultSelector<T>(item: T): string {\n if (typeof item === `string`)\n return item;\n const r = item as Record<string, unknown>;\n if (typeof r.label === `string`)\n return r.label;\n if (typeof r.key === `string`)\n return r.key;\n if (typeof r.value === `string`)\n return r.value;\n return String(item);\n}\n\nexport function createFuzzySearch<T>(\n items: readonly T[],\n options: FuzzySearchOptions<T> = {},\n): FuzzySearch<T> {\n const selector = options.selector ?? defaultSelector<T>;\n // fzf uses a conditional SyncOptionsTuple<T> rest-parameter overload that TypeScript\n // cannot narrow through a spread when T is generic.\n const FzfAny = Fzf as new (list: readonly T[], opts: any) => { find: (q: string) => Array<{ item: T; positions: ReadonlySet<number>; score: number }> };\n const fzf = new FzfAny(items as readonly T[], { selector, ...(options.fzf ?? {}) });\n\n const find = (query: string): ReadonlyArray<IncrSearchResult<T>> => {\n if (!query.trim()) {\n return items.map(item => ({\n item,\n positions: new Set<number>(),\n score: 0,\n }));\n }\n return fzf.find(query).map(r => ({\n item: r.item,\n positions: r.positions,\n score: r.score,\n }));\n };\n\n return { find, items };\n}\n","import type { FuzzySearchOptions } from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\n/**\n * Creates an ixfx-ac-text-compatible `completionProvider` function from a\n * static item list. Uses synchronous fuzzy search wrapped in a Promise so it\n * fits the async provider signature.\n *\n * Each returned item has `positions` populated with matched character indices,\n * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.\n *\n * Empty query returns all items in original order (no positions).\n * A cancelled signal causes the returned promise to reject with an AbortError.\n */\nexport function createAcCompletionProvider<T extends { label: string }>(\n items: readonly T[],\n options: Pick<FuzzySearchOptions<T>, `selector`> = {},\n): (query: string, signal: AbortSignal) => Promise<Array<T & { positions: ReadonlySet<number> }>> {\n const selector = options.selector ?? ((item: T) => item.label);\n const fuzzy = createFuzzySearch(items, { selector });\n\n return (\n query: string,\n signal: AbortSignal,\n ): Promise<Array<T & { positions: ReadonlySet<number> }>> =>\n new Promise((resolve, reject) => {\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n const results = fuzzy.find(query).map(r => ({ ...r.item, positions: r.positions }));\n\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n resolve(results);\n });\n}\n","import type {\n IncrSearch,\n IncrSearchChangeCallback,\n IncrSearchOptions,\n IncrSearchState,\n} from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\nfunction buildState<T>(results: ReturnType<ReturnType<typeof createFuzzySearch<T>>[`find`]>, query: string): IncrSearchState<T> {\n const positionsByItem = new Map<T, ReadonlySet<number>>();\n for (const r of results) {\n positionsByItem.set(r.item, r.positions);\n }\n return Object.freeze({\n query,\n results: Object.freeze([...results]),\n positionsByItem,\n });\n}\n\nexport function createIncrSearch<T>(options: IncrSearchOptions<T> = {}): IncrSearch<T> {\n let items: readonly T[] = options.items ?? [];\n let query = ``;\n let fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n let state: IncrSearchState<T> = buildState(fuzzy.find(query), query);\n let disposed = false;\n\n const observers = new Set<IncrSearchChangeCallback<T>>();\n\n if (options.onChange) {\n observers.add(options.onChange);\n }\n\n const notify = (s: IncrSearchState<T>): void => {\n for (const cb of observers) {\n cb(s);\n }\n };\n\n const run = async (q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> => {\n // Yield to the microtask queue for a consistent async interface\n await Promise.resolve();\n if (signal?.aborted || disposed) {\n return state;\n }\n const results = fuzzy.find(q);\n if (signal?.aborted || disposed) {\n return state;\n }\n state = buildState(results, q);\n notify(state);\n return state;\n };\n\n return {\n get state() {\n return state;\n },\n\n async setItems(newItems: readonly T[], signal?: AbortSignal): Promise<void> {\n items = newItems;\n fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n await run(query, signal);\n },\n\n async setQuery(q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> {\n query = q;\n return run(q, signal);\n },\n\n async clearQuery(): Promise<void> {\n query = ``;\n await run(``, undefined);\n },\n\n onChange(cb: IncrSearchChangeCallback<T>): () => void {\n observers.add(cb);\n cb(state);\n return () => {\n observers.delete(cb);\n };\n },\n\n dispose(): void {\n disposed = true;\n observers.clear();\n items = [];\n },\n };\n}\n","import type { FzfOptions } from 'fzf';\nimport type { TreeSearchHost } from '../common/searchable.js';\nimport type { TreeNode } from '../common/types.js';\nimport type { IncrSearchState } from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\nconst DEFAULT_HIGHLIGHT_KEY = `incr-search-highlight`;\n\nexport type IncrSearchTreeOptions = {\n selector: (item: { node: TreeNode; depth: number }) => string;\n /**\n * CSS selector for the label elements inside the shadow root.\n * Defaults to `.tree-label` (suitable for ixfx-tree-list).\n * Use `.label` for ixfx-miller-list.\n */\n labelSelector?: string;\n highlightKey?: string;\n input?: HTMLInputElement;\n fzf?: Partial<FzfOptions<{ node: TreeNode; depth: number }>>;\n};\n\ntype SearchItem = { node: TreeNode; depth: number };\n\n/**\n * External-input filter-search controller for `TreeSearchHost` components.\n *\n * @deprecated `ixfx-tree-list` / `ixfx-miller-list` now have a built-in\n * incremental-search popover with navigate / select / filter modes — invoke\n * `el.registry.invoke('list.search.filter')` (see `docs/infra-incremental.md`)\n * instead of wiring an external `<input>`. This class remains for existing\n * consumers and covers filter mode only.\n *\n * @example Using with ixfx-tree-list:\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myTreeList, {\n * selector: item => item.node.item.label,\n * });\n * ctrl.connect();\n * ```\n *\n * @example Using with ixfx-miller-list (different label selector):\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myMillerList, {\n * selector: item => item.node.item.label,\n * labelSelector: '.label',\n * });\n * ctrl.connect();\n * ```\n */\nexport class IncrSearchTreeController {\n #el: TreeSearchHost;\n #opts: IncrSearchTreeOptions;\n #search: ReturnType<typeof createIncrSearch<SearchItem>>;\n #unsub: (() => void) | undefined;\n #labelMap = new Map<string, SearchItem>();\n\n constructor(el: TreeSearchHost, opts: IncrSearchTreeOptions) {\n this.#el = el;\n this.#opts = opts;\n this.#search = createIncrSearch<SearchItem>({\n selector: opts.selector,\n fzf: opts.fzf,\n });\n }\n\n connect(): void {\n this.disconnect();\n\n const items = this.#el.getNodes();\n for (const item of items) {\n this.#labelMap.set(this.#opts.selector(item), item);\n }\n void this.#search.setItems(items);\n\n if (this.#opts.input) {\n this.#opts.input.addEventListener(`input`, this.#onInput);\n this.#opts.input.addEventListener(`keydown`, this.#onKeydown);\n }\n\n this.#unsub = this.#search.onChange(state => this.#onStateChange(state));\n }\n\n disconnect(): void {\n if (this.#unsub) {\n this.#unsub();\n this.#unsub = undefined;\n }\n if (this.#opts.input) {\n this.#opts.input.removeEventListener(`input`, this.#onInput);\n this.#opts.input.removeEventListener(`keydown`, this.#onKeydown);\n }\n this.#el.filterPredicate = undefined;\n clearHighlights({ key: this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY });\n this.#labelMap.clear();\n }\n\n async setQuery(query: string): Promise<void> {\n await this.#search.setQuery(query);\n }\n\n async clearQuery(): Promise<void> {\n await this.#search.clearQuery();\n }\n\n #onInput = () => {\n const value = this.#opts.input?.value ?? ``;\n void this.setQuery(value);\n };\n\n #onKeydown = (e: KeyboardEvent) => {\n if (e.key === `Escape` && this.#opts.input) {\n this.#opts.input.value = ``;\n void this.clearQuery();\n }\n };\n\n #onStateChange(state: IncrSearchState<SearchItem>): void {\n const matched = new Set(state.results.map(r => r.item.node.item.key));\n const hasQuery = state.query.trim().length > 0;\n this.#el.filterPredicate = hasQuery && matched.size > 0\n ? (node: TreeNode, _depth: number) => matched.has(node.item.key)\n : undefined;\n\n const key = this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY;\n if (!this.#el.shadowRoot)\n return;\n\n if (!state.query.trim()) {\n clearHighlights({ key });\n return;\n }\n\n const labelSelector = this.#opts.labelSelector ?? `.tree-label`;\n const targets = buildHighlightTargets(\n this.#el.shadowRoot,\n labelSelector,\n state.positionsByItem,\n (labelEl) => {\n const text = labelEl.textContent ?? ``;\n return this.#labelMap.get(text);\n },\n labelEl => labelEl.textContent ?? ``,\n );\n applyHighlights(targets, { key });\n }\n}\n","import type { ListSearchAdapter } from './list-search-controller.js';\n\n/** One searchable item in data-backed mode. */\nexport type DataListSearchItem = { key: string; index: number };\n\nexport interface DataListSearchAdapterOptions {\n /** Total number of items in the whole collection (search sees all of them). */\n rawCount: () => number;\n /** Raw (unfiltered) index → key. */\n rawKeyAt: (index: number) => string;\n /** Raw (unfiltered) index → text matched against the query. */\n rawSearchTextAt: (index: number) => string;\n /** `filter` mode: the host hides items whose key is not in `matchedKeys` (`undefined` clears). */\n onFilterChange?: (matchedKeys: ReadonlySet<string> | undefined) => void;\n /** `navigate` + Enter: activate the item with this key. Falls back to `focusKey`. */\n onActivate?: (key: string) => void;\n /** Where matched-character highlights are painted (usually the shadow root). */\n getHighlightRoot?: () => ShadowRoot | Element | null | undefined;\n}\n\n/**\n * A {@link ListSearchAdapter} over a data-backed list. Unlike the element\n * adapter it never materialises an element per item — it reads keys and text\n * straight from the source by index. Highlights are painted on whatever\n * captions are currently rendered in the shadow window; offscreen matches paint\n * when scrolled into view. See `docs/infra-incremental.md`.\n */\nexport function createDataListSearchAdapter(\n host: { focusKey: (key: string) => void; selectKeys: (keys: Iterable<string>) => void },\n options: DataListSearchAdapterOptions,\n): ListSearchAdapter<DataListSearchItem> {\n return {\n getItems: () =>\n Array.from({ length: options.rawCount() }, (_, i) => ({\n key: options.rawKeyAt(i),\n index: i,\n })),\n getLabel: item => options.rawSearchTextAt(item.index),\n getKey: item => item.key,\n focusItem: (item) => {\n if (item)\n host.focusKey(item.key);\n },\n activateItem: (item) => {\n if (options.onActivate)\n options.onActivate(item.key);\n else\n host.focusKey(item.key);\n },\n selectItems: (items) => {\n host.selectKeys(items.map(i => i.key));\n },\n applyFilter: (matched) => {\n options.onFilterChange?.(matched);\n },\n highlightRoot: options.getHighlightRoot,\n highlightSelector: `.cell .caption`,\n highlightKeyOf: el => el.closest(`.cell`)?.getAttribute(`data-key`) ?? undefined,\n highlightText: el => el.textContent ?? ``,\n highlightKey: `grid-list-search`,\n };\n}\n","/**\n * Helpers for key-based selection on the Element-flavoured list components\n * (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-grid-list`).\n *\n * A \"key\" is a stable string the host puts on each item element — `data-key`\n * (preferred) or `data-value`. It survives the host rebuilding the item set\n * (re-fetch, re-sort, filter) where raw `Element` references do not.\n */\n\n/**\n * The stable key for an item element: `data-key`, then `data-value`, else\n * `undefined`.\n */\nexport function keyForElement(el: Element): string | undefined {\n return el.getAttribute(`data-key`) ?? el.getAttribute(`data-value`) ?? undefined;\n}\n\n/**\n * A lazily-built key → element index over a container. Rebuilt on first use\n * and after any child-list mutation under `root`; `invalidate()` forces a\n * rebuild on the next `get()`.\n *\n * ```ts\n * #keyIndex = new KeyedElementIndex(this);\n * // ...\n * const el = this.#keyIndex.get(`row-42`);\n * // on disconnect:\n * this.#keyIndex.dispose();\n * ```\n */\nexport class KeyedElementIndex {\n readonly #root: Element;\n readonly #selector: string;\n readonly #map = new Map<string, Element>();\n #dirty = true;\n readonly #observer: MutationObserver;\n\n /**\n * @param root Container whose descendants are indexed.\n * @param itemSelector Which descendants count as items (default: any `[data-key]`).\n */\n constructor(root: Element, itemSelector = `[data-key]`) {\n this.#root = root;\n this.#selector = itemSelector;\n this.#observer = new MutationObserver(() => {\n this.#dirty = true;\n });\n this.#observer.observe(root, { childList: true, subtree: true });\n }\n\n /** The element with this key, or `undefined`. First match wins on duplicates. */\n get(key: string): Element | undefined {\n if (this.#dirty) {\n this.#rebuild();\n }\n return this.#map.get(key);\n }\n\n /** Force a rebuild on the next `get()` — e.g. after a `data-key` attribute change. */\n invalidate(): void {\n this.#dirty = true;\n }\n\n /** Stop observing and drop the cache. */\n dispose(): void {\n this.#observer.disconnect();\n this.#map.clear();\n }\n\n #rebuild(): void {\n this.#map.clear();\n for (const el of this.#root.querySelectorAll(this.#selector)) {\n const key = keyForElement(el);\n if (key !== undefined && !this.#map.has(key)) {\n this.#map.set(key, el);\n }\n }\n this.#dirty = false;\n }\n}\n","import type { ListSearchAdapter } from './list-search-controller.js';\nimport { keyForElement } from '../interaction/keyed-list.js';\n\n/**\n * The slice of a list component the element adapter drives. `ixfx-grid-list`,\n * `ixfx-vertical-list` and `ixfx-detail-list` all satisfy it.\n */\nexport interface ElementListSearchHost extends HTMLElement {\n focusKey: (key: string) => void;\n selectKeys: (keys: Iterable<string>) => void;\n}\n\nexport interface ElementListSearchAdapterOptions {\n /** Selector for item elements, relative to the host. Default `:scope > *`. */\n itemSelector?: string;\n getLabel?: (el: Element) => string;\n getKey?: (el: Element) => string;\n /** `CSS.highlights` registry key for matched-character highlights. */\n highlightKey?: string;\n}\n\nfunction defaultLabel(el: Element): string {\n return el.getAttribute(`data-search-label`) ?? el.textContent?.trim() ?? ``;\n}\n\n/**\n * A {@link ListSearchAdapter} over the light-DOM item elements of a list\n * component. Filter mode toggles `hidden` (only on elements it hid itself, so a\n * consumer's own `hidden` items are left alone). Highlights are painted on the\n * item elements in the light DOM — the consuming page styles\n * `::highlight(<highlightKey>)`. See `docs/infra-incremental.md`.\n */\nexport function createElementListSearchAdapter(\n host: ElementListSearchHost,\n options: ElementListSearchAdapterOptions = {},\n): ListSearchAdapter<Element> {\n const itemSelector = options.itemSelector ?? `:scope > *`;\n const getLabel = options.getLabel ?? defaultLabel;\n const getKey = options.getKey ?? (el => keyForElement(el) ?? defaultLabel(el));\n const hidden = new Set<Element>();\n\n const items = (): Element[] => Array.from(host.querySelectorAll(itemSelector));\n\n return {\n getItems: items,\n getLabel,\n getKey,\n focusItem: (el) => {\n if (el)\n host.focusKey(getKey(el));\n },\n activateItem: (el) => {\n el.dispatchEvent(new MouseEvent(`click`, { bubbles: true, composed: true }));\n },\n selectItems: (els) => {\n host.selectKeys(els.map(getKey));\n },\n applyFilter: (matched) => {\n if (matched === undefined) {\n for (const el of hidden)\n (el as HTMLElement).hidden = false;\n hidden.clear();\n return;\n }\n for (const el of items()) {\n if (matched.has(getKey(el))) {\n if (hidden.delete(el))\n (el as HTMLElement).hidden = false;\n } else {\n (el as HTMLElement).hidden = true;\n hidden.add(el);\n }\n }\n },\n highlightRoot: () => host,\n highlightSelector: itemSelector,\n highlightKeyOf: el => getKey(el),\n highlightText: getLabel,\n highlightKey: options.highlightKey,\n container: () => host,\n };\n}\n","import type {\n ElementIncrSearchOptions,\n IncrSearchChangeCallback,\n IncrSearchState,\n} from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\ntype ElementItem = { readonly key: string; readonly label: string };\n\nconst defaultGetLabel = (el: Element): string => el.textContent?.trim() ?? ``;\n\nfunction defaultGetKey(el: Element): string {\n return el.getAttribute(`data-key`)\n ?? el.getAttribute(`data-value`)\n ?? el.textContent?.trim()\n ?? ``;\n}\n\nexport type ElementIncrSearch = {\n readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;\n readonly clearQuery: () => Promise<void>;\n readonly refresh: () => void;\n readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;\n readonly dispose: () => void;\n};\n\n/**\n * DOM filter-search over a container's item elements (sets `hidden` on\n * non-matches, applies highlights).\n *\n * @deprecated The list components (`ixfx-grid-list`, `ixfx-vertical-list`,\n * `ixfx-detail-list`, …) now have a built-in navigate / select / filter search\n * popover — see `docs/infra-incremental.md` and `ListSearchController`. Kept for\n * standalone / non-component use.\n */\nexport function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch {\n const {\n container,\n itemSelector,\n getLabel = defaultGetLabel,\n getKey = defaultGetKey,\n labelSelector,\n highlightKey,\n } = opts;\n\n // Map from key → element reference for highlight lookup\n let elementByKey = new Map<string, Element>();\n\n const search = createIncrSearch<ElementItem>({\n selector: item => item.label,\n fzf: opts.fzf,\n });\n\n const updateVisibility = (state: IncrSearchState<ElementItem>): void => {\n const matchedKeys = new Set(state.results.map(r => r.item.key));\n const hasQuery = state.query.trim().length > 0;\n\n for (const [key, el] of elementByKey) {\n (el as HTMLElement).hidden = hasQuery ? !matchedKeys.has(key) : false;\n }\n };\n\n const updateHighlights = (state: IncrSearchState<ElementItem>): void => {\n if (!state.query.trim()) {\n clearHighlights({ key: highlightKey });\n return;\n }\n\n const sel = labelSelector ?? itemSelector;\n const targets = buildHighlightTargets(\n container,\n sel,\n state.positionsByItem,\n (el) => {\n const key = getKey(el);\n // Find the ElementItem whose key matches this element's key\n const result = state.results.find(r => r.item.key === key);\n return result?.item;\n },\n el => getLabel(el),\n );\n applyHighlights(targets, { key: highlightKey });\n };\n\n const unsubscribeState = search.onChange((state) => {\n updateVisibility(state);\n updateHighlights(state);\n opts.onChange?.(state);\n });\n\n let refreshPending = false;\n\n const refresh = (): void => {\n if (refreshPending)\n return;\n refreshPending = true;\n void Promise.resolve().then(() => {\n refreshPending = false;\n elementByKey = new Map<string, Element>();\n const els = container.querySelectorAll(itemSelector);\n const items: ElementItem[] = [];\n for (const el of els) {\n const key = getKey(el);\n elementByKey.set(key, el);\n items.push({ key, label: getLabel(el) });\n }\n void search.setItems(items);\n });\n };\n\n const observer = new MutationObserver(() => refresh());\n observer.observe(container, { childList: true, subtree: false });\n\n refresh();\n\n return {\n async setQuery(query, signal) {\n await search.setQuery(query, signal);\n },\n\n async clearQuery() {\n await search.clearQuery();\n },\n\n refresh,\n\n onChange(cb) {\n return search.onChange(cb);\n },\n\n dispose() {\n observer.disconnect();\n unsubscribeState();\n search.dispose();\n clearHighlights({ key: highlightKey });\n },\n };\n}\n","import type { CommandRegistry } from '@clinth/ui-commands';\nimport type { ListSearchController, ListSearchMode } from './list-search-controller.js';\n\n/** Command ids registered by {@link registerListSearchCommands}, keyed by mode. */\nexport const LIST_SEARCH_COMMAND_IDS: Readonly<Record<ListSearchMode, string>> = {\n navigate: `list.search.navigate`,\n select: `list.search.select`,\n filter: `list.search.filter`,\n};\n\nconst LABELS: Readonly<Record<ListSearchMode, { label: string; description: string }>> = {\n navigate: { label: `Find`, description: `Type to move the cursor to the best match` },\n select: { label: `Find & Select`, description: `Type to select every matching item` },\n filter: { label: `Filter`, description: `Type to hide items that don't match` },\n};\n\nexport interface RegisterListSearchCommandsOptions {\n /**\n * Prefix for command ids, e.g. `grid-list` ⇒ `grid-list.search.filter`. When\n * omitted the shared ids from {@link LIST_SEARCH_COMMAND_IDS} are used so a\n * single dispatch (`ixfx-grouped-item-lister.dispatch('list.search.filter')`)\n * fans out to every list.\n */\n idPrefix?: string;\n}\n\n/**\n * Register one command per mode the controller offers (see\n * `controller.registeredModes`). Each command opens the search popover in its\n * mode. Returns a function that unregisters them again — call it from\n * `disconnectedCallback`. See `docs/infra-incremental.md`.\n */\nexport function registerListSearchCommands<T>(\n registry: CommandRegistry<unknown>,\n controller: ListSearchController<T>,\n options: RegisterListSearchCommandsOptions = {},\n): () => void {\n const id = (mode: ListSearchMode): string =>\n options.idPrefix ? `${options.idPrefix}.search.${mode}` : LIST_SEARCH_COMMAND_IDS[mode];\n\n const registered: string[] = [];\n for (const mode of controller.registeredModes) {\n const commandId = id(mode);\n if (registry.has(commandId))\n continue;\n registry.register({\n id: commandId,\n label: LABELS[mode].label,\n description: LABELS[mode].description,\n execute: () => controller.open(mode),\n });\n registered.push(commandId);\n }\n\n return () => {\n for (const commandId of registered)\n registry.unregister(commandId);\n };\n}\n","import type { FzfOptions } from 'fzf';\nimport type { ReactiveController, ReactiveControllerHost, TemplateResult } from 'lit';\nimport type { IncrSearchResult, IncrSearchState } from './types.js';\nimport { html, nothing } from 'lit';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\nimport '../icons/icon.js';\n\n/**\n * The three things incremental search can do to a list / tree component. See\n * `docs/infra-incremental.md`.\n *\n * - `navigate` — move the cursor to the best match; ↑/↓ cycle between matches;\n * Enter activates the current match and closes.\n * - `select` — (re)select every item whose label matches, live as you type.\n * - `filter` — hide items that don't match; restored when the popover closes.\n */\nexport type ListSearchMode = `navigate` | `select` | `filter`;\n\n/** Canonical order — used for the switch-row and to normalise a requested set. */\nexport const LIST_SEARCH_MODES: readonly ListSearchMode[] = [`navigate`, `select`, `filter`];\n\nconst DEFAULT_HIGHLIGHT_KEY = `incr-search-highlight`;\nconst INPUT_CLASS = `list-search-input`;\n\ntype SearchItem = { readonly key: string; readonly label: string };\n\n/**\n * Everything {@link ListSearchController} needs to drive a specific host. One is\n * supplied per component; `createElementListSearchAdapter` and\n * `createTreeListSearchAdapter` cover the common shapes.\n */\nexport interface ListSearchAdapter<TItem> {\n /** All searchable items, in display order. */\n getItems: () => readonly TItem[];\n /** Text matched against the query. */\n getLabel: (item: TItem) => string;\n /** Stable identity for an item. */\n getKey: (item: TItem) => string;\n /** `navigate`: move the cursor to `item` and reveal it. `undefined` = no-op. */\n focusItem: (item: TItem | undefined) => void;\n /** `navigate` + Enter: activate `item` (falls back to `focusItem`). */\n activateItem?: (item: TItem) => void;\n /** `select` / \"Select matches\": replace the selection with `items`. */\n selectItems: (items: readonly TItem[]) => void;\n /** `filter`: hide items whose key is not in `matchedKeys`; `undefined` clears the filter. */\n applyFilter: (matchedKeys: ReadonlySet<string> | undefined) => void;\n /** Where matched-character highlights are painted (usually the shadow root). */\n highlightRoot?: () => ShadowRoot | Element | null | undefined;\n /** CSS selector for the label elements inside {@link highlightRoot}. */\n highlightSelector?: string;\n /** Given a label element, the key of the item it belongs to. */\n highlightKeyOf?: (labelEl: Element) => string | undefined;\n /** Text of a label element as fzf saw it (defaults to `el.textContent`). */\n highlightText?: (labelEl: Element) => string;\n /** `CSS.highlights` registry key. Defaults to `incr-search-highlight`. */\n highlightKey?: string;\n /** Element whose child-list mutations should trigger a `refresh()`. */\n container?: () => Element | null | undefined;\n}\n\nexport interface ListSearchControllerOptions<TItem> {\n adapter: ListSearchAdapter<TItem>;\n /**\n * Modes this instance offers, as entry points and as in-popover switch\n * targets. The controller intersects this with {@link LIST_SEARCH_MODES}, so\n * pass the intersection of the component's own capability and any\n * consumer-set `search-modes`. Empty ⇒ search disabled. Default: all three.\n */\n modes?: readonly ListSearchMode[];\n fzf?: Partial<FzfOptions<SearchItem>>;\n placeholder?: string;\n}\n\nexport type ListSearchHost = ReactiveControllerHost & HTMLElement & {\n renderRoot?: DocumentFragment | HTMLElement;\n};\n\n/**\n * Shared brain for the three-mode incremental-search popover. A Lit\n * `ReactiveController`: the host adds `listSearchStyles` to `static styles`,\n * drops `${controller.renderField()}` into `render()`, and registers the\n * commands with {@link registerListSearchCommands}. See `docs/infra-incremental.md`.\n */\nexport class ListSearchController<TItem> implements ReactiveController {\n #host: ListSearchHost;\n #adapter: ListSearchAdapter<TItem>;\n #modes: readonly ListSearchMode[];\n #placeholder: string;\n #search: ReturnType<typeof createIncrSearch<SearchItem>>;\n #unsub: (() => void) | undefined;\n #observer: MutationObserver | undefined;\n\n #itemByKey = new Map<string, TItem>();\n\n #open = false;\n #mode: ListSearchMode = `filter`;\n #query = ``;\n #matchIndex = 0;\n #matches: ReadonlyArray<IncrSearchResult<SearchItem>> = [];\n /** Whether a filter has been pushed to the adapter and still needs undoing. */\n #filterActive = false;\n\n constructor(host: ListSearchHost, options: ListSearchControllerOptions<TItem>) {\n this.#host = host;\n this.#adapter = options.adapter;\n const requested = new Set(options.modes ?? LIST_SEARCH_MODES);\n this.#modes = LIST_SEARCH_MODES.filter(m => requested.has(m));\n this.#mode = this.#modes[0] ?? `filter`;\n this.#placeholder = options.placeholder ?? `Search…`;\n this.#search = createIncrSearch<SearchItem>({ selector: i => i.label, fzf: options.fzf });\n this.#unsub = this.#search.onChange(state => this.#onState(state));\n // Register last: on an already-connected host `addController` invokes\n // `hostConnected()` synchronously, which reads `#adapter` / `#search`.\n host.addController(this);\n }\n\n // --- Public surface ---\n\n /** `false` when no modes are available — the host should register no commands and render no field. */\n get enabled(): boolean {\n return this.#modes.length > 0;\n }\n\n /** The modes actually offered (component capability ∩ consumer request). */\n get registeredModes(): readonly ListSearchMode[] {\n return this.#modes;\n }\n\n /**\n * Replace the offered mode set (normalised to {@link LIST_SEARCH_MODES}\n * order). If the current mode is dropped the popover closes and falls back to\n * the first remaining mode. Callers should re-run\n * {@link registerListSearchCommands} afterwards.\n */\n setModes(modes: readonly ListSearchMode[]): void {\n const set = new Set(modes);\n this.#modes = LIST_SEARCH_MODES.filter(m => set.has(m));\n if (!this.#modes.includes(this.#mode)) {\n if (this.#open)\n this.close();\n this.#mode = this.#modes[0] ?? `filter`;\n }\n this.#host.requestUpdate();\n }\n\n get isOpen(): boolean {\n return this.#open;\n }\n\n get mode(): ListSearchMode {\n return this.#mode;\n }\n\n get query(): string {\n return this.#query;\n }\n\n get matchCount(): number {\n return this.#matches.length;\n }\n\n get matchIndex(): number {\n return this.#matchIndex;\n }\n\n // --- ReactiveController lifecycle ---\n\n hostConnected(): void {\n const container = this.#adapter.container?.();\n if (container) {\n this.#observer = new MutationObserver(() => this.refresh());\n this.#observer.observe(container, { childList: true, subtree: false });\n }\n this.refresh();\n }\n\n hostDisconnected(): void {\n this.#observer?.disconnect();\n this.#observer = undefined;\n if (this.#open)\n this.#teardownEffects();\n this.#open = false;\n this.#unsub?.();\n this.#unsub = undefined;\n this.#search.dispose();\n }\n\n // --- Commands / actions ---\n\n /** Open the popover in `mode` (clamped to the available set). */\n open(mode: ListSearchMode): void {\n if (!this.enabled)\n return;\n this.#mode = this.#modes.includes(mode) ? mode : this.#modes[0];\n this.#open = true;\n this.#query = ``;\n this.#matchIndex = 0;\n this.#matches = [];\n this.refresh();\n void this.#search.setQuery(``);\n this.#host.requestUpdate();\n void this.#host.updateComplete.then(() => this.#focusInput());\n }\n\n /** Close the popover, restoring any live filter. Selection / cursor stay put. */\n close(): void {\n if (!this.#open)\n return;\n this.#open = false;\n this.#teardownEffects();\n this.#query = ``;\n this.#matches = [];\n void this.#search.clearQuery();\n this.#host.requestUpdate();\n this.#host.focus();\n }\n\n setQuery(query: string): void {\n this.#query = query;\n this.#matchIndex = 0;\n void this.#search.setQuery(query);\n }\n\n /** Re-interpret the current query under a new mode (undoing the old mode's effect). */\n switchMode(next: ListSearchMode): void {\n if (!this.#modes.includes(next) || next === this.#mode)\n return;\n if (this.#mode === `filter` && this.#filterActive) {\n this.#adapter.applyFilter(undefined);\n this.#filterActive = false;\n }\n this.#mode = next;\n this.#applyMode();\n this.#host.requestUpdate();\n void this.#host.updateComplete.then(() => this.#focusInput());\n }\n\n /** One-shot: turn the current match set into the selection, staying in the current mode. */\n selectMatches(): void {\n if (!this.#modes.includes(`select`))\n return;\n this.#adapter.selectItems(this.#currentItems());\n this.#host.requestUpdate();\n }\n\n nextMatch(): void {\n this.#cycle(1);\n }\n\n prevMatch(): void {\n this.#cycle(-1);\n }\n\n /** Enter: in `navigate` activate the current match; then close. */\n commit(): void {\n if (this.#mode === `navigate`) {\n const item = this.#itemFor(this.#matches[this.#matchIndex]);\n if (item) {\n if (this.#adapter.activateItem)\n this.#adapter.activateItem(item);\n else\n this.#adapter.focusItem(item);\n }\n }\n this.close();\n }\n\n /** Rebuild the searchable item set from the adapter. Called on open and on container mutation. */\n refresh(): void {\n this.#itemByKey.clear();\n const items: SearchItem[] = [];\n for (const it of this.#adapter.getItems()) {\n const key = this.#adapter.getKey(it);\n this.#itemByKey.set(key, it);\n items.push({ key, label: this.#adapter.getLabel(it) });\n }\n void this.#search.setItems(items);\n }\n\n // --- Rendering ---\n\n /** Popover markup. Pair with `listSearchStyles` in the host's `static styles`. */\n renderField(): TemplateResult | typeof nothing {\n if (!this.enabled)\n return nothing;\n const hasQuery = this.#query.trim().length > 0;\n const others = this.#modes.filter(m => m !== this.#mode);\n const showSelectMatches = this.#modes.includes(`select`) && this.#mode !== `select`;\n return html`\n <div class=\"list-search\" part=\"search\" ?hidden=${!this.#open}>\n <div class=\"list-search-row\">\n <span class=\"list-search-mode\">${this.#mode}</span>\n <input\n class=${INPUT_CLASS}\n type=\"text\"\n part=\"search-input\"\n placeholder=${this.#placeholder}\n .value=${this.#query}\n @input=${this.#onInput}\n @keydown=${this.#onKeydown}\n />\n ${hasQuery\n ? html`<span class=\"list-search-count\">${this.#matches.length === 0 ? `0` : this.#matchIndex + 1} / ${this.#matches.length}</span>`\n : nothing}\n ${this.#mode === `navigate` && this.#matches.length > 1\n ? html`\n <button class=\"list-search-icon-btn\" title=\"Previous match (↑)\" @click=${() => this.prevMatch()}><ixfx-icon name=\"chevron-left\" size=\"14\"></ixfx-icon></button>\n <button class=\"list-search-icon-btn\" title=\"Next match (↓)\" @click=${() => this.nextMatch()}><ixfx-icon name=\"chevron-right\" size=\"14\"></ixfx-icon></button>\n `\n : nothing}\n <button class=\"list-search-icon-btn\" title=\"Close (Esc)\" @click=${() => this.close()}><ixfx-icon name=\"close\" size=\"14\"></ixfx-icon></button>\n </div>\n ${others.length > 0 || showSelectMatches\n ? html`\n <div class=\"list-search-switch\">\n ${others.map(m => html`<button class=\"list-search-btn\" @click=${() => this.switchMode(m)}>${m}</button>`)}\n ${showSelectMatches\n ? html`<button class=\"list-search-btn\" @click=${() => this.selectMatches()}>Select matches</button>`\n : nothing}\n </div>\n `\n : nothing}\n </div>\n `;\n }\n\n // --- Internals ---\n\n #focusInput(): void {\n this.#host.renderRoot?.querySelector<HTMLInputElement>(`.${INPUT_CLASS}`)?.focus();\n }\n\n #onInput = (e: Event): void => {\n this.setQuery((e.target as HTMLInputElement).value);\n };\n\n #onKeydown = (e: KeyboardEvent): void => {\n switch (e.key) {\n case `Escape`:\n e.preventDefault();\n e.stopPropagation();\n this.close();\n break;\n case `Enter`:\n e.preventDefault();\n e.stopPropagation();\n this.commit();\n break;\n case `ArrowDown`:\n if (this.#mode === `navigate`) {\n e.preventDefault();\n this.nextMatch();\n }\n break;\n case `ArrowUp`:\n if (this.#mode === `navigate`) {\n e.preventDefault();\n this.prevMatch();\n }\n break;\n default:\n break;\n }\n };\n\n #cycle(delta: number): void {\n if (this.#matches.length === 0)\n return;\n const n = this.#matches.length;\n this.#matchIndex = (this.#matchIndex + delta + n) % n;\n if (this.#mode === `navigate`)\n this.#adapter.focusItem(this.#itemFor(this.#matches[this.#matchIndex]));\n this.#host.requestUpdate();\n }\n\n #itemFor(match: IncrSearchResult<SearchItem> | undefined): TItem | undefined {\n return match ? this.#itemByKey.get(match.item.key) : undefined;\n }\n\n #currentItems(): TItem[] {\n return this.#matches\n .map(m => this.#itemFor(m))\n .filter((x): x is TItem => x !== undefined);\n }\n\n get #highlightKey(): string {\n return this.#adapter.highlightKey ?? DEFAULT_HIGHLIGHT_KEY;\n }\n\n #onState(state: IncrSearchState<SearchItem>): void {\n if (!this.#open)\n return;\n const hasQuery = state.query.trim().length > 0;\n this.#matches = hasQuery ? [...state.results] : [];\n if (this.#matchIndex >= this.#matches.length)\n this.#matchIndex = 0;\n this.#applyMode();\n this.#host.requestUpdate();\n }\n\n #applyMode(): void {\n const hasQuery = this.#query.trim().length > 0;\n\n if (!hasQuery) {\n if (this.#filterActive) {\n this.#adapter.applyFilter(undefined);\n this.#filterActive = false;\n }\n this.#applyHighlights();\n return;\n }\n\n switch (this.#mode) {\n case `navigate`:\n this.#adapter.focusItem(this.#itemFor(this.#matches[this.#matchIndex]));\n break;\n case `select`:\n this.#adapter.selectItems(this.#currentItems());\n break;\n case `filter`:\n this.#adapter.applyFilter(new Set(this.#matches.map(m => m.item.key)));\n this.#filterActive = true;\n break;\n }\n this.#applyHighlights();\n }\n\n #applyHighlights(): void {\n const root = this.#adapter.highlightRoot?.();\n const selector = this.#adapter.highlightSelector;\n const keyOf = this.#adapter.highlightKeyOf;\n if (!root || !selector || !keyOf)\n return;\n if (this.#query.trim().length === 0) {\n clearHighlights({ key: this.#highlightKey });\n return;\n }\n const state = this.#search.state;\n const targets = buildHighlightTargets(\n root,\n selector,\n state.positionsByItem,\n (el) => {\n const key = keyOf(el);\n return key === undefined ? undefined : state.results.find(r => r.item.key === key)?.item;\n },\n this.#adapter.highlightText ?? (el => el.textContent ?? ``),\n );\n // Highlights are cosmetic — never let a bad range (label / positions\n // mismatch) surface as an unhandled rejection through the async engine.\n try {\n applyHighlights(targets, { key: this.#highlightKey });\n } catch {\n clearHighlights({ key: this.#highlightKey });\n }\n }\n\n #teardownEffects(): void {\n if (this.#filterActive) {\n this.#adapter.applyFilter(undefined);\n this.#filterActive = false;\n }\n clearHighlights({ key: this.#highlightKey });\n }\n}\n","import { css } from 'lit';\n\n/**\n * Styles for the incremental-search popover rendered by\n * `ListSearchController.renderField()`. Add to a component's `static styles`;\n * the class names are the contract between this fragment and `renderField()`.\n *\n * The host must give the popover a positioned ancestor (a wrapper with\n * `position: relative`, or `:host { position: relative }`). Tunables:\n * `--list-search-inset` (default `8px`) offsets it from the top-right corner.\n *\n * See `docs/infra-incremental.md`.\n */\nexport const listSearchStyles = css`\n .list-search {\n position: absolute;\n top: var(--list-search-inset, 8px);\n right: var(--list-search-inset, 8px);\n z-index: 20;\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 6px;\n box-sizing: border-box;\n background: var(--surface-4, #2a2a2a);\n color: var(--surface-3-text, inherit);\n border: 1px solid var(--border, #444);\n border-radius: var(--radius-m, 6px);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);\n font-size: var(--text-s, 0.85em);\n }\n\n .list-search[hidden] {\n display: none;\n }\n\n .list-search-row {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .list-search-mode {\n flex: none;\n padding: 1px 7px;\n border-radius: 999px;\n font-weight: 600;\n text-transform: capitalize;\n background: var(--accent, #60a5fa);\n color: var(--accent-text, #000);\n }\n\n .list-search-input {\n flex: 1;\n min-width: 140px;\n background: transparent;\n border: none;\n outline: none;\n color: inherit;\n font: inherit;\n }\n\n .list-search-count {\n flex: none;\n opacity: 0.6;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n }\n\n .list-search-switch {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n }\n\n .list-search-btn {\n padding: 1px 7px;\n background: var(--surface-3, #333);\n color: inherit;\n border: 1px solid var(--border, #444);\n border-radius: var(--radius-s, 4px);\n cursor: pointer;\n font: inherit;\n text-transform: capitalize;\n }\n\n .list-search-btn:hover {\n background: var(--item-bg-tickled, #444);\n }\n\n .list-search-icon-btn {\n flex: none;\n padding: 0 2px;\n background: transparent;\n border: none;\n color: var(--surface-muted-text, #888);\n cursor: pointer;\n font-size: 1.1em;\n line-height: 1;\n }\n\n .list-search-icon-btn:hover {\n color: inherit;\n }\n`;\n","import type { TreeSearchHost } from '../common/tree-component.js';\nimport type { TreeNode } from '../common/types.js';\nimport type { ListSearchAdapter } from './list-search-controller.js';\n\ntype TreeSearchItem = { node: TreeNode; depth: number };\n\nexport interface TreeListSearchAdapterOptions {\n /** Label-element selector inside the shadow root. Default `.tree-label`; `ixfx-miller-list` uses `.label`. */\n labelSelector?: string;\n /** `CSS.highlights` registry key for matched-character highlights. */\n highlightKey?: string;\n getLabel?: (item: TreeSearchItem) => string;\n}\n\n/**\n * A {@link ListSearchAdapter} over any `TreeSearchHost` (`ixfx-tree-list`,\n * `ixfx-miller-list`, `ixfx-crumb-navigation`). Navigate reveals the match\n * (expands its ancestors, moves the cursor); select drives `selectMany`; filter\n * sets `filterPredicate`. The item set is the whole tree — `getNodes()` returns\n * every node regardless of expansion or an active filter — so refining a query\n * can always re-surface a node. See `docs/infra-incremental.md`.\n */\nexport function createTreeListSearchAdapter(\n host: TreeSearchHost,\n options: TreeListSearchAdapterOptions = {},\n): ListSearchAdapter<TreeSearchItem> {\n const getLabel = options.getLabel ?? ((item: TreeSearchItem) => item.node.item.label);\n\n return {\n getItems: () => host.getNodes(),\n getLabel,\n getKey: item => item.node.item.key,\n focusItem: (item) => {\n if (item)\n host.revealKey(item.node.item.key);\n },\n activateItem: (item) => {\n host.revealKey(item.node.item.key);\n host.select(item.node);\n },\n selectItems: (items) => {\n host.selectMany(items.map(i => i.node));\n },\n applyFilter: (matched) => {\n host.filterPredicate = matched === undefined\n ? undefined\n : (node: TreeNode) => matched.has(node.item.key);\n },\n highlightRoot: () => host.shadowRoot,\n highlightSelector: options.labelSelector ?? `.tree-label`,\n highlightKeyOf: el => (el.closest(`[data-key]`) as HTMLElement | null)?.dataset.key,\n highlightKey: options.highlightKey,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BOUaDIW-.d.ts","names":[],"sources":["../src/colour-picker/types.ts","../src/colour-picker/colour-picker.ts","../src/colour-picker/colour-picker-popup.ts"],"mappings":";;;;;;;KAGY;WACD;WACA;WACA;WACA;WACA;WACA;;;;;KAMC,0BAA0B;;;;KAK1B,yBAAyB,YAAY;KACrC,0BAA0B,YAAY;KAiBtC;KACA;;;;QAKJ;YACI;IACR,sBAAmD;;;;;cCZ1C,qBAAqB;EACJ;EACA;EACA;EACA;EAE2C;EACN;EACA;EACA;EACf;EACmB;EACM;EACH;UAGhE;EAE0C;EACA;EACA;EACA;UAE1C;EAOY,UAAW;EACX,UAAW;EACX,UAAW;EACX,UAAW;EACZ,YAAa;UAIxB;UACA;UACA;UACA;mBAKS;MAEb;MAIA,MAAM;;;;;;EAcV,UAAU,QAAQ,OAAO;MASrB,UAAU;MAIV,OAAO,OAAO;MAId,UAAU;MAIV,OAAO,OAAO;MAId,UAAU;MAIV,OAAO,OAAO;MAId,UAAU;MAIV,OAAO,OAAO;EAIlB,UAAU,OAAO;EAIjB,UAAU,OAAO;EAIjB,UAAU,OAAO;EAIjB,UAAU,OAAO;EAIR,WAAW,mBAAmB;UAY/B;UAOA;UASA;UAUA;UA0BA;UAIA;UAYA;UAWA;EAKC,wBAAM;EAoCN,aAAa,mBAAmB;EAKhC,QAAQ,mBAAmB;EAqBpC;EA4FA,WAAY,GAAG,OAAO;EAQtB,YAAa,GAAG,OAAO;EAevB;EAKA;SAKO,QAAQ;;QAoIT;YACI;IACR,sBAAsB;;;;;cCthBpB;;;;;;;;;;;;;;;;;;KAOD,0BAA0B;cAgBlB,0BAA0B;EACT;EAEA;EACA;EACA;EACA;EAE4B;EACS;EACA;EACA;EACf;EACI;EAC1B,MAAM;UAEjB;UACA;EAEA,UAAW;EACC,WAAY;mBAExB;mBACA;mBACA;UAGT;UACA;UACA;UACA;UAGA;UACA;UACA;UACA;UAGA;;MAUJ;MAIA,MAAM,QAAQ,OAAO;cAIb;cAQA;EAIZ,UAAU,QAAQ,OAAO;EAQhB,aAAa,mBAAmB;EAMhC,QAAQ,mBAAmB;UAS5B;UAUA;UAOA;UAoBA;UAmBA;UAmBA;UAcA;UAYA;UAKA;EAKC,wBAAM;SAiDR,QAAQ;;QAmGT;YACI;IACR,4BAA4B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BUB5SICW.d.ts","names":[],"sources":["../src/labelled-range-input/labelled-range-input.ts"],"mappings":";;;cAuEa,2BAA2B;WAC7B;EAEmB;EACC;EACyB;EACQ;;EAEjC;EAE2B;YAErC,uCAAqB;EA2B/B,wBAAM;SA2BR,QAAQ;;QA2ET;YACI;IACR,6BAA6B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CJ5fshD3.d.ts","names":[],"sources":["../src/editable-label/editable-number.ts","../src/labelled-slider-input/labelled-slider-input.ts"],"mappings":";;;;;;;cAoDa,uBAAuB;;EACN;EACA;EACA;;EAEA;EAC+B;EACpB;EACE;EACE;EACQ;EACvB;;EAqBnB,wBAAM;UAoBP;EAMC;EAWA;UAWD;UAWA;;YAkBE;;YAOS;;gBAGL,cAAc;EAKnB,aAAa,mBAAmB;YAU/B;UA0BF;EAaC,QAAQ,mBAAmB;UAW5B;YAyCW;YAuBA;YAaA,qBAAsB,GAAG;YA6BzB,iBAAkB,GAAG;UA8BhC;UAiBA;;;;;UA4CA;EAmCC;EAMA,iBAAiB,WAAW,gBAAgB,OAAO;UAQpD;UAkBA;UA2CA;UA0BA;UASA;;;;;;UASA;UAYA;UAQA;UAYA;UAYA;;UAKA;SAUQ,QAAQ;;QAoKlB;YACI;IACR,wBAAwB;;;;;cCjuBf,4BAA4B;WAC9B;EAEmB;EAC2B,aAAa;EACb,aAAa;EACxC;EACgB;EACA;;EAEf;EAE2B;YAErC,uCAAqB;YA2BrB,WAAW;EAUrB,wBAAM;SA0BR,QAAQ;;QAyGT;YACI;IACR,8BAA8B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CxZ61DO1.d.ts","names":[],"sources":["../src/incr-search/types.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/controller-tree.ts","../src/incr-search/list-search-controller.ts","../src/incr-search/data-list-search-adapter.ts","../src/incr-search/element-list-search-adapter.ts","../src/incr-search/element-search.ts","../src/incr-search/fuzzy.ts","../src/incr-search/highlight.ts","../src/incr-search/incr-search.ts","../src/incr-search/list-search-commands.ts","../src/incr-search/list-search-styles.ts","../src/incr-search/tree-list-search-adapter.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DV3iaUBW.d.ts","names":[],"sources":["../src/timeline/types.ts","../src/timeline/timeline-controller.ts","../src/timeline/timeline-draw.ts","../src/timeline/timeline-track-tabs.ts","../src/timeline/timeline-element.ts","../src/timeline/timeline-interactions.ts","../src/timeline/timeline-styles.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Dq30pOnn.d.ts","names":[],"sources":["../src/menu/menu-bar.ts","../src/menu/menu-check-item.ts","../src/menu/menu-command-controller.ts","../src/menu/menu-sub-trigger.ts","../src/menu/menu-separator.ts","../src/menu/menu-header.ts","../src/menu/menu-from-tree.ts","../src/menu/menu-radio-item.ts","../src/menu/menu-radio-group.ts","../src/menu/index.ts"],"mappings":";;;;;;cAMa,gBAAgB;UACnB;UACA;EAER;EASA;UASQ;UAOA;UAIA;UAMA;UAIA;UAQA;UASA;SAkCD,sBAAM;EAab,wBAAM;;QAKA;YACI;IACR,iBAAiB;;;;;cCvGR,sBAAsB;EACL;EAC2B;EAC3B;EACC;EACA;EACuB;EACpB,WAAW;EACX,kBAAkB;UAE1C;UAYA;UASA;EASR,WAAW,mBAAmB;EAU9B,QAAQ,mBAAmB;UAInB;SAaQ,sBAAM;EA2DtB,wBAAM;;QAoBA;YACI;IACR,wBAAwB;;;;;cCnKf;UACH;UACA;UACA;EAEI,YAAA;IAAW,UAAU;IAA0B,SAAS;;EAMpE;EAIA;UAIQ;;;;cCZG,uBAAuB;EACN;EAC2B;EAC3B;EACC;EACuB;EACpB,WAAW;EACX,kBAAkB;UAEjC;UACsB;UACJ;UACX;iBAET;UACP;UACA;UACA;EAER;EAKA;EAIA;UAWQ;EAUC,QAAQ,mBAAmB;EAMpC,WAAW,mBAAmB;UAUtB;UASA;UAKA;UAQA;UAQA;UAOA;UAQA;UAYA;UAQA;UAIA;UAIA;UAWA;SAiCQ,sBAAM;EAmEtB,wBAAM;;QA2BA;YACI;IACR,yBAAyB;;;;;cC1RhB,sBAAsB;SAC1B,sBAAM;EAYb,wBAAM;;QAKA;YACI;IACR,uBAAuB;;;;;cCnBd,mBAAmB;EACF;SAErB,sBAAM;EAYb,wBAAM;;QAKA;YACI;IACR,oBAAoB;;;;;KCjBZ;EACV,aAAa,QAAQ;EACrB,WAAW;EACX,kBAAkB;;iBAOJ,aACd,OAAO,YACP,UAAS,sBACR;iBAmGa,uBACd,OAAO,YACP,UAAS,sBACR;;;cChHU,sBAAsB;EACL;EACA;EACC;EACD;EACwB;UAE5C;SAWQ,sBAAM;EAoDtB,wBAAM;;QAmBA;YACI;IACR,wBAAwB;;;;;cC5Ff,uBAAuB;EACN;EACA;UAEX;UAET;UAMA;UAMA;EAYR,QAAQ,mBAAmB;SAMpB,sBAAM;EAUb,wBAAM;;QAOA;YACI;IACR,yBAAyB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-garxxqgV.d.ts","names":[],"sources":["../src/icons/defaults.ts","../src/icons/registry.ts"],"mappings":";;;cAOa;;;;;cAMA;;cAGA;;cAGA;;;cCfA,SAAO;KAER;WAA+B;;KAC/B,mBAAmB,YAAY;KAE/B;EACJ;EAAa;;EACb;EAAc;;iBAEN,aAAa,cAAc;iBAK3B,iBAAiB,cAAc;iBAa/B,QAAQ;iBAKR,aAAa,eAAe;iBAI5B,QAAQ;iBAIR,YAAY;iBAKZ;iBAIA,aAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-o-CWDt11.d.ts","names":[],"sources":["../src/narrowed-text/types.ts","../src/narrowed-text/narrowed-text.ts"],"mappings":";;;KAAY,mBAAmB;EAC7B;EACA;EACA;EACA;EACA;;KAGU;WACD,MAAM;WACN;WACA,mBAAmB;;KAGlB,0BAA0B,YAAY;KAEtC;KAEA;KAEA;EACV,MAAM;EACN,WAAW;EACX;;;;cCEW,4BAA4B;;EACkB,eAAe;EACV;EACR,aAAa;EACjB;EACE;EACJ;EACC;EACU;EAC/B;EAG5B,UAAU;UAEO;UACA;UACA;UACA;UACM;UAEf;UACA;UACA;UAIA;UACA;UAGA;MAqBJ;MAQA,SAAS;EAgBb;EA0BA;EAmBS;EA+BA;YAcU;YAIA,QAAQ,mBAAmB;UAWtC;UAiBA;UAeA;UAIA;EAiJR;EAUA;EASA,YAAY,UAAU;EA4BtB,WAAW;UAuCH;UAmCA;YA4BW,wBAAM;UAqCjB;SAWQ,sBAAM;;QA6IhB;YACI;IACR,sBAAsB"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/interaction/keyed-list.ts","../src/interaction/list-drag-preview-default.ts","../src/interaction/list-item-animation.ts","../src/interaction/tickled-styles.ts","../src/bottom-drawer/bottom-drawer.ts","../src/button/radio-group.ts","../src/button/split-button.ts","../src/common/data-controller.ts","../src/common/tree-drop-apply.ts","../src/crumbs/crumb-path.ts","../src/crumbs/crumb-path-controller.ts","../src/data-table/data-table.ts","../src/dock/types.ts","../src/dock/dock-panel.ts","../src/dock/dock-host.ts","../src/dock/dock-drag.ts","../src/dock/dock-model.ts","../src/form/form-group.ts","../src/form/form-part.ts","../src/grouped-item-lister/tree-list-adapter.ts","../src/grouped-item-lister/vertical-list-adapter.ts","../src/hyperbolic-tree/poincare-math.ts","../src/hyperbolic-tree/types.ts","../src/hyperbolic-tree/render-utils.ts","../src/hyperbolic-tree/hyperbolictree-list.ts","../src/hyperbolic-tree/layout.ts","../src/icicle-tree/types.ts","../src/icicle-tree/icicletree-list.ts","../src/icicle-tree/layout.ts","../src/multicol-list/types.ts","../src/multicol-list/multicol-list.ts","../src/notifier/manager.ts","../src/notifier/pill-renderer.ts","../src/panel/panel-group.ts","../src/range/range-multi.ts","../src/rating/rating.ts","../src/shapefill-value/types.ts","../src/shapefill-value/shapefill-value.ts","../src/sliding-number/sliding-number.ts","../src/split-layout/split-model.ts","../src/tabs/tab-panel.ts","../src/tabs/tab-panels.ts","../src/tabs/tab-controller.ts","../src/text-shimmer/text-shimmer.ts","../src/toolbar/toolbar-group.ts","../src/toolbar/types.ts","../src/toolbar/toolbar.ts","../src/treemap/types.ts","../src/treemap/layout.ts","../src/treemap/treemap-list.ts","../src/twosplit-layout/split-layout.ts","../src/util/checkbox.ts","../src/index.ts"],"mappings":"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"}
|