@tribepad/themis 1.0.1 → 1.0.2

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 (301) hide show
  1. package/dist/elements/Accordion/index.js +1 -335
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +1 -317
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/AlertDialog/AlertDialog.d.ts +43 -0
  6. package/dist/elements/AlertDialog/AlertDialog.d.ts.map +1 -0
  7. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts +15 -0
  8. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts.map +1 -0
  9. package/dist/elements/AlertDialog/AlertDialog.types.d.ts +72 -0
  10. package/dist/elements/AlertDialog/AlertDialog.types.d.ts.map +1 -0
  11. package/dist/elements/AlertDialog/index.d.ts +25 -0
  12. package/dist/elements/AlertDialog/index.d.ts.map +1 -0
  13. package/dist/elements/AlertDialog/index.js +3 -0
  14. package/dist/elements/AlertDialog/index.js.map +1 -0
  15. package/dist/elements/AlertDialog/index.mjs +3 -0
  16. package/dist/elements/AlertDialog/index.mjs.map +1 -0
  17. package/dist/elements/Avatar/index.js +1 -468
  18. package/dist/elements/Avatar/index.js.map +1 -1
  19. package/dist/elements/Avatar/index.mjs +1 -456
  20. package/dist/elements/Avatar/index.mjs.map +1 -1
  21. package/dist/elements/Badge/index.js +1 -243
  22. package/dist/elements/Badge/index.js.map +1 -1
  23. package/dist/elements/Badge/index.mjs +1 -234
  24. package/dist/elements/Badge/index.mjs.map +1 -1
  25. package/dist/elements/Breadcrumbs/index.js +1 -821
  26. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  27. package/dist/elements/Breadcrumbs/index.mjs +1 -810
  28. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  29. package/dist/elements/Button/Button.d.ts +26 -81
  30. package/dist/elements/Button/Button.d.ts.map +1 -1
  31. package/dist/elements/Button/Button.styles.d.ts +35 -0
  32. package/dist/elements/Button/Button.styles.d.ts.map +1 -0
  33. package/dist/elements/Button/Button.types.d.ts +20 -8
  34. package/dist/elements/Button/Button.types.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +1 -288
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/index.mjs +1 -283
  38. package/dist/elements/Button/index.mjs.map +1 -1
  39. package/dist/elements/ButtonGroup/index.js +1 -237
  40. package/dist/elements/ButtonGroup/index.js.map +1 -1
  41. package/dist/elements/ButtonGroup/index.mjs +1 -222
  42. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  43. package/dist/elements/Card/index.js +1 -579
  44. package/dist/elements/Card/index.js.map +1 -1
  45. package/dist/elements/Card/index.mjs +1 -560
  46. package/dist/elements/Card/index.mjs.map +1 -1
  47. package/dist/elements/Carousel/Carousel.d.ts +1 -11
  48. package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
  49. package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
  50. package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
  51. package/dist/elements/Carousel/index.js +1 -789
  52. package/dist/elements/Carousel/index.js.map +1 -1
  53. package/dist/elements/Carousel/index.mjs +1 -786
  54. package/dist/elements/Carousel/index.mjs.map +1 -1
  55. package/dist/elements/Chart/ChartContext.d.ts.map +1 -1
  56. package/dist/elements/Chart/index.js +1 -1842
  57. package/dist/elements/Chart/index.js.map +1 -1
  58. package/dist/elements/Chart/index.mjs +1 -1832
  59. package/dist/elements/Chart/index.mjs.map +1 -1
  60. package/dist/elements/Checkbox/index.js +1 -316
  61. package/dist/elements/Checkbox/index.js.map +1 -1
  62. package/dist/elements/Checkbox/index.mjs +1 -306
  63. package/dist/elements/Checkbox/index.mjs.map +1 -1
  64. package/dist/elements/CheckboxGroup/index.js +1 -455
  65. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  66. package/dist/elements/CheckboxGroup/index.mjs +1 -439
  67. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  68. package/dist/elements/Combobox/Combobox.d.ts +56 -0
  69. package/dist/elements/Combobox/Combobox.d.ts.map +1 -0
  70. package/dist/elements/Combobox/Combobox.styles.d.ts +29 -0
  71. package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -0
  72. package/dist/elements/Combobox/Combobox.types.d.ts +67 -0
  73. package/dist/elements/Combobox/Combobox.types.d.ts.map +1 -0
  74. package/dist/elements/Combobox/index.d.ts +20 -0
  75. package/dist/elements/Combobox/index.d.ts.map +1 -0
  76. package/dist/elements/Combobox/index.js +3 -0
  77. package/dist/elements/Combobox/index.js.map +1 -0
  78. package/dist/elements/Combobox/index.mjs +3 -0
  79. package/dist/elements/Combobox/index.mjs.map +1 -0
  80. package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
  81. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  82. package/dist/elements/DatePicker/index.js +1 -903
  83. package/dist/elements/DatePicker/index.js.map +1 -1
  84. package/dist/elements/DatePicker/index.mjs +1 -853
  85. package/dist/elements/DatePicker/index.mjs.map +1 -1
  86. package/dist/elements/Dropdown/Dropdown.d.ts +7 -15
  87. package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -1
  88. package/dist/elements/Dropdown/Dropdown.styles.d.ts +22 -0
  89. package/dist/elements/Dropdown/Dropdown.styles.d.ts.map +1 -0
  90. package/dist/elements/Dropdown/index.d.ts +1 -0
  91. package/dist/elements/Dropdown/index.d.ts.map +1 -1
  92. package/dist/elements/Dropdown/index.js +1 -193
  93. package/dist/elements/Dropdown/index.js.map +1 -1
  94. package/dist/elements/Dropdown/index.mjs +1 -184
  95. package/dist/elements/Dropdown/index.mjs.map +1 -1
  96. package/dist/elements/FileField/index.js +1 -1539
  97. package/dist/elements/FileField/index.js.map +1 -1
  98. package/dist/elements/FileField/index.mjs +1 -1507
  99. package/dist/elements/FileField/index.mjs.map +1 -1
  100. package/dist/elements/FormLayout/index.js +1 -170
  101. package/dist/elements/FormLayout/index.js.map +1 -1
  102. package/dist/elements/FormLayout/index.mjs +1 -167
  103. package/dist/elements/FormLayout/index.mjs.map +1 -1
  104. package/dist/elements/Modal/Modal.d.ts +9 -14
  105. package/dist/elements/Modal/Modal.d.ts.map +1 -1
  106. package/dist/elements/Modal/Modal.styles.d.ts +29 -0
  107. package/dist/elements/Modal/Modal.styles.d.ts.map +1 -0
  108. package/dist/elements/Modal/index.d.ts +1 -0
  109. package/dist/elements/Modal/index.d.ts.map +1 -1
  110. package/dist/elements/Modal/index.js +1 -232
  111. package/dist/elements/Modal/index.js.map +1 -1
  112. package/dist/elements/Modal/index.mjs +1 -220
  113. package/dist/elements/Modal/index.mjs.map +1 -1
  114. package/dist/elements/NumberField/index.js +1 -666
  115. package/dist/elements/NumberField/index.js.map +1 -1
  116. package/dist/elements/NumberField/index.mjs +1 -654
  117. package/dist/elements/NumberField/index.mjs.map +1 -1
  118. package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -1
  119. package/dist/elements/OTPInput/index.js +1 -734
  120. package/dist/elements/OTPInput/index.js.map +1 -1
  121. package/dist/elements/OTPInput/index.mjs +1 -732
  122. package/dist/elements/OTPInput/index.mjs.map +1 -1
  123. package/dist/elements/Pagination/Pagination.d.ts +45 -0
  124. package/dist/elements/Pagination/Pagination.d.ts.map +1 -0
  125. package/dist/elements/Pagination/Pagination.styles.d.ts +10 -0
  126. package/dist/elements/Pagination/Pagination.styles.d.ts.map +1 -0
  127. package/dist/elements/Pagination/Pagination.types.d.ts +55 -0
  128. package/dist/elements/Pagination/Pagination.types.d.ts.map +1 -0
  129. package/dist/elements/Pagination/index.d.ts +21 -0
  130. package/dist/elements/Pagination/index.d.ts.map +1 -0
  131. package/dist/elements/Pagination/index.js +3 -0
  132. package/dist/elements/Pagination/index.js.map +1 -0
  133. package/dist/elements/Pagination/index.mjs +3 -0
  134. package/dist/elements/Pagination/index.mjs.map +1 -0
  135. package/dist/elements/Panel/index.js +1 -330
  136. package/dist/elements/Panel/index.js.map +1 -1
  137. package/dist/elements/Panel/index.mjs +1 -323
  138. package/dist/elements/Panel/index.mjs.map +1 -1
  139. package/dist/elements/PasswordField/PasswordField.d.ts +27 -0
  140. package/dist/elements/PasswordField/PasswordField.d.ts.map +1 -0
  141. package/dist/elements/PasswordField/PasswordField.styles.d.ts +32 -0
  142. package/dist/elements/PasswordField/PasswordField.styles.d.ts.map +1 -0
  143. package/dist/elements/PasswordField/PasswordField.types.d.ts +100 -0
  144. package/dist/elements/PasswordField/PasswordField.types.d.ts.map +1 -0
  145. package/dist/elements/PasswordField/index.css +2 -0
  146. package/dist/elements/PasswordField/index.css.map +1 -0
  147. package/dist/elements/PasswordField/index.d.ts +20 -0
  148. package/dist/elements/PasswordField/index.d.ts.map +1 -0
  149. package/dist/elements/PasswordField/index.js +3 -0
  150. package/dist/elements/PasswordField/index.js.map +1 -0
  151. package/dist/elements/PasswordField/index.mjs +3 -0
  152. package/dist/elements/PasswordField/index.mjs.map +1 -0
  153. package/dist/elements/Progress/index.js +1 -187
  154. package/dist/elements/Progress/index.js.map +1 -1
  155. package/dist/elements/Progress/index.mjs +1 -181
  156. package/dist/elements/Progress/index.mjs.map +1 -1
  157. package/dist/elements/RadioGroup/index.js +1 -369
  158. package/dist/elements/RadioGroup/index.js.map +1 -1
  159. package/dist/elements/RadioGroup/index.mjs +1 -359
  160. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  161. package/dist/elements/Resizable/index.js +1 -1580
  162. package/dist/elements/Resizable/index.js.map +1 -1
  163. package/dist/elements/Resizable/index.mjs +1 -1566
  164. package/dist/elements/Resizable/index.mjs.map +1 -1
  165. package/dist/elements/SearchField/SearchField.d.ts +27 -0
  166. package/dist/elements/SearchField/SearchField.d.ts.map +1 -0
  167. package/dist/elements/SearchField/SearchField.styles.d.ts +32 -0
  168. package/dist/elements/SearchField/SearchField.styles.d.ts.map +1 -0
  169. package/dist/elements/SearchField/SearchField.types.d.ts +45 -0
  170. package/dist/elements/SearchField/SearchField.types.d.ts.map +1 -0
  171. package/dist/elements/SearchField/index.css +2 -0
  172. package/dist/elements/SearchField/index.css.map +1 -0
  173. package/dist/elements/SearchField/index.d.ts +21 -0
  174. package/dist/elements/SearchField/index.d.ts.map +1 -0
  175. package/dist/elements/SearchField/index.js +3 -0
  176. package/dist/elements/SearchField/index.js.map +1 -0
  177. package/dist/elements/SearchField/index.mjs +3 -0
  178. package/dist/elements/SearchField/index.mjs.map +1 -0
  179. package/dist/elements/Select/Select.d.ts +19 -48
  180. package/dist/elements/Select/Select.d.ts.map +1 -1
  181. package/dist/elements/Select/Select.styles.d.ts +55 -0
  182. package/dist/elements/Select/Select.styles.d.ts.map +1 -0
  183. package/dist/elements/Select/index.js +1 -589
  184. package/dist/elements/Select/index.js.map +1 -1
  185. package/dist/elements/Select/index.mjs +1 -582
  186. package/dist/elements/Select/index.mjs.map +1 -1
  187. package/dist/elements/Skeleton/index.js +1 -82
  188. package/dist/elements/Skeleton/index.js.map +1 -1
  189. package/dist/elements/Skeleton/index.mjs +1 -78
  190. package/dist/elements/Skeleton/index.mjs.map +1 -1
  191. package/dist/elements/Switch/index.js +1 -179
  192. package/dist/elements/Switch/index.js.map +1 -1
  193. package/dist/elements/Switch/index.mjs +1 -173
  194. package/dist/elements/Switch/index.mjs.map +1 -1
  195. package/dist/elements/Table/Table.d.ts +3 -24
  196. package/dist/elements/Table/Table.d.ts.map +1 -1
  197. package/dist/elements/Table/Table.styles.d.ts +24 -0
  198. package/dist/elements/Table/Table.styles.d.ts.map +1 -0
  199. package/dist/elements/Table/index.js +1 -595
  200. package/dist/elements/Table/index.js.map +1 -1
  201. package/dist/elements/Table/index.mjs +1 -578
  202. package/dist/elements/Table/index.mjs.map +1 -1
  203. package/dist/elements/Tabs/index.js +1 -337
  204. package/dist/elements/Tabs/index.js.map +1 -1
  205. package/dist/elements/Tabs/index.mjs +1 -320
  206. package/dist/elements/Tabs/index.mjs.map +1 -1
  207. package/dist/elements/TextField/TextField.d.ts +6 -42
  208. package/dist/elements/TextField/TextField.d.ts.map +1 -1
  209. package/dist/elements/TextField/TextField.hooks.d.ts +63 -0
  210. package/dist/elements/TextField/TextField.hooks.d.ts.map +1 -0
  211. package/dist/elements/TextField/TextField.icons.d.ts +19 -0
  212. package/dist/elements/TextField/TextField.icons.d.ts.map +1 -0
  213. package/dist/elements/TextField/TextField.styles.d.ts +37 -0
  214. package/dist/elements/TextField/TextField.styles.d.ts.map +1 -0
  215. package/dist/elements/TextField/TextField.types.d.ts +3 -0
  216. package/dist/elements/TextField/TextField.types.d.ts.map +1 -1
  217. package/dist/elements/TextField/index.css +1 -22
  218. package/dist/elements/TextField/index.css.map +1 -1
  219. package/dist/elements/TextField/index.js +1 -902
  220. package/dist/elements/TextField/index.js.map +1 -1
  221. package/dist/elements/TextField/index.mjs +1 -882
  222. package/dist/elements/TextField/index.mjs.map +1 -1
  223. package/dist/elements/TimeField/index.js +1 -254
  224. package/dist/elements/TimeField/index.js.map +1 -1
  225. package/dist/elements/TimeField/index.mjs +1 -238
  226. package/dist/elements/TimeField/index.mjs.map +1 -1
  227. package/dist/elements/Toast/Toast.d.ts +0 -22
  228. package/dist/elements/Toast/Toast.d.ts.map +1 -1
  229. package/dist/elements/Toast/index.js +1 -737
  230. package/dist/elements/Toast/index.js.map +1 -1
  231. package/dist/elements/Toast/index.mjs +1 -724
  232. package/dist/elements/Toast/index.mjs.map +1 -1
  233. package/dist/elements/Tooltip/index.js +1 -323
  234. package/dist/elements/Tooltip/index.js.map +1 -1
  235. package/dist/elements/Tooltip/index.mjs +1 -310
  236. package/dist/elements/Tooltip/index.mjs.map +1 -1
  237. package/dist/elements/index.css +1 -22
  238. package/dist/elements/index.css.map +1 -1
  239. package/dist/elements/index.d.ts +13 -1
  240. package/dist/elements/index.d.ts.map +1 -1
  241. package/dist/elements/index.js +1 -12455
  242. package/dist/elements/index.js.map +1 -1
  243. package/dist/elements/index.mjs +1 -12233
  244. package/dist/elements/index.mjs.map +1 -1
  245. package/dist/index.css +1 -22
  246. package/dist/index.css.map +1 -1
  247. package/dist/index.js +2 -12490
  248. package/dist/index.js.map +1 -1
  249. package/dist/index.mjs +2 -12262
  250. package/dist/index.mjs.map +1 -1
  251. package/dist/schemas/index.js +2 -54
  252. package/dist/schemas/index.js.map +1 -1
  253. package/dist/schemas/index.mjs +2 -48
  254. package/dist/schemas/index.mjs.map +1 -1
  255. package/dist/styles/defaults.css +151 -0
  256. package/dist/styles/index.js +1 -166
  257. package/dist/styles/index.js.map +1 -1
  258. package/dist/styles/index.mjs +1 -129
  259. package/dist/styles/index.mjs.map +1 -1
  260. package/dist/utils/index.js +1 -12
  261. package/dist/utils/index.js.map +1 -1
  262. package/dist/utils/index.mjs +1 -10
  263. package/dist/utils/index.mjs.map +1 -1
  264. package/package.json +9 -7
  265. package/src/elements/Accordion/Accordion.stories.tsx +1 -1
  266. package/src/elements/AlertDialog/AlertDialog.stories.tsx +124 -0
  267. package/src/elements/Avatar/Avatar.stories.tsx +1 -1
  268. package/src/elements/Badge/Badge.stories.tsx +1 -1
  269. package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  270. package/src/elements/Button/Button.stories.tsx +1 -1
  271. package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +1 -1
  272. package/src/elements/Card/Card.stories.tsx +1 -1
  273. package/src/elements/Carousel/Carousel.stories.tsx +1 -1
  274. package/src/elements/Chart/Chart.stories.tsx +1 -1
  275. package/src/elements/Checkbox/Checkbox.stories.tsx +1 -1
  276. package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +1 -1
  277. package/src/elements/Combobox/Combobox.stories.tsx +133 -0
  278. package/src/elements/DatePicker/DatePicker.stories.tsx +1 -1
  279. package/src/elements/Dropdown/Dropdown.stories.tsx +1 -1
  280. package/src/elements/FileField/FileField.stories.tsx +1 -1
  281. package/src/elements/FileField/FileProgress.stories.tsx +1 -1
  282. package/src/elements/FormLayout/FormLayout.stories.tsx +1 -1
  283. package/src/elements/Modal/Modal.stories.tsx +1 -1
  284. package/src/elements/NumberField/NumberField.stories.tsx +1 -1
  285. package/src/elements/OTPInput/OTPInput.stories.tsx +1 -1
  286. package/src/elements/Pagination/Pagination.stories.tsx +203 -0
  287. package/src/elements/Panel/Panel.stories.tsx +1 -1
  288. package/src/elements/PasswordField/PasswordField.stories.tsx +167 -0
  289. package/src/elements/Progress/Progress.stories.tsx +1 -1
  290. package/src/elements/RadioGroup/RadioGroup.stories.tsx +1 -1
  291. package/src/elements/Resizable/Resizable.stories.tsx +1 -1
  292. package/src/elements/SearchField/SearchField.stories.tsx +146 -0
  293. package/src/elements/Select/Select.stories.tsx +1 -1
  294. package/src/elements/Skeleton/Skeleton.stories.tsx +1 -1
  295. package/src/elements/Switch/Switch.stories.tsx +1 -1
  296. package/src/elements/Table/Table.stories.tsx +1 -1
  297. package/src/elements/Tabs/Tabs.stories.tsx +1 -1
  298. package/src/elements/TextField/TextField.stories.tsx +1 -1
  299. package/src/elements/TimeField/TimeField.stories.tsx +1 -1
  300. package/src/elements/Toast/Toast.stories.tsx +1 -1
  301. package/src/elements/Tooltip/Tooltip.stories.tsx +1 -1
@@ -1,580 +1,3 @@
1
1
  "use client";
2
- import { forwardRef, createContext, useContext, isValidElement, cloneElement } from 'react';
3
- import { Checkbox as Checkbox$1, Table as Table$1, Column as Column$1, Cell as Cell$1, useTableOptions, TableHeader as TableHeader$1, Collection, TableBody as TableBody$1, Row as Row$1 } from 'react-aria-components';
4
- import { cva } from 'class-variance-authority';
5
- import { clsx } from 'clsx';
6
- import { twMerge } from 'tailwind-merge';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import { ChevronUp, ChevronDown } from 'lucide-react';
9
-
10
- // src/elements/Table/Table.tsx
11
- function cn(...inputs) {
12
- return twMerge(clsx(inputs));
13
- }
14
-
15
- // src/styles/interaction-states.ts
16
- var FOCUS_STYLES = "data-[focus-visible]:ring-2 data-[focus-visible]:ring-[var(--themis-ring)] data-[focus-visible]:ring-offset-2";
17
- var HIGH_CONTRAST_FOCUS = "hc:data-[focus-visible]:outline hc:data-[focus-visible]:outline-4 hc:data-[focus-visible]:outline-offset-2 hc:data-[focus-visible]:outline-foreground";
18
- var checkboxContainerVariants = cva(
19
- [
20
- "group inline-flex items-center gap-2 cursor-pointer",
21
- "transition-colors duration-200",
22
- "rtl:flex-row-reverse",
23
- FOCUS_STYLES,
24
- HIGH_CONTRAST_FOCUS
25
- ].join(" "),
26
- {
27
- variants: {
28
- size: {
29
- sm: "min-h-[44px] text-sm",
30
- default: "min-h-[44px] text-sm",
31
- lg: "min-h-[48px] text-base"
32
- },
33
- isDisabled: {
34
- true: "opacity-50 cursor-not-allowed",
35
- false: ""
36
- }
37
- },
38
- defaultVariants: {
39
- size: "default",
40
- isDisabled: false
41
- }
42
- }
43
- );
44
- var checkboxIndicatorVariants = cva(
45
- "flex-shrink-0 rounded-sm border-2 flex items-center justify-center transition-colors duration-200",
46
- {
47
- variants: {
48
- variant: {
49
- default: [
50
- "border-[var(--border)]",
51
- "data-[selected]:border-[var(--primary)]",
52
- "data-[selected]:bg-[var(--primary)]",
53
- "data-[indeterminate]:border-[var(--primary)]",
54
- "data-[indeterminate]:bg-[var(--primary)]"
55
- ].join(" "),
56
- destructive: [
57
- "border-[var(--border)]",
58
- "data-[selected]:border-[var(--destructive)]",
59
- "data-[selected]:bg-[var(--destructive)]",
60
- "data-[indeterminate]:border-[var(--destructive)]",
61
- "data-[indeterminate]:bg-[var(--destructive)]"
62
- ].join(" ")
63
- },
64
- size: {
65
- sm: "h-4 w-4",
66
- default: "h-5 w-5",
67
- lg: "h-6 w-6"
68
- },
69
- isInvalid: {
70
- true: "border-[var(--destructive)]",
71
- false: ""
72
- }
73
- },
74
- defaultVariants: {
75
- variant: "default",
76
- size: "default",
77
- isInvalid: false
78
- }
79
- }
80
- );
81
- var checkmarkVariants = cva(
82
- [
83
- "transition-transform duration-200",
84
- "[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]",
85
- "motion-reduce:transition-none",
86
- "scale-0 data-[selected]:scale-100 data-[indeterminate]:scale-100"
87
- ].join(" "),
88
- {
89
- variants: {
90
- variant: {
91
- default: "text-[var(--primary-foreground)]",
92
- destructive: "text-[var(--destructive-foreground)]"
93
- },
94
- size: {
95
- sm: "h-3 w-3",
96
- default: "h-3.5 w-3.5",
97
- lg: "h-4 w-4"
98
- }
99
- },
100
- defaultVariants: {
101
- variant: "default",
102
- size: "default"
103
- }
104
- }
105
- );
106
- function CheckmarkIcon({ className, ...props }) {
107
- return /* @__PURE__ */ jsx(
108
- "svg",
109
- {
110
- className,
111
- viewBox: "0 0 24 24",
112
- fill: "none",
113
- stroke: "currentColor",
114
- strokeWidth: 3,
115
- strokeLinecap: "round",
116
- strokeLinejoin: "round",
117
- "aria-hidden": "true",
118
- ...props,
119
- children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
120
- }
121
- );
122
- }
123
- function MinusIcon({ className, ...props }) {
124
- return /* @__PURE__ */ jsx(
125
- "svg",
126
- {
127
- className,
128
- viewBox: "0 0 24 24",
129
- fill: "none",
130
- stroke: "currentColor",
131
- strokeWidth: 3,
132
- strokeLinecap: "round",
133
- strokeLinejoin: "round",
134
- "aria-hidden": "true",
135
- ...props,
136
- children: /* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
137
- }
138
- );
139
- }
140
- var Checkbox = forwardRef(
141
- ({
142
- isSelected,
143
- defaultSelected,
144
- isDisabled,
145
- isReadOnly,
146
- isIndeterminate,
147
- isInvalid = false,
148
- isRequired = false,
149
- onChange,
150
- onFocusChange,
151
- value,
152
- name,
153
- size = "default",
154
- variant = "default",
155
- label,
156
- description,
157
- selectedIcon,
158
- className,
159
- id,
160
- "aria-label": ariaLabel,
161
- "aria-labelledby": ariaLabelledby,
162
- "aria-describedby": ariaDescribedby,
163
- "data-testid": dataTestId,
164
- slot
165
- }, ref) => {
166
- const computedIsDisabled = isDisabled || void 0;
167
- const computedIsReadOnly = isReadOnly || void 0;
168
- const computedIsIndeterminate = isIndeterminate || void 0;
169
- const renderIcon = (isChecked, isIndet) => {
170
- const iconClassName = cn(checkmarkVariants({ variant, size }));
171
- const dataSelected = isChecked || void 0;
172
- const dataIndeterminate = isIndet || void 0;
173
- if (isIndet) {
174
- return /* @__PURE__ */ jsx(
175
- MinusIcon,
176
- {
177
- className: iconClassName,
178
- "data-selected": dataSelected,
179
- "data-indeterminate": dataIndeterminate
180
- }
181
- );
182
- }
183
- if (selectedIcon && isChecked) {
184
- if (isValidElement(selectedIcon)) {
185
- const iconElement = selectedIcon;
186
- return cloneElement(iconElement, {
187
- className: cn(iconClassName, iconElement.props.className),
188
- "data-selected": dataSelected
189
- });
190
- }
191
- return /* @__PURE__ */ jsx("span", { className: iconClassName, "data-selected": dataSelected, children: selectedIcon });
192
- }
193
- return /* @__PURE__ */ jsx(
194
- CheckmarkIcon,
195
- {
196
- className: iconClassName,
197
- "data-selected": dataSelected,
198
- "data-indeterminate": dataIndeterminate
199
- }
200
- );
201
- };
202
- return /* @__PURE__ */ jsx(
203
- Checkbox$1,
204
- {
205
- ref,
206
- id,
207
- isSelected,
208
- defaultSelected,
209
- isDisabled: computedIsDisabled,
210
- isReadOnly: computedIsReadOnly,
211
- isIndeterminate: computedIsIndeterminate,
212
- isInvalid,
213
- isRequired,
214
- onChange,
215
- onFocusChange,
216
- value,
217
- name,
218
- slot,
219
- "aria-label": ariaLabel,
220
- "aria-labelledby": ariaLabelledby,
221
- "aria-describedby": ariaDescribedby,
222
- "data-testid": dataTestId,
223
- className: (renderProps) => cn(
224
- checkboxContainerVariants({
225
- size,
226
- isDisabled: renderProps.isDisabled
227
- }),
228
- className
229
- ),
230
- children: (renderProps) => /* @__PURE__ */ jsxs(Fragment, { children: [
231
- /* @__PURE__ */ jsx(
232
- "div",
233
- {
234
- className: checkboxIndicatorVariants({
235
- variant,
236
- size,
237
- isInvalid: renderProps.isInvalid
238
- }),
239
- "data-selected": renderProps.isSelected || void 0,
240
- "data-indeterminate": renderProps.isIndeterminate || void 0,
241
- children: renderIcon(renderProps.isSelected, renderProps.isIndeterminate)
242
- }
243
- ),
244
- (label || description) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
245
- label && /* @__PURE__ */ jsx("span", { className: "font-medium text-[var(--content-foreground)]", children: label }),
246
- description && /* @__PURE__ */ jsx("span", { className: "text-sm text-[var(--menu-muted)]", children: description })
247
- ] })
248
- ] })
249
- }
250
- );
251
- }
252
- );
253
- Checkbox.displayName = "Checkbox";
254
- var TableContext = createContext({
255
- variant: "default",
256
- size: "default",
257
- selectionMode: "none",
258
- stickyHeader: false
259
- });
260
- var tableContainerVariants = cva(["relative w-full overflow-auto"]);
261
- var tableVariants = cva(
262
- ["w-full caption-bottom text-sm", "border-collapse"],
263
- {
264
- variants: {
265
- variant: {
266
- default: "",
267
- bordered: "border border-[var(--border)] rounded-md",
268
- striped: ""
269
- }
270
- },
271
- defaultVariants: {
272
- variant: "default"
273
- }
274
- }
275
- );
276
- var tableHeaderVariants = cva(["[&_tr]:border-b"], {
277
- variants: {
278
- sticky: {
279
- true: "sticky top-0 z-10 bg-[var(--content-background)]",
280
- false: ""
281
- }
282
- },
283
- defaultVariants: {
284
- sticky: false
285
- }
286
- });
287
- var tableFooterVariants = cva([
288
- "border-t border-[var(--border)]",
289
- "bg-[var(--accent-background)]/50",
290
- "font-medium",
291
- "[&>tr]:last:border-b-0"
292
- ]);
293
- var tableCaptionVariants = cva([
294
- "mt-4 text-sm text-[var(--menu-muted)]"
295
- ]);
296
- var columnVariants = cva(
297
- [
298
- "h-12 px-4 text-left align-middle font-medium",
299
- "text-[var(--menu-muted)]",
300
- "[&:has([role=checkbox])]:pr-0",
301
- "select-none",
302
- "focus-visible:outline-none focus-visible:ring-2",
303
- "focus-visible:ring-[var(--ring)] focus-visible:ring-inset"
304
- ],
305
- {
306
- variants: {
307
- allowsSorting: {
308
- true: "cursor-pointer hover:bg-[var(--accent)]/50",
309
- false: ""
310
- },
311
- align: {
312
- start: "text-start",
313
- center: "text-center",
314
- end: "text-end"
315
- },
316
- size: {
317
- sm: "h-10 px-3 text-xs",
318
- default: "h-12 px-4 text-sm",
319
- lg: "h-14 px-5 text-base"
320
- }
321
- },
322
- defaultVariants: {
323
- allowsSorting: false,
324
- align: "start",
325
- size: "default"
326
- }
327
- }
328
- );
329
- var rowVariants = cva(
330
- [
331
- "border-b border-[var(--border)]",
332
- "transition-colors",
333
- "focus-visible:outline-none focus-visible:ring-2",
334
- "focus-visible:ring-[var(--ring)] focus-visible:ring-inset",
335
- "hover:bg-[var(--accent-background)]/50",
336
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
337
- ],
338
- {
339
- variants: {
340
- isSelected: {
341
- true: "bg-[var(--accent)] data-[selected]:bg-[var(--accent)]",
342
- false: ""
343
- },
344
- variant: {
345
- default: "",
346
- striped: "even:bg-[var(--accent-background)]/30"
347
- }
348
- },
349
- defaultVariants: {
350
- isSelected: false,
351
- variant: "default"
352
- }
353
- }
354
- );
355
- var cellVariants = cva(
356
- ["p-4 align-middle", "[&:has([role=checkbox])]:pr-0"],
357
- {
358
- variants: {
359
- align: {
360
- start: "text-start",
361
- center: "text-center",
362
- end: "text-end"
363
- },
364
- size: {
365
- sm: "p-3 text-xs",
366
- default: "p-4 text-sm",
367
- lg: "p-5 text-base"
368
- },
369
- isRowHeader: {
370
- true: "font-medium",
371
- false: ""
372
- }
373
- },
374
- defaultVariants: {
375
- align: "start",
376
- size: "default",
377
- isRowHeader: false
378
- }
379
- }
380
- );
381
- var Table = forwardRef(
382
- ({
383
- className,
384
- variant = "default",
385
- size = "default",
386
- stickyHeader = false,
387
- selectionMode = "none",
388
- selectionBehavior = "toggle",
389
- disallowEmptySelection = false,
390
- disabledBehavior = "selection",
391
- selectedKeys,
392
- defaultSelectedKeys,
393
- onSelectionChange,
394
- disabledKeys,
395
- sortDescriptor,
396
- onSortChange,
397
- onRowAction,
398
- children,
399
- ...props
400
- }, ref) => {
401
- return /* @__PURE__ */ jsx(TableContext.Provider, { value: { variant, size, selectionMode, stickyHeader }, children: /* @__PURE__ */ jsx(
402
- "div",
403
- {
404
- className: cn(tableContainerVariants(), className),
405
- "data-testid": "table-container",
406
- children: /* @__PURE__ */ jsx(
407
- Table$1,
408
- {
409
- ref,
410
- className: cn(tableVariants({ variant })),
411
- selectionMode,
412
- selectionBehavior,
413
- disallowEmptySelection,
414
- disabledBehavior,
415
- selectedKeys,
416
- defaultSelectedKeys,
417
- onSelectionChange,
418
- disabledKeys,
419
- sortDescriptor,
420
- onSortChange,
421
- onRowAction,
422
- "data-testid": "table",
423
- "data-variant": variant,
424
- "data-size": size,
425
- ...props,
426
- children
427
- }
428
- )
429
- }
430
- ) });
431
- }
432
- );
433
- Table.displayName = "Table";
434
- function TableHeaderInner({ className, children, columns, ...props }, ref) {
435
- const { size, selectionMode, stickyHeader } = useContext(TableContext);
436
- const { allowsDragging } = useTableOptions();
437
- return /* @__PURE__ */ jsxs(
438
- TableHeader$1,
439
- {
440
- ref,
441
- className: cn(tableHeaderVariants({ sticky: stickyHeader }), className),
442
- "data-testid": "table-header",
443
- ...props,
444
- children: [
445
- selectionMode === "multiple" && /* @__PURE__ */ jsx(Column$1, { className: cn(columnVariants({ size }), "w-12"), children: /* @__PURE__ */ jsx(Checkbox, { slot: "selection", "aria-label": "Select all", size }) }),
446
- allowsDragging && /* @__PURE__ */ jsx(Column$1, {}),
447
- columns ? /* @__PURE__ */ jsx(Collection, { items: columns, children }) : children
448
- ]
449
- }
450
- );
451
- }
452
- var TableHeader = forwardRef(TableHeaderInner);
453
- TableHeader.displayName = "TableHeader";
454
- function TableBodyInner({ className, children, items, renderEmptyState, ...props }, ref) {
455
- return /* @__PURE__ */ jsx(
456
- TableBody$1,
457
- {
458
- ref,
459
- className: cn(className),
460
- items,
461
- renderEmptyState: renderEmptyState ? () => /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: 99, className: "text-center p-8", children: renderEmptyState() }) }) : void 0,
462
- "data-testid": "table-body",
463
- ...props,
464
- children
465
- }
466
- );
467
- }
468
- var TableBody = forwardRef(TableBodyInner);
469
- TableBody.displayName = "TableBody";
470
- var TableFooter = forwardRef(
471
- ({ className, children, ...props }, ref) => {
472
- return /* @__PURE__ */ jsx(
473
- "tfoot",
474
- {
475
- ref,
476
- className: cn(tableFooterVariants(), className),
477
- "data-testid": "table-footer",
478
- ...props,
479
- children
480
- }
481
- );
482
- }
483
- );
484
- TableFooter.displayName = "TableFooter";
485
- var TableCaption = forwardRef(
486
- ({ className, children, ...props }, ref) => {
487
- return /* @__PURE__ */ jsx(
488
- "caption",
489
- {
490
- ref,
491
- className: cn(tableCaptionVariants(), className),
492
- "data-testid": "table-caption",
493
- ...props,
494
- children
495
- }
496
- );
497
- }
498
- );
499
- TableCaption.displayName = "TableCaption";
500
- var Column = forwardRef(
501
- ({
502
- className,
503
- children,
504
- isRowHeader = false,
505
- allowsSorting = false,
506
- align = "start",
507
- width,
508
- minWidth,
509
- maxWidth,
510
- ...props
511
- }, ref) => {
512
- const { size } = useContext(TableContext);
513
- return /* @__PURE__ */ jsx(
514
- Column$1,
515
- {
516
- ref,
517
- isRowHeader,
518
- allowsSorting,
519
- width,
520
- minWidth,
521
- maxWidth,
522
- className: cn(columnVariants({ allowsSorting, align, size }), className),
523
- ...props,
524
- children: ({ allowsSorting: canSort, sortDirection }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
525
- /* @__PURE__ */ jsx("span", { children }),
526
- canSort && sortDirection && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", "data-sort-direction": sortDirection, children: sortDirection === "ascending" ? /* @__PURE__ */ jsx(ChevronUp, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4" }) })
527
- ] })
528
- }
529
- );
530
- }
531
- );
532
- Column.displayName = "Column";
533
- function RowInner({ className, children, columns, href, isDisabled, ...props }, ref) {
534
- const { variant, size, selectionMode } = useContext(TableContext);
535
- const { allowsDragging } = useTableOptions();
536
- return /* @__PURE__ */ jsxs(
537
- Row$1,
538
- {
539
- ref,
540
- href,
541
- isDisabled,
542
- className: ({ isSelected, isDisabled: disabled }) => cn(
543
- rowVariants({
544
- isSelected,
545
- variant: variant === "striped" ? "striped" : "default"
546
- }),
547
- disabled && "opacity-50",
548
- className
549
- ),
550
- "data-testid": "table-row",
551
- ...props,
552
- children: [
553
- selectionMode === "multiple" && /* @__PURE__ */ jsx(Cell$1, { className: cn(cellVariants({ size }), "w-12"), children: /* @__PURE__ */ jsx(Checkbox, { slot: "selection", "aria-label": "Select row", size }) }),
554
- allowsDragging && /* @__PURE__ */ jsx(Cell$1, {}),
555
- columns ? /* @__PURE__ */ jsx(Collection, { items: columns, children }) : children
556
- ]
557
- }
558
- );
559
- }
560
- var Row = forwardRef(RowInner);
561
- Row.displayName = "Row";
562
- var Cell = forwardRef(
563
- ({ className, children, align = "start", colSpan: _colSpan, ...props }, ref) => {
564
- const { size } = useContext(TableContext);
565
- return /* @__PURE__ */ jsx(
566
- Cell$1,
567
- {
568
- ref,
569
- className: cn(cellVariants({ align, size }), className),
570
- ...props,
571
- children
572
- }
573
- );
574
- }
575
- );
576
- Cell.displayName = "Cell";
577
-
578
- export { Cell, Column, Row, Table, TableBody, TableCaption, TableFooter, TableHeader, cellVariants, columnVariants, rowVariants, tableCaptionVariants, tableContainerVariants, tableFooterVariants, tableHeaderVariants, tableVariants };
579
- //# sourceMappingURL=index.mjs.map
2
+ import {forwardRef,createContext,useMemo,useContext,memo,isValidElement,cloneElement}from'react';import {Checkbox,Table,Column,Cell,useTableOptions,TableHeader,Collection,TableBody,Row}from'react-aria-components';import {cva}from'class-variance-authority';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {ChevronUp,ChevronDown}from'lucide-react';function n(...a){return twMerge(clsx(a))}var V="data-[focus-visible]:ring-2 data-[focus-visible]:ring-[var(--themis-ring)] data-[focus-visible]:ring-offset-2";var S="hc:data-[focus-visible]:outline hc:data-[focus-visible]:outline-4 hc:data-[focus-visible]:outline-offset-2 hc:data-[focus-visible]:outline-foreground";var J=cva(["group inline-flex items-center gap-2 cursor-pointer","transition-colors duration-200","rtl:flex-row-reverse",V,S].join(" "),{variants:{size:{sm:"min-h-[44px] text-sm",default:"min-h-[44px] text-sm",lg:"min-h-[48px] text-base"},isDisabled:{true:"opacity-50 cursor-not-allowed",false:""}},defaultVariants:{size:"default",isDisabled:false}}),Q=cva("flex-shrink-0 rounded-sm border-2 flex items-center justify-center transition-colors duration-200",{variants:{variant:{default:["border-[var(--border)]","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]","data-[indeterminate]:border-[var(--primary)]","data-[indeterminate]:bg-[var(--primary)]"].join(" "),destructive:["border-[var(--border)]","data-[selected]:border-[var(--destructive)]","data-[selected]:bg-[var(--destructive)]","data-[indeterminate]:border-[var(--destructive)]","data-[indeterminate]:bg-[var(--destructive)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"},isInvalid:{true:"border-[var(--destructive)]",false:""}},defaultVariants:{variant:"default",size:"default",isInvalid:false}}),X=cva(["transition-transform duration-200","[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]","motion-reduce:transition-none","scale-0 data-[selected]:scale-100 data-[indeterminate]:scale-100"].join(" "),{variants:{variant:{default:"text-[var(--primary-foreground)]",destructive:"text-[var(--destructive-foreground)]"},size:{sm:"h-3 w-3",default:"h-3.5 w-3.5",lg:"h-4 w-4"}},defaultVariants:{variant:"default",size:"default"}});function Z({className:a,...e}){return jsx("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...e,children:jsx("polyline",{points:"20 6 9 17 4 12"})})}function ee({className:a,...e}){return jsx("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...e,children:jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}var w=forwardRef(({isSelected:a,defaultSelected:e,isDisabled:t,isReadOnly:o,isIndeterminate:s,isInvalid:i=false,isRequired:l=false,onChange:u,onFocusChange:c,value:x,name:C,size:b="default",variant:p="default",label:h,description:g,selectedIcon:f,className:y,id:I,"aria-label":L,"aria-labelledby":be,"aria-describedby":pe,"data-testid":me,slot:ue},fe)=>{let Te=t||void 0,ve=o||void 0,xe=s||void 0,Ce=(m,U)=>{let R=n(X({variant:p,size:b})),E=m||void 0,Y=U||void 0;if(U)return jsx(ee,{className:R,"data-selected":E,"data-indeterminate":Y});if(f&&m){if(isValidElement(f)){let G=f;return cloneElement(G,{className:n(R,G.props.className),"data-selected":E})}return jsx("span",{className:R,"data-selected":E,children:f})}return jsx(Z,{className:R,"data-selected":E,"data-indeterminate":Y})};return jsx(Checkbox,{ref:fe,id:I,isSelected:a,defaultSelected:e,isDisabled:Te,isReadOnly:ve,isIndeterminate:xe,isInvalid:i,isRequired:l,onChange:u,onFocusChange:c,value:x,name:C,slot:ue,"aria-label":L,"aria-labelledby":be,"aria-describedby":pe,"data-testid":me,className:m=>n(J({size:b,isDisabled:m.isDisabled}),y),children:m=>jsxs(Fragment,{children:[jsx("div",{className:Q({variant:p,size:b,isInvalid:m.isInvalid}),"data-selected":m.isSelected||void 0,"data-indeterminate":m.isIndeterminate||void 0,children:Ce(m.isSelected,m.isIndeterminate)}),(h||g)&&jsxs("div",{className:"flex flex-col",children:[h&&jsx("span",{className:"font-medium text-[var(--content-foreground)]",children:h}),g&&jsx("span",{className:"text-sm text-[var(--menu-muted)]",children:g})]})]})})});w.displayName="Checkbox";var z=cva(["relative w-full overflow-auto"]),B=cva(["w-full caption-bottom text-sm","border-collapse"],{variants:{variant:{default:"",bordered:"border border-[var(--border)] rounded-md",striped:""}},defaultVariants:{variant:"default"}}),D=cva(["[&_tr]:border-b"],{variants:{sticky:{true:"sticky top-0 z-10 bg-[var(--content-background)]",false:""}},defaultVariants:{sticky:false}}),F=cva(["border-t border-[var(--border)]","bg-[var(--accent-background)]/50","font-medium","[&>tr]:last:border-b-0"]),O=cva(["mt-4 text-sm text-[var(--menu-muted)]"]),k=cva(["h-12 px-4 text-left align-middle font-medium","text-[var(--menu-muted)]","[&:has([role=checkbox])]:pr-0","select-none","focus-visible:outline-none focus-visible:ring-2","focus-visible:ring-[var(--ring)] focus-visible:ring-inset"],{variants:{allowsSorting:{true:"cursor-pointer hover:bg-[var(--accent)]/50",false:""},align:{start:"text-start",center:"text-center",end:"text-end"},size:{sm:"h-10 px-3 text-xs",default:"h-12 px-4 text-sm",lg:"h-14 px-5 text-base"}},defaultVariants:{allowsSorting:false,align:"start",size:"default"}}),H=cva(["border-b border-[var(--border)]","transition-colors","focus-visible:outline-none focus-visible:ring-2","focus-visible:ring-[var(--ring)] focus-visible:ring-inset","hover:bg-[var(--accent-background)]/50","data-[disabled]:pointer-events-none data-[disabled]:opacity-50"],{variants:{isSelected:{true:"bg-[var(--accent)] data-[selected]:bg-[var(--accent)]",false:""},variant:{default:"",striped:"even:bg-[var(--accent-background)]/30"}},defaultVariants:{isSelected:false,variant:"default"}}),A=cva(["p-4 align-middle","[&:has([role=checkbox])]:pr-0"],{variants:{align:{start:"text-start",center:"text-center",end:"text-end"},size:{sm:"p-3 text-xs",default:"p-4 text-sm",lg:"p-5 text-base"},isRowHeader:{true:"font-medium",false:""}},defaultVariants:{align:"start",size:"default",isRowHeader:false}});var N=createContext({variant:"default",size:"default",selectionMode:"none",stickyHeader:false}),re=forwardRef(({className:a,variant:e="default",size:t="default",stickyHeader:o=false,selectionMode:s="none",selectionBehavior:i="toggle",disallowEmptySelection:l=false,disabledBehavior:u="selection",selectedKeys:c,defaultSelectedKeys:x,onSelectionChange:C,disabledKeys:b,sortDescriptor:p,onSortChange:h,onRowAction:g,children:f,...y},I)=>{process.env.NODE_ENV!=="production"&&t==="sm"&&s!=="none"&&console.warn('[Table] size="sm" with selectionMode produces rows shorter than the 44px WCAG 2.2 AAA minimum touch target. Use size="default" or size="lg" for accessible interactive tables.');let L=useMemo(()=>({variant:e,size:t,selectionMode:s,stickyHeader:o}),[e,t,s,o]);return jsx(N.Provider,{value:L,children:jsx("div",{className:n(z(),a),"data-testid":"table-container",children:jsx(Table,{ref:I,className:n(B({variant:e})),selectionMode:s,selectionBehavior:i,disallowEmptySelection:l,disabledBehavior:u,selectedKeys:c,defaultSelectedKeys:x,onSelectionChange:C,disabledKeys:b,sortDescriptor:p,onSortChange:h,onRowAction:g,"data-testid":"table","data-variant":e,"data-size":t,...y,children:f})})})});re.displayName="Table";function De({className:a,children:e,columns:t,...o},s){let{size:i,selectionMode:l,stickyHeader:u}=useContext(N),{allowsDragging:c}=useTableOptions();return jsxs(TableHeader,{ref:s,className:n(D({sticky:u}),a),"data-testid":"table-header",...o,children:[l==="multiple"&&jsx(Column,{className:n(k({size:i}),"w-12"),children:jsx(w,{slot:"selection","aria-label":"Select all",size:i})}),c&&jsx(Column,{}),t?jsx(Collection,{items:t,children:e}):e]})}var oe=forwardRef(De);oe.displayName="TableHeader";function Fe({className:a,children:e,items:t,renderEmptyState:o,...s},i){return jsx(TableBody,{ref:i,className:n(a),items:t,renderEmptyState:o?()=>jsx("tr",{children:jsx("td",{colSpan:99,className:"text-center p-8",children:o()})}):void 0,"data-testid":"table-body",...s,children:e})}var se=forwardRef(Fe);se.displayName="TableBody";var ne=forwardRef(({className:a,children:e,...t},o)=>jsx("tfoot",{ref:o,className:n(F(),a),"data-testid":"table-footer",...t,children:e}));ne.displayName="TableFooter";var ie=forwardRef(({className:a,children:e,...t},o)=>jsx("caption",{ref:o,className:n(O(),a),"data-testid":"table-caption",...t,children:e}));ie.displayName="TableCaption";var le=forwardRef(({className:a,children:e,isRowHeader:t=false,allowsSorting:o=false,align:s="start",width:i,minWidth:l,maxWidth:u,...c},x)=>{let{size:C}=useContext(N);return jsx(Column,{ref:x,isRowHeader:t,allowsSorting:o,width:i,minWidth:l,maxWidth:u,className:n(k({allowsSorting:o,align:s,size:C}),a),...c,children:({allowsSorting:b,sortDirection:p})=>jsxs("div",{className:"flex items-center gap-1",children:[jsx("span",{children:e}),b&&p&&jsx("span",{"aria-hidden":"true","data-sort-direction":p,children:p==="ascending"?jsx(ChevronUp,{className:"h-4 w-4"}):jsx(ChevronDown,{className:"h-4 w-4"})})]})})});le.displayName="Column";function Oe({className:a,children:e,columns:t,href:o,isDisabled:s,...i},l){let{variant:u,size:c,selectionMode:x}=useContext(N),{allowsDragging:C}=useTableOptions(),b=u==="striped"?"striped":"default",p=H({isSelected:true,variant:b}),h=H({isSelected:false,variant:b}),g=n(A({size:c}),"w-12");return jsxs(Row,{ref:l,href:o,isDisabled:s,className:({isSelected:f,isDisabled:y})=>n(f?p:h,y&&"opacity-50",a),"data-testid":"table-row",...i,children:[x==="multiple"&&jsx(Cell,{className:g,children:jsx(w,{slot:"selection","aria-label":"Select row",size:c})}),C&&jsx(Cell,{}),t?jsx(Collection,{items:t,children:e}):e]})}var de=forwardRef(Oe);de.displayName="Row";var ce=memo(forwardRef(({className:a,children:e,align:t="start",colSpan:o,...s},i)=>{let{size:l}=useContext(N);return jsx(Cell,{ref:i,className:n(A({align:t,size:l}),a),...s,children:e})}));ce.displayName="Cell";export{ce as Cell,le as Column,de as Row,re as Table,se as TableBody,ie as TableCaption,ne as TableFooter,oe as TableHeader,A as cellVariants,k as columnVariants,H as rowVariants,O as tableCaptionVariants,z as tableContainerVariants,F as tableFooterVariants,D as tableHeaderVariants,B as tableVariants};//# sourceMappingURL=index.mjs.map
580
3
  //# sourceMappingURL=index.mjs.map