@fanvue/ui 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cjs/components/Icons/FacebookIcon.cjs +48 -0
  2. package/dist/cjs/components/Icons/FacebookIcon.cjs.map +1 -0
  3. package/dist/cjs/components/Icons/GoogleIcon.cjs +71 -0
  4. package/dist/cjs/components/Icons/GoogleIcon.cjs.map +1 -0
  5. package/dist/cjs/components/Icons/ThumbDownFilledIcon.cjs +45 -0
  6. package/dist/cjs/components/Icons/ThumbDownFilledIcon.cjs.map +1 -0
  7. package/dist/cjs/components/Icons/ThumbUpFilledIcon.cjs +45 -0
  8. package/dist/cjs/components/Icons/ThumbUpFilledIcon.cjs.map +1 -0
  9. package/dist/cjs/components/Icons/TwitterIcon.cjs +48 -0
  10. package/dist/cjs/components/Icons/TwitterIcon.cjs.map +1 -0
  11. package/dist/cjs/components/Stepper/Stepper.cjs +72 -0
  12. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -0
  13. package/dist/cjs/components/Stepper/StepperStep.cjs +103 -0
  14. package/dist/cjs/components/Stepper/StepperStep.cjs.map +1 -0
  15. package/dist/cjs/index.cjs +14 -0
  16. package/dist/cjs/index.cjs.map +1 -1
  17. package/dist/components/Icons/FacebookIcon.mjs +31 -0
  18. package/dist/components/Icons/FacebookIcon.mjs.map +1 -0
  19. package/dist/components/Icons/GoogleIcon.mjs +54 -0
  20. package/dist/components/Icons/GoogleIcon.mjs.map +1 -0
  21. package/dist/components/Icons/ThumbDownFilledIcon.mjs +28 -0
  22. package/dist/components/Icons/ThumbDownFilledIcon.mjs.map +1 -0
  23. package/dist/components/Icons/ThumbUpFilledIcon.mjs +28 -0
  24. package/dist/components/Icons/ThumbUpFilledIcon.mjs.map +1 -0
  25. package/dist/components/Icons/TwitterIcon.mjs +31 -0
  26. package/dist/components/Icons/TwitterIcon.mjs.map +1 -0
  27. package/dist/components/Stepper/Stepper.mjs +55 -0
  28. package/dist/components/Stepper/Stepper.mjs.map +1 -0
  29. package/dist/components/Stepper/StepperStep.mjs +86 -0
  30. package/dist/components/Stepper/StepperStep.mjs.map +1 -0
  31. package/dist/index.d.ts +84 -0
  32. package/dist/index.mjs +14 -0
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/styles/theme.css +9 -0
  35. package/package.json +2 -2
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
24
+ const FacebookIcon = React__namespace.forwardRef(
25
+ ({ className, ...props }, ref) => {
26
+ return /* @__PURE__ */ jsxRuntime.jsx(
27
+ "svg",
28
+ {
29
+ ref,
30
+ viewBox: "0 0 14 14",
31
+ fill: "none",
32
+ "aria-hidden": "true",
33
+ className: cn.cn("size-6", className),
34
+ ...props,
35
+ children: /* @__PURE__ */ jsxRuntime.jsx(
36
+ "path",
37
+ {
38
+ fill: "currentColor",
39
+ d: "M5.30892 13.8448V9.17272H3.86575V7.02576H5.30892V6.1007C5.30892 3.70902 6.38692 2.6007 8.72608 2.6007C8.96 2.6007 9.28317 2.62529 9.58242 2.66101C9.80656 2.68416 10.0289 2.7223 10.248 2.77518V4.7219C10.1213 4.71004 9.99428 4.70301 9.86708 4.70082C9.72459 4.69711 9.58204 4.69535 9.4395 4.69555C9.02708 4.69555 8.70508 4.75176 8.46242 4.87646C8.29928 4.95861 8.16214 5.08471 8.06633 5.24063C7.91583 5.48653 7.84817 5.82318 7.84817 6.26639V7.02576H10.1342L9.90908 8.25703L9.74167 9.17272H7.84817V14C11.3143 13.5796 14 10.6177 14 7.02576C14 3.14578 10.8657 0 7 0C3.13425 0 0 3.14578 0 7.02576C0 10.3208 2.25983 13.0855 5.30892 13.8448Z"
40
+ }
41
+ )
42
+ }
43
+ );
44
+ }
45
+ );
46
+ FacebookIcon.displayName = "FacebookIcon";
47
+ exports.FacebookIcon = FacebookIcon;
48
+ //# sourceMappingURL=FacebookIcon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FacebookIcon.cjs","sources":["../../../../src/components/Icons/FacebookIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const FacebookIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M5.30892 13.8448V9.17272H3.86575V7.02576H5.30892V6.1007C5.30892 3.70902 6.38692 2.6007 8.72608 2.6007C8.96 2.6007 9.28317 2.62529 9.58242 2.66101C9.80656 2.68416 10.0289 2.7223 10.248 2.77518V4.7219C10.1213 4.71004 9.99428 4.70301 9.86708 4.70082C9.72459 4.69711 9.58204 4.69535 9.4395 4.69555C9.02708 4.69555 8.70508 4.75176 8.46242 4.87646C8.29928 4.95861 8.16214 5.08471 8.06633 5.24063C7.91583 5.48653 7.84817 5.82318 7.84817 6.26639V7.02576H10.1342L9.90908 8.25703L9.74167 9.17272H7.84817V14C11.3143 13.5796 14 10.6177 14 7.02576C14 3.14578 10.8657 0 7 0C3.13425 0 0 3.14578 0 7.02576C0 10.3208 2.25983 13.0855 5.30892 13.8448Z\"\n />\n </svg>\n );\n },\n);\n\nFacebookIcon.displayName = \"FacebookIcon\";\n"],"names":["React","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,eAAeA,iBAAM;AAAA,EAChC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAWC,GAAAA,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,UAAAD,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,aAAa,cAAc;;"}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
24
+ const GoogleIcon = React__namespace.forwardRef(
25
+ ({ className, ...props }, ref) => {
26
+ return /* @__PURE__ */ jsxRuntime.jsxs(
27
+ "svg",
28
+ {
29
+ ref,
30
+ viewBox: "0 0 14 14",
31
+ fill: "none",
32
+ "aria-hidden": "true",
33
+ className: cn.cn("size-6", className),
34
+ ...props,
35
+ children: [
36
+ /* @__PURE__ */ jsxRuntime.jsx(
37
+ "path",
38
+ {
39
+ fill: "currentColor",
40
+ d: "M13.9998 7.1514C13.9998 6.67404 13.946 6.19668 13.8922 5.71932H7.1355V8.42834H10.9654C10.803 9.27726 10.3174 10.073 9.56208 10.5504V12.3096H11.8811C13.2295 11.1036 13.9998 9.29864 13.9998 7.1514Z"
41
+ }
42
+ ),
43
+ /* @__PURE__ */ jsxRuntime.jsx(
44
+ "path",
45
+ {
46
+ fill: "currentColor",
47
+ d: "M7.13543 14.0001C9.07918 14.0001 10.6985 13.3637 11.8811 12.3095L9.56201 10.5503C8.91402 10.9745 8.10405 11.2399 7.13543 11.2399C5.30037 11.2399 3.6811 10.0194 3.14181 8.32117H0.769226V10.1272C1.97847 12.5186 4.40679 14.0001 7.13543 14.0001Z"
48
+ }
49
+ ),
50
+ /* @__PURE__ */ jsxRuntime.jsx(
51
+ "path",
52
+ {
53
+ fill: "currentColor",
54
+ d: "M3.14189 8.32119C2.81917 7.47226 2.81917 6.51704 3.14189 5.61497V3.80896H0.769305C-0.256002 5.77374 -0.256002 8.10928 0.769305 10.1272L3.14189 8.32119Z"
55
+ }
56
+ ),
57
+ /* @__PURE__ */ jsxRuntime.jsx(
58
+ "path",
59
+ {
60
+ fill: "currentColor",
61
+ d: "M7.13548 2.76042C8.1579 2.76042 9.12652 3.13291 9.88188 3.82475L11.9349 1.80997C10.6447 0.640284 8.91407 -0.0492764 7.18927 0.00386894C4.46063 0.00386894 1.97852 1.48536 0.822762 3.87678L3.19535 5.68279C3.68085 3.98459 5.30012 2.76042 7.13548 2.76042Z"
62
+ }
63
+ )
64
+ ]
65
+ }
66
+ );
67
+ }
68
+ );
69
+ GoogleIcon.displayName = "GoogleIcon";
70
+ exports.GoogleIcon = GoogleIcon;
71
+ //# sourceMappingURL=GoogleIcon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleIcon.cjs","sources":["../../../../src/components/Icons/GoogleIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const GoogleIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M13.9998 7.1514C13.9998 6.67404 13.946 6.19668 13.8922 5.71932H7.1355V8.42834H10.9654C10.803 9.27726 10.3174 10.073 9.56208 10.5504V12.3096H11.8811C13.2295 11.1036 13.9998 9.29864 13.9998 7.1514Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M7.13543 14.0001C9.07918 14.0001 10.6985 13.3637 11.8811 12.3095L9.56201 10.5503C8.91402 10.9745 8.10405 11.2399 7.13543 11.2399C5.30037 11.2399 3.6811 10.0194 3.14181 8.32117H0.769226V10.1272C1.97847 12.5186 4.40679 14.0001 7.13543 14.0001Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M3.14189 8.32119C2.81917 7.47226 2.81917 6.51704 3.14189 5.61497V3.80896H0.769305C-0.256002 5.77374 -0.256002 8.10928 0.769305 10.1272L3.14189 8.32119Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M7.13548 2.76042C8.1579 2.76042 9.12652 3.13291 9.88188 3.82475L11.9349 1.80997C10.6447 0.640284 8.91407 -0.0492764 7.18927 0.00386894C4.46063 0.00386894 1.97852 1.48536 0.822762 3.87678L3.19535 5.68279C3.68085 3.98459 5.30012 2.76042 7.13548 2.76042Z\"\n />\n </svg>\n );\n },\n);\n\nGoogleIcon.displayName = \"GoogleIcon\";\n"],"names":["React","jsxs","cn","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,aAAaA,iBAAM;AAAA,EAC9B,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAWC,GAAAA,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAAC,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,WAAW,cAAc;;"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
24
+ const ThumbDownFilledIcon = React__namespace.forwardRef(
25
+ ({ className, ...props }, ref) => {
26
+ return /* @__PURE__ */ jsxRuntime.jsx(
27
+ "svg",
28
+ {
29
+ ref,
30
+ viewBox: "0 0 24 24",
31
+ fill: "none",
32
+ "aria-hidden": "true",
33
+ className: cn.cn("size-6", className),
34
+ ...props,
35
+ children: /* @__PURE__ */ jsxRuntime.jsx("g", { fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: "translate(2 2)", children: [
36
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.38989 3.23001V13.39C6.38989 13.79 6.50989 14.18 6.72989 14.51L9.4599 18.57C9.8899 19.22 10.9599 19.68 11.8699 19.34C12.8499 19.01 13.4999 17.91 13.2899 16.93L12.7699 13.66C12.7299 13.36 12.8099 13.09 12.9799 12.88C13.1499 12.69 13.3999 12.57 13.6699 12.57H17.7799C18.5699 12.57 19.2499 12.25 19.6499 11.69C20.0299 11.15 20.0999 10.45 19.8499 9.74001L17.3899 2.25001C17.0799 1.01001 15.7299 5.72205e-06 14.3899 5.72205e-06H10.4899C9.8199 5.72205e-06 8.8799 0.230005 8.4499 0.660006L7.16989 1.65001C6.67989 2.02001 6.38989 2.61 6.38989 3.23001Z" }),
37
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.21 15.3398H2.18C0.63 15.3398 0 14.7398 0 13.2598V3.1998C0 1.7198 0.63 1.1198 2.18 1.1198H3.21C4.76 1.1198 5.39 1.7198 5.39 3.1998V13.2598C5.39 14.7398 4.76 15.3398 3.21 15.3398Z" })
38
+ ] }) })
39
+ }
40
+ );
41
+ }
42
+ );
43
+ ThumbDownFilledIcon.displayName = "ThumbDownFilledIcon";
44
+ exports.ThumbDownFilledIcon = ThumbDownFilledIcon;
45
+ //# sourceMappingURL=ThumbDownFilledIcon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbDownFilledIcon.cjs","sources":["../../../../src/components/Icons/ThumbDownFilledIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const ThumbDownFilledIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <g fill=\"currentColor\">\n <g transform=\"translate(2 2)\">\n <path d=\"M6.38989 3.23001V13.39C6.38989 13.79 6.50989 14.18 6.72989 14.51L9.4599 18.57C9.8899 19.22 10.9599 19.68 11.8699 19.34C12.8499 19.01 13.4999 17.91 13.2899 16.93L12.7699 13.66C12.7299 13.36 12.8099 13.09 12.9799 12.88C13.1499 12.69 13.3999 12.57 13.6699 12.57H17.7799C18.5699 12.57 19.2499 12.25 19.6499 11.69C20.0299 11.15 20.0999 10.45 19.8499 9.74001L17.3899 2.25001C17.0799 1.01001 15.7299 5.72205e-06 14.3899 5.72205e-06H10.4899C9.8199 5.72205e-06 8.8799 0.230005 8.4499 0.660006L7.16989 1.65001C6.67989 2.02001 6.38989 2.61 6.38989 3.23001Z\" />\n <path d=\"M3.21 15.3398H2.18C0.63 15.3398 0 14.7398 0 13.2598V3.1998C0 1.7198 0.63 1.1198 2.18 1.1198H3.21C4.76 1.1198 5.39 1.7198 5.39 3.1998V13.2598C5.39 14.7398 4.76 15.3398 3.21 15.3398Z\" />\n </g>\n </g>\n </svg>\n );\n },\n);\n\nThumbDownFilledIcon.displayName = \"ThumbDownFilledIcon\";\n"],"names":["React","jsx","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,sBAAsBA,iBAAM;AAAA,EACvC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAWC,GAAAA,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,yCAAC,KAAA,EAAE,MAAK,gBACN,UAAAC,2BAAAA,KAAC,KAAA,EAAE,WAAU,kBACX,UAAA;AAAA,UAAAF,2BAAAA,IAAC,QAAA,EAAK,GAAE,oiBAAA,CAAoiB;AAAA,UAC5iBA,2BAAAA,IAAC,QAAA,EAAK,GAAE,uLAAA,CAAuL;AAAA,QAAA,EAAA,CACjM,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,oBAAoB,cAAc;;"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
24
+ const ThumbUpFilledIcon = React__namespace.forwardRef(
25
+ ({ className, ...props }, ref) => {
26
+ return /* @__PURE__ */ jsxRuntime.jsx(
27
+ "svg",
28
+ {
29
+ ref,
30
+ viewBox: "0 0 24 24",
31
+ fill: "none",
32
+ "aria-hidden": "true",
33
+ className: cn.cn("size-6", className),
34
+ ...props,
35
+ children: /* @__PURE__ */ jsxRuntime.jsx("g", { fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: "translate(2 2)", children: [
36
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.38989 16.2251V6.06508C6.38989 5.66508 6.50989 5.27508 6.72989 4.94508L9.4599 0.885083C9.8899 0.235083 10.9599 -0.224917 11.8699 0.115083C12.8499 0.445083 13.4999 1.54508 13.2899 2.52508L12.7699 5.79508C12.7299 6.09508 12.8099 6.36508 12.9799 6.57508C13.1499 6.76508 13.3999 6.88508 13.6699 6.88508H17.7799C18.5699 6.88508 19.2499 7.20508 19.6499 7.76507C20.0299 8.30507 20.0999 9.00507 19.8499 9.71507L17.3899 17.2051C17.0799 18.4451 15.7299 19.4551 14.3899 19.4551H10.4899C9.8199 19.4551 8.8799 19.2251 8.4499 18.7951L7.16989 17.8051C6.67989 17.4351 6.38989 16.8451 6.38989 16.2251Z" }),
37
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.21 4.11523H2.18C0.63 4.11523 0 4.71523 0 6.19523V16.2553C0 17.7353 0.63 18.3353 2.18 18.3353H3.21C4.76 18.3353 5.39 17.7353 5.39 16.2553V6.19523C5.39 4.71523 4.76 4.11523 3.21 4.11523Z" })
38
+ ] }) })
39
+ }
40
+ );
41
+ }
42
+ );
43
+ ThumbUpFilledIcon.displayName = "ThumbUpFilledIcon";
44
+ exports.ThumbUpFilledIcon = ThumbUpFilledIcon;
45
+ //# sourceMappingURL=ThumbUpFilledIcon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbUpFilledIcon.cjs","sources":["../../../../src/components/Icons/ThumbUpFilledIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const ThumbUpFilledIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <g fill=\"currentColor\">\n <g transform=\"translate(2 2)\">\n <path d=\"M6.38989 16.2251V6.06508C6.38989 5.66508 6.50989 5.27508 6.72989 4.94508L9.4599 0.885083C9.8899 0.235083 10.9599 -0.224917 11.8699 0.115083C12.8499 0.445083 13.4999 1.54508 13.2899 2.52508L12.7699 5.79508C12.7299 6.09508 12.8099 6.36508 12.9799 6.57508C13.1499 6.76508 13.3999 6.88508 13.6699 6.88508H17.7799C18.5699 6.88508 19.2499 7.20508 19.6499 7.76507C20.0299 8.30507 20.0999 9.00507 19.8499 9.71507L17.3899 17.2051C17.0799 18.4451 15.7299 19.4551 14.3899 19.4551H10.4899C9.8199 19.4551 8.8799 19.2251 8.4499 18.7951L7.16989 17.8051C6.67989 17.4351 6.38989 16.8451 6.38989 16.2251Z\" />\n <path d=\"M3.21 4.11523H2.18C0.63 4.11523 0 4.71523 0 6.19523V16.2553C0 17.7353 0.63 18.3353 2.18 18.3353H3.21C4.76 18.3353 5.39 17.7353 5.39 16.2553V6.19523C5.39 4.71523 4.76 4.11523 3.21 4.11523Z\" />\n </g>\n </g>\n </svg>\n );\n },\n);\n\nThumbUpFilledIcon.displayName = \"ThumbUpFilledIcon\";\n"],"names":["React","jsx","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,oBAAoBA,iBAAM;AAAA,EACrC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAWC,GAAAA,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,yCAAC,KAAA,EAAE,MAAK,gBACN,UAAAC,2BAAAA,KAAC,KAAA,EAAE,WAAU,kBACX,UAAA;AAAA,UAAAF,2BAAAA,IAAC,QAAA,EAAK,GAAE,6kBAAA,CAA6kB;AAAA,UACrlBA,2BAAAA,IAAC,QAAA,EAAK,GAAE,8LAAA,CAA8L;AAAA,QAAA,EAAA,CACxM,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,kBAAkB,cAAc;;"}
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
24
+ const TwitterIcon = React__namespace.forwardRef(
25
+ ({ className, ...props }, ref) => {
26
+ return /* @__PURE__ */ jsxRuntime.jsx(
27
+ "svg",
28
+ {
29
+ ref,
30
+ viewBox: "0 0 14 14",
31
+ fill: "none",
32
+ "aria-hidden": "true",
33
+ className: cn.cn("size-6", className),
34
+ ...props,
35
+ children: /* @__PURE__ */ jsxRuntime.jsx(
36
+ "path",
37
+ {
38
+ fill: "currentColor",
39
+ d: "M11.0306 0H13.1817L8.49148 5.57953L14 13.1596H9.6908L6.30348 8.55739L2.42757 13.1596H0.275308L5.28626 7.19433L0 0.000606537H4.4275L7.4962 4.20241L11.0306 0ZM10.2752 11.817H11.4665L3.78737 1.26538H2.50918L10.2752 11.817Z"
40
+ }
41
+ )
42
+ }
43
+ );
44
+ }
45
+ );
46
+ TwitterIcon.displayName = "TwitterIcon";
47
+ exports.TwitterIcon = TwitterIcon;
48
+ //# sourceMappingURL=TwitterIcon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitterIcon.cjs","sources":["../../../../src/components/Icons/TwitterIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const TwitterIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M11.0306 0H13.1817L8.49148 5.57953L14 13.1596H9.6908L6.30348 8.55739L2.42757 13.1596H0.275308L5.28626 7.19433L0 0.000606537H4.4275L7.4962 4.20241L11.0306 0ZM10.2752 11.817H11.4665L3.78737 1.26538H2.50918L10.2752 11.817Z\"\n />\n </svg>\n );\n },\n);\n\nTwitterIcon.displayName = \"TwitterIcon\";\n"],"names":["React","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,cAAcA,iBAAM;AAAA,EAC/B,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAWC,GAAAA,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,UAAAD,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,YAAY,cAAc;;"}
@@ -0,0 +1,72 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ const StepperStep = require("./StepperStep.cjs");
8
+ function _interopNamespaceDefault(e) {
9
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
10
+ if (e) {
11
+ for (const k in e) {
12
+ if (k !== "default") {
13
+ const d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: () => e[k]
17
+ });
18
+ }
19
+ }
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
25
+ const CONNECTOR_MARGIN = {
26
+ sm: "mt-3",
27
+ md: "mt-4",
28
+ lg: "mt-5"
29
+ };
30
+ const Stepper = React__namespace.forwardRef(
31
+ ({ activeStep, steps, size = "md", className, ...props }, ref) => {
32
+ return (
33
+ // biome-ignore lint/a11y/useSemanticElements: <fieldset> adds unwanted browser styling for a non-interactive progress indicator
34
+ /* @__PURE__ */ jsxRuntime.jsx(
35
+ "div",
36
+ {
37
+ ref,
38
+ role: "group",
39
+ "aria-label": "Progress",
40
+ className: cn.cn("flex items-start", className),
41
+ ...props,
42
+ children: steps.map((step, index) => {
43
+ const state = index < activeStep ? "completed" : index === activeStep ? "active" : "upcoming";
44
+ return /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
45
+ /* @__PURE__ */ jsxRuntime.jsx(
46
+ StepperStep.StepperStep,
47
+ {
48
+ state,
49
+ size,
50
+ stepNumber: index + 1,
51
+ title: step.title,
52
+ description: step.description,
53
+ className: "shrink-0"
54
+ }
55
+ ),
56
+ index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(
57
+ "div",
58
+ {
59
+ className: cn.cn("h-px min-w-6 flex-1 bg-border-primary", CONNECTOR_MARGIN[size]),
60
+ "aria-hidden": "true"
61
+ }
62
+ )
63
+ ] }, index);
64
+ })
65
+ }
66
+ )
67
+ );
68
+ }
69
+ );
70
+ Stepper.displayName = "Stepper";
71
+ exports.Stepper = Stepper;
72
+ //# sourceMappingURL=Stepper.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper.cjs","sources":["../../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { StepperStep, type StepperStepSize } from \"./StepperStep\";\n\n/** Configuration for a single step within a {@link Stepper}. */\nexport interface StepItem {\n /** Primary label for the step. */\n title: string;\n /** Secondary description for the step. */\n description?: string;\n}\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Zero-based index of the currently active step. Steps before this are marked completed. */\n activeStep: number;\n /** Configuration for each step. */\n steps: StepItem[];\n /** Size preset applied to all step indicators and labels. @default \"md\" */\n size?: StepperStepSize;\n}\n\nconst CONNECTOR_MARGIN: Record<StepperStepSize, string> = {\n sm: \"mt-3\",\n md: \"mt-4\",\n lg: \"mt-5\",\n};\n\n/**\n * A horizontal progress stepper that displays a sequence of steps with\n * completed, active, and upcoming states.\n *\n * @example\n * ```tsx\n * <Stepper\n * activeStep={1}\n * steps={[\n * { title: \"Account\", description: \"Create account\" },\n * { title: \"Profile\", description: \"Set up profile\" },\n * { title: \"Done\", description: \"All set!\" },\n * ]}\n * />\n * ```\n */\nexport const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n ({ activeStep, steps, size = \"md\", className, ...props }, ref) => {\n return (\n // biome-ignore lint/a11y/useSemanticElements: <fieldset> adds unwanted browser styling for a non-interactive progress indicator\n <div\n ref={ref}\n role=\"group\"\n aria-label=\"Progress\"\n className={cn(\"flex items-start\", className)}\n {...props}\n >\n {steps.map((step, index) => {\n const state =\n index < activeStep ? \"completed\" : index === activeStep ? \"active\" : \"upcoming\";\n\n return (\n <React.Fragment key={index}>\n <StepperStep\n state={state}\n size={size}\n stepNumber={index + 1}\n title={step.title}\n description={step.description}\n className=\"shrink-0\"\n />\n {index < steps.length - 1 && (\n <div\n className={cn(\"h-px min-w-6 flex-1 bg-border-primary\", CONNECTOR_MARGIN[size])}\n aria-hidden=\"true\"\n />\n )}\n </React.Fragment>\n );\n })}\n </div>\n );\n },\n);\n\nStepper.displayName = \"Stepper\";\n"],"names":["React","jsx","cn","jsxs","StepperStep"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,mBAAoD;AAAA,EACxD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAkBO,MAAM,UAAUA,iBAAM;AAAA,EAC3B,CAAC,EAAE,YAAY,OAAO,OAAO,MAAM,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChE;AAAA;AAAA,MAEEC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,cAAW;AAAA,UACX,WAAWC,GAAAA,GAAG,oBAAoB,SAAS;AAAA,UAC1C,GAAG;AAAA,UAEH,UAAA,MAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,kBAAM,QACJ,QAAQ,aAAa,cAAc,UAAU,aAAa,WAAW;AAEvE,mBACEC,gCAACH,iBAAM,UAAN,EACC,UAAA;AAAA,cAAAC,2BAAAA;AAAAA,gBAACG,YAAAA;AAAAA,gBAAA;AAAA,kBACC;AAAA,kBACA;AAAA,kBACA,YAAY,QAAQ;AAAA,kBACpB,OAAO,KAAK;AAAA,kBACZ,aAAa,KAAK;AAAA,kBAClB,WAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEX,QAAQ,MAAM,SAAS,KACtBH,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWC,GAAAA,GAAG,yCAAyC,iBAAiB,IAAI,CAAC;AAAA,kBAC7E,eAAY;AAAA,gBAAA;AAAA,cAAA;AAAA,YACd,EAAA,GAbiB,KAerB;AAAA,UAEJ,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA;AAAA,EAGP;AACF;AAEA,QAAQ,cAAc;;"}
@@ -0,0 +1,103 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const cn = require("../../utils/cn.cjs");
7
+ const CheckIcon = require("../Icons/CheckIcon.cjs");
8
+ function _interopNamespaceDefault(e) {
9
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
10
+ if (e) {
11
+ for (const k in e) {
12
+ if (k !== "default") {
13
+ const d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: () => e[k]
17
+ });
18
+ }
19
+ }
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
25
+ const INDICATOR_SIZE = {
26
+ sm: "size-6",
27
+ md: "size-8",
28
+ lg: "size-10"
29
+ };
30
+ const INDICATOR_STATE = {
31
+ completed: "bg-success-surface",
32
+ active: "border border-brand-primary-default bg-brand-primary-muted",
33
+ upcoming: "bg-neutral-alphas-50"
34
+ };
35
+ const NUMBER_TYPOGRAPHY = {
36
+ sm: "typography-semibold-body-sm",
37
+ md: "typography-semibold-body-md",
38
+ lg: "typography-semibold-body-lg"
39
+ };
40
+ const NUMBER_COLOR = {
41
+ completed: "",
42
+ active: "text-content-primary",
43
+ upcoming: "text-content-secondary"
44
+ };
45
+ const CONTAINER_GAP = {
46
+ sm: "gap-1",
47
+ md: "gap-2",
48
+ lg: "gap-2"
49
+ };
50
+ const TITLE_TYPOGRAPHY = {
51
+ sm: "typography-regular-body-sm",
52
+ md: "typography-regular-body-md",
53
+ lg: "typography-regular-body-lg"
54
+ };
55
+ const DESCRIPTION_TYPOGRAPHY = {
56
+ sm: "typography-regular-body-sm",
57
+ md: "typography-regular-body-sm",
58
+ lg: "typography-regular-body-md"
59
+ };
60
+ const LABEL_COLOR = {
61
+ completed: "text-content-secondary",
62
+ active: "text-content-primary",
63
+ upcoming: "text-content-tertiary"
64
+ };
65
+ const CHECK_ICON_SIZE = {
66
+ sm: "size-3",
67
+ md: "size-4",
68
+ lg: "size-5"
69
+ };
70
+ const StepperStep = React__namespace.forwardRef(
71
+ ({ state = "upcoming", size = "md", stepNumber, title, description, className, ...props }, ref) => {
72
+ const hasLabels = title != null || description != null;
73
+ return /* @__PURE__ */ jsxRuntime.jsxs(
74
+ "div",
75
+ {
76
+ ref,
77
+ className: cn.cn("flex flex-col items-center", CONTAINER_GAP[size], className),
78
+ ...props,
79
+ children: [
80
+ /* @__PURE__ */ jsxRuntime.jsx(
81
+ "div",
82
+ {
83
+ className: cn.cn(
84
+ "flex shrink-0 items-center justify-center rounded-full",
85
+ INDICATOR_SIZE[size],
86
+ INDICATOR_STATE[state]
87
+ ),
88
+ "aria-hidden": "true",
89
+ children: state === "completed" ? /* @__PURE__ */ jsxRuntime.jsx(CheckIcon.CheckIcon, { className: cn.cn(CHECK_ICON_SIZE[size], "text-success-content") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn.cn(NUMBER_TYPOGRAPHY[size], NUMBER_COLOR[state]), children: stepNumber })
90
+ }
91
+ ),
92
+ hasLabels && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn.cn("flex flex-col items-center gap-1 text-center", LABEL_COLOR[state]), children: [
93
+ title != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: TITLE_TYPOGRAPHY[size], children: title }),
94
+ description != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: DESCRIPTION_TYPOGRAPHY[size], children: description })
95
+ ] })
96
+ ]
97
+ }
98
+ );
99
+ }
100
+ );
101
+ StepperStep.displayName = "StepperStep";
102
+ exports.StepperStep = StepperStep;
103
+ //# sourceMappingURL=StepperStep.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepperStep.cjs","sources":["../../../../src/components/Stepper/StepperStep.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { CheckIcon } from \"../Icons/CheckIcon\";\n\n/** Current state of a step in the stepper. */\nexport type StepperStepState = \"completed\" | \"active\" | \"upcoming\";\n\n/** Size preset for the step indicator and labels. */\nexport type StepperStepSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface StepperStepProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current state of the step. @default \"upcoming\" */\n state?: StepperStepState;\n /** Size preset for the indicator and labels. @default \"md\" */\n size?: StepperStepSize;\n /** Step number displayed in the indicator for active and upcoming states. */\n stepNumber?: number;\n /** Primary label shown below the indicator. */\n title?: string;\n /** Secondary description shown below the title. */\n description?: string;\n}\n\nconst INDICATOR_SIZE: Record<StepperStepSize, string> = {\n sm: \"size-6\",\n md: \"size-8\",\n lg: \"size-10\",\n};\n\nconst INDICATOR_STATE: Record<StepperStepState, string> = {\n completed: \"bg-success-surface\",\n active: \"border border-brand-primary-default bg-brand-primary-muted\",\n upcoming: \"bg-neutral-alphas-50\",\n};\n\nconst NUMBER_TYPOGRAPHY: Record<StepperStepSize, string> = {\n sm: \"typography-semibold-body-sm\",\n md: \"typography-semibold-body-md\",\n lg: \"typography-semibold-body-lg\",\n};\n\nconst NUMBER_COLOR: Record<StepperStepState, string> = {\n completed: \"\",\n active: \"text-content-primary\",\n upcoming: \"text-content-secondary\",\n};\n\nconst CONTAINER_GAP: Record<StepperStepSize, string> = {\n sm: \"gap-1\",\n md: \"gap-2\",\n lg: \"gap-2\",\n};\n\nconst TITLE_TYPOGRAPHY: Record<StepperStepSize, string> = {\n sm: \"typography-regular-body-sm\",\n md: \"typography-regular-body-md\",\n lg: \"typography-regular-body-lg\",\n};\n\nconst DESCRIPTION_TYPOGRAPHY: Record<StepperStepSize, string> = {\n sm: \"typography-regular-body-sm\",\n md: \"typography-regular-body-sm\",\n lg: \"typography-regular-body-md\",\n};\n\nconst LABEL_COLOR: Record<StepperStepState, string> = {\n completed: \"text-content-secondary\",\n active: \"text-content-primary\",\n upcoming: \"text-content-tertiary\",\n};\n\nconst CHECK_ICON_SIZE: Record<StepperStepSize, string> = {\n sm: \"size-3\",\n md: \"size-4\",\n lg: \"size-5\",\n};\n\n/**\n * A single step indicator with optional labels, used standalone or within a {@link Stepper}.\n *\n * @example\n * ```tsx\n * <StepperStep state=\"active\" stepNumber={2} title=\"Profile\" description=\"Set up profile\" />\n * ```\n */\nexport const StepperStep = React.forwardRef<HTMLDivElement, StepperStepProps>(\n (\n { state = \"upcoming\", size = \"md\", stepNumber, title, description, className, ...props },\n ref,\n ) => {\n const hasLabels = title != null || description != null;\n\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center\", CONTAINER_GAP[size], className)}\n {...props}\n >\n <div\n className={cn(\n \"flex shrink-0 items-center justify-center rounded-full\",\n INDICATOR_SIZE[size],\n INDICATOR_STATE[state],\n )}\n aria-hidden=\"true\"\n >\n {state === \"completed\" ? (\n <CheckIcon className={cn(CHECK_ICON_SIZE[size], \"text-success-content\")} />\n ) : (\n <span className={cn(NUMBER_TYPOGRAPHY[size], NUMBER_COLOR[state])}>{stepNumber}</span>\n )}\n </div>\n\n {hasLabels && (\n <div className={cn(\"flex flex-col items-center gap-1 text-center\", LABEL_COLOR[state])}>\n {title != null && <span className={TITLE_TYPOGRAPHY[size]}>{title}</span>}\n {description != null && (\n <span className={DESCRIPTION_TYPOGRAPHY[size]}>{description}</span>\n )}\n </div>\n )}\n </div>\n );\n },\n);\n\nStepperStep.displayName = \"StepperStep\";\n"],"names":["React","jsxs","cn","jsx","CheckIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,iBAAkD;AAAA,EACtD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,kBAAoD;AAAA,EACxD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,MAAM,oBAAqD;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,eAAiD;AAAA,EACrD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,MAAM,gBAAiD;AAAA,EACrD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,mBAAoD;AAAA,EACxD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,yBAA0D;AAAA,EAC9D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,cAAgD;AAAA,EACpD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,MAAM,kBAAmD;AAAA,EACvD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAUO,MAAM,cAAcA,iBAAM;AAAA,EAC/B,CACE,EAAE,QAAQ,YAAY,OAAO,MAAM,YAAY,OAAO,aAAa,WAAW,GAAG,MAAA,GACjF,QACG;AACH,UAAM,YAAY,SAAS,QAAQ,eAAe;AAElD,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAWC,GAAAA,GAAG,8BAA8B,cAAc,IAAI,GAAG,SAAS;AAAA,QACzE,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAAC,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWD,GAAAA;AAAAA,gBACT;AAAA,gBACA,eAAe,IAAI;AAAA,gBACnB,gBAAgB,KAAK;AAAA,cAAA;AAAA,cAEvB,eAAY;AAAA,cAEX,UAAA,UAAU,cACTC,2BAAAA,IAACC,UAAAA,WAAA,EAAU,WAAWF,GAAAA,GAAG,gBAAgB,IAAI,GAAG,sBAAsB,EAAA,CAAG,IAEzEC,2BAAAA,IAAC,QAAA,EAAK,WAAWD,GAAAA,GAAG,kBAAkB,IAAI,GAAG,aAAa,KAAK,CAAC,GAAI,UAAA,WAAA,CAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAIlF,6CACE,OAAA,EAAI,WAAWA,GAAAA,GAAG,gDAAgD,YAAY,KAAK,CAAC,GAClF,UAAA;AAAA,YAAA,SAAS,QAAQC,+BAAC,QAAA,EAAK,WAAW,iBAAiB,IAAI,GAAI,UAAA,OAAM;AAAA,YACjE,eAAe,QACdA,2BAAAA,IAAC,QAAA,EAAK,WAAW,uBAAuB,IAAI,GAAI,UAAA,YAAA,CAAY;AAAA,UAAA,EAAA,CAEhE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEA,YAAY,cAAc;;"}
@@ -71,6 +71,7 @@ const ExpandIcon = require("./components/Icons/ExpandIcon.cjs");
71
71
  const EyeClosedIcon = require("./components/Icons/EyeClosedIcon.cjs");
72
72
  const EyeIcon = require("./components/Icons/EyeIcon.cjs");
73
73
  const EyeSlashIcon = require("./components/Icons/EyeSlashIcon.cjs");
74
+ const FacebookIcon = require("./components/Icons/FacebookIcon.cjs");
74
75
  const FlagIcon = require("./components/Icons/FlagIcon.cjs");
75
76
  const FlameIcon = require("./components/Icons/FlameIcon.cjs");
76
77
  const FolderIcon = require("./components/Icons/FolderIcon.cjs");
@@ -78,6 +79,7 @@ const ForwardIcon = require("./components/Icons/ForwardIcon.cjs");
78
79
  const GalleryIcon = require("./components/Icons/GalleryIcon.cjs");
79
80
  const GenderIcon = require("./components/Icons/GenderIcon.cjs");
80
81
  const GiftIcon = require("./components/Icons/GiftIcon.cjs");
82
+ const GoogleIcon = require("./components/Icons/GoogleIcon.cjs");
81
83
  const HelpIcon = require("./components/Icons/HelpIcon.cjs");
82
84
  const HomeIcon = require("./components/Icons/HomeIcon.cjs");
83
85
  const HourglassIcon = require("./components/Icons/HourglassIcon.cjs");
@@ -128,13 +130,16 @@ const Support2Icon = require("./components/Icons/Support2Icon.cjs");
128
130
  const SupportIcon = require("./components/Icons/SupportIcon.cjs");
129
131
  const TagIcon = require("./components/Icons/TagIcon.cjs");
130
132
  const TaskIcon = require("./components/Icons/TaskIcon.cjs");
133
+ const ThumbDownFilledIcon = require("./components/Icons/ThumbDownFilledIcon.cjs");
131
134
  const ThumbDownIcon = require("./components/Icons/ThumbDownIcon.cjs");
135
+ const ThumbUpFilledIcon = require("./components/Icons/ThumbUpFilledIcon.cjs");
132
136
  const ThumbUpIcon = require("./components/Icons/ThumbUpIcon.cjs");
133
137
  const TickCircleIcon = require("./components/Icons/TickCircleIcon.cjs");
134
138
  const TickCircleOffIcon = require("./components/Icons/TickCircleOffIcon.cjs");
135
139
  const TickIcon = require("./components/Icons/TickIcon.cjs");
136
140
  const TrashBinIcon = require("./components/Icons/TrashBinIcon.cjs");
137
141
  const TrophyIcon = require("./components/Icons/TrophyIcon.cjs");
142
+ const TwitterIcon = require("./components/Icons/TwitterIcon.cjs");
138
143
  const UploadCloudIcon = require("./components/Icons/UploadCloudIcon.cjs");
139
144
  const UploadIcon = require("./components/Icons/UploadIcon.cjs");
140
145
  const UserCircleIcon = require("./components/Icons/UserCircleIcon.cjs");
@@ -164,6 +169,8 @@ const Select = require("./components/Select/Select.cjs");
164
169
  const Skeleton = require("./components/Skeleton/Skeleton.cjs");
165
170
  const Slider = require("./components/Slider/Slider.cjs");
166
171
  const Snackbar = require("./components/Snackbar/Snackbar.cjs");
172
+ const Stepper = require("./components/Stepper/Stepper.cjs");
173
+ const StepperStep = require("./components/Stepper/StepperStep.cjs");
167
174
  const Switch = require("./components/Switch/Switch.cjs");
168
175
  const SwitchField = require("./components/SwitchField/SwitchField.cjs");
169
176
  const SwitchToggle = require("./components/SwitchToggle/SwitchToggle.cjs");
@@ -284,6 +291,7 @@ exports.ExpandIcon = ExpandIcon.ExpandIcon;
284
291
  exports.EyeClosedIcon = EyeClosedIcon.EyeClosedIcon;
285
292
  exports.EyeIcon = EyeIcon.EyeIcon;
286
293
  exports.EyeSlashIcon = EyeSlashIcon.EyeSlashIcon;
294
+ exports.FacebookIcon = FacebookIcon.FacebookIcon;
287
295
  exports.FlagIcon = FlagIcon.FlagIcon;
288
296
  exports.FlameIcon = FlameIcon.FlameIcon;
289
297
  exports.FolderIcon = FolderIcon.FolderIcon;
@@ -291,6 +299,7 @@ exports.ForwardIcon = ForwardIcon.ForwardIcon;
291
299
  exports.GalleryIcon = GalleryIcon.GalleryIcon;
292
300
  exports.GenderIcon = GenderIcon.GenderIcon;
293
301
  exports.GiftIcon = GiftIcon.GiftIcon;
302
+ exports.GoogleIcon = GoogleIcon.GoogleIcon;
294
303
  exports.HelpIcon = HelpIcon.HelpIcon;
295
304
  exports.HomeIcon = HomeIcon.HomeIcon;
296
305
  exports.HourglassIcon = HourglassIcon.HourglassIcon;
@@ -341,13 +350,16 @@ exports.Support2Icon = Support2Icon.Support2Icon;
341
350
  exports.SupportIcon = SupportIcon.SupportIcon;
342
351
  exports.TagIcon = TagIcon.TagIcon;
343
352
  exports.TaskIcon = TaskIcon.TaskIcon;
353
+ exports.ThumbDownFilledIcon = ThumbDownFilledIcon.ThumbDownFilledIcon;
344
354
  exports.ThumbDownIcon = ThumbDownIcon.ThumbDownIcon;
355
+ exports.ThumbUpFilledIcon = ThumbUpFilledIcon.ThumbUpFilledIcon;
345
356
  exports.ThumbUpIcon = ThumbUpIcon.ThumbUpIcon;
346
357
  exports.TickCircleIcon = TickCircleIcon.TickCircleIcon;
347
358
  exports.TickCircleOffIcon = TickCircleOffIcon.TickCircleOffIcon;
348
359
  exports.TickIcon = TickIcon.TickIcon;
349
360
  exports.TrashBinIcon = TrashBinIcon.TrashBinIcon;
350
361
  exports.TrophyIcon = TrophyIcon.TrophyIcon;
362
+ exports.TwitterIcon = TwitterIcon.TwitterIcon;
351
363
  exports.UploadCloudIcon = UploadCloudIcon.UploadCloudIcon;
352
364
  exports.UploadIcon = UploadIcon.UploadIcon;
353
365
  exports.UserCircleIcon = UserCircleIcon.UserCircleIcon;
@@ -384,6 +396,8 @@ exports.SelectSeparator = Select.SelectSeparator;
384
396
  exports.Skeleton = Skeleton.Skeleton;
385
397
  exports.Slider = Slider.Slider;
386
398
  exports.Snackbar = Snackbar.Snackbar;
399
+ exports.Stepper = Stepper.Stepper;
400
+ exports.StepperStep = StepperStep.StepperStep;
387
401
  exports.Switch = Switch.Switch;
388
402
  exports.SwitchField = SwitchField.SwitchField;
389
403
  exports.SwitchToggle = SwitchToggle.SwitchToggle;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ const FacebookIcon = React.forwardRef(
6
+ ({ className, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsx(
8
+ "svg",
9
+ {
10
+ ref,
11
+ viewBox: "0 0 14 14",
12
+ fill: "none",
13
+ "aria-hidden": "true",
14
+ className: cn("size-6", className),
15
+ ...props,
16
+ children: /* @__PURE__ */ jsx(
17
+ "path",
18
+ {
19
+ fill: "currentColor",
20
+ d: "M5.30892 13.8448V9.17272H3.86575V7.02576H5.30892V6.1007C5.30892 3.70902 6.38692 2.6007 8.72608 2.6007C8.96 2.6007 9.28317 2.62529 9.58242 2.66101C9.80656 2.68416 10.0289 2.7223 10.248 2.77518V4.7219C10.1213 4.71004 9.99428 4.70301 9.86708 4.70082C9.72459 4.69711 9.58204 4.69535 9.4395 4.69555C9.02708 4.69555 8.70508 4.75176 8.46242 4.87646C8.29928 4.95861 8.16214 5.08471 8.06633 5.24063C7.91583 5.48653 7.84817 5.82318 7.84817 6.26639V7.02576H10.1342L9.90908 8.25703L9.74167 9.17272H7.84817V14C11.3143 13.5796 14 10.6177 14 7.02576C14 3.14578 10.8657 0 7 0C3.13425 0 0 3.14578 0 7.02576C0 10.3208 2.25983 13.0855 5.30892 13.8448Z"
21
+ }
22
+ )
23
+ }
24
+ );
25
+ }
26
+ );
27
+ FacebookIcon.displayName = "FacebookIcon";
28
+ export {
29
+ FacebookIcon
30
+ };
31
+ //# sourceMappingURL=FacebookIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FacebookIcon.mjs","sources":["../../../src/components/Icons/FacebookIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const FacebookIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M5.30892 13.8448V9.17272H3.86575V7.02576H5.30892V6.1007C5.30892 3.70902 6.38692 2.6007 8.72608 2.6007C8.96 2.6007 9.28317 2.62529 9.58242 2.66101C9.80656 2.68416 10.0289 2.7223 10.248 2.77518V4.7219C10.1213 4.71004 9.99428 4.70301 9.86708 4.70082C9.72459 4.69711 9.58204 4.69535 9.4395 4.69555C9.02708 4.69555 8.70508 4.75176 8.46242 4.87646C8.29928 4.95861 8.16214 5.08471 8.06633 5.24063C7.91583 5.48653 7.84817 5.82318 7.84817 6.26639V7.02576H10.1342L9.90908 8.25703L9.74167 9.17272H7.84817V14C11.3143 13.5796 14 10.6177 14 7.02576C14 3.14578 10.8657 0 7 0C3.13425 0 0 3.14578 0 7.02576C0 10.3208 2.25983 13.0855 5.30892 13.8448Z\"\n />\n </svg>\n );\n },\n);\n\nFacebookIcon.displayName = \"FacebookIcon\";\n"],"names":[],"mappings":";;;;AAIO,MAAM,eAAe,MAAM;AAAA,EAChC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAW,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,aAAa,cAAc;"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ const GoogleIcon = React.forwardRef(
6
+ ({ className, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsxs(
8
+ "svg",
9
+ {
10
+ ref,
11
+ viewBox: "0 0 14 14",
12
+ fill: "none",
13
+ "aria-hidden": "true",
14
+ className: cn("size-6", className),
15
+ ...props,
16
+ children: [
17
+ /* @__PURE__ */ jsx(
18
+ "path",
19
+ {
20
+ fill: "currentColor",
21
+ d: "M13.9998 7.1514C13.9998 6.67404 13.946 6.19668 13.8922 5.71932H7.1355V8.42834H10.9654C10.803 9.27726 10.3174 10.073 9.56208 10.5504V12.3096H11.8811C13.2295 11.1036 13.9998 9.29864 13.9998 7.1514Z"
22
+ }
23
+ ),
24
+ /* @__PURE__ */ jsx(
25
+ "path",
26
+ {
27
+ fill: "currentColor",
28
+ d: "M7.13543 14.0001C9.07918 14.0001 10.6985 13.3637 11.8811 12.3095L9.56201 10.5503C8.91402 10.9745 8.10405 11.2399 7.13543 11.2399C5.30037 11.2399 3.6811 10.0194 3.14181 8.32117H0.769226V10.1272C1.97847 12.5186 4.40679 14.0001 7.13543 14.0001Z"
29
+ }
30
+ ),
31
+ /* @__PURE__ */ jsx(
32
+ "path",
33
+ {
34
+ fill: "currentColor",
35
+ d: "M3.14189 8.32119C2.81917 7.47226 2.81917 6.51704 3.14189 5.61497V3.80896H0.769305C-0.256002 5.77374 -0.256002 8.10928 0.769305 10.1272L3.14189 8.32119Z"
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(
39
+ "path",
40
+ {
41
+ fill: "currentColor",
42
+ d: "M7.13548 2.76042C8.1579 2.76042 9.12652 3.13291 9.88188 3.82475L11.9349 1.80997C10.6447 0.640284 8.91407 -0.0492764 7.18927 0.00386894C4.46063 0.00386894 1.97852 1.48536 0.822762 3.87678L3.19535 5.68279C3.68085 3.98459 5.30012 2.76042 7.13548 2.76042Z"
43
+ }
44
+ )
45
+ ]
46
+ }
47
+ );
48
+ }
49
+ );
50
+ GoogleIcon.displayName = "GoogleIcon";
51
+ export {
52
+ GoogleIcon
53
+ };
54
+ //# sourceMappingURL=GoogleIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleIcon.mjs","sources":["../../../src/components/Icons/GoogleIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const GoogleIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M13.9998 7.1514C13.9998 6.67404 13.946 6.19668 13.8922 5.71932H7.1355V8.42834H10.9654C10.803 9.27726 10.3174 10.073 9.56208 10.5504V12.3096H11.8811C13.2295 11.1036 13.9998 9.29864 13.9998 7.1514Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M7.13543 14.0001C9.07918 14.0001 10.6985 13.3637 11.8811 12.3095L9.56201 10.5503C8.91402 10.9745 8.10405 11.2399 7.13543 11.2399C5.30037 11.2399 3.6811 10.0194 3.14181 8.32117H0.769226V10.1272C1.97847 12.5186 4.40679 14.0001 7.13543 14.0001Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M3.14189 8.32119C2.81917 7.47226 2.81917 6.51704 3.14189 5.61497V3.80896H0.769305C-0.256002 5.77374 -0.256002 8.10928 0.769305 10.1272L3.14189 8.32119Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M7.13548 2.76042C8.1579 2.76042 9.12652 3.13291 9.88188 3.82475L11.9349 1.80997C10.6447 0.640284 8.91407 -0.0492764 7.18927 0.00386894C4.46063 0.00386894 1.97852 1.48536 0.822762 3.87678L3.19535 5.68279C3.68085 3.98459 5.30012 2.76042 7.13548 2.76042Z\"\n />\n </svg>\n );\n },\n);\n\nGoogleIcon.displayName = \"GoogleIcon\";\n"],"names":[],"mappings":";;;;AAIO,MAAM,aAAa,MAAM;AAAA,EAC9B,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAW,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,WAAW,cAAc;"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ const ThumbDownFilledIcon = React.forwardRef(
6
+ ({ className, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsx(
8
+ "svg",
9
+ {
10
+ ref,
11
+ viewBox: "0 0 24 24",
12
+ fill: "none",
13
+ "aria-hidden": "true",
14
+ className: cn("size-6", className),
15
+ ...props,
16
+ children: /* @__PURE__ */ jsx("g", { fill: "currentColor", children: /* @__PURE__ */ jsxs("g", { transform: "translate(2 2)", children: [
17
+ /* @__PURE__ */ jsx("path", { d: "M6.38989 3.23001V13.39C6.38989 13.79 6.50989 14.18 6.72989 14.51L9.4599 18.57C9.8899 19.22 10.9599 19.68 11.8699 19.34C12.8499 19.01 13.4999 17.91 13.2899 16.93L12.7699 13.66C12.7299 13.36 12.8099 13.09 12.9799 12.88C13.1499 12.69 13.3999 12.57 13.6699 12.57H17.7799C18.5699 12.57 19.2499 12.25 19.6499 11.69C20.0299 11.15 20.0999 10.45 19.8499 9.74001L17.3899 2.25001C17.0799 1.01001 15.7299 5.72205e-06 14.3899 5.72205e-06H10.4899C9.8199 5.72205e-06 8.8799 0.230005 8.4499 0.660006L7.16989 1.65001C6.67989 2.02001 6.38989 2.61 6.38989 3.23001Z" }),
18
+ /* @__PURE__ */ jsx("path", { d: "M3.21 15.3398H2.18C0.63 15.3398 0 14.7398 0 13.2598V3.1998C0 1.7198 0.63 1.1198 2.18 1.1198H3.21C4.76 1.1198 5.39 1.7198 5.39 3.1998V13.2598C5.39 14.7398 4.76 15.3398 3.21 15.3398Z" })
19
+ ] }) })
20
+ }
21
+ );
22
+ }
23
+ );
24
+ ThumbDownFilledIcon.displayName = "ThumbDownFilledIcon";
25
+ export {
26
+ ThumbDownFilledIcon
27
+ };
28
+ //# sourceMappingURL=ThumbDownFilledIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbDownFilledIcon.mjs","sources":["../../../src/components/Icons/ThumbDownFilledIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const ThumbDownFilledIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <g fill=\"currentColor\">\n <g transform=\"translate(2 2)\">\n <path d=\"M6.38989 3.23001V13.39C6.38989 13.79 6.50989 14.18 6.72989 14.51L9.4599 18.57C9.8899 19.22 10.9599 19.68 11.8699 19.34C12.8499 19.01 13.4999 17.91 13.2899 16.93L12.7699 13.66C12.7299 13.36 12.8099 13.09 12.9799 12.88C13.1499 12.69 13.3999 12.57 13.6699 12.57H17.7799C18.5699 12.57 19.2499 12.25 19.6499 11.69C20.0299 11.15 20.0999 10.45 19.8499 9.74001L17.3899 2.25001C17.0799 1.01001 15.7299 5.72205e-06 14.3899 5.72205e-06H10.4899C9.8199 5.72205e-06 8.8799 0.230005 8.4499 0.660006L7.16989 1.65001C6.67989 2.02001 6.38989 2.61 6.38989 3.23001Z\" />\n <path d=\"M3.21 15.3398H2.18C0.63 15.3398 0 14.7398 0 13.2598V3.1998C0 1.7198 0.63 1.1198 2.18 1.1198H3.21C4.76 1.1198 5.39 1.7198 5.39 3.1998V13.2598C5.39 14.7398 4.76 15.3398 3.21 15.3398Z\" />\n </g>\n </g>\n </svg>\n );\n },\n);\n\nThumbDownFilledIcon.displayName = \"ThumbDownFilledIcon\";\n"],"names":[],"mappings":";;;;AAIO,MAAM,sBAAsB,MAAM;AAAA,EACvC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAW,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,8BAAC,KAAA,EAAE,MAAK,gBACN,UAAA,qBAAC,KAAA,EAAE,WAAU,kBACX,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,GAAE,oiBAAA,CAAoiB;AAAA,UAC5iB,oBAAC,QAAA,EAAK,GAAE,uLAAA,CAAuL;AAAA,QAAA,EAAA,CACjM,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,oBAAoB,cAAc;"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ const ThumbUpFilledIcon = React.forwardRef(
6
+ ({ className, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsx(
8
+ "svg",
9
+ {
10
+ ref,
11
+ viewBox: "0 0 24 24",
12
+ fill: "none",
13
+ "aria-hidden": "true",
14
+ className: cn("size-6", className),
15
+ ...props,
16
+ children: /* @__PURE__ */ jsx("g", { fill: "currentColor", children: /* @__PURE__ */ jsxs("g", { transform: "translate(2 2)", children: [
17
+ /* @__PURE__ */ jsx("path", { d: "M6.38989 16.2251V6.06508C6.38989 5.66508 6.50989 5.27508 6.72989 4.94508L9.4599 0.885083C9.8899 0.235083 10.9599 -0.224917 11.8699 0.115083C12.8499 0.445083 13.4999 1.54508 13.2899 2.52508L12.7699 5.79508C12.7299 6.09508 12.8099 6.36508 12.9799 6.57508C13.1499 6.76508 13.3999 6.88508 13.6699 6.88508H17.7799C18.5699 6.88508 19.2499 7.20508 19.6499 7.76507C20.0299 8.30507 20.0999 9.00507 19.8499 9.71507L17.3899 17.2051C17.0799 18.4451 15.7299 19.4551 14.3899 19.4551H10.4899C9.8199 19.4551 8.8799 19.2251 8.4499 18.7951L7.16989 17.8051C6.67989 17.4351 6.38989 16.8451 6.38989 16.2251Z" }),
18
+ /* @__PURE__ */ jsx("path", { d: "M3.21 4.11523H2.18C0.63 4.11523 0 4.71523 0 6.19523V16.2553C0 17.7353 0.63 18.3353 2.18 18.3353H3.21C4.76 18.3353 5.39 17.7353 5.39 16.2553V6.19523C5.39 4.71523 4.76 4.11523 3.21 4.11523Z" })
19
+ ] }) })
20
+ }
21
+ );
22
+ }
23
+ );
24
+ ThumbUpFilledIcon.displayName = "ThumbUpFilledIcon";
25
+ export {
26
+ ThumbUpFilledIcon
27
+ };
28
+ //# sourceMappingURL=ThumbUpFilledIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbUpFilledIcon.mjs","sources":["../../../src/components/Icons/ThumbUpFilledIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const ThumbUpFilledIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <g fill=\"currentColor\">\n <g transform=\"translate(2 2)\">\n <path d=\"M6.38989 16.2251V6.06508C6.38989 5.66508 6.50989 5.27508 6.72989 4.94508L9.4599 0.885083C9.8899 0.235083 10.9599 -0.224917 11.8699 0.115083C12.8499 0.445083 13.4999 1.54508 13.2899 2.52508L12.7699 5.79508C12.7299 6.09508 12.8099 6.36508 12.9799 6.57508C13.1499 6.76508 13.3999 6.88508 13.6699 6.88508H17.7799C18.5699 6.88508 19.2499 7.20508 19.6499 7.76507C20.0299 8.30507 20.0999 9.00507 19.8499 9.71507L17.3899 17.2051C17.0799 18.4451 15.7299 19.4551 14.3899 19.4551H10.4899C9.8199 19.4551 8.8799 19.2251 8.4499 18.7951L7.16989 17.8051C6.67989 17.4351 6.38989 16.8451 6.38989 16.2251Z\" />\n <path d=\"M3.21 4.11523H2.18C0.63 4.11523 0 4.71523 0 6.19523V16.2553C0 17.7353 0.63 18.3353 2.18 18.3353H3.21C4.76 18.3353 5.39 17.7353 5.39 16.2553V6.19523C5.39 4.71523 4.76 4.11523 3.21 4.11523Z\" />\n </g>\n </g>\n </svg>\n );\n },\n);\n\nThumbUpFilledIcon.displayName = \"ThumbUpFilledIcon\";\n"],"names":[],"mappings":";;;;AAIO,MAAM,oBAAoB,MAAM;AAAA,EACrC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAW,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,8BAAC,KAAA,EAAE,MAAK,gBACN,UAAA,qBAAC,KAAA,EAAE,WAAU,kBACX,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,GAAE,6kBAAA,CAA6kB;AAAA,UACrlB,oBAAC,QAAA,EAAK,GAAE,8LAAA,CAA8L;AAAA,QAAA,EAAA,CACxM,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,kBAAkB,cAAc;"}
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ const TwitterIcon = React.forwardRef(
6
+ ({ className, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsx(
8
+ "svg",
9
+ {
10
+ ref,
11
+ viewBox: "0 0 14 14",
12
+ fill: "none",
13
+ "aria-hidden": "true",
14
+ className: cn("size-6", className),
15
+ ...props,
16
+ children: /* @__PURE__ */ jsx(
17
+ "path",
18
+ {
19
+ fill: "currentColor",
20
+ d: "M11.0306 0H13.1817L8.49148 5.57953L14 13.1596H9.6908L6.30348 8.55739L2.42757 13.1596H0.275308L5.28626 7.19433L0 0.000606537H4.4275L7.4962 4.20241L11.0306 0ZM10.2752 11.817H11.4665L3.78737 1.26538H2.50918L10.2752 11.817Z"
21
+ }
22
+ )
23
+ }
24
+ );
25
+ }
26
+ );
27
+ TwitterIcon.displayName = "TwitterIcon";
28
+ export {
29
+ TwitterIcon
30
+ };
31
+ //# sourceMappingURL=TwitterIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitterIcon.mjs","sources":["../../../src/components/Icons/TwitterIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport type { IconProps } from \"./types\";\n\nexport const TwitterIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ className, ...props }, ref) => {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(\"size-6\", className)}\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M11.0306 0H13.1817L8.49148 5.57953L14 13.1596H9.6908L6.30348 8.55739L2.42757 13.1596H0.275308L5.28626 7.19433L0 0.000606537H4.4275L7.4962 4.20241L11.0306 0ZM10.2752 11.817H11.4665L3.78737 1.26538H2.50918L10.2752 11.817Z\"\n />\n </svg>\n );\n },\n);\n\nTwitterIcon.displayName = \"TwitterIcon\";\n"],"names":[],"mappings":";;;;AAIO,MAAM,cAAc,MAAM;AAAA,EAC/B,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,eAAY;AAAA,QACZ,WAAW,GAAG,UAAU,SAAS;AAAA,QAChC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,YAAY,cAAc;"}
@@ -0,0 +1,55 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ import { StepperStep } from "./StepperStep.mjs";
6
+ const CONNECTOR_MARGIN = {
7
+ sm: "mt-3",
8
+ md: "mt-4",
9
+ lg: "mt-5"
10
+ };
11
+ const Stepper = React.forwardRef(
12
+ ({ activeStep, steps, size = "md", className, ...props }, ref) => {
13
+ return (
14
+ // biome-ignore lint/a11y/useSemanticElements: <fieldset> adds unwanted browser styling for a non-interactive progress indicator
15
+ /* @__PURE__ */ jsx(
16
+ "div",
17
+ {
18
+ ref,
19
+ role: "group",
20
+ "aria-label": "Progress",
21
+ className: cn("flex items-start", className),
22
+ ...props,
23
+ children: steps.map((step, index) => {
24
+ const state = index < activeStep ? "completed" : index === activeStep ? "active" : "upcoming";
25
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [
26
+ /* @__PURE__ */ jsx(
27
+ StepperStep,
28
+ {
29
+ state,
30
+ size,
31
+ stepNumber: index + 1,
32
+ title: step.title,
33
+ description: step.description,
34
+ className: "shrink-0"
35
+ }
36
+ ),
37
+ index < steps.length - 1 && /* @__PURE__ */ jsx(
38
+ "div",
39
+ {
40
+ className: cn("h-px min-w-6 flex-1 bg-border-primary", CONNECTOR_MARGIN[size]),
41
+ "aria-hidden": "true"
42
+ }
43
+ )
44
+ ] }, index);
45
+ })
46
+ }
47
+ )
48
+ );
49
+ }
50
+ );
51
+ Stepper.displayName = "Stepper";
52
+ export {
53
+ Stepper
54
+ };
55
+ //# sourceMappingURL=Stepper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper.mjs","sources":["../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { StepperStep, type StepperStepSize } from \"./StepperStep\";\n\n/** Configuration for a single step within a {@link Stepper}. */\nexport interface StepItem {\n /** Primary label for the step. */\n title: string;\n /** Secondary description for the step. */\n description?: string;\n}\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Zero-based index of the currently active step. Steps before this are marked completed. */\n activeStep: number;\n /** Configuration for each step. */\n steps: StepItem[];\n /** Size preset applied to all step indicators and labels. @default \"md\" */\n size?: StepperStepSize;\n}\n\nconst CONNECTOR_MARGIN: Record<StepperStepSize, string> = {\n sm: \"mt-3\",\n md: \"mt-4\",\n lg: \"mt-5\",\n};\n\n/**\n * A horizontal progress stepper that displays a sequence of steps with\n * completed, active, and upcoming states.\n *\n * @example\n * ```tsx\n * <Stepper\n * activeStep={1}\n * steps={[\n * { title: \"Account\", description: \"Create account\" },\n * { title: \"Profile\", description: \"Set up profile\" },\n * { title: \"Done\", description: \"All set!\" },\n * ]}\n * />\n * ```\n */\nexport const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n ({ activeStep, steps, size = \"md\", className, ...props }, ref) => {\n return (\n // biome-ignore lint/a11y/useSemanticElements: <fieldset> adds unwanted browser styling for a non-interactive progress indicator\n <div\n ref={ref}\n role=\"group\"\n aria-label=\"Progress\"\n className={cn(\"flex items-start\", className)}\n {...props}\n >\n {steps.map((step, index) => {\n const state =\n index < activeStep ? \"completed\" : index === activeStep ? \"active\" : \"upcoming\";\n\n return (\n <React.Fragment key={index}>\n <StepperStep\n state={state}\n size={size}\n stepNumber={index + 1}\n title={step.title}\n description={step.description}\n className=\"shrink-0\"\n />\n {index < steps.length - 1 && (\n <div\n className={cn(\"h-px min-w-6 flex-1 bg-border-primary\", CONNECTOR_MARGIN[size])}\n aria-hidden=\"true\"\n />\n )}\n </React.Fragment>\n );\n })}\n </div>\n );\n },\n);\n\nStepper.displayName = \"Stepper\";\n"],"names":[],"mappings":";;;;;AAqBA,MAAM,mBAAoD;AAAA,EACxD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAkBO,MAAM,UAAU,MAAM;AAAA,EAC3B,CAAC,EAAE,YAAY,OAAO,OAAO,MAAM,WAAW,GAAG,MAAA,GAAS,QAAQ;AAChE;AAAA;AAAA,MAEE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,cAAW;AAAA,UACX,WAAW,GAAG,oBAAoB,SAAS;AAAA,UAC1C,GAAG;AAAA,UAEH,UAAA,MAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,kBAAM,QACJ,QAAQ,aAAa,cAAc,UAAU,aAAa,WAAW;AAEvE,mBACE,qBAAC,MAAM,UAAN,EACC,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC;AAAA,kBACA;AAAA,kBACA,YAAY,QAAQ;AAAA,kBACpB,OAAO,KAAK;AAAA,kBACZ,aAAa,KAAK;AAAA,kBAClB,WAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEX,QAAQ,MAAM,SAAS,KACtB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,GAAG,yCAAyC,iBAAiB,IAAI,CAAC;AAAA,kBAC7E,eAAY;AAAA,gBAAA;AAAA,cAAA;AAAA,YACd,EAAA,GAbiB,KAerB;AAAA,UAEJ,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA;AAAA,EAGP;AACF;AAEA,QAAQ,cAAc;"}
@@ -0,0 +1,86 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../utils/cn.mjs";
5
+ import { CheckIcon } from "../Icons/CheckIcon.mjs";
6
+ const INDICATOR_SIZE = {
7
+ sm: "size-6",
8
+ md: "size-8",
9
+ lg: "size-10"
10
+ };
11
+ const INDICATOR_STATE = {
12
+ completed: "bg-success-surface",
13
+ active: "border border-brand-primary-default bg-brand-primary-muted",
14
+ upcoming: "bg-neutral-alphas-50"
15
+ };
16
+ const NUMBER_TYPOGRAPHY = {
17
+ sm: "typography-semibold-body-sm",
18
+ md: "typography-semibold-body-md",
19
+ lg: "typography-semibold-body-lg"
20
+ };
21
+ const NUMBER_COLOR = {
22
+ completed: "",
23
+ active: "text-content-primary",
24
+ upcoming: "text-content-secondary"
25
+ };
26
+ const CONTAINER_GAP = {
27
+ sm: "gap-1",
28
+ md: "gap-2",
29
+ lg: "gap-2"
30
+ };
31
+ const TITLE_TYPOGRAPHY = {
32
+ sm: "typography-regular-body-sm",
33
+ md: "typography-regular-body-md",
34
+ lg: "typography-regular-body-lg"
35
+ };
36
+ const DESCRIPTION_TYPOGRAPHY = {
37
+ sm: "typography-regular-body-sm",
38
+ md: "typography-regular-body-sm",
39
+ lg: "typography-regular-body-md"
40
+ };
41
+ const LABEL_COLOR = {
42
+ completed: "text-content-secondary",
43
+ active: "text-content-primary",
44
+ upcoming: "text-content-tertiary"
45
+ };
46
+ const CHECK_ICON_SIZE = {
47
+ sm: "size-3",
48
+ md: "size-4",
49
+ lg: "size-5"
50
+ };
51
+ const StepperStep = React.forwardRef(
52
+ ({ state = "upcoming", size = "md", stepNumber, title, description, className, ...props }, ref) => {
53
+ const hasLabels = title != null || description != null;
54
+ return /* @__PURE__ */ jsxs(
55
+ "div",
56
+ {
57
+ ref,
58
+ className: cn("flex flex-col items-center", CONTAINER_GAP[size], className),
59
+ ...props,
60
+ children: [
61
+ /* @__PURE__ */ jsx(
62
+ "div",
63
+ {
64
+ className: cn(
65
+ "flex shrink-0 items-center justify-center rounded-full",
66
+ INDICATOR_SIZE[size],
67
+ INDICATOR_STATE[state]
68
+ ),
69
+ "aria-hidden": "true",
70
+ children: state === "completed" ? /* @__PURE__ */ jsx(CheckIcon, { className: cn(CHECK_ICON_SIZE[size], "text-success-content") }) : /* @__PURE__ */ jsx("span", { className: cn(NUMBER_TYPOGRAPHY[size], NUMBER_COLOR[state]), children: stepNumber })
71
+ }
72
+ ),
73
+ hasLabels && /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-1 text-center", LABEL_COLOR[state]), children: [
74
+ title != null && /* @__PURE__ */ jsx("span", { className: TITLE_TYPOGRAPHY[size], children: title }),
75
+ description != null && /* @__PURE__ */ jsx("span", { className: DESCRIPTION_TYPOGRAPHY[size], children: description })
76
+ ] })
77
+ ]
78
+ }
79
+ );
80
+ }
81
+ );
82
+ StepperStep.displayName = "StepperStep";
83
+ export {
84
+ StepperStep
85
+ };
86
+ //# sourceMappingURL=StepperStep.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepperStep.mjs","sources":["../../../src/components/Stepper/StepperStep.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { CheckIcon } from \"../Icons/CheckIcon\";\n\n/** Current state of a step in the stepper. */\nexport type StepperStepState = \"completed\" | \"active\" | \"upcoming\";\n\n/** Size preset for the step indicator and labels. */\nexport type StepperStepSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface StepperStepProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current state of the step. @default \"upcoming\" */\n state?: StepperStepState;\n /** Size preset for the indicator and labels. @default \"md\" */\n size?: StepperStepSize;\n /** Step number displayed in the indicator for active and upcoming states. */\n stepNumber?: number;\n /** Primary label shown below the indicator. */\n title?: string;\n /** Secondary description shown below the title. */\n description?: string;\n}\n\nconst INDICATOR_SIZE: Record<StepperStepSize, string> = {\n sm: \"size-6\",\n md: \"size-8\",\n lg: \"size-10\",\n};\n\nconst INDICATOR_STATE: Record<StepperStepState, string> = {\n completed: \"bg-success-surface\",\n active: \"border border-brand-primary-default bg-brand-primary-muted\",\n upcoming: \"bg-neutral-alphas-50\",\n};\n\nconst NUMBER_TYPOGRAPHY: Record<StepperStepSize, string> = {\n sm: \"typography-semibold-body-sm\",\n md: \"typography-semibold-body-md\",\n lg: \"typography-semibold-body-lg\",\n};\n\nconst NUMBER_COLOR: Record<StepperStepState, string> = {\n completed: \"\",\n active: \"text-content-primary\",\n upcoming: \"text-content-secondary\",\n};\n\nconst CONTAINER_GAP: Record<StepperStepSize, string> = {\n sm: \"gap-1\",\n md: \"gap-2\",\n lg: \"gap-2\",\n};\n\nconst TITLE_TYPOGRAPHY: Record<StepperStepSize, string> = {\n sm: \"typography-regular-body-sm\",\n md: \"typography-regular-body-md\",\n lg: \"typography-regular-body-lg\",\n};\n\nconst DESCRIPTION_TYPOGRAPHY: Record<StepperStepSize, string> = {\n sm: \"typography-regular-body-sm\",\n md: \"typography-regular-body-sm\",\n lg: \"typography-regular-body-md\",\n};\n\nconst LABEL_COLOR: Record<StepperStepState, string> = {\n completed: \"text-content-secondary\",\n active: \"text-content-primary\",\n upcoming: \"text-content-tertiary\",\n};\n\nconst CHECK_ICON_SIZE: Record<StepperStepSize, string> = {\n sm: \"size-3\",\n md: \"size-4\",\n lg: \"size-5\",\n};\n\n/**\n * A single step indicator with optional labels, used standalone or within a {@link Stepper}.\n *\n * @example\n * ```tsx\n * <StepperStep state=\"active\" stepNumber={2} title=\"Profile\" description=\"Set up profile\" />\n * ```\n */\nexport const StepperStep = React.forwardRef<HTMLDivElement, StepperStepProps>(\n (\n { state = \"upcoming\", size = \"md\", stepNumber, title, description, className, ...props },\n ref,\n ) => {\n const hasLabels = title != null || description != null;\n\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center\", CONTAINER_GAP[size], className)}\n {...props}\n >\n <div\n className={cn(\n \"flex shrink-0 items-center justify-center rounded-full\",\n INDICATOR_SIZE[size],\n INDICATOR_STATE[state],\n )}\n aria-hidden=\"true\"\n >\n {state === \"completed\" ? (\n <CheckIcon className={cn(CHECK_ICON_SIZE[size], \"text-success-content\")} />\n ) : (\n <span className={cn(NUMBER_TYPOGRAPHY[size], NUMBER_COLOR[state])}>{stepNumber}</span>\n )}\n </div>\n\n {hasLabels && (\n <div className={cn(\"flex flex-col items-center gap-1 text-center\", LABEL_COLOR[state])}>\n {title != null && <span className={TITLE_TYPOGRAPHY[size]}>{title}</span>}\n {description != null && (\n <span className={DESCRIPTION_TYPOGRAPHY[size]}>{description}</span>\n )}\n </div>\n )}\n </div>\n );\n },\n);\n\nStepperStep.displayName = \"StepperStep\";\n"],"names":[],"mappings":";;;;;AAuBA,MAAM,iBAAkD;AAAA,EACtD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,kBAAoD;AAAA,EACxD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,MAAM,oBAAqD;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,eAAiD;AAAA,EACrD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,MAAM,gBAAiD;AAAA,EACrD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,mBAAoD;AAAA,EACxD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,yBAA0D;AAAA,EAC9D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,cAAgD;AAAA,EACpD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,MAAM,kBAAmD;AAAA,EACvD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAUO,MAAM,cAAc,MAAM;AAAA,EAC/B,CACE,EAAE,QAAQ,YAAY,OAAO,MAAM,YAAY,OAAO,aAAa,WAAW,GAAG,MAAA,GACjF,QACG;AACH,UAAM,YAAY,SAAS,QAAQ,eAAe;AAElD,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,8BAA8B,cAAc,IAAI,GAAG,SAAS;AAAA,QACzE,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,eAAe,IAAI;AAAA,gBACnB,gBAAgB,KAAK;AAAA,cAAA;AAAA,cAEvB,eAAY;AAAA,cAEX,UAAA,UAAU,cACT,oBAAC,WAAA,EAAU,WAAW,GAAG,gBAAgB,IAAI,GAAG,sBAAsB,EAAA,CAAG,IAEzE,oBAAC,QAAA,EAAK,WAAW,GAAG,kBAAkB,IAAI,GAAG,aAAa,KAAK,CAAC,GAAI,UAAA,WAAA,CAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAIlF,kCACE,OAAA,EAAI,WAAW,GAAG,gDAAgD,YAAY,KAAK,CAAC,GAClF,UAAA;AAAA,YAAA,SAAS,QAAQ,oBAAC,QAAA,EAAK,WAAW,iBAAiB,IAAI,GAAI,UAAA,OAAM;AAAA,YACjE,eAAe,QACd,oBAAC,QAAA,EAAK,WAAW,uBAAuB,IAAI,GAAI,UAAA,YAAA,CAAY;AAAA,UAAA,EAAA,CAEhE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEA,YAAY,cAAc;"}
package/dist/index.d.ts CHANGED
@@ -1298,6 +1298,10 @@ export declare const EyeSlashIcon: React_2.ForwardRefExoticComponent<React_2.SVG
1298
1298
  className?: string;
1299
1299
  } & React_2.RefAttributes<SVGSVGElement>>;
1300
1300
 
1301
+ export declare const FacebookIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
1302
+ className?: string;
1303
+ } & React_2.RefAttributes<SVGSVGElement>>;
1304
+
1301
1305
  export declare const FlagIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
1302
1306
  className?: string;
1303
1307
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -1326,6 +1330,10 @@ export declare const GiftIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttr
1326
1330
  className?: string;
1327
1331
  } & React_2.RefAttributes<SVGSVGElement>>;
1328
1332
 
1333
+ export declare const GoogleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
1334
+ className?: string;
1335
+ } & React_2.RefAttributes<SVGSVGElement>>;
1336
+
1329
1337
  export declare const HelpIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
1330
1338
  className?: string;
1331
1339
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -2137,6 +2145,70 @@ export declare const StarIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttr
2137
2145
  className?: string;
2138
2146
  } & React_2.RefAttributes<SVGSVGElement>>;
2139
2147
 
2148
+ /** Configuration for a single step within a {@link Stepper}. */
2149
+ export declare interface StepItem {
2150
+ /** Primary label for the step. */
2151
+ title: string;
2152
+ /** Secondary description for the step. */
2153
+ description?: string;
2154
+ }
2155
+
2156
+ /**
2157
+ * A horizontal progress stepper that displays a sequence of steps with
2158
+ * completed, active, and upcoming states.
2159
+ *
2160
+ * @example
2161
+ * ```tsx
2162
+ * <Stepper
2163
+ * activeStep={1}
2164
+ * steps={[
2165
+ * { title: "Account", description: "Create account" },
2166
+ * { title: "Profile", description: "Set up profile" },
2167
+ * { title: "Done", description: "All set!" },
2168
+ * ]}
2169
+ * />
2170
+ * ```
2171
+ */
2172
+ export declare const Stepper: React_2.ForwardRefExoticComponent<StepperProps & React_2.RefAttributes<HTMLDivElement>>;
2173
+
2174
+ export declare interface StepperProps extends React_2.HTMLAttributes<HTMLDivElement> {
2175
+ /** Zero-based index of the currently active step. Steps before this are marked completed. */
2176
+ activeStep: number;
2177
+ /** Configuration for each step. */
2178
+ steps: StepItem[];
2179
+ /** Size preset applied to all step indicators and labels. @default "md" */
2180
+ size?: StepperStepSize;
2181
+ }
2182
+
2183
+ /**
2184
+ * A single step indicator with optional labels, used standalone or within a {@link Stepper}.
2185
+ *
2186
+ * @example
2187
+ * ```tsx
2188
+ * <StepperStep state="active" stepNumber={2} title="Profile" description="Set up profile" />
2189
+ * ```
2190
+ */
2191
+ export declare const StepperStep: React_2.ForwardRefExoticComponent<StepperStepProps & React_2.RefAttributes<HTMLDivElement>>;
2192
+
2193
+ export declare interface StepperStepProps extends React_2.HTMLAttributes<HTMLDivElement> {
2194
+ /** Current state of the step. @default "upcoming" */
2195
+ state?: StepperStepState;
2196
+ /** Size preset for the indicator and labels. @default "md" */
2197
+ size?: StepperStepSize;
2198
+ /** Step number displayed in the indicator for active and upcoming states. */
2199
+ stepNumber?: number;
2200
+ /** Primary label shown below the indicator. */
2201
+ title?: string;
2202
+ /** Secondary description shown below the title. */
2203
+ description?: string;
2204
+ }
2205
+
2206
+ /** Size preset for the step indicator and labels. */
2207
+ export declare type StepperStepSize = "sm" | "md" | "lg";
2208
+
2209
+ /** Current state of a step in the stepper. */
2210
+ export declare type StepperStepState = "completed" | "active" | "upcoming";
2211
+
2140
2212
  export declare const StopIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2141
2213
  className?: string;
2142
2214
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -2643,10 +2715,18 @@ export declare interface TextFieldProps extends Omit<React_2.InputHTMLAttributes
2643
2715
  /** Text field height in pixels. */
2644
2716
  export declare type TextFieldSize = "48" | "40" | "32";
2645
2717
 
2718
+ export declare const ThumbDownFilledIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2719
+ className?: string;
2720
+ } & React_2.RefAttributes<SVGSVGElement>>;
2721
+
2646
2722
  export declare const ThumbDownIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2647
2723
  className?: string;
2648
2724
  } & React_2.RefAttributes<SVGSVGElement>>;
2649
2725
 
2726
+ export declare const ThumbUpFilledIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2727
+ className?: string;
2728
+ } & React_2.RefAttributes<SVGSVGElement>>;
2729
+
2650
2730
  export declare const ThumbUpIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2651
2731
  className?: string;
2652
2732
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -2751,6 +2831,10 @@ export declare const TrophyIcon: React_2.ForwardRefExoticComponent<React_2.SVGAt
2751
2831
  className?: string;
2752
2832
  } & React_2.RefAttributes<SVGSVGElement>>;
2753
2833
 
2834
+ export declare const TwitterIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2835
+ className?: string;
2836
+ } & React_2.RefAttributes<SVGSVGElement>>;
2837
+
2754
2838
  /** An upload-to-cloud icon with an upward arrow (20 × 20). */
2755
2839
  export declare const UploadCloudIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
2756
2840
  className?: string;
package/dist/index.mjs CHANGED
@@ -69,6 +69,7 @@ import { ExpandIcon } from "./components/Icons/ExpandIcon.mjs";
69
69
  import { EyeClosedIcon } from "./components/Icons/EyeClosedIcon.mjs";
70
70
  import { EyeIcon } from "./components/Icons/EyeIcon.mjs";
71
71
  import { EyeSlashIcon } from "./components/Icons/EyeSlashIcon.mjs";
72
+ import { FacebookIcon } from "./components/Icons/FacebookIcon.mjs";
72
73
  import { FlagIcon } from "./components/Icons/FlagIcon.mjs";
73
74
  import { FlameIcon } from "./components/Icons/FlameIcon.mjs";
74
75
  import { FolderIcon } from "./components/Icons/FolderIcon.mjs";
@@ -76,6 +77,7 @@ import { ForwardIcon } from "./components/Icons/ForwardIcon.mjs";
76
77
  import { GalleryIcon } from "./components/Icons/GalleryIcon.mjs";
77
78
  import { GenderIcon } from "./components/Icons/GenderIcon.mjs";
78
79
  import { GiftIcon } from "./components/Icons/GiftIcon.mjs";
80
+ import { GoogleIcon } from "./components/Icons/GoogleIcon.mjs";
79
81
  import { HelpIcon } from "./components/Icons/HelpIcon.mjs";
80
82
  import { HomeIcon } from "./components/Icons/HomeIcon.mjs";
81
83
  import { HourglassIcon } from "./components/Icons/HourglassIcon.mjs";
@@ -126,13 +128,16 @@ import { Support2Icon } from "./components/Icons/Support2Icon.mjs";
126
128
  import { SupportIcon } from "./components/Icons/SupportIcon.mjs";
127
129
  import { TagIcon } from "./components/Icons/TagIcon.mjs";
128
130
  import { TaskIcon } from "./components/Icons/TaskIcon.mjs";
131
+ import { ThumbDownFilledIcon } from "./components/Icons/ThumbDownFilledIcon.mjs";
129
132
  import { ThumbDownIcon } from "./components/Icons/ThumbDownIcon.mjs";
133
+ import { ThumbUpFilledIcon } from "./components/Icons/ThumbUpFilledIcon.mjs";
130
134
  import { ThumbUpIcon } from "./components/Icons/ThumbUpIcon.mjs";
131
135
  import { TickCircleIcon } from "./components/Icons/TickCircleIcon.mjs";
132
136
  import { TickCircleOffIcon } from "./components/Icons/TickCircleOffIcon.mjs";
133
137
  import { TickIcon } from "./components/Icons/TickIcon.mjs";
134
138
  import { TrashBinIcon } from "./components/Icons/TrashBinIcon.mjs";
135
139
  import { TrophyIcon } from "./components/Icons/TrophyIcon.mjs";
140
+ import { TwitterIcon } from "./components/Icons/TwitterIcon.mjs";
136
141
  import { UploadCloudIcon } from "./components/Icons/UploadCloudIcon.mjs";
137
142
  import { UploadIcon } from "./components/Icons/UploadIcon.mjs";
138
143
  import { UserCircleIcon } from "./components/Icons/UserCircleIcon.mjs";
@@ -162,6 +167,8 @@ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSepa
162
167
  import { Skeleton } from "./components/Skeleton/Skeleton.mjs";
163
168
  import { Slider } from "./components/Slider/Slider.mjs";
164
169
  import { Snackbar } from "./components/Snackbar/Snackbar.mjs";
170
+ import { Stepper } from "./components/Stepper/Stepper.mjs";
171
+ import { StepperStep } from "./components/Stepper/StepperStep.mjs";
165
172
  import { Switch } from "./components/Switch/Switch.mjs";
166
173
  import { SwitchField } from "./components/SwitchField/SwitchField.mjs";
167
174
  import { SwitchToggle } from "./components/SwitchToggle/SwitchToggle.mjs";
@@ -281,6 +288,7 @@ export {
281
288
  EyeClosedIcon,
282
289
  EyeIcon,
283
290
  EyeSlashIcon,
291
+ FacebookIcon,
284
292
  FlagIcon,
285
293
  FlameIcon,
286
294
  FolderIcon,
@@ -288,6 +296,7 @@ export {
288
296
  GalleryIcon,
289
297
  GenderIcon,
290
298
  GiftIcon,
299
+ GoogleIcon,
291
300
  HelpIcon,
292
301
  HomeIcon,
293
302
  HourglassIcon,
@@ -355,6 +364,8 @@ export {
355
364
  Snackbar,
356
365
  SpinnerIcon,
357
366
  StarIcon,
367
+ Stepper,
368
+ StepperStep,
358
369
  StopIcon,
359
370
  SuccessIcon,
360
371
  SunIcon,
@@ -391,7 +402,9 @@ export {
391
402
  TaskIcon,
392
403
  TextArea,
393
404
  TextField,
405
+ ThumbDownFilledIcon,
394
406
  ThumbDownIcon,
407
+ ThumbUpFilledIcon,
395
408
  ThumbUpIcon,
396
409
  TickCircleIcon,
397
410
  TickCircleOffIcon,
@@ -405,6 +418,7 @@ export {
405
418
  TooltipTrigger,
406
419
  TrashBinIcon,
407
420
  TrophyIcon,
421
+ TwitterIcon,
408
422
  UploadCloudIcon,
409
423
  UploadIcon,
410
424
  UserCircleIcon,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,15 @@
1
1
  /* Consumers must provide their own Tailwind import: @import "tailwindcss"; */
2
2
 
3
3
  @variant dark (&:where(.dark, .dark *));
4
+ @custom-variant infloww (&:is([data-infloww] *));
5
+
6
+ @theme {
7
+ --breakpoint-*: initial;
8
+ --breakpoint-sm: 850px;
9
+ --breakpoint-md: 1024px;
10
+ --breakpoint-inflowwmd: 1223px;
11
+ --breakpoint-lg: 1280px;
12
+ }
4
13
 
5
14
  @layer base {
6
15
  html {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fanvue/ui",
3
- "version": "2.3.0",
3
+ "version": "2.5.0",
4
4
  "description": "React component library built with Tailwind CSS for Fanvue ecosystem",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org",
@@ -166,7 +166,7 @@
166
166
  "size-limit": [
167
167
  {
168
168
  "path": "dist/index.mjs",
169
- "limit": "55 KB",
169
+ "limit": "57 KB",
170
170
  "ignore": [
171
171
  "@radix-ui/*",
172
172
  "clsx",