@jakubmazanec/ui 0.1.0-unstable.081bdf1

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 (481) hide show
  1. package/README.md +45 -0
  2. package/build/components/Button.d.ts +40 -0
  3. package/build/components/Button.js +139 -0
  4. package/build/components/Button.js.map +7 -0
  5. package/build/components/Card.d.ts +19 -0
  6. package/build/components/Card.js +26 -0
  7. package/build/components/Card.js.map +7 -0
  8. package/build/components/Checkbox.d.ts +39 -0
  9. package/build/components/Checkbox.js +87 -0
  10. package/build/components/Checkbox.js.map +7 -0
  11. package/build/components/CheckboxField.d.ts +18 -0
  12. package/build/components/CheckboxField.js +22 -0
  13. package/build/components/CheckboxField.js.map +7 -0
  14. package/build/components/Combobox.d.ts +57 -0
  15. package/build/components/Combobox.js +178 -0
  16. package/build/components/Combobox.js.map +7 -0
  17. package/build/components/ComboboxOption.d.ts +33 -0
  18. package/build/components/ComboboxOption.js +59 -0
  19. package/build/components/ComboboxOption.js.map +7 -0
  20. package/build/components/DataTable.d.ts +70 -0
  21. package/build/components/DataTable.js +383 -0
  22. package/build/components/DataTable.js.map +7 -0
  23. package/build/components/Description.d.ts +19 -0
  24. package/build/components/Description.js +28 -0
  25. package/build/components/Description.js.map +7 -0
  26. package/build/components/Dialog.d.ts +32 -0
  27. package/build/components/Dialog.js +55 -0
  28. package/build/components/Dialog.js.map +7 -0
  29. package/build/components/DialogPanel.d.ts +19 -0
  30. package/build/components/DialogPanel.js +29 -0
  31. package/build/components/DialogPanel.js.map +7 -0
  32. package/build/components/DialogTitle.d.ts +19 -0
  33. package/build/components/DialogTitle.js +28 -0
  34. package/build/components/DialogTitle.js.map +7 -0
  35. package/build/components/Error.d.ts +19 -0
  36. package/build/components/Error.js +37 -0
  37. package/build/components/Error.js.map +7 -0
  38. package/build/components/Field.d.ts +22 -0
  39. package/build/components/Field.js +32 -0
  40. package/build/components/Field.js.map +7 -0
  41. package/build/components/Fieldset.d.ts +27 -0
  42. package/build/components/Fieldset.js +39 -0
  43. package/build/components/Fieldset.js.map +7 -0
  44. package/build/components/Form.d.ts +22 -0
  45. package/build/components/Form.js +41 -0
  46. package/build/components/Form.js.map +7 -0
  47. package/build/components/Icon.d.ts +29 -0
  48. package/build/components/Icon.js +59 -0
  49. package/build/components/Icon.js.map +7 -0
  50. package/build/components/Input.d.ts +37 -0
  51. package/build/components/Input.js +111 -0
  52. package/build/components/Input.js.map +7 -0
  53. package/build/components/Label.d.ts +19 -0
  54. package/build/components/Label.js +26 -0
  55. package/build/components/Label.js.map +7 -0
  56. package/build/components/Legend.d.ts +19 -0
  57. package/build/components/Legend.js +26 -0
  58. package/build/components/Legend.js.map +7 -0
  59. package/build/components/Listbox.d.ts +59 -0
  60. package/build/components/Listbox.js +254 -0
  61. package/build/components/Listbox.js.map +7 -0
  62. package/build/components/ListboxOption.d.ts +33 -0
  63. package/build/components/ListboxOption.js +59 -0
  64. package/build/components/ListboxOption.js.map +7 -0
  65. package/build/components/Menu.d.ts +21 -0
  66. package/build/components/Menu.js +29 -0
  67. package/build/components/Menu.js.map +7 -0
  68. package/build/components/MenuButton.d.ts +27 -0
  69. package/build/components/MenuButton.js +45 -0
  70. package/build/components/MenuButton.js.map +7 -0
  71. package/build/components/MenuHeading.d.ts +19 -0
  72. package/build/components/MenuHeading.js +28 -0
  73. package/build/components/MenuHeading.js.map +7 -0
  74. package/build/components/MenuItem.d.ts +27 -0
  75. package/build/components/MenuItem.js +39 -0
  76. package/build/components/MenuItem.js.map +7 -0
  77. package/build/components/MenuItems.d.ts +22 -0
  78. package/build/components/MenuItems.js +36 -0
  79. package/build/components/MenuItems.js.map +7 -0
  80. package/build/components/MenuSection.d.ts +19 -0
  81. package/build/components/MenuSection.js +28 -0
  82. package/build/components/MenuSection.js.map +7 -0
  83. package/build/components/MenuSeparator.d.ts +19 -0
  84. package/build/components/MenuSeparator.js +28 -0
  85. package/build/components/MenuSeparator.js.map +7 -0
  86. package/build/components/Popover.d.ts +19 -0
  87. package/build/components/Popover.js +28 -0
  88. package/build/components/Popover.js.map +7 -0
  89. package/build/components/PopoverBackdrop.d.ts +19 -0
  90. package/build/components/PopoverBackdrop.js +28 -0
  91. package/build/components/PopoverBackdrop.js.map +7 -0
  92. package/build/components/PopoverButton.d.ts +29 -0
  93. package/build/components/PopoverButton.js +47 -0
  94. package/build/components/PopoverButton.js.map +7 -0
  95. package/build/components/PopoverGroup.d.ts +19 -0
  96. package/build/components/PopoverGroup.js +28 -0
  97. package/build/components/PopoverGroup.js.map +7 -0
  98. package/build/components/PopoverPanel.d.ts +24 -0
  99. package/build/components/PopoverPanel.js +38 -0
  100. package/build/components/PopoverPanel.js.map +7 -0
  101. package/build/components/Radio.d.ts +33 -0
  102. package/build/components/Radio.js +57 -0
  103. package/build/components/Radio.js.map +7 -0
  104. package/build/components/RadioField.d.ts +11 -0
  105. package/build/components/RadioField.js +15 -0
  106. package/build/components/RadioField.js.map +7 -0
  107. package/build/components/RadioGroup.d.ts +34 -0
  108. package/build/components/RadioGroup.js +87 -0
  109. package/build/components/RadioGroup.js.map +7 -0
  110. package/build/components/Spinner.d.ts +21 -0
  111. package/build/components/Spinner.js +70 -0
  112. package/build/components/Spinner.js.map +7 -0
  113. package/build/components/Table.d.ts +19 -0
  114. package/build/components/Table.js +26 -0
  115. package/build/components/Table.js.map +7 -0
  116. package/build/components/TableBody.d.ts +19 -0
  117. package/build/components/TableBody.js +26 -0
  118. package/build/components/TableBody.js.map +7 -0
  119. package/build/components/TableCaption.d.ts +19 -0
  120. package/build/components/TableCaption.js +31 -0
  121. package/build/components/TableCaption.js.map +7 -0
  122. package/build/components/TableCell.d.ts +19 -0
  123. package/build/components/TableCell.js +26 -0
  124. package/build/components/TableCell.js.map +7 -0
  125. package/build/components/TableFoot.d.ts +19 -0
  126. package/build/components/TableFoot.js +26 -0
  127. package/build/components/TableFoot.js.map +7 -0
  128. package/build/components/TableHead.d.ts +19 -0
  129. package/build/components/TableHead.js +26 -0
  130. package/build/components/TableHead.js.map +7 -0
  131. package/build/components/TableHeader.d.ts +19 -0
  132. package/build/components/TableHeader.js +26 -0
  133. package/build/components/TableHeader.js.map +7 -0
  134. package/build/components/TableRow.d.ts +19 -0
  135. package/build/components/TableRow.js +26 -0
  136. package/build/components/TableRow.js.map +7 -0
  137. package/build/components/Text.d.ts +19 -0
  138. package/build/components/Text.js +26 -0
  139. package/build/components/Text.js.map +7 -0
  140. package/build/components/Textarea.d.ts +34 -0
  141. package/build/components/Textarea.js +78 -0
  142. package/build/components/Textarea.js.map +7 -0
  143. package/build/components/data-table/DataTableHeader.d.ts +13 -0
  144. package/build/components/data-table/DataTableHeader.js +418 -0
  145. package/build/components/data-table/DataTableHeader.js.map +7 -0
  146. package/build/components/data-table/DataTablePageButton.d.ts +6 -0
  147. package/build/components/data-table/DataTablePageButton.js +11 -0
  148. package/build/components/data-table/DataTablePageButton.js.map +7 -0
  149. package/build/components/data-table/internals/constants.d.ts +3 -0
  150. package/build/components/data-table/internals/constants.js +5 -0
  151. package/build/components/data-table/internals/constants.js.map +7 -0
  152. package/build/components/data-table/internals/getCommonPinningClasses.d.ts +2 -0
  153. package/build/components/data-table/internals/getCommonPinningClasses.js +13 -0
  154. package/build/components/data-table/internals/getCommonPinningClasses.js.map +7 -0
  155. package/build/components/data-table/internals/getCommonPinningStyles.d.ts +3 -0
  156. package/build/components/data-table/internals/getCommonPinningStyles.js +10 -0
  157. package/build/components/data-table/internals/getCommonPinningStyles.js.map +7 -0
  158. package/build/components/internals/fieldContext.d.ts +3 -0
  159. package/build/components/internals/fieldContext.js +4 -0
  160. package/build/components/internals/fieldContext.js.map +7 -0
  161. package/build/components/internals/fieldNameContext.d.ts +3 -0
  162. package/build/components/internals/fieldNameContext.js +4 -0
  163. package/build/components/internals/fieldNameContext.js.map +7 -0
  164. package/build/components/internals/filterProps.d.ts +4 -0
  165. package/build/components/internals/filterProps.js +9 -0
  166. package/build/components/internals/filterProps.js.map +7 -0
  167. package/build/components/internals/formIdContext.d.ts +2 -0
  168. package/build/components/internals/formIdContext.js +4 -0
  169. package/build/components/internals/formIdContext.js.map +7 -0
  170. package/build/components/internals/forwardRef.d.ts +4 -0
  171. package/build/components/internals/forwardRef.js +6 -0
  172. package/build/components/internals/forwardRef.js.map +7 -0
  173. package/build/components/internals/useFormId.d.ts +1 -0
  174. package/build/components/internals/useFormId.js +7 -0
  175. package/build/components/internals/useFormId.js.map +7 -0
  176. package/build/components/internals.d.ts +6 -0
  177. package/build/components/internals.js +8 -0
  178. package/build/components/internals.js.map +7 -0
  179. package/build/components/useField.d.ts +1 -0
  180. package/build/components/useField.js +7 -0
  181. package/build/components/useField.js.map +7 -0
  182. package/build/components/useFieldName.d.ts +1 -0
  183. package/build/components/useFieldName.js +7 -0
  184. package/build/components/useFieldName.js.map +7 -0
  185. package/build/components/useForm.d.ts +10 -0
  186. package/build/components/useForm.js +19 -0
  187. package/build/components/useForm.js.map +7 -0
  188. package/build/components.d.ts +50 -0
  189. package/build/components.js +52 -0
  190. package/build/components.js.map +7 -0
  191. package/build/development/createTailwindConfig.d.ts +18 -0
  192. package/build/development/createTailwindConfig.js +161 -0
  193. package/build/development/createTailwindConfig.js.map +7 -0
  194. package/build/development/createTailwindMerge.d.ts +2 -0
  195. package/build/development/createTailwindMerge.js +74 -0
  196. package/build/development/createTailwindMerge.js.map +7 -0
  197. package/build/development/internals/PaletteConfig.d.ts +6 -0
  198. package/build/development/internals/PaletteConfig.js +2 -0
  199. package/build/development/internals/PaletteConfig.js.map +7 -0
  200. package/build/development/internals/SwatchValue.d.ts +9 -0
  201. package/build/development/internals/SwatchValue.js +2 -0
  202. package/build/development/internals/SwatchValue.js.map +7 -0
  203. package/build/development/internals/clamp.d.ts +1 -0
  204. package/build/development/internals/clamp.js +5 -0
  205. package/build/development/internals/clamp.js.map +7 -0
  206. package/build/development/internals/constants.d.ts +2 -0
  207. package/build/development/internals/constants.js +22 -0
  208. package/build/development/internals/constants.js.map +7 -0
  209. package/build/development/internals/createDisplayColor.d.ts +1 -0
  210. package/build/development/internals/createDisplayColor.js +24 -0
  211. package/build/development/internals/createDisplayColor.js.map +7 -0
  212. package/build/development/internals/createDistributionValues.d.ts +4 -0
  213. package/build/development/internals/createDistributionValues.js +32 -0
  214. package/build/development/internals/createDistributionValues.js.map +7 -0
  215. package/build/development/internals/createHueScale.d.ts +4 -0
  216. package/build/development/internals/createHueScale.js +15 -0
  217. package/build/development/internals/createHueScale.js.map +7 -0
  218. package/build/development/internals/createPalette.d.ts +16 -0
  219. package/build/development/internals/createPalette.js +36 -0
  220. package/build/development/internals/createPalette.js.map +7 -0
  221. package/build/development/internals/createSaturationScale.d.ts +4 -0
  222. package/build/development/internals/createSaturationScale.js +18 -0
  223. package/build/development/internals/createSaturationScale.js.map +7 -0
  224. package/build/development/internals/createSwatches.d.ts +10 -0
  225. package/build/development/internals/createSwatches.js +31 -0
  226. package/build/development/internals/createSwatches.js.map +7 -0
  227. package/build/development/internals/hexToHsl.d.ts +5 -0
  228. package/build/development/internals/hexToHsl.js +37 -0
  229. package/build/development/internals/hexToHsl.js.map +7 -0
  230. package/build/development/internals/hexToRgb.d.ts +5 -0
  231. package/build/development/internals/hexToRgb.js +21 -0
  232. package/build/development/internals/hexToRgb.js.map +7 -0
  233. package/build/development/internals/hslToHex.d.ts +1 -0
  234. package/build/development/internals/hslToHex.js +19 -0
  235. package/build/development/internals/hslToHex.js.map +7 -0
  236. package/build/development/internals/hslToRgb.d.ts +5 -0
  237. package/build/development/internals/hslToRgb.js +42 -0
  238. package/build/development/internals/hslToRgb.js.map +7 -0
  239. package/build/development/internals/isHex.d.ts +1 -0
  240. package/build/development/internals/isHex.js +7 -0
  241. package/build/development/internals/isHex.js.map +7 -0
  242. package/build/development/internals/resolveModule.d.ts +1 -0
  243. package/build/development/internals/resolveModule.js +9 -0
  244. package/build/development/internals/resolveModule.js.map +7 -0
  245. package/build/development/internals/round.d.ts +1 -0
  246. package/build/development/internals/round.js +6 -0
  247. package/build/development/internals/round.js.map +7 -0
  248. package/build/development/internals/unsignedModulo.d.ts +1 -0
  249. package/build/development/internals/unsignedModulo.js +5 -0
  250. package/build/development/internals/unsignedModulo.js.map +7 -0
  251. package/build/development/internals.d.ts +1 -0
  252. package/build/development/internals.js +3 -0
  253. package/build/development/internals.js.map +7 -0
  254. package/build/development.d.ts +2 -0
  255. package/build/development.js +4 -0
  256. package/build/development.js.map +7 -0
  257. package/build/inter-variable-italic.woff2 +0 -0
  258. package/build/inter-variable.woff2 +0 -0
  259. package/build/main.d.ts +5 -0
  260. package/build/main.js +7 -0
  261. package/build/main.js.map +7 -0
  262. package/build/styles.css +23 -0
  263. package/build/styles.css.map +7 -0
  264. package/build/theme/Theme.d.ts +143 -0
  265. package/build/theme/Theme.js +2 -0
  266. package/build/theme/Theme.js.map +7 -0
  267. package/build/theme/ThemeProvider.d.ts +6 -0
  268. package/build/theme/ThemeProvider.js +7 -0
  269. package/build/theme/ThemeProvider.js.map +7 -0
  270. package/build/theme/defaultTheme.d.ts +2 -0
  271. package/build/theme/defaultTheme.js +100 -0
  272. package/build/theme/defaultTheme.js.map +7 -0
  273. package/build/theme/internals/ClassName.d.ts +1 -0
  274. package/build/theme/internals/ClassName.js +2 -0
  275. package/build/theme/internals/ClassName.js.map +7 -0
  276. package/build/theme/internals/ComponentProps.d.ts +7 -0
  277. package/build/theme/internals/ComponentProps.js +2 -0
  278. package/build/theme/internals/ComponentProps.js.map +7 -0
  279. package/build/theme/internals/ComponentTheme.d.ts +35 -0
  280. package/build/theme/internals/ComponentTheme.js +2 -0
  281. package/build/theme/internals/ComponentTheme.js.map +7 -0
  282. package/build/theme/internals/ComponentThemeCompoundVariants.d.ts +12 -0
  283. package/build/theme/internals/ComponentThemeCompoundVariants.js +2 -0
  284. package/build/theme/internals/ComponentThemeCompoundVariants.js.map +7 -0
  285. package/build/theme/internals/ComponentThemeDefinition.d.ts +6 -0
  286. package/build/theme/internals/ComponentThemeDefinition.js +2 -0
  287. package/build/theme/internals/ComponentThemeDefinition.js.map +7 -0
  288. package/build/theme/internals/ComponentThemeDefinitionElements.d.ts +1 -0
  289. package/build/theme/internals/ComponentThemeDefinitionElements.js +2 -0
  290. package/build/theme/internals/ComponentThemeDefinitionElements.js.map +7 -0
  291. package/build/theme/internals/ComponentThemeDefinitionVariants.d.ts +3 -0
  292. package/build/theme/internals/ComponentThemeDefinitionVariants.js +2 -0
  293. package/build/theme/internals/ComponentThemeDefinitionVariants.js.map +7 -0
  294. package/build/theme/internals/ComponentThemeProps.d.ts +5 -0
  295. package/build/theme/internals/ComponentThemeProps.js +2 -0
  296. package/build/theme/internals/ComponentThemeProps.js.map +7 -0
  297. package/build/theme/internals/ComponentThemeVariants.d.ts +14 -0
  298. package/build/theme/internals/ComponentThemeVariants.js +2 -0
  299. package/build/theme/internals/ComponentThemeVariants.js.map +7 -0
  300. package/build/theme/internals/ComponentWithTheme.d.ts +5 -0
  301. package/build/theme/internals/ComponentWithTheme.js +2 -0
  302. package/build/theme/internals/ComponentWithTheme.js.map +7 -0
  303. package/build/theme/internals/UseComponentTheme.d.ts +21 -0
  304. package/build/theme/internals/UseComponentTheme.js +2 -0
  305. package/build/theme/internals/UseComponentTheme.js.map +7 -0
  306. package/build/theme/internals/UseComponentThemeReturn.d.ts +6 -0
  307. package/build/theme/internals/UseComponentThemeReturn.js +2 -0
  308. package/build/theme/internals/UseComponentThemeReturn.js.map +7 -0
  309. package/build/theme/internals/booleanToString.d.ts +1 -0
  310. package/build/theme/internals/booleanToString.js +5 -0
  311. package/build/theme/internals/booleanToString.js.map +7 -0
  312. package/build/theme/internals/createComponentTheme.d.ts +3 -0
  313. package/build/theme/internals/createComponentTheme.js +39 -0
  314. package/build/theme/internals/createComponentTheme.js.map +7 -0
  315. package/build/theme/internals/createUseComponentThemeReturn.d.ts +15 -0
  316. package/build/theme/internals/createUseComponentThemeReturn.js +50 -0
  317. package/build/theme/internals/createUseComponentThemeReturn.js.map +7 -0
  318. package/build/theme/internals/pickPropertyIfExists.d.ts +4 -0
  319. package/build/theme/internals/pickPropertyIfExists.js +11 -0
  320. package/build/theme/internals/pickPropertyIfExists.js.map +7 -0
  321. package/build/theme/internals/themeContext.d.ts +330 -0
  322. package/build/theme/internals/themeContext.js +4 -0
  323. package/build/theme/internals/themeContext.js.map +7 -0
  324. package/build/theme/internals/useTheme.d.ts +329 -0
  325. package/build/theme/internals/useTheme.js +7 -0
  326. package/build/theme/internals/useTheme.js.map +7 -0
  327. package/build/theme/internals.d.ts +18 -0
  328. package/build/theme/internals.js +20 -0
  329. package/build/theme/internals.js.map +7 -0
  330. package/build/theme.d.ts +3 -0
  331. package/build/theme.js +5 -0
  332. package/build/theme.js.map +7 -0
  333. package/build/utilities/WithLocaleOrLocales.d.ts +5 -0
  334. package/build/utilities/WithLocaleOrLocales.js +2 -0
  335. package/build/utilities/WithLocaleOrLocales.js.map +7 -0
  336. package/build/utilities/formatDateTime.d.ts +3 -0
  337. package/build/utilities/formatDateTime.js +11 -0
  338. package/build/utilities/formatDateTime.js.map +7 -0
  339. package/build/utilities/formatNumber.d.ts +3 -0
  340. package/build/utilities/formatNumber.js +11 -0
  341. package/build/utilities/formatNumber.js.map +7 -0
  342. package/build/utilities/internals/cache.d.ts +1 -0
  343. package/build/utilities/internals/cache.js +3 -0
  344. package/build/utilities/internals/cache.js.map +7 -0
  345. package/build/utilities/internals/createCacheKey.d.ts +1 -0
  346. package/build/utilities/internals/createCacheKey.js +6 -0
  347. package/build/utilities/internals/createCacheKey.js.map +7 -0
  348. package/build/utilities/internals/getMemoized.d.ts +1 -0
  349. package/build/utilities/internals/getMemoized.js +12 -0
  350. package/build/utilities/internals/getMemoized.js.map +7 -0
  351. package/build/utilities/internals/normalizeLocales.d.ts +2 -0
  352. package/build/utilities/internals/normalizeLocales.js +12 -0
  353. package/build/utilities/internals/normalizeLocales.js.map +7 -0
  354. package/build/utilities/internals.d.ts +4 -0
  355. package/build/utilities/internals.js +6 -0
  356. package/build/utilities/internals.js.map +7 -0
  357. package/build/utilities.d.ts +3 -0
  358. package/build/utilities.js +5 -0
  359. package/build/utilities.js.map +7 -0
  360. package/package.json +100 -0
  361. package/source/components/Button.tsx +172 -0
  362. package/source/components/Card.ts +46 -0
  363. package/source/components/Checkbox.tsx +125 -0
  364. package/source/components/CheckboxField.tsx +61 -0
  365. package/source/components/Combobox.tsx +298 -0
  366. package/source/components/ComboboxOption.tsx +95 -0
  367. package/source/components/DataTable.tsx +464 -0
  368. package/source/components/Description.tsx +52 -0
  369. package/source/components/Dialog.tsx +85 -0
  370. package/source/components/DialogPanel.tsx +54 -0
  371. package/source/components/DialogTitle.tsx +52 -0
  372. package/source/components/Error.tsx +58 -0
  373. package/source/components/Field.tsx +79 -0
  374. package/source/components/Fieldset.tsx +64 -0
  375. package/source/components/Form.tsx +72 -0
  376. package/source/components/Icon.tsx +96 -0
  377. package/source/components/Input.tsx +156 -0
  378. package/source/components/Label.tsx +49 -0
  379. package/source/components/Legend.tsx +49 -0
  380. package/source/components/Listbox.tsx +401 -0
  381. package/source/components/ListboxOption.tsx +95 -0
  382. package/source/components/Menu.tsx +50 -0
  383. package/source/components/MenuButton.tsx +69 -0
  384. package/source/components/MenuHeading.tsx +52 -0
  385. package/source/components/MenuItem.tsx +63 -0
  386. package/source/components/MenuItems.tsx +61 -0
  387. package/source/components/MenuSection.tsx +52 -0
  388. package/source/components/MenuSeparator.tsx +52 -0
  389. package/source/components/Popover.tsx +52 -0
  390. package/source/components/PopoverBackdrop.tsx +52 -0
  391. package/source/components/PopoverButton.tsx +72 -0
  392. package/source/components/PopoverGroup.tsx +52 -0
  393. package/source/components/PopoverPanel.tsx +65 -0
  394. package/source/components/Radio.tsx +88 -0
  395. package/source/components/RadioField.tsx +31 -0
  396. package/source/components/RadioGroup.tsx +147 -0
  397. package/source/components/Spinner.tsx +70 -0
  398. package/source/components/Table.ts +47 -0
  399. package/source/components/TableBody.ts +47 -0
  400. package/source/components/TableCaption.ts +52 -0
  401. package/source/components/TableCell.ts +47 -0
  402. package/source/components/TableFoot.ts +47 -0
  403. package/source/components/TableHead.ts +47 -0
  404. package/source/components/TableHeader.ts +47 -0
  405. package/source/components/TableRow.ts +47 -0
  406. package/source/components/Text.ts +47 -0
  407. package/source/components/Textarea.tsx +104 -0
  408. package/source/components/data-table/DataTableHeader.tsx +602 -0
  409. package/source/components/data-table/DataTablePageButton.tsx +21 -0
  410. package/source/components/data-table/internals/constants.ts +3 -0
  411. package/source/components/data-table/internals/getCommonPinningClasses.ts +19 -0
  412. package/source/components/data-table/internals/getCommonPinningStyles.ts +13 -0
  413. package/source/components/internals/fieldContext.ts +4 -0
  414. package/source/components/internals/fieldNameContext.ts +5 -0
  415. package/source/components/internals/filterProps.ts +12 -0
  416. package/source/components/internals/formIdContext.ts +3 -0
  417. package/source/components/internals/forwardRef.ts +7 -0
  418. package/source/components/internals/useFormId.ts +7 -0
  419. package/source/components/internals.ts +6 -0
  420. package/source/components/useField.ts +7 -0
  421. package/source/components/useFieldName.ts +7 -0
  422. package/source/components/useForm.ts +24 -0
  423. package/source/components.ts +50 -0
  424. package/source/development/createTailwindConfig.ts +182 -0
  425. package/source/development/createTailwindMerge.ts +101 -0
  426. package/source/development/internals/PaletteConfig.ts +6 -0
  427. package/source/development/internals/SwatchValue.ts +9 -0
  428. package/source/development/internals/clamp.ts +3 -0
  429. package/source/development/internals/constants.ts +4 -0
  430. package/source/development/internals/createDisplayColor.ts +29 -0
  431. package/source/development/internals/createDistributionValues.ts +38 -0
  432. package/source/development/internals/createHueScale.ts +17 -0
  433. package/source/development/internals/createPalette.ts +54 -0
  434. package/source/development/internals/createSaturationScale.ts +21 -0
  435. package/source/development/internals/createSwatches.ts +34 -0
  436. package/source/development/internals/hexToHsl.ts +45 -0
  437. package/source/development/internals/hexToRgb.ts +23 -0
  438. package/source/development/internals/hslToHex.ts +23 -0
  439. package/source/development/internals/hslToRgb.ts +43 -0
  440. package/source/development/internals/isHex.ts +7 -0
  441. package/source/development/internals/resolveModule.ts +9 -0
  442. package/source/development/internals/round.ts +5 -0
  443. package/source/development/internals/unsignedModulo.ts +3 -0
  444. package/source/development/internals.ts +1 -0
  445. package/source/development.ts +2 -0
  446. package/source/inter-variable-italic.woff2 +0 -0
  447. package/source/inter-variable.woff2 +0 -0
  448. package/source/main.ts +5 -0
  449. package/source/styles.css +25 -0
  450. package/source/theme/Theme.ts +100 -0
  451. package/source/theme/ThemeProvider.tsx +12 -0
  452. package/source/theme/defaultTheme.ts +100 -0
  453. package/source/theme/internals/ClassName.ts +1 -0
  454. package/source/theme/internals/ComponentProps.ts +13 -0
  455. package/source/theme/internals/ComponentTheme.ts +50 -0
  456. package/source/theme/internals/ComponentThemeCompoundVariants.ts +20 -0
  457. package/source/theme/internals/ComponentThemeDefinition.ts +7 -0
  458. package/source/theme/internals/ComponentThemeDefinitionElements.ts +1 -0
  459. package/source/theme/internals/ComponentThemeDefinitionVariants.ts +3 -0
  460. package/source/theme/internals/ComponentThemeProps.ts +11 -0
  461. package/source/theme/internals/ComponentThemeVariants.ts +24 -0
  462. package/source/theme/internals/ComponentWithTheme.ts +6 -0
  463. package/source/theme/internals/UseComponentTheme.ts +22 -0
  464. package/source/theme/internals/UseComponentThemeReturn.ts +15 -0
  465. package/source/theme/internals/booleanToString.ts +6 -0
  466. package/source/theme/internals/createComponentTheme.ts +70 -0
  467. package/source/theme/internals/createUseComponentThemeReturn.ts +87 -0
  468. package/source/theme/internals/pickPropertyIfExists.ts +24 -0
  469. package/source/theme/internals/themeContext.ts +5 -0
  470. package/source/theme/internals/useTheme.ts +7 -0
  471. package/source/theme/internals.ts +18 -0
  472. package/source/theme.ts +3 -0
  473. package/source/utilities/WithLocaleOrLocales.ts +1 -0
  474. package/source/utilities/formatDateTime.ts +15 -0
  475. package/source/utilities/formatNumber.ts +15 -0
  476. package/source/utilities/internals/cache.ts +1 -0
  477. package/source/utilities/internals/createCacheKey.ts +9 -0
  478. package/source/utilities/internals/getMemoized.ts +14 -0
  479. package/source/utilities/internals/normalizeLocales.ts +15 -0
  480. package/source/utilities/internals.ts +4 -0
  481. package/source/utilities.ts +3 -0
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ closestCenter,
5
+ DndContext,
6
+ KeyboardSensor,
7
+ MouseSensor,
8
+ TouchSensor,
9
+ useSensor,
10
+ useSensors
11
+ } from "@dnd-kit/core";
12
+ import { restrictToHorizontalAxis } from "@dnd-kit/modifiers";
13
+ import { arrayMove, horizontalListSortingStrategy, SortableContext } from "@dnd-kit/sortable";
14
+ import {
15
+ flexRender,
16
+ getCoreRowModel,
17
+ getFacetedMinMaxValues,
18
+ getFacetedRowModel,
19
+ getFacetedUniqueValues,
20
+ getFilteredRowModel,
21
+ getPaginationRowModel,
22
+ getSortedRowModel,
23
+ useReactTable
24
+ } from "@tanstack/react-table";
25
+ import { useCallback, useId, useState } from "react";
26
+ import { z } from "zod";
27
+ import { Button } from "./Button.js";
28
+ import { DataTableHeader } from "./data-table/DataTableHeader.js";
29
+ import { DataTablePageButton } from "./data-table/DataTablePageButton.js";
30
+ import {
31
+ DEFAULT_PAGE_SIZE,
32
+ MAX_PAGE_BUTTONS_COUNT,
33
+ PAGE_SIZES
34
+ } from "./data-table/internals/constants.js";
35
+ import { getCommonPinningClasses } from "./data-table/internals/getCommonPinningClasses.js";
36
+ import { getCommonPinningStyles } from "./data-table/internals/getCommonPinningStyles.js";
37
+ import { Icon } from "./Icon.js";
38
+ import { Input } from "./Input.js";
39
+ import { Listbox } from "./Listbox.js";
40
+ import { ListboxOption } from "./ListboxOption.js";
41
+ import { Table } from "./Table.js";
42
+ import { TableBody } from "./TableBody.js";
43
+ import { TableCell } from "./TableCell.js";
44
+ import { TableFoot } from "./TableFoot.js";
45
+ import { TableHead } from "./TableHead.js";
46
+ import { TableHeader } from "./TableHeader.js";
47
+ import { TableRow } from "./TableRow.js";
48
+ export const dataTablePaginationSchema = z.object({
49
+ /** Page number, starts with 1. */
50
+ page: z.number(),
51
+ pageSize: z.union([
52
+ z.literal(PAGE_SIZES[0]),
53
+ z.literal(PAGE_SIZES[1]),
54
+ z.literal(PAGE_SIZES[2]),
55
+ z.literal(PAGE_SIZES[3]),
56
+ z.literal(PAGE_SIZES[4])
57
+ ]),
58
+ pageCount: z.number()
59
+ });
60
+ export const dataTableSortingSchema = z.union([
61
+ z.literal(false),
62
+ z.object({
63
+ column: z.string(),
64
+ direction: z.enum(["ascending", "descending"])
65
+ })
66
+ ]);
67
+ export const dataTableFiltersSchema = z.union([
68
+ z.literal(false),
69
+ z.object({
70
+ column: z.string(),
71
+ filter: z.union([
72
+ z.string(),
73
+ z.number(),
74
+ z.boolean(),
75
+ z.tuple([z.number().nullable().optional(), z.number().nullable().optional()])
76
+ ])
77
+ }).array()
78
+ ]);
79
+ export const dataTableFacetingSchema = z.record(
80
+ z.string(),
81
+ z.object({
82
+ values: z.unknown().array().optional(),
83
+ min: z.unknown().optional(),
84
+ max: z.unknown().optional()
85
+ })
86
+ );
87
+ export function DataTable({
88
+ data,
89
+ columns,
90
+ pagination: controlledPagination,
91
+ onPagination,
92
+ sorting: controlledSorting,
93
+ onSorting,
94
+ filters: controlledFilters,
95
+ onFiltering,
96
+ faceting
97
+ }) {
98
+ let [pagination, setPagination] = useState({
99
+ pageIndex: 0,
100
+ pageSize: DEFAULT_PAGE_SIZE
101
+ });
102
+ let [columnVisibility, setColumnVisibility] = useState({});
103
+ let [columnOrder, setColumnOrder] = useState(
104
+ columns.map((column) => {
105
+ if (column.id) {
106
+ return column.id;
107
+ }
108
+ if ("accessorKey" in column) {
109
+ return String(column.accessorKey);
110
+ }
111
+ if (typeof column.header === "string") {
112
+ return String(column.header);
113
+ }
114
+ return "";
115
+ })
116
+ );
117
+ let [columnPinning, setColumnPinning] = useState({});
118
+ let [sorting, setSorting] = useState([]);
119
+ let [columnFilters, setColumnFilters] = useState([]);
120
+ let table = useReactTable({
121
+ data,
122
+ columns,
123
+ getCoreRowModel: getCoreRowModel(),
124
+ getSortedRowModel: getSortedRowModel(),
125
+ getPaginationRowModel: onPagination ? void 0 : getPaginationRowModel(),
126
+ getFilteredRowModel: getFilteredRowModel(),
127
+ // getFacetedRowModel: onPagination ? undefined : getFacetedRowModel(),
128
+ // getFacetedUniqueValues: onPagination ? undefined : getFacetedUniqueValues(),
129
+ // getFacetedMinMaxValues: onPagination ? undefined : getFacetedMinMaxValues(),
130
+ getFacetedRowModel: getFacetedRowModel(),
131
+ getFacetedUniqueValues: getFacetedUniqueValues(),
132
+ getFacetedMinMaxValues: getFacetedMinMaxValues(),
133
+ state: {
134
+ pagination: onPagination ? void 0 : pagination,
135
+ columnVisibility,
136
+ columnOrder,
137
+ columnPinning,
138
+ sorting: onSorting ? void 0 : sorting,
139
+ columnFilters: onFiltering ? void 0 : columnFilters
140
+ },
141
+ onPaginationChange: onPagination ? void 0 : setPagination,
142
+ onColumnVisibilityChange: setColumnVisibility,
143
+ onColumnOrderChange: setColumnOrder,
144
+ onColumnPinningChange: setColumnPinning,
145
+ onSortingChange: onSorting ? void 0 : setSorting,
146
+ onColumnFiltersChange: onFiltering ? void 0 : setColumnFilters,
147
+ columnResizeMode: "onChange"
148
+ });
149
+ let handleDragEnd = useCallback(({ active, over }) => {
150
+ if (over && active.id !== over.id) {
151
+ setColumnOrder((previousColumnOrder) => {
152
+ let oldIndex = previousColumnOrder.indexOf(active.id);
153
+ let newIndex = previousColumnOrder.indexOf(over.id);
154
+ return arrayMove(previousColumnOrder, oldIndex, newIndex);
155
+ });
156
+ }
157
+ }, []);
158
+ let sensors = useSensors(
159
+ useSensor(MouseSensor, {
160
+ activationConstraint: {
161
+ distance: 5
162
+ }
163
+ }),
164
+ useSensor(TouchSensor, {
165
+ activationConstraint: {
166
+ distance: 5
167
+ }
168
+ }),
169
+ useSensor(KeyboardSensor, {})
170
+ );
171
+ let page = onPagination && controlledPagination ? controlledPagination.page : table.getState().pagination.pageIndex + 1;
172
+ let pageSize = onPagination && controlledPagination ? controlledPagination.pageSize : table.getState().pagination.pageSize;
173
+ let pageCount = onPagination && controlledPagination ? controlledPagination.pageCount : table.getPageCount();
174
+ let isFirstPage = page === 1;
175
+ let isLastPage = page >= pageCount;
176
+ let handlePageClick = useCallback(
177
+ (page2) => {
178
+ if (onPagination && controlledPagination) {
179
+ onPagination({
180
+ page: Math.max(1, Math.min(page2, pageCount))
181
+ });
182
+ } else {
183
+ table.setPageIndex(Math.max(0, Math.min(page2 - 1, pageCount)));
184
+ }
185
+ },
186
+ [controlledPagination, onPagination, pageCount, table]
187
+ );
188
+ let handleFirstPageClick = useCallback(() => {
189
+ if (onPagination && controlledPagination) {
190
+ onPagination({
191
+ page: 1
192
+ });
193
+ } else {
194
+ table.firstPage();
195
+ }
196
+ }, [controlledPagination, onPagination, table]);
197
+ let handleLastPageClick = useCallback(() => {
198
+ if (onPagination && controlledPagination) {
199
+ onPagination({
200
+ page: pageCount
201
+ });
202
+ } else {
203
+ table.lastPage();
204
+ }
205
+ }, [controlledPagination, onPagination, pageCount, table]);
206
+ let handlePreviousPageClick = useCallback(() => {
207
+ if (onPagination && controlledPagination) {
208
+ onPagination({
209
+ page: Math.max(1, Math.min(page - 1, pageCount))
210
+ });
211
+ } else {
212
+ table.previousPage();
213
+ }
214
+ }, [controlledPagination, onPagination, page, pageCount, table]);
215
+ let handleNextPageClick = useCallback(() => {
216
+ if (onPagination && controlledPagination) {
217
+ onPagination({
218
+ page: Math.max(1, Math.min(page + 1, pageCount))
219
+ });
220
+ } else {
221
+ table.nextPage();
222
+ }
223
+ }, [controlledPagination, onPagination, page, pageCount, table]);
224
+ let handlePageChange = useCallback(
225
+ (event) => {
226
+ let pageIndex = event.target.value ? Number(event.target.value) - 1 : 0;
227
+ if (onPagination && controlledPagination) {
228
+ onPagination({
229
+ page: Math.max(1, Math.min(pageIndex + 1, pageCount))
230
+ });
231
+ } else {
232
+ table.setPageIndex(pageIndex);
233
+ }
234
+ },
235
+ [controlledPagination, onPagination, pageCount, table]
236
+ );
237
+ let handlePageSizeChange = useCallback(
238
+ (pageSize2) => {
239
+ if (onPagination && controlledPagination) {
240
+ onPagination({
241
+ pageSize: Number(pageSize2)
242
+ });
243
+ } else {
244
+ table.setPageSize(Number(pageSize2));
245
+ }
246
+ },
247
+ [controlledPagination, onPagination, table]
248
+ );
249
+ let id = useId();
250
+ console.log("DataTable...", "controlledFilters", controlledFilters);
251
+ console.log("faceting", faceting);
252
+ return /* @__PURE__ */ jsxs(
253
+ DndContext,
254
+ {
255
+ id,
256
+ collisionDetection: closestCenter,
257
+ modifiers: [restrictToHorizontalAxis],
258
+ sensors,
259
+ onDragEnd: handleDragEnd,
260
+ children: [
261
+ /* @__PURE__ */ jsxs(
262
+ Table,
263
+ {
264
+ style: {
265
+ width: table.getCenterTotalSize(),
266
+ tableLayout: "fixed"
267
+ },
268
+ children: [
269
+ /* @__PURE__ */ jsx(TableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(SortableContext, { items: columnOrder, strategy: horizontalListSortingStrategy, children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
270
+ DataTableHeader,
271
+ {
272
+ header,
273
+ table,
274
+ sorting: controlledSorting,
275
+ onSorting,
276
+ filters: controlledFilters,
277
+ onFiltering,
278
+ faceting
279
+ },
280
+ header.id
281
+ )) }) }, headerGroup.id)) }),
282
+ /* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
283
+ TableCell,
284
+ {
285
+ className: getCommonPinningClasses(cell.column),
286
+ style: { ...getCommonPinningStyles(cell.column) },
287
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
288
+ },
289
+ cell.id
290
+ )) }, row.id)) }),
291
+ /* @__PURE__ */ jsx(TableFoot, { children: table.getFooterGroups().map((footerGroup) => /* @__PURE__ */ jsx(TableRow, { children: footerGroup.headers.map((header) => /* @__PURE__ */ jsx(TableHeader, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext()) }, header.id)) }, footerGroup.id)) })
292
+ ]
293
+ }
294
+ ),
295
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-4 text-sm justify-center", children: [
296
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-x-2", children: [
297
+ /* @__PURE__ */ jsx(
298
+ Button,
299
+ {
300
+ variant: "outline",
301
+ "aria-label": "First page",
302
+ disabled: isFirstPage,
303
+ onClick: handleFirstPageClick,
304
+ children: /* @__PURE__ */ jsx(Icon, { name: "ChevronDoubleLeft" })
305
+ }
306
+ ),
307
+ /* @__PURE__ */ jsx(
308
+ Button,
309
+ {
310
+ variant: "outline",
311
+ "aria-label": "Previous page",
312
+ disabled: isFirstPage,
313
+ onClick: handlePreviousPageClick,
314
+ children: /* @__PURE__ */ jsx(Icon, { name: "ChevronLeft" })
315
+ }
316
+ ),
317
+ pageCount <= MAX_PAGE_BUTTONS_COUNT ? Array.from({ length: pageCount }).map((_, index) => /* @__PURE__ */ jsx(
318
+ DataTablePageButton,
319
+ {
320
+ page: index + 1,
321
+ isSelected: page === index + 1,
322
+ onClick: handlePageClick
323
+ },
324
+ index
325
+ )) : null,
326
+ /* @__PURE__ */ jsx(
327
+ Button,
328
+ {
329
+ variant: "outline",
330
+ "aria-label": "Next page",
331
+ disabled: isLastPage,
332
+ onClick: handleNextPageClick,
333
+ children: /* @__PURE__ */ jsx(Icon, { name: "ChevronRight" })
334
+ }
335
+ ),
336
+ /* @__PURE__ */ jsx(
337
+ Button,
338
+ {
339
+ variant: "outline",
340
+ "aria-label": "Last page",
341
+ disabled: isLastPage,
342
+ onClick: handleLastPageClick,
343
+ children: /* @__PURE__ */ jsx(Icon, { name: "ChevronDoubleRight" })
344
+ }
345
+ )
346
+ ] }),
347
+ pageCount > MAX_PAGE_BUTTONS_COUNT ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
348
+ "Page ",
349
+ page,
350
+ " of ",
351
+ pageCount
352
+ ] }) : null,
353
+ pageCount > MAX_PAGE_BUTTONS_COUNT ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
354
+ "Go to page:",
355
+ /* @__PURE__ */ jsx(
356
+ Input,
357
+ {
358
+ type: "text",
359
+ pattern: "[0-9]*",
360
+ defaultValue: page,
361
+ className: "w-12",
362
+ onChange: handlePageChange
363
+ }
364
+ )
365
+ ] }) : null,
366
+ /* @__PURE__ */ jsx(
367
+ Listbox,
368
+ {
369
+ value: String(pageSize),
370
+ className: "w-auto min-w-min",
371
+ onChange: handlePageSizeChange,
372
+ children: PAGE_SIZES.map((pageSize2) => /* @__PURE__ */ jsxs(ListboxOption, { value: String(pageSize2), children: [
373
+ "Show ",
374
+ pageSize2
375
+ ] }, pageSize2))
376
+ }
377
+ )
378
+ ] })
379
+ ]
380
+ }
381
+ );
382
+ }
383
+ //# sourceMappingURL=DataTable.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/DataTable.tsx"],
4
+ "sourcesContent": ["import {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {restrictToHorizontalAxis} from '@dnd-kit/modifiers';\nimport {arrayMove, horizontalListSortingStrategy, SortableContext} from '@dnd-kit/sortable';\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFacetedMinMaxValues,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowData,\n type SortingState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {type ChangeEvent, useCallback, useId, useState} from 'react';\nimport {z} from 'zod';\n\nimport {Button} from './Button.js';\nimport {DataTableHeader} from './data-table/DataTableHeader.js';\nimport {DataTablePageButton} from './data-table/DataTablePageButton.js';\nimport {\n DEFAULT_PAGE_SIZE,\n MAX_PAGE_BUTTONS_COUNT,\n PAGE_SIZES,\n} from './data-table/internals/constants.js';\nimport {getCommonPinningClasses} from './data-table/internals/getCommonPinningClasses.js';\nimport {getCommonPinningStyles} from './data-table/internals/getCommonPinningStyles.js';\nimport {Icon} from './Icon.js';\nimport {Input} from './Input.js';\nimport {Listbox} from './Listbox.js';\nimport {ListboxOption} from './ListboxOption.js';\nimport {Table} from './Table.js';\nimport {TableBody} from './TableBody.js';\nimport {TableCell} from './TableCell.js';\nimport {TableFoot} from './TableFoot.js';\nimport {TableHead} from './TableHead.js';\nimport {TableHeader} from './TableHeader.js';\nimport {TableRow} from './TableRow.js';\n\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- false positive\n interface ColumnMeta<TData extends RowData, TValue> {\n filterVariant?: 'range' | 'select' | 'text';\n }\n}\n\ntype PageSize = (typeof PAGE_SIZES)[number];\n\nexport const dataTablePaginationSchema = z.object({\n /** Page number, starts with 1. */\n page: z.number(),\n pageSize: z.union([\n z.literal(PAGE_SIZES[0]),\n z.literal(PAGE_SIZES[1]),\n z.literal(PAGE_SIZES[2]),\n z.literal(PAGE_SIZES[3]),\n z.literal(PAGE_SIZES[4]),\n ]),\n pageCount: z.number(),\n});\n\nexport type DataTablePagination = z.infer<typeof dataTablePaginationSchema>;\n\nexport const dataTableSortingSchema = z.union([\n z.literal(false),\n z.object({\n column: z.string(),\n direction: z.enum(['ascending', 'descending']),\n }),\n]);\n\nexport type DataTableSorting = z.infer<typeof dataTableSortingSchema>;\n\nexport const dataTableFiltersSchema = z.union([\n z.literal(false),\n z\n .object({\n column: z.string(),\n filter: z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.tuple([z.number().nullable().optional(), z.number().nullable().optional()]),\n ]),\n })\n .array(),\n]);\n\nexport type DataTableFilters = z.infer<typeof dataTableFiltersSchema>;\n\nexport const dataTableFacetingSchema = z.record(\n z.string(),\n z.object({\n values: z.unknown().array().optional(),\n min: z.unknown().optional(),\n max: z.unknown().optional(),\n }),\n);\n\nexport type DataTableFaceting = z.infer<typeof dataTableFacetingSchema>;\n\nexport type DataTableProps<D, C> = {\n data: D[];\n columns: C;\n pagination?: DataTablePagination | undefined;\n onPagination?:\n | ((\n pagination: Pick<DataTablePagination, 'page'> | Pick<DataTablePagination, 'pageSize'>,\n ) => void)\n | undefined;\n sorting?: DataTableSorting | undefined;\n onSorting?: ((sorting: DataTableSorting) => void) | undefined;\n filters?: DataTableFilters | undefined;\n onFiltering?: ((filters: DataTableFilters) => void) | undefined;\n faceting?: DataTableFaceting | undefined;\n};\n\nexport function DataTable<D extends RowData, C extends Array<ColumnDef<D>>>({\n data,\n columns,\n pagination: controlledPagination,\n onPagination,\n sorting: controlledSorting,\n onSorting,\n filters: controlledFilters,\n onFiltering,\n faceting,\n}: DataTableProps<D, C>) {\n let [pagination, setPagination] = useState<PaginationState>({\n pageIndex: 0,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n let [columnVisibility, setColumnVisibility] = useState({});\n let [columnOrder, setColumnOrder] = useState<string[]>(\n columns.map((column) => {\n if (column.id) {\n return column.id;\n }\n\n if ('accessorKey' in column) {\n return String(column.accessorKey);\n }\n\n if (typeof column.header === 'string') {\n return String(column.header);\n }\n\n return '';\n }),\n );\n let [columnPinning, setColumnPinning] = useState({});\n let [sorting, setSorting] = useState<SortingState>([]);\n let [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\n let table = useReactTable<D>({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getPaginationRowModel: onPagination ? undefined : getPaginationRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n // getFacetedRowModel: onPagination ? undefined : getFacetedRowModel(),\n // getFacetedUniqueValues: onPagination ? undefined : getFacetedUniqueValues(),\n // getFacetedMinMaxValues: onPagination ? undefined : getFacetedMinMaxValues(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getFacetedMinMaxValues: getFacetedMinMaxValues(),\n state: {\n pagination: onPagination ? undefined : pagination,\n columnVisibility,\n columnOrder,\n columnPinning,\n sorting: onSorting ? undefined : sorting,\n columnFilters: onFiltering ? undefined : columnFilters,\n },\n onPaginationChange: onPagination ? undefined : setPagination,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnOrderChange: setColumnOrder,\n onColumnPinningChange: setColumnPinning,\n onSortingChange: onSorting ? undefined : setSorting,\n onColumnFiltersChange: onFiltering ? undefined : setColumnFilters,\n columnResizeMode: 'onChange',\n });\n let handleDragEnd = useCallback(({active, over}: DragEndEvent) => {\n if (over && active.id !== over.id) {\n setColumnOrder((previousColumnOrder) => {\n let oldIndex = previousColumnOrder.indexOf(active.id as string);\n let newIndex = previousColumnOrder.indexOf(over.id as string);\n\n return arrayMove(previousColumnOrder, oldIndex, newIndex);\n });\n }\n }, []);\n\n let sensors = useSensors(\n useSensor(MouseSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(TouchSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {}),\n );\n\n let page =\n onPagination && controlledPagination ?\n controlledPagination.page\n : table.getState().pagination.pageIndex + 1;\n let pageSize =\n onPagination && controlledPagination ?\n controlledPagination.pageSize\n : table.getState().pagination.pageSize;\n let pageCount =\n onPagination && controlledPagination ? controlledPagination.pageCount : table.getPageCount();\n let isFirstPage = page === 1;\n let isLastPage = page >= pageCount;\n\n let handlePageClick = useCallback(\n (page: number) => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(page, pageCount)),\n });\n } else {\n table.setPageIndex(Math.max(0, Math.min(page - 1, pageCount)));\n }\n },\n [controlledPagination, onPagination, pageCount, table],\n );\n\n let handleFirstPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: 1,\n });\n } else {\n table.firstPage();\n }\n }, [controlledPagination, onPagination, table]);\n\n let handleLastPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: pageCount,\n });\n } else {\n table.lastPage();\n }\n }, [controlledPagination, onPagination, pageCount, table]);\n\n let handlePreviousPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(page - 1, pageCount)),\n });\n } else {\n table.previousPage();\n }\n }, [controlledPagination, onPagination, page, pageCount, table]);\n\n let handleNextPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(page + 1, pageCount)),\n });\n } else {\n table.nextPage();\n }\n }, [controlledPagination, onPagination, page, pageCount, table]);\n\n let handlePageChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n let pageIndex = event.target.value ? Number(event.target.value) - 1 : 0;\n\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(pageIndex + 1, pageCount)),\n });\n } else {\n table.setPageIndex(pageIndex);\n }\n },\n [controlledPagination, onPagination, pageCount, table],\n );\n\n let handlePageSizeChange = useCallback(\n (pageSize: string) => {\n if (onPagination && controlledPagination) {\n onPagination({\n pageSize: Number(pageSize) as PageSize,\n });\n } else {\n table.setPageSize(Number(pageSize));\n }\n },\n [controlledPagination, onPagination, table],\n );\n\n let id = useId();\n\n console.log('DataTable...', 'controlledFilters', controlledFilters);\n console.log('faceting', faceting);\n\n return (\n <DndContext\n id={id}\n collisionDetection={closestCenter}\n modifiers={[restrictToHorizontalAxis]}\n sensors={sensors}\n onDragEnd={handleDragEnd}\n >\n <Table\n style={{\n width: table.getCenterTotalSize(),\n tableLayout: 'fixed',\n }}\n >\n <TableHead>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n <SortableContext items={columnOrder} strategy={horizontalListSortingStrategy}>\n {headerGroup.headers.map((header) => (\n <DataTableHeader\n key={header.id}\n header={header}\n table={table}\n sorting={controlledSorting}\n onSorting={onSorting}\n filters={controlledFilters}\n onFiltering={onFiltering}\n faceting={faceting}\n />\n ))}\n </SortableContext>\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n className={getCommonPinningClasses(cell.column)}\n style={{...getCommonPinningStyles(cell.column)}}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n <TableFoot>\n {table.getFooterGroups().map((footerGroup) => (\n <TableRow key={footerGroup.id}>\n {footerGroup.headers.map((header) => (\n <TableHeader key={header.id}>\n {header.isPlaceholder ? null : (\n flexRender(header.column.columnDef.footer, header.getContext())\n )}\n </TableHeader>\n ))}\n </TableRow>\n ))}\n </TableFoot>\n </Table>\n <div className=\"flex items-center gap-x-4 text-sm justify-center\">\n <span className=\"flex items-center gap-x-2\">\n <Button\n variant=\"outline\"\n aria-label=\"First page\"\n disabled={isFirstPage}\n onClick={handleFirstPageClick}\n >\n <Icon name=\"ChevronDoubleLeft\" />\n </Button>\n <Button\n variant=\"outline\"\n aria-label=\"Previous page\"\n disabled={isFirstPage}\n onClick={handlePreviousPageClick}\n >\n <Icon name=\"ChevronLeft\" />\n </Button>\n\n {pageCount <= MAX_PAGE_BUTTONS_COUNT ?\n Array.from({length: pageCount}).map((_, index) => (\n <DataTablePageButton\n // eslint-disable-next-line react/no-array-index-key -- needed, there is no other value\n key={index}\n page={index + 1}\n isSelected={page === index + 1}\n onClick={handlePageClick}\n />\n ))\n : null}\n\n <Button\n variant=\"outline\"\n aria-label=\"Next page\"\n disabled={isLastPage}\n onClick={handleNextPageClick}\n >\n <Icon name=\"ChevronRight\" />\n </Button>\n <Button\n variant=\"outline\"\n aria-label=\"Last page\"\n disabled={isLastPage}\n onClick={handleLastPageClick}\n >\n <Icon name=\"ChevronDoubleRight\" />\n </Button>\n </span>\n {pageCount > MAX_PAGE_BUTTONS_COUNT ?\n <span className=\"flex items-center gap-1\">\n Page {page} of {pageCount}\n </span>\n : null}\n {pageCount > MAX_PAGE_BUTTONS_COUNT ?\n <span className=\"flex items-center gap-1\">\n Go to page:\n <Input\n type=\"text\"\n pattern=\"[0-9]*\"\n defaultValue={page}\n className=\"w-12\"\n onChange={handlePageChange}\n />\n </span>\n : null}\n <Listbox\n value={String(pageSize)}\n className=\"w-auto min-w-min\"\n onChange={handlePageSizeChange}\n >\n {PAGE_SIZES.map((pageSize) => (\n <ListboxOption key={pageSize} value={String(pageSize)}>\n Show {pageSize}\n </ListboxOption>\n ))}\n </Listbox>\n </div>\n </DndContext>\n );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["page", "pageSize"]
7
+ }
@@ -0,0 +1,19 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useDescriptionTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
4
+ componentThemeName: "Description";
5
+ themeDefinition: undefined;
6
+ };
7
+ export type DescriptionProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDescriptionTheme> & ComponentPropsWithoutRef<T> & {
8
+ as?: T | undefined;
9
+ className?: string | undefined;
10
+ }>;
11
+ export declare const Description: <T extends ElementType = "p">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
12
+ as?: T | undefined;
13
+ className?: string | undefined;
14
+ } & {
15
+ children?: import("react").ReactNode;
16
+ } & {
17
+ ref?: Ref<HTMLElement> | undefined;
18
+ }) => import("react").ReactNode;
19
+ export declare const descriptionTheme: ComponentTheme<typeof useDescriptionTheme>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import {
4
+ Description as HeadlessDescription
5
+ } from "@headlessui/react";
6
+ import {
7
+ createComponentTheme
8
+ } from "../theme/internals.js";
9
+ import { filterProps, forwardRef } from "./internals.js";
10
+ export const useDescriptionTheme = createComponentTheme("Description");
11
+ const DESCRIPTION_ELEMENT = "p";
12
+ export const Description = forwardRef(
13
+ ({ as = DESCRIPTION_ELEMENT, className, children, ...rest }, ref) => {
14
+ let theme = useDescriptionTheme();
15
+ let props = filterProps({
16
+ as,
17
+ ref,
18
+ className: theme(null, className),
19
+ "data-component": "description",
20
+ ...rest
21
+ });
22
+ return /* @__PURE__ */ jsx(HeadlessDescription, { ...props, children });
23
+ }
24
+ );
25
+ export const descriptionTheme = {
26
+ className: "font-sans text-sm"
27
+ };
28
+ //# sourceMappingURL=Description.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/Description.tsx"],
4
+ "sourcesContent": ["import {\n Description as HeadlessDescription,\n type DescriptionProps as HeadlessDescriptionProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDescriptionTheme = createComponentTheme('Description');\n\nconst DESCRIPTION_ELEMENT = 'p';\n\nexport type DescriptionProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDescriptionTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n className?: string | undefined;\n }\n>;\n\nexport const Description = forwardRef(\n <T extends ElementType = typeof DESCRIPTION_ELEMENT>(\n {as = DESCRIPTION_ELEMENT as T, className, children, ...rest}: DescriptionProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDescriptionTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDescriptionProps<any> = filterProps({\n as,\n ref,\n className: theme(null, className),\n 'data-component': 'description',\n ...rest,\n });\n\n return <HeadlessDescription {...props}>{children}</HeadlessDescription>;\n },\n);\n\nexport const descriptionTheme: ComponentTheme<typeof useDescriptionTheme> = {\n className: 'font-sans text-sm',\n};\n"],
5
+ "mappings": ";AA6CW;AA7CX;AAAA,EACE,eAAe;AAAA,OAEV;AAQP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,sBAAsB,qBAAqB,aAAa;AAErE,MAAM,sBAAsB;AAUrB,aAAM,cAAc;AAAA,EACzB,CACE,EAAC,KAAK,qBAA0B,WAAW,UAAU,GAAG,KAAI,GAC5D,QACG;AACH,QAAI,QAAQ,oBAAoB;AAEhC,QAAI,QAAuC,YAAY;AAAA,MACrD;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WAAO,oBAAC,uBAAqB,GAAG,OAAQ,UAAS;AAAA,EACnD;AACF;AAEO,aAAM,mBAA+D;AAAA,EAC1E,WAAW;AACb;",
6
+ "names": []
7
+ }
@@ -0,0 +1,32 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useDialogTheme: (() => {
4
+ root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
5
+ backdrop: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
6
+ }) & {
7
+ componentThemeName: "Dialog";
8
+ themeDefinition: {
9
+ readonly elements: ["root", "backdrop"];
10
+ };
11
+ };
12
+ export type DialogProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDialogTheme> & ComponentPropsWithoutRef<T> & {
13
+ as?: T | undefined;
14
+ open: boolean;
15
+ static?: boolean | undefined;
16
+ autoFocus?: boolean | undefined;
17
+ className?: string;
18
+ onClose?: () => void;
19
+ }>;
20
+ export declare const Dialog: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
21
+ as?: T | undefined;
22
+ open: boolean;
23
+ static?: boolean | undefined;
24
+ autoFocus?: boolean | undefined;
25
+ className?: string | undefined;
26
+ onClose?: (() => void) | undefined;
27
+ } & {
28
+ children?: import("react").ReactNode;
29
+ } & {
30
+ ref?: Ref<HTMLElement> | undefined;
31
+ }) => import("react").ReactNode;
32
+ export declare const dialogTheme: ComponentTheme<typeof useDialogTheme>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ Dialog as HeadlessDialog,
5
+ DialogBackdrop as HeadlessDialogBackdrop
6
+ } from "@headlessui/react";
7
+ import {
8
+ useCallback
9
+ } from "react";
10
+ import {
11
+ createComponentTheme
12
+ } from "../theme/internals.js";
13
+ import { filterProps, forwardRef } from "./internals.js";
14
+ export const useDialogTheme = createComponentTheme("Dialog", {
15
+ elements: ["root", "backdrop"]
16
+ });
17
+ const DIALOG_ELEMENT = "div";
18
+ export const Dialog = forwardRef(
19
+ ({
20
+ as = DIALOG_ELEMENT,
21
+ open,
22
+ static: isStatic,
23
+ autoFocus,
24
+ className,
25
+ onClose,
26
+ children,
27
+ ...rest
28
+ }, ref) => {
29
+ let theme = useDialogTheme();
30
+ let handleClose = useCallback(() => {
31
+ onClose?.();
32
+ }, [onClose]);
33
+ let props = filterProps({
34
+ as,
35
+ ref,
36
+ open,
37
+ static: isStatic,
38
+ transition: true,
39
+ onClose: handleClose,
40
+ "data-component": "dialog",
41
+ ...rest
42
+ });
43
+ return /* @__PURE__ */ jsxs(HeadlessDialog, { ...props, children: [
44
+ /* @__PURE__ */ jsx(HeadlessDialogBackdrop, { transition: true, className: theme.backdrop("fixed inset-0") }),
45
+ /* @__PURE__ */ jsx("div", { className: theme.root("fixed inset-0", className), children })
46
+ ] });
47
+ }
48
+ );
49
+ export const dialogTheme = {
50
+ classNames: {
51
+ root: "flex w-screen items-center justify-center p-4 z-30",
52
+ backdrop: "bg-black/30 z-30"
53
+ }
54
+ };
55
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/Dialog.tsx"],
4
+ "sourcesContent": ["import {\n Dialog as HeadlessDialog,\n DialogBackdrop as HeadlessDialogBackdrop,\n type DialogProps as HeadlessDialogProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n useCallback,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDialogTheme = createComponentTheme('Dialog', {\n elements: ['root', 'backdrop'],\n});\n\nconst DIALOG_ELEMENT = 'div';\n\nexport type DialogProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDialogTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n open: boolean;\n static?: boolean | undefined;\n autoFocus?: boolean | undefined;\n className?: string;\n onClose?: () => void;\n }\n>;\n\nexport const Dialog = forwardRef(\n <T extends ElementType = typeof DIALOG_ELEMENT>(\n {\n as = DIALOG_ELEMENT as T,\n open,\n static: isStatic,\n autoFocus,\n className,\n onClose,\n children,\n ...rest\n }: DialogProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDialogTheme();\n\n let handleClose = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDialogProps<any> = filterProps({\n as,\n ref,\n open,\n static: isStatic,\n transition: true,\n onClose: handleClose,\n 'data-component': 'dialog',\n ...rest,\n });\n\n return (\n <HeadlessDialog {...props}>\n <HeadlessDialogBackdrop transition className={theme.backdrop('fixed inset-0')} />\n <div className={theme.root('fixed inset-0', className)}>{children}</div>\n </HeadlessDialog>\n );\n },\n);\n\nexport const dialogTheme: ComponentTheme<typeof useDialogTheme> = {\n classNames: {\n root: 'flex w-screen items-center justify-center p-4 z-30',\n backdrop: 'bg-black/30 z-30',\n },\n};\n"],
5
+ "mappings": ";AAuEM,SACE,KADF;AAvEN;AAAA,EACE,UAAU;AAAA,EACV,kBAAkB;AAAA,OAEb;AACP;AAAA,EAKE;AAAA,OACK;AAEP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,iBAAiB,qBAAqB,UAAU;AAAA,EAC3D,UAAU,CAAC,QAAQ,UAAU;AAC/B,CAAC;AAED,MAAM,iBAAiB;AAchB,aAAM,SAAS;AAAA,EACpB,CACE;AAAA,IACE,KAAK;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,eAAe;AAE3B,QAAI,cAAc,YAAY,MAAM;AAClC,gBAAU;AAAA,IACZ,GAAG,CAAC,OAAO,CAAC;AAGZ,QAAI,QAAkC,YAAY;AAAA,MAChD;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WACE,qBAAC,kBAAgB,GAAG,OAClB;AAAA,0BAAC,0BAAuB,YAAU,MAAC,WAAW,MAAM,SAAS,eAAe,GAAG;AAAA,MAC/E,oBAAC,SAAI,WAAW,MAAM,KAAK,iBAAiB,SAAS,GAAI,UAAS;AAAA,OACpE;AAAA,EAEJ;AACF;AAEO,aAAM,cAAqD;AAAA,EAChE,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useDialogPanelTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
4
+ componentThemeName: "DialogPanel";
5
+ themeDefinition: undefined;
6
+ };
7
+ export type DialogPanelProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDialogPanelTheme> & ComponentPropsWithoutRef<T> & {
8
+ as?: T | undefined;
9
+ className?: string;
10
+ }>;
11
+ export declare const DialogPanel: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
12
+ as?: T | undefined;
13
+ className?: string | undefined;
14
+ } & {
15
+ children?: import("react").ReactNode;
16
+ } & {
17
+ ref?: Ref<HTMLElement> | undefined;
18
+ }) => import("react").ReactNode;
19
+ export declare const dialogPanelTheme: ComponentTheme<typeof useDialogPanelTheme>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import {
4
+ DialogPanel as HeadlessDialogPanel
5
+ } from "@headlessui/react";
6
+ import {
7
+ createComponentTheme
8
+ } from "../theme/internals.js";
9
+ import { filterProps, forwardRef } from "./internals.js";
10
+ export const useDialogPanelTheme = createComponentTheme("DialogPanel");
11
+ const DIALOG_PANEL_ELEMENT = "div";
12
+ export const DialogPanel = forwardRef(
13
+ ({ as = DIALOG_PANEL_ELEMENT, className, children, ...rest }, ref) => {
14
+ let theme = useDialogPanelTheme();
15
+ let props = filterProps({
16
+ as,
17
+ ref,
18
+ className: theme(null, className),
19
+ transition: true,
20
+ "data-component": "dialog-panel",
21
+ ...rest
22
+ });
23
+ return /* @__PURE__ */ jsx(HeadlessDialogPanel, { ...props, children });
24
+ }
25
+ );
26
+ export const dialogPanelTheme = {
27
+ className: "shadow-1 relative flex w-full min-w-[300px] max-w-[900px] flex-col gap-y-6 rounded-4 bg-white p-6 max-h-[calc(100vh-3rem)] overflow-hidden overflow-y-auto"
28
+ };
29
+ //# sourceMappingURL=DialogPanel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/DialogPanel.tsx"],
4
+ "sourcesContent": ["import {\n DialogPanel as HeadlessDialogPanel,\n type DialogPanelProps as HeadlessDialogPanelProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDialogPanelTheme = createComponentTheme('DialogPanel');\n\nconst DIALOG_PANEL_ELEMENT = 'div';\n\nexport type DialogPanelProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDialogPanelTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n className?: string;\n }\n>;\n\nexport const DialogPanel = forwardRef(\n <T extends ElementType = typeof DIALOG_PANEL_ELEMENT>(\n {as = DIALOG_PANEL_ELEMENT as T, className, children, ...rest}: DialogPanelProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDialogPanelTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDialogPanelProps<any> = filterProps({\n as,\n ref,\n className: theme(null, className),\n transition: true,\n 'data-component': 'dialog-panel',\n ...rest,\n });\n\n return <HeadlessDialogPanel {...props}>{children}</HeadlessDialogPanel>;\n },\n);\n\nexport const dialogPanelTheme: ComponentTheme<typeof useDialogPanelTheme> = {\n className:\n 'shadow-1 relative flex w-full min-w-[300px] max-w-[900px] flex-col gap-y-6 rounded-4 bg-white p-6 max-h-[calc(100vh-3rem)] overflow-hidden overflow-y-auto',\n};\n"],
5
+ "mappings": ";AA8CW;AA9CX;AAAA,EACE,eAAe;AAAA,OAEV;AAQP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,sBAAsB,qBAAqB,aAAa;AAErE,MAAM,uBAAuB;AAUtB,aAAM,cAAc;AAAA,EACzB,CACE,EAAC,KAAK,sBAA2B,WAAW,UAAU,GAAG,KAAI,GAC7D,QACG;AACH,QAAI,QAAQ,oBAAoB;AAEhC,QAAI,QAAuC,YAAY;AAAA,MACrD;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC,YAAY;AAAA,MACZ,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WAAO,oBAAC,uBAAqB,GAAG,OAAQ,UAAS;AAAA,EACnD;AACF;AAEO,aAAM,mBAA+D;AAAA,EAC1E,WACE;AACJ;",
6
+ "names": []
7
+ }