@bigbinary/neeto-atoms 1.0.102 → 1.0.104

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 (258) hide show
  1. package/dist/{Avatar-ChF94Ken.js → Avatar-Dg5-X_dH.js} +8 -2
  2. package/dist/Avatar-Dg5-X_dH.js.map +1 -0
  3. package/dist/{Checkbox-DiAngQvO.js → Checkbox-BalUzegZ.js} +26 -7
  4. package/dist/Checkbox-BalUzegZ.js.map +1 -0
  5. package/dist/{DataTable-CwWARMEv.js → DataTable-mxDU-16D.js} +75 -55
  6. package/dist/DataTable-mxDU-16D.js.map +1 -0
  7. package/dist/{DatePicker-Uf_h3ohA.js → DatePicker-BoXx1Wve.js} +13 -4
  8. package/dist/DatePicker-BoXx1Wve.js.map +1 -0
  9. package/dist/{Dialog-D8C0-nEo.js → Dialog-Yw34WDqY.js} +2 -2
  10. package/dist/Dialog-Yw34WDqY.js.map +1 -0
  11. package/dist/{HelpIcon-CbnRiSjn.js → HelpIcon-xh488VXs.js} +11 -3
  12. package/dist/HelpIcon-xh488VXs.js.map +1 -0
  13. package/dist/{Input-CuIurquS.js → Input-W8foyOcS.js} +35 -7
  14. package/dist/Input-W8foyOcS.js.map +1 -0
  15. package/dist/{Label-DjOaTM4Q.js → Label-B-R4PNNq.js} +2 -2
  16. package/dist/{Label-DjOaTM4Q.js.map → Label-B-R4PNNq.js.map} +1 -1
  17. package/dist/{MultiEmailInput-BB334s4C.js → MultiEmailInput-Bzd2dPFC.js} +68 -25
  18. package/dist/MultiEmailInput-Bzd2dPFC.js.map +1 -0
  19. package/dist/{RadioGroup-CpgVdPzz.js → RadioGroup-CBXByAMW.js} +63 -34
  20. package/dist/RadioGroup-CBXByAMW.js.map +1 -0
  21. package/dist/{Select-YWCfd2p1.js → Select-N5Ten-tn.js} +3 -10
  22. package/dist/Select-N5Ten-tn.js.map +1 -0
  23. package/dist/{Slider-Bokg8-oi.js → Slider-CxQdlyHZ.js} +32 -7
  24. package/dist/Slider-CxQdlyHZ.js.map +1 -0
  25. package/dist/{Stepper-DO7EBWYL.js → Stepper-GK8gDn-s.js} +2 -1
  26. package/dist/Stepper-GK8gDn-s.js.map +1 -0
  27. package/dist/{Switch-Am2l2UdV.js → Switch-C9fqpoNR.js} +16 -2
  28. package/dist/Switch-C9fqpoNR.js.map +1 -0
  29. package/dist/{Tabs-ModAabFc.js → Tabs-DaXiF_67.js} +3 -3
  30. package/dist/Tabs-DaXiF_67.js.map +1 -0
  31. package/dist/{Textarea-CMGZZ4rL.js → Textarea-CUe09-sr.js} +34 -7
  32. package/dist/Textarea-CUe09-sr.js.map +1 -0
  33. package/dist/{TimePicker-Ca7iF-a_.js → TimePicker-BixF9wdU.js} +21 -4
  34. package/dist/TimePicker-BixF9wdU.js.map +1 -0
  35. package/dist/{Toastr-Cka6pudu.js → Toastr-CXqmoXjn.js} +9 -2
  36. package/dist/Toastr-CXqmoXjn.js.map +1 -0
  37. package/dist/{TreeSelect-wYDOZ5yD.js → TreeSelect-DMbr7J2H.js} +2 -1
  38. package/dist/TreeSelect-DMbr7J2H.js.map +1 -0
  39. package/dist/cjs/{Avatar-DGuMcBnh.js → Avatar-D2k6WnzD.js} +8 -2
  40. package/dist/cjs/Avatar-D2k6WnzD.js.map +1 -0
  41. package/dist/cjs/{Checkbox-7lX2aMKA.js → Checkbox-83g1FDsc.js} +26 -7
  42. package/dist/cjs/Checkbox-83g1FDsc.js.map +1 -0
  43. package/dist/cjs/{DataTable-ChgPVrRB.js → DataTable-OtA15NKE.js} +75 -55
  44. package/dist/cjs/DataTable-OtA15NKE.js.map +1 -0
  45. package/dist/cjs/{DatePicker-Czp9QLy0.js → DatePicker-DtmJ-VkV.js} +13 -4
  46. package/dist/cjs/DatePicker-DtmJ-VkV.js.map +1 -0
  47. package/dist/cjs/{Dialog-DNv7j7ts.js → Dialog-ZUHGaoAE.js} +2 -2
  48. package/dist/cjs/Dialog-ZUHGaoAE.js.map +1 -0
  49. package/dist/cjs/{HelpIcon-QpZY6Zmc.js → HelpIcon-BF1ePUQf.js} +11 -3
  50. package/dist/cjs/HelpIcon-BF1ePUQf.js.map +1 -0
  51. package/dist/cjs/{Input-lWo0YoZ9.js → Input-DIq7T9D0.js} +35 -7
  52. package/dist/cjs/Input-DIq7T9D0.js.map +1 -0
  53. package/dist/cjs/{Label-D8RFE9hd.js → Label-CpsdGBV8.js} +2 -2
  54. package/dist/cjs/{Label-D8RFE9hd.js.map → Label-CpsdGBV8.js.map} +1 -1
  55. package/dist/cjs/{MultiEmailInput-BlIqzq-o.js → MultiEmailInput-FNRR9b74.js} +68 -25
  56. package/dist/cjs/MultiEmailInput-FNRR9b74.js.map +1 -0
  57. package/dist/cjs/{RadioGroup-DCEw94Dk.js → RadioGroup-B-u8rdbf.js} +63 -34
  58. package/dist/cjs/RadioGroup-B-u8rdbf.js.map +1 -0
  59. package/dist/cjs/{Select-Bs5Fp3wj.js → Select-CGG3J9NS.js} +7 -14
  60. package/dist/cjs/Select-CGG3J9NS.js.map +1 -0
  61. package/dist/cjs/{Slider-CRmd_VMs.js → Slider-DIUSlx_m.js} +32 -7
  62. package/dist/cjs/Slider-DIUSlx_m.js.map +1 -0
  63. package/dist/cjs/{Stepper-BtZG_XmC.js → Stepper-BZBdL6JW.js} +2 -1
  64. package/dist/cjs/Stepper-BZBdL6JW.js.map +1 -0
  65. package/dist/cjs/{Switch-DY7bdiEz.js → Switch-BbRK3HUZ.js} +16 -2
  66. package/dist/cjs/Switch-BbRK3HUZ.js.map +1 -0
  67. package/dist/cjs/{Tabs-CA0QAWp0.js → Tabs-BQl63Ewe.js} +3 -3
  68. package/dist/cjs/Tabs-BQl63Ewe.js.map +1 -0
  69. package/dist/cjs/{Textarea-Cw7Uea82.js → Textarea-bxleSw86.js} +34 -7
  70. package/dist/cjs/Textarea-bxleSw86.js.map +1 -0
  71. package/dist/cjs/{TimePicker-DW7OM3IE.js → TimePicker-lJ2985nh.js} +21 -4
  72. package/dist/cjs/TimePicker-lJ2985nh.js.map +1 -0
  73. package/dist/cjs/{Toastr-E0yLh_MW.js → Toastr-9DXjD-Mq.js} +9 -2
  74. package/dist/cjs/Toastr-9DXjD-Mq.js.map +1 -0
  75. package/dist/cjs/{TreeSelect-C9BSJt1d.js → TreeSelect-3APPRsqr.js} +2 -1
  76. package/dist/cjs/TreeSelect-3APPRsqr.js.map +1 -0
  77. package/dist/cjs/components/Avatar.js +1 -1
  78. package/dist/cjs/components/Checkbox.js +4 -2
  79. package/dist/cjs/components/Checkbox.js.map +1 -1
  80. package/dist/cjs/components/DataTable.js +2 -1
  81. package/dist/cjs/components/DataTable.js.map +1 -1
  82. package/dist/cjs/components/DatePicker.js +4 -2
  83. package/dist/cjs/components/DatePicker.js.map +1 -1
  84. package/dist/cjs/components/Dialog.js +1 -1
  85. package/dist/cjs/components/DropdownMenu.js +3 -1
  86. package/dist/cjs/components/DropdownMenu.js.map +1 -1
  87. package/dist/cjs/components/Input.js +4 -2
  88. package/dist/cjs/components/Input.js.map +1 -1
  89. package/dist/cjs/components/Label.js +2 -2
  90. package/dist/cjs/components/MultiEmailInput.js +4 -2
  91. package/dist/cjs/components/MultiEmailInput.js.map +1 -1
  92. package/dist/cjs/components/RadioGroup.js +4 -2
  93. package/dist/cjs/components/RadioGroup.js.map +1 -1
  94. package/dist/cjs/components/Select.js +4 -3
  95. package/dist/cjs/components/Select.js.map +1 -1
  96. package/dist/cjs/components/Slider.js +4 -2
  97. package/dist/cjs/components/Slider.js.map +1 -1
  98. package/dist/cjs/components/Stepper.js +1 -1
  99. package/dist/cjs/components/Switch.js +4 -2
  100. package/dist/cjs/components/Switch.js.map +1 -1
  101. package/dist/cjs/components/Tabs.js +2 -2
  102. package/dist/cjs/components/Textarea.js +4 -2
  103. package/dist/cjs/components/Textarea.js.map +1 -1
  104. package/dist/cjs/components/TimePicker.js +4 -2
  105. package/dist/cjs/components/TimePicker.js.map +1 -1
  106. package/dist/cjs/components/Toastr.js +1 -1
  107. package/dist/cjs/components/TreeSelect.js +2 -2
  108. package/dist/cjs/components/index.js +21 -20
  109. package/dist/cjs/components/index.js.map +1 -1
  110. package/dist/cjs/fieldIds-DiVU6GVS.js +14 -0
  111. package/dist/cjs/fieldIds-DiVU6GVS.js.map +1 -0
  112. package/dist/cjs/formik/BlockNavigation.js +1 -1
  113. package/dist/cjs/formik/Checkbox.js +4 -2
  114. package/dist/cjs/formik/Checkbox.js.map +1 -1
  115. package/dist/cjs/formik/Input.js +4 -2
  116. package/dist/cjs/formik/Input.js.map +1 -1
  117. package/dist/cjs/formik/MultiEmailInput.js +4 -2
  118. package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
  119. package/dist/cjs/formik/RadioGroup.js +4 -2
  120. package/dist/cjs/formik/RadioGroup.js.map +1 -1
  121. package/dist/cjs/formik/Select.js +4 -3
  122. package/dist/cjs/formik/Select.js.map +1 -1
  123. package/dist/cjs/formik/Slider.js +4 -2
  124. package/dist/cjs/formik/Slider.js.map +1 -1
  125. package/dist/cjs/formik/Switch.js +4 -2
  126. package/dist/cjs/formik/Switch.js.map +1 -1
  127. package/dist/cjs/formik/Textarea.js +4 -2
  128. package/dist/cjs/formik/Textarea.js.map +1 -1
  129. package/dist/cjs/formik/TreeSelect.js +2 -2
  130. package/dist/cjs/formik/index.js +13 -12
  131. package/dist/cjs/formik/index.js.map +1 -1
  132. package/dist/cjs/hyphenize-BTrVNVv3.js +13 -0
  133. package/dist/cjs/hyphenize-BTrVNVv3.js.map +1 -0
  134. package/dist/cjs/index.js +21 -20
  135. package/dist/cjs/index.js.map +1 -1
  136. package/dist/cjs/primitives/Button.js +2 -0
  137. package/dist/cjs/primitives/Button.js.map +1 -1
  138. package/dist/cjs/primitives/Field.js +1 -1
  139. package/dist/cjs/primitives/index.js +1 -1
  140. package/dist/components/Avatar.js +1 -1
  141. package/dist/components/Checkbox/Checkbox.d.ts +2 -0
  142. package/dist/components/Checkbox.js +4 -2
  143. package/dist/components/Checkbox.js.map +1 -1
  144. package/dist/components/DataTable.js +2 -1
  145. package/dist/components/DataTable.js.map +1 -1
  146. package/dist/components/DatePicker/DatePickerField.d.ts +1 -0
  147. package/dist/components/DatePicker/DatePickerTrigger.d.ts +1 -0
  148. package/dist/components/DatePicker/types.d.ts +2 -0
  149. package/dist/components/DatePicker.js +4 -2
  150. package/dist/components/DatePicker.js.map +1 -1
  151. package/dist/components/Dialog.js +1 -1
  152. package/dist/components/DropdownMenu.js +3 -1
  153. package/dist/components/DropdownMenu.js.map +1 -1
  154. package/dist/components/Input/Input.d.ts +2 -0
  155. package/dist/components/Input.js +4 -2
  156. package/dist/components/Input.js.map +1 -1
  157. package/dist/components/Label.js +2 -2
  158. package/dist/components/MultiEmailInput/types.d.ts +2 -0
  159. package/dist/components/MultiEmailInput.js +4 -2
  160. package/dist/components/MultiEmailInput.js.map +1 -1
  161. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -0
  162. package/dist/components/RadioGroup.js +4 -2
  163. package/dist/components/RadioGroup.js.map +1 -1
  164. package/dist/components/Select/hooks/useMultiSelectState.d.ts +1 -1
  165. package/dist/components/Select/hooks/useSelectState.d.ts +1 -1
  166. package/dist/components/Select.js +4 -3
  167. package/dist/components/Select.js.map +1 -1
  168. package/dist/components/Slider/Slider.d.ts +2 -0
  169. package/dist/components/Slider.js +4 -2
  170. package/dist/components/Slider.js.map +1 -1
  171. package/dist/components/Stepper.js +1 -1
  172. package/dist/components/Switch/Switch.d.ts +2 -0
  173. package/dist/components/Switch.js +4 -2
  174. package/dist/components/Switch.js.map +1 -1
  175. package/dist/components/Tabs.js +2 -2
  176. package/dist/components/Textarea/Textarea.d.ts +2 -0
  177. package/dist/components/Textarea.js +4 -2
  178. package/dist/components/Textarea.js.map +1 -1
  179. package/dist/components/TimePicker/types.d.ts +2 -0
  180. package/dist/components/TimePicker.js +4 -2
  181. package/dist/components/TimePicker.js.map +1 -1
  182. package/dist/components/Toastr.js +1 -1
  183. package/dist/components/TreeSelect.js +2 -2
  184. package/dist/components/index.js +21 -20
  185. package/dist/components/index.js.map +1 -1
  186. package/dist/fieldIds-VpluAAMl.js +11 -0
  187. package/dist/fieldIds-VpluAAMl.js.map +1 -0
  188. package/dist/formik/BlockNavigation.js +1 -1
  189. package/dist/formik/Checkbox.js +4 -2
  190. package/dist/formik/Checkbox.js.map +1 -1
  191. package/dist/formik/Input.js +4 -2
  192. package/dist/formik/Input.js.map +1 -1
  193. package/dist/formik/MultiEmailInput.js +4 -2
  194. package/dist/formik/MultiEmailInput.js.map +1 -1
  195. package/dist/formik/RadioGroup.js +4 -2
  196. package/dist/formik/RadioGroup.js.map +1 -1
  197. package/dist/formik/Select.js +4 -3
  198. package/dist/formik/Select.js.map +1 -1
  199. package/dist/formik/Slider.js +4 -2
  200. package/dist/formik/Slider.js.map +1 -1
  201. package/dist/formik/Switch.js +4 -2
  202. package/dist/formik/Switch.js.map +1 -1
  203. package/dist/formik/Textarea.js +4 -2
  204. package/dist/formik/Textarea.js.map +1 -1
  205. package/dist/formik/TreeSelect.js +2 -2
  206. package/dist/formik/index.js +13 -12
  207. package/dist/formik/index.js.map +1 -1
  208. package/dist/hyphenize-TRhMI0tl.js +11 -0
  209. package/dist/hyphenize-TRhMI0tl.js.map +1 -0
  210. package/dist/index.js +21 -20
  211. package/dist/index.js.map +1 -1
  212. package/dist/primitives/Button.js +2 -0
  213. package/dist/primitives/Button.js.map +1 -1
  214. package/dist/primitives/Field.js +1 -1
  215. package/dist/primitives/index.js +1 -1
  216. package/dist/utils/fieldIds.d.ts +1 -1
  217. package/dist/utils/hyphenize.d.ts +1 -1
  218. package/package.json +1 -1
  219. package/dist/Avatar-ChF94Ken.js.map +0 -1
  220. package/dist/Checkbox-DiAngQvO.js.map +0 -1
  221. package/dist/DataTable-CwWARMEv.js.map +0 -1
  222. package/dist/DatePicker-Uf_h3ohA.js.map +0 -1
  223. package/dist/Dialog-D8C0-nEo.js.map +0 -1
  224. package/dist/HelpIcon-CbnRiSjn.js.map +0 -1
  225. package/dist/Input-CuIurquS.js.map +0 -1
  226. package/dist/MultiEmailInput-BB334s4C.js.map +0 -1
  227. package/dist/RadioGroup-CpgVdPzz.js.map +0 -1
  228. package/dist/Select-YWCfd2p1.js.map +0 -1
  229. package/dist/Slider-Bokg8-oi.js.map +0 -1
  230. package/dist/Stepper-DO7EBWYL.js.map +0 -1
  231. package/dist/Switch-Am2l2UdV.js.map +0 -1
  232. package/dist/Tabs-ModAabFc.js.map +0 -1
  233. package/dist/Textarea-CMGZZ4rL.js.map +0 -1
  234. package/dist/TimePicker-Ca7iF-a_.js.map +0 -1
  235. package/dist/Toastr-Cka6pudu.js.map +0 -1
  236. package/dist/TreeSelect-wYDOZ5yD.js.map +0 -1
  237. package/dist/cjs/Avatar-DGuMcBnh.js.map +0 -1
  238. package/dist/cjs/Checkbox-7lX2aMKA.js.map +0 -1
  239. package/dist/cjs/DataTable-ChgPVrRB.js.map +0 -1
  240. package/dist/cjs/DatePicker-Czp9QLy0.js.map +0 -1
  241. package/dist/cjs/Dialog-DNv7j7ts.js.map +0 -1
  242. package/dist/cjs/HelpIcon-QpZY6Zmc.js.map +0 -1
  243. package/dist/cjs/Input-lWo0YoZ9.js.map +0 -1
  244. package/dist/cjs/MultiEmailInput-BlIqzq-o.js.map +0 -1
  245. package/dist/cjs/RadioGroup-DCEw94Dk.js.map +0 -1
  246. package/dist/cjs/Select-Bs5Fp3wj.js.map +0 -1
  247. package/dist/cjs/Slider-CRmd_VMs.js.map +0 -1
  248. package/dist/cjs/Stepper-BtZG_XmC.js.map +0 -1
  249. package/dist/cjs/Switch-DY7bdiEz.js.map +0 -1
  250. package/dist/cjs/Tabs-CA0QAWp0.js.map +0 -1
  251. package/dist/cjs/Textarea-Cw7Uea82.js.map +0 -1
  252. package/dist/cjs/TimePicker-DW7OM3IE.js.map +0 -1
  253. package/dist/cjs/Toastr-E0yLh_MW.js.map +0 -1
  254. package/dist/cjs/TreeSelect-C9BSJt1d.js.map +0 -1
  255. package/dist/cjs/hyphenize-B8IGPzjp.js +0 -8
  256. package/dist/cjs/hyphenize-B8IGPzjp.js.map +0 -1
  257. package/dist/hyphenize-BU4K8zjb.js +0 -6
  258. package/dist/hyphenize-BU4K8zjb.js.map +0 -1
@@ -68,7 +68,13 @@ const Avatar = forwardRef(
68
68
  children: [
69
69
  user?.imageUrl && /* @__PURE__ */ jsx(AvatarImage, { src: user.imageUrl, alt: user?.name ?? "" }),
70
70
  /* @__PURE__ */ jsx(AvatarFallback, { style: getAvatarColorStyle(seed), children: initials }),
71
- status && /* @__PURE__ */ jsx(AvatarBadge, { className: cn(STATUS_COLOR_MAP[status]) })
71
+ status && /* @__PURE__ */ jsx(
72
+ AvatarBadge,
73
+ {
74
+ "data-testid": "indicator",
75
+ className: cn(STATUS_COLOR_MAP[status])
76
+ }
77
+ )
72
78
  ]
73
79
  }
74
80
  );
@@ -90,4 +96,4 @@ const AvatarNamespace = Object.assign(Avatar, {
90
96
  });
91
97
 
92
98
  export { AvatarNamespace as A };
93
- //# sourceMappingURL=Avatar-ChF94Ken.js.map
99
+ //# sourceMappingURL=Avatar-Dg5-X_dH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar-Dg5-X_dH.js","sources":["../src/components/Avatar/constants.ts","../src/components/Avatar/utils.ts","../src/components/Avatar/Avatar.tsx"],"sourcesContent":["export const STATUS_COLOR_MAP: Record<string, string> = {\n online: \"bg-emerald-500 dark:bg-emerald-400\",\n idle: \"bg-amber-500 dark:bg-amber-400\",\n offline: \"bg-gray-400 dark:bg-gray-500\",\n};\n\nexport const SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n auto: \"bottom\",\n};\n\nexport const XL_CLASSES =\n \"data-[size=lg]:size-16 [&>[data-slot=avatar-badge]]:size-4 [&>[data-slot=avatar-fallback]]:text-lg\";\n","import type { CSSProperties } from \"react\";\n\nexport function getInitials(name?: string): string {\n if (!name) return \"\";\n\n return name\n .split(/\\s+/)\n .slice(0, 2)\n .map(word => word.charAt(0).toUpperCase())\n .join(\"\");\n}\n\nfunction cyrb53(str: string, seed = 0): number {\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 =\n Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 =\n Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nexport function getAvatarColorStyle(seed?: string): CSSProperties | undefined {\n if (!seed) return undefined;\n\n const hue = cyrb53(seed) % 360;\n\n return {\n backgroundColor: `oklch(var(--avatar-l) var(--avatar-c) ${hue})`,\n color: \"var(--avatar-fg)\",\n };\n}\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Avatar as PrimitiveAvatar,\n AvatarImage,\n AvatarFallback,\n AvatarBadge,\n AvatarGroup,\n AvatarGroupCount,\n} from \"src/primitives/Avatar\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport { STATUS_COLOR_MAP, SIDE_MAP, XL_CLASSES } from \"./constants\";\nimport { getAvatarColorStyle, getInitials } from \"./utils\";\n\ntype AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\ninterface AvatarTooltipProps {\n /** Tooltip content. Defaults to user.name if showTooltip is true. */\n content?: React.ReactNode;\n /** Tooltip position. */\n position?: string;\n}\n\nexport interface AvatarProps extends Omit<\n React.ComponentProps<typeof PrimitiveAvatar>,\n \"size\"\n> {\n /** User data for the avatar. */\n user?: {\n id?: string | number;\n name?: string;\n email?: string;\n imageUrl?: string;\n };\n /** Status indicator displayed as a colored badge. */\n status?: \"online\" | \"idle\" | \"offline\" | null;\n /** Show the user's name in a tooltip on hover. */\n showTooltip?: boolean;\n /** Tooltip configuration. Overrides showTooltip content. */\n tooltipProps?: AvatarTooltipProps;\n /** Size of the avatar. */\n size?: AvatarSize;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n user,\n status,\n showTooltip = false,\n tooltipProps,\n size = \"default\",\n className,\n ...otherProps\n },\n ref\n ) => {\n const initials = getInitials(user?.name);\n const isXl = size === \"xl\";\n const primitiveSize = isXl ? \"lg\" : size;\n const seed =\n user?.id != null\n ? String(user.id)\n : user?.email?.trim().toLowerCase() || user?.name;\n\n const avatarElement = (\n <PrimitiveAvatar\n ref={ref}\n size={primitiveSize}\n className={cn(isXl && XL_CLASSES, className)}\n data-testid=\"nui-avatar\"\n {...otherProps}\n >\n {user?.imageUrl && (\n <AvatarImage src={user.imageUrl} alt={user?.name ?? \"\"} />\n )}\n <AvatarFallback style={getAvatarColorStyle(seed)}>\n {initials}\n </AvatarFallback>\n {status && (\n <AvatarBadge\n data-testid=\"indicator\"\n className={cn(STATUS_COLOR_MAP[status])}\n />\n )}\n </PrimitiveAvatar>\n );\n\n const tooltipContent =\n tooltipProps?.content ?? (showTooltip ? user?.name : null);\n\n if (tooltipContent) {\n const side = SIDE_MAP[tooltipProps?.position ?? \"auto\"] ?? \"bottom\";\n\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex\">{avatarElement}</span>\n </TooltipTrigger>\n <TooltipContent data-testid=\"tooltip-box\" side={side}>\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return avatarElement;\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nconst AvatarNamespace = Object.assign(Avatar, {\n Group: AvatarGroup,\n GroupCount: AvatarGroupCount,\n});\n\nexport { AvatarNamespace as Avatar };\n"],"names":["PrimitiveAvatar"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { forwardRef, useId } from 'react';
3
3
  import { c as cn } from './utils-BJnb9o5c.js';
4
4
  import { Checkbox as Checkbox$1 } from './primitives/Checkbox.js';
5
+ import { b as buildTestIdPrefix } from './fieldIds-VpluAAMl.js';
5
6
  import { Field, FieldContent, FieldLabel, FieldDescription, FieldError } from './primitives/Field.js';
6
7
 
7
8
  const Checkbox = forwardRef(
@@ -13,12 +14,14 @@ const Checkbox = forwardRef(
13
14
  disabled = false,
14
15
  className,
15
16
  labelProps,
17
+ dataTestId,
16
18
  ...otherProps
17
19
  }, ref) => {
18
20
  const generatedId = useId();
19
21
  const id = otherProps.id ?? generatedId;
20
22
  const errorId = `error_${id}`;
21
23
  const helpTextId = `helpText_${id}`;
24
+ const testIdPrefix = buildTestIdPrefix(dataTestId, label);
22
25
  const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null].filter(Boolean).join(" ") || void 0;
23
26
  const hasField = !!(label || error || helpText);
24
27
  if (!hasField) {
@@ -32,7 +35,7 @@ const Checkbox = forwardRef(
32
35
  "aria-required": required || void 0,
33
36
  "aria-describedby": ariaDescribedBy,
34
37
  className,
35
- "data-testid": "nui-checkbox-container",
38
+ "data-testid": dataTestId ? `${testIdPrefix}-checkbox-input` : "nui-checkbox-container",
36
39
  ...otherProps
37
40
  }
38
41
  );
@@ -55,18 +58,34 @@ const Checkbox = forwardRef(
55
58
  "aria-invalid": !!error || void 0,
56
59
  "aria-required": required || void 0,
57
60
  "aria-describedby": ariaDescribedBy,
61
+ "data-testid": `${testIdPrefix}-checkbox-input`,
58
62
  ...otherProps
59
63
  }
60
64
  ),
61
65
  /* @__PURE__ */ jsxs(FieldContent, { children: [
62
- label && /* @__PURE__ */ jsxs(FieldLabel, { htmlFor: id, ...labelProps, children: [
63
- label,
64
- required && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" })
65
- ] }),
66
+ label && /* @__PURE__ */ jsxs(
67
+ FieldLabel,
68
+ {
69
+ htmlFor: id,
70
+ "data-testid": `${testIdPrefix}-checkbox-label`,
71
+ ...labelProps,
72
+ children: [
73
+ label,
74
+ required && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" })
75
+ ]
76
+ }
77
+ ),
66
78
  helpText && /* @__PURE__ */ jsx(FieldDescription, { id: helpTextId, children: helpText })
67
79
  ] })
68
80
  ] }),
69
- error && /* @__PURE__ */ jsx(FieldError, { "data-testid": "input-error", id: errorId, children: error })
81
+ error && /* @__PURE__ */ jsx(
82
+ FieldError,
83
+ {
84
+ id: errorId,
85
+ "data-testid": `${testIdPrefix}-checkbox-error`,
86
+ children: error
87
+ }
88
+ )
70
89
  ]
71
90
  }
72
91
  );
@@ -75,4 +94,4 @@ const Checkbox = forwardRef(
75
94
  Checkbox.displayName = "Checkbox";
76
95
 
77
96
  export { Checkbox as C };
78
- //# sourceMappingURL=Checkbox-DiAngQvO.js.map
97
+ //# sourceMappingURL=Checkbox-BalUzegZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox-BalUzegZ.js","sources":["../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Checkbox as PrimitiveCheckbox } from \"src/primitives/Checkbox\";\nimport { buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport {\n Field,\n FieldContent,\n FieldLabel,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\nexport interface CheckboxProps extends React.ComponentProps<\n typeof PrimitiveCheckbox\n> {\n /** Text displayed next to the checkbox. */\n label?: string;\n /** Error message displayed below the checkbox. */\n error?: string;\n /** Helper text displayed below the label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n /** Prefix for the field's testid family(checkbox-input, checkbox-label, checkbox-error). Falls back to the hyphenized label. */\n dataTestId?: string;\n}\n\nconst Checkbox = forwardRef<\n React.ComponentRef<typeof PrimitiveCheckbox>,\n CheckboxProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n disabled = false,\n className,\n labelProps,\n dataTestId,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = otherProps.id ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n className={className}\n data-testid={\n dataTestId\n ? `${testIdPrefix}-checkbox-input`\n : \"nui-checkbox-container\"\n }\n {...otherProps}\n />\n );\n }\n\n return (\n <div\n className={cn(\"flex flex-col gap-1\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n data-testid=\"nui-checkbox-container\"\n >\n <Field orientation=\"horizontal\">\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n data-testid={`${testIdPrefix}-checkbox-input`}\n {...otherProps}\n />\n <FieldContent>\n {label && (\n <FieldLabel\n htmlFor={id}\n data-testid={`${testIdPrefix}-checkbox-label`}\n {...labelProps}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n {error && (\n <FieldError\n id={errorId}\n data-testid={`${testIdPrefix}-checkbox-error`}\n >\n {error}\n </FieldError>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"],"names":["PrimitiveCheckbox"],"mappings":"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"}
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import { useState, useCallback, useEffect, useMemo, useRef, useLayoutEffect } from 'react';
4
4
  import { TableRow, TableCell, Table, TableHeader, TableHead, TableBody } from './primitives/Table.js';
5
5
  import { c as cn } from './utils-BJnb9o5c.js';
6
+ import { h as hyphenize } from './hyphenize-TRhMI0tl.js';
6
7
  import { useHistory, useLocation } from 'react-router-dom';
7
8
  import { useTranslation } from 'react-i18next';
8
9
  import { Checkbox } from './primitives/Checkbox.js';
@@ -3863,29 +3864,36 @@ const BulkSelectCallout = ({
3863
3864
  allRowsSelectedMessage,
3864
3865
  clearSelectionButtonLabel
3865
3866
  } = bulkSelectAllRowsProps;
3866
- return /* @__PURE__ */ jsx("div", { className: "mb-2 flex items-center justify-center gap-1 rounded-sm bg-primary/10 px-4 py-1.5 text-sm text-primary", children: isBulkAllSelected ? /* @__PURE__ */ jsxs(Fragment, { children: [
3867
- /* @__PURE__ */ jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }),
3868
- /* @__PURE__ */ jsx(
3869
- Button,
3870
- {
3871
- "data-testid": "clear-selections-button",
3872
- variant: "link",
3873
- onClick: onClearBulkSelection,
3874
- children: clearSelectionButtonLabel ?? "Clear selection"
3875
- }
3876
- )
3877
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3878
- /* @__PURE__ */ jsx("span", { children: selectAllRowMessage }),
3879
- /* @__PURE__ */ jsx(
3880
- Button,
3881
- {
3882
- "data-testid": "select-all-rows-button",
3883
- variant: "link",
3884
- onClick: onBulkSelectAll,
3885
- children: selectAllRowButtonLabel
3886
- }
3887
- )
3888
- ] }) });
3867
+ return /* @__PURE__ */ jsx(
3868
+ "div",
3869
+ {
3870
+ "data-testid": isBulkAllSelected ? "clear-selections-callout" : "select-all-rows-callout",
3871
+ className: "mb-2 flex items-center justify-center gap-1 rounded-sm bg-primary/10 px-4 py-1.5 text-sm text-primary",
3872
+ children: isBulkAllSelected ? /* @__PURE__ */ jsxs(Fragment, { children: [
3873
+ /* @__PURE__ */ jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }),
3874
+ /* @__PURE__ */ jsx(
3875
+ Button,
3876
+ {
3877
+ "data-testid": "clear-selections-button",
3878
+ variant: "link",
3879
+ onClick: onClearBulkSelection,
3880
+ children: clearSelectionButtonLabel ?? "Clear selection"
3881
+ }
3882
+ )
3883
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3884
+ /* @__PURE__ */ jsx("span", { children: selectAllRowMessage }),
3885
+ /* @__PURE__ */ jsx(
3886
+ Button,
3887
+ {
3888
+ "data-testid": "select-all-rows-button",
3889
+ variant: "link",
3890
+ onClick: onBulkSelectAll,
3891
+ children: selectAllRowButtonLabel
3892
+ }
3893
+ )
3894
+ ] })
3895
+ }
3896
+ );
3889
3897
  };
3890
3898
 
3891
3899
  const DataTablePagination = ({
@@ -4114,6 +4122,7 @@ const HeaderDescription = ({
4114
4122
  Info,
4115
4123
  {
4116
4124
  "aria-hidden": "true",
4125
+ "data-testid": "column-info-icon",
4117
4126
  className: "size-4 text-muted-foreground"
4118
4127
  }
4119
4128
  )
@@ -4425,6 +4434,10 @@ const DataTable = ({
4425
4434
  const columnIndexInData = dataHeaders.findIndex(
4426
4435
  (dataHeader) => dataHeader.id === header.id
4427
4436
  );
4437
+ const headerDef = header.column.columnDef.header;
4438
+ const headerTitleTestId = `${hyphenize(
4439
+ typeof headerDef === "string" ? headerDef : void 0
4440
+ )}-header-title`;
4428
4441
  return /* @__PURE__ */ jsxs(
4429
4442
  TableHead,
4430
4443
  {
@@ -4451,37 +4464,44 @@ const DataTable = ({
4451
4464
  header.isPlaceholder ? null : isSelectionCol ? flexRender(
4452
4465
  header.column.columnDef.header,
4453
4466
  header.getContext()
4454
- ) : /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
4455
- /* @__PURE__ */ jsxs("div", { className: "me-auto flex min-w-0 items-center", children: [
4456
- /* @__PURE__ */ jsx("span", { className: "truncate", children: flexRender(
4457
- header.column.columnDef.header,
4458
- header.getContext()
4459
- ) }),
4460
- /* @__PURE__ */ jsx(HeaderDescription, { column: header.column })
4461
- ] }),
4462
- /* @__PURE__ */ jsx(SortIndicator, { column: header.column }),
4463
- showHeaderMenu && !isSelectionCol && /* @__PURE__ */ jsx(
4464
- HeaderCellMenu,
4465
- {
4466
- column: header.column,
4467
- columnIndex: columnIndexInData,
4468
- enableAddColumn,
4469
- enableColumnFreeze,
4470
- isColumnPinned: isColumnPinned(
4471
- header.column.id
4472
- ),
4473
- canMoveLeft: headerIndex > (selectionColumn ? 1 : 0),
4474
- canMoveRight: headerIndex < headerGroup.headers.length - 1,
4475
- onSort: handleSort,
4476
- onHideColumn: onColumnHideProp ? hideColumn : void 0,
4477
- onTogglePin: toggleColumnPin,
4478
- onAddColumn: onColumnAdd,
4479
- onDeleteColumn: onColumnDelete,
4480
- onMoveColumn: onColumnUpdate ? (colId, dir) => moveColumn(colId, dir) : void 0,
4481
- onMoreActionClick
4482
- }
4483
- )
4484
- ] }),
4467
+ ) : /* @__PURE__ */ jsxs(
4468
+ "div",
4469
+ {
4470
+ "data-testid": headerTitleTestId,
4471
+ className: "flex items-center",
4472
+ children: [
4473
+ /* @__PURE__ */ jsxs("div", { className: "me-auto flex min-w-0 items-center", children: [
4474
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: flexRender(
4475
+ header.column.columnDef.header,
4476
+ header.getContext()
4477
+ ) }),
4478
+ /* @__PURE__ */ jsx(HeaderDescription, { column: header.column })
4479
+ ] }),
4480
+ /* @__PURE__ */ jsx(SortIndicator, { column: header.column }),
4481
+ showHeaderMenu && !isSelectionCol && /* @__PURE__ */ jsx(
4482
+ HeaderCellMenu,
4483
+ {
4484
+ column: header.column,
4485
+ columnIndex: columnIndexInData,
4486
+ enableAddColumn,
4487
+ enableColumnFreeze,
4488
+ isColumnPinned: isColumnPinned(
4489
+ header.column.id
4490
+ ),
4491
+ canMoveLeft: headerIndex > (selectionColumn ? 1 : 0),
4492
+ canMoveRight: headerIndex < headerGroup.headers.length - 1,
4493
+ onSort: handleSort,
4494
+ onHideColumn: onColumnHideProp ? hideColumn : void 0,
4495
+ onTogglePin: toggleColumnPin,
4496
+ onAddColumn: onColumnAdd,
4497
+ onDeleteColumn: onColumnDelete,
4498
+ onMoveColumn: onColumnUpdate ? (colId, dir) => moveColumn(colId, dir) : void 0,
4499
+ onMoreActionClick
4500
+ }
4501
+ )
4502
+ ]
4503
+ }
4504
+ ),
4485
4505
  enableColumnResize && /* @__PURE__ */ jsx(
4486
4506
  ResizeHandle,
4487
4507
  {
@@ -4563,4 +4583,4 @@ const DataTable = ({
4563
4583
  };
4564
4584
 
4565
4585
  export { DataTable as D, useColumnPinning as a, useColumnVisibility as b, useTablePagination as c, useTableSelection as d, useTableSort as e, useColumnOrdering as u };
4566
- //# sourceMappingURL=DataTable-CwWARMEv.js.map
4586
+ //# sourceMappingURL=DataTable-mxDU-16D.js.map