@ixfx/components 0.2.3 → 0.2.5

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.
Files changed (291) hide show
  1. package/LICENSE +1 -1
  2. package/bundle/chunk-pbuEa-1d.js +13 -0
  3. package/bundle/index.d.ts +4702 -569
  4. package/bundle/index.d.ts.map +1 -1
  5. package/bundle/index.js +34929 -2800
  6. package/bundle/index.js.map +1 -1
  7. package/bundle/style.css +133 -0
  8. package/dist/ac-text.d.ts +97 -0
  9. package/dist/ac-text.d.ts.map +1 -0
  10. package/dist/ac-text.js +484 -0
  11. package/dist/ac-text.js.map +1 -0
  12. package/dist/button-DgKUzE5o.js +121 -0
  13. package/dist/button-DgKUzE5o.js.map +1 -0
  14. package/dist/button.d.ts +21 -0
  15. package/dist/button.d.ts.map +1 -0
  16. package/dist/button.js +3 -0
  17. package/dist/checkbox.d.ts +34 -0
  18. package/dist/checkbox.d.ts.map +1 -0
  19. package/dist/checkbox.js +251 -0
  20. package/dist/checkbox.js.map +1 -0
  21. package/dist/chunk-pbuEa-1d.js +13 -0
  22. package/dist/colour-C3MQIjFJ-BJV-QC-3.js +4138 -0
  23. package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -0
  24. package/dist/colour-picker-Bw-AZoWx.js +922 -0
  25. package/dist/colour-picker-Bw-AZoWx.js.map +1 -0
  26. package/dist/colour-picker.d.ts +2 -0
  27. package/dist/colour-picker.js +2 -0
  28. package/dist/crumbs.d.ts +92 -0
  29. package/dist/crumbs.d.ts.map +1 -0
  30. package/dist/crumbs.js +789 -0
  31. package/dist/crumbs.js.map +1 -0
  32. package/dist/data-display.d.ts +24 -12
  33. package/dist/data-display.d.ts.map +1 -1
  34. package/dist/data-display.js +96 -105
  35. package/dist/data-display.js.map +1 -1
  36. package/dist/decorate-BZbkqIhA.js +9 -0
  37. package/dist/defaults-FEZaGiYZ.js +38 -0
  38. package/dist/defaults-FEZaGiYZ.js.map +1 -0
  39. package/dist/dist-By5URG0Y.js +1290 -0
  40. package/dist/dist-By5URG0Y.js.map +1 -0
  41. package/dist/dist-D7kJgnSE.js +1039 -0
  42. package/dist/dist-D7kJgnSE.js.map +1 -0
  43. package/dist/editable-label.d.ts +71 -0
  44. package/dist/editable-label.d.ts.map +1 -0
  45. package/dist/editable-label.js +279 -0
  46. package/dist/editable-label.js.map +1 -0
  47. package/dist/hex-editor-Gib1Grg2.d.ts +131 -0
  48. package/dist/hex-editor-Gib1Grg2.d.ts.map +1 -0
  49. package/dist/hex-editor-Wd6ZtZA2.js +1147 -0
  50. package/dist/hex-editor-Wd6ZtZA2.js.map +1 -0
  51. package/dist/hex.d.ts +2 -0
  52. package/dist/hex.js +2 -0
  53. package/dist/highlight-CAjwQ4GE.js +50 -0
  54. package/dist/highlight-CAjwQ4GE.js.map +1 -0
  55. package/dist/icon-BR5aTIiP.js +100 -0
  56. package/dist/icon-BR5aTIiP.js.map +1 -0
  57. package/dist/icon-DQKdfR7U.d.ts +36 -0
  58. package/dist/icon-DQKdfR7U.d.ts.map +1 -0
  59. package/dist/icons.d.ts +3 -0
  60. package/dist/icons.js +9 -0
  61. package/dist/icons.js.map +1 -0
  62. package/dist/incr-search-BjCNClnC.js +311 -0
  63. package/dist/incr-search-BjCNClnC.js.map +1 -0
  64. package/dist/incr-search.d.ts +2 -0
  65. package/dist/incr-search.js +3 -0
  66. package/dist/index-B1hNR7Z9.d.ts +36 -0
  67. package/dist/index-B1hNR7Z9.d.ts.map +1 -0
  68. package/dist/index-C5dK8RZa.d.ts +23 -0
  69. package/dist/index-C5dK8RZa.d.ts.map +1 -0
  70. package/dist/index-C9iBN908.d.ts +160 -0
  71. package/dist/index-C9iBN908.d.ts.map +1 -0
  72. package/dist/index-CPVcTTXo.d.ts +396 -0
  73. package/dist/index-CPVcTTXo.d.ts.map +1 -0
  74. package/dist/index-CQxanqXF.d.ts +183 -0
  75. package/dist/index-CQxanqXF.d.ts.map +1 -0
  76. package/dist/index-CpbBI3n7.d.ts +1239 -0
  77. package/dist/index-CpbBI3n7.d.ts.map +1 -0
  78. package/dist/index.d.ts +422 -13
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +5729 -14
  81. package/dist/index.js.map +1 -1
  82. package/dist/interaction-CQDQJf2Q.js +1 -0
  83. package/dist/keyboard-De_vOHLg.js +20 -0
  84. package/dist/keyboard-De_vOHLg.js.map +1 -0
  85. package/dist/labelled-input-base-DS6-6C0r.js +155 -0
  86. package/dist/labelled-input-base-DS6-6C0r.js.map +1 -0
  87. package/dist/labelled-input-base-DnRh4reU.d.ts +43 -0
  88. package/dist/labelled-input-base-DnRh4reU.d.ts.map +1 -0
  89. package/dist/labelled-radial-input.d.ts +34 -0
  90. package/dist/labelled-radial-input.d.ts.map +1 -0
  91. package/dist/labelled-radial-input.js +188 -0
  92. package/dist/labelled-radial-input.js.map +1 -0
  93. package/dist/labelled-range-input.d.ts +2 -0
  94. package/dist/labelled-range-input.js +132 -0
  95. package/dist/labelled-range-input.js.map +1 -0
  96. package/dist/led.d.ts +25 -0
  97. package/dist/led.d.ts.map +1 -0
  98. package/dist/led.js +92 -0
  99. package/dist/led.js.map +1 -0
  100. package/dist/menu-BV6UFx_z.js +813 -0
  101. package/dist/menu-BV6UFx_z.js.map +1 -0
  102. package/dist/menu-item-Cikacp4F.d.ts +128 -0
  103. package/dist/menu-item-Cikacp4F.d.ts.map +1 -0
  104. package/dist/menu-item-DEzL_Yjk.js +766 -0
  105. package/dist/menu-item-DEzL_Yjk.js.map +1 -0
  106. package/dist/menu.d.ts +3 -0
  107. package/dist/menu.js +3 -0
  108. package/dist/miller.d.ts +324 -0
  109. package/dist/miller.d.ts.map +1 -0
  110. package/dist/miller.js +1343 -0
  111. package/dist/miller.js.map +1 -0
  112. package/dist/narrowed-text.d.ts +72 -0
  113. package/dist/narrowed-text.d.ts.map +1 -0
  114. package/dist/narrowed-text.js +571 -0
  115. package/dist/narrowed-text.js.map +1 -0
  116. package/dist/panel.d.ts +43 -0
  117. package/dist/panel.d.ts.map +1 -0
  118. package/dist/panel.js +408 -0
  119. package/dist/panel.js.map +1 -0
  120. package/dist/plots.d.ts +2 -0
  121. package/dist/plots.js +2 -0
  122. package/dist/polar-pad.d.ts +67 -0
  123. package/dist/polar-pad.d.ts.map +1 -0
  124. package/dist/polar-pad.js +537 -0
  125. package/dist/polar-pad.js.map +1 -0
  126. package/dist/popup-Ddx9LCzY.js +24 -0
  127. package/dist/popup-Ddx9LCzY.js.map +1 -0
  128. package/dist/prominence-CreDBdCs.js +98 -0
  129. package/dist/prominence-CreDBdCs.js.map +1 -0
  130. package/dist/radial-input-CNJ8asY2.js +849 -0
  131. package/dist/radial-input-CNJ8asY2.js.map +1 -0
  132. package/dist/radial-input-xSTd4kEz.d.ts +70 -0
  133. package/dist/radial-input-xSTd4kEz.d.ts.map +1 -0
  134. package/dist/radial-input.d.ts +2 -0
  135. package/dist/radial-input.js +2 -0
  136. package/dist/range-input.d.ts +43 -0
  137. package/dist/range-input.d.ts.map +1 -0
  138. package/dist/range-input.js +459 -0
  139. package/dist/range-input.js.map +1 -0
  140. package/dist/range.d.ts +28 -0
  141. package/dist/range.d.ts.map +1 -0
  142. package/dist/range.js +136 -0
  143. package/dist/range.js.map +1 -0
  144. package/dist/registry-CZEB1YI9.js +21 -0
  145. package/dist/registry-CZEB1YI9.js.map +1 -0
  146. package/dist/selecthorizontal.d.ts +13 -8
  147. package/dist/selecthorizontal.d.ts.map +1 -1
  148. package/dist/selecthorizontal.js +21 -25
  149. package/dist/selecthorizontal.js.map +1 -1
  150. package/dist/snap-container.d.ts +50 -0
  151. package/dist/snap-container.d.ts.map +1 -0
  152. package/dist/snap-container.js +297 -0
  153. package/dist/snap-container.js.map +1 -0
  154. package/dist/split-layout.d.ts +56 -0
  155. package/dist/split-layout.d.ts.map +1 -0
  156. package/dist/split-layout.js +545 -0
  157. package/dist/split-layout.js.map +1 -0
  158. package/dist/style.css +133 -0
  159. package/dist/swipe.d.ts +48 -0
  160. package/dist/swipe.d.ts.map +1 -0
  161. package/dist/swipe.js +204 -0
  162. package/dist/swipe.js.map +1 -0
  163. package/dist/tab-list-CFF7uSYH.d.ts +66 -0
  164. package/dist/tab-list-CFF7uSYH.d.ts.map +1 -0
  165. package/dist/tabs.d.ts +2 -0
  166. package/dist/tabs.js +203 -0
  167. package/dist/tabs.js.map +1 -0
  168. package/dist/tickled-controller-Cq1Va0rR.d.ts +218 -0
  169. package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -0
  170. package/dist/tickled-styles-Bg3QbcrD.js +327 -0
  171. package/dist/tickled-styles-Bg3QbcrD.js.map +1 -0
  172. package/dist/timeline-DBWJsSjd.js +1748 -0
  173. package/dist/timeline-DBWJsSjd.js.map +1 -0
  174. package/dist/timeline.d.ts +2 -0
  175. package/dist/timeline.js +2 -0
  176. package/dist/tooltip-DMxmBNky.js +104 -0
  177. package/dist/tooltip-DMxmBNky.js.map +1 -0
  178. package/dist/tooltip-kfUBWYVB.d.ts +26 -0
  179. package/dist/tooltip-kfUBWYVB.d.ts.map +1 -0
  180. package/dist/tree-component-CQpoPo4s.d.ts +326 -0
  181. package/dist/tree-component-CQpoPo4s.d.ts.map +1 -0
  182. package/dist/tree-data-model-DGvRVOFY.js +190 -0
  183. package/dist/tree-data-model-DGvRVOFY.js.map +1 -0
  184. package/dist/tree.d.ts +100 -0
  185. package/dist/tree.d.ts.map +1 -0
  186. package/dist/tree.js +1144 -0
  187. package/dist/tree.js.map +1 -0
  188. package/dist/types-BKaqnpwx.d.ts +8 -0
  189. package/dist/types-BKaqnpwx.d.ts.map +1 -0
  190. package/dist/xy-axis-BANbgrI5.js +6243 -0
  191. package/dist/xy-axis-BANbgrI5.js.map +1 -0
  192. package/dist/xy-axis-CIFok7MF.d.ts +141 -0
  193. package/dist/xy-axis-CIFok7MF.d.ts.map +1 -0
  194. package/dist/xy-pad.d.ts +81 -0
  195. package/dist/xy-pad.d.ts.map +1 -0
  196. package/dist/xy-pad.js +435 -0
  197. package/dist/xy-pad.js.map +1 -0
  198. package/package.json +48 -39
  199. package/README.md +0 -14
  200. package/dist/charts/frequency-histogram-plot.d.ts +0 -33
  201. package/dist/charts/frequency-histogram-plot.d.ts.map +0 -1
  202. package/dist/charts/frequency-histogram-plot.js +0 -54
  203. package/dist/charts/frequency-histogram-plot.js.map +0 -1
  204. package/dist/charts/histogram-vis.d.ts +0 -57
  205. package/dist/charts/histogram-vis.d.ts.map +0 -1
  206. package/dist/charts/histogram-vis.js +0 -222
  207. package/dist/charts/histogram-vis.js.map +0 -1
  208. package/dist/charts/plot.d.ts +0 -199
  209. package/dist/charts/plot.d.ts.map +0 -1
  210. package/dist/charts/plot.js +0 -914
  211. package/dist/charts/plot.js.map +0 -1
  212. package/dist/crumb-nav.d.ts +0 -41
  213. package/dist/crumb-nav.d.ts.map +0 -1
  214. package/dist/crumb-nav.js +0 -198
  215. package/dist/crumb-nav.js.map +0 -1
  216. package/dist/crumb-navigation.d.ts +0 -30
  217. package/dist/crumb-navigation.d.ts.map +0 -1
  218. package/dist/crumb-navigation.js +0 -307
  219. package/dist/crumb-navigation.js.map +0 -1
  220. package/dist/dial.d.ts +0 -89
  221. package/dist/dial.d.ts.map +0 -1
  222. package/dist/dial.js +0 -506
  223. package/dist/dial.js.map +0 -1
  224. package/dist/my-element.d.ts +0 -14
  225. package/dist/my-element.d.ts.map +0 -1
  226. package/dist/my-element.js +0 -44
  227. package/dist/my-element.js.map +0 -1
  228. package/dist/split-layout/split-layout.d.ts +0 -35
  229. package/dist/split-layout/split-layout.d.ts.map +0 -1
  230. package/dist/split-layout/split-layout.js +0 -220
  231. package/dist/split-layout/split-layout.js.map +0 -1
  232. package/dist/svg-edit-label.d.ts +0 -2
  233. package/dist/svg-edit-label.d.ts.map +0 -1
  234. package/dist/svg-edit-label.js +0 -110
  235. package/dist/svg-edit-label.js.map +0 -1
  236. package/dist/tabs/tab-layout-item.d.ts +0 -10
  237. package/dist/tabs/tab-layout-item.d.ts.map +0 -1
  238. package/dist/tabs/tab-layout-item.js +0 -20
  239. package/dist/tabs/tab-layout-item.js.map +0 -1
  240. package/dist/tabs/tab-layout.d.ts +0 -10
  241. package/dist/tabs/tab-layout.d.ts.map +0 -1
  242. package/dist/tabs/tab-layout.js +0 -25
  243. package/dist/tabs/tab-layout.js.map +0 -1
  244. package/dist/tabs/tab-list-item.d.ts +0 -18
  245. package/dist/tabs/tab-list-item.d.ts.map +0 -1
  246. package/dist/tabs/tab-list-item.js +0 -63
  247. package/dist/tabs/tab-list-item.js.map +0 -1
  248. package/dist/tabs/tab-list.d.ts +0 -21
  249. package/dist/tabs/tab-list.d.ts.map +0 -1
  250. package/dist/tabs/tab-list.js +0 -148
  251. package/dist/tabs/tab-list.js.map +0 -1
  252. package/dist/tabs/tab-panel.d.ts +0 -11
  253. package/dist/tabs/tab-panel.d.ts.map +0 -1
  254. package/dist/tabs/tab-panel.js +0 -30
  255. package/dist/tabs/tab-panel.js.map +0 -1
  256. package/dist/tabs/tab-panels.d.ts +0 -30
  257. package/dist/tabs/tab-panels.d.ts.map +0 -1
  258. package/dist/tabs/tab-panels.js +0 -80
  259. package/dist/tabs/tab-panels.js.map +0 -1
  260. package/dist/util/circle-arc.d.ts +0 -34
  261. package/dist/util/circle-arc.d.ts.map +0 -1
  262. package/dist/util/circle-arc.js +0 -77
  263. package/dist/util/circle-arc.js.map +0 -1
  264. package/dist/util/compare.d.ts +0 -53
  265. package/dist/util/compare.d.ts.map +0 -1
  266. package/dist/util/compare.js +0 -91
  267. package/dist/util/compare.js.map +0 -1
  268. package/dist/util/content-editable.d.ts +0 -2
  269. package/dist/util/content-editable.d.ts.map +0 -1
  270. package/dist/util/content-editable.js +0 -13
  271. package/dist/util/content-editable.js.map +0 -1
  272. package/dist/util/drag-controller.d.ts +0 -13
  273. package/dist/util/drag-controller.d.ts.map +0 -1
  274. package/dist/util/drag-controller.js +0 -21
  275. package/dist/util/drag-controller.js.map +0 -1
  276. package/dist/util/key-value.d.ts +0 -5
  277. package/dist/util/key-value.d.ts.map +0 -1
  278. package/dist/util/key-value.js +0 -30
  279. package/dist/util/key-value.js.map +0 -1
  280. package/dist/util/primitive-types.d.ts +0 -6
  281. package/dist/util/primitive-types.d.ts.map +0 -1
  282. package/dist/util/primitive-types.js +0 -2
  283. package/dist/util/primitive-types.js.map +0 -1
  284. package/dist/util/svg-editable-text.d.ts +0 -22
  285. package/dist/util/svg-editable-text.d.ts.map +0 -1
  286. package/dist/util/svg-editable-text.js +0 -121
  287. package/dist/util/svg-editable-text.js.map +0 -1
  288. package/dist/util/time.d.ts +0 -2
  289. package/dist/util/time.d.ts.map +0 -1
  290. package/dist/util/time.js +0 -2
  291. package/dist/util/time.js.map +0 -1
package/dist/tabs.js ADDED
@@ -0,0 +1,203 @@
1
+ import { t as __decorate } from "./decorate-BZbkqIhA.js";
2
+ import { LitElement, css, html } from "lit";
3
+ import { customElement, 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([customElement(`ixfx-tab-list`)], TabListElement);
200
+ //#endregion
201
+ export { TabListElement };
202
+
203
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","names":["#items","#syncIndicatorColors","#isVertical","#selectPrevious","#selectNext","#containerClass","#onKeyUp","#onSlotClick","#onSlotChange","#isSelected"],"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 { customElement, property } from \"lit/decorators.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,CAAA;ED+EoBA;;;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;;;;;;;;AAevB;;;;;AAKA;;;;;;;;;EAmCE,aAAA;EAnCkC;;;EAwClC,gBAAA,GAAmB,SAAA;AAAA;;;;;;;;;AAyDrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}