aeico-components 0.1.7 → 0.1.8

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 (349) hide show
  1. package/dist/alert.cjs +637 -4
  2. package/dist/alert.cjs.map +7 -1
  3. package/dist/alert.js +575 -3
  4. package/dist/alert.js.map +7 -1
  5. package/dist/badge.cjs +573 -4
  6. package/dist/badge.cjs.map +7 -1
  7. package/dist/badge.js +510 -3
  8. package/dist/badge.js.map +7 -1
  9. package/dist/breadcrumb.cjs +709 -5
  10. package/dist/breadcrumb.cjs.map +7 -1
  11. package/dist/breadcrumb.js +644 -4
  12. package/dist/breadcrumb.js.map +7 -1
  13. package/dist/button-group.cjs +546 -4
  14. package/dist/button-group.cjs.map +7 -1
  15. package/dist/button-group.js +489 -3
  16. package/dist/button-group.js.map +7 -1
  17. package/dist/button.cjs +834 -4
  18. package/dist/button.cjs.map +7 -1
  19. package/dist/button.js +771 -3
  20. package/dist/button.js.map +7 -1
  21. package/dist/card.cjs +574 -4
  22. package/dist/card.cjs.map +7 -1
  23. package/dist/card.js +516 -3
  24. package/dist/card.js.map +7 -1
  25. package/dist/checkbox.cjs +867 -4
  26. package/dist/checkbox.cjs.map +7 -1
  27. package/dist/checkbox.js +794 -3
  28. package/dist/checkbox.js.map +7 -1
  29. package/dist/copy-button.cjs +1046 -4
  30. package/dist/copy-button.cjs.map +7 -1
  31. package/dist/copy-button.js +969 -3
  32. package/dist/copy-button.js.map +7 -1
  33. package/dist/detail-group.cjs +531 -4
  34. package/dist/detail-group.cjs.map +7 -1
  35. package/dist/detail-group.js +474 -3
  36. package/dist/detail-group.js.map +7 -1
  37. package/dist/detail.cjs +627 -4
  38. package/dist/detail.cjs.map +7 -1
  39. package/dist/detail.js +569 -3
  40. package/dist/detail.js.map +7 -1
  41. package/dist/dialog.cjs +738 -4
  42. package/dist/dialog.cjs.map +7 -1
  43. package/dist/dialog.js +665 -3
  44. package/dist/dialog.js.map +7 -1
  45. package/dist/divider.cjs +558 -4
  46. package/dist/divider.cjs.map +7 -1
  47. package/dist/divider.js +502 -3
  48. package/dist/divider.js.map +7 -1
  49. package/dist/drawer.cjs +818 -4
  50. package/dist/drawer.cjs.map +7 -1
  51. package/dist/drawer.js +749 -3
  52. package/dist/drawer.js.map +7 -1
  53. package/dist/dropdown.cjs +1396 -5
  54. package/dist/dropdown.cjs.map +7 -1
  55. package/dist/dropdown.js +1316 -4
  56. package/dist/dropdown.js.map +7 -1
  57. package/dist/icon-button.cjs +999 -4
  58. package/dist/icon-button.cjs.map +7 -1
  59. package/dist/icon-button.js +930 -3
  60. package/dist/icon-button.js.map +7 -1
  61. package/dist/icon.cjs +613 -4
  62. package/dist/icon.cjs.map +7 -1
  63. package/dist/icon.js +547 -3
  64. package/dist/icon.js.map +7 -1
  65. package/dist/index.cjs +6532 -74
  66. package/dist/index.cjs.map +7 -1
  67. package/dist/index.js +6183 -73
  68. package/dist/index.js.map +7 -1
  69. package/dist/menu.cjs +841 -4
  70. package/dist/menu.cjs.map +7 -1
  71. package/dist/menu.js +785 -3
  72. package/dist/menu.js.map +7 -1
  73. package/dist/navbar.cjs +622 -4
  74. package/dist/navbar.cjs.map +7 -1
  75. package/dist/navbar.js +564 -3
  76. package/dist/navbar.js.map +7 -1
  77. package/dist/number-input.cjs +885 -4
  78. package/dist/number-input.cjs.map +7 -1
  79. package/dist/number-input.js +817 -3
  80. package/dist/number-input.js.map +7 -1
  81. package/dist/pagination.cjs +1099 -4
  82. package/dist/pagination.cjs.map +7 -1
  83. package/dist/pagination.js +1029 -3
  84. package/dist/pagination.js.map +7 -1
  85. package/dist/progress-bar.cjs +581 -4
  86. package/dist/progress-bar.cjs.map +7 -1
  87. package/dist/progress-bar.js +525 -3
  88. package/dist/progress-bar.js.map +7 -1
  89. package/dist/radio-group.cjs +973 -5
  90. package/dist/radio-group.cjs.map +7 -1
  91. package/dist/radio-group.js +899 -4
  92. package/dist/radio-group.js.map +7 -1
  93. package/dist/select.cjs +1242 -45
  94. package/dist/select.cjs.map +7 -1
  95. package/dist/select.js +1159 -44
  96. package/dist/select.js.map +7 -1
  97. package/dist/slider.cjs +1420 -4
  98. package/dist/slider.cjs.map +7 -1
  99. package/dist/slider.js +1351 -3
  100. package/dist/slider.js.map +7 -1
  101. package/dist/spinner.cjs +587 -4
  102. package/dist/spinner.cjs.map +7 -1
  103. package/dist/spinner.js +528 -3
  104. package/dist/spinner.js.map +7 -1
  105. package/dist/styles/layout.cjs +1 -0
  106. package/dist/styles/layout.js +1 -0
  107. package/dist/styles/radius.cjs +1 -0
  108. package/dist/styles/radius.js +1 -0
  109. package/dist/styles/variables.cjs +1 -0
  110. package/dist/styles/variables.js +1 -0
  111. package/dist/switch.cjs +1092 -4
  112. package/dist/switch.cjs.map +7 -1
  113. package/dist/switch.js +1013 -3
  114. package/dist/switch.js.map +7 -1
  115. package/dist/tabs.cjs +660 -6
  116. package/dist/tabs.cjs.map +7 -1
  117. package/dist/tabs.js +591 -5
  118. package/dist/tabs.js.map +7 -1
  119. package/dist/tag.cjs +591 -3
  120. package/dist/tag.cjs.map +7 -1
  121. package/dist/tag.js +532 -2
  122. package/dist/tag.js.map +7 -1
  123. package/dist/text-input.cjs +829 -4
  124. package/dist/text-input.cjs.map +7 -1
  125. package/dist/text-input.js +761 -3
  126. package/dist/text-input.js.map +7 -1
  127. package/dist/textarea.cjs +914 -3
  128. package/dist/textarea.cjs.map +7 -1
  129. package/dist/textarea.js +854 -2
  130. package/dist/textarea.js.map +7 -1
  131. package/dist/tooltip.cjs +764 -4
  132. package/dist/tooltip.cjs.map +7 -1
  133. package/dist/tooltip.js +711 -3
  134. package/dist/tooltip.js.map +7 -1
  135. package/dist/tree.cjs +1059 -4
  136. package/dist/tree.cjs.map +7 -1
  137. package/dist/tree.js +985 -3
  138. package/dist/tree.js.map +7 -1
  139. package/dist/types/dialog/dialog.d.ts +1 -0
  140. package/dist/types/drawer/drawer.d.ts +2 -0
  141. package/dist/types/icon/defines.d.ts +2 -0
  142. package/dist/types/menu/defines.d.ts +1 -0
  143. package/dist/types/menu/menu-item.d.ts +1 -0
  144. package/dist/types/menu/menu.d.ts +1 -0
  145. package/dist/types/styles/layout.d.ts +2 -0
  146. package/dist/types/styles/radius.d.ts +2 -0
  147. package/dist/types/styles/variables.d.ts +2 -0
  148. package/package.json +31 -7
  149. package/src/alert/alert.ts +3 -3
  150. package/src/badge/badge.ts +4 -4
  151. package/src/breadcrumb/breadcrumb-item.ts +2 -2
  152. package/src/breadcrumb/breadcrumb.ts +3 -3
  153. package/src/button/button.ts +4 -4
  154. package/src/button-group/button-group.ts +8 -9
  155. package/src/card/card.ts +3 -3
  156. package/src/checkbox/checkbox.ts +6 -6
  157. package/src/copy-button/copy-button.ts +4 -4
  158. package/src/detail/detail.ts +3 -3
  159. package/src/detail-group/detail-group.ts +2 -2
  160. package/src/dialog/dialog.ts +15 -14
  161. package/src/divider/divider.ts +3 -3
  162. package/src/drawer/drawer.ts +28 -11
  163. package/src/dropdown/dropdown-item.ts +2 -2
  164. package/src/dropdown/dropdown.ts +2 -2
  165. package/src/icon/defines.ts +2 -0
  166. package/src/icon/icon.ts +4 -4
  167. package/src/menu/defines.ts +1 -0
  168. package/src/menu/menu-item.ts +14 -4
  169. package/src/menu/menu.ts +5 -2
  170. package/src/navbar/navbar.ts +3 -3
  171. package/src/number-input/number-input.ts +5 -5
  172. package/src/pagination/pagination.ts +3 -3
  173. package/src/progress-bar/progress-bar.ts +3 -3
  174. package/src/radio-group/radio-group.ts +12 -8
  175. package/src/select/select-option.ts +2 -2
  176. package/src/select/select.ts +5 -5
  177. package/src/slider/slider.ts +6 -6
  178. package/src/spinner/spinner.ts +4 -4
  179. package/src/styles/components/button-group.css +2 -0
  180. package/src/styles/components/card.css +42 -18
  181. package/src/styles/components/checkbox.css +16 -5
  182. package/src/styles/components/dialog.css +1 -1
  183. package/src/styles/components/drawer.css +50 -9
  184. package/src/styles/components/field-label.css +1 -1
  185. package/src/styles/components/menu-item.css +6 -0
  186. package/src/styles/components/navbar.css +7 -28
  187. package/src/styles/components/radio-group.css +19 -0
  188. package/src/styles/components/slider.css +30 -5
  189. package/src/styles/components/switch.css +16 -2
  190. package/src/styles/layout.css +5 -2
  191. package/src/styles/radius.css +15 -0
  192. package/src/switch/switch.ts +6 -6
  193. package/src/tabs/tab-panel.ts +1 -1
  194. package/src/tabs/tab.ts +1 -1
  195. package/src/tabs/tabs.ts +2 -2
  196. package/src/tag/tag.ts +4 -4
  197. package/src/text-input/text-input.ts +5 -5
  198. package/src/textarea/textarea.ts +5 -5
  199. package/src/tooltip/tooltip.ts +2 -2
  200. package/src/tree/tree-item.ts +2 -2
  201. package/src/tree/tree.ts +2 -2
  202. package/dist/chunks/action-button.cjs +0 -296
  203. package/dist/chunks/action-button.cjs.map +0 -1
  204. package/dist/chunks/action-button.js +0 -297
  205. package/dist/chunks/action-button.js.map +0 -1
  206. package/dist/chunks/aeico-component.cjs +0 -17
  207. package/dist/chunks/aeico-component.cjs.map +0 -1
  208. package/dist/chunks/aeico-component.js +0 -18
  209. package/dist/chunks/aeico-component.js.map +0 -1
  210. package/dist/chunks/alert.cjs +0 -164
  211. package/dist/chunks/alert.cjs.map +0 -1
  212. package/dist/chunks/alert.js +0 -165
  213. package/dist/chunks/alert.js.map +0 -1
  214. package/dist/chunks/badge.cjs +0 -85
  215. package/dist/chunks/badge.cjs.map +0 -1
  216. package/dist/chunks/badge.js +0 -86
  217. package/dist/chunks/badge.js.map +0 -1
  218. package/dist/chunks/breadcrumb-item.cjs +0 -261
  219. package/dist/chunks/breadcrumb-item.cjs.map +0 -1
  220. package/dist/chunks/breadcrumb-item.js +0 -262
  221. package/dist/chunks/breadcrumb-item.js.map +0 -1
  222. package/dist/chunks/button-group.cjs +0 -79
  223. package/dist/chunks/button-group.cjs.map +0 -1
  224. package/dist/chunks/button-group.js +0 -80
  225. package/dist/chunks/button-group.js.map +0 -1
  226. package/dist/chunks/button.cjs +0 -337
  227. package/dist/chunks/button.cjs.map +0 -1
  228. package/dist/chunks/button.js +0 -338
  229. package/dist/chunks/button.js.map +0 -1
  230. package/dist/chunks/card.cjs +0 -93
  231. package/dist/chunks/card.cjs.map +0 -1
  232. package/dist/chunks/card.js +0 -94
  233. package/dist/chunks/card.js.map +0 -1
  234. package/dist/chunks/checkbox.cjs +0 -86
  235. package/dist/chunks/checkbox.cjs.map +0 -1
  236. package/dist/chunks/checkbox.js +0 -87
  237. package/dist/chunks/checkbox.js.map +0 -1
  238. package/dist/chunks/color.cjs +0 -4
  239. package/dist/chunks/color.cjs.map +0 -1
  240. package/dist/chunks/color.js +0 -5
  241. package/dist/chunks/color.js.map +0 -1
  242. package/dist/chunks/copy-button.cjs +0 -171
  243. package/dist/chunks/copy-button.cjs.map +0 -1
  244. package/dist/chunks/copy-button.js +0 -172
  245. package/dist/chunks/copy-button.js.map +0 -1
  246. package/dist/chunks/detail-group.cjs +0 -65
  247. package/dist/chunks/detail-group.cjs.map +0 -1
  248. package/dist/chunks/detail-group.js +0 -66
  249. package/dist/chunks/detail-group.js.map +0 -1
  250. package/dist/chunks/detail.cjs +0 -146
  251. package/dist/chunks/detail.cjs.map +0 -1
  252. package/dist/chunks/detail.js +0 -147
  253. package/dist/chunks/detail.js.map +0 -1
  254. package/dist/chunks/dialog.cjs +0 -117
  255. package/dist/chunks/dialog.cjs.map +0 -1
  256. package/dist/chunks/dialog.js +0 -118
  257. package/dist/chunks/dialog.js.map +0 -1
  258. package/dist/chunks/divider.cjs +0 -80
  259. package/dist/chunks/divider.cjs.map +0 -1
  260. package/dist/chunks/divider.js +0 -81
  261. package/dist/chunks/divider.js.map +0 -1
  262. package/dist/chunks/drawer.cjs +0 -180
  263. package/dist/chunks/drawer.cjs.map +0 -1
  264. package/dist/chunks/drawer.js +0 -181
  265. package/dist/chunks/drawer.js.map +0 -1
  266. package/dist/chunks/dropdown-button.cjs +0 -533
  267. package/dist/chunks/dropdown-button.cjs.map +0 -1
  268. package/dist/chunks/dropdown-button.js +0 -534
  269. package/dist/chunks/dropdown-button.js.map +0 -1
  270. package/dist/chunks/icon-button.cjs +0 -35
  271. package/dist/chunks/icon-button.cjs.map +0 -1
  272. package/dist/chunks/icon-button.js +0 -36
  273. package/dist/chunks/icon-button.js.map +0 -1
  274. package/dist/chunks/icon.cjs +0 -124
  275. package/dist/chunks/icon.cjs.map +0 -1
  276. package/dist/chunks/icon.js +0 -125
  277. package/dist/chunks/icon.js.map +0 -1
  278. package/dist/chunks/menu.cjs +0 -396
  279. package/dist/chunks/menu.cjs.map +0 -1
  280. package/dist/chunks/menu.js +0 -397
  281. package/dist/chunks/menu.js.map +0 -1
  282. package/dist/chunks/navbar.cjs +0 -142
  283. package/dist/chunks/navbar.cjs.map +0 -1
  284. package/dist/chunks/navbar.js +0 -143
  285. package/dist/chunks/navbar.js.map +0 -1
  286. package/dist/chunks/number-input.cjs +0 -110
  287. package/dist/chunks/number-input.cjs.map +0 -1
  288. package/dist/chunks/number-input.js +0 -111
  289. package/dist/chunks/number-input.js.map +0 -1
  290. package/dist/chunks/pagination.cjs +0 -475
  291. package/dist/chunks/pagination.cjs.map +0 -1
  292. package/dist/chunks/pagination.js +0 -476
  293. package/dist/chunks/pagination.js.map +0 -1
  294. package/dist/chunks/progress-bar.cjs +0 -101
  295. package/dist/chunks/progress-bar.cjs.map +0 -1
  296. package/dist/chunks/progress-bar.js +0 -102
  297. package/dist/chunks/progress-bar.js.map +0 -1
  298. package/dist/chunks/radio.cjs +0 -185
  299. package/dist/chunks/radio.cjs.map +0 -1
  300. package/dist/chunks/radio.js +0 -186
  301. package/dist/chunks/radio.js.map +0 -1
  302. package/dist/chunks/select.cjs +0 -381
  303. package/dist/chunks/select.cjs.map +0 -1
  304. package/dist/chunks/select.js +0 -382
  305. package/dist/chunks/select.js.map +0 -1
  306. package/dist/chunks/size.cjs +0 -4
  307. package/dist/chunks/size.cjs.map +0 -1
  308. package/dist/chunks/size.js +0 -5
  309. package/dist/chunks/size.js.map +0 -1
  310. package/dist/chunks/slider.cjs +0 -608
  311. package/dist/chunks/slider.cjs.map +0 -1
  312. package/dist/chunks/slider.js +0 -609
  313. package/dist/chunks/slider.js.map +0 -1
  314. package/dist/chunks/spinner.cjs +0 -102
  315. package/dist/chunks/spinner.cjs.map +0 -1
  316. package/dist/chunks/spinner.js +0 -103
  317. package/dist/chunks/spinner.js.map +0 -1
  318. package/dist/chunks/switch.cjs +0 -167
  319. package/dist/chunks/switch.cjs.map +0 -1
  320. package/dist/chunks/switch.js +0 -168
  321. package/dist/chunks/switch.js.map +0 -1
  322. package/dist/chunks/tab-panel.cjs +0 -174
  323. package/dist/chunks/tab-panel.cjs.map +0 -1
  324. package/dist/chunks/tab-panel.js +0 -175
  325. package/dist/chunks/tab-panel.js.map +0 -1
  326. package/dist/chunks/tag.cjs +0 -108
  327. package/dist/chunks/tag.cjs.map +0 -1
  328. package/dist/chunks/tag.js +0 -109
  329. package/dist/chunks/tag.js.map +0 -1
  330. package/dist/chunks/text-input.cjs +0 -54
  331. package/dist/chunks/text-input.cjs.map +0 -1
  332. package/dist/chunks/text-input.js +0 -55
  333. package/dist/chunks/text-input.js.map +0 -1
  334. package/dist/chunks/textarea.cjs +0 -137
  335. package/dist/chunks/textarea.cjs.map +0 -1
  336. package/dist/chunks/textarea.js +0 -138
  337. package/dist/chunks/textarea.js.map +0 -1
  338. package/dist/chunks/tooltip.cjs +0 -292
  339. package/dist/chunks/tooltip.cjs.map +0 -1
  340. package/dist/chunks/tooltip.js +0 -293
  341. package/dist/chunks/tooltip.js.map +0 -1
  342. package/dist/chunks/tree.cjs +0 -468
  343. package/dist/chunks/tree.cjs.map +0 -1
  344. package/dist/chunks/tree.js +0 -469
  345. package/dist/chunks/tree.js.map +0 -1
  346. package/dist/chunks/variables.cjs +0 -396
  347. package/dist/chunks/variables.cjs.map +0 -1
  348. package/dist/chunks/variables.js +0 -397
  349. package/dist/chunks/variables.js.map +0 -1
@@ -1,468 +0,0 @@
1
- "use strict";
2
- const aeicoComponent = require("./aeico-component.cjs");
3
- const aeico = require("aeico");
4
- const variables = require("./variables.cjs");
5
- const style$1 = ":host {\n display: block;\n}\n\n.tree {\n display: block;\n padding: 0.25rem;\n box-sizing: border-box;\n user-select: none;\n}\n";
6
- const style = ":host {\n display: block;\n --ae-tree-indent: 1.25rem;\n --tree-item-height: 2rem;\n --tree-item-font-size: 0.9375rem;\n --tree-item-color: var(--ae-color-text-main, #343a40);\n --tree-item-color-disabled: var(--ae-color-text-disabled, #bbb);\n --tree-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.04));\n --tree-item-bg-selected: var(--ae-color-primary-bg-subtle, rgba(14, 99, 156, 0.08));\n --tree-item-color-selected: var(--ae-color-primary, #0e639c);\n --tree-item-line-color: var(--ae-border-default, rgba(0, 0, 0, 0.15));\n --tree-item-expand-size: 1rem;\n}\n\n.tree-item-content {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n height: var(--tree-item-height);\n padding-left: calc(var(--ae-tree-indent) * var(--depth, 0) + 0.25rem);\n padding-right: 0.5rem;\n font-size: var(--tree-item-font-size);\n color: var(--tree-item-color);\n cursor: pointer;\n user-select: none;\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\n transition: background 0.1s, color 0.1s;\n box-sizing: border-box;\n}\n\n.tree-item-content:hover {\n background: var(--tree-item-bg-hover);\n}\n\n.expand-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--tree-item-expand-size);\n height: var(--tree-item-expand-size);\n padding: 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\n transition: transform 0.18s;\n outline: none;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.expand-btn:focus-visible {\n outline: 2px solid var(--ae-color-primary, #0e639c);\n outline-offset: 1px;\n}\n\n.expand-btn svg,\n.expand-btn ae-icon {\n display: block;\n width: 0.625rem;\n height: 0.625rem;\n fill: currentColor;\n transition: transform 0.18s;\n}\n\n/* ae-icon uses font-size for its internal sizing */\n.expand-btn ae-icon,\n.expand-placeholder ae-icon {\n font-size: 0.625rem;\n}\n\n:host([expanded]) .expand-btn svg,\n:host([expanded]) .expand-btn ae-icon {\n transform: rotate(90deg);\n}\n\n/* Leaf placeholder keeps alignment consistent */\n.expand-placeholder {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--tree-item-expand-size);\n height: var(--tree-item-expand-size);\n}\n\n.tree-item-checkbox {\n flex-shrink: 0;\n width: 0.875rem;\n height: 0.875rem;\n margin: 0;\n cursor: pointer;\n accent-color: var(--ae-color-primary, #0e639c);\n}\n\n.tree-item-label {\n display: inline-flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0 0.25rem;\n border: none;\n background: transparent;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n outline: none;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.tree-item-label:focus-visible {\n outline: 2px solid var(--ae-color-primary, #0e639c);\n outline-offset: -2px;\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\n}\n\n:host([selected]) .tree-item-content {\n background: var(--tree-item-bg-selected);\n color: var(--tree-item-color-selected);\n}\n\n:host([disabled]) .tree-item-content {\n color: var(--tree-item-color-disabled);\n cursor: not-allowed;\n}\n\n:host([disabled]) .tree-item-content * {\n pointer-events: none;\n}\n\n.tree-item-children {\n display: none;\n}\n\n:host([expanded]) .tree-item-children {\n display: block;\n}\n\n:host([showline]) .tree-item-children {\n margin-left: calc(var(--ae-tree-indent) * var(--depth, 0) + 0.25rem + calc(var(--tree-item-expand-size) / 2));\n padding-left: calc(var(--ae-tree-indent) - calc(var(--tree-item-expand-size) / 2));\n border-left: 1px dashed var(--tree-item-line-color);\n}\n";
7
- var __create$1 = Object.create;
8
- var __defProp$1 = Object.defineProperty;
9
- var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
10
- var __knownSymbol$1 = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
11
- var __typeError$1 = (msg) => {
12
- throw TypeError(msg);
13
- };
14
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
- var __decoratorStart$1 = (base) => [, , , __create$1((base == null ? void 0 : base[__knownSymbol$1("metadata")]) ?? null)];
16
- var __decoratorStrings$1 = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
17
- var __expectFn$1 = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError$1("Function expected") : fn;
18
- var __decoratorContext$1 = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings$1[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError$1("Already initialized") : fns.push(__expectFn$1(fn || null)) });
19
- var __decoratorMetadata$1 = (array, target) => __defNormalProp$1(target, __knownSymbol$1("metadata"), array[3]);
20
- var __runInitializers$1 = (array, flags, self, value) => {
21
- for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
22
- return value;
23
- };
24
- var __decorateElement$1 = (array, flags, name, decorators, target, extra) => {
25
- var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
26
- var j = array.length + 1, key = __decoratorStrings$1[k + 5];
27
- var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
28
- var desc = (target = target.prototype, __getOwnPropDesc$1({ get [name]() {
29
- return __privateGet$1(this, extra);
30
- }, set [name](x) {
31
- return __privateSet$1(this, extra, x);
32
- } }, name));
33
- for (var i = decorators.length - 1; i >= 0; i--) {
34
- ctx = __decoratorContext$1(k, name, done = {}, array[3], extraInitializers);
35
- {
36
- ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
37
- access.get = (x) => x[name];
38
- access.set = (x, y) => x[name] = y;
39
- }
40
- it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
41
- if (it === void 0) __expectFn$1(it) && (desc[key] = it);
42
- else if (typeof it !== "object" || it === null) __typeError$1("Object expected");
43
- else __expectFn$1(fn = it.get) && (desc.get = fn), __expectFn$1(fn = it.set) && (desc.set = fn), __expectFn$1(fn = it.init) && initializers.unshift(fn);
44
- }
45
- return desc && __defProp$1(target, name, desc), target;
46
- };
47
- var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
48
- var __accessCheck$1 = (obj, member, msg) => member.has(obj) || __typeError$1("Cannot " + msg);
49
- var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "read from private field"), member.get(obj));
50
- var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
51
- var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), member.set(obj, value), value);
52
- var _indeterminate_dec, _checked_dec, _selected_dec, _expanded_dec, _disabled_dec, _icon_dec$1, _key_dec, _a$1, _init$1, _key, _icon$1, _disabled, _expanded, _selected, _checked, _indeterminate;
53
- let _autoKeyCounter = 0;
54
- class TreeItem extends (_a$1 = aeicoComponent.AeicoComponent, _key_dec = [aeico.prop({ type: String })], _icon_dec$1 = [aeico.prop({ type: String })], _disabled_dec = [aeico.prop({ type: Boolean })], _expanded_dec = [aeico.prop({ type: Boolean })], _selected_dec = [aeico.prop({ type: Boolean })], _checked_dec = [aeico.prop({ type: Boolean })], _indeterminate_dec = [aeico.prop({ type: Boolean })], _a$1) {
55
- constructor() {
56
- super(...arguments);
57
- __privateAdd$1(this, _key, __runInitializers$1(_init$1, 8, this)), __runInitializers$1(_init$1, 11, this);
58
- __privateAdd$1(this, _icon$1, __runInitializers$1(_init$1, 12, this)), __runInitializers$1(_init$1, 15, this);
59
- __publicField$1(this, "_autoKey", `ae-tree-item-${_autoKeyCounter++}`);
60
- __privateAdd$1(this, _disabled, __runInitializers$1(_init$1, 16, this, false)), __runInitializers$1(_init$1, 19, this);
61
- __privateAdd$1(this, _expanded, __runInitializers$1(_init$1, 20, this, false)), __runInitializers$1(_init$1, 23, this);
62
- __privateAdd$1(this, _selected, __runInitializers$1(_init$1, 24, this, false)), __runInitializers$1(_init$1, 27, this);
63
- __privateAdd$1(this, _checked, __runInitializers$1(_init$1, 28, this, false)), __runInitializers$1(_init$1, 31, this);
64
- __privateAdd$1(this, _indeterminate, __runInitializers$1(_init$1, 32, this, false)), __runInitializers$1(_init$1, 35, this);
65
- __publicField$1(this, "_checkboxEl", null);
66
- __publicField$1(this, "_handleExpandClick", (e) => {
67
- e.stopPropagation();
68
- if (this.disabled) return;
69
- this.dispatchEvent(
70
- new CustomEvent("_tree-item-toggle-expand", {
71
- bubbles: true,
72
- composed: true,
73
- detail: { key: this._effectiveKey }
74
- })
75
- );
76
- });
77
- __publicField$1(this, "_handleLabelClick", () => {
78
- if (this.disabled) return;
79
- this.dispatchEvent(
80
- new CustomEvent("_tree-item-select", {
81
- bubbles: true,
82
- composed: true,
83
- detail: { key: this._effectiveKey }
84
- })
85
- );
86
- });
87
- __publicField$1(this, "_handleCheckChange", (e) => {
88
- if (this.disabled) return;
89
- const input = e.target;
90
- this.dispatchEvent(
91
- new CustomEvent("_tree-item-check", {
92
- bubbles: true,
93
- composed: true,
94
- detail: { key: this._effectiveKey, checked: input.checked }
95
- })
96
- );
97
- });
98
- __publicField$1(this, "_handleKeydown", (e) => {
99
- if (e.key === "Enter" || e.key === " ") {
100
- e.preventDefault();
101
- if (e.target.classList.contains("tree-item-label")) {
102
- this._handleLabelClick();
103
- }
104
- }
105
- if (e.key === "ArrowRight" && this._hasChildren && !this.expanded) {
106
- this._handleExpandClick(e);
107
- }
108
- if (e.key === "ArrowLeft" && this.expanded) {
109
- this._handleExpandClick(e);
110
- }
111
- });
112
- }
113
- get _effectiveKey() {
114
- return this.key ?? this._autoKey;
115
- }
116
- connectedCallback() {
117
- var _a2, _b;
118
- super.connectedCallback();
119
- if (((_a2 = this.parentElement) == null ? void 0 : _a2.tagName.toLowerCase()) === "ae-tree-item" && !this.hasAttribute("slot")) {
120
- this.setAttribute("slot", "sub");
121
- }
122
- let depth = 0;
123
- let el = this.parentElement;
124
- while (el) {
125
- const tag = el.tagName.toLowerCase();
126
- if (tag === "ae-tree-item") {
127
- depth++;
128
- } else if (tag === "ae-tree") {
129
- break;
130
- }
131
- el = el.parentElement;
132
- }
133
- this.style.setProperty("--depth", String(depth));
134
- if ((_b = this._parentTree) == null ? void 0 : _b.showLine) {
135
- this.setAttribute("showline", "");
136
- }
137
- }
138
- onMounted() {
139
- var _a2;
140
- if (((_a2 = this._parentTree) == null ? void 0 : _a2.defaultExpandAll) && this._hasChildren) {
141
- this.expanded = true;
142
- }
143
- }
144
- get _parentTree() {
145
- return this.closest("ae-tree");
146
- }
147
- get _isCheckable() {
148
- var _a2;
149
- return ((_a2 = this._parentTree) == null ? void 0 : _a2.checkable) ?? false;
150
- }
151
- get _hasChildren() {
152
- return !!this.querySelector(':scope > ae-tree-item[slot="sub"]');
153
- }
154
- onUpdated() {
155
- if (this._checkboxEl) {
156
- this._checkboxEl.checked = this.checked;
157
- this._checkboxEl.indeterminate = this.indeterminate;
158
- }
159
- }
160
- render() {
161
- var _a2;
162
- const hasChildren = this._hasChildren;
163
- const isCheckable = this._isCheckable;
164
- const expandIcon = this.icon ?? ((_a2 = this._parentTree) == null ? void 0 : _a2.icon);
165
- return aeico.html(({ div, button, span, input, slot, svg, path, aeIcon }) => {
166
- div(
167
- {
168
- className: "tree-item-content",
169
- role: "treeitem",
170
- "aria-expanded": hasChildren ? String(this.expanded) : void 0,
171
- "aria-selected": String(this.selected),
172
- "aria-disabled": this.disabled ? "true" : void 0
173
- },
174
- () => {
175
- if (hasChildren) {
176
- button(
177
- {
178
- type: "button",
179
- className: "expand-btn",
180
- tabIndex: -1,
181
- "aria-hidden": "true",
182
- "@click": this._handleExpandClick
183
- },
184
- () => {
185
- if (expandIcon) {
186
- aeIcon({ className: "expand-icon", name: expandIcon });
187
- } else {
188
- svg(
189
- {
190
- className: "expand-icon",
191
- viewBox: "0 0 10 10",
192
- "aria-hidden": "true",
193
- xmlns: aeicoComponent.SVG_NS
194
- },
195
- () => {
196
- path({ d: "M2 1l6 4-6 4V1z" });
197
- }
198
- );
199
- }
200
- }
201
- );
202
- } else {
203
- span({ className: "expand-placeholder", "aria-hidden": "true" });
204
- }
205
- if (isCheckable) {
206
- this._checkboxEl = input({
207
- type: "checkbox",
208
- className: "tree-item-checkbox",
209
- checked: this.checked,
210
- disabled: this.disabled,
211
- tabIndex: -1,
212
- "@change": this._handleCheckChange
213
- });
214
- }
215
- button(
216
- {
217
- type: "button",
218
- className: "tree-item-label",
219
- disabled: this.disabled,
220
- "@click": this._handleLabelClick,
221
- "@keydown": this._handleKeydown
222
- },
223
- () => {
224
- slot();
225
- }
226
- );
227
- }
228
- );
229
- div({ className: "tree-item-children", role: "group" }, () => {
230
- slot({ name: "sub" });
231
- });
232
- });
233
- }
234
- }
235
- _init$1 = __decoratorStart$1(_a$1);
236
- _key = /* @__PURE__ */ new WeakMap();
237
- _icon$1 = /* @__PURE__ */ new WeakMap();
238
- _disabled = /* @__PURE__ */ new WeakMap();
239
- _expanded = /* @__PURE__ */ new WeakMap();
240
- _selected = /* @__PURE__ */ new WeakMap();
241
- _checked = /* @__PURE__ */ new WeakMap();
242
- _indeterminate = /* @__PURE__ */ new WeakMap();
243
- __decorateElement$1(_init$1, 4, "key", _key_dec, TreeItem, _key);
244
- __decorateElement$1(_init$1, 4, "icon", _icon_dec$1, TreeItem, _icon$1);
245
- __decorateElement$1(_init$1, 4, "disabled", _disabled_dec, TreeItem, _disabled);
246
- __decorateElement$1(_init$1, 4, "expanded", _expanded_dec, TreeItem, _expanded);
247
- __decorateElement$1(_init$1, 4, "selected", _selected_dec, TreeItem, _selected);
248
- __decorateElement$1(_init$1, 4, "checked", _checked_dec, TreeItem, _checked);
249
- __decorateElement$1(_init$1, 4, "indeterminate", _indeterminate_dec, TreeItem, _indeterminate);
250
- __decoratorMetadata$1(_init$1, TreeItem);
251
- __publicField$1(TreeItem, "tagName", "tree-item");
252
- __publicField$1(TreeItem, "styles", [variables.variables, style]);
253
- TreeItem.register();
254
- var __create = Object.create;
255
- var __defProp = Object.defineProperty;
256
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
257
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
258
- var __typeError = (msg) => {
259
- throw TypeError(msg);
260
- };
261
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
262
- var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
263
- var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
264
- var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
265
- var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
266
- var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
267
- var __runInitializers = (array, flags, self, value) => {
268
- for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
269
- return value;
270
- };
271
- var __decorateElement = (array, flags, name, decorators, target, extra) => {
272
- var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
273
- var j = array.length + 1, key = __decoratorStrings[k + 5];
274
- var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
275
- var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
276
- return __privateGet(this, extra);
277
- }, set [name](x) {
278
- return __privateSet(this, extra, x);
279
- } }, name));
280
- for (var i = decorators.length - 1; i >= 0; i--) {
281
- ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
282
- {
283
- ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
284
- access.get = (x) => x[name];
285
- access.set = (x, y) => x[name] = y;
286
- }
287
- it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
288
- if (it === void 0) __expectFn(it) && (desc[key] = it);
289
- else if (typeof it !== "object" || it === null) __typeError("Object expected");
290
- else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
291
- }
292
- return desc && __defProp(target, name, desc), target;
293
- };
294
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
295
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
296
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
297
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
298
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
299
- var _icon_dec, _selectedKey_dec, _defaultExpandAll_dec, _showLine_dec, _multiple_dec, _checkable_dec, _a, _init, _checkable, _multiple, _showLine, _defaultExpandAll, _selectedKey, _icon;
300
- class Tree extends (_a = aeicoComponent.AeicoComponent, _checkable_dec = [aeico.prop({ type: Boolean })], _multiple_dec = [aeico.prop({ type: Boolean })], _showLine_dec = [aeico.prop({ type: Boolean })], _defaultExpandAll_dec = [aeico.prop({ type: Boolean })], _selectedKey_dec = [aeico.prop({ type: String })], _icon_dec = [aeico.prop({ type: String })], _a) {
301
- constructor() {
302
- super(...arguments);
303
- __privateAdd(this, _checkable, __runInitializers(_init, 8, this, false)), __runInitializers(_init, 11, this);
304
- __privateAdd(this, _multiple, __runInitializers(_init, 12, this, false)), __runInitializers(_init, 15, this);
305
- __privateAdd(this, _showLine, __runInitializers(_init, 16, this, false)), __runInitializers(_init, 19, this);
306
- __privateAdd(this, _defaultExpandAll, __runInitializers(_init, 20, this, false)), __runInitializers(_init, 23, this);
307
- __privateAdd(this, _selectedKey, __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
308
- __privateAdd(this, _icon, __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
309
- __publicField(this, "selectedKeys", []);
310
- __publicField(this, "checkedKeys", []);
311
- __publicField(this, "expandedKeys", []);
312
- __publicField(this, "_handleItemToggleExpand", (e) => {
313
- const node = e.target;
314
- const newExpanded = !node.expanded;
315
- node.expanded = newExpanded;
316
- const key = node.key ?? "";
317
- if (newExpanded) {
318
- if (!this.expandedKeys.includes(key)) {
319
- this.expandedKeys = [...this.expandedKeys, key];
320
- }
321
- } else {
322
- this.expandedKeys = this.expandedKeys.filter((k) => k !== key);
323
- }
324
- this.emit("expand", {
325
- detail: {
326
- key,
327
- expanded: newExpanded,
328
- expandedKeys: [...this.expandedKeys]
329
- }
330
- });
331
- });
332
- __publicField(this, "_handleItemSelect", (e) => {
333
- const { key } = e.detail;
334
- if (this.multiple) {
335
- const alreadySelected = this.selectedKeys.includes(key);
336
- if (alreadySelected) {
337
- this.selectedKeys = this.selectedKeys.filter((k) => k !== key);
338
- } else {
339
- this.selectedKeys = [...this.selectedKeys, key];
340
- }
341
- this.selectedKey = this.selectedKeys[this.selectedKeys.length - 1];
342
- this._getAllItems().forEach((item) => {
343
- item.selected = this.selectedKeys.includes(item.key ?? "");
344
- });
345
- this.emit("select", {
346
- detail: {
347
- key,
348
- selected: !alreadySelected,
349
- selectedKeys: [...this.selectedKeys]
350
- }
351
- });
352
- } else {
353
- const alreadySelected = this.selectedKey === key;
354
- this._getAllItems().forEach((item) => {
355
- item.selected = !alreadySelected && item.key === key;
356
- });
357
- this.selectedKey = alreadySelected ? void 0 : key;
358
- this.selectedKeys = this.selectedKey ? [this.selectedKey] : [];
359
- this.emit("select", {
360
- detail: {
361
- key,
362
- selected: !alreadySelected,
363
- selectedKeys: [...this.selectedKeys]
364
- }
365
- });
366
- }
367
- });
368
- __publicField(this, "_handleItemCheck", (e) => {
369
- const { key, checked } = e.detail;
370
- const sourceNode = e.target;
371
- this._setCheckedRecursive(sourceNode, checked);
372
- this._syncAncestors(sourceNode);
373
- this.checkedKeys = this._computeCheckedKeys();
374
- this.emit("check", {
375
- detail: { key, checked, checkedKeys: [...this.checkedKeys] }
376
- });
377
- });
378
- }
379
- connectedCallback() {
380
- super.connectedCallback();
381
- this.listen("_tree-item-toggle-expand", this._handleItemToggleExpand);
382
- this.listen("_tree-item-select", this._handleItemSelect);
383
- this.listen("_tree-item-check", this._handleItemCheck);
384
- }
385
- _getAllItems() {
386
- return Array.from(this.querySelectorAll("ae-tree-item"));
387
- }
388
- _getDirectChildren(node) {
389
- return Array.from(node.querySelectorAll(":scope > ae-tree-item"));
390
- }
391
- _computeCheckedKeys() {
392
- const keys = [];
393
- for (const item of this._getAllItems()) {
394
- if (item.checked && !item.indeterminate) {
395
- keys.push(item.key ?? "");
396
- }
397
- }
398
- return keys.filter(Boolean);
399
- }
400
- _setCheckedRecursive(node, checked) {
401
- if (node.disabled) return;
402
- node.checked = checked;
403
- node.indeterminate = false;
404
- for (const child of this._getDirectChildren(node)) {
405
- this._setCheckedRecursive(child, checked);
406
- }
407
- }
408
- _syncAncestors(sourceNode) {
409
- let el = sourceNode.parentElement;
410
- while (el) {
411
- const tag = el.tagName.toLowerCase();
412
- if (tag === "ae-tree-item") {
413
- const parent = el;
414
- const children = this._getDirectChildren(parent).filter((c) => !c.disabled);
415
- if (children.length === 0) break;
416
- const checkedCount = children.filter((c) => c.checked && !c.indeterminate).length;
417
- const indeterminateCount = children.filter((c) => c.indeterminate).length;
418
- if (checkedCount === children.length) {
419
- parent.checked = true;
420
- parent.indeterminate = false;
421
- } else if (checkedCount > 0 || indeterminateCount > 0) {
422
- parent.checked = false;
423
- parent.indeterminate = true;
424
- } else {
425
- parent.checked = false;
426
- parent.indeterminate = false;
427
- }
428
- } else if (tag === "ae-tree") {
429
- break;
430
- }
431
- el = el.parentElement;
432
- }
433
- }
434
- render() {
435
- return aeico.html(({ div, slot }) => {
436
- div(
437
- {
438
- className: "tree",
439
- role: "tree",
440
- "aria-multiselectable": this.multiple ? "true" : "false"
441
- },
442
- () => {
443
- slot();
444
- }
445
- );
446
- });
447
- }
448
- }
449
- _init = __decoratorStart(_a);
450
- _checkable = /* @__PURE__ */ new WeakMap();
451
- _multiple = /* @__PURE__ */ new WeakMap();
452
- _showLine = /* @__PURE__ */ new WeakMap();
453
- _defaultExpandAll = /* @__PURE__ */ new WeakMap();
454
- _selectedKey = /* @__PURE__ */ new WeakMap();
455
- _icon = /* @__PURE__ */ new WeakMap();
456
- __decorateElement(_init, 4, "checkable", _checkable_dec, Tree, _checkable);
457
- __decorateElement(_init, 4, "multiple", _multiple_dec, Tree, _multiple);
458
- __decorateElement(_init, 4, "showLine", _showLine_dec, Tree, _showLine);
459
- __decorateElement(_init, 4, "defaultExpandAll", _defaultExpandAll_dec, Tree, _defaultExpandAll);
460
- __decorateElement(_init, 4, "selectedKey", _selectedKey_dec, Tree, _selectedKey);
461
- __decorateElement(_init, 4, "icon", _icon_dec, Tree, _icon);
462
- __decoratorMetadata(_init, Tree);
463
- __publicField(Tree, "tagName", "tree");
464
- __publicField(Tree, "styles", [variables.variables, style$1]);
465
- Tree.register();
466
- exports.Tree = Tree;
467
- exports.TreeItem = TreeItem;
468
- //# sourceMappingURL=tree.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.cjs","sources":["../../src/tree/tree-item.ts","../../src/tree/tree.ts"],"sourcesContent":["import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/tree-item.css?inline';\nimport variables from '../styles/variables.css?inline';\nimport type { ParentTreeLike } from './defines';\nimport { SVG_NS } from '../utils';\nimport '../icon';\n\nlet _autoKeyCounter = 0;\n\n/**\n * Tree item — used as a direct child of `<ae-tree>` or nested inside another\n * `<ae-tree-item>` to create a multi-level tree.\n *\n * - **Parent item**: nest `<ae-tree-item>` children inside; an expand toggle is shown.\n * - **Leaf item**: no `<ae-tree-item>` children; no expand toggle is shown.\n *\n * @prop {string} key - Unique identifier for this item.\n * @prop {string} icon - Icon name (uses `<ae-icon>`). Optional.\n * @prop {boolean} disabled - Disables interaction.\n * @prop {boolean} expanded - Whether children are visible.\n * @prop {boolean} selected - Whether this item is visually selected.\n * @prop {boolean} checked - Checkbox state (checkable mode).\n * @prop {boolean} indeterminate - Checkbox partial state (checkable mode, JS-only).\n *\n * @slot default - Child `<ae-tree-item>` elements.\n * @slot label - Custom label content (falls back to the `label` attribute text).\n */\nclass TreeItem extends AeicoComponent {\n static tagName = 'tree-item';\n\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor key: string | undefined;\n\n @prop({ type: String })\n accessor icon: string | undefined;\n\n /** Stable auto-generated key used when `key` prop is not set. */\n private readonly _autoKey = `ae-tree-item-${_autoKeyCounter++}`;\n\n private get _effectiveKey(): string {\n return this.key ?? this._autoKey;\n }\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor expanded: boolean = false;\n\n @prop({ type: Boolean })\n accessor selected: boolean = false;\n\n @prop({ type: Boolean })\n accessor checked: boolean = false;\n\n @prop({ type: Boolean })\n accessor indeterminate: boolean = false;\n\n private _checkboxEl: HTMLInputElement | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // Auto-assign slot so users don't need to write slot=\"sub\" manually\n if (\n this.parentElement?.tagName.toLowerCase() === 'ae-tree-item' &&\n !this.hasAttribute('slot')\n ) {\n this.setAttribute('slot', 'sub');\n }\n\n let depth = 0;\n let el: Element | null = this.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-tree-item') {\n depth++;\n } else if (tag === 'ae-tree') {\n break;\n }\n el = el.parentElement;\n }\n this.style.setProperty('--depth', String(depth));\n\n if (this._parentTree?.showLine) {\n this.setAttribute('showline', '');\n }\n }\n\n protected onMounted(): void {\n if (this._parentTree?.defaultExpandAll && this._hasChildren) {\n this.expanded = true;\n }\n }\n\n private get _parentTree(): ParentTreeLike | null {\n return this.closest<ParentTreeLike>('ae-tree');\n }\n\n private get _isCheckable(): boolean {\n return this._parentTree?.checkable ?? false;\n }\n\n private get _hasChildren(): boolean {\n return !!this.querySelector(':scope > ae-tree-item[slot=\"sub\"]');\n }\n\n private _handleExpandClick = (e: Event): void => {\n e.stopPropagation();\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tree-item-toggle-expand', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey },\n }),\n );\n };\n\n private _handleLabelClick = (): void => {\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tree-item-select', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey },\n }),\n );\n };\n\n private _handleCheckChange = (e: Event): void => {\n if (this.disabled) return;\n const input = e.target as HTMLInputElement;\n this.dispatchEvent(\n new CustomEvent('_tree-item-check', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey, checked: input.checked },\n }),\n );\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if ((e.target as HTMLElement).classList.contains('tree-item-label')) {\n this._handleLabelClick();\n }\n }\n if (e.key === 'ArrowRight' && this._hasChildren && !this.expanded) {\n this._handleExpandClick(e);\n }\n if (e.key === 'ArrowLeft' && this.expanded) {\n this._handleExpandClick(e);\n }\n };\n\n protected onUpdated(): void {\n // indeterminate/checked cannot be set correctly via HTML attribute — must set via JS property\n if (this._checkboxEl) {\n this._checkboxEl.checked = this.checked;\n this._checkboxEl.indeterminate = this.indeterminate;\n }\n }\n\n protected render() {\n const hasChildren = this._hasChildren;\n const isCheckable = this._isCheckable;\n const expandIcon = this.icon ?? this._parentTree?.icon;\n\n return html(({ div, button, span, input, slot, svg, path, aeIcon }) => {\n div(\n {\n className: 'tree-item-content',\n role: 'treeitem',\n 'aria-expanded': hasChildren ? String(this.expanded) : undefined,\n 'aria-selected': String(this.selected),\n 'aria-disabled': this.disabled ? 'true' : undefined,\n },\n () => {\n if (hasChildren) {\n button(\n {\n type: 'button',\n className: 'expand-btn',\n tabIndex: -1,\n 'aria-hidden': 'true',\n '@click': this._handleExpandClick,\n },\n () => {\n if (expandIcon) {\n aeIcon({ className: 'expand-icon', name: expandIcon });\n } else {\n svg(\n {\n className: 'expand-icon',\n viewBox: '0 0 10 10',\n 'aria-hidden': 'true',\n xmlns: SVG_NS,\n },\n () => {\n path({ d: 'M2 1l6 4-6 4V1z' });\n },\n );\n }\n },\n );\n } else {\n span({ className: 'expand-placeholder', 'aria-hidden': 'true' });\n }\n\n if (isCheckable) {\n this._checkboxEl = input({\n type: 'checkbox',\n className: 'tree-item-checkbox',\n checked: this.checked,\n disabled: this.disabled,\n tabIndex: -1,\n '@change': this._handleCheckChange,\n });\n }\n\n button(\n {\n type: 'button',\n className: 'tree-item-label',\n disabled: this.disabled,\n '@click': this._handleLabelClick,\n '@keydown': this._handleKeydown,\n },\n () => {\n slot();\n },\n );\n },\n );\n\n div({ className: 'tree-item-children', role: 'group' }, () => {\n slot({ name: 'sub' });\n });\n });\n }\n}\n\nTreeItem.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tree-item': TreeItem;\n }\n}\n\nexport default TreeItem;\nexport type TreeItemProps = InferProps<typeof TreeItem>;\n","import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/tree.css?inline';\nimport variables from '../styles/variables.css?inline';\nimport type { TreeSelectDetail, TreeExpandDetail, TreeCheckDetail } from './defines';\nimport './tree-item';\nimport type TreeItem from './tree-item';\n\n/**\n * Tree component. Renders a hierarchical tree of `<ae-tree-item>` elements.\n *\n * @prop {boolean} checkable - Enable checkbox selection mode with parent-child sync.\n * @prop {boolean} multiple - Allow multi-select (click to toggle). Ignored when checkable.\n * @prop {boolean} showLine - Show dashed connecting lines between items.\n * @prop {boolean} defaultExpandAll - Expand all items on initial connect.\n * @prop {string} selectedKey - Currently selected key (single-select convenience prop).\n *\n * @property {string[]} selectedKeys - Currently selected keys (multi-select).\n * @property {string[]} checkedKeys - Currently checked keys (checkable mode).\n * @property {string[]} expandedKeys - Currently expanded keys.\n *\n * @event {CustomEvent<TreeSelectDetail>} select - Fires when an item is selected/deselected.\n * @event {CustomEvent<TreeExpandDetail>} expand - Fires when an item is expanded/collapsed.\n * @event {CustomEvent<TreeCheckDetail>} check - Fires when an item checkbox changes.\n *\n * @example\n * ```html\n * <ae-tree>\n * <ae-tree-item key=\"1\" label=\"Parent\">\n * <ae-tree-item key=\"1-1\" label=\"Child A\"></ae-tree-item>\n * <ae-tree-item key=\"1-2\" label=\"Child B\"></ae-tree-item>\n * </ae-tree-item>\n * </ae-tree>\n * ```\n */\nclass Tree extends AeicoComponent {\n static tagName = 'tree';\n\n protected static styles = [variables, style];\n\n @prop({ type: Boolean })\n accessor checkable: boolean = false;\n\n @prop({ type: Boolean })\n accessor multiple: boolean = false;\n\n @prop({ type: Boolean })\n accessor showLine: boolean = false;\n\n @prop({ type: Boolean })\n accessor defaultExpandAll: boolean = false;\n\n @prop({ type: String })\n accessor selectedKey: string | undefined;\n\n /** Icon name used for the expand/collapse toggle on all items (overridable per item). */\n @prop({ type: String })\n accessor icon: string | undefined;\n\n /** Currently selected keys (multi-select). Set programmatically. */\n selectedKeys: string[] = [];\n\n /** Currently checked keys (checkable mode). Set programmatically. */\n checkedKeys: string[] = [];\n\n /** Currently expanded keys. Set programmatically. */\n expandedKeys: string[] = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('_tree-item-toggle-expand', this._handleItemToggleExpand as EventListener);\n this.listen('_tree-item-select', this._handleItemSelect as EventListener);\n this.listen('_tree-item-check', this._handleItemCheck as EventListener);\n }\n\n private _getAllItems(): TreeItem[] {\n return Array.from(this.querySelectorAll<TreeItem>('ae-tree-item'));\n }\n\n private _getDirectChildren(node: Element): TreeItem[] {\n return Array.from(node.querySelectorAll<TreeItem>(':scope > ae-tree-item'));\n }\n\n private _computeCheckedKeys(): string[] {\n const keys: string[] = [];\n for (const item of this._getAllItems()) {\n if (item.checked && !item.indeterminate) {\n keys.push(item.key ?? '');\n }\n }\n return keys.filter(Boolean);\n }\n\n private _handleItemToggleExpand = (e: CustomEvent<{ key: string }>): void => {\n const node = e.target as TreeItem;\n const newExpanded = !node.expanded;\n node.expanded = newExpanded;\n\n const key = node.key ?? '';\n if (newExpanded) {\n if (!this.expandedKeys.includes(key)) {\n this.expandedKeys = [...this.expandedKeys, key];\n }\n } else {\n this.expandedKeys = this.expandedKeys.filter((k) => k !== key);\n }\n\n this.emit('expand', {\n detail: {\n key,\n expanded: newExpanded,\n expandedKeys: [...this.expandedKeys],\n } satisfies TreeExpandDetail,\n });\n };\n\n private _handleItemSelect = (e: CustomEvent<{ key: string }>): void => {\n const { key } = e.detail;\n\n if (this.multiple) {\n // Toggle selection\n const alreadySelected = this.selectedKeys.includes(key);\n if (alreadySelected) {\n this.selectedKeys = this.selectedKeys.filter((k) => k !== key);\n } else {\n this.selectedKeys = [...this.selectedKeys, key];\n }\n this.selectedKey = this.selectedKeys[this.selectedKeys.length - 1];\n\n // Sync visual state\n this._getAllItems().forEach((item) => {\n item.selected = this.selectedKeys.includes(item.key ?? '');\n });\n\n this.emit('select', {\n detail: {\n key,\n selected: !alreadySelected,\n selectedKeys: [...this.selectedKeys],\n } satisfies TreeSelectDetail,\n });\n } else {\n // Single select — deselect all, select target\n const alreadySelected = this.selectedKey === key;\n this._getAllItems().forEach((item) => {\n item.selected = !alreadySelected && item.key === key;\n });\n this.selectedKey = alreadySelected ? undefined : key;\n this.selectedKeys = this.selectedKey ? [this.selectedKey] : [];\n\n this.emit('select', {\n detail: {\n key,\n selected: !alreadySelected,\n selectedKeys: [...this.selectedKeys],\n } satisfies TreeSelectDetail,\n });\n }\n };\n\n private _handleItemCheck = (e: CustomEvent<{ key: string; checked: boolean }>): void => {\n const { key, checked } = e.detail;\n const sourceNode = e.target as TreeItem;\n\n this._setCheckedRecursive(sourceNode, checked);\n this._syncAncestors(sourceNode);\n this.checkedKeys = this._computeCheckedKeys();\n\n this.emit('check', {\n detail: { key, checked, checkedKeys: [...this.checkedKeys] } satisfies TreeCheckDetail,\n });\n };\n\n private _setCheckedRecursive(node: TreeItem, checked: boolean): void {\n if (node.disabled) return;\n node.checked = checked;\n node.indeterminate = false;\n for (const child of this._getDirectChildren(node)) {\n this._setCheckedRecursive(child, checked);\n }\n }\n\n private _syncAncestors(sourceNode: TreeItem): void {\n let el: Element | null = sourceNode.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-tree-item') {\n const parent = el as TreeItem;\n const children = this._getDirectChildren(parent).filter((c) => !c.disabled);\n if (children.length === 0) break;\n const checkedCount = children.filter((c) => c.checked && !c.indeterminate).length;\n const indeterminateCount = children.filter((c) => c.indeterminate).length;\n\n if (checkedCount === children.length) {\n parent.checked = true;\n parent.indeterminate = false;\n } else if (checkedCount > 0 || indeterminateCount > 0) {\n parent.checked = false;\n parent.indeterminate = true;\n } else {\n parent.checked = false;\n parent.indeterminate = false;\n }\n } else if (tag === 'ae-tree') {\n break;\n }\n el = el.parentElement;\n }\n }\n\n protected render() {\n return html(({ div, slot }) => {\n div(\n {\n className: 'tree',\n role: 'tree',\n 'aria-multiselectable': this.multiple ? 'true' : 'false',\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nTree.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tree': Tree;\n }\n}\n\nexport default Tree;\nexport type TreeProps = InferProps<typeof Tree>;\n"],"names":["_icon_dec","_a","_init","_icon","prop","__privateAdd","__runInitializers","__publicField","html","SVG_NS","__decoratorStart","__decorateElement","__decoratorMetadata","variables","style"],"mappings":"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"}