@ixfx/components 0.2.4 → 0.2.6
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 +285 -159
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +3291 -2485
- package/bundle/index.js.map +1 -1
- package/dist/ac-text.d.ts +96 -0
- package/dist/ac-text.d.ts.map +1 -0
- package/dist/ac-text.js +484 -0
- package/dist/ac-text.js.map +1 -0
- package/dist/{button/button-styles.js → button-B9ztaKyl.js} +49 -3
- package/dist/button-B9ztaKyl.js.map +1 -0
- package/dist/button.d.ts +20 -0
- package/dist/button.d.ts.map +1 -0
- package/dist/button.js +3 -0
- package/dist/checkbox.d.ts +26 -57
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +74 -88
- package/dist/checkbox.js.map +1 -1
- package/dist/chunk-pbuEa-1d.js +13 -0
- package/dist/colour-C3MQIjFJ-BJV-QC-3.js +4138 -0
- package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -0
- package/dist/colour-picker-BNqDz4wK.js +922 -0
- package/dist/colour-picker-BNqDz4wK.js.map +1 -0
- package/dist/colour-picker.d.ts +2 -0
- package/dist/colour-picker.js +2 -0
- package/dist/crumbs.d.ts +91 -0
- package/dist/crumbs.d.ts.map +1 -0
- package/dist/crumbs.js +789 -0
- package/dist/crumbs.js.map +1 -0
- package/dist/data-display.d.ts +22 -18
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +81 -108
- package/dist/data-display.js.map +1 -1
- package/dist/decorate-O4m1U4l3.js +25 -0
- package/dist/decorate-O4m1U4l3.js.map +1 -0
- package/dist/defaults-FEZaGiYZ.js +38 -0
- package/dist/defaults-FEZaGiYZ.js.map +1 -0
- package/dist/dist-By5URG0Y.js +1290 -0
- package/dist/dist-By5URG0Y.js.map +1 -0
- package/dist/dist-D7kJgnSE.js +1039 -0
- package/dist/dist-D7kJgnSE.js.map +1 -0
- package/dist/editable-label.d.ts +71 -0
- package/dist/editable-label.d.ts.map +1 -0
- package/dist/editable-label.js +279 -0
- package/dist/editable-label.js.map +1 -0
- package/dist/hex-editor-2_s0Ua5t.d.ts +130 -0
- package/dist/hex-editor-2_s0Ua5t.d.ts.map +1 -0
- package/dist/hex-editor-gH3mteMr.js +1147 -0
- package/dist/hex-editor-gH3mteMr.js.map +1 -0
- package/dist/hex.d.ts +2 -0
- package/dist/hex.js +2 -0
- package/dist/highlight-CAjwQ4GE.js +50 -0
- package/dist/highlight-CAjwQ4GE.js.map +1 -0
- package/dist/icon-CYACf6o8.js +100 -0
- package/dist/icon-CYACf6o8.js.map +1 -0
- package/dist/icon-CeTDJhC7.d.ts +35 -0
- package/dist/icon-CeTDJhC7.d.ts.map +1 -0
- package/dist/icons.d.ts +3 -0
- package/dist/icons.js +9 -0
- package/dist/icons.js.map +1 -0
- package/dist/incr-search-BZawvrfl.js +311 -0
- package/dist/incr-search-BZawvrfl.js.map +1 -0
- package/dist/incr-search.d.ts +2 -0
- package/dist/incr-search.js +3 -0
- package/dist/index-B1hNR7Z9.d.ts +36 -0
- package/dist/index-B1hNR7Z9.d.ts.map +1 -0
- package/dist/index-CnL9krsH.d.ts +1238 -0
- package/dist/index-CnL9krsH.d.ts.map +1 -0
- package/dist/index-CwGkb9s1.d.ts +395 -0
- package/dist/index-CwGkb9s1.d.ts.map +1 -0
- package/dist/index-DrQjA8Gs.d.ts +22 -0
- package/dist/index-DrQjA8Gs.d.ts.map +1 -0
- package/dist/index-V2cJorlA.d.ts +160 -0
- package/dist/index-V2cJorlA.d.ts.map +1 -0
- package/dist/index-kY5gxbkI.d.ts +182 -0
- package/dist/index-kY5gxbkI.d.ts.map +1 -0
- package/dist/index.d.ts +540 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6519 -54
- package/dist/index.js.map +1 -1
- package/dist/interaction-CQDQJf2Q.js +1 -0
- package/dist/keyboard-De_vOHLg.js +20 -0
- package/dist/keyboard-De_vOHLg.js.map +1 -0
- package/dist/labelled-input-base-BvgH7ldm.js +155 -0
- package/dist/labelled-input-base-BvgH7ldm.js.map +1 -0
- package/dist/labelled-input-base-D-Y7agky.d.ts +42 -0
- package/dist/labelled-input-base-D-Y7agky.d.ts.map +1 -0
- package/dist/labelled-radial-input.d.ts +33 -0
- package/dist/labelled-radial-input.d.ts.map +1 -0
- package/dist/labelled-radial-input.js +188 -0
- package/dist/labelled-radial-input.js.map +1 -0
- package/dist/labelled-range-input.d.ts +2 -0
- package/dist/{labelled-range-input/labelled-range-input.js → labelled-range-input.js} +40 -45
- package/dist/labelled-range-input.js.map +1 -0
- package/dist/led.d.ts +20 -16
- package/dist/led.d.ts.map +1 -1
- package/dist/led.js +71 -79
- package/dist/led.js.map +1 -1
- package/dist/menu-C3eANB5M.js +813 -0
- package/dist/menu-C3eANB5M.js.map +1 -0
- package/dist/menu-item-6IU5weHi.js +766 -0
- package/dist/menu-item-6IU5weHi.js.map +1 -0
- package/dist/menu-item-ClQF2DKN.d.ts +127 -0
- package/dist/menu-item-ClQF2DKN.d.ts.map +1 -0
- package/dist/menu.d.ts +3 -0
- package/dist/menu.js +3 -0
- package/dist/miller.d.ts +323 -0
- package/dist/miller.d.ts.map +1 -0
- package/dist/miller.js +1343 -0
- package/dist/miller.js.map +1 -0
- package/dist/narrowed-text.d.ts +71 -0
- package/dist/narrowed-text.d.ts.map +1 -0
- package/dist/narrowed-text.js +571 -0
- package/dist/narrowed-text.js.map +1 -0
- package/dist/panel.d.ts +42 -0
- package/dist/panel.d.ts.map +1 -0
- package/dist/{panel/panel.js → panel.js} +82 -91
- package/dist/panel.js.map +1 -0
- package/dist/plots.d.ts +2 -0
- package/dist/plots.js +2 -0
- package/dist/polar-pad.d.ts +66 -0
- package/dist/polar-pad.d.ts.map +1 -0
- package/dist/polar-pad.js +537 -0
- package/dist/polar-pad.js.map +1 -0
- package/dist/popup-Ddx9LCzY.js +24 -0
- package/dist/popup-Ddx9LCzY.js.map +1 -0
- package/dist/prominence-CreDBdCs.js +98 -0
- package/dist/prominence-CreDBdCs.js.map +1 -0
- package/dist/radial-input-Dbc6fgCK.js +849 -0
- package/dist/radial-input-Dbc6fgCK.js.map +1 -0
- package/dist/radial-input-LUSBEycd.d.ts +69 -0
- package/dist/radial-input-LUSBEycd.d.ts.map +1 -0
- package/dist/radial-input.d.ts +2 -0
- package/dist/radial-input.js +2 -0
- package/dist/range-input.d.ts +42 -0
- package/dist/range-input.d.ts.map +1 -0
- package/dist/{range-input/range-input.js → range-input.js} +155 -168
- package/dist/range-input.js.map +1 -0
- package/dist/range.d.ts +27 -0
- package/dist/range.d.ts.map +1 -0
- package/dist/range.js +136 -0
- package/dist/range.js.map +1 -0
- package/dist/registry-CZEB1YI9.js +21 -0
- package/dist/registry-CZEB1YI9.js.map +1 -0
- package/dist/selecthorizontal.d.ts +12 -8
- package/dist/selecthorizontal.d.ts.map +1 -1
- package/dist/selecthorizontal.js +20 -24
- package/dist/selecthorizontal.js.map +1 -1
- package/dist/snap-container.d.ts +49 -0
- package/dist/snap-container.d.ts.map +1 -0
- package/dist/snap-container.js +297 -0
- package/dist/snap-container.js.map +1 -0
- package/dist/{split-layout/split-layout.d.ts → split-layout.d.ts} +29 -25
- package/dist/split-layout.d.ts.map +1 -0
- package/dist/split-layout.js +545 -0
- package/dist/split-layout.js.map +1 -0
- package/dist/style.css +133 -0
- package/dist/swipe.d.ts +48 -0
- package/dist/swipe.d.ts.map +1 -0
- package/dist/swipe.js +204 -0
- package/dist/swipe.js.map +1 -0
- package/dist/tab-list-BnqISNvO.d.ts +65 -0
- package/dist/tab-list-BnqISNvO.d.ts.map +1 -0
- package/dist/tabs.d.ts +2 -0
- package/dist/tabs.js +203 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tickled-controller-Cq1Va0rR.d.ts +218 -0
- package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -0
- package/dist/tickled-styles-Bg3QbcrD.js +327 -0
- package/dist/tickled-styles-Bg3QbcrD.js.map +1 -0
- package/dist/timeline-B62Sz6J_.js +1748 -0
- package/dist/timeline-B62Sz6J_.js.map +1 -0
- package/dist/timeline.d.ts +2 -0
- package/dist/timeline.js +2 -0
- package/dist/tooltip-CwGfb4lp.d.ts +25 -0
- package/dist/tooltip-CwGfb4lp.d.ts.map +1 -0
- package/dist/{styles/tooltip.js → tooltip-DMxmBNky.js} +6 -2
- package/dist/tooltip-DMxmBNky.js.map +1 -0
- package/dist/tree-component-CQpoPo4s.d.ts +326 -0
- package/dist/tree-component-CQpoPo4s.d.ts.map +1 -0
- package/dist/tree-data-model-DGvRVOFY.js +190 -0
- package/dist/tree-data-model-DGvRVOFY.js.map +1 -0
- package/dist/tree.d.ts +99 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/tree.js +1144 -0
- package/dist/tree.js.map +1 -0
- package/dist/types-BKaqnpwx.d.ts +8 -0
- package/dist/types-BKaqnpwx.d.ts.map +1 -0
- package/dist/xy-axis-C7fNxDwY.js +6243 -0
- package/dist/xy-axis-C7fNxDwY.js.map +1 -0
- package/dist/xy-axis-D9uwpGTT.d.ts +140 -0
- package/dist/xy-axis-D9uwpGTT.d.ts.map +1 -0
- package/dist/xy-pad.d.ts +73 -110
- package/dist/xy-pad.d.ts.map +1 -1
- package/dist/xy-pad.js +300 -320
- package/dist/xy-pad.js.map +1 -1
- package/package.json +24 -28
- package/dist/ac-text/ac-text.d.ts +0 -99
- package/dist/ac-text/ac-text.d.ts.map +0 -1
- package/dist/ac-text/ac-text.js +0 -571
- package/dist/ac-text/ac-text.js.map +0 -1
- package/dist/button/button-styles.d.ts +0 -2
- package/dist/button/button-styles.d.ts.map +0 -1
- package/dist/button/button-styles.js.map +0 -1
- package/dist/button/button.d.ts +0 -16
- package/dist/button/button.d.ts.map +0 -1
- package/dist/button/button.js +0 -58
- package/dist/button/button.js.map +0 -1
- package/dist/button/radio-group.d.ts +0 -44
- package/dist/button/radio-group.d.ts.map +0 -1
- package/dist/button/radio-group.js +0 -385
- package/dist/button/radio-group.js.map +0 -1
- package/dist/button/split-button.d.ts +0 -59
- package/dist/button/split-button.d.ts.map +0 -1
- package/dist/button/split-button.js +0 -480
- package/dist/button/split-button.js.map +0 -1
- package/dist/button/types.d.ts +0 -18
- package/dist/button/types.d.ts.map +0 -1
- package/dist/button/types.js +0 -2
- package/dist/button/types.js.map +0 -1
- package/dist/colour-picker/colour-picker-popup.d.ts +0 -102
- package/dist/colour-picker/colour-picker-popup.d.ts.map +0 -1
- package/dist/colour-picker/colour-picker-popup.js +0 -399
- package/dist/colour-picker/colour-picker-popup.js.map +0 -1
- package/dist/colour-picker/colour-picker.d.ts +0 -100
- package/dist/colour-picker/colour-picker.d.ts.map +0 -1
- package/dist/colour-picker/colour-picker.js +0 -567
- package/dist/colour-picker/colour-picker.js.map +0 -1
- package/dist/colour-picker/index.d.ts +0 -4
- package/dist/colour-picker/index.d.ts.map +0 -1
- package/dist/colour-picker/index.js +0 -3
- package/dist/colour-picker/index.js.map +0 -1
- package/dist/colour-picker/styles.d.ts +0 -2
- package/dist/colour-picker/styles.d.ts.map +0 -1
- package/dist/colour-picker/styles.js +0 -139
- package/dist/colour-picker/styles.js.map +0 -1
- package/dist/colour-picker/types.d.ts +0 -33
- package/dist/colour-picker/types.d.ts.map +0 -1
- package/dist/colour-picker/types.js +0 -2
- package/dist/colour-picker/types.js.map +0 -1
- package/dist/colour-picker/util.d.ts +0 -15
- package/dist/colour-picker/util.d.ts.map +0 -1
- package/dist/colour-picker/util.js +0 -35
- package/dist/colour-picker/util.js.map +0 -1
- package/dist/common/searchable.d.ts +0 -9
- package/dist/common/searchable.d.ts.map +0 -1
- package/dist/common/searchable.js +0 -9
- package/dist/common/searchable.js.map +0 -1
- package/dist/common/tree-component.d.ts +0 -172
- package/dist/common/tree-component.d.ts.map +0 -1
- package/dist/common/tree-component.js +0 -8
- package/dist/common/tree-component.js.map +0 -1
- package/dist/common/tree-data-model.d.ts +0 -100
- package/dist/common/tree-data-model.d.ts.map +0 -1
- package/dist/common/tree-data-model.js +0 -207
- package/dist/common/tree-data-model.js.map +0 -1
- package/dist/common/tree-item.d.ts +0 -7
- package/dist/common/tree-item.d.ts.map +0 -1
- package/dist/common/tree-item.js +0 -2
- package/dist/common/tree-item.js.map +0 -1
- package/dist/common/types.d.ts +0 -69
- package/dist/common/types.d.ts.map +0 -1
- package/dist/common/types.js +0 -6
- package/dist/common/types.js.map +0 -1
- package/dist/crumbs/crumb-navigation.d.ts +0 -96
- package/dist/crumbs/crumb-navigation.d.ts.map +0 -1
- package/dist/crumbs/crumb-navigation.js +0 -911
- package/dist/crumbs/crumb-navigation.js.map +0 -1
- package/dist/crumbs/crumb-path-controller.d.ts +0 -18
- package/dist/crumbs/crumb-path-controller.d.ts.map +0 -1
- package/dist/crumbs/crumb-path-controller.js +0 -81
- package/dist/crumbs/crumb-path-controller.js.map +0 -1
- package/dist/crumbs/crumb-path.d.ts +0 -65
- package/dist/crumbs/crumb-path.d.ts.map +0 -1
- package/dist/crumbs/crumb-path.js +0 -691
- package/dist/crumbs/crumb-path.js.map +0 -1
- package/dist/editable-label/editable-label.d.ts +0 -98
- package/dist/editable-label/editable-label.d.ts.map +0 -1
- package/dist/editable-label/editable-label.js +0 -348
- package/dist/editable-label/editable-label.js.map +0 -1
- package/dist/editable-label/editable-number.d.ts +0 -96
- package/dist/editable-label/editable-number.d.ts.map +0 -1
- package/dist/editable-label/editable-number.js +0 -702
- package/dist/editable-label/editable-number.js.map +0 -1
- package/dist/hex/colour.d.ts +0 -6
- package/dist/hex/colour.d.ts.map +0 -1
- package/dist/hex/colour.js +0 -33
- package/dist/hex/colour.js.map +0 -1
- package/dist/hex/data.d.ts +0 -18
- package/dist/hex/data.d.ts.map +0 -1
- package/dist/hex/data.js +0 -61
- package/dist/hex/data.js.map +0 -1
- package/dist/hex/diff.d.ts +0 -14
- package/dist/hex/diff.d.ts.map +0 -1
- package/dist/hex/diff.js +0 -31
- package/dist/hex/diff.js.map +0 -1
- package/dist/hex/hex-editor.d.ts +0 -101
- package/dist/hex/hex-editor.d.ts.map +0 -1
- package/dist/hex/hex-editor.js +0 -894
- package/dist/hex/hex-editor.js.map +0 -1
- package/dist/hex/selection.d.ts +0 -11
- package/dist/hex/selection.d.ts.map +0 -1
- package/dist/hex/selection.js +0 -218
- package/dist/hex/selection.js.map +0 -1
- package/dist/hex/types.d.ts +0 -34
- package/dist/hex/types.d.ts.map +0 -1
- package/dist/hex/types.js +0 -4
- package/dist/hex/types.js.map +0 -1
- package/dist/icons/defaults.d.ts +0 -27
- package/dist/icons/defaults.d.ts.map +0 -1
- package/dist/icons/defaults.js +0 -34
- package/dist/icons/defaults.js.map +0 -1
- package/dist/icons/icon.d.ts +0 -31
- package/dist/icons/icon.d.ts.map +0 -1
- package/dist/icons/icon.js +0 -125
- package/dist/icons/icon.js.map +0 -1
- package/dist/icons/index.d.ts +0 -5
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/icons/index.js +0 -6
- package/dist/icons/index.js.map +0 -1
- package/dist/icons/registry.d.ts +0 -11
- package/dist/icons/registry.d.ts.map +0 -1
- package/dist/icons/registry.js +0 -17
- package/dist/icons/registry.js.map +0 -1
- package/dist/incr-search/ac-adapter.d.ts +0 -18
- package/dist/incr-search/ac-adapter.d.ts.map +0 -1
- package/dist/incr-search/ac-adapter.js +0 -29
- package/dist/incr-search/ac-adapter.js.map +0 -1
- package/dist/incr-search/controller-miller.d.ts +0 -9
- package/dist/incr-search/controller-miller.d.ts.map +0 -1
- package/dist/incr-search/controller-miller.js +0 -8
- package/dist/incr-search/controller-miller.js.map +0 -1
- package/dist/incr-search/controller-tree.d.ts +0 -55
- package/dist/incr-search/controller-tree.d.ts.map +0 -1
- package/dist/incr-search/controller-tree.js +0 -106
- package/dist/incr-search/controller-tree.js.map +0 -1
- package/dist/incr-search/element-search.d.ts +0 -15
- package/dist/incr-search/element-search.d.ts.map +0 -1
- package/dist/incr-search/element-search.js +0 -82
- package/dist/incr-search/element-search.js.map +0 -1
- package/dist/incr-search/fuzzy.d.ts +0 -3
- package/dist/incr-search/fuzzy.d.ts.map +0 -1
- package/dist/incr-search/fuzzy.js +0 -37
- package/dist/incr-search/fuzzy.js.map +0 -1
- package/dist/incr-search/highlight.d.ts +0 -5
- package/dist/incr-search/highlight.d.ts.map +0 -1
- package/dist/incr-search/highlight.js +0 -54
- package/dist/incr-search/highlight.js.map +0 -1
- package/dist/incr-search/incr-search.d.ts +0 -3
- package/dist/incr-search/incr-search.d.ts.map +0 -1
- package/dist/incr-search/incr-search.js +0 -73
- package/dist/incr-search/incr-search.js.map +0 -1
- package/dist/incr-search/index.d.ts +0 -12
- package/dist/incr-search/index.d.ts.map +0 -1
- package/dist/incr-search/index.js +0 -8
- package/dist/incr-search/index.js.map +0 -1
- package/dist/incr-search/types.d.ts +0 -59
- package/dist/incr-search/types.d.ts.map +0 -1
- package/dist/incr-search/types.js +0 -2
- package/dist/incr-search/types.js.map +0 -1
- package/dist/interaction/index.d.ts +0 -10
- package/dist/interaction/index.d.ts.map +0 -1
- package/dist/interaction/index.js +0 -10
- package/dist/interaction/index.js.map +0 -1
- package/dist/interaction/tickled-controller.d.ts +0 -186
- package/dist/interaction/tickled-controller.d.ts.map +0 -1
- package/dist/interaction/tickled-controller.js +0 -256
- package/dist/interaction/tickled-controller.js.map +0 -1
- package/dist/interaction/tickled-styles.d.ts +0 -53
- package/dist/interaction/tickled-styles.d.ts.map +0 -1
- package/dist/interaction/tickled-styles.js +0 -106
- package/dist/interaction/tickled-styles.js.map +0 -1
- package/dist/interaction/tree-keyboard-controller.d.ts +0 -30
- package/dist/interaction/tree-keyboard-controller.d.ts.map +0 -1
- package/dist/interaction/tree-keyboard-controller.js +0 -105
- package/dist/interaction/tree-keyboard-controller.js.map +0 -1
- package/dist/keyboard.d.ts +0 -16
- package/dist/keyboard.d.ts.map +0 -1
- package/dist/keyboard.js +0 -22
- package/dist/keyboard.js.map +0 -1
- package/dist/labelled-radial-input/index.d.ts +0 -2
- package/dist/labelled-radial-input/index.d.ts.map +0 -1
- package/dist/labelled-radial-input/index.js +0 -2
- package/dist/labelled-radial-input/index.js.map +0 -1
- package/dist/labelled-radial-input/labelled-radial-input.d.ts +0 -77
- package/dist/labelled-radial-input/labelled-radial-input.d.ts.map +0 -1
- package/dist/labelled-radial-input/labelled-radial-input.js +0 -214
- package/dist/labelled-radial-input/labelled-radial-input.js.map +0 -1
- package/dist/labelled-range-input/index.d.ts +0 -2
- package/dist/labelled-range-input/index.d.ts.map +0 -1
- package/dist/labelled-range-input/index.js +0 -2
- package/dist/labelled-range-input/index.js.map +0 -1
- package/dist/labelled-range-input/labelled-range-input.d.ts +0 -80
- package/dist/labelled-range-input/labelled-range-input.d.ts.map +0 -1
- package/dist/labelled-range-input/labelled-range-input.js.map +0 -1
- package/dist/menu/index.d.ts +0 -14
- package/dist/menu/index.d.ts.map +0 -1
- package/dist/menu/index.js +0 -13
- package/dist/menu/index.js.map +0 -1
- package/dist/menu/menu-bar.d.ts +0 -23
- package/dist/menu/menu-bar.d.ts.map +0 -1
- package/dist/menu/menu-bar.js +0 -110
- package/dist/menu/menu-bar.js.map +0 -1
- package/dist/menu/menu-check-item.d.ts +0 -33
- package/dist/menu/menu-check-item.d.ts.map +0 -1
- package/dist/menu/menu-check-item.js +0 -175
- package/dist/menu/menu-check-item.js.map +0 -1
- package/dist/menu/menu-command-controller.d.ts +0 -14
- package/dist/menu/menu-command-controller.d.ts.map +0 -1
- package/dist/menu/menu-command-controller.js +0 -22
- package/dist/menu/menu-command-controller.js.map +0 -1
- package/dist/menu/menu-container.d.ts +0 -36
- package/dist/menu/menu-container.d.ts.map +0 -1
- package/dist/menu/menu-container.js +0 -351
- package/dist/menu/menu-container.js.map +0 -1
- package/dist/menu/menu-from-tree.d.ts +0 -17
- package/dist/menu/menu-from-tree.d.ts.map +0 -1
- package/dist/menu/menu-from-tree.js +0 -103
- package/dist/menu/menu-from-tree.js.map +0 -1
- package/dist/menu/menu-header.d.ts +0 -12
- package/dist/menu/menu-header.d.ts.map +0 -1
- package/dist/menu/menu-header.js +0 -36
- package/dist/menu/menu-header.js.map +0 -1
- package/dist/menu/menu-item.d.ts +0 -41
- package/dist/menu/menu-item.d.ts.map +0 -1
- package/dist/menu/menu-item.js +0 -240
- package/dist/menu/menu-item.js.map +0 -1
- package/dist/menu/menu-radio-group.d.ts +0 -24
- package/dist/menu/menu-radio-group.d.ts.map +0 -1
- package/dist/menu/menu-radio-group.js +0 -71
- package/dist/menu/menu-radio-group.js.map +0 -1
- package/dist/menu/menu-radio-item.d.ts +0 -22
- package/dist/menu/menu-radio-item.d.ts.map +0 -1
- package/dist/menu/menu-radio-item.js +0 -116
- package/dist/menu/menu-radio-item.js.map +0 -1
- package/dist/menu/menu-separator.d.ts +0 -11
- package/dist/menu/menu-separator.d.ts.map +0 -1
- package/dist/menu/menu-separator.js +0 -29
- package/dist/menu/menu-separator.js.map +0 -1
- package/dist/menu/menu-sub-trigger.d.ts +0 -46
- package/dist/menu/menu-sub-trigger.d.ts.map +0 -1
- package/dist/menu/menu-sub-trigger.js +0 -302
- package/dist/menu/menu-sub-trigger.js.map +0 -1
- package/dist/menu/menu-trigger.d.ts +0 -57
- package/dist/menu/menu-trigger.d.ts.map +0 -1
- package/dist/menu/menu-trigger.js +0 -351
- package/dist/menu/menu-trigger.js.map +0 -1
- package/dist/miller/index.d.ts +0 -5
- package/dist/miller/index.d.ts.map +0 -1
- package/dist/miller/index.js +0 -5
- package/dist/miller/index.js.map +0 -1
- package/dist/miller/miller-base.d.ts +0 -184
- package/dist/miller/miller-base.d.ts.map +0 -1
- package/dist/miller/miller-base.js +0 -1249
- package/dist/miller/miller-base.js.map +0 -1
- package/dist/miller/miller-list.d.ts +0 -30
- package/dist/miller/miller-list.d.ts.map +0 -1
- package/dist/miller/miller-list.js +0 -192
- package/dist/miller/miller-list.js.map +0 -1
- package/dist/miller/miller-tree-controller.d.ts +0 -58
- package/dist/miller/miller-tree-controller.d.ts.map +0 -1
- package/dist/miller/miller-tree-controller.js +0 -134
- package/dist/miller/miller-tree-controller.js.map +0 -1
- package/dist/miller/types.d.ts +0 -63
- package/dist/miller/types.d.ts.map +0 -1
- package/dist/miller/types.js +0 -6
- package/dist/miller/types.js.map +0 -1
- package/dist/mixins/labelled-input-base.d.ts +0 -38
- package/dist/mixins/labelled-input-base.d.ts.map +0 -1
- package/dist/mixins/labelled-input-base.js +0 -171
- package/dist/mixins/labelled-input-base.js.map +0 -1
- package/dist/mixins/labelled-input-util.d.ts +0 -3
- package/dist/mixins/labelled-input-util.d.ts.map +0 -1
- package/dist/mixins/labelled-input-util.js +0 -10
- package/dist/mixins/labelled-input-util.js.map +0 -1
- package/dist/my-element.d.ts +0 -14
- package/dist/my-element.d.ts.map +0 -1
- package/dist/my-element.js +0 -44
- package/dist/my-element.js.map +0 -1
- package/dist/narrowed-text/index.d.ts +0 -3
- package/dist/narrowed-text/index.d.ts.map +0 -1
- package/dist/narrowed-text/index.js +0 -3
- package/dist/narrowed-text/index.js.map +0 -1
- package/dist/narrowed-text/narrowed-text.d.ts +0 -48
- package/dist/narrowed-text/narrowed-text.d.ts.map +0 -1
- package/dist/narrowed-text/narrowed-text.js +0 -668
- package/dist/narrowed-text/narrowed-text.js.map +0 -1
- package/dist/narrowed-text/types.d.ts +0 -20
- package/dist/narrowed-text/types.d.ts.map +0 -1
- package/dist/narrowed-text/types.js +0 -2
- package/dist/narrowed-text/types.js.map +0 -1
- package/dist/panel/panel-group.d.ts +0 -23
- package/dist/panel/panel-group.d.ts.map +0 -1
- package/dist/panel/panel-group.js +0 -109
- package/dist/panel/panel-group.js.map +0 -1
- package/dist/panel/panel.d.ts +0 -39
- package/dist/panel/panel.d.ts.map +0 -1
- package/dist/panel/panel.js.map +0 -1
- package/dist/plots/colour-map.d.ts +0 -31
- package/dist/plots/colour-map.d.ts.map +0 -1
- package/dist/plots/colour-map.js +0 -133
- package/dist/plots/colour-map.js.map +0 -1
- package/dist/plots/data.d.ts +0 -27
- package/dist/plots/data.d.ts.map +0 -1
- package/dist/plots/data.js +0 -47
- package/dist/plots/data.js.map +0 -1
- package/dist/plots/single-axis.d.ts +0 -41
- package/dist/plots/single-axis.d.ts.map +0 -1
- package/dist/plots/single-axis.js +0 -428
- package/dist/plots/single-axis.js.map +0 -1
- package/dist/plots/svg-utils.d.ts +0 -12
- package/dist/plots/svg-utils.d.ts.map +0 -1
- package/dist/plots/svg-utils.js +0 -64
- package/dist/plots/svg-utils.js.map +0 -1
- package/dist/plots/xy-axis.d.ts +0 -42
- package/dist/plots/xy-axis.d.ts.map +0 -1
- package/dist/plots/xy-axis.js +0 -307
- package/dist/plots/xy-axis.js.map +0 -1
- package/dist/polar-pad/polar-pad.d.ts +0 -132
- package/dist/polar-pad/polar-pad.d.ts.map +0 -1
- package/dist/polar-pad/polar-pad.js +0 -598
- package/dist/polar-pad/polar-pad.js.map +0 -1
- package/dist/radial-input/radial-input.d.ts +0 -45
- package/dist/radial-input/radial-input.d.ts.map +0 -1
- package/dist/radial-input/radial-input.js +0 -692
- package/dist/radial-input/radial-input.js.map +0 -1
- package/dist/radial-input/svg-utils.d.ts +0 -147
- package/dist/radial-input/svg-utils.d.ts.map +0 -1
- package/dist/radial-input/svg-utils.js +0 -346
- package/dist/radial-input/svg-utils.js.map +0 -1
- package/dist/radial-input/types.d.ts +0 -25
- package/dist/radial-input/types.d.ts.map +0 -1
- package/dist/radial-input/types.js +0 -5
- package/dist/radial-input/types.js.map +0 -1
- package/dist/range/range-multi.d.ts +0 -62
- package/dist/range/range-multi.d.ts.map +0 -1
- package/dist/range/range-multi.js +0 -652
- package/dist/range/range-multi.js.map +0 -1
- package/dist/range/range.d.ts +0 -23
- package/dist/range/range.d.ts.map +0 -1
- package/dist/range/range.js +0 -153
- package/dist/range/range.js.map +0 -1
- package/dist/range-input/index.d.ts +0 -2
- package/dist/range-input/index.d.ts.map +0 -1
- package/dist/range-input/index.js +0 -2
- package/dist/range-input/index.js.map +0 -1
- package/dist/range-input/range-input.d.ts +0 -92
- package/dist/range-input/range-input.d.ts.map +0 -1
- package/dist/range-input/range-input.js.map +0 -1
- package/dist/snap-container/snap-container.d.ts +0 -45
- package/dist/snap-container/snap-container.d.ts.map +0 -1
- package/dist/snap-container/snap-container.js +0 -352
- package/dist/snap-container/snap-container.js.map +0 -1
- package/dist/split-layout/split-layout.d.ts.map +0 -1
- package/dist/split-layout/split-layout.js +0 -674
- package/dist/split-layout/split-layout.js.map +0 -1
- package/dist/styles/popup.d.ts +0 -11
- package/dist/styles/popup.d.ts.map +0 -1
- package/dist/styles/popup.js +0 -20
- package/dist/styles/popup.js.map +0 -1
- package/dist/styles/prominence.d.ts +0 -58
- package/dist/styles/prominence.d.ts.map +0 -1
- package/dist/styles/prominence.js +0 -94
- package/dist/styles/prominence.js.map +0 -1
- package/dist/styles/tooltip.d.ts +0 -2
- package/dist/styles/tooltip.d.ts.map +0 -1
- package/dist/styles/tooltip.js.map +0 -1
- package/dist/svg-edit-label.d.ts +0 -2
- package/dist/svg-edit-label.d.ts.map +0 -1
- package/dist/svg-edit-label.js +0 -110
- package/dist/svg-edit-label.js.map +0 -1
- package/dist/swipe/index.d.ts +0 -2
- package/dist/swipe/index.d.ts.map +0 -1
- package/dist/swipe/index.js +0 -2
- package/dist/swipe/index.js.map +0 -1
- package/dist/swipe/swipe.d.ts +0 -65
- package/dist/swipe/swipe.d.ts.map +0 -1
- package/dist/swipe/swipe.js +0 -229
- package/dist/swipe/swipe.js.map +0 -1
- package/dist/tabs/tab-layout-item.d.ts +0 -10
- package/dist/tabs/tab-layout-item.d.ts.map +0 -1
- package/dist/tabs/tab-layout-item.js +0 -20
- package/dist/tabs/tab-layout-item.js.map +0 -1
- package/dist/tabs/tab-layout.d.ts +0 -10
- package/dist/tabs/tab-layout.d.ts.map +0 -1
- package/dist/tabs/tab-layout.js +0 -25
- package/dist/tabs/tab-layout.js.map +0 -1
- package/dist/tabs/tab-list-item.d.ts +0 -34
- package/dist/tabs/tab-list-item.d.ts.map +0 -1
- package/dist/tabs/tab-list-item.js +0 -195
- package/dist/tabs/tab-list-item.js.map +0 -1
- package/dist/tabs/tab-list.d.ts +0 -31
- package/dist/tabs/tab-list.d.ts.map +0 -1
- package/dist/tabs/tab-list.js +0 -257
- package/dist/tabs/tab-list.js.map +0 -1
- package/dist/tabs/tab-panel.d.ts +0 -11
- package/dist/tabs/tab-panel.d.ts.map +0 -1
- package/dist/tabs/tab-panel.js +0 -30
- package/dist/tabs/tab-panel.js.map +0 -1
- package/dist/tabs/tab-panels.d.ts +0 -30
- package/dist/tabs/tab-panels.d.ts.map +0 -1
- package/dist/tabs/tab-panels.js +0 -80
- package/dist/tabs/tab-panels.js.map +0 -1
- package/dist/timeline/index.d.ts +0 -9
- package/dist/timeline/index.d.ts.map +0 -1
- package/dist/timeline/index.js +0 -8
- package/dist/timeline/index.js.map +0 -1
- package/dist/timeline/timeline-controller.d.ts +0 -48
- package/dist/timeline/timeline-controller.d.ts.map +0 -1
- package/dist/timeline/timeline-controller.js +0 -81
- package/dist/timeline/timeline-controller.js.map +0 -1
- package/dist/timeline/timeline-draw.d.ts +0 -28
- package/dist/timeline/timeline-draw.d.ts.map +0 -1
- package/dist/timeline/timeline-draw.js +0 -330
- package/dist/timeline/timeline-draw.js.map +0 -1
- package/dist/timeline/timeline-element.d.ts +0 -140
- package/dist/timeline/timeline-element.d.ts.map +0 -1
- package/dist/timeline/timeline-element.js +0 -888
- package/dist/timeline/timeline-element.js.map +0 -1
- package/dist/timeline/timeline-interactions.d.ts +0 -40
- package/dist/timeline/timeline-interactions.d.ts.map +0 -1
- package/dist/timeline/timeline-interactions.js +0 -393
- package/dist/timeline/timeline-interactions.js.map +0 -1
- package/dist/timeline/timeline-styles.d.ts +0 -2
- package/dist/timeline/timeline-styles.d.ts.map +0 -1
- package/dist/timeline/timeline-styles.js +0 -153
- package/dist/timeline/timeline-styles.js.map +0 -1
- package/dist/timeline/timeline-track-tabs.d.ts +0 -30
- package/dist/timeline/timeline-track-tabs.d.ts.map +0 -1
- package/dist/timeline/timeline-track-tabs.js +0 -204
- package/dist/timeline/timeline-track-tabs.js.map +0 -1
- package/dist/timeline/types.d.ts +0 -144
- package/dist/timeline/types.d.ts.map +0 -1
- package/dist/timeline/types.js +0 -3
- package/dist/timeline/types.js.map +0 -1
- package/dist/tree/index.d.ts +0 -5
- package/dist/tree/index.d.ts.map +0 -1
- package/dist/tree/index.js +0 -5
- package/dist/tree/index.js.map +0 -1
- package/dist/tree/tree-base.d.ts +0 -70
- package/dist/tree/tree-base.d.ts.map +0 -1
- package/dist/tree/tree-base.js +0 -1028
- package/dist/tree/tree-base.js.map +0 -1
- package/dist/tree/tree-controller.d.ts +0 -14
- package/dist/tree/tree-controller.d.ts.map +0 -1
- package/dist/tree/tree-controller.js +0 -96
- package/dist/tree/tree-controller.js.map +0 -1
- package/dist/tree/tree-list.d.ts +0 -20
- package/dist/tree/tree-list.d.ts.map +0 -1
- package/dist/tree/tree-list.js +0 -174
- package/dist/tree/tree-list.js.map +0 -1
- package/dist/tree/types.d.ts +0 -14
- package/dist/tree/types.d.ts.map +0 -1
- package/dist/tree/types.js +0 -7
- package/dist/tree/types.js.map +0 -1
- package/dist/util/checkbox.d.ts +0 -2
- package/dist/util/checkbox.d.ts.map +0 -1
- package/dist/util/checkbox.js +0 -69
- package/dist/util/checkbox.js.map +0 -1
- package/dist/util/circle-arc.d.ts +0 -34
- package/dist/util/circle-arc.d.ts.map +0 -1
- package/dist/util/circle-arc.js +0 -85
- package/dist/util/circle-arc.js.map +0 -1
- package/dist/util/clamp.d.ts +0 -4
- package/dist/util/clamp.d.ts.map +0 -1
- package/dist/util/clamp.js +0 -23
- package/dist/util/clamp.js.map +0 -1
- package/dist/util/compare.d.ts +0 -53
- package/dist/util/compare.d.ts.map +0 -1
- package/dist/util/compare.js +0 -91
- package/dist/util/compare.js.map +0 -1
- package/dist/util/content-editable.d.ts +0 -2
- package/dist/util/content-editable.d.ts.map +0 -1
- package/dist/util/content-editable.js +0 -13
- package/dist/util/content-editable.js.map +0 -1
- package/dist/util/coordinates.d.ts +0 -3
- package/dist/util/coordinates.d.ts.map +0 -1
- package/dist/util/coordinates.js +0 -11
- package/dist/util/coordinates.js.map +0 -1
- package/dist/util/drag.d.ts +0 -16
- package/dist/util/drag.d.ts.map +0 -1
- package/dist/util/drag.js +0 -20
- package/dist/util/drag.js.map +0 -1
- package/dist/util/is-numeric.d.ts +0 -2
- package/dist/util/is-numeric.d.ts.map +0 -1
- package/dist/util/is-numeric.js +0 -9
- package/dist/util/is-numeric.js.map +0 -1
- package/dist/util/key-value.d.ts +0 -5
- package/dist/util/key-value.d.ts.map +0 -1
- package/dist/util/key-value.js +0 -29
- package/dist/util/key-value.js.map +0 -1
- package/dist/util/near.d.ts +0 -2
- package/dist/util/near.d.ts.map +0 -1
- package/dist/util/near.js +0 -6
- package/dist/util/near.js.map +0 -1
- package/dist/util/primitive-types.d.ts +0 -6
- package/dist/util/primitive-types.d.ts.map +0 -1
- package/dist/util/primitive-types.js +0 -2
- package/dist/util/primitive-types.js.map +0 -1
- package/dist/util/svg-editable-text.d.ts +0 -26
- package/dist/util/svg-editable-text.d.ts.map +0 -1
- package/dist/util/svg-editable-text.js +0 -119
- package/dist/util/svg-editable-text.js.map +0 -1
- package/dist/util/time.d.ts +0 -2
- package/dist/util/time.d.ts.map +0 -1
- package/dist/util/time.js +0 -2
- package/dist/util/time.js.map +0 -1
- package/dist/util/tooltip-controller.d.ts +0 -10
- package/dist/util/tooltip-controller.d.ts.map +0 -1
- package/dist/util/tooltip-controller.js +0 -237
- package/dist/util/tooltip-controller.js.map +0 -1
- package/dist/util/tooltip.d.ts +0 -21
- package/dist/util/tooltip.d.ts.map +0 -1
- package/dist/util/tooltip.js +0 -98
- package/dist/util/tooltip.js.map +0 -1
- package/dist/util/value-drag.d.ts +0 -33
- package/dist/util/value-drag.d.ts.map +0 -1
- package/dist/util/value-drag.js +0 -154
- package/dist/util/value-drag.js.map +0 -1
package/dist/tabs.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { n as safeCustomElement, t as __decorate } from "./decorate-O4m1U4l3.js";
|
|
2
|
+
import { LitElement, css, html } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
//#region src/tabs/tab-list.ts
|
|
5
|
+
let TabListElement = class TabListElement extends LitElement {
|
|
6
|
+
constructor(..._args) {
|
|
7
|
+
super(..._args);
|
|
8
|
+
this.orientation = `horizontal`;
|
|
9
|
+
this.flip = false;
|
|
10
|
+
this.scrollable = false;
|
|
11
|
+
this.#items = [];
|
|
12
|
+
this.#onSlotChange = () => {
|
|
13
|
+
this.updateComplete.then(() => {
|
|
14
|
+
this.#items = (this.shadowRoot?.querySelector(`slot`))?.assignedElements({ flatten: true }) ?? [];
|
|
15
|
+
this.#syncIndicatorColors();
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
this.#onKeyUp = (event) => {
|
|
19
|
+
const key = event.key;
|
|
20
|
+
if (this.#isVertical) {
|
|
21
|
+
if (key === `ArrowUp`) this.#selectPrevious();
|
|
22
|
+
else if (key === `ArrowDown`) this.#selectNext();
|
|
23
|
+
} else if (key === `ArrowRight`) this.#selectNext();
|
|
24
|
+
else if (key === `ArrowLeft`) this.#selectPrevious();
|
|
25
|
+
};
|
|
26
|
+
this.#onSlotClick = (event) => {
|
|
27
|
+
this.focus();
|
|
28
|
+
const t = event.target.closest(`ixfx-tab-list-item`);
|
|
29
|
+
if (!t) return;
|
|
30
|
+
const previous = this.getSelectedElement();
|
|
31
|
+
this.selectElement(t);
|
|
32
|
+
const forId = t.getAttribute(`for`);
|
|
33
|
+
const previousId = previous?.id;
|
|
34
|
+
this.dispatchEvent(new CustomEvent(`change`, {
|
|
35
|
+
bubbles: true,
|
|
36
|
+
detail: {
|
|
37
|
+
previous: previousId,
|
|
38
|
+
selected: t.id,
|
|
39
|
+
for: forId ?? ``
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
#items;
|
|
45
|
+
get #isVertical() {
|
|
46
|
+
return this.orientation === `vertical-stack` || this.orientation === `vertical-side`;
|
|
47
|
+
}
|
|
48
|
+
get #containerClass() {
|
|
49
|
+
return this.scrollable ? `${this.orientation} scrollable` : this.orientation;
|
|
50
|
+
}
|
|
51
|
+
render() {
|
|
52
|
+
return html`
|
|
53
|
+
<div
|
|
54
|
+
tabindex=0
|
|
55
|
+
@keyup=${this.#onKeyUp}
|
|
56
|
+
@click=${this.#onSlotClick}
|
|
57
|
+
id="container"
|
|
58
|
+
class=${this.#containerClass}
|
|
59
|
+
>
|
|
60
|
+
<slot @slotchange=${this.#onSlotChange}></slot>
|
|
61
|
+
</div>`;
|
|
62
|
+
}
|
|
63
|
+
#onSlotChange;
|
|
64
|
+
firstUpdated() {
|
|
65
|
+
this.updateComplete.then(() => {
|
|
66
|
+
if (this.#items.length > 0) this.#syncIndicatorColors();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
updated(changedProperties) {
|
|
70
|
+
super.updated(changedProperties);
|
|
71
|
+
this.classList.toggle("scrollable", this.scrollable);
|
|
72
|
+
}
|
|
73
|
+
#syncIndicatorColors() {
|
|
74
|
+
for (const item of this.#items) {
|
|
75
|
+
item.style.setProperty(`--indicator-color-bottom`, `transparent`);
|
|
76
|
+
item.style.setProperty(`--indicator-color-top`, `transparent`);
|
|
77
|
+
item.style.setProperty(`--indicator-color-left`, `transparent`);
|
|
78
|
+
item.style.setProperty(`--indicator-color-right`, `transparent`);
|
|
79
|
+
if (item.hasAttribute(`selected`)) {
|
|
80
|
+
if (this.orientation === `horizontal` && !this.flip) item.style.setProperty(`--indicator-color-bottom`, `var(--accent)`);
|
|
81
|
+
else if (this.orientation === `horizontal` && this.flip) item.style.setProperty(`--indicator-color-top`, `var(--accent)`);
|
|
82
|
+
else if (this.#isVertical && !this.flip) item.style.setProperty(`--indicator-color-right`, `var(--accent)`);
|
|
83
|
+
else if (this.#isVertical && this.flip) item.style.setProperty(`--indicator-color-left`, `var(--accent)`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
#onKeyUp;
|
|
88
|
+
getSelectedElement() {
|
|
89
|
+
for (const el of this.#items) if (this.#isSelected(el)) return el;
|
|
90
|
+
}
|
|
91
|
+
#isSelected(el) {
|
|
92
|
+
if (el.getAttribute(`selected`) === null) return false;
|
|
93
|
+
return el.hasAttribute(`selected`);
|
|
94
|
+
}
|
|
95
|
+
selectElement(el) {
|
|
96
|
+
const existing = this.getSelectedElement();
|
|
97
|
+
if (existing) {
|
|
98
|
+
existing.removeAttribute(`selected`);
|
|
99
|
+
existing.style.setProperty(`--indicator-color-bottom`, `transparent`);
|
|
100
|
+
existing.style.setProperty(`--indicator-color-top`, `transparent`);
|
|
101
|
+
existing.style.setProperty(`--indicator-color-left`, `transparent`);
|
|
102
|
+
existing.style.setProperty(`--indicator-color-right`, `transparent`);
|
|
103
|
+
}
|
|
104
|
+
el.setAttribute(`selected`, ``);
|
|
105
|
+
if (this.orientation === `horizontal` && !this.flip) el.style.setProperty(`--indicator-color-bottom`, `var(--accent)`);
|
|
106
|
+
else if (this.orientation === `horizontal` && this.flip) el.style.setProperty(`--indicator-color-top`, `var(--accent)`);
|
|
107
|
+
else if (this.#isVertical && !this.flip) el.style.setProperty(`--indicator-color-right`, `var(--accent)`);
|
|
108
|
+
else if (this.#isVertical && this.flip) el.style.setProperty(`--indicator-color-left`, `var(--accent)`);
|
|
109
|
+
}
|
|
110
|
+
#selectNext() {
|
|
111
|
+
let found = false;
|
|
112
|
+
for (const el of this.#items) if (this.#isSelected(el) && !found) found = true;
|
|
113
|
+
else if (found) {
|
|
114
|
+
this.selectElement(el);
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
#selectPrevious() {
|
|
119
|
+
let prev;
|
|
120
|
+
for (const el of this.#items) if (this.#isSelected(el) && prev) this.selectElement(prev);
|
|
121
|
+
else prev = el;
|
|
122
|
+
}
|
|
123
|
+
#onSlotClick;
|
|
124
|
+
static {
|
|
125
|
+
this.styles = css`
|
|
126
|
+
:host {
|
|
127
|
+
display: inline-block;
|
|
128
|
+
--activated-colour: var(--accent);
|
|
129
|
+
--colour: var(--surface-4);
|
|
130
|
+
--scroll-max-height: 200px;
|
|
131
|
+
--allow-overflow: hidden;
|
|
132
|
+
}
|
|
133
|
+
:host(.scrollable) {
|
|
134
|
+
max-height: var(--scroll-max-height);
|
|
135
|
+
}
|
|
136
|
+
text {
|
|
137
|
+
user-select:none;
|
|
138
|
+
}
|
|
139
|
+
#container {
|
|
140
|
+
display:flex;
|
|
141
|
+
}
|
|
142
|
+
#container.horizontal {
|
|
143
|
+
flex-direction: row;
|
|
144
|
+
overflow: hidden;
|
|
145
|
+
}
|
|
146
|
+
#container.horizontal.scrollable {
|
|
147
|
+
overflow-x: auto;
|
|
148
|
+
--allow-overflow: visible;
|
|
149
|
+
}
|
|
150
|
+
#container.horizontal.scrollable ::slotted(ixfx-tab-list-item) {
|
|
151
|
+
flex-shrink: 0;
|
|
152
|
+
}
|
|
153
|
+
#container.vertical-stack {
|
|
154
|
+
flex-direction: column;
|
|
155
|
+
}
|
|
156
|
+
#container.vertical-stack.flip {
|
|
157
|
+
flex-direction: column-reverse;
|
|
158
|
+
}
|
|
159
|
+
#container.vertical-stack.scrollable {
|
|
160
|
+
overflow-y: auto;
|
|
161
|
+
max-height: var(--scroll-max-height);
|
|
162
|
+
--allow-overflow: visible;
|
|
163
|
+
}
|
|
164
|
+
#container.vertical-side {
|
|
165
|
+
flex-direction: column;
|
|
166
|
+
}
|
|
167
|
+
#container.vertical-side.flip {
|
|
168
|
+
flex-direction: column-reverse;
|
|
169
|
+
}
|
|
170
|
+
#container.vertical-side.scrollable {
|
|
171
|
+
overflow-y: auto;
|
|
172
|
+
max-height: var(--scroll-max-height);
|
|
173
|
+
--allow-overflow: visible;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
::slotted(ixfx-tab-list-item) {
|
|
177
|
+
flex: 1 1 auto;
|
|
178
|
+
min-width: 0;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
#container.vertical-side ::slotted(ixfx-tab-list-item) {
|
|
182
|
+
writing-mode: vertical-lr;
|
|
183
|
+
text-orientation: mixed;
|
|
184
|
+
}
|
|
185
|
+
#container.vertical-side.flip ::slotted(ixfx-tab-list-item) {
|
|
186
|
+
writing-mode: vertical-rl;
|
|
187
|
+
text-orientation: mixed;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
::slotted(.activated) {
|
|
191
|
+
--colour: var(--activated-colour);
|
|
192
|
+
}
|
|
193
|
+
`;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
__decorate([property({ type: String })], TabListElement.prototype, "orientation", void 0);
|
|
197
|
+
__decorate([property({ type: Boolean })], TabListElement.prototype, "flip", void 0);
|
|
198
|
+
__decorate([property({ type: Boolean })], TabListElement.prototype, "scrollable", void 0);
|
|
199
|
+
TabListElement = __decorate([safeCustomElement(`ixfx-tab-list`)], TabListElement);
|
|
200
|
+
//#endregion
|
|
201
|
+
export { TabListElement };
|
|
202
|
+
|
|
203
|
+
//# sourceMappingURL=tabs.js.map
|
package/dist/tabs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","names":["#items","#syncIndicatorColors","#isVertical","#selectPrevious","#selectNext","#containerClass","#onKeyUp","#onSlotClick","#onSlotChange","#isSelected","customElement"],"sources":["../src/tabs/tab-list.ts"],"sourcesContent":["import type { TabListItemElement } from \"./tab-list-item.js\";\nimport type { PropertyValues } from \"lit\";\nimport { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { safeCustomElement as customElement } from \"../util/custom-elements.js\";\n\n/**\n * Events\n * 'change' - new tab selected { previous:string, selected:string, for:string }\n */\nexport type TabListChangeDetail = {\n readonly previous: string | undefined;\n readonly selected: string;\n readonly for: string;\n};\n\nexport type TabListChangeEvent = CustomEvent<TabListChangeDetail>;\n\n@customElement(`ixfx-tab-list`)\nexport class TabListElement extends LitElement {\n @property({ type: String })\n orientation: `horizontal` | `vertical-stack` | `vertical-side` = `horizontal`;\n\n @property({ type: Boolean })\n flip = false;\n\n @property({ type: Boolean })\n scrollable = false;\n\n #items: TabListItemElement[] = [];\n\n get #isVertical(): boolean {\n return this.orientation === `vertical-stack` || this.orientation === `vertical-side`;\n }\n\n get #containerClass(): string {\n return this.scrollable ? `${this.orientation} scrollable` : this.orientation;\n }\n\n override render() {\n return html`\n <div \n tabindex=0 \n @keyup=${this.#onKeyUp} \n @click=${this.#onSlotClick} \n id=\"container\" \n class=${this.#containerClass}\n >\n <slot @slotchange=${this.#onSlotChange}></slot>\n </div>`;\n }\n\n #onSlotChange = () => {\n this.updateComplete.then(() => {\n this.#items = (this.shadowRoot?.querySelector(`slot`) as HTMLSlotElement)\n ?.assignedElements({ flatten: true }) as TabListItemElement[] ?? [];\n this.#syncIndicatorColors();\n });\n };\n\n override firstUpdated() {\n this.updateComplete.then(() => {\n if (this.#items.length > 0) {\n this.#syncIndicatorColors();\n }\n });\n }\n\n override updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n this.classList.toggle('scrollable', this.scrollable);\n }\n\n #syncIndicatorColors() {\n for (const item of this.#items) {\n item.style.setProperty(`--indicator-color-bottom`, `transparent`);\n item.style.setProperty(`--indicator-color-top`, `transparent`);\n item.style.setProperty(`--indicator-color-left`, `transparent`);\n item.style.setProperty(`--indicator-color-right`, `transparent`);\n\n if (item.hasAttribute(`selected`)) {\n if (this.orientation === `horizontal` && !this.flip) {\n item.style.setProperty(`--indicator-color-bottom`, `var(--accent)`);\n } else if (this.orientation === `horizontal` && this.flip) {\n item.style.setProperty(`--indicator-color-top`, `var(--accent)`);\n } else if (this.#isVertical && !this.flip) {\n item.style.setProperty(`--indicator-color-right`, `var(--accent)`);\n } else if (this.#isVertical && this.flip) {\n item.style.setProperty(`--indicator-color-left`, `var(--accent)`);\n }\n }\n }\n }\n\n #onKeyUp = (event: KeyboardEvent) => {\n const key = event.key;\n if (this.#isVertical) {\n if (key === `ArrowUp`) {\n this.#selectPrevious();\n } else if (key === `ArrowDown`) {\n this.#selectNext();\n }\n } else {\n if (key === `ArrowRight`) {\n this.#selectNext();\n } else if (key === `ArrowLeft`) {\n this.#selectPrevious();\n }\n }\n };\n\n getSelectedElement() {\n for (const el of this.#items) {\n if (this.#isSelected(el))\n return el;\n }\n }\n\n #isSelected(el: HTMLElement) {\n const v = el.getAttribute(`selected`);\n if (v === null)\n return false;\n return (el.hasAttribute(`selected`));\n }\n\n selectElement(el: HTMLElement) {\n const existing = this.getSelectedElement();\n if (existing) {\n existing.removeAttribute(`selected`);\n existing.style.setProperty(`--indicator-color-bottom`, `transparent`);\n existing.style.setProperty(`--indicator-color-top`, `transparent`);\n existing.style.setProperty(`--indicator-color-left`, `transparent`);\n existing.style.setProperty(`--indicator-color-right`, `transparent`);\n }\n\n el.setAttribute(`selected`, ``);\n\n if (this.orientation === `horizontal` && !this.flip) {\n el.style.setProperty(`--indicator-color-bottom`, `var(--accent)`);\n } else if (this.orientation === `horizontal` && this.flip) {\n el.style.setProperty(`--indicator-color-top`, `var(--accent)`);\n } else if (this.#isVertical && !this.flip) {\n el.style.setProperty(`--indicator-color-right`, `var(--accent)`);\n } else if (this.#isVertical && this.flip) {\n el.style.setProperty(`--indicator-color-left`, `var(--accent)`);\n }\n }\n\n #selectNext() {\n let found = false;\n for (const el of this.#items) {\n if (this.#isSelected(el) && !found) {\n found = true;\n } else if (found) {\n this.selectElement(el);\n break;\n }\n }\n }\n\n #selectPrevious() {\n let prev: HTMLElement | undefined;\n for (const el of this.#items) {\n if (this.#isSelected(el) && prev) {\n this.selectElement(prev);\n } else {\n prev = el;\n }\n }\n }\n\n #onSlotClick = (event: MouseEvent) => {\n this.focus();\n const t = (event.target as HTMLElement).closest(`ixfx-tab-list-item`);\n if (!t)\n return;\n const previous = this.getSelectedElement();\n this.selectElement(t);\n\n const forId = t.getAttribute(`for`);\n const previousId = previous?.id;\n this.dispatchEvent(new CustomEvent<TabListChangeDetail>(`change`, {\n bubbles: true,\n detail: {\n previous: previousId,\n selected: t.id,\n for: forId ?? ``,\n },\n }));\n };\n\n static styles = css`\n :host {\n display: inline-block;\n --activated-colour: var(--accent);\n --colour: var(--surface-4);\n --scroll-max-height: 200px;\n --allow-overflow: hidden;\n }\n :host(.scrollable) {\n max-height: var(--scroll-max-height);\n }\n text {\n user-select:none;\n }\n #container {\n display:flex;\n }\n #container.horizontal {\n flex-direction: row;\n overflow: hidden;\n }\n #container.horizontal.scrollable {\n overflow-x: auto;\n --allow-overflow: visible;\n }\n #container.horizontal.scrollable ::slotted(ixfx-tab-list-item) {\n flex-shrink: 0;\n }\n #container.vertical-stack {\n flex-direction: column;\n }\n #container.vertical-stack.flip {\n flex-direction: column-reverse;\n }\n #container.vertical-stack.scrollable {\n overflow-y: auto;\n max-height: var(--scroll-max-height);\n --allow-overflow: visible;\n }\n #container.vertical-side {\n flex-direction: column;\n }\n #container.vertical-side.flip {\n flex-direction: column-reverse;\n }\n #container.vertical-side.scrollable {\n overflow-y: auto;\n max-height: var(--scroll-max-height);\n --allow-overflow: visible;\n }\n\n ::slotted(ixfx-tab-list-item) {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n #container.vertical-side ::slotted(ixfx-tab-list-item) {\n writing-mode: vertical-lr;\n text-orientation: mixed;\n }\n #container.vertical-side.flip ::slotted(ixfx-tab-list-item) {\n writing-mode: vertical-rl;\n text-orientation: mixed;\n }\n\n ::slotted(.activated) {\n --colour: var(--activated-colour);\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ixfx-tab-list\": TabListElement;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveControllerHost } from "lit";
|
|
2
|
+
|
|
3
|
+
//#region node_modules/.pnpm/@ixfx+collections@0.56.12/node_modules/@ixfx/collections/dist/index-rrpZOWbs.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Traversable Tree.
|
|
6
|
+
*
|
|
7
|
+
* Creatable from:
|
|
8
|
+
* {@link Trees.FromObject.asDynamicTraversable}: Create based on dynamic reading of an object
|
|
9
|
+
* {@link Trees.TraversableTree}: Create based on an {@link Trees.TreeNode}, a {@link Trees.TraversableTree} or an object (same as calling asDynamicTraversable).
|
|
10
|
+
* Use {@link Trees.isTraversable} to check if an object is this type.
|
|
11
|
+
*/
|
|
12
|
+
type TraversableTree<TValue> = {
|
|
13
|
+
/**
|
|
14
|
+
* Direct children of node
|
|
15
|
+
*/
|
|
16
|
+
children: () => IterableIterator<TraversableTree<TValue>>;
|
|
17
|
+
/**
|
|
18
|
+
* Direct parent of node
|
|
19
|
+
*/
|
|
20
|
+
getParent: () => TraversableTree<TValue> | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Value of node
|
|
23
|
+
*/
|
|
24
|
+
getValue: () => TValue;
|
|
25
|
+
/**
|
|
26
|
+
* Object reference that acts as the identity of the node
|
|
27
|
+
*/
|
|
28
|
+
getIdentity: () => any;
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/interaction/tickled-controller.d.ts
|
|
32
|
+
/**
|
|
33
|
+
* Represents an item that can be tickled (highlighted via hover or keyboard navigation)
|
|
34
|
+
*/
|
|
35
|
+
type TickledItem<T = unknown> = {
|
|
36
|
+
/**
|
|
37
|
+
* Unique identifier for the item (e.g., index, id, path)
|
|
38
|
+
*/
|
|
39
|
+
readonly id: T;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the item is currently enabled/interactive
|
|
42
|
+
*/
|
|
43
|
+
readonly enabled?: boolean;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Input mode determines which mechanism controls the tickled state
|
|
47
|
+
*/
|
|
48
|
+
type InputMode = `keyboard` | `mouse`;
|
|
49
|
+
/**
|
|
50
|
+
* Configuration for TickledController
|
|
51
|
+
*/
|
|
52
|
+
type TickledControllerConfig<T> = {
|
|
53
|
+
/**
|
|
54
|
+
* Function to retrieve all items that can be tickled
|
|
55
|
+
*/
|
|
56
|
+
getItems: () => ReadonlyArray<TickledItem<T>>;
|
|
57
|
+
/**
|
|
58
|
+
* Optional callback when an item becomes tickled
|
|
59
|
+
* Use this for side effects like opening submenus
|
|
60
|
+
* @param id - The id of the newly tickled item, or undefined if nothing is tickled
|
|
61
|
+
*/
|
|
62
|
+
onTickle?: (id: T | undefined) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Optional callback fired after any state change (tickled id or input mode)
|
|
65
|
+
* Use this to sync DOM attributes for slotted content that can't use reactive rendering
|
|
66
|
+
*
|
|
67
|
+
* For components that render items directly, this is usually not needed as
|
|
68
|
+
* Lit's reactive rendering will handle updates automatically via requestUpdate()
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* onStateChange: () => {
|
|
73
|
+
* // Sync data-tickled attributes for slotted items
|
|
74
|
+
* const items = this.getItems();
|
|
75
|
+
* items.forEach((item, i) => {
|
|
76
|
+
* if (this.tickled.isTickled(i)) {
|
|
77
|
+
* item.setAttribute('data-tickled', '');
|
|
78
|
+
* } else {
|
|
79
|
+
* item.removeAttribute('data-tickled');
|
|
80
|
+
* }
|
|
81
|
+
* });
|
|
82
|
+
* }
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
onStateChange?: () => void;
|
|
86
|
+
/**
|
|
87
|
+
* Optional initial input mode (defaults to 'mouse')
|
|
88
|
+
*/
|
|
89
|
+
initialInputMode?: InputMode;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* ReactiveController that manages "tickled" state for interactive lists.
|
|
93
|
+
*
|
|
94
|
+
* A "tickled" item is one that is under active attention via hover (mouse mode)
|
|
95
|
+
* or keyboard focus (keyboard mode). Only one item can be tickled at a time.
|
|
96
|
+
*
|
|
97
|
+
* The input mode determines which mechanism controls tickled state:
|
|
98
|
+
* - Mouse mode: hover controls tickled, keyboard navigation ignored
|
|
99
|
+
* - Keyboard mode: keyboard navigation controls tickled, hover ignored
|
|
100
|
+
*
|
|
101
|
+
* Last interaction wins - any mouse hover switches to mouse mode, any keyboard
|
|
102
|
+
* navigation switches to keyboard mode.
|
|
103
|
+
*
|
|
104
|
+
* ## Global Mouse Tracking
|
|
105
|
+
*
|
|
106
|
+
* This controller uses a singleton global `pointermove` listener to track actual
|
|
107
|
+
* mouse movement. This prevents `pointerenter` events caused by content scrolling
|
|
108
|
+
* from incorrectly switching to mouse mode when the user is actually using keyboard
|
|
109
|
+
* navigation.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* class MyList extends LitElement {
|
|
114
|
+
* private tickled = new TickledController(this, {
|
|
115
|
+
* getItems: () => this.items.map((item, i) => ({ id: i, enabled: !item.disabled })),
|
|
116
|
+
* onTickle: (id) => {
|
|
117
|
+
* // Optional: perform side effect when item is tickled
|
|
118
|
+
* console.log('Tickled item:', id);
|
|
119
|
+
* }
|
|
120
|
+
* });
|
|
121
|
+
*
|
|
122
|
+
* render() {
|
|
123
|
+
* return html`
|
|
124
|
+
* <ul @pointerleave=${(e) => this.tickled.handlePointerLeave(e)}>
|
|
125
|
+
* ${this.items.map((item, i) => html`
|
|
126
|
+
* <li
|
|
127
|
+
* class="item ${this.tickled.isTickled(i) ? 'tickled' : ''}"
|
|
128
|
+
* @pointerenter=${() => this.tickled.handlePointerEnter(i)}
|
|
129
|
+
* >${item.label}</li>
|
|
130
|
+
* `)}
|
|
131
|
+
* </ul>
|
|
132
|
+
* `;
|
|
133
|
+
* }
|
|
134
|
+
*
|
|
135
|
+
* private handleKeyDown(e: KeyboardEvent) {
|
|
136
|
+
* if (e.key === 'ArrowDown') {
|
|
137
|
+
* this.tickled.handleKeyboardNavigation('next');
|
|
138
|
+
* } else if (e.key === 'ArrowUp') {
|
|
139
|
+
* this.tickled.handleKeyboardNavigation('previous');
|
|
140
|
+
* }
|
|
141
|
+
* }
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
declare class TickledController<T = number> implements ReactiveController {
|
|
146
|
+
private host;
|
|
147
|
+
private config;
|
|
148
|
+
private _tickledId;
|
|
149
|
+
private _inputMode;
|
|
150
|
+
private static _lastMouseClientX;
|
|
151
|
+
private static _lastMouseClientY;
|
|
152
|
+
private static _mouseMovedSinceKeyboard;
|
|
153
|
+
private static _globalListenerAttached;
|
|
154
|
+
constructor(host: ReactiveControllerHost, config: TickledControllerConfig<T>);
|
|
155
|
+
hostConnected(): void;
|
|
156
|
+
hostDisconnected(): void;
|
|
157
|
+
/**
|
|
158
|
+
* Get the current input mode
|
|
159
|
+
*/
|
|
160
|
+
get inputMode(): InputMode;
|
|
161
|
+
/**
|
|
162
|
+
* Get the currently tickled item id
|
|
163
|
+
*/
|
|
164
|
+
get tickledId(): T | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* Check if a specific item is tickled
|
|
167
|
+
*/
|
|
168
|
+
isTickled(id: T): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Handle global pointer move event.
|
|
171
|
+
* Called automatically by the global listener.
|
|
172
|
+
* Tracks mouse movement to distinguish real hover from content scrolling.
|
|
173
|
+
*/
|
|
174
|
+
private static handleGlobalPointerMove;
|
|
175
|
+
/**
|
|
176
|
+
* Check if actual mouse movement has occurred since last keyboard interaction.
|
|
177
|
+
* Used to distinguish real hover/leave from content-scrolling-induced events.
|
|
178
|
+
*/
|
|
179
|
+
static get hasMouseMovedSinceKeyboard(): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Handle pointer enter event on an item (mouse hover).
|
|
182
|
+
* Only processes if actual mouse movement is detected (not content scrolling).
|
|
183
|
+
* Switches to mouse mode and tickles the item.
|
|
184
|
+
*/
|
|
185
|
+
handlePointerEnter(id: T): void;
|
|
186
|
+
/**
|
|
187
|
+
* Handle pointer leave event on an item.
|
|
188
|
+
* Only clears tickled state if actual mouse movement is detected.
|
|
189
|
+
* @param _e The pointer event (not used, but kept for API compatibility)
|
|
190
|
+
*/
|
|
191
|
+
handlePointerLeave(_e: PointerEvent): void;
|
|
192
|
+
/**
|
|
193
|
+
* Handle keyboard navigation.
|
|
194
|
+
* Switches to keyboard mode and moves tickled state.
|
|
195
|
+
*
|
|
196
|
+
* @param direction - 'next', 'previous', 'first', 'last', or specific id
|
|
197
|
+
*/
|
|
198
|
+
handleKeyboardNavigation(direction: `next` | `previous` | `first` | `last` | T): void;
|
|
199
|
+
/**
|
|
200
|
+
* Manually set the tickled item (useful for programmatic control).
|
|
201
|
+
* Does NOT change input mode.
|
|
202
|
+
*/
|
|
203
|
+
setTickled(id: T | undefined): void;
|
|
204
|
+
/**
|
|
205
|
+
* Clear the tickled state (e.g., on pointer leave).
|
|
206
|
+
* Note: For pointer leave events, prefer using handlePointerLeave() which
|
|
207
|
+
* checks for actual mouse movement.
|
|
208
|
+
*/
|
|
209
|
+
clearTickled(): void;
|
|
210
|
+
/**
|
|
211
|
+
* Manually set the input mode.
|
|
212
|
+
* When switching to keyboard mode, resets the mouse movement tracking.
|
|
213
|
+
*/
|
|
214
|
+
setInputMode(mode: InputMode): void;
|
|
215
|
+
}
|
|
216
|
+
//#endregion
|
|
217
|
+
export { TraversableTree as n, TickledController as t };
|
|
218
|
+
//# sourceMappingURL=tickled-controller-Cq1Va0rR.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tickled-controller-Cq1Va0rR.d.ts","names":["Comparer","IsEqual","Result","LabelledValue","TValue","LabelledSingleValue","LabelledValues","label","value","values","TreeNode","ReadonlyArray","parent","childrenStore","SimplifiedNode","LabelledNode","TraversableTree","IterableIterator","children","getParent","getValue","getIdentity","TraverseObjectEntry","Readonly","name","sourceValue","leafValue","_kind","TraverseObjectEntryWithAncestors","ancestors","TraverseObjectEntryStatic","TraverseObjectPathOpts","separator","WrappedNode","T","wraps","remove","add","child","addValue","hasChild","queryValue","queryParentsValue","eq","findParentsValue","parentsValues","hasAnyChild","hasParent","hasAnyParent","DiffAnnotation","a","b","valueChanged","childChanged","added","removed","DiffNode","toString","compare$1","tree_mutable_d_exports","asDynamicTraversable$1","breadthFirst$2","children$2","childrenLength$1","childrenValues","compare","computeMaxDepth","createNode$1","depthFirst$3","findAnyChildByValue$2","findChildByValue$1","followValue$1","fromPlainObject","getRoot","hasAnyChild$1","hasAnyParent$1","hasChild$1","hasParent$1","nodeDepth","parents$1","queryByValue","remove$1","removeValuelessNodesFromChild","root$2","rootWrapped$1","setChildren","siblings$2","stripParentage","throwTreeTest","toStringDeep$4","treeTest","wrap$1","asDynamicTraversable","breadthFirst","childrenLength","createNode","depthFirst","findAnyChildByValue","findChildByValue","followValue","parents","root","rootWrapped","siblings","toStringDeep","wrap","node","n","Array","seen","ok","msg","prospectiveChild","prospectiveParent","Generator","Record","indent","nodeValue","depth","continuePredicate","pathed_d_exports","PathOpts","Pathed","addValueByPath","children$1","childrenLengthByPath","clearValuesByPath","findAnyChildByValue$1","hasValue","parentValues","removeValueByPath","siblings$1","siblingsValues","toStringDeep$3","valueByPath","valuesByPath","startsWithSeparator","duplicates","Partial","private","constructor","pathOpts","path","validate","prettyPrint","hasPath","getNode","getPath","includeNode","getValues","clearValues","searchStart","start","maxDepth","traverse_object_d_exports","ChildrenOptions","CreateOptions","create$1","createSimplified","createWrapped","depthFirst$2","getByPath","prettyPrintEntries","toStringDeep$2","traceByPath","create","entries","options","filter","Iterable","valuesAtLeaves","traversable_tree_d_exports","breadthFirst$1","couldAddChild","depthFirst$1","find$2","findAnyParentByValue","findByValue","findParentByValue","hasAnyChildValue","hasAnyParentValue","hasChildValue","hasParentValue","toStringDeep$1","find","tree","TV","possibleParent","possibleParentValue","possibleChild","possibleChildValue","possibleValue","predicate","order","nodes","binary_tree_d_exports","BinaryChildSide","WrappedBinaryNode","addLeft","addRight","balanceFactor","find$1","fromArray$1","getLeft","getRight","grandparent","hasLeft","hasRight","height","inOrder$1","isLeaf","isParentLeftChild","isParentRightChild","leftSubtreeHeightFn","parentChildSide","postOrder$1","preOrder$1","removeNode","rightSubtreeHeightFn","root$1","setLeft","setRight","sibling","toArray","uncle","fromArray","inOrder","postOrder","preOrder","left","right","leftSubtreeHeight","rightSubtreeHeight","has","array","binary_search_tree_d_exports","Bst","BstNode","insert","max","min","valuesInOrder","comparer","toArrayInOrder","isSingleValue","v","isMultiValue","index_d_exports","isTraversable","isTreeNode","toTraversable","BinarySearchTree","BinaryTree","FromObject","Mutable","Traverse","C","D","E","S","_","c","d","f","g","h","i","l","m","o","p","r","s","t","u","w","x","y"],"sources":["../node_modules/.pnpm/@ixfx+collections@0.56.12/node_modules/@ixfx/collections/dist/index-rrpZOWbs.d.ts","../src/interaction/tickled-controller.ts"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;KAgFKgB,eAAAA;ECyQgB;;;EDrQnBE,QAAAA,QAAgBD,gBAAAA,CAAiBD,eAAAA,CAAgBZ,MAAAA;ECsCpB;;;EDlC7Be,SAAAA,QAAiBH,eAAAA,CAAgBZ,MAAAA;ECqCzB;;;EDjCRgB,QAAAA,QAAgBhB,MAAAA;ECsCD;;;EDlCfiB,WAAAA;AAAAA;;;;;AAzBuD;KClE7C,WAAA;ED2EQjB;;;EAAAA,SCvET,EAAA,EAAI,CAAC;ED+EmBA;;;EAAAA,SC1ExB,OAAA;AAAA;;;;KAMC,SAAA;;;;KAKA,uBAAA;EDmEVgB;;;EC/DA,QAAA,QAAgB,aAAA,CAAc,WAAA,CAAY,CAAA;EDmE/B;;;;AC3Fb;EA+BE,QAAA,IAAY,EAAA,EAAI,CAAA;EA/BK;;;;;;;AASL;AAMlB;;;;AAAqB;AAKrB;;;;;;;;;EAmCE,aAAA;EAnCkC;;;EAwClC,gBAAA,GAAmB,SAAA;AAAA;;;;;;;;AAAS;AAyD9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAa,iBAAA,wBAAyC,kBAAA;EAAA,QAC5C,IAAA;EAAA,QACA,MAAA;EAAA,QACA,UAAA;EAAA,QACA,UAAA;EAAA,eAEO,iBAAA;EAAA,eACA,iBAAA;EAAA,eACA,wBAAA;EAAA,eACA,uBAAA;cAEH,IAAA,EAAM,sBAAA,EAAwB,MAAA,EAAQ,uBAAA,CAAwB,CAAA;EAO1E,aAAA,CAAA;EASA,gBAAA,CAAA;EAoMmB;;;EAAA,IA7Lf,SAAA,CAAA,GAAa,SAAA;;;;MAOb,SAAA,CAAA,GAAa,CAAA;;;;EAOjB,SAAA,CAAU,EAAA,EAAI,CAAA;;;;;;iBASC,uBAAA;;;;;aAiBJ,0BAAA,CAAA;;;;;;EASX,kBAAA,CAAmB,EAAA,EAAI,CAAA;;;;;;EAiCvB,kBAAA,CAAmB,EAAA,EAAI,YAAA;;;;;;;EAYvB,wBAAA,CAAyB,SAAA,2CAAoD,CAAA;;;;;EAyD7E,UAAA,CAAW,EAAA,EAAI,CAAA;;;;;;EAmBf,YAAA,CAAA;;;;;EAmBA,YAAA,CAAa,IAAA,EAAM,SAAA;AAAA"}
|