@furystack/shades-common-components 11.0.0 → 12.0.0

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 (765) hide show
  1. package/CHANGELOG.md +430 -0
  2. package/esm/components/accordion/accordion-item.d.ts +31 -0
  3. package/esm/components/accordion/accordion-item.d.ts.map +1 -0
  4. package/esm/components/accordion/accordion-item.js +147 -0
  5. package/esm/components/accordion/accordion-item.js.map +1 -0
  6. package/esm/components/accordion/accordion.d.ts +27 -0
  7. package/esm/components/accordion/accordion.d.ts.map +1 -0
  8. package/esm/components/accordion/accordion.js +39 -0
  9. package/esm/components/accordion/accordion.js.map +1 -0
  10. package/esm/components/accordion/accordion.spec.d.ts +2 -0
  11. package/esm/components/accordion/accordion.spec.d.ts.map +1 -0
  12. package/esm/components/accordion/accordion.spec.js +284 -0
  13. package/esm/components/accordion/accordion.spec.js.map +1 -0
  14. package/esm/components/accordion/index.d.ts +3 -0
  15. package/esm/components/accordion/index.d.ts.map +1 -0
  16. package/esm/components/accordion/index.js +3 -0
  17. package/esm/components/accordion/index.js.map +1 -0
  18. package/esm/components/alert.d.ts +21 -0
  19. package/esm/components/alert.d.ts.map +1 -0
  20. package/esm/components/alert.js +131 -0
  21. package/esm/components/alert.js.map +1 -0
  22. package/esm/components/alert.spec.d.ts +2 -0
  23. package/esm/components/alert.spec.d.ts.map +1 -0
  24. package/esm/components/alert.spec.js +177 -0
  25. package/esm/components/alert.spec.js.map +1 -0
  26. package/esm/components/app-bar-link.d.ts +22 -2
  27. package/esm/components/app-bar-link.d.ts.map +1 -1
  28. package/esm/components/app-bar-link.js +20 -7
  29. package/esm/components/app-bar-link.js.map +1 -1
  30. package/esm/components/app-bar-link.spec.js +22 -19
  31. package/esm/components/app-bar-link.spec.js.map +1 -1
  32. package/esm/components/app-bar.d.ts +2 -0
  33. package/esm/components/app-bar.d.ts.map +1 -1
  34. package/esm/components/app-bar.js +16 -11
  35. package/esm/components/app-bar.js.map +1 -1
  36. package/esm/components/app-bar.spec.js +67 -52
  37. package/esm/components/app-bar.spec.js.map +1 -1
  38. package/esm/components/avatar.d.ts +2 -0
  39. package/esm/components/avatar.d.ts.map +1 -1
  40. package/esm/components/avatar.js +40 -37
  41. package/esm/components/avatar.js.map +1 -1
  42. package/esm/components/badge.d.ts +35 -0
  43. package/esm/components/badge.d.ts.map +1 -0
  44. package/esm/components/badge.js +68 -0
  45. package/esm/components/badge.js.map +1 -0
  46. package/esm/components/badge.spec.d.ts +2 -0
  47. package/esm/components/badge.spec.d.ts.map +1 -0
  48. package/esm/components/badge.spec.js +157 -0
  49. package/esm/components/badge.spec.js.map +1 -0
  50. package/esm/components/breadcrumb.d.ts +103 -0
  51. package/esm/components/breadcrumb.d.ts.map +1 -0
  52. package/esm/components/breadcrumb.js +121 -0
  53. package/esm/components/breadcrumb.js.map +1 -0
  54. package/esm/components/breadcrumb.spec.d.ts +2 -0
  55. package/esm/components/breadcrumb.spec.d.ts.map +1 -0
  56. package/esm/components/breadcrumb.spec.js +251 -0
  57. package/esm/components/breadcrumb.spec.js.map +1 -0
  58. package/esm/components/button-group.d.ts +85 -0
  59. package/esm/components/button-group.d.ts.map +1 -0
  60. package/esm/components/button-group.js +290 -0
  61. package/esm/components/button-group.js.map +1 -0
  62. package/esm/components/button-group.spec.d.ts +2 -0
  63. package/esm/components/button-group.spec.d.ts.map +1 -0
  64. package/esm/components/button-group.spec.js +502 -0
  65. package/esm/components/button-group.spec.js.map +1 -0
  66. package/esm/components/button.d.ts +44 -2
  67. package/esm/components/button.d.ts.map +1 -1
  68. package/esm/components/button.js +82 -73
  69. package/esm/components/button.js.map +1 -1
  70. package/esm/components/button.spec.js +205 -50
  71. package/esm/components/button.spec.js.map +1 -1
  72. package/esm/components/card.d.ts +117 -0
  73. package/esm/components/card.d.ts.map +1 -0
  74. package/esm/components/card.js +181 -0
  75. package/esm/components/card.js.map +1 -0
  76. package/esm/components/card.spec.d.ts +2 -0
  77. package/esm/components/card.spec.d.ts.map +1 -0
  78. package/esm/components/card.spec.js +278 -0
  79. package/esm/components/card.spec.js.map +1 -0
  80. package/esm/components/carousel.d.ts +50 -0
  81. package/esm/components/carousel.d.ts.map +1 -0
  82. package/esm/components/carousel.js +263 -0
  83. package/esm/components/carousel.js.map +1 -0
  84. package/esm/components/carousel.spec.d.ts +2 -0
  85. package/esm/components/carousel.spec.d.ts.map +1 -0
  86. package/esm/components/carousel.spec.js +677 -0
  87. package/esm/components/carousel.spec.js.map +1 -0
  88. package/esm/components/chip.d.ts +23 -0
  89. package/esm/components/chip.d.ts.map +1 -0
  90. package/esm/components/chip.js +139 -0
  91. package/esm/components/chip.js.map +1 -0
  92. package/esm/components/chip.spec.d.ts +2 -0
  93. package/esm/components/chip.spec.d.ts.map +1 -0
  94. package/esm/components/chip.spec.js +142 -0
  95. package/esm/components/chip.spec.js.map +1 -0
  96. package/esm/components/circular-progress.d.ts +37 -0
  97. package/esm/components/circular-progress.d.ts.map +1 -0
  98. package/esm/components/circular-progress.js +84 -0
  99. package/esm/components/circular-progress.js.map +1 -0
  100. package/esm/components/circular-progress.spec.d.ts +2 -0
  101. package/esm/components/circular-progress.spec.d.ts.map +1 -0
  102. package/esm/components/circular-progress.spec.js +228 -0
  103. package/esm/components/circular-progress.spec.js.map +1 -0
  104. package/esm/components/command-palette/command-palette-input.d.ts +3 -0
  105. package/esm/components/command-palette/command-palette-input.d.ts.map +1 -1
  106. package/esm/components/command-palette/command-palette-input.js +17 -9
  107. package/esm/components/command-palette/command-palette-input.js.map +1 -1
  108. package/esm/components/command-palette/command-palette-input.spec.js +172 -161
  109. package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
  110. package/esm/components/command-palette/command-palette-manager.spec.js +130 -114
  111. package/esm/components/command-palette/command-palette-manager.spec.js.map +1 -1
  112. package/esm/components/command-palette/command-palette-suggestion-list.d.ts +2 -0
  113. package/esm/components/command-palette/command-palette-suggestion-list.d.ts.map +1 -1
  114. package/esm/components/command-palette/command-palette-suggestion-list.js +20 -20
  115. package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
  116. package/esm/components/command-palette/command-palette-suggestion-list.spec.js +296 -278
  117. package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
  118. package/esm/components/command-palette/index.d.ts +2 -0
  119. package/esm/components/command-palette/index.d.ts.map +1 -1
  120. package/esm/components/command-palette/index.js +25 -94
  121. package/esm/components/command-palette/index.js.map +1 -1
  122. package/esm/components/command-palette/index.spec.js +12 -12
  123. package/esm/components/command-palette/index.spec.js.map +1 -1
  124. package/esm/components/context-menu/context-menu-item.d.ts +9 -0
  125. package/esm/components/context-menu/context-menu-item.d.ts.map +1 -0
  126. package/esm/components/context-menu/context-menu-item.js +56 -0
  127. package/esm/components/context-menu/context-menu-item.js.map +1 -0
  128. package/esm/components/context-menu/context-menu-manager.d.ts +52 -0
  129. package/esm/components/context-menu/context-menu-manager.d.ts.map +1 -0
  130. package/esm/components/context-menu/context-menu-manager.js +128 -0
  131. package/esm/components/context-menu/context-menu-manager.js.map +1 -0
  132. package/esm/components/context-menu/context-menu-manager.spec.d.ts +2 -0
  133. package/esm/components/context-menu/context-menu-manager.spec.d.ts.map +1 -0
  134. package/esm/components/context-menu/context-menu-manager.spec.js +332 -0
  135. package/esm/components/context-menu/context-menu-manager.spec.js.map +1 -0
  136. package/esm/components/context-menu/context-menu.d.ts +8 -0
  137. package/esm/components/context-menu/context-menu.d.ts.map +1 -0
  138. package/esm/components/context-menu/context-menu.js +79 -0
  139. package/esm/components/context-menu/context-menu.js.map +1 -0
  140. package/esm/components/context-menu/context-menu.spec.d.ts +2 -0
  141. package/esm/components/context-menu/context-menu.spec.d.ts.map +1 -0
  142. package/esm/components/context-menu/context-menu.spec.js +282 -0
  143. package/esm/components/context-menu/context-menu.spec.js.map +1 -0
  144. package/esm/components/context-menu/index.d.ts +4 -0
  145. package/esm/components/context-menu/index.d.ts.map +1 -0
  146. package/esm/components/context-menu/index.js +4 -0
  147. package/esm/components/context-menu/index.js.map +1 -0
  148. package/esm/components/data-grid/body.spec.js +194 -184
  149. package/esm/components/data-grid/body.spec.js.map +1 -1
  150. package/esm/components/data-grid/data-grid-row.d.ts.map +1 -1
  151. package/esm/components/data-grid/data-grid-row.js +66 -54
  152. package/esm/components/data-grid/data-grid-row.js.map +1 -1
  153. package/esm/components/data-grid/data-grid-row.spec.js +127 -95
  154. package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
  155. package/esm/components/data-grid/data-grid.d.ts.map +1 -1
  156. package/esm/components/data-grid/data-grid.js +17 -16
  157. package/esm/components/data-grid/data-grid.js.map +1 -1
  158. package/esm/components/data-grid/data-grid.spec.js +454 -429
  159. package/esm/components/data-grid/data-grid.spec.js.map +1 -1
  160. package/esm/components/data-grid/footer.spec.js +215 -203
  161. package/esm/components/data-grid/footer.spec.js.map +1 -1
  162. package/esm/components/data-grid/header.d.ts +3 -1
  163. package/esm/components/data-grid/header.d.ts.map +1 -1
  164. package/esm/components/data-grid/header.js +42 -30
  165. package/esm/components/data-grid/header.js.map +1 -1
  166. package/esm/components/data-grid/header.spec.js +330 -307
  167. package/esm/components/data-grid/header.spec.js.map +1 -1
  168. package/esm/components/data-grid/selection-cell.d.ts +2 -0
  169. package/esm/components/data-grid/selection-cell.d.ts.map +1 -1
  170. package/esm/components/data-grid/selection-cell.js +2 -7
  171. package/esm/components/data-grid/selection-cell.js.map +1 -1
  172. package/esm/components/data-grid/selection-cell.spec.js +45 -36
  173. package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
  174. package/esm/components/dialog.d.ts +46 -0
  175. package/esm/components/dialog.d.ts.map +1 -0
  176. package/esm/components/dialog.js +178 -0
  177. package/esm/components/dialog.js.map +1 -0
  178. package/esm/components/dialog.spec.d.ts +2 -0
  179. package/esm/components/dialog.spec.d.ts.map +1 -0
  180. package/esm/components/dialog.spec.js +113 -0
  181. package/esm/components/dialog.spec.js.map +1 -0
  182. package/esm/components/divider.d.ts +22 -0
  183. package/esm/components/divider.d.ts.map +1 -0
  184. package/esm/components/divider.js +113 -0
  185. package/esm/components/divider.js.map +1 -0
  186. package/esm/components/divider.spec.d.ts +2 -0
  187. package/esm/components/divider.spec.d.ts.map +1 -0
  188. package/esm/components/divider.spec.js +136 -0
  189. package/esm/components/divider.spec.js.map +1 -0
  190. package/esm/components/drawer/drawer-toggle-button.d.ts +36 -0
  191. package/esm/components/drawer/drawer-toggle-button.d.ts.map +1 -0
  192. package/esm/components/drawer/drawer-toggle-button.js +94 -0
  193. package/esm/components/drawer/drawer-toggle-button.js.map +1 -0
  194. package/esm/components/drawer/drawer-toggle-button.spec.d.ts +2 -0
  195. package/esm/components/drawer/drawer-toggle-button.spec.d.ts.map +1 -0
  196. package/esm/components/drawer/drawer-toggle-button.spec.js +306 -0
  197. package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -0
  198. package/esm/components/drawer/index.d.ts +56 -0
  199. package/esm/components/drawer/index.d.ts.map +1 -0
  200. package/esm/components/drawer/index.js +172 -0
  201. package/esm/components/drawer/index.js.map +1 -0
  202. package/esm/components/drawer/index.spec.d.ts +2 -0
  203. package/esm/components/drawer/index.spec.d.ts.map +1 -0
  204. package/esm/components/drawer/index.spec.js +538 -0
  205. package/esm/components/drawer/index.spec.js.map +1 -0
  206. package/esm/components/dropdown.d.ts +15 -0
  207. package/esm/components/dropdown.d.ts.map +1 -0
  208. package/esm/components/dropdown.js +262 -0
  209. package/esm/components/dropdown.js.map +1 -0
  210. package/esm/components/dropdown.spec.d.ts +2 -0
  211. package/esm/components/dropdown.spec.d.ts.map +1 -0
  212. package/esm/components/dropdown.spec.js +372 -0
  213. package/esm/components/dropdown.spec.js.map +1 -0
  214. package/esm/components/fab.d.ts +10 -1
  215. package/esm/components/fab.d.ts.map +1 -1
  216. package/esm/components/fab.js +24 -8
  217. package/esm/components/fab.js.map +1 -1
  218. package/esm/components/fab.spec.js +50 -39
  219. package/esm/components/fab.spec.js.map +1 -1
  220. package/esm/components/form.d.ts.map +1 -1
  221. package/esm/components/form.js +9 -7
  222. package/esm/components/form.js.map +1 -1
  223. package/esm/components/form.spec.js +209 -199
  224. package/esm/components/form.spec.js.map +1 -1
  225. package/esm/components/grid.js +10 -10
  226. package/esm/components/grid.js.map +1 -1
  227. package/esm/components/grid.spec.js +109 -85
  228. package/esm/components/grid.spec.js.map +1 -1
  229. package/esm/components/icons/icon-definitions.d.ts +140 -0
  230. package/esm/components/icons/icon-definitions.d.ts.map +1 -0
  231. package/esm/components/icons/icon-definitions.js +432 -0
  232. package/esm/components/icons/icon-definitions.js.map +1 -0
  233. package/esm/components/icons/icon-definitions.spec.d.ts +2 -0
  234. package/esm/components/icons/icon-definitions.spec.d.ts.map +1 -0
  235. package/esm/components/icons/icon-definitions.spec.js +59 -0
  236. package/esm/components/icons/icon-definitions.spec.js.map +1 -0
  237. package/esm/components/icons/icon-types.d.ts +48 -0
  238. package/esm/components/icons/icon-types.d.ts.map +1 -0
  239. package/esm/components/icons/icon-types.js +2 -0
  240. package/esm/components/icons/icon-types.js.map +1 -0
  241. package/esm/components/icons/icon.d.ts +56 -0
  242. package/esm/components/icons/icon.d.ts.map +1 -0
  243. package/esm/components/icons/icon.js +61 -0
  244. package/esm/components/icons/icon.js.map +1 -0
  245. package/esm/components/icons/icon.spec.d.ts +2 -0
  246. package/esm/components/icons/icon.spec.d.ts.map +1 -0
  247. package/esm/components/icons/icon.spec.js +224 -0
  248. package/esm/components/icons/icon.spec.js.map +1 -0
  249. package/esm/components/icons/index.d.ts +5 -0
  250. package/esm/components/icons/index.d.ts.map +1 -0
  251. package/esm/components/icons/index.js +3 -0
  252. package/esm/components/icons/index.js.map +1 -0
  253. package/esm/components/image.d.ts +62 -0
  254. package/esm/components/image.d.ts.map +1 -0
  255. package/esm/components/image.js +348 -0
  256. package/esm/components/image.js.map +1 -0
  257. package/esm/components/image.spec.d.ts +2 -0
  258. package/esm/components/image.spec.d.ts.map +1 -0
  259. package/esm/components/image.spec.js +542 -0
  260. package/esm/components/image.spec.js.map +1 -0
  261. package/esm/components/index.d.ts +32 -4
  262. package/esm/components/index.d.ts.map +1 -1
  263. package/esm/components/index.js +32 -4
  264. package/esm/components/index.js.map +1 -1
  265. package/esm/components/inputs/autocomplete.d.ts +2 -0
  266. package/esm/components/inputs/autocomplete.d.ts.map +1 -1
  267. package/esm/components/inputs/autocomplete.js +10 -6
  268. package/esm/components/inputs/autocomplete.js.map +1 -1
  269. package/esm/components/inputs/autocomplete.spec.js +10 -1
  270. package/esm/components/inputs/autocomplete.spec.js.map +1 -1
  271. package/esm/components/inputs/checkbox.d.ts +50 -0
  272. package/esm/components/inputs/checkbox.d.ts.map +1 -0
  273. package/esm/components/inputs/checkbox.js +126 -0
  274. package/esm/components/inputs/checkbox.js.map +1 -0
  275. package/esm/components/inputs/checkbox.spec.d.ts +2 -0
  276. package/esm/components/inputs/checkbox.spec.d.ts.map +1 -0
  277. package/esm/components/inputs/checkbox.spec.js +287 -0
  278. package/esm/components/inputs/checkbox.spec.js.map +1 -0
  279. package/esm/components/inputs/index.d.ts +7 -0
  280. package/esm/components/inputs/index.d.ts.map +1 -1
  281. package/esm/components/inputs/index.js +7 -0
  282. package/esm/components/inputs/index.js.map +1 -1
  283. package/esm/components/inputs/input-number.d.ts +79 -0
  284. package/esm/components/inputs/input-number.d.ts.map +1 -0
  285. package/esm/components/inputs/input-number.js +232 -0
  286. package/esm/components/inputs/input-number.js.map +1 -0
  287. package/esm/components/inputs/input-number.spec.d.ts +2 -0
  288. package/esm/components/inputs/input-number.spec.d.ts.map +1 -0
  289. package/esm/components/inputs/input-number.spec.js +516 -0
  290. package/esm/components/inputs/input-number.spec.js.map +1 -0
  291. package/esm/components/inputs/input.d.ts +2 -1
  292. package/esm/components/inputs/input.d.ts.map +1 -1
  293. package/esm/components/inputs/input.js +86 -116
  294. package/esm/components/inputs/input.js.map +1 -1
  295. package/esm/components/inputs/input.spec.js +461 -427
  296. package/esm/components/inputs/input.spec.js.map +1 -1
  297. package/esm/components/inputs/radio-group.d.ts +38 -0
  298. package/esm/components/inputs/radio-group.d.ts.map +1 -0
  299. package/esm/components/inputs/radio-group.js +58 -0
  300. package/esm/components/inputs/radio-group.js.map +1 -0
  301. package/esm/components/inputs/radio-group.spec.d.ts +2 -0
  302. package/esm/components/inputs/radio-group.spec.d.ts.map +1 -0
  303. package/esm/components/inputs/radio-group.spec.js +201 -0
  304. package/esm/components/inputs/radio-group.spec.js.map +1 -0
  305. package/esm/components/inputs/radio.d.ts +42 -0
  306. package/esm/components/inputs/radio.d.ts.map +1 -0
  307. package/esm/components/inputs/radio.js +134 -0
  308. package/esm/components/inputs/radio.js.map +1 -0
  309. package/esm/components/inputs/radio.spec.d.ts +2 -0
  310. package/esm/components/inputs/radio.spec.d.ts.map +1 -0
  311. package/esm/components/inputs/radio.spec.js +211 -0
  312. package/esm/components/inputs/radio.spec.js.map +1 -0
  313. package/esm/components/inputs/select.d.ts +67 -0
  314. package/esm/components/inputs/select.d.ts.map +1 -0
  315. package/esm/components/inputs/select.js +581 -0
  316. package/esm/components/inputs/select.js.map +1 -0
  317. package/esm/components/inputs/select.spec.d.ts +2 -0
  318. package/esm/components/inputs/select.spec.d.ts.map +1 -0
  319. package/esm/components/inputs/select.spec.js +1009 -0
  320. package/esm/components/inputs/select.spec.js.map +1 -0
  321. package/esm/components/inputs/slider.d.ts +66 -0
  322. package/esm/components/inputs/slider.d.ts.map +1 -0
  323. package/esm/components/inputs/slider.js +526 -0
  324. package/esm/components/inputs/slider.js.map +1 -0
  325. package/esm/components/inputs/slider.spec.d.ts +2 -0
  326. package/esm/components/inputs/slider.spec.d.ts.map +1 -0
  327. package/esm/components/inputs/slider.spec.js +812 -0
  328. package/esm/components/inputs/slider.spec.js.map +1 -0
  329. package/esm/components/inputs/switch.d.ts +50 -0
  330. package/esm/components/inputs/switch.d.ts.map +1 -0
  331. package/esm/components/inputs/switch.js +138 -0
  332. package/esm/components/inputs/switch.js.map +1 -0
  333. package/esm/components/inputs/switch.spec.d.ts +2 -0
  334. package/esm/components/inputs/switch.spec.d.ts.map +1 -0
  335. package/esm/components/inputs/switch.spec.js +313 -0
  336. package/esm/components/inputs/switch.spec.js.map +1 -0
  337. package/esm/components/inputs/text-area.d.ts +2 -0
  338. package/esm/components/inputs/text-area.d.ts.map +1 -1
  339. package/esm/components/inputs/text-area.js +13 -21
  340. package/esm/components/inputs/text-area.js.map +1 -1
  341. package/esm/components/inputs/text-area.spec.js +171 -156
  342. package/esm/components/inputs/text-area.spec.js.map +1 -1
  343. package/esm/components/linear-progress.d.ts +32 -0
  344. package/esm/components/linear-progress.d.ts.map +1 -0
  345. package/esm/components/linear-progress.js +79 -0
  346. package/esm/components/linear-progress.js.map +1 -0
  347. package/esm/components/linear-progress.spec.d.ts +2 -0
  348. package/esm/components/linear-progress.spec.d.ts.map +1 -0
  349. package/esm/components/linear-progress.spec.js +251 -0
  350. package/esm/components/linear-progress.spec.js.map +1 -0
  351. package/esm/components/list/index.d.ts +3 -0
  352. package/esm/components/list/index.d.ts.map +1 -0
  353. package/esm/components/list/index.js +3 -0
  354. package/esm/components/list/index.js.map +1 -0
  355. package/esm/components/list/list-item.d.ts +13 -0
  356. package/esm/components/list/list-item.d.ts.map +1 -0
  357. package/esm/components/list/list-item.js +81 -0
  358. package/esm/components/list/list-item.js.map +1 -0
  359. package/esm/components/list/list.d.ts +18 -0
  360. package/esm/components/list/list.d.ts.map +1 -0
  361. package/esm/components/list/list.js +42 -0
  362. package/esm/components/list/list.js.map +1 -0
  363. package/esm/components/list/list.spec.d.ts +2 -0
  364. package/esm/components/list/list.spec.d.ts.map +1 -0
  365. package/esm/components/list/list.spec.js +540 -0
  366. package/esm/components/list/list.spec.js.map +1 -0
  367. package/esm/components/loader.d.ts +2 -0
  368. package/esm/components/loader.d.ts.map +1 -1
  369. package/esm/components/loader.js +18 -10
  370. package/esm/components/loader.js.map +1 -1
  371. package/esm/components/loader.spec.js +191 -175
  372. package/esm/components/loader.spec.js.map +1 -1
  373. package/esm/components/menu/index.d.ts +3 -0
  374. package/esm/components/menu/index.d.ts.map +1 -0
  375. package/esm/components/menu/index.js +3 -0
  376. package/esm/components/menu/index.js.map +1 -0
  377. package/esm/components/menu/menu-types.d.ts +27 -0
  378. package/esm/components/menu/menu-types.d.ts.map +1 -0
  379. package/esm/components/menu/menu-types.js +22 -0
  380. package/esm/components/menu/menu-types.js.map +1 -0
  381. package/esm/components/menu/menu-types.spec.d.ts +2 -0
  382. package/esm/components/menu/menu-types.spec.d.ts.map +1 -0
  383. package/esm/components/menu/menu-types.spec.js +103 -0
  384. package/esm/components/menu/menu-types.spec.js.map +1 -0
  385. package/esm/components/menu/menu.d.ts +17 -0
  386. package/esm/components/menu/menu.d.ts.map +1 -0
  387. package/esm/components/menu/menu.js +240 -0
  388. package/esm/components/menu/menu.js.map +1 -0
  389. package/esm/components/menu/menu.spec.d.ts +2 -0
  390. package/esm/components/menu/menu.spec.d.ts.map +1 -0
  391. package/esm/components/menu/menu.spec.js +427 -0
  392. package/esm/components/menu/menu.spec.js.map +1 -0
  393. package/esm/components/modal.d.ts +3 -2
  394. package/esm/components/modal.d.ts.map +1 -1
  395. package/esm/components/modal.js +8 -5
  396. package/esm/components/modal.js.map +1 -1
  397. package/esm/components/modal.spec.js +50 -43
  398. package/esm/components/modal.spec.js.map +1 -1
  399. package/esm/components/noty-list.d.ts +4 -0
  400. package/esm/components/noty-list.d.ts.map +1 -1
  401. package/esm/components/noty-list.js +65 -53
  402. package/esm/components/noty-list.js.map +1 -1
  403. package/esm/components/noty-list.spec.js +71 -68
  404. package/esm/components/noty-list.spec.js.map +1 -1
  405. package/esm/components/page-container/index.d.ts +54 -0
  406. package/esm/components/page-container/index.d.ts.map +1 -0
  407. package/esm/components/page-container/index.js +63 -0
  408. package/esm/components/page-container/index.js.map +1 -0
  409. package/esm/components/page-container/index.spec.d.ts +2 -0
  410. package/esm/components/page-container/index.spec.d.ts.map +1 -0
  411. package/esm/components/page-container/index.spec.js +217 -0
  412. package/esm/components/page-container/index.spec.js.map +1 -0
  413. package/esm/components/page-container/page-header.d.ts +57 -0
  414. package/esm/components/page-container/page-header.d.ts.map +1 -0
  415. package/esm/components/page-container/page-header.js +93 -0
  416. package/esm/components/page-container/page-header.js.map +1 -0
  417. package/esm/components/page-container/page-header.spec.d.ts +2 -0
  418. package/esm/components/page-container/page-header.spec.d.ts.map +1 -0
  419. package/esm/components/page-container/page-header.spec.js +230 -0
  420. package/esm/components/page-container/page-header.spec.js.map +1 -0
  421. package/esm/components/page-layout/index.d.ts +83 -0
  422. package/esm/components/page-layout/index.d.ts.map +1 -0
  423. package/esm/components/page-layout/index.js +288 -0
  424. package/esm/components/page-layout/index.js.map +1 -0
  425. package/esm/components/page-layout/index.spec.d.ts +2 -0
  426. package/esm/components/page-layout/index.spec.d.ts.map +1 -0
  427. package/esm/components/page-layout/index.spec.js +637 -0
  428. package/esm/components/page-layout/index.spec.js.map +1 -0
  429. package/esm/components/pagination.d.ts +43 -0
  430. package/esm/components/pagination.d.ts.map +1 -0
  431. package/esm/components/pagination.js +165 -0
  432. package/esm/components/pagination.js.map +1 -0
  433. package/esm/components/pagination.spec.d.ts +2 -0
  434. package/esm/components/pagination.spec.d.ts.map +1 -0
  435. package/esm/components/pagination.spec.js +195 -0
  436. package/esm/components/pagination.spec.js.map +1 -0
  437. package/esm/components/paper.d.ts +3 -1
  438. package/esm/components/paper.d.ts.map +1 -1
  439. package/esm/components/paper.js +11 -9
  440. package/esm/components/paper.js.map +1 -1
  441. package/esm/components/paper.spec.js +26 -18
  442. package/esm/components/paper.spec.js.map +1 -1
  443. package/esm/components/rating.d.ts +62 -0
  444. package/esm/components/rating.d.ts.map +1 -0
  445. package/esm/components/rating.js +201 -0
  446. package/esm/components/rating.js.map +1 -0
  447. package/esm/components/rating.spec.d.ts +2 -0
  448. package/esm/components/rating.spec.d.ts.map +1 -0
  449. package/esm/components/rating.spec.js +663 -0
  450. package/esm/components/rating.spec.js.map +1 -0
  451. package/esm/components/result.d.ts +37 -0
  452. package/esm/components/result.d.ts.map +1 -0
  453. package/esm/components/result.js +109 -0
  454. package/esm/components/result.js.map +1 -0
  455. package/esm/components/result.spec.d.ts +2 -0
  456. package/esm/components/result.spec.d.ts.map +1 -0
  457. package/esm/components/result.spec.js +159 -0
  458. package/esm/components/result.spec.js.map +1 -0
  459. package/esm/components/searchable-input-styles.d.ts +8 -0
  460. package/esm/components/searchable-input-styles.d.ts.map +1 -0
  461. package/esm/components/searchable-input-styles.js +71 -0
  462. package/esm/components/searchable-input-styles.js.map +1 -0
  463. package/esm/components/skeleton.d.ts +2 -0
  464. package/esm/components/skeleton.d.ts.map +1 -1
  465. package/esm/components/skeleton.js +19 -6
  466. package/esm/components/skeleton.js.map +1 -1
  467. package/esm/components/skeleton.spec.js +103 -95
  468. package/esm/components/skeleton.spec.js.map +1 -1
  469. package/esm/components/styles.d.ts.map +1 -1
  470. package/esm/components/styles.js +14 -13
  471. package/esm/components/styles.js.map +1 -1
  472. package/esm/components/styles.spec.js +27 -26
  473. package/esm/components/styles.spec.js.map +1 -1
  474. package/esm/components/suggest/index.d.ts.map +1 -1
  475. package/esm/components/suggest/index.js +24 -85
  476. package/esm/components/suggest/index.js.map +1 -1
  477. package/esm/components/suggest/index.spec.js +402 -378
  478. package/esm/components/suggest/index.spec.js.map +1 -1
  479. package/esm/components/suggest/suggest-input.d.ts +2 -0
  480. package/esm/components/suggest/suggest-input.d.ts.map +1 -1
  481. package/esm/components/suggest/suggest-input.js +10 -8
  482. package/esm/components/suggest/suggest-input.js.map +1 -1
  483. package/esm/components/suggest/suggest-input.spec.js +83 -71
  484. package/esm/components/suggest/suggest-input.spec.js.map +1 -1
  485. package/esm/components/suggest/suggest-manager.spec.js +102 -92
  486. package/esm/components/suggest/suggest-manager.spec.js.map +1 -1
  487. package/esm/components/suggest/suggestion-list.d.ts.map +1 -1
  488. package/esm/components/suggest/suggestion-list.js +21 -22
  489. package/esm/components/suggest/suggestion-list.js.map +1 -1
  490. package/esm/components/suggest/suggestion-list.spec.js +165 -146
  491. package/esm/components/suggest/suggestion-list.spec.js.map +1 -1
  492. package/esm/components/tabs.d.ts +18 -2
  493. package/esm/components/tabs.d.ts.map +1 -1
  494. package/esm/components/tabs.js +154 -14
  495. package/esm/components/tabs.js.map +1 -1
  496. package/esm/components/tabs.spec.js +295 -7
  497. package/esm/components/tabs.spec.js.map +1 -1
  498. package/esm/components/timeline.d.ts +53 -0
  499. package/esm/components/timeline.d.ts.map +1 -0
  500. package/esm/components/timeline.js +162 -0
  501. package/esm/components/timeline.js.map +1 -0
  502. package/esm/components/timeline.spec.d.ts +2 -0
  503. package/esm/components/timeline.spec.d.ts.map +1 -0
  504. package/esm/components/timeline.spec.js +209 -0
  505. package/esm/components/timeline.spec.js.map +1 -0
  506. package/esm/components/tooltip.d.ts +25 -0
  507. package/esm/components/tooltip.d.ts.map +1 -0
  508. package/esm/components/tooltip.js +113 -0
  509. package/esm/components/tooltip.js.map +1 -0
  510. package/esm/components/tooltip.spec.d.ts +2 -0
  511. package/esm/components/tooltip.spec.d.ts.map +1 -0
  512. package/esm/components/tooltip.spec.js +152 -0
  513. package/esm/components/tooltip.spec.js.map +1 -0
  514. package/esm/components/tree/index.d.ts +3 -0
  515. package/esm/components/tree/index.d.ts.map +1 -0
  516. package/esm/components/tree/index.js +3 -0
  517. package/esm/components/tree/index.js.map +1 -0
  518. package/esm/components/tree/tree-item.d.ts +14 -0
  519. package/esm/components/tree/tree-item.d.ts.map +1 -0
  520. package/esm/components/tree/tree-item.js +118 -0
  521. package/esm/components/tree/tree-item.js.map +1 -0
  522. package/esm/components/tree/tree.d.ts +20 -0
  523. package/esm/components/tree/tree.d.ts.map +1 -0
  524. package/esm/components/tree/tree.js +66 -0
  525. package/esm/components/tree/tree.js.map +1 -0
  526. package/esm/components/tree/tree.spec.d.ts +2 -0
  527. package/esm/components/tree/tree.spec.d.ts.map +1 -0
  528. package/esm/components/tree/tree.spec.js +427 -0
  529. package/esm/components/tree/tree.spec.js.map +1 -0
  530. package/esm/components/typography.d.ts +48 -0
  531. package/esm/components/typography.d.ts.map +1 -0
  532. package/esm/components/typography.js +223 -0
  533. package/esm/components/typography.js.map +1 -0
  534. package/esm/components/typography.spec.d.ts +2 -0
  535. package/esm/components/typography.spec.d.ts.map +1 -0
  536. package/esm/components/typography.spec.js +199 -0
  537. package/esm/components/typography.spec.js.map +1 -0
  538. package/esm/components/wizard/index.d.ts +2 -0
  539. package/esm/components/wizard/index.d.ts.map +1 -1
  540. package/esm/components/wizard/index.spec.js +70 -56
  541. package/esm/components/wizard/index.spec.js.map +1 -1
  542. package/esm/services/click-away-service.d.ts +5 -2
  543. package/esm/services/click-away-service.d.ts.map +1 -1
  544. package/esm/services/click-away-service.js +7 -1
  545. package/esm/services/click-away-service.js.map +1 -1
  546. package/esm/services/css-variable-theme.d.ts +167 -1
  547. package/esm/services/css-variable-theme.d.ts.map +1 -1
  548. package/esm/services/css-variable-theme.js +102 -0
  549. package/esm/services/css-variable-theme.js.map +1 -1
  550. package/esm/services/css-variable-theme.spec.js +131 -1
  551. package/esm/services/css-variable-theme.spec.js.map +1 -1
  552. package/esm/services/default-dark-theme.d.ts +107 -2
  553. package/esm/services/default-dark-theme.d.ts.map +1 -1
  554. package/esm/services/default-dark-theme.js +87 -1
  555. package/esm/services/default-dark-theme.js.map +1 -1
  556. package/esm/services/default-light-theme.d.ts +107 -2
  557. package/esm/services/default-light-theme.d.ts.map +1 -1
  558. package/esm/services/default-light-theme.js +86 -0
  559. package/esm/services/default-light-theme.js.map +1 -1
  560. package/esm/services/index.d.ts +6 -2
  561. package/esm/services/index.d.ts.map +1 -1
  562. package/esm/services/index.js +6 -2
  563. package/esm/services/index.js.map +1 -1
  564. package/esm/services/layout-service.d.ts +217 -0
  565. package/esm/services/layout-service.d.ts.map +1 -0
  566. package/esm/services/layout-service.js +331 -0
  567. package/esm/services/layout-service.js.map +1 -0
  568. package/esm/services/layout-service.spec.d.ts +2 -0
  569. package/esm/services/layout-service.spec.d.ts.map +1 -0
  570. package/esm/services/layout-service.spec.js +425 -0
  571. package/esm/services/layout-service.spec.js.map +1 -0
  572. package/esm/services/list-service.d.ts +31 -0
  573. package/esm/services/list-service.d.ts.map +1 -0
  574. package/esm/services/list-service.js +149 -0
  575. package/esm/services/list-service.js.map +1 -0
  576. package/esm/services/list-service.spec.d.ts +2 -0
  577. package/esm/services/list-service.spec.d.ts.map +1 -0
  578. package/esm/services/list-service.spec.js +254 -0
  579. package/esm/services/list-service.spec.js.map +1 -0
  580. package/esm/services/palette-css-vars.d.ts +12 -0
  581. package/esm/services/palette-css-vars.d.ts.map +1 -0
  582. package/esm/services/palette-css-vars.js +44 -0
  583. package/esm/services/palette-css-vars.js.map +1 -0
  584. package/esm/services/theme-provider-service.d.ts +387 -2
  585. package/esm/services/theme-provider-service.d.ts.map +1 -1
  586. package/esm/services/theme-provider-service.js.map +1 -1
  587. package/esm/services/tree-service.d.ts +61 -0
  588. package/esm/services/tree-service.d.ts.map +1 -0
  589. package/esm/services/tree-service.js +149 -0
  590. package/esm/services/tree-service.js.map +1 -0
  591. package/esm/services/tree-service.spec.d.ts +2 -0
  592. package/esm/services/tree-service.spec.d.ts.map +1 -0
  593. package/esm/services/tree-service.spec.js +307 -0
  594. package/esm/services/tree-service.spec.js.map +1 -0
  595. package/esm/utils/promisify-animation.d.ts.map +1 -1
  596. package/esm/utils/promisify-animation.js +6 -1
  597. package/esm/utils/promisify-animation.js.map +1 -1
  598. package/package.json +4 -4
  599. package/src/components/accordion/accordion-item.tsx +197 -0
  600. package/src/components/accordion/accordion.spec.tsx +418 -0
  601. package/src/components/accordion/accordion.tsx +50 -0
  602. package/src/components/accordion/index.ts +2 -0
  603. package/src/components/alert.spec.tsx +256 -0
  604. package/src/components/alert.tsx +186 -0
  605. package/src/components/app-bar-link.spec.tsx +22 -19
  606. package/src/components/app-bar-link.tsx +29 -10
  607. package/src/components/app-bar.spec.tsx +73 -58
  608. package/src/components/app-bar.tsx +19 -12
  609. package/src/components/avatar.tsx +46 -47
  610. package/src/components/badge.spec.tsx +228 -0
  611. package/src/components/badge.tsx +104 -0
  612. package/src/components/breadcrumb.spec.tsx +396 -0
  613. package/src/components/breadcrumb.tsx +188 -0
  614. package/src/components/button-group.spec.tsx +611 -0
  615. package/src/components/button-group.tsx +423 -0
  616. package/src/components/button.spec.tsx +257 -67
  617. package/src/components/button.tsx +130 -80
  618. package/src/components/card.spec.tsx +389 -0
  619. package/src/components/card.tsx +261 -0
  620. package/src/components/carousel.spec.tsx +894 -0
  621. package/src/components/carousel.tsx +376 -0
  622. package/src/components/chip.spec.tsx +200 -0
  623. package/src/components/chip.tsx +188 -0
  624. package/src/components/circular-progress.spec.tsx +289 -0
  625. package/src/components/circular-progress.tsx +145 -0
  626. package/src/components/command-palette/command-palette-input.spec.tsx +209 -198
  627. package/src/components/command-palette/command-palette-input.tsx +25 -9
  628. package/src/components/command-palette/command-palette-manager.spec.ts +132 -117
  629. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +348 -330
  630. package/src/components/command-palette/command-palette-suggestion-list.tsx +22 -20
  631. package/src/components/command-palette/index.spec.tsx +12 -12
  632. package/src/components/command-palette/index.tsx +25 -102
  633. package/src/components/context-menu/context-menu-item.tsx +85 -0
  634. package/src/components/context-menu/context-menu-manager.spec.ts +478 -0
  635. package/src/components/context-menu/context-menu-manager.ts +148 -0
  636. package/src/components/context-menu/context-menu.spec.tsx +352 -0
  637. package/src/components/context-menu/context-menu.tsx +116 -0
  638. package/src/components/context-menu/index.ts +3 -0
  639. package/src/components/data-grid/body.spec.tsx +292 -278
  640. package/src/components/data-grid/data-grid-row.spec.tsx +165 -140
  641. package/src/components/data-grid/data-grid-row.tsx +72 -55
  642. package/src/components/data-grid/data-grid.spec.tsx +743 -718
  643. package/src/components/data-grid/data-grid.tsx +19 -15
  644. package/src/components/data-grid/footer.spec.tsx +249 -237
  645. package/src/components/data-grid/header.spec.tsx +374 -351
  646. package/src/components/data-grid/header.tsx +58 -39
  647. package/src/components/data-grid/selection-cell.spec.tsx +46 -45
  648. package/src/components/data-grid/selection-cell.tsx +2 -6
  649. package/src/components/dialog.spec.tsx +135 -0
  650. package/src/components/dialog.tsx +277 -0
  651. package/src/components/divider.spec.tsx +197 -0
  652. package/src/components/divider.tsx +147 -0
  653. package/src/components/drawer/drawer-toggle-button.spec.tsx +374 -0
  654. package/src/components/drawer/drawer-toggle-button.tsx +124 -0
  655. package/src/components/drawer/index.spec.tsx +748 -0
  656. package/src/components/drawer/index.tsx +227 -0
  657. package/src/components/dropdown.spec.tsx +445 -0
  658. package/src/components/dropdown.tsx +343 -0
  659. package/src/components/fab.spec.tsx +51 -40
  660. package/src/components/fab.tsx +32 -9
  661. package/src/components/form.spec.tsx +303 -293
  662. package/src/components/form.tsx +10 -7
  663. package/src/components/grid.spec.tsx +276 -183
  664. package/src/components/grid.tsx +10 -10
  665. package/src/components/icons/icon-definitions.spec.ts +68 -0
  666. package/src/components/icons/icon-definitions.ts +509 -0
  667. package/src/components/icons/icon-types.ts +48 -0
  668. package/src/components/icons/icon.spec.tsx +314 -0
  669. package/src/components/icons/icon.tsx +111 -0
  670. package/src/components/icons/index.ts +4 -0
  671. package/src/components/image.spec.tsx +748 -0
  672. package/src/components/image.tsx +520 -0
  673. package/src/components/index.ts +32 -4
  674. package/src/components/inputs/autocomplete.spec.tsx +10 -1
  675. package/src/components/inputs/autocomplete.tsx +13 -7
  676. package/src/components/inputs/checkbox.spec.tsx +377 -0
  677. package/src/components/inputs/checkbox.tsx +198 -0
  678. package/src/components/inputs/index.ts +7 -0
  679. package/src/components/inputs/input-number.spec.tsx +686 -0
  680. package/src/components/inputs/input-number.tsx +387 -0
  681. package/src/components/inputs/input.spec.tsx +544 -508
  682. package/src/components/inputs/input.tsx +91 -132
  683. package/src/components/inputs/radio-group.spec.tsx +281 -0
  684. package/src/components/inputs/radio-group.tsx +108 -0
  685. package/src/components/inputs/radio.spec.tsx +273 -0
  686. package/src/components/inputs/radio.tsx +199 -0
  687. package/src/components/inputs/select.spec.tsx +1237 -0
  688. package/src/components/inputs/select.tsx +775 -0
  689. package/src/components/inputs/slider.spec.tsx +1020 -0
  690. package/src/components/inputs/slider.tsx +696 -0
  691. package/src/components/inputs/switch.spec.tsx +410 -0
  692. package/src/components/inputs/switch.tsx +218 -0
  693. package/src/components/inputs/text-area.spec.tsx +186 -171
  694. package/src/components/inputs/text-area.tsx +13 -19
  695. package/src/components/linear-progress.spec.tsx +320 -0
  696. package/src/components/linear-progress.tsx +127 -0
  697. package/src/components/list/index.ts +2 -0
  698. package/src/components/list/list-item.tsx +106 -0
  699. package/src/components/list/list.spec.tsx +817 -0
  700. package/src/components/list/list.tsx +92 -0
  701. package/src/components/loader.spec.tsx +220 -204
  702. package/src/components/loader.tsx +17 -9
  703. package/src/components/menu/index.ts +2 -0
  704. package/src/components/menu/menu-types.spec.ts +122 -0
  705. package/src/components/menu/menu-types.ts +43 -0
  706. package/src/components/menu/menu.spec.tsx +483 -0
  707. package/src/components/menu/menu.tsx +326 -0
  708. package/src/components/modal.spec.tsx +65 -55
  709. package/src/components/modal.tsx +9 -6
  710. package/src/components/noty-list.spec.tsx +78 -75
  711. package/src/components/noty-list.tsx +76 -68
  712. package/src/components/page-container/index.spec.tsx +274 -0
  713. package/src/components/page-container/index.tsx +82 -0
  714. package/src/components/page-container/page-header.spec.tsx +308 -0
  715. package/src/components/page-container/page-header.tsx +127 -0
  716. package/src/components/page-layout/index.spec.tsx +882 -0
  717. package/src/components/page-layout/index.tsx +392 -0
  718. package/src/components/pagination.spec.tsx +275 -0
  719. package/src/components/pagination.tsx +249 -0
  720. package/src/components/paper.spec.tsx +26 -18
  721. package/src/components/paper.tsx +12 -10
  722. package/src/components/rating.spec.tsx +866 -0
  723. package/src/components/rating.tsx +286 -0
  724. package/src/components/result.spec.tsx +221 -0
  725. package/src/components/result.tsx +155 -0
  726. package/src/components/searchable-input-styles.ts +81 -0
  727. package/src/components/skeleton.spec.tsx +126 -118
  728. package/src/components/skeleton.tsx +23 -6
  729. package/src/components/styles.spec.ts +27 -28
  730. package/src/components/styles.tsx +15 -13
  731. package/src/components/suggest/index.spec.tsx +611 -587
  732. package/src/components/suggest/index.tsx +28 -95
  733. package/src/components/suggest/suggest-input.spec.tsx +95 -81
  734. package/src/components/suggest/suggest-input.tsx +9 -7
  735. package/src/components/suggest/suggest-manager.spec.ts +103 -93
  736. package/src/components/suggest/suggestion-list.spec.tsx +194 -173
  737. package/src/components/suggest/suggestion-list.tsx +23 -22
  738. package/src/components/tabs.spec.tsx +369 -7
  739. package/src/components/tabs.tsx +221 -18
  740. package/src/components/timeline.spec.tsx +294 -0
  741. package/src/components/timeline.tsx +221 -0
  742. package/src/components/tooltip.spec.tsx +223 -0
  743. package/src/components/tooltip.tsx +155 -0
  744. package/src/components/tree/index.ts +2 -0
  745. package/src/components/tree/tree-item.tsx +161 -0
  746. package/src/components/tree/tree.spec.tsx +677 -0
  747. package/src/components/tree/tree.tsx +111 -0
  748. package/src/components/typography.spec.tsx +235 -0
  749. package/src/components/typography.tsx +292 -0
  750. package/src/components/wizard/index.spec.tsx +77 -68
  751. package/src/services/click-away-service.ts +9 -3
  752. package/src/services/css-variable-theme.spec.ts +169 -1
  753. package/src/services/css-variable-theme.ts +107 -2
  754. package/src/services/default-dark-theme.ts +89 -3
  755. package/src/services/default-light-theme.ts +88 -2
  756. package/src/services/index.ts +6 -2
  757. package/src/services/layout-service.spec.ts +535 -0
  758. package/src/services/layout-service.ts +391 -0
  759. package/src/services/list-service.spec.ts +364 -0
  760. package/src/services/list-service.ts +169 -0
  761. package/src/services/palette-css-vars.ts +46 -0
  762. package/src/services/theme-provider-service.ts +246 -1
  763. package/src/services/tree-service.spec.ts +428 -0
  764. package/src/services/tree-service.ts +179 -0
  765. package/src/utils/promisify-animation.ts +7 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,435 @@
1
1
  # Changelog
2
2
 
3
+ ## [12.0.0] - 2026-02-09
4
+
5
+ ### 💥 Breaking Changes
6
+
7
+ ### `Theme` interface extended with 6 new required properties
8
+
9
+ The `Theme` interface now requires the following additional properties: `action`, `shape`, `shadows`, `typography`, `transitions`, and `spacing`. Any custom theme objects must be updated to include these new token groups. See `defaultDarkTheme` and `defaultLightTheme` for reference implementations.
10
+
11
+ ### Requires `@furystack/shades` v3
12
+
13
+ This package now depends on the new major version of `@furystack/shades` which removed the `constructed` callback. All components have been migrated to use `useDisposable()` inside `render` for one-time setup and cleanup.
14
+
15
+ ### Migrated All Components from `element` to `useHostProps` and `useRef`
16
+
17
+ All components in this package have been updated to use the new declarative `useHostProps` and `useRef` APIs from `@furystack/shades`, replacing direct imperative DOM manipulation via the removed `element` parameter.
18
+
19
+ **Impact:** Components no longer accept or use the `element` render option. Any custom components that extended or wrapped these components and relied on `element` access patterns need to be updated.
20
+
21
+ **Migration:** The component API and behavior remain the same from a consumer perspective — this is a breaking change only due to the peer dependency bump on `@furystack/shades`.
22
+
23
+ - `AppBarLink` props changed from `RouteLinkProps` to `NestedRouteLinkProps` — `href` is now required and the rendered shadow DOM element changed from `route-link` to `nested-route-link`
24
+
25
+ ### ✨ Features
26
+
27
+ ### Component Pack 1 — 15 new UI components
28
+
29
+ Added a full set of general-purpose UI components, all themed via CSS variable tokens, with ARIA attributes, keyboard navigation, and `FormService` integration where applicable:
30
+
31
+ **Data Display:**
32
+
33
+ - `Accordion` / `AccordionItem` — Collapsible content sections with animated expand/collapse, keyboard support, and `outlined` / `elevation` variants
34
+ - `Badge` — Count or status-dot overlay with configurable `max`, palette colors, and show/hide animation
35
+ - `Chip` — Compact tag/label element with `filled` / `outlined` variants, optional delete button, and size options
36
+ - `Tooltip` — Contextual hover/focus popup with four placement options, configurable delay, and arrow indicator
37
+
38
+ **Feedback:**
39
+
40
+ - `Alert` — Severity-coded message banner (`error` / `warning` / `info` / `success`) with `filled`, `outlined`, and `standard` variants and an optional close button
41
+ - `CircularProgress` — SVG-based circular indicator with `determinate` and `indeterminate` variants, customisable size and thickness
42
+ - `LinearProgress` — Horizontal progress bar with `determinate` and `indeterminate` variants and size options
43
+
44
+ **Surfaces:**
45
+
46
+ - `Card` — Content surface with `CardHeader`, `CardContent`, `CardMedia`, and `CardActions` sub-components, elevation levels 0–3, and an outlined variant
47
+ - `Dialog` — Modal dialog with title, body, and action slots, backdrop overlay, show/hide animation, and a `ConfirmDialog` helper function
48
+
49
+ **Layout:**
50
+
51
+ - `Divider` — Visual separator with horizontal/vertical orientation, `full` / `inset` / `middle` variants, and optional inline text content
52
+ - `Pagination` — Page navigator with ellipsis, configurable sibling/boundary counts, prev/next buttons, and size/color variants
53
+
54
+ **Inputs:**
55
+
56
+ - `Checkbox` — Checkbox with label, indeterminate state, palette colors, and `FormService` integration
57
+ - `Radio` / `RadioGroup` — Radio buttons with a group container supporting controlled and uncontrolled modes, orientation options, and shared palette color
58
+ - `Select` — Custom dropdown with full keyboard navigation (Arrow, Enter, Escape, Home, End), validation and helper-text support, and `contained` / `outlined` variants
59
+ - `Switch` — Animated toggle switch with `small` / `medium` sizes and palette color support
60
+
61
+ ### New design token groups on the `Theme` interface
62
+
63
+ Extended the theme system with six new token groups, enabling centralised control over interactive states, shape, elevation, typography, motion, and spacing:
64
+
65
+ - `action` — Interactive state colors (`hoverBackground`, `selectedBackground`, `activeBackground`, `focusRing`, `disabledOpacity`, `backdrop`, `subtleBorder`)
66
+ - `shape` — Border radius scale (`xs` through `full`) for consistent rounded corners
67
+ - `shadows` — Elevation presets (`none`, `sm`, `md`, `lg`, `xl`) for layered depth
68
+ - `typography` — Font family, size scale, weight scale, and line height scale
69
+ - `transitions` — Duration presets (`fast`, `normal`, `slow`) and easing functions (`default`, `easeOut`, `easeInOut`)
70
+ - `spacing` — Spacing scale (`xs` through `xl`) for consistent padding, margins, and gaps
71
+
72
+ All new tokens are available in `defaultDarkTheme`, `defaultLightTheme`, and `cssVariableTheme`.
73
+
74
+ ### New exported types
75
+
76
+ All token group types are exported for type-safe custom themes: `ActionColors`, `BorderRadiusScale`, `Shape`, `Shadows`, `FontSizeScale`, `FontWeightScale`, `LineHeightScale`, `Typography`, `TransitionDurations`, `TransitionEasings`, `Transitions`, `Spacing`.
77
+
78
+ ### `buildTransition` helper
79
+
80
+ New utility function `buildTransition(...specs)` that builds CSS transition strings from `[property, duration, easing]` tuples, reducing boilerplate when composing multi-property transitions.
81
+
82
+ ### New Layout System Components
83
+
84
+ A complete layout system for building application shells with AppBar, drawers, and content areas.
85
+
86
+ #### PageLayout Component
87
+
88
+ Full viewport layout component that orchestrates AppBar and drawer positioning with automatic CSS variable management.
89
+
90
+ **Features:**
91
+
92
+ - Optional AppBar with `permanent` or `auto-hide` variants
93
+ - Left and/or right drawers with `permanent`, `collapsible`, or `temporary` variants
94
+ - Responsive drawer collapse via `collapseOnBreakpoint` prop
95
+ - Configurable gaps between AppBar/drawers and content
96
+ - Scoped `LayoutService` instance for child components
97
+
98
+ **Usage:**
99
+
100
+ ```tsx
101
+ <PageLayout
102
+ appBar={{
103
+ variant: 'permanent',
104
+ height: '64px',
105
+ component: <MyAppBar />,
106
+ }}
107
+ drawer={{
108
+ left: {
109
+ variant: 'collapsible',
110
+ width: '280px',
111
+ component: <Sidebar />,
112
+ collapseOnBreakpoint: 'md', // Auto-collapse below 960px
113
+ },
114
+ }}
115
+ topGap="16px"
116
+ sideGap="24px"
117
+ >
118
+ <MainContent />
119
+ </PageLayout>
120
+ ```
121
+
122
+ #### Drawer Component
123
+
124
+ Standalone drawer component for sidebars and navigation panels with three behavior variants.
125
+
126
+ **Variants:**
127
+
128
+ - `permanent`: Always visible, cannot be closed
129
+ - `collapsible`: Toggleable, pushes content when open
130
+ - `temporary`: Overlays content with backdrop, closes on backdrop click
131
+
132
+ **Usage:**
133
+
134
+ ```tsx
135
+ <Drawer position="left" variant="collapsible" collapseOnBreakpoint="md">
136
+ <nav>Navigation items...</nav>
137
+ </Drawer>
138
+ ```
139
+
140
+ #### DrawerToggleButton Component
141
+
142
+ A button component to toggle drawer open/close state, integrates with `LayoutService`.
143
+
144
+ **Usage:**
145
+
146
+ ```tsx
147
+ <DrawerToggleButton position="left" />
148
+ ```
149
+
150
+ #### PageContainer Component
151
+
152
+ Container component for consistent page content styling with max-width, centering, and spacing.
153
+
154
+ **Usage:**
155
+
156
+ ```tsx
157
+ <PageContainer maxWidth="1200px" centered padding="48px" gap="24px">
158
+ <PageHeader icon="👥" title="Users" description="Manage user accounts" />
159
+ <Paper>Content here...</Paper>
160
+ </PageContainer>
161
+ ```
162
+
163
+ #### PageHeader Component
164
+
165
+ Styled header component with optional icon, title, and description.
166
+
167
+ **Usage:**
168
+
169
+ ```tsx
170
+ <PageHeader icon="📊" title="Dashboard" description="Overview of your application metrics" />
171
+ ```
172
+
173
+ #### LayoutService
174
+
175
+ Service for managing layout state with observable values and CSS custom properties.
176
+
177
+ **Features:**
178
+
179
+ - Drawer state management (`drawerState`, `toggleDrawer`, `setDrawerOpen`)
180
+ - AppBar visibility control (`appBarVisible`, `appBarVariant`)
181
+ - Gap configuration (`topGap`, `sideGap`)
182
+ - Scoped CSS variables via `LAYOUT_CSS_VARIABLES` constant
183
+
184
+ **CSS Variables:**
185
+
186
+ ```typescript
187
+ import { LAYOUT_CSS_VARIABLES } from '@furystack/shades-common-components'
188
+
189
+ // Available CSS variables:
190
+ // --layout-appbar-height
191
+ // --layout-drawer-left-width
192
+ // --layout-drawer-right-width
193
+ // --layout-content-margin-left
194
+ // --layout-content-margin-right
195
+ // --layout-content-padding-top
196
+ // --layout-top-gap
197
+ // --layout-side-gap
198
+ ```
199
+
200
+ ### List Component
201
+
202
+ Added `List` and `ListItem` components for rendering selectable, keyboard-navigable lists with support for single and multi-selection.
203
+
204
+ - Click to focus, `ArrowUp`/`ArrowDown` to navigate, `Enter` to activate an item
205
+ - Multi-selection via `Ctrl+Click` (toggle), `Shift+Click` (range), `Space` (toggle focused), `+` (select all), `-` (deselect all)
206
+ - Type-ahead search when `searchField` is configured on `ListService`
207
+ - Supports custom `renderItem`, `renderIcon`, and `renderSecondaryActions` render props
208
+ - Click-away detection to release focus
209
+ - Smooth scroll-into-view when navigating with keyboard
210
+
211
+ Added `ListService` - a standalone state manager for list focus, selection, and keyboard navigation that can be used independently of the component.
212
+
213
+ ### Tree Component
214
+
215
+ Added `Tree` and `TreeItem` components for rendering hierarchical data with expand/collapse, indented levels, and keyboard navigation.
216
+
217
+ - `ArrowRight` expands a collapsed node or moves focus to its first child; `ArrowLeft` collapses an expanded node or moves focus to the parent
218
+ - Double-click toggles expand/collapse on parent nodes, activates leaf nodes
219
+ - Inherits all selection and navigation behavior from `ListService`
220
+ - Renders expand/collapse indicators (`▸`/`▾`) with level-based indentation
221
+ - Supports custom `renderItem` and `renderIcon` render props
222
+
223
+ Added `TreeService` - extends `ListService` with tree-specific state including expand/collapse tracking, flattened visible node list, and parent lookup.
224
+
225
+ ### Context Menu Component
226
+
227
+ Added `ContextMenu` and `ContextMenuItemComponent` for rendering positioned popup menus with keyboard navigation and item selection.
228
+
229
+ - Supports both right-click and programmatic trigger via `ContextMenuManager.open()`
230
+ - Items can have labels, descriptions, icons, disabled state, and separators
231
+ - `ArrowUp`/`ArrowDown` to navigate, `Enter` to select, `Escape` to close, `Home`/`End` to jump
232
+ - Clicking the backdrop or right-clicking elsewhere closes the menu
233
+ - Disabled items are skipped during keyboard navigation
234
+
235
+ Added `ContextMenuManager` - manages context menu state including open/close, item list, focus index, positioning, and keyboard navigation. Emits `onSelectItem` events via `EventHub`.
236
+
237
+ ### Breadcrumb Component
238
+
239
+ Added a new `Breadcrumb` component for navigating hierarchical route structures with automatic active state detection.
240
+
241
+ **Features:**
242
+
243
+ - Dynamic route parameter support (e.g., `/users/:id`)
244
+ - Custom label rendering with `render` prop
245
+ - Configurable separators (string or JSX element)
246
+ - Active item detection based on current URL
247
+ - Optional home/root link
248
+ - Last item clickable/non-clickable configuration
249
+
250
+ **Basic Usage:**
251
+
252
+ ```typescript
253
+ import { Breadcrumb } from '@furystack/shades-common-components'
254
+
255
+ <Breadcrumb
256
+ homeItem={{ path: '/', label: 'Home' }}
257
+ items={[
258
+ { path: '/users', label: 'Users' },
259
+ { path: '/users/:id', label: 'User Details', params: { id: '123' } },
260
+ ]}
261
+ separator=" › "
262
+ />
263
+ ```
264
+
265
+ **Type-Safe Usage:**
266
+
267
+ The `createBreadcrumb<TRoutes>()` helper provides compile-time route validation:
268
+
269
+ ```typescript
270
+ import { createBreadcrumb } from '@furystack/shades-common-components'
271
+ import type { appRoutes } from './routes'
272
+
273
+ const AppBreadcrumb = createBreadcrumb<typeof appRoutes>()
274
+
275
+ // ✅ Type-safe: only valid paths accepted
276
+ <AppBreadcrumb
277
+ items={[{ path: '/buttons', label: 'Buttons' }]}
278
+ />
279
+
280
+ // ❌ TypeScript error: invalid path
281
+ <AppBreadcrumb items={[{ path: '/nonexistent', label: 'Error' }]} />
282
+ ```
283
+
284
+ **Route Parameters:**
285
+
286
+ Route parameters are automatically inferred from the path pattern:
287
+
288
+ - `path="/buttons"` — `params` is optional
289
+ - `path="/users/:id"` — `params: { id: string }` is required
290
+
291
+ ### AppBarLink Enhancements
292
+
293
+ - Added `routingOptions` prop to `AppBarLink` for customizing route matching behavior using `path-to-regexp` options
294
+ - Added `createAppBarLink<TRoutes>()` helper for type-safe app bar links constrained to specific route trees
295
+
296
+ ### New Components
297
+
298
+ - Added `ButtonGroup` - groups multiple buttons with shared variant, color, orientation, and disabled state
299
+ - Added `Carousel` - content carousel with slide/fade transitions, autoplay, dot indicators, vertical mode, and keyboard navigation
300
+ - Added `Dropdown` - dropdown menu with items, groups, and dividers, configurable placement, keyboard navigation, and click-away closing
301
+ - Added `Icon` - SVG icon component with size variants (small/medium/large/custom), palette colors, and accessibility support (`ariaLabel` / `aria-hidden`)
302
+ - Added 50+ SVG icon definitions (`icons` namespace) for common UI actions, navigation, status indicators, and more
303
+ - Added `Image` - image component with loading skeleton, error fallback, preview/lightbox overlay, and load/error animations
304
+ - Added `Menu` - navigation menu with vertical, horizontal, and inline modes, expandable groups, and keyboard navigation
305
+ - Added `MenuEntry` types (`MenuItemEntry`, `MenuGroupEntry`, `MenuDividerEntry`) and `getNavigableKeys` utility for building menu structures
306
+ - Added `Rating` - star rating with configurable max, half-star precision, multiple sizes, palette colors, read-only mode, and keyboard accessibility
307
+ - Added `Result` - status feedback component for success/error/warning/info and HTTP error codes (403, 404, 500) with icon, title, and subtitle
308
+ - Added `Timeline` and `TimelineItem` - vertical timeline with color-coded dots, connector lines, and alternate/left/right positioning modes
309
+ - Added `Typography` - text component with semantic variants (h1–h6, subtitle, body, caption, overline), palette colors, ellipsis truncation, and copyable text
310
+ - Added `Slider` - range/value slider with min/max/step, marks with labels, tooltips, range mode (two thumbs), and keyboard accessibility
311
+ - Added `InputNumber` - numeric input with +/- stepper buttons, min/max/step constraints, decimal precision, form integration, and validation
312
+
313
+ ### Enhanced Components
314
+
315
+ - Added `text` variant, `size` prop (small/medium/large), `danger` flag, `loading` spinner, and `startIcon`/`endIcon` support to `Button`
316
+ - Added controlled mode (`activeKey`/`onTabChange`), `line`/`card` visual styles, `vertical` orientation, closable tabs with `onClose`, and an add button with `onAdd` to `Tabs`
317
+ - Added option groups (`optionGroups`), multi-select mode with chip display, and search/filter input to `Select`
318
+
319
+ ### Theme Design Tokens
320
+
321
+ - Added `ZIndex` type with stacking layers: `drawer`, `appBar`, `modal`, `tooltip`, `dropdown`
322
+ - Added `Effects` type with blur tokens: `blurSm`, `blurMd`, `blurLg`, `blurXl`
323
+ - Added `LetterSpacingScale` type with spacing values: `tight`, `dense`, `normal`, `wide`, `wider`, `widest`
324
+ - All three theme presets (`defaultDarkTheme`, `defaultLightTheme`, `cssVariableTheme`) updated with the new tokens
325
+
326
+ ### Migrated `styles.tsx` to CSS Variable Theme
327
+
328
+ - `colors` and `glassBox` exports now reference `cssVariableTheme` tokens instead of hardcoded values, ensuring consistency with the active theme
329
+
330
+ ### 🐛 Bug Fixes
331
+
332
+ - Fixed `defaultDarkTheme.divider` using a light-theme value (`rgba(0, 0, 0, 0.12)`) — now correctly uses `rgba(255, 255, 255, 0.12)`
333
+ - Fixed DataGrid row keyboard navigation not scrolling the focused row into view
334
+ - Fixed `Autocomplete` datalist binding to use `setTimeout` instead of `queueMicrotask`, avoiding conflicts with the new microtask-based component update batching in `@furystack/shades`. Also added proper cleanup via `clearTimeout` on dispose.
335
+
336
+ ### ♻️ Refactoring
337
+
338
+ ### Components migrated to declarative host manipulation
339
+
340
+ All components now use `useHostProps` to set data attributes, ARIA attributes, CSS custom properties, and styles on the host element instead of imperatively calling `element.setAttribute()`, `element.style.setProperty()`, etc. This includes:
341
+
342
+ - **Button** — color custom properties, variant/size/loading data attributes
343
+ - **Checkbox** — disabled/indeterminate data attributes, color custom property, replaced `querySelector` with `useRef` for form input registration
344
+ - **Input** — focus/validation state, label/helper text attributes
345
+ - **InputNumber** — stepper button refs, value formatting
346
+ - **Select** — open/disabled state, option list management
347
+ - **Slider** — track/thumb positioning via refs and host props
348
+ - **Switch** — checked/disabled state attributes
349
+ - **TextArea** — focus/validation state
350
+ - **Radio / RadioGroup** — checked/disabled state, group management
351
+ - **Autocomplete** — dropdown state management
352
+ - **Accordion** — expanded state toggling
353
+ - **Alert** — severity data attribute and color
354
+ - **AppBar / AppBarLink** — layout positioning
355
+ - **Avatar** — size and color attributes
356
+ - **Badge** — position and color
357
+ - **Carousel** — slide positioning and navigation via refs
358
+ - **Chip** — variant and deletable state
359
+ - **CircularProgress** — progress value and size via host props
360
+ - **CommandPalette** — open state and input focus via refs
361
+ - **ContextMenu** — position and visibility
362
+ - **DataGrid / DataGridRow** — selection state, column sizing
363
+ - **Dialog** — open state and focus management via refs
364
+ - **Divider** — orientation attribute
365
+ - **Dropdown** — open/closed state
366
+ - **Fab** — position and color
367
+ - **Form** — validation state
368
+ - **Icon** — size attribute and SVG rendering
369
+ - **Image** — loading/error state
370
+ - **LinearProgress** — progress value host props
371
+ - **List / ListItem** — selection state
372
+ - **Loader** — active state
373
+ - **Menu** — open state and positioning
374
+ - **Modal** — visibility and backdrop
375
+ - **NotyList** — notification state
376
+ - **PageContainer / PageLayout** — layout dimensions
377
+ - **Pagination** — page state
378
+ - **Rating** — value and hover state via refs
379
+ - **Skeleton** — animation variant
380
+ - **Suggest** — dropdown state and input refs
381
+ - **Tabs** — active tab indicator
382
+ - **Timeline** — item positioning
383
+ - **Tooltip** — visibility and positioning
384
+ - **Tree / TreeItem** — expanded/selected state
385
+ - **Typography** — variant data attribute
386
+
387
+ ### Services updated
388
+
389
+ - **ClickAwayService** — updated for compatibility with new rendering model
390
+ - **LayoutService** — updated for compatibility with new rendering model
391
+
392
+ - Replaced hardcoded `rgba(128,128,128,...)` backgrounds across all interactive components with `action.*` theme tokens
393
+ - Replaced hardcoded `border-radius` pixel values with `shape.borderRadius.*` tokens
394
+ - Replaced hardcoded `box-shadow` definitions with `shadows.*` elevation tokens
395
+ - Replaced hardcoded `font-size` and `font-weight` values with `typography.*` tokens
396
+ - Replaced hardcoded transition timing strings with `transitions.*` tokens
397
+ - Replaced hardcoded spacing pixel values with `spacing.*` tokens
398
+ - Replaced hardcoded disabled opacity, focus ring, and backdrop overlay values with `action.*` tokens
399
+ - Refactored `Button` to use `buildTransition()` helper and `spacing.lg` token instead of hardcoded values
400
+ - Migrated `Dropdown` keyboard event handler from `constructed` to `useDisposable()` in `render`
401
+ - Migrated `Checkbox`, `Input`, `InputNumber`, `Select`, `Switch`, `Slider`, `Autocomplete`, `Radio`, and `RadioGroup` form service registration from `constructed` to `useDisposable()` in `render`
402
+ - Migrated `NotyComponent` enter animation from `constructed` to `useDisposable()` in `render`
403
+ - Migrated `ButtonGroup`, `AppBar`, `CircularProgress`, `ContextMenu`, `ContextMenuItem`, `DataGrid`, `LinearProgress`, `List`, and `Tree` initialization logic from `constructed` to `useDisposable()` in `render`
404
+ - Migrated `AppBarLink` from the deprecated `RouteLink` to `NestedRouteLink` for SPA navigation
405
+ - Renamed `Typography` type to `ThemeTypography` in `ThemeProviderService` to avoid naming conflict with the new `Typography` component
406
+ - Made `zIndex`, `effects`, and `typography.letterSpacing` optional on the `Theme` interface for backward compatibility with existing custom themes
407
+
408
+ ### 🧪 Tests
409
+
410
+ - Added unit tests for all 15 new components (`accordion`, `alert`, `badge`, `card`, `chip`, `circular-progress`, `dialog`, `divider`, `linear-progress`, `pagination`, `tooltip`, `checkbox`, `radio`, `radio-group`, `select`, `switch`)
411
+ - Updated `fab.spec.tsx` and `loader.spec.tsx` to assert against theme tokens instead of hardcoded values
412
+ - Fixed `styles.spec.ts` to match updated `rgba` formatting in `glassBox` border
413
+ - Added unit tests for `Drawer`, `DrawerToggleButton`, `PageLayout`, `PageContainer`, `PageHeader`, and `LayoutService`
414
+ - Updated component tests to align with the removal of `constructed` callback
415
+ - Added tests for `ListService` covering selection, focus, keyboard navigation, type-ahead search, click handling, and disposal
416
+ - Added tests for `List` and `ListItem` components verifying rendering, keyboard interactions, click behaviors, and selection callbacks
417
+ - Added tests for `TreeService` covering expand/collapse, flattened node generation, keyboard navigation (`ArrowRight`/`ArrowLeft`), parent lookup, and disposal
418
+ - Added tests for `Tree` and `TreeItem` components verifying hierarchical rendering, expand/collapse interactions, and activation callbacks
419
+ - Added tests for `ContextMenuManager` covering open/close, item selection, keyboard navigation, disabled item skipping, and disposal
420
+ - Added tests for `ContextMenu` and `ContextMenuItemComponent` verifying rendering, focus highlighting, click handling, and backdrop dismiss
421
+ - Updated tests across multiple components (accordion, alert, badge, breadcrumb, card, chip, divider, icon, autocomplete, pagination, result, suggest-input, suggestion-list, timeline, tooltip) to work with microtask-based rendering
422
+ - Refactored tests across all components (AppBar, Button, CommandPalette, DataGrid, Drawer, Fab, Form, Grid, Input, TextArea, Loader, NotyList, PageLayout, Paper, Skeleton, Suggest, Wizard) to use `usingAsync` for proper `Injector` disposal
423
+ - Updated tests across components to accommodate the new rendering flow and `flushUpdates()` for async assertions
424
+ - Updated visual snapshot baselines for form fieldset tests
425
+ - Added full test coverage for `Breadcrumb` component including runtime behavior tests and type safety validation
426
+ - Added unit tests for all new components: `ButtonGroup`, `Carousel`, `Dropdown`, `Icon`, `Image`, `Menu`, `MenuTypes`, `Rating`, `Result`, `Timeline`, `Typography`, `Slider`, and `InputNumber`
427
+ - Extended unit tests for enhanced `Button`, `Tabs`, and `Select` components
428
+
429
+ ### ⬆️ Dependencies
430
+
431
+ - Peer dependency on `@furystack/shades` bumped to new major version
432
+
3
433
  ## [11.0.0] - 2026-02-01
4
434
 
5
435
  ### 💥 Breaking Changes
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Props for the AccordionItem component.
3
+ */
4
+ export type AccordionItemProps = {
5
+ /** The header content displayed in the clickable toggle area */
6
+ title: JSX.Element | string;
7
+ /** Whether the item starts in the expanded state. Defaults to false */
8
+ defaultExpanded?: boolean;
9
+ /** Whether the item is disabled (non-interactive) */
10
+ disabled?: boolean;
11
+ /** Optional icon displayed before the title */
12
+ icon?: JSX.Element | string;
13
+ };
14
+ /**
15
+ * An individual collapsible section for use within an Accordion container.
16
+ *
17
+ * Supports animated expand/collapse, keyboard accessibility, and optional icon.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <AccordionItem title="Section 1" defaultExpanded>
22
+ * <p>Content goes here</p>
23
+ * </AccordionItem>
24
+ * ```
25
+ */
26
+ export declare const AccordionItem: (props: AccordionItemProps & Omit<Partial<HTMLElement>, "style"> & {
27
+ style?: Partial<CSSStyleDeclaration>;
28
+ } & {
29
+ ref?: import("@furystack/shades").RefObject<Element>;
30
+ }, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
31
+ //# sourceMappingURL=accordion-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion-item.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.tsx"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gEAAgE;IAChE,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;IAC3B,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa;;;;sEAoKxB,CAAA"}
@@ -0,0 +1,147 @@
1
+ import { Shade, createComponent } from '@furystack/shades';
2
+ import { buildTransition, cssVariableTheme } from '../../services/css-variable-theme.js';
3
+ import { collapse, expand } from '../animations.js';
4
+ import { Icon } from '../icons/icon.js';
5
+ import { chevronDown } from '../icons/icon-definitions.js';
6
+ /**
7
+ * An individual collapsible section for use within an Accordion container.
8
+ *
9
+ * Supports animated expand/collapse, keyboard accessibility, and optional icon.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <AccordionItem title="Section 1" defaultExpanded>
14
+ * <p>Content goes here</p>
15
+ * </AccordionItem>
16
+ * ```
17
+ */
18
+ export const AccordionItem = Shade({
19
+ shadowDomName: 'shade-accordion-item',
20
+ css: {
21
+ display: 'block',
22
+ fontFamily: cssVariableTheme.typography.fontFamily,
23
+ '&:not(:last-child)': {
24
+ borderBottom: `1px solid color-mix(in srgb, ${cssVariableTheme.text.secondary} 20%, transparent)`,
25
+ },
26
+ // Header
27
+ '& .accordion-header': {
28
+ display: 'flex',
29
+ alignItems: 'center',
30
+ gap: cssVariableTheme.spacing.sm,
31
+ padding: `${cssVariableTheme.spacing.md} ${cssVariableTheme.spacing.lg}`,
32
+ cursor: 'pointer',
33
+ userSelect: 'none',
34
+ backgroundColor: 'transparent',
35
+ border: 'none',
36
+ width: '100%',
37
+ textAlign: 'left',
38
+ outline: 'none',
39
+ color: 'inherit',
40
+ transition: buildTransition([
41
+ 'background-color',
42
+ cssVariableTheme.transitions.duration.fast,
43
+ cssVariableTheme.transitions.easing.default,
44
+ ]),
45
+ },
46
+ '& .accordion-header:hover:not([data-disabled])': {
47
+ backgroundColor: `color-mix(in srgb, ${cssVariableTheme.text.secondary} 8%, transparent)`,
48
+ },
49
+ '& .accordion-header:focus-visible': {
50
+ boxShadow: cssVariableTheme.action.focusRing,
51
+ },
52
+ // Icon
53
+ '& .accordion-icon': {
54
+ display: 'inline-flex',
55
+ alignItems: 'center',
56
+ flexShrink: '0',
57
+ fontSize: '1.2em',
58
+ },
59
+ // Title
60
+ '& .accordion-title': {
61
+ flex: '1',
62
+ fontSize: cssVariableTheme.typography.fontSize.md,
63
+ fontWeight: cssVariableTheme.typography.fontWeight.medium,
64
+ color: cssVariableTheme.text.primary,
65
+ },
66
+ // Chevron
67
+ '& .accordion-chevron': {
68
+ display: 'inline-flex',
69
+ alignItems: 'center',
70
+ justifyContent: 'center',
71
+ flexShrink: '0',
72
+ fontSize: '1.2em',
73
+ color: cssVariableTheme.text.secondary,
74
+ transform: 'rotate(-90deg)',
75
+ transition: buildTransition([
76
+ 'transform',
77
+ cssVariableTheme.transitions.duration.fast,
78
+ cssVariableTheme.transitions.easing.default,
79
+ ]),
80
+ },
81
+ '&[data-expanded] .accordion-chevron': {
82
+ transform: 'rotate(0deg)',
83
+ },
84
+ // Content wrapper (animated)
85
+ '& .accordion-content': {
86
+ overflow: 'hidden',
87
+ },
88
+ // Content inner (provides padding)
89
+ '& .accordion-content-inner': {
90
+ padding: `0 ${cssVariableTheme.spacing.lg} ${cssVariableTheme.spacing.lg}`,
91
+ },
92
+ // Disabled state
93
+ '&[data-disabled]': {
94
+ opacity: cssVariableTheme.action.disabledOpacity,
95
+ pointerEvents: 'none',
96
+ },
97
+ '&[data-disabled] .accordion-header': {
98
+ cursor: 'not-allowed',
99
+ },
100
+ },
101
+ render: ({ props, children, useHostProps, useRef, useState }) => {
102
+ const [isExpanded, setIsExpanded] = useState('expanded', !!props.defaultExpanded);
103
+ useHostProps({
104
+ 'data-disabled': props.disabled ? '' : undefined,
105
+ 'data-expanded': isExpanded ? '' : undefined,
106
+ });
107
+ const contentRef = useRef('content');
108
+ const handleToggle = async () => {
109
+ if (props.disabled)
110
+ return;
111
+ const content = contentRef.current;
112
+ if (!content)
113
+ return;
114
+ if (isExpanded) {
115
+ setIsExpanded(false);
116
+ await collapse(content, { duration: 250 });
117
+ }
118
+ else {
119
+ setIsExpanded(true);
120
+ await expand(content, { duration: 250 });
121
+ }
122
+ };
123
+ const handleKeyDown = (ev) => {
124
+ if (ev.key === 'Enter' || ev.key === ' ') {
125
+ ev.preventDefault();
126
+ void handleToggle();
127
+ }
128
+ };
129
+ const headerEl = (createComponent("div", { className: "accordion-header", role: "button", tabIndex: props.disabled ? -1 : 0, onclick: handleToggle, onkeydown: handleKeyDown },
130
+ props.icon ? createComponent("span", { className: "accordion-icon" }, props.icon) : null,
131
+ createComponent("span", { className: "accordion-title" }, props.title),
132
+ createComponent("span", { className: "accordion-chevron" },
133
+ createComponent(Icon, { icon: chevronDown, size: 16 }))));
134
+ headerEl.setAttribute('aria-expanded', String(isExpanded));
135
+ if (props.disabled) {
136
+ headerEl.setAttribute('data-disabled', '');
137
+ }
138
+ return (createComponent(createComponent, null,
139
+ headerEl,
140
+ createComponent("div", { ref: contentRef, className: "accordion-content", style: {
141
+ height: isExpanded ? undefined : '0px',
142
+ opacity: isExpanded ? '1' : '0',
143
+ } },
144
+ createComponent("div", { className: "accordion-content-inner" }, children))));
145
+ },
146
+ });
147
+ //# sourceMappingURL=accordion-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion-item.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Props for the Accordion container component.
3
+ */
4
+ export type AccordionProps = {
5
+ /** Visual variant of the accordion container */
6
+ variant?: 'outlined' | 'elevation';
7
+ };
8
+ /**
9
+ * A container component that groups AccordionItem children with consistent styling.
10
+ *
11
+ * Provides a bordered or elevated surface with rounded corners. Use it to wrap
12
+ * multiple AccordionItem components into a visually cohesive group.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <Accordion>
17
+ * <AccordionItem title="Section 1">Content 1</AccordionItem>
18
+ * <AccordionItem title="Section 2">Content 2</AccordionItem>
19
+ * </Accordion>
20
+ * ```
21
+ */
22
+ export declare const Accordion: (props: AccordionProps & Omit<Partial<HTMLElement>, "style"> & {
23
+ style?: Partial<CSSStyleDeclaration>;
24
+ } & {
25
+ ref?: import("@furystack/shades").RefObject<Element>;
26
+ }, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
27
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion.tsx"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;CACnC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS;;;;sEAwBpB,CAAA"}