@fuf-stack/uniform 0.14.4 → 0.15.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 (150) hide show
  1. package/dist/CheckboxGroup/index.cjs +7 -6
  2. package/dist/CheckboxGroup/index.cjs.map +1 -1
  3. package/dist/CheckboxGroup/index.js +6 -5
  4. package/dist/Controller/index.cjs +4 -2
  5. package/dist/Controller/index.cjs.map +1 -1
  6. package/dist/Controller/index.d.cts +7 -3
  7. package/dist/Controller/index.d.ts +7 -3
  8. package/dist/Controller/index.js +7 -5
  9. package/dist/Controller-8Nqugui5.d.cts +37 -0
  10. package/dist/Controller-8Nqugui5.d.ts +37 -0
  11. package/dist/FieldArray/index.cjs +6 -5
  12. package/dist/FieldArray/index.cjs.map +1 -1
  13. package/dist/FieldArray/index.d.cts +5 -3
  14. package/dist/FieldArray/index.d.ts +5 -3
  15. package/dist/FieldArray/index.js +5 -4
  16. package/dist/FieldArray-AqM2XKIh.d.cts +151 -0
  17. package/dist/FieldArray-AqM2XKIh.d.ts +151 -0
  18. package/dist/Form/index.cjs +5 -4
  19. package/dist/Form/index.cjs.map +1 -1
  20. package/dist/Form/index.js +4 -3
  21. package/dist/Grid/index.cjs +1 -0
  22. package/dist/Grid/index.cjs.map +1 -1
  23. package/dist/Grid/index.js +1 -0
  24. package/dist/Input/index.cjs +7 -6
  25. package/dist/Input/index.cjs.map +1 -1
  26. package/dist/Input/index.js +6 -5
  27. package/dist/RadioGroup/index.cjs +7 -6
  28. package/dist/RadioGroup/index.cjs.map +1 -1
  29. package/dist/RadioGroup/index.js +6 -5
  30. package/dist/Select/index.cjs +7 -6
  31. package/dist/Select/index.cjs.map +1 -1
  32. package/dist/Select/index.js +6 -5
  33. package/dist/SubmitButton/index.cjs +5 -4
  34. package/dist/SubmitButton/index.cjs.map +1 -1
  35. package/dist/SubmitButton/index.js +4 -3
  36. package/dist/Switch/index.cjs +7 -6
  37. package/dist/Switch/index.cjs.map +1 -1
  38. package/dist/Switch/index.js +6 -5
  39. package/dist/TextArea/index.cjs +7 -6
  40. package/dist/TextArea/index.cjs.map +1 -1
  41. package/dist/TextArea/index.js +6 -5
  42. package/dist/{chunk-DDZMDOSG.js → chunk-2LAPLELO.js} +21 -17
  43. package/dist/{chunk-DDZMDOSG.js.map → chunk-2LAPLELO.js.map} +1 -1
  44. package/dist/chunk-2NSCPLAA.cjs +133 -0
  45. package/dist/chunk-2NSCPLAA.cjs.map +1 -0
  46. package/dist/{chunk-TR2J3OKH.js → chunk-3Q37222E.js} +20 -13
  47. package/dist/chunk-3Q37222E.js.map +1 -0
  48. package/dist/chunk-4AXNPSXG.cjs +82 -0
  49. package/dist/chunk-4AXNPSXG.cjs.map +1 -0
  50. package/dist/chunk-4DAZAO6Y.cjs +59 -0
  51. package/dist/chunk-4DAZAO6Y.cjs.map +1 -0
  52. package/dist/chunk-4EJS5FXY.js +51 -0
  53. package/dist/chunk-4EJS5FXY.js.map +1 -0
  54. package/dist/chunk-4EP3IGSK.cjs +372 -0
  55. package/dist/chunk-4EP3IGSK.cjs.map +1 -0
  56. package/dist/{chunk-25LLM544.cjs → chunk-4M6F2O2K.cjs} +11 -9
  57. package/dist/chunk-4M6F2O2K.cjs.map +1 -0
  58. package/dist/{chunk-XJGJ5ZNM.js → chunk-7HK64PN5.js} +38 -22
  59. package/dist/chunk-7HK64PN5.js.map +1 -0
  60. package/dist/{chunk-OHJYXA6R.cjs → chunk-C4RM2JSD.cjs} +3 -3
  61. package/dist/{chunk-OHJYXA6R.cjs.map → chunk-C4RM2JSD.cjs.map} +1 -1
  62. package/dist/chunk-CRTRMMJ7.js +59 -0
  63. package/dist/chunk-CRTRMMJ7.js.map +1 -0
  64. package/dist/{chunk-EKE5URXQ.cjs → chunk-F6KTQXWG.cjs} +15 -12
  65. package/dist/chunk-F6KTQXWG.cjs.map +1 -0
  66. package/dist/{chunk-RY4F5YDS.cjs → chunk-FLX6VIO7.cjs} +42 -26
  67. package/dist/chunk-FLX6VIO7.cjs.map +1 -0
  68. package/dist/chunk-IEF2GJ22.js +82 -0
  69. package/dist/chunk-IEF2GJ22.js.map +1 -0
  70. package/dist/chunk-K43U2JVG.cjs +248 -0
  71. package/dist/chunk-K43U2JVG.cjs.map +1 -0
  72. package/dist/{chunk-XJZAS7NG.cjs → chunk-MF4JB3YT.cjs} +25 -21
  73. package/dist/chunk-MF4JB3YT.cjs.map +1 -0
  74. package/dist/{chunk-BZAPTLMC.js → chunk-MRXNKY72.js} +49 -49
  75. package/dist/chunk-MRXNKY72.js.map +1 -0
  76. package/dist/chunk-OBQDQ4RX.js +372 -0
  77. package/dist/chunk-OBQDQ4RX.js.map +1 -0
  78. package/dist/{chunk-VP7WDLJM.js → chunk-P4PRVNCH.js} +17 -13
  79. package/dist/chunk-P4PRVNCH.js.map +1 -0
  80. package/dist/{chunk-PZ4LZQI4.cjs → chunk-QLQR44AD.cjs} +19 -15
  81. package/dist/chunk-QLQR44AD.cjs.map +1 -0
  82. package/dist/{chunk-AQHKELUR.js → chunk-U26GTLKF.js} +10 -8
  83. package/dist/chunk-U26GTLKF.js.map +1 -0
  84. package/dist/{chunk-GN5NJ6ZU.js → chunk-UJYXA5AD.js} +3 -3
  85. package/dist/chunk-V5HTEMWZ.cjs +51 -0
  86. package/dist/chunk-V5HTEMWZ.cjs.map +1 -0
  87. package/dist/{chunk-VZ5MMFIF.cjs → chunk-V7LRZ5GK.cjs} +5 -5
  88. package/dist/{chunk-VZ5MMFIF.cjs.map → chunk-V7LRZ5GK.cjs.map} +1 -1
  89. package/dist/{chunk-WKM2D7LF.js → chunk-VX76MJAI.js} +2 -2
  90. package/dist/chunk-W66BVPTB.js +248 -0
  91. package/dist/{chunk-IUNDGVMC.js.map → chunk-W66BVPTB.js.map} +1 -1
  92. package/dist/{chunk-BS52M4SZ.js → chunk-WAXJ64P7.js} +14 -11
  93. package/dist/chunk-WAXJ64P7.js.map +1 -0
  94. package/dist/{chunk-U6VUNJZG.cjs → chunk-Y4AUJ2YA.cjs} +21 -14
  95. package/dist/chunk-Y4AUJ2YA.cjs.map +1 -0
  96. package/dist/helpers/index.cjs +11 -2
  97. package/dist/helpers/index.cjs.map +1 -1
  98. package/dist/helpers/index.d.cts +68 -1
  99. package/dist/helpers/index.d.ts +68 -1
  100. package/dist/helpers/index.js +12 -3
  101. package/dist/hooks/index.cjs +6 -3
  102. package/dist/hooks/index.cjs.map +1 -1
  103. package/dist/hooks/index.d.cts +3 -2
  104. package/dist/hooks/index.d.ts +3 -2
  105. package/dist/hooks/index.js +7 -4
  106. package/dist/index.cjs +25 -14
  107. package/dist/index.cjs.map +1 -1
  108. package/dist/index.d.cts +5 -3
  109. package/dist/index.d.ts +5 -3
  110. package/dist/index.js +33 -22
  111. package/dist/partials/FieldCopyTestIdButton/index.cjs +1 -0
  112. package/dist/partials/FieldCopyTestIdButton/index.cjs.map +1 -1
  113. package/dist/partials/FieldCopyTestIdButton/index.js +1 -0
  114. package/dist/partials/FieldValidationError/index.cjs +4 -3
  115. package/dist/partials/FieldValidationError/index.cjs.map +1 -1
  116. package/dist/partials/FieldValidationError/index.js +3 -2
  117. package/package.json +18 -18
  118. package/dist/FieldArray-DD9z-xZ3.d.cts +0 -37
  119. package/dist/FieldArray-DD9z-xZ3.d.ts +0 -37
  120. package/dist/chunk-25LLM544.cjs.map +0 -1
  121. package/dist/chunk-AQHKELUR.js.map +0 -1
  122. package/dist/chunk-BBB4FEY6.cjs +0 -22
  123. package/dist/chunk-BBB4FEY6.cjs.map +0 -1
  124. package/dist/chunk-BS52M4SZ.js.map +0 -1
  125. package/dist/chunk-BZAPTLMC.js.map +0 -1
  126. package/dist/chunk-EKE5URXQ.cjs.map +0 -1
  127. package/dist/chunk-HOETR36J.cjs +0 -299
  128. package/dist/chunk-HOETR36J.cjs.map +0 -1
  129. package/dist/chunk-HZP3EXGR.cjs +0 -241
  130. package/dist/chunk-HZP3EXGR.cjs.map +0 -1
  131. package/dist/chunk-IUNDGVMC.js +0 -241
  132. package/dist/chunk-KOKIM2ND.js +0 -9
  133. package/dist/chunk-KOKIM2ND.js.map +0 -1
  134. package/dist/chunk-PZ4LZQI4.cjs.map +0 -1
  135. package/dist/chunk-RY4F5YDS.cjs.map +0 -1
  136. package/dist/chunk-TR2J3OKH.js.map +0 -1
  137. package/dist/chunk-U6VUNJZG.cjs.map +0 -1
  138. package/dist/chunk-V46BHM2U.js +0 -22
  139. package/dist/chunk-V46BHM2U.js.map +0 -1
  140. package/dist/chunk-VP7WDLJM.js.map +0 -1
  141. package/dist/chunk-VQWKXSHW.cjs +0 -9
  142. package/dist/chunk-VQWKXSHW.cjs.map +0 -1
  143. package/dist/chunk-XJGJ5ZNM.js.map +0 -1
  144. package/dist/chunk-XJWEUCV3.cjs +0 -133
  145. package/dist/chunk-XJWEUCV3.cjs.map +0 -1
  146. package/dist/chunk-XJZAS7NG.cjs.map +0 -1
  147. package/dist/chunk-Y53IHK6B.js +0 -299
  148. package/dist/chunk-Y53IHK6B.js.map +0 -1
  149. /package/dist/{chunk-GN5NJ6ZU.js.map → chunk-UJYXA5AD.js.map} +0 -0
  150. /package/dist/{chunk-WKM2D7LF.js.map → chunk-VX76MJAI.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-OHJYXA6R.cjs","../src/partials/FieldValidationError/FieldValidationError.tsx","../src/partials/FieldValidationError/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACyCU,+CAAA;AAhCV,IAAM,qBAAA,EAAuB,CAAC;AAAA,EAC5B,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,KAAA;AAAA,EACA,OAAA,EAAS,KAAA;AACX,CAAA,EAAA,GAAiC;AAC/B,EAAA,GAAA,CAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,UAAA,EAA0B,CAAC,CAAA;AAE/B,EAAA,GAAA,CAAI,OAAO,MAAA,IAAU,SAAA,GAAY,CAAA,CAAE,MAAA,WAAiB,KAAA,CAAA,EAAQ;AAC1D,IAAA,MAAM,YAAA,EAAc,KAAA;AACpB,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,EAAA,GAAQ;AAClC,MAAA,UAAA,EAAY,CAAC,GAAG,SAAA,EAAW,GAAG,WAAA,CAAY,GAAG,CAAC,CAAA;AAAA,IAChD,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,WAAA,EACJ,IAAA,CAAK,SAAA,CAAU,SAAS,EAAA,IAAM,KAAA,EAAO,UAAA,EAAa,KAAA;AACpD,EAAA,MAAM,aAAA,EAAyB,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,OAAO,CAAA;AAC9D,EAAA,MAAM,WAAA,EAAa,CAAA,OAAA,EAAU,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAGlD,EAAA;AAAC,IAAA;AAAA,IAAA;AAC6C,MAAA;AAChC,MAAA;AACZ,MAAA;AAEwC,MAAA;AAAA;AAGpC,wBAAA;AAEH,MAAA;AAAA,IAAA;AACH,EAAA;AAEJ;AAEe;ADdwC;AACA;AEjCxC;AFmCwC;AACA;AACA;AACA;AACA","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-OHJYXA6R.cjs","sourcesContent":[null,"import type { FieldError } from 'react-hook-form';\n\nimport { slugify } from '../../helpers';\n\nexport interface FieldValidationErrorProps {\n className?: string;\n error: FieldError[] | Record<string, FieldError[]>;\n testId?: string;\n}\n\n/**\n * Renders a validation error of a field\n */\nconst FieldValidationError = ({\n className = undefined,\n error,\n testId = undefined,\n}: FieldValidationErrorProps) => {\n if (!error) {\n return null;\n }\n\n let tmpErrors: FieldError[] = [];\n\n if (typeof error === 'object' && !(error instanceof Array)) {\n const errorObject = error as Record<string, FieldError[]>;\n Object.keys(error).forEach((key) => {\n tmpErrors = [...tmpErrors, ...errorObject[key]];\n });\n }\n\n const errorArray: FieldError[] =\n JSON.stringify(tmpErrors) !== '[]' ? tmpErrors : (error as FieldError[]);\n const errorStrings: string[] = errorArray.map((e) => e.message) as string[];\n const ariaString = `Error: ${errorStrings.join('\\n')}`;\n\n return (\n <ul\n data-testid={slugify(testId || errorStrings.join())}\n aria-label={ariaString} // TODO: ist das richtig @Hannes?\n className={className}\n >\n {errorStrings.map((errorString: string, i: number) => (\n // eslint-disable-next-line react/no-array-index-key\n <li key={`error_${i}`}>\n <div>{errorString}</div>\n </li>\n ))}\n </ul>\n );\n};\n\nexport default FieldValidationError;\n","import FieldValidationError from './FieldValidationError';\n\nexport type { FieldValidationErrorProps } from './FieldValidationError';\n\nexport { FieldValidationError };\n\nexport default FieldValidationError;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-C4RM2JSD.cjs","../src/partials/FieldValidationError/FieldValidationError.tsx","../src/partials/FieldValidationError/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACyCU,+CAAA;AAhCV,IAAM,qBAAA,EAAuB,CAAC;AAAA,EAC5B,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,KAAA;AAAA,EACA,OAAA,EAAS,KAAA;AACX,CAAA,EAAA,GAAiC;AAC/B,EAAA,GAAA,CAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,UAAA,EAA0B,CAAC,CAAA;AAE/B,EAAA,GAAA,CAAI,OAAO,MAAA,IAAU,SAAA,GAAY,CAAA,CAAE,MAAA,WAAiB,KAAA,CAAA,EAAQ;AAC1D,IAAA,MAAM,YAAA,EAAc,KAAA;AACpB,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,EAAA,GAAQ;AAClC,MAAA,UAAA,EAAY,CAAC,GAAG,SAAA,EAAW,GAAG,WAAA,CAAY,GAAG,CAAC,CAAA;AAAA,IAChD,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,WAAA,EACJ,IAAA,CAAK,SAAA,CAAU,SAAS,EAAA,IAAM,KAAA,EAAO,UAAA,EAAa,KAAA;AACpD,EAAA,MAAM,aAAA,EAAyB,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,OAAO,CAAA;AAC9D,EAAA,MAAM,WAAA,EAAa,CAAA,OAAA,EAAU,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAGlD,EAAA;AAAC,IAAA;AAAA,IAAA;AAC6C,MAAA;AAChC,MAAA;AACZ,MAAA;AAEwC,MAAA;AAAA;AAGpC,wBAAA;AAEH,MAAA;AAAA,IAAA;AACH,EAAA;AAEJ;AAEe;ADdwC;AACA;AEjCxC;AFmCwC;AACA;AACA;AACA;AACA","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-C4RM2JSD.cjs","sourcesContent":[null,"import type { FieldError } from 'react-hook-form';\n\nimport { slugify } from '../../helpers';\n\nexport interface FieldValidationErrorProps {\n className?: string;\n error: FieldError[] | Record<string, FieldError[]>;\n testId?: string;\n}\n\n/**\n * Renders a validation error of a field\n */\nconst FieldValidationError = ({\n className = undefined,\n error,\n testId = undefined,\n}: FieldValidationErrorProps) => {\n if (!error) {\n return null;\n }\n\n let tmpErrors: FieldError[] = [];\n\n if (typeof error === 'object' && !(error instanceof Array)) {\n const errorObject = error as Record<string, FieldError[]>;\n Object.keys(error).forEach((key) => {\n tmpErrors = [...tmpErrors, ...errorObject[key]];\n });\n }\n\n const errorArray: FieldError[] =\n JSON.stringify(tmpErrors) !== '[]' ? tmpErrors : (error as FieldError[]);\n const errorStrings: string[] = errorArray.map((e) => e.message) as string[];\n const ariaString = `Error: ${errorStrings.join('\\n')}`;\n\n return (\n <ul\n data-testid={slugify(testId || errorStrings.join())}\n aria-label={ariaString} // TODO: ist das richtig @Hannes?\n className={className}\n >\n {errorStrings.map((errorString: string, i: number) => (\n // eslint-disable-next-line react/no-array-index-key\n <li key={`error_${i}`}>\n <div>{errorString}</div>\n </li>\n ))}\n </ul>\n );\n};\n\nexport default FieldValidationError;\n","import FieldValidationError from './FieldValidationError';\n\nexport type { FieldValidationErrorProps } from './FieldValidationError';\n\nexport { FieldValidationError };\n\nexport default FieldValidationError;\n"]}
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ var __async = (__this, __arguments, generator) => {
33
+ return new Promise((resolve, reject) => {
34
+ var fulfilled = (value) => {
35
+ try {
36
+ step(generator.next(value));
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ };
41
+ var rejected = (value) => {
42
+ try {
43
+ step(generator.throw(value));
44
+ } catch (e) {
45
+ reject(e);
46
+ }
47
+ };
48
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
49
+ step((generator = generator.apply(__this, __arguments)).next());
50
+ });
51
+ };
52
+
53
+ export {
54
+ __spreadValues,
55
+ __spreadProps,
56
+ __objRest,
57
+ __async
58
+ };
59
+ //# sourceMappingURL=chunk-CRTRMMJ7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,18 +1,22 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkVQWKXSHWcjs = require('./chunk-VQWKXSHW.cjs');
3
+ var _chunkV5HTEMWZcjs = require('./chunk-V5HTEMWZ.cjs');
4
4
 
5
5
 
6
6
  var _chunkJU5RT22Ycjs = require('./chunk-JU5RT22Y.cjs');
7
7
 
8
8
 
9
- var _chunkOHJYXA6Rcjs = require('./chunk-OHJYXA6R.cjs');
9
+ var _chunkC4RM2JSDcjs = require('./chunk-C4RM2JSD.cjs');
10
10
 
11
11
 
12
- var _chunkXJWEUCV3cjs = require('./chunk-XJWEUCV3.cjs');
12
+
13
+ var _chunk2NSCPLAAcjs = require('./chunk-2NSCPLAA.cjs');
14
+
15
+
16
+
17
+ var _chunk4DAZAO6Ycjs = require('./chunk-4DAZAO6Y.cjs');
13
18
 
14
19
  // src/Switch/Switch.tsx
15
- var _input = require('@nextui-org/input');
16
20
  var _switch = require('@nextui-org/switch');
17
21
  var _pixelutils = require('@fuf-stack/pixel-utils');
18
22
  var _jsxruntime = require('react/jsx-runtime');
@@ -37,9 +41,9 @@ var Switch = ({
37
41
  name,
38
42
  testId: _testId = void 0
39
43
  }) => {
40
- const { control, debugMode, getFieldState } = _chunkXJWEUCV3cjs.useFormContext.call(void 0, );
44
+ const { control, debugMode, getFieldState } = _chunk2NSCPLAAcjs.useFormContext.call(void 0, );
41
45
  const { error, required, testId, invalid } = getFieldState(name, _testId);
42
- const { label, getInputProps, getErrorMessageProps } = _input.useInput.call(void 0, {
46
+ const { label, getInputProps, getErrorMessageProps } = _chunk2NSCPLAAcjs.useInput.call(void 0, {
43
47
  errorMessage: JSON.stringify(error),
44
48
  isInvalid: invalid,
45
49
  isRequired: required,
@@ -51,7 +55,7 @@ var Switch = ({
51
55
  const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, className, "outerWrapper");
52
56
  const showTestIdCopyButton = debugMode === "debug-testids";
53
57
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
54
- _chunkVQWKXSHWcjs.Controller,
58
+ _chunkV5HTEMWZcjs.Controller_default,
55
59
  {
56
60
  name,
57
61
  control,
@@ -83,10 +87,9 @@ var Switch = ({
83
87
  ),
84
88
  error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: classNames.errorMessage, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
85
89
  "div",
86
- {
87
- ...getErrorMessageProps(),
88
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOHJYXA6Rcjs.FieldValidationError_default, { error })
89
- }
90
+ _chunk4DAZAO6Ycjs.__spreadProps.call(void 0, _chunk4DAZAO6Ycjs.__spreadValues.call(void 0, {}, getErrorMessageProps()), {
91
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC4RM2JSDcjs.FieldValidationError_default, { error })
92
+ })
90
93
  ) })
91
94
  ] })
92
95
  }
@@ -101,4 +104,4 @@ var Switch_default2 = Switch_default;
101
104
 
102
105
 
103
106
  exports.Switch_default = Switch_default; exports.Switch_default2 = Switch_default2;
104
- //# sourceMappingURL=chunk-EKE5URXQ.cjs.map
107
+ //# sourceMappingURL=chunk-F6KTQXWG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-F6KTQXWG.cjs","../src/Switch/Switch.tsx","../src/Switch/index.ts"],"names":["Switch_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-F6KTQXWG.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\n\nimport { Switch as NextSwitch } from '@nextui-org/switch';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { Controller } from '../Controller';\nimport { useFormContext, useInput } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport const switchVariants = tv({\n slots: {\n base: '',\n endContent: '',\n errorMessage: 'ml-1 mt-1',\n // See NextUI styles for group-data condition, e.g.: https://github.com/nextui-org/nextui/blob/main/packages/core/theme/src/components/select.ts\n label:\n 'text-sm text-foreground subpixel-antialiased group-data-[invalid=true]:!text-danger group-data-[required=true]:after:ml-0.5 group-data-[required=true]:after:text-danger group-data-[required=true]:after:content-[\"*\"]',\n outerWrapper: 'place-content-center',\n startContent: '',\n thumb: '',\n thumbIcon: '',\n wrapper: '',\n },\n});\n\ntype VariantProps = TVProps<typeof switchVariants>;\ntype ClassName = TVClassName<typeof switchVariants>;\n\nexport interface SwitchProps extends VariantProps {\n /** CSS class name */\n className?: ClassName;\n /** whether the select should be disabled */\n disabled?: boolean;\n /** component displayed next to the switch. */\n label?: React.ReactNode;\n /** name the field is registered under */\n name: string;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Switch component based on [NextUI Switch](https://nextui.org/docs/components/switch)\n */\nconst Switch = ({\n className = undefined,\n disabled = false,\n label: _label = undefined,\n name,\n testId: _testId = undefined,\n}: SwitchProps) => {\n const { control, debugMode, getFieldState } = useFormContext();\n const { error, required, testId, invalid } = getFieldState(name, _testId);\n\n const { label, getInputProps, getErrorMessageProps } = useInput({\n errorMessage: JSON.stringify(error),\n isInvalid: invalid,\n isRequired: required,\n label: _label,\n labelPlacement: 'outside',\n placeholder: ' ',\n });\n\n const variants = switchVariants();\n const classNames = variantsToClassNames(variants, className, 'outerWrapper');\n\n const showTestIdCopyButton = debugMode === 'debug-testids';\n\n return (\n <Controller\n name={name}\n control={control}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, value, ref, onBlur, onChange },\n }) => (\n <div className={classNames.outerWrapper}>\n <NextSwitch\n aria-describedby={getInputProps()['aria-describedby']}\n classNames={classNames}\n // See NextUI styles for group-data condition (data-invalid), e.g.: https://github.com/nextui-org/nextui/blob/main/packages/components/select/src/use-select.ts\n data-invalid={invalid}\n data-required={required}\n data-testid={testId}\n isDisabled={isDisabled}\n isSelected={!!value}\n name={name}\n onBlur={onBlur}\n onChange={onChange}\n ref={ref}\n required={required}\n value={value}\n >\n {label}\n {showTestIdCopyButton && <FieldCopyTestIdButton testId={testId} />}\n </NextSwitch>\n {error && (\n <div className={classNames.errorMessage}>\n <div\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...getErrorMessageProps()}\n >\n <FieldValidationError error={error} />\n </div>\n </div>\n )}\n </div>\n )}\n />\n );\n};\n\nexport default Switch;\n","import Switch from './Switch';\n\nexport type { SwitchProps } from './Switch';\n\nexport { Switch };\n\nexport default Switch;\n"]}
@@ -1,18 +1,22 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkVQWKXSHWcjs = require('./chunk-VQWKXSHW.cjs');
3
+ var _chunkV5HTEMWZcjs = require('./chunk-V5HTEMWZ.cjs');
4
4
 
5
5
 
6
6
  var _chunkJU5RT22Ycjs = require('./chunk-JU5RT22Y.cjs');
7
7
 
8
8
 
9
- var _chunkOHJYXA6Rcjs = require('./chunk-OHJYXA6R.cjs');
9
+ var _chunkC4RM2JSDcjs = require('./chunk-C4RM2JSD.cjs');
10
10
 
11
11
 
12
- var _chunkXJWEUCV3cjs = require('./chunk-XJWEUCV3.cjs');
12
+ var _chunk2NSCPLAAcjs = require('./chunk-2NSCPLAA.cjs');
13
13
 
14
14
 
15
- var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
15
+ var _chunk4AXNPSXGcjs = require('./chunk-4AXNPSXG.cjs');
16
+
17
+
18
+
19
+ var _chunk4DAZAO6Ycjs = require('./chunk-4DAZAO6Y.cjs');
16
20
 
17
21
  // src/CheckboxGroup/CheckboxGroup.tsx
18
22
 
@@ -43,7 +47,7 @@ var CheckboxGroup = ({
43
47
  name,
44
48
  testId: _testId = void 0
45
49
  }) => {
46
- const { control, debugMode, getFieldState } = _chunkXJWEUCV3cjs.useFormContext.call(void 0, );
50
+ const { control, debugMode, getFieldState } = _chunk2NSCPLAAcjs.useFormContext.call(void 0, );
47
51
  const { error, invalid, required, testId } = getFieldState(name, _testId);
48
52
  const showTestIdCopyButton = debugMode === "debug-testids";
49
53
  const showLabel = label || showTestIdCopyButton;
@@ -61,21 +65,39 @@ var CheckboxGroup = ({
61
65
  label: classNames.label
62
66
  };
63
67
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
64
- _chunkVQWKXSHWcjs.Controller,
68
+ _chunkV5HTEMWZcjs.Controller_default,
65
69
  {
66
70
  control,
67
71
  name,
68
72
  disabled,
69
- render: ({ field: { onChange, value, ref, onBlur } }) => {
73
+ render: ({ field: { onChange, value = [], ref, onBlur } }) => {
74
+ const getCheckboxValue = (inputValue) => {
75
+ if (Array.isArray(inputValue)) {
76
+ return inputValue;
77
+ }
78
+ if (inputValue) {
79
+ return [inputValue];
80
+ }
81
+ return [];
82
+ };
83
+ const singleCheckboxProps = {
84
+ value: getCheckboxValue(value),
85
+ onChange: (newValue) => onChange(newValue && newValue[0])
86
+ };
87
+ const multipleCheckboxProps = {
88
+ onChange,
89
+ value: getCheckboxValue(value)
90
+ };
91
+ const checkboxGroupProps = options.length === 1 ? singleCheckboxProps : multipleCheckboxProps;
70
92
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
71
93
  _checkbox.CheckboxGroup,
72
- {
94
+ _chunk4DAZAO6Ycjs.__spreadProps.call(void 0, _chunk4DAZAO6Ycjs.__spreadValues.call(void 0, {
73
95
  name,
74
96
  classNames: itemGroupClassName,
75
97
  "data-testid": testId,
76
98
  "data-invalid": invalid,
77
99
  errorMessage: error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
78
- _chunkOHJYXA6Rcjs.FieldValidationError_default,
100
+ _chunkC4RM2JSDcjs.FieldValidationError_default,
79
101
  {
80
102
  error,
81
103
  className: classNames.errorMessage
@@ -89,32 +111,26 @@ var CheckboxGroup = ({
89
111
  label,
90
112
  showTestIdCopyButton && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJU5RT22Ycjs.FieldCopyTestIdButton_default, { testId })
91
113
  ] }),
92
- ...options.length === 1 ? {
93
- value: [value].filter((v) => v !== void 0),
94
- onChange: (newValue) => onChange(newValue && newValue[0])
95
- } : {
96
- onChange,
97
- value
98
- },
99
114
  onBlur,
100
- ref,
101
- children: _optionalChain([options, 'optionalAccess', _ => _.map, 'call', _2 => _2((option) => {
115
+ ref
116
+ }, checkboxGroupProps), {
117
+ children: options == null ? void 0 : options.map((option) => {
102
118
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
103
119
  _checkbox.Checkbox,
104
120
  {
105
121
  "data-invalid": invalid,
106
122
  classNames: itemClassName,
107
123
  isDisabled: disabled || option.disabled,
108
- value: _optionalChain([option, 'optionalAccess', _3 => _3.value]),
109
- "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
110
- `${testId}_option_${_optionalChain([option, 'optionalAccess', _4 => _4.testId]) || _optionalChain([option, 'optionalAccess', _5 => _5.value])}`
124
+ value: option == null ? void 0 : option.value,
125
+ "data-testid": _chunk4AXNPSXGcjs.slugify.call(void 0,
126
+ `${testId}_option_${(option == null ? void 0 : option.testId) || (option == null ? void 0 : option.value)}`
111
127
  ),
112
- children: _optionalChain([option, 'optionalAccess', _6 => _6.label])
128
+ children: option == null ? void 0 : option.label
113
129
  },
114
130
  `index_${option.value}`
115
131
  );
116
- })])
117
- }
132
+ })
133
+ })
118
134
  );
119
135
  }
120
136
  }
@@ -129,4 +145,4 @@ var CheckboxGroup_default2 = CheckboxGroup_default;
129
145
 
130
146
 
131
147
  exports.CheckboxGroup_default = CheckboxGroup_default; exports.CheckboxGroup_default2 = CheckboxGroup_default2;
132
- //# sourceMappingURL=chunk-RY4F5YDS.cjs.map
148
+ //# sourceMappingURL=chunk-FLX6VIO7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-FLX6VIO7.cjs","../src/CheckboxGroup/CheckboxGroup.tsx","../src/CheckboxGroup/index.ts"],"names":["CheckboxGroup_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;AClBA;AACE;AACA;AAAiB,gDACZ;AAEP,oDAAyC;AA0IzB,+CAAA;AAlIT,IAAM,sBAAA,EAAwB,4BAAA;AAAG,EACtC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA;AAAA,IACN,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU,EAAA;AAAA,IACV,QAAA,EAAU,EAAA;AAAA,IACV,SAAA,EAAW,SAAA;AAAA,IACX,WAAA,EAAa,EAAA;AAAA;AAAA,IAEb,KAAA,EACE,qFAAA;AAAA,IACF,OAAA,EAAS;AAAA,EACX;AACF,CAAC,CAAA;AAkCD,IAAM,cAAA,EAAgB,CAAC;AAAA,EACrB,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,MAAA,EAAQ,KAAA,CAAA;AAAA,EACR,OAAA;AAAA,EACA,SAAA,EAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,MAAA,EAAQ,QAAA,EAAU,KAAA;AACpB,CAAA,EAAA,GAA0B;AACxB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAW,cAAc,EAAA,EAAI,8CAAA,CAAe;AAC7D,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,OAAO,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,MAAM,qBAAA,EAAuB,UAAA,IAAc,eAAA;AAC3C,EAAA,MAAM,UAAA,EAAY,MAAA,GAAS,oBAAA;AAE3B,EAAA,MAAM,SAAA,EAAW,qBAAA,CAAsB,CAAA;AACvC,EAAA,MAAM,WAAA,EAAa,8CAAA,QAAqB,EAAU,SAAA,EAAW,MAAM,CAAA;AAEnE,EAAA,MAAM,cAAA,EAAgB;AAAA,IACpB,IAAA,EAAM,UAAA,CAAW,QAAA;AAAA,IACjB,OAAA,EAAS,UAAA,CAAW,WAAA;AAAA,IACpB,IAAA,EAAM,UAAA,CAAW,QAAA;AAAA,IACjB,KAAA,EAAO,UAAA,CAAW;AAAA,EACpB,CAAA;AACA,EAAA,MAAM,mBAAA,EAAqB;AAAA,IACzB,IAAA,EAAM,UAAA,CAAW,IAAA;AAAA,IACjB,OAAA,EAAS,UAAA,CAAW,OAAA;AAAA,IACpB,KAAA,EAAO,UAAA,CAAW;AAAA,EACpB,CAAA;AAEA,EAAA,uBACE,6BAAA;AAAA,IAAC,oCAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,MAAA,EAAQ,CAAC,CAAA,EAAG,GAAA,EAAK,OAAO,EAAE,CAAA,EAAA,GAAM;AAiB5D,QAAA,MAAM,iBAAA,EAAmB,CAAC,UAAA,EAAA,GAAkC;AAC1D,UAAA,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC7B,YAAA,OAAO,UAAA;AAAA,UACT;AACA,UAAA,GAAA,CAAI,UAAA,EAAY;AACd,YAAA,OAAO,CAAC,UAAoB,CAAA;AAAA,UAC9B;AACA,UAAA,OAAO,CAAC,CAAA;AAAA,QACV,CAAA;AAEA,QAAA,MAAM,oBAAA,EAAsB;AAAA,UAC1B,KAAA,EAAO,gBAAA,CAAiB,KAAK,CAAA;AAAA,UAC7B,QAAA,EAAU,CAAC,QAAA,EAAA,GAAuB,QAAA,CAAS,SAAA,GAAY,QAAA,CAAS,CAAC,CAAC;AAAA,QACpE,CAAA;AAEA,QAAA,MAAM,sBAAA,EAAwB;AAAA,UAC5B,QAAA;AAAA,UACA,KAAA,EAAO,gBAAA,CAAiB,KAAK;AAAA,QAC/B,CAAA;AAEA,QAAA,MAAM,mBAAA,EACJ,OAAA,CAAQ,OAAA,IAAW,EAAA,EAAI,oBAAA,EAAsB,qBAAA;AAE/C,QAAA,uBACE,6BAAA;AAAA,UAAC,uBAAA;AAAA,UAAA,6CAAA,8CAAA;AAAA,YACC,IAAA;AAAA,YACA,UAAA,EAAY,kBAAA;AAAA,YACZ,aAAA,EAAa,MAAA;AAAA,YAEb,cAAA,EAAc,OAAA;AAAA,YACd,YAAA,EACE,MAAA,mBACE,6BAAA;AAAA,cAAC,8CAAA;AAAA,cAAA;AAAA,gBACC,KAAA;AAAA,gBACA,SAAA,EAAW,UAAA,CAAW;AAAA,cAAA;AAAA,YACxB,CAAA;AAAA,YAGJ,UAAA,EAAY,QAAA;AAAA,YACZ,SAAA,EAAW,OAAA;AAAA,YACX,UAAA,EAAY,QAAA;AAAA,YACZ,KAAA,EACE,UAAA;AAAA,4BAEE,8BAAA,OAAC,EAAA,EACE,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cACA,qBAAA,mBACC,6BAAA,+CAAC,EAAA,EAAsB,OAAA,CAAgB;AAAA,YAAA,EAAA,CAE3C,CAAA;AAAA,YAGJ,MAAA;AAAA,YACA;AAAA,UAAA,CAAA,EAEI,kBAAA,CAAA,EA/BL;AAAA,YAiCE,QAAA,EAAA,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,GAAA,CAAI,CAAC,MAAA,EAAA,GAAW;AACxB,cAAA,uBACE,6BAAA;AAAA,gBAAC,kBAAA;AAAA,gBAAA;AAAA,kBACC,cAAA,EAAc,OAAA;AAAA,kBACd,UAAA,EAAY,aAAA;AAAA,kBAEZ,UAAA,EAAY,SAAA,GAAY,MAAA,CAAO,QAAA;AAAA,kBAC/B,KAAA,EAAO,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,KAAA;AAAA,kBACf,aAAA,EAAa,uCAAA;AAAA,oBACX,CAAA,EAAA;AACF,kBAAA;AAEC,kBAAA;AAAQ,gBAAA;AAPJ,gBAAA;AAQP,cAAA;AAEJ,YAAA;AAAA,UAAA;AACF,QAAA;AAEJ,MAAA;AAAA,IAAA;AACF,EAAA;AAEJ;AAEO;ADtDc;AACA;AEtIdA;AFwIc;AACA;AACA;AACA;AACA","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-FLX6VIO7.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\n\nimport {\n Checkbox,\n CheckboxGroup as NextCheckboxGroup,\n} from '@nextui-org/checkbox';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { Controller } from '../Controller';\nimport { slugify } from '../helpers';\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport const checkboxGroupVariants = tv({\n slots: {\n base: 'group', // Needs group for group-data condition\n errorMessage: 'text-tiny',\n itemBase: '',\n itemIcon: '',\n itemLabel: 'text-sm',\n itemWrapper: '',\n // See NextUI styles for group-data condition, e.g.: https://github.com/nextui-org/nextui/blob/main/packages/core/theme/src/components/select.ts\n label:\n 'text-sm text-foreground subpixel-antialiased group-data-[invalid=true]:!text-danger',\n wrapper: '',\n },\n});\n\ntype VariantProps = TVProps<typeof checkboxGroupVariants>;\ntype ClassName = TVClassName<typeof checkboxGroupVariants>;\n\nexport type CheckboxGroupOption = {\n /** option label */\n label?: React.ReactNode;\n /** option value */\n value: string;\n /** disables the option */\n disabled?: boolean;\n /** HTML data-testid attribute of the option */\n testId?: string;\n};\n\nexport interface CheckboxGroupProps extends VariantProps {\n /** CSS class name. ClassName: string | { buttons?: string | { base?: string; active?: string }; base?: string;} */\n className?: ClassName;\n /** label displayed above the Checkboxes */\n label?: React.ReactNode;\n /** Name the Field is registered on the form. */\n name: string;\n /** Checkboxes that should be displayed. */\n options: CheckboxGroupOption[];\n /** sets all buttons disabled */\n disabled?: boolean;\n /** id for internal testing. */\n testId?: string;\n}\n\n/**\n * CheckboxGroup component based on [NextUI CheckboxGroup](https://nextui.org/docs/components/checkbox-group)\n */\nconst CheckboxGroup = ({\n className = undefined,\n label = undefined,\n options,\n disabled = false,\n name,\n testId: _testId = undefined,\n}: CheckboxGroupProps) => {\n const { control, debugMode, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n const showTestIdCopyButton = debugMode === 'debug-testids';\n const showLabel = label || showTestIdCopyButton;\n\n const variants = checkboxGroupVariants();\n const classNames = variantsToClassNames(variants, className, 'base');\n\n const itemClassName = {\n base: classNames.itemBase,\n wrapper: classNames.itemWrapper,\n icon: classNames.itemIcon,\n label: classNames.itemLabel,\n };\n const itemGroupClassName = {\n base: classNames.base,\n wrapper: classNames.wrapper,\n label: classNames.label,\n };\n\n return (\n <Controller\n control={control}\n name={name}\n disabled={disabled}\n render={({ field: { onChange, value = [], ref, onBlur } }) => {\n /**\n * Handles the checkbox group value changes based on the number of options:\n * 1. For single checkbox (options.length === 1):\n * - Converts undefined/empty array to [] for consistent controlled behavior\n * - Extracts single value from array for onChange\n *\n * Example: undefined → []\n * [value] → value\n *\n * 2. For multiple checkboxes:\n * - Uses raw value array with fallback to empty array\n * - Passes through onChange directly\n *\n * Example: undefined → []\n * ['value1', 'value2'] → ['value1', 'value2']\n */\n const getCheckboxValue = (inputValue: unknown): string[] => {\n if (Array.isArray(inputValue)) {\n return inputValue;\n }\n if (inputValue) {\n return [inputValue as string];\n }\n return [];\n };\n\n const singleCheckboxProps = {\n value: getCheckboxValue(value),\n onChange: (newValue: string[]) => onChange(newValue && newValue[0]),\n };\n\n const multipleCheckboxProps = {\n onChange,\n value: getCheckboxValue(value),\n };\n\n const checkboxGroupProps =\n options.length === 1 ? singleCheckboxProps : multipleCheckboxProps;\n\n return (\n <NextCheckboxGroup\n name={name}\n classNames={itemGroupClassName}\n data-testid={testId}\n // See NextUI styles for group-data condition (data-invalid), e.g.: https://github.com/nextui-org/nextui/blob/main/packages/components/select/src/use-select.ts\n data-invalid={invalid}\n errorMessage={\n error && (\n <FieldValidationError\n error={error}\n className={classNames.errorMessage}\n />\n )\n }\n isDisabled={disabled}\n isInvalid={invalid}\n isRequired={required}\n label={\n showLabel && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label>\n {label}\n {showTestIdCopyButton && (\n <FieldCopyTestIdButton testId={testId} />\n )}\n </label>\n )\n }\n onBlur={onBlur}\n ref={ref}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...checkboxGroupProps}\n >\n {options?.map((option) => {\n return (\n <Checkbox\n data-invalid={invalid}\n classNames={itemClassName}\n key={`index_${option.value}`}\n isDisabled={disabled || option.disabled}\n value={option?.value}\n data-testid={slugify(\n `${testId}_option_${option?.testId || option?.value}`,\n )}\n >\n {option?.label}\n </Checkbox>\n );\n })}\n </NextCheckboxGroup>\n );\n }}\n />\n );\n};\n\nexport default CheckboxGroup;\n","import CheckboxGroup from './CheckboxGroup';\n\nexport type { CheckboxGroupProps, CheckboxGroupOption } from './CheckboxGroup';\n\nexport { CheckboxGroup };\n\nexport default CheckboxGroup;\n"]}
@@ -0,0 +1,82 @@
1
+ import {
2
+ __spreadProps,
3
+ __spreadValues
4
+ } from "./chunk-CRTRMMJ7.js";
5
+
6
+ // src/helpers/nullishFields/nullishFields.ts
7
+ var nullString = "__NULL__";
8
+ var falseString = "__FALSE__";
9
+ var zeroString = "__ZERO__";
10
+ var fromNullishString = (value) => {
11
+ if (typeof value !== "string") return value;
12
+ switch (value) {
13
+ case nullString:
14
+ return null;
15
+ case falseString:
16
+ return false;
17
+ case zeroString:
18
+ return 0;
19
+ default:
20
+ return value;
21
+ }
22
+ };
23
+ var toNullishString = (value) => {
24
+ if (value === null || value === "") return nullString;
25
+ if (value === false) return falseString;
26
+ if (value === 0) return zeroString;
27
+ return value;
28
+ };
29
+ var toFormFormat = (fields) => {
30
+ return JSON.parse(
31
+ JSON.stringify(fields, (_, value) => {
32
+ if (Array.isArray(value)) {
33
+ return value.map(toNullishString);
34
+ }
35
+ if (value && typeof value === "object") {
36
+ return Object.fromEntries(
37
+ Object.entries(value).filter(([_key, v]) => v !== "" && v !== null)
38
+ );
39
+ }
40
+ return value;
41
+ })
42
+ );
43
+ };
44
+ var toValidationFormat = (formState) => {
45
+ return JSON.parse(
46
+ JSON.stringify(formState, (_, value) => {
47
+ if (Array.isArray(value)) {
48
+ return value.map(fromNullishString);
49
+ }
50
+ if (value && typeof value === "object") {
51
+ return Object.fromEntries(
52
+ Object.entries(value).filter(
53
+ ([_key, v]) => fromNullishString(v) !== "" && fromNullishString(v) !== null
54
+ ).map(([k, v]) => [k, fromNullishString(v)])
55
+ );
56
+ }
57
+ return value;
58
+ })
59
+ );
60
+ };
61
+
62
+ // src/helpers/slugify/slugify.ts
63
+ import slug from "slug";
64
+ var slugify = (string, options) => {
65
+ const replacement = (options == null ? void 0 : options.replacement) || "_";
66
+ return slug(string, __spreadValues(__spreadProps(__spreadValues({}, slug.defaults.modes.rfc3986), {
67
+ charmap: __spreadValues(__spreadProps(__spreadValues({}, slug.defaults.modes.rfc3986.charmap), {
68
+ // allow dots by default
69
+ ".": "."
70
+ }), replacement !== "-" ? { "-": "_" } : {}),
71
+ replacement
72
+ }), options || {}));
73
+ };
74
+
75
+ export {
76
+ fromNullishString,
77
+ toNullishString,
78
+ toFormFormat,
79
+ toValidationFormat,
80
+ slugify
81
+ };
82
+ //# sourceMappingURL=chunk-IEF2GJ22.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/helpers/nullishFields/nullishFields.ts","../src/helpers/slugify/slugify.ts"],"sourcesContent":["/**\n * String markers used to preserve null, false, and 0 values during JSON processing\n */\nconst nullString = '__NULL__';\nconst falseString = '__FALSE__';\nconst zeroString = '__ZERO__';\n\n/**\n * Converts marker strings back to their original values when processing arrays\n */\nexport const fromNullishString = (value: unknown): unknown => {\n if (typeof value !== 'string') return value;\n\n switch (value) {\n case nullString:\n return null;\n case falseString:\n return false;\n case zeroString:\n return 0;\n default:\n return value;\n }\n};\n\n/**\n * Converts null/falsy values to marker strings for JSON processing\n */\nexport const toNullishString = (value: unknown): unknown => {\n if (value === null || value === '') return nullString;\n if (value === false) return falseString;\n if (value === 0) return zeroString;\n return value;\n};\n\n/**\n * Converts field values to a format suitable for forms by:\n * - Converting array values to their string markers to preserve null/falsy values\n * - Removing empty strings and null values from objects\n *\n * This conversion is required because React Hook Form does not support arrays with\n * flat values (string, number, boolean, null). Array fields must contain objects.\n * We work around this by converting array values to string markers.\n *\n * @example\n * const fields = {\n * name: 'John',\n * scores: [0, null, 75, false],\n * contact: {\n * email: '',\n * phone: null,\n * address: '123 Main St'\n * }\n * };\n *\n * // Result:\n * {\n * name: 'John',\n * scores: ['__ZERO__', '__NULL__', 75, '__FALSE__'],\n * contact: {\n * address: '123 Main St'\n * }\n * }\n */\nexport const toFormFormat = (\n fields: Record<string, unknown>,\n): Record<string, unknown> => {\n return JSON.parse(\n JSON.stringify(fields, (_, value) => {\n if (Array.isArray(value)) {\n return value.map(toNullishString);\n }\n\n if (value && typeof value === 'object') {\n return Object.fromEntries(\n Object.entries(value).filter(([_key, v]) => v !== '' && v !== null),\n );\n }\n\n return value;\n }),\n );\n};\n\n/**\n * Converts form state to a format suitable for validation by:\n * - Converting array string markers (__NULL__, __FALSE__, __ZERO__) back to their original values\n * - Converting _NULL__ to null\n * - Removing fields that contain empty strings, null, or any string markers representing null/empty values\n *\n * @example\n * const formState = {\n * name: 'John',\n * scores: [75, '__ZERO__', '_NULL__', '__FALSE__'],\n * email: null,\n * phone: '__NULL__',\n * contact: {\n * address: '123 Main St',\n * fax: null\n * }\n * };\n *\n * // Result:\n * {\n * name: 'John',\n * scores: [75, 0, null, false],\n * contact: {\n * address: '123 Main St'\n * }\n * }\n */\nexport const toValidationFormat = (\n formState: Record<string, unknown>,\n): Record<string, unknown> => {\n return JSON.parse(\n JSON.stringify(formState, (_, value) => {\n if (Array.isArray(value)) {\n return value.map(fromNullishString);\n }\n\n if (value && typeof value === 'object') {\n return Object.fromEntries(\n Object.entries(value)\n .filter(\n ([_key, v]) =>\n fromNullishString(v) !== '' && fromNullishString(v) !== null,\n )\n .map(([k, v]) => [k, fromNullishString(v)]),\n );\n }\n\n return value;\n }),\n );\n};\n","/* eslint-disable import/prefer-default-export */\n\nimport type { Options as SlugOptions } from 'slug';\n\nimport slug from 'slug';\n\nexport const slugify = (string: string, options?: SlugOptions) => {\n const replacement = options?.replacement || '_';\n return slug(string, {\n ...slug.defaults.modes.rfc3986,\n charmap: {\n ...slug.defaults.modes.rfc3986.charmap,\n // allow dots by default\n '.': '.',\n // convert hyphens to underscores (when replacement is not hyphen)\n ...(replacement !== '-' ? { '-': '_' } : {}),\n },\n replacement,\n ...(options || {}),\n });\n};\n"],"mappings":";;;;;;AAGA,IAAM,aAAa;AACnB,IAAM,cAAc;AACpB,IAAM,aAAa;AAKZ,IAAM,oBAAoB,CAAC,UAA4B;AAC5D,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAKO,IAAM,kBAAkB,CAAC,UAA4B;AAC1D,MAAI,UAAU,QAAQ,UAAU,GAAI,QAAO;AAC3C,MAAI,UAAU,MAAO,QAAO;AAC5B,MAAI,UAAU,EAAG,QAAO;AACxB,SAAO;AACT;AA+BO,IAAM,eAAe,CAC1B,WAC4B;AAC5B,SAAO,KAAK;AAAA,IACV,KAAK,UAAU,QAAQ,CAAC,GAAG,UAAU;AACnC,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAO,MAAM,IAAI,eAAe;AAAA,MAClC;AAEA,UAAI,SAAS,OAAO,UAAU,UAAU;AACtC,eAAO,OAAO;AAAA,UACZ,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,QACpE;AAAA,MACF;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AA6BO,IAAM,qBAAqB,CAChC,cAC4B;AAC5B,SAAO,KAAK;AAAA,IACV,KAAK,UAAU,WAAW,CAAC,GAAG,UAAU;AACtC,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAO,MAAM,IAAI,iBAAiB;AAAA,MACpC;AAEA,UAAI,SAAS,OAAO,UAAU,UAAU;AACtC,eAAO,OAAO;AAAA,UACZ,OAAO,QAAQ,KAAK,EACjB;AAAA,YACC,CAAC,CAAC,MAAM,CAAC,MACP,kBAAkB,CAAC,MAAM,MAAM,kBAAkB,CAAC,MAAM;AAAA,UAC5D,EACC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;AAAA,QAC9C;AAAA,MACF;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;;;AClIA,OAAO,UAAU;AAEV,IAAM,UAAU,CAAC,QAAgB,YAA0B;AAChE,QAAM,eAAc,mCAAS,gBAAe;AAC5C,SAAO,KAAK,QAAQ,gDACf,KAAK,SAAS,MAAM,UADL;AAAA,IAElB,SAAS,gDACJ,KAAK,SAAS,MAAM,QAAQ,UADxB;AAAA;AAAA,MAGP,KAAK;AAAA,QAED,gBAAgB,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAAA,IAE5C;AAAA,MACI,WAAW,CAAC,EACjB;AACH;","names":[]}