bonkers-ui 2.0.8 → 2.0.10

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 (68) hide show
  1. package/README.md +3 -3
  2. package/UiNavigationSteps-N3juxg3H.js +103 -0
  3. package/UiNavigationSteps-N3juxg3H.js.map +1 -0
  4. package/assets/UiInputRange.css +1 -1
  5. package/assets/UiNavigationSteps.css +1 -0
  6. package/components/UiAccordion/UiAccordion.context.js +27 -27
  7. package/components/UiAccordion/UiAccordion.context.js.map +1 -1
  8. package/components/UiBerRank/UiBerRank.js +87 -90
  9. package/components/UiBerRank/UiBerRank.js.map +1 -1
  10. package/components/UiCheckbox/UiCheckbox.js +36 -36
  11. package/components/UiCheckbox/UiCheckbox.js.map +1 -1
  12. package/components/UiIconBadge/_types.d.ts +1 -1
  13. package/components/UiIconBadge/_types.js.map +1 -1
  14. package/components/UiInput/UiInput.base.js +2 -2
  15. package/components/UiInput/UiInput.base.js.map +1 -1
  16. package/components/UiInput/UiInputText.js +1 -1
  17. package/components/UiInput/UiInputText.js.map +1 -1
  18. package/components/UiInput/_types.d.ts +2 -1
  19. package/components/UiInput/_types.js +1 -1
  20. package/components/UiInput/_types.js.map +1 -1
  21. package/components/UiInputRange/UiInputRange.js +66 -51
  22. package/components/UiInputRange/UiInputRange.js.map +1 -1
  23. package/components/UiNavigationSteps/UiNavigationStep.d.ts +3 -0
  24. package/components/UiNavigationSteps/UiNavigationStep.js +115 -0
  25. package/components/UiNavigationSteps/UiNavigationStep.js.map +1 -0
  26. package/components/UiNavigationSteps/UiNavigationSteps.d.ts +9 -0
  27. package/components/UiNavigationSteps/UiNavigationSteps.js +9 -0
  28. package/components/UiNavigationSteps/UiNavigationSteps.js.map +1 -0
  29. package/components/UiNavigationSteps/_types.d.ts +29 -0
  30. package/components/UiNavigationSteps/_types.js +5 -0
  31. package/components/UiNavigationSteps/_types.js.map +1 -0
  32. package/components/UiNavigationSteps/index.d.ts +3 -0
  33. package/components/UiNavigationSteps/index.js +9 -0
  34. package/components/UiNavigationSteps/index.js.map +1 -0
  35. package/components/UiPills/UiPills.js +1 -1
  36. package/components/UiPills/UiPills.js.map +1 -1
  37. package/components/UiPlainRadio/UiPlainRadio.js +16 -5
  38. package/components/UiPlainRadio/UiPlainRadio.js.map +1 -1
  39. package/components/UiProductCard/UiProductCard.js +1 -1
  40. package/components/UiProductCard/UiProductCard.js.map +1 -1
  41. package/components/UiProgress/UiProgress.js +1 -1
  42. package/components/UiProgress/UiProgress.js.map +1 -1
  43. package/components/UiRadioFancy/UiRadioFancy.js +2 -2
  44. package/components/UiRadioFancy/UiRadioFancy.js.map +1 -1
  45. package/components/UiSelect/UiSelect.d.ts +1 -0
  46. package/components/UiSelect/UiSelect.js +57 -62
  47. package/components/UiSelect/UiSelect.js.map +1 -1
  48. package/components/UiSkeleton/UiSkeleton.js +42 -42
  49. package/components/UiSkeleton/UiSkeleton.js.map +1 -1
  50. package/components/UiTable/UiTable.js +9 -9
  51. package/components/UiTable/UiTable.js.map +1 -1
  52. package/components/UiTable/UiTableCell.d.ts +1 -0
  53. package/components/UiTable/UiTableCell.js +17 -9
  54. package/components/UiTable/UiTableCell.js.map +1 -1
  55. package/components/UiTable/UiTableRow.d.ts +1 -4
  56. package/components/UiTable/UiTableRow.js +8 -12
  57. package/components/UiTable/UiTableRow.js.map +1 -1
  58. package/components/UiTable/_types.d.ts +0 -3
  59. package/components/UiTable/_types.js +2 -3
  60. package/components/UiTable/_types.js.map +1 -1
  61. package/components/UiTable/index.d.ts +1 -1
  62. package/components/UiTable/index.js +6 -7
  63. package/components/UiTabs/UiTabs.js +1 -1
  64. package/components/UiTabs/UiTabs.js.map +1 -1
  65. package/components/UiToggle/UiToggle.js +27 -27
  66. package/components/UiToggle/UiToggle.js.map +1 -1
  67. package/eslint.config.mjs +33 -1
  68. package/package.json +21 -20
@@ -11,5 +11,5 @@ export interface IUiIconBadgeProps {
11
11
  size?: BadgeSize;
12
12
  kind?: EIconBadgeKind;
13
13
  children: React.ReactNode;
14
- className: string;
14
+ className?: string;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sources":["../../../src/components/UiIconBadge/_types.ts"],"sourcesContent":["import { ESize } from \"../../_types/sizing\";\n\nexport type BadgeSize = ESize.SM | ESize.MD | ESize.LG | ESize.XL;\n\nexport enum EIconBadgeKind {\n\tPRIMARY = \"primary\",\n\tLIGHT = \"light\",\n\tDARK = \"dark\",\n\tWARNING = \"warning\",\n\tERROR = \"error\"\n}\n\nexport interface IUiIconBadgeProps {\n\tsize?: BadgeSize;\n\tkind?: EIconBadgeKind;\n\tchildren: React.ReactNode;\n\tclassName: string;\n}\n"],"names":["EIconBadgeKind"],"mappings":"AAIY,IAAAA,sBAAAA,OACXA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,UAAU,WACVA,EAAA,QAAQ,SALGA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"_types.js","sources":["../../../src/components/UiIconBadge/_types.ts"],"sourcesContent":["import { ESize } from \"../../_types/sizing\";\n\nexport type BadgeSize = ESize.SM | ESize.MD | ESize.LG | ESize.XL;\n\nexport enum EIconBadgeKind {\n\tPRIMARY = \"primary\",\n\tLIGHT = \"light\",\n\tDARK = \"dark\",\n\tWARNING = \"warning\",\n\tERROR = \"error\"\n}\n\nexport interface IUiIconBadgeProps {\n\tsize?: BadgeSize;\n\tkind?: EIconBadgeKind;\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n"],"names":["EIconBadgeKind"],"mappings":"AAIY,IAAAA,sBAAAA,OACXA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,UAAU,WACVA,EAAA,QAAQ,SALGA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -20,7 +20,7 @@ const h = ({ postIcon: o, preIcon: t, className: l, kind: a = e.DEFAULT, ...r })
20
20
  "hover:border-secondary-alt-700",
21
21
  "focus-within:outline-4",
22
22
  "focus-within:outline-primary-300",
23
- "active:ring focus-within:ring-secondary-alt-700",
23
+ "focus-within:ring-secondary-alt-700 active:ring",
24
24
  a && n[a],
25
25
  {
26
26
  "bg-white": !r.disabled,
@@ -33,7 +33,7 @@ const h = ({ postIcon: o, preIcon: t, className: l, kind: a = e.DEFAULT, ...r })
33
33
  /* @__PURE__ */ d(
34
34
  "input",
35
35
  {
36
- className: i("bg-transparent outline-hidden placeholder:text-secondary-alt-600 w-full"),
36
+ className: i("w-full bg-transparent outline-hidden placeholder:text-secondary-alt-600"),
37
37
  ...r
38
38
  }
39
39
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"UiInput.base.js","sources":["../../../src/components/UiInput/UiInput.base.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiTypography } from \"../UiTypography\";\nimport { EInputKind } from \"./_types\";\nimport cx from \"classnames\";\n\nexport type TUiInputBaseProps = {\n\tid: string;\n\tpostIcon?: React.ReactNode;\n\tpreIcon?: React.ReactNode;\n\tkind?: EInputKind;\n\tclassName?: string;\n\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const UiInputBase: React.FC<\n\tTUiInputBaseProps\n> = ({ postIcon, preIcon, className, kind = EInputKind.DEFAULT, ...rest } ) => {\n\n\tconst stateClasses = {\n\t\t[EInputKind.DEFAULT]: \"border-secondary-alt-600\",\n\t\t[EInputKind.ERROR]: \"border-error\",\n\t\t[EInputKind.SUCCESS]: \"border-primary-600\",\n\t};\n\n\treturn (\n\t\t<UiTypography\n\t\t\ttag=\"label\"\n\t\t\thtmlFor={ rest.id }\n\t\t\tclassName={\n\t\t\t\tcx(\n\t\t\t\t\t\"ui-input-wrapper\",\n\t\t\t\t\t\"flex flex-row items-center gap-sm rounded-xl border p-sm\",\n\t\t\t\t\t\"hover:border-secondary-alt-700\",\n\t\t\t\t\t\"focus-within:outline-4\",\n\t\t\t\t\t\"focus-within:outline-primary-300\",\n\t\t\t\t\t\"active:ring focus-within:ring-secondary-alt-700\",\n\t\t\t\t\tkind && stateClasses[kind],\n\t\t\t\t\t{\n\t\t\t\t\t\t\"bg-white\": !rest.disabled,\n\t\t\t\t\t\t\"border-secondary-alt-300 bg-secondary-alt-200\": rest.disabled,\n\t\t\t\t\t},\n\t\t\t\t\tclassName\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ preIcon\n\t\t\t\t? preIcon\n\t\t\t\t: null }\n\t\t\t<input\n\t\t\t\tclassName={ cx(\"bg-transparent outline-hidden placeholder:text-secondary-alt-600 w-full\") }\n\t\t\t\t{ ...rest }\n\t\t\t/>\n\n\t\t\t{ postIcon\n\t\t\t\t? postIcon\n\t\t\t\t: null }\n\n\t\t</UiTypography>\n\t);\n};\n"],"names":["UiInputBase","postIcon","preIcon","className","kind","EInputKind","rest","stateClasses","jsxs","UiTypography","cx","jsx"],"mappings":";;;;;AAca,MAAAA,IAET,CAAC,EAAE,UAAAC,GAAU,SAAAC,GAAS,WAAAC,GAAW,MAAAC,IAAOC,EAAW,SAAS,GAAGC,QAAY;AAE9E,QAAMC,IAAe;AAAA,IACpB,CAACF,EAAW,OAAO,GAAG;AAAA,IACtB,CAACA,EAAW,KAAK,GAAG;AAAA,IACpB,CAACA,EAAW,OAAO,GAAG;AAAA,EACvB;AAGC,SAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,KAAI;AAAA,MACJ,SAAUH,EAAK;AAAA,MACf,WACCI;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAN,KAAQG,EAAaH,CAAI;AAAA,QACzB;AAAA,UACC,YAAY,CAACE,EAAK;AAAA,UAClB,iDAAiDA,EAAK;AAAA,QACvD;AAAA,QACAH;AAAA,MACD;AAAA,MAGC,UAAA;AAAA,QAAAD,KAEC;AAAA,QACH,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAYD,EAAG,yEAAyE;AAAA,YACtF,GAAGJ;AAAA,UAAA;AAAA,QACN;AAAA,QAEEL,KAEC;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEF;"}
1
+ {"version":3,"file":"UiInput.base.js","sources":["../../../src/components/UiInput/UiInput.base.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiTypography } from \"../UiTypography\";\nimport { EInputKind } from \"./_types\";\nimport cx from \"classnames\";\n\nexport type TUiInputBaseProps = {\n\tid: string;\n\tpostIcon?: React.ReactNode;\n\tpreIcon?: React.ReactNode;\n\tkind?: EInputKind;\n\tclassName?: string;\n\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const UiInputBase: React.FC<\n\tTUiInputBaseProps\n> = ({ postIcon, preIcon, className, kind = EInputKind.DEFAULT, ...rest } ) => {\n\n\tconst stateClasses = {\n\t\t[EInputKind.DEFAULT]: \"border-secondary-alt-600\",\n\t\t[EInputKind.ERROR]: \"border-error\",\n\t\t[EInputKind.SUCCESS]: \"border-primary-600\",\n\t};\n\n\treturn (\n\t\t<UiTypography\n\t\t\ttag=\"label\"\n\t\t\thtmlFor={ rest.id }\n\t\t\tclassName={\n\t\t\t\tcx(\n\t\t\t\t\t\"ui-input-wrapper\",\n\t\t\t\t\t\"flex flex-row items-center gap-sm rounded-xl border p-sm\",\n\t\t\t\t\t\"hover:border-secondary-alt-700\",\n\t\t\t\t\t\"focus-within:outline-4\",\n\t\t\t\t\t\"focus-within:outline-primary-300\",\n\t\t\t\t\t\"focus-within:ring-secondary-alt-700 active:ring\",\n\t\t\t\t\tkind && stateClasses[kind],\n\t\t\t\t\t{\n\t\t\t\t\t\t\"bg-white\": !rest.disabled,\n\t\t\t\t\t\t\"border-secondary-alt-300 bg-secondary-alt-200\": rest.disabled,\n\t\t\t\t\t},\n\t\t\t\t\tclassName\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ preIcon\n\t\t\t\t? preIcon\n\t\t\t\t: null }\n\t\t\t<input\n\t\t\t\tclassName={ cx(\"w-full bg-transparent outline-hidden placeholder:text-secondary-alt-600\") }\n\t\t\t\t{ ...rest }\n\t\t\t/>\n\n\t\t\t{ postIcon\n\t\t\t\t? postIcon\n\t\t\t\t: null }\n\n\t\t</UiTypography>\n\t);\n};\n"],"names":["UiInputBase","postIcon","preIcon","className","kind","EInputKind","rest","stateClasses","jsxs","UiTypography","cx","jsx"],"mappings":";;;;;AAca,MAAAA,IAET,CAAC,EAAE,UAAAC,GAAU,SAAAC,GAAS,WAAAC,GAAW,MAAAC,IAAOC,EAAW,SAAS,GAAGC,QAAY;AAE9E,QAAMC,IAAe;AAAA,IACpB,CAACF,EAAW,OAAO,GAAG;AAAA,IACtB,CAACA,EAAW,KAAK,GAAG;AAAA,IACpB,CAACA,EAAW,OAAO,GAAG;AAAA,EACvB;AAGC,SAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,KAAI;AAAA,MACJ,SAAUH,EAAK;AAAA,MACf,WACCI;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAN,KAAQG,EAAaH,CAAI;AAAA,QACzB;AAAA,UACC,YAAY,CAACE,EAAK;AAAA,UAClB,iDAAiDA,EAAK;AAAA,QACvD;AAAA,QACAH;AAAA,MACD;AAAA,MAGC,UAAA;AAAA,QAAAD,KAEC;AAAA,QACH,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAYD,EAAG,yEAAyE;AAAA,YACtF,GAAGJ;AAAA,UAAA;AAAA,QACN;AAAA,QAEEL,KAEC;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEF;"}
@@ -21,7 +21,7 @@ const j = ({
21
21
  {
22
22
  className: d(
23
23
  "transition-all duration-300 ease-in-out",
24
- "max-h-0 opacity-0 overflow-hidden gap-xxs mt-xxs",
24
+ "mt-xxs max-h-0 gap-xxs overflow-hidden opacity-0",
25
25
  "data-[status=true]:max-h-full data-[status=true]:opacity-100"
26
26
  ),
27
27
  lineHeight: !0,
@@ -1 +1 @@
1
- {"version":3,"file":"UiInputText.js","sources":["../../../src/components/UiInput/UiInputText.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiInputBase, type TUiInputBaseProps } from \"./UiInput.base.tsx\";\nimport { UiInputTitled } from \"./UiInputTitled.tsx\";\nimport { EInputKind } from \"./_types.ts\";\nimport { EColors, ETypographySizes, UiTypography } from \"../UiTypography/index.ts\";\nimport cx from \"classnames\";\n\ntype TUiInputTextProps = {\n\tid: string;\n\tkind?: EInputKind;\n\tstatusMessage?: string | React.ReactElement;\n\ttitle?: React.ReactNode;\n\tsubtitle?: React.ReactNode;\n\tinfoComponent?: React.ReactNode;\n} & TUiInputBaseProps;\n\nexport const UiInputText: React.FC<TUiInputTextProps> = ({\n\tkind,\n\ttitle,\n\tinfoComponent,\n\tsubtitle,\n\tstatusMessage,\n\t...rest\n}) => {\n\treturn (\n\t\t<UiInputTitled title={ title } subtitle={ subtitle } infoComponent={ infoComponent } >\n\t\t\t<UiInputBase kind={ kind } { ...rest }/>\n\t\t\t{ statusMessage\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography\n\t\t\t\t\t\tclassName={ cx(\n\t\t\t\t\t\t\t\"transition-all duration-300 ease-in-out\",\n\t\t\t\t\t\t\t\"max-h-0 opacity-0 overflow-hidden gap-xxs mt-xxs\",\n\t\t\t\t\t\t\t\"data-[status=true]:max-h-full data-[status=true]:opacity-100\"\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlineHeight\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tkind === EInputKind.ERROR\n\t\t\t\t\t\t\t\t? EColors.ERROR\n\t\t\t\t\t\t\t\t: EColors.PRIMARY\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsize={ ETypographySizes.SM }\n\t\t\t\t\t\tdata-status={ !!statusMessage }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ statusMessage }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\n\t\t</UiInputTitled>\n\t);\n};\n"],"names":["UiInputText","kind","title","infoComponent","subtitle","statusMessage","rest","jsxs","UiInputTitled","jsx","UiInputBase","UiTypography","cx","EInputKind","EColors","ETypographySizes"],"mappings":";;;;;;;;;AAgBO,MAAMA,IAA2C,CAAC;AAAA,EACxD,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACJ,MAEG,gBAAAC,EAAAC,GAAA,EAAc,OAAAN,GAAgB,UAAAE,GAAsB,eAAAD,GACpD,UAAA;AAAA,EAAC,gBAAAM,EAAAC,GAAA,EAAY,MAAAT,GAAgB,GAAGK,EAAM,CAAA;AAAA,EACpCD,IAEA,gBAAAI;AAAA,IAACE;AAAA,IAAA;AAAA,MACA,WAAYC;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACA,YAAU;AAAA,MACV,OACCX,MAASY,EAAW,QACjBC,EAAQ,QACRA,EAAQ;AAAA,MAEZ,MAAOC,EAAiB;AAAA,MACxB,eAAc,CAAC,CAACV;AAAA,MAEd,UAAAA;AAAA,IAAA;AAAA,EAAA,IAGF;AAAA,GAEJ;"}
1
+ {"version":3,"file":"UiInputText.js","sources":["../../../src/components/UiInput/UiInputText.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiInputBase, type TUiInputBaseProps } from \"./UiInput.base.tsx\";\nimport { UiInputTitled } from \"./UiInputTitled.tsx\";\nimport { EInputKind } from \"./_types.ts\";\nimport { EColors, ETypographySizes, UiTypography } from \"../UiTypography/index.ts\";\nimport cx from \"classnames\";\n\ntype TUiInputTextProps = {\n\tid: string;\n\tkind?: EInputKind;\n\tstatusMessage?: string | React.ReactElement;\n\ttitle?: React.ReactNode;\n\tsubtitle?: React.ReactNode;\n\tinfoComponent?: React.ReactNode;\n} & TUiInputBaseProps;\n\nexport const UiInputText: React.FC<TUiInputTextProps> = ({\n\tkind,\n\ttitle,\n\tinfoComponent,\n\tsubtitle,\n\tstatusMessage,\n\t...rest\n}) => {\n\treturn (\n\t\t<UiInputTitled title={ title } subtitle={ subtitle } infoComponent={ infoComponent } >\n\t\t\t<UiInputBase kind={ kind } { ...rest }/>\n\t\t\t{ statusMessage\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography\n\t\t\t\t\t\tclassName={ cx(\n\t\t\t\t\t\t\t\"transition-all duration-300 ease-in-out\",\n\t\t\t\t\t\t\t\"mt-xxs max-h-0 gap-xxs overflow-hidden opacity-0\",\n\t\t\t\t\t\t\t\"data-[status=true]:max-h-full data-[status=true]:opacity-100\"\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlineHeight\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tkind === EInputKind.ERROR\n\t\t\t\t\t\t\t\t? EColors.ERROR\n\t\t\t\t\t\t\t\t: EColors.PRIMARY\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsize={ ETypographySizes.SM }\n\t\t\t\t\t\tdata-status={ !!statusMessage }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ statusMessage }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\n\t\t</UiInputTitled>\n\t);\n};\n"],"names":["UiInputText","kind","title","infoComponent","subtitle","statusMessage","rest","jsxs","UiInputTitled","jsx","UiInputBase","UiTypography","cx","EInputKind","EColors","ETypographySizes"],"mappings":";;;;;;;;;AAgBO,MAAMA,IAA2C,CAAC;AAAA,EACxD,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACJ,MAEG,gBAAAC,EAAAC,GAAA,EAAc,OAAAN,GAAgB,UAAAE,GAAsB,eAAAD,GACpD,UAAA;AAAA,EAAC,gBAAAM,EAAAC,GAAA,EAAY,MAAAT,GAAgB,GAAGK,EAAM,CAAA;AAAA,EACpCD,IAEA,gBAAAI;AAAA,IAACE;AAAA,IAAA;AAAA,MACA,WAAYC;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACA,YAAU;AAAA,MACV,OACCX,MAASY,EAAW,QACjBC,EAAQ,QACRA,EAAQ;AAAA,MAEZ,MAAOC,EAAiB;AAAA,MACxB,eAAc,CAAC,CAACV;AAAA,MAEd,UAAAA;AAAA,IAAA;AAAA,EAAA,IAGF;AAAA,GAEJ;"}
@@ -1,5 +1,6 @@
1
1
  export declare enum EInputKind {
2
2
  DEFAULT = "DEFAULT",
3
3
  ERROR = "ERROR",
4
- SUCCESS = "SUCCESS"
4
+ SUCCESS = "SUCCESS",
5
+ WARNING = "WARNING"
5
6
  }
@@ -1,4 +1,4 @@
1
- var S = /* @__PURE__ */ ((R) => (R.DEFAULT = "DEFAULT", R.ERROR = "ERROR", R.SUCCESS = "SUCCESS", R))(S || {});
1
+ var S = /* @__PURE__ */ ((R) => (R.DEFAULT = "DEFAULT", R.ERROR = "ERROR", R.SUCCESS = "SUCCESS", R.WARNING = "WARNING", R))(S || {});
2
2
  export {
3
3
  S as EInputKind
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sources":["../../../src/components/UiInput/_types.ts"],"sourcesContent":["export enum EInputKind {\n\tDEFAULT = \"DEFAULT\",\n\tERROR = \"ERROR\",\n\tSUCCESS = \"SUCCESS\",\n}\n"],"names":["EInputKind"],"mappings":"AAAY,IAAAA,sBAAAA,OACXA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,UAAU,WAHCA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"_types.js","sources":["../../../src/components/UiInput/_types.ts"],"sourcesContent":["export enum EInputKind {\n\tDEFAULT = \"DEFAULT\",\n\tERROR = \"ERROR\",\n\tSUCCESS = \"SUCCESS\",\n\tWARNING = \"WARNING\",\n}\n"],"names":["EInputKind"],"mappings":"AAAY,IAAAA,sBAAAA,OACXA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,UAAU,WAJCA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,81 +1,96 @@
1
- import { jsxs as M, jsx as n } from "react/jsx-runtime";
2
- import m, { useState as b, useCallback as O, useEffect as S } from "react";
3
- import g from "classnames";
4
- import '../../assets/UiInputRange.css';const j = "_thumb_hkko1_18", T = {
5
- thumb: j
6
- }, $ = ({
1
+ import { jsxs as V, jsx as l } from "react/jsx-runtime";
2
+ import f, { useState as z, useCallback as $, useEffect as T } from "react";
3
+ import x from "classnames";
4
+ import '../../assets/UiInputRange.css';const E = "_thumb_hkko1_18", O = {
5
+ thumb: E
6
+ }, L = ({
7
7
  value: s,
8
- min: r,
9
- max: a,
10
- step: x,
11
- onChangeHandler: y,
12
- className: v,
13
- ...l
8
+ min: a,
9
+ max: c,
10
+ step: p,
11
+ onChangeHandler: v,
12
+ className: y,
13
+ ...h
14
14
  }) => {
15
- const e = m.useRef(null), c = m.useRef(null), [k, R] = b(0), [w, N] = b(0), i = O(() => {
16
- var h, f;
17
- if (!e.current || !c.current) return;
18
- const t = parseFloat(String(s)), o = parseFloat(String(r)), z = parseFloat(String(a)), C = ((h = c.current) == null ? void 0 : h.getBoundingClientRect().width) ?? 0, u = ((f = e.current) == null ? void 0 : f.getBoundingClientRect().width) ?? 0;
19
- if (u === 0) return;
20
- const F = (t - o) / (z - o) * 100, p = C / u * 100, d = Math.max(0, Math.min(100, F * (1 - p / 100)));
21
- R(d), N(d + p / 2);
22
- }, [r, a, s]);
23
- S(() => {
24
- i();
15
+ const n = f.useRef(null), S = f.useRef(null), d = f.useRef(null), m = M(s, a, c), [g, F] = z(
16
+ `calc(${m}% - ${m * 32 / 100}px)`
17
+ ), b = $(() => {
18
+ const t = parseFloat(String(s)), e = parseFloat(String(a)), o = parseFloat(String(c)), r = (t - e) / (o - e) * 100;
19
+ F(`calc(${r}% - ${r * 32 / 100}px)`);
20
+ }, [a, c, s]);
21
+ T(() => {
22
+ b();
25
23
  const t = new ResizeObserver(() => {
26
- i();
24
+ b();
27
25
  });
28
- return e.current && t.observe(e.current), () => {
26
+ return n.current && t.observe(n.current), () => {
29
27
  t.disconnect();
30
28
  };
31
- }, [i]);
32
- const P = (t) => {
33
- if (t === s) return;
34
- const o = parseFloat(t.toFixed(10));
35
- y(o);
29
+ }, [b]);
30
+ const k = (t) => {
31
+ const e = +t.target.value;
32
+ if (e === s) return;
33
+ const o = parseFloat(e.toFixed(10));
34
+ v(o);
35
+ }, w = (t) => {
36
+ if (!d.current || !n.current) return;
37
+ const e = d.current.getBoundingClientRect(), o = t.clientX - e.left, r = e.width, i = o / r * 100, u = parseFloat(String(a)), N = parseFloat(String(c)), R = u + i / 100 * (N - u), C = Math.round(R / Number(p)) * Number(p);
38
+ if (n.current) {
39
+ n.current.value = String(C);
40
+ const P = new Event("input", {
41
+ bubbles: !0
42
+ });
43
+ n.current.dispatchEvent(P);
44
+ }
36
45
  };
37
- return /* @__PURE__ */ M(
46
+ function M(t, e, o) {
47
+ const r = parseFloat(String(t)), i = parseFloat(String(e)), u = parseFloat(String(o));
48
+ return (r - i) / (u - i) * 100;
49
+ }
50
+ return /* @__PURE__ */ V(
38
51
  "div",
39
52
  {
40
- className: g(
53
+ ref: d,
54
+ className: x(
41
55
  "relative box-content h-xl py-xxs",
42
- l.disabled && "opacity-60 cursor-default pointer-events-none",
43
- v
56
+ h.disabled && "pointer-events-none cursor-default opacity-60",
57
+ y
44
58
  ),
59
+ onClick: w,
45
60
  children: [
46
- /* @__PURE__ */ n(
61
+ /* @__PURE__ */ l(
47
62
  "input",
48
63
  {
49
- ...l,
50
- ref: e,
51
- className: "absolute left-0 top-0 size-full cursor-pointer appearance-none bg-transparent",
64
+ ...h,
65
+ ref: n,
66
+ className: "absolute top-0 left-0 size-full cursor-pointer appearance-none bg-transparent",
52
67
  style: {
53
68
  touchAction: "none"
54
69
  },
55
70
  type: "range",
56
- min: r,
57
- max: a,
58
- step: x,
71
+ min: a,
72
+ max: c,
73
+ step: p,
59
74
  value: s,
60
- onChange: (t) => P(+t.target.value),
75
+ onChange: k,
61
76
  onTouchStart: (t) => t.stopPropagation(),
62
77
  onTouchMove: (t) => t.stopPropagation()
63
78
  }
64
79
  ),
65
- /* @__PURE__ */ n("div", { className: "pointer-events-none absolute left-0 top-1/2 h-xxs w-full -translate-y-1/2 rounded-sm bg-secondary-alt overflow-clip", children: /* @__PURE__ */ n(
80
+ /* @__PURE__ */ l("div", { className: "pointer-events-none absolute top-1/2 left-0 h-xxs w-full -translate-y-1/2 overflow-clip rounded-sm bg-secondary-alt", children: /* @__PURE__ */ l(
66
81
  "div",
67
82
  {
68
- className: "pointer-events-none absolute left-0 top-1/2 h-xxs -translate-y-1/2 rounded-sm bg-primary-600",
83
+ className: "pointer-events-none absolute top-1/2 left-0 h-xxs -translate-y-1/2 rounded-sm bg-primary-600",
69
84
  style: {
70
- width: `${w}%`
85
+ width: `calc(${g} + 16px)`
71
86
  }
72
87
  }
73
88
  ) }),
74
- /* @__PURE__ */ n(
89
+ /* @__PURE__ */ l(
75
90
  "div",
76
91
  {
77
- className: g(
78
- T.thumb,
92
+ className: x(
93
+ O.thumb,
79
94
  "pointer-events-none",
80
95
  "absolute",
81
96
  "box-content",
@@ -85,11 +100,11 @@ import '../../assets/UiInputRange.css';const j = "_thumb_hkko1_18", T = {
85
100
  "bg-white",
86
101
  "border-primary-600"
87
102
  ),
88
- ref: c,
103
+ ref: S,
89
104
  style: {
90
- left: `${k}%`
105
+ left: g
91
106
  },
92
- children: /* @__PURE__ */ n("div", { className: "absolute left-1/2 top-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-600" })
107
+ children: /* @__PURE__ */ l("div", { className: "absolute top-1/2 left-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-600" })
93
108
  }
94
109
  )
95
110
  ]
@@ -97,6 +112,6 @@ import '../../assets/UiInputRange.css';const j = "_thumb_hkko1_18", T = {
97
112
  );
98
113
  };
99
114
  export {
100
- $ as UiInputRange
115
+ L as UiInputRange
101
116
  };
102
117
  //# sourceMappingURL=UiInputRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiInputRange.js","sources":["../../../src/components/UiInputRange/UiInputRange.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./UiInputRange.module.css\";\n\nexport type TUiInputRangeProps = {\n\tvalue: number;\n\tmin: string | number;\n\tmax: string | number;\n\tstep: string | number;\n\tonChangeHandler: (value: number) => void;\n\tclassName?: string;\n} & React.HTMLProps<HTMLInputElement>;\n\nexport const UiInputRange: React.FC<TUiInputRangeProps> = ({\n\tvalue,\n\tmin,\n\tmax,\n\tstep,\n\tonChangeHandler,\n\tclassName,\n\t...rest\n}) => {\n\tconst track = React.useRef<HTMLInputElement>(null);\n\tconst thumb = React.useRef<HTMLDivElement>(null);\n\tconst [position, setPosition] = useState(0);\n\tconst [trackOffset, setTrackOffset] = useState(0);\n\n\tconst updatePositions = useCallback(() => {\n\t\tif (!track.current || !thumb.current) return;\n\n\t\tconst numValue = parseFloat(String(value));\n\t\tconst numMin = parseFloat(String(min));\n\t\tconst numMax = parseFloat(String(max));\n\n\t\tconst thumbWidth = thumb.current?.getBoundingClientRect().width ?? 0;\n\t\tconst trackWidth = track.current?.getBoundingClientRect().width ?? 0;\n\n\t\tif (trackWidth === 0) return;\n\n\t\tconst percentage = ((numValue - numMin) / (numMax - numMin)) * 100;\n\t\tconst thumbWidthPercentage = (thumbWidth / trackWidth) * 100;\n\n\t\tconst adjustedPercentage = Math.max(0, Math.min(100, percentage * (1 - thumbWidthPercentage / 100)));\n\n\t\tsetPosition(adjustedPercentage);\n\t\tsetTrackOffset(adjustedPercentage + (thumbWidthPercentage / 2));\n\t}, [min, max, value]);\n\n\tuseEffect(() => {\n\t\tupdatePositions();\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tupdatePositions();\n\t\t});\n\n\t\tif (track.current) {\n\t\t\tresizeObserver.observe(track.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [updatePositions]);\n\n\tconst handleOnChange = (newValue: number) => {\n\t\tif (newValue === value) return;\n\t\tconst preciseValue = parseFloat(newValue.toFixed(10));\n\t\tonChangeHandler(preciseValue);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ cx(\n\t\t\t\t\"relative box-content h-xl py-xxs\",\n\t\t\t\trest.disabled && \"opacity-60 cursor-default pointer-events-none\",\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<input\n\t\t\t\t{ ...rest }\n\t\t\t\tref={ track }\n\t\t\t\tclassName=\"absolute left-0 top-0 size-full cursor-pointer appearance-none bg-transparent\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttouchAction: \"none\",\n\t\t\t\t} }\n\t\t\t\ttype=\"range\"\n\t\t\t\tmin={ min }\n\t\t\t\tmax={ max }\n\t\t\t\tstep={ step }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ (e) => handleOnChange(+e.target.value) }\n\t\t\t\tonTouchStart={ (e) => e.stopPropagation() }\n\t\t\t\tonTouchMove={ (e) => e.stopPropagation() }\n\t\t\t/>\n\n\t\t\t<div className=\"pointer-events-none absolute left-0 top-1/2 h-xxs w-full -translate-y-1/2 rounded-sm bg-secondary-alt overflow-clip\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"pointer-events-none absolute left-0 top-1/2 h-xxs -translate-y-1/2 rounded-sm bg-primary-600\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: `${trackOffset}%`,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName={ cx(\n\t\t\t\t\tstyles.thumb,\n\t\t\t\t\t\"pointer-events-none\",\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"box-content\",\n\t\t\t\t\t\"size-md\",\n\t\t\t\t\t\"-translate-y-1/2\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\"bg-white\",\n\t\t\t\t\t\"border-primary-600\",\n\t\t\t\t) }\n\t\t\t\tref={ thumb }\n\t\t\t\tstyle={ {\n\t\t\t\t\tleft: `${position}%`,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"absolute left-1/2 top-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-600\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"],"names":["UiInputRange","value","min","max","step","onChangeHandler","className","rest","track","React","thumb","position","setPosition","useState","trackOffset","setTrackOffset","updatePositions","useCallback","numValue","numMin","numMax","thumbWidth","_a","trackWidth","_b","percentage","thumbWidthPercentage","adjustedPercentage","useEffect","resizeObserver","handleOnChange","newValue","preciseValue","jsxs","cx","jsx","e","styles"],"mappings":"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"}
1
+ {"version":3,"file":"UiInputRange.js","sources":["../../../src/components/UiInputRange/UiInputRange.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./UiInputRange.module.css\";\n\nexport type TUiInputRangeProps = {\n\tvalue: number;\n\tmin: string | number;\n\tmax: string | number;\n\tstep: string | number;\n\tonChangeHandler: (value: number) => void;\n\tclassName?: string;\n} & React.HTMLProps<HTMLInputElement>;\n\nexport const UiInputRange: React.FC<TUiInputRangeProps> = ({\n\tvalue,\n\tmin,\n\tmax,\n\tstep,\n\tonChangeHandler,\n\tclassName,\n\t...rest\n}) => {\n\tconst track = React.useRef<HTMLInputElement>(null);\n\tconst thumb = React.useRef<HTMLDivElement>(null);\n\tconst container = React.useRef<HTMLDivElement>(null);\n\n\tconst initialPosition = calculateInitialPosition(value, min, max);\n\tconst [thumbLeft, setThumbLeft] = useState(\n\t\t`calc(${initialPosition}% - ${(initialPosition * 32) / 100}px)`\n\t);\n\n\tconst updatePositions = useCallback(() => {\n\t\tconst numValue = parseFloat(String(value));\n\t\tconst numMin = parseFloat(String(min));\n\t\tconst numMax = parseFloat(String(max));\n\n\t\tconst percentage = ((numValue - numMin) / (numMax - numMin)) * 100;\n\t\tsetThumbLeft(`calc(${percentage}% - ${(percentage * 32) / 100}px)`);\n\t}, [min, max, value]);\n\n\tuseEffect(() => {\n\t\tupdatePositions();\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tupdatePositions();\n\t\t});\n\n\t\tif (track.current) {\n\t\t\tresizeObserver.observe(track.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [updatePositions]);\n\n\tconst handleOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = +e.target.value;\n\t\tif (newValue === value) return;\n\t\tconst preciseValue = parseFloat(newValue.toFixed(10));\n\t\tonChangeHandler(preciseValue);\n\t};\n\n\tconst handleTrackClick = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tif (!container.current || !track.current) return;\n\n\t\tconst rect = container.current.getBoundingClientRect();\n\t\tconst clickPosition = e.clientX - rect.left;\n\t\tconst trackWidth = rect.width;\n\t\tconst percentage = (clickPosition / trackWidth) * 100;\n\n\t\tconst numMin = parseFloat(String(min));\n\t\tconst numMax = parseFloat(String(max));\n\t\tconst newValue = numMin + (percentage / 100) * (numMax - numMin);\n\n\t\tconst steppedValue = Math.round(newValue / Number(step)) * Number(step);\n\n\t\tif (track.current) {\n\t\t\ttrack.current.value = String(steppedValue);\n\t\t\tconst event = new Event(\"input\", {\n\t\t\t\tbubbles: true\n\t\t\t});\n\t\t\ttrack.current.dispatchEvent(event);\n\t\t}\n\t};\n\n\tfunction calculateInitialPosition(value: number, min: string | number, max: string | number) {\n\t\tconst numValue = parseFloat(String(value));\n\t\tconst numMin = parseFloat(String(min));\n\t\tconst numMax = parseFloat(String(max));\n\n\t\treturn ((numValue - numMin) / (numMax - numMin)) * 100;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={ container }\n\t\t\tclassName={ cx(\n\t\t\t\t\"relative box-content h-xl py-xxs\",\n\t\t\t\trest.disabled && \"pointer-events-none cursor-default opacity-60\",\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tonClick={ handleTrackClick }\n\t\t>\n\t\t\t<input\n\t\t\t\t{ ...rest }\n\t\t\t\tref={ track }\n\t\t\t\tclassName=\"absolute top-0 left-0 size-full cursor-pointer appearance-none bg-transparent\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttouchAction: \"none\",\n\t\t\t\t} }\n\t\t\t\ttype=\"range\"\n\t\t\t\tmin={ min }\n\t\t\t\tmax={ max }\n\t\t\t\tstep={ step }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tonTouchStart={ (e) => e.stopPropagation() }\n\t\t\t\tonTouchMove={ (e) => e.stopPropagation() }\n\t\t\t/>\n\n\t\t\t<div className=\"pointer-events-none absolute top-1/2 left-0 h-xxs w-full -translate-y-1/2 overflow-clip rounded-sm bg-secondary-alt\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"pointer-events-none absolute top-1/2 left-0 h-xxs -translate-y-1/2 rounded-sm bg-primary-600\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: `calc(${thumbLeft} + 16px)`,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName={ cx(\n\t\t\t\t\tstyles.thumb,\n\t\t\t\t\t\"pointer-events-none\",\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"box-content\",\n\t\t\t\t\t\"size-md\",\n\t\t\t\t\t\"-translate-y-1/2\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\"bg-white\",\n\t\t\t\t\t\"border-primary-600\",\n\t\t\t\t) }\n\t\t\t\tref={ thumb }\n\t\t\t\tstyle={ {\n\t\t\t\t\tleft: thumbLeft,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"absolute top-1/2 left-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-600\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"],"names":["UiInputRange","value","min","max","step","onChangeHandler","className","rest","track","React","thumb","container","initialPosition","calculateInitialPosition","thumbLeft","setThumbLeft","useState","updatePositions","useCallback","numValue","numMin","numMax","percentage","useEffect","resizeObserver","handleOnChange","e","newValue","preciseValue","handleTrackClick","rect","clickPosition","trackWidth","steppedValue","event","jsxs","cx","jsx","styles"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ import { INavStepProps } from './_types';
3
+ export declare const UiNavigationStep: React.FC<INavStepProps>;
@@ -0,0 +1,115 @@
1
+ import { jsx as m, jsxs as f } from "react/jsx-runtime";
2
+ import { useEffect as w } from "react";
3
+ import n from "classnames";
4
+ import { ENavStepStatus as e } from "./_types.js";
5
+ import { UiTypography as E } from "../UiTypography/UiTypography.js";
6
+ import { ETypographySizes as g, ETextWeight as h } from "../UiTypography/_types.js";
7
+ import { u as z, s as L } from "../../UiNavigationSteps-N3juxg3H.js";
8
+ function M(s, a) {
9
+ return n(
10
+ `
11
+ flex
12
+ transform
13
+ items-center
14
+ justify-center
15
+ rounded-full
16
+ border
17
+ text-secondary-400
18
+ transition-all
19
+ duration-150
20
+ ease-in-out
21
+ md:h-xl
22
+ md:w-full
23
+ md:px-xs
24
+ md:py-xxs
25
+ lg:px-sm
26
+ `,
27
+ !a && "bg-secondary-400",
28
+ a && "cursor-pointer",
29
+ s === e.COMPLETE && "size-sm border-secondary-400 bg-secondary-400 p-xs text-white",
30
+ s === e.ACTIVE && "border-secondary-400 bg-secondary-alt-200 px-xs py-xxs text-secondary-400",
31
+ s === e.INACTIVE && "size-sm border-secondary-alt-500 bg-white p-xs text-secondary-alt-500"
32
+ );
33
+ }
34
+ const W = ({
35
+ id: s,
36
+ name: a,
37
+ subSteps: r = [],
38
+ className: T = "",
39
+ onClick: I,
40
+ order: i = 1,
41
+ totalSteps: x = 1,
42
+ isActive: u = !1,
43
+ isComplete: c = !1,
44
+ icon: y
45
+ }) => {
46
+ const { currentStepId: l, updateSubstepProgress: p, navigateToStep: C, registerStep: A } = z(), N = r.some((S) => S.id === l), o = r.length > 0;
47
+ w(() => {
48
+ A(s, o), o && p(s, l, r);
49
+ }, [s, o, r, l, p]);
50
+ const t = !c && (u || N) ? e.ACTIVE : c ? e.COMPLETE : e.INACTIVE, V = () => {
51
+ t !== e.INACTIVE && (I?.(), C(s));
52
+ }, b = () => i / x * 100, d = t !== e.INACTIVE, v = o ? c ? ` ${r.length}/${r.length}` : ` ${i}/${x || r.length}` : null;
53
+ return /* @__PURE__ */ m(
54
+ "div",
55
+ {
56
+ style: t === e.ACTIVE ? {
57
+ "--step-width": `${b()}%`
58
+ } : {},
59
+ className: n(
60
+ "flex flex-col gap-xxs md:flex-row md:items-center",
61
+ {
62
+ [L.active]: t === e.ACTIVE
63
+ }
64
+ ),
65
+ children: /* @__PURE__ */ m(
66
+ "button",
67
+ {
68
+ onClick: V,
69
+ "aria-current": t === e.ACTIVE ? "step" : void 0,
70
+ "aria-disabled": !d,
71
+ disabled: !d,
72
+ className: n(M(t, d), T),
73
+ children: /* @__PURE__ */ f(
74
+ E,
75
+ {
76
+ className: "flex place-items-center gap-xxs",
77
+ weight: t === e.ACTIVE ? h.SEMI_BOLD : h.REGULAR,
78
+ lineHeight: !0,
79
+ size: g.XS,
80
+ children: [
81
+ t === e.COMPLETE ? y : /* @__PURE__ */ m(
82
+ E,
83
+ {
84
+ className: n({
85
+ "font-semibold md:font-medium": t === e.INACTIVE
86
+ }),
87
+ tag: "span",
88
+ size: g.SM,
89
+ children: i
90
+ }
91
+ ),
92
+ /* @__PURE__ */ f(
93
+ "span",
94
+ {
95
+ className: n("text-xxs text-nowrap md:text-xs", {
96
+ "hidden md:inline": t !== e.ACTIVE
97
+ }),
98
+ children: [
99
+ a,
100
+ v
101
+ ]
102
+ }
103
+ )
104
+ ]
105
+ }
106
+ )
107
+ }
108
+ )
109
+ }
110
+ );
111
+ };
112
+ export {
113
+ W as UiNavigationStep
114
+ };
115
+ //# sourceMappingURL=UiNavigationStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiNavigationStep.js","sources":["../../../src/components/UiNavigationSteps/UiNavigationStep.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport cx from \"classnames\";\nimport { ENavStepStatus, type INavStepProps } from \"./_types\";\nimport { ETextWeight, ETypographySizes, UiTypography } from \"../UiTypography\";\nimport { useStepNav } from \"./UiNavigationSteps\";\nimport styles from \"./UiNavigationSteps.module.css\";\n\nfunction getStepClasses(status: ENavStepStatus, isClickable: boolean) {\n\treturn cx(\n\t\t`\n\t\t\tflex\n\t\t\ttransform\n\t\t\titems-center\n\t\t\tjustify-center\n\t\t\trounded-full\n\t\t\tborder\n\t\t\ttext-secondary-400\n\t\t\ttransition-all\n\t\t\tduration-150\n\t\t\tease-in-out\n\t\t\tmd:h-xl\n\t\t\tmd:w-full\n\t\t\tmd:px-xs\n\t\t\tmd:py-xxs\n\t\t\tlg:px-sm\n\t\t`,\n\t\t!isClickable && \"bg-secondary-400\",\n\t\tisClickable && \"cursor-pointer\",\n\t\tstatus === ENavStepStatus.COMPLETE\n\t\t&& \"size-sm border-secondary-400 bg-secondary-400 p-xs text-white\",\n\t\tstatus === ENavStepStatus.ACTIVE\n\t\t&& \"border-secondary-400 bg-secondary-alt-200 px-xs py-xxs text-secondary-400\",\n\t\tstatus === ENavStepStatus.INACTIVE\n\t\t&& \"size-sm border-secondary-alt-500 bg-white p-xs text-secondary-alt-500\",\n\t);\n}\n\nexport const UiNavigationStep: React.FC<INavStepProps> = ({\n\tid,\n\tname,\n\tsubSteps = [],\n\tclassName = \"\",\n\tonClick,\n\torder = 1,\n\ttotalSteps = 1,\n\tisActive = false,\n\tisComplete = false,\n\ticon\n}) => {\n\tconst { currentStepId, updateSubstepProgress, navigateToStep, registerStep } = useStepNav();\n\tconst isSubstepActive = subSteps.some((subStep) => subStep.id === currentStepId);\n\tconst hasSubsteps = subSteps.length > 0;\n\n\tuseEffect(() => {\n\t\tregisterStep(id, hasSubsteps);\n\n\t\tif (hasSubsteps) {\n\t\t\tupdateSubstepProgress(id, currentStepId, subSteps);\n\t\t}\n\t}, [id, hasSubsteps, subSteps, currentStepId, updateSubstepProgress]);\n\n\tconst status = !isComplete && (isActive || isSubstepActive)\n\t\t? ENavStepStatus.ACTIVE\n\t\t: isComplete\n\t\t\t? ENavStepStatus.COMPLETE\n\t\t\t: ENavStepStatus.INACTIVE;\n\n\tconst handleClick = () => {\n\t\tif (status !== ENavStepStatus.INACTIVE) {\n\t\t\tonClick?.();\n\t\t\tnavigateToStep(id);\n\t\t}\n\t};\n\n\tconst calculateWidth = () => (order / totalSteps) * 100;\n\n\tconst isClickable = status !== ENavStepStatus.INACTIVE;\n\n\tconst progressText = hasSubsteps\n\t\t? isComplete\n\t\t\t? ` ${subSteps.length}/${subSteps.length}`\n\t\t\t: ` ${order}/${totalSteps || subSteps.length}`\n\t\t: null;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={ status === ENavStepStatus.ACTIVE\n\t\t\t\t? ({\n\t\t\t\t\t\"--step-width\": `${calculateWidth()}%`\n\t\t\t\t} as React.CSSProperties)\n\t\t\t\t: {} }\n\t\t\tclassName={ cx(\"flex flex-col gap-xxs md:flex-row md:items-center\", {\n\t\t\t\t[styles.active]: status === ENavStepStatus.ACTIVE,\n\t\t\t},\n\t\t\t) }\n\t\t>\n\t\t\t<button\n\t\t\t\tonClick={ handleClick }\n\t\t\t\taria-current={ status === ENavStepStatus.ACTIVE\n\t\t\t\t\t? \"step\"\n\t\t\t\t\t: undefined }\n\t\t\t\taria-disabled={ !isClickable }\n\t\t\t\tdisabled={ !isClickable }\n\t\t\t\tclassName={ cx(getStepClasses(status, isClickable), className) }\n\t\t\t>\n\t\t\t\t<UiTypography\n\t\t\t\t\tclassName=\"flex place-items-center gap-xxs\"\n\t\t\t\t\tweight={ status === ENavStepStatus.ACTIVE\n\t\t\t\t\t\t? ETextWeight.SEMI_BOLD\n\t\t\t\t\t\t: ETextWeight.REGULAR }\n\t\t\t\t\tlineHeight\n\t\t\t\t\tsize={ ETypographySizes.XS }\n\t\t\t\t>\n\t\t\t\t\t{ status === ENavStepStatus.COMPLETE\n\t\t\t\t\t\t? icon\n\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t<UiTypography\n\t\t\t\t\t\t\t\tclassName={ cx({\n\t\t\t\t\t\t\t\t\t\"font-semibold md:font-medium\": status === ENavStepStatus.INACTIVE,\n\t\t\t\t\t\t\t\t}) }\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize={ ETypographySizes.SM }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ order }\n\t\t\t\t\t\t\t</UiTypography>\n\t\t\t\t\t\t) }\n\t\t\t\t\t{\n\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={ cx(\"text-xxs text-nowrap md:text-xs\", {\n\t\t\t\t\t\t\t\t\"hidden md:inline\": status !== ENavStepStatus.ACTIVE,\n\t\t\t\t\t\t\t}) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ name }\n\t\t\t\t\t\t\t{ progressText }\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t}\n\t\t\t\t</UiTypography>\n\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n"],"names":["getStepClasses","status","isClickable","cx","ENavStepStatus","UiNavigationStep","id","name","subSteps","className","onClick","order","totalSteps","isActive","isComplete","icon","currentStepId","updateSubstepProgress","navigateToStep","registerStep","useStepNav","isSubstepActive","subStep","hasSubsteps","useEffect","handleClick","calculateWidth","progressText","jsx","styles","jsxs","UiTypography","ETextWeight","ETypographySizes"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { INavigationStepContext } from './_types';
3
+ export declare const UiNavigationSteps: React.FC<{
4
+ initialStepId: string;
5
+ children: React.ReactNode;
6
+ className?: string;
7
+ complete?: boolean;
8
+ }>;
9
+ export declare const useStepNav: () => INavigationStepContext;
@@ -0,0 +1,9 @@
1
+ import "react/jsx-runtime";
2
+ import "react";
3
+ import "classnames";
4
+ import { U as r, u as e } from "../../UiNavigationSteps-N3juxg3H.js";
5
+ export {
6
+ r as UiNavigationSteps,
7
+ e as useStepNav
8
+ };
9
+ //# sourceMappingURL=UiNavigationSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiNavigationSteps.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,29 @@
1
+ import { ReactNode } from 'react';
2
+ export declare enum ENavStepStatus {
3
+ COMPLETE = "complete",
4
+ ACTIVE = "active",
5
+ INACTIVE = "inactive"
6
+ }
7
+ export interface INavSubStep {
8
+ id: string;
9
+ name: string;
10
+ }
11
+ export interface INavigationStepContext {
12
+ currentStepId: string;
13
+ completedSteps: Set<string>;
14
+ navigateToStep: (id: string) => void;
15
+ registerStep: (id: string, hasSubsteps: boolean) => void;
16
+ updateSubstepProgress: (stepId: string, substepId: string, subSteps: INavSubStep[]) => void;
17
+ }
18
+ export interface INavStepProps {
19
+ id: string;
20
+ name: string;
21
+ subSteps?: INavSubStep[];
22
+ className?: string;
23
+ onClick?: () => void;
24
+ icon?: ReactNode;
25
+ order?: number;
26
+ totalSteps?: number;
27
+ isActive?: boolean;
28
+ isComplete?: boolean;
29
+ }
@@ -0,0 +1,5 @@
1
+ var r = /* @__PURE__ */ ((e) => (e.COMPLETE = "complete", e.ACTIVE = "active", e.INACTIVE = "inactive", e))(r || {});
2
+ export {
3
+ r as ENavStepStatus
4
+ };
5
+ //# sourceMappingURL=_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.js","sources":["../../../src/components/UiNavigationSteps/_types.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nexport enum ENavStepStatus {\n\tCOMPLETE = \"complete\",\n\tACTIVE = \"active\",\n\tINACTIVE = \"inactive\",\n}\n\nexport interface INavSubStep {\n\tid: string;\n\tname: string;\n}\n\nexport interface INavigationStepContext {\n\tcurrentStepId: string;\n\tcompletedSteps: Set<string>;\n\tnavigateToStep: (id: string) => void;\n\tregisterStep: (id: string, hasSubsteps: boolean) => void;\n\tupdateSubstepProgress: (stepId: string, substepId: string, subSteps: INavSubStep[]) => void;\n}\n\nexport interface INavStepProps {\n\tid: string;\n\tname: string;\n\tsubSteps?: INavSubStep[];\n\tclassName?: string;\n\tonClick?: () => void;\n\ticon?: ReactNode;\n\torder?: number;\n\ttotalSteps?: number;\n\tisActive?: boolean;\n\tisComplete?: boolean;\n}\n"],"names":["ENavStepStatus"],"mappings":"AAEY,IAAAA,sBAAAA,OACXA,EAAA,WAAW,YACXA,EAAA,SAAS,UACTA,EAAA,WAAW,YAHAA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -0,0 +1,3 @@
1
+ export { UiNavigationSteps } from './UiNavigationSteps.tsx';
2
+ export { UiNavigationStep } from './UiNavigationStep.tsx';
3
+ export * from './_types.ts';
@@ -0,0 +1,9 @@
1
+ import { U as a } from "../../UiNavigationSteps-N3juxg3H.js";
2
+ import { UiNavigationStep as i } from "./UiNavigationStep.js";
3
+ import { ENavStepStatus as r } from "./_types.js";
4
+ export {
5
+ r as ENavStepStatus,
6
+ i as UiNavigationStep,
7
+ a as UiNavigationSteps
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -25,7 +25,7 @@ const d = {
25
25
  rounded: x = !1
26
26
  }) => /* @__PURE__ */ m("div", { className: l(
27
27
  "ui-pills",
28
- "grid grid-flow-col justify-start w-max",
28
+ "grid w-max grid-flow-col justify-start",
29
29
  "items-center",
30
30
  "gap-xxxs",
31
31
  "px-xxs py-xxxs",
@@ -1 +1 @@
1
- {"version":3,"file":"UiPills.js","sources":["../../../src/components/UiPills/UiPills.tsx"],"sourcesContent":["import React from \"react\";\nimport { EBadgeKind, EBadgeSize } from \"./_types.ts\";\nimport { ETextWeight, ETypographySizes, UiTypography } from \"../UiTypography\";\nimport cx from \"classnames\";\n\ninterface IUiPills {\n\tchildren: React.ReactNode\n\tkind?: EBadgeKind,\n\tsize?: EBadgeSize,\n\ticon?: React.ReactNode,\n\trounded?: boolean,\n\tclassName?: string\n}\n\nconst kindClasses = {\n\t[EBadgeKind.PRIMARY]: \"bg-primary-100 text-primary-700\",\n\t[EBadgeKind.ERROR]: \"bg-error-300 text-error-700\",\n\t[EBadgeKind.WARNING]: \"bg-warning-300 text-warning-700\",\n\t[EBadgeKind.ACCENT]: \"bg-accent-300 text-accent-700\",\n\t[EBadgeKind.PRIMARY_ALT]: \"bg-primary-300 text-primary-800\",\n\t[EBadgeKind.SECONDARY]: \"bg-white text-secondary-300 ring-1 ring-secondary-alt-300\",\n\t[EBadgeKind.ACCENT_ALT]: \"bg-accent-alt-500 text-secondary-700\",\n};\n\nconst sizeEnums = {\n\t[EBadgeSize.SMALL]: ETypographySizes.XXS,\n\t[EBadgeSize.MEDIUM]: ETypographySizes.XS,\n\t[EBadgeSize.LARGE]: ETypographySizes.SM,\n};\n\nexport const UiPills: React.FC<IUiPills> = ({\n\tchildren,\n\tkind = EBadgeKind.PRIMARY,\n\tsize = EBadgeSize.SMALL,\n\tclassName,\n\ticon,\n\trounded = false\n}) => {\n\treturn (\n\t\t<div className={ cx(\n\t\t\t\"ui-pills\",\n\t\t\t\"grid grid-flow-col justify-start w-max\",\n\t\t\t\"items-center\",\n\t\t\t\"gap-xxxs\",\n\t\t\t\"px-xxs py-xxxs\",\n\t\t\t\"overflow-hidden\",\n\t\t\trounded\n\t\t\t\t? \"rounded-full\"\n\t\t\t\t: \"rounded-sm\",\n\t\t\tkindClasses[kind],\n\t\t\tclassName\n\t\t) }>\n\t\t\t{ icon }\n\t\t\t{ children\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography size={ sizeEnums[size] } weight={ ETextWeight.SEMI_BOLD } className=\"whitespace-nowrap\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\t\t</div>\n\t);\n};\n"],"names":["kindClasses","EBadgeKind","sizeEnums","EBadgeSize","ETypographySizes","UiPills","children","kind","size","className","icon","rounded","jsxs","cx","jsx","UiTypography","ETextWeight"],"mappings":";;;;;;AAcA,MAAMA,IAAc;AAAA,EACnB,CAACC,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,KAAK,GAAG;AAAA,EACpB,CAACA,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,MAAM,GAAG;AAAA,EACrB,CAACA,EAAW,WAAW,GAAG;AAAA,EAC1B,CAACA,EAAW,SAAS,GAAG;AAAA,EACxB,CAACA,EAAW,UAAU,GAAG;AAC1B,GAEMC,IAAY;AAAA,EACjB,CAACC,EAAW,KAAK,GAAGC,EAAiB;AAAA,EACrC,CAACD,EAAW,MAAM,GAAGC,EAAiB;AAAA,EACtC,CAACD,EAAW,KAAK,GAAGC,EAAiB;AACtC,GAEaC,IAA8B,CAAC;AAAA,EAC3C,UAAAC;AAAA,EACA,MAAAC,IAAON,EAAW;AAAA,EAClB,MAAAO,IAAOL,EAAW;AAAA,EAClB,WAAAM;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AACX,MAEE,gBAAAC,EAAC,SAAI,WAAYC;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAF,IACG,iBACA;AAAA,EACHX,EAAYO,CAAI;AAAA,EAChBE;AAEE,GAAA,UAAA;AAAA,EAAAC;AAAA,EACAJ,IAEA,gBAAAQ,EAACC,GAAa,EAAA,MAAOb,EAAUM,CAAI,GAAI,QAASQ,EAAY,WAAY,WAAU,qBAC/E,UAAAV,EACH,CAAA,IAEC;AAAA,GACJ;"}
1
+ {"version":3,"file":"UiPills.js","sources":["../../../src/components/UiPills/UiPills.tsx"],"sourcesContent":["import React from \"react\";\nimport { EBadgeKind, EBadgeSize } from \"./_types.ts\";\nimport { ETextWeight, ETypographySizes, UiTypography } from \"../UiTypography\";\nimport cx from \"classnames\";\n\ninterface IUiPills {\n\tchildren: React.ReactNode\n\tkind?: EBadgeKind,\n\tsize?: EBadgeSize,\n\ticon?: React.ReactNode,\n\trounded?: boolean,\n\tclassName?: string\n}\n\nconst kindClasses = {\n\t[EBadgeKind.PRIMARY]: \"bg-primary-100 text-primary-700\",\n\t[EBadgeKind.ERROR]: \"bg-error-300 text-error-700\",\n\t[EBadgeKind.WARNING]: \"bg-warning-300 text-warning-700\",\n\t[EBadgeKind.ACCENT]: \"bg-accent-300 text-accent-700\",\n\t[EBadgeKind.PRIMARY_ALT]: \"bg-primary-300 text-primary-800\",\n\t[EBadgeKind.SECONDARY]: \"bg-white text-secondary-300 ring-1 ring-secondary-alt-300\",\n\t[EBadgeKind.ACCENT_ALT]: \"bg-accent-alt-500 text-secondary-700\",\n};\n\nconst sizeEnums = {\n\t[EBadgeSize.SMALL]: ETypographySizes.XXS,\n\t[EBadgeSize.MEDIUM]: ETypographySizes.XS,\n\t[EBadgeSize.LARGE]: ETypographySizes.SM,\n};\n\nexport const UiPills: React.FC<IUiPills> = ({\n\tchildren,\n\tkind = EBadgeKind.PRIMARY,\n\tsize = EBadgeSize.SMALL,\n\tclassName,\n\ticon,\n\trounded = false\n}) => {\n\treturn (\n\t\t<div className={ cx(\n\t\t\t\"ui-pills\",\n\t\t\t\"grid w-max grid-flow-col justify-start\",\n\t\t\t\"items-center\",\n\t\t\t\"gap-xxxs\",\n\t\t\t\"px-xxs py-xxxs\",\n\t\t\t\"overflow-hidden\",\n\t\t\trounded\n\t\t\t\t? \"rounded-full\"\n\t\t\t\t: \"rounded-sm\",\n\t\t\tkindClasses[kind],\n\t\t\tclassName\n\t\t) }>\n\t\t\t{ icon }\n\t\t\t{ children\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography size={ sizeEnums[size] } weight={ ETextWeight.SEMI_BOLD } className=\"whitespace-nowrap\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\t\t</div>\n\t);\n};\n"],"names":["kindClasses","EBadgeKind","sizeEnums","EBadgeSize","ETypographySizes","UiPills","children","kind","size","className","icon","rounded","jsxs","cx","jsx","UiTypography","ETextWeight"],"mappings":";;;;;;AAcA,MAAMA,IAAc;AAAA,EACnB,CAACC,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,KAAK,GAAG;AAAA,EACpB,CAACA,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,MAAM,GAAG;AAAA,EACrB,CAACA,EAAW,WAAW,GAAG;AAAA,EAC1B,CAACA,EAAW,SAAS,GAAG;AAAA,EACxB,CAACA,EAAW,UAAU,GAAG;AAC1B,GAEMC,IAAY;AAAA,EACjB,CAACC,EAAW,KAAK,GAAGC,EAAiB;AAAA,EACrC,CAACD,EAAW,MAAM,GAAGC,EAAiB;AAAA,EACtC,CAACD,EAAW,KAAK,GAAGC,EAAiB;AACtC,GAEaC,IAA8B,CAAC;AAAA,EAC3C,UAAAC;AAAA,EACA,MAAAC,IAAON,EAAW;AAAA,EAClB,MAAAO,IAAOL,EAAW;AAAA,EAClB,WAAAM;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AACX,MAEE,gBAAAC,EAAC,SAAI,WAAYC;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAF,IACG,iBACA;AAAA,EACHX,EAAYO,CAAI;AAAA,EAChBE;AAEE,GAAA,UAAA;AAAA,EAAAC;AAAA,EACAJ,IAEA,gBAAAQ,EAACC,GAAa,EAAA,MAAOb,EAAUM,CAAI,GAAI,QAASQ,EAAY,WAAY,WAAU,qBAC/E,UAAAV,EACH,CAAA,IAEC;AAAA,GACJ;"}
@@ -29,7 +29,7 @@ const v = ({
29
29
  "input",
30
30
  {
31
31
  className: i(
32
- " absolute",
32
+ "absolute",
33
33
  "appearance-none",
34
34
  "peer"
35
35
  ),
@@ -61,7 +61,11 @@ const v = ({
61
61
  "rounded-xl",
62
62
  "size-full",
63
63
  "text-sm",
64
- r ? "ring-secondary-alt-300" : "peer-checked:ring-primary-600 peer-checked:outline peer-checked:outline-primary-600",
64
+ r ? "ring-secondary-alt-300" : `
65
+ peer-checked:ring-primary-600
66
+ peer-checked:outline
67
+ peer-checked:outline-primary-600
68
+ `,
65
69
  e ? "ring-2" : "ring",
66
70
  {
67
71
  "ring-secondary-alt-600 hover:ring-secondary-500": !r && !e
@@ -79,7 +83,7 @@ const v = ({
79
83
  e ? "ring-2" : "ring",
80
84
  r ? "ring-secondary-alt-300" : "ring-primary-600",
81
85
  {
82
- "ring-secondary-alt-600 group-hover:ring-secondary-500 group-active:ring-secondary-500": !r && !e
86
+ "ring-secondary-alt-600 group-hover:ring-secondary-500 group-active:ring-secondary-500": !r && !e
83
87
  }
84
88
  ), children: /* @__PURE__ */ n(
85
89
  "span",
@@ -102,9 +106,16 @@ const v = ({
102
106
  )
103
107
  }
104
108
  ) }),
105
- /* @__PURE__ */ a("div", { className: "flex flex-col", children: [
109
+ /* @__PURE__ */ a("div", { className: `
110
+ flex
111
+ flex-col
112
+ `, children: [
106
113
  s,
107
- t ? /* @__PURE__ */ n("div", { className: "text-xs font-normal text-secondary-alt-400", children: t }) : null
114
+ t ? /* @__PURE__ */ n("div", { className: `
115
+ text-xs
116
+ font-normal
117
+ text-secondary-alt-400
118
+ `, children: t }) : null
108
119
  ] })
109
120
  ]
110
121
  }