@tribepad/themis 1.5.8 → 1.6.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 (233) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/elements/AlertDialog/index.js +1 -1
  3. package/dist/elements/AlertDialog/index.js.map +1 -1
  4. package/dist/elements/AlertDialog/index.mjs +1 -1
  5. package/dist/elements/AlertDialog/index.mjs.map +1 -1
  6. package/dist/elements/Badge/index.js +1 -1
  7. package/dist/elements/Badge/index.js.map +1 -1
  8. package/dist/elements/Badge/index.mjs +1 -1
  9. package/dist/elements/Badge/index.mjs.map +1 -1
  10. package/dist/elements/Breadcrumbs/index.js +1 -1
  11. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  12. package/dist/elements/Breadcrumbs/index.mjs +1 -1
  13. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  14. package/dist/elements/Button/index.js +1 -1
  15. package/dist/elements/Button/index.js.map +1 -1
  16. package/dist/elements/Button/index.mjs +1 -1
  17. package/dist/elements/Button/index.mjs.map +1 -1
  18. package/dist/elements/Card/index.js +1 -1
  19. package/dist/elements/Card/index.js.map +1 -1
  20. package/dist/elements/Card/index.mjs +1 -1
  21. package/dist/elements/Card/index.mjs.map +1 -1
  22. package/dist/elements/Carousel/index.js +1 -1
  23. package/dist/elements/Carousel/index.js.map +1 -1
  24. package/dist/elements/Carousel/index.mjs +1 -1
  25. package/dist/elements/Carousel/index.mjs.map +1 -1
  26. package/dist/elements/Chart/index.js +1 -1
  27. package/dist/elements/Chart/index.js.map +1 -1
  28. package/dist/elements/Chart/index.mjs +1 -1
  29. package/dist/elements/Chart/index.mjs.map +1 -1
  30. package/dist/elements/ChatInterface/index.js +1 -1
  31. package/dist/elements/ChatInterface/index.js.map +1 -1
  32. package/dist/elements/ChatInterface/index.mjs +1 -1
  33. package/dist/elements/ChatInterface/index.mjs.map +1 -1
  34. package/dist/elements/Checkbox/Checkbox.d.ts.map +1 -1
  35. package/dist/elements/Checkbox/index.js +1 -1
  36. package/dist/elements/Checkbox/index.js.map +1 -1
  37. package/dist/elements/Checkbox/index.mjs +1 -1
  38. package/dist/elements/Checkbox/index.mjs.map +1 -1
  39. package/dist/elements/CheckboxGroup/index.js +1 -1
  40. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  41. package/dist/elements/CheckboxGroup/index.mjs +1 -1
  42. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  43. package/dist/elements/ColorPicker/index.js +1 -1
  44. package/dist/elements/ColorPicker/index.js.map +1 -1
  45. package/dist/elements/ColorPicker/index.mjs +1 -1
  46. package/dist/elements/ColorPicker/index.mjs.map +1 -1
  47. package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -1
  48. package/dist/elements/Combobox/index.js +1 -1
  49. package/dist/elements/Combobox/index.js.map +1 -1
  50. package/dist/elements/Combobox/index.mjs +1 -1
  51. package/dist/elements/Combobox/index.mjs.map +1 -1
  52. package/dist/elements/DatePicker/index.js +1 -1
  53. package/dist/elements/DatePicker/index.js.map +1 -1
  54. package/dist/elements/DatePicker/index.mjs +1 -1
  55. package/dist/elements/DatePicker/index.mjs.map +1 -1
  56. package/dist/elements/Dropdown/index.js +1 -1
  57. package/dist/elements/Dropdown/index.js.map +1 -1
  58. package/dist/elements/Dropdown/index.mjs +1 -1
  59. package/dist/elements/Dropdown/index.mjs.map +1 -1
  60. package/dist/elements/FileField/index.js +1 -1
  61. package/dist/elements/FileField/index.js.map +1 -1
  62. package/dist/elements/FileField/index.mjs +1 -1
  63. package/dist/elements/FileField/index.mjs.map +1 -1
  64. package/dist/elements/Filters/AppliedFilters.d.ts +4 -0
  65. package/dist/elements/Filters/AppliedFilters.d.ts.map +1 -0
  66. package/dist/elements/Filters/FilterPopover.d.ts +33 -0
  67. package/dist/elements/Filters/FilterPopover.d.ts.map +1 -0
  68. package/dist/elements/Filters/Filters.d.ts +25 -0
  69. package/dist/elements/Filters/Filters.d.ts.map +1 -0
  70. package/dist/elements/Filters/Filters.styles.d.ts +24 -0
  71. package/dist/elements/Filters/Filters.styles.d.ts.map +1 -0
  72. package/dist/elements/Filters/Filters.types.d.ts +123 -0
  73. package/dist/elements/Filters/Filters.types.d.ts.map +1 -0
  74. package/dist/elements/Filters/FiltersContext.d.ts +36 -0
  75. package/dist/elements/Filters/FiltersContext.d.ts.map +1 -0
  76. package/dist/elements/Filters/index.css +2 -0
  77. package/dist/elements/Filters/index.css.map +1 -0
  78. package/dist/elements/Filters/index.d.ts +26 -0
  79. package/dist/elements/Filters/index.d.ts.map +1 -0
  80. package/dist/elements/Filters/index.js +3 -0
  81. package/dist/elements/Filters/index.js.map +1 -0
  82. package/dist/elements/Filters/index.mjs +3 -0
  83. package/dist/elements/Filters/index.mjs.map +1 -0
  84. package/dist/elements/Modal/Modal.styles.d.ts.map +1 -1
  85. package/dist/elements/Modal/index.js +1 -1
  86. package/dist/elements/Modal/index.js.map +1 -1
  87. package/dist/elements/Modal/index.mjs +1 -1
  88. package/dist/elements/Modal/index.mjs.map +1 -1
  89. package/dist/elements/NumberField/index.js +1 -1
  90. package/dist/elements/NumberField/index.js.map +1 -1
  91. package/dist/elements/NumberField/index.mjs +1 -1
  92. package/dist/elements/NumberField/index.mjs.map +1 -1
  93. package/dist/elements/PageTitle/PageTitle.d.ts.map +1 -1
  94. package/dist/elements/PageTitle/PageTitle.styles.d.ts.map +1 -1
  95. package/dist/elements/PageTitle/index.js +1 -1
  96. package/dist/elements/PageTitle/index.js.map +1 -1
  97. package/dist/elements/PageTitle/index.mjs +1 -1
  98. package/dist/elements/PageTitle/index.mjs.map +1 -1
  99. package/dist/elements/Pagination/index.js +1 -1
  100. package/dist/elements/Pagination/index.js.map +1 -1
  101. package/dist/elements/Pagination/index.mjs +1 -1
  102. package/dist/elements/Pagination/index.mjs.map +1 -1
  103. package/dist/elements/Panel/Panel.d.ts.map +1 -1
  104. package/dist/elements/Panel/index.js +1 -1
  105. package/dist/elements/Panel/index.js.map +1 -1
  106. package/dist/elements/Panel/index.mjs +1 -1
  107. package/dist/elements/Panel/index.mjs.map +1 -1
  108. package/dist/elements/PasswordField/PasswordField.types.d.ts +34 -34
  109. package/dist/elements/PasswordField/index.js +1 -1
  110. package/dist/elements/PasswordField/index.js.map +1 -1
  111. package/dist/elements/PasswordField/index.mjs +1 -1
  112. package/dist/elements/PasswordField/index.mjs.map +1 -1
  113. package/dist/elements/RadioGroup/index.js +1 -1
  114. package/dist/elements/RadioGroup/index.js.map +1 -1
  115. package/dist/elements/RadioGroup/index.mjs +1 -1
  116. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  117. package/dist/elements/RatingScale/RatingScale.styles.d.ts.map +1 -1
  118. package/dist/elements/RatingScale/index.js +1 -1
  119. package/dist/elements/RatingScale/index.js.map +1 -1
  120. package/dist/elements/RatingScale/index.mjs +1 -1
  121. package/dist/elements/RatingScale/index.mjs.map +1 -1
  122. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  123. package/dist/elements/Resizable/index.js +1 -1
  124. package/dist/elements/Resizable/index.js.map +1 -1
  125. package/dist/elements/Resizable/index.mjs +1 -1
  126. package/dist/elements/Resizable/index.mjs.map +1 -1
  127. package/dist/elements/SearchField/index.js +1 -1
  128. package/dist/elements/SearchField/index.js.map +1 -1
  129. package/dist/elements/SearchField/index.mjs +1 -1
  130. package/dist/elements/SearchField/index.mjs.map +1 -1
  131. package/dist/elements/Select/Select.styles.d.ts.map +1 -1
  132. package/dist/elements/Select/index.js +1 -1
  133. package/dist/elements/Select/index.js.map +1 -1
  134. package/dist/elements/Select/index.mjs +1 -1
  135. package/dist/elements/Select/index.mjs.map +1 -1
  136. package/dist/elements/Sidebar/Sidebar.styles.d.ts +34 -3
  137. package/dist/elements/Sidebar/Sidebar.styles.d.ts.map +1 -1
  138. package/dist/elements/Sidebar/Sidebar.types.d.ts +6 -0
  139. package/dist/elements/Sidebar/Sidebar.types.d.ts.map +1 -1
  140. package/dist/elements/Sidebar/SidebarPanel.d.ts.map +1 -1
  141. package/dist/elements/Sidebar/SidebarRail.d.ts.map +1 -1
  142. package/dist/elements/Sidebar/index.js +1 -1
  143. package/dist/elements/Sidebar/index.js.map +1 -1
  144. package/dist/elements/Sidebar/index.mjs +1 -1
  145. package/dist/elements/Sidebar/index.mjs.map +1 -1
  146. package/dist/elements/SituationalJudgement/index.js +1 -1
  147. package/dist/elements/SituationalJudgement/index.js.map +1 -1
  148. package/dist/elements/SituationalJudgement/index.mjs +1 -1
  149. package/dist/elements/SituationalJudgement/index.mjs.map +1 -1
  150. package/dist/elements/Switch/index.js +1 -1
  151. package/dist/elements/Switch/index.js.map +1 -1
  152. package/dist/elements/Switch/index.mjs +1 -1
  153. package/dist/elements/Switch/index.mjs.map +1 -1
  154. package/dist/elements/Table/BulkActionBar.d.ts +5 -0
  155. package/dist/elements/Table/BulkActionBar.d.ts.map +1 -0
  156. package/dist/elements/Table/BulkActionBar.styles.d.ts +17 -0
  157. package/dist/elements/Table/BulkActionBar.styles.d.ts.map +1 -0
  158. package/dist/elements/Table/BulkActionBar.types.d.ts +136 -0
  159. package/dist/elements/Table/BulkActionBar.types.d.ts.map +1 -0
  160. package/dist/elements/Table/Table.d.ts.map +1 -1
  161. package/dist/elements/Table/Table.styles.d.ts +2 -2
  162. package/dist/elements/Table/Table.styles.d.ts.map +1 -1
  163. package/dist/elements/Table/Table.types.d.ts +14 -4
  164. package/dist/elements/Table/Table.types.d.ts.map +1 -1
  165. package/dist/elements/Table/TableCardList.d.ts +25 -0
  166. package/dist/elements/Table/TableCardList.d.ts.map +1 -0
  167. package/dist/elements/Table/TableCardList.styles.d.ts +15 -0
  168. package/dist/elements/Table/TableCardList.styles.d.ts.map +1 -0
  169. package/dist/elements/Table/TableCardList.types.d.ts +48 -0
  170. package/dist/elements/Table/TableCardList.types.d.ts.map +1 -0
  171. package/dist/elements/Table/index.d.ts +9 -0
  172. package/dist/elements/Table/index.d.ts.map +1 -1
  173. package/dist/elements/Table/index.js +1 -1
  174. package/dist/elements/Table/index.js.map +1 -1
  175. package/dist/elements/Table/index.mjs +1 -1
  176. package/dist/elements/Table/index.mjs.map +1 -1
  177. package/dist/elements/Table/resolveSelectedCount.d.ts +20 -0
  178. package/dist/elements/Table/resolveSelectedCount.d.ts.map +1 -0
  179. package/dist/elements/Table/useBulkActionShortcut.d.ts +29 -0
  180. package/dist/elements/Table/useBulkActionShortcut.d.ts.map +1 -0
  181. package/dist/elements/Tabs/Tabs.d.ts.map +1 -1
  182. package/dist/elements/Tabs/index.js +1 -1
  183. package/dist/elements/Tabs/index.js.map +1 -1
  184. package/dist/elements/Tabs/index.mjs +1 -1
  185. package/dist/elements/Tabs/index.mjs.map +1 -1
  186. package/dist/elements/TextField/TextField.types.d.ts +68 -68
  187. package/dist/elements/TextField/index.js +1 -1
  188. package/dist/elements/TextField/index.js.map +1 -1
  189. package/dist/elements/TextField/index.mjs +1 -1
  190. package/dist/elements/TextField/index.mjs.map +1 -1
  191. package/dist/elements/Toast/Toast.d.ts.map +1 -1
  192. package/dist/elements/Toast/index.js +1 -1
  193. package/dist/elements/Toast/index.js.map +1 -1
  194. package/dist/elements/Toast/index.mjs +1 -1
  195. package/dist/elements/Toast/index.mjs.map +1 -1
  196. package/dist/elements/Tooltip/index.js +1 -1
  197. package/dist/elements/Tooltip/index.js.map +1 -1
  198. package/dist/elements/Tooltip/index.mjs +1 -1
  199. package/dist/elements/Tooltip/index.mjs.map +1 -1
  200. package/dist/elements/Wizard/index.js +1 -1
  201. package/dist/elements/Wizard/index.js.map +1 -1
  202. package/dist/elements/Wizard/index.mjs +1 -1
  203. package/dist/elements/Wizard/index.mjs.map +1 -1
  204. package/dist/elements/index.d.ts +4 -1
  205. package/dist/elements/index.d.ts.map +1 -1
  206. package/dist/elements/index.js +1 -1
  207. package/dist/elements/index.js.map +1 -1
  208. package/dist/elements/index.mjs +1 -1
  209. package/dist/elements/index.mjs.map +1 -1
  210. package/dist/hooks/index.d.ts +1 -0
  211. package/dist/hooks/index.d.ts.map +1 -1
  212. package/dist/hooks/index.js +1 -1
  213. package/dist/hooks/index.js.map +1 -1
  214. package/dist/hooks/index.mjs +1 -1
  215. package/dist/hooks/index.mjs.map +1 -1
  216. package/dist/hooks/useContainerNarrow.d.ts +15 -0
  217. package/dist/hooks/useContainerNarrow.d.ts.map +1 -0
  218. package/dist/index.js +2 -2
  219. package/dist/index.js.map +1 -1
  220. package/dist/index.mjs +2 -2
  221. package/dist/index.mjs.map +1 -1
  222. package/dist/styles/defaults.css +15 -0
  223. package/dist/styles/index.js +1 -1
  224. package/dist/styles/index.js.map +1 -1
  225. package/dist/styles/index.mjs +1 -1
  226. package/dist/styles/index.mjs.map +1 -1
  227. package/dist/styles/interaction-states.d.ts +2 -2
  228. package/dist/styles/interaction-states.d.ts.map +1 -1
  229. package/package.json +6 -1
  230. package/src/elements/Filters/Filters.stories.tsx +148 -0
  231. package/src/elements/PageTitle/PageTitle.stories.tsx +15 -19
  232. package/src/elements/Sidebar/Sidebar.stories.tsx +13 -2
  233. package/src/elements/Table/Table.stories.tsx +467 -10
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- 'use strict';var react=require('react'),reactAriaComponents=require('react-aria-components'),classVarianceAuthority=require('class-variance-authority'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),lucideReact=require('lucide-react');function n(...a){return tailwindMerge.twMerge(clsx.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=classVarianceAuthority.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=classVarianceAuthority.cva("flex-shrink-0 rounded-sm border-2 flex items-center justify-center transition-colors duration-200 motion-safe:data-[selected]:selection-pulse",{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-background)]","data-[selected]:bg-[var(--destructive-background)]","data-[indeterminate]:border-[var(--destructive-background)]","data-[indeterminate]:bg-[var(--destructive-background)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"},isInvalid:{true:"border-[var(--destructive-background)]",false:""}},defaultVariants:{variant:"default",size:"default",isInvalid:false}}),X=classVarianceAuthority.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 jsxRuntime.jsx("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...e,children:jsxRuntime.jsx("polyline",{points:"20 6 9 17 4 12"})})}function ee({className:a,...e}){return jsxRuntime.jsx("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...e,children:jsxRuntime.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}var N=react.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 jsxRuntime.jsx(ee,{className:R,"data-selected":E,"data-indeterminate":Y});if(f&&m){if(react.isValidElement(f)){let G=f;return react.cloneElement(G,{className:n(R,G.props.className),"data-selected":E})}return jsxRuntime.jsx("span",{className:R,"data-selected":E,children:f})}return jsxRuntime.jsx(Z,{className:R,"data-selected":E,"data-indeterminate":Y})};return jsxRuntime.jsx(reactAriaComponents.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=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.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)&&jsxRuntime.jsxs("div",{className:"flex flex-col",children:[h&&jsxRuntime.jsx("span",{className:"font-medium text-[var(--content-foreground)]",children:h}),g&&jsxRuntime.jsx("span",{className:"text-sm text-[var(--menu-muted)]",children:g})]})]})})});N.displayName="Checkbox";var z=classVarianceAuthority.cva(["relative w-full overflow-auto"]),B=classVarianceAuthority.cva(["w-full caption-bottom text-sm","border-collapse"],{variants:{variant:{default:"",bordered:"border border-[var(--border)] rounded-md",striped:""}},defaultVariants:{variant:"default"}}),D=classVarianceAuthority.cva(["[&_tr]:border-b"],{variants:{sticky:{true:"sticky top-0 z-10 bg-[var(--content-background)]",false:""}},defaultVariants:{sticky:false}}),F=classVarianceAuthority.cva(["border-t border-[var(--border)]","bg-[var(--accent-background)]/50","font-medium","[&>tr]:last:border-b-0"]),O=classVarianceAuthority.cva(["mt-4 text-sm text-[var(--menu-muted)]"]),k=classVarianceAuthority.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=classVarianceAuthority.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=classVarianceAuthority.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 w=react.createContext({variant:"default",size:"default",selectionMode:"none",stickyHeader:false}),re=react.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=react.useMemo(()=>({variant:e,size:t,selectionMode:s,stickyHeader:o}),[e,t,s,o]);return jsxRuntime.jsx(w.Provider,{value:L,children:jsxRuntime.jsx("div",{className:n(z(),a),"data-testid":"table-container",children:jsxRuntime.jsx(reactAriaComponents.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}=react.useContext(w),{allowsDragging:c}=reactAriaComponents.useTableOptions();return jsxRuntime.jsxs(reactAriaComponents.TableHeader,{ref:s,className:n(D({sticky:u}),a),"data-testid":"table-header",...o,children:[l==="multiple"&&jsxRuntime.jsx(reactAriaComponents.Column,{className:n(k({size:i}),"w-12"),children:jsxRuntime.jsx(N,{slot:"selection","aria-label":"Select all",size:i})}),c&&jsxRuntime.jsx(reactAriaComponents.Column,{}),t?jsxRuntime.jsx(reactAriaComponents.Collection,{items:t,children:e}):e]})}var oe=react.forwardRef(De);oe.displayName="TableHeader";function Fe({className:a,children:e,items:t,renderEmptyState:o,...s},i){return jsxRuntime.jsx(reactAriaComponents.TableBody,{ref:i,className:n(a),items:t,renderEmptyState:o?()=>jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:99,className:"text-center p-8",children:o()})}):void 0,"data-testid":"table-body",...s,children:e})}var se=react.forwardRef(Fe);se.displayName="TableBody";var ne=react.forwardRef(({className:a,children:e,...t},o)=>jsxRuntime.jsx("tfoot",{ref:o,className:n(F(),a),"data-testid":"table-footer",...t,children:e}));ne.displayName="TableFooter";var ie=react.forwardRef(({className:a,children:e,...t},o)=>jsxRuntime.jsx("caption",{ref:o,className:n(O(),a),"data-testid":"table-caption",...t,children:e}));ie.displayName="TableCaption";var le=react.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}=react.useContext(w);return jsxRuntime.jsx(reactAriaComponents.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})=>jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{children:e}),b&&p&&jsxRuntime.jsx("span",{"aria-hidden":"true","data-sort-direction":p,children:p==="ascending"?jsxRuntime.jsx(lucideReact.ChevronUp,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.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}=react.useContext(w),{allowsDragging:C}=reactAriaComponents.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 jsxRuntime.jsxs(reactAriaComponents.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"&&jsxRuntime.jsx(reactAriaComponents.Cell,{className:g,children:jsxRuntime.jsx(N,{slot:"selection","aria-label":"Select row",size:c})}),C&&jsxRuntime.jsx(reactAriaComponents.Cell,{}),t?jsxRuntime.jsx(reactAriaComponents.Collection,{items:t,children:e}):e]})}var de=react.forwardRef(Oe);de.displayName="Row";var ce=react.memo(react.forwardRef(({className:a,children:e,align:t="start",colSpan:o,...s},i)=>{let{size:l}=react.useContext(w);return jsxRuntime.jsx(reactAriaComponents.Cell,{ref:i,className:n(A({align:t,size:l}),a),...s,children:e})}));ce.displayName="Cell";exports.Cell=ce;exports.Column=le;exports.Row=de;exports.Table=re;exports.TableBody=se;exports.TableCaption=ie;exports.TableFooter=ne;exports.TableHeader=oe;exports.cellVariants=A;exports.columnVariants=k;exports.rowVariants=H;exports.tableCaptionVariants=O;exports.tableContainerVariants=z;exports.tableFooterVariants=F;exports.tableHeaderVariants=D;exports.tableVariants=B;//# sourceMappingURL=index.js.map
2
+ 'use strict';var react=require('react'),reactAriaComponents=require('react-aria-components'),classVarianceAuthority=require('class-variance-authority'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),lucideReact=require('lucide-react');function g(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var X="data-[focus-visible]:ring-2 data-[focus-visible]:ring-[var(--themis-ring)] data-[focus-visible]:ring-offset-2",me="data-[pressed]:scale-[0.97]";var K="hc:data-[focus-visible]:outline hc:data-[focus-visible]:outline-4 hc:data-[focus-visible]:outline-offset-2 hc:data-[focus-visible]:outline-foreground",Q="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",J="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var Le=classVarianceAuthority.cva(["group inline-flex items-center gap-2 cursor-pointer","transition-colors duration-200","rtl:flex-row-reverse",X,K].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}}),Oe=classVarianceAuthority.cva("flex-shrink-0 rounded-sm border-2 bg-[var(--content-background)] flex items-center justify-center transition-colors duration-200 motion-safe:data-[selected]:selection-pulse",{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-background)]","data-[selected]:bg-[var(--destructive-background)]","data-[indeterminate]:border-[var(--destructive-background)]","data-[indeterminate]:bg-[var(--destructive-background)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"},isInvalid:{true:"border-[var(--destructive-background)]",false:""}},defaultVariants:{variant:"default",size:"default",isInvalid:false}}),He=classVarianceAuthority.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 De({className:e,...t}){return jsxRuntime.jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...t,children:jsxRuntime.jsx("polyline",{points:"20 6 9 17 4 12"})})}function ze({className:e,...t}){return jsxRuntime.jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...t,children:jsxRuntime.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}var O=react.forwardRef(({isSelected:e,defaultSelected:t,isDisabled:a,isReadOnly:o,isIndeterminate:n,isInvalid:l=false,isRequired:r=false,onChange:i,onFocusChange:s,value:p,name:b,size:u="default",variant:m="default",label:S,description:x,selectedIcon:f,className:E,id:T,"aria-label":v,"aria-labelledby":C,"aria-describedby":I,"data-testid":k,slot:B},V)=>{let c=a||void 0,R=o||void 0,A=n||void 0,P=(d,h)=>{let w=g(He({variant:m,size:u})),G=d||void 0,$=h||void 0;if(h)return jsxRuntime.jsx(ze,{className:w,"data-selected":G,"data-indeterminate":$});if(f&&d){if(react.isValidElement(f)){let Be=f;return react.cloneElement(Be,{className:g(w,Be.props.className),"data-selected":G})}return jsxRuntime.jsx("span",{className:w,"data-selected":G,children:f})}return jsxRuntime.jsx(De,{className:w,"data-selected":G,"data-indeterminate":$})};return jsxRuntime.jsx(reactAriaComponents.Checkbox,{ref:V,id:T,isSelected:e,defaultSelected:t,isDisabled:c,isReadOnly:R,isIndeterminate:A,isInvalid:l,isRequired:r,onChange:i,onFocusChange:s,value:p,name:b,slot:B,"aria-label":v,"aria-labelledby":C,"aria-describedby":I,"data-testid":k,className:d=>g(Le({size:u,isDisabled:d.isDisabled}),E),children:d=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:Oe({variant:m,size:u,isInvalid:d.isInvalid}),"data-selected":d.isSelected||void 0,"data-indeterminate":d.isIndeterminate||void 0,children:P(d.isSelected,d.isIndeterminate)}),(S||x)&&jsxRuntime.jsxs("div",{className:"flex flex-col",children:[S&&jsxRuntime.jsx("span",{className:"font-medium text-[var(--content-foreground)]",children:S}),x&&jsxRuntime.jsx("span",{className:"text-sm text-[var(--menu-muted)]",children:x})]})]})})});O.displayName="Checkbox";var be=classVarianceAuthority.cva(["relative w-full overflow-auto","rounded-lg border border-[var(--border)] bg-[var(--content-background)]"]),xe=classVarianceAuthority.cva(["w-full caption-bottom text-sm","border-collapse"],{variants:{variant:{default:"",bordered:"[&_tr>*+*]:border-l [&_tr>*+*]:border-[var(--border)]"}},defaultVariants:{variant:"default"}}),ve=classVarianceAuthority.cva(["[&_tr]:border-b [&_tr]:border-[var(--border)]"],{variants:{sticky:{true:"sticky top-0 z-10 bg-[var(--content-background)]",false:""}},defaultVariants:{sticky:false}}),ge=classVarianceAuthority.cva(["border-t border-[var(--border)]","bg-[var(--accent-background)]/50","font-medium","[&>tr]:last:border-b-0"]),Se=classVarianceAuthority.cva(["mt-4 text-sm text-[var(--menu-muted)]"]),ee=classVarianceAuthority.cva(["h-12 px-4 text-left align-middle font-semibold","uppercase tracking-wide","bg-[var(--accent-background)] text-[var(--content-foreground)]","[&: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"}}),te=classVarianceAuthority.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(--selected)] data-[selected]:bg-[var(--selected)]",false:""},zebra:{true:"even:bg-[var(--accent-background)]/30",false:""}},defaultVariants:{isSelected:false,zebra:true}}),ae=classVarianceAuthority.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 Y=react.createContext({variant:"default",size:"default",selectionMode:"none",stickyHeader:false,zebra:true}),Fe=react.forwardRef(({className:e,variant:t="default",size:a="default",stickyHeader:o=false,zebra:n=true,toolbar:l,selectionMode:r="none",selectionBehavior:i="toggle",disallowEmptySelection:s=false,disabledBehavior:p="selection",selectedKeys:b,defaultSelectedKeys:u,onSelectionChange:m,disabledKeys:S,sortDescriptor:x,onSortChange:f,onRowAction:E,children:T,...v},C)=>{process.env.NODE_ENV!=="production"&&a==="sm"&&r!=="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 I=react.useMemo(()=>({variant:t,size:a,selectionMode:r,stickyHeader:o,zebra:n}),[t,a,r,o,n]);return jsxRuntime.jsx(Y.Provider,{value:I,children:jsxRuntime.jsxs("div",{className:g(be(),e),"data-testid":"table-container",children:[l,jsxRuntime.jsx(reactAriaComponents.Table,{ref:C,className:g(xe({variant:t})),selectionMode:r,selectionBehavior:i,disallowEmptySelection:s,disabledBehavior:p,selectedKeys:b,defaultSelectedKeys:u,onSelectionChange:m,disabledKeys:S,sortDescriptor:x,onSortChange:f,onRowAction:E,"data-testid":"table","data-variant":t,"data-size":a,"data-zebra":n,...v,children:T})]})})});Fe.displayName="Table";function Ft({className:e,children:t,columns:a,...o},n){let{size:l,selectionMode:r,stickyHeader:i}=react.useContext(Y),{allowsDragging:s}=reactAriaComponents.useTableOptions();return jsxRuntime.jsxs(reactAriaComponents.TableHeader,{ref:n,className:g(ve({sticky:i}),e),"data-testid":"table-header",...o,children:[r==="multiple"&&jsxRuntime.jsx(reactAriaComponents.Column,{className:g(ee({size:l}),"w-12"),children:jsxRuntime.jsx(O,{slot:"selection","aria-label":"Select all",size:l})}),s&&jsxRuntime.jsx(reactAriaComponents.Column,{}),a?jsxRuntime.jsx(reactAriaComponents.Collection,{items:a,children:t}):t]})}var Ue=react.forwardRef(Ft);Ue.displayName="TableHeader";function Ut({className:e,children:t,items:a,renderEmptyState:o,...n},l){return jsxRuntime.jsx(reactAriaComponents.TableBody,{ref:l,className:g(e),items:a,renderEmptyState:o?()=>jsxRuntime.jsx("div",{className:"text-center p-8",children:o()}):void 0,"data-testid":"table-body",...n,children:t})}var je=react.forwardRef(Ut);je.displayName="TableBody";var $e=react.forwardRef(({className:e,children:t,...a},o)=>jsxRuntime.jsx("tfoot",{ref:o,className:g(ge(),e),"data-testid":"table-footer",...a,children:t}));$e.displayName="TableFooter";var Ke=react.forwardRef(({className:e,children:t,...a},o)=>jsxRuntime.jsx("caption",{ref:o,className:g(Se(),e),"data-testid":"table-caption",...a,children:t}));Ke.displayName="TableCaption";var Ye=react.forwardRef(({className:e,children:t,isRowHeader:a=false,allowsSorting:o=false,align:n="start",width:l,minWidth:r,maxWidth:i,...s},p)=>{let{size:b}=react.useContext(Y);return jsxRuntime.jsx(reactAriaComponents.Column,{ref:p,isRowHeader:a,allowsSorting:o,width:l,minWidth:r,maxWidth:i,className:g(ee({allowsSorting:o,align:n,size:b}),e),...s,children:({allowsSorting:u,sortDirection:m})=>jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{children:t}),u&&jsxRuntime.jsx("span",{"aria-hidden":"true","data-sort-direction":m??"none",className:m?"text-[var(--primary-action)]":"opacity-50",children:m==="ascending"?jsxRuntime.jsx(lucideReact.ChevronUp,{className:"h-4 w-4"}):m==="descending"?jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.ChevronsUpDown,{className:"h-4 w-4"})})]})})});Ye.displayName="Column";function jt({className:e,children:t,columns:a,href:o,isDisabled:n,...l},r){let{size:i,selectionMode:s,zebra:p}=react.useContext(Y),{allowsDragging:b}=reactAriaComponents.useTableOptions(),u=te({isSelected:true,zebra:p}),m=te({isSelected:false,zebra:p}),S=g(ae({size:i}),"w-12");return jsxRuntime.jsxs(reactAriaComponents.Row,{ref:r,href:o,isDisabled:n,className:({isSelected:x,isDisabled:f})=>g(x?u:m,f&&"opacity-50",e),"data-testid":"table-row",...l,children:[s==="multiple"&&jsxRuntime.jsx(reactAriaComponents.Cell,{className:S,children:jsxRuntime.jsx(O,{slot:"selection","aria-label":"Select row",size:i})}),b&&jsxRuntime.jsx(reactAriaComponents.Cell,{}),a?jsxRuntime.jsx(reactAriaComponents.Collection,{items:a,children:t}):t]})}var We=react.forwardRef(jt);We.displayName="Row";var Ze=react.memo(react.forwardRef(({className:e,children:t,align:a="start",colSpan:o,...n},l)=>{let{size:r}=react.useContext(Y);return jsxRuntime.jsx(reactAriaComponents.Cell,{ref:l,className:g(ae({align:a,size:r}),e),...n,children:t})}));Ze.displayName="Cell";var ye=classVarianceAuthority.cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),Ee=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-normal ring-offset-background motion-safe:transition-transform motion-safe:duration-200 motion-safe:[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)] motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] hover:-translate-y-1",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] hover:bg-[var(--destructive-background-hover,var(--destructive-background))] motion-safe:hover:btn-warn-shake",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] hover:bg-[var(--secondary-hover,var(--secondary))]",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",link:"text-[var(--text-link)] underline underline-offset-4 hover:bg-[var(--accent)] hover:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-6 text-base",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var Je=react.createContext(null);Je.displayName="ButtonGroupContext";function et(){return react.useContext(Je)}var tt=react.createContext(null);tt.displayName="ButtonGroupItemContext";function at(){return react.useContext(tt)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var rt=classVarianceAuthority.cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var F=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:a,size:o,visualSize:n,fullWidth:l,loading:r=false,loadingText:i="Loading...",shortcut:s,children:p,isDisabled:b,paywall:u=false,paywallRedirect:m,paywallDescription:S,onPress:x,...f},E)=>{let T=react.useId(),v=et(),C=at(),I=a??v?.variant??"default",k=o??v?.size,B=b??v?.isDisabled??false,V=v?.orientation==="vertical",c=l||V,R=C?rt({orientation:v?.orientation??"horizontal",position:C.position}):"",A=n??k??"default";return process.env.NODE_ENV!=="production"&&(A==="dot"||A==="icon")&&!f["aria-label"]&&!p&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:E,isDisabled:B||r||void 0,"aria-disabled":u?true:void 0,"aria-describedby":u?T:void 0,onPress:h=>{if(u){m&&window.open(m,"_blank","noopener,noreferrer");return}x?.(h);},className:g(ye({fullWidth:c,inVerticalGroup:V}),e),...f,children:h=>jsxRuntime.jsxs("span",{className:g(Ee({variant:I,visualSize:A,paywall:u,fullWidth:c}),R,t,me,"",Q,J),"data-pressed":h.isPressed||void 0,children:[r&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:i})]}),!r&&p,u&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),u&&jsxRuntime.jsxs("span",{id:T,className:"sr-only",children:["Premium feature: ",S||"Upgrade required to access this feature"]}),h.isFocusVisible&&s&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:s})]})})}));F.displayName="Button";var ne=classVarianceAuthority.cva(["flex items-center justify-between gap-3 flex-wrap","px-4 py-2.5","bg-[var(--selected)]"],{variants:{sticky:{true:"sticky top-0 z-[6]",false:""},framed:{true:"rounded-lg border border-[var(--border)]",false:"border-b border-[var(--border)]"}},defaultVariants:{sticky:true,framed:false}}),se=classVarianceAuthority.cva(["flex items-center gap-3 flex-wrap w-full justify-between"]),ie=classVarianceAuthority.cva(["text-sm text-[var(--content-muted)] inline-flex items-center gap-1.5"]),ot=classVarianceAuthority.cva(["inline-flex items-center justify-center","min-w-[1.5rem] h-6 px-1.5 rounded","border border-[var(--primary)]/40 bg-[var(--content-background)]","font-mono text-xs font-semibold text-[var(--primary-action)]"]),nt=classVarianceAuthority.cva(["text-[var(--primary-action)] border-[var(--primary)]/30","hover:bg-[var(--content-background)]"]);function ra(e,t){typeof e=="function"?e(t):e&&(e.current=t);}var st=react.forwardRef(({selectedCount:e,actions:t,onAction:a,onClearSelection:o,sticky:n=true,framed:l=false,showJumpHint:r=false,shortcutKey:i="A",labels:s,className:p,"data-testid":b="bulk-action-bar"},u)=>{let m=react.useRef(null),S=react.useRef(e),x=react.useRef([]),[f,E]=react.useState(0),T=t.length+1,v=Math.min(f,T-1),C=c=>{let R=(c+T)%T;E(R),x.current[R]?.focus();},I=c=>{switch(c.key){case "ArrowRight":case "ArrowDown":c.preventDefault(),C(v+1);break;case "ArrowLeft":case "ArrowUp":c.preventDefault(),C(v-1);break;case "Home":c.preventDefault(),C(0);break;case "End":c.preventDefault(),C(T-1);break;}};react.useEffect(()=>{let c=S.current;if(S.current=e,c>0&&e===0){let R=document.activeElement;(!R||R===document.body)&&m.current?.focus();}},[e]);let k=e>0,B=r&&!!s.jumpHint,V="";if(k){let c=[s.selectedCount(e)];s.actionsAvailable&&c.push(s.actionsAvailable(t.length)),r&&s.jumpAnnouncement&&c.push(s.jumpAnnouncement),V=c.join(". ");}return jsxRuntime.jsxs("div",{ref:c=>{m.current=c,ra(u,c);},tabIndex:-1,className:g("outline-none",p),"data-testid":b,children:[jsxRuntime.jsx("div",{className:"sr-only",role:"status","aria-live":"polite",children:V}),k&&jsxRuntime.jsx("div",{className:ne({sticky:n,framed:l}),children:jsxRuntime.jsxs("div",{role:"toolbar","aria-label":s.toolbarLabel(e),"aria-orientation":"horizontal",onKeyDown:I,className:se(),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[jsxRuntime.jsx("span",{className:"text-sm font-bold text-[var(--content-foreground)]",children:s.selectedCount(e)}),jsxRuntime.jsx(F,{ref:c=>{x.current[0]=c;},variant:"link",excludeFromTabOrder:v!==0,onFocus:()=>E(0),onPress:o,children:s.clear}),B&&s.jumpHint&&jsxRuntime.jsx("span",{"aria-hidden":"true",className:ie(),children:s.jumpHint(jsxRuntime.jsx("kbd",{className:ot(),children:i}))})]}),jsxRuntime.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:t.map((c,R)=>{let A=R+1;return jsxRuntime.jsxs(F,{ref:P=>{x.current[A]=P;},variant:c.tone==="danger"?"destructive":"outline",buttonVisualClassName:c.tone==="danger"?void 0:nt(),isDisabled:c.isDisabled,excludeFromTabOrder:v!==A,onFocus:()=>E(A),onPress:()=>a(c.id),children:[c.icon!=null&&jsxRuntime.jsx("span",{"aria-hidden":"true",className:"inline-flex",children:c.icon}),c.label]},c.id)})})]})})]})});st.displayName="BulkActionBar";function oa(e,t){if(e==="all"){let a=0;for(let o of t)a+=1;return a}return e.size}var sa=new Set(["text","search","email","url","tel","number","password"]);function ia(e){if(!(e instanceof HTMLElement))return false;if(e.isContentEditable||e.closest('[contenteditable=""],[contenteditable="true"]'))return true;let t=e.tagName;if(t==="TEXTAREA"||t==="SELECT"||t==="INPUT"&&sa.has(e.type))return true;let a=e.getAttribute("role");return a==="textbox"||a==="searchbox"||a==="combobox"}function la({scopeRef:e,toolbarRef:t,key:a="a",disabled:o=false}){react.useEffect(()=>{if(o)return;let n=e.current;if(!n)return;let l=r=>{if(r.metaKey||r.ctrlKey||r.altKey||r.key.toLowerCase()!==a.toLowerCase()||ia(r.target))return;let i=t.current;if(!i)return;let s=i.querySelector('[tabindex="0"]')??i.querySelector("button:not([disabled])");s&&(r.preventDefault(),s.focus());};return n.addEventListener("keydown",l),()=>n.removeEventListener("keydown",l)},[e,t,a,o]);}var ce={sm:"h-9",default:"h-10",lg:"h-11"},M={sm:`${ce.sm} px-2 text-xs`,default:`${ce.default} px-3 text-sm`,lg:`${ce.lg} px-4 text-base`},Ie="min-h-[44px] flex items-center";var it=classVarianceAuthority.cva(["flex","w-full","items-center","justify-between","gap-2","rounded-md","border","bg-[var(--content-background)]","text-[var(--content-foreground)]","transition-colors","duration-200","outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2","hover:bg-[var(--accent)]/10","disabled:cursor-not-allowed","disabled:opacity-50","data-[loading=true]:cursor-wait","truncate"],{variants:{size:{sm:`${M.sm} pr-1`,default:`${M.default} pr-1.5`,lg:`${M.lg} pr-2`},isInvalid:{true:"border-[var(--destructive-background)]",false:"border-[var(--input-border)] hover:border-[var(--input-border)]/80"}},defaultVariants:{size:"default",isInvalid:false}}),lt=classVarianceAuthority.cva(["relative","flex","w-full","cursor-pointer","select-none","items-center","rounded-sm","outline-none","transition-colors","pl-8","pr-2","hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]","focus:bg-[var(--accent)]","focus:text-[var(--accent-foreground)]","data-[selected=true]:bg-[var(--accent)]","data-[selected=true]:text-[var(--accent-foreground)]","data-[disabled=true]:pointer-events-none","data-[disabled=true]:opacity-50","data-[disabled=true]:text-[var(--menu-muted)]"],{variants:{size:{sm:`${M.sm} py-1`,default:`${M.default} py-2`,lg:`${M.lg} py-3`}},defaultVariants:{size:"default"}}),ct=classVarianceAuthority.cva(["z-50","w-[--trigger-width]","rounded-md","border","border-[var(--menu-border)]","bg-[var(--menu-background)]","text-[var(--menu-foreground)]","outline-none","overflow-auto","data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:zoom-in-95","data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:zoom-out-95"],{variants:{size:{sm:"max-h-[200px] p-1",default:"max-h-[300px] p-1",lg:"max-h-[400px] p-1"}},defaultVariants:{size:"default"}}),dt=classVarianceAuthority.cva(["px-2","py-1.5","text-xs","font-semibold","text-[var(--menu-muted)]","uppercase","tracking-wider"],{variants:{size:{sm:"px-2 py-1 text-[10px]",default:"px-2 py-1 text-xs",lg:"px-2 py-1.5 text-xs"}},defaultVariants:{size:"default"}}),ut=classVarianceAuthority.cva(["flex","items-center","gap-1.5","text-sm","font-medium","text-[var(--destructive-background)]","mt-1"],{variants:{size:{sm:"text-xs mt-1",default:"text-sm mt-1",lg:"text-base mt-1"}},defaultVariants:{size:"default"}});var Ca=Array.from({length:3}).map((e,t)=>jsxRuntime.jsx("div",{className:"h-11 px-4 py-2",children:jsxRuntime.jsx("div",{className:"h-4 bg-[var(--accent-background)] rounded animate-pulse"})},`skeleton-${t}`));function bt({ariaSelectProps:e,triggerContent:t,triggerRef:a,label:o,description:n,isRequired:l,isDisabled:r,isLoading:i,errorMessage:s,size:p,emptyStateMessage:b,childCount:u,children:m}){let S=react.useId(),x=react.useId(),f=react.useId(),E=!!s;return jsxRuntime.jsxs(reactAriaComponents.Select,{...e,isInvalid:E,children:[jsxRuntime.jsxs(reactAriaComponents.Label,{id:S,className:"text-sm font-medium text-[var(--content-foreground)]",children:[o,l&&jsxRuntime.jsx("span",{className:"text-[var(--destructive-background)] ml-1",children:"*"})]}),n&&jsxRuntime.jsx(reactAriaComponents.Text,{id:x,slot:"description",className:"text-sm text-[var(--menu-muted)] mt-1",children:n}),jsxRuntime.jsx("div",{className:Ie,children:jsxRuntime.jsxs(reactAriaComponents.Button,{ref:a,className:it({size:p,isInvalid:E}),"aria-labelledby":S,"aria-describedby":n?x:s?f:void 0,"data-loading":i,...l&&{"aria-required":"true"},...i&&{"aria-busy":"true"},...(r||i)&&{"aria-disabled":"true"},children:[t,i?jsxRuntime.jsx(lucideReact.Loader2,{className:"ml-auto h-4 w-4 shrink-0 animate-spin text-[var(--menu-muted)]","aria-hidden":"true"}):jsxRuntime.jsx(lucideReact.ChevronDown,{className:"ml-auto h-4 w-4 shrink-0 text-[var(--menu-muted)]","aria-hidden":"true"})]})}),jsxRuntime.jsx(reactAriaComponents.FieldError,{id:f,className:ut({size:p}),children:({validationErrors:T})=>{let v=s||T.join(" ");return v?jsxRuntime.jsx(jsxRuntime.Fragment,{children:v}):null}}),jsxRuntime.jsx(reactAriaComponents.Popover,{className:ct({size:p}),children:jsxRuntime.jsxs(reactAriaComponents.ListBox,{className:"outline-none",children:[i&&u>0&&Ca,!i&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[m,u===0&&jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{id:"__empty__",textValue:"empty",isDisabled:true,className:"py-6 text-center text-sm text-[var(--menu-muted)] cursor-default pointer-events-none",children:jsxRuntime.jsx("span",{role:"status",children:b||"No options available"})})]})]})})]})}var xt=react.forwardRef(({label:e,placeholder:t,description:a,value:o,defaultValue:n,isOpen:l,isDisabled:r=false,isRequired:i=false,disabledKeys:s,validate:p,validationBehavior:b="aria",errorMessage:u,isLoading:m=false,emptyStateMessage:S,name:x,size:f="default",onChange:E,onOpenChange:T,className:v,children:C,...I},k)=>{let B=react.Children.count(C);return B>1e3&&console.warn("Select has >1000 items. Consider using Autocomplete component for better performance."),jsxRuntime.jsx(bt,{ariaSelectProps:{value:o,defaultValue:n,onChange:V=>{E&&E(V);},placeholder:t,disabledKeys:s,isOpen:l,onOpenChange:T,isDisabled:r||m,isRequired:i,name:x,validate:p,validationBehavior:b,className:v,...I},triggerContent:jsxRuntime.jsx(reactAriaComponents.SelectValue,{className:"flex-1 text-left truncate"}),triggerRef:k,label:e,description:a,isRequired:i,isDisabled:r,isLoading:m,errorMessage:u,size:f,emptyStateMessage:S,childCount:B,children:C})});xt.displayName="Select";var vt=react.forwardRef(({label:e,placeholder:t,description:a,value:o,defaultValue:n,selectionMode:l="multiple",isOpen:r,isDisabled:i=false,isRequired:s=false,disabledKeys:p,validate:b,validationBehavior:u="aria",errorMessage:m,isLoading:S=false,emptyStateMessage:x,name:f,size:E="default",onChange:T,onOpenChange:v,className:C,children:I,...k},B)=>{let V=react.Children.count(I);V>1e3&&console.warn("Select has >1000 items. Consider using Autocomplete component for better performance.");let c=react.useMemo(()=>{let A=new Map,P=d=>{react.Children.forEach(d,h=>{if(react.isValidElement(h)){let w=h;if(w.type===de||w.props?.value){let G=w.props.value,$=w.props.children;G&&typeof $=="string"&&A.set(G,$);}w.props?.children&&P(w.props.children);}});};return P(I),A},[I]),R=react.useMemo(()=>!o||!Array.isArray(o)||o.length===0?t||"":o.length<=2?o.map(P=>c.get(P)||P).join(", "):`${o.length} items selected`,[o,c,t]);return jsxRuntime.jsx(bt,{ariaSelectProps:{value:o,defaultValue:n,onChange:A=>{T&&T(A);},selectionMode:"multiple",disabledKeys:p,isOpen:r,onOpenChange:v,isDisabled:i||S,isRequired:s,name:f,validate:b,validationBehavior:u,className:C,...k},triggerContent:jsxRuntime.jsx("span",{className:"flex-1 text-left truncate",children:R}),triggerRef:B,label:e,description:a,isRequired:s,isDisabled:i,isLoading:S,errorMessage:m,size:E,emptyStateMessage:x,childCount:V,children:I})});vt.displayName="MultiSelect";var de=react.memo(function({children:t,textValue:a,value:o,isDisabled:n=false,className:l,...r}){if(!a&&typeof t!="string"){let i="Select.Item with custom children requires textValue prop for accessibility";if(process.env.NODE_ENV==="development")throw new Error(i);console.warn(i);}return jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{id:o,textValue:a||(typeof t=="string"?t:void 0),className:`${lt({size:"default"})} ${l||""}`,isDisabled:n,...r,children:({isSelected:i,selectionMode:s,isDisabled:p})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[s==="multiple"?jsxRuntime.jsx(lucideReact.CheckSquare,{className:`absolute left-2 h-4 w-4 ${i?"visible":"invisible"}`,"aria-hidden":"true"}):i&&jsxRuntime.jsx(lucideReact.Check,{className:"absolute left-2 h-4 w-4","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:p?"text-[var(--menu-muted)]":"",children:t})]})})});de.displayName="SelectItem";function _e({children:e,className:t,...a}){return jsxRuntime.jsx(reactAriaComponents.ListBoxSection,{className:`border-t border-[var(--border)] first:border-t-0 ${t||""}`,...a,children:e})}_e.displayName="SelectSection";function ke({children:e,className:t,...a}){return jsxRuntime.jsx(reactAriaComponents.Header,{className:`${dt({size:"default"})} ${t||""}`,...a,children:e})}ke.displayName="SelectHeader";var ue=Object.assign(xt,{Item:de,Section:_e,Header:ke});Object.assign(vt,{Item:de,Section:_e,Header:ke});var gt=classVarianceAuthority.cva(["flex flex-col gap-3"]),St=classVarianceAuthority.cva(["flex items-center justify-between gap-3 flex-wrap px-0.5"]),Tt=classVarianceAuthority.cva(["flex flex-col gap-2.5 list-none m-0 p-0"]),ht=classVarianceAuthority.cva(["flex items-start gap-2.5 p-3.5","rounded-lg border border-[var(--border)] bg-[var(--content-background)]","motion-safe:transition-colors"],{variants:{isSelected:{true:"bg-[var(--selected)] border-[var(--primary)]/40",false:""}},defaultVariants:{isSelected:false}}),yt=classVarianceAuthority.cva(["flex items-center justify-center min-w-[44px] min-h-[44px] -m-1 flex-none"]),Et=classVarianceAuthority.cva(["flex-1 min-w-0"]);function Nt({items:e,getRowId:t,renderCard:a,selectionMode:o="none",selectedKeys:n=new Set,onSelectionChange:l,sortDescriptor:r,onSortChange:i,sortColumns:s=[],renderEmptyState:p,labels:b,"aria-label":u,className:m,"data-testid":S="table-card-list"}){let x=o==="multiple",f=e.map(t),E=d=>n==="all"||n.has(d),T=f.length>0&&f.every(E),v=f.some(E)&&!T,C=()=>n==="all"?new Set(f):new Set(n),I=()=>{l?.(T?new Set:new Set(f));},k=d=>{let h=C();h.has(d)?h.delete(d):h.add(d),l?.(h);},B=r?.column!=null?String(r.column):void 0,V=r?.direction??"ascending",c=d=>{let h=Array.isArray(d)?d[0]:d;h&&i?.({column:h,direction:r?.direction??"ascending"});},R=()=>{r?.column!=null&&i?.({column:r.column,direction:V==="ascending"?"descending":"ascending"});},A=x||s.length>0,P=e.length===0;return jsxRuntime.jsxs("div",{role:"region","aria-label":u,className:g(gt(),m),"data-testid":S,children:[jsxRuntime.jsx("p",{className:"sr-only",role:"status","aria-live":"polite",children:b.results(e.length)}),A&&jsxRuntime.jsxs("div",{className:St(),children:[x?jsxRuntime.jsx(O,{label:b.selectAll,isSelected:T,isIndeterminate:v,onChange:I}):jsxRuntime.jsx("span",{}),s.length>0&&jsxRuntime.jsxs("div",{className:"flex items-end gap-2",children:[jsxRuntime.jsx(ue,{label:b.sort,placeholder:b.sortPlaceholder,value:B,onChange:c,children:s.map(d=>jsxRuntime.jsx(ue.Item,{value:d.id,children:d.label},d.id))}),jsxRuntime.jsx(F,{variant:"ghost",visualSize:"icon",isDisabled:r?.column==null,"aria-label":b.sortDirection(V),onPress:R,children:V==="ascending"?jsxRuntime.jsx(lucideReact.ArrowUp,{"aria-hidden":"true"}):jsxRuntime.jsx(lucideReact.ArrowDown,{"aria-hidden":"true"})})]})]}),P?p?jsxRuntime.jsx("div",{className:"rounded-lg border border-dashed border-[var(--border)] p-8 text-center","data-testid":"card-empty-state",children:p()}):null:jsxRuntime.jsx("ul",{className:Tt(),children:e.map(d=>{let h=t(d),w=E(h);return jsxRuntime.jsxs("li",{className:ht({isSelected:w}),children:[x&&jsxRuntime.jsx("div",{className:yt(),children:jsxRuntime.jsx(O,{"aria-label":b.selectItem(d),isSelected:w,onChange:()=>k(h)})}),jsxRuntime.jsx("div",{className:Et(),children:a(d)})]},String(h))})})]})}Nt.displayName="TableCardList";function _a(e,t){let[a,o]=react.useState(false);return react.useEffect(()=>{let n=e.current;if(!n)return;let l=()=>o(n.offsetWidth<t);l();let r;return typeof ResizeObserver<"u"&&(r=new ResizeObserver(l),r.observe(n)),window.addEventListener("resize",l),()=>{window.removeEventListener("resize",l),r?.disconnect();}},[e,t]),a}exports.BulkActionBar=st;exports.Cell=Ze;exports.Column=Ye;exports.Row=We;exports.Table=Fe;exports.TableBody=je;exports.TableCaption=Ke;exports.TableCardList=Nt;exports.TableFooter=$e;exports.TableHeader=Ue;exports.bulkActionBarVariants=ne;exports.bulkActionHintVariants=ie;exports.bulkActionToolbarVariants=se;exports.cellVariants=ae;exports.columnVariants=ee;exports.resolveSelectedCount=oa;exports.rowVariants=te;exports.tableCaptionVariants=Se;exports.tableContainerVariants=be;exports.tableFooterVariants=ge;exports.tableHeaderVariants=ve;exports.tableVariants=xe;exports.useBulkActionShortcut=la;exports.useContainerNarrow=_a;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map