@jakubmazanec/ui 0.1.0-unstable.bbcd3f9 → 0.1.0-unstable.bd0959d

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 (404) hide show
  1. package/build/components/Button.d.ts +11 -8
  2. package/build/components/Button.js +87 -6
  3. package/build/components/Button.js.map +2 -2
  4. package/build/components/Card.d.ts +13 -4
  5. package/build/components/Card.js +23 -6
  6. package/build/components/Card.js.map +3 -3
  7. package/build/components/Checkbox.d.ts +9 -10
  8. package/build/components/Checkbox.js +30 -14
  9. package/build/components/Checkbox.js.map +2 -2
  10. package/build/components/CheckboxField.d.ts +2 -1
  11. package/build/components/CheckboxField.js +8 -3
  12. package/build/components/CheckboxField.js.map +2 -2
  13. package/build/components/Combobox.d.ts +7 -6
  14. package/build/components/Combobox.js +46 -7
  15. package/build/components/Combobox.js.map +2 -2
  16. package/build/components/ComboboxOption.d.ts +11 -6
  17. package/build/components/ComboboxOption.js +31 -5
  18. package/build/components/ComboboxOption.js.map +2 -2
  19. package/build/components/Container.d.ts +36 -0
  20. package/build/components/Container.js +63 -0
  21. package/build/components/Container.js.map +7 -0
  22. package/build/components/Description.d.ts +19 -0
  23. package/build/components/Description.js +28 -0
  24. package/build/components/Description.js.map +7 -0
  25. package/build/components/Dialog.d.ts +19 -5
  26. package/build/components/Dialog.js +48 -14
  27. package/build/components/Dialog.js.map +2 -2
  28. package/build/components/DialogPanel.d.ts +13 -4
  29. package/build/components/DialogPanel.js +25 -6
  30. package/build/components/DialogPanel.js.map +2 -2
  31. package/build/components/DialogTitle.d.ts +13 -4
  32. package/build/components/DialogTitle.js +24 -6
  33. package/build/components/DialogTitle.js.map +2 -2
  34. package/build/components/Error.d.ts +13 -4
  35. package/build/components/Error.js +31 -8
  36. package/build/components/Error.js.map +2 -2
  37. package/build/components/Field.d.ts +9 -4
  38. package/build/components/Field.js +26 -11
  39. package/build/components/Field.js.map +2 -2
  40. package/build/components/Fieldset.d.ts +15 -4
  41. package/build/components/Fieldset.js +31 -6
  42. package/build/components/Fieldset.js.map +2 -2
  43. package/build/components/Form.d.ts +15 -5
  44. package/build/components/Form.js +36 -7
  45. package/build/components/Form.js.map +3 -3
  46. package/build/components/Icon.d.ts +7 -3
  47. package/build/components/Icon.js +22 -3
  48. package/build/components/Icon.js.map +2 -2
  49. package/build/components/Input.d.ts +7 -6
  50. package/build/components/Input.js +35 -8
  51. package/build/components/Input.js.map +2 -2
  52. package/build/components/Label.d.ts +13 -4
  53. package/build/components/Label.js +21 -5
  54. package/build/components/Label.js.map +2 -2
  55. package/build/components/Legend.d.ts +13 -4
  56. package/build/components/Legend.js +21 -5
  57. package/build/components/Legend.js.map +2 -2
  58. package/build/components/Listbox.d.ts +9 -8
  59. package/build/components/Listbox.js +167 -93
  60. package/build/components/Listbox.js.map +2 -2
  61. package/build/components/ListboxOption.d.ts +11 -6
  62. package/build/components/ListboxOption.js +31 -5
  63. package/build/components/ListboxOption.js.map +2 -2
  64. package/build/components/Menu.d.ts +15 -4
  65. package/build/components/Menu.js +24 -5
  66. package/build/components/Menu.js.map +2 -2
  67. package/build/components/MenuButton.d.ts +23 -6
  68. package/build/components/MenuButton.js +42 -7
  69. package/build/components/MenuButton.js.map +2 -2
  70. package/build/components/MenuHeading.d.ts +19 -0
  71. package/build/components/MenuHeading.js +28 -0
  72. package/build/components/MenuHeading.js.map +7 -0
  73. package/build/components/MenuItem.d.ts +23 -6
  74. package/build/components/MenuItem.js +36 -7
  75. package/build/components/MenuItem.js.map +2 -2
  76. package/build/components/MenuItems.d.ts +16 -4
  77. package/build/components/MenuItems.js +32 -6
  78. package/build/components/MenuItems.js.map +2 -2
  79. package/build/components/MenuSection.d.ts +19 -0
  80. package/build/components/MenuSection.js +28 -0
  81. package/build/components/MenuSection.js.map +7 -0
  82. package/build/components/MenuSeparator.d.ts +19 -0
  83. package/build/components/MenuSeparator.js +28 -0
  84. package/build/components/MenuSeparator.js.map +7 -0
  85. package/build/components/Popover.d.ts +13 -4
  86. package/build/components/Popover.js +24 -6
  87. package/build/components/Popover.js.map +2 -2
  88. package/build/components/PopoverBackdrop.d.ts +19 -0
  89. package/build/components/PopoverBackdrop.js +28 -0
  90. package/build/components/PopoverBackdrop.js.map +7 -0
  91. package/build/components/PopoverButton.d.ts +25 -9
  92. package/build/components/PopoverButton.js +35 -16
  93. package/build/components/PopoverButton.js.map +2 -2
  94. package/build/components/PopoverGroup.d.ts +19 -0
  95. package/build/components/PopoverGroup.js +28 -0
  96. package/build/components/PopoverGroup.js.map +7 -0
  97. package/build/components/PopoverPanel.d.ts +17 -9
  98. package/build/components/PopoverPanel.js +31 -17
  99. package/build/components/PopoverPanel.js.map +2 -2
  100. package/build/components/Radio.d.ts +7 -8
  101. package/build/components/Radio.js +27 -23
  102. package/build/components/Radio.js.map +2 -2
  103. package/build/components/RadioField.d.ts +2 -1
  104. package/build/components/RadioField.js +7 -2
  105. package/build/components/RadioField.js.map +2 -2
  106. package/build/components/RadioGroup.d.ts +4 -3
  107. package/build/components/RadioGroup.js +14 -1
  108. package/build/components/RadioGroup.js.map +2 -2
  109. package/build/components/Spinner.d.ts +4 -4
  110. package/build/components/Spinner.js +31 -3
  111. package/build/components/Spinner.js.map +2 -2
  112. package/build/components/Table.d.ts +14 -6
  113. package/build/components/Table.js +23 -6
  114. package/build/components/Table.js.map +3 -3
  115. package/build/components/TableBody.d.ts +19 -0
  116. package/build/components/TableBody.js +26 -0
  117. package/build/components/TableBody.js.map +7 -0
  118. package/build/components/TableCaption.d.ts +19 -0
  119. package/build/components/TableCaption.js +31 -0
  120. package/build/components/TableCaption.js.map +7 -0
  121. package/build/components/TableCell.d.ts +13 -4
  122. package/build/components/TableCell.js +23 -6
  123. package/build/components/TableCell.js.map +3 -3
  124. package/build/components/TableFoot.d.ts +19 -0
  125. package/build/components/TableFoot.js +26 -0
  126. package/build/components/TableFoot.js.map +7 -0
  127. package/build/components/TableHead.d.ts +19 -0
  128. package/build/components/TableHead.js +26 -0
  129. package/build/components/TableHead.js.map +7 -0
  130. package/build/components/TableHeader.d.ts +13 -4
  131. package/build/components/TableHeader.js +23 -6
  132. package/build/components/TableHeader.js.map +3 -3
  133. package/build/components/TableRow.d.ts +13 -4
  134. package/build/components/TableRow.js +23 -6
  135. package/build/components/TableRow.js.map +3 -3
  136. package/build/components/Text.d.ts +27 -0
  137. package/build/components/Text.js +43 -0
  138. package/build/components/Text.js.map +7 -0
  139. package/build/components/Textarea.d.ts +5 -4
  140. package/build/components/Textarea.js +26 -2
  141. package/build/components/Textarea.js.map +2 -2
  142. package/build/components/data-table/DataTable.d.ts +39 -0
  143. package/build/components/data-table/DataTable.js +276 -0
  144. package/build/components/data-table/DataTable.js.map +7 -0
  145. package/build/components/data-table/DataTableColumnOrder.d.ts +3 -0
  146. package/build/components/data-table/DataTableColumnOrder.js +4 -0
  147. package/build/components/data-table/DataTableColumnOrder.js.map +7 -0
  148. package/build/components/data-table/DataTableColumnPinning.d.ts +3 -0
  149. package/build/components/data-table/DataTableColumnPinning.js +4 -0
  150. package/build/components/data-table/DataTableColumnPinning.js.map +7 -0
  151. package/build/components/data-table/DataTableColumnVisibility.d.ts +3 -0
  152. package/build/components/data-table/DataTableColumnVisibility.js +4 -0
  153. package/build/components/data-table/DataTableColumnVisibility.js.map +7 -0
  154. package/build/components/data-table/DataTableFaceting.d.ts +15 -0
  155. package/build/components/data-table/DataTableFaceting.js +11 -0
  156. package/build/components/data-table/DataTableFaceting.js.map +7 -0
  157. package/build/components/data-table/DataTableFilters.d.ts +12 -0
  158. package/build/components/data-table/DataTableFilters.js +15 -0
  159. package/build/components/data-table/DataTableFilters.js.map +7 -0
  160. package/build/components/data-table/DataTablePagination.d.ts +16 -0
  161. package/build/components/data-table/DataTablePagination.js +16 -0
  162. package/build/components/data-table/DataTablePagination.js.map +7 -0
  163. package/build/components/data-table/DataTableSearch.d.ts +3 -0
  164. package/build/components/data-table/DataTableSearch.js +4 -0
  165. package/build/components/data-table/DataTableSearch.js.map +7 -0
  166. package/build/components/data-table/DataTableSorting.d.ts +12 -0
  167. package/build/components/data-table/DataTableSorting.js +10 -0
  168. package/build/components/data-table/DataTableSorting.js.map +7 -0
  169. package/build/components/data-table/internals/DataTableHeader.d.ts +15 -0
  170. package/build/components/data-table/internals/DataTableHeader.js +194 -0
  171. package/build/components/data-table/internals/DataTableHeader.js.map +7 -0
  172. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.d.ts +6 -0
  173. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js +36 -0
  174. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js.map +7 -0
  175. package/build/components/data-table/internals/DataTableHeaderFilter.d.ts +12 -0
  176. package/build/components/data-table/internals/DataTableHeaderFilter.js +264 -0
  177. package/build/components/data-table/internals/DataTableHeaderFilter.js.map +7 -0
  178. package/build/components/data-table/internals/DataTablePageButton.d.ts +6 -0
  179. package/build/components/data-table/internals/DataTablePageButton.js +11 -0
  180. package/build/components/data-table/internals/DataTablePageButton.js.map +7 -0
  181. package/build/components/data-table/internals/DataTablePagination.d.ts +11 -0
  182. package/build/components/data-table/internals/DataTablePagination.js +190 -0
  183. package/build/components/data-table/internals/DataTablePagination.js.map +7 -0
  184. package/build/components/data-table/internals/DataTableSearch.d.ts +9 -0
  185. package/build/components/data-table/internals/DataTableSearch.js +73 -0
  186. package/build/components/data-table/internals/DataTableSearch.js.map +7 -0
  187. package/build/components/data-table/internals/addFilter.d.ts +5 -0
  188. package/build/components/data-table/internals/addFilter.js +31 -0
  189. package/build/components/data-table/internals/addFilter.js.map +7 -0
  190. package/build/components/data-table/internals/constants.d.ts +3 -0
  191. package/build/components/data-table/internals/constants.js +5 -0
  192. package/build/components/data-table/internals/constants.js.map +7 -0
  193. package/build/components/data-table/internals/fromPinningState.d.ts +2 -0
  194. package/build/components/data-table/internals/fromPinningState.js +12 -0
  195. package/build/components/data-table/internals/fromPinningState.js.map +7 -0
  196. package/build/components/data-table/internals/fuzzyFilter.d.ts +2 -0
  197. package/build/components/data-table/internals/fuzzyFilter.js +8 -0
  198. package/build/components/data-table/internals/fuzzyFilter.js.map +7 -0
  199. package/build/components/data-table/internals/getCommonPinningClasses.d.ts +2 -0
  200. package/build/components/data-table/internals/getCommonPinningClasses.js +13 -0
  201. package/build/components/data-table/internals/getCommonPinningClasses.js.map +7 -0
  202. package/build/components/data-table/internals/getCommonPinningStyles.d.ts +3 -0
  203. package/build/components/data-table/internals/getCommonPinningStyles.js +10 -0
  204. package/build/components/data-table/internals/getCommonPinningStyles.js.map +7 -0
  205. package/build/components/data-table/internals/normalizeFilter.d.ts +3 -0
  206. package/build/components/data-table/internals/normalizeFilter.js +19 -0
  207. package/build/components/data-table/internals/normalizeFilter.js.map +7 -0
  208. package/build/components/data-table/internals/normalizeFilters.d.ts +3 -0
  209. package/build/components/data-table/internals/normalizeFilters.js +18 -0
  210. package/build/components/data-table/internals/normalizeFilters.js.map +7 -0
  211. package/build/components/data-table/internals/normalizeSorting.d.ts +4 -0
  212. package/build/components/data-table/internals/normalizeSorting.js +26 -0
  213. package/build/components/data-table/internals/normalizeSorting.js.map +7 -0
  214. package/build/components/data-table/internals/removeFilter.d.ts +5 -0
  215. package/build/components/data-table/internals/removeFilter.js +18 -0
  216. package/build/components/data-table/internals/removeFilter.js.map +7 -0
  217. package/build/components/data-table/internals.d.ts +16 -0
  218. package/build/components/data-table/internals.js +18 -0
  219. package/build/components/data-table/internals.js.map +7 -0
  220. package/build/components/data-table.d.ts +9 -0
  221. package/build/components/data-table.js +11 -0
  222. package/build/components/data-table.js.map +7 -0
  223. package/build/components/internals/fieldContext.d.ts +0 -1
  224. package/build/components/internals/fieldNameContext.d.ts +0 -1
  225. package/build/components/internals/filterProps.d.ts +4 -0
  226. package/build/components/internals/filterProps.js +9 -0
  227. package/build/components/internals/filterProps.js.map +7 -0
  228. package/build/components/internals/formIdContext.d.ts +0 -1
  229. package/build/components/internals.d.ts +1 -0
  230. package/build/components/internals.js +1 -0
  231. package/build/components/internals.js.map +2 -2
  232. package/build/components/useForm.js +1 -0
  233. package/build/components/useForm.js.map +2 -2
  234. package/build/components.d.ts +13 -1
  235. package/build/components.js +13 -1
  236. package/build/components.js.map +2 -2
  237. package/build/development/createTailwindConfig.js +21 -36
  238. package/build/development/createTailwindConfig.js.map +2 -2
  239. package/build/development/createTailwindMerge.js.map +2 -2
  240. package/build/development/internals.d.ts +17 -0
  241. package/build/development/internals.js +17 -0
  242. package/build/development/internals.js.map +2 -2
  243. package/build/main.d.ts +2 -0
  244. package/build/main.js +2 -0
  245. package/build/main.js.map +2 -2
  246. package/build/styles.css +4 -1
  247. package/build/styles.css.map +2 -2
  248. package/build/theme/Theme.d.ts +110 -10
  249. package/build/theme/defaultTheme.js +98 -369
  250. package/build/theme/defaultTheme.js.map +2 -2
  251. package/build/theme/internals/ComponentTheme.d.ts +11 -1
  252. package/build/theme/internals/ComponentWithTheme.d.ts +5 -0
  253. package/build/theme/internals/ComponentWithTheme.js +2 -0
  254. package/build/theme/internals/ComponentWithTheme.js.map +7 -0
  255. package/build/theme/internals/createComponentTheme.js +3 -0
  256. package/build/theme/internals/createComponentTheme.js.map +2 -2
  257. package/build/theme/internals/createUseComponentThemeReturn.d.ts +1 -1
  258. package/build/theme/internals/createUseComponentThemeReturn.js +1 -2
  259. package/build/theme/internals/createUseComponentThemeReturn.js.map +2 -2
  260. package/build/theme/internals/themeContext.d.ts +114 -29
  261. package/build/theme/internals/useTheme.d.ts +114 -28
  262. package/build/theme/internals.d.ts +1 -1
  263. package/build/theme/internals.js +1 -1
  264. package/build/theme/internals.js.map +1 -1
  265. package/build/utilities/WithLocaleOrLocales.d.ts +5 -0
  266. package/build/utilities/WithLocaleOrLocales.js +2 -0
  267. package/build/utilities/WithLocaleOrLocales.js.map +7 -0
  268. package/build/utilities/formatDateTime.d.ts +3 -0
  269. package/build/utilities/formatDateTime.js +11 -0
  270. package/build/utilities/formatDateTime.js.map +7 -0
  271. package/build/utilities/formatNumber.d.ts +3 -0
  272. package/build/utilities/formatNumber.js +11 -0
  273. package/build/utilities/formatNumber.js.map +7 -0
  274. package/build/utilities/internals/cache.d.ts +1 -0
  275. package/build/utilities/internals/cache.js +3 -0
  276. package/build/utilities/internals/cache.js.map +7 -0
  277. package/build/utilities/internals/createCacheKey.d.ts +1 -0
  278. package/build/utilities/internals/createCacheKey.js +6 -0
  279. package/build/utilities/internals/createCacheKey.js.map +7 -0
  280. package/build/utilities/internals/getMemoized.d.ts +1 -0
  281. package/build/utilities/internals/getMemoized.js +12 -0
  282. package/build/utilities/internals/getMemoized.js.map +7 -0
  283. package/build/utilities/internals/normalizeLocales.d.ts +2 -0
  284. package/build/utilities/internals/normalizeLocales.js +12 -0
  285. package/build/utilities/internals/normalizeLocales.js.map +7 -0
  286. package/build/utilities/internals.d.ts +4 -0
  287. package/build/utilities/internals.js +6 -0
  288. package/build/utilities/internals.js.map +7 -0
  289. package/build/utilities.d.ts +3 -0
  290. package/build/utilities.js +5 -0
  291. package/build/utilities.js.map +7 -0
  292. package/package.json +45 -39
  293. package/source/components/Button.tsx +96 -6
  294. package/source/components/Card.ts +46 -0
  295. package/source/components/Checkbox.tsx +37 -14
  296. package/source/components/CheckboxField.tsx +16 -3
  297. package/source/components/Combobox.tsx +53 -9
  298. package/source/components/ComboboxOption.tsx +36 -3
  299. package/source/components/Container.ts +84 -0
  300. package/source/components/Description.tsx +52 -0
  301. package/source/components/Dialog.tsx +75 -24
  302. package/source/components/DialogPanel.tsx +47 -11
  303. package/source/components/DialogTitle.tsx +45 -11
  304. package/source/components/Error.tsx +49 -18
  305. package/source/components/Field.tsx +57 -26
  306. package/source/components/Fieldset.tsx +53 -15
  307. package/source/components/Form.tsx +65 -24
  308. package/source/components/Icon.tsx +24 -2
  309. package/source/components/Input.tsx +49 -9
  310. package/source/components/Label.tsx +42 -11
  311. package/source/components/Legend.tsx +42 -11
  312. package/source/components/Listbox.tsx +97 -31
  313. package/source/components/ListboxOption.tsx +36 -3
  314. package/source/components/Menu.tsx +43 -12
  315. package/source/components/MenuButton.tsx +63 -12
  316. package/source/components/MenuHeading.tsx +52 -0
  317. package/source/components/MenuItem.tsx +58 -13
  318. package/source/components/MenuItems.tsx +55 -11
  319. package/source/components/MenuSection.tsx +52 -0
  320. package/source/components/MenuSeparator.tsx +52 -0
  321. package/source/components/Popover.tsx +45 -11
  322. package/source/components/PopoverBackdrop.tsx +52 -0
  323. package/source/components/PopoverButton.tsx +53 -28
  324. package/source/components/PopoverGroup.tsx +52 -0
  325. package/source/components/PopoverPanel.tsx +54 -26
  326. package/source/components/Radio.tsx +35 -17
  327. package/source/components/RadioField.tsx +15 -2
  328. package/source/components/RadioGroup.tsx +17 -1
  329. package/source/components/Spinner.tsx +35 -4
  330. package/source/components/Table.ts +47 -0
  331. package/source/components/TableBody.ts +47 -0
  332. package/source/components/TableCaption.ts +52 -0
  333. package/source/components/TableCell.ts +47 -0
  334. package/source/components/TableFoot.ts +47 -0
  335. package/source/components/TableHead.ts +47 -0
  336. package/source/components/TableHeader.ts +47 -0
  337. package/source/components/TableRow.ts +47 -0
  338. package/source/components/Text.ts +64 -0
  339. package/source/components/Textarea.tsx +29 -1
  340. package/source/components/data-table/DataTable.tsx +379 -0
  341. package/source/components/data-table/DataTableColumnOrder.ts +5 -0
  342. package/source/components/data-table/DataTableColumnPinning.ts +5 -0
  343. package/source/components/data-table/DataTableColumnVisibility.ts +5 -0
  344. package/source/components/data-table/DataTableFaceting.ts +12 -0
  345. package/source/components/data-table/DataTableFilters.ts +18 -0
  346. package/source/components/data-table/DataTablePagination.ts +18 -0
  347. package/source/components/data-table/DataTableSearch.ts +5 -0
  348. package/source/components/data-table/DataTableSorting.ts +11 -0
  349. package/source/components/data-table/internals/DataTableHeader.tsx +254 -0
  350. package/source/components/data-table/internals/DataTableHeaderColumnCheckbox.tsx +44 -0
  351. package/source/components/data-table/internals/DataTableHeaderFilter.tsx +340 -0
  352. package/source/components/data-table/internals/DataTablePageButton.tsx +21 -0
  353. package/source/components/data-table/internals/DataTablePagination.tsx +220 -0
  354. package/source/components/data-table/internals/DataTableSearch.tsx +109 -0
  355. package/source/components/data-table/internals/addFilter.ts +42 -0
  356. package/source/components/data-table/internals/constants.ts +3 -0
  357. package/source/components/data-table/internals/fromPinningState.ts +17 -0
  358. package/source/components/data-table/internals/fuzzyFilter.ts +15 -0
  359. package/source/components/data-table/internals/getCommonPinningClasses.ts +19 -0
  360. package/source/components/data-table/internals/getCommonPinningStyles.ts +13 -0
  361. package/source/components/data-table/internals/normalizeFilter.ts +33 -0
  362. package/source/components/data-table/internals/normalizeFilters.ts +31 -0
  363. package/source/components/data-table/internals/normalizeSorting.ts +40 -0
  364. package/source/components/data-table/internals/removeFilter.ts +26 -0
  365. package/source/components/data-table/internals.ts +16 -0
  366. package/source/components/data-table.ts +9 -0
  367. package/source/components/internals/filterProps.ts +12 -0
  368. package/source/components/internals.ts +1 -0
  369. package/source/components/useForm.ts +1 -0
  370. package/source/components.ts +13 -1
  371. package/source/development/createTailwindConfig.ts +17 -44
  372. package/source/development/createTailwindMerge.ts +2 -2
  373. package/source/development/internals.ts +17 -0
  374. package/source/main.ts +2 -0
  375. package/source/styles.css +5 -1
  376. package/source/theme/Theme.ts +62 -44
  377. package/source/theme/defaultTheme.ts +99 -417
  378. package/source/theme/internals/ComponentTheme.ts +18 -1
  379. package/source/theme/internals/ComponentWithTheme.ts +6 -0
  380. package/source/theme/internals/createComponentTheme.ts +3 -0
  381. package/source/theme/internals/createUseComponentThemeReturn.ts +1 -1
  382. package/source/theme/internals.ts +1 -1
  383. package/source/utilities/WithLocaleOrLocales.ts +1 -0
  384. package/source/utilities/formatDateTime.ts +15 -0
  385. package/source/utilities/formatNumber.ts +15 -0
  386. package/source/utilities/internals/cache.ts +1 -0
  387. package/source/utilities/internals/createCacheKey.ts +9 -0
  388. package/source/utilities/internals/getMemoized.ts +14 -0
  389. package/source/utilities/internals/normalizeLocales.ts +15 -0
  390. package/source/utilities/internals.ts +4 -0
  391. package/source/utilities.ts +3 -0
  392. package/build/components/TableHeaderCell.d.ts +0 -10
  393. package/build/components/TableHeaderCell.js +0 -9
  394. package/build/components/TableHeaderCell.js.map +0 -7
  395. package/build/theme/internals/cx.d.ts +0 -2
  396. package/build/theme/internals/cx.js +0 -6
  397. package/build/theme/internals/cx.js.map +0 -7
  398. package/source/components/Card.tsx +0 -17
  399. package/source/components/Table.tsx +0 -18
  400. package/source/components/TableCell.tsx +0 -17
  401. package/source/components/TableHeader.tsx +0 -17
  402. package/source/components/TableHeaderCell.tsx +0 -17
  403. package/source/components/TableRow.tsx +0 -17
  404. package/source/theme/internals/cx.ts +0 -10
@@ -1,37 +1,40 @@
1
1
  import { type ButtonProps as HeadlessButtonProps } from '@headlessui/react';
2
2
  import { type ComponentPropsWithoutRef, type ElementType, type Ref } from 'react';
3
- import { type ComponentProps } from '../theme/internals.js';
3
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
4
4
  export declare const useButtonTheme: ((themeProps: {
5
- readonly variant: "text" | "solid" | "outline";
5
+ readonly variant: "text" | "solid" | "outline" | "invisible";
6
6
  readonly size: "small" | "medium" | "large";
7
7
  readonly disabled: boolean;
8
8
  }) => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
9
9
  componentThemeName: "Button";
10
10
  themeDefinition: {
11
11
  readonly variants: {
12
- readonly variant: ["solid", "outline", "text"];
12
+ readonly variant: ["solid", "outline", "text", "invisible"];
13
13
  readonly size: ["small", "medium", "large"];
14
14
  readonly disabled: [true, false];
15
15
  };
16
16
  };
17
17
  };
18
- export type ButtonProps<T extends ElementType> = ComponentProps<typeof useButtonTheme> & ComponentPropsWithoutRef<T> & {
18
+ export type ButtonProps<T extends ElementType> = ComponentProps<typeof useButtonTheme> & Omit<ComponentPropsWithoutRef<T>, 'type'> & {
19
19
  as?: T | undefined;
20
20
  submit?: boolean | undefined;
21
+ idle?: boolean | undefined;
21
22
  autoFocus?: boolean | undefined;
22
23
  className?: string | undefined;
23
24
  children?: HeadlessButtonProps['children'] | undefined;
24
25
  };
25
26
  export declare const Button: <T extends ElementType = "button">(props: Partial<import("@jakubmazanec/ts-utils").Writable<{
26
- readonly variant: "text" | "solid" | "outline";
27
+ readonly variant: "text" | "solid" | "outline" | "invisible";
27
28
  readonly size: "small" | "medium" | "large";
28
29
  readonly disabled: boolean;
29
- }>> & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
30
+ }>> & Omit<import("react").PropsWithoutRef<import("react").ComponentProps<T>>, "type"> & {
30
31
  as?: T | undefined;
31
32
  submit?: boolean | undefined;
33
+ idle?: boolean | undefined;
32
34
  autoFocus?: boolean | undefined;
33
35
  className?: string | undefined;
34
- children?: HeadlessButtonProps['children'] | undefined;
36
+ children?: HeadlessButtonProps["children"] | undefined;
35
37
  } & {
36
38
  ref?: Ref<HTMLElement> | undefined;
37
- }) => import("react").ReactNode;
39
+ }) => React.ReactNode;
40
+ export declare const buttonTheme: ComponentTheme<typeof useButtonTheme>;
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
- import { jsx } from "react/jsx-runtime";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { Button as HeadlessButton } from "@headlessui/react";
4
4
  import {
5
5
  Children,
6
6
  cloneElement,
7
7
  isValidElement
8
8
  } from "react";
9
- import { createComponentTheme } from "../theme/internals.js";
9
+ import {
10
+ createComponentTheme
11
+ } from "../theme/internals.js";
10
12
  import { Icon } from "./Icon.js";
11
13
  import { forwardRef } from "./internals.js";
12
14
  import { Spinner } from "./Spinner.js";
13
15
  export const useButtonTheme = createComponentTheme("Button", {
14
16
  variants: {
15
- variant: ["solid", "outline", "text"],
17
+ variant: ["solid", "outline", "text", "invisible"],
16
18
  size: ["small", "medium", "large"],
17
19
  disabled: [true, false]
18
20
  }
@@ -24,6 +26,8 @@ export const Button = forwardRef(
24
26
  size = "medium",
25
27
  disabled = false,
26
28
  as = BUTTON_ELEMENT,
29
+ idle = true,
30
+ autoFocus = false,
27
31
  submit = false,
28
32
  className,
29
33
  children,
@@ -33,8 +37,10 @@ export const Button = forwardRef(
33
37
  let props = {
34
38
  as,
35
39
  ref,
36
- className: theme(null, className),
37
- disabled,
40
+ className: theme(disabled ? "pointer-events-none" : null, className),
41
+ disabled: disabled || submit && !idle,
42
+ autoFocus,
43
+ "data-component": "button",
38
44
  ...rest
39
45
  };
40
46
  if (as === BUTTON_ELEMENT) {
@@ -52,7 +58,82 @@ export const Button = forwardRef(
52
58
  }
53
59
  return child;
54
60
  });
55
- return /* @__PURE__ */ jsx(HeadlessButton, { ...props, children: enhancedChildren });
61
+ return /* @__PURE__ */ jsxs(HeadlessButton, { ...props, children: [
62
+ submit && !idle ? /* @__PURE__ */ jsx(Spinner, { "data-icon": true }) : null,
63
+ enhancedChildren
64
+ ] });
56
65
  }
57
66
  );
67
+ export const buttonTheme = {
68
+ className: "rounded-2 flex items-center justify-center text-nowrap font-sans font-medium text-sm transition-colors",
69
+ variants: {
70
+ variant: {
71
+ solid: "text-white bg-neutral-900 hover:bg-neutral-800",
72
+ outline: "text-neutral-950 border-2 border-neutral-100 hover:border-neutral-200",
73
+ text: "text-neutral-950 border-2 border-transparent hover:border-neutral-200",
74
+ invisible: "cursor-default text-neutral-200 hover:text-neutral-600 select-none"
75
+ },
76
+ size: {
77
+ small: "text-sm leading-6 px-2.5 h-8 min-w-8 gap-x-2",
78
+ medium: "leading-6 px-2.5 h-9 min-w-9 gap-x-2",
79
+ large: "text-lg leading-6 px-3 h-10 min-w-10 gap-x-2"
80
+ },
81
+ disabled: {
82
+ true: "",
83
+ false: ""
84
+ }
85
+ },
86
+ compoundVariants: [
87
+ {
88
+ variant: "solid",
89
+ size: "small",
90
+ className: "px-3"
91
+ },
92
+ {
93
+ variant: "solid",
94
+ size: "medium",
95
+ className: "px-3"
96
+ },
97
+ {
98
+ variant: "solid",
99
+ size: "large",
100
+ className: "px-3.5"
101
+ },
102
+ {
103
+ variant: "invisible",
104
+ size: "small",
105
+ className: "text-xs px-2 h-5 min-w-5"
106
+ },
107
+ {
108
+ variant: "invisible",
109
+ size: "medium",
110
+ className: "px-2 h-6 min-w-6"
111
+ },
112
+ {
113
+ variant: "invisible",
114
+ size: "large",
115
+ className: "px-2 h-7 min-w-7"
116
+ },
117
+ {
118
+ variant: "solid",
119
+ disabled: true,
120
+ className: "text-white bg-neutral-200 hover:bg-neutral-200"
121
+ },
122
+ {
123
+ variant: "outline",
124
+ disabled: true,
125
+ className: "text-neutral-200 hover:border-neutral-100"
126
+ },
127
+ {
128
+ variant: "text",
129
+ disabled: true,
130
+ className: "text-neutral-200 hover:border-transparent"
131
+ },
132
+ {
133
+ variant: "invisible",
134
+ disabled: true,
135
+ className: "text-neutral-200 "
136
+ }
137
+ ]
138
+ };
58
139
  //# sourceMappingURL=Button.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../source/components/Button.tsx"],
4
- "sourcesContent": ["import {Button as HeadlessButton, type ButtonProps as HeadlessButtonProps} from '@headlessui/react';\nimport {\n Children,\n cloneElement,\n type ComponentPropsWithoutRef,\n type ElementType,\n isValidElement,\n type Ref,\n} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {Icon} from './Icon.js';\nimport {forwardRef} from './internals.js';\nimport {Spinner} from './Spinner.js';\n\nexport const useButtonTheme = createComponentTheme('Button', {\n variants: {\n variant: ['solid', 'outline', 'text'],\n size: ['small', 'medium', 'large'],\n disabled: [true, false],\n },\n});\n\nconst BUTTON_ELEMENT = 'button';\n\nexport type ButtonProps<T extends ElementType> = ComponentProps<typeof useButtonTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n submit?: boolean | undefined;\n autoFocus?: boolean | undefined;\n className?: string | undefined;\n children?: HeadlessButtonProps['children'] | undefined; // sadly, we cannot use `T`'s children type, because Headless UI always, if `children` is function, calls it with its own render props documented here: https://headlessui.com/react/button#using-render-props\n };\n\nexport const Button = forwardRef(\n <T extends ElementType = typeof BUTTON_ELEMENT>(\n {\n variant = 'solid',\n size = 'medium',\n disabled = false,\n as = BUTTON_ELEMENT as T,\n submit = false,\n className,\n children,\n ...rest\n }: ButtonProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useButtonTheme({variant, size, disabled});\n\n let props: Record<string, unknown> = {\n as,\n ref,\n className: theme(null, className),\n disabled,\n ...rest,\n };\n\n if (as === BUTTON_ELEMENT) {\n props.type = 'button';\n }\n\n if (submit) {\n props.type = 'submit';\n }\n\n if (typeof children === 'function') {\n return <HeadlessButton {...props}>{children}</HeadlessButton>;\n }\n\n let enhancedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && (child.type === Icon || child.type === Spinner)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n return cloneElement<any>(child, {'data-icon': ''});\n }\n\n return child;\n });\n\n return <HeadlessButton {...props}>{enhancedChildren}</HeadlessButton>;\n },\n);\n"],
5
- "mappings": ";AAmEa;AAnEb,SAAQ,UAAU,sBAA8D;AAChF;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,OAEK;AAEP,SAA6B,4BAA2B;AACxD,SAAQ,YAAW;AACnB,SAAQ,kBAAiB;AACzB,SAAQ,eAAc;AAEf,aAAM,iBAAiB,qBAAqB,UAAU;AAAA,EAC3D,UAAU;AAAA,IACR,SAAS,CAAC,SAAS,WAAW,MAAM;AAAA,IACpC,MAAM,CAAC,SAAS,UAAU,OAAO;AAAA,IACjC,UAAU,CAAC,MAAM,KAAK;AAAA,EACxB;AACF,CAAC;AAED,MAAM,iBAAiB;AAWhB,aAAM,SAAS;AAAA,EACpB,CACE;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,WAAW;AAAA,IACX,KAAK;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,eAAe,EAAC,SAAS,MAAM,SAAQ,CAAC;AAEpD,QAAI,QAAiC;AAAA,MACnC;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC;AAAA,MACA,GAAG;AAAA,IACL;AAEA,QAAI,OAAO,gBAAgB;AACzB,YAAM,OAAO;AAAA,IACf;AAEA,QAAI,QAAQ;AACV,YAAM,OAAO;AAAA,IACf;AAEA,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO,oBAAC,kBAAgB,GAAG,OAAQ,UAAS;AAAA,IAC9C;AAEA,QAAI,mBAAmB,SAAS,IAAI,UAAU,CAAC,UAAU;AACvD,UAAI,eAAe,KAAK,MAAM,MAAM,SAAS,QAAQ,MAAM,SAAS,UAAU;AAE5E,eAAO,aAAkB,OAAO,EAAC,aAAa,GAAE,CAAC;AAAA,MACnD;AAEA,aAAO;AAAA,IACT,CAAC;AAED,WAAO,oBAAC,kBAAgB,GAAG,OAAQ,4BAAiB;AAAA,EACtD;AACF;",
4
+ "sourcesContent": ["import {Button as HeadlessButton, type ButtonProps as HeadlessButtonProps} from '@headlessui/react';\nimport {\n Children,\n cloneElement,\n type ComponentPropsWithoutRef,\n type ElementType,\n isValidElement,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {Icon} from './Icon.js';\nimport {forwardRef} from './internals.js';\nimport {Spinner} from './Spinner.js';\n\nexport const useButtonTheme = createComponentTheme('Button', {\n variants: {\n variant: ['solid', 'outline', 'text', 'invisible'],\n size: ['small', 'medium', 'large'],\n disabled: [true, false],\n },\n});\n\nconst BUTTON_ELEMENT = 'button';\n\nexport type ButtonProps<T extends ElementType> = ComponentProps<typeof useButtonTheme> &\n Omit<ComponentPropsWithoutRef<T>, 'type'> & {\n as?: T | undefined;\n submit?: boolean | undefined;\n idle?: boolean | undefined;\n autoFocus?: boolean | undefined;\n className?: string | undefined;\n children?: HeadlessButtonProps['children'] | undefined; // sadly, we cannot use `T`'s children type, because Headless UI always, if `children` is function, calls it with its own render props documented here: https://headlessui.com/react/button#using-render-props\n };\n\nexport const Button = forwardRef(\n <T extends ElementType = typeof BUTTON_ELEMENT>(\n {\n variant = 'solid',\n size = 'medium',\n disabled = false,\n as = BUTTON_ELEMENT as T,\n idle = true,\n autoFocus = false,\n submit = false,\n className,\n children,\n ...rest\n }: ButtonProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useButtonTheme({variant, size, disabled});\n\n let props: Record<string, unknown> = {\n as,\n ref,\n className: theme(disabled ? 'pointer-events-none' : null, className),\n disabled: disabled || (submit && !idle),\n autoFocus,\n 'data-component': 'button',\n ...rest,\n };\n\n if (as === BUTTON_ELEMENT) {\n props.type = 'button';\n }\n\n if (submit) {\n props.type = 'submit';\n }\n\n if (typeof children === 'function') {\n return <HeadlessButton {...props}>{children}</HeadlessButton>;\n }\n\n let enhancedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && (child.type === Icon || child.type === Spinner)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n return cloneElement<any>(child, {'data-icon': ''});\n }\n\n return child;\n });\n\n return (\n <HeadlessButton {...props}>\n {submit && !idle ?\n <Spinner data-icon />\n : null}\n {enhancedChildren}\n </HeadlessButton>\n );\n },\n);\n\nexport const buttonTheme: ComponentTheme<typeof useButtonTheme> = {\n className:\n 'rounded-2 flex items-center justify-center text-nowrap font-sans font-medium text-sm transition-colors',\n variants: {\n variant: {\n solid: 'text-white bg-neutral-900 hover:bg-neutral-800',\n outline: 'text-neutral-950 border-2 border-neutral-100 hover:border-neutral-200',\n text: 'text-neutral-950 border-2 border-transparent hover:border-neutral-200',\n invisible: 'cursor-default text-neutral-200 hover:text-neutral-600 select-none',\n },\n size: {\n small: 'text-sm leading-6 px-2.5 h-8 min-w-8 gap-x-2',\n medium: 'leading-6 px-2.5 h-9 min-w-9 gap-x-2',\n large: 'text-lg leading-6 px-3 h-10 min-w-10 gap-x-2',\n },\n disabled: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n variant: 'solid',\n size: 'small',\n className: 'px-3',\n },\n {\n variant: 'solid',\n size: 'medium',\n className: 'px-3',\n },\n {\n variant: 'solid',\n size: 'large',\n className: 'px-3.5',\n },\n {\n variant: 'invisible',\n size: 'small',\n className: 'text-xs px-2 h-5 min-w-5',\n },\n {\n variant: 'invisible',\n size: 'medium',\n className: 'px-2 h-6 min-w-6',\n },\n {\n variant: 'invisible',\n size: 'large',\n className: 'px-2 h-7 min-w-7',\n },\n {\n variant: 'solid',\n disabled: true,\n className: 'text-white bg-neutral-200 hover:bg-neutral-200',\n },\n {\n variant: 'outline',\n disabled: true,\n className: 'text-neutral-200 hover:border-neutral-100',\n },\n {\n variant: 'text',\n disabled: true,\n className: 'text-neutral-200 hover:border-transparent',\n },\n {\n variant: 'invisible',\n disabled: true,\n className: 'text-neutral-200 ',\n },\n ],\n};\n"],
5
+ "mappings": ";AA4Ea,cAaP,YAbO;AA5Eb,SAAQ,UAAU,sBAA8D;AAChF;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,OAEK;AAEP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,YAAW;AACnB,SAAQ,kBAAiB;AACzB,SAAQ,eAAc;AAEf,aAAM,iBAAiB,qBAAqB,UAAU;AAAA,EAC3D,UAAU;AAAA,IACR,SAAS,CAAC,SAAS,WAAW,QAAQ,WAAW;AAAA,IACjD,MAAM,CAAC,SAAS,UAAU,OAAO;AAAA,IACjC,UAAU,CAAC,MAAM,KAAK;AAAA,EACxB;AACF,CAAC;AAED,MAAM,iBAAiB;AAYhB,aAAM,SAAS;AAAA,EACpB,CACE;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,WAAW;AAAA,IACX,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,eAAe,EAAC,SAAS,MAAM,SAAQ,CAAC;AAEpD,QAAI,QAAiC;AAAA,MACnC;AAAA,MACA;AAAA,MACA,WAAW,MAAM,WAAW,wBAAwB,MAAM,SAAS;AAAA,MACnE,UAAU,YAAa,UAAU,CAAC;AAAA,MAClC;AAAA,MACA,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL;AAEA,QAAI,OAAO,gBAAgB;AACzB,YAAM,OAAO;AAAA,IACf;AAEA,QAAI,QAAQ;AACV,YAAM,OAAO;AAAA,IACf;AAEA,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO,oBAAC,kBAAgB,GAAG,OAAQ,UAAS;AAAA,IAC9C;AAEA,QAAI,mBAAmB,SAAS,IAAI,UAAU,CAAC,UAAU;AACvD,UAAI,eAAe,KAAK,MAAM,MAAM,SAAS,QAAQ,MAAM,SAAS,UAAU;AAE5E,eAAO,aAAkB,OAAO,EAAC,aAAa,GAAE,CAAC;AAAA,MACnD;AAEA,aAAO;AAAA,IACT,CAAC;AAED,WACE,qBAAC,kBAAgB,GAAG,OACjB;AAAA,gBAAU,CAAC,OACV,oBAAC,WAAQ,aAAS,MAAC,IACnB;AAAA,MACD;AAAA,OACH;AAAA,EAEJ;AACF;AAEO,aAAM,cAAqD;AAAA,EAChE,WACE;AAAA,EACF,UAAU;AAAA,IACR,SAAS;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,10 +1,19 @@
1
- import { type PropsWithChildren } from 'react';
2
- import { type ComponentProps } from '../theme/internals.js';
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
3
  export declare const useCardTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
4
4
  componentThemeName: "Card";
5
5
  themeDefinition: undefined;
6
6
  };
7
- export type CardProps = PropsWithChildren<ComponentProps<typeof useCardTheme> & {
7
+ export type CardProps<T extends ElementType> = ComponentProps<typeof useCardTheme> & ComponentPropsWithoutRef<T> & PropsWithChildren<{
8
+ as?: T | undefined;
8
9
  className?: string;
9
10
  }>;
10
- export declare function Card({ className, children }: CardProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare const Card: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
12
+ as?: T | undefined;
13
+ className?: string;
14
+ } & {
15
+ children?: import("react").ReactNode | undefined;
16
+ } & {
17
+ ref?: Ref<HTMLElement> | undefined;
18
+ }) => React.ReactNode;
19
+ export declare const cardTheme: ComponentTheme<typeof useCardTheme>;
@@ -1,9 +1,26 @@
1
1
  "use strict";
2
- import { jsx } from "react/jsx-runtime";
3
- import { createComponentTheme } from "../theme/internals.js";
2
+ import {
3
+ createElement
4
+ } from "react";
5
+ import {
6
+ createComponentTheme
7
+ } from "../theme/internals.js";
8
+ import { forwardRef } from "./internals.js";
4
9
  export const useCardTheme = createComponentTheme("Card");
5
- export function Card({ className, children }) {
6
- let theme = useCardTheme();
7
- return /* @__PURE__ */ jsx("div", { className: theme(null, className), children });
8
- }
10
+ const CARD_ELEMENT = "div";
11
+ export const Card = forwardRef(
12
+ ({ as: Component = CARD_ELEMENT, className, children, ...rest }, ref) => {
13
+ let theme = useCardTheme();
14
+ let props = {
15
+ ref,
16
+ className: theme(null, className),
17
+ "data-component": "card",
18
+ ...rest
19
+ };
20
+ return createElement(Component, props, children);
21
+ }
22
+ );
23
+ export const cardTheme = {
24
+ className: "rounded-2 border border-neutral-100 p-4"
25
+ };
9
26
  //# sourceMappingURL=Card.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../source/components/Card.tsx"],
4
- "sourcesContent": ["import {type PropsWithChildren} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\n\nexport const useCardTheme = createComponentTheme('Card');\n\nexport type CardProps = PropsWithChildren<\n ComponentProps<typeof useCardTheme> & {\n className?: string;\n }\n>;\n\nexport function Card({className, children}: CardProps) {\n let theme = useCardTheme();\n\n return <div className={theme(null, className)}>{children}</div>;\n}\n"],
5
- "mappings": ";AAeS;AAbT,SAA6B,4BAA2B;AAEjD,aAAM,eAAe,qBAAqB,MAAM;AAQhD,gBAAS,KAAK,EAAC,WAAW,SAAQ,GAAc;AACrD,MAAI,QAAQ,aAAa;AAEzB,SAAO,oBAAC,SAAI,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS;AAC3D;",
3
+ "sources": ["../../source/components/Card.ts"],
4
+ "sourcesContent": ["import {\n type ComponentPropsWithoutRef,\n createElement,\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 {forwardRef} from './internals.js';\n\nexport const useCardTheme = createComponentTheme('Card');\n\nconst CARD_ELEMENT = 'div';\n\nexport type CardProps<T extends ElementType> = ComponentProps<typeof useCardTheme> &\n ComponentPropsWithoutRef<T> &\n PropsWithChildren<{\n as?: T | undefined;\n className?: string;\n }>;\n\nexport const Card = forwardRef(\n <T extends ElementType = typeof CARD_ELEMENT>(\n {as: Component = CARD_ELEMENT as T, className, children, ...rest}: CardProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useCardTheme();\n let props = {\n ref,\n className: theme(null, className),\n 'data-component': 'card',\n ...rest,\n };\n\n return createElement(Component, props, children);\n },\n);\n\nexport const cardTheme: ComponentTheme<typeof useCardTheme> = {\n className: 'rounded-2 border border-neutral-100 p-4',\n};\n"],
5
+ "mappings": ";AAAA;AAAA,EAEE;AAAA,OAIK;AAEP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,kBAAiB;AAElB,aAAM,eAAe,qBAAqB,MAAM;AAEvD,MAAM,eAAe;AASd,aAAM,OAAO;AAAA,EAClB,CACE,EAAC,IAAI,YAAY,cAAmB,WAAW,UAAU,GAAG,KAAI,GAChE,QACG;AACH,QAAI,QAAQ,aAAa;AACzB,QAAI,QAAQ;AAAA,MACV;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL;AAEA,WAAO,cAAc,WAAW,OAAO,QAAQ;AAAA,EACjD;AACF;AAEO,aAAM,YAAiD;AAAA,EAC5D,WAAW;AACb;",
6
6
  "names": []
7
7
  }
@@ -1,22 +1,20 @@
1
1
  import { type ComponentPropsWithoutRef, type ElementType, type Ref } from 'react';
2
- import { type ComponentProps } from '../theme/internals.js';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
3
  export declare const useCheckboxTheme: ((themeProps: {
4
4
  readonly disabled: boolean;
5
5
  }) => {
6
- root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
7
- checked: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
8
- unchecked: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
9
6
  icon: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
7
+ root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
10
8
  }) & {
11
9
  componentThemeName: "Checkbox";
12
10
  themeDefinition: {
13
11
  readonly variants: {
14
12
  readonly disabled: [true, false];
15
13
  };
16
- readonly elements: ["root", "checked", "unchecked", "icon"];
14
+ readonly elements: ["root", "icon"];
17
15
  };
18
16
  };
19
- export type CheckboxProps<T extends ElementType> = ComponentProps<typeof useCheckboxTheme> & ComponentPropsWithoutRef<T> & {
17
+ export type CheckboxProps<T extends ElementType> = ComponentProps<typeof useCheckboxTheme> & Omit<ComponentPropsWithoutRef<T>, 'onChange'> & {
20
18
  as?: T | undefined;
21
19
  checked?: boolean | undefined;
22
20
  indeterminate?: boolean | undefined;
@@ -27,14 +25,15 @@ export type CheckboxProps<T extends ElementType> = ComponentProps<typeof useChec
27
25
  };
28
26
  export declare const Checkbox: <T extends ElementType = "span">(props: Partial<import("@jakubmazanec/ts-utils").Writable<{
29
27
  readonly disabled: boolean;
30
- }>> & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
28
+ }>> & Omit<import("react").PropsWithoutRef<import("react").ComponentProps<T>>, "onChange"> & {
31
29
  as?: T | undefined;
32
30
  checked?: boolean | undefined;
33
31
  indeterminate?: boolean | undefined;
34
32
  autoFocus?: boolean | undefined;
35
- name?: string | undefined;
36
- className?: string | undefined;
33
+ name?: string;
34
+ className?: string;
37
35
  onChange?: ((checked: boolean) => void) | undefined;
38
36
  } & {
39
37
  ref?: Ref<HTMLElement> | undefined;
40
- }) => import("react").ReactNode;
38
+ }) => React.ReactNode;
39
+ export declare const checkboxTheme: ComponentTheme<typeof useCheckboxTheme>;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
- import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
3
  import {
4
4
  Checkbox as HeadlessCheckbox
5
5
  } from "@headlessui/react";
6
- import { CheckIcon } from "@heroicons/react/16/solid";
7
6
  import { useCallback } from "react";
8
- import { createComponentTheme } from "../theme/internals.js";
7
+ import {
8
+ createComponentTheme
9
+ } from "../theme/internals.js";
10
+ import { Icon } from "./Icon.js";
9
11
  import { forwardRef, useFormId } from "./internals.js";
10
12
  import { useField } from "./useField.js";
11
13
  import { useFieldName } from "./useFieldName.js";
@@ -13,7 +15,7 @@ export const useCheckboxTheme = createComponentTheme("Checkbox", {
13
15
  variants: {
14
16
  disabled: [true, false]
15
17
  },
16
- elements: ["root", "checked", "unchecked", "icon"]
18
+ elements: ["root", "icon"]
17
19
  });
18
20
  const CHECKBOX_ELEMENT = "span";
19
21
  export const Checkbox = forwardRef(
@@ -43,13 +45,11 @@ export const Checkbox = forwardRef(
43
45
  name: field?.name ?? fieldName,
44
46
  indeterminate,
45
47
  autoFocus,
46
- className: theme.root("group relative", className),
48
+ className: theme.root("relative", className),
49
+ "data-component": "checkbox",
47
50
  ...rest
48
51
  };
49
- return /* @__PURE__ */ jsxs(HeadlessCheckbox, { ...props2, children: [
50
- /* @__PURE__ */ jsx("div", { className: theme.checked(), children: /* @__PURE__ */ jsx(CheckIcon, { className: theme.icon() }) }),
51
- /* @__PURE__ */ jsx("div", { className: theme.unchecked() })
52
- ] });
52
+ return /* @__PURE__ */ jsx(HeadlessCheckbox, { ...props2, children: /* @__PURE__ */ jsx("span", { className: theme.icon(), children: /* @__PURE__ */ jsx(Icon, { name: "Check" }) }) });
53
53
  }
54
54
  let props = {
55
55
  as,
@@ -58,14 +58,30 @@ export const Checkbox = forwardRef(
58
58
  name,
59
59
  indeterminate,
60
60
  autoFocus,
61
- className: theme.root("group relative", className),
61
+ className: theme.root("relative", className),
62
+ "data-component": "checkbox",
62
63
  onChange: handleChange,
63
64
  ...rest
64
65
  };
65
- return /* @__PURE__ */ jsxs(HeadlessCheckbox, { ...props, children: [
66
- /* @__PURE__ */ jsx("div", { className: theme.checked(), children: /* @__PURE__ */ jsx(CheckIcon, { className: theme.icon() }) }),
67
- /* @__PURE__ */ jsx("div", { className: theme.unchecked() })
68
- ] });
66
+ return /* @__PURE__ */ jsx(HeadlessCheckbox, { ...props, children: /* @__PURE__ */ jsx("span", { className: theme.icon(), children: /* @__PURE__ */ jsx(Icon, { name: "Check" }) }) });
69
67
  }
70
68
  );
69
+ export const checkboxTheme = {
70
+ classNames: {
71
+ root: "group/checkbox inline-block size-5 cursor-pointer",
72
+ icon: "flex justify-content justify-item size-5 *:rounded-2 *:bg-white *:border-2 *:border-neutral-100 *:hover:border-neutral-200 *:shadow-inner *:transition-colors *:text-transparent *:hover:text-neutral-100 group-data-[checked]/checkbox:*:bg-neutral-950 group-data-[checked]/checkbox:*:border-neutral-950 group-data-[checked]/checkbox:*:text-white"
73
+ },
74
+ variants: {
75
+ disabled: {
76
+ true: {
77
+ root: "cursor-not-allowed",
78
+ icon: "*:hover:text-transparent *:border-neutral-50 *:hover:border-neutral-50 group-data-[checked]/checkbox:*:bg-neutral-100 group-data-[checked]/checkbox:*:border-neutral-100 group-data-[checked]/checkbox:*:text-white"
79
+ },
80
+ false: {
81
+ root: "",
82
+ icon: ""
83
+ }
84
+ }
85
+ }
86
+ };
71
87
  //# sourceMappingURL=Checkbox.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../source/components/Checkbox.tsx"],
4
- "sourcesContent": ["import {\n Checkbox as HeadlessCheckbox,\n type CheckboxProps as HeadlessCheckboxProps,\n} from '@headlessui/react';\nimport {CheckIcon} from '@heroicons/react/16/solid';\nimport {type ComponentPropsWithoutRef, type ElementType, type Ref, useCallback} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {forwardRef, useFormId} from './internals.js';\nimport {useField} from './useField.js';\nimport {useFieldName} from './useFieldName.js';\n\nexport const useCheckboxTheme = createComponentTheme('Checkbox', {\n variants: {\n disabled: [true, false],\n },\n elements: ['root', 'checked', 'unchecked', 'icon'],\n});\n\nconst CHECKBOX_ELEMENT = 'span';\n\nexport type CheckboxProps<T extends ElementType> = ComponentProps<typeof useCheckboxTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n checked?: boolean | undefined;\n indeterminate?: boolean | undefined;\n autoFocus?: boolean | undefined;\n name?: string;\n className?: string;\n onChange?: ((checked: boolean) => void) | undefined;\n };\n\nexport const Checkbox = forwardRef(\n <T extends ElementType = typeof CHECKBOX_ELEMENT>(\n {\n disabled = false,\n as = CHECKBOX_ELEMENT as T,\n checked,\n indeterminate,\n autoFocus,\n name,\n className,\n onChange,\n ...rest\n }: CheckboxProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useCheckboxTheme({disabled});\n let fieldName = useFieldName();\n let field = useField();\n let formId = useFormId();\n\n let handleChange = useCallback(() => {\n onChange?.(!checked);\n }, [checked, onChange]);\n\n if (field || fieldName) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessCheckboxProps<any> = {\n as,\n ref,\n form: formId,\n name: field?.name ?? fieldName,\n indeterminate,\n autoFocus,\n className: theme.root('group relative', className),\n ...rest,\n };\n\n return (\n <HeadlessCheckbox {...props}>\n <div className={theme.checked()}>\n <CheckIcon className={theme.icon()} />\n </div>\n <div className={theme.unchecked()} />\n </HeadlessCheckbox>\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessCheckboxProps<any> = {\n as,\n ref,\n checked: Boolean(checked),\n name,\n indeterminate,\n autoFocus,\n className: theme.root('group relative', className),\n onChange: handleChange,\n ...rest,\n };\n\n return (\n <HeadlessCheckbox {...props}>\n <div className={theme.checked()}>\n <CheckIcon className={theme.icon()} />\n </div>\n <div className={theme.unchecked()} />\n </HeadlessCheckbox>\n );\n },\n);\n"],
5
- "mappings": ";AAsEQ,SAEI,KAFJ;AAtER;AAAA,EACE,YAAY;AAAA,OAEP;AACP,SAAQ,iBAAgB;AACxB,SAAmE,mBAAkB;AAErF,SAA6B,4BAA2B;AACxD,SAAQ,YAAY,iBAAgB;AACpC,SAAQ,gBAAe;AACvB,SAAQ,oBAAmB;AAEpB,aAAM,mBAAmB,qBAAqB,YAAY;AAAA,EAC/D,UAAU;AAAA,IACR,UAAU,CAAC,MAAM,KAAK;AAAA,EACxB;AAAA,EACA,UAAU,CAAC,QAAQ,WAAW,aAAa,MAAM;AACnD,CAAC;AAED,MAAM,mBAAmB;AAalB,aAAM,WAAW;AAAA,EACtB,CACE;AAAA,IACE,WAAW;AAAA,IACX,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,iBAAiB,EAAC,SAAQ,CAAC;AACvC,QAAI,YAAY,aAAa;AAC7B,QAAI,QAAQ,SAAS;AACrB,QAAI,SAAS,UAAU;AAEvB,QAAI,eAAe,YAAY,MAAM;AACnC,iBAAW,CAAC,OAAO;AAAA,IACrB,GAAG,CAAC,SAAS,QAAQ,CAAC;AAEtB,QAAI,SAAS,WAAW;AAEtB,UAAIA,SAAoC;AAAA,QACtC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,MAAM,OAAO,QAAQ;AAAA,QACrB;AAAA,QACA;AAAA,QACA,WAAW,MAAM,KAAK,kBAAkB,SAAS;AAAA,QACjD,GAAG;AAAA,MACL;AAEA,aACE,qBAAC,oBAAkB,GAAGA,QACpB;AAAA,4BAAC,SAAI,WAAW,MAAM,QAAQ,GAC5B,8BAAC,aAAU,WAAW,MAAM,KAAK,GAAG,GACtC;AAAA,QACA,oBAAC,SAAI,WAAW,MAAM,UAAU,GAAG;AAAA,SACrC;AAAA,IAEJ;AAGA,QAAI,QAAoC;AAAA,MACtC;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,MAAM,KAAK,kBAAkB,SAAS;AAAA,MACjD,UAAU;AAAA,MACV,GAAG;AAAA,IACL;AAEA,WACE,qBAAC,oBAAkB,GAAG,OACpB;AAAA,0BAAC,SAAI,WAAW,MAAM,QAAQ,GAC5B,8BAAC,aAAU,WAAW,MAAM,KAAK,GAAG,GACtC;AAAA,MACA,oBAAC,SAAI,WAAW,MAAM,UAAU,GAAG;AAAA,OACrC;AAAA,EAEJ;AACF;",
4
+ "sourcesContent": ["import {\n Checkbox as HeadlessCheckbox,\n type CheckboxProps as HeadlessCheckboxProps,\n} from '@headlessui/react';\nimport {type ComponentPropsWithoutRef, type ElementType, type Ref, useCallback} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {Icon} from './Icon.js';\nimport {forwardRef, useFormId} from './internals.js';\nimport {useField} from './useField.js';\nimport {useFieldName} from './useFieldName.js';\n\nexport const useCheckboxTheme = createComponentTheme('Checkbox', {\n variants: {\n disabled: [true, false],\n },\n elements: ['root', 'icon'],\n});\n\nconst CHECKBOX_ELEMENT = 'span';\n\nexport type CheckboxProps<T extends ElementType> = ComponentProps<typeof useCheckboxTheme> &\n Omit<ComponentPropsWithoutRef<T>, 'onChange'> & {\n as?: T | undefined;\n checked?: boolean | undefined;\n indeterminate?: boolean | undefined;\n autoFocus?: boolean | undefined;\n name?: string;\n className?: string;\n onChange?: ((checked: boolean) => void) | undefined;\n };\n\nexport const Checkbox = forwardRef(\n <T extends ElementType = typeof CHECKBOX_ELEMENT>(\n {\n disabled = false,\n as = CHECKBOX_ELEMENT as T,\n checked,\n indeterminate,\n autoFocus,\n name,\n className,\n onChange,\n ...rest\n }: CheckboxProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useCheckboxTheme({disabled});\n let fieldName = useFieldName();\n let field = useField();\n let formId = useFormId();\n\n let handleChange = useCallback(() => {\n onChange?.(!checked);\n }, [checked, onChange]);\n\n if (field || fieldName) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessCheckboxProps<any> = {\n as,\n ref,\n form: formId,\n name: field?.name ?? fieldName,\n indeterminate,\n autoFocus,\n className: theme.root('relative', className),\n 'data-component': 'checkbox',\n ...rest,\n };\n\n return (\n <HeadlessCheckbox {...props}>\n <span className={theme.icon()}>\n <Icon name=\"Check\" />\n </span>\n </HeadlessCheckbox>\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessCheckboxProps<any> = {\n as,\n ref,\n checked: Boolean(checked),\n name,\n indeterminate,\n autoFocus,\n className: theme.root('relative', className),\n 'data-component': 'checkbox',\n onChange: handleChange,\n ...rest,\n };\n\n return (\n <HeadlessCheckbox {...props}>\n <span className={theme.icon()}>\n <Icon name=\"Check\" />\n </span>\n </HeadlessCheckbox>\n );\n },\n);\n\nexport const checkboxTheme: ComponentTheme<typeof useCheckboxTheme> = {\n classNames: {\n root: 'group/checkbox inline-block size-5 cursor-pointer',\n icon: 'flex justify-content justify-item size-5 *:rounded-2 *:bg-white *:border-2 *:border-neutral-100 *:hover:border-neutral-200 *:shadow-inner *:transition-colors *:text-transparent *:hover:text-neutral-100 group-data-[checked]/checkbox:*:bg-neutral-950 group-data-[checked]/checkbox:*:border-neutral-950 group-data-[checked]/checkbox:*:text-white',\n },\n variants: {\n disabled: {\n true: {\n root: 'cursor-not-allowed',\n icon: '*:hover:text-transparent *:border-neutral-50 *:hover:border-neutral-50 group-data-[checked]/checkbox:*:bg-neutral-100 group-data-[checked]/checkbox:*:border-neutral-100 group-data-[checked]/checkbox:*:text-white',\n },\n false: {\n root: '',\n icon: '',\n },\n },\n },\n};\n"],
5
+ "mappings": ";AA6EY;AA7EZ;AAAA,EACE,YAAY;AAAA,OAEP;AACP,SAAmE,mBAAkB;AAErF;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,YAAW;AACnB,SAAQ,YAAY,iBAAgB;AACpC,SAAQ,gBAAe;AACvB,SAAQ,oBAAmB;AAEpB,aAAM,mBAAmB,qBAAqB,YAAY;AAAA,EAC/D,UAAU;AAAA,IACR,UAAU,CAAC,MAAM,KAAK;AAAA,EACxB;AAAA,EACA,UAAU,CAAC,QAAQ,MAAM;AAC3B,CAAC;AAED,MAAM,mBAAmB;AAalB,aAAM,WAAW;AAAA,EACtB,CACE;AAAA,IACE,WAAW;AAAA,IACX,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,iBAAiB,EAAC,SAAQ,CAAC;AACvC,QAAI,YAAY,aAAa;AAC7B,QAAI,QAAQ,SAAS;AACrB,QAAI,SAAS,UAAU;AAEvB,QAAI,eAAe,YAAY,MAAM;AACnC,iBAAW,CAAC,OAAO;AAAA,IACrB,GAAG,CAAC,SAAS,QAAQ,CAAC;AAEtB,QAAI,SAAS,WAAW;AAEtB,UAAIA,SAAoC;AAAA,QACtC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,MAAM,OAAO,QAAQ;AAAA,QACrB;AAAA,QACA;AAAA,QACA,WAAW,MAAM,KAAK,YAAY,SAAS;AAAA,QAC3C,kBAAkB;AAAA,QAClB,GAAG;AAAA,MACL;AAEA,aACE,oBAAC,oBAAkB,GAAGA,QACpB,8BAAC,UAAK,WAAW,MAAM,KAAK,GAC1B,8BAAC,QAAK,MAAK,SAAQ,GACrB,GACF;AAAA,IAEJ;AAGA,QAAI,QAAoC;AAAA,MACtC;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,MAAM,KAAK,YAAY,SAAS;AAAA,MAC3C,kBAAkB;AAAA,MAClB,UAAU;AAAA,MACV,GAAG;AAAA,IACL;AAEA,WACE,oBAAC,oBAAkB,GAAG,OACpB,8BAAC,UAAK,WAAW,MAAM,KAAK,GAC1B,8BAAC,QAAK,MAAK,SAAQ,GACrB,GACF;AAAA,EAEJ;AACF;AAEO,aAAM,gBAAyD;AAAA,EACpE,YAAY;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACR,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,MACA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": ["props"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { type FieldMetadata, type FieldName } from '@conform-to/react';
2
2
  import { type PropsWithChildren } from 'react';
3
- import { type ComponentProps } from '../theme/internals.js';
3
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
4
4
  export declare const useCheckboxFieldTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
5
5
  componentThemeName: "CheckboxField";
6
6
  themeDefinition: undefined;
@@ -15,3 +15,4 @@ export type CheckboxFieldProps = PropsWithChildren<ComponentProps<typeof useChec
15
15
  name?: FieldName<any, any> | string | undefined;
16
16
  })>;
17
17
  export declare function CheckboxField({ field, name, className, children }: CheckboxFieldProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare const checkboxFieldTheme: ComponentTheme<typeof useCheckboxFieldTheme>;
@@ -1,17 +1,22 @@
1
1
  "use strict";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { Field as HeadlessField } from "@headlessui/react";
4
- import { createComponentTheme } from "../theme/internals.js";
4
+ import {
5
+ createComponentTheme
6
+ } from "../theme/internals.js";
5
7
  import { fieldContext, fieldNameContext } from "./internals.js";
6
8
  export const useCheckboxFieldTheme = createComponentTheme("CheckboxField");
7
9
  export function CheckboxField({ field, name, className, children }) {
8
10
  let theme = useCheckboxFieldTheme();
9
11
  if (field) {
10
- return /* @__PURE__ */ jsx(fieldContext.Provider, { value: field, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), children }) });
12
+ return /* @__PURE__ */ jsx(fieldContext.Provider, { value: field, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), "data-component": "checkbox-field", children }) });
11
13
  }
12
14
  if (name) {
13
- return /* @__PURE__ */ jsx(fieldNameContext.Provider, { value: name, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), children }) });
15
+ return /* @__PURE__ */ jsx(fieldNameContext.Provider, { value: name, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), "data-component": "checkbox-field", children }) });
14
16
  }
15
17
  return /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), children });
16
18
  }
19
+ export const checkboxFieldTheme = {
20
+ className: "grid grid-cols-[theme(spacing.5)_1fr] gap-x-2 gap-y-1 [&>[data-component=description]]:col-start-2"
21
+ };
17
22
  //# sourceMappingURL=CheckboxField.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../source/components/CheckboxField.tsx"],
4
- "sourcesContent": ["import {type FieldMetadata, type FieldName} from '@conform-to/react';\nimport {Field as HeadlessField} from '@headlessui/react';\nimport {type PropsWithChildren} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {fieldContext, fieldNameContext} from './internals.js';\n\nexport const useCheckboxFieldTheme = createComponentTheme('CheckboxField');\n\nexport type CheckboxFieldProps = PropsWithChildren<\n ComponentProps<typeof useCheckboxFieldTheme> &\n (\n | {\n className?: string | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n field?: FieldMetadata<any, any> | undefined;\n name?: undefined;\n }\n | {\n className?: string | undefined;\n field?: undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n name?: FieldName<any, any> | string | undefined;\n }\n )\n>;\n\nexport function CheckboxField({field, name, className, children}: CheckboxFieldProps) {\n let theme = useCheckboxFieldTheme();\n\n if (field) {\n return (\n <fieldContext.Provider value={field}>\n <HeadlessField className={theme(null, className)}>{children}</HeadlessField>\n </fieldContext.Provider>\n );\n }\n\n if (name) {\n return (\n <fieldNameContext.Provider value={name}>\n <HeadlessField className={theme(null, className)}>{children}</HeadlessField>\n </fieldNameContext.Provider>\n );\n }\n\n return <HeadlessField className={theme(null, className)}>{children}</HeadlessField>;\n}\n"],
5
- "mappings": ";AAiCQ;AAhCR,SAAQ,SAAS,qBAAoB;AAGrC,SAA6B,4BAA2B;AACxD,SAAQ,cAAc,wBAAuB;AAEtC,aAAM,wBAAwB,qBAAqB,eAAe;AAoBlE,gBAAS,cAAc,EAAC,OAAO,MAAM,WAAW,SAAQ,GAAuB;AACpF,MAAI,QAAQ,sBAAsB;AAElC,MAAI,OAAO;AACT,WACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAC5B,8BAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS,GAC9D;AAAA,EAEJ;AAEA,MAAI,MAAM;AACR,WACE,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,MAChC,8BAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS,GAC9D;AAAA,EAEJ;AAEA,SAAO,oBAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS;AACrE;",
4
+ "sourcesContent": ["import {type FieldMetadata, type FieldName} from '@conform-to/react';\nimport {Field as HeadlessField} from '@headlessui/react';\nimport {type PropsWithChildren} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {fieldContext, fieldNameContext} from './internals.js';\n\nexport const useCheckboxFieldTheme = createComponentTheme('CheckboxField');\n\nexport type CheckboxFieldProps = PropsWithChildren<\n ComponentProps<typeof useCheckboxFieldTheme> &\n (\n | {\n className?: string | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n field?: FieldMetadata<any, any> | undefined;\n name?: undefined;\n }\n | {\n className?: string | undefined;\n field?: undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n name?: FieldName<any, any> | string | undefined;\n }\n )\n>;\n\nexport function CheckboxField({field, name, className, children}: CheckboxFieldProps) {\n let theme = useCheckboxFieldTheme();\n\n if (field) {\n return (\n <fieldContext.Provider value={field}>\n <HeadlessField className={theme(null, className)} data-component=\"checkbox-field\">\n {children}\n </HeadlessField>\n </fieldContext.Provider>\n );\n }\n\n if (name) {\n return (\n <fieldNameContext.Provider value={name}>\n <HeadlessField className={theme(null, className)} data-component=\"checkbox-field\">\n {children}\n </HeadlessField>\n </fieldNameContext.Provider>\n );\n }\n\n return <HeadlessField className={theme(null, className)}>{children}</HeadlessField>;\n}\n\nexport const checkboxFieldTheme: ComponentTheme<typeof useCheckboxFieldTheme> = {\n className:\n 'grid grid-cols-[theme(spacing.5)_1fr] gap-x-2 gap-y-1 [&>[data-component=description]]:col-start-2',\n};\n"],
5
+ "mappings": ";AAqCQ;AApCR,SAAQ,SAAS,qBAAoB;AAGrC;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,cAAc,wBAAuB;AAEtC,aAAM,wBAAwB,qBAAqB,eAAe;AAoBlE,gBAAS,cAAc,EAAC,OAAO,MAAM,WAAW,SAAQ,GAAuB;AACpF,MAAI,QAAQ,sBAAsB;AAElC,MAAI,OAAO;AACT,WACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAC5B,8BAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAG,kBAAe,kBAC9D,UACH,GACF;AAAA,EAEJ;AAEA,MAAI,MAAM;AACR,WACE,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,MAChC,8BAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAG,kBAAe,kBAC9D,UACH,GACF;AAAA,EAEJ;AAEA,SAAO,oBAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS;AACrE;AAEO,aAAM,qBAAmE;AAAA,EAC9E,WACE;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
- import { type ComponentProps } from '../theme/internals.js';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
3
  export declare const useComboboxTheme: ((themeProps: {
4
4
  readonly disabled: boolean;
5
5
  readonly invalid: boolean;
6
6
  }) => {
7
- root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
8
- icon: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
9
7
  input: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
8
+ icon: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
9
+ root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
10
10
  options: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
11
11
  }) & {
12
12
  componentThemeName: "Combobox";
@@ -50,7 +50,8 @@ export type ComboboxProps<T extends ElementType, V extends boolean | number | st
50
50
  onChange?: (selectedValue: V[] | undefined) => void;
51
51
  })>;
52
52
  export declare const Combobox: <T extends ElementType = import("react").ExoticComponent<{
53
- children?: import("react").ReactNode;
54
- }>, V extends string | number | boolean = string>(props: ComboboxProps<T, V> & {
53
+ children?: import("react").ReactNode | undefined;
54
+ }>, V extends boolean | number | string = string>(props: ComboboxProps<T, V> & {
55
55
  ref?: Ref<HTMLElement> | undefined;
56
- }) => import("react").ReactNode;
56
+ }) => React.ReactNode;
57
+ export declare const comboboxTheme: ComponentTheme<typeof useComboboxTheme>;