@zentauri-ui/zentauri-components 1.5.21 → 1.5.31

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 (98) hide show
  1. package/README.md +59 -2
  2. package/cli/registry.json +2 -0
  3. package/dist/charts/area.js +1 -1
  4. package/dist/charts/area.js.map +1 -1
  5. package/dist/charts/area.mjs +1 -1
  6. package/dist/charts/area.mjs.map +1 -1
  7. package/dist/charts/bar/Bar.d.ts.map +1 -1
  8. package/dist/charts/bar.js +2 -1
  9. package/dist/charts/bar.js.map +1 -1
  10. package/dist/charts/bar.mjs +2 -1
  11. package/dist/charts/bar.mjs.map +1 -1
  12. package/dist/charts/pie/Pie.d.ts +1 -1
  13. package/dist/charts/pie/Pie.d.ts.map +1 -1
  14. package/dist/charts/pie.js +10 -7
  15. package/dist/charts/pie.js.map +1 -1
  16. package/dist/charts/pie.mjs +10 -7
  17. package/dist/charts/pie.mjs.map +1 -1
  18. package/dist/charts/shared/types.d.ts +10 -6
  19. package/dist/charts/shared/types.d.ts.map +1 -1
  20. package/dist/chunk-7OHC4ERB.mjs +60 -0
  21. package/dist/chunk-7OHC4ERB.mjs.map +1 -0
  22. package/dist/{chunk-2VQJ6OIL.js → chunk-HPN7H5ZM.js} +2 -2
  23. package/dist/{chunk-2VQJ6OIL.js.map → chunk-HPN7H5ZM.js.map} +1 -1
  24. package/dist/chunk-JJDANNNL.mjs +71 -0
  25. package/dist/chunk-JJDANNNL.mjs.map +1 -0
  26. package/dist/chunk-KXUG4WVW.js +62 -0
  27. package/dist/chunk-KXUG4WVW.js.map +1 -0
  28. package/dist/chunk-MEJMX4QI.js +73 -0
  29. package/dist/chunk-MEJMX4QI.js.map +1 -0
  30. package/dist/chunk-N6B35KWW.mjs +3 -0
  31. package/dist/chunk-N6B35KWW.mjs.map +1 -0
  32. package/dist/{chunk-73VCO5TE.mjs → chunk-NWOE2TZN.mjs} +2 -2
  33. package/dist/{chunk-73VCO5TE.mjs.map → chunk-NWOE2TZN.mjs.map} +1 -1
  34. package/dist/chunk-RGOMHX4G.js +4 -0
  35. package/dist/chunk-RGOMHX4G.js.map +1 -0
  36. package/dist/hooks/useControllableState.js +3 -2
  37. package/dist/hooks/useControllableState.mjs +2 -1
  38. package/dist/hooks/useDisclosure.js +3 -2
  39. package/dist/hooks/useDisclosure.js.map +1 -1
  40. package/dist/hooks/useDisclosure.mjs +2 -1
  41. package/dist/hooks/useDisclosure.mjs.map +1 -1
  42. package/dist/hooks/useDynamicStepper/index.d.ts +2 -0
  43. package/dist/hooks/useDynamicStepper/index.d.ts.map +1 -0
  44. package/dist/hooks/useDynamicStepper/useDynamicStepper.d.ts +9 -0
  45. package/dist/hooks/useDynamicStepper/useDynamicStepper.d.ts.map +1 -0
  46. package/dist/hooks/useDynamicStepper.js +14 -0
  47. package/dist/hooks/useDynamicStepper.js.map +1 -0
  48. package/dist/hooks/useDynamicStepper.mjs +5 -0
  49. package/dist/hooks/useDynamicStepper.mjs.map +1 -0
  50. package/dist/ui/buttons.js +7 -55
  51. package/dist/ui/buttons.js.map +1 -1
  52. package/dist/ui/buttons.mjs +2 -58
  53. package/dist/ui/buttons.mjs.map +1 -1
  54. package/dist/ui/dynamic-stepper/dynamic-stepper.d.ts +6 -0
  55. package/dist/ui/dynamic-stepper/dynamic-stepper.d.ts.map +1 -0
  56. package/dist/ui/dynamic-stepper/index.d.ts +5 -0
  57. package/dist/ui/dynamic-stepper/index.d.ts.map +1 -0
  58. package/dist/ui/dynamic-stepper/types.d.ts +61 -0
  59. package/dist/ui/dynamic-stepper/types.d.ts.map +1 -0
  60. package/dist/ui/dynamic-stepper/variants.d.ts +21 -0
  61. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -0
  62. package/dist/ui/dynamic-stepper.js +312 -0
  63. package/dist/ui/dynamic-stepper.js.map +1 -0
  64. package/dist/ui/dynamic-stepper.mjs +305 -0
  65. package/dist/ui/dynamic-stepper.mjs.map +1 -0
  66. package/dist/ui/pagination/pagination.d.ts +5 -16
  67. package/dist/ui/pagination/pagination.d.ts.map +1 -1
  68. package/dist/ui/pagination/types.d.ts +2 -2
  69. package/dist/ui/pagination/types.d.ts.map +1 -1
  70. package/dist/ui/pagination.js +171 -180
  71. package/dist/ui/pagination.js.map +1 -1
  72. package/dist/ui/pagination.mjs +172 -181
  73. package/dist/ui/pagination.mjs.map +1 -1
  74. package/dist/ui/typography/blockquote-base.d.ts.map +1 -1
  75. package/dist/ui/typography/code-block-base.d.ts.map +1 -1
  76. package/dist/ui/typography/heading-base.d.ts.map +1 -1
  77. package/dist/ui/typography/inline-code-base.d.ts.map +1 -1
  78. package/dist/ui/typography.js.map +1 -1
  79. package/dist/ui/typography.mjs.map +1 -1
  80. package/package.json +1 -1
  81. package/src/charts/area/Area.tsx +1 -1
  82. package/src/charts/bar/Bar.tsx +1 -0
  83. package/src/charts/pie/Pie.tsx +9 -7
  84. package/src/charts/shared/types.ts +10 -6
  85. package/src/hooks/useDynamicStepper/index.ts +3 -0
  86. package/src/hooks/useDynamicStepper/useDynamicStepper.test.ts +107 -0
  87. package/src/hooks/useDynamicStepper/useDynamicStepper.ts +91 -0
  88. package/src/ui/dynamic-stepper/dynamic-stepper.test.tsx +109 -0
  89. package/src/ui/dynamic-stepper/dynamic-stepper.tsx +173 -0
  90. package/src/ui/dynamic-stepper/index.ts +24 -0
  91. package/src/ui/dynamic-stepper/types.ts +85 -0
  92. package/src/ui/dynamic-stepper/variants.ts +238 -0
  93. package/src/ui/pagination/pagination.tsx +186 -197
  94. package/src/ui/pagination/types.ts +2 -2
  95. package/src/ui/typography/blockquote-base.tsx +0 -2
  96. package/src/ui/typography/code-block-base.tsx +0 -2
  97. package/src/ui/typography/heading-base.tsx +0 -2
  98. package/src/ui/typography/inline-code-base.tsx +0 -2
@@ -0,0 +1,71 @@
1
+ import { useControllableState } from './chunk-NWOE2TZN.mjs';
2
+ import { useMemo, useCallback } from 'react';
3
+
4
+ function clampDynamicStepperIndex(index, stepCount) {
5
+ if (stepCount <= 0) {
6
+ return 0;
7
+ }
8
+ return Math.min(Math.max(index, 0), stepCount - 1);
9
+ }
10
+ function useDynamicStepper({
11
+ stepCount,
12
+ activeStep: activeStepProp,
13
+ defaultActiveStep = 0,
14
+ onActiveStepChange,
15
+ onPrevious,
16
+ onNext
17
+ }) {
18
+ const [storedStep, setStoredStep] = useControllableState({
19
+ value: activeStepProp,
20
+ defaultValue: clampDynamicStepperIndex(defaultActiveStep, stepCount),
21
+ onChange: onActiveStepChange
22
+ });
23
+ const activeStep = useMemo(
24
+ () => clampDynamicStepperIndex(storedStep, stepCount),
25
+ [storedStep, stepCount]
26
+ );
27
+ const canGoPrevious = stepCount > 0 && activeStep > 0;
28
+ const canGoNext = stepCount > 0 && activeStep < stepCount - 1;
29
+ const setActiveStep = useCallback(
30
+ (next) => {
31
+ const resolved = typeof next === "function" ? next(activeStep) : next;
32
+ setStoredStep(clampDynamicStepperIndex(resolved, stepCount));
33
+ },
34
+ [activeStep, setStoredStep, stepCount]
35
+ );
36
+ const goPrevious = useCallback(() => {
37
+ if (!canGoPrevious) {
38
+ return;
39
+ }
40
+ const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);
41
+ setStoredStep(nextStep);
42
+ onPrevious?.(nextStep);
43
+ }, [
44
+ activeStep,
45
+ canGoPrevious,
46
+ onPrevious,
47
+ setStoredStep,
48
+ stepCount
49
+ ]);
50
+ const goNext = useCallback(() => {
51
+ if (!canGoNext) {
52
+ return;
53
+ }
54
+ const nextStep = clampDynamicStepperIndex(activeStep + 1, stepCount);
55
+ setStoredStep(nextStep);
56
+ onNext?.(nextStep);
57
+ }, [activeStep, canGoNext, onNext, setStoredStep, stepCount]);
58
+ return {
59
+ activeStep,
60
+ setActiveStep,
61
+ goPrevious,
62
+ goNext,
63
+ canGoPrevious,
64
+ canGoNext,
65
+ stepCount
66
+ };
67
+ }
68
+
69
+ export { useDynamicStepper };
70
+ //# sourceMappingURL=chunk-JJDANNNL.mjs.map
71
+ //# sourceMappingURL=chunk-JJDANNNL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useDynamicStepper/useDynamicStepper.ts"],"names":[],"mappings":";;;AAWA,SAAS,wBAAA,CAAyB,OAAe,SAAA,EAA2B;AAC1E,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,IAAI,IAAA,CAAK,GAAA,CAAI,OAAO,CAAC,CAAA,EAAG,YAAY,CAAC,CAAA;AACnD;AAQO,SAAS,iBAAA,CAAkB;AAAA,EAChC,SAAA;AAAA,EACA,UAAA,EAAY,cAAA;AAAA,EACZ,iBAAA,GAAoB,CAAA;AAAA,EACpB,kBAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAqD;AACnD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,oBAAA,CAA6B;AAAA,IAC/D,KAAA,EAAO,cAAA;AAAA,IACP,YAAA,EAAc,wBAAA,CAAyB,iBAAA,EAAmB,SAAS,CAAA;AAAA,IACnE,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MAAM,wBAAA,CAAyB,UAAA,EAAY,SAAS,CAAA;AAAA,IACpD,CAAC,YAAY,SAAS;AAAA,GACxB;AAEA,EAAA,MAAM,aAAA,GAAgB,SAAA,GAAY,CAAA,IAAK,UAAA,GAAa,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,SAAA,GAAY,CAAA,IAAK,UAAA,GAAa,SAAA,GAAY,CAAA;AAE5D,EAAA,MAAM,aAAA,GAAgB,WAAA;AAAA,IACpB,CAAC,IAAA,KAA8C;AAC7C,MAAA,MAAM,WACJ,OAAO,IAAA,KAAS,UAAA,GACX,IAAA,CAAkC,UAAU,CAAA,GAC7C,IAAA;AACN,MAAA,aAAA,CAAc,wBAAA,CAAyB,QAAA,EAAU,SAAS,CAAC,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,aAAA,EAAe,SAAS;AAAA,GACvC;AAEA,EAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,wBAAA,CAAyB,UAAA,GAAa,CAAA,EAAG,SAAS,CAAA;AACnE,IAAA,aAAA,CAAc,QAAQ,CAAA;AACtB,IAAA,UAAA,GAAa,QAAQ,CAAA;AAAA,EACvB,CAAA,EAAG;AAAA,IACD,UAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,wBAAA,CAAyB,UAAA,GAAa,CAAA,EAAG,SAAS,CAAA;AACnE,IAAA,aAAA,CAAc,QAAQ,CAAA;AACtB,IAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,EACnB,GAAG,CAAC,UAAA,EAAY,WAAW,MAAA,EAAQ,aAAA,EAAe,SAAS,CAAC,CAAA;AAE5D,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-JJDANNNL.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport { useControllableState } from \"../useControllableState/useControllableState\";\n\nimport type {\n UseDynamicStepperParams,\n UseDynamicStepperResult,\n} from \"../../ui/dynamic-stepper/types\";\n\nfunction clampDynamicStepperIndex(index: number, stepCount: number): number {\n if (stepCount <= 0) {\n return 0;\n }\n return Math.min(Math.max(index, 0), stepCount - 1);\n}\n\n/**\n * Headless multi-step index with prev/next navigation.\n *\n * @param params.stepCount - Number of steps (0-based count semantics via indices).\n * @returns Active step, setter, navigation helpers, and boundary flags.\n */\nexport function useDynamicStepper({\n stepCount,\n activeStep: activeStepProp,\n defaultActiveStep = 0,\n onActiveStepChange,\n onPrevious,\n onNext,\n}: UseDynamicStepperParams): UseDynamicStepperResult {\n const [storedStep, setStoredStep] = useControllableState<number>({\n value: activeStepProp,\n defaultValue: clampDynamicStepperIndex(defaultActiveStep, stepCount),\n onChange: onActiveStepChange,\n });\n\n const activeStep = useMemo(\n () => clampDynamicStepperIndex(storedStep, stepCount),\n [storedStep, stepCount],\n );\n\n const canGoPrevious = stepCount > 0 && activeStep > 0;\n const canGoNext = stepCount > 0 && activeStep < stepCount - 1;\n\n const setActiveStep = useCallback(\n (next: number | ((prev: number) => number)) => {\n const resolved =\n typeof next === \"function\"\n ? (next as (prev: number) => number)(activeStep)\n : next;\n setStoredStep(clampDynamicStepperIndex(resolved, stepCount));\n },\n [activeStep, setStoredStep, stepCount],\n );\n\n const goPrevious = useCallback(() => {\n if (!canGoPrevious) {\n return;\n }\n const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);\n setStoredStep(nextStep);\n onPrevious?.(nextStep);\n }, [\n activeStep,\n canGoPrevious,\n onPrevious,\n setStoredStep,\n stepCount,\n ]);\n\n const goNext = useCallback(() => {\n if (!canGoNext) {\n return;\n }\n const nextStep = clampDynamicStepperIndex(activeStep + 1, stepCount);\n setStoredStep(nextStep);\n onNext?.(nextStep);\n }, [activeStep, canGoNext, onNext, setStoredStep, stepCount]);\n\n return {\n activeStep,\n setActiveStep,\n goPrevious,\n goNext,\n canGoPrevious,\n canGoNext,\n stepCount,\n };\n}\n"]}
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ var chunkOB4KJZK2_js = require('./chunk-OB4KJZK2.js');
4
+ var chunkZS5756ZC_js = require('./chunk-ZS5756ZC.js');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var ButtonBase = (props) => {
8
+ if (props.as === "link") {
9
+ const {
10
+ className: className2,
11
+ appearance: appearance2,
12
+ size: size2,
13
+ children: children2,
14
+ ref: ref2,
15
+ href,
16
+ target,
17
+ ...rest2
18
+ } = props;
19
+ return /* @__PURE__ */ jsxRuntime.jsx(
20
+ "a",
21
+ {
22
+ ref: ref2,
23
+ href,
24
+ target,
25
+ rel: target === "_blank" ? "noopener noreferrer" : void 0,
26
+ "data-slot": "button",
27
+ className: chunkZS5756ZC_js.cn(chunkOB4KJZK2_js.buttonVariants({ appearance: appearance2, size: size2 }), className2),
28
+ ...rest2,
29
+ children: children2
30
+ }
31
+ );
32
+ }
33
+ const {
34
+ className,
35
+ appearance,
36
+ size,
37
+ type = "button",
38
+ children,
39
+ ref,
40
+ ...rest
41
+ } = props;
42
+ return /* @__PURE__ */ jsxRuntime.jsx(
43
+ "button",
44
+ {
45
+ ref,
46
+ type,
47
+ "data-slot": "button",
48
+ className: chunkZS5756ZC_js.cn(chunkOB4KJZK2_js.buttonVariants({ appearance, size }), className),
49
+ ...rest,
50
+ children
51
+ }
52
+ );
53
+ };
54
+ ButtonBase.displayName = "Button";
55
+ var Button = (props) => {
56
+ return /* @__PURE__ */ jsxRuntime.jsx(ButtonBase, { ...props });
57
+ };
58
+ Button.displayName = "Button";
59
+
60
+ exports.Button = Button;
61
+ //# sourceMappingURL=chunk-KXUG4WVW.js.map
62
+ //# sourceMappingURL=chunk-KXUG4WVW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/buttons/button-base.tsx","../src/ui/buttons/button.tsx"],"names":["className","appearance","size","children","ref","rest","jsx","cn","buttonVariants"],"mappings":";;;;;;AAOO,IAAM,UAAA,GAAa,CAAC,KAAA,KAAuB;AAChD,EAAA,IAAI,KAAA,CAAM,OAAO,MAAA,EAAQ;AACvB,IAAA,MAAM;AAAA,MACJ,SAAA,EAAAA,UAAAA;AAAA,MACA,UAAA,EAAAC,WAAAA;AAAA,MACA,IAAA,EAAAC,KAAAA;AAAA,MACA,QAAA,EAAAC,SAAAA;AAAA,MACA,GAAA,EAAAC,IAAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,GAAGC;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,uBACEC,cAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAKF,IAAAA;AAAA,QACL,IAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA,EAAK,MAAA,KAAW,QAAA,GAAW,qBAAA,GAAwB,MAAA;AAAA,QACnD,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAWG,mBAAA,CAAGC,+BAAA,CAAe,EAAE,UAAA,EAAAP,aAAY,IAAA,EAAAC,KAAAA,EAAM,CAAA,EAAGF,UAAS,CAAA;AAAA,QAC5D,GAAGK,KAAAA;AAAA,QAEH,QAAA,EAAAF;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,uBACEG,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAWC,oBAAGC,+BAAA,CAAe,EAAE,YAAY,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC5D,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,UAAA,CAAW,WAAA,GAAc,QAAA;ACtDlB,IAAM,MAAA,GAAS,CAAC,KAAA,KAAuB;AAC5C,EAAA,uBAAOF,cAAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AAChC;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-KXUG4WVW.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { ButtonProps } from \"./types\";\nimport { buttonVariants } from \"./variants\";\n\nexport const ButtonBase = (props: ButtonProps) => {\n if (props.as === \"link\") {\n const {\n className,\n appearance,\n size,\n children,\n ref,\n href,\n target,\n ...rest\n } = props;\n\n return (\n <a\n ref={ref}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n const {\n className,\n appearance,\n size,\n type = \"button\",\n children,\n ref,\n ...rest\n } = props;\n\n return (\n <button\n ref={ref}\n type={type}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nButtonBase.displayName = \"Button\";\n","// button.tsx — default static entry (no framer-motion)\nimport { ButtonBase } from \"./button-base\";\nimport type { ButtonProps } from \"./types\";\n\nexport const Button = (props: ButtonProps) => {\n return <ButtonBase {...props} />;\n};\n\nButton.displayName = \"Button\";\n"]}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var chunkHPN7H5ZM_js = require('./chunk-HPN7H5ZM.js');
4
+ var react = require('react');
5
+
6
+ function clampDynamicStepperIndex(index, stepCount) {
7
+ if (stepCount <= 0) {
8
+ return 0;
9
+ }
10
+ return Math.min(Math.max(index, 0), stepCount - 1);
11
+ }
12
+ function useDynamicStepper({
13
+ stepCount,
14
+ activeStep: activeStepProp,
15
+ defaultActiveStep = 0,
16
+ onActiveStepChange,
17
+ onPrevious,
18
+ onNext
19
+ }) {
20
+ const [storedStep, setStoredStep] = chunkHPN7H5ZM_js.useControllableState({
21
+ value: activeStepProp,
22
+ defaultValue: clampDynamicStepperIndex(defaultActiveStep, stepCount),
23
+ onChange: onActiveStepChange
24
+ });
25
+ const activeStep = react.useMemo(
26
+ () => clampDynamicStepperIndex(storedStep, stepCount),
27
+ [storedStep, stepCount]
28
+ );
29
+ const canGoPrevious = stepCount > 0 && activeStep > 0;
30
+ const canGoNext = stepCount > 0 && activeStep < stepCount - 1;
31
+ const setActiveStep = react.useCallback(
32
+ (next) => {
33
+ const resolved = typeof next === "function" ? next(activeStep) : next;
34
+ setStoredStep(clampDynamicStepperIndex(resolved, stepCount));
35
+ },
36
+ [activeStep, setStoredStep, stepCount]
37
+ );
38
+ const goPrevious = react.useCallback(() => {
39
+ if (!canGoPrevious) {
40
+ return;
41
+ }
42
+ const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);
43
+ setStoredStep(nextStep);
44
+ onPrevious?.(nextStep);
45
+ }, [
46
+ activeStep,
47
+ canGoPrevious,
48
+ onPrevious,
49
+ setStoredStep,
50
+ stepCount
51
+ ]);
52
+ const goNext = react.useCallback(() => {
53
+ if (!canGoNext) {
54
+ return;
55
+ }
56
+ const nextStep = clampDynamicStepperIndex(activeStep + 1, stepCount);
57
+ setStoredStep(nextStep);
58
+ onNext?.(nextStep);
59
+ }, [activeStep, canGoNext, onNext, setStoredStep, stepCount]);
60
+ return {
61
+ activeStep,
62
+ setActiveStep,
63
+ goPrevious,
64
+ goNext,
65
+ canGoPrevious,
66
+ canGoNext,
67
+ stepCount
68
+ };
69
+ }
70
+
71
+ exports.useDynamicStepper = useDynamicStepper;
72
+ //# sourceMappingURL=chunk-MEJMX4QI.js.map
73
+ //# sourceMappingURL=chunk-MEJMX4QI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useDynamicStepper/useDynamicStepper.ts"],"names":["useControllableState","useMemo","useCallback"],"mappings":";;;;;AAWA,SAAS,wBAAA,CAAyB,OAAe,SAAA,EAA2B;AAC1E,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,IAAI,IAAA,CAAK,GAAA,CAAI,OAAO,CAAC,CAAA,EAAG,YAAY,CAAC,CAAA;AACnD;AAQO,SAAS,iBAAA,CAAkB;AAAA,EAChC,SAAA;AAAA,EACA,UAAA,EAAY,cAAA;AAAA,EACZ,iBAAA,GAAoB,CAAA;AAAA,EACpB,kBAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAqD;AACnD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,qCAAA,CAA6B;AAAA,IAC/D,KAAA,EAAO,cAAA;AAAA,IACP,YAAA,EAAc,wBAAA,CAAyB,iBAAA,EAAmB,SAAS,CAAA;AAAA,IACnE,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAAaC,aAAA;AAAA,IACjB,MAAM,wBAAA,CAAyB,UAAA,EAAY,SAAS,CAAA;AAAA,IACpD,CAAC,YAAY,SAAS;AAAA,GACxB;AAEA,EAAA,MAAM,aAAA,GAAgB,SAAA,GAAY,CAAA,IAAK,UAAA,GAAa,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,SAAA,GAAY,CAAA,IAAK,UAAA,GAAa,SAAA,GAAY,CAAA;AAE5D,EAAA,MAAM,aAAA,GAAgBC,iBAAA;AAAA,IACpB,CAAC,IAAA,KAA8C;AAC7C,MAAA,MAAM,WACJ,OAAO,IAAA,KAAS,UAAA,GACX,IAAA,CAAkC,UAAU,CAAA,GAC7C,IAAA;AACN,MAAA,aAAA,CAAc,wBAAA,CAAyB,QAAA,EAAU,SAAS,CAAC,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,aAAA,EAAe,SAAS;AAAA,GACvC;AAEA,EAAA,MAAM,UAAA,GAAaA,kBAAY,MAAM;AACnC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,wBAAA,CAAyB,UAAA,GAAa,CAAA,EAAG,SAAS,CAAA;AACnE,IAAA,aAAA,CAAc,QAAQ,CAAA;AACtB,IAAA,UAAA,GAAa,QAAQ,CAAA;AAAA,EACvB,CAAA,EAAG;AAAA,IACD,UAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,MAAA,GAASA,kBAAY,MAAM;AAC/B,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,wBAAA,CAAyB,UAAA,GAAa,CAAA,EAAG,SAAS,CAAA;AACnE,IAAA,aAAA,CAAc,QAAQ,CAAA;AACtB,IAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,EACnB,GAAG,CAAC,UAAA,EAAY,WAAW,MAAA,EAAQ,aAAA,EAAe,SAAS,CAAC,CAAA;AAE5D,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-MEJMX4QI.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport { useControllableState } from \"../useControllableState/useControllableState\";\n\nimport type {\n UseDynamicStepperParams,\n UseDynamicStepperResult,\n} from \"../../ui/dynamic-stepper/types\";\n\nfunction clampDynamicStepperIndex(index: number, stepCount: number): number {\n if (stepCount <= 0) {\n return 0;\n }\n return Math.min(Math.max(index, 0), stepCount - 1);\n}\n\n/**\n * Headless multi-step index with prev/next navigation.\n *\n * @param params.stepCount - Number of steps (0-based count semantics via indices).\n * @returns Active step, setter, navigation helpers, and boundary flags.\n */\nexport function useDynamicStepper({\n stepCount,\n activeStep: activeStepProp,\n defaultActiveStep = 0,\n onActiveStepChange,\n onPrevious,\n onNext,\n}: UseDynamicStepperParams): UseDynamicStepperResult {\n const [storedStep, setStoredStep] = useControllableState<number>({\n value: activeStepProp,\n defaultValue: clampDynamicStepperIndex(defaultActiveStep, stepCount),\n onChange: onActiveStepChange,\n });\n\n const activeStep = useMemo(\n () => clampDynamicStepperIndex(storedStep, stepCount),\n [storedStep, stepCount],\n );\n\n const canGoPrevious = stepCount > 0 && activeStep > 0;\n const canGoNext = stepCount > 0 && activeStep < stepCount - 1;\n\n const setActiveStep = useCallback(\n (next: number | ((prev: number) => number)) => {\n const resolved =\n typeof next === \"function\"\n ? (next as (prev: number) => number)(activeStep)\n : next;\n setStoredStep(clampDynamicStepperIndex(resolved, stepCount));\n },\n [activeStep, setStoredStep, stepCount],\n );\n\n const goPrevious = useCallback(() => {\n if (!canGoPrevious) {\n return;\n }\n const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);\n setStoredStep(nextStep);\n onPrevious?.(nextStep);\n }, [\n activeStep,\n canGoPrevious,\n onPrevious,\n setStoredStep,\n stepCount,\n ]);\n\n const goNext = useCallback(() => {\n if (!canGoNext) {\n return;\n }\n const nextStep = clampDynamicStepperIndex(activeStep + 1, stepCount);\n setStoredStep(nextStep);\n onNext?.(nextStep);\n }, [activeStep, canGoNext, onNext, setStoredStep, stepCount]);\n\n return {\n activeStep,\n setActiveStep,\n goPrevious,\n goNext,\n canGoPrevious,\n canGoNext,\n stepCount,\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-N6B35KWW.mjs.map
3
+ //# sourceMappingURL=chunk-N6B35KWW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-N6B35KWW.mjs"}
@@ -25,5 +25,5 @@ function useControllableState({
25
25
  }
26
26
 
27
27
  export { useControllableState };
28
- //# sourceMappingURL=chunk-73VCO5TE.mjs.map
29
- //# sourceMappingURL=chunk-73VCO5TE.mjs.map
28
+ //# sourceMappingURL=chunk-NWOE2TZN.mjs.map
29
+ //# sourceMappingURL=chunk-NWOE2TZN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useControllableState/useControllableState.ts"],"names":[],"mappings":";;;AAwBO,SAAS,oBAAA,CAAwB;AAAA,EACtC,KAAA,EAAO,SAAA;AAAA,EACP,YAAA;AAAA,EACA;AACF,CAAA,EAA6E;AAC3E,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,YAAY,CAAA;AAC7D,EAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,eAAe,SAAA,GAAY,YAAA;AACzC,EAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AACnC,EAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAEtB,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,IAAA,KAA+B;AAC9B,MAAA,MAAM,WACJ,OAAO,IAAA,KAAS,UAAA,GAAc,IAAA,CAAwB,KAAK,CAAA,GAAI,IAAA;AACjE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,eAAA,CAAgB,QAAQ,CAAA;AAAA,MAC1B;AACA,MAAA,WAAA,CAAY,UAAU,QAAQ,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,cAAc,KAAK;AAAA,GACtB;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AACzB","file":"chunk-73VCO5TE.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useRef, useState } from \"react\";\n\nexport type UseControllableStateParams<T> = {\n /** When defined, the hook is controlled and this value is returned as state. */\n value?: T;\n /** Initial / fallback value when uncontrolled (`value` is `undefined`). */\n defaultValue: T;\n /** Notified on every `setValue` with the resolved next value (controlled and uncontrolled). */\n onChange?: (next: T) => void;\n};\n\n/**\n * Implements the React “controlled vs uncontrolled” pattern as a single state tuple.\n *\n * - If `value` is `undefined`, internal state mirrors `defaultValue` and updates on `setValue`.\n * - If `value` is defined, returned state follows `value`; `setValue` still calls `onChange` so the parent can update.\n * - `setValue` accepts either the next value or an updater `(prev) => next` (updater uses the current `value` in controlled mode).\n *\n * @typeParam T - State value type.\n * @param params - `value`, `defaultValue`, and optional `onChange`.\n * @returns `[value, setValue]` compatible with `useState`-style usage.\n */\nexport function useControllableState<T>({\n value: valueProp,\n defaultValue,\n onChange,\n}: UseControllableStateParams<T>): [T, (next: T | ((prev: T) => T)) => void] {\n const [uncontrolled, setUncontrolled] = useState(defaultValue);\n const isControlled = valueProp !== undefined;\n const value = isControlled ? valueProp : uncontrolled;\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const setValue = useCallback(\n (next: T | ((prev: T) => T)) => {\n const resolved =\n typeof next === \"function\" ? (next as (prev: T) => T)(value) : next;\n if (!isControlled) {\n setUncontrolled(resolved);\n }\n onChangeRef.current?.(resolved);\n },\n [isControlled, value],\n );\n\n return [value, setValue];\n}\n"]}
1
+ {"version":3,"sources":["../src/hooks/useControllableState/useControllableState.ts"],"names":[],"mappings":";;;AAwBO,SAAS,oBAAA,CAAwB;AAAA,EACtC,KAAA,EAAO,SAAA;AAAA,EACP,YAAA;AAAA,EACA;AACF,CAAA,EAA6E;AAC3E,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,YAAY,CAAA;AAC7D,EAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,eAAe,SAAA,GAAY,YAAA;AACzC,EAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AACnC,EAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAEtB,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,IAAA,KAA+B;AAC9B,MAAA,MAAM,WACJ,OAAO,IAAA,KAAS,UAAA,GAAc,IAAA,CAAwB,KAAK,CAAA,GAAI,IAAA;AACjE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,eAAA,CAAgB,QAAQ,CAAA;AAAA,MAC1B;AACA,MAAA,WAAA,CAAY,UAAU,QAAQ,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,cAAc,KAAK;AAAA,GACtB;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AACzB","file":"chunk-NWOE2TZN.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useRef, useState } from \"react\";\n\nexport type UseControllableStateParams<T> = {\n /** When defined, the hook is controlled and this value is returned as state. */\n value?: T;\n /** Initial / fallback value when uncontrolled (`value` is `undefined`). */\n defaultValue: T;\n /** Notified on every `setValue` with the resolved next value (controlled and uncontrolled). */\n onChange?: (next: T) => void;\n};\n\n/**\n * Implements the React “controlled vs uncontrolled” pattern as a single state tuple.\n *\n * - If `value` is `undefined`, internal state mirrors `defaultValue` and updates on `setValue`.\n * - If `value` is defined, returned state follows `value`; `setValue` still calls `onChange` so the parent can update.\n * - `setValue` accepts either the next value or an updater `(prev) => next` (updater uses the current `value` in controlled mode).\n *\n * @typeParam T - State value type.\n * @param params - `value`, `defaultValue`, and optional `onChange`.\n * @returns `[value, setValue]` compatible with `useState`-style usage.\n */\nexport function useControllableState<T>({\n value: valueProp,\n defaultValue,\n onChange,\n}: UseControllableStateParams<T>): [T, (next: T | ((prev: T) => T)) => void] {\n const [uncontrolled, setUncontrolled] = useState(defaultValue);\n const isControlled = valueProp !== undefined;\n const value = isControlled ? valueProp : uncontrolled;\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const setValue = useCallback(\n (next: T | ((prev: T) => T)) => {\n const resolved =\n typeof next === \"function\" ? (next as (prev: T) => T)(value) : next;\n if (!isControlled) {\n setUncontrolled(resolved);\n }\n onChangeRef.current?.(resolved);\n },\n [isControlled, value],\n );\n\n return [value, setValue];\n}\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=chunk-RGOMHX4G.js.map
4
+ //# sourceMappingURL=chunk-RGOMHX4G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-RGOMHX4G.js"}
@@ -1,13 +1,14 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk2VQJ6OIL_js = require('../chunk-2VQJ6OIL.js');
4
+ require('../chunk-RGOMHX4G.js');
5
+ var chunkHPN7H5ZM_js = require('../chunk-HPN7H5ZM.js');
5
6
 
6
7
 
7
8
 
8
9
  Object.defineProperty(exports, "useControllableState", {
9
10
  enumerable: true,
10
- get: function () { return chunk2VQJ6OIL_js.useControllableState; }
11
+ get: function () { return chunkHPN7H5ZM_js.useControllableState; }
11
12
  });
12
13
  //# sourceMappingURL=useControllableState.js.map
13
14
  //# sourceMappingURL=useControllableState.js.map
@@ -1,4 +1,5 @@
1
1
  "use client";
2
- export { useControllableState } from '../chunk-73VCO5TE.mjs';
2
+ import '../chunk-N6B35KWW.mjs';
3
+ export { useControllableState } from '../chunk-NWOE2TZN.mjs';
3
4
  //# sourceMappingURL=useControllableState.mjs.map
4
5
  //# sourceMappingURL=useControllableState.mjs.map
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk2VQJ6OIL_js = require('../chunk-2VQJ6OIL.js');
4
+ require('../chunk-RGOMHX4G.js');
5
+ var chunkHPN7H5ZM_js = require('../chunk-HPN7H5ZM.js');
5
6
  var react = require('react');
6
7
 
7
8
  function useDisclosure({
@@ -9,7 +10,7 @@ function useDisclosure({
9
10
  defaultOpen = false,
10
11
  onOpenChange
11
12
  } = {}) {
12
- const [isOpen, setOpenState] = chunk2VQJ6OIL_js.useControllableState({
13
+ const [isOpen, setOpenState] = chunkHPN7H5ZM_js.useControllableState({
13
14
  value: openProp,
14
15
  defaultValue: defaultOpen,
15
16
  onChange: onOpenChange
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useDisclosure/useDisclosure.ts"],"names":["useControllableState","useCallback","open"],"mappings":";;;;;AA8BO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd;AACF,CAAA,GAAyB,EAAC,EAAwB;AAChD,EAAA,MAAM,CAAC,MAAA,EAAQ,YAAY,CAAA,GAAIA,qCAAA,CAAqB;AAAA,IAClD,KAAA,EAAO,QAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAA,GAAUC,iBAAA;AAAA,IACd,CAACC,KAAAA,KAAkB;AACjB,MAAA,YAAA,CAAaA,KAAI,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,MAAM,IAAA,GAAOD,kBAAY,MAAM;AAC7B,IAAA,YAAA,CAAa,IAAI,CAAA;AAAA,EACnB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,KAAA,GAAQA,kBAAY,MAAM;AAC9B,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,MAAA,GAASA,kBAAY,MAAM;AAC/B,IAAA,YAAA,CAAa,CAAC,MAAM,CAAA;AAAA,EACtB,CAAA,EAAG,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAEzB,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,QAAQ,OAAA,EAAQ;AAChD","file":"useDisclosure.js","sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\n\nimport { useControllableState } from \"../useControllableState\";\n\nexport type UseDisclosureParams = {\n /** Controlled open flag; omit for uncontrolled usage with `defaultOpen`. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n /** Fired whenever open state changes from user-driven `setOpen` / `open` / `close` / `toggle`. */\n onOpenChange?: (open: boolean) => void;\n};\n\nexport type UseDisclosureResult = {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n setOpen: (open: boolean) => void;\n};\n\n/**\n * Boolean open/close state for overlays (dialogs, menus, collapsible regions) with optional control from the parent.\n * Built on {@link useControllableState}; semantics match common headless UI libraries.\n *\n * @param params - Optional `open`, `defaultOpen`, and `onOpenChange`.\n * @returns Helpers `open`, `close`, `toggle`, `setOpen`, and the current `isOpen` flag.\n */\nexport function useDisclosure({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n}: UseDisclosureParams = {}): UseDisclosureResult {\n const [isOpen, setOpenState] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const setOpen = useCallback(\n (open: boolean) => {\n setOpenState(open);\n },\n [setOpenState],\n );\n\n const open = useCallback(() => {\n setOpenState(true);\n }, [setOpenState]);\n\n const close = useCallback(() => {\n setOpenState(false);\n }, [setOpenState]);\n\n const toggle = useCallback(() => {\n setOpenState(!isOpen);\n }, [isOpen, setOpenState]);\n\n return { isOpen, open, close, toggle, setOpen };\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/useDisclosure/useDisclosure.ts"],"names":["useControllableState","useCallback","open"],"mappings":";;;;;;AA8BO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd;AACF,CAAA,GAAyB,EAAC,EAAwB;AAChD,EAAA,MAAM,CAAC,MAAA,EAAQ,YAAY,CAAA,GAAIA,qCAAA,CAAqB;AAAA,IAClD,KAAA,EAAO,QAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAA,GAAUC,iBAAA;AAAA,IACd,CAACC,KAAAA,KAAkB;AACjB,MAAA,YAAA,CAAaA,KAAI,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,MAAM,IAAA,GAAOD,kBAAY,MAAM;AAC7B,IAAA,YAAA,CAAa,IAAI,CAAA;AAAA,EACnB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,KAAA,GAAQA,kBAAY,MAAM;AAC9B,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,MAAA,GAASA,kBAAY,MAAM;AAC/B,IAAA,YAAA,CAAa,CAAC,MAAM,CAAA;AAAA,EACtB,CAAA,EAAG,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAEzB,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,QAAQ,OAAA,EAAQ;AAChD","file":"useDisclosure.js","sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\n\nimport { useControllableState } from \"../useControllableState\";\n\nexport type UseDisclosureParams = {\n /** Controlled open flag; omit for uncontrolled usage with `defaultOpen`. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n /** Fired whenever open state changes from user-driven `setOpen` / `open` / `close` / `toggle`. */\n onOpenChange?: (open: boolean) => void;\n};\n\nexport type UseDisclosureResult = {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n setOpen: (open: boolean) => void;\n};\n\n/**\n * Boolean open/close state for overlays (dialogs, menus, collapsible regions) with optional control from the parent.\n * Built on {@link useControllableState}; semantics match common headless UI libraries.\n *\n * @param params - Optional `open`, `defaultOpen`, and `onOpenChange`.\n * @returns Helpers `open`, `close`, `toggle`, `setOpen`, and the current `isOpen` flag.\n */\nexport function useDisclosure({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n}: UseDisclosureParams = {}): UseDisclosureResult {\n const [isOpen, setOpenState] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const setOpen = useCallback(\n (open: boolean) => {\n setOpenState(open);\n },\n [setOpenState],\n );\n\n const open = useCallback(() => {\n setOpenState(true);\n }, [setOpenState]);\n\n const close = useCallback(() => {\n setOpenState(false);\n }, [setOpenState]);\n\n const toggle = useCallback(() => {\n setOpenState(!isOpen);\n }, [isOpen, setOpenState]);\n\n return { isOpen, open, close, toggle, setOpen };\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { useControllableState } from '../chunk-73VCO5TE.mjs';
2
+ import '../chunk-N6B35KWW.mjs';
3
+ import { useControllableState } from '../chunk-NWOE2TZN.mjs';
3
4
  import { useCallback } from 'react';
4
5
 
5
6
  function useDisclosure({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useDisclosure/useDisclosure.ts"],"names":["open"],"mappings":";;;AA8BO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd;AACF,CAAA,GAAyB,EAAC,EAAwB;AAChD,EAAA,MAAM,CAAC,MAAA,EAAQ,YAAY,CAAA,GAAI,oBAAA,CAAqB;AAAA,IAClD,KAAA,EAAO,QAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAA,GAAU,WAAA;AAAA,IACd,CAACA,KAAAA,KAAkB;AACjB,MAAA,YAAA,CAAaA,KAAI,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,MAAM,IAAA,GAAO,YAAY,MAAM;AAC7B,IAAA,YAAA,CAAa,IAAI,CAAA;AAAA,EACnB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,YAAA,CAAa,CAAC,MAAM,CAAA;AAAA,EACtB,CAAA,EAAG,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAEzB,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,QAAQ,OAAA,EAAQ;AAChD","file":"useDisclosure.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\n\nimport { useControllableState } from \"../useControllableState\";\n\nexport type UseDisclosureParams = {\n /** Controlled open flag; omit for uncontrolled usage with `defaultOpen`. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n /** Fired whenever open state changes from user-driven `setOpen` / `open` / `close` / `toggle`. */\n onOpenChange?: (open: boolean) => void;\n};\n\nexport type UseDisclosureResult = {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n setOpen: (open: boolean) => void;\n};\n\n/**\n * Boolean open/close state for overlays (dialogs, menus, collapsible regions) with optional control from the parent.\n * Built on {@link useControllableState}; semantics match common headless UI libraries.\n *\n * @param params - Optional `open`, `defaultOpen`, and `onOpenChange`.\n * @returns Helpers `open`, `close`, `toggle`, `setOpen`, and the current `isOpen` flag.\n */\nexport function useDisclosure({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n}: UseDisclosureParams = {}): UseDisclosureResult {\n const [isOpen, setOpenState] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const setOpen = useCallback(\n (open: boolean) => {\n setOpenState(open);\n },\n [setOpenState],\n );\n\n const open = useCallback(() => {\n setOpenState(true);\n }, [setOpenState]);\n\n const close = useCallback(() => {\n setOpenState(false);\n }, [setOpenState]);\n\n const toggle = useCallback(() => {\n setOpenState(!isOpen);\n }, [isOpen, setOpenState]);\n\n return { isOpen, open, close, toggle, setOpen };\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/useDisclosure/useDisclosure.ts"],"names":["open"],"mappings":";;;;AA8BO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd;AACF,CAAA,GAAyB,EAAC,EAAwB;AAChD,EAAA,MAAM,CAAC,MAAA,EAAQ,YAAY,CAAA,GAAI,oBAAA,CAAqB;AAAA,IAClD,KAAA,EAAO,QAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAA,GAAU,WAAA;AAAA,IACd,CAACA,KAAAA,KAAkB;AACjB,MAAA,YAAA,CAAaA,KAAI,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,MAAM,IAAA,GAAO,YAAY,MAAM;AAC7B,IAAA,YAAA,CAAa,IAAI,CAAA;AAAA,EACnB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,YAAA,CAAa,CAAC,MAAM,CAAA;AAAA,EACtB,CAAA,EAAG,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAEzB,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,QAAQ,OAAA,EAAQ;AAChD","file":"useDisclosure.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\n\nimport { useControllableState } from \"../useControllableState\";\n\nexport type UseDisclosureParams = {\n /** Controlled open flag; omit for uncontrolled usage with `defaultOpen`. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n /** Fired whenever open state changes from user-driven `setOpen` / `open` / `close` / `toggle`. */\n onOpenChange?: (open: boolean) => void;\n};\n\nexport type UseDisclosureResult = {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n setOpen: (open: boolean) => void;\n};\n\n/**\n * Boolean open/close state for overlays (dialogs, menus, collapsible regions) with optional control from the parent.\n * Built on {@link useControllableState}; semantics match common headless UI libraries.\n *\n * @param params - Optional `open`, `defaultOpen`, and `onOpenChange`.\n * @returns Helpers `open`, `close`, `toggle`, `setOpen`, and the current `isOpen` flag.\n */\nexport function useDisclosure({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n}: UseDisclosureParams = {}): UseDisclosureResult {\n const [isOpen, setOpenState] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const setOpen = useCallback(\n (open: boolean) => {\n setOpenState(open);\n },\n [setOpenState],\n );\n\n const open = useCallback(() => {\n setOpenState(true);\n }, [setOpenState]);\n\n const close = useCallback(() => {\n setOpenState(false);\n }, [setOpenState]);\n\n const toggle = useCallback(() => {\n setOpenState(!isOpen);\n }, [isOpen, setOpenState]);\n\n return { isOpen, open, close, toggle, setOpen };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { useDynamicStepper, } from "./useDynamicStepper";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDynamicStepper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { UseDynamicStepperParams, UseDynamicStepperResult } from "../../ui/dynamic-stepper/types";
2
+ /**
3
+ * Headless multi-step index with prev/next navigation.
4
+ *
5
+ * @param params.stepCount - Number of steps (0-based count semantics via indices).
6
+ * @returns Active step, setter, navigation helpers, and boundary flags.
7
+ */
8
+ export declare function useDynamicStepper({ stepCount, activeStep: activeStepProp, defaultActiveStep, onActiveStepChange, onPrevious, onNext, }: UseDynamicStepperParams): UseDynamicStepperResult;
9
+ //# sourceMappingURL=useDynamicStepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicStepper.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDynamicStepper/useDynamicStepper.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AASxC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,UAAU,EAAE,cAAc,EAC1B,iBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,MAAM,GACP,EAAE,uBAAuB,GAAG,uBAAuB,CA2DnD"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkMEJMX4QI_js = require('../chunk-MEJMX4QI.js');
5
+ require('../chunk-HPN7H5ZM.js');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "useDynamicStepper", {
10
+ enumerable: true,
11
+ get: function () { return chunkMEJMX4QI_js.useDynamicStepper; }
12
+ });
13
+ //# sourceMappingURL=useDynamicStepper.js.map
14
+ //# sourceMappingURL=useDynamicStepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"useDynamicStepper.js"}
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ export { useDynamicStepper } from '../chunk-JJDANNNL.mjs';
3
+ import '../chunk-NWOE2TZN.mjs';
4
+ //# sourceMappingURL=useDynamicStepper.mjs.map
5
+ //# sourceMappingURL=useDynamicStepper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"useDynamicStepper.mjs"}
@@ -1,67 +1,19 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var chunkKXUG4WVW_js = require('../chunk-KXUG4WVW.js');
4
5
  var chunkOB4KJZK2_js = require('../chunk-OB4KJZK2.js');
5
- var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
6
- var jsxRuntime = require('react/jsx-runtime');
6
+ require('../chunk-ZS5756ZC.js');
7
7
 
8
- var ButtonBase = (props) => {
9
- if (props.as === "link") {
10
- const {
11
- className: className2,
12
- appearance: appearance2,
13
- size: size2,
14
- children: children2,
15
- ref: ref2,
16
- href,
17
- target,
18
- ...rest2
19
- } = props;
20
- return /* @__PURE__ */ jsxRuntime.jsx(
21
- "a",
22
- {
23
- ref: ref2,
24
- href,
25
- target,
26
- rel: target === "_blank" ? "noopener noreferrer" : void 0,
27
- "data-slot": "button",
28
- className: chunkZS5756ZC_js.cn(chunkOB4KJZK2_js.buttonVariants({ appearance: appearance2, size: size2 }), className2),
29
- ...rest2,
30
- children: children2
31
- }
32
- );
33
- }
34
- const {
35
- className,
36
- appearance,
37
- size,
38
- type = "button",
39
- children,
40
- ref,
41
- ...rest
42
- } = props;
43
- return /* @__PURE__ */ jsxRuntime.jsx(
44
- "button",
45
- {
46
- ref,
47
- type,
48
- "data-slot": "button",
49
- className: chunkZS5756ZC_js.cn(chunkOB4KJZK2_js.buttonVariants({ appearance, size }), className),
50
- ...rest,
51
- children
52
- }
53
- );
54
- };
55
- ButtonBase.displayName = "Button";
56
- var Button = (props) => {
57
- return /* @__PURE__ */ jsxRuntime.jsx(ButtonBase, { ...props });
58
- };
59
- Button.displayName = "Button";
60
8
 
9
+
10
+ Object.defineProperty(exports, "Button", {
11
+ enumerable: true,
12
+ get: function () { return chunkKXUG4WVW_js.Button; }
13
+ });
61
14
  Object.defineProperty(exports, "buttonVariants", {
62
15
  enumerable: true,
63
16
  get: function () { return chunkOB4KJZK2_js.buttonVariants; }
64
17
  });
65
- exports.Button = Button;
66
18
  //# sourceMappingURL=buttons.js.map
67
19
  //# sourceMappingURL=buttons.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/buttons/button-base.tsx","../../src/ui/buttons/button.tsx"],"names":["className","appearance","size","children","ref","rest","jsx","cn","buttonVariants"],"mappings":";;;;;;AAOO,IAAM,UAAA,GAAa,CAAC,KAAA,KAAuB;AAChD,EAAA,IAAI,KAAA,CAAM,OAAO,MAAA,EAAQ;AACvB,IAAA,MAAM;AAAA,MACJ,SAAA,EAAAA,UAAAA;AAAA,MACA,UAAA,EAAAC,WAAAA;AAAA,MACA,IAAA,EAAAC,KAAAA;AAAA,MACA,QAAA,EAAAC,SAAAA;AAAA,MACA,GAAA,EAAAC,IAAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,GAAGC;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,uBACEC,cAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAKF,IAAAA;AAAA,QACL,IAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA,EAAK,MAAA,KAAW,QAAA,GAAW,qBAAA,GAAwB,MAAA;AAAA,QACnD,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAWG,mBAAA,CAAGC,+BAAA,CAAe,EAAE,UAAA,EAAAP,aAAY,IAAA,EAAAC,KAAAA,EAAM,CAAA,EAAGF,UAAS,CAAA;AAAA,QAC5D,GAAGK,KAAAA;AAAA,QAEH,QAAA,EAAAF;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,uBACEG,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAWC,oBAAGC,+BAAA,CAAe,EAAE,YAAY,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC5D,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,UAAA,CAAW,WAAA,GAAc,QAAA;ACtDlB,IAAM,MAAA,GAAS,CAAC,KAAA,KAAuB;AAC5C,EAAA,uBAAOF,cAAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AAChC;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"buttons.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { ButtonProps } from \"./types\";\nimport { buttonVariants } from \"./variants\";\n\nexport const ButtonBase = (props: ButtonProps) => {\n if (props.as === \"link\") {\n const {\n className,\n appearance,\n size,\n children,\n ref,\n href,\n target,\n ...rest\n } = props;\n\n return (\n <a\n ref={ref}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n const {\n className,\n appearance,\n size,\n type = \"button\",\n children,\n ref,\n ...rest\n } = props;\n\n return (\n <button\n ref={ref}\n type={type}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nButtonBase.displayName = \"Button\";\n","// button.tsx — default static entry (no framer-motion)\nimport { ButtonBase } from \"./button-base\";\nimport type { ButtonProps } from \"./types\";\n\nexport const Button = (props: ButtonProps) => {\n return <ButtonBase {...props} />;\n};\n\nButton.displayName = \"Button\";\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"buttons.js"}
@@ -1,62 +1,6 @@
1
1
  "use client";
2
- import { buttonVariants } from '../chunk-5TV7EL3H.mjs';
2
+ export { Button } from '../chunk-7OHC4ERB.mjs';
3
3
  export { buttonVariants } from '../chunk-5TV7EL3H.mjs';
4
- import { cn } from '../chunk-4D54YOL6.mjs';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- var ButtonBase = (props) => {
8
- if (props.as === "link") {
9
- const {
10
- className: className2,
11
- appearance: appearance2,
12
- size: size2,
13
- children: children2,
14
- ref: ref2,
15
- href,
16
- target,
17
- ...rest2
18
- } = props;
19
- return /* @__PURE__ */ jsx(
20
- "a",
21
- {
22
- ref: ref2,
23
- href,
24
- target,
25
- rel: target === "_blank" ? "noopener noreferrer" : void 0,
26
- "data-slot": "button",
27
- className: cn(buttonVariants({ appearance: appearance2, size: size2 }), className2),
28
- ...rest2,
29
- children: children2
30
- }
31
- );
32
- }
33
- const {
34
- className,
35
- appearance,
36
- size,
37
- type = "button",
38
- children,
39
- ref,
40
- ...rest
41
- } = props;
42
- return /* @__PURE__ */ jsx(
43
- "button",
44
- {
45
- ref,
46
- type,
47
- "data-slot": "button",
48
- className: cn(buttonVariants({ appearance, size }), className),
49
- ...rest,
50
- children
51
- }
52
- );
53
- };
54
- ButtonBase.displayName = "Button";
55
- var Button = (props) => {
56
- return /* @__PURE__ */ jsx(ButtonBase, { ...props });
57
- };
58
- Button.displayName = "Button";
59
-
60
- export { Button };
4
+ import '../chunk-4D54YOL6.mjs';
61
5
  //# sourceMappingURL=buttons.mjs.map
62
6
  //# sourceMappingURL=buttons.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/buttons/button-base.tsx","../../src/ui/buttons/button.tsx"],"names":["className","appearance","size","children","ref","rest","jsx"],"mappings":";;;;;AAOO,IAAM,UAAA,GAAa,CAAC,KAAA,KAAuB;AAChD,EAAA,IAAI,KAAA,CAAM,OAAO,MAAA,EAAQ;AACvB,IAAA,MAAM;AAAA,MACJ,SAAA,EAAAA,UAAAA;AAAA,MACA,UAAA,EAAAC,WAAAA;AAAA,MACA,IAAA,EAAAC,KAAAA;AAAA,MACA,QAAA,EAAAC,SAAAA;AAAA,MACA,GAAA,EAAAC,IAAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,GAAGC;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,uBACE,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAKD,IAAAA;AAAA,QACL,IAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA,EAAK,MAAA,KAAW,QAAA,GAAW,qBAAA,GAAwB,MAAA;AAAA,QACnD,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAW,EAAA,CAAG,cAAA,CAAe,EAAE,UAAA,EAAAH,aAAY,IAAA,EAAAC,KAAAA,EAAM,CAAA,EAAGF,UAAS,CAAA;AAAA,QAC5D,GAAGK,KAAAA;AAAA,QAEH,QAAA,EAAAF;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,YAAY,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC5D,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,UAAA,CAAW,WAAA,GAAc,QAAA;ACtDlB,IAAM,MAAA,GAAS,CAAC,KAAA,KAAuB;AAC5C,EAAA,uBAAOG,GAAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AAChC;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"buttons.mjs","sourcesContent":["\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { ButtonProps } from \"./types\";\nimport { buttonVariants } from \"./variants\";\n\nexport const ButtonBase = (props: ButtonProps) => {\n if (props.as === \"link\") {\n const {\n className,\n appearance,\n size,\n children,\n ref,\n href,\n target,\n ...rest\n } = props;\n\n return (\n <a\n ref={ref}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n const {\n className,\n appearance,\n size,\n type = \"button\",\n children,\n ref,\n ...rest\n } = props;\n\n return (\n <button\n ref={ref}\n type={type}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nButtonBase.displayName = \"Button\";\n","// button.tsx — default static entry (no framer-motion)\nimport { ButtonBase } from \"./button-base\";\nimport type { ButtonProps } from \"./types\";\n\nexport const Button = (props: ButtonProps) => {\n return <ButtonBase {...props} />;\n};\n\nButton.displayName = \"Button\";\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"buttons.mjs"}
@@ -0,0 +1,6 @@
1
+ import type { DynamicStepperProps } from "./types";
2
+ export declare const DynamicStepper: {
3
+ ({ steps, orientation, buttonAppearance, buttonSize, indicatorSize, indicatorCompleteAppearance, indicatorCurrentAppearance, indicatorUpcomingAppearance, activeStep: activeStepProp, defaultActiveStep, onActiveStepChange, onPrevious, onNext, prevLabel, nextLabel, className, ref, ...rest }: DynamicStepperProps): import("react/jsx-runtime").JSX.Element | null;
4
+ displayName: string;
5
+ };
6
+ //# sourceMappingURL=dynamic-stepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-stepper.d.ts","sourceRoot":"","sources":["../../../src/ui/dynamic-stepper/dynamic-stepper.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASnD,eAAO,MAAM,cAAc;sSAmBxB,mBAAmB;;CAsIrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { DynamicStepper } from "./dynamic-stepper";
2
+ export type { DynamicStepperButtonAppearance, DynamicStepperButtonSize, DynamicStepperIndicatorSize, DynamicStepperIndicatorToneAppearance, DynamicStepperOrientation, DynamicStepperProps, DynamicStepperStep, UseDynamicStepperParams, UseDynamicStepperResult, } from "./types";
3
+ export { dynamicStepperIndicatorToneClass, dynamicStepperIndicatorVariants, dynamicStepperItemVariants, dynamicStepperMapperVariants, dynamicStepperRootVariants, } from "./variants";
4
+ export type { DynamicStepperIndicatorSemanticState, } from "./variants";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dynamic-stepper/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,qCAAqC,EACrC,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,oCAAoC,GACrC,MAAM,YAAY,CAAC"}