aeico-components 0.1.7 → 0.1.9

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 (350) hide show
  1. package/README.md +0 -0
  2. package/dist/alert.cjs +637 -4
  3. package/dist/alert.cjs.map +7 -1
  4. package/dist/alert.js +575 -3
  5. package/dist/alert.js.map +7 -1
  6. package/dist/badge.cjs +573 -4
  7. package/dist/badge.cjs.map +7 -1
  8. package/dist/badge.js +510 -3
  9. package/dist/badge.js.map +7 -1
  10. package/dist/breadcrumb.cjs +709 -5
  11. package/dist/breadcrumb.cjs.map +7 -1
  12. package/dist/breadcrumb.js +644 -4
  13. package/dist/breadcrumb.js.map +7 -1
  14. package/dist/button-group.cjs +546 -4
  15. package/dist/button-group.cjs.map +7 -1
  16. package/dist/button-group.js +489 -3
  17. package/dist/button-group.js.map +7 -1
  18. package/dist/button.cjs +834 -4
  19. package/dist/button.cjs.map +7 -1
  20. package/dist/button.js +771 -3
  21. package/dist/button.js.map +7 -1
  22. package/dist/card.cjs +574 -4
  23. package/dist/card.cjs.map +7 -1
  24. package/dist/card.js +516 -3
  25. package/dist/card.js.map +7 -1
  26. package/dist/checkbox.cjs +867 -4
  27. package/dist/checkbox.cjs.map +7 -1
  28. package/dist/checkbox.js +794 -3
  29. package/dist/checkbox.js.map +7 -1
  30. package/dist/copy-button.cjs +1046 -4
  31. package/dist/copy-button.cjs.map +7 -1
  32. package/dist/copy-button.js +969 -3
  33. package/dist/copy-button.js.map +7 -1
  34. package/dist/detail-group.cjs +531 -4
  35. package/dist/detail-group.cjs.map +7 -1
  36. package/dist/detail-group.js +474 -3
  37. package/dist/detail-group.js.map +7 -1
  38. package/dist/detail.cjs +627 -4
  39. package/dist/detail.cjs.map +7 -1
  40. package/dist/detail.js +569 -3
  41. package/dist/detail.js.map +7 -1
  42. package/dist/dialog.cjs +738 -4
  43. package/dist/dialog.cjs.map +7 -1
  44. package/dist/dialog.js +665 -3
  45. package/dist/dialog.js.map +7 -1
  46. package/dist/divider.cjs +558 -4
  47. package/dist/divider.cjs.map +7 -1
  48. package/dist/divider.js +502 -3
  49. package/dist/divider.js.map +7 -1
  50. package/dist/drawer.cjs +818 -4
  51. package/dist/drawer.cjs.map +7 -1
  52. package/dist/drawer.js +749 -3
  53. package/dist/drawer.js.map +7 -1
  54. package/dist/dropdown.cjs +1396 -5
  55. package/dist/dropdown.cjs.map +7 -1
  56. package/dist/dropdown.js +1316 -4
  57. package/dist/dropdown.js.map +7 -1
  58. package/dist/icon-button.cjs +999 -4
  59. package/dist/icon-button.cjs.map +7 -1
  60. package/dist/icon-button.js +930 -3
  61. package/dist/icon-button.js.map +7 -1
  62. package/dist/icon.cjs +613 -4
  63. package/dist/icon.cjs.map +7 -1
  64. package/dist/icon.js +547 -3
  65. package/dist/icon.js.map +7 -1
  66. package/dist/index.cjs +6532 -74
  67. package/dist/index.cjs.map +7 -1
  68. package/dist/index.js +6183 -73
  69. package/dist/index.js.map +7 -1
  70. package/dist/menu.cjs +841 -4
  71. package/dist/menu.cjs.map +7 -1
  72. package/dist/menu.js +785 -3
  73. package/dist/menu.js.map +7 -1
  74. package/dist/navbar.cjs +622 -4
  75. package/dist/navbar.cjs.map +7 -1
  76. package/dist/navbar.js +564 -3
  77. package/dist/navbar.js.map +7 -1
  78. package/dist/number-input.cjs +885 -4
  79. package/dist/number-input.cjs.map +7 -1
  80. package/dist/number-input.js +817 -3
  81. package/dist/number-input.js.map +7 -1
  82. package/dist/pagination.cjs +1099 -4
  83. package/dist/pagination.cjs.map +7 -1
  84. package/dist/pagination.js +1029 -3
  85. package/dist/pagination.js.map +7 -1
  86. package/dist/progress-bar.cjs +581 -4
  87. package/dist/progress-bar.cjs.map +7 -1
  88. package/dist/progress-bar.js +525 -3
  89. package/dist/progress-bar.js.map +7 -1
  90. package/dist/radio-group.cjs +973 -5
  91. package/dist/radio-group.cjs.map +7 -1
  92. package/dist/radio-group.js +899 -4
  93. package/dist/radio-group.js.map +7 -1
  94. package/dist/select.cjs +1242 -45
  95. package/dist/select.cjs.map +7 -1
  96. package/dist/select.js +1159 -44
  97. package/dist/select.js.map +7 -1
  98. package/dist/slider.cjs +1420 -4
  99. package/dist/slider.cjs.map +7 -1
  100. package/dist/slider.js +1351 -3
  101. package/dist/slider.js.map +7 -1
  102. package/dist/spinner.cjs +587 -4
  103. package/dist/spinner.cjs.map +7 -1
  104. package/dist/spinner.js +528 -3
  105. package/dist/spinner.js.map +7 -1
  106. package/dist/styles/layout.cjs +1 -0
  107. package/dist/styles/layout.js +1 -0
  108. package/dist/styles/radius.cjs +1 -0
  109. package/dist/styles/radius.js +1 -0
  110. package/dist/styles/variables.cjs +1 -0
  111. package/dist/styles/variables.js +1 -0
  112. package/dist/switch.cjs +1092 -4
  113. package/dist/switch.cjs.map +7 -1
  114. package/dist/switch.js +1013 -3
  115. package/dist/switch.js.map +7 -1
  116. package/dist/tabs.cjs +660 -6
  117. package/dist/tabs.cjs.map +7 -1
  118. package/dist/tabs.js +591 -5
  119. package/dist/tabs.js.map +7 -1
  120. package/dist/tag.cjs +591 -3
  121. package/dist/tag.cjs.map +7 -1
  122. package/dist/tag.js +532 -2
  123. package/dist/tag.js.map +7 -1
  124. package/dist/text-input.cjs +829 -4
  125. package/dist/text-input.cjs.map +7 -1
  126. package/dist/text-input.js +761 -3
  127. package/dist/text-input.js.map +7 -1
  128. package/dist/textarea.cjs +914 -3
  129. package/dist/textarea.cjs.map +7 -1
  130. package/dist/textarea.js +854 -2
  131. package/dist/textarea.js.map +7 -1
  132. package/dist/tooltip.cjs +764 -4
  133. package/dist/tooltip.cjs.map +7 -1
  134. package/dist/tooltip.js +711 -3
  135. package/dist/tooltip.js.map +7 -1
  136. package/dist/tree.cjs +1059 -4
  137. package/dist/tree.cjs.map +7 -1
  138. package/dist/tree.js +985 -3
  139. package/dist/tree.js.map +7 -1
  140. package/dist/types/dialog/dialog.d.ts +1 -0
  141. package/dist/types/drawer/drawer.d.ts +2 -0
  142. package/dist/types/icon/defines.d.ts +2 -0
  143. package/dist/types/menu/defines.d.ts +1 -0
  144. package/dist/types/menu/menu-item.d.ts +1 -0
  145. package/dist/types/menu/menu.d.ts +1 -0
  146. package/dist/types/styles/layout.d.ts +2 -0
  147. package/dist/types/styles/radius.d.ts +2 -0
  148. package/dist/types/styles/variables.d.ts +2 -0
  149. package/package.json +31 -7
  150. package/src/alert/alert.ts +3 -3
  151. package/src/badge/badge.ts +4 -4
  152. package/src/breadcrumb/breadcrumb-item.ts +2 -2
  153. package/src/breadcrumb/breadcrumb.ts +3 -3
  154. package/src/button/button.ts +4 -4
  155. package/src/button-group/button-group.ts +8 -9
  156. package/src/card/card.ts +3 -3
  157. package/src/checkbox/checkbox.ts +6 -6
  158. package/src/copy-button/copy-button.ts +4 -4
  159. package/src/detail/detail.ts +3 -3
  160. package/src/detail-group/detail-group.ts +2 -2
  161. package/src/dialog/dialog.ts +15 -14
  162. package/src/divider/divider.ts +3 -3
  163. package/src/drawer/drawer.ts +28 -11
  164. package/src/dropdown/dropdown-item.ts +2 -2
  165. package/src/dropdown/dropdown.ts +2 -2
  166. package/src/icon/defines.ts +2 -0
  167. package/src/icon/icon.ts +4 -4
  168. package/src/menu/defines.ts +1 -0
  169. package/src/menu/menu-item.ts +14 -4
  170. package/src/menu/menu.ts +5 -2
  171. package/src/navbar/navbar.ts +3 -3
  172. package/src/number-input/number-input.ts +5 -5
  173. package/src/pagination/pagination.ts +3 -3
  174. package/src/progress-bar/progress-bar.ts +3 -3
  175. package/src/radio-group/radio-group.ts +12 -8
  176. package/src/select/select-option.ts +2 -2
  177. package/src/select/select.ts +5 -5
  178. package/src/slider/slider.ts +6 -6
  179. package/src/spinner/spinner.ts +4 -4
  180. package/src/styles/components/button-group.css +2 -0
  181. package/src/styles/components/card.css +42 -18
  182. package/src/styles/components/checkbox.css +16 -5
  183. package/src/styles/components/dialog.css +1 -1
  184. package/src/styles/components/drawer.css +50 -9
  185. package/src/styles/components/field-label.css +1 -1
  186. package/src/styles/components/menu-item.css +6 -0
  187. package/src/styles/components/navbar.css +7 -28
  188. package/src/styles/components/radio-group.css +19 -0
  189. package/src/styles/components/slider.css +30 -5
  190. package/src/styles/components/switch.css +16 -2
  191. package/src/styles/layout.css +5 -2
  192. package/src/styles/radius.css +15 -0
  193. package/src/switch/switch.ts +6 -6
  194. package/src/tabs/tab-panel.ts +1 -1
  195. package/src/tabs/tab.ts +1 -1
  196. package/src/tabs/tabs.ts +2 -2
  197. package/src/tag/tag.ts +4 -4
  198. package/src/text-input/text-input.ts +5 -5
  199. package/src/textarea/textarea.ts +5 -5
  200. package/src/tooltip/tooltip.ts +2 -2
  201. package/src/tree/tree-item.ts +2 -2
  202. package/src/tree/tree.ts +2 -2
  203. package/dist/chunks/action-button.cjs +0 -296
  204. package/dist/chunks/action-button.cjs.map +0 -1
  205. package/dist/chunks/action-button.js +0 -297
  206. package/dist/chunks/action-button.js.map +0 -1
  207. package/dist/chunks/aeico-component.cjs +0 -17
  208. package/dist/chunks/aeico-component.cjs.map +0 -1
  209. package/dist/chunks/aeico-component.js +0 -18
  210. package/dist/chunks/aeico-component.js.map +0 -1
  211. package/dist/chunks/alert.cjs +0 -164
  212. package/dist/chunks/alert.cjs.map +0 -1
  213. package/dist/chunks/alert.js +0 -165
  214. package/dist/chunks/alert.js.map +0 -1
  215. package/dist/chunks/badge.cjs +0 -85
  216. package/dist/chunks/badge.cjs.map +0 -1
  217. package/dist/chunks/badge.js +0 -86
  218. package/dist/chunks/badge.js.map +0 -1
  219. package/dist/chunks/breadcrumb-item.cjs +0 -261
  220. package/dist/chunks/breadcrumb-item.cjs.map +0 -1
  221. package/dist/chunks/breadcrumb-item.js +0 -262
  222. package/dist/chunks/breadcrumb-item.js.map +0 -1
  223. package/dist/chunks/button-group.cjs +0 -79
  224. package/dist/chunks/button-group.cjs.map +0 -1
  225. package/dist/chunks/button-group.js +0 -80
  226. package/dist/chunks/button-group.js.map +0 -1
  227. package/dist/chunks/button.cjs +0 -337
  228. package/dist/chunks/button.cjs.map +0 -1
  229. package/dist/chunks/button.js +0 -338
  230. package/dist/chunks/button.js.map +0 -1
  231. package/dist/chunks/card.cjs +0 -93
  232. package/dist/chunks/card.cjs.map +0 -1
  233. package/dist/chunks/card.js +0 -94
  234. package/dist/chunks/card.js.map +0 -1
  235. package/dist/chunks/checkbox.cjs +0 -86
  236. package/dist/chunks/checkbox.cjs.map +0 -1
  237. package/dist/chunks/checkbox.js +0 -87
  238. package/dist/chunks/checkbox.js.map +0 -1
  239. package/dist/chunks/color.cjs +0 -4
  240. package/dist/chunks/color.cjs.map +0 -1
  241. package/dist/chunks/color.js +0 -5
  242. package/dist/chunks/color.js.map +0 -1
  243. package/dist/chunks/copy-button.cjs +0 -171
  244. package/dist/chunks/copy-button.cjs.map +0 -1
  245. package/dist/chunks/copy-button.js +0 -172
  246. package/dist/chunks/copy-button.js.map +0 -1
  247. package/dist/chunks/detail-group.cjs +0 -65
  248. package/dist/chunks/detail-group.cjs.map +0 -1
  249. package/dist/chunks/detail-group.js +0 -66
  250. package/dist/chunks/detail-group.js.map +0 -1
  251. package/dist/chunks/detail.cjs +0 -146
  252. package/dist/chunks/detail.cjs.map +0 -1
  253. package/dist/chunks/detail.js +0 -147
  254. package/dist/chunks/detail.js.map +0 -1
  255. package/dist/chunks/dialog.cjs +0 -117
  256. package/dist/chunks/dialog.cjs.map +0 -1
  257. package/dist/chunks/dialog.js +0 -118
  258. package/dist/chunks/dialog.js.map +0 -1
  259. package/dist/chunks/divider.cjs +0 -80
  260. package/dist/chunks/divider.cjs.map +0 -1
  261. package/dist/chunks/divider.js +0 -81
  262. package/dist/chunks/divider.js.map +0 -1
  263. package/dist/chunks/drawer.cjs +0 -180
  264. package/dist/chunks/drawer.cjs.map +0 -1
  265. package/dist/chunks/drawer.js +0 -181
  266. package/dist/chunks/drawer.js.map +0 -1
  267. package/dist/chunks/dropdown-button.cjs +0 -533
  268. package/dist/chunks/dropdown-button.cjs.map +0 -1
  269. package/dist/chunks/dropdown-button.js +0 -534
  270. package/dist/chunks/dropdown-button.js.map +0 -1
  271. package/dist/chunks/icon-button.cjs +0 -35
  272. package/dist/chunks/icon-button.cjs.map +0 -1
  273. package/dist/chunks/icon-button.js +0 -36
  274. package/dist/chunks/icon-button.js.map +0 -1
  275. package/dist/chunks/icon.cjs +0 -124
  276. package/dist/chunks/icon.cjs.map +0 -1
  277. package/dist/chunks/icon.js +0 -125
  278. package/dist/chunks/icon.js.map +0 -1
  279. package/dist/chunks/menu.cjs +0 -396
  280. package/dist/chunks/menu.cjs.map +0 -1
  281. package/dist/chunks/menu.js +0 -397
  282. package/dist/chunks/menu.js.map +0 -1
  283. package/dist/chunks/navbar.cjs +0 -142
  284. package/dist/chunks/navbar.cjs.map +0 -1
  285. package/dist/chunks/navbar.js +0 -143
  286. package/dist/chunks/navbar.js.map +0 -1
  287. package/dist/chunks/number-input.cjs +0 -110
  288. package/dist/chunks/number-input.cjs.map +0 -1
  289. package/dist/chunks/number-input.js +0 -111
  290. package/dist/chunks/number-input.js.map +0 -1
  291. package/dist/chunks/pagination.cjs +0 -475
  292. package/dist/chunks/pagination.cjs.map +0 -1
  293. package/dist/chunks/pagination.js +0 -476
  294. package/dist/chunks/pagination.js.map +0 -1
  295. package/dist/chunks/progress-bar.cjs +0 -101
  296. package/dist/chunks/progress-bar.cjs.map +0 -1
  297. package/dist/chunks/progress-bar.js +0 -102
  298. package/dist/chunks/progress-bar.js.map +0 -1
  299. package/dist/chunks/radio.cjs +0 -185
  300. package/dist/chunks/radio.cjs.map +0 -1
  301. package/dist/chunks/radio.js +0 -186
  302. package/dist/chunks/radio.js.map +0 -1
  303. package/dist/chunks/select.cjs +0 -381
  304. package/dist/chunks/select.cjs.map +0 -1
  305. package/dist/chunks/select.js +0 -382
  306. package/dist/chunks/select.js.map +0 -1
  307. package/dist/chunks/size.cjs +0 -4
  308. package/dist/chunks/size.cjs.map +0 -1
  309. package/dist/chunks/size.js +0 -5
  310. package/dist/chunks/size.js.map +0 -1
  311. package/dist/chunks/slider.cjs +0 -608
  312. package/dist/chunks/slider.cjs.map +0 -1
  313. package/dist/chunks/slider.js +0 -609
  314. package/dist/chunks/slider.js.map +0 -1
  315. package/dist/chunks/spinner.cjs +0 -102
  316. package/dist/chunks/spinner.cjs.map +0 -1
  317. package/dist/chunks/spinner.js +0 -103
  318. package/dist/chunks/spinner.js.map +0 -1
  319. package/dist/chunks/switch.cjs +0 -167
  320. package/dist/chunks/switch.cjs.map +0 -1
  321. package/dist/chunks/switch.js +0 -168
  322. package/dist/chunks/switch.js.map +0 -1
  323. package/dist/chunks/tab-panel.cjs +0 -174
  324. package/dist/chunks/tab-panel.cjs.map +0 -1
  325. package/dist/chunks/tab-panel.js +0 -175
  326. package/dist/chunks/tab-panel.js.map +0 -1
  327. package/dist/chunks/tag.cjs +0 -108
  328. package/dist/chunks/tag.cjs.map +0 -1
  329. package/dist/chunks/tag.js +0 -109
  330. package/dist/chunks/tag.js.map +0 -1
  331. package/dist/chunks/text-input.cjs +0 -54
  332. package/dist/chunks/text-input.cjs.map +0 -1
  333. package/dist/chunks/text-input.js +0 -55
  334. package/dist/chunks/text-input.js.map +0 -1
  335. package/dist/chunks/textarea.cjs +0 -137
  336. package/dist/chunks/textarea.cjs.map +0 -1
  337. package/dist/chunks/textarea.js +0 -138
  338. package/dist/chunks/textarea.js.map +0 -1
  339. package/dist/chunks/tooltip.cjs +0 -292
  340. package/dist/chunks/tooltip.cjs.map +0 -1
  341. package/dist/chunks/tooltip.js +0 -293
  342. package/dist/chunks/tooltip.js.map +0 -1
  343. package/dist/chunks/tree.cjs +0 -468
  344. package/dist/chunks/tree.cjs.map +0 -1
  345. package/dist/chunks/tree.js +0 -469
  346. package/dist/chunks/tree.js.map +0 -1
  347. package/dist/chunks/variables.cjs +0 -396
  348. package/dist/chunks/variables.cjs.map +0 -1
  349. package/dist/chunks/variables.js +0 -397
  350. package/dist/chunks/variables.js.map +0 -1
@@ -1,381 +0,0 @@
1
- "use strict";
2
- const actionButton = require("./action-button.cjs");
3
- const aeico = require("aeico");
4
- const variables = require("./variables.cjs");
5
- const size = require("./size.cjs");
6
- const style = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--ae-size-base);\n\n /* Layout variables */\n --select-field-gap: 2px;\n\n /* Trigger variables */\n --select-font-size: 1em;\n --select-padding: 0.333em 0.583em;\n --select-border-width: 1px;\n --select-transition: border-color 0.12s, background 0.12s;\n\n /* Arrow */\n --select-arrow-size: 0.75em;\n\n /* Dropdown */\n --select-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n --select-dropdown-max-height: 240px;\n --select-dropdown-z-index: 1000;\n}\n\n.container {\n display: flex;\n align-items: center;\n gap: var(--select-field-gap);\n width: 100%;\n position: relative;\n}\n\n.trigger {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 0.333em;\n font-size: var(--select-font-size);\n padding: var(--select-padding);\n border: var(--select-border-width) solid var(--ae-border-subtle);\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\n background: var(--ae-surface-base);\n color: var(--ae-color-text-muted);\n cursor: pointer;\n transition: var(--select-transition);\n user-select: none;\n outline: none;\n box-sizing: border-box;\n}\n\n.trigger:hover:not(.disabled) {\n border-color: var(--ae-border-default);\n background: var(--ae-surface-raised);\n}\n\n.trigger.open {\n border-color: var(--ae-border-focus);\n background: var(--ae-surface-raised);\n}\n\n.trigger.disabled {\n opacity: 0.5;\n cursor: default;\n pointer-events: none;\n}\n\n/* Error state */\n:host([error]) .trigger {\n border-color: var(--field-error-color, var(--ae-red));\n}\n\n:host([error]) .trigger:hover:not(.disabled),\n:host([error]) .trigger.open {\n border-color: var(--field-error-color, var(--ae-red));\n}\n\n.value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.placeholder {\n color: var(--ae-color-text-disabled);\n}\n\n.selected-list {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n align-items: center;\n padding: 2px 0;\n}\n\n/* Non-expandable (default): single-row, clip overflow */\n.trigger:has(.selected-list--clipped) {\n flex-wrap: nowrap;\n}\n\n.selected-list--clipped {\n flex-wrap: nowrap;\n overflow: hidden;\n}\n\n.overflow-indicator {\n flex-shrink: 0;\n align-self: center;\n padding: 1px 6px;\n background: color-mix(in srgb, var(--ae-color-primary) 12%, transparent);\n color: var(--ae-color-primary);\n border: 1px solid color-mix(in srgb, var(--ae-color-primary) 30%, transparent);\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\n font-size: 0.82em;\n line-height: 1.6;\n cursor: default;\n user-select: none;\n}\n\n.arrow {\n flex-shrink: 0;\n align-self: center;\n font-size: var(--select-arrow-size);\n color: var(--ae-color-text-muted);\n transition: transform 0.12s;\n pointer-events: none;\n line-height: 1;\n}\n\n.trigger.open .arrow {\n transform: rotate(180deg);\n}\n\n.dropdown {\n display: none;\n position: absolute;\n z-index: var(--select-dropdown-z-index);\n background: var(--ae-surface-overlay);\n border: 1px solid var(--ae-border-default);\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\n box-shadow: var(--select-dropdown-shadow);\n max-height: var(--select-dropdown-max-height);\n overflow-y: auto;\n min-width: 100%;\n box-sizing: border-box;\n}\n\n.dropdown.open {\n display: block;\n}\n\n.dropdown.position-bottom {\n top: 100%;\n left: 0;\n margin-top: 2px;\n}\n\n.dropdown.position-top {\n bottom: 100%;\n left: 0;\n margin-bottom: 2px;\n}\n\n.dropdown.position-left {\n right: 100%;\n top: 0;\n margin-right: 2px;\n}\n\n.dropdown.position-right {\n left: 100%;\n top: 0;\n margin-left: 2px;\n}\n\n.container:has(.action-controls) .trigger {\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\n}\n";
7
- var __create = Object.create;
8
- var __defProp = Object.defineProperty;
9
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
11
- var __typeError = (msg) => {
12
- throw TypeError(msg);
13
- };
14
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
16
- var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
17
- var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
18
- var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
19
- var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
20
- var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
21
- var __runInitializers = (array, flags, self, value) => {
22
- 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);
23
- return value;
24
- };
25
- var __decorateElement = (array, flags, name, decorators, target, extra) => {
26
- var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
27
- var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
28
- var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
29
- var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
30
- return __privateGet(this, extra);
31
- }, set [name](x) {
32
- return __privateSet(this, extra, x);
33
- } }, name));
34
- k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
35
- for (var i = decorators.length - 1; i >= 0; i--) {
36
- ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
37
- if (k) {
38
- ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
39
- if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
40
- if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
41
- }
42
- it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
43
- if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
44
- else if (typeof it !== "object" || it === null) __typeError("Object expected");
45
- else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
46
- }
47
- return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
48
- };
49
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
50
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
51
- var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
52
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
53
- 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);
54
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
55
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
56
- var _defaultValue_dec, _value_dec, _expandable_dec, _multiple_dec, _placeholder_dec, _position_dec, _options_dec, __expanded_dec, _a, _init, __expanded, _options, _position, _placeholder, _multiple, _expandable;
57
- class Select extends (_a = actionButton.AeicoField, __expanded_dec = [aeico.prop({ type: Boolean, observe: false, reflect: false })], _options_dec = [aeico.prop({ type: Array })], _position_dec = [aeico.prop({ type: String })], _placeholder_dec = [aeico.prop({ type: String })], _multiple_dec = [aeico.prop({ type: Boolean })], _expandable_dec = [aeico.prop({ type: Boolean })], _value_dec = [aeico.prop({
58
- type: String,
59
- parser: (v) => {
60
- if (v === null || v === void 0) return void 0;
61
- try {
62
- return JSON.parse(v);
63
- } catch {
64
- return v;
65
- }
66
- },
67
- formatter: (v) => {
68
- if (v === null || v === void 0) return "";
69
- if (Array.isArray(v)) return JSON.stringify(v);
70
- return String(v);
71
- }
72
- })], _defaultValue_dec = [aeico.prop({
73
- type: String,
74
- parser: (v) => {
75
- if (v === null || v === void 0) return void 0;
76
- try {
77
- return JSON.parse(v);
78
- } catch {
79
- return v;
80
- }
81
- },
82
- formatter: (v) => {
83
- if (v === null || v === void 0) return "";
84
- if (Array.isArray(v)) return JSON.stringify(v);
85
- return String(v);
86
- }
87
- })], _a) {
88
- constructor() {
89
- super(...arguments);
90
- __publicField(this, "fieldElement", null);
91
- __publicField(this, "_isOpen", false);
92
- __publicField(this, "_triggerEl", null);
93
- __publicField(this, "_dropdownEl", null);
94
- __publicField(this, "_slotEl", null);
95
- __publicField(this, "_slotOptionData", []);
96
- __publicField(this, "_selectedListEl", null);
97
- __privateAdd(this, __expanded, __runInitializers(_init, 8, this, false)), __runInitializers(_init, 11, this);
98
- __privateAdd(this, _options, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
99
- __privateAdd(this, _position, __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
100
- __privateAdd(this, _placeholder, __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
101
- __privateAdd(this, _multiple, __runInitializers(_init, 24, this, false)), __runInitializers(_init, 27, this);
102
- __privateAdd(this, _expandable, __runInitializers(_init, 28, this, false)), __runInitializers(_init, 31, this);
103
- __publicField(this, "value", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
104
- __publicField(this, "defaultValue", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
105
- __publicField(this, "_handleOutsideClick", (e) => {
106
- if (!e.composedPath().includes(this)) {
107
- this._closeDropdown();
108
- }
109
- });
110
- __publicField(this, "_handleOptionSelect", (e) => {
111
- const { value, label } = e.detail;
112
- if (!this._slotOptionData.find((o) => o.value === value)) {
113
- this._slotOptionData = [
114
- ...this._slotOptionData.filter((o) => o.value !== value),
115
- { value, label }
116
- ];
117
- }
118
- if (this.multiple) {
119
- const current = this._getMultiValues();
120
- const idx = current.findIndex((v) => String(v) === value);
121
- const next = idx >= 0 ? current.filter((_, i) => i !== idx) : [...current, value];
122
- this.setValue(next, { silent: false, action: "change" });
123
- } else {
124
- this.setValue(value, { silent: false, action: "change" });
125
- this._closeDropdown();
126
- }
127
- });
128
- }
129
- writeValue(_value) {
130
- }
131
- getValue() {
132
- if (this.multiple) return this._getMultiValues();
133
- return this.value || "";
134
- }
135
- _getMultiValues() {
136
- if (Array.isArray(this.value)) return this.value;
137
- if (this.value != null && this.value !== "") return [this.value];
138
- return [];
139
- }
140
- onDisabledChanged(_newValue) {
141
- }
142
- onUpdated(changedProps) {
143
- super.onUpdated(changedProps);
144
- if (!this.multiple || this.expandable) {
145
- if (this._expanded) this._expanded = false;
146
- return;
147
- }
148
- const list = this._selectedListEl;
149
- if (!list) return;
150
- const overflowing = list.scrollWidth > list.clientWidth + 1;
151
- if (overflowing !== this._expanded) this._expanded = overflowing;
152
- }
153
- _findLabel(value) {
154
- const strVal = String(value);
155
- if (Array.isArray(this.options)) {
156
- for (const opt of this.options) {
157
- if (this._isSelectOption(opt)) {
158
- if (String(opt.value) === strVal) return opt.label;
159
- } else {
160
- if (String(opt) === strVal) return strVal;
161
- }
162
- }
163
- }
164
- for (const opt of this._slotOptionData) {
165
- if (opt.value === strVal) return opt.label;
166
- }
167
- return strVal;
168
- }
169
- _onSlotChange() {
170
- var _a2;
171
- if (!this._slotEl) return;
172
- const data = [];
173
- for (const el of this._slotEl.assignedElements({ flatten: true })) {
174
- if (el.tagName.toLowerCase() !== "ae-select-option") continue;
175
- const optEl = el;
176
- data.push({
177
- value: optEl.value ?? el.getAttribute("value") ?? "",
178
- label: optEl.label || ((_a2 = el.textContent) == null ? void 0 : _a2.trim()) || ""
179
- });
180
- }
181
- this._slotOptionData = data;
182
- this.update();
183
- }
184
- _toggleDropdown() {
185
- if (this._isOpen) {
186
- this._closeDropdown();
187
- } else {
188
- this._openDropdown();
189
- }
190
- }
191
- _openDropdown() {
192
- this._isOpen = true;
193
- this._syncOpenState();
194
- }
195
- _closeDropdown() {
196
- this._isOpen = false;
197
- this._syncOpenState();
198
- }
199
- _syncOpenState() {
200
- var _a2, _b;
201
- (_a2 = this._triggerEl) == null ? void 0 : _a2.classList.toggle("open", this._isOpen);
202
- (_b = this._dropdownEl) == null ? void 0 : _b.classList.toggle("open", this._isOpen);
203
- }
204
- connectedCallback() {
205
- super.connectedCallback();
206
- document.addEventListener("click", this._handleOutsideClick);
207
- this.addEventListener("selectoption", this._handleOptionSelect);
208
- }
209
- disconnectedCallback() {
210
- super.disconnectedCallback();
211
- document.removeEventListener("click", this._handleOutsideClick);
212
- this.removeEventListener("selectoption", this._handleOptionSelect);
213
- }
214
- _syncSlotOptionsSelected() {
215
- if (!this._slotEl) return;
216
- const multiValues = this._getMultiValues();
217
- for (const el of this._slotEl.assignedElements({ flatten: true })) {
218
- if (el.tagName.toLowerCase() !== "ae-select-option") continue;
219
- const optEl = el;
220
- const optVal = optEl.value ?? el.getAttribute("value") ?? "";
221
- const isSelected = this.multiple ? multiValues.some((v) => String(v) === optVal) : this.value != null && this.value !== "" && String(this.value) === optVal;
222
- optEl.selected = isSelected ? true : void 0;
223
- }
224
- }
225
- render() {
226
- const position = this.position || "bottom";
227
- const multiValues = this.multiple ? this._getMultiValues() : [];
228
- const hasMultiSelection = this.multiple && multiValues.length > 0;
229
- const selectedLabel = !this.multiple && this.value != null && this.value !== "" ? this._findLabel(this.value) : "";
230
- const isDisabled = Boolean(this.disabled);
231
- this._selectedListEl = null;
232
- this._syncSlotOptionsSelected();
233
- return aeico.html(({ div, span, slot }) => {
234
- const id = this.getFieldId();
235
- this.renderLabel(id);
236
- div(
237
- {
238
- id,
239
- "aria-labelledby": this.label ? `${id}-label` : void 0,
240
- className: "container field-body"
241
- },
242
- () => {
243
- this._triggerEl = div(
244
- {
245
- className: `trigger${this._isOpen ? " open" : ""}${isDisabled ? " disabled" : ""}`,
246
- "@click": () => {
247
- if (isDisabled) return;
248
- this._toggleDropdown();
249
- }
250
- },
251
- () => {
252
- if (this.multiple) {
253
- if (hasMultiSelection) {
254
- this._selectedListEl = div(
255
- {
256
- className: `selected-list${!this.expandable ? " selected-list--clipped" : ""}`
257
- },
258
- () => {
259
- for (const v of multiValues) {
260
- const lbl = this._findLabel(v);
261
- aeico.tags.aeTag({
262
- key: `sel-${v}`,
263
- color: "default",
264
- variant: "faint",
265
- dismissible: true,
266
- disabled: isDisabled,
267
- textContent: lbl,
268
- "@dismiss": (e) => {
269
- e.stopPropagation();
270
- if (isDisabled) return;
271
- const next = multiValues.filter((item) => String(item) !== String(v));
272
- this.setValue(next, { silent: false, action: "change" });
273
- }
274
- });
275
- }
276
- }
277
- );
278
- if (!this.expandable && this._expanded) {
279
- span({ className: "overflow-indicator", textContent: "…" });
280
- }
281
- } else {
282
- span({ className: "value placeholder", textContent: this.placeholder || "" });
283
- }
284
- } else {
285
- if (selectedLabel) {
286
- span({ className: "value", textContent: selectedLabel });
287
- } else {
288
- span({ className: "value placeholder", textContent: this.placeholder || "" });
289
- }
290
- }
291
- span({ className: "arrow", textContent: "▾" });
292
- }
293
- );
294
- this._dropdownEl = div(
295
- {
296
- className: `dropdown position-${position}${this._isOpen ? " open" : ""}`
297
- },
298
- () => {
299
- this._renderProgrammaticOptions();
300
- this._slotEl = slot({
301
- "@slotchange": () => this._onSlotChange()
302
- });
303
- }
304
- );
305
- this.renderActionButtons();
306
- }
307
- );
308
- this.renderHelperText();
309
- this.renderError();
310
- const currentValue = this.value != null && this.value !== "" && !(Array.isArray(this.value) && this.value.length === 0) ? String(this.value) : "";
311
- this.fieldElement = aeico.tags.input({
312
- key: "validation-input",
313
- type: "text",
314
- "aria-hidden": "true",
315
- tabIndex: -1,
316
- required: Boolean(this.required),
317
- value: currentValue,
318
- style: {
319
- position: "absolute",
320
- width: "0",
321
- height: "0",
322
- opacity: "0",
323
- margin: "0",
324
- padding: "0",
325
- border: "0",
326
- pointerEvents: "none",
327
- overflow: "hidden"
328
- }
329
- });
330
- });
331
- }
332
- _renderProgrammaticOptions() {
333
- if (!Array.isArray(this.options)) return;
334
- const { aeSelectOption } = aeico.tags;
335
- const multiValues = this.multiple ? this._getMultiValues() : [];
336
- for (const opt of this.options) {
337
- if (this._isSelectOption(opt)) {
338
- const isSelected = this.multiple ? multiValues.some((v) => String(v) === String(opt.value)) : this.value != null && String(opt.value) === String(this.value);
339
- aeSelectOption({
340
- key: `opt-${opt.value}`,
341
- value: String(opt.value),
342
- label: opt.label,
343
- textContent: opt.label,
344
- selected: isSelected ? true : void 0
345
- });
346
- } else {
347
- const isSelected = this.multiple ? multiValues.some((v) => String(v) === String(opt)) : this.value != null && String(opt) === String(this.value);
348
- aeSelectOption({
349
- key: `opt-${opt}`,
350
- value: String(opt),
351
- textContent: String(opt),
352
- selected: isSelected ? true : void 0
353
- });
354
- }
355
- }
356
- }
357
- _isSelectOption(option) {
358
- return option !== null && typeof option === "object" && typeof option.label === "string" && (typeof option.value === "string" || typeof option.value === "number");
359
- }
360
- }
361
- _init = __decoratorStart(_a);
362
- __expanded = /* @__PURE__ */ new WeakMap();
363
- _options = /* @__PURE__ */ new WeakMap();
364
- _position = /* @__PURE__ */ new WeakMap();
365
- _placeholder = /* @__PURE__ */ new WeakMap();
366
- _multiple = /* @__PURE__ */ new WeakMap();
367
- _expandable = /* @__PURE__ */ new WeakMap();
368
- __decorateElement(_init, 4, "_expanded", __expanded_dec, Select, __expanded);
369
- __decorateElement(_init, 4, "options", _options_dec, Select, _options);
370
- __decorateElement(_init, 4, "position", _position_dec, Select, _position);
371
- __decorateElement(_init, 4, "placeholder", _placeholder_dec, Select, _placeholder);
372
- __decorateElement(_init, 4, "multiple", _multiple_dec, Select, _multiple);
373
- __decorateElement(_init, 4, "expandable", _expandable_dec, Select, _expandable);
374
- __decorateElement(_init, 5, "value", _value_dec, Select);
375
- __decorateElement(_init, 5, "defaultValue", _defaultValue_dec, Select);
376
- __decoratorMetadata(_init, Select);
377
- __publicField(Select, "tagName", "select");
378
- __publicField(Select, "styles", [variables.variables, size.sizeCSS, actionButton.fieldLabelCSS, actionButton.actionButtonCSS, style]);
379
- Select.register();
380
- exports.Select = Select;
381
- //# sourceMappingURL=select.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.cjs","sources":["../../src/select/select.ts"],"sourcesContent":["import AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type {\n SelectOptionValue,\n SelectOption,\n SelectOptions,\n SelectPosition,\n SelectMultiValue,\n} from './defines';\nimport style from '../styles/components/select.css?inline';\nimport variables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport fieldLabelCSS from '../styles/components/field-label.css?inline';\nimport actionButtonCSS from '../styles/components/action-button.css?inline';\nimport SelectOptionElement from './select-option';\nimport '../tag/tag';\nimport { prop } from 'aeico';\n\n/**\n * Select component supporting single and multi-select modes, with options provided via both props and slots.\n * - `options` prop accepts an array of strings or objects with `value` and `label` for programmatic options.\n * - Slot content allows for declarative options using `<ae-select-option>` elements.\n * @example\n * <ae-select placeholder=\"Choose an option\" position=\"bottom\">\n * <ae-select-option value=\"1\" label=\"Option 1\">Option 1</ae-select-option>\n * <ae-select-option value=\"2\" label=\"Option 2\">Option 2</ae-select-option>\n * </ae-select>\n *\n */\nclass Select extends AeicoField<SelectOptionValue | SelectMultiValue> {\n protected fieldElement: HTMLInputElement | null = null;\n private _isOpen = false;\n private _triggerEl: HTMLElement | null = null;\n private _dropdownEl: HTMLElement | null = null;\n private _slotEl: HTMLSlotElement | null = null;\n private _slotOptionData: Array<{ value: string; label: string }> = [];\n private _selectedListEl: HTMLElement | null = null;\n\n static tagName = 'select';\n\n @prop({ type: Boolean, observe: false, reflect: false })\n accessor _expanded: boolean = false;\n\n @prop({ type: Array })\n accessor options: SelectOptions | undefined;\n\n @prop({ type: String })\n accessor position: SelectPosition | undefined;\n\n @prop({ type: String })\n accessor placeholder: string | undefined;\n\n @prop({ type: Boolean })\n accessor multiple: boolean = false;\n\n @prop({ type: Boolean })\n accessor expandable: boolean = false;\n\n // Override base class value prop to support both string and array (multi-select).\n // Uses field decorator (not accessor) because TypeScript TS2611 disallows overriding\n // a parent class data property (declare value?) with an accessor in a subclass.\n @prop({\n type: String,\n parser: (v) => {\n if (v === null || v === undefined) return undefined;\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n },\n formatter: (v) => {\n if (v === null || v === undefined) return '';\n if (Array.isArray(v)) return JSON.stringify(v);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return String(v);\n },\n })\n override value: SelectOptionValue | SelectMultiValue | undefined = undefined;\n\n // Override base class defaultValue so arrays are JSON-serialized to the attribute,\n // matching the value prop's parser/formatter. Without this override, setting\n // defaultValue = ['a', 'b'] would be serialized as String(['a','b']) = \"a,b\",\n // and reset() would restore a single string \"a,b\" instead of the array.\n @prop({\n type: String,\n parser: (v) => {\n if (v === null || v === undefined) return undefined;\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n },\n formatter: (v) => {\n if (v === null || v === undefined) return '';\n if (Array.isArray(v)) return JSON.stringify(v);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return String(v);\n },\n })\n override defaultValue: SelectOptionValue | SelectMultiValue | undefined = undefined;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n protected writeValue(_value: SelectOptionValue | SelectMultiValue): void {\n // Reactive re-render via this.value prop change handles the display update\n }\n\n protected getValue(): SelectOptionValue | SelectMultiValue {\n if (this.multiple) return this._getMultiValues();\n\n return this.value || '';\n }\n\n private _getMultiValues(): SelectMultiValue {\n if (Array.isArray(this.value)) return this.value;\n if (this.value != null && this.value !== '') return [this.value];\n\n return [];\n }\n\n protected onDisabledChanged(_newValue: boolean): void {\n // disabled is a reactive prop — render() already picks it up automatically\n }\n\n protected onUpdated(changedProps: Map<string, unknown>): void {\n super.onUpdated(changedProps);\n if (!this.multiple || this.expandable) {\n if (this._expanded) this._expanded = false;\n return;\n }\n const list = this._selectedListEl;\n if (!list) return;\n const overflowing = list.scrollWidth > list.clientWidth + 1;\n if (overflowing !== this._expanded) this._expanded = overflowing;\n }\n\n private _findLabel(value: SelectOptionValue): string {\n const strVal = String(value);\n if (Array.isArray(this.options)) {\n for (const opt of this.options) {\n if (this._isSelectOption(opt)) {\n if (String(opt.value) === strVal) return opt.label;\n } else {\n if (String(opt) === strVal) return strVal;\n }\n }\n }\n\n for (const opt of this._slotOptionData) {\n if (opt.value === strVal) return opt.label;\n }\n\n return strVal;\n }\n\n private _onSlotChange(): void {\n if (!this._slotEl) return;\n const data: Array<{ value: string; label: string }> = [];\n for (const el of this._slotEl.assignedElements({ flatten: true })) {\n if (el.tagName.toLowerCase() !== 'ae-select-option') continue;\n const optEl = el as SelectOptionElement;\n data.push({\n value: optEl.value ?? el.getAttribute('value') ?? '',\n label: optEl.label || el.textContent?.trim() || '',\n });\n }\n this._slotOptionData = data;\n this.update();\n }\n\n private _toggleDropdown(): void {\n if (this._isOpen) {\n this._closeDropdown();\n } else {\n this._openDropdown();\n }\n }\n\n private _openDropdown(): void {\n this._isOpen = true;\n this._syncOpenState();\n }\n\n private _closeDropdown(): void {\n this._isOpen = false;\n this._syncOpenState();\n }\n\n private _syncOpenState(): void {\n this._triggerEl?.classList.toggle('open', this._isOpen);\n this._dropdownEl?.classList.toggle('open', this._isOpen);\n }\n\n private readonly _handleOutsideClick = (e: Event): void => {\n if (!e.composedPath().includes(this)) {\n this._closeDropdown();\n }\n };\n\n private readonly _handleOptionSelect = (e: Event): void => {\n const { value, label } = (e as CustomEvent<{ value: string; label: string }>).detail;\n if (!this._slotOptionData.find((o) => o.value === value)) {\n this._slotOptionData = [\n ...this._slotOptionData.filter((o) => o.value !== value),\n { value, label },\n ];\n }\n if (this.multiple) {\n const current = this._getMultiValues();\n const idx = current.findIndex((v) => String(v) === value);\n const next: SelectMultiValue =\n idx >= 0 ? current.filter((_, i) => i !== idx) : [...current, value];\n\n this.setValue(next, { silent: false, action: 'change' });\n } else {\n this.setValue(value, { silent: false, action: 'change' });\n this._closeDropdown();\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n this.addEventListener('selectoption', this._handleOptionSelect);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n this.removeEventListener('selectoption', this._handleOptionSelect);\n }\n\n private _syncSlotOptionsSelected(): void {\n if (!this._slotEl) return;\n const multiValues = this._getMultiValues();\n for (const el of this._slotEl.assignedElements({ flatten: true })) {\n if (el.tagName.toLowerCase() !== 'ae-select-option') continue;\n const optEl = el as SelectOptionElement;\n const optVal = optEl.value ?? el.getAttribute('value') ?? '';\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === optVal)\n : this.value != null && this.value !== '' && String(this.value) === optVal;\n // undefined triggers removeAttribute via reactive setter\n // (null would work too but undefined is type-safe for boolean | undefined)\n optEl.selected = isSelected ? true : undefined;\n }\n }\n\n render() {\n const position = this.position || 'bottom';\n const multiValues = this.multiple ? this._getMultiValues() : [];\n const hasMultiSelection = this.multiple && multiValues.length > 0;\n const selectedLabel =\n !this.multiple && this.value != null && this.value !== ''\n ? this._findLabel(this.value as SelectOptionValue)\n : '';\n const isDisabled = Boolean(this.disabled);\n this._selectedListEl = null;\n\n this._syncSlotOptionsSelected();\n\n return html(({ div, span, slot }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div(\n {\n id,\n 'aria-labelledby': this.label ? `${id}-label` : undefined,\n className: 'container field-body',\n },\n () => {\n this._triggerEl = div(\n {\n className: `trigger${this._isOpen ? ' open' : ''}${isDisabled ? ' disabled' : ''}`,\n '@click': () => {\n if (isDisabled) return;\n\n this._toggleDropdown();\n },\n },\n () => {\n if (this.multiple) {\n if (hasMultiSelection) {\n this._selectedListEl = div(\n {\n className: `selected-list${!this.expandable ? ' selected-list--clipped' : ''}`,\n },\n () => {\n for (const v of multiValues) {\n const lbl = this._findLabel(v);\n tags.aeTag({\n key: `sel-${v}`,\n color: 'default',\n variant: 'faint',\n dismissible: true,\n disabled: isDisabled,\n textContent: lbl,\n '@dismiss': (e: Event) => {\n e.stopPropagation();\n if (isDisabled) return;\n\n const next = multiValues.filter((item) => String(item) !== String(v));\n this.setValue(next, { silent: false, action: 'change' });\n },\n });\n }\n },\n );\n if (!this.expandable && this._expanded) {\n span({ className: 'overflow-indicator', textContent: '…' });\n }\n } else {\n span({ className: 'value placeholder', textContent: this.placeholder || '' });\n }\n } else {\n if (selectedLabel) {\n span({ className: 'value', textContent: selectedLabel });\n } else {\n span({ className: 'value placeholder', textContent: this.placeholder || '' });\n }\n }\n span({ className: 'arrow', textContent: '▾' });\n },\n );\n\n this._dropdownEl = div(\n {\n className: `dropdown position-${position}${this._isOpen ? ' open' : ''}`,\n },\n () => {\n this._renderProgrammaticOptions();\n this._slotEl = slot({\n '@slotchange': () => this._onSlotChange(),\n });\n },\n );\n\n this.renderActionButtons();\n },\n );\n this.renderHelperText();\n this.renderError();\n\n // Visually-hidden input so native form constraint validation works for `required`.\n // type=\"text\" (not \"hidden\") is required — type=\"hidden\" is exempt from constraint validation.\n const currentValue =\n this.value != null &&\n this.value !== '' &&\n !(Array.isArray(this.value) && this.value.length === 0)\n ? String(this.value)\n : '';\n this.fieldElement = tags.input({\n key: 'validation-input',\n type: 'text',\n 'aria-hidden': 'true',\n tabIndex: -1,\n required: Boolean(this.required),\n value: currentValue,\n style: {\n position: 'absolute',\n width: '0',\n height: '0',\n opacity: '0',\n margin: '0',\n padding: '0',\n border: '0',\n pointerEvents: 'none',\n overflow: 'hidden',\n },\n });\n });\n }\n\n private _renderProgrammaticOptions(): void {\n if (!Array.isArray(this.options)) return;\n\n const { aeSelectOption } = tags;\n const multiValues = this.multiple ? this._getMultiValues() : [];\n for (const opt of this.options) {\n if (this._isSelectOption(opt)) {\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === String(opt.value))\n : this.value != null && String(opt.value) === String(this.value);\n aeSelectOption({\n key: `opt-${opt.value}`,\n value: String(opt.value),\n label: opt.label,\n textContent: opt.label,\n selected: isSelected ? true : undefined,\n });\n } else {\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === String(opt))\n : this.value != null && String(opt) === String(this.value);\n aeSelectOption({\n key: `opt-${opt}`,\n value: String(opt),\n textContent: String(opt),\n selected: isSelected ? true : undefined,\n });\n }\n }\n }\n\n private _isSelectOption(option: unknown): option is SelectOption {\n return (\n option !== null &&\n typeof option === 'object' &&\n typeof (option as SelectOption).label === 'string' &&\n (typeof (option as SelectOption).value === 'string' ||\n typeof (option as SelectOption).value === 'number')\n );\n }\n}\n\nSelect.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-select': Select;\n }\n}\n\nexport default Select;\nexport type SelectProps = InferProps<typeof Select>;\n"],"names":["prop","_a","html","tags","variables","sizeCSS","fieldLabelCSS","actionButtonCSS"],"mappings":"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"}