@spear-ai/spectral 1.4.1 → 1.4.3

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 (127) hide show
  1. package/dist/Accordion.d.ts +7 -7
  2. package/dist/Accordion.js +53 -51
  3. package/dist/Alert/AlertBase.js +6 -6
  4. package/dist/Alert.js +1 -1
  5. package/dist/Avatar.d.ts +2 -2
  6. package/dist/Avatar.js +46 -46
  7. package/dist/Badge.js +3 -3
  8. package/dist/Button.js +19 -12
  9. package/dist/ButtonGroup/ButtonGroupButton.d.ts +1 -1
  10. package/dist/ButtonGroup/ButtonGroupButton.js +10 -10
  11. package/dist/ButtonGroup.d.ts +8 -5
  12. package/dist/ButtonGroup.js +22 -14
  13. package/dist/ButtonIcon.d.ts +1 -1
  14. package/dist/ButtonIcon.js +5 -5
  15. package/dist/Card.d.ts +1 -1
  16. package/dist/Card.js +10 -10
  17. package/dist/Checkbox/CheckboxBase.d.ts +6 -6
  18. package/dist/Checkbox/CheckboxBase.js +65 -63
  19. package/dist/Checkbox.js +16 -14
  20. package/dist/Dialog/DialogBase.d.ts +37 -25
  21. package/dist/Dialog/DialogBase.js +130 -104
  22. package/dist/Dialog.d.ts +8 -8
  23. package/dist/Dialog.js +46 -36
  24. package/dist/Drawer.js +17 -17
  25. package/dist/HoverCard.d.ts +4 -4
  26. package/dist/HoverCard.js +34 -33
  27. package/dist/Input.js +58 -58
  28. package/dist/InputOTP.d.ts +1 -1
  29. package/dist/InputOTP.js +113 -112
  30. package/dist/MultiSelect/MultiSelectBase.d.ts +16 -16
  31. package/dist/MultiSelect/MultiSelectBase.js +236 -177
  32. package/dist/MultiSelect/MutiSelect.d.ts +6 -4
  33. package/dist/MultiSelect/MutiSelect.js +13 -12
  34. package/dist/Popover.js +2 -1
  35. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +18 -17
  36. package/dist/RadioGroup.js +5 -3
  37. package/dist/Select.js +70 -51
  38. package/dist/Slider.js +8 -4
  39. package/dist/Switch/SwitchBase.d.ts +6 -6
  40. package/dist/Switch/SwitchBase.js +39 -38
  41. package/dist/Switch.js +17 -16
  42. package/dist/Tabs/TabsBase.js +40 -25
  43. package/dist/Tabs.js +18 -21
  44. package/dist/Textarea.d.ts +1 -0
  45. package/dist/Textarea.js +33 -33
  46. package/dist/Toggle.js +4 -4
  47. package/dist/ToggleGroup/ToggleGroupBase.d.ts +7 -7
  48. package/dist/ToggleGroup/ToggleGroupBase.js +64 -64
  49. package/dist/ToggleGroup.js +19 -17
  50. package/dist/Tooltip/TooltipBase.d.ts +8 -8
  51. package/dist/Tooltip/TooltipBase.js +76 -74
  52. package/dist/Tooltip.d.ts +1 -1
  53. package/dist/Tooltip.js +12 -11
  54. package/dist/Tray.d.ts +1 -1
  55. package/dist/Tray.js +4910 -117
  56. package/dist/primitives/input.js +4 -4
  57. package/dist/primitives/select.d.ts +11 -11
  58. package/dist/primitives/select.d.ts.map +1 -1
  59. package/dist/primitives/select.js +28 -21
  60. package/dist/styles/main.css +1 -1
  61. package/dist/utils/{refs.d.ts → createForwardRef.d.ts} +1 -1
  62. package/dist/utils/createForwardRef.d.ts.map +1 -0
  63. package/dist/utils/formFieldUtils.d.ts +22 -18
  64. package/dist/utils/formFieldUtils.d.ts.map +1 -1
  65. package/dist/utils/formFieldUtils.js +46 -46
  66. package/package.json +9 -5
  67. package/dist/analyzer/list.yml.webp +0 -0
  68. package/dist/analyzer/network.webp +0 -0
  69. package/dist/analyzer/sunburst.webp +0 -0
  70. package/dist/analyzer/visual.webp +0 -0
  71. package/dist/auth-background.json +0 -90
  72. package/dist/favicon-invert.svg +0 -5
  73. package/dist/favicon.svg +0 -5
  74. package/dist/features/AuthCard/AuthCard.d.ts +0 -3
  75. package/dist/features/AuthCard/AuthCard.d.ts.map +0 -1
  76. package/dist/features/AuthCard/AuthToggle.d.ts +0 -9
  77. package/dist/features/AuthCard/AuthToggle.d.ts.map +0 -1
  78. package/dist/features/AuthCard/AuthToggle.js +0 -20
  79. package/dist/features/AuthCard/ForgotPasswordEmailForm.d.ts +0 -11
  80. package/dist/features/AuthCard/ForgotPasswordEmailForm.d.ts.map +0 -1
  81. package/dist/features/AuthCard/ForgotPasswordEmailForm.js +0 -86
  82. package/dist/features/AuthCard/ForgotPasswordResetForm.d.ts +0 -11
  83. package/dist/features/AuthCard/ForgotPasswordResetForm.d.ts.map +0 -1
  84. package/dist/features/AuthCard/ForgotPasswordResetForm.js +0 -21
  85. package/dist/features/AuthCard/OTPInput.d.ts +0 -12
  86. package/dist/features/AuthCard/OTPInput.d.ts.map +0 -1
  87. package/dist/features/AuthCard/OTPInput.js +0 -12
  88. package/dist/features/AuthCard/PasswordInput.d.ts +0 -13
  89. package/dist/features/AuthCard/PasswordInput.d.ts.map +0 -1
  90. package/dist/features/AuthCard/PasswordInput.js +0 -93
  91. package/dist/features/AuthCard/SignInForm.d.ts +0 -9
  92. package/dist/features/AuthCard/SignInForm.d.ts.map +0 -1
  93. package/dist/features/AuthCard/SignInForm.js +0 -86
  94. package/dist/features/AuthCard/SignUpForm.d.ts +0 -8
  95. package/dist/features/AuthCard/SignUpForm.d.ts.map +0 -1
  96. package/dist/features/AuthCard/SignUpForm.js +0 -100
  97. package/dist/features/AuthCard.js +0 -202
  98. package/dist/features/ClearDialog/ClearDialog.d.ts +0 -2
  99. package/dist/features/ClearDialog/ClearDialog.d.ts.map +0 -1
  100. package/dist/features/ClearDialog.js +0 -31
  101. package/dist/features/LabelingToolbar/LabelingToolbar.d.ts +0 -8
  102. package/dist/features/LabelingToolbar/LabelingToolbar.d.ts.map +0 -1
  103. package/dist/features/LabelingToolbar.js +0 -13
  104. package/dist/features/LabelingTools/LabelingTools.d.ts +0 -2
  105. package/dist/features/LabelingTools/LabelingTools.d.ts.map +0 -1
  106. package/dist/features/LabelingTools.js +0 -134
  107. package/dist/features/SensorMetadata/SensorMetadata.d.ts +0 -2
  108. package/dist/features/SensorMetadata/SensorMetadata.d.ts.map +0 -1
  109. package/dist/features/SensorMetadata.js +0 -117
  110. package/dist/features/SettingsPopover/SettingsPopover.d.ts +0 -2
  111. package/dist/features/SettingsPopover/SettingsPopover.d.ts.map +0 -1
  112. package/dist/features/SettingsPopover.js +0 -204
  113. package/dist/index-BIpuW_o8.js +0 -146
  114. package/dist/linear-cursor-small.png +0 -0
  115. package/dist/loader-circle-CdRVlFhN.js +0 -11
  116. package/dist/logo/wordmark-dark-side-by-side.svg +0 -6
  117. package/dist/logo/wordmark-light-side-by-side.svg +0 -6
  118. package/dist/message-alert-matte-glass-gradient.webp +0 -0
  119. package/dist/proxy-C9AqCss6.js +0 -4670
  120. package/dist/speech-bubble-fluid-glass-gradient.webp +0 -0
  121. package/dist/themes/grayscale-theme.webp +0 -0
  122. package/dist/themes/green-black-theme.webp +0 -0
  123. package/dist/themes/reverse-grayscale-theme.webp +0 -0
  124. package/dist/themes/viridis-theme.webp +0 -0
  125. package/dist/utils/refs.d.ts.map +0 -1
  126. package/dist/x-Dl66o_vF.js +0 -14
  127. /package/dist/utils/{refs.js → createForwardRef.js} +0 -0
@@ -1,29 +1,29 @@
1
1
  "use client";
2
2
  import { jsx as p } from "react/jsx-runtime";
3
- import { cn as d } from "./twUtils.js";
4
- import { useId as h, useRef as m, useEffect as x, useState as y, useCallback as w } from "react";
3
+ import { cn as u } from "./twUtils.js";
4
+ import { useId as h, useRef as m, useEffect as v, useState as y, useCallback as w } from "react";
5
5
  const g = (e) => ({
6
6
  success: "border-success-400 hover:border-success-500 focus-visible:border-success-400 focus-visible:outline-success-400",
7
7
  error: "border-danger-400 hover:border-danger-500 focus-visible:border-danger-400 focus-visible:outline-danger-400",
8
8
  loading: "cursor-wait border-input-border--disabled pointer-events-none",
9
9
  disabled: "cursor-not-allowed opacity-50 border-input-border--disabled text-input-text--disabled",
10
10
  default: ""
11
- })[e], k = (e, r = !1, t) => d(
11
+ })[e], k = (e = !1, r, o) => u(
12
12
  "flex h-12 w-full items-center justify-between rounded-lg border-2 border-input-border bg-input-bg px-4 text-base",
13
13
  "transition duration-200 text-input-text hover:border-input-border--hover focus:border-input-border--focus focus:outline-none",
14
14
  "focus-visible:outline focus-visible:outline-2 focus-visible:outline-input-border--focus focus-visible:outline-offset-2",
15
15
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:border-input-border--disabled disabled:bg-input-bg--disabled",
16
- r && "border-input-border--focus outline outline-2 outline-input-border--focus outline-offset-2",
17
- g(e),
18
- t
19
- ), N = (e, r = "bottom") => d("absolute left-0 right-0 z-50 rounded-lg border border-input-border bg-input-bg shadow-md", "transition-[opacity,transform] duration-150 motion-reduce:transition-none motion-reduce:transform-none", "will-change-[opacity,transform]", r === "bottom" ? "top-full mt-1 origin-top" : "bottom-full mb-1 origin-bottom", r === "bottom" ? e ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 -translate-y-1 pointer-events-none" : e ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 translate-y-1 pointer-events-none"), A = (e, r) => d(
16
+ e && "border-input-border--focus outline outline-2 outline-input-border--focus outline-offset-2",
17
+ g(r),
18
+ o
19
+ ), N = (e, r = "bottom") => u("absolute left-0 right-0 z-50 rounded-lg border border-input-border bg-input-bg shadow-md", "transition-[opacity,transform] duration-150 motion-reduce:transition-none motion-reduce:transform-none", "will-change-[opacity,transform]", r === "bottom" ? "top-full mt-1 origin-top" : "bottom-full mb-1 origin-bottom", r === "bottom" ? e ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 -translate-y-1 pointer-events-none" : e ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 translate-y-1 pointer-events-none"), A = (e, r) => u(
20
20
  "peer flex h-12 w-full rounded-md border-2 border-input-border bg-input-bg ps-3 pe-12 text-base transition duration-200",
21
21
  "placeholder:text-input-text-placeholder hover:border-input-border--hover focus:border-input-border--focus focus:outline-none",
22
22
  "focus-visible:outline focus-visible:outline-2 focus-visible:outline-input-border--focus focus-visible:outline-offset-2",
23
23
  "disabled:pointer-events-none disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:text-input-text--disabled",
24
24
  g(e),
25
25
  r
26
- ), F = (e, r) => d(
26
+ ), F = (e, r) => u(
27
27
  "peer flex h-24 w-full resize-none rounded-md border-2 border-input-border bg-input-bg p-3 text-base transition duration-200",
28
28
  "placeholder:text-input-text-placeholder hover:border-input-border--hover focus:border-input-border--focus focus:outline-none",
29
29
  "focus-visible:outline focus-visible:outline-2 focus-visible:outline-input-border--focus focus-visible:outline-offset-2",
@@ -31,14 +31,14 @@ const g = (e) => ({
31
31
  g(e),
32
32
  r
33
33
  ), j = (e, r) => {
34
- const t = h();
34
+ const o = h();
35
35
  if (e) return e;
36
- const o = r?.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9\-_.:]/g, "");
37
- return o ? `${o}-${t}` : t;
38
- }, L = (e) => `${e}-error`, M = (e, r, t, o) => ({
36
+ const t = r?.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9\-_.:]/g, "");
37
+ return t ? `${t}-${o}` : o;
38
+ }, L = (e) => `${e}-error`, M = (e, r, o, t) => ({
39
39
  "aria-invalid": e === "error",
40
- "aria-required": r,
41
- "aria-describedby": d(e === "error" && t, o)
40
+ "aria-required": o,
41
+ "aria-describedby": u(e === "error" && t, r)
42
42
  }), z = (e = {}) => ({
43
43
  "--field-border-radius": "0.5rem",
44
44
  "--field-height": "3rem",
@@ -51,44 +51,44 @@ const g = (e) => ({
51
51
  // isSuccess: state === 'success', // For future use
52
52
  }), O = (e) => {
53
53
  const r = m(null);
54
- return x(() => {
55
- const t = (o) => {
56
- r.current && !r.current.contains(o.target) && e();
54
+ return v(() => {
55
+ const o = (t) => {
56
+ r.current && !r.current.contains(t.target) && e();
57
57
  };
58
- return document.addEventListener("mousedown", t), () => document.removeEventListener("mousedown", t);
58
+ return document.addEventListener("mousedown", o), () => document.removeEventListener("mousedown", o);
59
59
  }, [e]), r;
60
- }, S = (e, r, t, o, u, b = !1) => {
61
- const [i, a] = y(-1);
62
- x(() => {
63
- if (u)
64
- if (b)
60
+ }, S = (e, r = !1, o, t, s, b) => {
61
+ const [d, a] = y(-1);
62
+ v(() => {
63
+ if (e)
64
+ if (r)
65
65
  a(0);
66
66
  else {
67
- const n = e.findIndex((l) => l.value === r);
67
+ const n = s.findIndex((l) => l.value === b);
68
68
  a(n >= 0 ? n : 0);
69
69
  }
70
70
  else
71
71
  a(-1);
72
- }, [u, r, e, b]);
72
+ }, [e, b, s, r]);
73
73
  const c = (n, l) => {
74
- let s = n + (l === "down" ? 1 : -1);
75
- return l === "down" ? s = Math.min(s, e.length - 1) : s = Math.max(s, 0), e[s]?.disabled && s !== n ? c(s, l) : s;
76
- }, v = w(
74
+ let i = n + (l === "down" ? 1 : -1);
75
+ return l === "down" ? i = Math.min(i, s.length - 1) : i = Math.max(i, 0), s[i]?.disabled && i !== n ? c(i, l) : i;
76
+ }, x = w(
77
77
  (n) => {
78
- if (!u)
78
+ if (!e)
79
79
  return ["ArrowDown", "ArrowUp", " ", "Enter"].includes(n.key) ? (n.preventDefault(), "open") : void 0;
80
80
  const f = {
81
81
  ArrowDown: () => {
82
- n.preventDefault(), a((s) => c(s, "down"));
82
+ n.preventDefault(), a((i) => c(i, "down"));
83
83
  },
84
84
  ArrowUp: () => {
85
- n.preventDefault(), a((s) => c(s, "up"));
85
+ n.preventDefault(), a((i) => c(i, "up"));
86
86
  },
87
87
  Enter: () => {
88
- n.preventDefault(), i >= 0 && e[i] && !e[i].disabled && (t(e[i].value), b || o());
88
+ n.preventDefault(), d >= 0 && s[d] && !s[d].disabled && (t(s[d].value), r || o());
89
89
  },
90
90
  " ": () => {
91
- n.preventDefault(), i >= 0 && e[i] && !e[i].disabled && (t(e[i].value), b || o());
91
+ n.preventDefault(), d >= 0 && s[d] && !s[d].disabled && (t(s[d].value), r || o());
92
92
  },
93
93
  Escape: () => {
94
94
  n.preventDefault(), o();
@@ -97,31 +97,31 @@ const g = (e) => ({
97
97
  n.preventDefault(), a(0);
98
98
  },
99
99
  End: () => {
100
- n.preventDefault(), a(e.length - 1);
100
+ n.preventDefault(), a(s.length - 1);
101
101
  }
102
102
  }[n.key];
103
103
  f && f();
104
104
  },
105
- [e, i, t, o, u, b, c]
105
+ [s, d, t, o, e, r, c]
106
106
  );
107
- return { focusedIndex: i, setFocusedIndex: a, handleKeyDown: v, isOpen: u };
107
+ return { focusedIndex: d, setFocusedIndex: a, handleKeyDown: x, isOpen: e };
108
108
  }, $ = (e) => {
109
- const r = {}, t = [];
110
- return e.forEach((o) => {
111
- o.group ? (r[o.group] || (r[o.group] = []), r[o.group].push(o)) : t.push(o);
109
+ const r = {}, o = [];
110
+ return e.forEach((t) => {
111
+ t.group ? (r[t.group] || (r[t.group] = []), r[t.group].push(t)) : o.push(t);
112
112
  }), {
113
113
  groups: r,
114
- ungrouped: t,
114
+ ungrouped: o,
115
115
  hasGroups: Object.keys(r).length > 0
116
116
  };
117
- }, K = ({ message: e = "Loading…", className: r }) => /* @__PURE__ */ p("div", { className: d("flex items-center justify-center gap-2 py-6 text-base text-input-text-secondary", r), role: "status", "aria-live": "polite", children: e }), P = ({ message: e = "No options found", className: r }) => /* @__PURE__ */ p("div", { className: d("py-6 text-center text-base text-text-secondary", r), role: "status", children: e }), T = ({ id: e, message: r, className: t }) => {
118
- const u = r ? typeof r == "string" ? r : Array.isArray(r) ? r.join(", ") : typeof r == "object" ? r.message ? r.message : r.error ? r.error : r.details ? r.details : JSON.stringify(r) : String(r) : null;
119
- return u ? /* @__PURE__ */ p("p", { id: e, className: d("!m-0 !mt-1.5 text-base !text-danger-400", t), "data-testid": "form-field-error-message", "aria-live": "polite", "aria-atomic": "true", children: u }) : null;
120
- }, U = (e, r, t = !1) => d(
117
+ }, K = ({ className: e, message: r = "Loading…" }) => /* @__PURE__ */ p("div", { "aria-live": "polite", className: u("flex items-center justify-center gap-2 py-6 text-base text-input-text-secondary", e), role: "status", children: r }), P = ({ className: e, message: r = "No options found" }) => /* @__PURE__ */ p("div", { className: u("py-6 text-center text-base text-text-secondary", e), role: "status", children: r }), T = ({ className: e, id: r, dataTestId: o, message: t }) => {
118
+ const b = t ? typeof t == "string" ? t : Array.isArray(t) ? t.join(", ") : typeof t == "object" ? t.message ? t.message : t.error ? t.error : t.details ? t.details : JSON.stringify(t) : String(t) : null;
119
+ return b ? /* @__PURE__ */ p("p", { "aria-atomic": "true", "aria-live": "assertive", className: u("!m-0 !mt-1.5 text-base !text-danger-400", e), "data-testid": o || "spectral-form-field-error-message", id: r, role: "alert", children: b }) : null;
120
+ }, U = (e = !1, r, o) => u(
121
121
  "relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-base outline-none hover:bg-input-bg--hover",
122
122
  r && "bg-input-bg--hover",
123
- e && "bg-input-bg--selected text-input-text",
124
- t && "pointer-events-none text-input-text--disabled"
123
+ o && "bg-input-bg--selected text-input-text",
124
+ e && "pointer-events-none text-input-text--disabled"
125
125
  ), q = (e) => {
126
126
  e && e.scrollIntoView({ block: "nearest", behavior: "smooth" });
127
127
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spear-ai/spectral",
3
- "version": "1.4.1",
3
+ "version": "1.4.3",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {
@@ -62,7 +62,6 @@
62
62
  "class-variance-authority": "^0.7.1",
63
63
  "clsx": "^2.1.1",
64
64
  "cmdk": "^1.1.1",
65
- "framer-motion": "^12.23.24",
66
65
  "input-otp": "^1.4.2",
67
66
  "lucide-react": "^0.546.0",
68
67
  "motion": "^12.23.24",
@@ -88,6 +87,7 @@
88
87
  "@tailwindcss/vite": "^4.1.16",
89
88
  "@testing-library/jest-dom": "^6.9.1",
90
89
  "@testing-library/react": "^16.3.0",
90
+ "@testing-library/user-event": "^14.6.1",
91
91
  "@types/node": "^24.9.1",
92
92
  "@types/react": "^19.2.2",
93
93
  "@types/react-dom": "^19.2.2",
@@ -96,10 +96,10 @@
96
96
  "@vitest/browser": "4.0.3",
97
97
  "@vitest/browser-playwright": "^4.0.3",
98
98
  "@vitest/coverage-v8": "4.0.3",
99
+ "@vitest/ui": "^4.0.3",
99
100
  "eslint-plugin-jsx-a11y": "^6.10.2",
100
101
  "glob": "^11.0.0",
101
102
  "http-server": "^14.1.1",
102
- "husky": "^9.1.7",
103
103
  "oxlint": "^1.24.0",
104
104
  "playwright": "^1.56.1",
105
105
  "prettier": "^3.6.2",
@@ -125,15 +125,16 @@
125
125
  "dev": "vite --force",
126
126
  "build": "vite build --emptyOutDir",
127
127
  "build:lib": "pnpm run icons:update && vite build && pnpm run fix:types && pnpm run clean:build-artifacts",
128
+ "pack:dryrun": "pnpm pack --dry-run",
128
129
  "fix:types": "node scripts/fix-type-paths.js",
129
130
  "analyze:visual": "vite-bundle-visualizer -c vite.config.ts -o ./analyzer/visual.html",
130
131
  "analyze:network": "vite-bundle-visualizer -c vite.config.ts -t network -o ./analyzer/network.html",
131
132
  "analyze:sunburst": "vite-bundle-visualizer -c vite.config.ts -t sunburst -o ./analyzer/sunburst.html",
132
133
  "analyze:list": "vite-bundle-visualizer -c vite.config.ts -t list -o ./analyzer/list.yml",
133
134
  "preview": "vite preview",
135
+ "storybook:dev": "storybook dev -p 6006",
134
136
  "storybook:build": "storybook build",
135
137
  "storybook:start": "http-server -p 6006 storybook-static",
136
- "storybook:dev": "storybook dev -p 6006",
137
138
  "lint": "oxlint --react-plugin --jsx-a11y-plugin --import-plugin src/",
138
139
  "lint:fix": "oxlint --react-plugin --jsx-a11y-plugin --import-plugin --fix src/",
139
140
  "format": "prettier --check --ignore-unknown '**/**/*.{!(css|md|mdx|json|html),}'",
@@ -144,6 +145,9 @@
144
145
  "clean": "rm -rf $(find dist -maxdepth 1 ! -name \"node_modules\") && rm pnpm-lock.yaml",
145
146
  "clean:build-artifacts": "find .storybook -name '*.js' -not -name '*.config.js' -delete && find .storybook -name '*.d.ts' -delete && find . -name '*.d.ts' -path './vite.config.d.ts' -delete && rm -rf storybook-static",
146
147
  "icons:update": "node scripts/update-icons-index.js",
147
- "test:browser": "vitest --config=vitest.browser.config.ts"
148
+ "test": "vitest run",
149
+ "test:watch": "vitest",
150
+ "test:ui": "vitest --ui",
151
+ "test:coverage": "vitest run --coverage"
148
152
  }
149
153
  }
Binary file
Binary file
Binary file
Binary file
@@ -1,90 +0,0 @@
1
- { "id": "LxaVE0gwV7rhHgfIZcjY",
2
- "version": "1.4.31",
3
- "history": [{ "id": "effect",
4
- "type": "gradient",
5
- "animating": false,
6
- "aspectRatio": 1,
7
- "breakpoints": [],
8
- "compiledFragmentShaders": ["#version 300 es\nprecision highp float;in vec2 vTextureCoord;uniform vec2 uMousePos;vec3 getColor(int index) { switch(index) { case 0: return vec3(0, 0, 0); case 1: return vec3(0, 0, 0); case 2: return vec3(0, 0, 0); case 3: return vec3(0, 0, 0); case 4: return vec3(0, 0, 0); case 5: return vec3(0, 0, 0); case 6: return vec3(0, 0, 0); case 7: return vec3(0, 0, 0); case 8: return vec3(0, 0, 0); case 9: return vec3(0, 0, 0); case 10: return vec3(0, 0, 0); case 11: return vec3(0, 0, 0); case 12: return vec3(0, 0, 0); case 13: return vec3(0, 0, 0); case 14: return vec3(0, 0, 0); case 15: return vec3(0, 0, 0); default: return vec3(0.0); } }const float PI = 3.14159265;vec2 rotate(vec2 coord, float angle) { float s = sin(angle); float c = cos(angle); return vec2( coord.x * c - coord.y * s, coord.x * s + coord.y * c ); }out vec4 fragColor;vec3 getColor(vec2 uv) {return vec3(0, 0, 0); }void main() {vec2 uv = vTextureCoord; vec2 pos = vec2(0.5, 0.5) + mix(vec2(0), (uMousePos-0.5), 0.0000); uv -= pos; uv /= (0.5000*2.); uv = rotate(uv, (0.0000 - 0.5) * 2. * PI); vec4 color = vec4(getColor(uv), 1.); fragColor = color; }"],
9
- "compiledVertexShaders": ["#version 300 es\nprecision mediump float;in vec3 aVertexPosition; in vec2 aTextureCoord;uniform mat4 uMVMatrix; uniform mat4 uPMatrix;out vec2 vTextureCoord; out vec3 vVertexPosition;void main() { gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); vTextureCoord = aTextureCoord; }"],
10
- "data": { "depth": false,
11
- "downSample": 0.5,
12
- "isBackground": true,
13
- "uniforms": {} },
14
- "isMask": 0,
15
- "layerType": "effect",
16
- "mouseMomentum": 0,
17
- "speed": 0.25,
18
- "texture": false,
19
- "trackAxes": "xy",
20
- "trackMouse": 0,
21
- "userDownsample": 1,
22
- "usesPingPong": false,
23
- "visible": true },{ "id": "effect1",
24
- "type": "aurora",
25
- "animating": true,
26
- "aspectRatio": 1,
27
- "breakpoints": [],
28
- "compiledFragmentShaders": ["#version 300 es\nprecision mediump float;in vec2 vTextureCoord; uniform sampler2D uTexture; uniform sampler2D uCustomTexture; uniform float uTime; uniform vec2 uMousePos; uniform vec2 uResolution; vec3 blend (int blendMode, vec3 src, vec3 dst) { return src + dst; } uvec2 pcg2d(uvec2 v) { v = v * 1664525u + 1013904223u; v.x += v.y * v.y * 1664525u + 1013904223u; v.y += v.x * v.x * 1664525u + 1013904223u; v ^= v >> 16; v.x += v.y * v.y * 1664525u + 1013904223u; v.y += v.x * v.x * 1664525u + 1013904223u; return v; }float randFibo(vec2 p) { uvec2 v = floatBitsToUint(p); v = pcg2d(v); uint r = v.x ^ v.y; return float(r) / float(0xffffffffu); }out vec4 fragColor;ivec2 customTexSize; float customTexAspect;const float PI = 3.14159265359; const float TAU = 6.28318530718;vec3 pal( in float t, in vec3 a, in vec3 b, in vec3 c, in vec3 d ) { return a + b*cos( TAU*(c*t+d) ); }vec3 Tonemap_Reinhard(vec3 x) { x *= 4.; return x / (1.0 + x); }float sdLine(vec2 p, float r) { float halfLen = r * 2.; vec2 a = vec2(-halfLen, 0.0); vec2 b = vec2(halfLen, 0.0); vec2 pa = p - a; vec2 ba = b - a; float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0); return length(pa - ba * h); }float getSdf(vec2 st, float iter, float md) { return sdLine(st, 0.6000); }vec2 turb(vec2 pos, float t, float it, float md, vec2 mPos) { mat2 rot = mat2(0.6, -0.8, 0.8, 0.6); float freq = mix(2., 15., 1.0000); float amp = (1.0000) * md; float xp = 1.4; float time = t * 0.1 + 1.0000; for(float i = 0.; i < 4.; i++) { vec2 s = sin(freq * ((pos - mPos) * rot) + i * time + it); pos += amp * rot[0] * s / freq; rot *= mat2(0.6, -0.8, 0.8, 0.6); amp *= mix(1., max(s.y, s.x), 1.0000); freq *= xp; }return pos; }float luma(vec3 color) { return dot(color, vec3(0.299, 0.587, 0.114)); }const float ITERATIONS = 36.;void main() { vec2 uv = vTextureCoord; vec4 bg = texture(uTexture, uv);if(3 == 0) { customTexSize = textureSize(uCustomTexture, 0); customTexAspect = float(customTexSize.x) / float(customTexSize.y); } vec3 pp = vec3(0.); vec3 bloom = vec3(0.); float t = uTime * 0.5 + 1.0000; vec2 aspect = vec2(uResolution.x/uResolution.y, 1); vec2 mousePos = mix(vec2(0), uMousePos - 0.5, 0.0000); vec2 pos = (uv * aspect - vec2(0.48219454282701707, 0.5266824649520973) * aspect); float mDist = length(uv * aspect - uMousePos * aspect); float md = mix(1., smoothstep(1., 5., 1./mDist), 0.4900); float rotation = 0.0000 * -2.0 * 3.14159265359; mat2 rotMatrix = mat2(cos(rotation), -sin(rotation), sin(rotation), cos(rotation)); pos = rotMatrix * pos; float bm = 0.05; vec2 prevPos = turb(pos, t, 0. - 1./ITERATIONS, md, mousePos); float spacing = mix(1., TAU, 0.9500); float smoothing = 0.0000; for(float i = 1.; i < ITERATIONS + 1.; i++) { float iter = i/ITERATIONS; vec2 st = turb(pos, t, iter * spacing, md, mousePos); float d = abs(getSdf(st, iter, md)); float pd = distance(st, prevPos); prevPos = st; float dynamicBlur = exp2(pd * 2.0 * 1.4426950408889634) - 1.0; float ds = smoothstep(0., 0.0200 * bm + max(dynamicBlur * smoothing, 0.001), d); vec3 color = pal(iter * mix(0.1, 1.9, 1.0000) + 1.0000, vec3(0.5), vec3(0.5), vec3(1), vec3(1, 1, 1)); float invd = 1./max(d + dynamicBlur, 0.001); pp += (ds - 1.) * color; bloom += clamp(invd, 0., 250.) * color; }pp *= 1./ITERATIONS; bloom = bloom / (bloom + 2e4);vec3 color = (-pp + bloom * 3. * 0.5200); color *= 1.2; color += (randFibo(gl_FragCoord.xy) - 0.5) / 255.0; color = (Tonemap_Reinhard(color)); vec4 auroraColor = vec4(color, 1.); auroraColor.rgb = blend(1, bg.rgb, auroraColor.rgb);auroraColor = vec4(mix(bg.rgb, auroraColor.rgb, 1.0000), max(bg.a, luma(auroraColor.rgb))); fragColor = auroraColor;}"],
29
- "compiledVertexShaders": ["#version 300 es\nprecision mediump float;in vec3 aVertexPosition; in vec2 aTextureCoord;uniform mat4 uMVMatrix; uniform mat4 uPMatrix; uniform mat4 uTextureMatrix;out vec2 vTextureCoord; out vec3 vVertexPosition;void main() { gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; }"],
30
- "data": { "depth": false,
31
- "isBackground": false,
32
- "uniforms": {} },
33
- "isMask": 0,
34
- "layerType": "effect",
35
- "mouseMomentum": 0,
36
- "speed": 0.5,
37
- "texture": {
38
- "sampler": "uCustomTexture",
39
- "src": "https://assets.unicorn.studio/images/1R0Q8wV35bXicyo4Eb1I18L2huF2/remix_Vector_combined_1757156882690.png"
40
- },
41
- "trackAxes": "xy",
42
- "trackMouse": 0,
43
- "userDownsample": 1,
44
- "usesPingPong": false,
45
- "visible": true },{ "id": "effect2",
46
- "type": "aurora",
47
- "animating": true,
48
- "aspectRatio": 1,
49
- "breakpoints": [],
50
- "compiledFragmentShaders": ["#version 300 es\nprecision mediump float;in vec2 vTextureCoord; uniform sampler2D uTexture; uniform sampler2D uCustomTexture; uniform float uTime; uniform vec2 uMousePos; uniform vec2 uResolution; vec3 blend (int blendMode, vec3 src, vec3 dst) { return src + dst; } uvec2 pcg2d(uvec2 v) { v = v * 1664525u + 1013904223u; v.x += v.y * v.y * 1664525u + 1013904223u; v.y += v.x * v.x * 1664525u + 1013904223u; v ^= v >> 16; v.x += v.y * v.y * 1664525u + 1013904223u; v.y += v.x * v.x * 1664525u + 1013904223u; return v; }float randFibo(vec2 p) { uvec2 v = floatBitsToUint(p); v = pcg2d(v); uint r = v.x ^ v.y; return float(r) / float(0xffffffffu); }out vec4 fragColor;ivec2 customTexSize; float customTexAspect;const float PI = 3.14159265359; const float TAU = 6.28318530718;vec3 pal( in float t, in vec3 a, in vec3 b, in vec3 c, in vec3 d ) { return a + b*cos( TAU*(c*t+d) ); }vec3 Tonemap_Reinhard(vec3 x) { x *= 4.; return x / (1.0 + x); }float sdLine(vec2 p, float r) { float halfLen = r * 2.; vec2 a = vec2(-halfLen, 0.0); vec2 b = vec2(halfLen, 0.0); vec2 pa = p - a; vec2 ba = b - a; float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0); return length(pa - ba * h); }float getSdf(vec2 st, float iter, float md) { return sdLine(st, 0.6500); }vec2 turb(vec2 pos, float t, float it, float md, vec2 mPos) { mat2 rot = mat2(0.6, -0.8, 0.8, 0.6); float freq = mix(2., 15., 1.0000); float amp = (1.0000) * md; float xp = 1.4; float time = t * 0.1 + 0.5200; for(float i = 0.; i < 4.; i++) { vec2 s = sin(freq * ((pos - mPos) * rot) + i * time + it); pos += amp * rot[0] * s / freq; rot *= mat2(0.6, -0.8, 0.8, 0.6); amp *= mix(1., max(s.y, s.x), 1.0000); freq *= xp; }return pos; }float luma(vec3 color) { return dot(color, vec3(0.299, 0.587, 0.114)); }const float ITERATIONS = 36.;void main() { vec2 uv = vTextureCoord; vec4 bg = texture(uTexture, uv);if(3 == 0) { customTexSize = textureSize(uCustomTexture, 0); customTexAspect = float(customTexSize.x) / float(customTexSize.y); } vec3 pp = vec3(0.); vec3 bloom = vec3(0.); float t = uTime * 0.5 + 0.5200; vec2 aspect = vec2(uResolution.x/uResolution.y, 1); vec2 mousePos = mix(vec2(0), uMousePos - 0.5, 0.0000); vec2 pos = (uv * aspect - vec2(0.5, 0.4394100039971036) * aspect); float mDist = length(uv * aspect - uMousePos * aspect); float md = mix(1., smoothstep(1., 5., 1./mDist), 0.4700); float rotation = 0.0000 * -2.0 * 3.14159265359; mat2 rotMatrix = mat2(cos(rotation), -sin(rotation), sin(rotation), cos(rotation)); pos = rotMatrix * pos; float bm = 0.05; vec2 prevPos = turb(pos, t, 0. - 1./ITERATIONS, md, mousePos); float spacing = mix(1., TAU, 1.0000); float smoothing = 0.0000; for(float i = 1.; i < ITERATIONS + 1.; i++) { float iter = i/ITERATIONS; vec2 st = turb(pos, t, iter * spacing, md, mousePos); float d = abs(getSdf(st, iter, md)); float pd = distance(st, prevPos); prevPos = st; float dynamicBlur = exp2(pd * 2.0 * 1.4426950408889634) - 1.0; float ds = smoothstep(0., 0.0200 * bm + max(dynamicBlur * smoothing, 0.001), d); vec3 color = pal(iter * mix(0.1, 1.9, 1.0000) + 1.0000, vec3(0.5), vec3(0.5), vec3(1), vec3(1, 1, 1)); float invd = 1./max(d + dynamicBlur, 0.001); pp += (ds - 1.) * color; bloom += clamp(invd, 0., 250.) * color; }pp *= 1./ITERATIONS; bloom = bloom / (bloom + 2e4);vec3 color = (-pp + bloom * 3. * 0.4000); color *= 1.2; color += (randFibo(gl_FragCoord.xy) - 0.5) / 255.0; color = (Tonemap_Reinhard(color)); vec4 auroraColor = vec4(color, 1.); auroraColor.rgb = blend(1, bg.rgb, auroraColor.rgb);auroraColor = vec4(mix(bg.rgb, auroraColor.rgb, 1.0000), max(bg.a, luma(auroraColor.rgb))); fragColor = auroraColor;}"],
51
- "compiledVertexShaders": ["#version 300 es\nprecision mediump float;in vec3 aVertexPosition; in vec2 aTextureCoord;uniform mat4 uMVMatrix; uniform mat4 uPMatrix; uniform mat4 uTextureMatrix;out vec2 vTextureCoord; out vec3 vVertexPosition;void main() { gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; }"],
52
- "data": { "depth": false,
53
- "isBackground": false,
54
- "uniforms": {} },
55
- "isMask": 0,
56
- "layerType": "effect",
57
- "mouseMomentum": 0.11,
58
- "speed": 0.5,
59
- "texture": { "sampler": "uCustomTexture",
60
- "src": "https://assets.unicorn.studio/images/1R0Q8wV35bXicyo4Eb1I18L2huF2/remix_Vector_combined_1757156882690.png" },
61
- "trackAxes": "xy",
62
- "trackMouse": 0,
63
- "userDownsample": 1,
64
- "usesPingPong": false,
65
- "visible": true },{ "id": "effect3",
66
- "type": "sine",
67
- "animating": true,
68
- "aspectRatio": 1,
69
- "breakpoints": [],
70
- "compiledFragmentShaders": ["#version 300 es\nprecision mediump float;in vec2 vTextureCoord; in vec3 vVertexPosition; uniform sampler2D uTexture; uniform float uTime; uniform vec2 uMousePos; uniform vec2 uResolution; float ease (int easingFunc, float t) { return t; } out vec4 fragColor;const float PI = 3.141592;void main() { vec2 uv = vTextureCoord; vec2 waveCoord = vTextureCoord.xy * 2.0 - 1.0; float thirdPI = PI * 0.3333; float time = uTime * 0.25; float frequency = 20.0 * 1.0000; float amp = 0.1700 * 0.2;float waveX = sin((waveCoord.y + vec2(0.5, 0.5).y) * frequency + (time * thirdPI)) * amp; float waveY = sin((waveCoord.x - vec2(0.5, 0.5).x) * frequency + (time * thirdPI)) * amp; waveCoord.xy += vec2(mix(waveX, 0., 0.8500), mix(0., waveY, 0.8500));vec2 finalUV = waveCoord * 0.5 + 0.5; float aspectRatio = uResolution.x/uResolution.y;vec2 mPos = vec2(0.5, 0.5) + mix(vec2(0), (uMousePos-0.5), 0.0000); vec2 pos = mix(vec2(0.5, 0.5), mPos, floor(1.0000)); float dist = ease(0, max(0.,1.-distance(uv * vec2(aspectRatio, 1), mPos * vec2(aspectRatio, 1)) * 4. * (1. - 1.0000)));if (0 == 1) { dist = max(0., (0.5 - dist)); } uv = mix(uv, finalUV, dist);vec4 color = texture(uTexture, uv); fragColor = color;}"],
71
- "compiledVertexShaders": ["#version 300 es\nprecision mediump float;in vec3 aVertexPosition; in vec2 aTextureCoord;uniform mat4 uMVMatrix; uniform mat4 uPMatrix; uniform mat4 uTextureMatrix;out vec2 vTextureCoord; out vec3 vVertexPosition;void main() { gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; }"],
72
- "data": { "depth": false,
73
- "isBackground": false,
74
- "uniforms": {} },
75
- "isMask": 0,
76
- "layerType": "effect",
77
- "mouseMomentum": 0.24,
78
- "speed": 0.13,
79
- "texture": false,
80
- "trackAxes": "xy",
81
- "trackMouse": 0,
82
- "userDownsample": 1,
83
- "usesPingPong": false,
84
- "visible": true }],
85
- "options": { "name": "Modern Hero Background (Remix)",
86
- "dpi": 1.5,
87
- "fps": 30,
88
- "includeLogo": false,
89
- "isProduction": false,
90
- "scale": 1 } }
@@ -1,5 +0,0 @@
1
- <svg width='120' height='120' viewBox='0 0 120 120' fill='none' xmlns='http://www.w3.org/2000/svg'>
2
- <path d='M26.0929 60.3388C35.1167 50.9539 50.0456 50.6555 59.4377 59.6724C68.8297 68.6893 69.1283 83.607 60.1046 92.9919L50.4749 103.007C41.4511 112.392 26.5222 112.69 17.1301 103.673C7.73804 94.6566 7.43946 79.7389 16.4632 70.354L26.0929 60.3388Z' fill='black'/>
3
- <path opacity='0.67' d='M103.448 69.7301C112.493 78.8993 112.504 93.6591 103.416 102.84C94.2574 112.093 79.3256 112.176 70.0653 103.024L16.7676 50.3499L16.5522 50.1342C7.50656 40.965 7.49662 26.2053 16.5839 17.0243C25.7427 7.77101 40.6745 7.68864 49.9348 16.8405L103.232 69.5146L103.448 69.7301Z' fill='black'/>
4
- <path opacity='0.42' d='M69.1319 17.1359C78.1557 7.75106 93.0845 7.45268 102.477 16.4695C111.869 25.4864 112.167 40.4041 103.143 49.789L93.5137 59.8042C93.4868 59.8323 93.4592 59.8598 93.4322 59.8877L59.9194 26.7171L69.1319 17.1359Z' fill='black'/>
5
- </svg>
package/dist/favicon.svg DELETED
@@ -1,5 +0,0 @@
1
- <svg width='120' height='120' viewBox='0 0 120 120' fill='none' xmlns='http://www.w3.org/2000/svg'>
2
- <path d='M26.0929 60.3388C35.1167 50.9539 50.0456 50.6555 59.4377 59.6724C68.8297 68.6893 69.1283 83.607 60.1046 92.9919L50.4749 103.007C41.4511 112.392 26.5222 112.69 17.1301 103.673C7.73804 94.6566 7.43946 79.7389 16.4632 70.354L26.0929 60.3388Z' fill='white'/>
3
- <path opacity='0.67' d='M103.448 69.7301C112.493 78.8993 112.504 93.6591 103.416 102.84C94.2574 112.093 79.3256 112.176 70.0653 103.024L16.7676 50.3499L16.5522 50.1342C7.50656 40.965 7.49662 26.2053 16.5839 17.0243C25.7427 7.77101 40.6745 7.68864 49.9348 16.8405L103.232 69.5146L103.448 69.7301Z' fill='white'/>
4
- <path opacity='0.42' d='M69.1319 17.1359C78.1557 7.75106 93.0845 7.45268 102.477 16.4695C111.869 25.4864 112.167 40.4041 103.143 49.789L93.5137 59.8042C93.4868 59.8323 93.4592 59.8598 93.4322 59.8877L59.9194 26.7171L69.1319 17.1359Z' fill='white'/>
5
- </svg>
@@ -1,3 +0,0 @@
1
- import { ReactElement } from 'react';
2
- export declare const AuthCard: () => ReactElement;
3
- //# sourceMappingURL=AuthCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthCard.d.ts","sourceRoot":"","sources":["../../../src/features/AuthCard/AuthCard.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAKnD,eAAO,MAAM,QAAQ,QAAO,YA6M3B,CAAA"}
@@ -1,9 +0,0 @@
1
- import { ReactElement } from 'react';
2
- type AuthMode = 'signin' | 'signup';
3
- interface AuthToggleProps {
4
- mode: AuthMode;
5
- onModeChange: (mode: AuthMode) => void;
6
- }
7
- export declare const AuthToggle: ({ mode, onModeChange }: AuthToggleProps) => ReactElement;
8
- export {};
9
- //# sourceMappingURL=AuthToggle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthToggle.d.ts","sourceRoot":"","sources":["../../../src/features/AuthCard/AuthToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEnC,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAA;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CACvC;AAED,eAAO,MAAM,UAAU,GAAI,wBAAwB,eAAe,KAAG,YAmBpE,CAAA"}
@@ -1,20 +0,0 @@
1
- import "../../styles/main.css";
2
- import { jsxs as r, jsx as e } from "react/jsx-runtime";
3
- import "react";
4
- const s = ({ mode: t, onModeChange: i }) => /* @__PURE__ */ r("div", { className: "relative flex gap-2 mb-4 p-1 rounded-lg bg-white/5", children: [
5
- /* @__PURE__ */ e(
6
- "div",
7
- {
8
- className: "absolute top-1 bottom-1 rounded-md transition-all duration-400 ease-out bg-white/5",
9
- style: {
10
- left: t === "signin" ? "4px" : "calc(50% + 2px)",
11
- width: "calc(50% - 6px)"
12
- }
13
- }
14
- ),
15
- /* @__PURE__ */ e("button", { onClick: () => i("signin"), type: "button", className: `relative z-10 flex-1 py-2.5 rounded-md text-sm font-medium cursor-pointer transition-colors duration-500 ${t === "signin" ? "text-text-primary" : "text-text-secondary hover:text-text-primary"}`, children: "Sign in" }),
16
- /* @__PURE__ */ e("button", { onClick: () => i("signup"), type: "button", className: `relative z-10 flex-1 py-2.5 rounded-md text-sm font-medium cursor-pointer transition-colors duration-500 ${t === "signup" ? "text-text-primary" : "text-text-secondary hover:text-text-primary"}`, children: "Sign up" })
17
- ] });
18
- export {
19
- s as AuthToggle
20
- };
@@ -1,11 +0,0 @@
1
- import { ReactElement } from 'react';
2
- interface ForgotPasswordEmailFormProps {
3
- email: string;
4
- onEmailChange: (email: string) => void;
5
- onSubmit: () => void;
6
- onBack: () => void;
7
- isSubmitting: boolean;
8
- }
9
- export declare const ForgotPasswordEmailForm: ({ email, onEmailChange, onSubmit, onBack, isSubmitting }: ForgotPasswordEmailFormProps) => ReactElement;
10
- export {};
11
- //# sourceMappingURL=ForgotPasswordEmailForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForgotPasswordEmailForm.d.ts","sourceRoot":"","sources":["../../../src/features/AuthCard/ForgotPasswordEmailForm.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,UAAU,4BAA4B;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,uBAAuB,GAAI,0DAA0D,4BAA4B,KAAG,YA2BhI,CAAA"}
@@ -1,86 +0,0 @@
1
- import "../../styles/main.css";
2
- import { jsxs as t, jsx as o } from "react/jsx-runtime";
3
- import { Button as i } from "../../Button.js";
4
- import "../../Icons/AnalyzeIcon.js";
5
- import "../../Icons/AnnotationsIcon.js";
6
- import "../../Icons/ApprovedIcon.js";
7
- import "../../Icons/CalendarIcon.js";
8
- import "../../Icons/CheckCircleIcon.js";
9
- import "../../Icons/CheckSquareIcon.js";
10
- import "../../Icons/CheckmarkIcon.js";
11
- import "../../Icons/ChevronDownIcon.js";
12
- import "../../Icons/ChevronUpIcon.js";
13
- import "../../Icons/ClockIcon.js";
14
- import "../../Icons/CloseCircleIcon.js";
15
- import "../../Icons/CloseIcon.js";
16
- import "../../Icons/DashboardIcon.js";
17
- import "../../Icons/DatabaseIcon.js";
18
- import "../../Icons/DeleteIcon.js";
19
- import "../../Icons/DurationIcon.js";
20
- import { EmailIcon as l } from "../../Icons/EmailIcon.js";
21
- import "../../Icons/EraserIcon.js";
22
- import "../../Icons/ErrorIcon.js";
23
- import "../../Icons/EyeClosedIcon.js";
24
- import "../../Icons/EyeClosedIcon2.js";
25
- import "../../Icons/EyeOpenIcon.js";
26
- import "../../Icons/GoToFirstIcon.js";
27
- import "../../Icons/GoToLastIcon.js";
28
- import "../../Icons/HarmonicCursorsIcon.js";
29
- import "../../Icons/InfoIcon.js";
30
- import "../../Icons/LabelIcon.js";
31
- import "../../Icons/LassoIcon.js";
32
- import "../../Icons/LineToolIcon.js";
33
- import "../../Icons/LineToolIcon2.js";
34
- import "../../Icons/LiveViewIcon.js";
35
- import "../../Icons/LoaderIcon.js";
36
- import "../../Icons/LocationIcon.js";
37
- import "../../Icons/LogoutIcon.js";
38
- import "../../Icons/MessagesIcon.js";
39
- import "../../Icons/MetadataIcon.js";
40
- import "../../Icons/MinusIcon.js";
41
- import "../../Icons/OntologyIcon.js";
42
- import "../../Icons/PanelIconClose.js";
43
- import "../../Icons/PanelIconOpen.js";
44
- import "../../Icons/PlayIcon.js";
45
- import "../../Icons/PlusIcon.js";
46
- import "../../Icons/ResetIcon.js";
47
- import "../../Icons/ReviewedIcon.js";
48
- import "../../Icons/ScissorsIcon.js";
49
- import "../../Icons/SettingsIcon.js";
50
- import "../../Icons/SortAscendingIcon.js";
51
- import "../../Icons/SortDescendingIcon.js";
52
- import "../../Icons/StackIcon.js";
53
- import "../../Icons/StarIcon.js";
54
- import "../../Icons/TrashIcon.js";
55
- import "../../Icons/UndoIcon.js";
56
- import "../../Icons/UserIcon.js";
57
- import "../../Icons/WarningIcon.js";
58
- import "../../Icons/ZoomAllIcon.js";
59
- import "../../Icons/ZoomXIcon.js";
60
- import "../../Icons/ZoomYIcon.js";
61
- import { Input as s } from "../../Input.js";
62
- import { Label as c } from "../../Label.js";
63
- import "react";
64
- import { m as n } from "../../proxy-C9AqCss6.js";
65
- const go = ({ email: m, onEmailChange: p, onSubmit: e, onBack: a, isSubmitting: r }) => /* @__PURE__ */ t("div", { className: "space-y-6", children: [
66
- /* @__PURE__ */ t("div", { children: [
67
- /* @__PURE__ */ o(c, { htmlFor: "reset-email", className: "block mb-2", children: "Email address" }),
68
- /* @__PURE__ */ o(
69
- s,
70
- {
71
- type: "email",
72
- id: "reset-email",
73
- value: m,
74
- onChange: p,
75
- className: "w-full px-4 py-3 pr-12 rounded-lg bg-white/5 border border-white/10 transition-all",
76
- placeholder: "you@example.com",
77
- endIcon: /* @__PURE__ */ o(l, { size: 22, className: "absolute right-4 top-1/2 -translate-y-1/2 transition-colors" })
78
- }
79
- )
80
- ] }),
81
- /* @__PURE__ */ o(n.div, { whileHover: { scale: r ? 1 : 1.02 }, whileTap: { scale: r ? 1 : 0.98 }, children: /* @__PURE__ */ o(i, { type: "button", onClick: e, disabled: r, state: r ? "loading" : "default", label: "Send verification code", className: "w-full bg-accent" }) }),
82
- /* @__PURE__ */ o("div", { className: "flex justify-center", children: /* @__PURE__ */ o(i, { type: "button", label: "Back to sign in", variant: "ghost", className: "text-sm", onClick: a }) })
83
- ] });
84
- export {
85
- go as ForgotPasswordEmailForm
86
- };
@@ -1,11 +0,0 @@
1
- import { ReactElement } from 'react';
2
- interface ForgotPasswordResetFormProps {
3
- otp: string;
4
- onOtpChange: (otp: string) => void;
5
- onSubmit: () => void;
6
- onBack: () => void;
7
- isSubmitting: boolean;
8
- }
9
- export declare const ForgotPasswordResetForm: ({ otp, onOtpChange, onSubmit, onBack, isSubmitting }: ForgotPasswordResetFormProps) => ReactElement;
10
- export {};
11
- //# sourceMappingURL=ForgotPasswordResetForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForgotPasswordResetForm.d.ts","sourceRoot":"","sources":["../../../src/features/AuthCard/ForgotPasswordResetForm.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEnD,UAAU,4BAA4B;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,uBAAuB,GAAI,sDAAsD,4BAA4B,KAAG,YAqB5H,CAAA"}
@@ -1,21 +0,0 @@
1
- "use client";
2
- import "../../styles/main.css";
3
- import { jsxs as m, jsx as e } from "react/jsx-runtime";
4
- import { OTPInput as f } from "./OTPInput.js";
5
- import { PasswordInput as r } from "./PasswordInput.js";
6
- import { Button as a } from "../../Button.js";
7
- import { useState as s } from "react";
8
- import { m as h } from "../../proxy-C9AqCss6.js";
9
- const C = ({ otp: t, onOtpChange: l, onSubmit: n, onBack: d, isSubmitting: o }) => {
10
- const [i, w] = s(""), [c, p] = s("");
11
- return /* @__PURE__ */ m("div", { className: "space-y-6", children: [
12
- /* @__PURE__ */ e(f, { value: t, onChange: l, id: "otp", label: "Verification code", placeholder: "000000", maxLength: 6 }),
13
- /* @__PURE__ */ e(r, { value: i, onChange: w, id: "new-password", label: "New password", showStrength: !0, className: "w-full px-4 py-3 pr-12 rounded-lg bg-white/5 border border-white/10 transition-all" }),
14
- /* @__PURE__ */ e(r, { value: c, onChange: p, id: "confirm-new-password", label: "Confirm new password", className: "w-full px-4 py-3 pr-12 rounded-lg bg-white/5 border border-white/10 transition-all" }),
15
- /* @__PURE__ */ e(h.div, { whileHover: { scale: o ? 1 : 1.02 }, whileTap: { scale: o ? 1 : 0.98 }, children: /* @__PURE__ */ e(a, { type: "button", onClick: n, disabled: o, state: o ? "loading" : "default", label: "Reset password", className: "w-full bg-accent" }) }),
16
- /* @__PURE__ */ e("div", { className: "flex justify-center", children: /* @__PURE__ */ e(a, { type: "button", label: "Back to sign in", variant: "ghost", className: "text-sm", onClick: d }) })
17
- ] });
18
- };
19
- export {
20
- C as ForgotPasswordResetForm
21
- };
@@ -1,12 +0,0 @@
1
- import { ReactElement } from 'react';
2
- interface OTPInputProps {
3
- value: string;
4
- onChange: (value: string) => void;
5
- id?: string;
6
- label?: string;
7
- placeholder?: string;
8
- maxLength?: number;
9
- }
10
- export declare const OTPInput: ({ value, onChange, id, label, placeholder, maxLength }: OTPInputProps) => ReactElement;
11
- export {};
12
- //# sourceMappingURL=OTPInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OTPInput.d.ts","sourceRoot":"","sources":["../../../src/features/AuthCard/OTPInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,QAAQ,GAAI,wDAAqG,aAAa,KAAG,YAS7I,CAAA"}
@@ -1,12 +0,0 @@
1
- import "../../styles/main.css";
2
- import { jsxs as m, jsx as e } from "react/jsx-runtime";
3
- import { Input as p } from "../../Input.js";
4
- import { Label as c } from "../../Label.js";
5
- import "react";
6
- const f = ({ value: r, onChange: o, id: t = "otp", label: n = "Verification code", placeholder: i = "000000", maxLength: l = 6 }) => /* @__PURE__ */ m("div", { children: [
7
- /* @__PURE__ */ e(c, { htmlFor: t, className: "block mb-2", children: n }),
8
- /* @__PURE__ */ e(p, { type: "text", id: t, value: r, onChange: (a) => o(a.target.value), className: "w-full px-4 py-3 rounded-lg bg-white/5 border border-white/10 transition-all text-center tracking-widest text-lg font-mono", placeholder: i, maxLength: l })
9
- ] });
10
- export {
11
- f as OTPInput
12
- };
@@ -1,13 +0,0 @@
1
- import { ReactElement } from 'react';
2
- interface PasswordInputProps {
3
- value: string;
4
- onChange: (value: string) => void;
5
- id: string;
6
- label: string;
7
- placeholder?: string;
8
- showStrength?: boolean;
9
- className?: string;
10
- }
11
- export declare const PasswordInput: ({ value, onChange, id, label, placeholder, showStrength, className }: PasswordInputProps) => ReactElement;
12
- export {};
13
- //# sourceMappingURL=PasswordInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PasswordInput.d.ts","sourceRoot":"","sources":["../../../src/features/AuthCard/PasswordInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEnD,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,aAAa,GAAI,sEAAgG,kBAAkB,KAAG,YAuClJ,CAAA"}