@jakubmazanec/ui 0.1.0-next.86bf251

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +45 -0
  2. package/build/components/Button.d.ts +40 -0
  3. package/build/components/Button.js +139 -0
  4. package/build/components/Button.js.map +7 -0
  5. package/build/components/Card.d.ts +19 -0
  6. package/build/components/Card.js +26 -0
  7. package/build/components/Card.js.map +7 -0
  8. package/build/components/Checkbox.d.ts +39 -0
  9. package/build/components/Checkbox.js +87 -0
  10. package/build/components/Checkbox.js.map +7 -0
  11. package/build/components/CheckboxField.d.ts +18 -0
  12. package/build/components/CheckboxField.js +22 -0
  13. package/build/components/CheckboxField.js.map +7 -0
  14. package/build/components/Combobox.d.ts +57 -0
  15. package/build/components/Combobox.js +178 -0
  16. package/build/components/Combobox.js.map +7 -0
  17. package/build/components/ComboboxOption.d.ts +33 -0
  18. package/build/components/ComboboxOption.js +59 -0
  19. package/build/components/ComboboxOption.js.map +7 -0
  20. package/build/components/Container.d.ts +36 -0
  21. package/build/components/Container.js +63 -0
  22. package/build/components/Container.js.map +7 -0
  23. package/build/components/Description.d.ts +19 -0
  24. package/build/components/Description.js +28 -0
  25. package/build/components/Description.js.map +7 -0
  26. package/build/components/Dialog.d.ts +32 -0
  27. package/build/components/Dialog.js +55 -0
  28. package/build/components/Dialog.js.map +7 -0
  29. package/build/components/DialogPanel.d.ts +19 -0
  30. package/build/components/DialogPanel.js +29 -0
  31. package/build/components/DialogPanel.js.map +7 -0
  32. package/build/components/DialogTitle.d.ts +19 -0
  33. package/build/components/DialogTitle.js +28 -0
  34. package/build/components/DialogTitle.js.map +7 -0
  35. package/build/components/Error.d.ts +19 -0
  36. package/build/components/Error.js +37 -0
  37. package/build/components/Error.js.map +7 -0
  38. package/build/components/Field.d.ts +22 -0
  39. package/build/components/Field.js +32 -0
  40. package/build/components/Field.js.map +7 -0
  41. package/build/components/Fieldset.d.ts +27 -0
  42. package/build/components/Fieldset.js +39 -0
  43. package/build/components/Fieldset.js.map +7 -0
  44. package/build/components/Form.d.ts +22 -0
  45. package/build/components/Form.js +41 -0
  46. package/build/components/Form.js.map +7 -0
  47. package/build/components/Icon.d.ts +32 -0
  48. package/build/components/Icon.js +65 -0
  49. package/build/components/Icon.js.map +7 -0
  50. package/build/components/Input.d.ts +37 -0
  51. package/build/components/Input.js +111 -0
  52. package/build/components/Input.js.map +7 -0
  53. package/build/components/Label.d.ts +19 -0
  54. package/build/components/Label.js +26 -0
  55. package/build/components/Label.js.map +7 -0
  56. package/build/components/Legend.d.ts +19 -0
  57. package/build/components/Legend.js +26 -0
  58. package/build/components/Legend.js.map +7 -0
  59. package/build/components/Listbox.d.ts +59 -0
  60. package/build/components/Listbox.js +254 -0
  61. package/build/components/Listbox.js.map +7 -0
  62. package/build/components/ListboxOption.d.ts +33 -0
  63. package/build/components/ListboxOption.js +59 -0
  64. package/build/components/ListboxOption.js.map +7 -0
  65. package/build/components/Menu.d.ts +21 -0
  66. package/build/components/Menu.js +29 -0
  67. package/build/components/Menu.js.map +7 -0
  68. package/build/components/MenuButton.d.ts +27 -0
  69. package/build/components/MenuButton.js +45 -0
  70. package/build/components/MenuButton.js.map +7 -0
  71. package/build/components/MenuHeading.d.ts +19 -0
  72. package/build/components/MenuHeading.js +28 -0
  73. package/build/components/MenuHeading.js.map +7 -0
  74. package/build/components/MenuItem.d.ts +27 -0
  75. package/build/components/MenuItem.js +39 -0
  76. package/build/components/MenuItem.js.map +7 -0
  77. package/build/components/MenuItems.d.ts +22 -0
  78. package/build/components/MenuItems.js +36 -0
  79. package/build/components/MenuItems.js.map +7 -0
  80. package/build/components/MenuSection.d.ts +19 -0
  81. package/build/components/MenuSection.js +28 -0
  82. package/build/components/MenuSection.js.map +7 -0
  83. package/build/components/MenuSeparator.d.ts +19 -0
  84. package/build/components/MenuSeparator.js +28 -0
  85. package/build/components/MenuSeparator.js.map +7 -0
  86. package/build/components/Popover.d.ts +19 -0
  87. package/build/components/Popover.js +28 -0
  88. package/build/components/Popover.js.map +7 -0
  89. package/build/components/PopoverBackdrop.d.ts +19 -0
  90. package/build/components/PopoverBackdrop.js +28 -0
  91. package/build/components/PopoverBackdrop.js.map +7 -0
  92. package/build/components/PopoverButton.d.ts +29 -0
  93. package/build/components/PopoverButton.js +47 -0
  94. package/build/components/PopoverButton.js.map +7 -0
  95. package/build/components/PopoverGroup.d.ts +19 -0
  96. package/build/components/PopoverGroup.js +28 -0
  97. package/build/components/PopoverGroup.js.map +7 -0
  98. package/build/components/PopoverPanel.d.ts +24 -0
  99. package/build/components/PopoverPanel.js +38 -0
  100. package/build/components/PopoverPanel.js.map +7 -0
  101. package/build/components/Radio.d.ts +33 -0
  102. package/build/components/Radio.js +57 -0
  103. package/build/components/Radio.js.map +7 -0
  104. package/build/components/RadioField.d.ts +11 -0
  105. package/build/components/RadioField.js +15 -0
  106. package/build/components/RadioField.js.map +7 -0
  107. package/build/components/RadioGroup.d.ts +34 -0
  108. package/build/components/RadioGroup.js +87 -0
  109. package/build/components/RadioGroup.js.map +7 -0
  110. package/build/components/Spinner.d.ts +21 -0
  111. package/build/components/Spinner.js +70 -0
  112. package/build/components/Spinner.js.map +7 -0
  113. package/build/components/Table.d.ts +19 -0
  114. package/build/components/Table.js +26 -0
  115. package/build/components/Table.js.map +7 -0
  116. package/build/components/TableBody.d.ts +19 -0
  117. package/build/components/TableBody.js +26 -0
  118. package/build/components/TableBody.js.map +7 -0
  119. package/build/components/TableCaption.d.ts +19 -0
  120. package/build/components/TableCaption.js +31 -0
  121. package/build/components/TableCaption.js.map +7 -0
  122. package/build/components/TableCell.d.ts +19 -0
  123. package/build/components/TableCell.js +26 -0
  124. package/build/components/TableCell.js.map +7 -0
  125. package/build/components/TableFoot.d.ts +19 -0
  126. package/build/components/TableFoot.js +26 -0
  127. package/build/components/TableFoot.js.map +7 -0
  128. package/build/components/TableHead.d.ts +19 -0
  129. package/build/components/TableHead.js +26 -0
  130. package/build/components/TableHead.js.map +7 -0
  131. package/build/components/TableHeader.d.ts +19 -0
  132. package/build/components/TableHeader.js +26 -0
  133. package/build/components/TableHeader.js.map +7 -0
  134. package/build/components/TableRow.d.ts +19 -0
  135. package/build/components/TableRow.js +26 -0
  136. package/build/components/TableRow.js.map +7 -0
  137. package/build/components/Text.d.ts +27 -0
  138. package/build/components/Text.js +43 -0
  139. package/build/components/Text.js.map +7 -0
  140. package/build/components/Textarea.d.ts +34 -0
  141. package/build/components/Textarea.js +78 -0
  142. package/build/components/Textarea.js.map +7 -0
  143. package/build/components/data-table/DataTable.d.ts +39 -0
  144. package/build/components/data-table/DataTable.js +276 -0
  145. package/build/components/data-table/DataTable.js.map +7 -0
  146. package/build/components/data-table/DataTableColumnOrder.d.ts +3 -0
  147. package/build/components/data-table/DataTableColumnOrder.js +4 -0
  148. package/build/components/data-table/DataTableColumnOrder.js.map +7 -0
  149. package/build/components/data-table/DataTableColumnPinning.d.ts +3 -0
  150. package/build/components/data-table/DataTableColumnPinning.js +4 -0
  151. package/build/components/data-table/DataTableColumnPinning.js.map +7 -0
  152. package/build/components/data-table/DataTableColumnVisibility.d.ts +3 -0
  153. package/build/components/data-table/DataTableColumnVisibility.js +4 -0
  154. package/build/components/data-table/DataTableColumnVisibility.js.map +7 -0
  155. package/build/components/data-table/DataTableFaceting.d.ts +15 -0
  156. package/build/components/data-table/DataTableFaceting.js +11 -0
  157. package/build/components/data-table/DataTableFaceting.js.map +7 -0
  158. package/build/components/data-table/DataTableFilters.d.ts +12 -0
  159. package/build/components/data-table/DataTableFilters.js +15 -0
  160. package/build/components/data-table/DataTableFilters.js.map +7 -0
  161. package/build/components/data-table/DataTablePagination.d.ts +16 -0
  162. package/build/components/data-table/DataTablePagination.js +16 -0
  163. package/build/components/data-table/DataTablePagination.js.map +7 -0
  164. package/build/components/data-table/DataTableSearch.d.ts +3 -0
  165. package/build/components/data-table/DataTableSearch.js +4 -0
  166. package/build/components/data-table/DataTableSearch.js.map +7 -0
  167. package/build/components/data-table/DataTableSorting.d.ts +12 -0
  168. package/build/components/data-table/DataTableSorting.js +10 -0
  169. package/build/components/data-table/DataTableSorting.js.map +7 -0
  170. package/build/components/data-table/internals/DataTableHeader.d.ts +15 -0
  171. package/build/components/data-table/internals/DataTableHeader.js +194 -0
  172. package/build/components/data-table/internals/DataTableHeader.js.map +7 -0
  173. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.d.ts +6 -0
  174. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js +36 -0
  175. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js.map +7 -0
  176. package/build/components/data-table/internals/DataTableHeaderFilter.d.ts +12 -0
  177. package/build/components/data-table/internals/DataTableHeaderFilter.js +264 -0
  178. package/build/components/data-table/internals/DataTableHeaderFilter.js.map +7 -0
  179. package/build/components/data-table/internals/DataTablePageButton.d.ts +6 -0
  180. package/build/components/data-table/internals/DataTablePageButton.js +11 -0
  181. package/build/components/data-table/internals/DataTablePageButton.js.map +7 -0
  182. package/build/components/data-table/internals/DataTablePagination.d.ts +12 -0
  183. package/build/components/data-table/internals/DataTablePagination.js +190 -0
  184. package/build/components/data-table/internals/DataTablePagination.js.map +7 -0
  185. package/build/components/data-table/internals/DataTableSearch.d.ts +9 -0
  186. package/build/components/data-table/internals/DataTableSearch.js +73 -0
  187. package/build/components/data-table/internals/DataTableSearch.js.map +7 -0
  188. package/build/components/data-table/internals/addFilter.d.ts +5 -0
  189. package/build/components/data-table/internals/addFilter.js +31 -0
  190. package/build/components/data-table/internals/addFilter.js.map +7 -0
  191. package/build/components/data-table/internals/constants.d.ts +3 -0
  192. package/build/components/data-table/internals/constants.js +5 -0
  193. package/build/components/data-table/internals/constants.js.map +7 -0
  194. package/build/components/data-table/internals/fromPinningState.d.ts +2 -0
  195. package/build/components/data-table/internals/fromPinningState.js +12 -0
  196. package/build/components/data-table/internals/fromPinningState.js.map +7 -0
  197. package/build/components/data-table/internals/fuzzyFilter.d.ts +2 -0
  198. package/build/components/data-table/internals/fuzzyFilter.js +8 -0
  199. package/build/components/data-table/internals/fuzzyFilter.js.map +7 -0
  200. package/build/components/data-table/internals/getCommonPinningClasses.d.ts +2 -0
  201. package/build/components/data-table/internals/getCommonPinningClasses.js +13 -0
  202. package/build/components/data-table/internals/getCommonPinningClasses.js.map +7 -0
  203. package/build/components/data-table/internals/getCommonPinningStyles.d.ts +3 -0
  204. package/build/components/data-table/internals/getCommonPinningStyles.js +10 -0
  205. package/build/components/data-table/internals/getCommonPinningStyles.js.map +7 -0
  206. package/build/components/data-table/internals/normalizeFilter.d.ts +3 -0
  207. package/build/components/data-table/internals/normalizeFilter.js +19 -0
  208. package/build/components/data-table/internals/normalizeFilter.js.map +7 -0
  209. package/build/components/data-table/internals/normalizeFilters.d.ts +3 -0
  210. package/build/components/data-table/internals/normalizeFilters.js +18 -0
  211. package/build/components/data-table/internals/normalizeFilters.js.map +7 -0
  212. package/build/components/data-table/internals/normalizeSorting.d.ts +4 -0
  213. package/build/components/data-table/internals/normalizeSorting.js +26 -0
  214. package/build/components/data-table/internals/normalizeSorting.js.map +7 -0
  215. package/build/components/data-table/internals/removeFilter.d.ts +5 -0
  216. package/build/components/data-table/internals/removeFilter.js +18 -0
  217. package/build/components/data-table/internals/removeFilter.js.map +7 -0
  218. package/build/components/data-table/internals.d.ts +16 -0
  219. package/build/components/data-table/internals.js +18 -0
  220. package/build/components/data-table/internals.js.map +7 -0
  221. package/build/components/data-table.d.ts +9 -0
  222. package/build/components/data-table.js +11 -0
  223. package/build/components/data-table.js.map +7 -0
  224. package/build/components/internals/fieldContext.d.ts +3 -0
  225. package/build/components/internals/fieldContext.js +4 -0
  226. package/build/components/internals/fieldContext.js.map +7 -0
  227. package/build/components/internals/fieldNameContext.d.ts +3 -0
  228. package/build/components/internals/fieldNameContext.js +4 -0
  229. package/build/components/internals/fieldNameContext.js.map +7 -0
  230. package/build/components/internals/filterProps.d.ts +4 -0
  231. package/build/components/internals/filterProps.js +9 -0
  232. package/build/components/internals/filterProps.js.map +7 -0
  233. package/build/components/internals/formIdContext.d.ts +2 -0
  234. package/build/components/internals/formIdContext.js +4 -0
  235. package/build/components/internals/formIdContext.js.map +7 -0
  236. package/build/components/internals/forwardRef.d.ts +4 -0
  237. package/build/components/internals/forwardRef.js +6 -0
  238. package/build/components/internals/forwardRef.js.map +7 -0
  239. package/build/components/internals/useFormId.d.ts +1 -0
  240. package/build/components/internals/useFormId.js +7 -0
  241. package/build/components/internals/useFormId.js.map +7 -0
  242. package/build/components/internals.d.ts +6 -0
  243. package/build/components/internals.js +8 -0
  244. package/build/components/internals.js.map +7 -0
  245. package/build/components/useField.d.ts +1 -0
  246. package/build/components/useField.js +7 -0
  247. package/build/components/useField.js.map +7 -0
  248. package/build/components/useFieldName.d.ts +1 -0
  249. package/build/components/useFieldName.js +7 -0
  250. package/build/components/useFieldName.js.map +7 -0
  251. package/build/components/useForm.d.ts +10 -0
  252. package/build/components/useForm.js +19 -0
  253. package/build/components/useForm.js.map +7 -0
  254. package/build/components.d.ts +51 -0
  255. package/build/components.js +53 -0
  256. package/build/components.js.map +7 -0
  257. package/build/development/createTailwindConfig.d.ts +18 -0
  258. package/build/development/createTailwindConfig.js +172 -0
  259. package/build/development/createTailwindConfig.js.map +7 -0
  260. package/build/development/createTailwindMerge.d.ts +2 -0
  261. package/build/development/createTailwindMerge.js +74 -0
  262. package/build/development/createTailwindMerge.js.map +7 -0
  263. package/build/development/internals/PaletteConfig.d.ts +6 -0
  264. package/build/development/internals/PaletteConfig.js +2 -0
  265. package/build/development/internals/PaletteConfig.js.map +7 -0
  266. package/build/development/internals/SwatchValue.d.ts +9 -0
  267. package/build/development/internals/SwatchValue.js +2 -0
  268. package/build/development/internals/SwatchValue.js.map +7 -0
  269. package/build/development/internals/clamp.d.ts +1 -0
  270. package/build/development/internals/clamp.js +5 -0
  271. package/build/development/internals/clamp.js.map +7 -0
  272. package/build/development/internals/constants.d.ts +2 -0
  273. package/build/development/internals/constants.js +22 -0
  274. package/build/development/internals/constants.js.map +7 -0
  275. package/build/development/internals/createDisplayColor.d.ts +1 -0
  276. package/build/development/internals/createDisplayColor.js +24 -0
  277. package/build/development/internals/createDisplayColor.js.map +7 -0
  278. package/build/development/internals/createDistributionValues.d.ts +4 -0
  279. package/build/development/internals/createDistributionValues.js +32 -0
  280. package/build/development/internals/createDistributionValues.js.map +7 -0
  281. package/build/development/internals/createHueScale.d.ts +4 -0
  282. package/build/development/internals/createHueScale.js +15 -0
  283. package/build/development/internals/createHueScale.js.map +7 -0
  284. package/build/development/internals/createPalette.d.ts +16 -0
  285. package/build/development/internals/createPalette.js +36 -0
  286. package/build/development/internals/createPalette.js.map +7 -0
  287. package/build/development/internals/createSaturationScale.d.ts +4 -0
  288. package/build/development/internals/createSaturationScale.js +18 -0
  289. package/build/development/internals/createSaturationScale.js.map +7 -0
  290. package/build/development/internals/createSwatches.d.ts +10 -0
  291. package/build/development/internals/createSwatches.js +31 -0
  292. package/build/development/internals/createSwatches.js.map +7 -0
  293. package/build/development/internals/hexToHsl.d.ts +5 -0
  294. package/build/development/internals/hexToHsl.js +37 -0
  295. package/build/development/internals/hexToHsl.js.map +7 -0
  296. package/build/development/internals/hexToRgb.d.ts +5 -0
  297. package/build/development/internals/hexToRgb.js +21 -0
  298. package/build/development/internals/hexToRgb.js.map +7 -0
  299. package/build/development/internals/hslToHex.d.ts +1 -0
  300. package/build/development/internals/hslToHex.js +19 -0
  301. package/build/development/internals/hslToHex.js.map +7 -0
  302. package/build/development/internals/hslToRgb.d.ts +5 -0
  303. package/build/development/internals/hslToRgb.js +42 -0
  304. package/build/development/internals/hslToRgb.js.map +7 -0
  305. package/build/development/internals/isHex.d.ts +1 -0
  306. package/build/development/internals/isHex.js +7 -0
  307. package/build/development/internals/isHex.js.map +7 -0
  308. package/build/development/internals/resolveModule.d.ts +1 -0
  309. package/build/development/internals/resolveModule.js +9 -0
  310. package/build/development/internals/resolveModule.js.map +7 -0
  311. package/build/development/internals/round.d.ts +1 -0
  312. package/build/development/internals/round.js +6 -0
  313. package/build/development/internals/round.js.map +7 -0
  314. package/build/development/internals/unsignedModulo.d.ts +1 -0
  315. package/build/development/internals/unsignedModulo.js +5 -0
  316. package/build/development/internals/unsignedModulo.js.map +7 -0
  317. package/build/development/internals.d.ts +18 -0
  318. package/build/development/internals.js +20 -0
  319. package/build/development/internals.js.map +7 -0
  320. package/build/development.d.ts +2 -0
  321. package/build/development.js +4 -0
  322. package/build/development.js.map +7 -0
  323. package/build/inter-variable-italic.woff2 +0 -0
  324. package/build/inter-variable.woff2 +0 -0
  325. package/build/main.d.ts +5 -0
  326. package/build/main.js +7 -0
  327. package/build/main.js.map +7 -0
  328. package/build/styles.css +23 -0
  329. package/build/styles.css.map +7 -0
  330. package/build/theme/Theme.d.ts +146 -0
  331. package/build/theme/Theme.js +2 -0
  332. package/build/theme/Theme.js.map +7 -0
  333. package/build/theme/ThemeProvider.d.ts +6 -0
  334. package/build/theme/ThemeProvider.js +7 -0
  335. package/build/theme/ThemeProvider.js.map +7 -0
  336. package/build/theme/defaultTheme.d.ts +2 -0
  337. package/build/theme/defaultTheme.js +102 -0
  338. package/build/theme/defaultTheme.js.map +7 -0
  339. package/build/theme/internals/ClassName.d.ts +1 -0
  340. package/build/theme/internals/ClassName.js +2 -0
  341. package/build/theme/internals/ClassName.js.map +7 -0
  342. package/build/theme/internals/ComponentProps.d.ts +7 -0
  343. package/build/theme/internals/ComponentProps.js +2 -0
  344. package/build/theme/internals/ComponentProps.js.map +7 -0
  345. package/build/theme/internals/ComponentTheme.d.ts +35 -0
  346. package/build/theme/internals/ComponentTheme.js +2 -0
  347. package/build/theme/internals/ComponentTheme.js.map +7 -0
  348. package/build/theme/internals/ComponentThemeCompoundVariants.d.ts +12 -0
  349. package/build/theme/internals/ComponentThemeCompoundVariants.js +2 -0
  350. package/build/theme/internals/ComponentThemeCompoundVariants.js.map +7 -0
  351. package/build/theme/internals/ComponentThemeDefinition.d.ts +6 -0
  352. package/build/theme/internals/ComponentThemeDefinition.js +2 -0
  353. package/build/theme/internals/ComponentThemeDefinition.js.map +7 -0
  354. package/build/theme/internals/ComponentThemeDefinitionElements.d.ts +1 -0
  355. package/build/theme/internals/ComponentThemeDefinitionElements.js +2 -0
  356. package/build/theme/internals/ComponentThemeDefinitionElements.js.map +7 -0
  357. package/build/theme/internals/ComponentThemeDefinitionVariants.d.ts +3 -0
  358. package/build/theme/internals/ComponentThemeDefinitionVariants.js +2 -0
  359. package/build/theme/internals/ComponentThemeDefinitionVariants.js.map +7 -0
  360. package/build/theme/internals/ComponentThemeProps.d.ts +5 -0
  361. package/build/theme/internals/ComponentThemeProps.js +2 -0
  362. package/build/theme/internals/ComponentThemeProps.js.map +7 -0
  363. package/build/theme/internals/ComponentThemeVariants.d.ts +14 -0
  364. package/build/theme/internals/ComponentThemeVariants.js +2 -0
  365. package/build/theme/internals/ComponentThemeVariants.js.map +7 -0
  366. package/build/theme/internals/ComponentWithTheme.d.ts +5 -0
  367. package/build/theme/internals/ComponentWithTheme.js +2 -0
  368. package/build/theme/internals/ComponentWithTheme.js.map +7 -0
  369. package/build/theme/internals/UseComponentTheme.d.ts +21 -0
  370. package/build/theme/internals/UseComponentTheme.js +2 -0
  371. package/build/theme/internals/UseComponentTheme.js.map +7 -0
  372. package/build/theme/internals/UseComponentThemeReturn.d.ts +6 -0
  373. package/build/theme/internals/UseComponentThemeReturn.js +2 -0
  374. package/build/theme/internals/UseComponentThemeReturn.js.map +7 -0
  375. package/build/theme/internals/booleanToString.d.ts +1 -0
  376. package/build/theme/internals/booleanToString.js +5 -0
  377. package/build/theme/internals/booleanToString.js.map +7 -0
  378. package/build/theme/internals/createComponentTheme.d.ts +3 -0
  379. package/build/theme/internals/createComponentTheme.js +39 -0
  380. package/build/theme/internals/createComponentTheme.js.map +7 -0
  381. package/build/theme/internals/createUseComponentThemeReturn.d.ts +15 -0
  382. package/build/theme/internals/createUseComponentThemeReturn.js +50 -0
  383. package/build/theme/internals/createUseComponentThemeReturn.js.map +7 -0
  384. package/build/theme/internals/pickPropertyIfExists.d.ts +4 -0
  385. package/build/theme/internals/pickPropertyIfExists.js +11 -0
  386. package/build/theme/internals/pickPropertyIfExists.js.map +7 -0
  387. package/build/theme/internals/themeContext.d.ts +354 -0
  388. package/build/theme/internals/themeContext.js +4 -0
  389. package/build/theme/internals/themeContext.js.map +7 -0
  390. package/build/theme/internals/useTheme.d.ts +353 -0
  391. package/build/theme/internals/useTheme.js +7 -0
  392. package/build/theme/internals/useTheme.js.map +7 -0
  393. package/build/theme/internals.d.ts +18 -0
  394. package/build/theme/internals.js +20 -0
  395. package/build/theme/internals.js.map +7 -0
  396. package/build/theme.d.ts +3 -0
  397. package/build/theme.js +5 -0
  398. package/build/theme.js.map +7 -0
  399. package/build/utilities/WithLocaleOrLocales.d.ts +5 -0
  400. package/build/utilities/WithLocaleOrLocales.js +2 -0
  401. package/build/utilities/WithLocaleOrLocales.js.map +7 -0
  402. package/build/utilities/formatDateTime.d.ts +3 -0
  403. package/build/utilities/formatDateTime.js +11 -0
  404. package/build/utilities/formatDateTime.js.map +7 -0
  405. package/build/utilities/formatNumber.d.ts +3 -0
  406. package/build/utilities/formatNumber.js +11 -0
  407. package/build/utilities/formatNumber.js.map +7 -0
  408. package/build/utilities/internals/cache.d.ts +1 -0
  409. package/build/utilities/internals/cache.js +3 -0
  410. package/build/utilities/internals/cache.js.map +7 -0
  411. package/build/utilities/internals/createCacheKey.d.ts +1 -0
  412. package/build/utilities/internals/createCacheKey.js +6 -0
  413. package/build/utilities/internals/createCacheKey.js.map +7 -0
  414. package/build/utilities/internals/getMemoized.d.ts +1 -0
  415. package/build/utilities/internals/getMemoized.js +12 -0
  416. package/build/utilities/internals/getMemoized.js.map +7 -0
  417. package/build/utilities/internals/normalizeLocales.d.ts +2 -0
  418. package/build/utilities/internals/normalizeLocales.js +12 -0
  419. package/build/utilities/internals/normalizeLocales.js.map +7 -0
  420. package/build/utilities/internals.d.ts +4 -0
  421. package/build/utilities/internals.js +6 -0
  422. package/build/utilities/internals.js.map +7 -0
  423. package/build/utilities.d.ts +3 -0
  424. package/build/utilities.js +5 -0
  425. package/build/utilities.js.map +7 -0
  426. package/package.json +101 -0
  427. package/source/components/Button.tsx +172 -0
  428. package/source/components/Card.ts +46 -0
  429. package/source/components/Checkbox.tsx +125 -0
  430. package/source/components/CheckboxField.tsx +61 -0
  431. package/source/components/Combobox.tsx +298 -0
  432. package/source/components/ComboboxOption.tsx +95 -0
  433. package/source/components/Container.ts +84 -0
  434. package/source/components/Description.tsx +52 -0
  435. package/source/components/Dialog.tsx +85 -0
  436. package/source/components/DialogPanel.tsx +54 -0
  437. package/source/components/DialogTitle.tsx +52 -0
  438. package/source/components/Error.tsx +58 -0
  439. package/source/components/Field.tsx +79 -0
  440. package/source/components/Fieldset.tsx +64 -0
  441. package/source/components/Form.tsx +72 -0
  442. package/source/components/Icon.tsx +102 -0
  443. package/source/components/Input.tsx +156 -0
  444. package/source/components/Label.tsx +49 -0
  445. package/source/components/Legend.tsx +49 -0
  446. package/source/components/Listbox.tsx +401 -0
  447. package/source/components/ListboxOption.tsx +95 -0
  448. package/source/components/Menu.tsx +50 -0
  449. package/source/components/MenuButton.tsx +69 -0
  450. package/source/components/MenuHeading.tsx +52 -0
  451. package/source/components/MenuItem.tsx +64 -0
  452. package/source/components/MenuItems.tsx +62 -0
  453. package/source/components/MenuSection.tsx +52 -0
  454. package/source/components/MenuSeparator.tsx +52 -0
  455. package/source/components/Popover.tsx +52 -0
  456. package/source/components/PopoverBackdrop.tsx +52 -0
  457. package/source/components/PopoverButton.tsx +72 -0
  458. package/source/components/PopoverGroup.tsx +52 -0
  459. package/source/components/PopoverPanel.tsx +65 -0
  460. package/source/components/Radio.tsx +88 -0
  461. package/source/components/RadioField.tsx +31 -0
  462. package/source/components/RadioGroup.tsx +147 -0
  463. package/source/components/Spinner.tsx +70 -0
  464. package/source/components/Table.ts +47 -0
  465. package/source/components/TableBody.ts +47 -0
  466. package/source/components/TableCaption.ts +52 -0
  467. package/source/components/TableCell.ts +47 -0
  468. package/source/components/TableFoot.ts +47 -0
  469. package/source/components/TableHead.ts +47 -0
  470. package/source/components/TableHeader.ts +47 -0
  471. package/source/components/TableRow.ts +47 -0
  472. package/source/components/Text.ts +64 -0
  473. package/source/components/Textarea.tsx +104 -0
  474. package/source/components/data-table/DataTable.tsx +377 -0
  475. package/source/components/data-table/DataTableColumnOrder.ts +5 -0
  476. package/source/components/data-table/DataTableColumnPinning.ts +5 -0
  477. package/source/components/data-table/DataTableColumnVisibility.ts +5 -0
  478. package/source/components/data-table/DataTableFaceting.ts +12 -0
  479. package/source/components/data-table/DataTableFilters.ts +18 -0
  480. package/source/components/data-table/DataTablePagination.ts +18 -0
  481. package/source/components/data-table/DataTableSearch.ts +5 -0
  482. package/source/components/data-table/DataTableSorting.ts +11 -0
  483. package/source/components/data-table/internals/DataTableHeader.tsx +254 -0
  484. package/source/components/data-table/internals/DataTableHeaderColumnCheckbox.tsx +44 -0
  485. package/source/components/data-table/internals/DataTableHeaderFilter.tsx +340 -0
  486. package/source/components/data-table/internals/DataTablePageButton.tsx +21 -0
  487. package/source/components/data-table/internals/DataTablePagination.tsx +220 -0
  488. package/source/components/data-table/internals/DataTableSearch.tsx +109 -0
  489. package/source/components/data-table/internals/addFilter.ts +42 -0
  490. package/source/components/data-table/internals/constants.ts +3 -0
  491. package/source/components/data-table/internals/fromPinningState.ts +17 -0
  492. package/source/components/data-table/internals/fuzzyFilter.ts +15 -0
  493. package/source/components/data-table/internals/getCommonPinningClasses.ts +19 -0
  494. package/source/components/data-table/internals/getCommonPinningStyles.ts +13 -0
  495. package/source/components/data-table/internals/normalizeFilter.ts +33 -0
  496. package/source/components/data-table/internals/normalizeFilters.ts +31 -0
  497. package/source/components/data-table/internals/normalizeSorting.ts +40 -0
  498. package/source/components/data-table/internals/removeFilter.ts +26 -0
  499. package/source/components/data-table/internals.ts +16 -0
  500. package/source/components/data-table.ts +9 -0
  501. package/source/components/internals/fieldContext.ts +4 -0
  502. package/source/components/internals/fieldNameContext.ts +5 -0
  503. package/source/components/internals/filterProps.ts +12 -0
  504. package/source/components/internals/formIdContext.ts +3 -0
  505. package/source/components/internals/forwardRef.ts +7 -0
  506. package/source/components/internals/useFormId.ts +7 -0
  507. package/source/components/internals.ts +6 -0
  508. package/source/components/useField.ts +7 -0
  509. package/source/components/useFieldName.ts +7 -0
  510. package/source/components/useForm.ts +24 -0
  511. package/source/components.ts +51 -0
  512. package/source/development/createTailwindConfig.ts +189 -0
  513. package/source/development/createTailwindMerge.ts +101 -0
  514. package/source/development/internals/PaletteConfig.ts +6 -0
  515. package/source/development/internals/SwatchValue.ts +9 -0
  516. package/source/development/internals/clamp.ts +3 -0
  517. package/source/development/internals/constants.ts +4 -0
  518. package/source/development/internals/createDisplayColor.ts +29 -0
  519. package/source/development/internals/createDistributionValues.ts +38 -0
  520. package/source/development/internals/createHueScale.ts +17 -0
  521. package/source/development/internals/createPalette.ts +54 -0
  522. package/source/development/internals/createSaturationScale.ts +21 -0
  523. package/source/development/internals/createSwatches.ts +34 -0
  524. package/source/development/internals/hexToHsl.ts +45 -0
  525. package/source/development/internals/hexToRgb.ts +23 -0
  526. package/source/development/internals/hslToHex.ts +23 -0
  527. package/source/development/internals/hslToRgb.ts +43 -0
  528. package/source/development/internals/isHex.ts +7 -0
  529. package/source/development/internals/resolveModule.ts +9 -0
  530. package/source/development/internals/round.ts +5 -0
  531. package/source/development/internals/unsignedModulo.ts +3 -0
  532. package/source/development/internals.ts +18 -0
  533. package/source/development.ts +2 -0
  534. package/source/inter-variable-italic.woff2 +0 -0
  535. package/source/inter-variable.woff2 +0 -0
  536. package/source/main.ts +5 -0
  537. package/source/styles.css +25 -0
  538. package/source/theme/Theme.ts +102 -0
  539. package/source/theme/ThemeProvider.tsx +12 -0
  540. package/source/theme/defaultTheme.ts +103 -0
  541. package/source/theme/internals/ClassName.ts +1 -0
  542. package/source/theme/internals/ComponentProps.ts +13 -0
  543. package/source/theme/internals/ComponentTheme.ts +50 -0
  544. package/source/theme/internals/ComponentThemeCompoundVariants.ts +20 -0
  545. package/source/theme/internals/ComponentThemeDefinition.ts +7 -0
  546. package/source/theme/internals/ComponentThemeDefinitionElements.ts +1 -0
  547. package/source/theme/internals/ComponentThemeDefinitionVariants.ts +3 -0
  548. package/source/theme/internals/ComponentThemeProps.ts +11 -0
  549. package/source/theme/internals/ComponentThemeVariants.ts +24 -0
  550. package/source/theme/internals/ComponentWithTheme.ts +6 -0
  551. package/source/theme/internals/UseComponentTheme.ts +22 -0
  552. package/source/theme/internals/UseComponentThemeReturn.ts +15 -0
  553. package/source/theme/internals/booleanToString.ts +6 -0
  554. package/source/theme/internals/createComponentTheme.ts +70 -0
  555. package/source/theme/internals/createUseComponentThemeReturn.ts +87 -0
  556. package/source/theme/internals/pickPropertyIfExists.ts +24 -0
  557. package/source/theme/internals/themeContext.ts +5 -0
  558. package/source/theme/internals/useTheme.ts +7 -0
  559. package/source/theme/internals.ts +18 -0
  560. package/source/theme.ts +3 -0
  561. package/source/utilities/WithLocaleOrLocales.ts +1 -0
  562. package/source/utilities/formatDateTime.ts +15 -0
  563. package/source/utilities/formatNumber.ts +15 -0
  564. package/source/utilities/internals/cache.ts +1 -0
  565. package/source/utilities/internals/createCacheKey.ts +9 -0
  566. package/source/utilities/internals/getMemoized.ts +14 -0
  567. package/source/utilities/internals/normalizeLocales.ts +15 -0
  568. package/source/utilities/internals.ts +4 -0
  569. package/source/utilities.ts +3 -0
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ Combobox as HeadlessCombobox,
5
+ ComboboxButton as HeadlessComboboxButton,
6
+ ComboboxInput as HeadlessComboboxInput,
7
+ ComboboxOptions as HeadlessComboboxOptions
8
+ } from "@headlessui/react";
9
+ import { ChevronDownIcon } from "@heroicons/react/24/outline";
10
+ import {
11
+ Children,
12
+ Fragment,
13
+ useCallback,
14
+ useState
15
+ } from "react";
16
+ import {
17
+ createComponentTheme
18
+ } from "../theme/internals.js";
19
+ import { ComboboxOption } from "./ComboboxOption.js";
20
+ import { Icon } from "./Icon.js";
21
+ import { forwardRef, useFormId } from "./internals.js";
22
+ import { useField } from "./useField.js";
23
+ import { useFieldName } from "./useFieldName.js";
24
+ export const useComboboxTheme = createComponentTheme("Combobox", {
25
+ variants: { disabled: [true, false], invalid: [true, false] },
26
+ elements: ["root", "input", "icon", "options"]
27
+ });
28
+ const COMBOBOX_ELEMENT = Fragment;
29
+ export const Combobox = forwardRef(
30
+ ({
31
+ disabled = false,
32
+ invalid = false,
33
+ as = COMBOBOX_ELEMENT,
34
+ value,
35
+ defaultValue,
36
+ multiple,
37
+ items,
38
+ placeholder,
39
+ immediate = true,
40
+ virtual = false,
41
+ customValue = false,
42
+ name,
43
+ className,
44
+ onChange,
45
+ children,
46
+ ...rest
47
+ }, ref) => {
48
+ let theme = useComboboxTheme({ disabled, invalid });
49
+ let formId = useFormId();
50
+ let field = useField();
51
+ let fieldName = useFieldName();
52
+ let [query, setQuery] = useState("");
53
+ let handleChange = useCallback(
54
+ (selectedValue) => {
55
+ if (selectedValue) {
56
+ onChange?.(selectedValue);
57
+ }
58
+ if (selectedValue === null) {
59
+ onChange?.(void 0);
60
+ }
61
+ },
62
+ [onChange]
63
+ );
64
+ let displayValue = useCallback(
65
+ (option) => {
66
+ if (items) {
67
+ let selectedItem = items.find((item) => item.value === option);
68
+ if (selectedItem) {
69
+ return selectedItem.label;
70
+ }
71
+ }
72
+ return option;
73
+ },
74
+ [items]
75
+ );
76
+ let handleQueryChange = useCallback((event) => {
77
+ setQuery(event.target.value);
78
+ }, []);
79
+ if (virtual && !items) {
80
+ throw new Error("Combobox requires `items` prop in virtual scrolling mode!");
81
+ }
82
+ if (virtual && customValue) {
83
+ throw new Error("Combobox doesn't support `customValue` prop in virtual scrolling mode!");
84
+ }
85
+ if (items && children) {
86
+ throw new Error("Combobox accepts only either `items` prop, or children!");
87
+ }
88
+ let filteredItems = query ? items?.filter(
89
+ (item) => `${item.label}`.toLowerCase().replace(/\s+/g, "").includes(query.toLowerCase().replace(/\s+/g, ""))
90
+ ) : items;
91
+ let filteredChildren = query ? Children.toArray(children).filter((child) => {
92
+ if (typeof child === "object" && "props" in child && typeof child.props === "object" && typeof child.props.children === "string" && child.props.children.toLowerCase().replace(/\s+/g, "").includes(query.toLowerCase().replace(/\s+/g, ""))) {
93
+ return true;
94
+ }
95
+ return false;
96
+ }) : children;
97
+ let props = {
98
+ as,
99
+ ref,
100
+ name: field?.name ?? fieldName ?? name,
101
+ value: value ?? null,
102
+ defaultValue,
103
+ multiple,
104
+ disabled,
105
+ immediate,
106
+ form: formId,
107
+ onChange: handleChange,
108
+ ...rest
109
+ };
110
+ if (virtual) {
111
+ props.virtual = {
112
+ options: filteredItems?.map((item) => item.value) ?? []
113
+ };
114
+ }
115
+ return /* @__PURE__ */ jsxs(HeadlessCombobox, { ...props, children: [
116
+ /* @__PURE__ */ jsxs("div", { className: theme.root("relative", className), "data-component": "combobox", children: [
117
+ /* @__PURE__ */ jsx(
118
+ HeadlessComboboxInput,
119
+ {
120
+ className: theme.input(null, className),
121
+ size: 1,
122
+ displayValue,
123
+ onChange: handleQueryChange
124
+ }
125
+ ),
126
+ /* @__PURE__ */ jsx(HeadlessComboboxButton, { className: theme.icon("absolute"), children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(ChevronDownIcon, {}) }) })
127
+ ] }),
128
+ virtual && filteredItems ? /* @__PURE__ */ jsx(HeadlessComboboxOptions, { className: theme.options(), anchor: "bottom start", children: ({ option }) => /* @__PURE__ */ jsx(ComboboxOption, { value: option, children: items?.find((item) => item.value === option)?.label }) }) : null,
129
+ !virtual && filteredItems ? /* @__PURE__ */ jsxs(HeadlessComboboxOptions, { className: theme.options(), anchor: "bottom start", children: [
130
+ customValue && query.length ? /* @__PURE__ */ jsx(ComboboxOption, { value: query, children: query }, query) : null,
131
+ filteredItems.map((item) => /* @__PURE__ */ jsx(ComboboxOption, { value: item.value, children: item.label }, String(item.value)))
132
+ ] }) : null,
133
+ !filteredItems && Array.isArray(filteredChildren) ? /* @__PURE__ */ jsxs(HeadlessComboboxOptions, { className: theme.options(), anchor: "bottom start", children: [
134
+ customValue && query.length ? /* @__PURE__ */ jsx(ComboboxOption, { value: query, children: query }) : null,
135
+ filteredChildren
136
+ ] }) : null
137
+ ] });
138
+ }
139
+ );
140
+ export const comboboxTheme = {
141
+ classNames: {
142
+ root: "w-full min-w-32",
143
+ input: "flex w-full items-center rounded-2 border-2 border-neutral-100 hover:border-neutral-200 bg-white px-2.5 h-9 pr-9 gap-x-2 transition-colors shadow-inner font-sans text-sm",
144
+ icon: "text-neutral-500 size-5 top-2 right-2 cursor-pointer",
145
+ options: "flex flex-col gap-y-1 shadow p-1 z-30 rounded-2 border-2 border-neutral-100 hover:border-neutral-200 bg-white text-left w-[var(--input-width)] [--anchor-gap:theme(spacing.1)] [--anchor-padding:theme(spacing.2)] [scrollbar-width:thin] empty:invisible transition-colors"
146
+ },
147
+ variants: {
148
+ disabled: {
149
+ true: {
150
+ root: "border-neutral-100 text-neutral-200 cursor-not-allowed",
151
+ input: "",
152
+ icon: "text-neutral-200",
153
+ options: "border-neutral-100"
154
+ },
155
+ false: {
156
+ root: "",
157
+ input: "",
158
+ icon: "",
159
+ options: ""
160
+ }
161
+ },
162
+ invalid: {
163
+ true: {
164
+ root: "",
165
+ input: "",
166
+ icon: "",
167
+ options: ""
168
+ },
169
+ false: {
170
+ root: "",
171
+ input: "",
172
+ icon: "",
173
+ options: ""
174
+ }
175
+ }
176
+ }
177
+ };
178
+ //# sourceMappingURL=Combobox.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/Combobox.tsx"],
4
+ "sourcesContent": ["// TODO: fix somehow\n/* eslint-disable complexity -- TODO */\nimport {\n Combobox as HeadlessCombobox,\n ComboboxButton as HeadlessComboboxButton,\n ComboboxInput as HeadlessComboboxInput,\n ComboboxOptions as HeadlessComboboxOptions,\n type ComboboxProps as HeadlessComboboxProps,\n} from '@headlessui/react';\nimport {ChevronDownIcon} from '@heroicons/react/24/outline';\nimport {\n type ChangeEvent,\n Children,\n type ComponentPropsWithoutRef,\n type ElementType,\n Fragment,\n type PropsWithChildren,\n type Ref,\n useCallback,\n useState,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {ComboboxOption} from './ComboboxOption.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 useComboboxTheme = createComponentTheme('Combobox', {\n variants: {disabled: [true, false], invalid: [true, false]},\n elements: ['root', 'input', 'icon', 'options'],\n});\n\nconst COMBOBOX_ELEMENT = Fragment;\n\nexport type ComboboxItem<V> = {\n value: V;\n label: string;\n};\n\nexport type ComboboxProps<\n T extends ElementType,\n V extends boolean | number | string,\n> = PropsWithChildren<\n ComponentProps<typeof useComboboxTheme> &\n ComponentPropsWithoutRef<T> &\n (\n | {\n as?: T | undefined;\n value?: V | undefined;\n defaultValue?: V | undefined;\n multiple?: false | undefined;\n items?: Array<ComboboxItem<V>> | undefined;\n placeholder?: string;\n immediate?: boolean | undefined;\n virtual?: boolean | undefined;\n customValue?: boolean | undefined;\n name?: string | undefined;\n className?: string;\n onChange?: (selectedValue: V | undefined) => void;\n }\n | {\n as?: T | undefined;\n value?: V[] | undefined;\n defaultValue?: V[] | undefined;\n multiple: true;\n items?: Array<ComboboxItem<V>> | undefined;\n placeholder?: string;\n immediate?: boolean | undefined;\n virtual?: boolean | undefined;\n customValue?: boolean | undefined;\n name?: string | undefined;\n className?: string;\n onChange?: (selectedValue: V[] | undefined) => void;\n }\n )\n>;\n\nexport const Combobox = forwardRef(\n <T extends ElementType = typeof COMBOBOX_ELEMENT, V extends boolean | number | string = string>(\n {\n disabled = false,\n invalid = false,\n as = COMBOBOX_ELEMENT as unknown as T,\n value,\n defaultValue,\n multiple,\n items,\n placeholder,\n immediate = true,\n virtual = false,\n customValue = false,\n name,\n className,\n onChange,\n children,\n ...rest\n }: ComboboxProps<T, V>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useComboboxTheme({disabled, invalid});\n let formId = useFormId();\n let field = useField();\n let fieldName = useFieldName();\n let [query, setQuery] = useState('');\n\n let handleChange = useCallback(\n (selectedValue: V | null) => {\n if (selectedValue) {\n onChange?.(selectedValue as V & V[]);\n }\n\n if (selectedValue === null) {\n onChange?.(undefined);\n }\n },\n [onChange],\n );\n\n let displayValue = useCallback(\n (option: string) => {\n if (items) {\n let selectedItem = items.find((item) => item.value === option);\n\n if (selectedItem) {\n return selectedItem.label;\n }\n }\n\n return option;\n },\n [items],\n );\n\n let handleQueryChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setQuery(event.target.value);\n }, []);\n\n if (virtual && !items) {\n throw new Error('Combobox requires `items` prop in virtual scrolling mode!');\n }\n\n if (virtual && customValue) {\n throw new Error(\"Combobox doesn't support `customValue` prop in virtual scrolling mode!\");\n }\n\n if (items && children) {\n throw new Error('Combobox accepts only either `items` prop, or children!');\n }\n\n let filteredItems =\n query ?\n items?.filter((item) =>\n `${item.label as number | string}`\n .toLowerCase()\n .replace(/\\s+/g, '')\n .includes(query.toLowerCase().replace(/\\s+/g, '')),\n )\n : items;\n let filteredChildren =\n query ?\n Children.toArray(children).filter((child) => {\n if (\n typeof child === 'object' &&\n 'props' in child &&\n typeof child.props === 'object' &&\n typeof (child.props as {children?: unknown[] | string}).children === 'string' &&\n (child.props as {children: string}).children\n .toLowerCase()\n .replace(/\\s+/g, '')\n .includes(query.toLowerCase().replace(/\\s+/g, ''))\n ) {\n return true;\n }\n\n return false;\n })\n : children;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessComboboxProps<any, any, any> = {\n as,\n ref,\n name: field?.name ?? fieldName ?? name,\n value: value ?? null,\n defaultValue,\n multiple,\n disabled,\n immediate,\n form: formId,\n onChange: handleChange,\n ...rest,\n };\n\n if (virtual) {\n props.virtual = {\n options: filteredItems?.map((item) => item.value) ?? [],\n };\n }\n\n return (\n <HeadlessCombobox {...props}>\n <div className={theme.root('relative', className)} data-component=\"combobox\">\n <HeadlessComboboxInput\n className={theme.input(null, className)}\n size={1} // so the input default width without styling is small\n displayValue={displayValue}\n onChange={handleQueryChange}\n />\n <HeadlessComboboxButton className={theme.icon('absolute')}>\n <Icon>\n <ChevronDownIcon />\n </Icon>\n </HeadlessComboboxButton>\n </div>\n\n {virtual && filteredItems ?\n <HeadlessComboboxOptions className={theme.options()} anchor=\"bottom start\">\n {({option}: {option: V}) => (\n <ComboboxOption value={option}>\n {items?.find((item) => item.value === option)?.label}\n </ComboboxOption>\n )}\n </HeadlessComboboxOptions>\n : null}\n\n {!virtual && filteredItems ?\n <HeadlessComboboxOptions className={theme.options()} anchor=\"bottom start\">\n {customValue && query.length ?\n <ComboboxOption key={query} value={query}>\n {query}\n </ComboboxOption>\n : null}\n {filteredItems.map((item) => (\n <ComboboxOption key={String(item.value)} value={item.value}>\n {item.label}\n </ComboboxOption>\n ))}\n </HeadlessComboboxOptions>\n : null}\n\n {!filteredItems && Array.isArray(filteredChildren) ?\n <HeadlessComboboxOptions className={theme.options()} anchor=\"bottom start\">\n {customValue && query.length ?\n <ComboboxOption value={query}>{query}</ComboboxOption>\n : null}\n {filteredChildren}\n </HeadlessComboboxOptions>\n : null}\n </HeadlessCombobox>\n );\n },\n);\n\nexport const comboboxTheme: ComponentTheme<typeof useComboboxTheme> = {\n classNames: {\n root: 'w-full min-w-32',\n input:\n 'flex w-full items-center rounded-2 border-2 border-neutral-100 hover:border-neutral-200 bg-white px-2.5 h-9 pr-9 gap-x-2 transition-colors shadow-inner font-sans text-sm',\n icon: 'text-neutral-500 size-5 top-2 right-2 cursor-pointer',\n options:\n 'flex flex-col gap-y-1 shadow p-1 z-30 rounded-2 border-2 border-neutral-100 hover:border-neutral-200 bg-white text-left w-[var(--input-width)] [--anchor-gap:theme(spacing.1)] [--anchor-padding:theme(spacing.2)] [scrollbar-width:thin] empty:invisible transition-colors',\n },\n variants: {\n disabled: {\n true: {\n root: 'border-neutral-100 text-neutral-200 cursor-not-allowed',\n input: '',\n icon: 'text-neutral-200',\n options: 'border-neutral-100',\n },\n false: {\n root: '',\n input: '',\n icon: '',\n options: '',\n },\n },\n invalid: {\n true: {\n root: '',\n input: '',\n icon: '',\n options: '',\n },\n false: {\n root: '',\n input: '',\n icon: '',\n options: '',\n },\n },\n },\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,33 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useComboboxOptionTheme: ((themeProps: {
4
+ readonly disabled: boolean;
5
+ }) => {
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;
8
+ }) & {
9
+ componentThemeName: "ComboboxOption";
10
+ themeDefinition: {
11
+ readonly variants: {
12
+ readonly disabled: [true, false];
13
+ };
14
+ readonly elements: ["root", "icon"];
15
+ };
16
+ };
17
+ export type ComboboxOptionProps<T extends ElementType, V extends boolean | number | string> = PropsWithChildren<ComponentProps<typeof useComboboxOptionTheme> & ComponentPropsWithoutRef<T> & {
18
+ as?: T | undefined;
19
+ value: V;
20
+ className?: string;
21
+ }>;
22
+ export declare const ComboboxOption: <T extends ElementType = "div", V extends string | number | boolean = string>(props: Partial<import("@jakubmazanec/ts-utils").Writable<{
23
+ readonly disabled: boolean;
24
+ }>> & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
25
+ as?: T | undefined;
26
+ value: V;
27
+ className?: string | undefined;
28
+ } & {
29
+ children?: import("react").ReactNode;
30
+ } & {
31
+ ref?: Ref<HTMLElement> | undefined;
32
+ }) => import("react").ReactNode;
33
+ export declare const comboboxOptionTheme: ComponentTheme<typeof useComboboxOptionTheme>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ ComboboxOption as HeadlessComboboxOption
5
+ } from "@headlessui/react";
6
+ import {
7
+ createComponentTheme
8
+ } from "../theme/internals.js";
9
+ import { Icon } from "./Icon.js";
10
+ import { forwardRef } from "./internals.js";
11
+ export const useComboboxOptionTheme = createComponentTheme("ComboboxOption", {
12
+ variants: { disabled: [true, false] },
13
+ elements: ["root", "icon"]
14
+ });
15
+ const LISTBOX_OPTION_ELEMENT = "div";
16
+ export const ComboboxOption = forwardRef(
17
+ ({
18
+ disabled = false,
19
+ as = LISTBOX_OPTION_ELEMENT,
20
+ value,
21
+ className,
22
+ children,
23
+ ...rest
24
+ }, ref) => {
25
+ let theme = useComboboxOptionTheme({ disabled });
26
+ let props = {
27
+ as,
28
+ ref,
29
+ value,
30
+ disabled,
31
+ className: theme.root("cursor-pointer", className),
32
+ "data-component": "combobox-option",
33
+ ...rest
34
+ };
35
+ return /* @__PURE__ */ jsxs(HeadlessComboboxOption, { ...props, children: [
36
+ /* @__PURE__ */ jsx("span", { className: theme.icon("absolute"), children: /* @__PURE__ */ jsx(Icon, { name: "Check" }) }),
37
+ children
38
+ ] });
39
+ }
40
+ );
41
+ export const comboboxOptionTheme = {
42
+ classNames: {
43
+ root: "relative group/option p-1 pr-6 rounded-1 hover:bg-neutral-50 data-[active]:bg-neutral-50 text-sm transition-colors",
44
+ icon: "hidden group-data-[selected]/option:block right-1 top-1 text-neutral-500"
45
+ },
46
+ variants: {
47
+ disabled: {
48
+ true: {
49
+ root: "text-neutral-200 cursor-not-allowed",
50
+ icon: "text-neutral-200"
51
+ },
52
+ false: {
53
+ root: "",
54
+ icon: ""
55
+ }
56
+ }
57
+ }
58
+ };
59
+ //# sourceMappingURL=ComboboxOption.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/ComboboxOption.tsx"],
4
+ "sourcesContent": ["import {\n ComboboxOption as HeadlessComboboxOption,\n type ComboboxOptionProps as HeadlessComboboxOptionProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {Icon} from './Icon.js';\nimport {forwardRef} from './internals.js';\n\nexport const useComboboxOptionTheme = createComponentTheme('ComboboxOption', {\n variants: {disabled: [true, false]},\n elements: ['root', 'icon'],\n});\n\nconst LISTBOX_OPTION_ELEMENT = 'div';\n\nexport type ComboboxOptionProps<\n T extends ElementType,\n V extends boolean | number | string,\n> = PropsWithChildren<\n ComponentProps<typeof useComboboxOptionTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n value: V;\n className?: string;\n }\n>;\n\nexport const ComboboxOption = forwardRef(\n <\n T extends ElementType = typeof LISTBOX_OPTION_ELEMENT,\n V extends boolean | number | string = string,\n >(\n {\n disabled = false,\n as = LISTBOX_OPTION_ELEMENT as T,\n value,\n className,\n children,\n ...rest\n }: ComboboxOptionProps<T, V>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useComboboxOptionTheme({disabled});\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessComboboxOptionProps<any, any> = {\n as,\n ref,\n value,\n disabled,\n className: theme.root('cursor-pointer', className),\n 'data-component': 'combobox-option',\n ...rest,\n };\n\n return (\n <HeadlessComboboxOption {...props}>\n <span className={theme.icon('absolute')}>\n <Icon name=\"Check\" />\n </span>\n {children}\n </HeadlessComboboxOption>\n );\n },\n);\n\nexport const comboboxOptionTheme: ComponentTheme<typeof useComboboxOptionTheme> = {\n classNames: {\n root: 'relative group/option p-1 pr-6 rounded-1 hover:bg-neutral-50 data-[active]:bg-neutral-50 text-sm transition-colors',\n icon: 'hidden group-data-[selected]/option:block right-1 top-1 text-neutral-500',\n },\n variants: {\n disabled: {\n true: {\n root: 'text-neutral-200 cursor-not-allowed',\n icon: 'text-neutral-200',\n },\n false: {\n root: '',\n icon: '',\n },\n },\n },\n};\n"],
5
+ "mappings": ";AAmEM,SAEI,KAFJ;AAnEN;AAAA,EACE,kBAAkB;AAAA,OAEb;AAQP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,YAAW;AACnB,SAAQ,kBAAiB;AAElB,aAAM,yBAAyB,qBAAqB,kBAAkB;AAAA,EAC3E,UAAU,EAAC,UAAU,CAAC,MAAM,KAAK,EAAC;AAAA,EAClC,UAAU,CAAC,QAAQ,MAAM;AAC3B,CAAC;AAED,MAAM,yBAAyB;AAcxB,aAAM,iBAAiB;AAAA,EAC5B,CAIE;AAAA,IACE,WAAW;AAAA,IACX,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,uBAAuB,EAAC,SAAQ,CAAC;AAG7C,QAAI,QAA+C;AAAA,MACjD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,MAAM,KAAK,kBAAkB,SAAS;AAAA,MACjD,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL;AAEA,WACE,qBAAC,0BAAwB,GAAG,OAC1B;AAAA,0BAAC,UAAK,WAAW,MAAM,KAAK,UAAU,GACpC,8BAAC,QAAK,MAAK,SAAQ,GACrB;AAAA,MACC;AAAA,OACH;AAAA,EAEJ;AACF;AAEO,aAAM,sBAAqE;AAAA,EAChF,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
+ "names": []
7
+ }
@@ -0,0 +1,36 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useContainerTheme: ((themeProps: {
4
+ readonly spacing: "small" | "medium" | "large" | "extra-small";
5
+ readonly direction: "row" | "column";
6
+ readonly justify: "center" | "normal" | "spaced";
7
+ readonly align: "center" | "normal";
8
+ }) => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
9
+ componentThemeName: "Container";
10
+ themeDefinition: {
11
+ readonly variants: {
12
+ readonly spacing: ["extra-small", "small", "medium", "large"];
13
+ readonly direction: ["row", "column"];
14
+ readonly justify: ["normal", "center", "spaced"];
15
+ readonly align: ["normal", "center"];
16
+ };
17
+ };
18
+ };
19
+ export type ContainerProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useContainerTheme> & ComponentPropsWithoutRef<T> & {
20
+ as?: T | undefined;
21
+ className?: string;
22
+ }>;
23
+ export declare const Container: <T extends ElementType = "div">(props: Partial<import("@jakubmazanec/ts-utils").Writable<{
24
+ readonly spacing: "small" | "medium" | "large" | "extra-small";
25
+ readonly direction: "row" | "column";
26
+ readonly justify: "center" | "normal" | "spaced";
27
+ readonly align: "center" | "normal";
28
+ }>> & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
29
+ as?: T | undefined;
30
+ className?: string | undefined;
31
+ } & {
32
+ children?: import("react").ReactNode;
33
+ } & {
34
+ ref?: Ref<HTMLElement> | undefined;
35
+ }) => import("react").ReactNode;
36
+ export declare const containerTheme: ComponentTheme<typeof useContainerTheme>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ import {
3
+ createElement
4
+ } from "react";
5
+ import {
6
+ createComponentTheme
7
+ } from "../theme/internals.js";
8
+ import { forwardRef } from "./internals.js";
9
+ export const useContainerTheme = createComponentTheme("Container", {
10
+ variants: {
11
+ spacing: ["extra-small", "small", "medium", "large"],
12
+ direction: ["row", "column"],
13
+ justify: ["normal", "center", "spaced"],
14
+ align: ["normal", "center"]
15
+ }
16
+ });
17
+ const TEXT_ELEMENT = "div";
18
+ export const Container = forwardRef(
19
+ ({
20
+ spacing = "medium",
21
+ direction = "row",
22
+ justify = "normal",
23
+ align = "normal",
24
+ as: Component = TEXT_ELEMENT,
25
+ className,
26
+ children,
27
+ ...rest
28
+ }, ref) => {
29
+ let theme = useContainerTheme({ spacing, direction, justify, align });
30
+ let props = {
31
+ ref,
32
+ className: theme(null, className),
33
+ "data-component": "container",
34
+ ...rest
35
+ };
36
+ return createElement(Component, props, children);
37
+ }
38
+ );
39
+ export const containerTheme = {
40
+ className: "flex",
41
+ variants: {
42
+ spacing: {
43
+ "extra-small": "gap-1",
44
+ small: "gap-2",
45
+ medium: "gap-4",
46
+ large: "gap-6"
47
+ },
48
+ direction: {
49
+ row: "",
50
+ column: "flex-col"
51
+ },
52
+ justify: {
53
+ normal: "",
54
+ center: "justify-center",
55
+ spaced: "justify-between"
56
+ },
57
+ align: {
58
+ normal: "",
59
+ center: "items-center"
60
+ }
61
+ }
62
+ };
63
+ //# sourceMappingURL=Container.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/Container.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 useContainerTheme = createComponentTheme('Container', {\n variants: {\n spacing: ['extra-small', 'small', 'medium', 'large'],\n direction: ['row', 'column'],\n justify: ['normal', 'center', 'spaced'],\n align: ['normal', 'center'],\n },\n});\n\nconst TEXT_ELEMENT = 'div';\n\nexport type ContainerProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useContainerTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n className?: string;\n }\n>;\n\nexport const Container = forwardRef(\n <T extends ElementType = typeof TEXT_ELEMENT>(\n {\n spacing = 'medium',\n direction = 'row',\n justify = 'normal',\n align = 'normal',\n as: Component = TEXT_ELEMENT as T,\n className,\n children,\n ...rest\n }: ContainerProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useContainerTheme({spacing, direction, justify, align});\n let props = {\n ref,\n className: theme(null, className),\n 'data-component': 'container',\n ...rest,\n };\n\n return createElement(Component, props, children);\n },\n);\n\nexport const containerTheme: ComponentTheme<typeof useContainerTheme> = {\n className: 'flex',\n variants: {\n spacing: {\n 'extra-small': 'gap-1',\n small: 'gap-2',\n medium: 'gap-4',\n large: 'gap-6',\n },\n direction: {\n row: '',\n column: 'flex-col',\n },\n justify: {\n normal: '',\n center: 'justify-center',\n spaced: 'justify-between',\n },\n align: {\n normal: '',\n center: 'items-center',\n },\n },\n};\n"],
5
+ "mappings": ";AAAA;AAAA,EAEE;AAAA,OAIK;AAEP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,kBAAiB;AAElB,aAAM,oBAAoB,qBAAqB,aAAa;AAAA,EACjE,UAAU;AAAA,IACR,SAAS,CAAC,eAAe,SAAS,UAAU,OAAO;AAAA,IACnD,WAAW,CAAC,OAAO,QAAQ;AAAA,IAC3B,SAAS,CAAC,UAAU,UAAU,QAAQ;AAAA,IACtC,OAAO,CAAC,UAAU,QAAQ;AAAA,EAC5B;AACF,CAAC;AAED,MAAM,eAAe;AAUd,aAAM,YAAY;AAAA,EACvB,CACE;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,IAAI,YAAY;AAAA,IAChB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,kBAAkB,EAAC,SAAS,WAAW,SAAS,MAAK,CAAC;AAClE,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,iBAA2D;AAAA,EACtE,WAAW;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,eAAe;AAAA,MACf,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,IACA,WAAW;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,IACA,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useDescriptionTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
4
+ componentThemeName: "Description";
5
+ themeDefinition: undefined;
6
+ };
7
+ export type DescriptionProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDescriptionTheme> & ComponentPropsWithoutRef<T> & {
8
+ as?: T | undefined;
9
+ className?: string | undefined;
10
+ }>;
11
+ export declare const Description: <T extends ElementType = "p">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
12
+ as?: T | undefined;
13
+ className?: string | undefined;
14
+ } & {
15
+ children?: import("react").ReactNode;
16
+ } & {
17
+ ref?: Ref<HTMLElement> | undefined;
18
+ }) => import("react").ReactNode;
19
+ export declare const descriptionTheme: ComponentTheme<typeof useDescriptionTheme>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import {
4
+ Description as HeadlessDescription
5
+ } from "@headlessui/react";
6
+ import {
7
+ createComponentTheme
8
+ } from "../theme/internals.js";
9
+ import { filterProps, forwardRef } from "./internals.js";
10
+ export const useDescriptionTheme = createComponentTheme("Description");
11
+ const DESCRIPTION_ELEMENT = "p";
12
+ export const Description = forwardRef(
13
+ ({ as = DESCRIPTION_ELEMENT, className, children, ...rest }, ref) => {
14
+ let theme = useDescriptionTheme();
15
+ let props = filterProps({
16
+ as,
17
+ ref,
18
+ className: theme(null, className),
19
+ "data-component": "description",
20
+ ...rest
21
+ });
22
+ return /* @__PURE__ */ jsx(HeadlessDescription, { ...props, children });
23
+ }
24
+ );
25
+ export const descriptionTheme = {
26
+ className: "font-sans text-sm"
27
+ };
28
+ //# sourceMappingURL=Description.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/Description.tsx"],
4
+ "sourcesContent": ["import {\n Description as HeadlessDescription,\n type DescriptionProps as HeadlessDescriptionProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDescriptionTheme = createComponentTheme('Description');\n\nconst DESCRIPTION_ELEMENT = 'p';\n\nexport type DescriptionProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDescriptionTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n className?: string | undefined;\n }\n>;\n\nexport const Description = forwardRef(\n <T extends ElementType = typeof DESCRIPTION_ELEMENT>(\n {as = DESCRIPTION_ELEMENT as T, className, children, ...rest}: DescriptionProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDescriptionTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDescriptionProps<any> = filterProps({\n as,\n ref,\n className: theme(null, className),\n 'data-component': 'description',\n ...rest,\n });\n\n return <HeadlessDescription {...props}>{children}</HeadlessDescription>;\n },\n);\n\nexport const descriptionTheme: ComponentTheme<typeof useDescriptionTheme> = {\n className: 'font-sans text-sm',\n};\n"],
5
+ "mappings": ";AA6CW;AA7CX;AAAA,EACE,eAAe;AAAA,OAEV;AAQP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,sBAAsB,qBAAqB,aAAa;AAErE,MAAM,sBAAsB;AAUrB,aAAM,cAAc;AAAA,EACzB,CACE,EAAC,KAAK,qBAA0B,WAAW,UAAU,GAAG,KAAI,GAC5D,QACG;AACH,QAAI,QAAQ,oBAAoB;AAEhC,QAAI,QAAuC,YAAY;AAAA,MACrD;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WAAO,oBAAC,uBAAqB,GAAG,OAAQ,UAAS;AAAA,EACnD;AACF;AAEO,aAAM,mBAA+D;AAAA,EAC1E,WAAW;AACb;",
6
+ "names": []
7
+ }
@@ -0,0 +1,32 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useDialogTheme: (() => {
4
+ root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
5
+ backdrop: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
6
+ }) & {
7
+ componentThemeName: "Dialog";
8
+ themeDefinition: {
9
+ readonly elements: ["root", "backdrop"];
10
+ };
11
+ };
12
+ export type DialogProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDialogTheme> & ComponentPropsWithoutRef<T> & {
13
+ as?: T | undefined;
14
+ open: boolean;
15
+ static?: boolean | undefined;
16
+ autoFocus?: boolean | undefined;
17
+ className?: string;
18
+ onClose?: () => void;
19
+ }>;
20
+ export declare const Dialog: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
21
+ as?: T | undefined;
22
+ open: boolean;
23
+ static?: boolean | undefined;
24
+ autoFocus?: boolean | undefined;
25
+ className?: string | undefined;
26
+ onClose?: (() => void) | undefined;
27
+ } & {
28
+ children?: import("react").ReactNode;
29
+ } & {
30
+ ref?: Ref<HTMLElement> | undefined;
31
+ }) => import("react").ReactNode;
32
+ export declare const dialogTheme: ComponentTheme<typeof useDialogTheme>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ Dialog as HeadlessDialog,
5
+ DialogBackdrop as HeadlessDialogBackdrop
6
+ } from "@headlessui/react";
7
+ import {
8
+ useCallback
9
+ } from "react";
10
+ import {
11
+ createComponentTheme
12
+ } from "../theme/internals.js";
13
+ import { filterProps, forwardRef } from "./internals.js";
14
+ export const useDialogTheme = createComponentTheme("Dialog", {
15
+ elements: ["root", "backdrop"]
16
+ });
17
+ const DIALOG_ELEMENT = "div";
18
+ export const Dialog = forwardRef(
19
+ ({
20
+ as = DIALOG_ELEMENT,
21
+ open,
22
+ static: isStatic,
23
+ autoFocus,
24
+ className,
25
+ onClose,
26
+ children,
27
+ ...rest
28
+ }, ref) => {
29
+ let theme = useDialogTheme();
30
+ let handleClose = useCallback(() => {
31
+ onClose?.();
32
+ }, [onClose]);
33
+ let props = filterProps({
34
+ as,
35
+ ref,
36
+ open,
37
+ static: isStatic,
38
+ transition: true,
39
+ onClose: handleClose,
40
+ "data-component": "dialog",
41
+ ...rest
42
+ });
43
+ return /* @__PURE__ */ jsxs(HeadlessDialog, { ...props, children: [
44
+ /* @__PURE__ */ jsx(HeadlessDialogBackdrop, { transition: true, className: theme.backdrop("fixed inset-0") }),
45
+ /* @__PURE__ */ jsx("div", { className: theme.root("fixed inset-0", className), children })
46
+ ] });
47
+ }
48
+ );
49
+ export const dialogTheme = {
50
+ classNames: {
51
+ root: "flex w-screen items-center justify-center p-4 z-30",
52
+ backdrop: "bg-black/30 z-30"
53
+ }
54
+ };
55
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/components/Dialog.tsx"],
4
+ "sourcesContent": ["import {\n Dialog as HeadlessDialog,\n DialogBackdrop as HeadlessDialogBackdrop,\n type DialogProps as HeadlessDialogProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n useCallback,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDialogTheme = createComponentTheme('Dialog', {\n elements: ['root', 'backdrop'],\n});\n\nconst DIALOG_ELEMENT = 'div';\n\nexport type DialogProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDialogTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n open: boolean;\n static?: boolean | undefined;\n autoFocus?: boolean | undefined;\n className?: string;\n onClose?: () => void;\n }\n>;\n\nexport const Dialog = forwardRef(\n <T extends ElementType = typeof DIALOG_ELEMENT>(\n {\n as = DIALOG_ELEMENT as T,\n open,\n static: isStatic,\n autoFocus,\n className,\n onClose,\n children,\n ...rest\n }: DialogProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDialogTheme();\n\n let handleClose = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDialogProps<any> = filterProps({\n as,\n ref,\n open,\n static: isStatic,\n transition: true,\n onClose: handleClose,\n 'data-component': 'dialog',\n ...rest,\n });\n\n return (\n <HeadlessDialog {...props}>\n <HeadlessDialogBackdrop transition className={theme.backdrop('fixed inset-0')} />\n <div className={theme.root('fixed inset-0', className)}>{children}</div>\n </HeadlessDialog>\n );\n },\n);\n\nexport const dialogTheme: ComponentTheme<typeof useDialogTheme> = {\n classNames: {\n root: 'flex w-screen items-center justify-center p-4 z-30',\n backdrop: 'bg-black/30 z-30',\n },\n};\n"],
5
+ "mappings": ";AAuEM,SACE,KADF;AAvEN;AAAA,EACE,UAAU;AAAA,EACV,kBAAkB;AAAA,OAEb;AACP;AAAA,EAKE;AAAA,OACK;AAEP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,iBAAiB,qBAAqB,UAAU;AAAA,EAC3D,UAAU,CAAC,QAAQ,UAAU;AAC/B,CAAC;AAED,MAAM,iBAAiB;AAchB,aAAM,SAAS;AAAA,EACpB,CACE;AAAA,IACE,KAAK;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,eAAe;AAE3B,QAAI,cAAc,YAAY,MAAM;AAClC,gBAAU;AAAA,IACZ,GAAG,CAAC,OAAO,CAAC;AAGZ,QAAI,QAAkC,YAAY;AAAA,MAChD;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WACE,qBAAC,kBAAgB,GAAG,OAClB;AAAA,0BAAC,0BAAuB,YAAU,MAAC,WAAW,MAAM,SAAS,eAAe,GAAG;AAAA,MAC/E,oBAAC,SAAI,WAAW,MAAM,KAAK,iBAAiB,SAAS,GAAI,UAAS;AAAA,OACpE;AAAA,EAEJ;AACF;AAEO,aAAM,cAAqD;AAAA,EAChE,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
2
+ import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
3
+ export declare const useDialogPanelTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
4
+ componentThemeName: "DialogPanel";
5
+ themeDefinition: undefined;
6
+ };
7
+ export type DialogPanelProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDialogPanelTheme> & ComponentPropsWithoutRef<T> & {
8
+ as?: T | undefined;
9
+ className?: string;
10
+ }>;
11
+ export declare const DialogPanel: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
12
+ as?: T | undefined;
13
+ className?: string | undefined;
14
+ } & {
15
+ children?: import("react").ReactNode;
16
+ } & {
17
+ ref?: Ref<HTMLElement> | undefined;
18
+ }) => import("react").ReactNode;
19
+ export declare const dialogPanelTheme: ComponentTheme<typeof useDialogPanelTheme>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import {
4
+ DialogPanel as HeadlessDialogPanel
5
+ } from "@headlessui/react";
6
+ import {
7
+ createComponentTheme
8
+ } from "../theme/internals.js";
9
+ import { filterProps, forwardRef } from "./internals.js";
10
+ export const useDialogPanelTheme = createComponentTheme("DialogPanel");
11
+ const DIALOG_PANEL_ELEMENT = "div";
12
+ export const DialogPanel = forwardRef(
13
+ ({ as = DIALOG_PANEL_ELEMENT, className, children, ...rest }, ref) => {
14
+ let theme = useDialogPanelTheme();
15
+ let props = filterProps({
16
+ as,
17
+ ref,
18
+ className: theme(null, className),
19
+ transition: true,
20
+ "data-component": "dialog-panel",
21
+ ...rest
22
+ });
23
+ return /* @__PURE__ */ jsx(HeadlessDialogPanel, { ...props, children });
24
+ }
25
+ );
26
+ export const dialogPanelTheme = {
27
+ className: "shadow-1 relative flex w-full min-w-[300px] max-w-[900px] flex-col gap-y-6 rounded-4 bg-white p-6 max-h-[calc(100vh-3rem)] overflow-hidden overflow-y-auto"
28
+ };
29
+ //# sourceMappingURL=DialogPanel.js.map