@jakubmazanec/ui 0.1.0-next.53120c5

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,43 @@
1
+ export function hslToRgb(h: number, rawS: number, rawL: number) {
2
+ let s = rawS / 100;
3
+ let l = rawL / 100;
4
+
5
+ let c = (1 - Math.abs(2 * l - 1)) * s;
6
+ let x = c * (1 - Math.abs(((h / 60) % 2) - 1));
7
+ let m = l - c / 2;
8
+ let r = 0;
9
+ let g = 0;
10
+ let b = 0;
11
+
12
+ if (h >= 0 && h < 60) {
13
+ r = c;
14
+ g = x;
15
+ b = 0;
16
+ } else if (h >= 60 && h < 120) {
17
+ r = x;
18
+ g = c;
19
+ b = 0;
20
+ } else if (h >= 120 && h < 180) {
21
+ r = 0;
22
+ g = c;
23
+ b = x;
24
+ } else if (h >= 180 && h < 240) {
25
+ r = 0;
26
+ g = x;
27
+ b = c;
28
+ } else if (h >= 240 && h < 300) {
29
+ r = x;
30
+ g = 0;
31
+ b = c;
32
+ } else if (h >= 300 && h < 360) {
33
+ r = c;
34
+ g = 0;
35
+ b = x;
36
+ }
37
+
38
+ return {
39
+ r: Math.round((r + m) * 255),
40
+ g: Math.round((g + m) * 255),
41
+ b: Math.round((b + m) * 255),
42
+ };
43
+ }
@@ -0,0 +1,7 @@
1
+ export function isHex(value: string) {
2
+ const valueHex = value.length === 6 && !value.startsWith(`#`) ? `#${value}` : value;
3
+
4
+ const re = new RegExp(/^#[\da-f]{6}$/i);
5
+
6
+ return re.test(valueHex.toUpperCase());
7
+ }
@@ -0,0 +1,9 @@
1
+ import module from 'node:module';
2
+ import path from 'node:path';
3
+
4
+ export function resolveModule(moduleId: string) {
5
+ let require = module.createRequire(import.meta.url);
6
+ let modulePath = path.dirname(require.resolve(`${moduleId}/package.json`));
7
+
8
+ return modulePath;
9
+ }
@@ -0,0 +1,5 @@
1
+ export function round(value: number, precision = 0) {
2
+ const multiplier = 10 ** precision;
3
+
4
+ return Math.round(value * multiplier) / multiplier;
5
+ }
@@ -0,0 +1,3 @@
1
+ export function unsignedModulo(x: number, n: number) {
2
+ return ((x % n) + n) % n;
3
+ }
@@ -0,0 +1,18 @@
1
+ export * from './internals/clamp.js';
2
+ export * from './internals/constants.js';
3
+ export * from './internals/createDisplayColor.js';
4
+ export * from './internals/createDistributionValues.js';
5
+ export * from './internals/createHueScale.js';
6
+ export * from './internals/createPalette.js';
7
+ export * from './internals/createSaturationScale.js';
8
+ export * from './internals/createSwatches.js';
9
+ export * from './internals/hexToHsl.js';
10
+ export * from './internals/hexToRgb.js';
11
+ export * from './internals/hslToHex.js';
12
+ export * from './internals/hslToRgb.js';
13
+ export * from './internals/isHex.js';
14
+ export * from './internals/PaletteConfig.js';
15
+ export * from './internals/resolveModule.js';
16
+ export * from './internals/round.js';
17
+ export * from './internals/SwatchValue.js';
18
+ export * from './internals/unsignedModulo.js';
@@ -0,0 +1,2 @@
1
+ export * from './development/createTailwindConfig.js';
2
+ export * from './development/createTailwindMerge.js';
Binary file
package/source/main.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './components.js';
2
+ export {createTailwindMerge} from './development/createTailwindMerge.js';
3
+ export * from './theme.js';
4
+ export * from './utilities.js';
5
+ export {createColumnHelper} from '@tanstack/react-table';
@@ -0,0 +1,25 @@
1
+ @font-face {
2
+ font-family: InterVariable;
3
+ font-style: normal;
4
+ font-weight: 100 900;
5
+ font-display: swap;
6
+ src: url('./inter-variable.woff2') format('woff2');
7
+ }
8
+
9
+ @font-face {
10
+ font-family: InterVariable;
11
+ font-style: italic;
12
+ font-weight: 100 900;
13
+ font-display: swap;
14
+ src: url('./inter-variable-italic.woff2') format('woff2');
15
+ }
16
+
17
+ @layer base {
18
+ html {
19
+ @apply font-sans text-neutral-950;
20
+ }
21
+
22
+ * {
23
+ scrollbar-color: theme(colors.neutral.200) theme(colors.transparent);
24
+ }
25
+ }
@@ -0,0 +1,102 @@
1
+ import {type Simplify} from '@jakubmazanec/ts-utils';
2
+
3
+ import {type useButtonTheme} from '../components/Button.js';
4
+ import {type useCardTheme} from '../components/Card.js';
5
+ import {type useCheckboxTheme} from '../components/Checkbox.js';
6
+ import {type useCheckboxFieldTheme} from '../components/CheckboxField.js';
7
+ import {type useComboboxTheme} from '../components/Combobox.js';
8
+ import {type useComboboxOptionTheme} from '../components/ComboboxOption.js';
9
+ import {type useContainerTheme} from '../components/Container.js';
10
+ import {type useDescriptionTheme} from '../components/Description.js';
11
+ import {type useDialogTheme} from '../components/Dialog.js';
12
+ import {type useDialogPanelTheme} from '../components/DialogPanel.js';
13
+ import {type useDialogTitleTheme} from '../components/DialogTitle.js';
14
+ import {type useErrorTheme} from '../components/Error.js';
15
+ import {type useFieldTheme} from '../components/Field.js';
16
+ import {type useFieldsetTheme} from '../components/Fieldset.js';
17
+ import {type useFormTheme} from '../components/Form.js';
18
+ import {type useIconTheme} from '../components/Icon.js';
19
+ import {type useInputTheme} from '../components/Input.js';
20
+ import {type useLabelTheme} from '../components/Label.js';
21
+ import {type useLegendTheme} from '../components/Legend.js';
22
+ import {type useListboxTheme} from '../components/Listbox.js';
23
+ import {type useListboxOptionTheme} from '../components/ListboxOption.js';
24
+ import {type useMenuTheme} from '../components/Menu.js';
25
+ import {type useMenuButtonTheme} from '../components/MenuButton.js';
26
+ import {type useMenuHeadingTheme} from '../components/MenuHeading.js';
27
+ import {type useMenuItemTheme} from '../components/MenuItem.js';
28
+ import {type useMenuItemsTheme} from '../components/MenuItems.js';
29
+ import {type useMenuSectionTheme} from '../components/MenuSection.js';
30
+ import {type useMenuSeparatorTheme} from '../components/MenuSeparator.js';
31
+ import {type usePopoverTheme} from '../components/Popover.js';
32
+ import {type usePopoverBackdropTheme} from '../components/PopoverBackdrop.js';
33
+ import {type usePopoverButtonTheme} from '../components/PopoverButton.js';
34
+ import {type usePopoverGroupTheme} from '../components/PopoverGroup.js';
35
+ import {type usePopoverPanelTheme} from '../components/PopoverPanel.js';
36
+ import {type useRadioTheme} from '../components/Radio.js';
37
+ import {type useRadioFieldTheme} from '../components/RadioField.js';
38
+ import {type useRadioGroupTheme} from '../components/RadioGroup.js';
39
+ import {type useSpinnerTheme} from '../components/Spinner.js';
40
+ import {type useTableTheme} from '../components/Table.js';
41
+ import {type useTableBodyTheme} from '../components/TableBody.js';
42
+ import {type useTableCaptionTheme} from '../components/TableCaption.js';
43
+ import {type useTableCellTheme} from '../components/TableCell.js';
44
+ import {type useTableFootTheme} from '../components/TableFoot.js';
45
+ import {type useTableHeadTheme} from '../components/TableHead.js';
46
+ import {type useTableHeaderTheme} from '../components/TableHeader.js';
47
+ import {type useTableRowTheme} from '../components/TableRow.js';
48
+ import {type useTextTheme} from '../components/Text.js';
49
+ import {type useTextareaTheme} from '../components/Textarea.js';
50
+ import {type ClassName, type ComponentTheme} from './internals.js';
51
+
52
+ export type Theme = Simplify<
53
+ ComponentTheme<typeof useButtonTheme, {outputComponentName: true}> &
54
+ ComponentTheme<typeof useCardTheme, {outputComponentName: true}> &
55
+ ComponentTheme<typeof useCheckboxFieldTheme, {outputComponentName: true}> &
56
+ ComponentTheme<typeof useCheckboxTheme, {outputComponentName: true}> &
57
+ ComponentTheme<typeof useComboboxOptionTheme, {outputComponentName: true}> &
58
+ ComponentTheme<typeof useComboboxTheme, {outputComponentName: true}> &
59
+ ComponentTheme<typeof useContainerTheme, {outputComponentName: true}> &
60
+ ComponentTheme<typeof useDescriptionTheme, {outputComponentName: true}> &
61
+ ComponentTheme<typeof useDialogPanelTheme, {outputComponentName: true}> &
62
+ ComponentTheme<typeof useDialogTheme, {outputComponentName: true}> &
63
+ ComponentTheme<typeof useDialogTitleTheme, {outputComponentName: true}> &
64
+ ComponentTheme<typeof useErrorTheme, {outputComponentName: true}> &
65
+ ComponentTheme<typeof useFieldsetTheme, {outputComponentName: true}> &
66
+ ComponentTheme<typeof useFieldTheme, {outputComponentName: true}> &
67
+ ComponentTheme<typeof useFormTheme, {outputComponentName: true}> &
68
+ ComponentTheme<typeof useIconTheme, {outputComponentName: true}> &
69
+ ComponentTheme<typeof useInputTheme, {outputComponentName: true}> &
70
+ ComponentTheme<typeof useLabelTheme, {outputComponentName: true}> &
71
+ ComponentTheme<typeof useLegendTheme, {outputComponentName: true}> &
72
+ ComponentTheme<typeof useListboxOptionTheme, {outputComponentName: true}> &
73
+ ComponentTheme<typeof useListboxTheme, {outputComponentName: true}> &
74
+ ComponentTheme<typeof useMenuButtonTheme, {outputComponentName: true}> &
75
+ ComponentTheme<typeof useMenuHeadingTheme, {outputComponentName: true}> &
76
+ ComponentTheme<typeof useMenuItemsTheme, {outputComponentName: true}> &
77
+ ComponentTheme<typeof useMenuItemTheme, {outputComponentName: true}> &
78
+ ComponentTheme<typeof useMenuSectionTheme, {outputComponentName: true}> &
79
+ ComponentTheme<typeof useMenuSeparatorTheme, {outputComponentName: true}> &
80
+ ComponentTheme<typeof useMenuTheme, {outputComponentName: true}> &
81
+ ComponentTheme<typeof usePopoverBackdropTheme, {outputComponentName: true}> &
82
+ ComponentTheme<typeof usePopoverButtonTheme, {outputComponentName: true}> &
83
+ ComponentTheme<typeof usePopoverGroupTheme, {outputComponentName: true}> &
84
+ ComponentTheme<typeof usePopoverPanelTheme, {outputComponentName: true}> &
85
+ ComponentTheme<typeof usePopoverTheme, {outputComponentName: true}> &
86
+ ComponentTheme<typeof useRadioFieldTheme, {outputComponentName: true}> &
87
+ ComponentTheme<typeof useRadioGroupTheme, {outputComponentName: true}> &
88
+ ComponentTheme<typeof useRadioTheme, {outputComponentName: true}> &
89
+ ComponentTheme<typeof useSpinnerTheme, {outputComponentName: true}> &
90
+ ComponentTheme<typeof useTableBodyTheme, {outputComponentName: true}> &
91
+ ComponentTheme<typeof useTableCaptionTheme, {outputComponentName: true}> &
92
+ ComponentTheme<typeof useTableCellTheme, {outputComponentName: true}> &
93
+ ComponentTheme<typeof useTableFootTheme, {outputComponentName: true}> &
94
+ ComponentTheme<typeof useTableHeaderTheme, {outputComponentName: true}> &
95
+ ComponentTheme<typeof useTableHeadTheme, {outputComponentName: true}> &
96
+ ComponentTheme<typeof useTableRowTheme, {outputComponentName: true}> &
97
+ ComponentTheme<typeof useTableTheme, {outputComponentName: true}> &
98
+ ComponentTheme<typeof useTextareaTheme, {outputComponentName: true}> &
99
+ ComponentTheme<typeof useTextTheme, {outputComponentName: true}> & {
100
+ merge: (...rest: ClassName[]) => string;
101
+ }
102
+ >;
@@ -0,0 +1,12 @@
1
+ import {type PropsWithChildren} from 'react';
2
+
3
+ import {themeContext} from './internals.js';
4
+ import {type Theme} from './Theme.js';
5
+
6
+ export type ThemeProviderProps = {
7
+ theme: Theme;
8
+ };
9
+
10
+ export function ThemeProvider({children, theme}: PropsWithChildren<ThemeProviderProps>) {
11
+ return <themeContext.Provider value={theme}>{children}</themeContext.Provider>;
12
+ }
@@ -0,0 +1,103 @@
1
+ import {
2
+ buttonTheme,
3
+ cardTheme,
4
+ checkboxFieldTheme,
5
+ checkboxTheme,
6
+ comboboxOptionTheme,
7
+ comboboxTheme,
8
+ containerTheme,
9
+ descriptionTheme,
10
+ dialogPanelTheme,
11
+ dialogTheme,
12
+ dialogTitleTheme,
13
+ errorTheme,
14
+ fieldsetnTheme,
15
+ fieldTheme,
16
+ formTheme,
17
+ iconTheme,
18
+ inputTheme,
19
+ labelTheme,
20
+ legendTheme,
21
+ listboxOptionTheme,
22
+ listboxTheme,
23
+ menuButtonTheme,
24
+ menuHeadingTheme,
25
+ menuItemsTheme,
26
+ menuItemTheme,
27
+ menuSectionTheme,
28
+ menuSeparatorTheme,
29
+ menuTheme,
30
+ popoverBackdropTheme,
31
+ popoverButtonTheme,
32
+ popoverGroupTheme,
33
+ popoverPanelTheme,
34
+ popoverTheme,
35
+ radioFieldTheme,
36
+ radioGroupTheme,
37
+ radioTheme,
38
+ spinnerTheme,
39
+ tableBodyTheme,
40
+ tableCaptionTheme,
41
+ tableCellTheme,
42
+ tableFootTheme,
43
+ tableHeaderTheme,
44
+ tableHeadTheme,
45
+ tableRowTheme,
46
+ tableTheme,
47
+ textareaTheme,
48
+ textTheme,
49
+ } from '../components.js';
50
+ import {createTailwindConfig, createTailwindMerge} from '../development.js';
51
+ import {type Theme} from './Theme.js';
52
+
53
+ export const defaultTheme: Theme = {
54
+ Button: buttonTheme,
55
+ Card: cardTheme,
56
+ Checkbox: checkboxTheme,
57
+ CheckboxField: checkboxFieldTheme,
58
+ Combobox: comboboxTheme,
59
+ ComboboxOption: comboboxOptionTheme,
60
+ Container: containerTheme,
61
+ Description: descriptionTheme,
62
+ Dialog: dialogTheme,
63
+ DialogPanel: dialogPanelTheme,
64
+ DialogTitle: dialogTitleTheme,
65
+ Error: errorTheme,
66
+ Field: fieldTheme,
67
+ Fieldset: fieldsetnTheme,
68
+ Form: formTheme,
69
+ Icon: iconTheme,
70
+ Input: inputTheme,
71
+ Label: labelTheme,
72
+ Legend: legendTheme,
73
+ Listbox: listboxTheme,
74
+ ListboxOption: listboxOptionTheme,
75
+ Menu: menuTheme,
76
+ MenuButton: menuButtonTheme,
77
+ MenuHeading: menuHeadingTheme,
78
+ MenuItem: menuItemTheme,
79
+ MenuItems: menuItemsTheme,
80
+ MenuSection: menuSectionTheme,
81
+ MenuSeparator: menuSeparatorTheme,
82
+ Popover: popoverTheme,
83
+ PopoverBackdrop: popoverBackdropTheme,
84
+ PopoverButton: popoverButtonTheme,
85
+ PopoverGroup: popoverGroupTheme,
86
+ PopoverPanel: popoverPanelTheme,
87
+ Radio: radioTheme,
88
+ RadioField: radioFieldTheme,
89
+ RadioGroup: radioGroupTheme,
90
+ Spinner: spinnerTheme,
91
+ Table: tableTheme,
92
+ TableBody: tableBodyTheme,
93
+ TableCaption: tableCaptionTheme,
94
+ TableCell: tableCellTheme,
95
+ TableFoot: tableFootTheme,
96
+ TableHead: tableHeadTheme,
97
+ TableHeader: tableHeaderTheme,
98
+ TableRow: tableRowTheme,
99
+ Text: textTheme,
100
+ Textarea: textareaTheme,
101
+
102
+ merge: createTailwindMerge(createTailwindConfig()),
103
+ };
@@ -0,0 +1 @@
1
+ export type ClassName = ClassName[] | string | 0 | false | null | undefined;
@@ -0,0 +1,13 @@
1
+ import {type Writable} from '@jakubmazanec/ts-utils';
2
+
3
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
4
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
5
+ import {type ComponentThemeProps} from './ComponentThemeProps.js';
6
+
7
+ // extracts props for component that uses created useTheme hook
8
+ export type ComponentProps<U extends {themeDefinition: ComponentThemeDefinition | undefined}> =
9
+ U['themeDefinition'] extends ComponentThemeDefinition ?
10
+ U['themeDefinition']['variants'] extends ComponentThemeDefinitionVariants ?
11
+ Partial<Writable<ComponentThemeProps<U['themeDefinition']>>>
12
+ : NonNullable<unknown>
13
+ : NonNullable<unknown>;
@@ -0,0 +1,50 @@
1
+ import {type ClassName} from './ClassName.js';
2
+ import {type ComponentThemeCompoundVariants} from './ComponentThemeCompoundVariants.js';
3
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
4
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
5
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
6
+ import {type ComponentThemeVariants} from './ComponentThemeVariants.js';
7
+ import {type ComponentWithTheme} from './ComponentWithTheme.js';
8
+
9
+ export type ComponentThemeOptions = {
10
+ outputComponentName: boolean;
11
+ };
12
+
13
+ type ComponentThemeFromDefinition<D extends ComponentThemeDefinition | undefined> =
14
+ D extends ComponentThemeDefinition ?
15
+ D['elements'] extends ComponentThemeDefinitionElements ?
16
+ D['variants'] extends ComponentThemeDefinitionVariants ?
17
+ {
18
+ classNames?: {
19
+ [K in D['elements'][number]]: ClassName;
20
+ };
21
+ variants: ComponentThemeVariants<D['variants'], D['elements']>;
22
+ compoundVariants?: ComponentThemeCompoundVariants<D['variants'], D['elements']>;
23
+ }
24
+ : {
25
+ classNames: {
26
+ [K in D['elements'][number]]: ClassName;
27
+ };
28
+ }
29
+ : D['variants'] extends ComponentThemeDefinitionVariants ?
30
+ {
31
+ className?: ClassName;
32
+ variants: ComponentThemeVariants<D['variants'], undefined>;
33
+ compoundVariants?: ComponentThemeCompoundVariants<D['variants'], undefined>;
34
+ }
35
+ : {className: ClassName}
36
+ : {
37
+ className: ClassName;
38
+ };
39
+
40
+ export type ComponentTheme<
41
+ D extends ComponentThemeDefinition | ComponentWithTheme | undefined,
42
+ O extends ComponentThemeOptions = {outputComponentName: false},
43
+ > =
44
+ O['outputComponentName'] extends true ?
45
+ D extends ComponentWithTheme ?
46
+ {[K in D['componentThemeName']]: ComponentThemeFromDefinition<D['themeDefinition']>}
47
+ : never
48
+ : D extends ComponentThemeDefinition ? ComponentThemeFromDefinition<D>
49
+ : D extends ComponentWithTheme ? ComponentThemeFromDefinition<D['themeDefinition']>
50
+ : ComponentThemeFromDefinition<undefined>;
@@ -0,0 +1,20 @@
1
+ import {type ClassName} from './ClassName.js';
2
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
3
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
4
+
5
+ export type ComponentThemeCompoundVariants<
6
+ V extends ComponentThemeDefinitionVariants,
7
+ E extends ComponentThemeDefinitionElements | undefined,
8
+ > = Array<
9
+ (E extends ComponentThemeDefinitionElements ?
10
+ {
11
+ classNames: {
12
+ [K in E[number]]: ClassName;
13
+ };
14
+ }
15
+ : {
16
+ className: ClassName;
17
+ }) & {
18
+ [K in keyof V]?: Array<V[K][number]> | V[K][number];
19
+ }
20
+ >;
@@ -0,0 +1,7 @@
1
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
2
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
3
+
4
+ export type ComponentThemeDefinition = {
5
+ variants?: ComponentThemeDefinitionVariants;
6
+ elements?: ComponentThemeDefinitionElements;
7
+ };
@@ -0,0 +1 @@
1
+ export type ComponentThemeDefinitionElements = string[];
@@ -0,0 +1,3 @@
1
+ export type ComponentThemeDefinitionVariants = {
2
+ [key: string]: string[] | [true, false];
3
+ };
@@ -0,0 +1,11 @@
1
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
2
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
3
+
4
+ export type ComponentThemeProps<D extends ComponentThemeDefinition | undefined> =
5
+ D extends ComponentThemeDefinition ?
6
+ D['variants'] extends ComponentThemeDefinitionVariants ?
7
+ {
8
+ [J in keyof D['variants']]: D['variants'][J][number];
9
+ }
10
+ : NonNullable<unknown>
11
+ : NonNullable<unknown>;
@@ -0,0 +1,24 @@
1
+ import {type ClassName} from './ClassName.js';
2
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
3
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
4
+
5
+ export type ComponentThemeVariants<
6
+ V extends ComponentThemeDefinitionVariants,
7
+ E extends ComponentThemeDefinitionElements | undefined,
8
+ > = {
9
+ [J in keyof V]: V[J] extends string[] ?
10
+ {
11
+ [K in V[J][number]]: E extends ComponentThemeDefinitionElements ?
12
+ {
13
+ [L in E[number]]: ClassName;
14
+ }
15
+ : ClassName;
16
+ }
17
+ : {
18
+ [K in 'false' | 'true']: E extends ComponentThemeDefinitionElements ?
19
+ {
20
+ [L in E[number]]: ClassName;
21
+ }
22
+ : ClassName;
23
+ };
24
+ };
@@ -0,0 +1,6 @@
1
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
2
+
3
+ export type ComponentWithTheme = {
4
+ themeDefinition: ComponentThemeDefinition | undefined;
5
+ componentThemeName: string;
6
+ };
@@ -0,0 +1,22 @@
1
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
2
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
3
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
4
+ import {type ComponentThemeProps} from './ComponentThemeProps.js';
5
+ import {type UseComponentThemeReturn} from './UseComponentThemeReturn.js';
6
+
7
+ export type UseComponentTheme<N extends string, D extends ComponentThemeDefinition | undefined> =
8
+ D extends ComponentThemeDefinition ?
9
+ D['variants'] extends ComponentThemeDefinitionVariants ?
10
+ D['elements'] extends ComponentThemeDefinitionElements ?
11
+ ((themeProps: ComponentThemeProps<D>) => UseComponentThemeReturn<D>) & {
12
+ componentThemeName: N;
13
+ themeDefinition: D;
14
+ }
15
+ : ((themeProps: ComponentThemeProps<D>) => UseComponentThemeReturn<D>) & {
16
+ componentThemeName: N;
17
+ themeDefinition: D;
18
+ }
19
+ : D['elements'] extends ComponentThemeDefinitionElements ?
20
+ (() => UseComponentThemeReturn<D>) & {componentThemeName: N; themeDefinition: D}
21
+ : (() => UseComponentThemeReturn<D>) & {componentThemeName: N; themeDefinition: D}
22
+ : (() => UseComponentThemeReturn<D>) & {componentThemeName: N; themeDefinition: D};
@@ -0,0 +1,15 @@
1
+ import {type ClassName} from './ClassName.js';
2
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
3
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
4
+
5
+ export type UseComponentThemeReturn<D extends ComponentThemeDefinition | undefined> =
6
+ D extends ComponentThemeDefinition ?
7
+ D['elements'] extends ComponentThemeDefinitionElements ?
8
+ {
9
+ [K in D['elements'][number]]: (
10
+ baseClassName?: ClassName,
11
+ overrideClassName?: ClassName,
12
+ ) => string;
13
+ }
14
+ : (baseClassName?: ClassName, overrideClassName?: ClassName) => string
15
+ : (baseClassName?: ClassName, overrideClassName?: ClassName) => string;
@@ -0,0 +1,6 @@
1
+ export function booleanToString<T>(value: T): T extends boolean ? string : T {
2
+ return (
3
+ typeof value === 'boolean' ? `${value}`
4
+ : value === 0 ? '0'
5
+ : value) as T extends boolean ? string : T;
6
+ }
@@ -0,0 +1,70 @@
1
+ import {useContext} from 'react';
2
+
3
+ import {type Theme} from '../Theme.js';
4
+ import {type ClassName} from './ClassName.js';
5
+ import {type ComponentTheme} from './ComponentTheme.js';
6
+ import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
7
+ import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
8
+ import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
9
+ import {type ComponentThemeProps} from './ComponentThemeProps.js';
10
+ import {createUseComponentThemeReturn} from './createUseComponentThemeReturn.js';
11
+ import {themeContext} from './themeContext.js';
12
+ import {type UseComponentTheme} from './UseComponentTheme.js';
13
+
14
+ export function createComponentTheme<
15
+ const N extends string,
16
+ const D extends ComponentThemeDefinition | undefined = undefined,
17
+ >(themeName: N, themeDefinition?: NonNullable<D>): UseComponentTheme<N, D> {
18
+ let useComponentTheme = (themeProps?: ComponentThemeProps<D>) => {
19
+ let theme = useContext(themeContext);
20
+
21
+ if (!theme) {
22
+ throw new Error('No theme was found!');
23
+ }
24
+
25
+ let cx = theme.merge;
26
+ let componentTheme = theme[themeName as keyof Theme] as unknown as
27
+ | ComponentTheme<{
28
+ variants: ComponentThemeDefinitionVariants;
29
+ elements: ComponentThemeDefinitionElements;
30
+ }>
31
+ | ComponentTheme<{variants: ComponentThemeDefinitionVariants}>
32
+ | undefined;
33
+
34
+ if (!componentTheme) {
35
+ throw new Error(`Theme for component "${themeName}" wasn't found!`);
36
+ }
37
+
38
+ let hasElements = Boolean(themeDefinition?.elements);
39
+
40
+ if (!hasElements) {
41
+ return createUseComponentThemeReturn(
42
+ componentTheme as
43
+ | ComponentTheme<{variants: ComponentThemeDefinitionVariants}>
44
+ | ComponentTheme<undefined>,
45
+ cx,
46
+ themeProps,
47
+ );
48
+ }
49
+
50
+ let getClassNames: Record<string, (...args: ClassName[]) => string> = {};
51
+
52
+ for (let element of themeDefinition?.elements ?? []) {
53
+ getClassNames[element] = createUseComponentThemeReturn(
54
+ componentTheme as
55
+ | ComponentTheme<{variants: ComponentThemeDefinitionVariants}>
56
+ | ComponentTheme<undefined>,
57
+ cx,
58
+ themeProps,
59
+ element,
60
+ );
61
+ }
62
+
63
+ return getClassNames;
64
+ };
65
+
66
+ (useComponentTheme as UseComponentTheme<N, D>).themeDefinition = themeDefinition;
67
+ (useComponentTheme as UseComponentTheme<N, D>).componentThemeName = themeName;
68
+
69
+ return useComponentTheme as UseComponentTheme<N, D>;
70
+ }