geoiq-frontend-ui-kit 2.0.5 → 2.0.6

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 (178) hide show
  1. package/dist/index100.es.js +42 -23
  2. package/dist/index100.es.js.map +1 -1
  3. package/dist/index101.es.js +33 -62
  4. package/dist/index101.es.js.map +1 -1
  5. package/dist/index102.es.js +21 -9
  6. package/dist/index102.es.js.map +1 -1
  7. package/dist/index103.es.js +88 -22
  8. package/dist/index103.es.js.map +1 -1
  9. package/dist/index104.es.js +17 -9
  10. package/dist/index104.es.js.map +1 -1
  11. package/dist/index105.es.js +13 -67
  12. package/dist/index105.es.js.map +1 -1
  13. package/dist/index106.es.js +21 -185
  14. package/dist/index106.es.js.map +1 -1
  15. package/dist/index107.es.js +11 -23
  16. package/dist/index107.es.js.map +1 -1
  17. package/dist/index108.es.js +69 -198
  18. package/dist/index108.es.js.map +1 -1
  19. package/dist/index109.es.js +9 -43
  20. package/dist/index109.es.js.map +1 -1
  21. package/dist/index11.es.js +1 -1
  22. package/dist/index110.es.js +65 -37
  23. package/dist/index110.es.js.map +1 -1
  24. package/dist/index111.es.js +184 -47
  25. package/dist/index111.es.js.map +1 -1
  26. package/dist/index112.es.js +23 -181
  27. package/dist/index112.es.js.map +1 -1
  28. package/dist/index113.es.js +201 -20
  29. package/dist/index113.es.js.map +1 -1
  30. package/dist/index114.es.js +13 -35
  31. package/dist/index114.es.js.map +1 -1
  32. package/dist/index115.es.js +88 -58
  33. package/dist/index115.es.js.map +1 -1
  34. package/dist/index116.es.js +27 -84
  35. package/dist/index116.es.js.map +1 -1
  36. package/dist/index117.es.js +23 -15
  37. package/dist/index117.es.js.map +1 -1
  38. package/dist/index118.es.js +34 -8
  39. package/dist/index118.es.js.map +1 -1
  40. package/dist/index119.es.js +179 -29
  41. package/dist/index119.es.js.map +1 -1
  42. package/dist/index12.es.js +1 -1
  43. package/dist/index120.es.js +32 -11
  44. package/dist/index120.es.js.map +1 -1
  45. package/dist/index121.es.js +19 -92
  46. package/dist/index121.es.js.map +1 -1
  47. package/dist/index122.es.js +13 -27
  48. package/dist/index122.es.js.map +1 -1
  49. package/dist/index123.es.js +7 -15
  50. package/dist/index123.es.js.map +1 -1
  51. package/dist/index124.es.js +98 -20
  52. package/dist/index124.es.js.map +1 -1
  53. package/dist/index125.es.js +61 -9
  54. package/dist/index125.es.js.map +1 -1
  55. package/dist/index126.es.js +54 -97
  56. package/dist/index126.es.js.map +1 -1
  57. package/dist/index127.es.js +16 -64
  58. package/dist/index127.es.js.map +1 -1
  59. package/dist/index128.es.js +96 -50
  60. package/dist/index128.es.js.map +1 -1
  61. package/dist/index129.es.js +11 -13
  62. package/dist/index129.es.js.map +1 -1
  63. package/dist/index130.es.js +147 -99
  64. package/dist/index130.es.js.map +1 -1
  65. package/dist/index131.es.js +6 -13
  66. package/dist/index131.es.js.map +1 -1
  67. package/dist/index132.es.js +48 -148
  68. package/dist/index132.es.js.map +1 -1
  69. package/dist/index133.es.js +42 -13
  70. package/dist/index133.es.js.map +1 -1
  71. package/dist/index134.es.js +35 -269
  72. package/dist/index134.es.js.map +1 -1
  73. package/dist/index135.es.js +22 -25
  74. package/dist/index135.es.js.map +1 -1
  75. package/dist/index136.es.js +11 -7
  76. package/dist/index136.es.js.map +1 -1
  77. package/dist/index137.es.js +33 -40
  78. package/dist/index137.es.js.map +1 -1
  79. package/dist/index138.es.js +63 -37
  80. package/dist/index138.es.js.map +1 -1
  81. package/dist/index139.es.js +268 -39
  82. package/dist/index139.es.js.map +1 -1
  83. package/dist/index141.es.js +16 -5
  84. package/dist/index141.es.js.map +1 -1
  85. package/dist/index142.es.js +5 -11
  86. package/dist/index142.es.js.map +1 -1
  87. package/dist/index143.es.js +10 -10
  88. package/dist/index143.es.js.map +1 -1
  89. package/dist/index144.es.js +11 -2
  90. package/dist/index144.es.js.map +1 -1
  91. package/dist/index145.es.js +2 -44
  92. package/dist/index145.es.js.map +1 -1
  93. package/dist/index146.es.js +7 -12
  94. package/dist/index146.es.js.map +1 -1
  95. package/dist/index147.es.js +22 -6
  96. package/dist/index147.es.js.map +1 -1
  97. package/dist/index148.es.js +168 -21
  98. package/dist/index148.es.js.map +1 -1
  99. package/dist/index149.es.js +79 -167
  100. package/dist/index149.es.js.map +1 -1
  101. package/dist/index150.es.js +67 -75
  102. package/dist/index150.es.js.map +1 -1
  103. package/dist/index151.es.js +3 -72
  104. package/dist/index151.es.js.map +1 -1
  105. package/dist/index152.es.js +56 -5
  106. package/dist/index152.es.js.map +1 -1
  107. package/dist/index153.es.js +120 -56
  108. package/dist/index153.es.js.map +1 -1
  109. package/dist/index154.es.js +398 -113
  110. package/dist/index154.es.js.map +1 -1
  111. package/dist/index155.es.js +25 -398
  112. package/dist/index155.es.js.map +1 -1
  113. package/dist/index156.es.js +61 -25
  114. package/dist/index156.es.js.map +1 -1
  115. package/dist/index157.es.js +29 -64
  116. package/dist/index157.es.js.map +1 -1
  117. package/dist/index158.es.js +21 -29
  118. package/dist/index158.es.js.map +1 -1
  119. package/dist/index159.es.js +36 -23
  120. package/dist/index159.es.js.map +1 -1
  121. package/dist/index16.es.js +1 -1
  122. package/dist/index160.es.js +211 -37
  123. package/dist/index160.es.js.map +1 -1
  124. package/dist/index161.es.js +143 -211
  125. package/dist/index161.es.js.map +1 -1
  126. package/dist/index162.es.js +136 -136
  127. package/dist/index162.es.js.map +1 -1
  128. package/dist/index163.es.js +46 -143
  129. package/dist/index163.es.js.map +1 -1
  130. package/dist/index164.es.js +353 -45
  131. package/dist/index164.es.js.map +1 -1
  132. package/dist/index165.es.js +41 -352
  133. package/dist/index165.es.js.map +1 -1
  134. package/dist/index166.es.js +12 -2
  135. package/dist/index166.es.js.map +1 -1
  136. package/dist/index167.es.js +2 -25
  137. package/dist/index167.es.js.map +1 -1
  138. package/dist/index168.es.js +21 -12
  139. package/dist/index168.es.js.map +1 -1
  140. package/dist/index170.es.js +1 -1
  141. package/dist/index171.es.js +2 -2
  142. package/dist/index173.es.js +1 -1
  143. package/dist/index174.es.js +2 -2
  144. package/dist/index175.es.js +2 -2
  145. package/dist/index176.es.js +2 -2
  146. package/dist/index180.es.js +1 -1
  147. package/dist/index181.es.js +1 -1
  148. package/dist/index182.es.js +1 -1
  149. package/dist/index183.es.js +1 -1
  150. package/dist/index184.es.js +1 -1
  151. package/dist/index185.es.js +1 -1
  152. package/dist/index186.es.js +1 -1
  153. package/dist/index188.es.js +1 -1
  154. package/dist/index19.es.js +1 -1
  155. package/dist/index20.es.js +1 -1
  156. package/dist/index21.es.js +1 -1
  157. package/dist/index23.es.js +2 -2
  158. package/dist/index27.es.js +1 -1
  159. package/dist/index29.es.js +1 -1
  160. package/dist/index30.es.js +2 -2
  161. package/dist/index32.es.js +1 -1
  162. package/dist/index34.es.js +1 -1
  163. package/dist/index35.es.js +1 -1
  164. package/dist/index47.es.js +4 -4
  165. package/dist/index48.es.js +2 -2
  166. package/dist/index49.es.js +1 -1
  167. package/dist/index50.es.js +1 -1
  168. package/dist/index55.es.js +1 -1
  169. package/dist/index56.es.js +1 -1
  170. package/dist/index59.es.js +1 -1
  171. package/dist/index61.es.js +1 -1
  172. package/dist/index69.es.js +2 -2
  173. package/dist/index70.es.js +1 -1
  174. package/dist/index72.es.js +5 -5
  175. package/dist/index73.es.js +1 -1
  176. package/dist/index74.es.js +7 -7
  177. package/dist/index87.es.js +1 -1
  178. package/package.json +1 -1
@@ -1,46 +1,12 @@
1
- import * as e from "react";
2
- import { OTPInput as l, OTPInputContext as u } from "input-otp";
3
- import { Dot as f } from "lucide-react";
4
- import { cn as n } from "./index91.es.js";
5
- import { OTPInputVariants as d } from "./index145.es.js";
6
- const O = e.forwardRef(({ className: t, containerClassName: a, ...r }, o) => /* @__PURE__ */ e.createElement(
7
- l,
8
- {
9
- ref: o,
10
- containerClassName: n("flex items-center gap-3", a),
11
- className: n(t),
12
- ...r,
13
- inputMode: "text"
14
- }
15
- ));
16
- O.displayName = "InputOTP";
17
- const P = e.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e.createElement("div", { ref: r, className: n("flex items-center", t), ...a }));
18
- P.displayName = "InputOTPGroup";
19
- const T = e.forwardRef(
20
- ({ index: t, className: a, isError: r, ...o }, s) => {
21
- const m = e.useContext(u), { char: p, hasFakeCaret: c, isActive: i } = m.slots[t];
22
- return /* @__PURE__ */ e.createElement(
23
- "div",
24
- {
25
- ref: s,
26
- className: n(
27
- d({ isError: r, isFocused: i }),
28
- a
29
- ),
30
- ...o
31
- },
32
- p,
33
- c && /* @__PURE__ */ e.createElement("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ e.createElement("div", { className: "h-4 w-px animate-caret-blink bg-black duration-1000" }))
34
- );
35
- }
36
- );
37
- T.displayName = "InputOTPSlot";
38
- const I = e.forwardRef(({ ...t }, a) => /* @__PURE__ */ e.createElement("div", { ref: a, role: "separator", ...t }, /* @__PURE__ */ e.createElement(f, null)));
39
- I.displayName = "InputOTPSeparator";
1
+ import e from "react";
2
+ import { FormSection as m } from "./index142.es.js";
3
+ import { Typography as o } from "./index19.es.js";
4
+ import { useFormStructure as c } from "./index143.es.js";
5
+ const f = () => {
6
+ const { currentStep: t, totalSteps: l, currentStepIndex: a } = c();
7
+ return /* @__PURE__ */ e.createElement("section", { className: "flex flex-col gap-4 flex-1 overflow-scroll pb-16 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:'none'] [scrollbar-width:'none']" }, /* @__PURE__ */ e.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ e.createElement(o, { variant: "h2" }, t.name), /* @__PURE__ */ e.createElement(o, { variant: "h3", className: "text-light-3" }, "Step ", a + 1, " of ", l)), /* @__PURE__ */ e.createElement("div", { className: "border-b border-light-1" }), t.sections.map((r) => /* @__PURE__ */ e.createElement(m, { key: r.id, section: r })));
8
+ };
40
9
  export {
41
- O as InputOTP,
42
- P as InputOTPGroup,
43
- I as InputOTPSeparator,
44
- T as InputOTPSlot
10
+ f as FormStep
45
11
  };
46
12
  //# sourceMappingURL=index109.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index109.es.js","sources":["../src/components/unstyled/otp-input/otp-input-component.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { OTPInput, OTPInputContext } from 'input-otp'\nimport { Dot } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { InputOTPSlotProps } from './otp-input.types'\nimport { OTPInputVariants } from './otp-input.styles'\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput> & { isError?: boolean }\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn('flex items-center gap-3', containerClassName)}\n className={cn(className)}\n {...props}\n inputMode=\"text\"\n />\n))\nInputOTP.displayName = 'InputOTP'\n\nconst InputOTPGroup = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n))\nInputOTPGroup.displayName = 'InputOTPGroup'\n\nconst InputOTPSlot = React.forwardRef<HTMLDivElement, InputOTPSlotProps>(\n ({ index, className, isError, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n return (\n <div\n ref={ref}\n className={cn(\n OTPInputVariants({ isError, isFocused: isActive }),\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-black duration-1000\" />\n </div>\n )}\n </div>\n )\n }\n)\n\nInputOTPSlot.displayName = 'InputOTPSlot'\n\nconst InputOTPSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n))\nInputOTPSeparator.displayName = 'InputOTPSeparator'\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n"],"names":["InputOTP","React","className","containerClassName","props","ref","OTPInput","cn","InputOTPGroup","InputOTPSlot","index","isError","inputOTPContext","OTPInputContext","char","hasFakeCaret","isActive","OTPInputVariants","InputOTPSeparator","Dot"],"mappings":";;;;;AASA,MAAMA,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAC9C,gBAAAJ,EAAA;AAAA,EAACK;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,oBAAoBE,EAAG,2BAA2BJ,CAAkB;AAAA,IACpE,WAAWI,EAAGL,CAAS;AAAA,IACtB,GAAGE;AAAA,IACJ,WAAU;AAAA,EAAA;AACZ,CACD;AACDJ,EAAS,cAAc;AAEvB,MAAMQ,IAAgBP,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGE,KAASC,sCACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,qBAAqBL,CAAS,GAAI,GAAGE,GAAO,CAC1E;AACDI,EAAc,cAAc;AAE5B,MAAMC,IAAeR,EAAM;AAAA,EACzB,CAAC,EAAE,OAAAS,GAAO,WAAAR,GAAW,SAAAS,GAAS,GAAGP,EAAA,GAASC,MAAQ;AAChD,UAAMO,IAAkBX,EAAM,WAAWY,CAAe,GAClD,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,MAAaJ,EAAgB,MAAMF,CAAK;AACpE,WACE,gBAAAT,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAI;AAAA,QACA,WAAWE;AAAA,UACTU,EAAiB,EAAE,SAAAN,GAAS,WAAWK,GAAU;AAAA,UACjDd;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,MAEHU;AAAA,MACAC,qCACE,OAAA,EAAI,WAAU,2EACb,gBAAAd,EAAA,cAAC,OAAA,EAAI,WAAU,sDAAA,CAAsD,CACvE;AAAA,IAAA;AAAA,EAIR;AACF;AAEAQ,EAAa,cAAc;AAE3B,MAAMS,IAAoBjB,EAAM,WAG9B,CAAC,EAAE,GAAGG,KAASC,sCACd,OAAA,EAAI,KAAAA,GAAU,MAAK,aAAa,GAAGD,KAClC,gBAAAH,EAAA,cAACkB,GAAA,IAAI,CACP,CACD;AACDD,EAAkB,cAAc;"}
1
+ {"version":3,"file":"index109.es.js","sources":["../src/components/ui/form-renderer/components/form-step.tsx"],"sourcesContent":["// components/FormStep.tsx\nimport React from 'react'\nimport { FormSection } from './form-section'\nimport { useFormStructure } from '../context/form-structure'\nimport { Typography } from '@/components/atoms/typography'\n\nexport const FormStep: React.FC = () => {\n const { currentStep, totalSteps, currentStepIndex } = useFormStructure()\n\n return (\n <section className=\"flex flex-col gap-4 flex-1 overflow-scroll pb-16 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:'none'] [scrollbar-width:'none']\">\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"h2\">{currentStep.name}</Typography>\n <Typography variant=\"h3\" className=\"text-light-3\">\n Step {currentStepIndex + 1} of {totalSteps}\n </Typography>\n </div>\n <div className=\"border-b border-light-1\" />\n {currentStep.sections.map((section) => (\n <FormSection key={section.id} section={section} />\n ))}\n </section>\n )\n}\n"],"names":["FormStep","currentStep","totalSteps","currentStepIndex","useFormStructure","React","Typography","section","FormSection"],"mappings":";;;;AAMO,MAAMA,IAAqB,MAAM;AACtC,QAAM,EAAE,aAAAC,GAAa,YAAAC,GAAY,kBAAAC,EAAA,IAAqBC,EAAA;AAEtD,SACEC,gBAAAA,EAAA,cAAC,aAAQ,WAAU,uIAAA,mCAChB,OAAA,EAAI,WAAU,yBACbA,gBAAAA,EAAA,cAACC,GAAA,EAAW,SAAQ,KAAA,GAAML,EAAY,IAAK,GAC3CI,gBAAAA,EAAA,cAACC,KAAW,SAAQ,MAAK,WAAU,eAAA,GAAe,SAC1CH,IAAmB,GAAE,QAAKD,CAClC,CACF,mCACC,OAAA,EAAI,WAAU,2BAA0B,GACxCD,EAAY,SAAS,IAAI,CAACM,MACzBF,gBAAAA,EAAA,cAACG,GAAA,EAAY,KAAKD,EAAQ,IAAI,SAAAA,EAAA,CAAkB,CACjD,CACH;AAEJ;"}
@@ -1,6 +1,6 @@
1
1
  import * as e from "react";
2
2
  import { cn as p } from "./index91.es.js";
3
- import { InputVariants as g } from "./index111.es.js";
3
+ import { InputVariants as g } from "./index132.es.js";
4
4
  import { Typography as E } from "./index19.es.js";
5
5
  import { XCircle as h } from "lucide-react";
6
6
  const v = e.forwardRef(
@@ -1,43 +1,71 @@
1
- import { cva as t } from "class-variance-authority";
2
- const e = t(
3
- "inline-flex items-center justify-evenly p-1 text-muted-foreground",
4
- {
5
- variants: {
6
- variant: {
7
- primary: "bg-light-3 border rounded-xl border-neutral-1",
8
- secondary: "bg-background "
9
- },
10
- size: {
11
- sm: "h-10 rounded-xl ",
12
- md: "h-12 rounded-xl "
13
- }
14
- },
15
- defaultVariants: {
16
- variant: "primary",
17
- size: "md"
1
+ import e, { useState as N } from "react";
2
+ import { Button as n } from "./index9.es.js";
3
+ import { useFormStructure as k } from "./index143.es.js";
4
+ import { useFormValues as C } from "./index144.es.js";
5
+ const V = ({
6
+ onGoToNextStep: i,
7
+ onGoToPreviousStep: o,
8
+ isSubmitting: f,
9
+ testMode: s = !1
10
+ }) => {
11
+ const {
12
+ goToNextStep: l,
13
+ goToPreviousStep: S,
14
+ isFirstStep: r,
15
+ isLastStep: a,
16
+ currentStep: g,
17
+ currentStepIndex: c,
18
+ totalSteps: m
19
+ } = k(), { submitForm: v, validateStep: x, values: u } = C(), { isStepValid: p } = x(g), [y, d] = N(!1), b = async () => {
20
+ if (!i) {
21
+ l();
22
+ return;
18
23
  }
19
- }
20
- ), i = t(
21
- "inline-flex w-full items-center justify-center whitespace-nowrap text-sm text-light-2 font-medium disabled:pointer-events-none disabled:opacity-50 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ",
22
- {
23
- variants: {
24
- size: {
25
- sm: "h-8 text-[14px] p-1.5 ",
26
- md: "h-10 text-[16px] p-2 "
27
- },
28
- variant: {
29
- primary: "rounded-lg data-[state=active]:bg-rest-s1 data-[state=active]:text-primary-1 data-[state=active]:border data-[state=active]:border-neutral-1 data-[state=active]:font-semibold data-[state=active]:shadow-sm ",
30
- secondary: "data-[state=active]:bg-background data-[state=active]:text-primary-1 data-[state=active]:font-semibold data-[state=active]:border-b-2 data-[state=active]:border-primary-2 "
31
- }
24
+ const F = {
25
+ currentStepIndex: c,
26
+ totalSteps: m,
27
+ isFirstStep: r,
28
+ isLastStep: a,
29
+ values: u
30
+ };
31
+ try {
32
+ d(!0);
33
+ const t = i(F);
34
+ t && typeof t.then == "function" && await t, l();
35
+ } catch {
36
+ } finally {
37
+ d(!1);
38
+ }
39
+ }, h = () => {
40
+ o && o({
41
+ currentStepIndex: c,
42
+ totalSteps: m,
43
+ isFirstStep: r,
44
+ isLastStep: a,
45
+ values: u
46
+ }), S();
47
+ };
48
+ return /* @__PURE__ */ e.createElement("div", { className: "w-full flex h-[5rem] items-center justify-center gap-3 border-t border-neutral-1 bg-light-2 px-3" }, /* @__PURE__ */ e.createElement(n, { variant: "secondary", onClick: h }, r ? "Cancel" : "Back"), a ? /* @__PURE__ */ e.createElement(
49
+ n,
50
+ {
51
+ variant: "primary",
52
+ onClick: v,
53
+ disabled: !(p || s),
54
+ loading: f
32
55
  },
33
- defaultVariants: {
56
+ "Submit"
57
+ ) : /* @__PURE__ */ e.createElement(
58
+ n,
59
+ {
34
60
  variant: "primary",
35
- size: "md"
36
- }
37
- }
38
- );
61
+ onClick: b,
62
+ disabled: !(p || s),
63
+ loading: y
64
+ },
65
+ "Save & Next"
66
+ ));
67
+ };
39
68
  export {
40
- i as TabTriggerVariants,
41
- e as TabsVariants
69
+ V as FormNavigation
42
70
  };
43
71
  //# sourceMappingURL=index110.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index110.es.js","sources":["../src/components/molecules/tabs/tabs.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const TabsVariants = cva(\n 'inline-flex items-center justify-evenly p-1 text-muted-foreground',\n {\n variants: {\n variant: {\n primary: 'bg-light-3 border rounded-xl border-neutral-1',\n secondary: 'bg-background ',\n },\n size: {\n sm: 'h-10 rounded-xl ',\n md: 'h-12 rounded-xl ',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nexport const TabTriggerVariants = cva(\n 'inline-flex w-full items-center justify-center whitespace-nowrap text-sm text-light-2 font-medium disabled:pointer-events-none disabled:opacity-50 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ',\n {\n variants: {\n size: {\n sm: 'h-8 text-[14px] p-1.5 ',\n md: 'h-10 text-[16px] p-2 ',\n },\n variant: {\n primary:\n 'rounded-lg data-[state=active]:bg-rest-s1 data-[state=active]:text-primary-1 data-[state=active]:border data-[state=active]:border-neutral-1 data-[state=active]:font-semibold data-[state=active]:shadow-sm ',\n secondary:\n 'data-[state=active]:bg-background data-[state=active]:text-primary-1 data-[state=active]:font-semibold data-[state=active]:border-b-2 data-[state=active]:border-primary-2 ',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n"],"names":["TabsVariants","cva","TabTriggerVariants"],"mappings":";AAEO,MAAMA,IAAeC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,MAEb,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAEaC,IAAqBD;AAAA,EAChC;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
1
+ {"version":3,"file":"index110.es.js","sources":["../src/components/ui/form-renderer/components/form-navigation.tsx"],"sourcesContent":["// components/FormNavigation.tsx\nimport React, { useState } from 'react'\nimport { useFormValues } from '../context/form-values'\nimport { useFormStructure } from '../context/form-structure'\nimport { Button } from '@/components/atoms/button'\nimport { OnNavigate } from '../form.types'\n\ninterface FormNavigationProps {\n onGoToNextStep?: OnNavigate\n onGoToPreviousStep?: OnNavigate\n isSubmitting: boolean\n testMode?: boolean\n}\n\nexport const FormNavigation: React.FC<FormNavigationProps> = ({\n onGoToNextStep,\n onGoToPreviousStep,\n isSubmitting,\n testMode = false,\n}) => {\n const {\n goToNextStep,\n goToPreviousStep,\n isFirstStep,\n isLastStep,\n currentStep,\n currentStepIndex,\n totalSteps,\n } = useFormStructure()\n\n const { submitForm, validateStep, values } = useFormValues()\n\n const { isStepValid } = validateStep(currentStep)\n // const isStepValid = true\n\n const [nextLoading, setNextLoading] = useState<boolean>(false)\n\n const handleNextStep = async () => {\n if (!onGoToNextStep) {\n goToNextStep()\n return\n }\n\n const nextStepData = {\n currentStepIndex,\n totalSteps,\n isFirstStep,\n isLastStep,\n values,\n }\n\n try {\n setNextLoading(true)\n const result = onGoToNextStep(nextStepData)\n\n // Await if it's a Promise, otherwise just continue\n if (result && typeof result.then === 'function') {\n await result\n }\n\n // If successful, proceed to next step\n goToNextStep()\n } catch (error) {\n // Don't proceed to next step if there's an error\n } finally {\n setNextLoading(false)\n }\n }\n\n const handlePreviousStep = () => {\n if (onGoToPreviousStep)\n onGoToPreviousStep({\n currentStepIndex,\n totalSteps,\n isFirstStep,\n isLastStep,\n values,\n })\n goToPreviousStep()\n }\n\n return (\n <div className=\"w-full flex h-[5rem] items-center justify-center gap-3 border-t border-neutral-1 bg-light-2 px-3\">\n <Button variant=\"secondary\" onClick={handlePreviousStep}>\n {isFirstStep ? 'Cancel' : 'Back'}\n </Button>\n\n {isLastStep ? (\n <Button\n variant=\"primary\"\n onClick={submitForm}\n disabled={!(isStepValid || testMode)}\n loading={isSubmitting}\n >\n Submit\n </Button>\n ) : (\n <Button\n variant=\"primary\"\n onClick={handleNextStep}\n disabled={!(isStepValid || testMode)}\n loading={nextLoading}\n >\n Save & Next\n </Button>\n )}\n </div>\n )\n}\n"],"names":["FormNavigation","onGoToNextStep","onGoToPreviousStep","isSubmitting","testMode","goToNextStep","goToPreviousStep","isFirstStep","isLastStep","currentStep","currentStepIndex","totalSteps","useFormStructure","submitForm","validateStep","values","useFormValues","isStepValid","nextLoading","setNextLoading","useState","handleNextStep","nextStepData","result","handlePreviousStep","React","Button"],"mappings":";;;;AAcO,MAAMA,IAAgD,CAAC;AAAA,EAC5D,gBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACEC,EAAA,GAEE,EAAE,YAAAC,GAAY,cAAAC,GAAc,QAAAC,EAAA,IAAWC,EAAA,GAEvC,EAAE,aAAAC,EAAA,IAAgBH,EAAaL,CAAW,GAG1C,CAACS,GAAaC,CAAc,IAAIC,EAAkB,EAAK,GAEvDC,IAAiB,YAAY;AACjC,QAAI,CAACpB,GAAgB;AACnB,MAAAI,EAAA;AACA;AAAA,IACF;AAEA,UAAMiB,IAAe;AAAA,MACnB,kBAAAZ;AAAA,MACA,YAAAC;AAAA,MACA,aAAAJ;AAAA,MACA,YAAAC;AAAA,MACA,QAAAO;AAAA,IAAA;AAGF,QAAI;AACF,MAAAI,EAAe,EAAI;AACnB,YAAMI,IAAStB,EAAeqB,CAAY;AAG1C,MAAIC,KAAU,OAAOA,EAAO,QAAS,cACnC,MAAMA,GAIRlB,EAAA;AAAA,IACF,QAAgB;AAAA,IAEhB,UAAA;AACE,MAAAc,EAAe,EAAK;AAAA,IACtB;AAAA,EACF,GAEMK,IAAqB,MAAM;AAC/B,IAAItB,KACFA,EAAmB;AAAA,MACjB,kBAAAQ;AAAA,MACA,YAAAC;AAAA,MACA,aAAAJ;AAAA,MACA,YAAAC;AAAA,MACA,QAAAO;AAAA,IAAA,CACD,GACHT,EAAA;AAAA,EACF;AAEA,SACEmB,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,sIACZC,GAAA,EAAO,SAAQ,aAAY,SAASF,EAAA,GAClCjB,IAAc,WAAW,MAC5B,GAECC,IACCiB,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAASb;AAAA,MACT,UAAU,EAAEI,KAAeb;AAAA,MAC3B,SAASD;AAAA,IAAA;AAAA,IACV;AAAA,EAAA,IAIDsB,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAASL;AAAA,MACT,UAAU,EAAEJ,KAAeb;AAAA,MAC3B,SAASc;AAAA,IAAA;AAAA,IACV;AAAA,EAAA,CAIL;AAEJ;"}
@@ -1,52 +1,189 @@
1
- import { cva as r } from "class-variance-authority";
2
- const s = r(
3
- ` h-[38px] w-full border flex items-center justify-between gap-1.5 relative mt-1.5 rounded-lg
4
- text-light-2 px-3 py-2
5
- file:border-0 file:bg-transparent
6
- placeholder:font-normal placeholder:text-light-4`,
7
- {
8
- variants: {
9
- isError: {
10
- true: "",
11
- false: ""
12
- },
13
- isFocused: {
14
- true: "",
15
- false: ""
16
- },
17
- disabled: {
18
- true: "bg-light-3 border-neutral-2 cursor-not-allowed",
19
- false: ""
1
+ import e from "react";
2
+ import { Typography as s } from "./index19.es.js";
3
+ import { Checkbox as N } from "@radix-ui/react-checkbox";
4
+ import { AccordionDemo as I } from "./index4.es.js";
5
+ import { Badge as b } from "./index8.es.js";
6
+ import { FormFieldType as a } from "./index145.es.js";
7
+ const x = ({
8
+ structure: u,
9
+ values: o
10
+ }) => {
11
+ const E = (r, n) => {
12
+ if (r.type === a.REPEATABLE_GROUP_FIELD) {
13
+ const t = `${r.id}||`, c = /* @__PURE__ */ new Set();
14
+ Object.keys(o).forEach((i) => {
15
+ if (i.startsWith(t)) {
16
+ const m = i.match(new RegExp(`^${r.id}\\|\\|(\\d+)\\|\\|`));
17
+ m && m[1] && c.add(parseInt(m[1]));
18
+ }
19
+ });
20
+ const l = Array.from(c).sort((i, m) => i - m);
21
+ return l.length === 0 ? [] : l.flatMap((i) => r.options.map((m) => {
22
+ const d = `${r.id}||${i}||${m.id}`, _ = o[d], p = {
23
+ ...m,
24
+ id: d
25
+ };
26
+ return /* @__PURE__ */ e.createElement(e.Fragment, { key: d }, g(p), E(p, _));
27
+ }));
28
+ }
29
+ if (n == null || n === "")
30
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-4" }, "Not answered");
31
+ switch (r.type) {
32
+ case a.SHORT_TEXT:
33
+ case a.LONG_TEXT:
34
+ case a.EMAIL:
35
+ case a.NUMBER:
36
+ case a.MOBILE_NUMBER:
37
+ case a.SINGLE_VIDEO_PICKER_WITH_INPUT:
38
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-1" }, n);
39
+ case a.DATE_PICKER:
40
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-1" }, new Date(n * 1e3).toLocaleDateString());
41
+ case a.SINGLE_COMBOBOX:
42
+ case a.RADIO_GROUP:
43
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-1" }, n);
44
+ case a.CHECKBOX_GROUP: {
45
+ const t = o[r.id];
46
+ return /* @__PURE__ */ e.createElement("div", { className: "flex flex-col gap-2" }, r.options.map((c) => /* @__PURE__ */ e.createElement("div", { key: c, className: "flex items-center space-x-2" }, /* @__PURE__ */ e.createElement(
47
+ N,
48
+ {
49
+ disabled: !0,
50
+ id: c,
51
+ checked: t?.split(",").includes(c)
52
+ }
53
+ ), /* @__PURE__ */ e.createElement(s, { variant: "body1", className: "text-light-4" }, c))));
20
54
  }
21
- },
22
- defaultVariants: {
23
- isError: !1
24
- },
25
- compoundVariants: [
26
- {
27
- isError: !0,
28
- isFocused: !0,
29
- className: "border-danger-2 ring-4 ring-danger-1"
30
- },
31
- {
32
- isError: !1,
33
- isFocused: !0,
34
- className: "border-primary-2 ring-4 ring-primary-1"
35
- },
36
- {
37
- isError: !0,
38
- isFocused: !1,
39
- className: "border-danger-2"
40
- },
41
- {
42
- isError: !1,
43
- isFocused: !1,
44
- className: "border-light-2"
55
+ case a.MULTI_COMBOBOX:
56
+ case a.CREATABLE_MULTI_COMBOBOX:
57
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-1" }, typeof n == "string" ? n.split(",").join(", ") : null);
58
+ case a.RADIO_GROUP_WITH_OPTIONAL_INPUT: {
59
+ const t = n;
60
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-1" }, t.radio_value, t.input_value && t.radio_value === r.inputTriggerOptionValue && `: ${t.input_value}`);
45
61
  }
46
- ]
47
- }
48
- );
62
+ case a.SINGLE_IMAGE_PICKER: {
63
+ const t = n;
64
+ return /* @__PURE__ */ e.createElement("div", { className: "mt-1" }, /* @__PURE__ */ e.createElement(
65
+ "a",
66
+ {
67
+ href: t.public_url,
68
+ target: "_blank",
69
+ rel: "noopener noreferrer"
70
+ },
71
+ /* @__PURE__ */ e.createElement(
72
+ "img",
73
+ {
74
+ src: t.public_url,
75
+ alt: r.name,
76
+ className: "object-cover w-full h-32 rounded-md hover:opacity-90"
77
+ }
78
+ )
79
+ ));
80
+ }
81
+ case a.SINGLE_VIDEO_PICKER: {
82
+ const t = n;
83
+ return /* @__PURE__ */ e.createElement("div", { className: "mt-1" }, /* @__PURE__ */ e.createElement(
84
+ "video",
85
+ {
86
+ src: t.public_url,
87
+ controls: !0,
88
+ className: "w-full h-32 rounded-md"
89
+ },
90
+ /* @__PURE__ */ e.createElement(
91
+ "track",
92
+ {
93
+ kind: "captions",
94
+ label: "English captions",
95
+ srcLang: "en",
96
+ src: "",
97
+ default: !0
98
+ }
99
+ )
100
+ ));
101
+ }
102
+ case a.MULTI_IMAGE_PICKER: {
103
+ const t = n;
104
+ return /* @__PURE__ */ e.createElement("div", { className: "grid grid-cols-1 gap-2 mt-1 sm:grid-cols-3 md:grid-cols-4" }, t.map((c, l) => /* @__PURE__ */ e.createElement(
105
+ "a",
106
+ {
107
+ key: l,
108
+ href: c.public_url,
109
+ target: "_blank",
110
+ rel: "noopener noreferrer"
111
+ },
112
+ /* @__PURE__ */ e.createElement(
113
+ "img",
114
+ {
115
+ src: c.public_url,
116
+ alt: r.name,
117
+ className: "object-cover w-full h-32 rounded-md hover:opacity-90"
118
+ }
119
+ )
120
+ )));
121
+ }
122
+ case a.MULTI_VIDEO_PICKER: {
123
+ const t = n;
124
+ return /* @__PURE__ */ e.createElement("div", { className: "grid grid-cols-1 gap-4 mt-1 sm:grid-cols-2" }, t.map((c, l) => /* @__PURE__ */ e.createElement("div", { key: l, className: "flex flex-col" }, /* @__PURE__ */ e.createElement(
125
+ "video",
126
+ {
127
+ src: c.public_url,
128
+ controls: !0,
129
+ className: "h-32 rounded-md"
130
+ },
131
+ /* @__PURE__ */ e.createElement(
132
+ "track",
133
+ {
134
+ kind: "captions",
135
+ label: "English captions",
136
+ srcLang: "en",
137
+ src: "",
138
+ default: !0
139
+ }
140
+ )
141
+ ))));
142
+ }
143
+ case a.TAGGABLE_MULTI_IMAGE_PICKER:
144
+ case a.TAGGABLE_MULTI_IMAGE_PICKER_WITH_INPUT: {
145
+ const t = n;
146
+ return /* @__PURE__ */ e.createElement("div", { className: "grid grid-cols-1 gap-2 mt-1 sm:grid-cols-3 md:grid-cols-4" }, t.map((c, l) => /* @__PURE__ */ e.createElement("div", { key: l, className: "relative" }, /* @__PURE__ */ e.createElement(
147
+ "a",
148
+ {
149
+ key: l,
150
+ href: c.public_url,
151
+ target: "_blank",
152
+ rel: "noopener noreferrer"
153
+ },
154
+ /* @__PURE__ */ e.createElement(
155
+ "img",
156
+ {
157
+ src: c.public_url,
158
+ alt: r.name,
159
+ className: "object-cover w-full h-32 rounded-md hover:opacity-90"
160
+ }
161
+ )
162
+ ), /* @__PURE__ */ e.createElement(
163
+ b,
164
+ {
165
+ className: "absolute bottom-2 right-2 ",
166
+ variant: "select"
167
+ },
168
+ c.tag && c.tag.length > 8 ? `${c.tag.substring(0, 8)}...` : c.tag
169
+ ))));
170
+ }
171
+ default:
172
+ return /* @__PURE__ */ e.createElement(s, { variant: "body2", className: "text-light-4" }, "Unsupported field type");
173
+ }
174
+ }, g = (r) => /* @__PURE__ */ e.createElement(s, { variant: "body1", className: "mb-1 text-light-3" }, r.name, r.required && /* @__PURE__ */ e.createElement("span", { className: "text-danger-1" }, "*"));
175
+ return /* @__PURE__ */ e.createElement("div", { className: "" }, u.steps.map((r) => /* @__PURE__ */ e.createElement(
176
+ I,
177
+ {
178
+ key: r.id,
179
+ trigger: /* @__PURE__ */ e.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ e.createElement(s, { variant: "h3", className: "text-light-2" }, r.name)),
180
+ triggerProps: { className: "mt-4 " },
181
+ contentProps: { className: "mt-4 p-2 bg-light-2 rounded" },
182
+ content: r.sections.map((n) => /* @__PURE__ */ e.createElement("div", { key: n.id, className: "mb-4" }, /* @__PURE__ */ e.createElement(s, { variant: "h3", className: "mb-2 text-light-2" }, n.name), /* @__PURE__ */ e.createElement("div", { className: "flex flex-col gap-3" }, n.fields.map((t) => /* @__PURE__ */ e.createElement("div", { key: t.id, className: "last:border-b-0" }, g(t), E(t, o[t.id]))))))
183
+ }
184
+ )));
185
+ };
49
186
  export {
50
- s as InputVariants
187
+ x as FormReadOnlyView
51
188
  };
52
189
  //# sourceMappingURL=index111.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index111.es.js","sources":["../src/components/atoms/input/input.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const InputVariants = cva(\n ` h-[38px] w-full border flex items-center justify-between gap-1.5 relative mt-1.5 rounded-lg \n text-light-2 px-3 py-2\n file:border-0 file:bg-transparent\n placeholder:font-normal placeholder:text-light-4`,\n {\n variants: {\n isError: {\n true: '',\n false: '',\n },\n isFocused: {\n true: '',\n false: '',\n },\n disabled: {\n true: 'bg-light-3 border-neutral-2 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n isError: false,\n },\n compoundVariants: [\n {\n isError: true,\n isFocused: true,\n className: 'border-danger-2 ring-4 ring-danger-1',\n },\n {\n isError: false,\n isFocused: true,\n className: 'border-primary-2 ring-4 ring-primary-1',\n },\n {\n isError: true,\n isFocused: false,\n className: 'border-danger-2',\n },\n {\n isError: false,\n isFocused: false,\n className: 'border-light-2',\n },\n ],\n }\n)\n"],"names":["InputVariants","cva"],"mappings":";AAEO,MAAMA,IAAgBC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,WAAW;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,IAEX,kBAAkB;AAAA,MAChB;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"index111.es.js","sources":["../src/components/ui/form-renderer/components/form-read-only-view.tsx"],"sourcesContent":["// components/form-readonly-view.tsx\nimport React, { ReactNode } from 'react'\nimport {\n FormStructure,\n FormValues,\n FormField,\n FormFieldValue,\n AssetValue,\n TaggableAssetValue,\n RadioGroupWithInputFieldValue,\n} from './../form.types'\nimport { Typography } from '@/components/atoms/typography'\nimport { Checkbox } from '@radix-ui/react-checkbox'\nimport { Accordion } from '@/components/atoms/accordion'\nimport { Badge } from '@/components/atoms/badge'\n\nimport { FormFieldType } from '../form.enums'\n\ninterface FormReadOnlyViewProps {\n structure: FormStructure\n values: FormValues\n}\n\nexport const FormReadOnlyView: React.FC<FormReadOnlyViewProps> = ({\n structure,\n values,\n}) => {\n // Helper function to render field value based on type\n const renderFieldValue = (\n field: FormField,\n value: FormFieldValue\n ): ReactNode => {\n // Special handling for repeatable groups, Since values[field.id] wont exist for repeatable groups\n\n if (field.type === FormFieldType.REPEATABLE_GROUP_FIELD) {\n const prefix = `${field.id}||`\n const entryIndices = new Set<number>()\n\n // Extract unique entry indices from the keys present in `values`\n Object.keys(values).forEach((key) => {\n if (key.startsWith(prefix)) {\n // Regex to capture the index part: field.id||INDEX||subfield.id\n // Assuming field.id does not contain characters that need escaping for RegExp\n const match = key.match(new RegExp(`^${field.id}\\\\|\\\\|(\\\\d+)\\\\|\\\\|`))\n if (match && match[1]) {\n entryIndices.add(parseInt(match[1]))\n }\n }\n })\n\n // Sort indices numerically\n const sortedIndices = Array.from(entryIndices).sort((a, b) => a - b)\n\n if (sortedIndices.length === 0) {\n return [] // No entries to render\n }\n\n // Use flatMap to iterate through each entry index, then each sub-field template,\n // and flatten the results into a single array of React elements.\n return sortedIndices.flatMap((entryIndex) => {\n // For each entry, map over its defined sub-fields from the field's options\n return field.options.map((subFieldTemplate) => {\n // Construct the unique key for this specific instance of the sub-field\n const instanceKey = `${field.id}||${entryIndex}||${subFieldTemplate.id}`\n const value = values[instanceKey] // Get the value for this specific instance\n\n // Create a new field object for this instance,\n // using the subFieldTemplate and overriding its 'id' with the unique instanceKey.\n const instanceSpecificSubField: FormField = {\n ...subFieldTemplate,\n id: instanceKey,\n }\n\n return (\n <React.Fragment key={instanceKey}>\n {renderQuestionLabel(instanceSpecificSubField)}\n {renderFieldValue(instanceSpecificSubField, value)}\n </React.Fragment>\n )\n })\n })\n }\n\n if (value === undefined || value === null || value === '') {\n return (\n <Typography variant=\"body2\" className=\"text-light-4\">\n Not answered\n </Typography>\n )\n }\n\n switch (field.type) {\n case FormFieldType.SHORT_TEXT:\n case FormFieldType.LONG_TEXT:\n case FormFieldType.EMAIL:\n case FormFieldType.NUMBER:\n case FormFieldType.MOBILE_NUMBER:\n case FormFieldType.SINGLE_VIDEO_PICKER_WITH_INPUT:\n return (\n <Typography variant=\"body2\" className=\"text-light-1\">\n {value as string}\n </Typography>\n )\n\n case FormFieldType.DATE_PICKER:\n return (\n <Typography variant=\"body2\" className=\"text-light-1\">\n {new Date((value as number) * 1000).toLocaleDateString()}\n </Typography>\n )\n\n case FormFieldType.SINGLE_COMBOBOX:\n case FormFieldType.RADIO_GROUP:\n return (\n <Typography variant=\"body2\" className=\"text-light-1\">\n {value as string}\n </Typography>\n )\n\n case FormFieldType.CHECKBOX_GROUP: {\n const value = values[field.id] as string\n return (\n <div className=\"flex flex-col gap-2\">\n {field.options.map((option) => {\n return (\n <div key={option} className=\"flex items-center space-x-2\">\n <Checkbox\n disabled\n id={option}\n checked={value?.split(',').includes(option)}\n />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n )\n })}\n </div>\n )\n }\n case FormFieldType.MULTI_COMBOBOX:\n case FormFieldType.CREATABLE_MULTI_COMBOBOX:\n return (\n <Typography variant=\"body2\" className=\"text-light-1\">\n {typeof value === 'string' ? value.split(',').join(', ') : null}\n </Typography>\n )\n\n case FormFieldType.RADIO_GROUP_WITH_OPTIONAL_INPUT: {\n const radioValue = value as RadioGroupWithInputFieldValue\n return (\n <Typography variant=\"body2\" className=\"text-light-1\">\n {radioValue.radio_value}\n {radioValue.input_value &&\n radioValue.radio_value === field.inputTriggerOptionValue &&\n `: ${radioValue.input_value}`}\n </Typography>\n )\n }\n\n // For single image/video uploads\n case FormFieldType.SINGLE_IMAGE_PICKER: {\n const asset = value as AssetValue\n return (\n <div className=\"mt-1\">\n <a\n href={asset.public_url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img\n src={asset.public_url}\n alt={field.name}\n className=\"object-cover w-full h-32 rounded-md hover:opacity-90\"\n />\n </a>\n </div>\n )\n }\n\n case FormFieldType.SINGLE_VIDEO_PICKER: {\n const asset = value as AssetValue\n return (\n <div className=\"mt-1\">\n <video\n src={asset.public_url}\n controls\n className=\"w-full h-32 rounded-md\"\n >\n <track\n kind=\"captions\"\n label=\"English captions\"\n srcLang=\"en\"\n src=\"\"\n default\n />\n </video>\n </div>\n )\n }\n\n case FormFieldType.MULTI_IMAGE_PICKER: {\n const assets = value as AssetValue[]\n return (\n <div className=\"grid grid-cols-1 gap-2 mt-1 sm:grid-cols-3 md:grid-cols-4\">\n {assets.map((asset, index) => (\n <a\n key={index}\n href={asset.public_url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img\n src={asset.public_url}\n alt={field.name}\n className=\"object-cover w-full h-32 rounded-md hover:opacity-90\"\n />\n </a>\n ))}\n </div>\n )\n }\n\n case FormFieldType.MULTI_VIDEO_PICKER: {\n const assets = value as AssetValue[]\n return (\n <div className=\"grid grid-cols-1 gap-4 mt-1 sm:grid-cols-2\">\n {assets.map((asset, index) => (\n <div key={index} className=\"flex flex-col\">\n <video\n src={asset.public_url}\n controls\n className=\"h-32 rounded-md\"\n >\n <track\n kind=\"captions\"\n label=\"English captions\"\n srcLang=\"en\"\n src=\"\"\n default\n />\n </video>\n </div>\n ))}\n </div>\n )\n }\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER:\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER_WITH_INPUT: {\n const taggedAssets = value as TaggableAssetValue[]\n return (\n <div className=\"grid grid-cols-1 gap-2 mt-1 sm:grid-cols-3 md:grid-cols-4\">\n {taggedAssets.map((asset, index) => (\n <div key={index} className=\"relative\">\n <a\n key={index}\n href={asset.public_url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img\n src={asset.public_url}\n alt={field.name}\n className=\"object-cover w-full h-32 rounded-md hover:opacity-90\"\n />\n </a>\n <Badge\n className=\"absolute bottom-2 right-2 \"\n variant={'select'}\n >\n {asset.tag && asset.tag.length > 8\n ? `${asset.tag.substring(0, 8)}...`\n : asset.tag}\n </Badge>\n </div>\n ))}\n </div>\n )\n }\n\n default:\n return (\n <Typography variant=\"body2\" className=\"text-light-4\">\n Unsupported field type\n </Typography>\n )\n }\n }\n\n const renderQuestionLabel = (field: FormField): ReactNode => {\n return (\n <Typography variant=\"body1\" className=\"mb-1 text-light-3\">\n {field.name}\n {field.required && <span className=\"text-danger-1\">*</span>}\n </Typography>\n )\n }\n\n return (\n <div className=\"\">\n {structure.steps.map((step) => (\n <Accordion\n key={step.id}\n trigger={\n <div className=\"flex items-center gap-2\">\n <Typography variant=\"h3\" className=\"text-light-2\">\n {step.name}\n </Typography>\n </div>\n }\n triggerProps={{ className: 'mt-4 ' }}\n contentProps={{ className: 'mt-4 p-2 bg-light-2 rounded' }}\n content={step.sections.map((section) => (\n <div key={section.id} className=\"mb-4\">\n <Typography variant=\"h3\" className=\"mb-2 text-light-2\">\n {section.name}\n </Typography>\n\n <div className=\"flex flex-col gap-3\">\n {section.fields.map((field) => (\n <div key={field.id} className=\"last:border-b-0\">\n {renderQuestionLabel(field)}\n {renderFieldValue(field, values[field.id])}\n </div>\n ))}\n </div>\n </div>\n ))}\n />\n ))}\n </div>\n )\n}\n"],"names":["FormReadOnlyView","structure","values","renderFieldValue","field","value","FormFieldType","prefix","entryIndices","key","match","sortedIndices","a","b","entryIndex","subFieldTemplate","instanceKey","instanceSpecificSubField","React","renderQuestionLabel","Typography","option","Checkbox","radioValue","asset","assets","index","taggedAssets","Badge","step","Accordion","section"],"mappings":"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"}