@fuf-stack/uniform 0.4.0 → 0.6.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 (114) hide show
  1. package/dist/FieldArray/index.cjs +13 -0
  2. package/dist/FieldArray/index.cjs.map +1 -0
  3. package/dist/FieldArray/index.d.cts +8 -0
  4. package/dist/FieldArray/index.d.ts +8 -0
  5. package/dist/FieldArray/index.js +13 -0
  6. package/dist/FieldArray/index.js.map +1 -0
  7. package/dist/FieldArray-DUvn98Fe.d.cts +27 -0
  8. package/dist/FieldArray-DUvn98Fe.d.ts +27 -0
  9. package/dist/Form/index.cjs +2 -2
  10. package/dist/Form/index.cjs.map +1 -1
  11. package/dist/Form/index.d.cts +2 -2
  12. package/dist/Form/index.d.ts +2 -2
  13. package/dist/Form/index.js +1 -1
  14. package/dist/{Form-Bv0R3QNk.d.cts → Form-nJbG1hNH.d.cts} +1 -1
  15. package/dist/{Form-Bv0R3QNk.d.ts → Form-nJbG1hNH.d.ts} +1 -1
  16. package/dist/Grid/index.cjs.map +1 -1
  17. package/dist/Input/index.cjs +3 -3
  18. package/dist/Input/index.cjs.map +1 -1
  19. package/dist/Input/index.js +2 -2
  20. package/dist/RadioGroup/index.cjs +13 -0
  21. package/dist/RadioGroup/index.cjs.map +1 -0
  22. package/dist/RadioGroup/index.d.cts +7 -0
  23. package/dist/RadioGroup/index.d.ts +7 -0
  24. package/dist/RadioGroup/index.js +13 -0
  25. package/dist/RadioGroup/index.js.map +1 -0
  26. package/dist/RadioGroup-BU4K9cnS.d.cts +40 -0
  27. package/dist/RadioGroup-BU4K9cnS.d.ts +40 -0
  28. package/dist/Select/index.cjs +13 -0
  29. package/dist/Select/index.cjs.map +1 -0
  30. package/dist/Select/index.d.cts +8 -0
  31. package/dist/Select/index.d.ts +8 -0
  32. package/dist/Select/index.js +13 -0
  33. package/dist/Select/index.js.map +1 -0
  34. package/dist/Select-Mp6Y00dT.d.cts +40 -0
  35. package/dist/Select-Mp6Y00dT.d.ts +40 -0
  36. package/dist/SubmitButton/index.cjs +2 -2
  37. package/dist/SubmitButton/index.cjs.map +1 -1
  38. package/dist/SubmitButton/index.js +1 -1
  39. package/dist/Switch/index.cjs +13 -0
  40. package/dist/Switch/index.cjs.map +1 -0
  41. package/dist/Switch/index.d.cts +7 -0
  42. package/dist/Switch/index.d.ts +7 -0
  43. package/dist/Switch/index.js +13 -0
  44. package/dist/Switch/index.js.map +1 -0
  45. package/dist/Switch-DmjDKgKs.d.cts +20 -0
  46. package/dist/Switch-DmjDKgKs.d.ts +20 -0
  47. package/dist/TextArea/index.cjs +13 -0
  48. package/dist/TextArea/index.cjs.map +1 -0
  49. package/dist/TextArea/index.d.cts +8 -0
  50. package/dist/TextArea/index.d.ts +8 -0
  51. package/dist/TextArea/index.js +13 -0
  52. package/dist/TextArea/index.js.map +1 -0
  53. package/dist/TextArea-B-sKvTkd.d.cts +25 -0
  54. package/dist/TextArea-B-sKvTkd.d.ts +25 -0
  55. package/dist/chunk-3K4JQTPQ.js +205 -0
  56. package/dist/chunk-3K4JQTPQ.js.map +1 -0
  57. package/dist/chunk-3SSUEUB5.js +81 -0
  58. package/dist/chunk-3SSUEUB5.js.map +1 -0
  59. package/dist/chunk-53AGVLUG.cjs +287 -0
  60. package/dist/chunk-53AGVLUG.cjs.map +1 -0
  61. package/dist/chunk-57OFVPRD.js +287 -0
  62. package/dist/chunk-57OFVPRD.js.map +1 -0
  63. package/dist/chunk-6GN255GP.cjs.map +1 -1
  64. package/dist/chunk-BBB4FEY6.cjs.map +1 -1
  65. package/dist/{chunk-OYXZQOGU.js → chunk-BGSQU5EH.js} +4 -4
  66. package/dist/{chunk-2CKPLOCK.cjs → chunk-FASB7HG3.cjs} +5 -5
  67. package/dist/chunk-FASB7HG3.cjs.map +1 -0
  68. package/dist/{chunk-BNTEIMNY.cjs → chunk-JFCOC5TW.cjs} +32 -25
  69. package/dist/chunk-JFCOC5TW.cjs.map +1 -0
  70. package/dist/chunk-JR7MAHBR.cjs +81 -0
  71. package/dist/chunk-JR7MAHBR.cjs.map +1 -0
  72. package/dist/chunk-KC3PZFGE.js +76 -0
  73. package/dist/chunk-KC3PZFGE.js.map +1 -0
  74. package/dist/{chunk-HT3LKDHX.cjs → chunk-KMMS4G7A.cjs} +4 -2
  75. package/dist/chunk-KMMS4G7A.cjs.map +1 -0
  76. package/dist/chunk-OSEU4ZUE.cjs +205 -0
  77. package/dist/chunk-OSEU4ZUE.cjs.map +1 -0
  78. package/dist/{chunk-5FMJUJ7H.js → chunk-QD6IQL6U.js} +3 -3
  79. package/dist/{chunk-5FMJUJ7H.js.map → chunk-QD6IQL6U.js.map} +1 -1
  80. package/dist/chunk-QTL5FREE.cjs.map +1 -1
  81. package/dist/{chunk-OV5RMSYD.js → chunk-T3CCNJHK.js} +4 -2
  82. package/dist/chunk-T3CCNJHK.js.map +1 -0
  83. package/dist/chunk-WNESYY6E.cjs +239 -0
  84. package/dist/chunk-WNESYY6E.cjs.map +1 -0
  85. package/dist/chunk-WQRM7G4C.cjs.map +1 -1
  86. package/dist/chunk-WRYE2CF5.cjs +76 -0
  87. package/dist/chunk-WRYE2CF5.cjs.map +1 -0
  88. package/dist/{chunk-AGAYQTFD.cjs → chunk-XJ3JTLXZ.cjs} +3 -3
  89. package/dist/chunk-XJ3JTLXZ.cjs.map +1 -0
  90. package/dist/{chunk-KFRKKWZT.js → chunk-Y4CFVCUN.js} +32 -25
  91. package/dist/chunk-Y4CFVCUN.js.map +1 -0
  92. package/dist/chunk-YAVU7ZYD.js +239 -0
  93. package/dist/chunk-YAVU7ZYD.js.map +1 -0
  94. package/dist/helpers/index.cjs.map +1 -1
  95. package/dist/hooks/index.cjs.map +1 -1
  96. package/dist/hooks/index.d.cts +1 -1
  97. package/dist/hooks/index.d.ts +1 -1
  98. package/dist/index.cjs +25 -5
  99. package/dist/index.cjs.map +1 -1
  100. package/dist/index.d.cts +8 -2
  101. package/dist/index.d.ts +8 -2
  102. package/dist/index.js +26 -6
  103. package/dist/partials/FieldCopyTestIdButton/index.cjs +2 -2
  104. package/dist/partials/FieldCopyTestIdButton/index.cjs.map +1 -1
  105. package/dist/partials/FieldCopyTestIdButton/index.js +1 -1
  106. package/dist/partials/FieldValidationError/index.cjs.map +1 -1
  107. package/package.json +44 -19
  108. package/dist/chunk-2CKPLOCK.cjs.map +0 -1
  109. package/dist/chunk-AGAYQTFD.cjs.map +0 -1
  110. package/dist/chunk-BNTEIMNY.cjs.map +0 -1
  111. package/dist/chunk-HT3LKDHX.cjs.map +0 -1
  112. package/dist/chunk-KFRKKWZT.js.map +0 -1
  113. package/dist/chunk-OV5RMSYD.js.map +0 -1
  114. /package/dist/{chunk-OYXZQOGU.js.map → chunk-BGSQU5EH.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Grid/Grid.tsx","../src/Grid/index.ts"],"names":["Grid_default"],"mappings":";AAEA,SAAS,UAAU;AAoBf;AANJ,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AACX,MAAiB;AACf,SACE,oBAAC,SAAI,WAAW,GAAG,cAAc,SAAS,GAAG,eAAa,QACvD,UACH;AAEJ;AAEA,IAAO,eAAQ;;;ACtBf,IAAOA,gBAAQ","sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nexport interface GridProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Defines the default grid for form components\n */\nconst Grid = ({\n children = null,\n className = undefined,\n testId = undefined,\n}: GridProps) => {\n return (\n <div className={cn('grid gap-6', className)} data-testid={testId}>\n {children}\n </div>\n );\n};\n\nexport default Grid;\n","import Grid from './Grid';\n\nexport type { GridProps } from './Grid';\n\nexport { Grid };\n\nexport default Grid;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-6GN255GP.cjs","../src/Grid/Grid.tsx","../src/Grid/index.ts"],"names":["Grid_default"],"mappings":"AAAA;ACEA,oDAAmB;AAoBf,+CAAA;AANJ,IAAM,KAAA,EAAO,CAAC;AAAA,EACZ,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,OAAA,EAAS,KAAA;AACX,CAAA,EAAA,GAAiB;AACf,EAAA,uBACE,6BAAA,KAAC,EAAA,EAAI,SAAA,EAAW,4BAAA,YAAG,EAAc,SAAS,CAAA,EAAG,aAAA,EAAa,MAAA,EACvD,SAAA,CACH,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,EAAQ,IAAA;ADjBf;AACA;AENA,IAAOA,cAAAA,EAAQ,YAAA;AFQf;AACA;AACE;AACA;AACF,2EAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-6GN255GP.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nexport interface GridProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Defines the default grid for form components\n */\nconst Grid = ({\n children = null,\n className = undefined,\n testId = undefined,\n}: GridProps) => {\n return (\n <div className={cn('grid gap-6', className)} data-testid={testId}>\n {children}\n </div>\n );\n};\n\nexport default Grid;\n","import Grid from './Grid';\n\nexport type { GridProps } from './Grid';\n\nexport { Grid };\n\nexport default Grid;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helpers/slugify/slugify.ts"],"names":[],"mappings":";AAIA,OAAO,UAAU;AAEV,IAAM,UAAU,CAAC,QAAgB,YAA0B;AAChE,QAAM,cAAc,SAAS,eAAe;AAC5C,SAAO,KAAK,QAAQ;AAAA,IAClB,GAAG,KAAK,SAAS,MAAM;AAAA,IACvB,SAAS;AAAA,MACP,GAAG,KAAK,SAAS,MAAM,QAAQ;AAAA;AAAA,MAE/B,KAAK;AAAA;AAAA,MAEL,GAAI,gBAAgB,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAAA,IAC5C;AAAA,IACA;AAAA,IACA,GAAI,WAAW,CAAC;AAAA,EAClB,CAAC;AACH","sourcesContent":["/* 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"]}
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-BBB4FEY6.cjs","../src/helpers/slugify/slugify.ts"],"names":[],"mappings":"AAAA;ACIA,wEAAiB;AAEV,IAAM,QAAA,EAAU,CAAC,MAAA,EAAgB,OAAA,EAAA,GAA0B;AAChE,EAAA,MAAM,YAAA,kBAAc,OAAA,2BAAS,cAAA,GAAe,GAAA;AAC5C,EAAA,OAAO,4BAAA,MAAK,EAAQ;AAAA,IAClB,GAAG,cAAA,CAAK,QAAA,CAAS,KAAA,CAAM,OAAA;AAAA,IACvB,OAAA,EAAS;AAAA,MACP,GAAG,cAAA,CAAK,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,OAAA;AAAA;AAAA,MAE/B,GAAA,EAAK,GAAA;AAAA;AAAA,MAEL,GAAI,YAAA,IAAgB,IAAA,EAAM,EAAE,GAAA,EAAK,IAAI,EAAA,EAAI,CAAC;AAAA,IAC5C,CAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAI,QAAA,GAAW,CAAC;AAAA,EAClB,CAAC,CAAA;AACH,CAAA;ADHA;AACA;AACE;AACF,0BAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-BBB4FEY6.cjs","sourcesContent":[null,"/* 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"]}
@@ -1,12 +1,12 @@
1
+ import {
2
+ FieldCopyTestIdButton_default
3
+ } from "./chunk-T3CCNJHK.js";
1
4
  import {
2
5
  FieldValidationError_default
3
6
  } from "./chunk-DBLODROX.js";
4
7
  import {
5
8
  useFormContext
6
9
  } from "./chunk-BCMPSLSG.js";
7
- import {
8
- FieldCopyTestIdButton_default
9
- } from "./chunk-OV5RMSYD.js";
10
10
 
11
11
  // src/Input/Input.tsx
12
12
  import { Controller } from "react-hook-form";
@@ -78,4 +78,4 @@ export {
78
78
  Input_default,
79
79
  Input_default2
80
80
  };
81
- //# sourceMappingURL=chunk-OYXZQOGU.js.map
81
+ //# sourceMappingURL=chunk-BGSQU5EH.js.map
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
3
+ var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
4
4
 
5
5
 
6
- var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
7
 
8
8
 
9
- var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
9
+ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
10
10
 
11
11
  // src/Input/Input.tsx
12
12
  var _reacthookform = require('react-hook-form');
@@ -50,7 +50,7 @@ var Input = ({
50
50
  isRequired: required,
51
51
  label: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
52
52
  label,
53
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHT3LKDHXcjs.FieldCopyTestIdButton_default, { testId })
53
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKMMS4G7Acjs.FieldCopyTestIdButton_default, { testId })
54
54
  ] }),
55
55
  labelPlacement: "outside",
56
56
  name,
@@ -78,4 +78,4 @@ var Input_default2 = Input_default;
78
78
 
79
79
 
80
80
  exports.Input_default = Input_default; exports.Input_default2 = Input_default2;
81
- //# sourceMappingURL=chunk-2CKPLOCK.cjs.map
81
+ //# sourceMappingURL=chunk-FASB7HG3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-FASB7HG3.cjs","../src/Input/Input.tsx","../src/Input/index.ts"],"names":["Input_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACRA,gDAA2B;AAE3B,0CAAmC;AAEnC,oDAAmB;AA4DgB,+CAAA;AA9BnC,IAAM,MAAA,EAAQ,CAAC;AAAA,EACb,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,WAAA,EAAa,KAAA,CAAA;AAAA,EACb,MAAA,EAAQ,KAAA,CAAA;AAAA,EACR,IAAA;AAAA,EACA,YAAA,EAAc,GAAA;AAAA,EACd,aAAA,EAAe,KAAA,CAAA;AAAA,EACf,MAAA,EAAQ,QAAA,EAAU,KAAA,CAAA;AAAA,EAClB,KAAA,EAAO,KAAA;AACT,CAAA,EAAA,GAAkB;AAChB,EAAA,MAAM,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,8CAAA,CAAe;AAClD,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,OAAO,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,IAAI;AAAA,MAC9D,CAAA,EAAA,GAAM;AACJ,QAAA,uBACE,6BAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,4BAAA,SAAY,CAAA;AAAA,YACvB,UAAA,EAAY;AAAA,cACV,YAAA,EAAc;AAAA,YAChB,CAAA;AAAA,YACA,aAAA,EAAa,MAAA;AAAA,YACb,UAAA;AAAA,YACA,YAAA,EAAc,MAAA,mBAAS,6BAAA,8CAAC,EAAA,EAAqB,MAAA,CAAc,CAAA;AAAA,YAC3D,UAAA;AAAA,YACA,SAAA,EAAW,OAAA;AAAA,YACX,UAAA,EAAY,QAAA;AAAA,YACZ,KAAA,kBACE,8BAAA,oBAAA,EAAA,EACG,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,8BACD,6BAAA,+CAAC,EAAA,EAAsB,OAAA,CAAgB;AAAA,YAAA,EAAA,CACzC,CAAA;AAAA,YAEF,cAAA,EAAe,SAAA;AAAA,YACf,IAAA;AAAA,YACA,MAAA;AAAA,YACA,QAAA;AAAA,YACA,WAAA;AAAA,YACA,MAAA,EAAO,IAAA;AAAA,YACP,GAAA;AAAA,YACA,YAAA;AAAA,YACA,IAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA,EAAQ;AAAA,UAAA;AAAA,QACV,CAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,EAAQ,KAAA;ADtBf;AACA;AEnEA,IAAOA,eAAAA,EAAQ,aAAA;AFqEf;AACA;AACE;AACA;AACF,+EAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-FASB7HG3.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { Controller } from 'react-hook-form';\n\nimport { Input as NextInput } from '@nextui-org/input';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface InputProps {\n /** CSS class name */\n className?: string;\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 /** form field placeholder */\n placeholder?: string;\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 /** input type */\n type?: 'number' | 'password';\n}\n\n/**\n * Input component based on [NextUI Input](https://nextui.org/docs/components/input)\n */\nconst Input = ({\n className = undefined,\n disabled = false,\n endContent = undefined,\n label = undefined,\n name,\n placeholder = ' ',\n startContent = undefined,\n testId: _testId = undefined,\n type = undefined,\n}: InputProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n return (\n <Controller\n control={control}\n disabled={disabled}\n name={name}\n render={({\n field: { disabled: isDisabled, onChange, onBlur, value, ref },\n }) => {\n return (\n <NextInput\n className={cn(className)}\n classNames={{\n inputWrapper: 'group-data-[focus=true]:border-primary',\n }}\n data-testid={testId}\n endContent={endContent}\n errorMessage={error && <FieldValidationError error={error} />}\n isDisabled={isDisabled}\n isInvalid={invalid}\n isRequired={required}\n label={\n <>\n {label}\n <FieldCopyTestIdButton testId={testId} />\n </>\n }\n labelPlacement=\"outside\"\n name={name}\n onBlur={onBlur}\n onChange={onChange}\n placeholder={placeholder}\n radius=\"sm\"\n ref={ref}\n startContent={startContent}\n type={type}\n value={value}\n variant=\"bordered\"\n />\n );\n }}\n />\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"]}
@@ -7,18 +7,18 @@ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
7
7
  var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
8
8
 
9
9
  // src/Form/Form.tsx
10
- var _react = require('react');
11
10
  var _reacthookform = require('react-hook-form');
12
11
  var _pixelutils = require('@fuf-stack/pixel-utils');
13
12
 
14
13
  // src/Form/subcomponents/FormDebugViewer.tsx
15
-
14
+ var _react = require('react');
16
15
  var _fa = require('react-icons/fa');
17
16
  var _fa6 = require('react-icons/fa6');
18
17
 
19
18
  var _pixels = require('@fuf-stack/pixels');
20
19
  var _jsxruntime = require('react/jsx-runtime');
21
20
  var LOCALSTORAGE_DEBUG_KEY = "uniform:form-debug-enabled";
21
+ var LOCALSTORAGE_COPY_TEST_ID_KEY = "uniform:form-debug-copy-test-id-enabled";
22
22
  var FormDebugViewer = ({ className = void 0 }) => {
23
23
  const {
24
24
  watch,
@@ -26,6 +26,10 @@ var FormDebugViewer = ({ className = void 0 }) => {
26
26
  validation
27
27
  } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
28
28
  const [debug, setDebug] = _pixels.useLocalStorage.call(void 0, LOCALSTORAGE_DEBUG_KEY, false);
29
+ const [copyTestId, setCopyTestId] = _pixels.useLocalStorage.call(void 0,
30
+ LOCALSTORAGE_COPY_TEST_ID_KEY,
31
+ false
32
+ );
29
33
  const [validationErrors, setValidationErrors] = _react.useState.call(void 0, null);
30
34
  const formValues = watch();
31
35
  _react.useEffect.call(void 0,
@@ -53,7 +57,7 @@ var FormDebugViewer = ({ className = void 0 }) => {
53
57
  }
54
58
  );
55
59
  }
56
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
60
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
57
61
  _pixels.Card,
58
62
  {
59
63
  className: _pixelutils.cn.call(void 0, className),
@@ -69,18 +73,30 @@ var FormDebugViewer = ({ className = void 0 }) => {
69
73
  }
70
74
  )
71
75
  ] }),
72
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
73
- _pixels.Json,
74
- {
75
- value: {
76
- values: formValues,
77
- errors: validationErrors,
78
- dirtyFields,
79
- isValid,
80
- isSubmitting
76
+ children: [
77
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
78
+ _pixels.Button,
79
+ {
80
+ variant: copyTestId ? "solid" : "light",
81
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _fa6.FaBullseye, {}),
82
+ className: "mb-4 ml-auto mr-auto",
83
+ onClick: () => setCopyTestId(!copyTestId),
84
+ children: copyTestId ? "Hide CopyButton" : "Show CopyButton"
81
85
  }
82
- }
83
- )
86
+ ),
87
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
88
+ _pixels.Json,
89
+ {
90
+ value: {
91
+ values: formValues,
92
+ errors: validationErrors,
93
+ dirtyFields,
94
+ isValid,
95
+ isSubmitting
96
+ }
97
+ }
98
+ )
99
+ ]
84
100
  }
85
101
  );
86
102
  };
@@ -116,20 +132,11 @@ var Form = ({
116
132
  },
117
133
  // set rhf mode
118
134
  // see: https://react-hook-form.com/docs/useform#mode
119
- mode: validationTrigger === "all-instant" ? "all" : validationTrigger
135
+ mode: validationTrigger
120
136
  } : {
121
137
  defaultValues: initialValues
122
138
  }
123
139
  );
124
- _react.useEffect.call(void 0,
125
- () => {
126
- if (validationTrigger === "all-instant") {
127
- methods.trigger();
128
- }
129
- },
130
- // eslint-disable-next-line react-hooks/exhaustive-deps
131
- [validationTrigger]
132
- );
133
140
  return (
134
141
  // eslint-disable-next-line react/jsx-props-no-spreading
135
142
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWQRM7G4Ccjs.FormContext_default, { ...methods, validation, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-row justify-between gap-6", children: [
@@ -156,4 +163,4 @@ var Form_default2 = Form_default;
156
163
 
157
164
 
158
165
  exports.Form_default = Form_default; exports.Form_default2 = Form_default2;
159
- //# sourceMappingURL=chunk-BNTEIMNY.cjs.map
166
+ //# sourceMappingURL=chunk-JFCOC5TW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-JFCOC5TW.cjs","../src/Form/Form.tsx","../src/Form/subcomponents/FormDebugViewer.tsx","../src/Form/index.ts"],"names":["jsx","jsxs","cn","Form_default"],"mappings":"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","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-JFCOC5TW.cjs","sourcesContent":[null,"import type { VetoInstance } from '@fuf-stack/veto';\nimport type { ReactNode } from 'react';\nimport type { FieldValues, SubmitHandler } from 'react-hook-form';\n\nimport { useForm } from 'react-hook-form';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { slugify } from '../helpers';\nimport FormProvider from './subcomponents/FormContext';\nimport FormDebugViewer from './subcomponents/FormDebugViewer';\n\n/**\n * recursively removes all fields that are null or undefined before\n * the form data is passed to the veto validation function\n */\nexport const removeNullishFields = (obj: Record<string, unknown>) => {\n return JSON.parse(\n JSON.stringify(obj, (_key, value) => {\n return value === null ? undefined : value;\n }),\n );\n};\n\nexport interface FormProps {\n /** form children */\n children: ReactNode | ReactNode[];\n /** CSS class name */\n className?: string | string[];\n /** initial form values */\n initialValues?: FieldValues;\n /** name of the form */\n name?: string;\n /** form submit handler */\n onSubmit: SubmitHandler<FieldValues>;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** veto validation schema */\n validation?: VetoInstance;\n /** when the validation should be triggered */\n validationTrigger?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';\n}\n\n/**\n * Form component that has to wrap every uniform\n */\nconst Form = ({\n children,\n className = undefined,\n initialValues = undefined,\n name = undefined,\n onSubmit,\n testId = undefined,\n validation = undefined,\n validationTrigger = 'all',\n}: FormProps) => {\n const methods = useForm(\n validation\n ? {\n defaultValues: initialValues,\n resolver: async (values) => {\n const { data, errors, ...rest } = await validation.validateAsync(\n removeNullishFields(values),\n );\n // https://github.com/react-hook-form/resolvers/blob/master/zod/src/zod.ts\n return { values: data || {}, errors: errors || {}, ...rest };\n },\n // set rhf mode\n // see: https://react-hook-form.com/docs/useform#mode\n mode: validationTrigger,\n }\n : {\n defaultValues: initialValues,\n },\n );\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <FormProvider {...methods} validation={validation}>\n <div className=\"flex w-full flex-row justify-between gap-6\">\n <form\n className={cn('flex-grow', className)}\n data-testid={slugify(testId || name || '')}\n name={name}\n onSubmit={methods.handleSubmit(onSubmit)}\n >\n {children}\n </form>\n <FormDebugViewer className=\"w-96 flex-shrink\" />\n </div>\n </FormProvider>\n );\n};\n\nexport default Form;\n","import type { VetoError } from '@fuf-stack/veto';\n\nimport { useEffect, useState } from 'react';\nimport { FaTimes } from 'react-icons/fa';\nimport { FaBug, FaBullseye } from 'react-icons/fa6';\n\nimport { cn } from '@fuf-stack/pixel-utils';\nimport { Button, Card, Json, useLocalStorage } from '@fuf-stack/pixels';\n\nimport { useFormContext } from '../../hooks';\n\ninterface FormDebugViewerProps {\n /** CSS class name */\n className?: string;\n}\n\nconst LOCALSTORAGE_DEBUG_KEY = 'uniform:form-debug-enabled';\nconst LOCALSTORAGE_COPY_TEST_ID_KEY = 'uniform:form-debug-copy-test-id-enabled';\n\n/** Renders a form debug panel with information about the current form state */\nconst FormDebugViewer = ({ className = undefined }: FormDebugViewerProps) => {\n const {\n watch,\n formState: { dirtyFields, isValid, isSubmitting },\n validation,\n } = useFormContext();\n\n const [debug, setDebug] = useLocalStorage(LOCALSTORAGE_DEBUG_KEY, false);\n const [copyTestId, setCopyTestId] = useLocalStorage(\n LOCALSTORAGE_COPY_TEST_ID_KEY,\n false,\n );\n\n const [validationErrors, setValidationErrors] = useState<\n VetoError['errors'] | null\n >(null);\n\n const formValues = watch();\n\n useEffect(\n () => {\n const updateValidationErrors = async () => {\n if (validation) {\n const validateResult = await validation?.validateAsync(formValues);\n setValidationErrors(validateResult?.errors);\n }\n };\n updateValidationErrors();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(formValues)],\n );\n\n if (!debug) {\n return (\n <Button\n ariaLabel=\"Enable form debug mode\"\n onClick={() => setDebug(!debug)}\n className=\"absolute bottom-2.5 right-2.5 w-5 text-default-400\"\n variant=\"light\"\n icon={<FaBug />}\n />\n );\n }\n\n return (\n <Card\n className={cn(className)}\n header={\n <div className=\"flex w-full flex-row justify-between\">\n <span className=\"text-lg\">Debug Mode</span>\n <Button\n icon={<FaTimes className=\"text-danger\" />}\n onClick={() => setDebug(false)}\n size=\"sm\"\n variant=\"flat\"\n />\n </div>\n }\n >\n <Button\n variant={copyTestId ? 'solid' : 'light'}\n icon={<FaBullseye />}\n className=\"mb-4 ml-auto mr-auto\"\n onClick={() => setCopyTestId(!copyTestId)}\n >\n {copyTestId ? 'Hide CopyButton' : 'Show CopyButton'}\n </Button>\n <Json\n value={{\n values: formValues,\n errors: validationErrors,\n dirtyFields,\n isValid,\n isSubmitting,\n }}\n />\n </Card>\n );\n};\nexport default FormDebugViewer;\n","import Form from './Form';\n\nexport type { FormProps } from './Form';\n\nexport { Form };\n\nexport default Form;\n"]}
@@ -0,0 +1,81 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
4
+
5
+
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
+
8
+
9
+ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
10
+
11
+ // src/Switch/Switch.tsx
12
+ var _reacthookform = require('react-hook-form');
13
+ var _input = require('@nextui-org/input');
14
+ var _switch = require('@nextui-org/switch');
15
+ var _jsxruntime = require('react/jsx-runtime');
16
+ var Switch = ({
17
+ className,
18
+ disabled = false,
19
+ label: _label = void 0,
20
+ name,
21
+ testId: _testId = void 0
22
+ }) => {
23
+ const { control, getFieldState } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
24
+ const { error, required, testId, invalid } = getFieldState(name, _testId);
25
+ const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } = _input.useInput.call(void 0, {
26
+ errorMessage: JSON.stringify(error),
27
+ isInvalid: invalid,
28
+ isRequired: required,
29
+ label: _label,
30
+ labelPlacement: "outside",
31
+ placeholder: " "
32
+ });
33
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34
+ _reacthookform.Controller,
35
+ {
36
+ name,
37
+ control,
38
+ disabled,
39
+ render: ({
40
+ field: { disabled: isDisabled, value, ref, onBlur, onChange }
41
+ }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
42
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
43
+ _switch.Switch,
44
+ {
45
+ "aria-describedby": getInputProps()["aria-describedby"],
46
+ required,
47
+ isSelected: !!value,
48
+ className,
49
+ classNames: {
50
+ label: `text-bold block text-ellipsis text-small ${invalid ? "text-danger" : ""}`
51
+ },
52
+ "data-testid": testId,
53
+ isDisabled,
54
+ value,
55
+ onChange,
56
+ onBlur,
57
+ name,
58
+ ref,
59
+ children: [
60
+ label,
61
+ !!required && !!_label && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "!text-danger", children: " *" }),
62
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKMMS4G7Acjs.FieldCopyTestIdButton_default, { testId })
63
+ ]
64
+ }
65
+ ),
66
+ error && // eslint-disable-next-line react/jsx-props-no-spreading
67
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...getHelperWrapperProps(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...getErrorMessageProps(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQTL5FREEcjs.FieldValidationError_default, { error }) }) })
68
+ ] })
69
+ }
70
+ );
71
+ };
72
+ var Switch_default = Switch;
73
+
74
+ // src/Switch/index.ts
75
+ var Switch_default2 = Switch_default;
76
+
77
+
78
+
79
+
80
+ exports.Switch_default = Switch_default; exports.Switch_default2 = Switch_default2;
81
+ //# sourceMappingURL=chunk-JR7MAHBR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-JR7MAHBR.cjs","../src/Switch/Switch.tsx","../src/Switch/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,gDAA2B;AAE3B,0CAAyB;AACzB,4CAAqC;AAkD7B,+CAAA;AA5BR,IAAM,OAAA,EAAS,CAAC;AAAA,EACd,SAAA;AAAA,EACA,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,OAAA,EAAS,KAAA,CAAA;AAAA,EAChB,IAAA;AAAA,EACA,MAAA,EAAQ,QAAA,EAAU,KAAA;AACpB,CAAA,EAAA,GAAmB;AACjB,EAAA,MAAM,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,8CAAA,CAAe;AAClD,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAQ,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,qBAAA,EAAuB,qBAAqB,EAAA,EACxE,6BAAA;AAAS,IACP,YAAA,EAAc,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAAA,IAClC,SAAA,EAAW,OAAA;AAAA,IACX,UAAA,EAAY,QAAA;AAAA,IACZ,KAAA,EAAO,MAAA;AAAA,IACP,cAAA,EAAgB,SAAA;AAAA,IAChB,WAAA,EAAa;AAAA,EACf,CAAC,CAAA;AAEH,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,SAAS;AAAA,MAC9D,CAAA,EAAA,mBACE,8BAAA,oBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,8BAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,kBAAA,EAAkB,aAAA,CAAc,CAAA,CAAE,kBAAkB,CAAA;AAAA,YACpD,QAAA;AAAA,YACA,UAAA,EAAY,CAAC,CAAC,KAAA;AAAA,YACd,SAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,KAAA,EAAO,CAAA,yCAAA,EAA4C,QAAA,EAAU,cAAA,EAAgB,EAAE,CAAA;AAAA,YAAA;AACjF,YAAA;AACa,YAAA;AACb,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AAEC,cAAA;AAAA,cAAA;AAE2C,8BAAA;AAEL,YAAA;AAAA,UAAA;AAAA,QAAA;AACzC,QAAA;AACC,wBAAA;AAOC,MAAA;AAEJ,IAAA;AAAA,EAAA;AAIR;AAEA;ADnBA;AACA;AEnEA;AFqEA;AACA;AACA;AACA;AACA","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-JR7MAHBR.cjs","sourcesContent":[null,"import { Controller } from 'react-hook-form';\n\nimport { useInput } from '@nextui-org/input';\nimport { Switch as NextSwitch } from '@nextui-org/switch';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface SwitchProps {\n /** CSS class name */\n className: string;\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,\n disabled = false,\n label: _label = undefined,\n name,\n testId: _testId = undefined,\n}: SwitchProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, required, testId, invalid } = getFieldState(name, _testId);\n\n const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } =\n useInput({\n errorMessage: JSON.stringify(error),\n isInvalid: invalid,\n isRequired: required,\n label: _label,\n labelPlacement: 'outside',\n placeholder: ' ',\n });\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 <>\n <NextSwitch\n aria-describedby={getInputProps()['aria-describedby']}\n required={required}\n isSelected={!!value}\n className={className}\n classNames={{\n label: `text-bold block text-ellipsis text-small ${invalid ? 'text-danger' : ''}`,\n }}\n data-testid={testId}\n isDisabled={isDisabled}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n name={name}\n ref={ref}\n >\n {label}\n {!!required && !!_label && (\n <span className=\"!text-danger\">{' \\u002A'}</span>\n )}\n <FieldCopyTestIdButton testId={testId} />\n </NextSwitch>\n {error && (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div {...getHelperWrapperProps()}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <div {...getErrorMessageProps()}>\n <FieldValidationError error={error} />\n </div>\n </div>\n )}\n </>\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"]}
@@ -0,0 +1,76 @@
1
+ import {
2
+ FieldCopyTestIdButton_default
3
+ } from "./chunk-T3CCNJHK.js";
4
+ import {
5
+ FieldValidationError_default
6
+ } from "./chunk-DBLODROX.js";
7
+ import {
8
+ useFormContext
9
+ } from "./chunk-BCMPSLSG.js";
10
+
11
+ // src/TextArea/TextArea.tsx
12
+ import { Controller } from "react-hook-form";
13
+ import { Textarea as NextTextArea } from "@nextui-org/input";
14
+ import { cn } from "@fuf-stack/pixel-utils";
15
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
+ var TextArea = ({
17
+ children = null,
18
+ className = void 0,
19
+ disabled = false,
20
+ label = void 0,
21
+ name,
22
+ placeholder = " ",
23
+ testId: _testId = void 0
24
+ }) => {
25
+ const { control, getFieldState } = useFormContext();
26
+ const { error, invalid, required, testId } = getFieldState(name, _testId);
27
+ return /* @__PURE__ */ jsx(
28
+ Controller,
29
+ {
30
+ control,
31
+ name,
32
+ disabled,
33
+ render: ({
34
+ field: { disabled: isDisabled, onChange, onBlur, value, ref }
35
+ }) => {
36
+ return /* @__PURE__ */ jsx(
37
+ NextTextArea,
38
+ {
39
+ className: cn(className),
40
+ classNames: {
41
+ inputWrapper: "group-data-[focus=true]:border-primary"
42
+ },
43
+ "data-testid": testId,
44
+ errorMessage: error && /* @__PURE__ */ jsx(FieldValidationError_default, { error }),
45
+ isDisabled,
46
+ isRequired: required,
47
+ isInvalid: invalid,
48
+ label: /* @__PURE__ */ jsxs(Fragment, { children: [
49
+ label,
50
+ /* @__PURE__ */ jsx(FieldCopyTestIdButton_default, { testId })
51
+ ] }),
52
+ labelPlacement: "outside",
53
+ placeholder,
54
+ name,
55
+ value,
56
+ onChange,
57
+ onBlur,
58
+ ref,
59
+ variant: "bordered",
60
+ children
61
+ }
62
+ );
63
+ }
64
+ }
65
+ );
66
+ };
67
+ var TextArea_default = TextArea;
68
+
69
+ // src/TextArea/index.ts
70
+ var TextArea_default2 = TextArea_default;
71
+
72
+ export {
73
+ TextArea_default,
74
+ TextArea_default2
75
+ };
76
+ //# sourceMappingURL=chunk-KC3PZFGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/TextArea/TextArea.tsx","../src/TextArea/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Controller } from 'react-hook-form';\n\nimport { Textarea as NextTextArea } from '@nextui-org/input';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface TextAreaProps {\n /** Child components. The content of the textarea. */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** Determines if the TextArea is disabled or not. */\n disabled?: boolean;\n /** Label displayed above the TextArea. */\n label?: ReactNode;\n /** Name the TextArea is registered at in HTML forms (react-hook-form). */\n name: string;\n /** placeholder for the textArea content. */\n placeholder?: string;\n /** Id to grab element in internal tests. */\n testId?: string;\n}\n\n/**\n * TextArea component based on [NextUI TextArea](https://nextui.org/docs/components/textarea)\n */\nconst TextArea = ({\n children = null,\n className = undefined,\n disabled = false,\n label = undefined,\n name,\n placeholder = ' ',\n testId: _testId = undefined,\n}: TextAreaProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n return (\n <Controller\n control={control}\n name={name}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, onChange, onBlur, value, ref },\n }) => {\n return (\n <NextTextArea\n className={cn(className)}\n classNames={{\n inputWrapper: 'group-data-[focus=true]:border-primary',\n }}\n data-testid={testId}\n errorMessage={error && <FieldValidationError error={error} />}\n isDisabled={isDisabled}\n isRequired={required}\n isInvalid={invalid}\n label={\n <>\n {label}\n <FieldCopyTestIdButton testId={testId} />\n </>\n }\n labelPlacement=\"outside\"\n placeholder={placeholder}\n name={name}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n variant=\"bordered\"\n >\n {children}\n </NextTextArea>\n );\n }}\n />\n );\n};\n\nexport default TextArea;\n","import TextArea from './TextArea';\n\nexport type { TextAreaProps } from './TextArea';\n\nexport { TextArea };\n\nexport default TextArea;\n"],"mappings":";;;;;;;;;;;AAEA,SAAS,kBAAkB;AAE3B,SAAS,YAAY,oBAAoB;AAEzC,SAAS,UAAU;AAqDgB,SAKrB,UALqB,KAKrB,YALqB;AA3BnC,IAAM,WAAW,CAAC;AAAA,EAChB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AAAA,EACA,cAAc;AAAA,EACd,QAAQ,UAAU;AACpB,MAAqB;AACnB,QAAM,EAAE,SAAS,cAAc,IAAI,eAAe;AAClD,QAAM,EAAE,OAAO,SAAS,UAAU,OAAO,IAAI,cAAc,MAAM,OAAO;AAExE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,CAAC;AAAA,QACP,OAAO,EAAE,UAAU,YAAY,UAAU,QAAQ,OAAO,IAAI;AAAA,MAC9D,MAAM;AACJ,eACE;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,SAAS;AAAA,YACvB,YAAY;AAAA,cACV,cAAc;AAAA,YAChB;AAAA,YACA,eAAa;AAAA,YACb,cAAc,SAAS,oBAAC,gCAAqB,OAAc;AAAA,YAC3D;AAAA,YACA,YAAY;AAAA,YACZ,WAAW;AAAA,YACX,OACE,iCACG;AAAA;AAAA,cACD,oBAAC,iCAAsB,QAAgB;AAAA,eACzC;AAAA,YAEF,gBAAe;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,SAAQ;AAAA,YAEP;AAAA;AAAA,QACH;AAAA,MAEJ;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,mBAAQ;;;AChFf,IAAOA,oBAAQ;","names":["TextArea_default"]}
@@ -4,17 +4,19 @@ var _pixelutils = require('@fuf-stack/pixel-utils');
4
4
  var _pixels = require('@fuf-stack/pixels');
5
5
  var _jsxruntime = require('react/jsx-runtime');
6
6
  var LOCALSTORAGE_DEBUG_KEY = "uniform:form-debug-enabled";
7
+ var LOCALSTORAGE_COPY_TEST_ID_KEY = "uniform:form-debug-copy-test-id-enabled";
7
8
  var FieldCopyTestIdButton = ({
8
9
  className = void 0,
9
10
  testId
10
11
  }) => {
11
12
  const [debug] = _pixels.useLocalStorage.call(void 0, LOCALSTORAGE_DEBUG_KEY, false);
13
+ const [copyTestId] = _pixels.useLocalStorage.call(void 0, LOCALSTORAGE_COPY_TEST_ID_KEY, false);
12
14
  const copyToClipboard = () => {
13
15
  navigator.clipboard.writeText(testId).catch((err) => {
14
16
  console.error("Error copying TestId to clipboard", err);
15
17
  });
16
18
  };
17
- if (!debug) {
19
+ if (!debug || !copyTestId) {
18
20
  return null;
19
21
  }
20
22
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -37,4 +39,4 @@ var FieldCopyTestIdButton_default2 = FieldCopyTestIdButton_default;
37
39
 
38
40
 
39
41
  exports.FieldCopyTestIdButton_default = FieldCopyTestIdButton_default; exports.FieldCopyTestIdButton_default2 = FieldCopyTestIdButton_default2;
40
- //# sourceMappingURL=chunk-HT3LKDHX.cjs.map
42
+ //# sourceMappingURL=chunk-KMMS4G7A.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-KMMS4G7A.cjs","../src/partials/FieldCopyTestIdButton/FieldCopyTestIdButton.tsx","../src/partials/FieldCopyTestIdButton/index.ts"],"names":["FieldCopyTestIdButton_default"],"mappings":"AAAA;ACAA,sCAA2B;AAE3B,oDAAmB;AACnB,2CAAwC;AAgC5B,+CAAA;AAzBZ,IAAM,uBAAA,EAAyB,4BAAA;AAC/B,IAAM,8BAAA,EAAgC,yCAAA;AAEtC,IAAM,sBAAA,EAAwB,CAAC;AAAA,EAC7B,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ;AACF,CAAA,EAAA,GAAkC;AAChC,EAAA,MAAM,CAAC,KAAK,EAAA,EAAI,qCAAA,sBAAgB,EAAwB,KAAK,CAAA;AAC7D,EAAA,MAAM,CAAC,UAAU,EAAA,EAAI,qCAAA,6BAAgB,EAA+B,KAAK,CAAA;AAEzE,EAAA,MAAM,gBAAA,EAAkB,CAAA,EAAA,GAAM;AAC5B,IAAA,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,MAAM,CAAA,CAAE,KAAA,CAAM,CAAC,GAAA,EAAA,GAAQ;AACnD,MAAA,OAAA,CAAQ,KAAA,CAAM,mCAAA,EAAqC,GAAG,CAAA;AAAA,IACxD,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,GAAA,CAAI,CAAC,MAAA,GAAS,CAAC,UAAA,EAAY;AACzB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,6BAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,4BAAA,SAAG,EAAW,qBAAqB,CAAA;AAAA,MAC9C,OAAA,EAAQ,OAAA;AAAA,MACR,OAAA,EAAS,eAAA;AAAA,MACT,IAAA,kBAAM,6BAAA,eAAC,EAAA,CAAA,CAAW,CAAA;AAAA,MAClB,IAAA,EAAK;AAAA,IAAA;AAAA,EACP,CAAA;AAEJ,CAAA;AACA,IAAO,8BAAA,EAAQ,qBAAA;ADPf;AACA;AE5BA,IAAOA,+BAAAA,EAAQ,6BAAA;AF8Bf;AACA;AACE;AACA;AACF,+IAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-KMMS4G7A.cjs","sourcesContent":[null,"import { FaBullseye } from 'react-icons/fa6';\n\nimport { cn } from '@fuf-stack/pixel-utils';\nimport { Button, useLocalStorage } from '@fuf-stack/pixels';\n\nexport interface FieldCopyTestIdButtonProps {\n className?: string;\n testId: string;\n}\n\nconst LOCALSTORAGE_DEBUG_KEY = 'uniform:form-debug-enabled';\nconst LOCALSTORAGE_COPY_TEST_ID_KEY = 'uniform:form-debug-copy-test-id-enabled';\n\nconst FieldCopyTestIdButton = ({\n className = undefined,\n testId,\n}: FieldCopyTestIdButtonProps) => {\n const [debug] = useLocalStorage(LOCALSTORAGE_DEBUG_KEY, false);\n const [copyTestId] = useLocalStorage(LOCALSTORAGE_COPY_TEST_ID_KEY, false);\n\n const copyToClipboard = () => {\n navigator.clipboard.writeText(testId).catch((err) => {\n console.error('Error copying TestId to clipboard', err);\n });\n };\n\n if (!debug || !copyTestId) {\n return null;\n }\n\n return (\n <Button\n className={cn(className, 'pointer-events-auto')}\n variant=\"light\"\n onClick={copyToClipboard}\n icon={<FaBullseye />}\n size=\"sm\"\n />\n );\n};\nexport default FieldCopyTestIdButton;\n","import FieldCopyTestIdButton from './FieldCopyTestIdButton';\n\nexport type { FieldCopyTestIdButtonProps } from './FieldCopyTestIdButton';\n\nexport { FieldCopyTestIdButton };\n\nexport default FieldCopyTestIdButton;\n"]}
@@ -0,0 +1,205 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
4
+
5
+
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
+
8
+
9
+ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
10
+
11
+
12
+ var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
13
+
14
+ // src/RadioGroup/RadioGroup.tsx
15
+ var _reacthookform = require('react-hook-form');
16
+ var _button = require('@nextui-org/button');
17
+ var _radio = require('@nextui-org/radio');
18
+ var _pixelutils = require('@fuf-stack/pixel-utils');
19
+
20
+ // src/RadioGroup/Variants/RadioBox.tsx
21
+
22
+ var _visuallyhidden = require('@react-aria/visually-hidden');
23
+
24
+ var _jsxruntime = require('react/jsx-runtime');
25
+ var RadioBox = ({ icon = void 0, ...props }) => {
26
+ const {
27
+ children,
28
+ Component,
29
+ description,
30
+ getBaseProps,
31
+ getControlProps,
32
+ getInputProps,
33
+ getLabelProps,
34
+ getLabelWrapperProps,
35
+ getWrapperProps,
36
+ isDisabled
37
+ } = _radio.useRadio.call(void 0, props);
38
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
39
+ Component,
40
+ {
41
+ ...getBaseProps(),
42
+ className: _pixelutils.cn.call(void 0,
43
+ "group inline-flex flex-auto cursor-pointer items-center justify-between gap-4 rounded-lg border-2 border-default p-4 hover:bg-content2 data-[selected=true]:border-primary",
44
+ {
45
+ // disabled styles
46
+ "pointer-events-none opacity-disabled": isDisabled
47
+ }
48
+ ),
49
+ children: [
50
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _visuallyhidden.VisuallyHidden, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { ...getInputProps() }) }),
51
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ...getWrapperProps(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ...getControlProps() }) }),
52
+ icon,
53
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
54
+ "div",
55
+ {
56
+ ...getLabelWrapperProps(),
57
+ className: _pixelutils.cn.call(void 0, getLabelWrapperProps().className, "grow"),
58
+ children: [
59
+ children && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ...getLabelProps(), children }),
60
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-small text-foreground opacity-70", children: description })
61
+ ]
62
+ }
63
+ )
64
+ ]
65
+ }
66
+ );
67
+ };
68
+
69
+ // src/RadioGroup/Variants/RadioButton.tsx
70
+
71
+ var _pixels = require('@fuf-stack/pixels');
72
+
73
+ var RadioButton = ({
74
+ className = void 0,
75
+ value,
76
+ isDisabled = false,
77
+ onChange,
78
+ children
79
+ }) => {
80
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
81
+ _pixels.Button,
82
+ {
83
+ className: _pixelutils.cn.call(void 0, className),
84
+ disabled: isDisabled,
85
+ onClick: () => {
86
+ return onChange(value);
87
+ },
88
+ children
89
+ },
90
+ `index_${value}`
91
+ );
92
+ };
93
+
94
+ // src/RadioGroup/RadioGroup.tsx
95
+
96
+ var RadioGroup = ({
97
+ className = void 0,
98
+ disabled = false,
99
+ inline = false,
100
+ label = void 0,
101
+ name,
102
+ options,
103
+ testId: _testId = void 0,
104
+ variant = "default"
105
+ }) => {
106
+ const { control, getFieldState, getValues } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
107
+ const { error, invalid, required, testId } = getFieldState(name, _testId);
108
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
109
+ _reacthookform.Controller,
110
+ {
111
+ control,
112
+ disabled,
113
+ name,
114
+ render: ({ field: { onChange, disabled: isDisabled, onBlur, ref } }) => {
115
+ let RadioComponents;
116
+ switch (variant) {
117
+ case "radioBox":
118
+ RadioComponents = options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
119
+ RadioBox,
120
+ {
121
+ "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
122
+ `${testId}_option_${option.testId || option.value}`
123
+ ),
124
+ isDisabled: isDisabled || option.disabled,
125
+ value: option.value,
126
+ onChange,
127
+ description: option.description,
128
+ icon: option.icon,
129
+ children: option.label ? option.label : option.value
130
+ },
131
+ option.value
132
+ ));
133
+ break;
134
+ case "radioButton":
135
+ RadioComponents = options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
136
+ RadioButton,
137
+ {
138
+ "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
139
+ `${testId}_option_${option.testId || option.value}`
140
+ ),
141
+ isDisabled: isDisabled || option.disabled,
142
+ value: option.value,
143
+ onChange,
144
+ className: _pixelutils.cn.call(void 0,
145
+ `${getValues()[name] !== option.value ? "bg-opacity-50" : ""}`
146
+ ),
147
+ children: option.label ? option.label : option.value
148
+ },
149
+ option.value
150
+ ));
151
+ break;
152
+ default:
153
+ RadioComponents = options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
154
+ _radio.Radio,
155
+ {
156
+ "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
157
+ `${testId}_option_${option.testId || option.value}`
158
+ ),
159
+ isDisabled: isDisabled || option.disabled,
160
+ value: option.value,
161
+ onChange,
162
+ children: option.label ? option.label : option.value
163
+ },
164
+ option.value
165
+ ));
166
+ }
167
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
168
+ _radio.RadioGroup,
169
+ {
170
+ className,
171
+ "data-testid": testId,
172
+ errorMessage: error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQTL5FREEcjs.FieldValidationError_default, { error }),
173
+ isDisabled,
174
+ isInvalid: invalid,
175
+ isRequired: required,
176
+ label: label && // eslint-disable-next-line jsx-a11y/label-has-associated-control
177
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "label", { className: `${invalid ? "text-danger" : ""}`, children: [
178
+ label,
179
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKMMS4G7Acjs.FieldCopyTestIdButton_default, { testId })
180
+ ] }),
181
+ orientation: inline ? "horizontal" : "vertical",
182
+ onBlur,
183
+ onChange,
184
+ name,
185
+ ref,
186
+ children: variant === "radioButton" ? (
187
+ // TODO: NextButtonGroup uses ref to modify Button style, but we wrap it, so it does not work at the moment.
188
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _button.ButtonGroup, { children: RadioComponents })
189
+ ) : RadioComponents
190
+ }
191
+ );
192
+ }
193
+ }
194
+ );
195
+ };
196
+ var RadioGroup_default = RadioGroup;
197
+
198
+ // src/RadioGroup/index.ts
199
+ var RadioGroup_default2 = RadioGroup_default;
200
+
201
+
202
+
203
+
204
+ exports.RadioGroup_default = RadioGroup_default; exports.RadioGroup_default2 = RadioGroup_default2;
205
+ //# sourceMappingURL=chunk-OSEU4ZUE.cjs.map