@fuf-stack/uniform 1.8.9 → 1.9.0

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 (179) hide show
  1. package/dist/Checkboxes/index.cjs +10 -10
  2. package/dist/Checkboxes/index.js +9 -9
  3. package/dist/FieldArray/index.cjs +10 -10
  4. package/dist/FieldArray/index.js +9 -9
  5. package/dist/Form/index.cjs +10 -10
  6. package/dist/Form/index.js +9 -9
  7. package/dist/Input/index.cjs +10 -10
  8. package/dist/Input/index.js +9 -9
  9. package/dist/{RadioBoxes-DpkI28l0.d.cts → RadioBox-B0s3q9g6.d.cts} +87 -37
  10. package/dist/{RadioBoxes-DpkI28l0.d.ts → RadioBox-B0s3q9g6.d.ts} +87 -37
  11. package/dist/RadioBoxes/index.cjs +12 -10
  12. package/dist/RadioBoxes/index.cjs.map +1 -1
  13. package/dist/RadioBoxes/index.d.cts +2 -2
  14. package/dist/RadioBoxes/index.d.ts +2 -2
  15. package/dist/RadioBoxes/index.js +13 -11
  16. package/dist/RadioTabs/index.cjs +10 -10
  17. package/dist/RadioTabs/index.d.cts +2 -2
  18. package/dist/RadioTabs/index.d.ts +2 -2
  19. package/dist/RadioTabs/index.js +9 -9
  20. package/dist/{RadioTabs-DTDcAZoH.d.cts → RadioTabs-D9Px3XEs.d.cts} +15 -0
  21. package/dist/{RadioTabs-DTDcAZoH.d.ts → RadioTabs-D9Px3XEs.d.ts} +15 -0
  22. package/dist/Radios/index.cjs +10 -10
  23. package/dist/Radios/index.js +9 -9
  24. package/dist/Select/index.cjs +10 -10
  25. package/dist/Select/index.js +9 -9
  26. package/dist/Slider/index.cjs +19 -0
  27. package/dist/Slider/index.cjs.map +1 -0
  28. package/dist/Slider/index.d.cts +10 -0
  29. package/dist/Slider/index.d.ts +10 -0
  30. package/dist/Slider/index.js +19 -0
  31. package/dist/Slider/index.js.map +1 -0
  32. package/dist/Slider-CIVhjJy1.d.cts +153 -0
  33. package/dist/Slider-CIVhjJy1.d.ts +153 -0
  34. package/dist/SubmitButton/index.cjs +10 -10
  35. package/dist/SubmitButton/index.js +9 -9
  36. package/dist/Switch/index.cjs +10 -10
  37. package/dist/Switch/index.d.cts +2 -2
  38. package/dist/Switch/index.d.ts +2 -2
  39. package/dist/Switch/index.js +9 -9
  40. package/dist/{Switch-Hr6PnK98.d.cts → Switch-CqBVdRJe.d.cts} +4 -4
  41. package/dist/{Switch-Hr6PnK98.d.ts → Switch-CqBVdRJe.d.ts} +4 -4
  42. package/dist/SwitchBox/index.cjs +26 -0
  43. package/dist/SwitchBox/index.cjs.map +1 -0
  44. package/dist/SwitchBox/index.d.cts +11 -0
  45. package/dist/SwitchBox/index.d.ts +11 -0
  46. package/dist/SwitchBox/index.js +26 -0
  47. package/dist/SwitchBox/index.js.map +1 -0
  48. package/dist/SwitchBox-q1I7a0NX.d.cts +146 -0
  49. package/dist/SwitchBox-q1I7a0NX.d.ts +146 -0
  50. package/dist/TextArea/index.cjs +10 -10
  51. package/dist/TextArea/index.js +9 -9
  52. package/dist/{chunk-T6G6NGLL.js → chunk-246OISWB.js} +2 -2
  53. package/dist/chunk-2OXNDD5W.cjs +162 -0
  54. package/dist/chunk-2OXNDD5W.cjs.map +1 -0
  55. package/dist/{chunk-2UQCRQEJ.cjs → chunk-6RZT2BKH.cjs} +5 -5
  56. package/dist/{chunk-2UQCRQEJ.cjs.map → chunk-6RZT2BKH.cjs.map} +1 -1
  57. package/dist/{chunk-OZQQSTVH.js → chunk-7FOSZV75.js} +8 -6
  58. package/dist/chunk-7FOSZV75.js.map +1 -0
  59. package/dist/{chunk-F5DISGJ4.cjs → chunk-7O6LAGV2.cjs} +9 -9
  60. package/dist/{chunk-F5DISGJ4.cjs.map → chunk-7O6LAGV2.cjs.map} +1 -1
  61. package/dist/{chunk-QLMUUXQO.cjs → chunk-7WKVH43M.cjs} +78 -46
  62. package/dist/chunk-7WKVH43M.cjs.map +1 -0
  63. package/dist/{chunk-RCLQ6NFK.js → chunk-A3PYIWG2.js} +2 -2
  64. package/dist/{chunk-O2XJNQQK.js → chunk-BOCYHTFE.js} +7 -1
  65. package/dist/chunk-BOCYHTFE.js.map +1 -0
  66. package/dist/{chunk-KE5DB3DZ.js → chunk-CEVS6WSG.js} +2 -2
  67. package/dist/{chunk-VIK6VTAZ.js → chunk-CG7GDQAP.js} +3 -3
  68. package/dist/{chunk-77OMBV7C.js → chunk-DQAZSXD6.js} +4 -4
  69. package/dist/chunk-FUMQULCR.cjs +215 -0
  70. package/dist/chunk-FUMQULCR.cjs.map +1 -0
  71. package/dist/{chunk-5MTIQ6WD.js → chunk-GE7HUIAK.js} +3 -3
  72. package/dist/{chunk-LO7UKHOS.js → chunk-IKOYYA75.js} +2 -2
  73. package/dist/{chunk-SG3JI5R3.cjs → chunk-IU4RL2D7.cjs} +3 -3
  74. package/dist/{chunk-SG3JI5R3.cjs.map → chunk-IU4RL2D7.cjs.map} +1 -1
  75. package/dist/{chunk-PHMEYG5F.js → chunk-IZZTVGEW.js} +78 -46
  76. package/dist/chunk-IZZTVGEW.js.map +1 -0
  77. package/dist/{chunk-F3WXUKZG.js → chunk-JICFOKDO.js} +2 -2
  78. package/dist/{chunk-ALI7JORZ.cjs → chunk-JQQ32JOD.cjs} +3 -3
  79. package/dist/{chunk-ALI7JORZ.cjs.map → chunk-JQQ32JOD.cjs.map} +1 -1
  80. package/dist/{chunk-YYLTLVIF.cjs → chunk-LTE7PW7F.cjs} +3 -3
  81. package/dist/{chunk-YYLTLVIF.cjs.map → chunk-LTE7PW7F.cjs.map} +1 -1
  82. package/dist/chunk-LUO4I3TW.js +162 -0
  83. package/dist/chunk-LUO4I3TW.js.map +1 -0
  84. package/dist/{chunk-JG7S3DEH.cjs → chunk-MEYGGRBQ.cjs} +7 -7
  85. package/dist/{chunk-JG7S3DEH.cjs.map → chunk-MEYGGRBQ.cjs.map} +1 -1
  86. package/dist/{chunk-YBLDWOOG.js → chunk-MHQ2V7UW.js} +2 -2
  87. package/dist/{chunk-HEPNEBRF.cjs → chunk-NKIZA3ZO.cjs} +3 -3
  88. package/dist/{chunk-HEPNEBRF.cjs.map → chunk-NKIZA3ZO.cjs.map} +1 -1
  89. package/dist/{chunk-6AWHOBNL.cjs → chunk-NV4YVZYX.cjs} +6 -6
  90. package/dist/{chunk-6AWHOBNL.cjs.map → chunk-NV4YVZYX.cjs.map} +1 -1
  91. package/dist/{chunk-D4AAQIY3.cjs → chunk-RRG5ZLVF.cjs} +5 -5
  92. package/dist/{chunk-D4AAQIY3.cjs.map → chunk-RRG5ZLVF.cjs.map} +1 -1
  93. package/dist/{chunk-NQ3KBYW6.cjs → chunk-SR76XJW4.cjs} +3 -3
  94. package/dist/{chunk-NQ3KBYW6.cjs.map → chunk-SR76XJW4.cjs.map} +1 -1
  95. package/dist/chunk-THCIT66I.cjs +217 -0
  96. package/dist/chunk-THCIT66I.cjs.map +1 -0
  97. package/dist/{chunk-OKJWLH7T.cjs → chunk-TKICOKNS.cjs} +9 -3
  98. package/dist/chunk-TKICOKNS.cjs.map +1 -0
  99. package/dist/{chunk-IV45K4WU.js → chunk-TUIK3MER.js} +2 -2
  100. package/dist/{chunk-AQJLKHAE.cjs → chunk-UBLASN6D.cjs} +5 -5
  101. package/dist/{chunk-AQJLKHAE.cjs.map → chunk-UBLASN6D.cjs.map} +1 -1
  102. package/dist/chunk-UUGSI3FD.js +215 -0
  103. package/dist/chunk-UUGSI3FD.js.map +1 -0
  104. package/dist/{chunk-FYN7ZWLW.cjs → chunk-UUGUQGMX.cjs} +10 -10
  105. package/dist/{chunk-FYN7ZWLW.cjs.map → chunk-UUGUQGMX.cjs.map} +1 -1
  106. package/dist/{chunk-H2PPUEUO.cjs → chunk-V65AMUKK.cjs} +5 -5
  107. package/dist/{chunk-H2PPUEUO.cjs.map → chunk-V65AMUKK.cjs.map} +1 -1
  108. package/dist/chunk-VIV3MSIX.cjs +129 -0
  109. package/dist/chunk-VIV3MSIX.cjs.map +1 -0
  110. package/dist/{chunk-26VE4IGU.js → chunk-WWRIMXSN.js} +3 -3
  111. package/dist/chunk-XBVXMQBW.js +217 -0
  112. package/dist/chunk-XBVXMQBW.js.map +1 -0
  113. package/dist/{chunk-LIW7KW2L.cjs → chunk-XC3C2W4M.cjs} +3 -3
  114. package/dist/{chunk-LIW7KW2L.cjs.map → chunk-XC3C2W4M.cjs.map} +1 -1
  115. package/dist/chunk-XMCL3F4W.js +129 -0
  116. package/dist/chunk-XMCL3F4W.js.map +1 -0
  117. package/dist/{chunk-REVHYI2O.js → chunk-XXLYUZY4.js} +4 -4
  118. package/dist/{chunk-4UR2T76K.js → chunk-Y7YEI6T2.js} +3 -3
  119. package/dist/{chunk-27MWGFXR.cjs → chunk-YCCBMAN2.cjs} +9 -7
  120. package/dist/chunk-YCCBMAN2.cjs.map +1 -0
  121. package/dist/{chunk-SJWL6EMI.js → chunk-ZZW7JZ2U.js} +3 -3
  122. package/dist/helpers/index.cjs +4 -2
  123. package/dist/helpers/index.cjs.map +1 -1
  124. package/dist/helpers/index.d.cts +25 -1
  125. package/dist/helpers/index.d.ts +25 -1
  126. package/dist/helpers/index.js +3 -1
  127. package/dist/hooks/index.cjs +14 -14
  128. package/dist/hooks/index.cjs.map +1 -1
  129. package/dist/hooks/index.d.cts +1 -1
  130. package/dist/hooks/index.d.ts +1 -1
  131. package/dist/hooks/index.js +18 -18
  132. package/dist/hooks/useClientValidation/index.cjs +5 -5
  133. package/dist/hooks/useClientValidation/index.d.cts +2 -2
  134. package/dist/hooks/useClientValidation/index.d.ts +2 -2
  135. package/dist/hooks/useClientValidation/index.js +4 -4
  136. package/dist/hooks/useController/index.cjs +4 -4
  137. package/dist/hooks/useController/index.js +3 -3
  138. package/dist/hooks/useFormContext/index.cjs +4 -4
  139. package/dist/hooks/useFormContext/index.js +3 -3
  140. package/dist/hooks/useUniformField/index.cjs +6 -6
  141. package/dist/hooks/useUniformField/index.js +5 -5
  142. package/dist/hooks/useUniformFieldArray/index.cjs +7 -7
  143. package/dist/hooks/useUniformFieldArray/index.js +6 -6
  144. package/dist/hooks/useWatchUserChange/index.cjs +5 -5
  145. package/dist/hooks/useWatchUserChange/index.js +4 -4
  146. package/dist/index.cjs +38 -24
  147. package/dist/index.cjs.map +1 -1
  148. package/dist/index.d.cts +7 -5
  149. package/dist/index.d.ts +7 -5
  150. package/dist/index.js +45 -31
  151. package/package.json +13 -2
  152. package/dist/chunk-27MWGFXR.cjs.map +0 -1
  153. package/dist/chunk-DJKC3SR6.js +0 -105
  154. package/dist/chunk-DJKC3SR6.js.map +0 -1
  155. package/dist/chunk-HUDJU756.cjs +0 -170
  156. package/dist/chunk-HUDJU756.cjs.map +0 -1
  157. package/dist/chunk-NI3WUU7T.cjs +0 -105
  158. package/dist/chunk-NI3WUU7T.cjs.map +0 -1
  159. package/dist/chunk-O2XJNQQK.js.map +0 -1
  160. package/dist/chunk-OKJWLH7T.cjs.map +0 -1
  161. package/dist/chunk-OZQQSTVH.js.map +0 -1
  162. package/dist/chunk-PHMEYG5F.js.map +0 -1
  163. package/dist/chunk-QLMUUXQO.cjs.map +0 -1
  164. package/dist/chunk-U4D6YJ6Z.js +0 -170
  165. package/dist/chunk-U4D6YJ6Z.js.map +0 -1
  166. /package/dist/{chunk-T6G6NGLL.js.map → chunk-246OISWB.js.map} +0 -0
  167. /package/dist/{chunk-RCLQ6NFK.js.map → chunk-A3PYIWG2.js.map} +0 -0
  168. /package/dist/{chunk-KE5DB3DZ.js.map → chunk-CEVS6WSG.js.map} +0 -0
  169. /package/dist/{chunk-VIK6VTAZ.js.map → chunk-CG7GDQAP.js.map} +0 -0
  170. /package/dist/{chunk-77OMBV7C.js.map → chunk-DQAZSXD6.js.map} +0 -0
  171. /package/dist/{chunk-5MTIQ6WD.js.map → chunk-GE7HUIAK.js.map} +0 -0
  172. /package/dist/{chunk-LO7UKHOS.js.map → chunk-IKOYYA75.js.map} +0 -0
  173. /package/dist/{chunk-F3WXUKZG.js.map → chunk-JICFOKDO.js.map} +0 -0
  174. /package/dist/{chunk-YBLDWOOG.js.map → chunk-MHQ2V7UW.js.map} +0 -0
  175. /package/dist/{chunk-IV45K4WU.js.map → chunk-TUIK3MER.js.map} +0 -0
  176. /package/dist/{chunk-26VE4IGU.js.map → chunk-WWRIMXSN.js.map} +0 -0
  177. /package/dist/{chunk-REVHYI2O.js.map → chunk-XXLYUZY4.js.map} +0 -0
  178. /package/dist/{chunk-4UR2T76K.js.map → chunk-Y7YEI6T2.js.map} +0 -0
  179. /package/dist/{chunk-SJWL6EMI.js.map → chunk-ZZW7JZ2U.js.map} +0 -0
@@ -0,0 +1,215 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkYCCBMAN2cjs = require('./chunk-YCCBMAN2.cjs');
4
+
5
+
6
+
7
+
8
+ var _chunk555JRYCScjs = require('./chunk-555JRYCS.cjs');
9
+
10
+ // src/SwitchBox/SwitchBox.tsx
11
+ var _react = require('react');
12
+ var _switch = require('@heroui/switch');
13
+ var _visuallyhidden = require('@react-aria/visually-hidden');
14
+ var _pixelutils = require('@fuf-stack/pixel-utils');
15
+ var _jsxruntime = require('react/jsx-runtime');
16
+ var switchBoxVariants = _pixelutils.tv.call(void 0, {
17
+ slots: {
18
+ box: "group inline-flex w-full cursor-pointer items-center justify-between rounded-lg border-2 border-default hover:bg-content2 data-[selected=true]:border-focus",
19
+ description: "text-foreground opacity-70",
20
+ icon: "",
21
+ label: 'font-medium text-foreground group-data-[required=true]:after:ml-0.5 group-data-[required=true]:after:text-danger group-data-[required=true]:after:content-["*"]',
22
+ wrapper: "",
23
+ thumb: "",
24
+ thumbIcon: ""
25
+ },
26
+ variants: {
27
+ isDisabled: {
28
+ true: {
29
+ box: "pointer-events-none opacity-disabled"
30
+ }
31
+ },
32
+ isInvalid: {
33
+ true: {
34
+ box: "!border-danger",
35
+ label: "!text-danger"
36
+ }
37
+ },
38
+ size: {
39
+ sm: {
40
+ box: "gap-2 p-3",
41
+ description: "text-xs",
42
+ label: "text-xs"
43
+ },
44
+ md: {
45
+ box: "gap-4 p-4",
46
+ description: "text-small",
47
+ label: "text-sm"
48
+ },
49
+ lg: {
50
+ box: "gap-4 p-5",
51
+ description: "text-small",
52
+ label: "text-base"
53
+ }
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ size: "md"
58
+ }
59
+ });
60
+ var SwitchBox = (_a) => {
61
+ var _b = _a, {
62
+ className = void 0,
63
+ description = void 0,
64
+ icon = void 0,
65
+ name,
66
+ size = void 0,
67
+ thumbIcon = void 0
68
+ } = _b, uniformFieldProps = _chunk555JRYCScjs.__objRest.call(void 0, _b, [
69
+ "className",
70
+ "description",
71
+ "icon",
72
+ "name",
73
+ "size",
74
+ "thumbIcon"
75
+ ]);
76
+ var _a2;
77
+ const {
78
+ defaultValue,
79
+ disabled,
80
+ errorMessage,
81
+ field,
82
+ getErrorMessageProps,
83
+ getHelperWrapperProps,
84
+ invalid,
85
+ label,
86
+ onBlur,
87
+ onChange,
88
+ ref,
89
+ required,
90
+ testId
91
+ } = _chunkYCCBMAN2cjs.useUniformField.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {
92
+ name
93
+ }, uniformFieldProps));
94
+ const visualSwitchRef = _react.useRef.call(void 0, null);
95
+ const {
96
+ Component,
97
+ slots,
98
+ isSelected,
99
+ getBaseProps,
100
+ getInputProps,
101
+ getWrapperProps
102
+ } = _switch.useSwitch.call(void 0, {
103
+ defaultSelected: !!defaultValue,
104
+ isDisabled: disabled,
105
+ isSelected: !!field.value,
106
+ name: `${name}_switch`,
107
+ onValueChange: onChange,
108
+ size,
109
+ thumbIcon
110
+ });
111
+ const variants = switchBoxVariants({
112
+ isDisabled: disabled,
113
+ isInvalid: invalid,
114
+ size
115
+ });
116
+ const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, className, "box");
117
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
118
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
119
+ Component,
120
+ _chunk555JRYCScjs.__spreadProps.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {}, getBaseProps()), {
121
+ className: classNames.box,
122
+ "data-invalid": invalid,
123
+ "data-required": required,
124
+ "data-testid": testId,
125
+ children: [
126
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _visuallyhidden.VisuallyHidden, { children: [
127
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
128
+ "input",
129
+ {
130
+ ref,
131
+ "aria-label": typeof label === "string" ? label : name,
132
+ checked: !!field.value,
133
+ name,
134
+ tabIndex: -1,
135
+ type: "checkbox",
136
+ onChange: (e) => {
137
+ onChange(e.target.checked);
138
+ },
139
+ onFocus: () => {
140
+ var _a3;
141
+ (_a3 = visualSwitchRef.current) == null ? void 0 : _a3.focus();
142
+ }
143
+ }
144
+ ),
145
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
146
+ "input",
147
+ _chunk555JRYCScjs.__spreadProps.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {
148
+ ref: visualSwitchRef
149
+ }, getInputProps()), {
150
+ onBlur: (e) => {
151
+ var _a3, _b2;
152
+ (_b2 = (_a3 = getInputProps()).onBlur) == null ? void 0 : _b2.call(_a3, e);
153
+ onBlur();
154
+ }
155
+ })
156
+ )
157
+ ] }),
158
+ !icon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
159
+ "span",
160
+ _chunk555JRYCScjs.__spreadProps.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {}, getWrapperProps()), {
161
+ className: _pixelutils.cn.call(void 0, getWrapperProps().className, classNames.wrapper),
162
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _pixelutils.cn.call(void 0, slots.thumb({ class: classNames.thumb })), children: thumbIcon && typeof thumbIcon === "function" ? thumbIcon({
163
+ isSelected: !!isSelected,
164
+ className: slots.thumbIcon({ class: classNames.thumbIcon }),
165
+ width: "1em",
166
+ height: "1em",
167
+ "data-checked": isSelected ? "true" : "false"
168
+ }) : thumbIcon })
169
+ })
170
+ ) : null,
171
+ icon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: classNames.icon, children: icon }) : null,
172
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grow", children: [
173
+ label ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: classNames.label, children: label }) : null,
174
+ description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: classNames.description, children: description }) : null
175
+ ] }),
176
+ icon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
177
+ "span",
178
+ _chunk555JRYCScjs.__spreadProps.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {}, getWrapperProps()), {
179
+ className: _pixelutils.cn.call(void 0, getWrapperProps().className, classNames.wrapper),
180
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _pixelutils.cn.call(void 0, slots.thumb({ class: classNames.thumb })), children: thumbIcon && typeof thumbIcon === "function" ? thumbIcon({
181
+ isSelected: !!isSelected,
182
+ className: slots.thumbIcon({ class: classNames.thumbIcon }),
183
+ width: "1em",
184
+ height: "1em",
185
+ "data-checked": isSelected ? "true" : "false"
186
+ }) : thumbIcon })
187
+ })
188
+ ) : null
189
+ ]
190
+ })
191
+ ),
192
+ invalid ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
193
+ "div",
194
+ _chunk555JRYCScjs.__spreadProps.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {}, getHelperWrapperProps()), {
195
+ className: _pixelutils.cn.call(void 0,
196
+ (_a2 = getHelperWrapperProps()) == null ? void 0 : _a2.className,
197
+ // force helper to be visible (for some reason it's hidden by default) and remove margin
198
+ "ml-0 block"
199
+ ),
200
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", _chunk555JRYCScjs.__spreadProps.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {}, getErrorMessageProps()), { children: errorMessage }))
201
+ })
202
+ ) : null
203
+ ] });
204
+ };
205
+ var SwitchBox_default = SwitchBox;
206
+
207
+ // src/SwitchBox/index.ts
208
+ var SwitchBox_default2 = SwitchBox_default;
209
+
210
+
211
+
212
+
213
+
214
+ exports.switchBoxVariants = switchBoxVariants; exports.SwitchBox_default = SwitchBox_default; exports.SwitchBox_default2 = SwitchBox_default2;
215
+ //# sourceMappingURL=chunk-FUMQULCR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-FUMQULCR.cjs","../src/SwitchBox/SwitchBox.tsx","../src/SwitchBox/index.ts"],"names":["_a","SwitchBox_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-FUMQULCR.cjs","sourcesContent":[null,"import type { TVClassName } from '@fuf-stack/pixel-utils';\nimport type { SwitchProps as HeroSwitchProps } from '@heroui/switch';\nimport type { ReactNode } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useSwitch } from '@heroui/switch';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\n\nimport { cn, tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useUniformField } from '../hooks';\n\nexport const switchBoxVariants = tv({\n slots: {\n box: 'group inline-flex w-full cursor-pointer items-center justify-between rounded-lg border-2 border-default hover:bg-content2 data-[selected=true]:border-focus',\n description: 'text-foreground opacity-70',\n icon: '',\n label:\n 'font-medium text-foreground group-data-[required=true]:after:ml-0.5 group-data-[required=true]:after:text-danger group-data-[required=true]:after:content-[\"*\"]',\n wrapper: '',\n thumb: '',\n thumbIcon: '',\n },\n variants: {\n isDisabled: {\n true: {\n box: 'pointer-events-none opacity-disabled',\n },\n },\n isInvalid: {\n true: {\n box: '!border-danger',\n label: '!text-danger',\n },\n },\n size: {\n sm: {\n box: 'gap-2 p-3',\n description: 'text-xs',\n label: 'text-xs',\n },\n md: {\n box: 'gap-4 p-4',\n description: 'text-small',\n label: 'text-sm',\n },\n lg: {\n box: 'gap-4 p-5',\n description: 'text-small',\n label: 'text-base',\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\ntype ClassName = TVClassName<typeof switchBoxVariants>;\n\nexport interface SwitchBoxProps {\n /** CSS class name */\n className?: ClassName;\n /** Description text displayed below the label */\n description?: ReactNode;\n /** whether the switch should be disabled */\n disabled?: boolean;\n /** Icon to be displayed in the box */\n icon?: ReactNode;\n /** component displayed as the label */\n label?: ReactNode;\n /** name the field is registered under */\n name: string;\n /** whether the field is required */\n required?: boolean;\n /* Size of the switch */\n size?: 'sm' | 'md' | 'lg';\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** Icon to be displayed inside the thumb */\n thumbIcon?: HeroSwitchProps['thumbIcon'];\n}\n\n/**\n * SwitchBox component - A card-like box with a switch control\n */\nconst SwitchBox = ({\n className = undefined,\n description = undefined,\n icon = undefined,\n name,\n size = undefined,\n thumbIcon = undefined,\n ...uniformFieldProps\n}: SwitchBoxProps) => {\n const {\n defaultValue,\n disabled,\n errorMessage,\n field,\n getErrorMessageProps,\n getHelperWrapperProps,\n invalid,\n label,\n onBlur,\n onChange,\n ref,\n required,\n testId,\n } = useUniformField({\n name,\n ...uniformFieldProps,\n });\n\n // Ref for the visual switch to forward focus\n const visualSwitchRef = useRef<HTMLInputElement>(null);\n\n // Use the useSwitch hook to get access to all the necessary props\n const {\n Component,\n slots,\n isSelected,\n getBaseProps,\n getInputProps,\n getWrapperProps,\n } = useSwitch({\n defaultSelected: !!defaultValue,\n isDisabled: disabled,\n isSelected: !!field.value,\n name: `${name}_switch`,\n onValueChange: onChange,\n size,\n thumbIcon,\n });\n\n // classNames from slots\n const variants = switchBoxVariants({\n isDisabled: disabled,\n isInvalid: invalid,\n size,\n });\n const classNames = variantsToClassNames(variants, className, 'box');\n\n return (\n <div>\n <Component\n {...getBaseProps()}\n className={classNames.box}\n data-invalid={invalid}\n data-required={required}\n data-testid={testId}\n >\n <VisuallyHidden>\n <input\n ref={ref}\n aria-label={typeof label === 'string' ? label : name}\n checked={!!field.value}\n name={name}\n tabIndex={-1}\n type=\"checkbox\"\n onChange={(e) => {\n onChange(e.target.checked);\n }}\n onFocus={() => {\n // When RHF focuses this hidden input (e.g., on validation error),\n // forward focus to the visual switch to show focus ring\n visualSwitchRef.current?.focus();\n }}\n />\n {/* Visual switch input for focus ring */}\n <input\n ref={visualSwitchRef}\n {...getInputProps()}\n onBlur={(e) => {\n // Call HeroUI's internal onBlur to clear focus state and remove focus ring\n getInputProps().onBlur?.(e);\n // Then call RHF's onBlur to mark field as touched\n onBlur();\n }}\n />\n </VisuallyHidden>\n {!icon ? (\n <span\n {...getWrapperProps()}\n className={cn(getWrapperProps().className, classNames.wrapper)}\n >\n <span className={cn(slots.thumb({ class: classNames.thumb }))}>\n {thumbIcon && typeof thumbIcon === 'function'\n ? thumbIcon({\n isSelected: !!isSelected,\n className: slots.thumbIcon({ class: classNames.thumbIcon }),\n width: '1em',\n height: '1em',\n 'data-checked': isSelected ? 'true' : 'false',\n })\n : thumbIcon}\n </span>\n </span>\n ) : null}\n {icon ? <div className={classNames.icon}>{icon}</div> : null}\n <div className=\"grow\">\n {label ? <div className={classNames.label}>{label}</div> : null}\n {description ? (\n <div className={classNames.description}>{description}</div>\n ) : null}\n </div>\n {icon ? (\n <span\n {...getWrapperProps()}\n className={cn(getWrapperProps().className, classNames.wrapper)}\n >\n <span className={cn(slots.thumb({ class: classNames.thumb }))}>\n {thumbIcon && typeof thumbIcon === 'function'\n ? thumbIcon({\n isSelected: !!isSelected,\n className: slots.thumbIcon({ class: classNames.thumbIcon }),\n width: '1em',\n height: '1em',\n 'data-checked': isSelected ? 'true' : 'false',\n })\n : thumbIcon}\n </span>\n </span>\n ) : null}\n </Component>\n {invalid ? (\n <div\n {...getHelperWrapperProps()}\n className={cn(\n getHelperWrapperProps()?.className,\n // force helper to be visible (for some reason it's hidden by default) and remove margin\n 'ml-0 block',\n )}\n >\n <div {...getErrorMessageProps()}>{errorMessage}</div>\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default SwitchBox;\n","import SwitchBox from './SwitchBox';\n\nexport type { SwitchBoxProps } from './SwitchBox';\n\nexport { switchBoxVariants } from './SwitchBox';\nexport { SwitchBox };\n\nexport default SwitchBox;\n"]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  UniformContext
3
- } from "./chunk-IV45K4WU.js";
3
+ } from "./chunk-TUIK3MER.js";
4
4
  import {
5
5
  fromNullishString,
6
6
  toNullishString
7
- } from "./chunk-O2XJNQQK.js";
7
+ } from "./chunk-BOCYHTFE.js";
8
8
  import {
9
9
  __spreadProps,
10
10
  __spreadValues
@@ -38,4 +38,4 @@ var useController = (props) => {
38
38
  export {
39
39
  useController
40
40
  };
41
- //# sourceMappingURL=chunk-5MTIQ6WD.js.map
41
+ //# sourceMappingURL=chunk-GE7HUIAK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useFormContext
3
- } from "./chunk-SJWL6EMI.js";
3
+ } from "./chunk-ZZW7JZ2U.js";
4
4
 
5
5
  // src/hooks/useWatchUserChange/useWatchUserChange.ts
6
6
  import { useEffect } from "react";
@@ -23,4 +23,4 @@ var useWatchUserChange = ({
23
23
  export {
24
24
  useWatchUserChange
25
25
  };
26
- //# sourceMappingURL=chunk-LO7UKHOS.js.map
26
+ //# sourceMappingURL=chunk-IKOYYA75.js.map
@@ -3,7 +3,7 @@
3
3
  var _chunkNTOYCWCJcjs = require('./chunk-NTOYCWCJ.cjs');
4
4
 
5
5
 
6
- var _chunk27MWGFXRcjs = require('./chunk-27MWGFXR.cjs');
6
+ var _chunkYCCBMAN2cjs = require('./chunk-YCCBMAN2.cjs');
7
7
 
8
8
 
9
9
 
@@ -65,7 +65,7 @@ var Input = (_a) => {
65
65
  required,
66
66
  testId,
67
67
  resetField
68
- } = _chunk27MWGFXRcjs.useUniformField.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, { name, type }, uniformFieldProps));
68
+ } = _chunkYCCBMAN2cjs.useUniformField.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, { name, type }, uniformFieldProps));
69
69
  const { onChange, onBlur, value } = _chunkNTOYCWCJcjs.useInputValueDebounce.call(void 0, {
70
70
  debounceDelay,
71
71
  onBlur: fieldOnBlur,
@@ -142,4 +142,4 @@ var Input_default2 = Input_default;
142
142
 
143
143
 
144
144
  exports.Input_default = Input_default; exports.Input_default2 = Input_default2;
145
- //# sourceMappingURL=chunk-SG3JI5R3.cjs.map
145
+ //# sourceMappingURL=chunk-IU4RL2D7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-SG3JI5R3.cjs","../src/Input/Input.tsx","../src/Input/index.ts"],"names":["Input_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-SG3JI5R3.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { InputProps as HeroInputProps } from '@heroui/input';\nimport type { ReactNode } from 'react';\nimport type { InputValueTransform } from '../hooks';\n\nimport { Input as HeroInput } from '@heroui/input';\n// eslint-disable-next-line import-x/no-unresolved\nimport { NumberInput as HeroNumberInput } from '@heroui/number-input';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useInputValueDebounce, useUniformField } from '../hooks';\n\n// input variants\nexport const inputVariants = tv({\n slots: {\n /** wrapper around the whole input */\n base: '',\n /** clear button */\n clearButton: '',\n /** actual input element */\n input: '',\n /** inner wrapper (HeroUI inputWrapper slot) */\n inputWrapper: 'bg-content1 group-data-[focus=true]:border-focus',\n },\n});\n\ntype VariantProps = TVProps<typeof inputVariants>;\ntype ClassName = TVClassName<typeof inputVariants>;\n\nexport interface InputProps extends VariantProps {\n /** CSS class name */\n className?: ClassName;\n /** shows clear button when input has value */\n clearable?: boolean;\n /** debounce delay in milliseconds for form state updates (default: 300ms) */\n debounceDelay?: number;\n /** input field is disabled */\n disabled?: boolean;\n /** added content to the end of the input Field. */\n endContent?: ReactNode;\n /** form field label (set to false to disable label) */\n label?: string | false;\n /** form field name */\n name: string;\n /** callback that is fired when the value is cleared */\n onClear?: () => void;\n /** form field placeholder */\n placeholder?: string;\n /** size of the input */\n size?: 'sm' | 'md' | 'lg';\n /** content added to the start of the input field */\n startContent?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** allows disentangled display and form values for a field */\n transform?: InputValueTransform<string>;\n /** input type */\n type?: 'number' | 'password';\n}\n\n/**\n * Input component based on [HeroUI Input](https://www.heroui.com//docs/components/input)\n */\nconst Input = ({\n className: _className = undefined,\n clearable = false,\n debounceDelay = 300,\n endContent = undefined,\n name,\n onClear = undefined,\n placeholder = ' ',\n size = undefined,\n startContent = undefined,\n type = undefined,\n ...uniformFieldProps\n}: InputProps) => {\n const {\n disabled,\n field: {\n onChange: fieldOnChange,\n onBlur: fieldOnBlur,\n value: fieldValue,\n ref,\n },\n errorMessage,\n invalid,\n label,\n required,\n testId,\n resetField,\n } = useUniformField({ name, type, ...uniformFieldProps });\n\n // Use hook that provides debounced onChange and enhanced blur handling\n const { onChange, onBlur, value } = useInputValueDebounce({\n debounceDelay,\n onBlur: fieldOnBlur,\n onChange: fieldOnChange,\n value: fieldValue,\n });\n\n // If input is clearable add props for clearing input value\n const clearableProps: Pick<HeroInputProps, 'isClearable' | 'onClear'> =\n clearable\n ? {\n isClearable: true,\n onClear: () => {\n // if field had initial value we do not reset it\n // to that value, but clear it instead\n resetField(name, { defaultValue: null });\n // if onClear cb provided we call it\n if (onClear) {\n onClear();\n }\n },\n }\n : {};\n\n // classNames from slots\n const variants = inputVariants();\n const classNames = variantsToClassNames(variants, _className, 'base');\n\n // Common props for both Input and NumberInput\n const commonProps = {\n ref,\n classNames: {\n base: classNames.base,\n clearButton: classNames.clearButton,\n // set padding to 0 for error message exit animation\n helperWrapper: 'p-0',\n input: classNames.input,\n inputWrapper: classNames.inputWrapper,\n },\n 'data-testid': testId,\n endContent,\n errorMessage,\n id: testId,\n isDisabled: disabled,\n isInvalid: invalid,\n isRequired: required,\n label,\n labelPlacement: 'outside' as const,\n name,\n onBlur,\n placeholder,\n radius: 'sm' as const,\n size,\n startContent,\n variant: 'bordered' as const,\n ...clearableProps,\n };\n\n // Render NumberInput for number type\n if (type === 'number') {\n // Parse the string value to number - use undefined for empty/cleared state\n const numberValue =\n value !== '' && value != null && !Number.isNaN(Number(value))\n ? Number(value)\n : undefined;\n\n return (\n <HeroNumberInput\n {...commonProps}\n value={numberValue}\n // Disable thousands separator to avoid parsing issues\n formatOptions={{\n useGrouping: false,\n }}\n // NumberInput onChange receives either an event or a number\n onChange={(e: React.ChangeEvent<HTMLInputElement> | number) => {\n if (typeof e === 'number') {\n // Convert number to synthetic event and pass through debounced onChange\n onChange({\n target: { value: String(e) },\n } as React.ChangeEvent<HTMLInputElement>);\n } else {\n // Pass event through debounced onChange\n onChange(e);\n }\n }}\n />\n );\n }\n\n // Render regular Input for text/password\n return (\n <HeroInput {...commonProps} onChange={onChange} type={type} value={value} />\n );\n};\n\nexport default Input;\n","import Input from './Input';\n\nexport type { InputProps } from './Input';\n\nexport { Input };\n\nexport default Input;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-IU4RL2D7.cjs","../src/Input/Input.tsx","../src/Input/index.ts"],"names":["Input_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-IU4RL2D7.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { InputProps as HeroInputProps } from '@heroui/input';\nimport type { ReactNode } from 'react';\nimport type { InputValueTransform } from '../hooks';\n\nimport { Input as HeroInput } from '@heroui/input';\n// eslint-disable-next-line import-x/no-unresolved\nimport { NumberInput as HeroNumberInput } from '@heroui/number-input';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useInputValueDebounce, useUniformField } from '../hooks';\n\n// input variants\nexport const inputVariants = tv({\n slots: {\n /** wrapper around the whole input */\n base: '',\n /** clear button */\n clearButton: '',\n /** actual input element */\n input: '',\n /** inner wrapper (HeroUI inputWrapper slot) */\n inputWrapper: 'bg-content1 group-data-[focus=true]:border-focus',\n },\n});\n\ntype VariantProps = TVProps<typeof inputVariants>;\ntype ClassName = TVClassName<typeof inputVariants>;\n\nexport interface InputProps extends VariantProps {\n /** CSS class name */\n className?: ClassName;\n /** shows clear button when input has value */\n clearable?: boolean;\n /** debounce delay in milliseconds for form state updates (default: 300ms) */\n debounceDelay?: number;\n /** input field is disabled */\n disabled?: boolean;\n /** added content to the end of the input Field. */\n endContent?: ReactNode;\n /** form field label (set to false to disable label) */\n label?: string | false;\n /** form field name */\n name: string;\n /** callback that is fired when the value is cleared */\n onClear?: () => void;\n /** form field placeholder */\n placeholder?: string;\n /** size of the input */\n size?: 'sm' | 'md' | 'lg';\n /** content added to the start of the input field */\n startContent?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** allows disentangled display and form values for a field */\n transform?: InputValueTransform<string>;\n /** input type */\n type?: 'number' | 'password';\n}\n\n/**\n * Input component based on [HeroUI Input](https://www.heroui.com//docs/components/input)\n */\nconst Input = ({\n className: _className = undefined,\n clearable = false,\n debounceDelay = 300,\n endContent = undefined,\n name,\n onClear = undefined,\n placeholder = ' ',\n size = undefined,\n startContent = undefined,\n type = undefined,\n ...uniformFieldProps\n}: InputProps) => {\n const {\n disabled,\n field: {\n onChange: fieldOnChange,\n onBlur: fieldOnBlur,\n value: fieldValue,\n ref,\n },\n errorMessage,\n invalid,\n label,\n required,\n testId,\n resetField,\n } = useUniformField({ name, type, ...uniformFieldProps });\n\n // Use hook that provides debounced onChange and enhanced blur handling\n const { onChange, onBlur, value } = useInputValueDebounce({\n debounceDelay,\n onBlur: fieldOnBlur,\n onChange: fieldOnChange,\n value: fieldValue,\n });\n\n // If input is clearable add props for clearing input value\n const clearableProps: Pick<HeroInputProps, 'isClearable' | 'onClear'> =\n clearable\n ? {\n isClearable: true,\n onClear: () => {\n // if field had initial value we do not reset it\n // to that value, but clear it instead\n resetField(name, { defaultValue: null });\n // if onClear cb provided we call it\n if (onClear) {\n onClear();\n }\n },\n }\n : {};\n\n // classNames from slots\n const variants = inputVariants();\n const classNames = variantsToClassNames(variants, _className, 'base');\n\n // Common props for both Input and NumberInput\n const commonProps = {\n ref,\n classNames: {\n base: classNames.base,\n clearButton: classNames.clearButton,\n // set padding to 0 for error message exit animation\n helperWrapper: 'p-0',\n input: classNames.input,\n inputWrapper: classNames.inputWrapper,\n },\n 'data-testid': testId,\n endContent,\n errorMessage,\n id: testId,\n isDisabled: disabled,\n isInvalid: invalid,\n isRequired: required,\n label,\n labelPlacement: 'outside' as const,\n name,\n onBlur,\n placeholder,\n radius: 'sm' as const,\n size,\n startContent,\n variant: 'bordered' as const,\n ...clearableProps,\n };\n\n // Render NumberInput for number type\n if (type === 'number') {\n // Parse the string value to number - use undefined for empty/cleared state\n const numberValue =\n value !== '' && value != null && !Number.isNaN(Number(value))\n ? Number(value)\n : undefined;\n\n return (\n <HeroNumberInput\n {...commonProps}\n value={numberValue}\n // Disable thousands separator to avoid parsing issues\n formatOptions={{\n useGrouping: false,\n }}\n // NumberInput onChange receives either an event or a number\n onChange={(e: React.ChangeEvent<HTMLInputElement> | number) => {\n if (typeof e === 'number') {\n // Convert number to synthetic event and pass through debounced onChange\n onChange({\n target: { value: String(e) },\n } as React.ChangeEvent<HTMLInputElement>);\n } else {\n // Pass event through debounced onChange\n onChange(e);\n }\n }}\n />\n );\n }\n\n // Render regular Input for text/password\n return (\n <HeroInput {...commonProps} onChange={onChange} type={type} value={value} />\n );\n};\n\nexport default Input;\n","import Input from './Input';\n\nexport type { InputProps } from './Input';\n\nexport { Input };\n\nexport default Input;\n"]}
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  useUniformField
3
- } from "./chunk-OZQQSTVH.js";
3
+ } from "./chunk-7FOSZV75.js";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadValues
7
7
  } from "./chunk-K2V4ULA2.js";
8
8
 
9
9
  // src/RadioTabs/RadioTabs.tsx
10
+ import { useRef } from "react";
10
11
  import { RadioGroup as HeroRadioGroup } from "@heroui/radio";
12
+ import { VisuallyHidden } from "@react-aria/visually-hidden";
11
13
  import { slugify, tv, variantsToClassNames } from "@fuf-stack/pixel-utils";
12
14
  import Tabs from "@fuf-stack/pixels/Tabs";
13
- import { jsx } from "react/jsx-runtime";
15
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
16
  var radioTabsVariants = tv({
15
17
  slots: {
16
18
  base: "group gap-0",
@@ -29,7 +31,7 @@ var radioTabsVariants = tv({
29
31
  hasContent: {
30
32
  true: {
31
33
  base: "",
32
- tabBase: "p-1 pb-0",
34
+ tabBase: "p-1",
33
35
  tabWrapper: [
34
36
  // border style
35
37
  "rounded-medium border border-divider",
@@ -42,6 +44,11 @@ var radioTabsVariants = tv({
42
44
  true: {
43
45
  tabWrapper: "w-full"
44
46
  }
47
+ },
48
+ isInvalid: {
49
+ true: {
50
+ tabWrapper: "rounded-medium border-2 !border-danger"
51
+ }
45
52
  }
46
53
  }
47
54
  });
@@ -72,6 +79,7 @@ var RadioTabs = (_a) => {
72
79
  } = useUniformField(__spreadValues({
73
80
  name
74
81
  }, uniformFieldProps));
82
+ const visualRadioGroupRef = useRef(null);
75
83
  const tabOptions = options.map((option) => {
76
84
  var _a2, _b2;
77
85
  return {
@@ -90,50 +98,74 @@ var RadioTabs = (_a) => {
90
98
  const hasContent = options.some((option) => {
91
99
  return option.content;
92
100
  });
93
- const variants = radioTabsVariants({ hasContent, fullWidth });
101
+ const variants = radioTabsVariants({
102
+ fullWidth,
103
+ hasContent,
104
+ isInvalid: invalid
105
+ });
94
106
  const classNames = variantsToClassNames(variants, className, "base");
95
- return /* @__PURE__ */ jsx(
96
- HeroRadioGroup,
97
- {
98
- ref,
99
- "data-invalid": invalid,
100
- "data-required": required,
101
- "data-testid": testId,
102
- errorMessage,
103
- isDisabled: disabled,
104
- isInvalid: invalid,
105
- isRequired: required,
106
- label: label ? /* @__PURE__ */ jsx("legend", { children: label }) : null,
107
- name,
108
- onBlur,
109
- orientation: inline ? "horizontal" : "vertical",
110
- classNames: {
111
- base: classNames.base,
112
- label: classNames.label,
113
- wrapper: classNames.wrapper
114
- },
115
- children: /* @__PURE__ */ jsx(
116
- Tabs,
117
- {
118
- disabledKeys: disabled ? disabledAllKeys : void 0,
119
- onSelectionChange: onChange,
120
- selectedKey: value != null ? value : "",
121
- tabs: tabOptions,
122
- testId,
123
- variant,
124
- className: {
125
- base: classNames.tabBase,
126
- cursor: classNames.cursor,
127
- panel: classNames.tabPanel,
128
- tab: classNames.tab,
129
- tabContent: classNames.tabContent,
130
- tabList: classNames.tabList,
131
- tabWrapper: classNames.tabWrapper
132
- }
107
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
108
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(
109
+ "input",
110
+ {
111
+ ref,
112
+ name,
113
+ onBlur,
114
+ value: value != null ? value : "",
115
+ onChange: (e) => {
116
+ onChange(e.target.value);
117
+ },
118
+ onFocus: () => {
119
+ var _a2;
120
+ const firstTab = (_a2 = visualRadioGroupRef.current) == null ? void 0 : _a2.querySelector(
121
+ '[role="tab"]'
122
+ );
123
+ firstTab == null ? void 0 : firstTab.focus();
133
124
  }
134
- )
135
- }
136
- );
125
+ }
126
+ ) }),
127
+ /* @__PURE__ */ jsx(
128
+ HeroRadioGroup,
129
+ {
130
+ ref: visualRadioGroupRef,
131
+ "data-invalid": invalid,
132
+ "data-required": required,
133
+ "data-testid": testId,
134
+ errorMessage,
135
+ isDisabled: disabled,
136
+ isInvalid: invalid,
137
+ isRequired: required,
138
+ label: label ? /* @__PURE__ */ jsx("legend", { children: label }) : null,
139
+ name: `${name}_radiotabs`,
140
+ orientation: inline ? "horizontal" : "vertical",
141
+ classNames: {
142
+ base: classNames.base,
143
+ label: classNames.label,
144
+ wrapper: classNames.wrapper
145
+ },
146
+ children: /* @__PURE__ */ jsx(
147
+ Tabs,
148
+ {
149
+ disabledKeys: disabled ? disabledAllKeys : void 0,
150
+ onSelectionChange: onChange,
151
+ selectedKey: value != null ? value : "",
152
+ tabs: tabOptions,
153
+ testId,
154
+ variant,
155
+ className: {
156
+ base: classNames.tabBase,
157
+ cursor: classNames.cursor,
158
+ panel: classNames.tabPanel,
159
+ tab: classNames.tab,
160
+ tabContent: classNames.tabContent,
161
+ tabList: classNames.tabList,
162
+ tabWrapper: classNames.tabWrapper
163
+ }
164
+ }
165
+ )
166
+ }
167
+ )
168
+ ] });
137
169
  };
138
170
  var RadioTabs_default = RadioTabs;
139
171
 
@@ -144,4 +176,4 @@ export {
144
176
  RadioTabs_default,
145
177
  RadioTabs_default2
146
178
  };
147
- //# sourceMappingURL=chunk-PHMEYG5F.js.map
179
+ //# sourceMappingURL=chunk-IZZTVGEW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/RadioTabs/RadioTabs.tsx","../src/RadioTabs/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { TabsProps } from '@fuf-stack/pixels';\nimport type { TabProps } from '@fuf-stack/pixels/Tabs';\nimport type { ReactElement, ReactNode } from 'react';\n\nimport { useRef } from 'react';\n\nimport { RadioGroup as HeroRadioGroup } from '@heroui/radio';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\n\nimport { slugify, tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\nimport Tabs from '@fuf-stack/pixels/Tabs';\n\nimport { useUniformField } from '../hooks';\n\nexport const radioTabsVariants = tv({\n slots: {\n base: 'group gap-0', // Needs group for group-data condition\n cursor: '',\n label:\n 'mb-2 inline-flex text-sm text-foreground subpixel-antialiased group-data-[invalid=true]:text-danger',\n tab: '',\n tabBase: '',\n tabContent: '',\n tabList: '',\n tabPanel: 'p-3',\n tabWrapper: '',\n wrapper: '',\n },\n variants: {\n hasContent: {\n true: {\n base: '',\n tabBase: 'p-1',\n tabWrapper: [\n // border style\n 'rounded-medium border border-divider',\n // full width\n 'w-full',\n ],\n },\n },\n fullWidth: {\n true: {\n tabWrapper: 'w-full',\n },\n },\n isInvalid: {\n true: {\n tabWrapper: 'rounded-medium border-2 !border-danger',\n },\n },\n },\n});\n\ntype VariantProps = TVProps<typeof radioTabsVariants>;\ntype ClassName = TVClassName<typeof radioTabsVariants>;\n\nexport interface RadioTabsOption {\n /** Optional content inside of the tab */\n content?: ReactNode;\n /** disables the option */\n disabled?: boolean;\n /** option label */\n label?: React.ReactNode;\n /** option icon */\n icon?: ReactNode;\n /** HTML data-testid attribute of the option */\n testId?: string;\n /** option value */\n value: string;\n}\n\nexport interface RadioTabsProps extends Omit<VariantProps, 'hasContent'> {\n /** CSS class name */\n className?: ClassName;\n /** Determines if the Buttons are disabled or not. */\n disabled?: boolean;\n /** Whether tabs should take up full container width */\n fullWidth?: boolean;\n /** determines orientation of the Buttons. */\n inline?: boolean;\n /** Label displayed next to the RadioButton. */\n label?: ReactNode;\n /** Name the RadioButtons are registered at in HTML forms (react-hook-form). */\n name: string;\n /** Radio button configuration. */\n options: RadioTabsOption[];\n /** Id to grab element in internal tests. */\n testId?: string;\n /** How the RadioTabs should look like. */\n variant?: TabsProps['variant'];\n}\n\n/**\n * RadioTabs component based on [HeroUI RadioGroup](https://www.heroui.com//docs/components/radio-group)\n * and [HeroUI Tabs](https://www.heroui.com//docs/components/tabs)\n */\nconst RadioTabs = ({\n className = undefined,\n fullWidth = false,\n inline = false,\n name,\n options,\n variant = undefined,\n ...uniformFieldProps\n}: RadioTabsProps): ReactElement => {\n const {\n disabled,\n errorMessage,\n field: { onBlur, onChange, ref, value },\n invalid,\n label,\n required,\n testId,\n } = useUniformField({\n name,\n ...uniformFieldProps,\n });\n\n // Create a ref for the visual radio group to forward focus\n const visualRadioGroupRef = useRef<HTMLDivElement>(null);\n\n const tabOptions = options.map<TabProps>((option) => {\n return {\n content: option?.content,\n disabled: option?.disabled,\n key: option.value,\n label: option?.label ?? option?.value,\n testId: slugify(`option_${option?.testId ?? option?.value}`, {\n replaceDots: true,\n }),\n };\n });\n\n const disabledAllKeys: string[] | undefined = tabOptions?.map((option) => {\n return option.key as string;\n });\n\n // check if any option has content\n // eslint-disable-next-line @typescript-eslint/no-misused-promises, @typescript-eslint/promise-function-async\n const hasContent = options.some((option) => {\n return option.content;\n });\n\n // classNames from slots\n const variants = radioTabsVariants({\n fullWidth,\n hasContent,\n isInvalid: invalid,\n });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n return (\n <>\n {/* Visually hidden input for React Hook Form focus management */}\n <VisuallyHidden>\n <input\n ref={ref}\n name={name}\n onBlur={onBlur}\n value={value ?? ''}\n onChange={(e) => {\n onChange(e.target.value);\n }}\n onFocus={() => {\n // Forward focus to the first tab when RHF focuses this input\n const firstTab = visualRadioGroupRef.current?.querySelector(\n '[role=\"tab\"]',\n ) as HTMLElement;\n firstTab?.focus();\n }}\n />\n </VisuallyHidden>\n\n <HeroRadioGroup\n ref={visualRadioGroupRef}\n // see HeroUI styles for group-data condition (data-invalid),\n // e.g.: https://github.com/heroui-inc/heroui/blob/main/packages/components/select/src/use-select.ts\n data-invalid={invalid}\n data-required={required}\n data-testid={testId}\n errorMessage={errorMessage}\n isDisabled={disabled}\n isInvalid={invalid}\n isRequired={required}\n label={label ? <legend>{label}</legend> : null}\n name={`${name}_radiotabs`}\n orientation={inline ? 'horizontal' : 'vertical'}\n classNames={{\n base: classNames.base,\n label: classNames.label,\n wrapper: classNames.wrapper,\n }}\n >\n <Tabs\n disabledKeys={disabled ? disabledAllKeys : undefined}\n onSelectionChange={onChange}\n // make sure component is controlled\n selectedKey={value ?? ''}\n tabs={tabOptions}\n testId={testId}\n variant={variant}\n className={{\n base: classNames.tabBase,\n cursor: classNames.cursor,\n panel: classNames.tabPanel,\n tab: classNames.tab,\n tabContent: classNames.tabContent,\n tabList: classNames.tabList,\n tabWrapper: classNames.tabWrapper,\n }}\n />\n </HeroRadioGroup>\n </>\n );\n};\n\nexport default RadioTabs;\n","import RadioTabs from './RadioTabs';\n\nexport type { RadioTabsProps } from './RadioTabs';\n\nexport { RadioTabs };\n\nexport default RadioTabs;\n"],"mappings":"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","names":["_a","_b","RadioTabs_default"]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-ZJDU5EPE.js";
4
4
  import {
5
5
  useUniformField
6
- } from "./chunk-OZQQSTVH.js";
6
+ } from "./chunk-7FOSZV75.js";
7
7
  import {
8
8
  __objRest,
9
9
  __spreadValues
@@ -100,4 +100,4 @@ export {
100
100
  TextArea_default,
101
101
  TextArea_default2
102
102
  };
103
- //# sourceMappingURL=chunk-F3WXUKZG.js.map
103
+ //# sourceMappingURL=chunk-JICFOKDO.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkFYN7ZWLWcjs = require('./chunk-FYN7ZWLW.cjs');
3
+ var _chunkUUGUQGMXcjs = require('./chunk-UUGUQGMX.cjs');
4
4
 
5
5
  // src/SubmitButton/SubmitButton.tsx
6
6
  var _pixelutils = require('@fuf-stack/pixel-utils');
@@ -19,7 +19,7 @@ var SubmitButton = ({
19
19
  const {
20
20
  formState: { isSubmitting },
21
21
  triggerSubmit
22
- } = _chunkFYN7ZWLWcjs.useFormContext.call(void 0, );
22
+ } = _chunkUUGUQGMXcjs.useFormContext.call(void 0, );
23
23
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24
24
  _pixels.Button,
25
25
  {
@@ -46,4 +46,4 @@ var SubmitButton_default2 = SubmitButton_default;
46
46
 
47
47
 
48
48
  exports.SubmitButton_default = SubmitButton_default; exports.SubmitButton_default2 = SubmitButton_default2;
49
- //# sourceMappingURL=chunk-ALI7JORZ.cjs.map
49
+ //# sourceMappingURL=chunk-JQQ32JOD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-ALI7JORZ.cjs","../src/SubmitButton/SubmitButton.tsx","../src/SubmitButton/index.ts"],"names":["SubmitButton_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACDA,oDAA4B;AAC5B,2CAAuB;AA0CnB,+CAAA;AAhBJ,IAAM,aAAA,EAAe,CAAC;AAAA,EACpB,UAAA,EAAY,aAAA;AAAA,EACZ,SAAA,EAAW,QAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,KAAA,CAAA;AAAA,EACP,QAAA,EAAU,KAAA;AAAA,EACV,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS;AACX,CAAA,EAAA,GAAyB;AACvB,EAAA,MAAM;AAAA,IACJ,SAAA,EAAW,EAAE,aAAa,CAAA;AAAA,IAC1B;AAAA,EACF,EAAA,EAAI,8CAAA,CAAe;AAEnB,EAAA,uBACE,6BAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,SAAA,EAAW,4BAAA,SAAY,CAAA;AAAA,MACvB,KAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,IAAA;AAAA,MACA,OAAA,EAAS,QAAA,GAAW,YAAA;AAAA,MAIpB,OAAA,EAAS,aAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ,iCAAA,MAAQ,EAAQ,EAAE,WAAA,EAAa,KAAK,CAAC,CAAA;AAAA,MAC7C,IAAA,EAAK,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,qBAAA,EAAQ,YAAA;AD1Bf;AACA;AEnCA,IAAOA,sBAAAA,EAAQ,oBAAA;AFqCf;AACA;AACE;AACA;AACF,2GAAC","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-ALI7JORZ.cjs","sourcesContent":[null,"import type { ButtonProps } from '@fuf-stack/pixels';\nimport type { ReactNode } from 'react';\n\nimport { cn, slugify } from '@fuf-stack/pixel-utils';\nimport { Button } from '@fuf-stack/pixels';\n\nimport { useFormContext } from '../hooks';\n\nexport interface SubmitButtonProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** color of the submit button */\n color?: ButtonProps['color'];\n /** icon of the submit button */\n icon?: ButtonProps['icon'];\n /** If set loading animation is shown */\n loading?: boolean;\n /** size of the submit button */\n size?: ButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * From SubmitButton\n */\nconst SubmitButton = ({\n ariaLabel = 'Submit form',\n children = 'Submit',\n className = undefined,\n color = 'success',\n icon = undefined,\n loading = false,\n size = 'md',\n testId = 'form_submit_button',\n}: SubmitButtonProps) => {\n const {\n formState: { isSubmitting },\n triggerSubmit,\n } = useFormContext();\n\n return (\n <Button\n ariaLabel={ariaLabel}\n className={cn(className)}\n color={color}\n disabled={isSubmitting}\n icon={icon}\n loading={loading || isSubmitting}\n // @ts-expect-error we use form context triggerSubmit\n // here so that submit button also works in special\n // scenarios (e.g. when used in modal)\n onClick={triggerSubmit}\n size={size}\n testId={slugify(testId, { replaceDots: true })}\n type=\"submit\"\n >\n {children}\n </Button>\n );\n};\n\nexport default SubmitButton;\n","import SubmitButton from './SubmitButton';\n\nexport type { SubmitButtonProps } from './SubmitButton';\n\nexport { SubmitButton };\n\nexport default SubmitButton;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-JQQ32JOD.cjs","../src/SubmitButton/SubmitButton.tsx","../src/SubmitButton/index.ts"],"names":["SubmitButton_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACDA,oDAA4B;AAC5B,2CAAuB;AA0CnB,+CAAA;AAhBJ,IAAM,aAAA,EAAe,CAAC;AAAA,EACpB,UAAA,EAAY,aAAA;AAAA,EACZ,SAAA,EAAW,QAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,KAAA,CAAA;AAAA,EACP,QAAA,EAAU,KAAA;AAAA,EACV,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS;AACX,CAAA,EAAA,GAAyB;AACvB,EAAA,MAAM;AAAA,IACJ,SAAA,EAAW,EAAE,aAAa,CAAA;AAAA,IAC1B;AAAA,EACF,EAAA,EAAI,8CAAA,CAAe;AAEnB,EAAA,uBACE,6BAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,SAAA,EAAW,4BAAA,SAAY,CAAA;AAAA,MACvB,KAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,IAAA;AAAA,MACA,OAAA,EAAS,QAAA,GAAW,YAAA;AAAA,MAIpB,OAAA,EAAS,aAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ,iCAAA,MAAQ,EAAQ,EAAE,WAAA,EAAa,KAAK,CAAC,CAAA;AAAA,MAC7C,IAAA,EAAK,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,qBAAA,EAAQ,YAAA;AD1Bf;AACA;AEnCA,IAAOA,sBAAAA,EAAQ,oBAAA;AFqCf;AACA;AACE;AACA;AACF,2GAAC","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-JQQ32JOD.cjs","sourcesContent":[null,"import type { ButtonProps } from '@fuf-stack/pixels';\nimport type { ReactNode } from 'react';\n\nimport { cn, slugify } from '@fuf-stack/pixel-utils';\nimport { Button } from '@fuf-stack/pixels';\n\nimport { useFormContext } from '../hooks';\n\nexport interface SubmitButtonProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** color of the submit button */\n color?: ButtonProps['color'];\n /** icon of the submit button */\n icon?: ButtonProps['icon'];\n /** If set loading animation is shown */\n loading?: boolean;\n /** size of the submit button */\n size?: ButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * From SubmitButton\n */\nconst SubmitButton = ({\n ariaLabel = 'Submit form',\n children = 'Submit',\n className = undefined,\n color = 'success',\n icon = undefined,\n loading = false,\n size = 'md',\n testId = 'form_submit_button',\n}: SubmitButtonProps) => {\n const {\n formState: { isSubmitting },\n triggerSubmit,\n } = useFormContext();\n\n return (\n <Button\n ariaLabel={ariaLabel}\n className={cn(className)}\n color={color}\n disabled={isSubmitting}\n icon={icon}\n loading={loading || isSubmitting}\n // @ts-expect-error we use form context triggerSubmit\n // here so that submit button also works in special\n // scenarios (e.g. when used in modal)\n onClick={triggerSubmit}\n size={size}\n testId={slugify(testId, { replaceDots: true })}\n type=\"submit\"\n >\n {children}\n </Button>\n );\n};\n\nexport default SubmitButton;\n","import SubmitButton from './SubmitButton';\n\nexport type { SubmitButtonProps } from './SubmitButton';\n\nexport { SubmitButton };\n\nexport default SubmitButton;\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk27MWGFXRcjs = require('./chunk-27MWGFXR.cjs');
3
+ var _chunkYCCBMAN2cjs = require('./chunk-YCCBMAN2.cjs');
4
4
 
5
5
 
6
6
 
@@ -49,7 +49,7 @@ var Radios = (_a) => {
49
49
  required,
50
50
  defaultValue,
51
51
  testId
52
- } = _chunk27MWGFXRcjs.useUniformField.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {
52
+ } = _chunkYCCBMAN2cjs.useUniformField.call(void 0, _chunk555JRYCScjs.__spreadValues.call(void 0, {
53
53
  name
54
54
  }, uniformFieldProps));
55
55
  const variants = radiosVariants();
@@ -113,4 +113,4 @@ var Radios_default2 = Radios_default;
113
113
 
114
114
 
115
115
  exports.Radios_default = Radios_default; exports.Radios_default2 = Radios_default2;
116
- //# sourceMappingURL=chunk-YYLTLVIF.cjs.map
116
+ //# sourceMappingURL=chunk-LTE7PW7F.cjs.map