aeico-components 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/dist/alert.cjs +637 -4
  2. package/dist/alert.cjs.map +7 -1
  3. package/dist/alert.js +575 -3
  4. package/dist/alert.js.map +7 -1
  5. package/dist/badge.cjs +573 -4
  6. package/dist/badge.cjs.map +7 -1
  7. package/dist/badge.js +510 -3
  8. package/dist/badge.js.map +7 -1
  9. package/dist/breadcrumb.cjs +709 -5
  10. package/dist/breadcrumb.cjs.map +7 -1
  11. package/dist/breadcrumb.js +644 -4
  12. package/dist/breadcrumb.js.map +7 -1
  13. package/dist/button-group.cjs +546 -4
  14. package/dist/button-group.cjs.map +7 -1
  15. package/dist/button-group.js +489 -3
  16. package/dist/button-group.js.map +7 -1
  17. package/dist/button.cjs +834 -4
  18. package/dist/button.cjs.map +7 -1
  19. package/dist/button.js +771 -3
  20. package/dist/button.js.map +7 -1
  21. package/dist/card.cjs +574 -4
  22. package/dist/card.cjs.map +7 -1
  23. package/dist/card.js +516 -3
  24. package/dist/card.js.map +7 -1
  25. package/dist/checkbox.cjs +867 -4
  26. package/dist/checkbox.cjs.map +7 -1
  27. package/dist/checkbox.js +794 -3
  28. package/dist/checkbox.js.map +7 -1
  29. package/dist/copy-button.cjs +1046 -4
  30. package/dist/copy-button.cjs.map +7 -1
  31. package/dist/copy-button.js +969 -3
  32. package/dist/copy-button.js.map +7 -1
  33. package/dist/detail-group.cjs +531 -4
  34. package/dist/detail-group.cjs.map +7 -1
  35. package/dist/detail-group.js +474 -3
  36. package/dist/detail-group.js.map +7 -1
  37. package/dist/detail.cjs +627 -4
  38. package/dist/detail.cjs.map +7 -1
  39. package/dist/detail.js +569 -3
  40. package/dist/detail.js.map +7 -1
  41. package/dist/dialog.cjs +738 -4
  42. package/dist/dialog.cjs.map +7 -1
  43. package/dist/dialog.js +665 -3
  44. package/dist/dialog.js.map +7 -1
  45. package/dist/divider.cjs +558 -4
  46. package/dist/divider.cjs.map +7 -1
  47. package/dist/divider.js +502 -3
  48. package/dist/divider.js.map +7 -1
  49. package/dist/drawer.cjs +818 -4
  50. package/dist/drawer.cjs.map +7 -1
  51. package/dist/drawer.js +749 -3
  52. package/dist/drawer.js.map +7 -1
  53. package/dist/dropdown.cjs +1396 -5
  54. package/dist/dropdown.cjs.map +7 -1
  55. package/dist/dropdown.js +1316 -4
  56. package/dist/dropdown.js.map +7 -1
  57. package/dist/icon-button.cjs +999 -4
  58. package/dist/icon-button.cjs.map +7 -1
  59. package/dist/icon-button.js +930 -3
  60. package/dist/icon-button.js.map +7 -1
  61. package/dist/icon.cjs +613 -4
  62. package/dist/icon.cjs.map +7 -1
  63. package/dist/icon.js +547 -3
  64. package/dist/icon.js.map +7 -1
  65. package/dist/index.cjs +6532 -74
  66. package/dist/index.cjs.map +7 -1
  67. package/dist/index.js +6183 -73
  68. package/dist/index.js.map +7 -1
  69. package/dist/menu.cjs +841 -4
  70. package/dist/menu.cjs.map +7 -1
  71. package/dist/menu.js +785 -3
  72. package/dist/menu.js.map +7 -1
  73. package/dist/navbar.cjs +622 -4
  74. package/dist/navbar.cjs.map +7 -1
  75. package/dist/navbar.js +564 -3
  76. package/dist/navbar.js.map +7 -1
  77. package/dist/number-input.cjs +885 -4
  78. package/dist/number-input.cjs.map +7 -1
  79. package/dist/number-input.js +817 -3
  80. package/dist/number-input.js.map +7 -1
  81. package/dist/pagination.cjs +1099 -4
  82. package/dist/pagination.cjs.map +7 -1
  83. package/dist/pagination.js +1029 -3
  84. package/dist/pagination.js.map +7 -1
  85. package/dist/progress-bar.cjs +581 -4
  86. package/dist/progress-bar.cjs.map +7 -1
  87. package/dist/progress-bar.js +525 -3
  88. package/dist/progress-bar.js.map +7 -1
  89. package/dist/radio-group.cjs +973 -5
  90. package/dist/radio-group.cjs.map +7 -1
  91. package/dist/radio-group.js +899 -4
  92. package/dist/radio-group.js.map +7 -1
  93. package/dist/select.cjs +1242 -45
  94. package/dist/select.cjs.map +7 -1
  95. package/dist/select.js +1159 -44
  96. package/dist/select.js.map +7 -1
  97. package/dist/slider.cjs +1420 -4
  98. package/dist/slider.cjs.map +7 -1
  99. package/dist/slider.js +1351 -3
  100. package/dist/slider.js.map +7 -1
  101. package/dist/spinner.cjs +587 -4
  102. package/dist/spinner.cjs.map +7 -1
  103. package/dist/spinner.js +528 -3
  104. package/dist/spinner.js.map +7 -1
  105. package/dist/styles/layout.cjs +1 -0
  106. package/dist/styles/layout.js +1 -0
  107. package/dist/styles/radius.cjs +1 -0
  108. package/dist/styles/radius.js +1 -0
  109. package/dist/styles/variables.cjs +1 -0
  110. package/dist/styles/variables.js +1 -0
  111. package/dist/switch.cjs +1092 -4
  112. package/dist/switch.cjs.map +7 -1
  113. package/dist/switch.js +1013 -3
  114. package/dist/switch.js.map +7 -1
  115. package/dist/tabs.cjs +660 -6
  116. package/dist/tabs.cjs.map +7 -1
  117. package/dist/tabs.js +591 -5
  118. package/dist/tabs.js.map +7 -1
  119. package/dist/tag.cjs +591 -3
  120. package/dist/tag.cjs.map +7 -1
  121. package/dist/tag.js +532 -2
  122. package/dist/tag.js.map +7 -1
  123. package/dist/text-input.cjs +829 -4
  124. package/dist/text-input.cjs.map +7 -1
  125. package/dist/text-input.js +761 -3
  126. package/dist/text-input.js.map +7 -1
  127. package/dist/textarea.cjs +914 -3
  128. package/dist/textarea.cjs.map +7 -1
  129. package/dist/textarea.js +854 -2
  130. package/dist/textarea.js.map +7 -1
  131. package/dist/tooltip.cjs +764 -4
  132. package/dist/tooltip.cjs.map +7 -1
  133. package/dist/tooltip.js +711 -3
  134. package/dist/tooltip.js.map +7 -1
  135. package/dist/tree.cjs +1059 -4
  136. package/dist/tree.cjs.map +7 -1
  137. package/dist/tree.js +985 -3
  138. package/dist/tree.js.map +7 -1
  139. package/dist/types/dialog/dialog.d.ts +1 -0
  140. package/dist/types/drawer/drawer.d.ts +2 -0
  141. package/dist/types/icon/defines.d.ts +2 -0
  142. package/dist/types/menu/defines.d.ts +1 -0
  143. package/dist/types/menu/menu-item.d.ts +1 -0
  144. package/dist/types/menu/menu.d.ts +1 -0
  145. package/dist/types/styles/layout.d.ts +2 -0
  146. package/dist/types/styles/radius.d.ts +2 -0
  147. package/dist/types/styles/variables.d.ts +2 -0
  148. package/package.json +31 -7
  149. package/src/alert/alert.ts +3 -3
  150. package/src/badge/badge.ts +4 -4
  151. package/src/breadcrumb/breadcrumb-item.ts +2 -2
  152. package/src/breadcrumb/breadcrumb.ts +3 -3
  153. package/src/button/button.ts +4 -4
  154. package/src/button-group/button-group.ts +8 -9
  155. package/src/card/card.ts +3 -3
  156. package/src/checkbox/checkbox.ts +6 -6
  157. package/src/copy-button/copy-button.ts +4 -4
  158. package/src/detail/detail.ts +3 -3
  159. package/src/detail-group/detail-group.ts +2 -2
  160. package/src/dialog/dialog.ts +15 -14
  161. package/src/divider/divider.ts +3 -3
  162. package/src/drawer/drawer.ts +28 -11
  163. package/src/dropdown/dropdown-item.ts +2 -2
  164. package/src/dropdown/dropdown.ts +2 -2
  165. package/src/icon/defines.ts +2 -0
  166. package/src/icon/icon.ts +4 -4
  167. package/src/menu/defines.ts +1 -0
  168. package/src/menu/menu-item.ts +14 -4
  169. package/src/menu/menu.ts +5 -2
  170. package/src/navbar/navbar.ts +3 -3
  171. package/src/number-input/number-input.ts +5 -5
  172. package/src/pagination/pagination.ts +3 -3
  173. package/src/progress-bar/progress-bar.ts +3 -3
  174. package/src/radio-group/radio-group.ts +12 -8
  175. package/src/select/select-option.ts +2 -2
  176. package/src/select/select.ts +5 -5
  177. package/src/slider/slider.ts +6 -6
  178. package/src/spinner/spinner.ts +4 -4
  179. package/src/styles/components/button-group.css +2 -0
  180. package/src/styles/components/card.css +42 -18
  181. package/src/styles/components/checkbox.css +16 -5
  182. package/src/styles/components/dialog.css +1 -1
  183. package/src/styles/components/drawer.css +50 -9
  184. package/src/styles/components/field-label.css +1 -1
  185. package/src/styles/components/menu-item.css +6 -0
  186. package/src/styles/components/navbar.css +7 -28
  187. package/src/styles/components/radio-group.css +19 -0
  188. package/src/styles/components/slider.css +30 -5
  189. package/src/styles/components/switch.css +16 -2
  190. package/src/styles/layout.css +5 -2
  191. package/src/styles/radius.css +15 -0
  192. package/src/switch/switch.ts +6 -6
  193. package/src/tabs/tab-panel.ts +1 -1
  194. package/src/tabs/tab.ts +1 -1
  195. package/src/tabs/tabs.ts +2 -2
  196. package/src/tag/tag.ts +4 -4
  197. package/src/text-input/text-input.ts +5 -5
  198. package/src/textarea/textarea.ts +5 -5
  199. package/src/tooltip/tooltip.ts +2 -2
  200. package/src/tree/tree-item.ts +2 -2
  201. package/src/tree/tree.ts +2 -2
  202. package/dist/chunks/action-button.cjs +0 -296
  203. package/dist/chunks/action-button.cjs.map +0 -1
  204. package/dist/chunks/action-button.js +0 -297
  205. package/dist/chunks/action-button.js.map +0 -1
  206. package/dist/chunks/aeico-component.cjs +0 -17
  207. package/dist/chunks/aeico-component.cjs.map +0 -1
  208. package/dist/chunks/aeico-component.js +0 -18
  209. package/dist/chunks/aeico-component.js.map +0 -1
  210. package/dist/chunks/alert.cjs +0 -164
  211. package/dist/chunks/alert.cjs.map +0 -1
  212. package/dist/chunks/alert.js +0 -165
  213. package/dist/chunks/alert.js.map +0 -1
  214. package/dist/chunks/badge.cjs +0 -85
  215. package/dist/chunks/badge.cjs.map +0 -1
  216. package/dist/chunks/badge.js +0 -86
  217. package/dist/chunks/badge.js.map +0 -1
  218. package/dist/chunks/breadcrumb-item.cjs +0 -261
  219. package/dist/chunks/breadcrumb-item.cjs.map +0 -1
  220. package/dist/chunks/breadcrumb-item.js +0 -262
  221. package/dist/chunks/breadcrumb-item.js.map +0 -1
  222. package/dist/chunks/button-group.cjs +0 -79
  223. package/dist/chunks/button-group.cjs.map +0 -1
  224. package/dist/chunks/button-group.js +0 -80
  225. package/dist/chunks/button-group.js.map +0 -1
  226. package/dist/chunks/button.cjs +0 -337
  227. package/dist/chunks/button.cjs.map +0 -1
  228. package/dist/chunks/button.js +0 -338
  229. package/dist/chunks/button.js.map +0 -1
  230. package/dist/chunks/card.cjs +0 -93
  231. package/dist/chunks/card.cjs.map +0 -1
  232. package/dist/chunks/card.js +0 -94
  233. package/dist/chunks/card.js.map +0 -1
  234. package/dist/chunks/checkbox.cjs +0 -86
  235. package/dist/chunks/checkbox.cjs.map +0 -1
  236. package/dist/chunks/checkbox.js +0 -87
  237. package/dist/chunks/checkbox.js.map +0 -1
  238. package/dist/chunks/color.cjs +0 -4
  239. package/dist/chunks/color.cjs.map +0 -1
  240. package/dist/chunks/color.js +0 -5
  241. package/dist/chunks/color.js.map +0 -1
  242. package/dist/chunks/copy-button.cjs +0 -171
  243. package/dist/chunks/copy-button.cjs.map +0 -1
  244. package/dist/chunks/copy-button.js +0 -172
  245. package/dist/chunks/copy-button.js.map +0 -1
  246. package/dist/chunks/detail-group.cjs +0 -65
  247. package/dist/chunks/detail-group.cjs.map +0 -1
  248. package/dist/chunks/detail-group.js +0 -66
  249. package/dist/chunks/detail-group.js.map +0 -1
  250. package/dist/chunks/detail.cjs +0 -146
  251. package/dist/chunks/detail.cjs.map +0 -1
  252. package/dist/chunks/detail.js +0 -147
  253. package/dist/chunks/detail.js.map +0 -1
  254. package/dist/chunks/dialog.cjs +0 -117
  255. package/dist/chunks/dialog.cjs.map +0 -1
  256. package/dist/chunks/dialog.js +0 -118
  257. package/dist/chunks/dialog.js.map +0 -1
  258. package/dist/chunks/divider.cjs +0 -80
  259. package/dist/chunks/divider.cjs.map +0 -1
  260. package/dist/chunks/divider.js +0 -81
  261. package/dist/chunks/divider.js.map +0 -1
  262. package/dist/chunks/drawer.cjs +0 -180
  263. package/dist/chunks/drawer.cjs.map +0 -1
  264. package/dist/chunks/drawer.js +0 -181
  265. package/dist/chunks/drawer.js.map +0 -1
  266. package/dist/chunks/dropdown-button.cjs +0 -533
  267. package/dist/chunks/dropdown-button.cjs.map +0 -1
  268. package/dist/chunks/dropdown-button.js +0 -534
  269. package/dist/chunks/dropdown-button.js.map +0 -1
  270. package/dist/chunks/icon-button.cjs +0 -35
  271. package/dist/chunks/icon-button.cjs.map +0 -1
  272. package/dist/chunks/icon-button.js +0 -36
  273. package/dist/chunks/icon-button.js.map +0 -1
  274. package/dist/chunks/icon.cjs +0 -124
  275. package/dist/chunks/icon.cjs.map +0 -1
  276. package/dist/chunks/icon.js +0 -125
  277. package/dist/chunks/icon.js.map +0 -1
  278. package/dist/chunks/menu.cjs +0 -396
  279. package/dist/chunks/menu.cjs.map +0 -1
  280. package/dist/chunks/menu.js +0 -397
  281. package/dist/chunks/menu.js.map +0 -1
  282. package/dist/chunks/navbar.cjs +0 -142
  283. package/dist/chunks/navbar.cjs.map +0 -1
  284. package/dist/chunks/navbar.js +0 -143
  285. package/dist/chunks/navbar.js.map +0 -1
  286. package/dist/chunks/number-input.cjs +0 -110
  287. package/dist/chunks/number-input.cjs.map +0 -1
  288. package/dist/chunks/number-input.js +0 -111
  289. package/dist/chunks/number-input.js.map +0 -1
  290. package/dist/chunks/pagination.cjs +0 -475
  291. package/dist/chunks/pagination.cjs.map +0 -1
  292. package/dist/chunks/pagination.js +0 -476
  293. package/dist/chunks/pagination.js.map +0 -1
  294. package/dist/chunks/progress-bar.cjs +0 -101
  295. package/dist/chunks/progress-bar.cjs.map +0 -1
  296. package/dist/chunks/progress-bar.js +0 -102
  297. package/dist/chunks/progress-bar.js.map +0 -1
  298. package/dist/chunks/radio.cjs +0 -185
  299. package/dist/chunks/radio.cjs.map +0 -1
  300. package/dist/chunks/radio.js +0 -186
  301. package/dist/chunks/radio.js.map +0 -1
  302. package/dist/chunks/select.cjs +0 -381
  303. package/dist/chunks/select.cjs.map +0 -1
  304. package/dist/chunks/select.js +0 -382
  305. package/dist/chunks/select.js.map +0 -1
  306. package/dist/chunks/size.cjs +0 -4
  307. package/dist/chunks/size.cjs.map +0 -1
  308. package/dist/chunks/size.js +0 -5
  309. package/dist/chunks/size.js.map +0 -1
  310. package/dist/chunks/slider.cjs +0 -608
  311. package/dist/chunks/slider.cjs.map +0 -1
  312. package/dist/chunks/slider.js +0 -609
  313. package/dist/chunks/slider.js.map +0 -1
  314. package/dist/chunks/spinner.cjs +0 -102
  315. package/dist/chunks/spinner.cjs.map +0 -1
  316. package/dist/chunks/spinner.js +0 -103
  317. package/dist/chunks/spinner.js.map +0 -1
  318. package/dist/chunks/switch.cjs +0 -167
  319. package/dist/chunks/switch.cjs.map +0 -1
  320. package/dist/chunks/switch.js +0 -168
  321. package/dist/chunks/switch.js.map +0 -1
  322. package/dist/chunks/tab-panel.cjs +0 -174
  323. package/dist/chunks/tab-panel.cjs.map +0 -1
  324. package/dist/chunks/tab-panel.js +0 -175
  325. package/dist/chunks/tab-panel.js.map +0 -1
  326. package/dist/chunks/tag.cjs +0 -108
  327. package/dist/chunks/tag.cjs.map +0 -1
  328. package/dist/chunks/tag.js +0 -109
  329. package/dist/chunks/tag.js.map +0 -1
  330. package/dist/chunks/text-input.cjs +0 -54
  331. package/dist/chunks/text-input.cjs.map +0 -1
  332. package/dist/chunks/text-input.js +0 -55
  333. package/dist/chunks/text-input.js.map +0 -1
  334. package/dist/chunks/textarea.cjs +0 -137
  335. package/dist/chunks/textarea.cjs.map +0 -1
  336. package/dist/chunks/textarea.js +0 -138
  337. package/dist/chunks/textarea.js.map +0 -1
  338. package/dist/chunks/tooltip.cjs +0 -292
  339. package/dist/chunks/tooltip.cjs.map +0 -1
  340. package/dist/chunks/tooltip.js +0 -293
  341. package/dist/chunks/tooltip.js.map +0 -1
  342. package/dist/chunks/tree.cjs +0 -468
  343. package/dist/chunks/tree.cjs.map +0 -1
  344. package/dist/chunks/tree.js +0 -469
  345. package/dist/chunks/tree.js.map +0 -1
  346. package/dist/chunks/variables.cjs +0 -396
  347. package/dist/chunks/variables.cjs.map +0 -1
  348. package/dist/chunks/variables.js +0 -397
  349. package/dist/chunks/variables.js.map +0 -1
@@ -18,6 +18,10 @@
18
18
  pointer-events: auto;
19
19
  }
20
20
 
21
+ :host([data-closing]) .backdrop {
22
+ animation: drawer-backdrop-out 0.2s ease forwards;
23
+ }
24
+
21
25
  .panel {
22
26
  position: absolute;
23
27
  display: flex;
@@ -34,61 +38,100 @@
34
38
  inset: 0 0 0 auto;
35
39
  width: var(--ae-drawer-size, 320px);
36
40
  max-width: 100%;
37
- border-radius: var(--ae-border-radius, var(--ae-border-radius)) 0 0 var(--ae-border-radius, var(--ae-border-radius));
41
+ border-radius: var(--ae-border-radius, var(--ae-radius-lg)) 0 0 var(--ae-border-radius, var(--ae-radius-lg));
38
42
  animation: drawer-slide-in-right 0.25s cubic-bezier(0.16, 1, 0.3, 1);
39
43
  }
40
44
 
45
+ :host([data-closing]) .panel.placement-right {
46
+ animation: drawer-slide-out-right 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
47
+ }
48
+
41
49
  .panel.placement-left {
42
50
  inset: 0 auto 0 0;
43
51
  width: var(--ae-drawer-size, 320px);
44
52
  max-width: 100%;
45
- border-radius: 0 var(--ae-border-radius, var(--ae-border-radius)) var(--ae-border-radius, var(--ae-border-radius)) 0;
53
+ border-radius: 0 var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg)) 0;
46
54
  animation: drawer-slide-in-left 0.25s cubic-bezier(0.16, 1, 0.3, 1);
47
55
  }
48
56
 
57
+ :host([data-closing]) .panel.placement-left {
58
+ animation: drawer-slide-out-left 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
59
+ }
60
+
49
61
  .panel.placement-top {
50
62
  inset: 0 0 auto 0;
51
63
  height: var(--ae-drawer-size, 320px);
52
64
  max-height: 100%;
53
- border-radius: 0 0 var(--ae-border-radius, var(--ae-border-radius)) var(--ae-border-radius, var(--ae-border-radius));
65
+ border-radius: 0 0 var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg));
54
66
  animation: drawer-slide-in-top 0.25s cubic-bezier(0.16, 1, 0.3, 1);
55
67
  }
56
68
 
69
+ :host([data-closing]) .panel.placement-top {
70
+ animation: drawer-slide-out-top 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
71
+ }
72
+
57
73
  .panel.placement-bottom {
58
74
  inset: auto 0 0 0;
59
75
  height: var(--ae-drawer-size, 320px);
60
76
  max-height: 100%;
61
- border-radius: var(--ae-border-radius, var(--ae-border-radius)) var(--ae-border-radius, var(--ae-border-radius)) 0 0;
77
+ border-radius: var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg)) 0 0;
62
78
  animation: drawer-slide-in-bottom 0.25s cubic-bezier(0.16, 1, 0.3, 1);
63
79
  }
64
80
 
65
- /* ── Keyframes ───────────────────────────────────────────────────── */
81
+ :host([data-closing]) .panel.placement-bottom {
82
+ animation: drawer-slide-out-bottom 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
83
+ }
84
+
66
85
  @keyframes drawer-backdrop-in {
67
86
  from { opacity: 0; }
68
87
  to { opacity: 1; }
69
88
  }
70
89
 
90
+ @keyframes drawer-backdrop-out {
91
+ from { opacity: 1; }
92
+ to { opacity: 0; }
93
+ }
94
+
71
95
  @keyframes drawer-slide-in-right {
72
96
  from { transform: translateX(100%); }
73
97
  to { transform: translateX(0); }
74
98
  }
75
99
 
100
+ @keyframes drawer-slide-out-right {
101
+ from { transform: translateX(0); }
102
+ to { transform: translateX(100%); }
103
+ }
104
+
76
105
  @keyframes drawer-slide-in-left {
77
106
  from { transform: translateX(-100%); }
78
107
  to { transform: translateX(0); }
79
108
  }
80
109
 
110
+ @keyframes drawer-slide-out-left {
111
+ from { transform: translateX(0); }
112
+ to { transform: translateX(-100%); }
113
+ }
114
+
81
115
  @keyframes drawer-slide-in-top {
82
116
  from { transform: translateY(-100%); }
83
117
  to { transform: translateY(0); }
84
118
  }
85
119
 
120
+ @keyframes drawer-slide-out-top {
121
+ from { transform: translateY(0); }
122
+ to { transform: translateY(-100%); }
123
+ }
124
+
86
125
  @keyframes drawer-slide-in-bottom {
87
126
  from { transform: translateY(100%); }
88
127
  to { transform: translateY(0); }
89
128
  }
90
129
 
91
- /* ── Header ──────────────────────────────────────────────────────── */
130
+ @keyframes drawer-slide-out-bottom {
131
+ from { transform: translateY(0); }
132
+ to { transform: translateY(100%); }
133
+ }
134
+
92
135
  header {
93
136
  display: flex;
94
137
  align-items: center;
@@ -115,7 +158,7 @@ header {
115
158
  height: 28px;
116
159
  padding: 0;
117
160
  border: none;
118
- border-radius: var(--ae-border-radius, var(--ae-border-radius));
161
+ border-radius: var(--ae-border-radius, var(--ae-radius-sm));
119
162
  background: transparent;
120
163
  color: var(--ae-color-text-muted);
121
164
  font-size: 18px;
@@ -129,14 +172,12 @@ header {
129
172
  color: var(--ae-color-text-main);
130
173
  }
131
174
 
132
- /* ── Body ────────────────────────────────────────────────────────── */
133
175
  .body {
134
176
  flex: 1;
135
177
  overflow-y: auto;
136
178
  padding: 20px;
137
179
  }
138
180
 
139
- /* ── Footer ──────────────────────────────────────────────────────── */
140
181
  footer {
141
182
  display: flex;
142
183
  align-items: center;
@@ -21,7 +21,7 @@
21
21
  grid-template-columns: var(--field-label-width) 1fr;
22
22
  column-gap: var(--field-label-col-gap);
23
23
  row-gap: var(--field-label-gap);
24
- align-items: start;
24
+ align-items: center;
25
25
  }
26
26
 
27
27
  :host([label][label-placement="left"]) .field-label {
@@ -51,6 +51,12 @@
51
51
  border-bottom: none;
52
52
  }
53
53
 
54
+ .item--wrap {
55
+ white-space: normal;
56
+ height: auto;
57
+ min-height: var(--menu-item-height);
58
+ }
59
+
54
60
  .item:hover:not(:disabled) {
55
61
  background: var(--menu-item-bg-hover);
56
62
  }
@@ -1,5 +1,4 @@
1
1
  :host {
2
- /* layout — padding lives in .inner so document * { padding:0 } cannot override it */
3
2
  display: block;
4
3
  position: static;
5
4
  top: auto;
@@ -8,26 +7,17 @@
8
7
  height: var(--ae-navbar-height, 3.25rem);
9
8
  border-radius: var(--ae-navbar-radius, 0);
10
9
 
11
- /* color */
12
10
  background: var(--ae-navbar-bg, var(--ae-surface-base));
13
11
  color: var(--ae-navbar-color, var(--ae-color-text-main));
14
12
  border-bottom: var(--ae-navbar-border-width, 1px) solid var(--ae-navbar-border-color, var(--ae-border-default));
15
13
  box-shadow: var(--ae-navbar-shadow, none);
16
14
 
17
- /* layout tokens — declared here so they are clearly part of the public API */
18
15
  --ae-navbar-radius: 0;
19
- /* Default padding-x references the global layout token so ae-navbar content
20
- automatically aligns with .container / .container-fluid in light DOM.
21
- Override with --ae-navbar-padding-x to decouple if needed. */
22
16
  --ae-navbar-padding-x: var(--container-padding-x, 1.5rem);
23
17
  --ae-navbar-gap: 0.5rem;
24
-
25
- /* link style tokens — text mode defaults.
26
- CSS custom properties inherit into slotted content, so
27
- ::slotted(a[slot="start"]) can reference --ae-navbar-height. */
28
18
  --ae-navbar-link-color: inherit;
29
19
  --ae-navbar-link-font-size: inherit;
30
- --ae-navbar-link-padding-x: 0.75rem; /* horizontal padding only; height fills vertically */
20
+ --ae-navbar-link-padding-x: 0.75rem;
31
21
  --ae-navbar-link-radius: var(--ae-border-radius, var(--ae-radius-sm));
32
22
  --ae-navbar-link-hover-color: var(--ae-color-text-link-hover);
33
23
  --ae-navbar-link-hover-bg: transparent;
@@ -48,16 +38,16 @@
48
38
  --ae-navbar-link-active-color: var(--ae-color-on-solid);
49
39
  }
50
40
 
51
- /* block preset: hover shows a subtle filled block */
52
41
  :host([appearance="block"]) {
53
42
  --ae-navbar-link-hover-bg: var(--ae-color-bg-subtle);
54
43
  --ae-navbar-link-hover-color: inherit;
44
+ --ae-navbar-link-radius: 0;
55
45
  }
56
46
 
57
- /* block preset on colored navbar: use semi-transparent white */
58
47
  :host([color][appearance="block"]) {
59
48
  --ae-navbar-link-hover-bg: rgba(255, 255, 255, 0.15);
60
49
  --ae-navbar-link-hover-color: var(--ae-color-on-solid);
50
+ --ae-navbar-link-radius: 0;
61
51
  }
62
52
 
63
53
  .inner {
@@ -75,11 +65,10 @@
75
65
  align-items: center;
76
66
  }
77
67
 
78
- /* nav wraps start + end; takes all remaining space */
79
68
  [part="nav"] {
80
69
  flex: 1 1 auto;
81
70
  display: flex;
82
- align-self: stretch; /* stretch to host height so children can fill it */
71
+ align-self: stretch;
83
72
  align-items: stretch;
84
73
  min-width: 0;
85
74
  }
@@ -92,17 +81,16 @@
92
81
  }
93
82
 
94
83
  [part="start"] {
95
- align-items: stretch; /* slotted <a> will stretch to full height */
84
+ align-items: stretch;
96
85
  gap: var(--ae-navbar-start-gap, 0);
97
86
  }
98
87
 
99
88
  [part="end"] {
100
- align-items: center; /* buttons / avatars stay vertically centred */
89
+ align-items: center;
101
90
  gap: var(--ae-navbar-end-gap, 0.5rem);
102
91
  margin-left: auto;
103
92
  }
104
93
 
105
- /* hamburger — hidden on desktop */
106
94
  [part="hamburger"] {
107
95
  display: none;
108
96
  flex-direction: column;
@@ -134,7 +122,6 @@
134
122
  transition: transform 0.2s ease, opacity 0.2s ease;
135
123
  }
136
124
 
137
- /* Brand link — sensible defaults, no full-height stretch */
138
125
  ::slotted(a[slot="brand"]) {
139
126
  display: inline-flex;
140
127
  align-items: center;
@@ -145,13 +132,11 @@
145
132
  white-space: nowrap;
146
133
  }
147
134
 
148
- /* Nav links (start / end slots) — fill full navbar height for block hover effect */
149
135
  ::slotted(a[slot="start"]),
150
136
  ::slotted(a[slot="end"]) {
151
137
  display: inline-flex;
152
138
  align-items: center;
153
- height: var(--ae-navbar-height, 3.25rem); /* full-height hover area */
154
- /* !important overrides document-level * { padding: 0 } reset */
139
+ height: var(--ae-navbar-height, 3.25rem);
155
140
  padding: 0 var(--ae-navbar-link-padding-x) !important;
156
141
  border-radius: var(--ae-navbar-link-radius);
157
142
  color: var(--ae-navbar-link-color);
@@ -174,7 +159,6 @@
174
159
  font-weight: var(--ae-navbar-link-active-font-weight);
175
160
  }
176
161
 
177
- /* ae-dropdown inside navbar — map navbar tokens to dropdown trigger API */
178
162
  ::slotted(ae-dropdown) {
179
163
  align-self: stretch;
180
164
  --dropdown-trigger-height: 100%;
@@ -188,7 +172,6 @@
188
172
  }
189
173
 
190
174
  @media (max-width: 768px) {
191
- /* collapse the nav container */
192
175
  [part="nav"] {
193
176
  display: none;
194
177
  position: absolute;
@@ -209,7 +192,6 @@
209
192
  display: flex;
210
193
  }
211
194
 
212
- /* stack start/end vertically inside the panel */
213
195
  [part="start"],
214
196
  [part="end"] {
215
197
  flex-direction: column;
@@ -220,7 +202,6 @@
220
202
  width: 100%;
221
203
  }
222
204
 
223
- /* Mobile: links revert to auto height and add vertical padding */
224
205
  ::slotted(a[slot="start"]),
225
206
  ::slotted(a[slot="end"]) {
226
207
  height: auto;
@@ -229,12 +210,10 @@
229
210
  border-radius: var(--ae-border-radius, var(--ae-radius-sm));
230
211
  }
231
212
 
232
- /* show hamburger */
233
213
  [part="hamburger"] {
234
214
  display: flex;
235
215
  }
236
216
 
237
- /* hamburger → × animation */
238
217
  :host([open]) [part="hamburger"] span:nth-child(1) {
239
218
  transform: translateY(7px) rotate(45deg);
240
219
  }
@@ -22,6 +22,25 @@
22
22
  gap: 6px;
23
23
  }
24
24
 
25
+ :host(:not([mode])) .rg-container .action-controls,
26
+ :host([mode="default"]) .rg-container .action-controls {
27
+ display: flex;
28
+ align-self: center;
29
+ margin-left: 2px;
30
+ border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));
31
+ border-radius: var(--rg-radius);
32
+ overflow: hidden;
33
+ background: var(--field-action-bg, var(--ae-surface-base));
34
+ height: 1.333em;
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ :host(:not([mode])) .rg-container .action-controls .action-btn,
39
+ :host([mode="default"]) .rg-container .action-controls .action-btn {
40
+ padding: 0 0.35em;
41
+ font-size: 0.7em;
42
+ }
43
+
25
44
  slot {
26
45
  display: none;
27
46
  }
@@ -195,6 +195,7 @@ input[type="range"]::-moz-range-thumb {
195
195
  width: 56px;
196
196
  padding: 0 4px;
197
197
  height: 22px;
198
+ line-height: 20px;
198
199
  border: 1px solid var(--ae-border-subtle);
199
200
  border-radius: var(--ae-radius-sm);
200
201
  background: transparent;
@@ -203,6 +204,7 @@ input[type="range"]::-moz-range-thumb {
203
204
  text-align: center;
204
205
  outline: none;
205
206
  flex-shrink: 0;
207
+ box-sizing: border-box;
206
208
  }
207
209
 
208
210
  .value-input:focus {
@@ -214,6 +216,31 @@ input[type="range"]::-moz-range-thumb {
214
216
  cursor: not-allowed;
215
217
  }
216
218
 
219
+ .range-container .action-controls {
220
+ display: flex;
221
+ align-self: center;
222
+ border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));
223
+ border-radius: var(--ae-radius-sm);
224
+ overflow: hidden;
225
+ background: var(--field-action-bg, var(--ae-surface-base));
226
+ height: 22px;
227
+ box-sizing: border-box;
228
+ }
229
+
230
+ .range-container .action-controls .action-btn {
231
+ padding: 0 0.35em;
232
+ font-size: 12px;
233
+ }
234
+
235
+ .range-container:has(.value-input) .action-controls {
236
+ border-radius: var(--ae-radius-sm) 0 0 var(--ae-radius-sm);
237
+ }
238
+
239
+ .range-container:has(.action-controls) .value-input {
240
+ margin-left: -7px;
241
+ border-radius: 0 var(--ae-radius-sm) var(--ae-radius-sm) 0;
242
+ }
243
+
217
244
  :host([tracked]) .input-range,
218
245
  :host([tracked]) .slider-input,
219
246
  :host([tracked]) input[type="range"] {
@@ -229,7 +256,7 @@ input[type="range"]::-moz-range-thumb {
229
256
  min-width: 0;
230
257
  display: flex;
231
258
  flex-direction: column;
232
- position: relative; /* marks-container positions against this */
259
+ position: relative;
233
260
  }
234
261
 
235
262
  .range-wrapper input[type="range"] {
@@ -237,11 +264,10 @@ input[type="range"]::-moz-range-thumb {
237
264
  flex: none;
238
265
  }
239
266
 
240
- /* Marks are absolutely positioned so they don't affect range-wrapper's layout height */
241
267
  .marks-container {
242
268
  position: absolute;
243
269
  top: 100%;
244
- left: 7px; /* inset by half thumb so 0%/100% align with track ends */
270
+ left: 7px;
245
271
  right: 7px;
246
272
  height: 18px;
247
273
  margin-top: 2px;
@@ -274,8 +300,7 @@ input[type="range"]::-moz-range-thumb {
274
300
  white-space: nowrap;
275
301
  }
276
302
 
277
- /* When marks are active, add padding-bottom to make room for the absolute-positioned marks */
278
303
  :host([marks]) .range-container {
279
- padding-bottom: 24px; /* marks-container height (18px) + margin-top (2px) + extra (4px) */
304
+ padding-bottom: 24px;
280
305
  height: auto;
281
306
  }
@@ -1,9 +1,7 @@
1
1
  :host {
2
2
  display: block;
3
3
  font-size: var(--ae-size-base);
4
-
5
4
  --switch-field-gap: 4px;
6
-
7
5
  --toggle-width: 2.667em;
8
6
  --toggle-height: 1.333em;
9
7
  --toggle-slider-size: 1em;
@@ -152,3 +150,19 @@
152
150
  .field-input:checked + .toggle-slider .track-icon-right {
153
151
  opacity: 0;
154
152
  }
153
+
154
+ .switch-container:has(.action-controls) .switch-wrapper .toggle-slider {
155
+ border-radius: var(--toggle-border-radius) 0 0 var(--toggle-border-radius);
156
+ }
157
+
158
+ .switch-container .action-controls {
159
+ margin-left: calc(-1 * var(--switch-field-gap) - 1px);
160
+ border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));
161
+ border-left: none;
162
+ border-radius: 0 var(--toggle-border-radius) var(--toggle-border-radius) 0;
163
+ overflow: hidden;
164
+ background: var(--field-action-bg, var(--ae-surface-base));
165
+ transition: border-color 0.12s;
166
+ height: var(--toggle-height);
167
+ box-sizing: border-box;
168
+ }
@@ -4,9 +4,12 @@
4
4
  NOT imported by any Web Component internally.
5
5
 
6
6
  Import it once in your page:
7
- import 'aeico/styles/layout.css'
7
+ import 'aeico-components/styles/layout.css'
8
8
  or:
9
- <link rel="stylesheet" href="path/to/layout.css">
9
+ <link rel="stylesheet" href="node_modules/aeico-components/src/styles/layout.css">
10
+
11
+ Requires variables.css for the --space-* and --container-* tokens:
12
+ import 'aeico-components/styles/variables.css'
10
13
 
11
14
  All utility rules live inside @layer aeico-layout so that your own
12
15
  un-layered (or later-layered) styles always override them without !important.
@@ -1,3 +1,18 @@
1
+ /*
2
+ radius.css — Light DOM border-radius utility classes
3
+ This file is for use in the user's light DOM (regular HTML),
4
+ NOT imported by any Web Component internally.
5
+
6
+ Import it once in your page:
7
+ import 'aeico-components/styles/radius.css'
8
+
9
+ Requires variables.css for the --ae-radius-* tokens:
10
+ import 'aeico-components/styles/variables.css'
11
+
12
+ All utility rules live inside @layer aeico-radius so that your own
13
+ un-layered (or later-layered) styles always override them without !important.
14
+ */
15
+
1
16
  @layer aeico-radius {
2
17
  .ae-radius-square { border-radius: var(--ae-radius-square); }
3
18
  .ae-radius-xs { border-radius: var(--ae-radius-xs); }
@@ -3,12 +3,12 @@ import type { InferProps } from 'aeico';
3
3
  import { html, prop } from 'aeico';
4
4
  import type { SwitchIconPlacement } from './defines';
5
5
  import '../icon/icon';
6
- import styleVariables from '../styles/variables.css?inline';
7
- import sizeCSS from '../styles/size.css?inline';
8
- import colorCSS from '../styles/color.css?inline';
9
- import fieldLabelCSS from '../styles/components/field-label.css?inline';
10
- import actionButtonCSS from '../styles/components/action-button.css?inline';
11
- import styles from '../styles/components/switch.css?inline';
6
+ import styleVariables from '../styles/variables.css';
7
+ import sizeCSS from '../styles/size.css';
8
+ import colorCSS from '../styles/color.css';
9
+ import fieldLabelCSS from '../styles/components/field-label.css';
10
+ import actionButtonCSS from '../styles/components/action-button.css';
11
+ import styles from '../styles/components/switch.css';
12
12
 
13
13
  class Switch extends AeicoField<boolean> {
14
14
  protected fieldElement: HTMLInputElement | null = null;
@@ -1,4 +1,4 @@
1
- import tabPanelStyle from '../styles/components/tab-panel.css?inline';
1
+ import tabPanelStyle from '../styles/components/tab-panel.css';
2
2
  import AeicoComponent from '../aeico-component';
3
3
  import { html } from 'aeico';
4
4
 
package/src/tabs/tab.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Props } from 'aeico';
2
- import tabStyle from '../styles/components/tab.css?inline';
2
+ import tabStyle from '../styles/components/tab.css';
3
3
  import AeicoComponent from '../aeico-component';
4
4
  import { html } from 'aeico';
5
5
 
package/src/tabs/tabs.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Props } from 'aeico';
2
- import styleVariables from '../styles/variables.css?inline';
3
- import tabsStyle from '../styles/components/tabs.css?inline';
2
+ import styleVariables from '../styles/variables.css';
3
+ import tabsStyle from '../styles/components/tabs.css';
4
4
  import AeicoComponent from '../aeico-component';
5
5
  import { html } from 'aeico';
6
6
  import type Tab from './tab';
package/src/tag/tag.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { InferProps } from 'aeico';
2
- import styleVariables from '../styles/variables.css?inline';
3
- import sizeCSS from '../styles/size.css?inline';
4
- import colorCSS from '../styles/color.css?inline';
5
- import tagStyle from '../styles/components/tag.css?inline';
2
+ import styleVariables from '../styles/variables.css';
3
+ import sizeCSS from '../styles/size.css';
4
+ import colorCSS from '../styles/color.css';
5
+ import tagStyle from '../styles/components/tag.css';
6
6
  import AeicoComponent from '../aeico-component';
7
7
  import { html } from 'aeico';
8
8
  import type { TagColor, TagSize, TagVariant } from './defines';
@@ -1,11 +1,11 @@
1
1
  import AeicoField from '../aeico-field';
2
2
  import type { InferProps, Props } from 'aeico';
3
3
  import { html } from 'aeico';
4
- import variables from '../styles/variables.css?inline';
5
- import sizeCSS from '../styles/size.css?inline';
6
- import fieldLabelCSS from '../styles/components/field-label.css?inline';
7
- import actionButtonCSS from '../styles/components/action-button.css?inline';
8
- import style from '../styles/components/text-input.css?inline';
4
+ import variables from '../styles/variables.css';
5
+ import sizeCSS from '../styles/size.css';
6
+ import fieldLabelCSS from '../styles/components/field-label.css';
7
+ import actionButtonCSS from '../styles/components/action-button.css';
8
+ import style from '../styles/components/text-input.css';
9
9
 
10
10
  class TextInput extends AeicoField {
11
11
  protected fieldElement: HTMLInputElement | null = null;
@@ -1,11 +1,11 @@
1
1
  import AeicoField from '../aeico-field';
2
2
  import type { InferProps } from 'aeico';
3
3
  import { html, prop } from 'aeico';
4
- import variables from '../styles/variables.css?inline';
5
- import sizeCSS from '../styles/size.css?inline';
6
- import fieldLabelCSS from '../styles/components/field-label.css?inline';
7
- import actionButtonCSS from '../styles/components/action-button.css?inline';
8
- import style from '../styles/components/textarea.css?inline';
4
+ import variables from '../styles/variables.css';
5
+ import sizeCSS from '../styles/size.css';
6
+ import fieldLabelCSS from '../styles/components/field-label.css';
7
+ import actionButtonCSS from '../styles/components/action-button.css';
8
+ import style from '../styles/components/textarea.css';
9
9
 
10
10
  export type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
11
11
 
@@ -1,6 +1,6 @@
1
1
  import type { InferProps } from 'aeico';
2
- import styleVariables from '../styles/variables.css?inline';
3
- import tooltipStyle from '../styles/components/tooltip.css?inline';
2
+ import styleVariables from '../styles/variables.css';
3
+ import tooltipStyle from '../styles/components/tooltip.css';
4
4
  import AeicoComponent from '../aeico-component';
5
5
  import { html, prop } from 'aeico';
6
6
  import type { TooltipPlacement, TooltipTrigger } from './defines';
@@ -1,8 +1,8 @@
1
1
  import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps } from 'aeico';
3
3
  import { html, prop } from 'aeico';
4
- import style from '../styles/components/tree-item.css?inline';
5
- import variables from '../styles/variables.css?inline';
4
+ import style from '../styles/components/tree-item.css';
5
+ import variables from '../styles/variables.css';
6
6
  import type { ParentTreeLike } from './defines';
7
7
  import { SVG_NS } from '../utils';
8
8
  import '../icon';
package/src/tree/tree.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps } from 'aeico';
3
3
  import { html, prop } from 'aeico';
4
- import style from '../styles/components/tree.css?inline';
5
- import variables from '../styles/variables.css?inline';
4
+ import style from '../styles/components/tree.css';
5
+ import variables from '../styles/variables.css';
6
6
  import type { TreeSelectDetail, TreeExpandDetail, TreeCheckDetail } from './defines';
7
7
  import './tree-item';
8
8
  import type TreeItem from './tree-item';