@jakubmazanec/ui 0.5.1 → 0.5.2-unstable.a42d2b17

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 (297) hide show
  1. package/build/components/Button.js +126 -135
  2. package/build/components/Card.js +16 -27
  3. package/build/components/Checkbox.js +67 -79
  4. package/build/components/CheckboxField.js +33 -20
  5. package/build/components/Combobox.js +150 -170
  6. package/build/components/ComboboxOption.js +41 -52
  7. package/build/components/Container.js +61 -60
  8. package/build/components/Description.js +21 -29
  9. package/build/components/Dialog.js +37 -51
  10. package/build/components/DialogPanel.js +22 -30
  11. package/build/components/DialogTitle.js +22 -27
  12. package/build/components/Error.js +22 -37
  13. package/build/components/Field.js +38 -35
  14. package/build/components/Fieldset.js +27 -40
  15. package/build/components/Form.js +37 -42
  16. package/build/components/Heading.js +30 -45
  17. package/build/components/Icon.js +45 -57
  18. package/build/components/Input.js +97 -102
  19. package/build/components/Label.js +21 -27
  20. package/build/components/Legend.js +21 -27
  21. package/build/components/Listbox.js +202 -245
  22. package/build/components/ListboxOption.js +41 -52
  23. package/build/components/Menu.js +22 -30
  24. package/build/components/MenuButton.js +27 -40
  25. package/build/components/MenuHeading.js +21 -29
  26. package/build/components/MenuItem.js +27 -40
  27. package/build/components/MenuItems.js +23 -32
  28. package/build/components/MenuSection.js +21 -29
  29. package/build/components/MenuSeparator.js +21 -29
  30. package/build/components/Popover.js +21 -29
  31. package/build/components/PopoverBackdrop.js +21 -29
  32. package/build/components/PopoverButton.js +28 -42
  33. package/build/components/PopoverGroup.js +21 -29
  34. package/build/components/PopoverPanel.js +24 -34
  35. package/build/components/Radio.js +52 -50
  36. package/build/components/RadioField.js +15 -13
  37. package/build/components/RadioGroup.js +64 -82
  38. package/build/components/Spinner.js +61 -66
  39. package/build/components/Table.js +16 -27
  40. package/build/components/TableBody.js +16 -27
  41. package/build/components/TableCaption.js +16 -27
  42. package/build/components/TableCell.js +16 -27
  43. package/build/components/TableFoot.js +17 -28
  44. package/build/components/TableHead.js +16 -27
  45. package/build/components/TableHeader.js +16 -27
  46. package/build/components/TableRow.js +16 -27
  47. package/build/components/Text.js +26 -38
  48. package/build/components/Textarea.js +62 -70
  49. package/build/components/data-table/DataTable.js +203 -282
  50. package/build/components/data-table/DataTableColumnOrder.js +6 -3
  51. package/build/components/data-table/DataTableColumnPinning.js +6 -3
  52. package/build/components/data-table/DataTableColumnVisibility.js +6 -3
  53. package/build/components/data-table/DataTableFaceting.js +10 -10
  54. package/build/components/data-table/DataTableFilters.js +14 -14
  55. package/build/components/data-table/DataTablePagination.js +16 -14
  56. package/build/components/data-table/DataTableSearch.js +6 -3
  57. package/build/components/data-table/DataTableSorting.js +9 -9
  58. package/build/components/data-table/internals/DataTableFilter.js +247 -263
  59. package/build/components/data-table/internals/DataTableFilters.js +24 -37
  60. package/build/components/data-table/internals/DataTableHeader.js +93 -115
  61. package/build/components/data-table/internals/DataTableMenu.js +39 -27
  62. package/build/components/data-table/internals/DataTablePageButton.js +16 -9
  63. package/build/components/data-table/internals/DataTablePagination.js +154 -185
  64. package/build/components/data-table/internals/DataTableRow.js +27 -23
  65. package/build/components/data-table/internals/DataTableSearch.js +81 -68
  66. package/build/components/data-table/internals/DataTableSetting.js +107 -105
  67. package/build/components/data-table/internals/DataTableSettings.js +40 -60
  68. package/build/components/data-table/internals/addFilter.js +24 -30
  69. package/build/components/data-table/internals/constants.js +13 -5
  70. package/build/components/data-table/internals/fromPinningState.js +9 -11
  71. package/build/components/data-table/internals/fuzzyFilter.js +9 -6
  72. package/build/components/data-table/internals/getCommonPinningClasses.js +9 -12
  73. package/build/components/data-table/internals/getCommonPinningStyles.js +11 -9
  74. package/build/components/data-table/internals/normalizeFilter.js +14 -18
  75. package/build/components/data-table/internals/normalizeFilters.js +16 -17
  76. package/build/components/data-table/internals/normalizeSorting.js +21 -25
  77. package/build/components/data-table/internals/removeFilter.js +11 -17
  78. package/build/components/internals/FieldContext.js +6 -3
  79. package/build/components/internals/FieldNameContext.js +6 -3
  80. package/build/components/internals/FormIdContext.js +6 -3
  81. package/build/components/internals/filterProps.js +8 -7
  82. package/build/components/internals/useFormId.js +8 -5
  83. package/build/components/useField.js +8 -5
  84. package/build/components/useFieldName.js +8 -5
  85. package/build/components/useForm.js +19 -21
  86. package/build/development/createTailwindConfig.js +141 -114
  87. package/build/development/createTailwindMerge.js +48 -63
  88. package/build/development/internals/clamp.js +6 -4
  89. package/build/development/internals/constants.js +23 -21
  90. package/build/development/internals/createDisplayColor.js +20 -21
  91. package/build/development/internals/createDistributionValues.js +40 -28
  92. package/build/development/internals/createHueScale.js +16 -13
  93. package/build/development/internals/createPalette.js +21 -32
  94. package/build/development/internals/createSaturationScale.js +21 -16
  95. package/build/development/internals/createSwatches.js +25 -23
  96. package/build/development/internals/createTailwindThemeColors.js +46 -48
  97. package/build/development/internals/hexToHsl.js +33 -35
  98. package/build/development/internals/hexToRgb.js +24 -20
  99. package/build/development/internals/hslToHex.js +14 -17
  100. package/build/development/internals/hslToRgb.js +43 -41
  101. package/build/development/internals/isHex.js +7 -6
  102. package/build/development/internals/round.js +7 -5
  103. package/build/development/internals/unsignedModulo.js +6 -4
  104. package/build/main.js +68 -7
  105. package/build/styles.css +12 -4
  106. package/build/theme/ThemeProvider.js +11 -5
  107. package/build/theme/defaultTheme.js +105 -103
  108. package/build/theme/internals/booleanToString.js +6 -4
  109. package/build/theme/internals/createComponentTheme.js +21 -36
  110. package/build/theme/internals/createUseComponentThemeReturn.js +32 -47
  111. package/build/theme/internals/pickPropertyIfExists.js +8 -10
  112. package/build/theme/internals/themeContext.js +6 -3
  113. package/build/utilities/formatDateTime.js +11 -10
  114. package/build/utilities/formatNumber.js +11 -10
  115. package/build/utilities/internals/cache.js +5 -3
  116. package/build/utilities/internals/createCacheKey.js +6 -5
  117. package/build/utilities/internals/getMemoized.js +13 -10
  118. package/build/utilities/internals/normalizeLocales.js +8 -10
  119. package/package.json +6 -6
  120. package/build/components/Button.js.map +0 -7
  121. package/build/components/Card.js.map +0 -7
  122. package/build/components/Checkbox.js.map +0 -7
  123. package/build/components/CheckboxField.js.map +0 -7
  124. package/build/components/Combobox.js.map +0 -7
  125. package/build/components/ComboboxOption.js.map +0 -7
  126. package/build/components/ComponentRef.js +0 -2
  127. package/build/components/ComponentRef.js.map +0 -7
  128. package/build/components/Container.js.map +0 -7
  129. package/build/components/Description.js.map +0 -7
  130. package/build/components/Dialog.js.map +0 -7
  131. package/build/components/DialogPanel.js.map +0 -7
  132. package/build/components/DialogTitle.js.map +0 -7
  133. package/build/components/Error.js.map +0 -7
  134. package/build/components/Field.js.map +0 -7
  135. package/build/components/Fieldset.js.map +0 -7
  136. package/build/components/Form.js.map +0 -7
  137. package/build/components/Heading.js.map +0 -7
  138. package/build/components/Icon.js.map +0 -7
  139. package/build/components/Input.js.map +0 -7
  140. package/build/components/Label.js.map +0 -7
  141. package/build/components/Legend.js.map +0 -7
  142. package/build/components/Listbox.js.map +0 -7
  143. package/build/components/ListboxOption.js.map +0 -7
  144. package/build/components/Menu.js.map +0 -7
  145. package/build/components/MenuButton.js.map +0 -7
  146. package/build/components/MenuHeading.js.map +0 -7
  147. package/build/components/MenuItem.js.map +0 -7
  148. package/build/components/MenuItems.js.map +0 -7
  149. package/build/components/MenuSection.js.map +0 -7
  150. package/build/components/MenuSeparator.js.map +0 -7
  151. package/build/components/Popover.js.map +0 -7
  152. package/build/components/PopoverBackdrop.js.map +0 -7
  153. package/build/components/PopoverButton.js.map +0 -7
  154. package/build/components/PopoverGroup.js.map +0 -7
  155. package/build/components/PopoverPanel.js.map +0 -7
  156. package/build/components/Radio.js.map +0 -7
  157. package/build/components/RadioField.js.map +0 -7
  158. package/build/components/RadioGroup.js.map +0 -7
  159. package/build/components/Spinner.js.map +0 -7
  160. package/build/components/Table.js.map +0 -7
  161. package/build/components/TableBody.js.map +0 -7
  162. package/build/components/TableCaption.js.map +0 -7
  163. package/build/components/TableCell.js.map +0 -7
  164. package/build/components/TableFoot.js.map +0 -7
  165. package/build/components/TableHead.js.map +0 -7
  166. package/build/components/TableHeader.js.map +0 -7
  167. package/build/components/TableRow.js.map +0 -7
  168. package/build/components/Text.js.map +0 -7
  169. package/build/components/Textarea.js.map +0 -7
  170. package/build/components/data-table/DataTable.js.map +0 -7
  171. package/build/components/data-table/DataTableColumnOrder.js.map +0 -7
  172. package/build/components/data-table/DataTableColumnPinning.js.map +0 -7
  173. package/build/components/data-table/DataTableColumnVisibility.js.map +0 -7
  174. package/build/components/data-table/DataTableFaceting.js.map +0 -7
  175. package/build/components/data-table/DataTableFilters.js.map +0 -7
  176. package/build/components/data-table/DataTablePagination.js.map +0 -7
  177. package/build/components/data-table/DataTableSearch.js.map +0 -7
  178. package/build/components/data-table/DataTableSorting.js.map +0 -7
  179. package/build/components/data-table/internals/DataTableFilter.js.map +0 -7
  180. package/build/components/data-table/internals/DataTableFilters.js.map +0 -7
  181. package/build/components/data-table/internals/DataTableHeader.js.map +0 -7
  182. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js +0 -36
  183. package/build/components/data-table/internals/DataTableHeaderColumnCheckbox.js.map +0 -7
  184. package/build/components/data-table/internals/DataTableHeaderFilter.js +0 -264
  185. package/build/components/data-table/internals/DataTableHeaderFilter.js.map +0 -7
  186. package/build/components/data-table/internals/DataTableMenu.js.map +0 -7
  187. package/build/components/data-table/internals/DataTablePageButton.js.map +0 -7
  188. package/build/components/data-table/internals/DataTablePagination.js.map +0 -7
  189. package/build/components/data-table/internals/DataTableRow.js.map +0 -7
  190. package/build/components/data-table/internals/DataTableSearch.js.map +0 -7
  191. package/build/components/data-table/internals/DataTableSetting.js.map +0 -7
  192. package/build/components/data-table/internals/DataTableSettings.js.map +0 -7
  193. package/build/components/data-table/internals/addFilter.js.map +0 -7
  194. package/build/components/data-table/internals/constants.js.map +0 -7
  195. package/build/components/data-table/internals/fromPinningState.js.map +0 -7
  196. package/build/components/data-table/internals/fuzzyFilter.js.map +0 -7
  197. package/build/components/data-table/internals/getCommonPinningClasses.js.map +0 -7
  198. package/build/components/data-table/internals/getCommonPinningStyles.js.map +0 -7
  199. package/build/components/data-table/internals/normalizeFilter.js.map +0 -7
  200. package/build/components/data-table/internals/normalizeFilters.js.map +0 -7
  201. package/build/components/data-table/internals/normalizeSorting.js.map +0 -7
  202. package/build/components/data-table/internals/removeFilter.js.map +0 -7
  203. package/build/components/data-table/internals.js +0 -23
  204. package/build/components/data-table/internals.js.map +0 -7
  205. package/build/components/data-table.js +0 -11
  206. package/build/components/data-table.js.map +0 -7
  207. package/build/components/internals/FieldContext.js.map +0 -7
  208. package/build/components/internals/FieldNameContext.js.map +0 -7
  209. package/build/components/internals/FormIdContext.js.map +0 -7
  210. package/build/components/internals/filterProps.js.map +0 -7
  211. package/build/components/internals/useFormId.js.map +0 -7
  212. package/build/components/internals.js +0 -7
  213. package/build/components/internals.js.map +0 -7
  214. package/build/components/useField.js.map +0 -7
  215. package/build/components/useFieldName.js.map +0 -7
  216. package/build/components/useForm.js.map +0 -7
  217. package/build/components.js +0 -54
  218. package/build/components.js.map +0 -7
  219. package/build/development/createTailwindConfig.js.map +0 -7
  220. package/build/development/createTailwindMerge.js.map +0 -7
  221. package/build/development/internals/PaletteConfig.js +0 -2
  222. package/build/development/internals/PaletteConfig.js.map +0 -7
  223. package/build/development/internals/SwatchValue.js +0 -2
  224. package/build/development/internals/SwatchValue.js.map +0 -7
  225. package/build/development/internals/clamp.js.map +0 -7
  226. package/build/development/internals/constants.js.map +0 -7
  227. package/build/development/internals/createDisplayColor.js.map +0 -7
  228. package/build/development/internals/createDistributionValues.js.map +0 -7
  229. package/build/development/internals/createHueScale.js.map +0 -7
  230. package/build/development/internals/createPalette.js.map +0 -7
  231. package/build/development/internals/createSaturationScale.js.map +0 -7
  232. package/build/development/internals/createSwatches.js.map +0 -7
  233. package/build/development/internals/createTailwindThemeColors.js.map +0 -7
  234. package/build/development/internals/hexToHsl.js.map +0 -7
  235. package/build/development/internals/hexToRgb.js.map +0 -7
  236. package/build/development/internals/hslToHex.js.map +0 -7
  237. package/build/development/internals/hslToRgb.js.map +0 -7
  238. package/build/development/internals/isHex.js.map +0 -7
  239. package/build/development/internals/round.js.map +0 -7
  240. package/build/development/internals/unsignedModulo.js.map +0 -7
  241. package/build/development/internals.js +0 -18
  242. package/build/development/internals.js.map +0 -7
  243. package/build/development.js +0 -4
  244. package/build/development.js.map +0 -7
  245. package/build/main.js.map +0 -7
  246. package/build/styles.css.map +0 -7
  247. package/build/theme/Theme.js +0 -2
  248. package/build/theme/Theme.js.map +0 -7
  249. package/build/theme/ThemeProvider.js.map +0 -7
  250. package/build/theme/defaultTheme.js.map +0 -7
  251. package/build/theme/internals/ClassName.js +0 -2
  252. package/build/theme/internals/ClassName.js.map +0 -7
  253. package/build/theme/internals/ComponentProps.js +0 -2
  254. package/build/theme/internals/ComponentProps.js.map +0 -7
  255. package/build/theme/internals/ComponentTheme.js +0 -2
  256. package/build/theme/internals/ComponentTheme.js.map +0 -7
  257. package/build/theme/internals/ComponentThemeCompoundVariants.js +0 -2
  258. package/build/theme/internals/ComponentThemeCompoundVariants.js.map +0 -7
  259. package/build/theme/internals/ComponentThemeDefinition.js +0 -2
  260. package/build/theme/internals/ComponentThemeDefinition.js.map +0 -7
  261. package/build/theme/internals/ComponentThemeDefinitionElements.js +0 -2
  262. package/build/theme/internals/ComponentThemeDefinitionElements.js.map +0 -7
  263. package/build/theme/internals/ComponentThemeDefinitionVariants.js +0 -2
  264. package/build/theme/internals/ComponentThemeDefinitionVariants.js.map +0 -7
  265. package/build/theme/internals/ComponentThemeProps.js +0 -2
  266. package/build/theme/internals/ComponentThemeProps.js.map +0 -7
  267. package/build/theme/internals/ComponentThemeVariants.js +0 -2
  268. package/build/theme/internals/ComponentThemeVariants.js.map +0 -7
  269. package/build/theme/internals/ComponentWithTheme.js +0 -2
  270. package/build/theme/internals/ComponentWithTheme.js.map +0 -7
  271. package/build/theme/internals/UseComponentTheme.js +0 -2
  272. package/build/theme/internals/UseComponentTheme.js.map +0 -7
  273. package/build/theme/internals/UseComponentThemeReturn.js +0 -2
  274. package/build/theme/internals/UseComponentThemeReturn.js.map +0 -7
  275. package/build/theme/internals/booleanToString.js.map +0 -7
  276. package/build/theme/internals/createComponentTheme.js.map +0 -7
  277. package/build/theme/internals/createUseComponentThemeReturn.js.map +0 -7
  278. package/build/theme/internals/pickPropertyIfExists.js.map +0 -7
  279. package/build/theme/internals/themeContext.js.map +0 -7
  280. package/build/theme/internals/useTheme.js +0 -7
  281. package/build/theme/internals/useTheme.js.map +0 -7
  282. package/build/theme/internals.js +0 -8
  283. package/build/theme/internals.js.map +0 -7
  284. package/build/theme.js +0 -4
  285. package/build/theme.js.map +0 -7
  286. package/build/utilities/WithLocaleOrLocales.js +0 -2
  287. package/build/utilities/WithLocaleOrLocales.js.map +0 -7
  288. package/build/utilities/formatDateTime.js.map +0 -7
  289. package/build/utilities/formatNumber.js.map +0 -7
  290. package/build/utilities/internals/cache.js.map +0 -7
  291. package/build/utilities/internals/createCacheKey.js.map +0 -7
  292. package/build/utilities/internals/getMemoized.js.map +0 -7
  293. package/build/utilities/internals/normalizeLocales.js.map +0 -7
  294. package/build/utilities/internals.js +0 -6
  295. package/build/utilities/internals.js.map +0 -7
  296. package/build/utilities.js +0 -4
  297. package/build/utilities.js.map +0 -7
@@ -1,140 +1,131 @@
1
- "use strict";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { Button as HeadlessButton } from "@headlessui/react";
4
- import {
5
- Children,
6
- cloneElement,
7
- isValidElement
8
- } from "react";
9
- import {
10
- createComponentTheme
11
- } from "../theme/internals.js";
1
+ import { createComponentTheme } from "../theme/internals/createComponentTheme.js";
12
2
  import { Icon } from "./Icon.js";
13
3
  import { Spinner } from "./Spinner.js";
14
- export const useButtonTheme = createComponentTheme("Button", {
15
- variants: {
16
- variant: ["solid", "outline", "text", "invisible"],
17
- size: ["small", "medium", "large"],
18
- disabled: [true, false]
19
- }
20
- });
4
+ import { Button } from "@headlessui/react";
5
+ import { Children, cloneElement, isValidElement } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+
8
+ //#region source/components/Button.tsx
9
+ const useButtonTheme = createComponentTheme("Button", { variants: {
10
+ variant: [
11
+ "solid",
12
+ "outline",
13
+ "text",
14
+ "invisible"
15
+ ],
16
+ size: [
17
+ "small",
18
+ "medium",
19
+ "large"
20
+ ],
21
+ disabled: [true, false]
22
+ } });
21
23
  const BUTTON_ELEMENT = "button";
22
- export function Button({
23
- variant = "solid",
24
- size = "medium",
25
- disabled = false,
26
- as = BUTTON_ELEMENT,
27
- idle = true,
28
- autoFocus = false,
29
- submit = false,
30
- className,
31
- ref,
32
- children,
33
- ...rest
34
- }) {
35
- let theme = useButtonTheme({ variant, size, disabled });
36
- let props = {
37
- as,
38
- ref,
39
- className: theme(disabled ? "pointer-events-none" : null, className),
40
- disabled: disabled || submit && !idle,
41
- autoFocus,
42
- "data-component": "button",
43
- ...rest
44
- };
45
- if (as === BUTTON_ELEMENT) {
46
- props.type = "button";
47
- }
48
- if (submit) {
49
- props.type = "submit";
50
- }
51
- if (typeof children === "function") {
52
- return /* @__PURE__ */ jsx(HeadlessButton, { ...props, children });
53
- }
54
- let enhancedChildren = Children.map(children, (child) => {
55
- if (isValidElement(child) && (child.type === Icon || child.type === Spinner)) {
56
- return cloneElement(child, { "data-slot": "icon" });
57
- }
58
- if (!isValidElement(child) && typeof child === "string") {
59
- return /* @__PURE__ */ jsx("span", { "data-slot": "text", children: child });
60
- }
61
- return child;
62
- });
63
- return /* @__PURE__ */ jsxs(HeadlessButton, { ...props, children: [
64
- submit && !idle ? /* @__PURE__ */ jsx(Spinner, { "data-icon": true }) : null,
65
- enhancedChildren
66
- ] });
24
+ function Button$1({ variant = "solid", size = "medium", disabled = false, as = BUTTON_ELEMENT, idle = true, autoFocus = false, submit = false, className, ref, children, ...rest }) {
25
+ let props = {
26
+ as,
27
+ ref,
28
+ className: useButtonTheme({
29
+ variant,
30
+ size,
31
+ disabled
32
+ })(disabled ? "pointer-events-none" : null, className),
33
+ disabled: disabled || submit && !idle,
34
+ autoFocus,
35
+ "data-component": "button",
36
+ ...rest
37
+ };
38
+ if (as === BUTTON_ELEMENT) props.type = "button";
39
+ if (submit) props.type = "submit";
40
+ if (typeof children === "function") return /* @__PURE__ */ jsx(Button, {
41
+ ...props,
42
+ children
43
+ });
44
+ let enhancedChildren = Children.map(children, (child) => {
45
+ if (isValidElement(child) && (child.type === Icon || child.type === Spinner)) return cloneElement(child, { "data-slot": "icon" });
46
+ if (!isValidElement(child) && typeof child === "string") return /* @__PURE__ */ jsx("span", {
47
+ "data-slot": "text",
48
+ children: child
49
+ });
50
+ return child;
51
+ });
52
+ return /* @__PURE__ */ jsxs(Button, {
53
+ ...props,
54
+ children: [submit && !idle ? /* @__PURE__ */ jsx(Spinner, { "data-icon": true }) : null, enhancedChildren]
55
+ });
67
56
  }
68
- export const buttonTheme = {
69
- className: "rounded-2 inline-flex items-center justify-center text-nowrap font-sans font-medium text-sm transition-colors",
70
- variants: {
71
- variant: {
72
- solid: "text-white bg-neutral-900 hover:bg-neutral-800",
73
- outline: "text-neutral-950 border-2 border-neutral-100 hover:border-neutral-200",
74
- text: "text-neutral-950 border-2 border-transparent hover:border-neutral-200",
75
- invisible: "cursor-default text-neutral-200 hover:text-neutral-600 select-none"
76
- },
77
- size: {
78
- small: "text-sm leading-6 px-2.5 h-8 min-w-8 gap-x-1 *:first:data-[slot=icon]:-ml-2 *:last:data-[slot=icon]:-mr-2",
79
- medium: "leading-6 px-2.5 h-9 min-w-9 gap-x-1 *:first:data-[slot=icon]:-ml-1.5 *:last:data-[slot=icon]:-mr-1.5",
80
- large: "text-lg leading-6 px-3 h-10 min-w-10 gap-x-1 *:first:data-[slot=icon]:-ml-1 *:last:data-[slot=icon]:-mr-1"
81
- },
82
- disabled: {
83
- true: "",
84
- false: ""
85
- }
86
- },
87
- compoundVariants: [
88
- {
89
- variant: "solid",
90
- size: "small",
91
- className: "px-3"
92
- },
93
- {
94
- variant: "solid",
95
- size: "medium",
96
- className: "px-3"
97
- },
98
- {
99
- variant: "solid",
100
- size: "large",
101
- className: "px-3.5"
102
- },
103
- {
104
- variant: "invisible",
105
- size: "small",
106
- className: "text-xs px-2 h-5 min-w-5"
107
- },
108
- {
109
- variant: "invisible",
110
- size: "medium",
111
- className: "px-2 h-6 min-w-6"
112
- },
113
- {
114
- variant: "invisible",
115
- size: "large",
116
- className: "px-2 h-7 min-w-7"
117
- },
118
- {
119
- variant: "solid",
120
- disabled: true,
121
- className: "text-white bg-neutral-200 hover:bg-neutral-200"
122
- },
123
- {
124
- variant: "outline",
125
- disabled: true,
126
- className: "text-neutral-200 hover:border-neutral-100"
127
- },
128
- {
129
- variant: "text",
130
- disabled: true,
131
- className: "text-neutral-200 hover:border-transparent"
132
- },
133
- {
134
- variant: "invisible",
135
- disabled: true,
136
- className: "text-neutral-200 "
137
- }
138
- ]
57
+ const buttonTheme = {
58
+ className: "rounded-2 inline-flex items-center justify-center text-nowrap font-sans font-medium text-sm transition-colors",
59
+ variants: {
60
+ variant: {
61
+ solid: "text-white bg-neutral-900 hover:bg-neutral-800",
62
+ outline: "text-neutral-950 border-2 border-neutral-100 hover:border-neutral-200",
63
+ text: "text-neutral-950 border-2 border-transparent hover:border-neutral-200",
64
+ invisible: "cursor-default text-neutral-200 hover:text-neutral-600 select-none"
65
+ },
66
+ size: {
67
+ small: "text-sm leading-6 px-2.5 h-8 min-w-8 gap-x-1 *:first:data-[slot=icon]:-ml-2 *:last:data-[slot=icon]:-mr-2",
68
+ medium: "leading-6 px-2.5 h-9 min-w-9 gap-x-1 *:first:data-[slot=icon]:-ml-1.5 *:last:data-[slot=icon]:-mr-1.5",
69
+ large: "text-lg leading-6 px-3 h-10 min-w-10 gap-x-1 *:first:data-[slot=icon]:-ml-1 *:last:data-[slot=icon]:-mr-1"
70
+ },
71
+ disabled: {
72
+ true: "",
73
+ false: ""
74
+ }
75
+ },
76
+ compoundVariants: [
77
+ {
78
+ variant: "solid",
79
+ size: "small",
80
+ className: "px-3"
81
+ },
82
+ {
83
+ variant: "solid",
84
+ size: "medium",
85
+ className: "px-3"
86
+ },
87
+ {
88
+ variant: "solid",
89
+ size: "large",
90
+ className: "px-3.5"
91
+ },
92
+ {
93
+ variant: "invisible",
94
+ size: "small",
95
+ className: "text-xs px-2 h-5 min-w-5"
96
+ },
97
+ {
98
+ variant: "invisible",
99
+ size: "medium",
100
+ className: "px-2 h-6 min-w-6"
101
+ },
102
+ {
103
+ variant: "invisible",
104
+ size: "large",
105
+ className: "px-2 h-7 min-w-7"
106
+ },
107
+ {
108
+ variant: "solid",
109
+ disabled: true,
110
+ className: "text-white bg-neutral-200 hover:bg-neutral-200"
111
+ },
112
+ {
113
+ variant: "outline",
114
+ disabled: true,
115
+ className: "text-neutral-200 hover:border-neutral-100"
116
+ },
117
+ {
118
+ variant: "text",
119
+ disabled: true,
120
+ className: "text-neutral-200 hover:border-transparent"
121
+ },
122
+ {
123
+ variant: "invisible",
124
+ disabled: true,
125
+ className: "text-neutral-200 "
126
+ }
127
+ ]
139
128
  };
140
- //# sourceMappingURL=Button.js.map
129
+
130
+ //#endregion
131
+ export { Button$1 as Button, buttonTheme, useButtonTheme };
@@ -1,29 +1,18 @@
1
- "use strict";
2
- import {
3
- createElement
4
- } from "react";
5
- import {
6
- createComponentTheme
7
- } from "../theme/internals.js";
8
- export const useCardTheme = createComponentTheme("Card");
1
+ import { createComponentTheme } from "../theme/internals/createComponentTheme.js";
2
+ import { createElement } from "react";
3
+
4
+ //#region source/components/Card.ts
5
+ const useCardTheme = createComponentTheme("Card");
9
6
  const CARD_ELEMENT = "button";
10
- export function Card({
11
- as: Component = CARD_ELEMENT,
12
- className,
13
- ref,
14
- children,
15
- ...rest
16
- }) {
17
- let theme = useCardTheme();
18
- let props = {
19
- ref,
20
- className: theme(null, className),
21
- "data-component": "card",
22
- ...rest
23
- };
24
- return createElement(Component, props, children);
7
+ function Card({ as: Component = CARD_ELEMENT, className, ref, children, ...rest }) {
8
+ return createElement(Component, {
9
+ ref,
10
+ className: useCardTheme()(null, className),
11
+ "data-component": "card",
12
+ ...rest
13
+ }, children);
25
14
  }
26
- export const cardTheme = {
27
- className: "rounded-2 border border-neutral-100 p-4"
28
- };
29
- //# sourceMappingURL=Card.js.map
15
+ const cardTheme = { className: "rounded-2 border border-neutral-100 p-4" };
16
+
17
+ //#endregion
18
+ export { Card, cardTheme, useCardTheme };
@@ -1,86 +1,74 @@
1
- "use strict";
2
- import { jsx } from "react/jsx-runtime";
3
- import {
4
- Checkbox as HeadlessCheckbox
5
- } from "@headlessui/react";
6
- import { useCallback } from "react";
7
- import {
8
- createComponentTheme
9
- } from "../theme/internals.js";
1
+ import { createComponentTheme } from "../theme/internals/createComponentTheme.js";
10
2
  import { Icon } from "./Icon.js";
11
- import { useFormId } from "./internals.js";
3
+ import { useFormId } from "./internals/useFormId.js";
12
4
  import { useField } from "./useField.js";
13
5
  import { useFieldName } from "./useFieldName.js";
14
- export const useCheckboxTheme = createComponentTheme("Checkbox", {
15
- variants: {
16
- disabled: [true, false]
17
- },
18
- elements: ["root", "icon"]
6
+ import { Checkbox } from "@headlessui/react";
7
+ import { useCallback } from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+
10
+ //#region source/components/Checkbox.tsx
11
+ const useCheckboxTheme = createComponentTheme("Checkbox", {
12
+ variants: { disabled: [true, false] },
13
+ elements: ["root", "icon"]
19
14
  });
20
15
  const CHECKBOX_ELEMENT = "span";
21
- export function Checkbox({
22
- disabled = false,
23
- as = CHECKBOX_ELEMENT,
24
- checked,
25
- indeterminate,
26
- autoFocus,
27
- name,
28
- className,
29
- onChange,
30
- ref,
31
- ...rest
32
- }) {
33
- let theme = useCheckboxTheme({ disabled });
34
- let fieldName = useFieldName();
35
- let field = useField();
36
- let formId = useFormId();
37
- let handleChange = useCallback(() => {
38
- onChange?.(!checked);
39
- }, [checked, onChange]);
40
- if (field || fieldName) {
41
- let props2 = {
42
- as,
43
- ref,
44
- form: formId,
45
- name: field?.name ?? fieldName,
46
- indeterminate,
47
- autoFocus,
48
- className: theme.root("relative", className),
49
- "data-component": "checkbox",
50
- ...rest
51
- };
52
- return /* @__PURE__ */ jsx(HeadlessCheckbox, { ...props2, children: /* @__PURE__ */ jsx("span", { className: theme.icon(), children: /* @__PURE__ */ jsx(Icon, { name: "Check" }) }) });
53
- }
54
- let props = {
55
- as,
56
- ref,
57
- checked: Boolean(checked),
58
- name,
59
- indeterminate,
60
- autoFocus,
61
- className: theme.root("relative", className),
62
- "data-component": "checkbox",
63
- onChange: handleChange,
64
- ...rest
65
- };
66
- return /* @__PURE__ */ jsx(HeadlessCheckbox, { ...props, children: /* @__PURE__ */ jsx("span", { className: theme.icon(), children: /* @__PURE__ */ jsx(Icon, { name: "Check" }) }) });
16
+ function Checkbox$1({ disabled = false, as = CHECKBOX_ELEMENT, checked, indeterminate, autoFocus, name, className, onChange, ref, ...rest }) {
17
+ let theme = useCheckboxTheme({ disabled });
18
+ let fieldName = useFieldName();
19
+ let field = useField();
20
+ let formId = useFormId();
21
+ let handleChange = useCallback(() => {
22
+ onChange?.(!checked);
23
+ }, [checked, onChange]);
24
+ if (field || fieldName) return /* @__PURE__ */ jsx(Checkbox, {
25
+ as,
26
+ ref,
27
+ form: formId,
28
+ name: field?.name ?? fieldName,
29
+ indeterminate,
30
+ autoFocus,
31
+ className: theme.root("relative", className),
32
+ "data-component": "checkbox",
33
+ ...rest,
34
+ children: /* @__PURE__ */ jsx("span", {
35
+ className: theme.icon(),
36
+ children: /* @__PURE__ */ jsx(Icon, { name: "Check" })
37
+ })
38
+ });
39
+ return /* @__PURE__ */ jsx(Checkbox, {
40
+ as,
41
+ ref,
42
+ checked: Boolean(checked),
43
+ name,
44
+ indeterminate,
45
+ autoFocus,
46
+ className: theme.root("relative", className),
47
+ "data-component": "checkbox",
48
+ onChange: handleChange,
49
+ ...rest,
50
+ children: /* @__PURE__ */ jsx("span", {
51
+ className: theme.icon(),
52
+ children: /* @__PURE__ */ jsx(Icon, { name: "Check" })
53
+ })
54
+ });
67
55
  }
68
- export const checkboxTheme = {
69
- classNames: {
70
- root: "group/checkbox inline-block size-5 cursor-pointer",
71
- icon: "flex justify-content justify-item size-5 *:rounded-2 *:bg-white *:border-2 *:border-neutral-100 *:hover:border-neutral-200 *:shadow-inner *:transition-colors *:text-transparent *:hover:text-neutral-100 group-data-[checked]/checkbox:*:bg-neutral-950 group-data-[checked]/checkbox:*:border-neutral-950 group-data-[checked]/checkbox:*:text-white hover:group-data-[checked]/checkbox:*:border-neutral-950 hover:group-data-[checked]/checkbox:*:text-white"
72
- },
73
- variants: {
74
- disabled: {
75
- true: {
76
- root: "cursor-not-allowed",
77
- icon: "*:hover:text-transparent *:border-neutral-50 *:hover:border-neutral-50 group-data-[checked]/checkbox:*:bg-neutral-100 group-data-[checked]/checkbox:*:border-neutral-100 group-data-[checked]/checkbox:*:text-white hover:group-data-[checked]/checkbox:*:border-neutral-100 hover:group-data-[checked]/checkbox:*:text-white"
78
- },
79
- false: {
80
- root: "",
81
- icon: ""
82
- }
83
- }
84
- }
56
+ const checkboxTheme = {
57
+ classNames: {
58
+ root: "group/checkbox inline-block size-5 cursor-pointer",
59
+ icon: "flex justify-content justify-item size-5 *:rounded-2 *:bg-white *:border-2 *:border-neutral-100 *:hover:border-neutral-200 *:shadow-inner *:transition-colors *:text-transparent *:hover:text-neutral-100 group-data-[checked]/checkbox:*:bg-neutral-950 group-data-[checked]/checkbox:*:border-neutral-950 group-data-[checked]/checkbox:*:text-white hover:group-data-[checked]/checkbox:*:border-neutral-950 hover:group-data-[checked]/checkbox:*:text-white"
60
+ },
61
+ variants: { disabled: {
62
+ true: {
63
+ root: "cursor-not-allowed",
64
+ icon: "*:hover:text-transparent *:border-neutral-50 *:hover:border-neutral-50 group-data-[checked]/checkbox:*:bg-neutral-100 group-data-[checked]/checkbox:*:border-neutral-100 group-data-[checked]/checkbox:*:text-white hover:group-data-[checked]/checkbox:*:border-neutral-100 hover:group-data-[checked]/checkbox:*:text-white"
65
+ },
66
+ false: {
67
+ root: "",
68
+ icon: ""
69
+ }
70
+ } }
85
71
  };
86
- //# sourceMappingURL=Checkbox.js.map
72
+
73
+ //#endregion
74
+ export { Checkbox$1 as Checkbox, checkboxTheme, useCheckboxTheme };
@@ -1,22 +1,35 @@
1
- "use strict";
1
+ import { createComponentTheme } from "../theme/internals/createComponentTheme.js";
2
+ import { FieldContext } from "./internals/FieldContext.js";
3
+ import { FieldNameContext } from "./internals/FieldNameContext.js";
4
+ import { Field } from "@headlessui/react";
2
5
  import { jsx } from "react/jsx-runtime";
3
- import { Field as HeadlessField } from "@headlessui/react";
4
- import {
5
- createComponentTheme
6
- } from "../theme/internals.js";
7
- import { FieldContext, FieldNameContext } from "./internals.js";
8
- export const useCheckboxFieldTheme = createComponentTheme("CheckboxField");
9
- export function CheckboxField({ field, name, className, children }) {
10
- let theme = useCheckboxFieldTheme();
11
- if (field) {
12
- return /* @__PURE__ */ jsx(FieldContext, { value: field, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), "data-component": "checkbox-field", children }) });
13
- }
14
- if (name) {
15
- return /* @__PURE__ */ jsx(FieldNameContext, { value: name, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), "data-component": "checkbox-field", children }) });
16
- }
17
- return /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), children });
6
+
7
+ //#region source/components/CheckboxField.tsx
8
+ const useCheckboxFieldTheme = createComponentTheme("CheckboxField");
9
+ function CheckboxField({ field, name, className, children }) {
10
+ let theme = useCheckboxFieldTheme();
11
+ if (field) return /* @__PURE__ */ jsx(FieldContext, {
12
+ value: field,
13
+ children: /* @__PURE__ */ jsx(Field, {
14
+ className: theme(null, className),
15
+ "data-component": "checkbox-field",
16
+ children
17
+ })
18
+ });
19
+ if (name) return /* @__PURE__ */ jsx(FieldNameContext, {
20
+ value: name,
21
+ children: /* @__PURE__ */ jsx(Field, {
22
+ className: theme(null, className),
23
+ "data-component": "checkbox-field",
24
+ children
25
+ })
26
+ });
27
+ return /* @__PURE__ */ jsx(Field, {
28
+ className: theme(null, className),
29
+ children
30
+ });
18
31
  }
19
- export const checkboxFieldTheme = {
20
- className: "grid grid-cols-[theme(spacing.5)_1fr] gap-x-2 gap-y-1 [&>[data-component=description]]:col-start-2"
21
- };
22
- //# sourceMappingURL=CheckboxField.js.map
32
+ const checkboxFieldTheme = { className: "grid grid-cols-[theme(spacing.5)_1fr] gap-x-2 gap-y-1 [&>[data-component=description]]:col-start-2" };
33
+
34
+ //#endregion
35
+ export { CheckboxField, checkboxFieldTheme, useCheckboxFieldTheme };