aeico-components 0.1.6 → 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 (380) 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 +533 -0
  35. package/dist/detail-group.cjs.map +7 -0
  36. package/dist/detail-group.js +477 -0
  37. package/dist/detail-group.js.map +7 -0
  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 +6484 -188
  67. package/dist/index.cjs.map +7 -1
  68. package/dist/index.js +6095 -147
  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 +887 -0
  79. package/dist/number-input.cjs.map +7 -0
  80. package/dist/number-input.js +820 -0
  81. package/dist/number-input.js.map +7 -0
  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/card/defines.d.ts +1 -1
  141. package/dist/types/detail/defines.d.ts +1 -1
  142. package/dist/types/dialog/dialog.d.ts +1 -0
  143. package/dist/types/drawer/drawer.d.ts +2 -0
  144. package/dist/types/icon/defines.d.ts +7 -1
  145. package/dist/types/icon/index.d.ts +1 -1
  146. package/dist/types/menu/defines.d.ts +1 -0
  147. package/dist/types/menu/menu-item.d.ts +1 -0
  148. package/dist/types/menu/menu.d.ts +1 -0
  149. package/dist/types/styles/layout.d.ts +2 -0
  150. package/dist/types/styles/radius.d.ts +2 -0
  151. package/dist/types/styles/variables.d.ts +2 -0
  152. package/dist/types/tabs/defines.d.ts +1 -0
  153. package/dist/types/tabs/tabs.d.ts +3 -0
  154. package/package.json +31 -7
  155. package/src/alert/alert.ts +3 -3
  156. package/src/badge/badge.ts +4 -4
  157. package/src/breadcrumb/breadcrumb-item.ts +2 -2
  158. package/src/breadcrumb/breadcrumb.ts +3 -3
  159. package/src/button/button.ts +4 -4
  160. package/src/button-group/button-group.ts +8 -9
  161. package/src/card/card.ts +3 -3
  162. package/src/card/defines.ts +1 -1
  163. package/src/checkbox/checkbox.ts +6 -6
  164. package/src/copy-button/copy-button.ts +13 -9
  165. package/src/detail/defines.ts +1 -1
  166. package/src/detail/detail.ts +3 -3
  167. package/src/detail-group/detail-group.ts +2 -2
  168. package/src/dialog/dialog.ts +15 -14
  169. package/src/divider/divider.ts +3 -3
  170. package/src/drawer/drawer.ts +28 -11
  171. package/src/dropdown/dropdown-item.ts +2 -2
  172. package/src/dropdown/dropdown.ts +2 -2
  173. package/src/icon/defines.ts +8 -1
  174. package/src/icon/icon.ts +32 -14
  175. package/src/icon/index.ts +1 -1
  176. package/src/icon/registry.ts +2 -2
  177. package/src/menu/defines.ts +1 -0
  178. package/src/menu/menu-item.ts +14 -4
  179. package/src/menu/menu.ts +5 -2
  180. package/src/navbar/navbar.ts +3 -3
  181. package/src/number-input/number-input.ts +5 -5
  182. package/src/pagination/pagination.ts +3 -3
  183. package/src/progress-bar/progress-bar.ts +3 -3
  184. package/src/radio-group/radio-group.ts +12 -8
  185. package/src/select/select-option.ts +2 -2
  186. package/src/select/select.ts +5 -5
  187. package/src/slider/slider.ts +6 -6
  188. package/src/spinner/spinner.ts +4 -4
  189. package/src/styles/color.css +91 -91
  190. package/src/styles/components/action-button.css +12 -12
  191. package/src/styles/components/alert.css +22 -28
  192. package/src/styles/components/badge.css +13 -20
  193. package/src/styles/components/breadcrumb-item.css +7 -7
  194. package/src/styles/components/button-group.css +2 -0
  195. package/src/styles/components/button.css +39 -50
  196. package/src/styles/components/card.css +69 -30
  197. package/src/styles/components/checkbox.css +22 -16
  198. package/src/styles/components/copy-button.css +22 -33
  199. package/src/styles/components/detail.css +51 -39
  200. package/src/styles/components/dialog.css +11 -11
  201. package/src/styles/components/divider.css +3 -3
  202. package/src/styles/components/drawer.css +59 -27
  203. package/src/styles/components/dropdown-item.css +7 -8
  204. package/src/styles/components/dropdown.css +3 -4
  205. package/src/styles/components/field-label.css +13 -13
  206. package/src/styles/components/icon-button.css +25 -36
  207. package/src/styles/components/icon.css +1 -1
  208. package/src/styles/components/menu-item.css +13 -8
  209. package/src/styles/components/navbar.css +23 -44
  210. package/src/styles/components/number-input.css +27 -36
  211. package/src/styles/components/pagination.css +31 -31
  212. package/src/styles/components/progress-bar.css +2 -3
  213. package/src/styles/components/radio-group.css +88 -83
  214. package/src/styles/components/select-option.css +5 -5
  215. package/src/styles/components/select.css +21 -33
  216. package/src/styles/components/slider.css +56 -34
  217. package/src/styles/components/spinner.css +7 -9
  218. package/src/styles/components/switch.css +21 -19
  219. package/src/styles/components/tab.css +4 -5
  220. package/src/styles/components/tabs.css +48 -1
  221. package/src/styles/components/tag.css +14 -21
  222. package/src/styles/components/text-input.css +13 -22
  223. package/src/styles/components/textarea.css +12 -21
  224. package/src/styles/components/tooltip.css +4 -5
  225. package/src/styles/components/tree-item.css +12 -12
  226. package/src/styles/layout.css +5 -2
  227. package/src/styles/radius.css +25 -0
  228. package/src/styles/size.css +7 -7
  229. package/src/styles/variables.css +271 -247
  230. package/src/switch/switch.ts +6 -6
  231. package/src/tabs/defines.ts +1 -0
  232. package/src/tabs/tab-panel.ts +1 -1
  233. package/src/tabs/tab.ts +1 -1
  234. package/src/tabs/tabs.ts +14 -2
  235. package/src/tag/tag.ts +4 -4
  236. package/src/text-input/text-input.ts +5 -5
  237. package/src/textarea/textarea.ts +5 -5
  238. package/src/tooltip/tooltip.ts +2 -2
  239. package/src/tree/tree-item.ts +2 -2
  240. package/src/tree/tree.ts +2 -2
  241. package/dist/chunks/action-button.cjs +0 -296
  242. package/dist/chunks/action-button.cjs.map +0 -1
  243. package/dist/chunks/action-button.js +0 -297
  244. package/dist/chunks/action-button.js.map +0 -1
  245. package/dist/chunks/aeico-component.cjs +0 -17
  246. package/dist/chunks/aeico-component.cjs.map +0 -1
  247. package/dist/chunks/aeico-component.js +0 -18
  248. package/dist/chunks/aeico-component.js.map +0 -1
  249. package/dist/chunks/alert.cjs +0 -170
  250. package/dist/chunks/alert.cjs.map +0 -1
  251. package/dist/chunks/alert.js +0 -171
  252. package/dist/chunks/alert.js.map +0 -1
  253. package/dist/chunks/badge.cjs +0 -85
  254. package/dist/chunks/badge.cjs.map +0 -1
  255. package/dist/chunks/badge.js +0 -86
  256. package/dist/chunks/badge.js.map +0 -1
  257. package/dist/chunks/breadcrumb-item.cjs +0 -261
  258. package/dist/chunks/breadcrumb-item.cjs.map +0 -1
  259. package/dist/chunks/breadcrumb-item.js +0 -262
  260. package/dist/chunks/breadcrumb-item.js.map +0 -1
  261. package/dist/chunks/button-group.cjs +0 -79
  262. package/dist/chunks/button-group.cjs.map +0 -1
  263. package/dist/chunks/button-group.js +0 -80
  264. package/dist/chunks/button-group.js.map +0 -1
  265. package/dist/chunks/button.cjs +0 -348
  266. package/dist/chunks/button.cjs.map +0 -1
  267. package/dist/chunks/button.js +0 -349
  268. package/dist/chunks/button.js.map +0 -1
  269. package/dist/chunks/card.cjs +0 -93
  270. package/dist/chunks/card.cjs.map +0 -1
  271. package/dist/chunks/card.js +0 -94
  272. package/dist/chunks/card.js.map +0 -1
  273. package/dist/chunks/checkbox.cjs +0 -86
  274. package/dist/chunks/checkbox.cjs.map +0 -1
  275. package/dist/chunks/checkbox.js +0 -87
  276. package/dist/chunks/checkbox.js.map +0 -1
  277. package/dist/chunks/color.cjs +0 -4
  278. package/dist/chunks/color.cjs.map +0 -1
  279. package/dist/chunks/color.js +0 -5
  280. package/dist/chunks/color.js.map +0 -1
  281. package/dist/chunks/copy-button.cjs +0 -168
  282. package/dist/chunks/copy-button.cjs.map +0 -1
  283. package/dist/chunks/copy-button.js +0 -169
  284. package/dist/chunks/copy-button.js.map +0 -1
  285. package/dist/chunks/detail.cjs +0 -146
  286. package/dist/chunks/detail.cjs.map +0 -1
  287. package/dist/chunks/detail.js +0 -147
  288. package/dist/chunks/detail.js.map +0 -1
  289. package/dist/chunks/dialog.cjs +0 -117
  290. package/dist/chunks/dialog.cjs.map +0 -1
  291. package/dist/chunks/dialog.js +0 -118
  292. package/dist/chunks/dialog.js.map +0 -1
  293. package/dist/chunks/divider.cjs +0 -80
  294. package/dist/chunks/divider.cjs.map +0 -1
  295. package/dist/chunks/divider.js +0 -81
  296. package/dist/chunks/divider.js.map +0 -1
  297. package/dist/chunks/drawer.cjs +0 -180
  298. package/dist/chunks/drawer.cjs.map +0 -1
  299. package/dist/chunks/drawer.js +0 -181
  300. package/dist/chunks/drawer.js.map +0 -1
  301. package/dist/chunks/dropdown-button.cjs +0 -534
  302. package/dist/chunks/dropdown-button.cjs.map +0 -1
  303. package/dist/chunks/dropdown-button.js +0 -535
  304. package/dist/chunks/dropdown-button.js.map +0 -1
  305. package/dist/chunks/icon-button.cjs +0 -35
  306. package/dist/chunks/icon-button.cjs.map +0 -1
  307. package/dist/chunks/icon-button.js +0 -36
  308. package/dist/chunks/icon-button.js.map +0 -1
  309. package/dist/chunks/icon.cjs +0 -108
  310. package/dist/chunks/icon.cjs.map +0 -1
  311. package/dist/chunks/icon.js +0 -109
  312. package/dist/chunks/icon.js.map +0 -1
  313. package/dist/chunks/menu.cjs +0 -396
  314. package/dist/chunks/menu.cjs.map +0 -1
  315. package/dist/chunks/menu.js +0 -397
  316. package/dist/chunks/menu.js.map +0 -1
  317. package/dist/chunks/navbar.cjs +0 -142
  318. package/dist/chunks/navbar.cjs.map +0 -1
  319. package/dist/chunks/navbar.js +0 -143
  320. package/dist/chunks/navbar.js.map +0 -1
  321. package/dist/chunks/pagination.cjs +0 -475
  322. package/dist/chunks/pagination.cjs.map +0 -1
  323. package/dist/chunks/pagination.js +0 -476
  324. package/dist/chunks/pagination.js.map +0 -1
  325. package/dist/chunks/progress-bar.cjs +0 -101
  326. package/dist/chunks/progress-bar.cjs.map +0 -1
  327. package/dist/chunks/progress-bar.js +0 -102
  328. package/dist/chunks/progress-bar.js.map +0 -1
  329. package/dist/chunks/radio.cjs +0 -185
  330. package/dist/chunks/radio.cjs.map +0 -1
  331. package/dist/chunks/radio.js +0 -186
  332. package/dist/chunks/radio.js.map +0 -1
  333. package/dist/chunks/select.cjs +0 -381
  334. package/dist/chunks/select.cjs.map +0 -1
  335. package/dist/chunks/select.js +0 -382
  336. package/dist/chunks/select.js.map +0 -1
  337. package/dist/chunks/size.cjs +0 -4
  338. package/dist/chunks/size.cjs.map +0 -1
  339. package/dist/chunks/size.js +0 -5
  340. package/dist/chunks/size.js.map +0 -1
  341. package/dist/chunks/slider.cjs +0 -611
  342. package/dist/chunks/slider.cjs.map +0 -1
  343. package/dist/chunks/slider.js +0 -612
  344. package/dist/chunks/slider.js.map +0 -1
  345. package/dist/chunks/spinner.cjs +0 -102
  346. package/dist/chunks/spinner.cjs.map +0 -1
  347. package/dist/chunks/spinner.js +0 -103
  348. package/dist/chunks/spinner.js.map +0 -1
  349. package/dist/chunks/switch.cjs +0 -167
  350. package/dist/chunks/switch.cjs.map +0 -1
  351. package/dist/chunks/switch.js +0 -168
  352. package/dist/chunks/switch.js.map +0 -1
  353. package/dist/chunks/tab-panel.cjs +0 -165
  354. package/dist/chunks/tab-panel.cjs.map +0 -1
  355. package/dist/chunks/tab-panel.js +0 -166
  356. package/dist/chunks/tab-panel.js.map +0 -1
  357. package/dist/chunks/tag.cjs +0 -108
  358. package/dist/chunks/tag.cjs.map +0 -1
  359. package/dist/chunks/tag.js +0 -109
  360. package/dist/chunks/tag.js.map +0 -1
  361. package/dist/chunks/text-input.cjs +0 -54
  362. package/dist/chunks/text-input.cjs.map +0 -1
  363. package/dist/chunks/text-input.js +0 -55
  364. package/dist/chunks/text-input.js.map +0 -1
  365. package/dist/chunks/textarea.cjs +0 -137
  366. package/dist/chunks/textarea.cjs.map +0 -1
  367. package/dist/chunks/textarea.js +0 -138
  368. package/dist/chunks/textarea.js.map +0 -1
  369. package/dist/chunks/tooltip.cjs +0 -293
  370. package/dist/chunks/tooltip.cjs.map +0 -1
  371. package/dist/chunks/tooltip.js +0 -294
  372. package/dist/chunks/tooltip.js.map +0 -1
  373. package/dist/chunks/tree.cjs +0 -468
  374. package/dist/chunks/tree.cjs.map +0 -1
  375. package/dist/chunks/tree.js +0 -469
  376. package/dist/chunks/tree.js.map +0 -1
  377. package/dist/chunks/variables.cjs +0 -372
  378. package/dist/chunks/variables.cjs.map +0 -1
  379. package/dist/chunks/variables.js +0 -373
  380. package/dist/chunks/variables.js.map +0 -1
package/dist/slider.cjs CHANGED
@@ -1,6 +1,1422 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const slider = require("./chunks/slider.cjs");
4
- exports.Slider = slider.Slider;
5
- exports.default = slider.Slider;
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
9
+ var __typeError = (msg) => {
10
+ throw TypeError(msg);
11
+ };
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
+ var __commonJS = (cb, mod) => function __require() {
15
+ try {
16
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
17
+ } catch (e) {
18
+ throw mod = 0, e;
19
+ }
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
24
+ };
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
34
+ // If the importer is in node compatibility mode or this is not an ESM
35
+ // file that has been converted to a CommonJS file using a Babel-
36
+ // compatible transform (i.e. "__esModule" has not been set), then set
37
+ // "default" to the CommonJS "module.exports" for node compatibility.
38
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
39
+ mod
40
+ ));
41
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
42
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
43
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
44
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
45
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
46
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
47
+ var __runInitializers = (array, flags, self, value) => {
48
+ 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);
49
+ return value;
50
+ };
51
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
52
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
53
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
54
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
55
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
56
+ return __privateGet(this, extra);
57
+ }, set [name](x) {
58
+ return __privateSet(this, extra, x);
59
+ } }, name));
60
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
61
+ for (var i = decorators.length - 1; i >= 0; i--) {
62
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
63
+ if (k) {
64
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
65
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
66
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
67
+ }
68
+ 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;
69
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
70
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
71
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
72
+ }
73
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
74
+ };
75
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
76
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
77
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
78
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
79
+ 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);
80
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
81
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
82
+
83
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/slider.css
84
+ var require_slider = __commonJS({
85
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/slider.css"(exports2, module2) {
86
+ module2.exports = `:host {
87
+ display: block;
88
+ flex: 1;
89
+ min-width: 0;
90
+ font-size: var(--ae-size-base);
91
+ }
92
+
93
+ .range-container {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: 6px;
97
+ width: 100%;
98
+ height: 26px;
99
+ }
100
+
101
+ input[type="range"] {
102
+ flex: 1;
103
+ margin: 0;
104
+ }
105
+
106
+ .input-range,
107
+ .slider-input,
108
+ input[type="range"] {
109
+ -webkit-appearance: none;
110
+ appearance: none;
111
+ width: 100%;
112
+ height: 0.333em;
113
+ border-radius: var(--ae-radius-xs);
114
+ background: var(--ae-border-subtle);
115
+ outline: none;
116
+ cursor: pointer;
117
+ margin: 0;
118
+ }
119
+
120
+ .input-range {
121
+ margin: 10px 0;
122
+ }
123
+
124
+ .input-range::-webkit-slider-thumb,
125
+ .slider-input::-webkit-slider-thumb,
126
+ input[type="range"]::-webkit-slider-thumb {
127
+ -webkit-appearance: none;
128
+ appearance: none;
129
+ width: 1.167em;
130
+ height: 1.167em;
131
+ border-radius: var(--ae-radius-circle);
132
+ background: var(--ae-color-solid);
133
+ cursor: pointer;
134
+ transition: background 0.12s, transform 0.12s;
135
+ }
136
+
137
+ .input-range::-webkit-slider-thumb:hover,
138
+ .slider-input::-webkit-slider-thumb:hover,
139
+ input[type="range"]:hover::-webkit-slider-thumb {
140
+ background: var(--ae-color-solid-hover);
141
+ transform: scale(1.1);
142
+ }
143
+
144
+ .input-range::-webkit-slider-thumb:active,
145
+ .slider-input::-webkit-slider-thumb:active,
146
+ input[type="range"]:active::-webkit-slider-thumb {
147
+ background: var(--ae-color-solid-hover);
148
+ transform: scale(1.2);
149
+ }
150
+
151
+ .input-range:focus::-webkit-slider-thumb,
152
+ .slider-input:focus::-webkit-slider-thumb,
153
+ input[type="range"]:focus::-webkit-slider-thumb {
154
+ background: var(--ae-color-solid);
155
+ outline: none;
156
+ box-shadow: none;
157
+ }
158
+
159
+ .input-range:focus:hover::-webkit-slider-thumb,
160
+ .slider-input:focus:hover::-webkit-slider-thumb,
161
+ input[type="range"]:focus:hover::-webkit-slider-thumb {
162
+ background: var(--ae-color-solid-hover);
163
+ outline: none;
164
+ box-shadow: none;
165
+ }
166
+
167
+ .input-range:focus:active::-webkit-slider-thumb,
168
+ .slider-input:focus:active::-webkit-slider-thumb,
169
+ input[type="range"]:focus:active::-webkit-slider-thumb {
170
+ background: var(--ae-color-solid-hover);
171
+ outline: none;
172
+ box-shadow: none;
173
+ }
174
+
175
+ .input-range::-moz-range-thumb,
176
+ .slider-input::-moz-range-thumb,
177
+ input[type="range"]::-moz-range-thumb {
178
+ width: 1.167em;
179
+ height: 1.167em;
180
+ border: none;
181
+ border-radius: var(--ae-radius-circle);
182
+ background: var(--ae-color-solid);
183
+ cursor: pointer;
184
+ transition: background 0.12s, transform 0.12s;
185
+ }
186
+
187
+ .input-range::-moz-range-thumb:hover,
188
+ .slider-input::-moz-range-thumb:hover,
189
+ input[type="range"]:hover::-moz-range-thumb {
190
+ background: var(--ae-color-solid-hover);
191
+ transform: scale(1.1);
192
+ }
193
+
194
+ .input-range::-moz-range-thumb:active,
195
+ .slider-input::-moz-range-thumb:active,
196
+ input[type="range"]:active::-moz-range-thumb {
197
+ background: var(--ae-color-solid-hover);
198
+ transform: scale(1.2);
199
+ }
200
+
201
+ .input-range:focus::-moz-range-thumb,
202
+ .slider-input:focus::-moz-range-thumb,
203
+ input[type="range"]:focus::-moz-range-thumb {
204
+ background: var(--ae-color-solid);
205
+ outline: none;
206
+ box-shadow: none;
207
+ }
208
+
209
+ .input-range:focus:hover::-moz-range-thumb,
210
+ .slider-input:focus:hover::-moz-range-thumb,
211
+ input[type="range"]:focus:hover::-moz-range-thumb {
212
+ background: var(--ae-color-solid-hover);
213
+ outline: none;
214
+ box-shadow: none;
215
+ }
216
+
217
+ .input-range:focus:active::-moz-range-thumb,
218
+ .slider-input:focus:active::-moz-range-thumb,
219
+ input[type="range"]:focus:active::-moz-range-thumb {
220
+ background: var(--ae-color-solid-hover);
221
+ outline: none;
222
+ box-shadow: none;
223
+ }
224
+
225
+ .input-range:disabled,
226
+ .slider-input:disabled,
227
+ input[type="range"]:disabled {
228
+ opacity: 0.5;
229
+ cursor: not-allowed;
230
+ }
231
+
232
+ .input-range:disabled::-webkit-slider-thumb,
233
+ .slider-input:disabled::-webkit-slider-thumb,
234
+ input[type="range"]:disabled::-webkit-slider-thumb {
235
+ cursor: not-allowed;
236
+ }
237
+
238
+ .input-range:disabled::-moz-range-thumb,
239
+ .slider-input:disabled::-moz-range-thumb,
240
+ input[type="range"]:disabled::-moz-range-thumb {
241
+ cursor: not-allowed;
242
+ }
243
+
244
+ .value-label {
245
+ min-width: 14px;
246
+ text-align: center;
247
+ font-size: 12px;
248
+ color: var(--ae-color-text-muted);
249
+ font-weight: 500;
250
+ font-variant-numeric: tabular-nums;
251
+ pointer-events: none;
252
+ user-select: none;
253
+ }
254
+
255
+ .input-range,
256
+ .slider-input,
257
+ input[type="range"] {
258
+ height: 0.333em;
259
+ }
260
+
261
+ .input-range::-webkit-slider-thumb,
262
+ .slider-input::-webkit-slider-thumb,
263
+ input[type="range"]::-webkit-slider-thumb {
264
+ width: 1.167em;
265
+ height: 1.167em;
266
+ }
267
+
268
+ .input-range::-moz-range-thumb,
269
+ .slider-input::-moz-range-thumb,
270
+ input[type="range"]::-moz-range-thumb {
271
+ width: 1.167em;
272
+ height: 1.167em;
273
+ }
274
+
275
+ .value-label {
276
+ font-size: 1em;
277
+ }
278
+
279
+ .value-input {
280
+ width: 56px;
281
+ padding: 0 4px;
282
+ height: 22px;
283
+ line-height: 20px;
284
+ border: 1px solid var(--ae-border-subtle);
285
+ border-radius: var(--ae-radius-sm);
286
+ background: transparent;
287
+ color: var(--ae-color-text);
288
+ font-size: 12px;
289
+ text-align: center;
290
+ outline: none;
291
+ flex-shrink: 0;
292
+ box-sizing: border-box;
293
+ }
294
+
295
+ .value-input:focus {
296
+ border-color: var(--ae-color-solid);
297
+ }
298
+
299
+ .value-input:disabled {
300
+ opacity: 0.4;
301
+ cursor: not-allowed;
302
+ }
303
+
304
+ .range-container .action-controls {
305
+ display: flex;
306
+ align-self: center;
307
+ border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));
308
+ border-radius: var(--ae-radius-sm);
309
+ overflow: hidden;
310
+ background: var(--field-action-bg, var(--ae-surface-base));
311
+ height: 22px;
312
+ box-sizing: border-box;
313
+ }
314
+
315
+ .range-container .action-controls .action-btn {
316
+ padding: 0 0.35em;
317
+ font-size: 12px;
318
+ }
319
+
320
+ .range-container:has(.value-input) .action-controls {
321
+ border-radius: var(--ae-radius-sm) 0 0 var(--ae-radius-sm);
322
+ }
323
+
324
+ .range-container:has(.action-controls) .value-input {
325
+ margin-left: -7px;
326
+ border-radius: 0 var(--ae-radius-sm) var(--ae-radius-sm) 0;
327
+ }
328
+
329
+ :host([tracked]) .input-range,
330
+ :host([tracked]) .slider-input,
331
+ :host([tracked]) input[type="range"] {
332
+ background: linear-gradient(
333
+ to right,
334
+ var(--ae-color-solid) var(--fill-pct, 0%),
335
+ var(--ae-border-subtle) var(--fill-pct, 0%)
336
+ );
337
+ }
338
+
339
+ .range-wrapper {
340
+ flex: 1;
341
+ min-width: 0;
342
+ display: flex;
343
+ flex-direction: column;
344
+ position: relative;
345
+ }
346
+
347
+ .range-wrapper input[type="range"] {
348
+ width: 100%;
349
+ flex: none;
350
+ }
351
+
352
+ .marks-container {
353
+ position: absolute;
354
+ top: 100%;
355
+ left: 7px;
356
+ right: 7px;
357
+ height: 18px;
358
+ margin-top: 2px;
359
+ overflow: visible;
360
+ }
361
+
362
+ .mark {
363
+ position: absolute;
364
+ transform: translateX(-50%);
365
+ display: flex;
366
+ flex-direction: column;
367
+ align-items: center;
368
+ gap: 2px;
369
+ pointer-events: none;
370
+ user-select: none;
371
+ }
372
+
373
+ .mark::before {
374
+ content: '';
375
+ display: block;
376
+ width: 1px;
377
+ height: 4px;
378
+ background: var(--ae-border-default, var(--ae-border-subtle));
379
+ border-radius: 1px;
380
+ }
381
+
382
+ .mark-label {
383
+ font-size: 10px;
384
+ color: var(--ae-color-text-muted);
385
+ white-space: nowrap;
386
+ }
387
+
388
+ :host([marks]) .range-container {
389
+ padding-bottom: 24px;
390
+ height: auto;
391
+ }
392
+ `;
393
+ }
394
+ });
395
+
396
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css
397
+ var require_variables = __commonJS({
398
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css"(exports2, module2) {
399
+ module2.exports = `:root,
400
+ :host {
401
+ --ae-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
402
+ "Noto Sans", "Liberation Sans", Arial, sans-serif,
403
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
404
+ --ae-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas,
405
+ "Liberation Mono", "Courier New", monospace;
406
+ font-family: var(--ae-font-sans-serif);
407
+ --ae-blue: #0e639c;
408
+ --ae-green: #28a745;
409
+ --ae-red: #dc3545;
410
+ --ae-yellow: #ffc107;
411
+ --ae-cyan: #17a2b8;
412
+ --ae-gray: #6e6e6e;
413
+ --ae-slate: #64748b;
414
+ --ae-dark: #343a40;
415
+ --ae-light: #f8f9fa;
416
+ }
417
+
418
+ :root,
419
+ :host {
420
+ /* Blue */
421
+ --ae-blue-100: color-mix(in srgb, var(--ae-blue) 20%, white);
422
+ --ae-blue-200: color-mix(in srgb, var(--ae-blue) 40%, white);
423
+ --ae-blue-300: color-mix(in srgb, var(--ae-blue) 60%, white);
424
+ --ae-blue-400: color-mix(in srgb, var(--ae-blue) 80%, white);
425
+ --ae-blue-500: var(--ae-blue);
426
+ --ae-blue-600: color-mix(in srgb, var(--ae-blue) 80%, black);
427
+ --ae-blue-700: color-mix(in srgb, var(--ae-blue) 60%, black);
428
+ --ae-blue-800: color-mix(in srgb, var(--ae-blue) 40%, black);
429
+ --ae-blue-900: color-mix(in srgb, var(--ae-blue) 20%, black);
430
+
431
+ /* Green */
432
+ --ae-green-100: color-mix(in srgb, var(--ae-green) 20%, white);
433
+ --ae-green-200: color-mix(in srgb, var(--ae-green) 40%, white);
434
+ --ae-green-300: color-mix(in srgb, var(--ae-green) 60%, white);
435
+ --ae-green-400: color-mix(in srgb, var(--ae-green) 80%, white);
436
+ --ae-green-500: var(--ae-green);
437
+ --ae-green-600: color-mix(in srgb, var(--ae-green) 80%, black);
438
+ --ae-green-700: color-mix(in srgb, var(--ae-green) 60%, black);
439
+ --ae-green-800: color-mix(in srgb, var(--ae-green) 40%, black);
440
+ --ae-green-900: color-mix(in srgb, var(--ae-green) 20%, black);
441
+
442
+ /* Red */
443
+ --ae-red-100: color-mix(in srgb, var(--ae-red) 20%, white);
444
+ --ae-red-200: color-mix(in srgb, var(--ae-red) 40%, white);
445
+ --ae-red-300: color-mix(in srgb, var(--ae-red) 60%, white);
446
+ --ae-red-400: color-mix(in srgb, var(--ae-red) 80%, white);
447
+ --ae-red-500: var(--ae-red);
448
+ --ae-red-600: color-mix(in srgb, var(--ae-red) 80%, black);
449
+ --ae-red-700: color-mix(in srgb, var(--ae-red) 60%, black);
450
+ --ae-red-800: color-mix(in srgb, var(--ae-red) 40%, black);
451
+ --ae-red-900: color-mix(in srgb, var(--ae-red) 20%, black);
452
+
453
+ /* Yellow */
454
+ --ae-yellow-100: color-mix(in srgb, var(--ae-yellow) 20%, white);
455
+ --ae-yellow-200: color-mix(in srgb, var(--ae-yellow) 40%, white);
456
+ --ae-yellow-300: color-mix(in srgb, var(--ae-yellow) 60%, white);
457
+ --ae-yellow-400: color-mix(in srgb, var(--ae-yellow) 80%, white);
458
+ --ae-yellow-500: var(--ae-yellow);
459
+ --ae-yellow-600: color-mix(in srgb, var(--ae-yellow) 80%, black);
460
+ --ae-yellow-700: color-mix(in srgb, var(--ae-yellow) 60%, black);
461
+ --ae-yellow-800: color-mix(in srgb, var(--ae-yellow) 40%, black);
462
+ --ae-yellow-900: color-mix(in srgb, var(--ae-yellow) 20%, black);
463
+
464
+ /* Cyan */
465
+ --ae-cyan-100: color-mix(in srgb, var(--ae-cyan) 20%, white);
466
+ --ae-cyan-200: color-mix(in srgb, var(--ae-cyan) 40%, white);
467
+ --ae-cyan-300: color-mix(in srgb, var(--ae-cyan) 60%, white);
468
+ --ae-cyan-400: color-mix(in srgb, var(--ae-cyan) 80%, white);
469
+ --ae-cyan-500: var(--ae-cyan);
470
+ --ae-cyan-600: color-mix(in srgb, var(--ae-cyan) 80%, black);
471
+ --ae-cyan-700: color-mix(in srgb, var(--ae-cyan) 60%, black);
472
+ --ae-cyan-800: color-mix(in srgb, var(--ae-cyan) 40%, black);
473
+ --ae-cyan-900: color-mix(in srgb, var(--ae-cyan) 20%, black);
474
+
475
+ /* Gray (neutral \u2014 base #6e6e6e) */
476
+ --ae-gray-100: color-mix(in srgb, var(--ae-gray) 20%, white);
477
+ --ae-gray-200: color-mix(in srgb, var(--ae-gray) 40%, white);
478
+ --ae-gray-300: color-mix(in srgb, var(--ae-gray) 60%, white);
479
+ --ae-gray-400: color-mix(in srgb, var(--ae-gray) 80%, white);
480
+ --ae-gray-500: var(--ae-gray);
481
+ --ae-gray-600: color-mix(in srgb, var(--ae-gray) 80%, black);
482
+ --ae-gray-700: color-mix(in srgb, var(--ae-gray) 60%, black);
483
+ --ae-gray-800: color-mix(in srgb, var(--ae-gray) 40%, black);
484
+ --ae-gray-900: color-mix(in srgb, var(--ae-gray) 20%, black);
485
+
486
+ /* Slate (blue-gray \u2014 base #64748b, used for 'secondary') */
487
+ --ae-slate-100: color-mix(in srgb, var(--ae-slate) 20%, white);
488
+ --ae-slate-200: color-mix(in srgb, var(--ae-slate) 40%, white);
489
+ --ae-slate-300: color-mix(in srgb, var(--ae-slate) 60%, white);
490
+ --ae-slate-400: color-mix(in srgb, var(--ae-slate) 80%, white);
491
+ --ae-slate-500: var(--ae-slate);
492
+ --ae-slate-600: color-mix(in srgb, var(--ae-slate) 80%, black);
493
+ --ae-slate-700: color-mix(in srgb, var(--ae-slate) 60%, black);
494
+ --ae-slate-800: color-mix(in srgb, var(--ae-slate) 40%, black);
495
+ --ae-slate-900: color-mix(in srgb, var(--ae-slate) 20%, black);
496
+
497
+ /* Dark (base #343a40) */
498
+ --ae-dark-100: color-mix(in srgb, var(--ae-dark) 20%, white);
499
+ --ae-dark-200: color-mix(in srgb, var(--ae-dark) 40%, white);
500
+ --ae-dark-300: color-mix(in srgb, var(--ae-dark) 60%, white);
501
+ --ae-dark-400: color-mix(in srgb, var(--ae-dark) 80%, white);
502
+ --ae-dark-500: var(--ae-dark);
503
+ --ae-dark-600: color-mix(in srgb, var(--ae-dark) 80%, black);
504
+ --ae-dark-700: color-mix(in srgb, var(--ae-dark) 60%, black);
505
+ --ae-dark-800: color-mix(in srgb, var(--ae-dark) 40%, black);
506
+ --ae-dark-900: color-mix(in srgb, var(--ae-dark) 20%, black);
507
+
508
+ /* Light (base #f8f9fa) */
509
+ --ae-light-100: color-mix(in srgb, var(--ae-light) 20%, white);
510
+ --ae-light-200: color-mix(in srgb, var(--ae-light) 40%, white);
511
+ --ae-light-300: color-mix(in srgb, var(--ae-light) 60%, white);
512
+ --ae-light-400: color-mix(in srgb, var(--ae-light) 80%, white);
513
+ --ae-light-500: var(--ae-light);
514
+ --ae-light-600: color-mix(in srgb, var(--ae-light) 80%, black);
515
+ --ae-light-700: color-mix(in srgb, var(--ae-light) 60%, black);
516
+ --ae-light-800: color-mix(in srgb, var(--ae-light) 40%, black);
517
+ --ae-light-900: color-mix(in srgb, var(--ae-light) 20%, black);
518
+ }
519
+
520
+ :root,
521
+ :host {
522
+ /* Hover / active mix (light default \u2014 overridden in \xA7 6 dark) */
523
+ --ae-color-mix-hover: black 10%;
524
+ --ae-color-mix-active: black 20%;
525
+
526
+ /* Primary (Blue) */
527
+ --ae-color-primary: var(--ae-blue-500);
528
+ --ae-color-primary-hover: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-hover));
529
+ --ae-color-primary-active: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-active));
530
+ --ae-color-primary-disabled: color-mix(in srgb, var(--ae-blue) 50%, var(--ae-gray-500));
531
+
532
+ /* Success (Green) */
533
+ --ae-color-success: var(--ae-green-500);
534
+ --ae-color-success-hover: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-hover));
535
+ --ae-color-success-active: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-active));
536
+ --ae-color-success-disabled: color-mix(in srgb, var(--ae-green) 50%, var(--ae-gray-500));
537
+
538
+ /* Danger (Red) */
539
+ --ae-color-danger: var(--ae-red-500);
540
+ --ae-color-danger-hover: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-hover));
541
+ --ae-color-danger-active: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-active));
542
+ --ae-color-danger-disabled: color-mix(in srgb, var(--ae-red) 50%, var(--ae-gray-500));
543
+
544
+ /* Warning (Yellow) */
545
+ --ae-color-warning: var(--ae-yellow-500);
546
+ --ae-color-warning-hover: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-hover));
547
+ --ae-color-warning-active: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-active));
548
+ --ae-color-warning-disabled: color-mix(in srgb, var(--ae-yellow) 50%, var(--ae-gray-500));
549
+
550
+ /* Info (Cyan) */
551
+ --ae-color-info: var(--ae-cyan-500);
552
+ --ae-color-info-hover: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-hover));
553
+ --ae-color-info-active: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-active));
554
+ --ae-color-info-disabled: color-mix(in srgb, var(--ae-cyan) 50%, var(--ae-gray-500));
555
+
556
+ /* Secondary (Slate) \u2014 base differs per theme, overridden in \xA7 6 dark */
557
+ --ae-color-secondary: var(--ae-slate-500);
558
+ --ae-color-secondary-hover: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-hover));
559
+ --ae-color-secondary-active: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-active));
560
+ --ae-color-secondary-text: var(--ae-slate-700);
561
+ }
562
+
563
+
564
+ .theme-light,
565
+ :root[theme="light"],
566
+ :host([theme="light"]),
567
+ :host-context([theme="light"]),
568
+ :where(:root),
569
+ :host {
570
+ color-scheme: light;
571
+
572
+ /* Gray UI aliases \u2014 lighter palette steps for elements on white background */
573
+ --ae-color-gray-dark: var(--ae-gray-400);
574
+ --ae-color-gray: var(--ae-gray-300);
575
+ --ae-color-gray-light: var(--ae-gray-200);
576
+ --ae-color-gray-lighter: var(--ae-gray-100);
577
+ --ae-color-gray-lightest: color-mix(in srgb, var(--ae-gray) 10%, white);
578
+
579
+ /* Text */
580
+ --ae-color-text-main: var(--ae-dark-700);
581
+ --ae-color-text-muted: var(--ae-gray-600);
582
+ --ae-color-text-disabled: var(--ae-gray-300);
583
+ --ae-color-text-link: var(--ae-blue-500);
584
+ --ae-color-text-link-hover: var(--ae-blue-700);
585
+
586
+ /* Surfaces */
587
+ --ae-surface-sunken: var(--ae-light-500);
588
+ --ae-surface-base: white;
589
+ --ae-surface-raised: var(--ae-light-500);
590
+ --ae-surface-overlay: white;
591
+ --ae-color-overlay: rgba(0, 0, 0, 0.4);
592
+
593
+ /* Borders */
594
+ --ae-border-subtle: rgba(0, 0, 0, 0.08);
595
+ --ae-border-default: rgba(0, 0, 0, 0.15);
596
+ --ae-border-hover: rgba(0, 0, 0, 0.25);
597
+ --ae-border-focus: var(--ae-color-primary);
598
+ --ae-border-disabled: rgba(0, 0, 0, 0.06);
599
+
600
+ /* Focus ring */
601
+ --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.30);
602
+ --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.15);
603
+
604
+ /* Subtle intent tokens \u2014 light context */
605
+ --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.08);
606
+ --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.40);
607
+ --ae-color-primary-text-emphasis: var(--ae-blue-700);
608
+
609
+ --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.08);
610
+ --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.40);
611
+ --ae-color-success-text-emphasis: var(--ae-green-700);
612
+
613
+ --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.08);
614
+ --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.40);
615
+ --ae-color-danger-text-emphasis: var(--ae-red-700);
616
+
617
+ --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.08);
618
+ --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.40);
619
+ --ae-color-warning-text-emphasis: var(--ae-yellow-700);
620
+
621
+ --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.08);
622
+ --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.40);
623
+ --ae-color-info-text-emphasis: var(--ae-cyan-700);
624
+
625
+ --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.08);
626
+ --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.40);
627
+ --ae-color-secondary-text-emphasis: var(--ae-slate-700);
628
+
629
+ --ae-color-light-bg-subtle: var(--ae-gray-100); /* opaque on white: ~#e2e2e2 */
630
+ --ae-color-light-border-subtle: var(--ae-gray-200); /* opaque on white: ~#c4c4c4 */
631
+
632
+ --ae-color-dark-bg-subtle: var(--ae-dark-100); /* opaque on white: ~#d6d8d9 */
633
+ --ae-color-dark-border-subtle: var(--ae-dark-300); /* opaque on white: ~#85898c */
634
+
635
+ /* Component tokens \u2014 light defaults */
636
+ --ae-action-btn-bg: var(--ae-gray-200);
637
+ --ae-action-btn-bg-hover: var(--ae-color-primary);
638
+ --ae-action-btn-color: var(--ae-gray-600);
639
+ --ae-action-btn-color-hover: white;
640
+
641
+ --ae-clear-btn-bg-hover: var(--ae-color-danger);
642
+ --ae-clear-btn-color-hover: white;
643
+
644
+ --ae-reset-btn-border-radius: var(--ae-radius-xs);
645
+ --ae-reset-btn-bg: var(--ae-action-btn-bg);
646
+ --ae-reset-btn-bg-hover: var(--ae-action-btn-bg-hover);
647
+ --ae-reset-btn-color: var(--ae-action-btn-color);
648
+ --ae-reset-btn-color-hover: var(--ae-action-btn-color-hover);
649
+ --ae-reset-btn-transition: all 0.12s;
650
+
651
+ --ae-clear-btn-border-radius: var(--ae-radius-xs);
652
+ --ae-clear-btn-bg: var(--ae-action-btn-bg);
653
+ --ae-clear-btn-color: var(--ae-action-btn-color);
654
+ --ae-clear-btn-transition: all 0.12s;
655
+ }
656
+
657
+ :root,
658
+ :host {
659
+ --ae-size-scale: 1;
660
+ --ae-size-base: calc(1rem * var(--ae-size-scale)); /* 16px */
661
+ --ae-size-xl: round(calc(var(--ae-size-l) * 1.125), 1px); /* 23px */
662
+ --ae-size-l: round(calc(var(--ae-size-m) * 1.125 * 1.125), 1px); /* 20px */
663
+ --ae-size-m: var(--ae-size-base); /* 16px */
664
+ --ae-size-s: round(calc(var(--ae-size-m) / 1.125), 1px); /* 14px */
665
+ --ae-size-xs: round(calc(var(--ae-size-s) / 1.125), 1px); /* 12px */
666
+ --ae-size-2xs: round(calc(var(--ae-size-xs) / 1.125), 1px); /* 11px */
667
+ --ae-size-3xs: round(calc(var(--ae-size-2xs) / 1.125), 1px); /* 10px */
668
+ }
669
+
670
+ /* Border-radius tokens \u2014 shared across all components */
671
+ :root,
672
+ :host {
673
+ /**
674
+ * Unified border-radius hook for all components.
675
+ *
676
+ * Not set by default \u2014 each component falls back to its own --ae-radius-*
677
+ * token (e.g. button \u2192 sm, card \u2192 lg, input \u2192 xs).
678
+ *
679
+ * Usage:
680
+ * :root { --ae-border-radius: 0; } // global: all components square
681
+ * :root { --ae-border-radius: 999px; } // global: all components pill
682
+ * ae-button { --ae-border-radius: 50%; } // scoped: only buttons circular
683
+ * .sidebar { --ae-border-radius: 8px; } // scoped: everything inside .sidebar
684
+ *
685
+ * To restore a component to its own default:
686
+ * ae-card { --ae-border-radius: initial; }
687
+ */
688
+
689
+ --ae-radius-square: 0;
690
+ --ae-radius-xs: 2px;
691
+ --ae-radius-sm: 4px;
692
+ --ae-radius-md: 6px;
693
+ --ae-radius-lg: 8px;
694
+ --ae-radius-xl: 12px;
695
+ --ae-radius-pill: 999px;
696
+ --ae-radius-circle: 50%;
697
+ }
698
+
699
+ /* Layout tokens \u2014 defined on :root so all light DOM elements can use them */
700
+ :root,
701
+ :host {
702
+ --container-max-width: 1280px;
703
+ --container-padding-x: 1.5rem;
704
+ }
705
+
706
+ .theme-dark,
707
+ :root[theme="dark"],
708
+ :host([theme="dark"]),
709
+ :host-context([theme="dark"]) {
710
+ color-scheme: dark;
711
+
712
+ /* Hover / active \u2014 slightly gentler on dark backgrounds */
713
+ --ae-color-mix-hover: black 8%;
714
+ --ae-color-mix-active: black 16%;
715
+
716
+ /* Gray UI aliases \u2014 darker palette steps for elements on dark background */
717
+ --ae-color-gray-dark: var(--ae-gray-800);
718
+ --ae-color-gray: var(--ae-gray-700);
719
+ --ae-color-gray-light: var(--ae-gray-600);
720
+ --ae-color-gray-lighter: var(--ae-gray-500);
721
+ --ae-color-gray-lightest: var(--ae-gray-400);
722
+
723
+ /* Secondary \u2014 deeper base on dark background */
724
+ --ae-color-secondary: var(--ae-slate-700);
725
+ --ae-color-secondary-text: var(--ae-slate-300);
726
+
727
+ /* Text */
728
+ --ae-color-text-main: white;
729
+ --ae-color-text-muted: var(--ae-gray-200);
730
+ --ae-color-text-disabled: var(--ae-gray-500);
731
+ --ae-color-text-link: var(--ae-blue-300);
732
+ --ae-color-text-link-hover: var(--ae-blue-200);
733
+
734
+ /* Surfaces */
735
+ --ae-surface-sunken: var(--ae-gray-900);
736
+ --ae-surface-base: color-mix(in srgb, var(--ae-gray) 27%, black);
737
+ --ae-surface-raised: color-mix(in srgb, var(--ae-gray) 34%, black);
738
+ --ae-surface-overlay: color-mix(in srgb, var(--ae-gray) 38%, black);
739
+ --ae-color-overlay: rgba(0, 0, 0, 0.6);
740
+
741
+ /* Borders */
742
+ --ae-border-subtle: rgba(255, 255, 255, 0.08);
743
+ --ae-border-default: rgba(255, 255, 255, 0.12);
744
+ --ae-border-hover: rgba(255, 255, 255, 0.20);
745
+ --ae-border-focus: var(--ae-color-primary);
746
+ --ae-border-disabled: rgba(255, 255, 255, 0.06);
747
+
748
+ /* Focus ring */
749
+ --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.25);
750
+ --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.10);
751
+
752
+ /* Subtle intent tokens \u2014 dark context (more alpha, lighter text-emphasis) */
753
+ --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.10);
754
+ --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.30);
755
+ --ae-color-primary-text-emphasis: var(--ae-blue-300);
756
+
757
+ --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.10);
758
+ --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.30);
759
+ --ae-color-success-text-emphasis: var(--ae-green-300);
760
+
761
+ --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.10);
762
+ --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.30);
763
+ --ae-color-danger-text-emphasis: var(--ae-red-300);
764
+
765
+ --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.10);
766
+ --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.30);
767
+ --ae-color-warning-text-emphasis: var(--ae-yellow-300);
768
+
769
+ --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.10);
770
+ --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.30);
771
+ --ae-color-info-text-emphasis: var(--ae-cyan-300);
772
+
773
+ --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.10);
774
+ --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.30);
775
+ --ae-color-secondary-text-emphasis: var(--ae-slate-300);
776
+
777
+ --ae-color-light-bg-subtle: rgb(from var(--ae-light) r g b / 0.20);
778
+ --ae-color-light-border-subtle: rgb(from var(--ae-light) r g b / 0.25);
779
+
780
+ --ae-color-dark-bg-subtle: rgb(from var(--ae-dark) r g b / 0.30);
781
+ --ae-color-dark-border-subtle: rgb(from var(--ae-dark) r g b / 0.50);
782
+
783
+ /* Component tokens \u2014 dark overrides */
784
+ --ae-action-btn-bg: var(--ae-color-gray);
785
+ --ae-action-btn-bg-hover: color-mix(in srgb, var(--ae-blue) 25%, var(--ae-gray-800));
786
+ --ae-action-btn-color: var(--ae-gray-400);
787
+ --ae-action-btn-color-hover: var(--ae-cyan-300);
788
+ --ae-clear-btn-bg-hover: color-mix(in srgb, var(--ae-red) 25%, var(--ae-gray-800));
789
+ --ae-clear-btn-color-hover: var(--ae-red-300);
790
+ }
791
+ `;
792
+ }
793
+ });
794
+
795
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css
796
+ var require_size = __commonJS({
797
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css"(exports2, module2) {
798
+ module2.exports = ':host([size="xs"]) { font-size: var(--ae-size-xs); }\n:host([size="sm"]) { font-size: var(--ae-size-s); }\n:host([size="md"]) { font-size: var(--ae-size-m); }\n:host([size="lg"]) { font-size: var(--ae-size-l); }\n:host([size="xl"]) { font-size: var(--ae-size-xl); }\n:host([size="3xs"]) { font-size: var(--ae-size-3xs); }\n:host([size="2xs"]) { font-size: var(--ae-size-2xs); }\n';
799
+ }
800
+ });
801
+
802
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css
803
+ var require_color = __commonJS({
804
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css"(exports2, module2) {
805
+ module2.exports = ':host {\n --ae-color-solid: var(--ae-color-gray);\n --ae-color-solid-hover: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-hover));\n --ae-color-solid-active: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-active));\n --ae-color-on-solid: var(--ae-color-text-main);\n --ae-color-border: var(--ae-color-gray);\n --ae-color-border-hover: color-mix(in srgb, var(--ae-color-border), var(--ae-color-mix-hover));\n --ae-color-accent: var(--ae-color-text-muted);\n --ae-color-accent-hover: var(--ae-color-text-main);\n --ae-color-subtle: var(--ae-border-subtle);\n --ae-color-subtle-hover: var(--ae-border-default);\n --ae-color-bg-subtle: var(--ae-border-subtle);\n --ae-color-text-subtle: var(--ae-color-text-muted);\n --ae-color-border-subtle: var(--ae-border-default);\n}\n\n:host([color="primary"]) {\n --ae-color-solid: var(--ae-color-primary);\n --ae-color-on-solid: white;\n --ae-color-border: var(--ae-color-primary);\n --ae-color-accent: var(--ae-color-text-link);\n --ae-color-accent-hover: var(--ae-color-text-link-hover);\n --ae-color-subtle: var(--ae-color-primary-bg-subtle);\n --ae-color-subtle-hover: rgb(from var(--ae-blue) r g b / 0.15);\n --ae-color-bg-subtle: var(--ae-color-primary-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-primary-text-emphasis);\n --ae-color-border-subtle: var(--ae-color-primary-border-subtle);\n}\n\n:host([color="secondary"]) {\n --ae-color-solid: var(--ae-color-secondary);\n --ae-color-on-solid: white;\n --ae-color-border: var(--ae-color-secondary-hover);\n --ae-color-accent: var(--ae-color-secondary-text-emphasis);\n --ae-color-accent-hover: var(--ae-color-text-main);\n --ae-color-subtle: rgb(from var(--ae-slate) r g b / 0.06);\n --ae-color-subtle-hover: rgb(from var(--ae-slate) r g b / 0.12);\n --ae-color-bg-subtle: var(--ae-color-secondary-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-secondary-text-emphasis);\n --ae-color-border-subtle: var(--ae-color-secondary-border-subtle);\n}\n\n:host([color="success"]) {\n --ae-color-solid: var(--ae-color-success);\n --ae-color-on-solid: white;\n --ae-color-border: var(--ae-color-success);\n --ae-color-accent: var(--ae-color-success-text-emphasis);\n --ae-color-accent-hover: var(--ae-color-success-hover);\n --ae-color-subtle: var(--ae-color-success-bg-subtle);\n --ae-color-subtle-hover: rgb(from var(--ae-green) r g b / 0.15);\n --ae-color-bg-subtle: var(--ae-color-success-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-success-text-emphasis);\n --ae-color-border-subtle: var(--ae-color-success-border-subtle);\n}\n\n:host([color="danger"]) {\n --ae-color-solid: var(--ae-color-danger);\n --ae-color-on-solid: white;\n --ae-color-border: var(--ae-color-danger);\n --ae-color-accent: var(--ae-color-danger-text-emphasis);\n --ae-color-accent-hover: var(--ae-color-danger-hover);\n --ae-color-subtle: var(--ae-color-danger-bg-subtle);\n --ae-color-subtle-hover: rgb(from var(--ae-red) r g b / 0.15);\n --ae-color-bg-subtle: var(--ae-color-danger-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-danger-text-emphasis);\n --ae-color-border-subtle: var(--ae-color-danger-border-subtle);\n}\n\n:host([color="warning"]) {\n --ae-color-solid: var(--ae-color-warning);\n --ae-color-on-solid: var(--ae-gray-900);\n --ae-color-border: var(--ae-color-warning);\n --ae-color-accent: var(--ae-color-warning-text-emphasis);\n --ae-color-accent-hover: var(--ae-color-warning-hover);\n --ae-color-subtle: var(--ae-color-warning-bg-subtle);\n --ae-color-subtle-hover: rgb(from var(--ae-yellow) r g b / 0.15);\n --ae-color-bg-subtle: var(--ae-color-warning-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-warning-text-emphasis);\n --ae-color-border-subtle: var(--ae-color-warning-border-subtle);\n}\n\n:host([color="info"]) {\n --ae-color-solid: var(--ae-color-info);\n --ae-color-on-solid: white;\n --ae-color-border: var(--ae-color-info);\n --ae-color-accent: var(--ae-color-info-text-emphasis);\n --ae-color-accent-hover: var(--ae-color-info-hover);\n --ae-color-subtle: var(--ae-color-info-bg-subtle);\n --ae-color-subtle-hover: rgb(from var(--ae-cyan) r g b / 0.15);\n --ae-color-bg-subtle: var(--ae-color-info-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-info-text-emphasis);\n --ae-color-border-subtle: var(--ae-color-info-border-subtle);\n}\n\n:host([color="light"]) {\n --ae-color-solid: var(--ae-light);\n --ae-color-on-solid: var(--ae-gray-900);\n --ae-color-border: var(--ae-border-hover);\n --ae-color-subtle: var(--ae-color-light-bg-subtle);\n --ae-color-subtle-hover: var(--ae-color-light-border-subtle);\n --ae-color-bg-subtle: var(--ae-color-light-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-text-muted);\n --ae-color-border-subtle: var(--ae-color-light-border-subtle);\n}\n\n:host([color="dark"]) {\n --ae-color-solid: var(--ae-dark-500);\n --ae-color-on-solid: white;\n --ae-color-border: var(--ae-dark-500);\n --ae-color-accent: var(--ae-color-text-main);\n --ae-color-accent-hover: var(--ae-color-text-main);\n --ae-color-subtle: var(--ae-color-dark-bg-subtle);\n --ae-color-subtle-hover: var(--ae-color-dark-border-subtle);\n --ae-color-bg-subtle: var(--ae-color-dark-bg-subtle);\n --ae-color-text-subtle: var(--ae-color-text-main);\n --ae-color-border-subtle: var(--ae-color-dark-border-subtle);\n}\n';
806
+ }
807
+ });
808
+
809
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/field-label.css
810
+ var require_field_label = __commonJS({
811
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/field-label.css"(exports2, module2) {
812
+ module2.exports = ':host {\n --field-label-gap: 4px;\n --field-label-col-gap: 8px;\n --field-label-width: 100px;\n --field-label-font-size: 0.875em;\n --field-label-color: inherit;\n --field-required-color: var(--ae-red, #dc3545);\n --field-helper-color: var(--ae-color-text-muted, #6e6e6e);\n --field-error-color: var(--ae-red, #dc3545);\n}\n\n:host([label]) {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--field-label-gap);\n}\n\n:host([label][label-placement="left"]) {\n display: grid;\n grid-template-columns: var(--field-label-width) 1fr;\n column-gap: var(--field-label-col-gap);\n row-gap: var(--field-label-gap);\n align-items: center;\n}\n\n:host([label][label-placement="left"]) .field-label {\n align-self: center;\n}\n\n:host([label][label-placement="left"]) .field-helper,\n:host([label][label-placement="left"]) .field-error {\n grid-column: 2;\n}\n\n.field-label {\n font-size: var(--field-label-font-size);\n color: var(--field-label-color);\n user-select: none;\n line-height: 1.4;\n}\n\n.field-required {\n color: var(--field-required-color);\n margin-left: 2px;\n}\n\n.field-helper {\n font-size: 0.8em;\n color: var(--field-helper-color);\n line-height: 1.4;\n}\n\n.field-error {\n font-size: 0.8em;\n color: var(--field-error-color);\n line-height: 1.4;\n}\n\n/* Action controls container (integrated style) */\n.action-controls {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n margin-left: calc(-1 * var(--field-action-gap, 4px) - 1px);\n border: var(--field-action-border-width, 1px) solid var(--field-action-border-color, var(--ae-border-subtle));\n border-radius: 0 var(--field-action-border-radius, var(--ae-radius-xs)) var(--field-action-border-radius, var(--ae-radius-xs)) 0;\n overflow: hidden;\n flex-shrink: 0;\n transition: border-color 0.12s;\n background: var(--field-action-bg, var(--ae-surface-base));\n position: relative;\n z-index: 1;\n align-self: stretch;\n}\n\n.action-controls .action-btn {\n border: none;\n background: transparent;\n color: var(--field-action-color, var(--ae-color-text-muted));\n font-size: 0.875em;\n line-height: 1;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 0.5em;\n transition: background 0.12s;\n}\n\n.action-controls .action-btn:hover:not(:disabled) {\n background: var(--field-action-bg-hover, var(--ae-surface-raised));\n}\n\n.action-controls .action-btn:active:not(:disabled) {\n background: var(--field-action-bg-focus, var(--ae-surface-raised));\n}\n\n.action-controls .action-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.action-controls .action-btn + .action-btn {\n border-left: var(--field-action-border-width, 1px) solid var(--field-action-border-color, var(--ae-border-subtle));\n}\n\n.input-container:has(input:focus) ~ .action-controls,\n.input-container:has(input:focus) .action-controls,\n.container:has(.trigger.open) ~ .action-controls,\n.container:has(.trigger.open) .action-controls {\n border-color: var(--field-action-border-color-focus, var(--ae-border-focus));\n}\n\n.input-container:has(input:hover:not(:focus)) ~ .action-controls,\n.input-container:has(input:hover:not(:focus)) .action-controls,\n.container:has(.trigger:hover:not(.disabled)) ~ .action-controls,\n.container:has(.trigger:hover:not(.disabled)) .action-controls {\n border-color: var(--field-action-border-color-hover, var(--ae-border-default));\n}\n';
813
+ }
814
+ });
815
+
816
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css
817
+ var require_action_button = __commonJS({
818
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css"(exports2, module2) {
819
+ module2.exports = "/* Action button base styles \u2014 shared by clear-btn and reset-btn (standalone mode) */\n.clear-btn:not(.action-btn),\n.reset-btn:not(.action-btn) {\n width: 1.333em;\n height: 1.333em;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 1;\n}\n\n.clear-btn:not(.action-btn) {\n border-radius: var(--ae-clear-btn-border-radius);\n background: var(--ae-clear-btn-bg);\n color: var(--ae-clear-btn-color);\n transition: var(--ae-clear-btn-transition);\n}\n\n.reset-btn:not(.action-btn) {\n border-radius: var(--ae-reset-btn-border-radius);\n background: var(--ae-reset-btn-bg);\n color: var(--ae-reset-btn-color);\n transition: var(--ae-reset-btn-transition);\n}\n\n.clear-btn:not(.action-btn):hover {\n background: var(--ae-clear-btn-bg-hover);\n color: var(--ae-clear-btn-color-hover);\n}\n\n.reset-btn:not(.action-btn):hover {\n background: var(--ae-reset-btn-bg-hover);\n color: var(--ae-reset-btn-color-hover);\n}\n";
820
+ }
821
+ });
822
+
823
+ // src/slider/index.ts
824
+ var slider_exports = {};
825
+ __export(slider_exports, {
826
+ Slider: () => slider_default,
827
+ default: () => slider_default
828
+ });
829
+ module.exports = __toCommonJS(slider_exports);
830
+
831
+ // src/aeico-field.ts
832
+ var import_aeico2 = require("aeico");
833
+
834
+ // src/aeico-component.ts
835
+ var import_aeico = require("aeico");
836
+
837
+ // src/utils.ts
838
+ function toKebab(str) {
839
+ const cleaned = str.replace(/^[_\d]+/, "");
840
+ return cleaned.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
841
+ }
842
+
843
+ // src/aeico-component.ts
844
+ var TAG_NAME_PREFIX = "ae";
845
+ var AeicoComponent = class extends import_aeico.AeicoElement {
846
+ static register(name) {
847
+ const tagName = name || `${TAG_NAME_PREFIX}-${this.tagName || toKebab(this.name)}`;
848
+ super.register(tagName);
849
+ }
850
+ };
851
+ var aeico_component_default = AeicoComponent;
852
+
853
+ // src/aeico-field.ts
854
+ var AeicoField = class _AeicoField extends aeico_component_default {
855
+ /**
856
+ * Define base field properties (extends AeicoElement properties)
857
+ */
858
+ static props = {
859
+ value: { type: String },
860
+ defaultValue: { type: String },
861
+ resettable: { type: Boolean },
862
+ resetText: { type: String },
863
+ resetTitle: { type: String },
864
+ clearable: { type: Boolean },
865
+ clearText: { type: String },
866
+ clearTitle: { type: String },
867
+ actionButtonStyle: { type: String },
868
+ size: { type: String },
869
+ disabled: { type: Boolean },
870
+ label: { type: String },
871
+ labelPlacement: { type: String },
872
+ required: { type: Boolean },
873
+ helperText: { type: String },
874
+ error: { type: String }
875
+ };
876
+ /**
877
+ * Property watchers
878
+ */
879
+ static watchers = {
880
+ disabled: "onDisabledChanged",
881
+ error: "onErrorChanged"
882
+ };
883
+ static _fieldIdCounter = 0;
884
+ _fieldId;
885
+ constructor() {
886
+ super();
887
+ this._fieldId = `ae-field-${++_AeicoField._fieldIdCounter}`;
888
+ }
889
+ /**
890
+ * The underlying form control element (input, select, etc.)
891
+ * Subclasses should set this to their specific element
892
+ */
893
+ fieldElement = null;
894
+ resetBtn = null;
895
+ clearBtn = null;
896
+ boundOnChange = () => this.setValue(this.getValue(), { silent: false, action: "change" });
897
+ boundOnReset = () => this.onReset();
898
+ boundOnClear = () => this.onClear();
899
+ /**
900
+ * Lifecycle: Component connected to DOM
901
+ */
902
+ connectedCallback() {
903
+ super.connectedCallback();
904
+ }
905
+ /**
906
+ * Lifecycle: Component disconnected from DOM
907
+ */
908
+ disconnectedCallback() {
909
+ super.disconnectedCallback();
910
+ }
911
+ /**
912
+ * Render action buttons (clear/reset) using this.builder.
913
+ * Must be called from within a build() callback.
914
+ */
915
+ renderActionButtons(force = false) {
916
+ const style2 = this.actionButtonStyle || "integrated";
917
+ const hasActions = force || this.clearable || this.resettable;
918
+ if (hasActions && style2 === "integrated") {
919
+ import_aeico2.tags.div({ className: "action-controls" }, () => {
920
+ this.renderClearButton(force);
921
+ this.renderResetButton(force);
922
+ });
923
+ } else {
924
+ this.renderClearButton(force);
925
+ this.renderResetButton(force);
926
+ }
927
+ }
928
+ renderResetButton(force = false) {
929
+ const { button } = import_aeico2.tags;
930
+ const style2 = this.actionButtonStyle || "integrated";
931
+ if (force || this.resettable) {
932
+ const className = style2 === "integrated" ? "reset-btn action-btn" : "reset-btn";
933
+ this.resetBtn = button({
934
+ className,
935
+ textContent: this.resetText || "\u21BA",
936
+ title: this.resetTitle || "\u21BA",
937
+ "@click": this.boundOnReset
938
+ });
939
+ }
940
+ }
941
+ renderClearButton(force = false) {
942
+ const { button } = import_aeico2.tags;
943
+ const style2 = this.actionButtonStyle || "integrated";
944
+ if (force || this.clearable) {
945
+ const className = style2 === "integrated" ? "clear-btn action-btn" : "clear-btn";
946
+ this.clearBtn = button({
947
+ className,
948
+ textContent: this.clearText || "\u2715",
949
+ title: this.clearTitle || "\u2715",
950
+ "@click": this.boundOnClear
951
+ });
952
+ }
953
+ }
954
+ /**
955
+ * Returns a stable unique ID for this field instance,
956
+ * used to associate <label htmlFor> with the underlying input.
957
+ */
958
+ getFieldId() {
959
+ return this._fieldId;
960
+ }
961
+ /**
962
+ * Renders a <label> element when the `label` prop is set.
963
+ * Call this as the first statement inside the render() html() callback.
964
+ * @param fieldId - The id to set on the underlying form control element (pass to input via id prop)
965
+ */
966
+ renderLabel(fieldId) {
967
+ if (!this.label) return;
968
+ const { span } = import_aeico2.tags;
969
+ import_aeico2.tags.label({ id: `${fieldId}-label`, className: "field-label", for: fieldId }, () => {
970
+ span({ textContent: this.label });
971
+ if (this.required) {
972
+ span({ className: "field-required", "aria-hidden": "true", textContent: " *" });
973
+ }
974
+ });
975
+ }
976
+ /**
977
+ * Renders helper text below the field. Hidden when `error` is set.
978
+ * Call this after the field-body div in render().
979
+ */
980
+ renderHelperText() {
981
+ if (!this.helperText || this.error) return;
982
+ const { span } = import_aeico2.tags;
983
+ span({ className: "field-helper", textContent: this.helperText });
984
+ }
985
+ /**
986
+ * Renders an error message below the field when `error` is set.
987
+ * Call this after renderHelperText() in render().
988
+ */
989
+ renderError() {
990
+ if (!this.error) return;
991
+ const { span } = import_aeico2.tags;
992
+ span({ className: "field-error", textContent: this.error });
993
+ }
994
+ /**
995
+ * Watcher for disabled property
996
+ */
997
+ onDisabledChanged(newValue) {
998
+ if (this.fieldElement) {
999
+ this.fieldElement.disabled = Boolean(newValue);
1000
+ }
1001
+ }
1002
+ /**
1003
+ * Watcher for error property — syncs aria-invalid on the field element
1004
+ */
1005
+ onErrorChanged(newValue) {
1006
+ if (this.fieldElement) {
1007
+ if (newValue) {
1008
+ this.fieldElement.setAttribute("aria-invalid", "true");
1009
+ } else {
1010
+ this.fieldElement.removeAttribute("aria-invalid");
1011
+ }
1012
+ }
1013
+ }
1014
+ /**
1015
+ * Lifecycle: called after every render update.
1016
+ * Keeps aria-invalid on fieldElement in sync regardless of watcher timing.
1017
+ */
1018
+ onUpdated(_changedProps) {
1019
+ if (!this.fieldElement) return;
1020
+ if (this.error) {
1021
+ this.fieldElement.setAttribute("aria-invalid", "true");
1022
+ } else {
1023
+ this.fieldElement.removeAttribute("aria-invalid");
1024
+ }
1025
+ }
1026
+ /**
1027
+ * Returns true if the field passes constraint validation.
1028
+ * Delegates to the underlying fieldElement when available;
1029
+ * falls back to a manual required-check otherwise.
1030
+ */
1031
+ checkValidity() {
1032
+ if (this.fieldElement) {
1033
+ return this.fieldElement.checkValidity();
1034
+ }
1035
+ if (this.required) {
1036
+ const v = this.value;
1037
+ return v !== void 0 && v !== "" && v !== null;
1038
+ }
1039
+ return true;
1040
+ }
1041
+ /**
1042
+ * Reports validity, showing the browser's built-in validation UI when possible.
1043
+ */
1044
+ reportValidity() {
1045
+ if (this.fieldElement) {
1046
+ return this.fieldElement.reportValidity();
1047
+ }
1048
+ return this.checkValidity();
1049
+ }
1050
+ /**
1051
+ * Render the field component
1052
+ * Override in subclass to provide custom rendering
1053
+ */
1054
+ render() {
1055
+ }
1056
+ /**
1057
+ * Get current value from the field element
1058
+ * Default implementation returns the value property of fieldElement
1059
+ * Override in subclasses if needed (e.g., checkbox uses checked instead of value)
1060
+ *
1061
+ * @returns Current field value
1062
+ */
1063
+ getValue() {
1064
+ return this.fieldElement?.value || "";
1065
+ }
1066
+ /**
1067
+ * Write value to the underlying UI element and sync props
1068
+ * Subclasses must override this to update their specific UI element
1069
+ *
1070
+ * @param _value New value to write to the element
1071
+ */
1072
+ writeValue(_value) {
1073
+ }
1074
+ /**
1075
+ * Get event payload for change events
1076
+ * Override in subclasses to customize event data (e.g., { checked, oldChecked } for checkbox)
1077
+ *
1078
+ * @param value New value
1079
+ * @param oldValue Previous value
1080
+ * @param action Action type
1081
+ * @returns Event payload object
1082
+ */
1083
+ getEventPayload(value, oldValue, action) {
1084
+ return { value, oldValue, action };
1085
+ }
1086
+ /**
1087
+ * Update field value programmatically (internal method)
1088
+ * Subclasses should provide type-safe public wrappers (e.g., change() method)
1089
+ *
1090
+ * @param value New value
1091
+ * @param options.silent If true, won't emit change event (default: true)
1092
+ * @param options.action Action type for the event (default: 'change')
1093
+ */
1094
+ setValue(value, options) {
1095
+ const oldValue = this.getValue();
1096
+ this.value = value;
1097
+ this.writeValue(value);
1098
+ if (options?.silent === false) {
1099
+ const payload = this.getEventPayload(value, oldValue, options.action || "change");
1100
+ this.emit("change", { detail: payload });
1101
+ }
1102
+ }
1103
+ /**
1104
+ * Reset field to specified value or default value
1105
+ *
1106
+ * @param value Value to reset to, defaults to defaultValue prop
1107
+ * @param options.silent If false, will emit reset event (default: true)
1108
+ */
1109
+ reset(value, options) {
1110
+ const resetValue = value !== void 0 ? value : this.defaultValue;
1111
+ this.setValue(resetValue, { ...options, action: "reset" });
1112
+ }
1113
+ /**
1114
+ * Clear the field value
1115
+ *
1116
+ * @param options.silent If false, will emit clear event (default: true)
1117
+ */
1118
+ clear(options) {
1119
+ this.setValue("", { ...options, action: "clear" });
1120
+ }
1121
+ /**
1122
+ * Handle clear button click
1123
+ * Clears the field and dispatches event
1124
+ */
1125
+ onClear() {
1126
+ this.clear({ silent: false });
1127
+ }
1128
+ /**
1129
+ * Handle reset button click
1130
+ * Resets to default value and dispatches event
1131
+ */
1132
+ onReset() {
1133
+ this.reset(void 0, { silent: false });
1134
+ }
1135
+ };
1136
+ var aeico_field_default = AeicoField;
1137
+
1138
+ // src/slider/slider.ts
1139
+ var import_aeico3 = require("aeico");
1140
+ var import_slider = __toESM(require_slider(), 1);
1141
+ var import_variables = __toESM(require_variables(), 1);
1142
+ var import_size = __toESM(require_size(), 1);
1143
+ var import_color = __toESM(require_color(), 1);
1144
+ var import_field_label = __toESM(require_field_label(), 1);
1145
+ var import_action_button = __toESM(require_action_button(), 1);
1146
+ var import_aeico4 = require("aeico");
1147
+ var _marks_dec, _tracked_dec, _editable_dec, _step_dec, _max_dec, _min_dec, _percentage_dec, _options_dec, _a, _init, _options, _percentage, _min, _max, _step, _editable, _tracked, _marks;
1148
+ var Slider = class extends (_a = aeico_field_default, _options_dec = [(0, import_aeico4.prop)({ type: Array })], _percentage_dec = [(0, import_aeico4.prop)({ type: Boolean })], _min_dec = [(0, import_aeico4.prop)({ type: Number })], _max_dec = [(0, import_aeico4.prop)({ type: Number })], _step_dec = [(0, import_aeico4.prop)({ type: Number })], _editable_dec = [(0, import_aeico4.prop)({ type: Boolean })], _tracked_dec = [(0, import_aeico4.prop)({ type: Boolean })], _marks_dec = [(0, import_aeico4.prop)({
1149
+ type: Array,
1150
+ // bare attribute (<ae-slider marks>) → true; JSON array → MarkItem[]
1151
+ parser: (value) => {
1152
+ if (value === null) return void 0;
1153
+ if (value === "" || value === "true") return true;
1154
+ if (value === "false") return false;
1155
+ try {
1156
+ return JSON.parse(value);
1157
+ } catch {
1158
+ return true;
1159
+ }
1160
+ }
1161
+ })], _a) {
1162
+ constructor() {
1163
+ super();
1164
+ __publicField(this, "fieldElement", null);
1165
+ __publicField(this, "_valueLabel", null);
1166
+ __publicField(this, "_numberInput", null);
1167
+ __publicField(this, "_boundOnRangeInput");
1168
+ __publicField(this, "_boundOnNumberInput");
1169
+ __privateAdd(this, _options, __runInitializers(_init, 8, this, [])), __runInitializers(_init, 11, this);
1170
+ __privateAdd(this, _percentage, __runInitializers(_init, 12, this, false)), __runInitializers(_init, 15, this);
1171
+ __privateAdd(this, _min, __runInitializers(_init, 16, this, 0)), __runInitializers(_init, 19, this);
1172
+ __privateAdd(this, _max, __runInitializers(_init, 20, this, 100)), __runInitializers(_init, 23, this);
1173
+ __privateAdd(this, _step, __runInitializers(_init, 24, this, 1)), __runInitializers(_init, 27, this);
1174
+ __privateAdd(this, _editable, __runInitializers(_init, 28, this, false)), __runInitializers(_init, 31, this);
1175
+ __privateAdd(this, _tracked, __runInitializers(_init, 32, this, false)), __runInitializers(_init, 35, this);
1176
+ __privateAdd(this, _marks, __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
1177
+ this._boundOnRangeInput = this._onRangeInput.bind(this);
1178
+ this._boundOnNumberInput = this._onNumberInput.bind(this);
1179
+ }
1180
+ _normalizeOptions() {
1181
+ if (!Array.isArray(this.options) || this.options.length === 0) return null;
1182
+ const opts = this.options.map(
1183
+ (opt) => this._isSliderOption(opt) ? { label: opt.label, value: String(opt.value) } : { label: String(opt), value: String(opt) }
1184
+ );
1185
+ const allNumeric = opts.every((o) => o.value !== "" && !isNaN(Number(o.value)));
1186
+ if (allNumeric) {
1187
+ return [...opts].sort((a, b) => Number(a.value) - Number(b.value)).map((o) => ({ ...o, rangeValue: Number(o.value) }));
1188
+ } else {
1189
+ return opts.map((o, i) => ({ ...o, rangeValue: i }));
1190
+ }
1191
+ }
1192
+ _getRangeAttrs(normalized) {
1193
+ if (normalized && normalized.length >= 1) {
1194
+ const vals = normalized.map((o) => o.rangeValue);
1195
+ const min = Math.min(...vals);
1196
+ const max = Math.max(...vals);
1197
+ const sorted = [...vals].sort((a, b) => a - b);
1198
+ let minGap = Infinity;
1199
+ for (let i = 1; i < sorted.length; i++) {
1200
+ const d = sorted[i] - sorted[i - 1];
1201
+ if (d > 0 && d < minGap) minGap = d;
1202
+ }
1203
+ return {
1204
+ min: String(min),
1205
+ max: String(max),
1206
+ step: minGap === Infinity ? "1" : String(minGap),
1207
+ inOptionsMode: true
1208
+ };
1209
+ }
1210
+ return {
1211
+ min: String(this.min),
1212
+ max: String(this.max),
1213
+ step: String(this.step),
1214
+ inOptionsMode: false
1215
+ };
1216
+ }
1217
+ _toRangeValue(value, normalized) {
1218
+ if (value == null || value === "") return "";
1219
+ if (normalized) {
1220
+ const found = normalized.find((o) => o.value === value);
1221
+ return found !== void 0 ? String(found.rangeValue) : "";
1222
+ }
1223
+ return value;
1224
+ }
1225
+ _fromRangeValue(rv, normalized) {
1226
+ if (normalized) {
1227
+ const n = Number(rv);
1228
+ return normalized.find((o) => o.rangeValue === n)?.value ?? normalized[0]?.value ?? rv;
1229
+ }
1230
+ return rv;
1231
+ }
1232
+ _displayLabel(value, normalized) {
1233
+ if (value == null || value === "") return "";
1234
+ const label = normalized ? normalized.find((o) => o.value === value)?.label ?? value : value;
1235
+ return this.percentage ? `${label}%` : label;
1236
+ }
1237
+ _maxValueLabelWidth(normalized, attrs) {
1238
+ const candidates = normalized ? normalized.map((o) => this._displayLabel(o.value, normalized)) : [this._displayLabel(attrs.min, null), this._displayLabel(attrs.max, null)];
1239
+ const maxLen = Math.max(...candidates.map((l) => l.length), 1);
1240
+ return `${maxLen}ch`;
1241
+ }
1242
+ _updateTrackFill() {
1243
+ if (!this.tracked || !this.fieldElement) return;
1244
+ const min = Number(this.fieldElement.min);
1245
+ const max = Number(this.fieldElement.max);
1246
+ const val = Number(this.fieldElement.value);
1247
+ const range = max - min || 1;
1248
+ const pct = Math.max(0, Math.min(100, (val - min) / range * 100));
1249
+ this.style.setProperty("--fill-pct", `${pct}%`);
1250
+ }
1251
+ _getMarksData(normalized, attrs) {
1252
+ const minVal = Number(attrs.min);
1253
+ const maxVal = Number(attrs.max);
1254
+ const range = maxVal - minVal || 1;
1255
+ const marks = this.marks;
1256
+ if (Array.isArray(marks)) {
1257
+ const result = [];
1258
+ for (const m of marks) {
1259
+ const isObj = m !== null && typeof m === "object";
1260
+ const numVal = isObj ? m.value : m;
1261
+ if (numVal < minVal || numVal > maxVal) continue;
1262
+ const rawLabel = isObj ? m.label ?? String(numVal) : String(numVal);
1263
+ result.push({
1264
+ value: String(numVal),
1265
+ label: this.percentage ? `${rawLabel}%` : rawLabel,
1266
+ pct: (numVal - minVal) / range * 100
1267
+ });
1268
+ }
1269
+ return result;
1270
+ }
1271
+ if (normalized) {
1272
+ return normalized.map((o) => ({
1273
+ value: o.value,
1274
+ label: this.percentage ? `${o.label}%` : o.label,
1275
+ pct: (o.rangeValue - minVal) / range * 100
1276
+ }));
1277
+ }
1278
+ return [
1279
+ { value: attrs.min, label: this.percentage ? `${minVal}%` : String(minVal), pct: 0 },
1280
+ { value: attrs.max, label: this.percentage ? `${maxVal}%` : String(maxVal), pct: 100 }
1281
+ ];
1282
+ }
1283
+ writeValue(value) {
1284
+ const normalized = this._normalizeOptions();
1285
+ const rv = this._toRangeValue(value, normalized);
1286
+ if (this.fieldElement && rv !== "" && this.fieldElement.value !== rv) {
1287
+ this.fieldElement.value = rv;
1288
+ }
1289
+ if (this._valueLabel) {
1290
+ this._valueLabel.textContent = this._displayLabel(value, normalized);
1291
+ }
1292
+ if (this._numberInput && !normalized && this._numberInput.value !== rv) {
1293
+ this._numberInput.value = rv;
1294
+ }
1295
+ this._updateTrackFill();
1296
+ }
1297
+ getValue() {
1298
+ if (!this.fieldElement) return "";
1299
+ return this._fromRangeValue(this.fieldElement.value, this._normalizeOptions());
1300
+ }
1301
+ render() {
1302
+ const normalized = this._normalizeOptions();
1303
+ const attrs = this._getRangeAttrs(normalized);
1304
+ return (0, import_aeico3.html)(({ div, input, span }) => {
1305
+ const id = this.getFieldId();
1306
+ this.renderLabel(id);
1307
+ div({ className: "range-container field-body" }, () => {
1308
+ div({ key: "range-wrapper", className: "range-wrapper" }, () => {
1309
+ this.fieldElement = input({
1310
+ key: "range",
1311
+ id,
1312
+ type: "range",
1313
+ min: attrs.min,
1314
+ max: attrs.max,
1315
+ step: attrs.step,
1316
+ "@input": this._boundOnRangeInput,
1317
+ "@change": this.boundOnChange
1318
+ });
1319
+ if (this.marks) {
1320
+ const marksData = this._getMarksData(normalized, attrs);
1321
+ div({ key: "marks", className: "marks-container" }, () => {
1322
+ for (const m of marksData) {
1323
+ import_aeico3.tags.span(
1324
+ {
1325
+ key: `mark-${m.value}`,
1326
+ className: "mark",
1327
+ style: { left: `${m.pct}%` }
1328
+ },
1329
+ () => {
1330
+ import_aeico3.tags.span({ className: "mark-label", textContent: m.label });
1331
+ }
1332
+ );
1333
+ }
1334
+ });
1335
+ }
1336
+ });
1337
+ this._valueLabel = span({
1338
+ key: "label",
1339
+ className: "value-label",
1340
+ style: { minWidth: this._maxValueLabelWidth(normalized, attrs) },
1341
+ textContent: this._displayLabel(this.value, normalized)
1342
+ });
1343
+ this.renderActionButtons();
1344
+ if (this.editable) {
1345
+ this._numberInput = input({
1346
+ key: "number",
1347
+ type: "number",
1348
+ className: "value-input",
1349
+ min: attrs.min,
1350
+ max: attrs.max,
1351
+ step: attrs.step,
1352
+ // Disabled in options mode: valid values are discrete, free text makes no sense
1353
+ disabled: attrs.inOptionsMode,
1354
+ "@input": this._boundOnNumberInput
1355
+ });
1356
+ } else {
1357
+ this._numberInput = null;
1358
+ }
1359
+ });
1360
+ if (this.value != null) this.writeValue(this.value);
1361
+ this.renderHelperText();
1362
+ this.renderError();
1363
+ });
1364
+ }
1365
+ _onRangeInput() {
1366
+ if (!this.fieldElement) return;
1367
+ const normalized = this._normalizeOptions();
1368
+ const actualValue = this._fromRangeValue(this.fieldElement.value, normalized);
1369
+ if (this._valueLabel) {
1370
+ this._valueLabel.textContent = this._displayLabel(actualValue, normalized);
1371
+ }
1372
+ if (this._numberInput && !normalized) {
1373
+ this._numberInput.value = this.fieldElement.value;
1374
+ }
1375
+ this._updateTrackFill();
1376
+ }
1377
+ _onNumberInput() {
1378
+ if (!this._numberInput || !this.fieldElement) return;
1379
+ const v = this._numberInput.value;
1380
+ if (this.fieldElement.value === v) return;
1381
+ this.fieldElement.value = v;
1382
+ if (this._valueLabel) {
1383
+ this._valueLabel.textContent = this._displayLabel(v, null);
1384
+ }
1385
+ }
1386
+ clear(options) {
1387
+ const normalized = this._normalizeOptions();
1388
+ const attrs = this._getRangeAttrs(normalized);
1389
+ const clearTo = normalized ? normalized.find((o) => String(o.rangeValue) === attrs.min)?.value ?? normalized[0]?.value ?? attrs.min : attrs.min;
1390
+ this.setValue(clearTo, { ...options, action: "clear" });
1391
+ }
1392
+ _isSliderOption(opt) {
1393
+ return opt !== null && typeof opt === "object" && "label" in opt && "value" in opt;
1394
+ }
1395
+ };
1396
+ _init = __decoratorStart(_a);
1397
+ _options = new WeakMap();
1398
+ _percentage = new WeakMap();
1399
+ _min = new WeakMap();
1400
+ _max = new WeakMap();
1401
+ _step = new WeakMap();
1402
+ _editable = new WeakMap();
1403
+ _tracked = new WeakMap();
1404
+ _marks = new WeakMap();
1405
+ __decorateElement(_init, 4, "options", _options_dec, Slider, _options);
1406
+ __decorateElement(_init, 4, "percentage", _percentage_dec, Slider, _percentage);
1407
+ __decorateElement(_init, 4, "min", _min_dec, Slider, _min);
1408
+ __decorateElement(_init, 4, "max", _max_dec, Slider, _max);
1409
+ __decorateElement(_init, 4, "step", _step_dec, Slider, _step);
1410
+ __decorateElement(_init, 4, "editable", _editable_dec, Slider, _editable);
1411
+ __decorateElement(_init, 4, "tracked", _tracked_dec, Slider, _tracked);
1412
+ __decorateElement(_init, 4, "marks", _marks_dec, Slider, _marks);
1413
+ __decoratorMetadata(_init, Slider);
1414
+ __publicField(Slider, "tagName", "slider");
1415
+ __publicField(Slider, "styles", [import_variables.default, import_size.default, import_color.default, import_field_label.default, import_action_button.default, import_slider.default]);
1416
+ Slider.register();
1417
+ var slider_default = Slider;
1418
+ // Annotate the CommonJS export names for ESM import in node:
1419
+ 0 && (module.exports = {
1420
+ Slider
1421
+ });
6
1422
  //# sourceMappingURL=slider.cjs.map