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
@@ -1,7 +1,975 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const radio = require("./chunks/radio.cjs");
4
- exports.Radio = radio.Radio;
5
- exports.RadioGroup = radio.RadioGroup;
6
- exports.default = radio.RadioGroup;
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 __commonJS = (cb, mod) => function __require() {
9
+ try {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ } catch (e) {
12
+ throw mod = 0, e;
13
+ }
14
+ };
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+
37
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/radio-group.css
38
+ var require_radio_group = __commonJS({
39
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/radio-group.css"(exports2, module2) {
40
+ module2.exports = ':host {\n display: inline-flex;\n align-items: center;\n gap: var(--rg-gap, 0.286em);\n font-size: var(--ae-size-m);\n\n --rg-font-size: 1em;\n --rg-height: 2.286em;\n --rg-padding: 0.429em 1.071em;\n --rg-min-width: 4.571em;\n --rg-radius: 4px;\n --rg-font-weight: 400;\n}\n\n:host([size="xs"]) { --rg-radius: 3px; }\n:host([size="sm"]) { --rg-radius: 3px; }\n\n.rg-container {\n display: inline-flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n:host(:not([mode])) .rg-container .action-controls,\n:host([mode="default"]) .rg-container .action-controls {\n display: flex;\n align-self: center;\n margin-left: 2px;\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\n border-radius: var(--rg-radius);\n overflow: hidden;\n background: var(--field-action-bg, var(--ae-surface-base));\n height: 1.333em;\n box-sizing: border-box;\n}\n\n:host(:not([mode])) .rg-container .action-controls .action-btn,\n:host([mode="default"]) .rg-container .action-controls .action-btn {\n padding: 0 0.35em;\n font-size: 0.7em;\n}\n\nslot {\n display: none;\n}\n\n.rg-radio-option {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: var(--rg-font-size);\n color: var(--ae-color-text-main);\n user-select: none;\n}\n\n.rg-radio-input {\n width: 14px;\n height: 14px;\n accent-color: var(--ae-color-solid, var(--ae-color-primary));\n cursor: pointer;\n margin: 0;\n flex-shrink: 0;\n}\n\n.rg-radio-label {\n line-height: 1.5;\n}\n\n.rg-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: inherit;\n font-size: var(--rg-font-size);\n font-weight: 400;\n height: var(--rg-height);\n padding: var(--rg-padding);\n min-width: var(--rg-min-width);\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;\n outline: none;\n border-radius: var(--rg-radius);\n\n background: var(--ae-surface-base);\n border: 1px solid var(--ae-color-gray-light);\n color: var(--ae-color-text-muted);\n}\n\n.rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--ae-surface-base-hover);\n border-color: var(--ae-color-gray-light);\n color: var(--ae-color-text-main);\n}\n\n.rg-btn.selected {\n background: var(--ae-color-solid);\n border-color: var(--ae-color-solid);\n color: var(--ae-color-on-solid);\n font-weight: 500;\n box-shadow: 0 1px 4px rgb(from black r g b / 0.22);\n}\n\n.rg-btn.selected:hover:not(:disabled) {\n background: var(--ae-color-solid-hover);\n border-color: var(--ae-color-solid-hover);\n}\n\n.rg-btn:active:not(:disabled):not(.selected) {\n background: var(--ae-color-subtle-hover);\n transform: translateY(1px);\n}\n\n.rg-btn:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n:host([variant="outlined"]) .rg-btn {\n background: transparent;\n border-color: var(--ae-color-border);\n color: var(--ae-color-accent);\n}\n:host([variant="outlined"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--ae-color-subtle);\n border-color: var(--ae-color-accent);\n color: var(--ae-color-accent-hover);\n}\n:host([variant="outlined"]) .rg-btn.selected {\n background: var(--ae-color-solid);\n border-color: var(--ae-color-solid);\n color: var(--ae-color-on-solid);\n}\n\n:host([variant="subtle"]) .rg-btn {\n background: transparent;\n border-color: transparent;\n color: var(--ae-color-accent);\n}\n:host([variant="subtle"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--ae-color-subtle);\n border-color: transparent;\n color: var(--ae-color-accent-hover);\n}\n:host([variant="subtle"]) .rg-btn.selected {\n background: var(--ae-color-subtle-hover);\n border-color: transparent;\n color: var(--ae-color-accent-hover);\n font-weight: 600;\n box-shadow: none;\n}\n\n:host([variant="filled"]) .rg-btn:not(.selected) {\n background: var(--ae-surface-base);\n border-color: var(--ae-border-default);\n color: var(--ae-color-text-muted);\n}\n\n:host([variant="filled"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--ae-surface-raised);\n border-color: var(--ae-border-hover);\n color: var(--ae-color-text-main);\n}\n\n:host([mode="button"]) .rg-container {\n gap: 6px;\n}\n\n:host([mode="button-group"]) .rg-container {\n gap: 0;\n}\n\n:host([mode="button-group"]) .rg-btn:not(.first):not(.only) {\n margin-left: -1px;\n}\n\n:host([mode="button-group"]) .rg-btn.first {\n border-radius: var(--rg-radius) 0 0 var(--rg-radius);\n}\n:host([mode="button-group"]) .rg-btn.inner {\n border-radius: var(--ae-radius-square);\n}\n:host([mode="button-group"]) .rg-btn.last {\n border-radius: 0 var(--rg-radius) var(--rg-radius) 0;\n}\n:host([mode="button-group"]) .rg-btn.only {\n border-radius: var(--rg-radius);\n}\n\n:host([mode="button-group"]) .rg-btn:hover:not(:disabled),\n:host([mode="button-group"]) .rg-btn.selected {\n position: relative;\n z-index: 1;\n}\n\n:host([mode="segmented"]) .rg-container {\n gap: 2px;\n background: var(--ae-surface-raised);\n border: 1px solid var(--ae-border-subtle);\n border-radius: calc(var(--rg-radius) + 2px);\n padding: 2px;\n flex-wrap: nowrap;\n}\n\n:host([mode="segmented"]) .rg-btn {\n background: transparent;\n border-color: transparent;\n color: var(--ae-color-text-muted);\n border-radius: var(--rg-radius);\n min-width: var(--rg-min-width);\n box-shadow: none;\n font-weight: 400;\n}\n\n:host([mode="segmented"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--ae-color-subtle);\n border-color: transparent;\n color: var(--ae-color-text-secondary, var(--ae-color-text-main));\n}\n\n:host([mode="segmented"]) .rg-btn.selected {\n background: var(--ae-color-solid);\n border-color: transparent;\n color: var(--ae-color-on-solid);\n font-weight: 500;\n box-shadow: 0 1px 4px rgb(from black r g b / 0.35);\n}\n\n:host([mode="segmented"]) .rg-btn.selected:hover:not(:disabled) {\n background: var(--ae-color-solid-hover);\n}\n\n:host([mode="segmented"]:not([color])) .rg-btn.selected {\n background: var(--ae-color-gray-lighter);\n color: var(--ae-color-text-main);\n}\n\n:host([mode="segmented"][variant="outlined"]) .rg-container {\n border-color: var(--ae-color-border);\n}\n:host([mode="segmented"][variant="outlined"]) .rg-btn.selected {\n background: var(--ae-color-solid);\n border-color: transparent;\n color: var(--ae-color-on-solid);\n}\n\n:host([mode="button"]) .reset-btn,\n:host([mode="button"]) .clear-btn,\n:host([mode="button-group"]) .reset-btn,\n:host([mode="button-group"]) .clear-btn,\n:host([mode="segmented"]) .reset-btn,\n:host([mode="segmented"]) .clear-btn {\n height: var(--rg-height);\n width: var(--rg-height);\n border-radius: var(--rg-radius);\n font-size: var(--rg-font-size);\n}\n\n:host([mode="button"]) .reset-btn,\n:host([mode="button"]) .clear-btn,\n:host([mode="button-group"]) .reset-btn,\n:host([mode="button-group"]) .clear-btn,\n:host([mode="segmented"]) .reset-btn,\n:host([mode="segmented"]) .clear-btn {\n background: transparent;\n border: 1px solid var(--ae-color-gray-light);\n color: var(--ae-color-text-muted);\n}\n\n:host([mode="button"]) .reset-btn:hover,\n:host([mode="button-group"]) .reset-btn:hover,\n:host([mode="segmented"]) .reset-btn:hover {\n background: var(--ae-border-subtle);\n border-color: var(--ae-color-gray-lighter);\n color: var(--ae-color-text-main);\n}\n\n:host([mode="button"]) .clear-btn:hover,\n:host([mode="button-group"]) .clear-btn:hover,\n:host([mode="segmented"]) .clear-btn:hover {\n background: rgb(from var(--ae-red) r g b / 0.10);\n border-color: var(--ae-color-gray-lighter);\n color: var(--ae-color-danger);\n}\n\n:host([variant="outlined"][mode="button"]) .reset-btn,\n:host([variant="outlined"][mode="button"]) .clear-btn,\n:host([variant="outlined"][mode="button-group"]) .reset-btn,\n:host([variant="outlined"][mode="button-group"]) .clear-btn,\n:host([variant="outlined"][mode="segmented"]) .reset-btn,\n:host([variant="outlined"][mode="segmented"]) .clear-btn {\n background: transparent;\n border-color: var(--ae-color-border);\n color: var(--ae-color-accent);\n}\n\n:host([variant="outlined"][mode="button"]) .reset-btn:hover,\n:host([variant="outlined"][mode="button-group"]) .reset-btn:hover,\n:host([variant="outlined"][mode="segmented"]) .reset-btn:hover {\n background: var(--ae-border-subtle);\n border-color: var(--ae-color-border-hover);\n color: var(--ae-color-accent-hover);\n}\n\n:host([variant="outlined"][mode="button"]) .clear-btn:hover,\n:host([variant="outlined"][mode="button-group"]) .clear-btn:hover,\n:host([variant="outlined"][mode="segmented"]) .clear-btn:hover {\n background: rgb(from var(--ae-red) r g b / 0.10);\n border-color: var(--ae-color-border-hover);\n color: var(--ae-color-danger);\n}\n\n:host([variant="subtle"][mode="button"]) .reset-btn,\n:host([variant="subtle"][mode="button"]) .clear-btn,\n:host([variant="subtle"][mode="button-group"]) .reset-btn,\n:host([variant="subtle"][mode="button-group"]) .clear-btn,\n:host([variant="subtle"][mode="segmented"]) .reset-btn,\n:host([variant="subtle"][mode="segmented"]) .clear-btn {\n background: transparent;\n border-color: transparent;\n color: var(--ae-color-accent);\n}\n\n:host([variant="subtle"][mode="button"]) .reset-btn:hover,\n:host([variant="subtle"][mode="button-group"]) .reset-btn:hover,\n:host([variant="subtle"][mode="segmented"]) .reset-btn:hover {\n background: var(--ae-border-subtle);\n border-color: transparent;\n color: var(--ae-color-accent-hover);\n}\n\n:host([variant="subtle"][mode="button"]) .clear-btn:hover,\n:host([variant="subtle"][mode="button-group"]) .clear-btn:hover,\n:host([variant="subtle"][mode="segmented"]) .clear-btn:hover {\n background: rgb(from var(--ae-red) r g b / 0.10);\n border-color: transparent;\n color: var(--ae-color-danger);\n}\n';
41
+ }
42
+ });
43
+
44
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css
45
+ var require_variables = __commonJS({
46
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css"(exports2, module2) {
47
+ module2.exports = `:root,
48
+ :host {
49
+ --ae-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
50
+ "Noto Sans", "Liberation Sans", Arial, sans-serif,
51
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
52
+ --ae-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas,
53
+ "Liberation Mono", "Courier New", monospace;
54
+ font-family: var(--ae-font-sans-serif);
55
+ --ae-blue: #0e639c;
56
+ --ae-green: #28a745;
57
+ --ae-red: #dc3545;
58
+ --ae-yellow: #ffc107;
59
+ --ae-cyan: #17a2b8;
60
+ --ae-gray: #6e6e6e;
61
+ --ae-slate: #64748b;
62
+ --ae-dark: #343a40;
63
+ --ae-light: #f8f9fa;
64
+ }
65
+
66
+ :root,
67
+ :host {
68
+ /* Blue */
69
+ --ae-blue-100: color-mix(in srgb, var(--ae-blue) 20%, white);
70
+ --ae-blue-200: color-mix(in srgb, var(--ae-blue) 40%, white);
71
+ --ae-blue-300: color-mix(in srgb, var(--ae-blue) 60%, white);
72
+ --ae-blue-400: color-mix(in srgb, var(--ae-blue) 80%, white);
73
+ --ae-blue-500: var(--ae-blue);
74
+ --ae-blue-600: color-mix(in srgb, var(--ae-blue) 80%, black);
75
+ --ae-blue-700: color-mix(in srgb, var(--ae-blue) 60%, black);
76
+ --ae-blue-800: color-mix(in srgb, var(--ae-blue) 40%, black);
77
+ --ae-blue-900: color-mix(in srgb, var(--ae-blue) 20%, black);
78
+
79
+ /* Green */
80
+ --ae-green-100: color-mix(in srgb, var(--ae-green) 20%, white);
81
+ --ae-green-200: color-mix(in srgb, var(--ae-green) 40%, white);
82
+ --ae-green-300: color-mix(in srgb, var(--ae-green) 60%, white);
83
+ --ae-green-400: color-mix(in srgb, var(--ae-green) 80%, white);
84
+ --ae-green-500: var(--ae-green);
85
+ --ae-green-600: color-mix(in srgb, var(--ae-green) 80%, black);
86
+ --ae-green-700: color-mix(in srgb, var(--ae-green) 60%, black);
87
+ --ae-green-800: color-mix(in srgb, var(--ae-green) 40%, black);
88
+ --ae-green-900: color-mix(in srgb, var(--ae-green) 20%, black);
89
+
90
+ /* Red */
91
+ --ae-red-100: color-mix(in srgb, var(--ae-red) 20%, white);
92
+ --ae-red-200: color-mix(in srgb, var(--ae-red) 40%, white);
93
+ --ae-red-300: color-mix(in srgb, var(--ae-red) 60%, white);
94
+ --ae-red-400: color-mix(in srgb, var(--ae-red) 80%, white);
95
+ --ae-red-500: var(--ae-red);
96
+ --ae-red-600: color-mix(in srgb, var(--ae-red) 80%, black);
97
+ --ae-red-700: color-mix(in srgb, var(--ae-red) 60%, black);
98
+ --ae-red-800: color-mix(in srgb, var(--ae-red) 40%, black);
99
+ --ae-red-900: color-mix(in srgb, var(--ae-red) 20%, black);
100
+
101
+ /* Yellow */
102
+ --ae-yellow-100: color-mix(in srgb, var(--ae-yellow) 20%, white);
103
+ --ae-yellow-200: color-mix(in srgb, var(--ae-yellow) 40%, white);
104
+ --ae-yellow-300: color-mix(in srgb, var(--ae-yellow) 60%, white);
105
+ --ae-yellow-400: color-mix(in srgb, var(--ae-yellow) 80%, white);
106
+ --ae-yellow-500: var(--ae-yellow);
107
+ --ae-yellow-600: color-mix(in srgb, var(--ae-yellow) 80%, black);
108
+ --ae-yellow-700: color-mix(in srgb, var(--ae-yellow) 60%, black);
109
+ --ae-yellow-800: color-mix(in srgb, var(--ae-yellow) 40%, black);
110
+ --ae-yellow-900: color-mix(in srgb, var(--ae-yellow) 20%, black);
111
+
112
+ /* Cyan */
113
+ --ae-cyan-100: color-mix(in srgb, var(--ae-cyan) 20%, white);
114
+ --ae-cyan-200: color-mix(in srgb, var(--ae-cyan) 40%, white);
115
+ --ae-cyan-300: color-mix(in srgb, var(--ae-cyan) 60%, white);
116
+ --ae-cyan-400: color-mix(in srgb, var(--ae-cyan) 80%, white);
117
+ --ae-cyan-500: var(--ae-cyan);
118
+ --ae-cyan-600: color-mix(in srgb, var(--ae-cyan) 80%, black);
119
+ --ae-cyan-700: color-mix(in srgb, var(--ae-cyan) 60%, black);
120
+ --ae-cyan-800: color-mix(in srgb, var(--ae-cyan) 40%, black);
121
+ --ae-cyan-900: color-mix(in srgb, var(--ae-cyan) 20%, black);
122
+
123
+ /* Gray (neutral \u2014 base #6e6e6e) */
124
+ --ae-gray-100: color-mix(in srgb, var(--ae-gray) 20%, white);
125
+ --ae-gray-200: color-mix(in srgb, var(--ae-gray) 40%, white);
126
+ --ae-gray-300: color-mix(in srgb, var(--ae-gray) 60%, white);
127
+ --ae-gray-400: color-mix(in srgb, var(--ae-gray) 80%, white);
128
+ --ae-gray-500: var(--ae-gray);
129
+ --ae-gray-600: color-mix(in srgb, var(--ae-gray) 80%, black);
130
+ --ae-gray-700: color-mix(in srgb, var(--ae-gray) 60%, black);
131
+ --ae-gray-800: color-mix(in srgb, var(--ae-gray) 40%, black);
132
+ --ae-gray-900: color-mix(in srgb, var(--ae-gray) 20%, black);
133
+
134
+ /* Slate (blue-gray \u2014 base #64748b, used for 'secondary') */
135
+ --ae-slate-100: color-mix(in srgb, var(--ae-slate) 20%, white);
136
+ --ae-slate-200: color-mix(in srgb, var(--ae-slate) 40%, white);
137
+ --ae-slate-300: color-mix(in srgb, var(--ae-slate) 60%, white);
138
+ --ae-slate-400: color-mix(in srgb, var(--ae-slate) 80%, white);
139
+ --ae-slate-500: var(--ae-slate);
140
+ --ae-slate-600: color-mix(in srgb, var(--ae-slate) 80%, black);
141
+ --ae-slate-700: color-mix(in srgb, var(--ae-slate) 60%, black);
142
+ --ae-slate-800: color-mix(in srgb, var(--ae-slate) 40%, black);
143
+ --ae-slate-900: color-mix(in srgb, var(--ae-slate) 20%, black);
144
+
145
+ /* Dark (base #343a40) */
146
+ --ae-dark-100: color-mix(in srgb, var(--ae-dark) 20%, white);
147
+ --ae-dark-200: color-mix(in srgb, var(--ae-dark) 40%, white);
148
+ --ae-dark-300: color-mix(in srgb, var(--ae-dark) 60%, white);
149
+ --ae-dark-400: color-mix(in srgb, var(--ae-dark) 80%, white);
150
+ --ae-dark-500: var(--ae-dark);
151
+ --ae-dark-600: color-mix(in srgb, var(--ae-dark) 80%, black);
152
+ --ae-dark-700: color-mix(in srgb, var(--ae-dark) 60%, black);
153
+ --ae-dark-800: color-mix(in srgb, var(--ae-dark) 40%, black);
154
+ --ae-dark-900: color-mix(in srgb, var(--ae-dark) 20%, black);
155
+
156
+ /* Light (base #f8f9fa) */
157
+ --ae-light-100: color-mix(in srgb, var(--ae-light) 20%, white);
158
+ --ae-light-200: color-mix(in srgb, var(--ae-light) 40%, white);
159
+ --ae-light-300: color-mix(in srgb, var(--ae-light) 60%, white);
160
+ --ae-light-400: color-mix(in srgb, var(--ae-light) 80%, white);
161
+ --ae-light-500: var(--ae-light);
162
+ --ae-light-600: color-mix(in srgb, var(--ae-light) 80%, black);
163
+ --ae-light-700: color-mix(in srgb, var(--ae-light) 60%, black);
164
+ --ae-light-800: color-mix(in srgb, var(--ae-light) 40%, black);
165
+ --ae-light-900: color-mix(in srgb, var(--ae-light) 20%, black);
166
+ }
167
+
168
+ :root,
169
+ :host {
170
+ /* Hover / active mix (light default \u2014 overridden in \xA7 6 dark) */
171
+ --ae-color-mix-hover: black 10%;
172
+ --ae-color-mix-active: black 20%;
173
+
174
+ /* Primary (Blue) */
175
+ --ae-color-primary: var(--ae-blue-500);
176
+ --ae-color-primary-hover: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-hover));
177
+ --ae-color-primary-active: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-active));
178
+ --ae-color-primary-disabled: color-mix(in srgb, var(--ae-blue) 50%, var(--ae-gray-500));
179
+
180
+ /* Success (Green) */
181
+ --ae-color-success: var(--ae-green-500);
182
+ --ae-color-success-hover: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-hover));
183
+ --ae-color-success-active: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-active));
184
+ --ae-color-success-disabled: color-mix(in srgb, var(--ae-green) 50%, var(--ae-gray-500));
185
+
186
+ /* Danger (Red) */
187
+ --ae-color-danger: var(--ae-red-500);
188
+ --ae-color-danger-hover: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-hover));
189
+ --ae-color-danger-active: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-active));
190
+ --ae-color-danger-disabled: color-mix(in srgb, var(--ae-red) 50%, var(--ae-gray-500));
191
+
192
+ /* Warning (Yellow) */
193
+ --ae-color-warning: var(--ae-yellow-500);
194
+ --ae-color-warning-hover: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-hover));
195
+ --ae-color-warning-active: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-active));
196
+ --ae-color-warning-disabled: color-mix(in srgb, var(--ae-yellow) 50%, var(--ae-gray-500));
197
+
198
+ /* Info (Cyan) */
199
+ --ae-color-info: var(--ae-cyan-500);
200
+ --ae-color-info-hover: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-hover));
201
+ --ae-color-info-active: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-active));
202
+ --ae-color-info-disabled: color-mix(in srgb, var(--ae-cyan) 50%, var(--ae-gray-500));
203
+
204
+ /* Secondary (Slate) \u2014 base differs per theme, overridden in \xA7 6 dark */
205
+ --ae-color-secondary: var(--ae-slate-500);
206
+ --ae-color-secondary-hover: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-hover));
207
+ --ae-color-secondary-active: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-active));
208
+ --ae-color-secondary-text: var(--ae-slate-700);
209
+ }
210
+
211
+
212
+ .theme-light,
213
+ :root[theme="light"],
214
+ :host([theme="light"]),
215
+ :host-context([theme="light"]),
216
+ :where(:root),
217
+ :host {
218
+ color-scheme: light;
219
+
220
+ /* Gray UI aliases \u2014 lighter palette steps for elements on white background */
221
+ --ae-color-gray-dark: var(--ae-gray-400);
222
+ --ae-color-gray: var(--ae-gray-300);
223
+ --ae-color-gray-light: var(--ae-gray-200);
224
+ --ae-color-gray-lighter: var(--ae-gray-100);
225
+ --ae-color-gray-lightest: color-mix(in srgb, var(--ae-gray) 10%, white);
226
+
227
+ /* Text */
228
+ --ae-color-text-main: var(--ae-dark-700);
229
+ --ae-color-text-muted: var(--ae-gray-600);
230
+ --ae-color-text-disabled: var(--ae-gray-300);
231
+ --ae-color-text-link: var(--ae-blue-500);
232
+ --ae-color-text-link-hover: var(--ae-blue-700);
233
+
234
+ /* Surfaces */
235
+ --ae-surface-sunken: var(--ae-light-500);
236
+ --ae-surface-base: white;
237
+ --ae-surface-raised: var(--ae-light-500);
238
+ --ae-surface-overlay: white;
239
+ --ae-color-overlay: rgba(0, 0, 0, 0.4);
240
+
241
+ /* Borders */
242
+ --ae-border-subtle: rgba(0, 0, 0, 0.08);
243
+ --ae-border-default: rgba(0, 0, 0, 0.15);
244
+ --ae-border-hover: rgba(0, 0, 0, 0.25);
245
+ --ae-border-focus: var(--ae-color-primary);
246
+ --ae-border-disabled: rgba(0, 0, 0, 0.06);
247
+
248
+ /* Focus ring */
249
+ --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.30);
250
+ --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.15);
251
+
252
+ /* Subtle intent tokens \u2014 light context */
253
+ --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.08);
254
+ --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.40);
255
+ --ae-color-primary-text-emphasis: var(--ae-blue-700);
256
+
257
+ --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.08);
258
+ --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.40);
259
+ --ae-color-success-text-emphasis: var(--ae-green-700);
260
+
261
+ --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.08);
262
+ --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.40);
263
+ --ae-color-danger-text-emphasis: var(--ae-red-700);
264
+
265
+ --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.08);
266
+ --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.40);
267
+ --ae-color-warning-text-emphasis: var(--ae-yellow-700);
268
+
269
+ --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.08);
270
+ --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.40);
271
+ --ae-color-info-text-emphasis: var(--ae-cyan-700);
272
+
273
+ --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.08);
274
+ --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.40);
275
+ --ae-color-secondary-text-emphasis: var(--ae-slate-700);
276
+
277
+ --ae-color-light-bg-subtle: var(--ae-gray-100); /* opaque on white: ~#e2e2e2 */
278
+ --ae-color-light-border-subtle: var(--ae-gray-200); /* opaque on white: ~#c4c4c4 */
279
+
280
+ --ae-color-dark-bg-subtle: var(--ae-dark-100); /* opaque on white: ~#d6d8d9 */
281
+ --ae-color-dark-border-subtle: var(--ae-dark-300); /* opaque on white: ~#85898c */
282
+
283
+ /* Component tokens \u2014 light defaults */
284
+ --ae-action-btn-bg: var(--ae-gray-200);
285
+ --ae-action-btn-bg-hover: var(--ae-color-primary);
286
+ --ae-action-btn-color: var(--ae-gray-600);
287
+ --ae-action-btn-color-hover: white;
288
+
289
+ --ae-clear-btn-bg-hover: var(--ae-color-danger);
290
+ --ae-clear-btn-color-hover: white;
291
+
292
+ --ae-reset-btn-border-radius: var(--ae-radius-xs);
293
+ --ae-reset-btn-bg: var(--ae-action-btn-bg);
294
+ --ae-reset-btn-bg-hover: var(--ae-action-btn-bg-hover);
295
+ --ae-reset-btn-color: var(--ae-action-btn-color);
296
+ --ae-reset-btn-color-hover: var(--ae-action-btn-color-hover);
297
+ --ae-reset-btn-transition: all 0.12s;
298
+
299
+ --ae-clear-btn-border-radius: var(--ae-radius-xs);
300
+ --ae-clear-btn-bg: var(--ae-action-btn-bg);
301
+ --ae-clear-btn-color: var(--ae-action-btn-color);
302
+ --ae-clear-btn-transition: all 0.12s;
303
+ }
304
+
305
+ :root,
306
+ :host {
307
+ --ae-size-scale: 1;
308
+ --ae-size-base: calc(1rem * var(--ae-size-scale)); /* 16px */
309
+ --ae-size-xl: round(calc(var(--ae-size-l) * 1.125), 1px); /* 23px */
310
+ --ae-size-l: round(calc(var(--ae-size-m) * 1.125 * 1.125), 1px); /* 20px */
311
+ --ae-size-m: var(--ae-size-base); /* 16px */
312
+ --ae-size-s: round(calc(var(--ae-size-m) / 1.125), 1px); /* 14px */
313
+ --ae-size-xs: round(calc(var(--ae-size-s) / 1.125), 1px); /* 12px */
314
+ --ae-size-2xs: round(calc(var(--ae-size-xs) / 1.125), 1px); /* 11px */
315
+ --ae-size-3xs: round(calc(var(--ae-size-2xs) / 1.125), 1px); /* 10px */
316
+ }
317
+
318
+ /* Border-radius tokens \u2014 shared across all components */
319
+ :root,
320
+ :host {
321
+ /**
322
+ * Unified border-radius hook for all components.
323
+ *
324
+ * Not set by default \u2014 each component falls back to its own --ae-radius-*
325
+ * token (e.g. button \u2192 sm, card \u2192 lg, input \u2192 xs).
326
+ *
327
+ * Usage:
328
+ * :root { --ae-border-radius: 0; } // global: all components square
329
+ * :root { --ae-border-radius: 999px; } // global: all components pill
330
+ * ae-button { --ae-border-radius: 50%; } // scoped: only buttons circular
331
+ * .sidebar { --ae-border-radius: 8px; } // scoped: everything inside .sidebar
332
+ *
333
+ * To restore a component to its own default:
334
+ * ae-card { --ae-border-radius: initial; }
335
+ */
336
+
337
+ --ae-radius-square: 0;
338
+ --ae-radius-xs: 2px;
339
+ --ae-radius-sm: 4px;
340
+ --ae-radius-md: 6px;
341
+ --ae-radius-lg: 8px;
342
+ --ae-radius-xl: 12px;
343
+ --ae-radius-pill: 999px;
344
+ --ae-radius-circle: 50%;
345
+ }
346
+
347
+ /* Layout tokens \u2014 defined on :root so all light DOM elements can use them */
348
+ :root,
349
+ :host {
350
+ --container-max-width: 1280px;
351
+ --container-padding-x: 1.5rem;
352
+ }
353
+
354
+ .theme-dark,
355
+ :root[theme="dark"],
356
+ :host([theme="dark"]),
357
+ :host-context([theme="dark"]) {
358
+ color-scheme: dark;
359
+
360
+ /* Hover / active \u2014 slightly gentler on dark backgrounds */
361
+ --ae-color-mix-hover: black 8%;
362
+ --ae-color-mix-active: black 16%;
363
+
364
+ /* Gray UI aliases \u2014 darker palette steps for elements on dark background */
365
+ --ae-color-gray-dark: var(--ae-gray-800);
366
+ --ae-color-gray: var(--ae-gray-700);
367
+ --ae-color-gray-light: var(--ae-gray-600);
368
+ --ae-color-gray-lighter: var(--ae-gray-500);
369
+ --ae-color-gray-lightest: var(--ae-gray-400);
370
+
371
+ /* Secondary \u2014 deeper base on dark background */
372
+ --ae-color-secondary: var(--ae-slate-700);
373
+ --ae-color-secondary-text: var(--ae-slate-300);
374
+
375
+ /* Text */
376
+ --ae-color-text-main: white;
377
+ --ae-color-text-muted: var(--ae-gray-200);
378
+ --ae-color-text-disabled: var(--ae-gray-500);
379
+ --ae-color-text-link: var(--ae-blue-300);
380
+ --ae-color-text-link-hover: var(--ae-blue-200);
381
+
382
+ /* Surfaces */
383
+ --ae-surface-sunken: var(--ae-gray-900);
384
+ --ae-surface-base: color-mix(in srgb, var(--ae-gray) 27%, black);
385
+ --ae-surface-raised: color-mix(in srgb, var(--ae-gray) 34%, black);
386
+ --ae-surface-overlay: color-mix(in srgb, var(--ae-gray) 38%, black);
387
+ --ae-color-overlay: rgba(0, 0, 0, 0.6);
388
+
389
+ /* Borders */
390
+ --ae-border-subtle: rgba(255, 255, 255, 0.08);
391
+ --ae-border-default: rgba(255, 255, 255, 0.12);
392
+ --ae-border-hover: rgba(255, 255, 255, 0.20);
393
+ --ae-border-focus: var(--ae-color-primary);
394
+ --ae-border-disabled: rgba(255, 255, 255, 0.06);
395
+
396
+ /* Focus ring */
397
+ --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.25);
398
+ --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.10);
399
+
400
+ /* Subtle intent tokens \u2014 dark context (more alpha, lighter text-emphasis) */
401
+ --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.10);
402
+ --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.30);
403
+ --ae-color-primary-text-emphasis: var(--ae-blue-300);
404
+
405
+ --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.10);
406
+ --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.30);
407
+ --ae-color-success-text-emphasis: var(--ae-green-300);
408
+
409
+ --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.10);
410
+ --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.30);
411
+ --ae-color-danger-text-emphasis: var(--ae-red-300);
412
+
413
+ --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.10);
414
+ --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.30);
415
+ --ae-color-warning-text-emphasis: var(--ae-yellow-300);
416
+
417
+ --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.10);
418
+ --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.30);
419
+ --ae-color-info-text-emphasis: var(--ae-cyan-300);
420
+
421
+ --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.10);
422
+ --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.30);
423
+ --ae-color-secondary-text-emphasis: var(--ae-slate-300);
424
+
425
+ --ae-color-light-bg-subtle: rgb(from var(--ae-light) r g b / 0.20);
426
+ --ae-color-light-border-subtle: rgb(from var(--ae-light) r g b / 0.25);
427
+
428
+ --ae-color-dark-bg-subtle: rgb(from var(--ae-dark) r g b / 0.30);
429
+ --ae-color-dark-border-subtle: rgb(from var(--ae-dark) r g b / 0.50);
430
+
431
+ /* Component tokens \u2014 dark overrides */
432
+ --ae-action-btn-bg: var(--ae-color-gray);
433
+ --ae-action-btn-bg-hover: color-mix(in srgb, var(--ae-blue) 25%, var(--ae-gray-800));
434
+ --ae-action-btn-color: var(--ae-gray-400);
435
+ --ae-action-btn-color-hover: var(--ae-cyan-300);
436
+ --ae-clear-btn-bg-hover: color-mix(in srgb, var(--ae-red) 25%, var(--ae-gray-800));
437
+ --ae-clear-btn-color-hover: var(--ae-red-300);
438
+ }
439
+ `;
440
+ }
441
+ });
442
+
443
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css
444
+ var require_size = __commonJS({
445
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css"(exports2, module2) {
446
+ 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';
447
+ }
448
+ });
449
+
450
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css
451
+ var require_color = __commonJS({
452
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css"(exports2, module2) {
453
+ 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';
454
+ }
455
+ });
456
+
457
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/field-label.css
458
+ var require_field_label = __commonJS({
459
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/field-label.css"(exports2, module2) {
460
+ 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';
461
+ }
462
+ });
463
+
464
+ // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css
465
+ var require_action_button = __commonJS({
466
+ "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css"(exports2, module2) {
467
+ 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";
468
+ }
469
+ });
470
+
471
+ // src/radio-group/index.ts
472
+ var radio_group_exports = {};
473
+ __export(radio_group_exports, {
474
+ Radio: () => radio_default,
475
+ RadioGroup: () => radio_group_default,
476
+ default: () => radio_group_default
477
+ });
478
+ module.exports = __toCommonJS(radio_group_exports);
479
+
480
+ // src/aeico-field.ts
481
+ var import_aeico2 = require("aeico");
482
+
483
+ // src/aeico-component.ts
484
+ var import_aeico = require("aeico");
485
+
486
+ // src/utils.ts
487
+ function toKebab(str) {
488
+ const cleaned = str.replace(/^[_\d]+/, "");
489
+ return cleaned.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
490
+ }
491
+
492
+ // src/aeico-component.ts
493
+ var TAG_NAME_PREFIX = "ae";
494
+ var AeicoComponent = class extends import_aeico.AeicoElement {
495
+ static register(name) {
496
+ const tagName = name || `${TAG_NAME_PREFIX}-${this.tagName || toKebab(this.name)}`;
497
+ super.register(tagName);
498
+ }
499
+ };
500
+ var aeico_component_default = AeicoComponent;
501
+
502
+ // src/aeico-field.ts
503
+ var AeicoField = class _AeicoField extends aeico_component_default {
504
+ /**
505
+ * Define base field properties (extends AeicoElement properties)
506
+ */
507
+ static props = {
508
+ value: { type: String },
509
+ defaultValue: { type: String },
510
+ resettable: { type: Boolean },
511
+ resetText: { type: String },
512
+ resetTitle: { type: String },
513
+ clearable: { type: Boolean },
514
+ clearText: { type: String },
515
+ clearTitle: { type: String },
516
+ actionButtonStyle: { type: String },
517
+ size: { type: String },
518
+ disabled: { type: Boolean },
519
+ label: { type: String },
520
+ labelPlacement: { type: String },
521
+ required: { type: Boolean },
522
+ helperText: { type: String },
523
+ error: { type: String }
524
+ };
525
+ /**
526
+ * Property watchers
527
+ */
528
+ static watchers = {
529
+ disabled: "onDisabledChanged",
530
+ error: "onErrorChanged"
531
+ };
532
+ static _fieldIdCounter = 0;
533
+ _fieldId;
534
+ constructor() {
535
+ super();
536
+ this._fieldId = `ae-field-${++_AeicoField._fieldIdCounter}`;
537
+ }
538
+ /**
539
+ * The underlying form control element (input, select, etc.)
540
+ * Subclasses should set this to their specific element
541
+ */
542
+ fieldElement = null;
543
+ resetBtn = null;
544
+ clearBtn = null;
545
+ boundOnChange = () => this.setValue(this.getValue(), { silent: false, action: "change" });
546
+ boundOnReset = () => this.onReset();
547
+ boundOnClear = () => this.onClear();
548
+ /**
549
+ * Lifecycle: Component connected to DOM
550
+ */
551
+ connectedCallback() {
552
+ super.connectedCallback();
553
+ }
554
+ /**
555
+ * Lifecycle: Component disconnected from DOM
556
+ */
557
+ disconnectedCallback() {
558
+ super.disconnectedCallback();
559
+ }
560
+ /**
561
+ * Render action buttons (clear/reset) using this.builder.
562
+ * Must be called from within a build() callback.
563
+ */
564
+ renderActionButtons(force = false) {
565
+ const style2 = this.actionButtonStyle || "integrated";
566
+ const hasActions = force || this.clearable || this.resettable;
567
+ if (hasActions && style2 === "integrated") {
568
+ import_aeico2.tags.div({ className: "action-controls" }, () => {
569
+ this.renderClearButton(force);
570
+ this.renderResetButton(force);
571
+ });
572
+ } else {
573
+ this.renderClearButton(force);
574
+ this.renderResetButton(force);
575
+ }
576
+ }
577
+ renderResetButton(force = false) {
578
+ const { button } = import_aeico2.tags;
579
+ const style2 = this.actionButtonStyle || "integrated";
580
+ if (force || this.resettable) {
581
+ const className = style2 === "integrated" ? "reset-btn action-btn" : "reset-btn";
582
+ this.resetBtn = button({
583
+ className,
584
+ textContent: this.resetText || "\u21BA",
585
+ title: this.resetTitle || "\u21BA",
586
+ "@click": this.boundOnReset
587
+ });
588
+ }
589
+ }
590
+ renderClearButton(force = false) {
591
+ const { button } = import_aeico2.tags;
592
+ const style2 = this.actionButtonStyle || "integrated";
593
+ if (force || this.clearable) {
594
+ const className = style2 === "integrated" ? "clear-btn action-btn" : "clear-btn";
595
+ this.clearBtn = button({
596
+ className,
597
+ textContent: this.clearText || "\u2715",
598
+ title: this.clearTitle || "\u2715",
599
+ "@click": this.boundOnClear
600
+ });
601
+ }
602
+ }
603
+ /**
604
+ * Returns a stable unique ID for this field instance,
605
+ * used to associate <label htmlFor> with the underlying input.
606
+ */
607
+ getFieldId() {
608
+ return this._fieldId;
609
+ }
610
+ /**
611
+ * Renders a <label> element when the `label` prop is set.
612
+ * Call this as the first statement inside the render() html() callback.
613
+ * @param fieldId - The id to set on the underlying form control element (pass to input via id prop)
614
+ */
615
+ renderLabel(fieldId) {
616
+ if (!this.label) return;
617
+ const { span } = import_aeico2.tags;
618
+ import_aeico2.tags.label({ id: `${fieldId}-label`, className: "field-label", for: fieldId }, () => {
619
+ span({ textContent: this.label });
620
+ if (this.required) {
621
+ span({ className: "field-required", "aria-hidden": "true", textContent: " *" });
622
+ }
623
+ });
624
+ }
625
+ /**
626
+ * Renders helper text below the field. Hidden when `error` is set.
627
+ * Call this after the field-body div in render().
628
+ */
629
+ renderHelperText() {
630
+ if (!this.helperText || this.error) return;
631
+ const { span } = import_aeico2.tags;
632
+ span({ className: "field-helper", textContent: this.helperText });
633
+ }
634
+ /**
635
+ * Renders an error message below the field when `error` is set.
636
+ * Call this after renderHelperText() in render().
637
+ */
638
+ renderError() {
639
+ if (!this.error) return;
640
+ const { span } = import_aeico2.tags;
641
+ span({ className: "field-error", textContent: this.error });
642
+ }
643
+ /**
644
+ * Watcher for disabled property
645
+ */
646
+ onDisabledChanged(newValue) {
647
+ if (this.fieldElement) {
648
+ this.fieldElement.disabled = Boolean(newValue);
649
+ }
650
+ }
651
+ /**
652
+ * Watcher for error property — syncs aria-invalid on the field element
653
+ */
654
+ onErrorChanged(newValue) {
655
+ if (this.fieldElement) {
656
+ if (newValue) {
657
+ this.fieldElement.setAttribute("aria-invalid", "true");
658
+ } else {
659
+ this.fieldElement.removeAttribute("aria-invalid");
660
+ }
661
+ }
662
+ }
663
+ /**
664
+ * Lifecycle: called after every render update.
665
+ * Keeps aria-invalid on fieldElement in sync regardless of watcher timing.
666
+ */
667
+ onUpdated(_changedProps) {
668
+ if (!this.fieldElement) return;
669
+ if (this.error) {
670
+ this.fieldElement.setAttribute("aria-invalid", "true");
671
+ } else {
672
+ this.fieldElement.removeAttribute("aria-invalid");
673
+ }
674
+ }
675
+ /**
676
+ * Returns true if the field passes constraint validation.
677
+ * Delegates to the underlying fieldElement when available;
678
+ * falls back to a manual required-check otherwise.
679
+ */
680
+ checkValidity() {
681
+ if (this.fieldElement) {
682
+ return this.fieldElement.checkValidity();
683
+ }
684
+ if (this.required) {
685
+ const v = this.value;
686
+ return v !== void 0 && v !== "" && v !== null;
687
+ }
688
+ return true;
689
+ }
690
+ /**
691
+ * Reports validity, showing the browser's built-in validation UI when possible.
692
+ */
693
+ reportValidity() {
694
+ if (this.fieldElement) {
695
+ return this.fieldElement.reportValidity();
696
+ }
697
+ return this.checkValidity();
698
+ }
699
+ /**
700
+ * Render the field component
701
+ * Override in subclass to provide custom rendering
702
+ */
703
+ render() {
704
+ }
705
+ /**
706
+ * Get current value from the field element
707
+ * Default implementation returns the value property of fieldElement
708
+ * Override in subclasses if needed (e.g., checkbox uses checked instead of value)
709
+ *
710
+ * @returns Current field value
711
+ */
712
+ getValue() {
713
+ return this.fieldElement?.value || "";
714
+ }
715
+ /**
716
+ * Write value to the underlying UI element and sync props
717
+ * Subclasses must override this to update their specific UI element
718
+ *
719
+ * @param _value New value to write to the element
720
+ */
721
+ writeValue(_value) {
722
+ }
723
+ /**
724
+ * Get event payload for change events
725
+ * Override in subclasses to customize event data (e.g., { checked, oldChecked } for checkbox)
726
+ *
727
+ * @param value New value
728
+ * @param oldValue Previous value
729
+ * @param action Action type
730
+ * @returns Event payload object
731
+ */
732
+ getEventPayload(value, oldValue, action) {
733
+ return { value, oldValue, action };
734
+ }
735
+ /**
736
+ * Update field value programmatically (internal method)
737
+ * Subclasses should provide type-safe public wrappers (e.g., change() method)
738
+ *
739
+ * @param value New value
740
+ * @param options.silent If true, won't emit change event (default: true)
741
+ * @param options.action Action type for the event (default: 'change')
742
+ */
743
+ setValue(value, options) {
744
+ const oldValue = this.getValue();
745
+ this.value = value;
746
+ this.writeValue(value);
747
+ if (options?.silent === false) {
748
+ const payload = this.getEventPayload(value, oldValue, options.action || "change");
749
+ this.emit("change", { detail: payload });
750
+ }
751
+ }
752
+ /**
753
+ * Reset field to specified value or default value
754
+ *
755
+ * @param value Value to reset to, defaults to defaultValue prop
756
+ * @param options.silent If false, will emit reset event (default: true)
757
+ */
758
+ reset(value, options) {
759
+ const resetValue = value !== void 0 ? value : this.defaultValue;
760
+ this.setValue(resetValue, { ...options, action: "reset" });
761
+ }
762
+ /**
763
+ * Clear the field value
764
+ *
765
+ * @param options.silent If false, will emit clear event (default: true)
766
+ */
767
+ clear(options) {
768
+ this.setValue("", { ...options, action: "clear" });
769
+ }
770
+ /**
771
+ * Handle clear button click
772
+ * Clears the field and dispatches event
773
+ */
774
+ onClear() {
775
+ this.clear({ silent: false });
776
+ }
777
+ /**
778
+ * Handle reset button click
779
+ * Resets to default value and dispatches event
780
+ */
781
+ onReset() {
782
+ this.reset(void 0, { silent: false });
783
+ }
784
+ };
785
+ var aeico_field_default = AeicoField;
786
+
787
+ // src/radio-group/radio-group.ts
788
+ var import_aeico3 = require("aeico");
789
+ var import_radio_group = __toESM(require_radio_group(), 1);
790
+ var import_variables = __toESM(require_variables(), 1);
791
+ var import_size = __toESM(require_size(), 1);
792
+ var import_color = __toESM(require_color(), 1);
793
+ var import_field_label = __toESM(require_field_label(), 1);
794
+ var import_action_button = __toESM(require_action_button(), 1);
795
+ var RadioGroup = class _RadioGroup extends aeico_field_default {
796
+ fieldElement = null;
797
+ _slotEl = null;
798
+ _slotOptions = [];
799
+ static _instanceCount = 0;
800
+ _groupName;
801
+ static tagName = "radio-group";
802
+ static props = {
803
+ options: { type: Array },
804
+ mode: { type: String },
805
+ color: { type: String },
806
+ variant: { type: String },
807
+ size: { type: String },
808
+ allowEmpty: { type: Boolean },
809
+ actionButtonStyle: { type: String }
810
+ };
811
+ static styles = [import_variables.default, import_size.default, import_color.default, import_field_label.default, import_action_button.default, import_radio_group.default];
812
+ constructor() {
813
+ super();
814
+ this._groupName = `rg-${++_RadioGroup._instanceCount}`;
815
+ }
816
+ _optLabel(opt) {
817
+ if (opt !== null && typeof opt === "object") {
818
+ return String(opt.label);
819
+ }
820
+ return String(opt);
821
+ }
822
+ _optValue(opt) {
823
+ if (opt !== null && typeof opt === "object") return String(opt.value);
824
+ return String(opt);
825
+ }
826
+ _allOptions() {
827
+ const from_props = (Array.isArray(this.options) ? this.options : []).map((o) => ({
828
+ label: this._optLabel(o),
829
+ value: this._optValue(o)
830
+ }));
831
+ const from_slot = this._slotOptions.map((el) => ({
832
+ label: el.textContent?.trim() || el.value,
833
+ value: el.value,
834
+ disabled: el.disabled
835
+ }));
836
+ return [...from_props, ...from_slot];
837
+ }
838
+ _onSlotChange() {
839
+ if (!this._slotEl) return;
840
+ this._slotOptions = this._slotEl.assignedElements({ flatten: true }).filter(
841
+ (el) => el.tagName.toLowerCase() === "ae-radio"
842
+ );
843
+ this.update();
844
+ }
845
+ // Single handler for radio inputs — handles both select and deselect.
846
+ // Only uses `click` (not `change`) because `change` fires before `click`;
847
+ // if we set value in `change`, the `click` handler would see the updated
848
+ // value and immediately deselect.
849
+ _boundOnRadioClick = (e) => {
850
+ const input = e.target;
851
+ const current = this.value ?? "";
852
+ if (input.value === current) {
853
+ if (this.allowEmpty) {
854
+ input.checked = false;
855
+ this.setValue("", { silent: false, action: "change" });
856
+ }
857
+ } else {
858
+ this.setValue(input.value, { silent: false, action: "change" });
859
+ }
860
+ };
861
+ _boundOnButtonClick = (e) => {
862
+ const btn = e.currentTarget;
863
+ const val = btn.dataset.value ?? "";
864
+ const current = this.value ?? "";
865
+ if (val === current) {
866
+ if (this.allowEmpty) {
867
+ this.setValue("", { silent: false, action: "change" });
868
+ }
869
+ } else {
870
+ this.setValue(val, { silent: false, action: "change" });
871
+ }
872
+ };
873
+ getValue() {
874
+ return this.value ?? "";
875
+ }
876
+ writeValue(_value) {
877
+ }
878
+ onReset() {
879
+ this.setValue(this.defaultValue ?? "", { silent: false, action: "reset" });
880
+ }
881
+ onClear() {
882
+ this.setValue("", { silent: false, action: "clear" });
883
+ }
884
+ render() {
885
+ const mode = this.mode || "default";
886
+ const opts = this._allOptions();
887
+ const current = this.value ?? "";
888
+ return (0, import_aeico3.html)(({ div, slot }) => {
889
+ const id = this.getFieldId();
890
+ this.renderLabel(id);
891
+ div({ id, role: "group", className: "rg-container field-body" }, () => {
892
+ if (mode === "default") {
893
+ this._renderRadio(opts, current);
894
+ this.renderActionButtons();
895
+ } else {
896
+ this._renderButtons(opts, current, mode);
897
+ }
898
+ });
899
+ if (mode !== "default") {
900
+ if (this.allowEmpty) this.renderClearButton();
901
+ this.renderResetButton();
902
+ }
903
+ this._slotEl = slot({
904
+ style: { display: "none" },
905
+ "@slotchange": () => this._onSlotChange()
906
+ });
907
+ this.renderHelperText();
908
+ this.renderError();
909
+ });
910
+ }
911
+ _renderRadio(opts, current) {
912
+ const { label, input, span } = import_aeico3.tags;
913
+ for (const opt of opts) {
914
+ const isChecked = opt.value === current;
915
+ label({ key: `opt-${opt.value}`, className: "rg-radio-option" }, () => {
916
+ const el = input({
917
+ type: "radio",
918
+ className: "rg-radio-input",
919
+ name: this._groupName,
920
+ value: opt.value,
921
+ disabled: Boolean(this.disabled) || Boolean(opt.disabled),
922
+ required: Boolean(this.required),
923
+ "@click": this._boundOnRadioClick
924
+ });
925
+ el.checked = isChecked;
926
+ if (!this.fieldElement) this.fieldElement = el;
927
+ span({ className: "rg-radio-label", textContent: opt.label });
928
+ });
929
+ }
930
+ }
931
+ _renderButtons(opts, current, mode) {
932
+ const { button } = import_aeico3.tags;
933
+ const count = opts.length;
934
+ for (let i = 0; i < count; i++) {
935
+ const opt = opts[i];
936
+ const isSelected = opt.value === current;
937
+ let posClass = "";
938
+ if (mode === "button-group") {
939
+ if (count === 1) posClass = " only";
940
+ else if (i === 0) posClass = " first";
941
+ else if (i === count - 1) posClass = " last";
942
+ else posClass = " inner";
943
+ }
944
+ button({
945
+ key: `opt-${opt.value}`,
946
+ className: `rg-btn${isSelected ? " selected" : ""}${posClass}`,
947
+ textContent: opt.label,
948
+ disabled: Boolean(this.disabled) || Boolean(opt.disabled),
949
+ "data-value": opt.value,
950
+ "@click": this._boundOnButtonClick
951
+ });
952
+ }
953
+ }
954
+ };
955
+ RadioGroup.register();
956
+ var radio_group_default = RadioGroup;
957
+
958
+ // src/radio-group/radio.ts
959
+ var Radio = class extends aeico_component_default {
960
+ static tagName = "radio";
961
+ /** No shadow DOM — this element is a transparent data/content carrier. */
962
+ static useShadowDOM = false;
963
+ static props = {
964
+ value: { type: String },
965
+ disabled: { type: Boolean }
966
+ };
967
+ };
968
+ Radio.register();
969
+ var radio_default = Radio;
970
+ // Annotate the CommonJS export names for ESM import in node:
971
+ 0 && (module.exports = {
972
+ Radio,
973
+ RadioGroup
974
+ });
7
975
  //# sourceMappingURL=radio-group.cjs.map