@jakubmazanec/ui 0.1.0-next.86bf251

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 (569) 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/Container.d.ts +36 -0
  21. package/build/components/Container.js +63 -0
  22. package/build/components/Container.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 +32 -0
  48. package/build/components/Icon.js +65 -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 +27 -0
  138. package/build/components/Text.js +43 -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/DataTable.d.ts +39 -0
  144. package/build/components/data-table/DataTable.js +276 -0
  145. package/build/components/data-table/DataTable.js.map +7 -0
  146. package/build/components/data-table/DataTableColumnOrder.d.ts +3 -0
  147. package/build/components/data-table/DataTableColumnOrder.js +4 -0
  148. package/build/components/data-table/DataTableColumnOrder.js.map +7 -0
  149. package/build/components/data-table/DataTableColumnPinning.d.ts +3 -0
  150. package/build/components/data-table/DataTableColumnPinning.js +4 -0
  151. package/build/components/data-table/DataTableColumnPinning.js.map +7 -0
  152. package/build/components/data-table/DataTableColumnVisibility.d.ts +3 -0
  153. package/build/components/data-table/DataTableColumnVisibility.js +4 -0
  154. package/build/components/data-table/DataTableColumnVisibility.js.map +7 -0
  155. package/build/components/data-table/DataTableFaceting.d.ts +15 -0
  156. package/build/components/data-table/DataTableFaceting.js +11 -0
  157. package/build/components/data-table/DataTableFaceting.js.map +7 -0
  158. package/build/components/data-table/DataTableFilters.d.ts +12 -0
  159. package/build/components/data-table/DataTableFilters.js +15 -0
  160. package/build/components/data-table/DataTableFilters.js.map +7 -0
  161. package/build/components/data-table/DataTablePagination.d.ts +16 -0
  162. package/build/components/data-table/DataTablePagination.js +16 -0
  163. package/build/components/data-table/DataTablePagination.js.map +7 -0
  164. package/build/components/data-table/DataTableSearch.d.ts +3 -0
  165. package/build/components/data-table/DataTableSearch.js +4 -0
  166. package/build/components/data-table/DataTableSearch.js.map +7 -0
  167. package/build/components/data-table/DataTableSorting.d.ts +12 -0
  168. package/build/components/data-table/DataTableSorting.js +10 -0
  169. package/build/components/data-table/DataTableSorting.js.map +7 -0
  170. package/build/components/data-table/internals/DataTableHeader.d.ts +15 -0
  171. package/build/components/data-table/internals/DataTableHeader.js +194 -0
  172. package/build/components/data-table/internals/DataTableHeader.js.map +7 -0
  173. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.d.ts +6 -0
  174. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js +36 -0
  175. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js.map +7 -0
  176. package/build/components/data-table/internals/DataTableHeaderFilter.d.ts +12 -0
  177. package/build/components/data-table/internals/DataTableHeaderFilter.js +264 -0
  178. package/build/components/data-table/internals/DataTableHeaderFilter.js.map +7 -0
  179. package/build/components/data-table/internals/DataTablePageButton.d.ts +6 -0
  180. package/build/components/data-table/internals/DataTablePageButton.js +11 -0
  181. package/build/components/data-table/internals/DataTablePageButton.js.map +7 -0
  182. package/build/components/data-table/internals/DataTablePagination.d.ts +12 -0
  183. package/build/components/data-table/internals/DataTablePagination.js +190 -0
  184. package/build/components/data-table/internals/DataTablePagination.js.map +7 -0
  185. package/build/components/data-table/internals/DataTableSearch.d.ts +9 -0
  186. package/build/components/data-table/internals/DataTableSearch.js +73 -0
  187. package/build/components/data-table/internals/DataTableSearch.js.map +7 -0
  188. package/build/components/data-table/internals/addFilter.d.ts +5 -0
  189. package/build/components/data-table/internals/addFilter.js +31 -0
  190. package/build/components/data-table/internals/addFilter.js.map +7 -0
  191. package/build/components/data-table/internals/constants.d.ts +3 -0
  192. package/build/components/data-table/internals/constants.js +5 -0
  193. package/build/components/data-table/internals/constants.js.map +7 -0
  194. package/build/components/data-table/internals/fromPinningState.d.ts +2 -0
  195. package/build/components/data-table/internals/fromPinningState.js +12 -0
  196. package/build/components/data-table/internals/fromPinningState.js.map +7 -0
  197. package/build/components/data-table/internals/fuzzyFilter.d.ts +2 -0
  198. package/build/components/data-table/internals/fuzzyFilter.js +8 -0
  199. package/build/components/data-table/internals/fuzzyFilter.js.map +7 -0
  200. package/build/components/data-table/internals/getCommonPinningClasses.d.ts +2 -0
  201. package/build/components/data-table/internals/getCommonPinningClasses.js +13 -0
  202. package/build/components/data-table/internals/getCommonPinningClasses.js.map +7 -0
  203. package/build/components/data-table/internals/getCommonPinningStyles.d.ts +3 -0
  204. package/build/components/data-table/internals/getCommonPinningStyles.js +10 -0
  205. package/build/components/data-table/internals/getCommonPinningStyles.js.map +7 -0
  206. package/build/components/data-table/internals/normalizeFilter.d.ts +3 -0
  207. package/build/components/data-table/internals/normalizeFilter.js +19 -0
  208. package/build/components/data-table/internals/normalizeFilter.js.map +7 -0
  209. package/build/components/data-table/internals/normalizeFilters.d.ts +3 -0
  210. package/build/components/data-table/internals/normalizeFilters.js +18 -0
  211. package/build/components/data-table/internals/normalizeFilters.js.map +7 -0
  212. package/build/components/data-table/internals/normalizeSorting.d.ts +4 -0
  213. package/build/components/data-table/internals/normalizeSorting.js +26 -0
  214. package/build/components/data-table/internals/normalizeSorting.js.map +7 -0
  215. package/build/components/data-table/internals/removeFilter.d.ts +5 -0
  216. package/build/components/data-table/internals/removeFilter.js +18 -0
  217. package/build/components/data-table/internals/removeFilter.js.map +7 -0
  218. package/build/components/data-table/internals.d.ts +16 -0
  219. package/build/components/data-table/internals.js +18 -0
  220. package/build/components/data-table/internals.js.map +7 -0
  221. package/build/components/data-table.d.ts +9 -0
  222. package/build/components/data-table.js +11 -0
  223. package/build/components/data-table.js.map +7 -0
  224. package/build/components/internals/fieldContext.d.ts +3 -0
  225. package/build/components/internals/fieldContext.js +4 -0
  226. package/build/components/internals/fieldContext.js.map +7 -0
  227. package/build/components/internals/fieldNameContext.d.ts +3 -0
  228. package/build/components/internals/fieldNameContext.js +4 -0
  229. package/build/components/internals/fieldNameContext.js.map +7 -0
  230. package/build/components/internals/filterProps.d.ts +4 -0
  231. package/build/components/internals/filterProps.js +9 -0
  232. package/build/components/internals/filterProps.js.map +7 -0
  233. package/build/components/internals/formIdContext.d.ts +2 -0
  234. package/build/components/internals/formIdContext.js +4 -0
  235. package/build/components/internals/formIdContext.js.map +7 -0
  236. package/build/components/internals/forwardRef.d.ts +4 -0
  237. package/build/components/internals/forwardRef.js +6 -0
  238. package/build/components/internals/forwardRef.js.map +7 -0
  239. package/build/components/internals/useFormId.d.ts +1 -0
  240. package/build/components/internals/useFormId.js +7 -0
  241. package/build/components/internals/useFormId.js.map +7 -0
  242. package/build/components/internals.d.ts +6 -0
  243. package/build/components/internals.js +8 -0
  244. package/build/components/internals.js.map +7 -0
  245. package/build/components/useField.d.ts +1 -0
  246. package/build/components/useField.js +7 -0
  247. package/build/components/useField.js.map +7 -0
  248. package/build/components/useFieldName.d.ts +1 -0
  249. package/build/components/useFieldName.js +7 -0
  250. package/build/components/useFieldName.js.map +7 -0
  251. package/build/components/useForm.d.ts +10 -0
  252. package/build/components/useForm.js +19 -0
  253. package/build/components/useForm.js.map +7 -0
  254. package/build/components.d.ts +51 -0
  255. package/build/components.js +53 -0
  256. package/build/components.js.map +7 -0
  257. package/build/development/createTailwindConfig.d.ts +18 -0
  258. package/build/development/createTailwindConfig.js +172 -0
  259. package/build/development/createTailwindConfig.js.map +7 -0
  260. package/build/development/createTailwindMerge.d.ts +2 -0
  261. package/build/development/createTailwindMerge.js +74 -0
  262. package/build/development/createTailwindMerge.js.map +7 -0
  263. package/build/development/internals/PaletteConfig.d.ts +6 -0
  264. package/build/development/internals/PaletteConfig.js +2 -0
  265. package/build/development/internals/PaletteConfig.js.map +7 -0
  266. package/build/development/internals/SwatchValue.d.ts +9 -0
  267. package/build/development/internals/SwatchValue.js +2 -0
  268. package/build/development/internals/SwatchValue.js.map +7 -0
  269. package/build/development/internals/clamp.d.ts +1 -0
  270. package/build/development/internals/clamp.js +5 -0
  271. package/build/development/internals/clamp.js.map +7 -0
  272. package/build/development/internals/constants.d.ts +2 -0
  273. package/build/development/internals/constants.js +22 -0
  274. package/build/development/internals/constants.js.map +7 -0
  275. package/build/development/internals/createDisplayColor.d.ts +1 -0
  276. package/build/development/internals/createDisplayColor.js +24 -0
  277. package/build/development/internals/createDisplayColor.js.map +7 -0
  278. package/build/development/internals/createDistributionValues.d.ts +4 -0
  279. package/build/development/internals/createDistributionValues.js +32 -0
  280. package/build/development/internals/createDistributionValues.js.map +7 -0
  281. package/build/development/internals/createHueScale.d.ts +4 -0
  282. package/build/development/internals/createHueScale.js +15 -0
  283. package/build/development/internals/createHueScale.js.map +7 -0
  284. package/build/development/internals/createPalette.d.ts +16 -0
  285. package/build/development/internals/createPalette.js +36 -0
  286. package/build/development/internals/createPalette.js.map +7 -0
  287. package/build/development/internals/createSaturationScale.d.ts +4 -0
  288. package/build/development/internals/createSaturationScale.js +18 -0
  289. package/build/development/internals/createSaturationScale.js.map +7 -0
  290. package/build/development/internals/createSwatches.d.ts +10 -0
  291. package/build/development/internals/createSwatches.js +31 -0
  292. package/build/development/internals/createSwatches.js.map +7 -0
  293. package/build/development/internals/hexToHsl.d.ts +5 -0
  294. package/build/development/internals/hexToHsl.js +37 -0
  295. package/build/development/internals/hexToHsl.js.map +7 -0
  296. package/build/development/internals/hexToRgb.d.ts +5 -0
  297. package/build/development/internals/hexToRgb.js +21 -0
  298. package/build/development/internals/hexToRgb.js.map +7 -0
  299. package/build/development/internals/hslToHex.d.ts +1 -0
  300. package/build/development/internals/hslToHex.js +19 -0
  301. package/build/development/internals/hslToHex.js.map +7 -0
  302. package/build/development/internals/hslToRgb.d.ts +5 -0
  303. package/build/development/internals/hslToRgb.js +42 -0
  304. package/build/development/internals/hslToRgb.js.map +7 -0
  305. package/build/development/internals/isHex.d.ts +1 -0
  306. package/build/development/internals/isHex.js +7 -0
  307. package/build/development/internals/isHex.js.map +7 -0
  308. package/build/development/internals/resolveModule.d.ts +1 -0
  309. package/build/development/internals/resolveModule.js +9 -0
  310. package/build/development/internals/resolveModule.js.map +7 -0
  311. package/build/development/internals/round.d.ts +1 -0
  312. package/build/development/internals/round.js +6 -0
  313. package/build/development/internals/round.js.map +7 -0
  314. package/build/development/internals/unsignedModulo.d.ts +1 -0
  315. package/build/development/internals/unsignedModulo.js +5 -0
  316. package/build/development/internals/unsignedModulo.js.map +7 -0
  317. package/build/development/internals.d.ts +18 -0
  318. package/build/development/internals.js +20 -0
  319. package/build/development/internals.js.map +7 -0
  320. package/build/development.d.ts +2 -0
  321. package/build/development.js +4 -0
  322. package/build/development.js.map +7 -0
  323. package/build/inter-variable-italic.woff2 +0 -0
  324. package/build/inter-variable.woff2 +0 -0
  325. package/build/main.d.ts +5 -0
  326. package/build/main.js +7 -0
  327. package/build/main.js.map +7 -0
  328. package/build/styles.css +23 -0
  329. package/build/styles.css.map +7 -0
  330. package/build/theme/Theme.d.ts +146 -0
  331. package/build/theme/Theme.js +2 -0
  332. package/build/theme/Theme.js.map +7 -0
  333. package/build/theme/ThemeProvider.d.ts +6 -0
  334. package/build/theme/ThemeProvider.js +7 -0
  335. package/build/theme/ThemeProvider.js.map +7 -0
  336. package/build/theme/defaultTheme.d.ts +2 -0
  337. package/build/theme/defaultTheme.js +102 -0
  338. package/build/theme/defaultTheme.js.map +7 -0
  339. package/build/theme/internals/ClassName.d.ts +1 -0
  340. package/build/theme/internals/ClassName.js +2 -0
  341. package/build/theme/internals/ClassName.js.map +7 -0
  342. package/build/theme/internals/ComponentProps.d.ts +7 -0
  343. package/build/theme/internals/ComponentProps.js +2 -0
  344. package/build/theme/internals/ComponentProps.js.map +7 -0
  345. package/build/theme/internals/ComponentTheme.d.ts +35 -0
  346. package/build/theme/internals/ComponentTheme.js +2 -0
  347. package/build/theme/internals/ComponentTheme.js.map +7 -0
  348. package/build/theme/internals/ComponentThemeCompoundVariants.d.ts +12 -0
  349. package/build/theme/internals/ComponentThemeCompoundVariants.js +2 -0
  350. package/build/theme/internals/ComponentThemeCompoundVariants.js.map +7 -0
  351. package/build/theme/internals/ComponentThemeDefinition.d.ts +6 -0
  352. package/build/theme/internals/ComponentThemeDefinition.js +2 -0
  353. package/build/theme/internals/ComponentThemeDefinition.js.map +7 -0
  354. package/build/theme/internals/ComponentThemeDefinitionElements.d.ts +1 -0
  355. package/build/theme/internals/ComponentThemeDefinitionElements.js +2 -0
  356. package/build/theme/internals/ComponentThemeDefinitionElements.js.map +7 -0
  357. package/build/theme/internals/ComponentThemeDefinitionVariants.d.ts +3 -0
  358. package/build/theme/internals/ComponentThemeDefinitionVariants.js +2 -0
  359. package/build/theme/internals/ComponentThemeDefinitionVariants.js.map +7 -0
  360. package/build/theme/internals/ComponentThemeProps.d.ts +5 -0
  361. package/build/theme/internals/ComponentThemeProps.js +2 -0
  362. package/build/theme/internals/ComponentThemeProps.js.map +7 -0
  363. package/build/theme/internals/ComponentThemeVariants.d.ts +14 -0
  364. package/build/theme/internals/ComponentThemeVariants.js +2 -0
  365. package/build/theme/internals/ComponentThemeVariants.js.map +7 -0
  366. package/build/theme/internals/ComponentWithTheme.d.ts +5 -0
  367. package/build/theme/internals/ComponentWithTheme.js +2 -0
  368. package/build/theme/internals/ComponentWithTheme.js.map +7 -0
  369. package/build/theme/internals/UseComponentTheme.d.ts +21 -0
  370. package/build/theme/internals/UseComponentTheme.js +2 -0
  371. package/build/theme/internals/UseComponentTheme.js.map +7 -0
  372. package/build/theme/internals/UseComponentThemeReturn.d.ts +6 -0
  373. package/build/theme/internals/UseComponentThemeReturn.js +2 -0
  374. package/build/theme/internals/UseComponentThemeReturn.js.map +7 -0
  375. package/build/theme/internals/booleanToString.d.ts +1 -0
  376. package/build/theme/internals/booleanToString.js +5 -0
  377. package/build/theme/internals/booleanToString.js.map +7 -0
  378. package/build/theme/internals/createComponentTheme.d.ts +3 -0
  379. package/build/theme/internals/createComponentTheme.js +39 -0
  380. package/build/theme/internals/createComponentTheme.js.map +7 -0
  381. package/build/theme/internals/createUseComponentThemeReturn.d.ts +15 -0
  382. package/build/theme/internals/createUseComponentThemeReturn.js +50 -0
  383. package/build/theme/internals/createUseComponentThemeReturn.js.map +7 -0
  384. package/build/theme/internals/pickPropertyIfExists.d.ts +4 -0
  385. package/build/theme/internals/pickPropertyIfExists.js +11 -0
  386. package/build/theme/internals/pickPropertyIfExists.js.map +7 -0
  387. package/build/theme/internals/themeContext.d.ts +354 -0
  388. package/build/theme/internals/themeContext.js +4 -0
  389. package/build/theme/internals/themeContext.js.map +7 -0
  390. package/build/theme/internals/useTheme.d.ts +353 -0
  391. package/build/theme/internals/useTheme.js +7 -0
  392. package/build/theme/internals/useTheme.js.map +7 -0
  393. package/build/theme/internals.d.ts +18 -0
  394. package/build/theme/internals.js +20 -0
  395. package/build/theme/internals.js.map +7 -0
  396. package/build/theme.d.ts +3 -0
  397. package/build/theme.js +5 -0
  398. package/build/theme.js.map +7 -0
  399. package/build/utilities/WithLocaleOrLocales.d.ts +5 -0
  400. package/build/utilities/WithLocaleOrLocales.js +2 -0
  401. package/build/utilities/WithLocaleOrLocales.js.map +7 -0
  402. package/build/utilities/formatDateTime.d.ts +3 -0
  403. package/build/utilities/formatDateTime.js +11 -0
  404. package/build/utilities/formatDateTime.js.map +7 -0
  405. package/build/utilities/formatNumber.d.ts +3 -0
  406. package/build/utilities/formatNumber.js +11 -0
  407. package/build/utilities/formatNumber.js.map +7 -0
  408. package/build/utilities/internals/cache.d.ts +1 -0
  409. package/build/utilities/internals/cache.js +3 -0
  410. package/build/utilities/internals/cache.js.map +7 -0
  411. package/build/utilities/internals/createCacheKey.d.ts +1 -0
  412. package/build/utilities/internals/createCacheKey.js +6 -0
  413. package/build/utilities/internals/createCacheKey.js.map +7 -0
  414. package/build/utilities/internals/getMemoized.d.ts +1 -0
  415. package/build/utilities/internals/getMemoized.js +12 -0
  416. package/build/utilities/internals/getMemoized.js.map +7 -0
  417. package/build/utilities/internals/normalizeLocales.d.ts +2 -0
  418. package/build/utilities/internals/normalizeLocales.js +12 -0
  419. package/build/utilities/internals/normalizeLocales.js.map +7 -0
  420. package/build/utilities/internals.d.ts +4 -0
  421. package/build/utilities/internals.js +6 -0
  422. package/build/utilities/internals.js.map +7 -0
  423. package/build/utilities.d.ts +3 -0
  424. package/build/utilities.js +5 -0
  425. package/build/utilities.js.map +7 -0
  426. package/package.json +101 -0
  427. package/source/components/Button.tsx +172 -0
  428. package/source/components/Card.ts +46 -0
  429. package/source/components/Checkbox.tsx +125 -0
  430. package/source/components/CheckboxField.tsx +61 -0
  431. package/source/components/Combobox.tsx +298 -0
  432. package/source/components/ComboboxOption.tsx +95 -0
  433. package/source/components/Container.ts +84 -0
  434. package/source/components/Description.tsx +52 -0
  435. package/source/components/Dialog.tsx +85 -0
  436. package/source/components/DialogPanel.tsx +54 -0
  437. package/source/components/DialogTitle.tsx +52 -0
  438. package/source/components/Error.tsx +58 -0
  439. package/source/components/Field.tsx +79 -0
  440. package/source/components/Fieldset.tsx +64 -0
  441. package/source/components/Form.tsx +72 -0
  442. package/source/components/Icon.tsx +102 -0
  443. package/source/components/Input.tsx +156 -0
  444. package/source/components/Label.tsx +49 -0
  445. package/source/components/Legend.tsx +49 -0
  446. package/source/components/Listbox.tsx +401 -0
  447. package/source/components/ListboxOption.tsx +95 -0
  448. package/source/components/Menu.tsx +50 -0
  449. package/source/components/MenuButton.tsx +69 -0
  450. package/source/components/MenuHeading.tsx +52 -0
  451. package/source/components/MenuItem.tsx +64 -0
  452. package/source/components/MenuItems.tsx +62 -0
  453. package/source/components/MenuSection.tsx +52 -0
  454. package/source/components/MenuSeparator.tsx +52 -0
  455. package/source/components/Popover.tsx +52 -0
  456. package/source/components/PopoverBackdrop.tsx +52 -0
  457. package/source/components/PopoverButton.tsx +72 -0
  458. package/source/components/PopoverGroup.tsx +52 -0
  459. package/source/components/PopoverPanel.tsx +65 -0
  460. package/source/components/Radio.tsx +88 -0
  461. package/source/components/RadioField.tsx +31 -0
  462. package/source/components/RadioGroup.tsx +147 -0
  463. package/source/components/Spinner.tsx +70 -0
  464. package/source/components/Table.ts +47 -0
  465. package/source/components/TableBody.ts +47 -0
  466. package/source/components/TableCaption.ts +52 -0
  467. package/source/components/TableCell.ts +47 -0
  468. package/source/components/TableFoot.ts +47 -0
  469. package/source/components/TableHead.ts +47 -0
  470. package/source/components/TableHeader.ts +47 -0
  471. package/source/components/TableRow.ts +47 -0
  472. package/source/components/Text.ts +64 -0
  473. package/source/components/Textarea.tsx +104 -0
  474. package/source/components/data-table/DataTable.tsx +377 -0
  475. package/source/components/data-table/DataTableColumnOrder.ts +5 -0
  476. package/source/components/data-table/DataTableColumnPinning.ts +5 -0
  477. package/source/components/data-table/DataTableColumnVisibility.ts +5 -0
  478. package/source/components/data-table/DataTableFaceting.ts +12 -0
  479. package/source/components/data-table/DataTableFilters.ts +18 -0
  480. package/source/components/data-table/DataTablePagination.ts +18 -0
  481. package/source/components/data-table/DataTableSearch.ts +5 -0
  482. package/source/components/data-table/DataTableSorting.ts +11 -0
  483. package/source/components/data-table/internals/DataTableHeader.tsx +254 -0
  484. package/source/components/data-table/internals/DataTableHeaderColumnCheckbox.tsx +44 -0
  485. package/source/components/data-table/internals/DataTableHeaderFilter.tsx +340 -0
  486. package/source/components/data-table/internals/DataTablePageButton.tsx +21 -0
  487. package/source/components/data-table/internals/DataTablePagination.tsx +220 -0
  488. package/source/components/data-table/internals/DataTableSearch.tsx +109 -0
  489. package/source/components/data-table/internals/addFilter.ts +42 -0
  490. package/source/components/data-table/internals/constants.ts +3 -0
  491. package/source/components/data-table/internals/fromPinningState.ts +17 -0
  492. package/source/components/data-table/internals/fuzzyFilter.ts +15 -0
  493. package/source/components/data-table/internals/getCommonPinningClasses.ts +19 -0
  494. package/source/components/data-table/internals/getCommonPinningStyles.ts +13 -0
  495. package/source/components/data-table/internals/normalizeFilter.ts +33 -0
  496. package/source/components/data-table/internals/normalizeFilters.ts +31 -0
  497. package/source/components/data-table/internals/normalizeSorting.ts +40 -0
  498. package/source/components/data-table/internals/removeFilter.ts +26 -0
  499. package/source/components/data-table/internals.ts +16 -0
  500. package/source/components/data-table.ts +9 -0
  501. package/source/components/internals/fieldContext.ts +4 -0
  502. package/source/components/internals/fieldNameContext.ts +5 -0
  503. package/source/components/internals/filterProps.ts +12 -0
  504. package/source/components/internals/formIdContext.ts +3 -0
  505. package/source/components/internals/forwardRef.ts +7 -0
  506. package/source/components/internals/useFormId.ts +7 -0
  507. package/source/components/internals.ts +6 -0
  508. package/source/components/useField.ts +7 -0
  509. package/source/components/useFieldName.ts +7 -0
  510. package/source/components/useForm.ts +24 -0
  511. package/source/components.ts +51 -0
  512. package/source/development/createTailwindConfig.ts +189 -0
  513. package/source/development/createTailwindMerge.ts +101 -0
  514. package/source/development/internals/PaletteConfig.ts +6 -0
  515. package/source/development/internals/SwatchValue.ts +9 -0
  516. package/source/development/internals/clamp.ts +3 -0
  517. package/source/development/internals/constants.ts +4 -0
  518. package/source/development/internals/createDisplayColor.ts +29 -0
  519. package/source/development/internals/createDistributionValues.ts +38 -0
  520. package/source/development/internals/createHueScale.ts +17 -0
  521. package/source/development/internals/createPalette.ts +54 -0
  522. package/source/development/internals/createSaturationScale.ts +21 -0
  523. package/source/development/internals/createSwatches.ts +34 -0
  524. package/source/development/internals/hexToHsl.ts +45 -0
  525. package/source/development/internals/hexToRgb.ts +23 -0
  526. package/source/development/internals/hslToHex.ts +23 -0
  527. package/source/development/internals/hslToRgb.ts +43 -0
  528. package/source/development/internals/isHex.ts +7 -0
  529. package/source/development/internals/resolveModule.ts +9 -0
  530. package/source/development/internals/round.ts +5 -0
  531. package/source/development/internals/unsignedModulo.ts +3 -0
  532. package/source/development/internals.ts +18 -0
  533. package/source/development.ts +2 -0
  534. package/source/inter-variable-italic.woff2 +0 -0
  535. package/source/inter-variable.woff2 +0 -0
  536. package/source/main.ts +5 -0
  537. package/source/styles.css +25 -0
  538. package/source/theme/Theme.ts +102 -0
  539. package/source/theme/ThemeProvider.tsx +12 -0
  540. package/source/theme/defaultTheme.ts +103 -0
  541. package/source/theme/internals/ClassName.ts +1 -0
  542. package/source/theme/internals/ComponentProps.ts +13 -0
  543. package/source/theme/internals/ComponentTheme.ts +50 -0
  544. package/source/theme/internals/ComponentThemeCompoundVariants.ts +20 -0
  545. package/source/theme/internals/ComponentThemeDefinition.ts +7 -0
  546. package/source/theme/internals/ComponentThemeDefinitionElements.ts +1 -0
  547. package/source/theme/internals/ComponentThemeDefinitionVariants.ts +3 -0
  548. package/source/theme/internals/ComponentThemeProps.ts +11 -0
  549. package/source/theme/internals/ComponentThemeVariants.ts +24 -0
  550. package/source/theme/internals/ComponentWithTheme.ts +6 -0
  551. package/source/theme/internals/UseComponentTheme.ts +22 -0
  552. package/source/theme/internals/UseComponentThemeReturn.ts +15 -0
  553. package/source/theme/internals/booleanToString.ts +6 -0
  554. package/source/theme/internals/createComponentTheme.ts +70 -0
  555. package/source/theme/internals/createUseComponentThemeReturn.ts +87 -0
  556. package/source/theme/internals/pickPropertyIfExists.ts +24 -0
  557. package/source/theme/internals/themeContext.ts +5 -0
  558. package/source/theme/internals/useTheme.ts +7 -0
  559. package/source/theme/internals.ts +18 -0
  560. package/source/theme.ts +3 -0
  561. package/source/utilities/WithLocaleOrLocales.ts +1 -0
  562. package/source/utilities/formatDateTime.ts +15 -0
  563. package/source/utilities/formatNumber.ts +15 -0
  564. package/source/utilities/internals/cache.ts +1 -0
  565. package/source/utilities/internals/createCacheKey.ts +9 -0
  566. package/source/utilities/internals/getMemoized.ts +14 -0
  567. package/source/utilities/internals/normalizeLocales.ts +15 -0
  568. package/source/utilities/internals.ts +4 -0
  569. package/source/utilities.ts +3 -0
@@ -0,0 +1,64 @@
1
+ import {
2
+ MenuItem as HeadlessMenuItem,
3
+ type MenuItemProps as HeadlessMenuItemProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const useMenuItemTheme = createComponentTheme('MenuItem', {
20
+ variants: {
21
+ disabled: [true, false],
22
+ },
23
+ });
24
+
25
+ const MENU_ITEM_ELEMENT = 'div';
26
+
27
+ export type MenuItemProps<T extends ElementType> = PropsWithChildren<
28
+ ComponentProps<typeof useMenuItemTheme> &
29
+ ComponentPropsWithoutRef<T> & {
30
+ as?: T | undefined;
31
+ className?: string;
32
+ }
33
+ >;
34
+
35
+ export const MenuItem = forwardRef(
36
+ <T extends ElementType = typeof MENU_ITEM_ELEMENT>(
37
+ {disabled = false, as = MENU_ITEM_ELEMENT as T, className, children, ...rest}: MenuItemProps<T>,
38
+ ref: Ref<HTMLElement>,
39
+ ) => {
40
+ let theme = useMenuItemTheme({disabled});
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
42
+ let props: HeadlessMenuItemProps<any> = filterProps({
43
+ as,
44
+ ref,
45
+ disabled,
46
+ className: theme(null, className),
47
+ 'data-component': 'menu-item',
48
+ ...rest,
49
+ });
50
+
51
+ return <HeadlessMenuItem {...props}>{children}</HeadlessMenuItem>;
52
+ },
53
+ );
54
+
55
+ export const menuItemTheme: ComponentTheme<typeof useMenuItemTheme> = {
56
+ className:
57
+ 'p-1 rounded-1 text-neutral-950 hover:bg-neutral-50 data-[active]:bg-neutral-50 text-sm transition-colors',
58
+ variants: {
59
+ disabled: {
60
+ true: 'text-neutral-200 hover:bg-transparent',
61
+ false: '',
62
+ },
63
+ },
64
+ };
@@ -0,0 +1,62 @@
1
+ import {
2
+ MenuItems as HeadlessMenuItems,
3
+ type MenuItemsProps as HeadlessMenuItemsProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const useMenuItemsTheme = createComponentTheme('MenuItems');
20
+
21
+ const MENU_ITEMS_ELEMENT = 'div';
22
+
23
+ export type MenuItemsProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof useMenuItemsTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ anchor?: HeadlessMenuItemsProps['anchor'] | undefined;
28
+ className?: string;
29
+ }
30
+ >;
31
+
32
+ export const MenuItems = forwardRef(
33
+ <T extends ElementType = typeof MENU_ITEMS_ELEMENT>(
34
+ {
35
+ as = MENU_ITEMS_ELEMENT as T,
36
+ anchor = 'bottom start',
37
+ className,
38
+ children,
39
+ ...rest
40
+ }: MenuItemsProps<T>,
41
+ ref: Ref<HTMLElement>,
42
+ ) => {
43
+ let theme = useMenuItemsTheme();
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
45
+ let props: HeadlessMenuItemsProps<any> = filterProps({
46
+ as,
47
+ ref,
48
+ anchor,
49
+ className: theme(null, className),
50
+ transition: true,
51
+ 'data-component': 'menu-items',
52
+ ...rest,
53
+ });
54
+
55
+ return <HeadlessMenuItems {...props}>{children}</HeadlessMenuItems>;
56
+ },
57
+ );
58
+
59
+ export const menuItemsTheme: ComponentTheme<typeof useMenuItemsTheme> = {
60
+ className:
61
+ 'flex flex-col gap-y-1 shadow p-1 z-30 rounded-2 border-2 border-neutral-100 hover:border-neutral-200 bg-white text-left [--anchor-gap:theme(spacing.1)] [--anchor-padding:theme(spacing.2)] [scrollbar-width:thin] empty:invisible transition-colors',
62
+ };
@@ -0,0 +1,52 @@
1
+ import {
2
+ MenuSection as HeadlessMenuSection,
3
+ type MenuSectionProps as HeadlessMenuSectionProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const useMenuSectionTheme = createComponentTheme('MenuSection');
20
+
21
+ const MENU_SECTION_ELEMENT = 'div';
22
+
23
+ export type MenuSectionProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof useMenuSectionTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ className?: string;
28
+ }
29
+ >;
30
+
31
+ export const MenuSection = forwardRef(
32
+ <T extends ElementType = typeof MENU_SECTION_ELEMENT>(
33
+ {as = MENU_SECTION_ELEMENT as T, className, children, ...rest}: MenuSectionProps<T>,
34
+ ref: Ref<HTMLElement>,
35
+ ) => {
36
+ let theme = useMenuSectionTheme();
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
38
+ let props: HeadlessMenuSectionProps<any> = filterProps({
39
+ as,
40
+ ref,
41
+ className: theme(null, className),
42
+ 'data-component': 'menu-section',
43
+ ...rest,
44
+ });
45
+
46
+ return <HeadlessMenuSection {...props}>{children}</HeadlessMenuSection>;
47
+ },
48
+ );
49
+
50
+ export const menuSectionTheme: ComponentTheme<typeof useMenuSectionTheme> = {
51
+ className: 'flex flex-col gap-y-1',
52
+ };
@@ -0,0 +1,52 @@
1
+ import {
2
+ MenuSeparator as HeadlessMenuSeparator,
3
+ type MenuSeparatorProps as HeadlessMenuSeparatorProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const useMenuSeparatorTheme = createComponentTheme('MenuSeparator');
20
+
21
+ const MENU_SEPARATOR_ELEMENT = 'div';
22
+
23
+ export type MenuSeparatorProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof useMenuSeparatorTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ className?: string;
28
+ }
29
+ >;
30
+
31
+ export const MenuSeparator = forwardRef(
32
+ <T extends ElementType = typeof MENU_SEPARATOR_ELEMENT>(
33
+ {as = MENU_SEPARATOR_ELEMENT as T, className, children, ...rest}: MenuSeparatorProps<T>,
34
+ ref: Ref<HTMLElement>,
35
+ ) => {
36
+ let theme = useMenuSeparatorTheme();
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
38
+ let props: HeadlessMenuSeparatorProps<any> = filterProps({
39
+ as,
40
+ ref,
41
+ className: theme(null, className),
42
+ 'data-component': 'menu-separator',
43
+ ...rest,
44
+ });
45
+
46
+ return <HeadlessMenuSeparator {...props}>{children}</HeadlessMenuSeparator>;
47
+ },
48
+ );
49
+
50
+ export const menuSeparatorTheme: ComponentTheme<typeof useMenuSeparatorTheme> = {
51
+ className: 'h-0 border-b-2 border-neutral-50 bg-transparent',
52
+ };
@@ -0,0 +1,52 @@
1
+ import {
2
+ Popover as HeadlessPopover,
3
+ type PopoverProps as HeadlessPopoverProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const usePopoverTheme = createComponentTheme('Popover');
20
+
21
+ const POPOVER_ELEMENT = 'div';
22
+
23
+ export type PopoverProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof usePopoverTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ className?: string;
28
+ }
29
+ >;
30
+
31
+ export const Popover = forwardRef(
32
+ <T extends ElementType = typeof POPOVER_ELEMENT>(
33
+ {as = POPOVER_ELEMENT as T, className, children, ...rest}: PopoverProps<T>,
34
+ ref: Ref<HTMLElement>,
35
+ ) => {
36
+ let theme = usePopoverTheme();
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
38
+ let props: HeadlessPopoverProps<any> = filterProps({
39
+ as,
40
+ ref,
41
+ className: theme(null, className),
42
+ 'data-component': 'popover',
43
+ ...rest,
44
+ });
45
+
46
+ return <HeadlessPopover {...props}>{children}</HeadlessPopover>;
47
+ },
48
+ );
49
+
50
+ export const popoverTheme: ComponentTheme<typeof usePopoverTheme> = {
51
+ className: '',
52
+ };
@@ -0,0 +1,52 @@
1
+ import {
2
+ PopoverBackdrop as HeadlessPopoverBackdrop,
3
+ type PopoverBackdropProps as HeadlessPopoverBackdropProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const usePopoverBackdropTheme = createComponentTheme('PopoverBackdrop');
20
+
21
+ const POPOVER_BACKDROP_ELEMENT = 'div';
22
+
23
+ export type PopoverBackdropProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof usePopoverBackdropTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ className?: string;
28
+ }
29
+ >;
30
+
31
+ export const PopoverBackdrop = forwardRef(
32
+ <T extends ElementType = typeof POPOVER_BACKDROP_ELEMENT>(
33
+ {as = POPOVER_BACKDROP_ELEMENT as T, className, children, ...rest}: PopoverBackdropProps<T>,
34
+ ref: Ref<HTMLElement>,
35
+ ) => {
36
+ let theme = usePopoverBackdropTheme();
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
38
+ let props: HeadlessPopoverBackdropProps<any> = filterProps({
39
+ as,
40
+ ref,
41
+ className: theme(null, className),
42
+ 'data-component': 'popover-backdrop',
43
+ ...rest,
44
+ });
45
+
46
+ return <HeadlessPopoverBackdrop {...props}>{children}</HeadlessPopoverBackdrop>;
47
+ },
48
+ );
49
+
50
+ export const popoverBackdropTheme: ComponentTheme<typeof usePopoverBackdropTheme> = {
51
+ className: '',
52
+ };
@@ -0,0 +1,72 @@
1
+ import {
2
+ PopoverButton as HeadlessPopoverButton,
3
+ type PopoverButtonProps as HeadlessPopoverButtonProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const usePopoverButtonTheme = createComponentTheme('PopoverButton', {
20
+ variants: {
21
+ disabled: [true, false],
22
+ },
23
+ });
24
+
25
+ const POPOVER_BUTTON_ELEMENT = 'div';
26
+
27
+ export type PopoverButtonProps<T extends ElementType> = PropsWithChildren<
28
+ ComponentProps<typeof usePopoverButtonTheme> &
29
+ ComponentPropsWithoutRef<T> & {
30
+ as?: T | undefined;
31
+ autoFocus?: boolean | undefined;
32
+ className?: string;
33
+ }
34
+ >;
35
+
36
+ export const PopoverButton = forwardRef(
37
+ <T extends ElementType = typeof POPOVER_BUTTON_ELEMENT>(
38
+ {
39
+ disabled = false,
40
+ as = POPOVER_BUTTON_ELEMENT as T,
41
+ autoFocus,
42
+ className,
43
+ children,
44
+ ...rest
45
+ }: PopoverButtonProps<T>,
46
+ ref: Ref<HTMLElement>,
47
+ ) => {
48
+ let theme = usePopoverButtonTheme({disabled});
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
50
+ let props: HeadlessPopoverButtonProps<any> = filterProps({
51
+ as,
52
+ ref,
53
+ disabled,
54
+ autoFocus,
55
+ className: theme(null, className),
56
+ 'data-component': 'popover-button',
57
+ ...rest,
58
+ });
59
+
60
+ return <HeadlessPopoverButton {...props}>{children}</HeadlessPopoverButton>;
61
+ },
62
+ );
63
+
64
+ export const popoverButtonTheme: ComponentTheme<typeof usePopoverButtonTheme> = {
65
+ className: '',
66
+ variants: {
67
+ disabled: {
68
+ true: '',
69
+ false: '',
70
+ },
71
+ },
72
+ };
@@ -0,0 +1,52 @@
1
+ import {
2
+ PopoverGroup as HeadlessPopoverGroup,
3
+ type PopoverGroupProps as HeadlessPopoverGroupProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const usePopoverGroupTheme = createComponentTheme('PopoverGroup');
20
+
21
+ const POPOVER_GROUP_ELEMENT = 'div';
22
+
23
+ export type PopoverGroupProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof usePopoverGroupTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ className?: string;
28
+ }
29
+ >;
30
+
31
+ export const PopoverGroup = forwardRef(
32
+ <T extends ElementType = typeof POPOVER_GROUP_ELEMENT>(
33
+ {as = POPOVER_GROUP_ELEMENT as T, className, children, ...rest}: PopoverGroupProps<T>,
34
+ ref: Ref<HTMLElement>,
35
+ ) => {
36
+ let theme = usePopoverGroupTheme();
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
38
+ let props: HeadlessPopoverGroupProps<any> = filterProps({
39
+ as,
40
+ ref,
41
+ className: theme(null, className),
42
+ 'data-component': 'popover-group',
43
+ ...rest,
44
+ });
45
+
46
+ return <HeadlessPopoverGroup {...props}>{children}</HeadlessPopoverGroup>;
47
+ },
48
+ );
49
+
50
+ export const popoverGroupTheme: ComponentTheme<typeof usePopoverGroupTheme> = {
51
+ className: '',
52
+ };
@@ -0,0 +1,65 @@
1
+ import {
2
+ PopoverPanel as HeadlessPopoverPanel,
3
+ type PopoverPanelProps as HeadlessPopoverPanelProps,
4
+ } from '@headlessui/react';
5
+ import {
6
+ type ComponentPropsWithoutRef,
7
+ type ElementType,
8
+ type PropsWithChildren,
9
+ type Ref,
10
+ } from 'react';
11
+
12
+ import {
13
+ type ComponentProps,
14
+ type ComponentTheme,
15
+ createComponentTheme,
16
+ } from '../theme/internals.js';
17
+ import {filterProps, forwardRef} from './internals.js';
18
+
19
+ export const usePopoverPanelTheme = createComponentTheme('PopoverPanel');
20
+
21
+ const POPOVER_PANEL_ELEMENT = 'div';
22
+
23
+ export type PopoverPanelProps<T extends ElementType> = PropsWithChildren<
24
+ ComponentProps<typeof usePopoverPanelTheme> &
25
+ ComponentPropsWithoutRef<T> & {
26
+ as?: T | undefined;
27
+ static?: boolean | undefined;
28
+ anchor?: HeadlessPopoverPanelProps['anchor'] | undefined;
29
+ className?: string;
30
+ }
31
+ >;
32
+
33
+ export const PopoverPanel = forwardRef(
34
+ <T extends ElementType = typeof POPOVER_PANEL_ELEMENT>(
35
+ {
36
+ as = POPOVER_PANEL_ELEMENT as T,
37
+ static: isStatic,
38
+ anchor = 'bottom start',
39
+ className,
40
+ children,
41
+ ...rest
42
+ }: PopoverPanelProps<T>,
43
+ ref: Ref<HTMLElement>,
44
+ ) => {
45
+ let theme = usePopoverPanelTheme();
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
47
+ let props: HeadlessPopoverPanelProps<any> = filterProps({
48
+ as,
49
+ ref,
50
+ static: isStatic,
51
+ anchor,
52
+ className: theme(null, className),
53
+ transition: true,
54
+ 'data-component': 'popover-panel',
55
+ ...rest,
56
+ });
57
+
58
+ return <HeadlessPopoverPanel {...props}>{children}</HeadlessPopoverPanel>;
59
+ },
60
+ );
61
+
62
+ export const popoverPanelTheme: ComponentTheme<typeof usePopoverPanelTheme> = {
63
+ className:
64
+ 'rounded-2 bg-white border-2 p-4 border-neutral-100 z-30 [--anchor-gap:theme(spacing.1)] [--anchor-padding:theme(spacing.2)] [scrollbar-width:thin]',
65
+ };
@@ -0,0 +1,88 @@
1
+ import {Radio as HeadlessRadio, type RadioProps as HeadlessRadioProps} from '@headlessui/react';
2
+ import {type ComponentPropsWithoutRef, type ElementType, type Ref} from 'react';
3
+
4
+ import {
5
+ type ComponentProps,
6
+ type ComponentTheme,
7
+ createComponentTheme,
8
+ } from '../theme/internals.js';
9
+ import {Icon} from './Icon.js';
10
+ import {forwardRef} from './internals.js';
11
+
12
+ export const useRadioTheme = createComponentTheme('Radio', {
13
+ variants: {
14
+ disabled: [true, false],
15
+ },
16
+ elements: ['root', 'icon'],
17
+ });
18
+
19
+ const RADIO_ELEMENT = 'span';
20
+
21
+ export type RadioProps<T extends ElementType, V extends boolean | number | string> = ComponentProps<
22
+ typeof useRadioTheme
23
+ > &
24
+ ComponentPropsWithoutRef<T> & {
25
+ as?: T | undefined;
26
+ value: V;
27
+ autoFocus?: boolean | undefined;
28
+ className?: string;
29
+ };
30
+
31
+ export const Radio = forwardRef(
32
+ <T extends ElementType = typeof RADIO_ELEMENT, V extends boolean | number | string = string>(
33
+ {
34
+ disabled = false,
35
+ as = RADIO_ELEMENT as T,
36
+ value,
37
+ autoFocus,
38
+ className,
39
+ ...rest
40
+ }: RadioProps<T, V>,
41
+ ref: Ref<HTMLElement>,
42
+ ) => {
43
+ let theme = useRadioTheme({disabled});
44
+
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed
46
+ let props: HeadlessRadioProps<any, V> = {
47
+ as,
48
+ ref,
49
+ value,
50
+ disabled,
51
+ autoFocus,
52
+ className: theme.root('relative', className),
53
+ 'data-component': 'radio',
54
+ ...rest,
55
+ };
56
+
57
+ return (
58
+ <HeadlessRadio {...props}>
59
+ <span className={theme.icon()}>
60
+ <Icon>
61
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" xmlSpace="preserve">
62
+ <circle cx="10" cy="10" r="4" fill="currentColor" />
63
+ </svg>
64
+ </Icon>
65
+ </span>
66
+ </HeadlessRadio>
67
+ );
68
+ },
69
+ );
70
+
71
+ export const radioTheme: ComponentTheme<typeof useRadioTheme> = {
72
+ classNames: {
73
+ root: 'group/radio inline-block size-5',
74
+ icon: 'flex justify-content justify-item size-5 *:rounded-full *:bg-white *:border-2 *:border-neutral-100 *:hover:border-neutral-200 *:shadow-inner *:transition-colors *:text-transparent *:hover:text-neutral-100 group-data-[checked]/radio:*:bg-neutral-950 group-data-[checked]/radio:*:border-neutral-950 group-data-[checked]/radio:*:text-white',
75
+ },
76
+ variants: {
77
+ disabled: {
78
+ true: {
79
+ root: 'border-neutral-100 text-neutral-200 cursor-not-allowed',
80
+ icon: 'opacity-0',
81
+ },
82
+ false: {
83
+ root: '',
84
+ icon: '',
85
+ },
86
+ },
87
+ },
88
+ };
@@ -0,0 +1,31 @@
1
+ import {Field as HeadlessField} from '@headlessui/react';
2
+ import {type PropsWithChildren} from 'react';
3
+
4
+ import {
5
+ type ComponentProps,
6
+ type ComponentTheme,
7
+ createComponentTheme,
8
+ } from '../theme/internals.js';
9
+
10
+ export const useRadioFieldTheme = createComponentTheme('RadioField');
11
+
12
+ export type RadioFieldProps = PropsWithChildren<
13
+ ComponentProps<typeof useRadioFieldTheme> & {
14
+ className?: string;
15
+ }
16
+ >;
17
+
18
+ export function RadioField({className, children}: RadioFieldProps) {
19
+ let theme = useRadioFieldTheme();
20
+
21
+ return (
22
+ <HeadlessField className={theme(null, className)} data-component="radio-field">
23
+ {children}
24
+ </HeadlessField>
25
+ );
26
+ }
27
+
28
+ export const radioFieldTheme: ComponentTheme<typeof useRadioFieldTheme> = {
29
+ className:
30
+ 'grid grid-cols-[theme(spacing.5)_1fr] gap-x-2 gap-y-1 [&>[data-component=description]]:col-start-2',
31
+ };