eidos-ui 3.3.0 → 3.4.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 (322) hide show
  1. package/README.md +17 -5
  2. package/dist/{Input.types-XrJTI0JC.d.ts → Input.types-CSDMaZNe.d.ts} +10 -0
  3. package/dist/{Input.types-DFZNyJGF.d.cts → Input.types-D7-sWq-q.d.cts} +10 -0
  4. package/dist/{Select.types-CAkT2ACt.d.cts → Select.types-2p-mpaBL.d.cts} +1 -1
  5. package/dist/{Select.types-B4kDpkGB.d.ts → Select.types-BqaD7bmB.d.ts} +1 -1
  6. package/dist/alert/index.cjs +5 -5
  7. package/dist/alert/index.js +4 -4
  8. package/dist/button/index.cjs +4 -4
  9. package/dist/button/index.js +3 -3
  10. package/dist/checkbox/index.cjs +2 -2
  11. package/dist/checkbox/index.js +1 -1
  12. package/dist/chip/index.cjs +4 -4
  13. package/dist/chip/index.js +3 -3
  14. package/dist/{chunk-RYOQYYDO.js → chunk-22EKNTWJ.js} +9 -5
  15. package/dist/chunk-22EKNTWJ.js.map +1 -0
  16. package/dist/{chunk-3E7TKBQI.cjs → chunk-27UANGPW.cjs} +14 -6
  17. package/dist/chunk-27UANGPW.cjs.map +1 -0
  18. package/dist/{chunk-CJGFRPAS.cjs → chunk-3QQKWXMV.cjs} +4 -4
  19. package/dist/chunk-3QQKWXMV.cjs.map +1 -0
  20. package/dist/{chunk-Q5KQVBQP.cjs → chunk-3S33BIN2.cjs} +18 -16
  21. package/dist/chunk-3S33BIN2.cjs.map +1 -0
  22. package/dist/{chunk-ZPDETHQ7.js → chunk-3WV6RTXX.js} +3 -3
  23. package/dist/{chunk-ZPDETHQ7.js.map → chunk-3WV6RTXX.js.map} +1 -1
  24. package/dist/chunk-44T4HMFU.js +88 -0
  25. package/dist/chunk-44T4HMFU.js.map +1 -0
  26. package/dist/{chunk-3EPND5M2.cjs → chunk-4LET2PEX.cjs} +12 -12
  27. package/dist/chunk-4LET2PEX.cjs.map +1 -0
  28. package/dist/{chunk-R4M6SNUU.cjs → chunk-5E4DYTZ3.cjs} +48 -37
  29. package/dist/chunk-5E4DYTZ3.cjs.map +1 -0
  30. package/dist/{chunk-I5XR2V4A.cjs → chunk-5V7DXZWT.cjs} +79 -76
  31. package/dist/chunk-5V7DXZWT.cjs.map +1 -0
  32. package/dist/{chunk-6CPCNQKV.js → chunk-67EXHO4T.js} +2 -2
  33. package/dist/{chunk-K7T25Y3A.cjs → chunk-6LCYO2HG.cjs} +10 -9
  34. package/dist/chunk-6LCYO2HG.cjs.map +1 -0
  35. package/dist/{chunk-ZNWIHUHZ.cjs → chunk-7KVXXHFX.cjs} +9 -3
  36. package/dist/chunk-7KVXXHFX.cjs.map +1 -0
  37. package/dist/{chunk-55J4LEKT.cjs → chunk-AHVDTWVM.cjs} +11 -8
  38. package/dist/chunk-AHVDTWVM.cjs.map +1 -0
  39. package/dist/{chunk-OAPOGYA5.cjs → chunk-AXPEJ5IG.cjs} +7 -4
  40. package/dist/chunk-AXPEJ5IG.cjs.map +1 -0
  41. package/dist/{chunk-GDQWSCJQ.js → chunk-BBU7QG7L.js} +4 -4
  42. package/dist/{chunk-T2KB3DJJ.js → chunk-BGBAZMFE.js} +9 -3
  43. package/dist/chunk-BGBAZMFE.js.map +1 -0
  44. package/dist/{chunk-EH42ND5Q.cjs → chunk-BIANFFJL.cjs} +5 -5
  45. package/dist/{chunk-EH42ND5Q.cjs.map → chunk-BIANFFJL.cjs.map} +1 -1
  46. package/dist/{chunk-O2AACVSF.js → chunk-BO4LTIJI.js} +3 -3
  47. package/dist/{chunk-G5N3C6AU.cjs → chunk-CBT3TTQR.cjs} +36 -36
  48. package/dist/{chunk-G5N3C6AU.cjs.map → chunk-CBT3TTQR.cjs.map} +1 -1
  49. package/dist/{chunk-JRLUZDKA.js → chunk-CEC3GO4R.js} +20 -7
  50. package/dist/chunk-CEC3GO4R.js.map +1 -0
  51. package/dist/{chunk-BNVQ34FD.js → chunk-CP335H4Q.js} +4 -4
  52. package/dist/{chunk-H6CWTMAH.js → chunk-DGXHR6FV.js} +5 -2
  53. package/dist/chunk-DGXHR6FV.js.map +1 -0
  54. package/dist/{chunk-OU7DCYIA.js → chunk-DMOZURHV.js} +2 -2
  55. package/dist/{chunk-L5W2XC6M.js → chunk-EWTMX4DK.js} +8 -8
  56. package/dist/{chunk-SXGCRHBZ.js → chunk-FDMYDIGI.js} +8 -6
  57. package/dist/chunk-FDMYDIGI.js.map +1 -0
  58. package/dist/{chunk-AOGNTG3W.cjs → chunk-FODRHCRP.cjs} +5 -4
  59. package/dist/chunk-FODRHCRP.cjs.map +1 -0
  60. package/dist/{chunk-E7FGY7BJ.js → chunk-FPLX5FIK.js} +4 -4
  61. package/dist/{chunk-NEYLNRVG.cjs → chunk-FXMRDNR6.cjs} +21 -16
  62. package/dist/chunk-FXMRDNR6.cjs.map +1 -0
  63. package/dist/{chunk-VXO2MYYH.cjs → chunk-G74DHVHV.cjs} +9 -9
  64. package/dist/{chunk-VXO2MYYH.cjs.map → chunk-G74DHVHV.cjs.map} +1 -1
  65. package/dist/{chunk-O3LG7B2J.cjs → chunk-GMDVW76A.cjs} +13 -5
  66. package/dist/chunk-GMDVW76A.cjs.map +1 -0
  67. package/dist/{chunk-NQ4L6PYW.js → chunk-GOF6A4M4.js} +2 -2
  68. package/dist/{chunk-NQ4L6PYW.js.map → chunk-GOF6A4M4.js.map} +1 -1
  69. package/dist/{chunk-TQGO5WK6.js → chunk-GPK2THIG.js} +7 -6
  70. package/dist/chunk-GPK2THIG.js.map +1 -0
  71. package/dist/{chunk-HYDNZXPU.js → chunk-H2RS6Z6Q.js} +41 -25
  72. package/dist/{chunk-HYDNZXPU.js.map → chunk-H2RS6Z6Q.js.map} +1 -1
  73. package/dist/{chunk-OJDYTCMO.cjs → chunk-H5D3ZFBM.cjs} +68 -61
  74. package/dist/chunk-H5D3ZFBM.cjs.map +1 -0
  75. package/dist/{chunk-MHZIBV2C.js → chunk-IXVM2XNS.js} +7 -6
  76. package/dist/chunk-IXVM2XNS.js.map +1 -0
  77. package/dist/{chunk-MCWTQT3M.cjs → chunk-JKBBHAIC.cjs} +21 -20
  78. package/dist/chunk-JKBBHAIC.cjs.map +1 -0
  79. package/dist/{chunk-QQIALSTX.cjs → chunk-KPMIIGHH.cjs} +27 -17
  80. package/dist/chunk-KPMIIGHH.cjs.map +1 -0
  81. package/dist/{chunk-QJRKXT54.cjs → chunk-KWDOOMHR.cjs} +7 -7
  82. package/dist/{chunk-QJRKXT54.cjs.map → chunk-KWDOOMHR.cjs.map} +1 -1
  83. package/dist/{chunk-HALVTKW7.js → chunk-LH5A2SIX.js} +78 -75
  84. package/dist/{chunk-HALVTKW7.js.map → chunk-LH5A2SIX.js.map} +1 -1
  85. package/dist/{chunk-27ZWUEPE.js → chunk-LIKSLFX6.js} +20 -9
  86. package/dist/chunk-LIKSLFX6.js.map +1 -0
  87. package/dist/{chunk-Z5U4NJTW.cjs → chunk-MLUHM3VG.cjs} +48 -19
  88. package/dist/chunk-MLUHM3VG.cjs.map +1 -0
  89. package/dist/{chunk-M7PF4FKQ.js → chunk-MP7LN5CW.js} +6 -3
  90. package/dist/chunk-MP7LN5CW.js.map +1 -0
  91. package/dist/{chunk-ACNTH2OQ.cjs → chunk-MW4YZVP5.cjs} +96 -97
  92. package/dist/chunk-MW4YZVP5.cjs.map +1 -0
  93. package/dist/{chunk-ZXJU3TQD.cjs → chunk-N5ZWQJTM.cjs} +11 -10
  94. package/dist/chunk-N5ZWQJTM.cjs.map +1 -0
  95. package/dist/{chunk-OGC44JFZ.cjs → chunk-N77VOYCK.cjs} +7 -7
  96. package/dist/{chunk-OGC44JFZ.cjs.map → chunk-N77VOYCK.cjs.map} +1 -1
  97. package/dist/{chunk-OAK7HFOJ.js → chunk-NACA72XI.js} +21 -16
  98. package/dist/chunk-NACA72XI.js.map +1 -0
  99. package/dist/{chunk-TEVZHN5I.cjs → chunk-NCZUQFKL.cjs} +28 -15
  100. package/dist/chunk-NCZUQFKL.cjs.map +1 -0
  101. package/dist/{chunk-NZO2I5AL.cjs → chunk-NF55JG2V.cjs} +7 -7
  102. package/dist/{chunk-NZO2I5AL.cjs.map → chunk-NF55JG2V.cjs.map} +1 -1
  103. package/dist/{chunk-ZWAFL2B3.cjs → chunk-O46UJUZM.cjs} +21 -19
  104. package/dist/chunk-O46UJUZM.cjs.map +1 -0
  105. package/dist/{chunk-25PSIDPC.js → chunk-OIXPYXR6.js} +79 -21
  106. package/dist/chunk-OIXPYXR6.js.map +1 -0
  107. package/dist/chunk-OWWPHXAF.cjs +88 -0
  108. package/dist/chunk-OWWPHXAF.cjs.map +1 -0
  109. package/dist/{chunk-65PC3YDT.cjs → chunk-OZQKWDFH.cjs} +7 -7
  110. package/dist/{chunk-65PC3YDT.cjs.map → chunk-OZQKWDFH.cjs.map} +1 -1
  111. package/dist/{chunk-P2JM22BF.cjs → chunk-P7J6WZTO.cjs} +3 -3
  112. package/dist/{chunk-P2JM22BF.cjs.map → chunk-P7J6WZTO.cjs.map} +1 -1
  113. package/dist/{chunk-KQJ3IAFT.js → chunk-PG2EII6U.js} +2 -2
  114. package/dist/{chunk-E6SE552P.cjs → chunk-RUDXHT76.cjs} +41 -25
  115. package/dist/chunk-RUDXHT76.cjs.map +1 -0
  116. package/dist/{chunk-S4S4LB63.js → chunk-SCLFJHN2.js} +11 -3
  117. package/dist/chunk-SCLFJHN2.js.map +1 -0
  118. package/dist/{chunk-WKDT2XFQ.js → chunk-SFRILDXY.js} +4 -4
  119. package/dist/{chunk-J5RMLZ4P.cjs → chunk-SKBKTNEQ.cjs} +80 -22
  120. package/dist/chunk-SKBKTNEQ.cjs.map +1 -0
  121. package/dist/{chunk-YW65NAKH.cjs → chunk-SKLMBE3Z.cjs} +7 -7
  122. package/dist/{chunk-YW65NAKH.cjs.map → chunk-SKLMBE3Z.cjs.map} +1 -1
  123. package/dist/{chunk-PY2376XI.js → chunk-SVCWSW2F.js} +8 -8
  124. package/dist/chunk-SVCWSW2F.js.map +1 -0
  125. package/dist/{chunk-2RXQMQYW.js → chunk-SXL4DMZ7.js} +27 -17
  126. package/dist/{chunk-2RXQMQYW.js.map → chunk-SXL4DMZ7.js.map} +1 -1
  127. package/dist/{chunk-7SVDYEKM.js → chunk-TLECMA3B.js} +5 -4
  128. package/dist/{chunk-7SVDYEKM.js.map → chunk-TLECMA3B.js.map} +1 -1
  129. package/dist/{chunk-FXZJL2AM.cjs → chunk-TWXZKUCG.cjs} +9 -5
  130. package/dist/chunk-TWXZKUCG.cjs.map +1 -0
  131. package/dist/{chunk-GG5YGESX.js → chunk-TYGVKSL6.js} +4 -3
  132. package/dist/chunk-TYGVKSL6.js.map +1 -0
  133. package/dist/{chunk-TTO7JXDB.cjs → chunk-TYSNOPMQ.cjs} +3 -3
  134. package/dist/{chunk-TTO7JXDB.cjs.map → chunk-TYSNOPMQ.cjs.map} +1 -1
  135. package/dist/{chunk-ZZSPQFMX.js → chunk-U233KQZX.js} +2 -1
  136. package/dist/{chunk-ZZSPQFMX.js.map → chunk-U233KQZX.js.map} +1 -1
  137. package/dist/{chunk-5HUZYY54.js → chunk-UDRAM6JU.js} +13 -5
  138. package/dist/chunk-UDRAM6JU.js.map +1 -0
  139. package/dist/{chunk-3EUTXQDB.js → chunk-UGTKZ7HP.js} +30 -23
  140. package/dist/chunk-UGTKZ7HP.js.map +1 -0
  141. package/dist/{chunk-FKXKBJUI.cjs → chunk-VHO6JPRR.cjs} +2 -1
  142. package/dist/chunk-VHO6JPRR.cjs.map +1 -0
  143. package/dist/chunk-VHSTB7GB.cjs +123 -0
  144. package/dist/chunk-VHSTB7GB.cjs.map +1 -0
  145. package/dist/{chunk-VPRUHE35.js → chunk-VRNCXYEP.js} +4 -4
  146. package/dist/{chunk-ITXDSQT2.js → chunk-WGCGSM5P.js} +96 -97
  147. package/dist/chunk-WGCGSM5P.js.map +1 -0
  148. package/dist/chunk-WT4WBHBR.js +123 -0
  149. package/dist/chunk-WT4WBHBR.js.map +1 -0
  150. package/dist/{chunk-L23WWO3D.js → chunk-X6UKU3C3.js} +2 -2
  151. package/dist/{chunk-5WH3JMR5.js → chunk-XK5USBHB.js} +7 -4
  152. package/dist/chunk-XK5USBHB.js.map +1 -0
  153. package/dist/{chunk-ND526PMG.cjs → chunk-XMXL6NVJ.cjs} +11 -11
  154. package/dist/{chunk-ND526PMG.cjs.map → chunk-XMXL6NVJ.cjs.map} +1 -1
  155. package/dist/{chunk-YV57RSPD.js → chunk-XO7WTE6O.js} +47 -18
  156. package/dist/chunk-XO7WTE6O.js.map +1 -0
  157. package/dist/{chunk-3CXULV4G.cjs → chunk-XRVRGRC3.cjs} +2 -2
  158. package/dist/{chunk-3CXULV4G.cjs.map → chunk-XRVRGRC3.cjs.map} +1 -1
  159. package/dist/{chunk-GPRJYPIG.js → chunk-Y7VSWZWM.js} +6 -4
  160. package/dist/chunk-Y7VSWZWM.js.map +1 -0
  161. package/dist/{chunk-2QEKSRVX.js → chunk-YIBPOLNN.js} +4 -4
  162. package/dist/{chunk-IJ4DXG7D.cjs → chunk-YJNQLH2L.cjs} +5 -2
  163. package/dist/chunk-YJNQLH2L.cjs.map +1 -0
  164. package/dist/{chunk-6CSUUQ5M.cjs → chunk-YUH56CJI.cjs} +6 -6
  165. package/dist/{chunk-6CSUUQ5M.cjs.map → chunk-YUH56CJI.cjs.map} +1 -1
  166. package/dist/color-picker/index.cjs +4 -4
  167. package/dist/color-picker/index.d.cts +8 -0
  168. package/dist/color-picker/index.d.ts +8 -0
  169. package/dist/color-picker/index.js +3 -3
  170. package/dist/combobox/index.cjs +6 -6
  171. package/dist/combobox/index.js +5 -5
  172. package/dist/command-palette/index.cjs +3 -2
  173. package/dist/command-palette/index.cjs.map +1 -1
  174. package/dist/command-palette/index.js +2 -1
  175. package/dist/context-menu/index.cjs +6 -6
  176. package/dist/context-menu/index.js +5 -5
  177. package/dist/conversation/index.cjs +8 -8
  178. package/dist/conversation/index.js +7 -7
  179. package/dist/data-grid/index.cjs +16 -16
  180. package/dist/data-grid/index.d.cts +2 -2
  181. package/dist/data-grid/index.d.ts +2 -2
  182. package/dist/data-grid/index.js +15 -15
  183. package/dist/date-picker/index.cjs +8 -8
  184. package/dist/date-picker/index.d.cts +1 -1
  185. package/dist/date-picker/index.d.ts +1 -1
  186. package/dist/date-picker/index.js +7 -7
  187. package/dist/drawer/index.cjs +5 -5
  188. package/dist/drawer/index.js +4 -4
  189. package/dist/dropdown/index.cjs +3 -3
  190. package/dist/dropdown/index.js +2 -2
  191. package/dist/file-upload/index.cjs +2 -2
  192. package/dist/file-upload/index.js +1 -1
  193. package/dist/header/index.cjs +6 -6
  194. package/dist/header/index.js +5 -5
  195. package/dist/index.cjs +42 -42
  196. package/dist/index.css +93 -38
  197. package/dist/index.d.cts +2 -2
  198. package/dist/index.d.ts +2 -2
  199. package/dist/index.js +41 -41
  200. package/dist/inline-edit/index.cjs +5 -5
  201. package/dist/inline-edit/index.js +4 -4
  202. package/dist/input/index.cjs +4 -4
  203. package/dist/input/index.d.cts +2 -2
  204. package/dist/input/index.d.ts +2 -2
  205. package/dist/input/index.js +3 -3
  206. package/dist/menu/index.cjs +5 -5
  207. package/dist/menu/index.js +4 -4
  208. package/dist/modal/index.cjs +5 -5
  209. package/dist/modal/index.js +4 -4
  210. package/dist/navigation/index.cjs +5 -5
  211. package/dist/navigation/index.js +4 -4
  212. package/dist/number-input/index.cjs +3 -3
  213. package/dist/number-input/index.js +2 -2
  214. package/dist/o-t-p-input/index.cjs +2 -2
  215. package/dist/o-t-p-input/index.js +1 -1
  216. package/dist/page-layout/index.cjs +12 -12
  217. package/dist/page-layout/index.js +11 -11
  218. package/dist/pagination/index.cjs +8 -8
  219. package/dist/pagination/index.js +7 -7
  220. package/dist/popover/index.cjs +3 -2
  221. package/dist/popover/index.cjs.map +1 -1
  222. package/dist/popover/index.js +2 -1
  223. package/dist/radio/index.cjs +2 -2
  224. package/dist/radio/index.js +1 -1
  225. package/dist/segmented-control/index.cjs +4 -4
  226. package/dist/segmented-control/index.js +3 -3
  227. package/dist/select/index.cjs +6 -6
  228. package/dist/select/index.d.cts +3 -3
  229. package/dist/select/index.d.ts +3 -3
  230. package/dist/select/index.js +5 -5
  231. package/dist/snackbar/index.cjs +5 -5
  232. package/dist/snackbar/index.d.cts +4 -0
  233. package/dist/snackbar/index.d.ts +4 -0
  234. package/dist/snackbar/index.js +4 -4
  235. package/dist/split-button/index.cjs +6 -6
  236. package/dist/split-button/index.js +5 -5
  237. package/dist/table/index.cjs +14 -14
  238. package/dist/table/index.js +13 -13
  239. package/dist/tabs/index.cjs +3 -3
  240. package/dist/tabs/index.js +2 -2
  241. package/dist/tag-input/index.cjs +6 -6
  242. package/dist/tag-input/index.js +5 -5
  243. package/dist/textarea/index.cjs +4 -4
  244. package/dist/textarea/index.js +3 -3
  245. package/dist/theme-editor/index.cjs +11 -11
  246. package/dist/theme-editor/index.js +10 -10
  247. package/dist/theme-provider/index.cjs +3 -3
  248. package/dist/theme-provider/index.js +2 -2
  249. package/dist/toolbar/index.cjs +8 -8
  250. package/dist/toolbar/index.js +7 -7
  251. package/dist/tooltip/index.cjs +3 -2
  252. package/dist/tooltip/index.cjs.map +1 -1
  253. package/dist/tooltip/index.js +2 -1
  254. package/dist/virtual-list/index.cjs +2 -2
  255. package/dist/virtual-list/index.js +1 -1
  256. package/package.json +7 -2
  257. package/dist/chunk-25PSIDPC.js.map +0 -1
  258. package/dist/chunk-27ZWUEPE.js.map +0 -1
  259. package/dist/chunk-3E7TKBQI.cjs.map +0 -1
  260. package/dist/chunk-3EPND5M2.cjs.map +0 -1
  261. package/dist/chunk-3EUTXQDB.js.map +0 -1
  262. package/dist/chunk-55J4LEKT.cjs.map +0 -1
  263. package/dist/chunk-5HUZYY54.js.map +0 -1
  264. package/dist/chunk-5WH3JMR5.js.map +0 -1
  265. package/dist/chunk-ACNTH2OQ.cjs.map +0 -1
  266. package/dist/chunk-AOGNTG3W.cjs.map +0 -1
  267. package/dist/chunk-CJGFRPAS.cjs.map +0 -1
  268. package/dist/chunk-CUJBNRJJ.cjs +0 -38
  269. package/dist/chunk-CUJBNRJJ.cjs.map +0 -1
  270. package/dist/chunk-E6SE552P.cjs.map +0 -1
  271. package/dist/chunk-EAJHEYZM.js +0 -38
  272. package/dist/chunk-EAJHEYZM.js.map +0 -1
  273. package/dist/chunk-FKXKBJUI.cjs.map +0 -1
  274. package/dist/chunk-FXZJL2AM.cjs.map +0 -1
  275. package/dist/chunk-GG5YGESX.js.map +0 -1
  276. package/dist/chunk-GPRJYPIG.js.map +0 -1
  277. package/dist/chunk-H6CWTMAH.js.map +0 -1
  278. package/dist/chunk-I5XR2V4A.cjs.map +0 -1
  279. package/dist/chunk-IJ4DXG7D.cjs.map +0 -1
  280. package/dist/chunk-ITXDSQT2.js.map +0 -1
  281. package/dist/chunk-J5RMLZ4P.cjs.map +0 -1
  282. package/dist/chunk-JRLUZDKA.js.map +0 -1
  283. package/dist/chunk-K7T25Y3A.cjs.map +0 -1
  284. package/dist/chunk-L5Q6UDY3.js +0 -69
  285. package/dist/chunk-L5Q6UDY3.js.map +0 -1
  286. package/dist/chunk-M7PF4FKQ.js.map +0 -1
  287. package/dist/chunk-MCWTQT3M.cjs.map +0 -1
  288. package/dist/chunk-MHZIBV2C.js.map +0 -1
  289. package/dist/chunk-NEYLNRVG.cjs.map +0 -1
  290. package/dist/chunk-O3LG7B2J.cjs.map +0 -1
  291. package/dist/chunk-OAK7HFOJ.js.map +0 -1
  292. package/dist/chunk-OAPOGYA5.cjs.map +0 -1
  293. package/dist/chunk-OJDYTCMO.cjs.map +0 -1
  294. package/dist/chunk-PY2376XI.js.map +0 -1
  295. package/dist/chunk-Q5KQVBQP.cjs.map +0 -1
  296. package/dist/chunk-QQIALSTX.cjs.map +0 -1
  297. package/dist/chunk-R4M6SNUU.cjs.map +0 -1
  298. package/dist/chunk-RYOQYYDO.js.map +0 -1
  299. package/dist/chunk-S4S4LB63.js.map +0 -1
  300. package/dist/chunk-SXGCRHBZ.js.map +0 -1
  301. package/dist/chunk-T2KB3DJJ.js.map +0 -1
  302. package/dist/chunk-TEVZHN5I.cjs.map +0 -1
  303. package/dist/chunk-TQGO5WK6.js.map +0 -1
  304. package/dist/chunk-WWYJNWJY.cjs +0 -69
  305. package/dist/chunk-WWYJNWJY.cjs.map +0 -1
  306. package/dist/chunk-YV57RSPD.js.map +0 -1
  307. package/dist/chunk-Z5U4NJTW.cjs.map +0 -1
  308. package/dist/chunk-ZNWIHUHZ.cjs.map +0 -1
  309. package/dist/chunk-ZWAFL2B3.cjs.map +0 -1
  310. package/dist/chunk-ZXJU3TQD.cjs.map +0 -1
  311. /package/dist/{chunk-6CPCNQKV.js.map → chunk-67EXHO4T.js.map} +0 -0
  312. /package/dist/{chunk-GDQWSCJQ.js.map → chunk-BBU7QG7L.js.map} +0 -0
  313. /package/dist/{chunk-O2AACVSF.js.map → chunk-BO4LTIJI.js.map} +0 -0
  314. /package/dist/{chunk-BNVQ34FD.js.map → chunk-CP335H4Q.js.map} +0 -0
  315. /package/dist/{chunk-OU7DCYIA.js.map → chunk-DMOZURHV.js.map} +0 -0
  316. /package/dist/{chunk-L5W2XC6M.js.map → chunk-EWTMX4DK.js.map} +0 -0
  317. /package/dist/{chunk-E7FGY7BJ.js.map → chunk-FPLX5FIK.js.map} +0 -0
  318. /package/dist/{chunk-KQJ3IAFT.js.map → chunk-PG2EII6U.js.map} +0 -0
  319. /package/dist/{chunk-WKDT2XFQ.js.map → chunk-SFRILDXY.js.map} +0 -0
  320. /package/dist/{chunk-VPRUHE35.js.map → chunk-VRNCXYEP.js.map} +0 -0
  321. /package/dist/{chunk-L23WWO3D.js.map → chunk-X6UKU3C3.js.map} +0 -0
  322. /package/dist/{chunk-2QEKSRVX.js.map → chunk-YIBPOLNN.js.map} +0 -0
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  Tooltip
3
- } from "./chunk-YV57RSPD.js";
3
+ } from "./chunk-XO7WTE6O.js";
4
4
  import {
5
+ devWarn,
5
6
  fullWidthModifier,
6
7
  renderIcon
7
- } from "./chunk-EAJHEYZM.js";
8
+ } from "./chunk-WT4WBHBR.js";
8
9
 
9
10
  // src/components/Input/Input.component.tsx
10
11
  import { forwardRef, useState, useId } from "react";
@@ -27,6 +28,7 @@ var Input = forwardRef(
27
28
  posIcon,
28
29
  posIconButton = false,
29
30
  onPosIconClick,
31
+ posIconLabel,
30
32
  type = "text",
31
33
  id,
32
34
  name,
@@ -47,6 +49,14 @@ var Input = forwardRef(
47
49
  const currentValue = isControlled ? restInputProps.value : localValue;
48
50
  const shouldFloatLabel = isSelect ? false : currentValue || defaultValue;
49
51
  const isRequired = required || Boolean("required" in restInputProps && restInputProps.required);
52
+ const errorId = `${inputId}-error`;
53
+ const describedBy = [restInputProps["aria-describedby"], error ? errorId : null].filter(Boolean).join(" ") || void 0;
54
+ if (posIcon && posIconButton && onPosIconClick && !posIconLabel) {
55
+ devWarn(
56
+ "input-pos-icon-label",
57
+ 'Input: `posIconButton` renders an icon-only button, so it needs `posIconLabel` to have an accessible name. Falling back to "Input action".'
58
+ );
59
+ }
50
60
  const handleNumberInput = (e) => {
51
61
  if (type === "number") {
52
62
  const allowedKeys = [
@@ -167,6 +177,8 @@ var Input = forwardRef(
167
177
  disabled: disabled || loading,
168
178
  onKeyDown: handleNumberInput,
169
179
  ...restInputProps,
180
+ "aria-invalid": error ? true : restInputProps["aria-invalid"],
181
+ "aria-describedby": describedBy,
170
182
  value: currentValue,
171
183
  onFocus: (e) => {
172
184
  handleFocus();
@@ -186,7 +198,8 @@ var Input = forwardRef(
186
198
  className: `eidos-input-password-toggle`,
187
199
  onClick: () => setShowPassword(!showPassword),
188
200
  disabled: disabled || loading,
189
- tabIndex: -1,
201
+ "aria-label": showPassword ? "Hide password" : "Show password",
202
+ "aria-pressed": showPassword,
190
203
  children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: `eidos-input-password-toggle-icon` }) : /* @__PURE__ */ jsx(Eye, { className: `eidos-input-password-toggle-icon` })
191
204
  }
192
205
  ),
@@ -197,7 +210,7 @@ var Input = forwardRef(
197
210
  className: `eidos-input-clear-button`,
198
211
  onClick: handleClear,
199
212
  disabled: disabled || loading,
200
- tabIndex: -1,
213
+ "aria-label": label ? `Clear ${label}` : "Clear",
201
214
  children: /* @__PURE__ */ jsx(X, { className: `eidos-input-clear-button-icon` })
202
215
  }
203
216
  ),
@@ -209,13 +222,13 @@ var Input = forwardRef(
209
222
  className: `eidos-input-pos-icon-button`,
210
223
  onClick: onPosIconClick,
211
224
  disabled: disabled || loading,
212
- tabIndex: -1,
225
+ "aria-label": posIconLabel ?? "Input action",
213
226
  children: renderIcon(posIcon, `eidos-input-pos-icon-svg`)
214
227
  }
215
228
  ),
216
229
  isSelect && /* @__PURE__ */ jsx("span", { className: `eidos-input-select-chevron`, children: /* @__PURE__ */ jsx(ChevronDown, { className: `eidos-input-pos-icon-svg` }) })
217
230
  ] }),
218
- error && /* @__PURE__ */ jsxs("div", { className: `eidos-input-error-message`, children: [
231
+ error && /* @__PURE__ */ jsxs("div", { id: errorId, className: `eidos-input-error-message`, children: [
219
232
  /* @__PURE__ */ jsx(CircleAlert, { className: `eidos-input-error-icon` }),
220
233
  /* @__PURE__ */ jsx("span", { children: error })
221
234
  ] })
@@ -229,4 +242,4 @@ Input.displayName = "Input";
229
242
  export {
230
243
  Input
231
244
  };
232
- //# sourceMappingURL=chunk-JRLUZDKA.js.map
245
+ //# sourceMappingURL=chunk-CEC3GO4R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Input/Input.component.tsx"],"sourcesContent":["import React, { forwardRef, useState, useId } from 'react';\nimport { Eye, EyeOff, CircleAlert, X, ChevronDown } from 'lucide-react';\nimport { renderIcon, fullWidthModifier, devWarn } from '../../utils';\nimport type { InputProps } from './Input.types';\nimport { Tooltip } from '../Tooltip/Tooltip.component';\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n variant = 'filled',\n color = 'primary',\n size = 'md',\n disabled = false,\n loading = false,\n className = '',\n width,\n label,\n error,\n disclaimerIcon,\n disclaimerContent,\n preIcon,\n posIcon,\n posIconButton = false,\n onPosIconClick,\n posIconLabel,\n type = 'text',\n id,\n name,\n required,\n isSelect = false,\n clearable = true,\n fullWidth = false,\n ...inputProps\n },\n ref,\n ) => {\n // Extract defaultValue so it never reaches the native <input> alongside `value`.\n // Passing both causes React's \"controlled/uncontrolled\" warning because we always\n // set value={currentValue} below - defaultValue is only needed to seed local state.\n const { defaultValue, ...restInputProps } = inputProps;\n\n const [showPassword, setShowPassword] = useState(false);\n const [localValue, setLocalValue] = useState(defaultValue || '');\n const [isFocused, setIsFocused] = useState(false);\n\n // Auto-generate id and name if not provided\n const generatedId = useId();\n const inputId = id || `input-${generatedId}`;\n const inputName = name || inputId;\n\n // Determine if using controlled or uncontrolled mode\n const isControlled = restInputProps.value !== undefined;\n const currentValue = isControlled ? restInputProps.value : localValue;\n\n // For select inputs, don't manage localValue - let the select component handle it\n // This prevents the Input's clear button from showing\n\n // Determine if label should float (only when there's content - static behavior)\n // For select inputs, keep label completely static (never float)\n const shouldFloatLabel = isSelect ? false : currentValue || defaultValue;\n\n // Check if field is required (from props or enhanced register function)\n const isRequired = required || Boolean('required' in restInputProps && restInputProps.required);\n\n // ── Error identification (SC 3.3.1) ───────────────────────────────\n //\n // The error was rendered as a red message next to the field and nothing\n // more: no `aria-invalid`, and no association between the two. Visually\n // obvious, entirely absent from the accessibility tree.\n //\n // `aria-describedby` is merged rather than assigned, because callers\n // pass their own - `TagInput` and `Combobox` both describe their fields\n // with hint text - and overwriting it would trade one missing\n // description for another.\n const errorId = `${inputId}-error`;\n const describedBy =\n [restInputProps['aria-describedby'], error ? errorId : null].filter(Boolean).join(' ') ||\n undefined;\n\n // An icon-only button with no name is announced as just \"button\", and\n // only the caller knows what the icon means. Warned rather than enforced\n // at the type level, which would be a breaking change - see the note on\n // `posIconLabel` in Input.types.ts.\n if (posIcon && posIconButton && onPosIconClick && !posIconLabel) {\n devWarn(\n 'input-pos-icon-label',\n 'Input: `posIconButton` renders an icon-only button, so it needs `posIconLabel` to have an accessible name. Falling back to \"Input action\".',\n );\n }\n\n // Handle number input to allow decimals and negative numbers\n const handleNumberInput = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (type === 'number') {\n const allowedKeys = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n ];\n const isNumber = /[0-9]/.test(e.key);\n const isDecimal = /[.,]/.test(e.key);\n const isMinus = e.key === '-';\n const isAllowedKey = allowedKeys.includes(e.key);\n const isControlKey = e.ctrlKey || e.metaKey;\n\n // Allow minus only at the beginning or when no text is selected\n if (isMinus) {\n const selectionStart = e.currentTarget.selectionStart || 0;\n const selectionEnd = e.currentTarget.selectionEnd || 0;\n const hasSelection = selectionStart !== selectionEnd;\n\n // Allow if at beginning or if replacing selected text\n if (selectionStart !== 0 && !hasSelection) {\n e.preventDefault();\n return;\n }\n }\n\n // Allow decimal only once\n if (isDecimal) {\n const currentValue = e.currentTarget.value;\n const hasDecimal = /[.,]/.test(currentValue);\n if (hasDecimal) {\n e.preventDefault();\n return;\n }\n }\n\n if (!isNumber && !isDecimal && !isMinus && !isAllowedKey && !isControlKey) {\n e.preventDefault();\n }\n }\n };\n\n // Handle input change for number inputs\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n // Only update localValue if uncontrolled and not a select input\n if (!isControlled && !isSelect) {\n setLocalValue(value);\n }\n restInputProps.onChange?.(e);\n };\n\n // Handle clear button\n const handleClear = () => {\n // Update localValue if uncontrolled\n if (!isControlled) {\n setLocalValue('');\n }\n\n // Create a proper synthetic event for React Hook Form\n const syntheticEvent = {\n target: {\n value: '',\n name: inputName,\n id: inputId,\n type: actualType,\n },\n } as React.ChangeEvent<HTMLInputElement>;\n\n // Call the form's onChange handler\n restInputProps.onChange?.(syntheticEvent);\n\n // Also try to update the input element directly\n if (ref && typeof ref === 'object' && ref.current) {\n ref.current.value = '';\n }\n };\n\n // Handle focus and blur\n const handleFocus = () => {\n setIsFocused(true);\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n };\n\n // Determine actual input type (handle password visibility)\n const actualType = type === 'password' ? (showPassword ? 'text' : 'password') : type;\n\n // Generate CSS classes\n const inputClasses = [\n 'eidos-input',\n `eidos-input--${variant}`,\n `eidos-input--${color}`,\n `eidos-input--${size}`,\n fullWidth && fullWidthModifier('eidos-input'),\n loading && `eidos-input--loading`,\n error && `eidos-input--error`,\n ]\n .filter(Boolean)\n .join(' ');\n\n const wrapperClasses = [\n 'eidos-input-wrapper',\n `eidos-input-wrapper--${variant}`,\n `eidos-input-wrapper--${color}`,\n `eidos-input-wrapper--${size}`,\n fullWidth && fullWidthModifier('eidos-input-wrapper'),\n loading && `eidos-input-wrapper--loading`,\n isFocused && `eidos-input-wrapper--focused`,\n error && `eidos-input-wrapper--error`,\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = [\n 'eidos-input-label',\n shouldFloatLabel && `eidos-input-label--floating`,\n disclaimerIcon && `eidos-input-label--with-icon`,\n error && `eidos-input-label--error`,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n className={`eidos-input-container ${fullWidth ? fullWidthModifier('eidos-input-container') : ''} ${className}`}\n // `width` sizes the whole field, so it belongs on the container rather\n // than on the inner <input> (which is a `flex: 1 1 0` child of the\n // wrapper and only ever fills whatever the wrapper gives it). Applying\n // it here also keeps it a *preferred* width: `max-width: 100%` lets the\n // field shrink inside a narrower parent instead of overflowing it.\n style={\n width\n ? { width: typeof width === 'number' ? `${width}px` : width, maxWidth: '100%' }\n : undefined\n }\n >\n {label && (\n <label htmlFor={inputId} className={labelClasses}>\n <span className={`eidos-input-label-text`}>{label}</span>\n {isRequired && <span className={`eidos-input-required-asterisk`}>*</span>}\n {disclaimerIcon &&\n (disclaimerContent ? (\n <Tooltip message={disclaimerContent}>\n <span className={`eidos-input-disclaimer-icon`}>\n {renderIcon(disclaimerIcon, `eidos-input-disclaimer-icon-svg`)}\n </span>\n </Tooltip>\n ) : (\n <span className={`eidos-input-disclaimer-icon`}>\n {renderIcon(disclaimerIcon, `eidos-input-disclaimer-icon-svg`)}\n </span>\n ))}\n </label>\n )}\n\n <div className={wrapperClasses}>\n {preIcon && (\n <span className={`eidos-input-pre-icon`}>\n {renderIcon(preIcon, `eidos-input-pre-icon-svg`)}\n </span>\n )}\n\n <input\n ref={ref}\n id={inputId}\n name={inputName}\n type={actualType}\n className={inputClasses}\n disabled={disabled || loading}\n onKeyDown={handleNumberInput}\n {...restInputProps}\n aria-invalid={error ? true : restInputProps['aria-invalid']}\n aria-describedby={describedBy}\n value={currentValue}\n onFocus={(e) => {\n handleFocus();\n restInputProps.onFocus?.(e);\n }}\n onBlur={(e) => {\n handleBlur();\n restInputProps.onBlur?.(e);\n }}\n onChange={handleInputChange}\n />\n\n {type === 'password' && (\n <button\n type=\"button\"\n className={`eidos-input-password-toggle`}\n onClick={() => setShowPassword(!showPassword)}\n disabled={disabled || loading}\n // The name changes with state so a screen reader announces what\n // pressing it will do, not what it just did.\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n aria-pressed={showPassword}\n >\n {showPassword ? (\n <EyeOff className={`eidos-input-password-toggle-icon`} />\n ) : (\n <Eye className={`eidos-input-password-toggle-icon`} />\n )}\n </button>\n )}\n\n {/* Clear button - show when there's content and clearable is enabled (default: true) */}\n {currentValue &&\n String(currentValue).trim().length > 0 &&\n type !== 'password' &&\n !isSelect &&\n clearable !== false && (\n <button\n type=\"button\"\n className={`eidos-input-clear-button`}\n onClick={handleClear}\n disabled={disabled || loading}\n aria-label={label ? `Clear ${label}` : 'Clear'}\n >\n <X className={`eidos-input-clear-button-icon`} />\n </button>\n )}\n\n {posIcon && !posIconButton && (\n <span className={`eidos-input-pos-icon`}>\n {renderIcon(posIcon, `eidos-input-pos-icon-svg`)}\n </span>\n )}\n\n {posIcon && posIconButton && onPosIconClick && (\n <button\n type=\"button\"\n className={`eidos-input-pos-icon-button`}\n onClick={onPosIconClick}\n disabled={disabled || loading}\n aria-label={posIconLabel ?? 'Input action'}\n >\n {renderIcon(posIcon, `eidos-input-pos-icon-svg`)}\n </button>\n )}\n\n {/* Chevron for select inputs */}\n {isSelect && (\n <span className={`eidos-input-select-chevron`}>\n <ChevronDown className={`eidos-input-pos-icon-svg`} />\n </span>\n )}\n </div>\n\n {error && (\n <div id={errorId} className={`eidos-input-error-message`}>\n <CircleAlert className={`eidos-input-error-icon`} />\n <span>{error}</span>\n </div>\n )}\n </div>\n );\n },\n);\n\nInput.displayName = 'Input';\n"],"mappings":"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","names":["currentValue"]}
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  Dropdown
3
- } from "./chunk-6CPCNQKV.js";
3
+ } from "./chunk-67EXHO4T.js";
4
4
  import {
5
5
  Kbd
6
6
  } from "./chunk-LYH3EKKQ.js";
7
7
  import {
8
8
  Tooltip
9
- } from "./chunk-YV57RSPD.js";
9
+ } from "./chunk-XO7WTE6O.js";
10
10
  import {
11
11
  renderIcon
12
- } from "./chunk-EAJHEYZM.js";
12
+ } from "./chunk-WT4WBHBR.js";
13
13
 
14
14
  // src/components/Menu/Menu.component.tsx
15
15
  import { useCallback } from "react";
@@ -122,4 +122,4 @@ export {
122
122
  MenuPanel,
123
123
  Menu
124
124
  };
125
- //# sourceMappingURL=chunk-BNVQ34FD.js.map
125
+ //# sourceMappingURL=chunk-CP335H4Q.js.map
@@ -20,6 +20,7 @@ var Checkbox = forwardRef(
20
20
  }, ref) => {
21
21
  const generatedId = useId();
22
22
  const checkboxId = id || `checkbox-${generatedId}`;
23
+ const errorId = `${checkboxId}-error`;
23
24
  const internalRef = useRef(null);
24
25
  const isControlled = checked !== void 0;
25
26
  const [localChecked, setLocalChecked] = useState(defaultChecked ?? false);
@@ -73,6 +74,8 @@ var Checkbox = forwardRef(
73
74
  type: "checkbox",
74
75
  id: checkboxId,
75
76
  className: "eidos-checkbox-input",
77
+ "aria-invalid": error ? true : void 0,
78
+ "aria-describedby": error ? errorId : void 0,
76
79
  disabled,
77
80
  onChange: handleChange,
78
81
  onClick: handleClick,
@@ -86,7 +89,7 @@ var Checkbox = forwardRef(
86
89
  ] }),
87
90
  label && /* @__PURE__ */ jsx("span", { className: "eidos-checkbox-label", children: label })
88
91
  ] }),
89
- error && /* @__PURE__ */ jsxs("div", { className: "eidos-checkbox-error-message", children: [
92
+ error && /* @__PURE__ */ jsxs("div", { id: errorId, className: "eidos-checkbox-error-message", children: [
90
93
  /* @__PURE__ */ jsx(CircleAlert, {}),
91
94
  /* @__PURE__ */ jsx("span", { children: error })
92
95
  ] })
@@ -98,4 +101,4 @@ Checkbox.displayName = "Checkbox";
98
101
  export {
99
102
  Checkbox
100
103
  };
101
- //# sourceMappingURL=chunk-H6CWTMAH.js.map
104
+ //# sourceMappingURL=chunk-DGXHR6FV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Checkbox/Checkbox.component.tsx"],"sourcesContent":["import React, { forwardRef, useId, useRef, useState, useEffect, useCallback } from 'react';\nimport { Check, Minus, CircleAlert } from 'lucide-react';\nimport type { CheckboxProps } from './Checkbox.types';\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n error,\n indeterminate = false,\n color = 'primary',\n size = 'md',\n className = '',\n disabled = false,\n id,\n checked,\n defaultChecked,\n onChange,\n onClick,\n ...inputProps\n },\n ref,\n ) => {\n const generatedId = useId();\n const checkboxId = id || `checkbox-${generatedId}`;\n // Associates the visible error with the control. Without it the message\n // is just a red line of text sitting near the field - obvious to look\n // at, absent from the accessibility tree (SC 3.3.1). See the fuller\n // note in `Input`.\n const errorId = `${checkboxId}-error`;\n\n // Internal ref needed to imperatively set `indeterminate` (not a standard HTML attribute)\n const internalRef = useRef<HTMLInputElement>(null);\n\n // Track checked state for the visual control:\n // - controlled mode: `checked` prop drives everything\n // - uncontrolled mode: local state mirrors the native input\n const isControlled = checked !== undefined;\n const [localChecked, setLocalChecked] = useState<boolean>(defaultChecked ?? false);\n\n // `??` correctly handles `false` (falsy but defined): only falls back when `checked` is undefined\n const isChecked = checked ?? localChecked;\n\n // Imperatively set the indeterminate property – it has no HTML attribute equivalent\n useEffect(() => {\n if (internalRef.current) {\n internalRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n // Merge the forwarded ref with our internal ref so callers can still access the input.\n // useCallback(_, [ref]) prevents the ref callback from being a new function identity\n // every render, which would cause React to detach/re-attach the ref unnecessarily.\n const mergedRef = useCallback(\n (node: HTMLInputElement | null) => {\n internalRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\n }\n },\n [ref],\n );\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setLocalChecked(e.target.checked);\n }\n onChange?.(e);\n };\n\n // Clicking anywhere in the surrounding <label> (e.g. the custom\n // `.eidos-checkbox-control` box) fires a click on the clicked element\n // *and* a second, browser-synthesized click targeted at this input -\n // both bubble up. A consumer that wraps Checkbox in its own click\n // handler (e.g. DataGrid toggling a cell on click) would otherwise see\n // that handler fire twice per click and cancel itself out. Stopping\n // propagation here only cancels the synthesized click's bubbling; the\n // original click (whichever element the user actually clicked) still\n // bubbles normally. Still forwards to a caller-supplied `onClick`\n // first, so passing one through doesn't silently disable this fix.\n const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(e);\n e.stopPropagation();\n };\n\n const wrapperClasses = [\n 'eidos-checkbox-wrapper',\n `eidos-checkbox-wrapper--${color}`,\n `eidos-checkbox-wrapper--${size}`,\n disabled && 'eidos-checkbox-wrapper--disabled',\n error && 'eidos-checkbox-wrapper--error',\n ]\n .filter(Boolean)\n .join(' ');\n\n const controlClasses = [\n 'eidos-checkbox-control',\n isChecked && 'eidos-checkbox-control--checked',\n indeterminate && 'eidos-checkbox-control--indeterminate',\n disabled && 'eidos-checkbox-control--disabled',\n error && !disabled && 'eidos-checkbox-control--error',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={['eidos-checkbox-container', className].filter(Boolean).join(' ')}>\n <label className={wrapperClasses}>\n <input\n ref={mergedRef}\n type=\"checkbox\"\n id={checkboxId}\n className=\"eidos-checkbox-input\"\n aria-invalid={error ? true : undefined}\n aria-describedby={error ? errorId : undefined}\n disabled={disabled}\n onChange={handleChange}\n onClick={handleClick}\n {...(isControlled ? { checked } : { defaultChecked })}\n {...inputProps}\n />\n <span className={controlClasses}>\n {isChecked && !indeterminate && <Check className=\"eidos-checkbox-icon\" />}\n {indeterminate && <Minus className=\"eidos-checkbox-icon\" />}\n </span>\n {label && <span className=\"eidos-checkbox-label\">{label}</span>}\n </label>\n\n {error && (\n <div id={errorId} className=\"eidos-checkbox-error-message\">\n <CircleAlert />\n <span>{error}</span>\n </div>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\n"],"mappings":";AAAA,SAAgB,YAAY,OAAO,QAAQ,UAAU,WAAW,mBAAmB;AACnF,SAAS,OAAO,OAAO,mBAAmB;AA6GhC,cAaA,YAbA;AA1GH,IAAM,WAAW;AAAA,EACtB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,cAAc,MAAM;AAC1B,UAAM,aAAa,MAAM,YAAY,WAAW;AAKhD,UAAM,UAAU,GAAG,UAAU;AAG7B,UAAM,cAAc,OAAyB,IAAI;AAKjD,UAAM,eAAe,YAAY;AACjC,UAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,kBAAkB,KAAK;AAGjF,UAAM,YAAY,WAAW;AAG7B,cAAU,MAAM;AACd,UAAI,YAAY,SAAS;AACvB,oBAAY,QAAQ,gBAAgB;AAAA,MACtC;AAAA,IACF,GAAG,CAAC,aAAa,CAAC;AAKlB,UAAM,YAAY;AAAA,MAChB,CAAC,SAAkC;AACjC,oBAAY,UAAU;AACtB,YAAI,OAAO,QAAQ,YAAY;AAC7B,cAAI,IAAI;AAAA,QACV,WAAW,KAAK;AACd,UAAC,IAAwD,UAAU;AAAA,QACrE;AAAA,MACF;AAAA,MACA,CAAC,GAAG;AAAA,IACN;AAEA,UAAM,eAAe,CAAC,MAA2C;AAC/D,UAAI,CAAC,cAAc;AACjB,wBAAgB,EAAE,OAAO,OAAO;AAAA,MAClC;AACA,iBAAW,CAAC;AAAA,IACd;AAYA,UAAM,cAAc,CAAC,MAA0C;AAC7D,gBAAU,CAAC;AACX,QAAE,gBAAgB;AAAA,IACpB;AAEA,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,2BAA2B,KAAK;AAAA,MAChC,2BAA2B,IAAI;AAAA,MAC/B,YAAY;AAAA,MACZ,SAAS;AAAA,IACX,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,SAAS,CAAC,YAAY;AAAA,IACxB,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE,qBAAC,SAAI,WAAW,CAAC,4BAA4B,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC9E;AAAA,2BAAC,WAAM,WAAW,gBAChB;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,KAAK;AAAA,YACL,MAAK;AAAA,YACL,IAAI;AAAA,YACJ,WAAU;AAAA,YACV,gBAAc,QAAQ,OAAO;AAAA,YAC7B,oBAAkB,QAAQ,UAAU;AAAA,YACpC;AAAA,YACA,UAAU;AAAA,YACV,SAAS;AAAA,YACR,GAAI,eAAe,EAAE,QAAQ,IAAI,EAAE,eAAe;AAAA,YAClD,GAAG;AAAA;AAAA,QACN;AAAA,QACA,qBAAC,UAAK,WAAW,gBACd;AAAA,uBAAa,CAAC,iBAAiB,oBAAC,SAAM,WAAU,uBAAsB;AAAA,UACtE,iBAAiB,oBAAC,SAAM,WAAU,uBAAsB;AAAA,WAC3D;AAAA,QACC,SAAS,oBAAC,UAAK,WAAU,wBAAwB,iBAAM;AAAA,SAC1D;AAAA,MAEC,SACC,qBAAC,SAAI,IAAI,SAAS,WAAU,gCAC1B;AAAA,4BAAC,eAAY;AAAA,QACb,oBAAC,UAAM,iBAAM;AAAA,SACf;AAAA,OAEJ;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MenuPanel
3
- } from "./chunk-BNVQ34FD.js";
3
+ } from "./chunk-CP335H4Q.js";
4
4
 
5
5
  // src/components/ContextMenu/ContextMenu.component.tsx
6
6
  import { useState, useEffect, useRef, useCallback } from "react";
@@ -103,4 +103,4 @@ var ContextMenu = ({
103
103
  export {
104
104
  ContextMenu
105
105
  };
106
- //# sourceMappingURL=chunk-OU7DCYIA.js.map
106
+ //# sourceMappingURL=chunk-DMOZURHV.js.map
@@ -11,16 +11,16 @@ import {
11
11
  useSensor,
12
12
  useSensors,
13
13
  useSortable
14
- } from "./chunk-SXGCRHBZ.js";
14
+ } from "./chunk-FDMYDIGI.js";
15
15
  import {
16
16
  SplitButton
17
- } from "./chunk-E7FGY7BJ.js";
17
+ } from "./chunk-FPLX5FIK.js";
18
18
  import {
19
19
  Pagination
20
- } from "./chunk-TQGO5WK6.js";
20
+ } from "./chunk-GPK2THIG.js";
21
21
  import {
22
22
  Checkbox
23
- } from "./chunk-H6CWTMAH.js";
23
+ } from "./chunk-DGXHR6FV.js";
24
24
  import {
25
25
  Spinner
26
26
  } from "./chunk-6ZAT5CGB.js";
@@ -29,13 +29,13 @@ import {
29
29
  } from "./chunk-3TUCQAYL.js";
30
30
  import {
31
31
  Dropdown
32
- } from "./chunk-6CPCNQKV.js";
32
+ } from "./chunk-67EXHO4T.js";
33
33
  import {
34
34
  Button
35
- } from "./chunk-L5Q6UDY3.js";
35
+ } from "./chunk-44T4HMFU.js";
36
36
  import {
37
37
  devWarn
38
- } from "./chunk-EAJHEYZM.js";
38
+ } from "./chunk-WT4WBHBR.js";
39
39
 
40
40
  // src/components/Table/Table.component.tsx
41
41
  import { useState, useMemo, useEffect, useLayoutEffect, useRef, useCallback } from "react";
@@ -918,4 +918,4 @@ var Table = ({
918
918
  export {
919
919
  Table
920
920
  };
921
- //# sourceMappingURL=chunk-L5W2XC6M.js.map
921
+ //# sourceMappingURL=chunk-EWTMX4DK.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  DatePicker
3
- } from "./chunk-MHZIBV2C.js";
3
+ } from "./chunk-IXVM2XNS.js";
4
4
  import {
5
5
  Select
6
- } from "./chunk-7SVDYEKM.js";
6
+ } from "./chunk-TLECMA3B.js";
7
7
  import {
8
8
  Input
9
- } from "./chunk-JRLUZDKA.js";
9
+ } from "./chunk-CEC3GO4R.js";
10
10
  import {
11
11
  Dropdown
12
- } from "./chunk-6CPCNQKV.js";
12
+ } from "./chunk-67EXHO4T.js";
13
13
  import {
14
14
  Badge
15
15
  } from "./chunk-3SKI6FXB.js";
16
16
  import {
17
17
  Button
18
- } from "./chunk-L5Q6UDY3.js";
18
+ } from "./chunk-44T4HMFU.js";
19
19
 
20
20
  // src/components/Table/TableFiltersDropdown.component.tsx
21
21
  import { useMemo, useState, useEffect, useRef } from "react";
@@ -255,6 +255,7 @@ var TableFiltersDropdown = ({
255
255
  value: row.value || "",
256
256
  onChange: (e) => updateFilter(row.id, row.columnKey, e.target.value),
257
257
  placeholder: "Enter value",
258
+ "aria-label": `Filter value${row.columnKey ? ` for ${row.columnKey}` : ""}`,
258
259
  size: "sm",
259
260
  fullWidth: true
260
261
  }
@@ -302,6 +303,7 @@ var TableFiltersDropdown = ({
302
303
  value: "",
303
304
  disabled: true,
304
305
  placeholder: "Select column first",
306
+ "aria-label": "Filter value (choose a column first)",
305
307
  size: "sm",
306
308
  fullWidth: true
307
309
  }
@@ -4433,4 +4435,4 @@ export {
4433
4435
  sortableKeyboardCoordinates,
4434
4436
  TableFiltersDropdown
4435
4437
  };
4436
- //# sourceMappingURL=chunk-SXGCRHBZ.js.map
4438
+ //# sourceMappingURL=chunk-FDMYDIGI.js.map