@salesmind-ai/design-system 0.3.0 → 0.3.2

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 (212) hide show
  1. package/README.md +32 -2
  2. package/dist/admin/index.cjs +68 -2928
  3. package/dist/admin/index.cjs.map +1 -1
  4. package/dist/admin/index.js +5 -2915
  5. package/dist/admin/index.js.map +1 -1
  6. package/dist/blog/index.cjs +53 -1064
  7. package/dist/blog/index.cjs.map +1 -1
  8. package/dist/blog/index.js +8 -1054
  9. package/dist/blog/index.js.map +1 -1
  10. package/dist/charts/index.cjs +46 -2694
  11. package/dist/charts/index.cjs.map +1 -1
  12. package/dist/charts/index.js +3 -2680
  13. package/dist/charts/index.js.map +1 -1
  14. package/dist/chunk-2GARWEJK.js +17 -0
  15. package/dist/chunk-2GARWEJK.js.map +1 -0
  16. package/dist/chunk-3NKRFUAR.js +37 -0
  17. package/dist/chunk-3NKRFUAR.js.map +1 -0
  18. package/dist/chunk-3TGSIILM.cjs +201 -0
  19. package/dist/chunk-3TGSIILM.cjs.map +1 -0
  20. package/dist/chunk-4GM5BGBN.cjs +801 -0
  21. package/dist/chunk-4GM5BGBN.cjs.map +1 -0
  22. package/dist/chunk-5LGDEZWY.cjs +2434 -0
  23. package/dist/chunk-5LGDEZWY.cjs.map +1 -0
  24. package/dist/chunk-6H4DSTXR.js +786 -0
  25. package/dist/chunk-6H4DSTXR.js.map +1 -0
  26. package/dist/chunk-6UNG76Y2.js +153 -0
  27. package/dist/chunk-6UNG76Y2.js.map +1 -0
  28. package/dist/chunk-7PX2AZ6Y.js +39 -0
  29. package/dist/chunk-7PX2AZ6Y.js.map +1 -0
  30. package/dist/chunk-B6AVAX4F.js +1415 -0
  31. package/dist/chunk-B6AVAX4F.js.map +1 -0
  32. package/dist/chunk-BILT5KD3.js +264 -0
  33. package/dist/chunk-BILT5KD3.js.map +1 -0
  34. package/dist/chunk-C2BCDNAV.js +24 -0
  35. package/dist/chunk-C2BCDNAV.js.map +1 -0
  36. package/dist/chunk-CH42VPWE.cjs +421 -0
  37. package/dist/chunk-CH42VPWE.cjs.map +1 -0
  38. package/dist/chunk-CJ2MKVAF.cjs +46 -0
  39. package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
  40. package/dist/chunk-DP74LUXG.cjs +98 -0
  41. package/dist/chunk-DP74LUXG.cjs.map +1 -0
  42. package/dist/chunk-E7D6EKJ4.cjs +44 -0
  43. package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
  44. package/dist/chunk-ECXBTUH6.cjs +584 -0
  45. package/dist/chunk-ECXBTUH6.cjs.map +1 -0
  46. package/dist/chunk-EFRAP5ES.js +157 -0
  47. package/dist/chunk-EFRAP5ES.js.map +1 -0
  48. package/dist/chunk-F6YYWMME.js +485 -0
  49. package/dist/chunk-F6YYWMME.js.map +1 -0
  50. package/dist/chunk-FAFAP4L5.js +183 -0
  51. package/dist/chunk-FAFAP4L5.js.map +1 -0
  52. package/dist/chunk-GUZIMHWS.js +1608 -0
  53. package/dist/chunk-GUZIMHWS.js.map +1 -0
  54. package/dist/chunk-H2Y6BSTL.cjs +69 -0
  55. package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
  56. package/dist/chunk-HN4PHABT.js +126 -0
  57. package/dist/chunk-HN4PHABT.js.map +1 -0
  58. package/dist/chunk-HRENHNDJ.js +211 -0
  59. package/dist/chunk-HRENHNDJ.js.map +1 -0
  60. package/dist/chunk-I75BFEYT.cjs +2561 -0
  61. package/dist/chunk-I75BFEYT.cjs.map +1 -0
  62. package/dist/chunk-IFRATNLU.js +562 -0
  63. package/dist/chunk-IFRATNLU.js.map +1 -0
  64. package/dist/chunk-IYPXJ6YC.cjs +69 -0
  65. package/dist/chunk-IYPXJ6YC.cjs.map +1 -0
  66. package/dist/chunk-JPJN4YBC.js +409 -0
  67. package/dist/chunk-JPJN4YBC.js.map +1 -0
  68. package/dist/chunk-KBA2LFBG.js +62 -0
  69. package/dist/chunk-KBA2LFBG.js.map +1 -0
  70. package/dist/chunk-KCKUSU2M.cjs +166 -0
  71. package/dist/chunk-KCKUSU2M.cjs.map +1 -0
  72. package/dist/chunk-KJ2OXQF4.js +287 -0
  73. package/dist/chunk-KJ2OXQF4.js.map +1 -0
  74. package/dist/chunk-KNQEIU7O.cjs +1202 -0
  75. package/dist/chunk-KNQEIU7O.cjs.map +1 -0
  76. package/dist/chunk-KVGSVGRK.cjs +569 -0
  77. package/dist/chunk-KVGSVGRK.cjs.map +1 -0
  78. package/dist/chunk-L352JRV6.cjs +105 -0
  79. package/dist/chunk-L352JRV6.cjs.map +1 -0
  80. package/dist/chunk-LJADZITX.cjs +298 -0
  81. package/dist/chunk-LJADZITX.cjs.map +1 -0
  82. package/dist/chunk-LMJPWXTZ.cjs +194 -0
  83. package/dist/chunk-LMJPWXTZ.cjs.map +1 -0
  84. package/dist/chunk-LOWEAQST.js +701 -0
  85. package/dist/chunk-LOWEAQST.js.map +1 -0
  86. package/dist/chunk-MDB2WCRQ.cjs +137 -0
  87. package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
  88. package/dist/chunk-MQDEE7HC.cjs +283 -0
  89. package/dist/chunk-MQDEE7HC.cjs.map +1 -0
  90. package/dist/chunk-MQRB634A.cjs +34 -0
  91. package/dist/chunk-MQRB634A.cjs.map +1 -0
  92. package/dist/chunk-MTI27RDV.js +185 -0
  93. package/dist/chunk-MTI27RDV.js.map +1 -0
  94. package/dist/chunk-MU6GW5ZV.js +2317 -0
  95. package/dist/chunk-MU6GW5ZV.js.map +1 -0
  96. package/dist/chunk-NN3TUHIH.js +28 -0
  97. package/dist/chunk-NN3TUHIH.js.map +1 -0
  98. package/dist/chunk-NT4LBP7D.cjs +111 -0
  99. package/dist/chunk-NT4LBP7D.cjs.map +1 -0
  100. package/dist/chunk-OLV7OD3X.cjs +502 -0
  101. package/dist/chunk-OLV7OD3X.cjs.map +1 -0
  102. package/dist/chunk-OXNXEQY7.js +2538 -0
  103. package/dist/chunk-OXNXEQY7.js.map +1 -0
  104. package/dist/chunk-P5BOFE5A.js +546 -0
  105. package/dist/chunk-P5BOFE5A.js.map +1 -0
  106. package/dist/chunk-Q2MFGYTE.cjs +1449 -0
  107. package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
  108. package/dist/chunk-Q75DBVDY.cjs +68 -0
  109. package/dist/chunk-Q75DBVDY.cjs.map +1 -0
  110. package/dist/chunk-REQ5Q6ZI.js +1022 -0
  111. package/dist/chunk-REQ5Q6ZI.js.map +1 -0
  112. package/dist/chunk-SICKWUWB.js +62 -0
  113. package/dist/chunk-SICKWUWB.js.map +1 -0
  114. package/dist/chunk-T343CCH5.js +1190 -0
  115. package/dist/chunk-T343CCH5.js.map +1 -0
  116. package/dist/chunk-TEC62D4A.cjs +1624 -0
  117. package/dist/chunk-TEC62D4A.cjs.map +1 -0
  118. package/dist/chunk-TW5JB35D.js +2122 -0
  119. package/dist/chunk-TW5JB35D.js.map +1 -0
  120. package/dist/chunk-VC5LMUVQ.cjs +20 -0
  121. package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
  122. package/dist/chunk-VM7WFMKI.cjs +76 -0
  123. package/dist/chunk-VM7WFMKI.cjs.map +1 -0
  124. package/dist/chunk-W2WTP6HS.cjs +233 -0
  125. package/dist/chunk-W2WTP6HS.cjs.map +1 -0
  126. package/dist/chunk-WH7PYHZY.cjs +35 -0
  127. package/dist/chunk-WH7PYHZY.cjs.map +1 -0
  128. package/dist/chunk-XQZVY7JJ.cjs +717 -0
  129. package/dist/chunk-XQZVY7JJ.cjs.map +1 -0
  130. package/dist/chunk-XU3OMQ7V.js +98 -0
  131. package/dist/chunk-XU3OMQ7V.js.map +1 -0
  132. package/dist/chunk-XWPDRMZG.js +62 -0
  133. package/dist/chunk-XWPDRMZG.js.map +1 -0
  134. package/dist/chunk-Y3CPKNB7.js +67 -0
  135. package/dist/chunk-Y3CPKNB7.js.map +1 -0
  136. package/dist/chunk-YNVRDD2P.js +98 -0
  137. package/dist/chunk-YNVRDD2P.js.map +1 -0
  138. package/dist/chunk-YSYR54XR.js +92 -0
  139. package/dist/chunk-YSYR54XR.js.map +1 -0
  140. package/dist/chunk-YTYDQBVY.cjs +162 -0
  141. package/dist/chunk-YTYDQBVY.cjs.map +1 -0
  142. package/dist/chunk-ZDLOA2UT.cjs +1042 -0
  143. package/dist/chunk-ZDLOA2UT.cjs.map +1 -0
  144. package/dist/chunk-ZWUKRCOJ.cjs +2162 -0
  145. package/dist/chunk-ZWUKRCOJ.cjs.map +1 -0
  146. package/dist/core/index.cjs +807 -4333
  147. package/dist/core/index.cjs.map +1 -1
  148. package/dist/core/index.js +14 -4130
  149. package/dist/core/index.js.map +1 -1
  150. package/dist/i18n/index.cjs +86 -558
  151. package/dist/i18n/index.cjs.map +1 -1
  152. package/dist/i18n/index.js +1 -544
  153. package/dist/i18n/index.js.map +1 -1
  154. package/dist/index.cjs +1432 -17139
  155. package/dist/index.cjs.map +1 -1
  156. package/dist/index.css +11 -7
  157. package/dist/index.css.map +1 -1
  158. package/dist/index.js +31 -16784
  159. package/dist/index.js.map +1 -1
  160. package/dist/marketing/index.cjs +142 -3072
  161. package/dist/marketing/index.cjs.map +1 -1
  162. package/dist/marketing/index.js +11 -3042
  163. package/dist/marketing/index.js.map +1 -1
  164. package/dist/motion/index.cjs +26 -1222
  165. package/dist/motion/index.cjs.map +1 -1
  166. package/dist/motion/index.js +2 -1215
  167. package/dist/motion/index.js.map +1 -1
  168. package/dist/nav/index.cjs +101 -1518
  169. package/dist/nav/index.cjs.map +1 -1
  170. package/dist/nav/index.js +4 -1498
  171. package/dist/nav/index.js.map +1 -1
  172. package/dist/report/index.cjs +171 -2403
  173. package/dist/report/index.cjs.map +1 -1
  174. package/dist/report/index.js +3 -2363
  175. package/dist/report/index.js.map +1 -1
  176. package/dist/sections/index.cjs +28 -378
  177. package/dist/sections/index.cjs.map +1 -1
  178. package/dist/sections/index.css +1 -4
  179. package/dist/sections/index.css.map +1 -1
  180. package/dist/sections/index.js +4 -372
  181. package/dist/sections/index.js.map +1 -1
  182. package/dist/social-proof/index.cjs +53 -1249
  183. package/dist/social-proof/index.cjs.map +1 -1
  184. package/dist/social-proof/index.css +10 -3
  185. package/dist/social-proof/index.css.map +1 -1
  186. package/dist/social-proof/index.js +6 -1234
  187. package/dist/social-proof/index.js.map +1 -1
  188. package/dist/theme/index.cjs +38 -565
  189. package/dist/theme/index.cjs.map +1 -1
  190. package/dist/theme/index.js +2 -555
  191. package/dist/theme/index.js.map +1 -1
  192. package/dist/web/client/index.cjs +48 -0
  193. package/dist/web/client/index.cjs.map +1 -0
  194. package/dist/web/client/index.css +456 -0
  195. package/dist/web/client/index.css.map +1 -0
  196. package/dist/web/client/index.d.cts +172 -0
  197. package/dist/web/client/index.d.ts +172 -0
  198. package/dist/web/client/index.js +7 -0
  199. package/dist/web/client/index.js.map +1 -0
  200. package/dist/web/index.cjs +158 -1346
  201. package/dist/web/index.cjs.map +1 -1
  202. package/dist/web/index.d.cts +5 -893
  203. package/dist/web/index.d.ts +5 -893
  204. package/dist/web/index.js +9 -1305
  205. package/dist/web/index.js.map +1 -1
  206. package/dist/web/server/index.cjs +32 -0
  207. package/dist/web/server/index.cjs.map +1 -0
  208. package/dist/web/server/index.d.cts +725 -0
  209. package/dist/web/server/index.d.ts +725 -0
  210. package/dist/web/server/index.js +3 -0
  211. package/dist/web/server/index.js.map +1 -0
  212. package/package.json +14 -1
@@ -0,0 +1,2538 @@
1
+ import { Checkbox } from './chunk-7PX2AZ6Y.js';
2
+ import { TextField } from './chunk-3NKRFUAR.js';
3
+ import { Button } from './chunk-SICKWUWB.js';
4
+ import { OutboundLink } from './chunk-KJ2OXQF4.js';
5
+ import React4, { useState, useEffect, useMemo } from 'react';
6
+ import clsx4 from 'clsx';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ var Sidebar = React4.forwardRef(
10
+ ({ position = "left", width = 280, collapsed = false, className, children }, ref) => {
11
+ const style = {
12
+ "--sidebar-width": typeof width === "number" ? `${width}px` : width
13
+ };
14
+ return /* @__PURE__ */ jsx(
15
+ "aside",
16
+ {
17
+ ref,
18
+ className: clsx4(
19
+ "ds-sidebar",
20
+ `ds-sidebar--${position}`,
21
+ collapsed && "ds-sidebar--collapsed",
22
+ className
23
+ ),
24
+ style,
25
+ children: /* @__PURE__ */ jsx("div", { className: "ds-sidebar__content", children })
26
+ }
27
+ );
28
+ }
29
+ );
30
+ Sidebar.displayName = "Sidebar";
31
+ var SidebarSection = React4.forwardRef(
32
+ ({ title, className, children }, ref) => {
33
+ return /* @__PURE__ */ jsxs("div", { ref, className: clsx4("ds-sidebar__section", className), children: [
34
+ title && /* @__PURE__ */ jsx("h3", { className: "ds-sidebar__section-title", children: title }),
35
+ children
36
+ ] });
37
+ }
38
+ );
39
+ SidebarSection.displayName = "SidebarSection";
40
+ var SidebarItem = React4.forwardRef(
41
+ ({ active = false, icon, onClick, className, children }, ref) => {
42
+ return /* @__PURE__ */ jsxs(
43
+ "button",
44
+ {
45
+ ref,
46
+ className: clsx4("ds-sidebar__item", active && "ds-sidebar__item--active", className),
47
+ onClick,
48
+ type: "button",
49
+ children: [
50
+ icon && /* @__PURE__ */ jsx("span", { className: "ds-sidebar__item-icon", children: icon }),
51
+ /* @__PURE__ */ jsx("span", { className: "ds-sidebar__item-label", children })
52
+ ]
53
+ }
54
+ );
55
+ }
56
+ );
57
+ SidebarItem.displayName = "SidebarItem";
58
+ var FloatingTabBar = React4.forwardRef(
59
+ ({ position = "bottom", className, children }, ref) => {
60
+ return /* @__PURE__ */ jsx(
61
+ "nav",
62
+ {
63
+ ref,
64
+ className: clsx4("ds-floating-tab-bar", `ds-floating-tab-bar--${position}`, className),
65
+ role: "tablist",
66
+ children
67
+ }
68
+ );
69
+ }
70
+ );
71
+ FloatingTabBar.displayName = "FloatingTabBar";
72
+ var TabItem = React4.forwardRef(
73
+ ({ active = false, icon, label, onClick, className }, ref) => {
74
+ return /* @__PURE__ */ jsxs(
75
+ "button",
76
+ {
77
+ ref,
78
+ className: clsx4("ds-tab-item", active && "ds-tab-item--active", className),
79
+ onClick,
80
+ role: "tab",
81
+ "aria-selected": active,
82
+ type: "button",
83
+ children: [
84
+ icon && /* @__PURE__ */ jsx("span", { className: "ds-tab-item__icon", children: icon }),
85
+ label && /* @__PURE__ */ jsx("span", { className: "ds-tab-item__label", children: label })
86
+ ]
87
+ }
88
+ );
89
+ }
90
+ );
91
+ TabItem.displayName = "TabItem";
92
+ var HomeIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
93
+ /* @__PURE__ */ jsx("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }),
94
+ /* @__PURE__ */ jsx("polyline", { points: "9,22 9,12 15,12 15,22" })
95
+ ] });
96
+ var ChartIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
97
+ /* @__PURE__ */ jsx("line", { x1: "18", y1: "20", x2: "18", y2: "10" }),
98
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "20", x2: "12", y2: "4" }),
99
+ /* @__PURE__ */ jsx("line", { x1: "6", y1: "20", x2: "6", y2: "14" })
100
+ ] });
101
+ var UsersIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
102
+ /* @__PURE__ */ jsx("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
103
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "7", r: "4" }),
104
+ /* @__PURE__ */ jsx("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
105
+ /* @__PURE__ */ jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
106
+ ] });
107
+ var SettingsIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
108
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" }),
109
+ /* @__PURE__ */ jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" })
110
+ ] });
111
+ var DEFAULT_NAV_ITEMS = [
112
+ { key: "dashboard", label: "Dashboard", icon: /* @__PURE__ */ jsx(HomeIcon, {}) },
113
+ { key: "analytics", label: "Analytics", icon: /* @__PURE__ */ jsx(ChartIcon, {}) },
114
+ { key: "contacts", label: "Contacts", icon: /* @__PURE__ */ jsx(UsersIcon, {}) },
115
+ { key: "settings", label: "Settings", icon: /* @__PURE__ */ jsx(SettingsIcon, {}) }
116
+ ];
117
+ function getNavFromDocument() {
118
+ if (typeof document === "undefined") return "left";
119
+ const nav = document.documentElement.getAttribute("data-nav");
120
+ if (nav === "left" || nav === "right" || nav === "bottom") {
121
+ return nav;
122
+ }
123
+ return "left";
124
+ }
125
+ var Shell = React4.forwardRef(
126
+ ({
127
+ layout,
128
+ className,
129
+ children,
130
+ navItems = DEFAULT_NAV_ITEMS,
131
+ activeNav = "dashboard",
132
+ onNavChange,
133
+ systemSectionTitle = "System"
134
+ }, ref) => {
135
+ const [computedLayout, setComputedLayout] = useState(
136
+ layout || getNavFromDocument()
137
+ );
138
+ useEffect(() => {
139
+ if (layout) {
140
+ setComputedLayout(layout);
141
+ return;
142
+ }
143
+ if (typeof document === "undefined") return;
144
+ const observer = new MutationObserver((mutations) => {
145
+ mutations.forEach((mutation) => {
146
+ if (mutation.type === "attributes" && mutation.attributeName === "data-nav") {
147
+ setComputedLayout(getNavFromDocument());
148
+ }
149
+ });
150
+ });
151
+ observer.observe(document.documentElement, {
152
+ attributes: true,
153
+ attributeFilter: ["data-nav"]
154
+ });
155
+ setComputedLayout(getNavFromDocument());
156
+ return () => observer.disconnect();
157
+ }, [layout]);
158
+ const handleNavClick = (key) => {
159
+ onNavChange?.(key);
160
+ };
161
+ return /* @__PURE__ */ jsxs(
162
+ "div",
163
+ {
164
+ ref,
165
+ className: clsx4("ds-shell", `ds-shell--${computedLayout}`, className),
166
+ "data-shell-layout": computedLayout,
167
+ children: [
168
+ (computedLayout === "left" || computedLayout === "right") && /* @__PURE__ */ jsxs(Sidebar, { position: computedLayout, children: [
169
+ /* @__PURE__ */ jsx(SidebarSection, { children: navItems.slice(0, 3).map((item) => /* @__PURE__ */ jsx(
170
+ SidebarItem,
171
+ {
172
+ icon: item.icon,
173
+ active: activeNav === item.key,
174
+ onClick: () => handleNavClick(item.key),
175
+ children: item.label
176
+ },
177
+ item.key
178
+ )) }),
179
+ navItems.length > 3 && /* @__PURE__ */ jsx(SidebarSection, { title: systemSectionTitle, children: navItems.slice(3).map((item) => /* @__PURE__ */ jsx(
180
+ SidebarItem,
181
+ {
182
+ icon: item.icon,
183
+ active: activeNav === item.key,
184
+ onClick: () => handleNavClick(item.key),
185
+ children: item.label
186
+ },
187
+ item.key
188
+ )) })
189
+ ] }),
190
+ computedLayout === "bottom" && /* @__PURE__ */ jsx(FloatingTabBar, { position: "bottom", children: navItems.map((item) => /* @__PURE__ */ jsx(
191
+ TabItem,
192
+ {
193
+ icon: item.icon,
194
+ label: item.label,
195
+ active: activeNav === item.key,
196
+ onClick: () => handleNavClick(item.key)
197
+ },
198
+ item.key
199
+ )) }),
200
+ /* @__PURE__ */ jsx("main", { className: "ds-shell__content", children })
201
+ ]
202
+ }
203
+ );
204
+ }
205
+ );
206
+ Shell.displayName = "Shell";
207
+ var DataTable = React4.forwardRef(
208
+ ({ className, children, ...props }, ref) => {
209
+ return /* @__PURE__ */ jsx("div", { className: "ds-data-table-container", children: /* @__PURE__ */ jsx("table", { ref, className: clsx4("ds-data-table", className), ...props, children }) });
210
+ }
211
+ );
212
+ DataTable.displayName = "DataTable";
213
+ var DataTableHeader = React4.forwardRef(({ className, ...props }, ref) => {
214
+ return /* @__PURE__ */ jsx("thead", { ref, className: clsx4("ds-data-table__header", className), ...props });
215
+ });
216
+ DataTableHeader.displayName = "DataTableHeader";
217
+ var DataTableBody = React4.forwardRef(({ className, ...props }, ref) => {
218
+ return /* @__PURE__ */ jsx("tbody", { ref, className: clsx4("ds-data-table__body", className), ...props });
219
+ });
220
+ DataTableBody.displayName = "DataTableBody";
221
+ var DataTableRow = React4.forwardRef(({ className, ...props }, ref) => {
222
+ return /* @__PURE__ */ jsx("tr", { ref, className: clsx4("ds-data-table__row", className), ...props });
223
+ });
224
+ DataTableRow.displayName = "DataTableRow";
225
+ var DataTableHead = React4.forwardRef(({ className, ...props }, ref) => {
226
+ return /* @__PURE__ */ jsx("th", { ref, className: clsx4("ds-data-table__head", className), ...props });
227
+ });
228
+ DataTableHead.displayName = "DataTableHead";
229
+ var DataTableCell = React4.forwardRef(({ className, ...props }, ref) => {
230
+ return /* @__PURE__ */ jsx("td", { ref, className: clsx4("ds-data-table__cell", className), ...props });
231
+ });
232
+ DataTableCell.displayName = "DataTableCell";
233
+ var defaultLoginLabels = {
234
+ continueWithGoogleLabel: "Continue with Google",
235
+ orContinueWithEmailLabel: "or continue with email",
236
+ emailPlaceholder: "you@company.com",
237
+ passwordPlaceholder: "Enter your password",
238
+ signInLabel: "Sign in",
239
+ doNotHaveAnAccountLabel: "Don't have an account?",
240
+ emailLabel: "Email",
241
+ passwordLabel: "Password",
242
+ rememberMeLabel: "Remember me",
243
+ forgotPasswordLabel: "Forgot password?",
244
+ signUpLabel: "Sign up",
245
+ trustedByLabel: "Trusted by 500+ sales teams worldwide"
246
+ };
247
+ var Login = ({
248
+ brandName,
249
+ tagline = "AI Sales Agents that automate your pipeline",
250
+ labels: customLabels,
251
+ showSocialLogin = true,
252
+ showRememberMe = true,
253
+ showForgotPassword = true,
254
+ showSignUp = true,
255
+ logo,
256
+ onSubmit,
257
+ onGoogleLogin,
258
+ onForgotPassword,
259
+ onSignUp,
260
+ isLoading = false,
261
+ error,
262
+ className,
263
+ style
264
+ }) => {
265
+ const l = { ...defaultLoginLabels, ...customLabels };
266
+ const [email, setEmail] = useState("");
267
+ const [password, setPassword] = useState("");
268
+ const [showPassword, setShowPassword] = useState(false);
269
+ const [rememberMe, setRememberMe] = useState(false);
270
+ const handleSubmit = (e) => {
271
+ e.preventDefault();
272
+ onSubmit?.({ email, password, rememberMe });
273
+ };
274
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-login", className), style, children: [
275
+ /* @__PURE__ */ jsxs("div", { className: "ds-login__background", children: [
276
+ /* @__PURE__ */ jsx("div", { className: "ds-login__accent ds-login__accent--1", "aria-hidden": "true" }),
277
+ /* @__PURE__ */ jsx("div", { className: "ds-login__accent ds-login__accent--2", "aria-hidden": "true" })
278
+ ] }),
279
+ /* @__PURE__ */ jsxs("div", { className: "ds-login__card", children: [
280
+ /* @__PURE__ */ jsxs("div", { className: "ds-login__header", children: [
281
+ logo ? /* @__PURE__ */ jsx("div", { className: "ds-login__logo", children: logo }) : /* @__PURE__ */ jsx("div", { className: "ds-login__logo ds-login__logo--default", children: /* @__PURE__ */ jsx("div", { className: "ds-login__logo-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
282
+ /* @__PURE__ */ jsx("rect", { width: "32", height: "32", rx: "8", fill: "url(#logo-gradient)" }),
283
+ /* @__PURE__ */ jsx(
284
+ "path",
285
+ {
286
+ d: "M10 16L14 20L22 12",
287
+ stroke: "white",
288
+ strokeWidth: "2.5",
289
+ strokeLinecap: "round",
290
+ strokeLinejoin: "round"
291
+ }
292
+ ),
293
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: "logo-gradient", x1: "0", y1: "0", x2: "32", y2: "32", children: [
294
+ /* @__PURE__ */ jsx("stop", { stopColor: "rgb(var(--accent-rgb))" }),
295
+ /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "rgb(var(--accent2-rgb))" })
296
+ ] }) })
297
+ ] }) }) }),
298
+ /* @__PURE__ */ jsx("h1", { className: "ds-login__title", children: brandName }),
299
+ /* @__PURE__ */ jsx("p", { className: "ds-login__tagline", children: tagline })
300
+ ] }),
301
+ error && /* @__PURE__ */ jsxs("div", { className: "ds-login__error", children: [
302
+ /* @__PURE__ */ jsxs(
303
+ "svg",
304
+ {
305
+ width: "16",
306
+ height: "16",
307
+ viewBox: "0 0 16 16",
308
+ fill: "none",
309
+ xmlns: "http://www.w3.org/2000/svg",
310
+ children: [
311
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
312
+ /* @__PURE__ */ jsx("path", { d: "M8 4.5V8.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
313
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })
314
+ ]
315
+ }
316
+ ),
317
+ /* @__PURE__ */ jsx("span", { children: error })
318
+ ] }),
319
+ showSocialLogin && /* @__PURE__ */ jsxs("div", { className: "ds-login__social", children: [
320
+ /* @__PURE__ */ jsxs(
321
+ "button",
322
+ {
323
+ type: "button",
324
+ className: "ds-login__social-btn",
325
+ onClick: onGoogleLogin,
326
+ disabled: isLoading,
327
+ children: [
328
+ /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", width: "20", height: "20", children: [
329
+ /* @__PURE__ */ jsx(
330
+ "path",
331
+ {
332
+ fill: "#4285F4",
333
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
334
+ }
335
+ ),
336
+ /* @__PURE__ */ jsx(
337
+ "path",
338
+ {
339
+ fill: "#34A853",
340
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
341
+ }
342
+ ),
343
+ /* @__PURE__ */ jsx(
344
+ "path",
345
+ {
346
+ fill: "#FBBC05",
347
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
348
+ }
349
+ ),
350
+ /* @__PURE__ */ jsx(
351
+ "path",
352
+ {
353
+ fill: "#EA4335",
354
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
355
+ }
356
+ )
357
+ ] }),
358
+ /* @__PURE__ */ jsx("span", { children: l.continueWithGoogleLabel })
359
+ ]
360
+ }
361
+ ),
362
+ /* @__PURE__ */ jsx("div", { className: "ds-login__divider", children: /* @__PURE__ */ jsx("span", { children: l.orContinueWithEmailLabel }) })
363
+ ] }),
364
+ /* @__PURE__ */ jsxs("form", { className: "ds-login__form", onSubmit: handleSubmit, children: [
365
+ /* @__PURE__ */ jsx("div", { className: "ds-login__field", children: /* @__PURE__ */ jsx(
366
+ TextField,
367
+ {
368
+ label: l.emailLabel,
369
+ type: "email",
370
+ placeholder: l.emailPlaceholder,
371
+ value: email,
372
+ onChange: (e) => setEmail(e.target.value),
373
+ disabled: isLoading,
374
+ autoComplete: "email"
375
+ }
376
+ ) }),
377
+ /* @__PURE__ */ jsx("div", { className: "ds-login__field", children: /* @__PURE__ */ jsx(
378
+ TextField,
379
+ {
380
+ label: l.passwordLabel,
381
+ type: showPassword ? "text" : "password",
382
+ placeholder: l.passwordPlaceholder,
383
+ value: password,
384
+ onChange: (e) => setPassword(e.target.value),
385
+ disabled: isLoading,
386
+ autoComplete: "current-password",
387
+ endAdornment: /* @__PURE__ */ jsx(
388
+ "button",
389
+ {
390
+ type: "button",
391
+ className: "ds-login__password-toggle",
392
+ onClick: () => setShowPassword(!showPassword),
393
+ "aria-label": showPassword ? "Hide password" : "Show password",
394
+ children: showPassword ? /* @__PURE__ */ jsxs(
395
+ "svg",
396
+ {
397
+ width: "20",
398
+ height: "20",
399
+ viewBox: "0 0 24 24",
400
+ fill: "none",
401
+ stroke: "currentColor",
402
+ strokeWidth: "2",
403
+ strokeLinecap: "round",
404
+ strokeLinejoin: "round",
405
+ children: [
406
+ /* @__PURE__ */ jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
407
+ /* @__PURE__ */ jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
408
+ ]
409
+ }
410
+ ) : /* @__PURE__ */ jsxs(
411
+ "svg",
412
+ {
413
+ width: "20",
414
+ height: "20",
415
+ viewBox: "0 0 24 24",
416
+ fill: "none",
417
+ stroke: "currentColor",
418
+ strokeWidth: "2",
419
+ strokeLinecap: "round",
420
+ strokeLinejoin: "round",
421
+ children: [
422
+ /* @__PURE__ */ jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
423
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
424
+ ]
425
+ }
426
+ )
427
+ }
428
+ )
429
+ }
430
+ ) }),
431
+ /* @__PURE__ */ jsxs("div", { className: "ds-login__options", children: [
432
+ showRememberMe && /* @__PURE__ */ jsx(
433
+ Checkbox,
434
+ {
435
+ label: l.rememberMeLabel,
436
+ checked: rememberMe,
437
+ onCheckedChange: (checked) => setRememberMe(checked === true),
438
+ disabled: isLoading
439
+ }
440
+ ),
441
+ showForgotPassword && /* @__PURE__ */ jsx(
442
+ "button",
443
+ {
444
+ type: "button",
445
+ className: "ds-login__link",
446
+ onClick: onForgotPassword,
447
+ disabled: isLoading,
448
+ children: l.forgotPasswordLabel
449
+ }
450
+ )
451
+ ] }),
452
+ /* @__PURE__ */ jsx(
453
+ Button,
454
+ {
455
+ type: "submit",
456
+ variant: "primary",
457
+ size: "lg",
458
+ disabled: isLoading || !email || !password,
459
+ className: "ds-login__submit",
460
+ children: isLoading ? /* @__PURE__ */ jsx("span", { className: "ds-login__spinner" }) : l.signInLabel
461
+ }
462
+ )
463
+ ] }),
464
+ showSignUp && /* @__PURE__ */ jsxs("div", { className: "ds-login__footer", children: [
465
+ /* @__PURE__ */ jsx("span", { children: l.doNotHaveAnAccountLabel }),
466
+ /* @__PURE__ */ jsx(
467
+ "button",
468
+ {
469
+ type: "button",
470
+ className: "ds-login__link ds-login__link--accent",
471
+ onClick: onSignUp,
472
+ disabled: isLoading,
473
+ children: l.signUpLabel
474
+ }
475
+ )
476
+ ] })
477
+ ] })
478
+ ] });
479
+ };
480
+ Login.displayName = "Login";
481
+ var defaultChangeEmailLabels = {
482
+ changeEmailTitle: "Change Email",
483
+ enterNewEmailAndCurrentPasswordTagline: "Enter you new email and the current password.",
484
+ newEmailLabel: "New Email *",
485
+ currentPasswordLabel: "Current Password *",
486
+ forgotPasswordButton: "Forgot password?",
487
+ continueButton: "Continue"
488
+ };
489
+ var ChangeEmail = ({
490
+ labels: customLabels,
491
+ logo,
492
+ onSubmit,
493
+ isLoading = false,
494
+ error,
495
+ className,
496
+ style
497
+ }) => {
498
+ const l = { ...defaultChangeEmailLabels, ...customLabels };
499
+ const [newEmail, setNewEmail] = useState("");
500
+ const [currentPassword, setCurrentPassword] = useState("");
501
+ const [showPassword, setShowPassword] = useState(false);
502
+ const handleSubmit = (e) => {
503
+ e.preventDefault();
504
+ onSubmit?.({ newEmail, currentPassword });
505
+ };
506
+ return /* @__PURE__ */ jsx("div", { className: clsx4("ds-change-email", className), style, children: /* @__PURE__ */ jsxs("div", { className: "ds-change-email__container", children: [
507
+ /* @__PURE__ */ jsx("div", { className: "ds-change-email__accent ds-change-email__accent--1", "aria-hidden": "true" }),
508
+ /* @__PURE__ */ jsx("div", { className: "ds-change-email__accent ds-change-email__accent--2", "aria-hidden": "true" }),
509
+ /* @__PURE__ */ jsxs("div", { className: "ds-change-email__card", children: [
510
+ /* @__PURE__ */ jsxs("div", { className: "ds-change-email__header", children: [
511
+ logo ? /* @__PURE__ */ jsx("div", { className: "ds-change-email__logo", children: logo }) : /* @__PURE__ */ jsx("div", { className: "ds-change-email__logo ds-change-email__logo--default", children: /* @__PURE__ */ jsx("div", { className: "ds-change-email__logo-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
512
+ /* @__PURE__ */ jsx("rect", { width: "32", height: "32", rx: "8", fill: "url(#logo-gradient)" }),
513
+ /* @__PURE__ */ jsx(
514
+ "path",
515
+ {
516
+ d: "M10 16L14 20L22 12",
517
+ stroke: "white",
518
+ strokeWidth: "2.5",
519
+ strokeLinecap: "round",
520
+ strokeLinejoin: "round"
521
+ }
522
+ ),
523
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: "logo-gradient", x1: "0", y1: "0", x2: "32", y2: "32", children: [
524
+ /* @__PURE__ */ jsx("stop", { stopColor: "rgb(var(--accent-rgb))" }),
525
+ /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "rgb(var(--accent2-rgb))" })
526
+ ] }) })
527
+ ] }) }) }),
528
+ /* @__PURE__ */ jsx("h1", { className: "ds-change-email__title", children: l.changeEmailTitle }),
529
+ /* @__PURE__ */ jsx("p", { className: "ds-change-email__tagline", children: l.enterNewEmailAndCurrentPasswordTagline })
530
+ ] }),
531
+ error && /* @__PURE__ */ jsxs("div", { className: "ds-change-email__error", children: [
532
+ /* @__PURE__ */ jsxs(
533
+ "svg",
534
+ {
535
+ width: "16",
536
+ height: "16",
537
+ viewBox: "0 0 16 16",
538
+ fill: "none",
539
+ xmlns: "http://www.w3.org/2000/svg",
540
+ children: [
541
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
542
+ /* @__PURE__ */ jsx("path", { d: "M8 4.5V8.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
543
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })
544
+ ]
545
+ }
546
+ ),
547
+ /* @__PURE__ */ jsx("span", { children: error })
548
+ ] }),
549
+ /* @__PURE__ */ jsxs("form", { className: "ds-change-email__form", onSubmit: handleSubmit, children: [
550
+ /* @__PURE__ */ jsx("div", { className: "ds-change-email__field", children: /* @__PURE__ */ jsx(
551
+ TextField,
552
+ {
553
+ label: l.newEmailLabel,
554
+ type: "email",
555
+ placeholder: "",
556
+ value: newEmail,
557
+ onChange: (e) => setNewEmail(e.target.value),
558
+ disabled: isLoading,
559
+ autoComplete: "email"
560
+ }
561
+ ) }),
562
+ /* @__PURE__ */ jsx("div", { className: "ds-change-email__field", children: /* @__PURE__ */ jsx(
563
+ TextField,
564
+ {
565
+ label: l.currentPasswordLabel,
566
+ type: showPassword ? "text" : "password",
567
+ placeholder: "",
568
+ value: currentPassword,
569
+ onChange: (e) => setCurrentPassword(e.target.value),
570
+ disabled: isLoading,
571
+ autoComplete: "current-password",
572
+ endAdornment: /* @__PURE__ */ jsx(
573
+ "button",
574
+ {
575
+ type: "button",
576
+ className: "ds-change-email__password-toggle",
577
+ onClick: () => setShowPassword(!showPassword),
578
+ "aria-label": showPassword ? "Hide password" : "Show password",
579
+ children: showPassword ? /* @__PURE__ */ jsxs(
580
+ "svg",
581
+ {
582
+ width: "20",
583
+ height: "20",
584
+ viewBox: "0 0 24 24",
585
+ fill: "none",
586
+ stroke: "currentColor",
587
+ strokeWidth: "2",
588
+ strokeLinecap: "round",
589
+ strokeLinejoin: "round",
590
+ children: [
591
+ /* @__PURE__ */ jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
592
+ /* @__PURE__ */ jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
593
+ ]
594
+ }
595
+ ) : /* @__PURE__ */ jsxs(
596
+ "svg",
597
+ {
598
+ width: "20",
599
+ height: "20",
600
+ viewBox: "0 0 24 24",
601
+ fill: "none",
602
+ stroke: "currentColor",
603
+ strokeWidth: "2",
604
+ strokeLinecap: "round",
605
+ strokeLinejoin: "round",
606
+ children: [
607
+ /* @__PURE__ */ jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
608
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
609
+ ]
610
+ }
611
+ )
612
+ }
613
+ )
614
+ }
615
+ ) }),
616
+ /* @__PURE__ */ jsx("div", { className: "ds-change-email__options", style: { display: "flex", justifyContent: "flex-end", marginTop: "-8px" }, children: /* @__PURE__ */ jsx(
617
+ "button",
618
+ {
619
+ type: "button",
620
+ className: "ds-change-email__link",
621
+ onClick: () => console.log("Forgot password clicked"),
622
+ disabled: isLoading,
623
+ style: {
624
+ background: "none",
625
+ border: "none",
626
+ color: "var(--text-secondary)",
627
+ cursor: "pointer",
628
+ fontSize: "0.875rem"
629
+ },
630
+ children: l.forgotPasswordButton
631
+ }
632
+ ) }),
633
+ /* @__PURE__ */ jsx("div", { style: { marginTop: "24px" }, children: /* @__PURE__ */ jsx(
634
+ Button,
635
+ {
636
+ type: "submit",
637
+ variant: "primary",
638
+ size: "lg",
639
+ disabled: isLoading || !newEmail || !currentPassword,
640
+ className: "ds-change-email__submit",
641
+ children: isLoading ? /* @__PURE__ */ jsx("span", { className: "ds-change-email__spinner" }) : l.continueButton
642
+ }
643
+ ) })
644
+ ] })
645
+ ] })
646
+ ] }) });
647
+ };
648
+ ChangeEmail.displayName = "Change Email";
649
+ var defaultSignupLabels = {
650
+ formTitle: "Create your account",
651
+ googleButtonLabel: "Sign up with Google",
652
+ dividerText: "or sign up with email",
653
+ nameLabel: "Full name",
654
+ namePlaceholder: "John Doe",
655
+ emailLabel: "Work email",
656
+ emailPlaceholder: "you@company.com",
657
+ passwordLabel: "Password",
658
+ passwordPlaceholder: "Create a strong password",
659
+ phoneLabel: "Phone",
660
+ phonePlaceholder: "Phone number",
661
+ hidePasswordLabel: "Hide password",
662
+ showPasswordLabel: "Show password",
663
+ passwordStrengthLabels: ["Very Weak", "Weak", "Fair", "Strong", "Very Strong"],
664
+ termsAgreementPrefix: "I agree to the ",
665
+ termsLabel: "Terms of Service ",
666
+ termsConjunction: "and ",
667
+ privacyLabel: "Privacy Policy",
668
+ submitLabel: "Create account",
669
+ loginPrompt: "Already have an account?",
670
+ loginLabel: "Sign in",
671
+ successTitle: "Welcome!",
672
+ continueToLoginLabel: "Continue to Login"
673
+ };
674
+ function calculatePasswordStrength(password, strengthLabels) {
675
+ let score = 0;
676
+ if (password.length >= 8) score++;
677
+ if (password.length >= 12) score++;
678
+ if (/[a-z]/.test(password) && /[A-Z]/.test(password)) score++;
679
+ if (/\d/.test(password)) score++;
680
+ if (/[!@#$%^&*(),.?":{}|<>]/.test(password)) score++;
681
+ score = Math.min(4, score);
682
+ const labels = strengthLabels ?? defaultSignupLabels.passwordStrengthLabels;
683
+ const colors = [
684
+ "var(--status-error)",
685
+ "var(--status-warning)",
686
+ "#ffd000",
687
+ "var(--status-success)",
688
+ "var(--status-success)"
689
+ ];
690
+ return {
691
+ score,
692
+ label: labels[score],
693
+ color: colors[score]
694
+ };
695
+ }
696
+ var Signup = ({
697
+ brandName,
698
+ showSocialSignup = true,
699
+ logo,
700
+ onSubmit,
701
+ onGoogleSignup,
702
+ onLogin,
703
+ onTermsClick,
704
+ onPrivacyClick,
705
+ isLoading = false,
706
+ error,
707
+ isSuccess = false,
708
+ successMessage = "You're all set! Check your email to verify your account.",
709
+ className,
710
+ style,
711
+ labels: customLabels,
712
+ defaultCountry = "TH",
713
+ countries = [],
714
+ renderPhoneInput
715
+ }) => {
716
+ const l = { ...defaultSignupLabels, ...customLabels };
717
+ const [name, setName] = useState("");
718
+ const [email, setEmail] = useState("");
719
+ const defaultCountryData = countries.find((c) => c.code === defaultCountry) || countries[0] || { dial: "+66"};
720
+ const [countryDial, setCountryDial] = useState(defaultCountryData.dial);
721
+ const [phone, setPhone] = useState("");
722
+ const [password, setPassword] = useState("");
723
+ const [showPassword, setShowPassword] = useState(false);
724
+ const [acceptedTerms, setAcceptedTerms] = useState(false);
725
+ const passwordStrength = useMemo(
726
+ () => calculatePasswordStrength(password, l.passwordStrengthLabels),
727
+ [password, l.passwordStrengthLabels]
728
+ );
729
+ const handleSubmit = (e) => {
730
+ e.preventDefault();
731
+ const fullPhone = phone ? phone.trim().startsWith("+") ? phone.trim() : `${countryDial} ${phone}`.trim() : "";
732
+ onSubmit?.({ name, email, phone: fullPhone, password, acceptedTerms });
733
+ };
734
+ const isFormValid = name && email && password.length >= 8 && acceptedTerms;
735
+ if (isSuccess) {
736
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-signup", className), style, children: [
737
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__background", children: [
738
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__accent ds-signup__accent--1", "aria-hidden": "true" }),
739
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__accent ds-signup__accent--2", "aria-hidden": "true" })
740
+ ] }),
741
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__card ds-signup__card--success", children: [
742
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__success-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
743
+ /* @__PURE__ */ jsx("circle", { cx: "32", cy: "32", r: "30", stroke: "var(--status-success)", strokeWidth: "2" }),
744
+ /* @__PURE__ */ jsx(
745
+ "path",
746
+ {
747
+ d: "M20 32L28 40L44 24",
748
+ stroke: "var(--status-success)",
749
+ strokeWidth: "3",
750
+ strokeLinecap: "round",
751
+ strokeLinejoin: "round"
752
+ }
753
+ )
754
+ ] }) }),
755
+ /* @__PURE__ */ jsx("h1", { className: "ds-signup__success-title", children: l.successTitle === "Welcome!" ? `Welcome to ${brandName}!` : l.successTitle }),
756
+ /* @__PURE__ */ jsx("p", { className: "ds-signup__success-message", children: successMessage }),
757
+ /* @__PURE__ */ jsx(Button, { variant: "primary", size: "lg", onClick: onLogin, className: "ds-signup__success-btn", children: l.continueToLoginLabel })
758
+ ] })
759
+ ] });
760
+ }
761
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-signup", className), style, children: [
762
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__background", children: [
763
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__accent ds-signup__accent--1", "aria-hidden": "true" }),
764
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__accent ds-signup__accent--2", "aria-hidden": "true" })
765
+ ] }),
766
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__card", children: [
767
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__header", children: [
768
+ logo ? /* @__PURE__ */ jsx("div", { className: "ds-signup__logo", children: logo }) : /* @__PURE__ */ jsx("div", { className: "ds-signup__logo ds-signup__logo--default", children: /* @__PURE__ */ jsx("div", { className: "ds-signup__logo-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
769
+ /* @__PURE__ */ jsx("rect", { width: "32", height: "32", rx: "8", fill: "url(#signup-logo-gradient)" }),
770
+ /* @__PURE__ */ jsx(
771
+ "path",
772
+ {
773
+ d: "M16 8V24M8 16H24",
774
+ stroke: "white",
775
+ strokeWidth: "2.5",
776
+ strokeLinecap: "round"
777
+ }
778
+ ),
779
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: "signup-logo-gradient", x1: "0", y1: "0", x2: "32", y2: "32", children: [
780
+ /* @__PURE__ */ jsx("stop", { stopColor: "rgb(var(--accent-rgb))" }),
781
+ /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "rgb(var(--accent2-rgb))" })
782
+ ] }) })
783
+ ] }) }) }),
784
+ /* @__PURE__ */ jsx("h1", { className: "ds-signup__title", children: l.formTitle })
785
+ ] }),
786
+ error && /* @__PURE__ */ jsxs("div", { className: "ds-signup__error", children: [
787
+ /* @__PURE__ */ jsxs(
788
+ "svg",
789
+ {
790
+ width: "16",
791
+ height: "16",
792
+ viewBox: "0 0 16 16",
793
+ fill: "none",
794
+ xmlns: "http://www.w3.org/2000/svg",
795
+ children: [
796
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
797
+ /* @__PURE__ */ jsx("path", { d: "M8 4.5V8.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
798
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })
799
+ ]
800
+ }
801
+ ),
802
+ /* @__PURE__ */ jsx("span", { children: error })
803
+ ] }),
804
+ showSocialSignup && /* @__PURE__ */ jsxs("div", { className: "ds-signup__social", children: [
805
+ /* @__PURE__ */ jsxs(
806
+ "button",
807
+ {
808
+ type: "button",
809
+ className: "ds-signup__social-btn",
810
+ onClick: onGoogleSignup,
811
+ disabled: isLoading,
812
+ children: [
813
+ /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", width: "20", height: "20", children: [
814
+ /* @__PURE__ */ jsx(
815
+ "path",
816
+ {
817
+ fill: "#4285F4",
818
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
819
+ }
820
+ ),
821
+ /* @__PURE__ */ jsx(
822
+ "path",
823
+ {
824
+ fill: "#34A853",
825
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
826
+ }
827
+ ),
828
+ /* @__PURE__ */ jsx(
829
+ "path",
830
+ {
831
+ fill: "#FBBC05",
832
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
833
+ }
834
+ ),
835
+ /* @__PURE__ */ jsx(
836
+ "path",
837
+ {
838
+ fill: "#EA4335",
839
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
840
+ }
841
+ )
842
+ ] }),
843
+ /* @__PURE__ */ jsx("span", { children: l.googleButtonLabel })
844
+ ]
845
+ }
846
+ ),
847
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__divider", children: /* @__PURE__ */ jsx("span", { children: l.dividerText }) })
848
+ ] }),
849
+ /* @__PURE__ */ jsxs("form", { className: "ds-signup__form", onSubmit: handleSubmit, children: [
850
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__field", children: /* @__PURE__ */ jsx(
851
+ TextField,
852
+ {
853
+ label: l.nameLabel,
854
+ type: "text",
855
+ placeholder: l.namePlaceholder,
856
+ value: name,
857
+ onChange: (e) => setName(e.target.value),
858
+ disabled: isLoading,
859
+ autoComplete: "name"
860
+ }
861
+ ) }),
862
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__field", children: /* @__PURE__ */ jsx(
863
+ TextField,
864
+ {
865
+ label: l.emailLabel,
866
+ type: "email",
867
+ placeholder: l.emailPlaceholder,
868
+ value: email,
869
+ onChange: (e) => setEmail(e.target.value),
870
+ disabled: isLoading,
871
+ autoComplete: "email"
872
+ }
873
+ ) }),
874
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__field ds-signup__phone-field", children: [
875
+ /* @__PURE__ */ jsx("label", { className: "ds-textfield__label", htmlFor: "phone-input", children: l.phoneLabel }),
876
+ /* @__PURE__ */ jsx("div", { className: "ds-textfield__input-wrapper", children: renderPhoneInput ? renderPhoneInput({
877
+ value: phone,
878
+ onChange: setPhone,
879
+ placeholder: l.phonePlaceholder,
880
+ disabled: isLoading,
881
+ className: "ds-signup__phone-container ds-textfield__input",
882
+ id: "phone-input"
883
+ }) : /* @__PURE__ */ jsxs("div", { className: clsx4("ds-signup__phone-container", "ds-textfield__input"), children: [
884
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__flag-select-wrapper", children: [
885
+ /* @__PURE__ */ jsx(
886
+ "select",
887
+ {
888
+ className: "ds-signup__flag-select-native",
889
+ value: countryDial,
890
+ onChange: (e) => {
891
+ const newDial = e.target.value;
892
+ setCountryDial(newDial);
893
+ setPhone(newDial + " ");
894
+ },
895
+ disabled: isLoading,
896
+ "aria-label": "Select country code",
897
+ children: countries.map((c) => /* @__PURE__ */ jsx("option", { value: c.dial, children: c.name }, c.code))
898
+ }
899
+ ),
900
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__flag-display", "aria-hidden": "true", children: [
901
+ /* @__PURE__ */ jsx("span", { className: "ds-signup__flag-icon", children: countries.find((c) => c.dial === countryDial)?.flag || "\u{1F310}" }),
902
+ /* @__PURE__ */ jsx("svg", { width: "10", height: "6", viewBox: "0 0 10 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M1 1L5 5L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
903
+ ] })
904
+ ] }),
905
+ /* @__PURE__ */ jsx(
906
+ "input",
907
+ {
908
+ id: "phone-input",
909
+ type: "tel",
910
+ placeholder: l.phonePlaceholder,
911
+ value: phone,
912
+ onChange: (e) => setPhone(e.target.value),
913
+ disabled: isLoading,
914
+ className: "ds-signup__phone-input ds-signup__phone-input-native",
915
+ autoComplete: "tel"
916
+ }
917
+ )
918
+ ] }) })
919
+ ] }),
920
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__field", children: [
921
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__password-wrapper", children: [
922
+ /* @__PURE__ */ jsx(
923
+ TextField,
924
+ {
925
+ label: l.passwordLabel,
926
+ type: showPassword ? "text" : "password",
927
+ placeholder: l.passwordPlaceholder,
928
+ value: password,
929
+ onChange: (e) => setPassword(e.target.value),
930
+ disabled: isLoading,
931
+ autoComplete: "new-password"
932
+ }
933
+ ),
934
+ /* @__PURE__ */ jsx(
935
+ "button",
936
+ {
937
+ type: "button",
938
+ className: "ds-signup__password-toggle",
939
+ onClick: () => setShowPassword(!showPassword),
940
+ "aria-label": showPassword ? l.hidePasswordLabel : l.showPasswordLabel,
941
+ children: showPassword ? /* @__PURE__ */ jsxs(
942
+ "svg",
943
+ {
944
+ width: "20",
945
+ height: "20",
946
+ viewBox: "0 0 24 24",
947
+ fill: "none",
948
+ stroke: "currentColor",
949
+ strokeWidth: "2",
950
+ strokeLinecap: "round",
951
+ strokeLinejoin: "round",
952
+ children: [
953
+ /* @__PURE__ */ jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
954
+ /* @__PURE__ */ jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
955
+ ]
956
+ }
957
+ ) : /* @__PURE__ */ jsxs(
958
+ "svg",
959
+ {
960
+ width: "20",
961
+ height: "20",
962
+ viewBox: "0 0 24 24",
963
+ fill: "none",
964
+ stroke: "currentColor",
965
+ strokeWidth: "2",
966
+ strokeLinecap: "round",
967
+ strokeLinejoin: "round",
968
+ children: [
969
+ /* @__PURE__ */ jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
970
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
971
+ ]
972
+ }
973
+ )
974
+ }
975
+ )
976
+ ] }),
977
+ password && /* @__PURE__ */ jsxs("div", { className: "ds-signup__strength", children: [
978
+ /* @__PURE__ */ jsx("div", { className: "ds-signup__strength-bar", children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ jsx(
979
+ "div",
980
+ {
981
+ className: clsx4(
982
+ "ds-signup__strength-segment",
983
+ i < passwordStrength.score && "ds-signup__strength-segment--active"
984
+ ),
985
+ style: i < passwordStrength.score ? { backgroundColor: passwordStrength.color } : {}
986
+ },
987
+ i
988
+ )) }),
989
+ /* @__PURE__ */ jsx(
990
+ "span",
991
+ {
992
+ className: "ds-signup__strength-label",
993
+ style: { color: passwordStrength.color },
994
+ children: passwordStrength.label
995
+ }
996
+ )
997
+ ] })
998
+ ] }),
999
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__terms", children: [
1000
+ /* @__PURE__ */ jsx(
1001
+ Checkbox,
1002
+ {
1003
+ label: "",
1004
+ checked: acceptedTerms,
1005
+ onCheckedChange: (checked) => setAcceptedTerms(checked === true),
1006
+ disabled: isLoading
1007
+ }
1008
+ ),
1009
+ /* @__PURE__ */ jsxs("span", { className: "ds-signup__terms-text", children: [
1010
+ (l.termsAgreementPrefix || "").endsWith(" ") ? l.termsAgreementPrefix || "" : `${l.termsAgreementPrefix || ""} `,
1011
+ /* @__PURE__ */ jsx(
1012
+ "button",
1013
+ {
1014
+ type: "button",
1015
+ className: "ds-signup__link",
1016
+ onClick: onTermsClick,
1017
+ disabled: isLoading,
1018
+ children: l.termsLabel
1019
+ }
1020
+ ),
1021
+ (l.termsConjunction || " ").startsWith(" ") && (l.termsConjunction || " ").endsWith(" ") ? l.termsConjunction || " " : ` ${(l.termsConjunction || "").trim()} `,
1022
+ /* @__PURE__ */ jsx(
1023
+ "button",
1024
+ {
1025
+ type: "button",
1026
+ className: "ds-signup__link",
1027
+ onClick: onPrivacyClick,
1028
+ disabled: isLoading,
1029
+ children: l.privacyLabel
1030
+ }
1031
+ )
1032
+ ] })
1033
+ ] }),
1034
+ /* @__PURE__ */ jsx(
1035
+ Button,
1036
+ {
1037
+ type: "submit",
1038
+ variant: "primary",
1039
+ size: "lg",
1040
+ disabled: isLoading || !isFormValid,
1041
+ className: "ds-signup__submit",
1042
+ children: isLoading ? /* @__PURE__ */ jsx("span", { className: "ds-signup__spinner" }) : l.submitLabel
1043
+ }
1044
+ )
1045
+ ] }),
1046
+ /* @__PURE__ */ jsxs("div", { className: "ds-signup__footer", children: [
1047
+ /* @__PURE__ */ jsx("span", { children: l.loginPrompt }),
1048
+ /* @__PURE__ */ jsx(
1049
+ "button",
1050
+ {
1051
+ type: "button",
1052
+ className: "ds-signup__link ds-signup__link--accent",
1053
+ onClick: onLogin,
1054
+ disabled: isLoading,
1055
+ children: l.loginLabel
1056
+ }
1057
+ )
1058
+ ] })
1059
+ ] })
1060
+ ] });
1061
+ };
1062
+ Signup.displayName = "Signup";
1063
+ var defaultForgotPasswordLabels = {
1064
+ forgotPasswordTitle: "Forgot password?",
1065
+ resetInstructionsTagline: "No worries, we'll send you reset instructions.",
1066
+ emailLabel: "Email",
1067
+ emailPlaceholder: "Enter your email",
1068
+ resetPasswordButton: "Reset password",
1069
+ backToLoginButton: "Back to login",
1070
+ checkYourEmailTitle: "Check your email",
1071
+ passwordResetLinkTagline: "We sent a password reset link to",
1072
+ didNotReceiveEmailHint: "Didn't receive the email? ",
1073
+ clickToResendButton: "Click to resend",
1074
+ setNewPasswordTitle: "Set new password",
1075
+ mustBeCharactersTagline: "Must be at least 8 characters.",
1076
+ passwordLabel: "Password",
1077
+ enterNewPasswordPlaceholder: "Enter new password",
1078
+ confirmPasswordLabel: "Confirm password",
1079
+ confirmNewPasswordPlaceholder: "Confirm new password",
1080
+ passwordsDontMatchError: "Passwords don't match",
1081
+ passwordResetTitle: "Password reset",
1082
+ passwordSuccessfullyResetTagline: "Your password has been successfully reset.",
1083
+ clickBelowLogInHint: "Click below to log in.",
1084
+ continueToLoginButton: "Continue to login",
1085
+ showPasswordLabel: "Show password",
1086
+ hidePasswordLabel: "Hide password"
1087
+ };
1088
+ var ForgotPassword = ({
1089
+ logo,
1090
+ labels: customLabels,
1091
+ onSubmit,
1092
+ onResetPassword,
1093
+ onBackToLogin,
1094
+ isLoading = false,
1095
+ error,
1096
+ step = "email",
1097
+ email: initialEmail = "",
1098
+ className
1099
+ }) => {
1100
+ const l = { ...defaultForgotPasswordLabels, ...customLabels };
1101
+ const [email, setEmail] = useState(initialEmail);
1102
+ const [password, setPassword] = useState("");
1103
+ const [confirmPassword, setConfirmPassword] = useState("");
1104
+ const [showPassword, setShowPassword] = useState(false);
1105
+ const [resendTimer, setResendTimer] = useState(0);
1106
+ const hasStartedTimer = React4.useRef(false);
1107
+ useEffect(() => {
1108
+ if (step === "sent" && !hasStartedTimer.current) {
1109
+ hasStartedTimer.current = true;
1110
+ setResendTimer(60);
1111
+ } else if (step !== "sent") {
1112
+ hasStartedTimer.current = false;
1113
+ }
1114
+ }, [step]);
1115
+ useEffect(() => {
1116
+ let timerId;
1117
+ if (resendTimer > 0) {
1118
+ timerId = setInterval(() => {
1119
+ setResendTimer((prev) => prev - 1);
1120
+ }, 1e3);
1121
+ }
1122
+ return () => {
1123
+ if (timerId) clearInterval(timerId);
1124
+ };
1125
+ }, [resendTimer]);
1126
+ const handleResendClick = () => {
1127
+ if (resendTimer === 0) {
1128
+ onSubmit?.(email || initialEmail);
1129
+ setResendTimer(60);
1130
+ }
1131
+ };
1132
+ const handleEmailSubmit = (e) => {
1133
+ e.preventDefault();
1134
+ onSubmit?.(email);
1135
+ };
1136
+ const handleResetSubmit = (e) => {
1137
+ e.preventDefault();
1138
+ onResetPassword?.({ password, confirmPassword });
1139
+ };
1140
+ const renderLogo = () => logo ? /* @__PURE__ */ jsx("div", { className: "ds-forgot__logo", children: logo }) : /* @__PURE__ */ jsx("div", { className: "ds-forgot__logo ds-forgot__logo--default", children: /* @__PURE__ */ jsx("div", { className: "ds-forgot__logo-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
1141
+ /* @__PURE__ */ jsx("rect", { width: "32", height: "32", rx: "8", fill: "url(#forgot-logo-gradient)" }),
1142
+ /* @__PURE__ */ jsx(
1143
+ "path",
1144
+ {
1145
+ d: "M16 10V14M16 22V22.01M16 26C21.5228 26 26 21.5228 26 16C26 10.4772 21.5228 6 16 6C10.4772 6 6 10.4772 6 16C6 21.5228 10.4772 26 16 26Z",
1146
+ stroke: "white",
1147
+ strokeWidth: "2",
1148
+ strokeLinecap: "round"
1149
+ }
1150
+ ),
1151
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: "forgot-logo-gradient", x1: "0", y1: "0", x2: "32", y2: "32", children: [
1152
+ /* @__PURE__ */ jsx("stop", { stopColor: "rgb(var(--accent-rgb))" }),
1153
+ /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "rgb(var(--accent2-rgb))" })
1154
+ ] }) })
1155
+ ] }) }) });
1156
+ if (step === "email") {
1157
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-forgot", className), children: [
1158
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--1", "aria-hidden": "true" }),
1159
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--2", "aria-hidden": "true" }),
1160
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__card", children: [
1161
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__header", children: [
1162
+ renderLogo(),
1163
+ /* @__PURE__ */ jsx("h1", { className: "ds-forgot__title", children: l.forgotPasswordTitle }),
1164
+ /* @__PURE__ */ jsx("p", { className: "ds-forgot__tagline", children: l.resetInstructionsTagline })
1165
+ ] }),
1166
+ error && /* @__PURE__ */ jsxs("div", { className: "ds-forgot__error", children: [
1167
+ /* @__PURE__ */ jsxs(
1168
+ "svg",
1169
+ {
1170
+ width: "16",
1171
+ height: "16",
1172
+ viewBox: "0 0 16 16",
1173
+ fill: "none",
1174
+ xmlns: "http://www.w3.org/2000/svg",
1175
+ children: [
1176
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
1177
+ /* @__PURE__ */ jsx(
1178
+ "path",
1179
+ {
1180
+ d: "M8 4.5V8.5",
1181
+ stroke: "currentColor",
1182
+ strokeWidth: "1.5",
1183
+ strokeLinecap: "round"
1184
+ }
1185
+ ),
1186
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })
1187
+ ]
1188
+ }
1189
+ ),
1190
+ /* @__PURE__ */ jsx("span", { children: error })
1191
+ ] }),
1192
+ /* @__PURE__ */ jsxs("form", { className: "ds-forgot__form", onSubmit: handleEmailSubmit, children: [
1193
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__field", children: /* @__PURE__ */ jsx(
1194
+ TextField,
1195
+ {
1196
+ label: l.emailLabel,
1197
+ type: "email",
1198
+ placeholder: l.emailPlaceholder,
1199
+ value: email,
1200
+ onChange: (e) => setEmail(e.target.value),
1201
+ disabled: isLoading,
1202
+ autoComplete: "email"
1203
+ }
1204
+ ) }),
1205
+ /* @__PURE__ */ jsx(
1206
+ Button,
1207
+ {
1208
+ type: "submit",
1209
+ variant: "primary",
1210
+ size: "lg",
1211
+ disabled: isLoading || !email,
1212
+ className: "ds-forgot__submit",
1213
+ children: isLoading ? /* @__PURE__ */ jsx("span", { className: "ds-forgot__spinner" }) : l.resetPasswordButton
1214
+ }
1215
+ )
1216
+ ] }),
1217
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__footer", children: /* @__PURE__ */ jsxs(
1218
+ "button",
1219
+ {
1220
+ type: "button",
1221
+ className: "ds-forgot__back",
1222
+ onClick: onBackToLogin,
1223
+ disabled: isLoading,
1224
+ children: [
1225
+ /* @__PURE__ */ jsx(
1226
+ "svg",
1227
+ {
1228
+ width: "16",
1229
+ height: "16",
1230
+ viewBox: "0 0 16 16",
1231
+ fill: "none",
1232
+ stroke: "currentColor",
1233
+ strokeWidth: "1.5",
1234
+ strokeLinecap: "round",
1235
+ strokeLinejoin: "round",
1236
+ children: /* @__PURE__ */ jsx("path", { d: "M10 12L6 8L10 4" })
1237
+ }
1238
+ ),
1239
+ l.backToLoginButton
1240
+ ]
1241
+ }
1242
+ ) })
1243
+ ] })
1244
+ ] });
1245
+ }
1246
+ if (step === "sent") {
1247
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-forgot", className), children: [
1248
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--1", "aria-hidden": "true" }),
1249
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--2", "aria-hidden": "true" }),
1250
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__card ds-forgot__card--centered", children: [
1251
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__success-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
1252
+ /* @__PURE__ */ jsx("circle", { cx: "32", cy: "32", r: "30", stroke: "rgb(var(--accent-rgb))", strokeWidth: "2" }),
1253
+ /* @__PURE__ */ jsx(
1254
+ "path",
1255
+ {
1256
+ d: "M20 32L44 32M44 32L36 24M44 32L36 40",
1257
+ stroke: "rgb(var(--accent-rgb))",
1258
+ strokeWidth: "3",
1259
+ strokeLinecap: "round",
1260
+ strokeLinejoin: "round"
1261
+ }
1262
+ )
1263
+ ] }) }),
1264
+ /* @__PURE__ */ jsx("h1", { className: "ds-forgot__title", children: l.checkYourEmailTitle }),
1265
+ /* @__PURE__ */ jsxs("p", { className: "ds-forgot__tagline", children: [
1266
+ l.passwordResetLinkTagline,
1267
+ /* @__PURE__ */ jsx("br", {}),
1268
+ /* @__PURE__ */ jsx("strong", { children: email || initialEmail })
1269
+ ] }),
1270
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__hint", children: [
1271
+ /* @__PURE__ */ jsx("span", { children: l.didNotReceiveEmailHint }),
1272
+ /* @__PURE__ */ jsx(
1273
+ "button",
1274
+ {
1275
+ type: "button",
1276
+ className: "ds-forgot__link",
1277
+ onClick: handleResendClick,
1278
+ disabled: isLoading || resendTimer > 0,
1279
+ children: resendTimer > 0 ? `${l.clickToResendButton} ${resendTimer}s` : l.clickToResendButton
1280
+ }
1281
+ )
1282
+ ] }),
1283
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__footer", children: /* @__PURE__ */ jsxs(
1284
+ "button",
1285
+ {
1286
+ type: "button",
1287
+ className: "ds-forgot__back",
1288
+ onClick: onBackToLogin,
1289
+ disabled: isLoading,
1290
+ children: [
1291
+ /* @__PURE__ */ jsx(
1292
+ "svg",
1293
+ {
1294
+ width: "16",
1295
+ height: "16",
1296
+ viewBox: "0 0 16 16",
1297
+ fill: "none",
1298
+ stroke: "currentColor",
1299
+ strokeWidth: "1.5",
1300
+ strokeLinecap: "round",
1301
+ strokeLinejoin: "round",
1302
+ children: /* @__PURE__ */ jsx("path", { d: "M10 12L6 8L10 4" })
1303
+ }
1304
+ ),
1305
+ l.backToLoginButton
1306
+ ]
1307
+ }
1308
+ ) })
1309
+ ] })
1310
+ ] });
1311
+ }
1312
+ if (step === "reset") {
1313
+ const passwordsMatch = password === confirmPassword;
1314
+ const isValid = password.length >= 8 && passwordsMatch;
1315
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-forgot", className), children: [
1316
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--1", "aria-hidden": "true" }),
1317
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--2", "aria-hidden": "true" }),
1318
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__card", children: [
1319
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__header", children: [
1320
+ renderLogo(),
1321
+ /* @__PURE__ */ jsx("h1", { className: "ds-forgot__title", children: l.setNewPasswordTitle }),
1322
+ /* @__PURE__ */ jsx("p", { className: "ds-forgot__tagline", children: l.mustBeCharactersTagline })
1323
+ ] }),
1324
+ error && /* @__PURE__ */ jsxs("div", { className: "ds-forgot__error", children: [
1325
+ /* @__PURE__ */ jsxs(
1326
+ "svg",
1327
+ {
1328
+ width: "16",
1329
+ height: "16",
1330
+ viewBox: "0 0 16 16",
1331
+ fill: "none",
1332
+ xmlns: "http://www.w3.org/2000/svg",
1333
+ children: [
1334
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
1335
+ /* @__PURE__ */ jsx(
1336
+ "path",
1337
+ {
1338
+ d: "M8 4.5V8.5",
1339
+ stroke: "currentColor",
1340
+ strokeWidth: "1.5",
1341
+ strokeLinecap: "round"
1342
+ }
1343
+ ),
1344
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })
1345
+ ]
1346
+ }
1347
+ ),
1348
+ /* @__PURE__ */ jsx("span", { children: error })
1349
+ ] }),
1350
+ /* @__PURE__ */ jsxs("form", { className: "ds-forgot__form", onSubmit: handleResetSubmit, children: [
1351
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__field", children: /* @__PURE__ */ jsxs("div", { className: "ds-forgot__password-wrapper", children: [
1352
+ /* @__PURE__ */ jsx(
1353
+ TextField,
1354
+ {
1355
+ label: l.passwordLabel,
1356
+ type: showPassword ? "text" : "password",
1357
+ placeholder: l.enterNewPasswordPlaceholder,
1358
+ value: password,
1359
+ onChange: (e) => setPassword(e.target.value),
1360
+ disabled: isLoading,
1361
+ autoComplete: "new-password"
1362
+ }
1363
+ ),
1364
+ /* @__PURE__ */ jsx(
1365
+ "button",
1366
+ {
1367
+ type: "button",
1368
+ className: "ds-forgot__password-toggle",
1369
+ onClick: () => setShowPassword(!showPassword),
1370
+ "aria-label": showPassword ? l.hidePasswordLabel : l.showPasswordLabel,
1371
+ children: showPassword ? /* @__PURE__ */ jsxs(
1372
+ "svg",
1373
+ {
1374
+ width: "20",
1375
+ height: "20",
1376
+ viewBox: "0 0 24 24",
1377
+ fill: "none",
1378
+ stroke: "currentColor",
1379
+ strokeWidth: "2",
1380
+ strokeLinecap: "round",
1381
+ strokeLinejoin: "round",
1382
+ children: [
1383
+ /* @__PURE__ */ jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
1384
+ /* @__PURE__ */ jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
1385
+ ]
1386
+ }
1387
+ ) : /* @__PURE__ */ jsxs(
1388
+ "svg",
1389
+ {
1390
+ width: "20",
1391
+ height: "20",
1392
+ viewBox: "0 0 24 24",
1393
+ fill: "none",
1394
+ stroke: "currentColor",
1395
+ strokeWidth: "2",
1396
+ strokeLinecap: "round",
1397
+ strokeLinejoin: "round",
1398
+ children: [
1399
+ /* @__PURE__ */ jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
1400
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
1401
+ ]
1402
+ }
1403
+ )
1404
+ }
1405
+ )
1406
+ ] }) }),
1407
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__field", children: /* @__PURE__ */ jsx(
1408
+ TextField,
1409
+ {
1410
+ label: l.confirmPasswordLabel,
1411
+ type: showPassword ? "text" : "password",
1412
+ placeholder: l.confirmNewPasswordPlaceholder,
1413
+ value: confirmPassword,
1414
+ onChange: (e) => setConfirmPassword(e.target.value),
1415
+ disabled: isLoading,
1416
+ autoComplete: "new-password",
1417
+ error: confirmPassword.length > 0 && !passwordsMatch,
1418
+ helperText: confirmPassword.length > 0 && !passwordsMatch ? l.passwordsDontMatchError : void 0
1419
+ }
1420
+ ) }),
1421
+ /* @__PURE__ */ jsx(
1422
+ Button,
1423
+ {
1424
+ type: "submit",
1425
+ variant: "primary",
1426
+ size: "lg",
1427
+ disabled: isLoading || !isValid,
1428
+ className: "ds-forgot__submit",
1429
+ children: isLoading ? /* @__PURE__ */ jsx("span", { className: "ds-forgot__spinner" }) : l.resetPasswordButton
1430
+ }
1431
+ )
1432
+ ] }),
1433
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__footer", children: /* @__PURE__ */ jsxs(
1434
+ "button",
1435
+ {
1436
+ type: "button",
1437
+ className: "ds-forgot__back",
1438
+ onClick: onBackToLogin,
1439
+ disabled: isLoading,
1440
+ children: [
1441
+ /* @__PURE__ */ jsx(
1442
+ "svg",
1443
+ {
1444
+ width: "16",
1445
+ height: "16",
1446
+ viewBox: "0 0 16 16",
1447
+ fill: "none",
1448
+ stroke: "currentColor",
1449
+ strokeWidth: "1.5",
1450
+ strokeLinecap: "round",
1451
+ strokeLinejoin: "round",
1452
+ children: /* @__PURE__ */ jsx("path", { d: "M10 12L6 8L10 4" })
1453
+ }
1454
+ ),
1455
+ l.backToLoginButton
1456
+ ]
1457
+ }
1458
+ ) })
1459
+ ] })
1460
+ ] });
1461
+ }
1462
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-forgot", className), children: [
1463
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--1", "aria-hidden": "true" }),
1464
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__accent ds-forgot__accent--2", "aria-hidden": "true" }),
1465
+ /* @__PURE__ */ jsxs("div", { className: "ds-forgot__card ds-forgot__card--centered", children: [
1466
+ /* @__PURE__ */ jsx("div", { className: "ds-forgot__success-icon ds-forgot__success-icon--check", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
1467
+ /* @__PURE__ */ jsx("circle", { cx: "32", cy: "32", r: "30", stroke: "var(--status-success)", strokeWidth: "2" }),
1468
+ /* @__PURE__ */ jsx(
1469
+ "path",
1470
+ {
1471
+ d: "M20 32L28 40L44 24",
1472
+ stroke: "var(--status-success)",
1473
+ strokeWidth: "3",
1474
+ strokeLinecap: "round",
1475
+ strokeLinejoin: "round"
1476
+ }
1477
+ )
1478
+ ] }) }),
1479
+ /* @__PURE__ */ jsx("h1", { className: "ds-forgot__title", children: l.passwordResetTitle }),
1480
+ /* @__PURE__ */ jsxs("p", { className: "ds-forgot__tagline", children: [
1481
+ l.passwordSuccessfullyResetTagline,
1482
+ /* @__PURE__ */ jsx("br", {}),
1483
+ l.clickBelowLogInHint
1484
+ ] }),
1485
+ /* @__PURE__ */ jsx(Button, { variant: "primary", size: "lg", onClick: onBackToLogin, className: "ds-forgot__submit", children: l.continueToLoginButton })
1486
+ ] })
1487
+ ] });
1488
+ };
1489
+ ForgotPassword.displayName = "ForgotPassword";
1490
+ var IconLinkedIn = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1491
+ "svg",
1492
+ {
1493
+ width: size,
1494
+ height: size,
1495
+ viewBox: "0 0 24 24",
1496
+ fill: "currentColor",
1497
+ className,
1498
+ xmlns: "http://www.w3.org/2000/svg",
1499
+ children: /* @__PURE__ */ jsx("path", { d: "M20.447 20.452H16.892V14.881C16.892 13.553 16.865 11.848 15.043 11.848C13.194 11.848 12.911 13.291 12.911 14.786V20.452H9.356V9.006H12.768V10.57H12.816C13.291 9.67 14.453 8.721 16.184 8.721C19.788 8.721 20.447 11.093 20.447 14.179V20.452ZM5.337 7.433C4.197 7.433 3.274 6.509 3.274 5.37C3.274 4.23 4.197 3.307 5.337 3.307C6.477 3.307 7.4 4.23 7.4 5.37C7.4 6.509 6.477 7.433 5.337 7.433ZM3.563 20.452H7.123V9.006H3.563V20.452Z" })
1500
+ }
1501
+ );
1502
+ var IconMail = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1503
+ "svg",
1504
+ {
1505
+ width: size,
1506
+ height: size,
1507
+ viewBox: "0 0 24 24",
1508
+ fill: "none",
1509
+ stroke: "currentColor",
1510
+ strokeWidth: "2",
1511
+ strokeLinecap: "round",
1512
+ strokeLinejoin: "round",
1513
+ className,
1514
+ children: [
1515
+ /* @__PURE__ */ jsx("path", { d: "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" }),
1516
+ /* @__PURE__ */ jsx("polyline", { points: "22,6 12,13 2,6" })
1517
+ ]
1518
+ }
1519
+ );
1520
+ var IconMapPin = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1521
+ "svg",
1522
+ {
1523
+ width: size,
1524
+ height: size,
1525
+ viewBox: "0 0 24 24",
1526
+ fill: "none",
1527
+ stroke: "currentColor",
1528
+ strokeWidth: "2",
1529
+ strokeLinecap: "round",
1530
+ strokeLinejoin: "round",
1531
+ className,
1532
+ children: [
1533
+ /* @__PURE__ */ jsx("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }),
1534
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "10", r: "3" })
1535
+ ]
1536
+ }
1537
+ );
1538
+ var IconBriefcase = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1539
+ "svg",
1540
+ {
1541
+ width: size,
1542
+ height: size,
1543
+ viewBox: "0 0 24 24",
1544
+ fill: "none",
1545
+ stroke: "currentColor",
1546
+ strokeWidth: "2",
1547
+ strokeLinecap: "round",
1548
+ strokeLinejoin: "round",
1549
+ className,
1550
+ children: [
1551
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", ry: "2" }),
1552
+ /* @__PURE__ */ jsx("path", { d: "M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" })
1553
+ ]
1554
+ }
1555
+ );
1556
+ var IconSchool = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1557
+ "svg",
1558
+ {
1559
+ width: size,
1560
+ height: size,
1561
+ viewBox: "0 0 24 24",
1562
+ fill: "none",
1563
+ stroke: "currentColor",
1564
+ strokeWidth: "2",
1565
+ strokeLinecap: "round",
1566
+ strokeLinejoin: "round",
1567
+ className,
1568
+ children: [
1569
+ /* @__PURE__ */ jsx("path", { d: "M22 10v6M2 10l10-5 10 5-10 5z" }),
1570
+ /* @__PURE__ */ jsx("path", { d: "M6 12v5c3 3 9 3 12 0v-5" })
1571
+ ]
1572
+ }
1573
+ );
1574
+ var IconChevronDown = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1575
+ "svg",
1576
+ {
1577
+ width: size,
1578
+ height: size,
1579
+ viewBox: "0 0 24 24",
1580
+ fill: "none",
1581
+ stroke: "currentColor",
1582
+ strokeWidth: "2",
1583
+ strokeLinecap: "round",
1584
+ strokeLinejoin: "round",
1585
+ className,
1586
+ children: /* @__PURE__ */ jsx("polyline", { points: "6 9 12 15 18 9" })
1587
+ }
1588
+ );
1589
+ var IconChevronUp = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1590
+ "svg",
1591
+ {
1592
+ width: size,
1593
+ height: size,
1594
+ viewBox: "0 0 24 24",
1595
+ fill: "none",
1596
+ stroke: "currentColor",
1597
+ strokeWidth: "2",
1598
+ strokeLinecap: "round",
1599
+ strokeLinejoin: "round",
1600
+ className,
1601
+ children: /* @__PURE__ */ jsx("polyline", { points: "18 15 12 9 6 15" })
1602
+ }
1603
+ );
1604
+ var IconRefresh = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1605
+ "svg",
1606
+ {
1607
+ width: size,
1608
+ height: size,
1609
+ viewBox: "0 0 24 24",
1610
+ fill: "none",
1611
+ stroke: "currentColor",
1612
+ strokeWidth: "2",
1613
+ strokeLinecap: "round",
1614
+ strokeLinejoin: "round",
1615
+ className,
1616
+ children: [
1617
+ /* @__PURE__ */ jsx("path", { d: "M23 4v6h-6" }),
1618
+ /* @__PURE__ */ jsx("path", { d: "M1 20v-6h6" }),
1619
+ /* @__PURE__ */ jsx("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })
1620
+ ]
1621
+ }
1622
+ );
1623
+ var IconCheck = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1624
+ "svg",
1625
+ {
1626
+ width: size,
1627
+ height: size,
1628
+ viewBox: "0 0 24 24",
1629
+ fill: "none",
1630
+ stroke: "currentColor",
1631
+ strokeWidth: "2",
1632
+ strokeLinecap: "round",
1633
+ strokeLinejoin: "round",
1634
+ className,
1635
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
1636
+ }
1637
+ );
1638
+ var IconLock = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1639
+ "svg",
1640
+ {
1641
+ width: size,
1642
+ height: size,
1643
+ viewBox: "0 0 24 24",
1644
+ fill: "none",
1645
+ stroke: "currentColor",
1646
+ strokeWidth: "2",
1647
+ strokeLinecap: "round",
1648
+ strokeLinejoin: "round",
1649
+ className,
1650
+ children: [
1651
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }),
1652
+ /* @__PURE__ */ jsx("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
1653
+ ]
1654
+ }
1655
+ );
1656
+ var IconInfo = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1657
+ "svg",
1658
+ {
1659
+ width: size,
1660
+ height: size,
1661
+ viewBox: "0 0 24 24",
1662
+ fill: "none",
1663
+ stroke: "currentColor",
1664
+ strokeWidth: "2",
1665
+ strokeLinecap: "round",
1666
+ strokeLinejoin: "round",
1667
+ className,
1668
+ children: [
1669
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
1670
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
1671
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
1672
+ ]
1673
+ }
1674
+ );
1675
+ var IconShieldCheck = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1676
+ "svg",
1677
+ {
1678
+ width: size,
1679
+ height: size,
1680
+ viewBox: "0 0 24 24",
1681
+ fill: "none",
1682
+ stroke: "currentColor",
1683
+ strokeWidth: "2",
1684
+ strokeLinecap: "round",
1685
+ strokeLinejoin: "round",
1686
+ className,
1687
+ children: [
1688
+ /* @__PURE__ */ jsx("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }),
1689
+ /* @__PURE__ */ jsx("path", { d: "M9 12l2 2 4-4" })
1690
+ ]
1691
+ }
1692
+ );
1693
+ var IconBrain = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1694
+ "svg",
1695
+ {
1696
+ width: size,
1697
+ height: size,
1698
+ viewBox: "0 0 24 24",
1699
+ fill: "none",
1700
+ stroke: "currentColor",
1701
+ strokeWidth: "2",
1702
+ strokeLinecap: "round",
1703
+ strokeLinejoin: "round",
1704
+ className,
1705
+ children: [
1706
+ /* @__PURE__ */ jsx("path", { d: "M12 4.5a2.5 2.5 0 0 0-4.96-.46 2.5 2.5 0 0 0-1.98 3 2.5 2.5 0 0 0-1.32 4.24 3 3 0 0 0 .34 5.58 2.5 2.5 0 0 0 2.96 3.08A2.5 2.5 0 0 0 12 19.5a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-1.98-3A2.5 2.5 0 0 0 12 4.5" }),
1707
+ /* @__PURE__ */ jsx("path", { d: "M12 4.5v15" })
1708
+ ]
1709
+ }
1710
+ );
1711
+ var IconSparkles = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1712
+ "svg",
1713
+ {
1714
+ width: size,
1715
+ height: size,
1716
+ viewBox: "0 0 24 24",
1717
+ fill: "none",
1718
+ stroke: "currentColor",
1719
+ strokeWidth: "2",
1720
+ strokeLinecap: "round",
1721
+ strokeLinejoin: "round",
1722
+ className,
1723
+ children: /* @__PURE__ */ jsx("path", { d: "M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z" })
1724
+ }
1725
+ );
1726
+ var IconTarget = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1727
+ "svg",
1728
+ {
1729
+ width: size,
1730
+ height: size,
1731
+ viewBox: "0 0 24 24",
1732
+ fill: "none",
1733
+ stroke: "currentColor",
1734
+ strokeWidth: "2",
1735
+ strokeLinecap: "round",
1736
+ strokeLinejoin: "round",
1737
+ className,
1738
+ children: [
1739
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
1740
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "6" }),
1741
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "2" })
1742
+ ]
1743
+ }
1744
+ );
1745
+ var IconMessageCircle = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1746
+ "svg",
1747
+ {
1748
+ width: size,
1749
+ height: size,
1750
+ viewBox: "0 0 24 24",
1751
+ fill: "none",
1752
+ stroke: "currentColor",
1753
+ strokeWidth: "2",
1754
+ strokeLinecap: "round",
1755
+ strokeLinejoin: "round",
1756
+ className,
1757
+ children: /* @__PURE__ */ jsx("path", { d: "M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" })
1758
+ }
1759
+ );
1760
+ var IconZap = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1761
+ "svg",
1762
+ {
1763
+ width: size,
1764
+ height: size,
1765
+ viewBox: "0 0 24 24",
1766
+ fill: "none",
1767
+ stroke: "currentColor",
1768
+ strokeWidth: "2",
1769
+ strokeLinecap: "round",
1770
+ strokeLinejoin: "round",
1771
+ className,
1772
+ children: /* @__PURE__ */ jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
1773
+ }
1774
+ );
1775
+ var IconTrendingUp = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1776
+ "svg",
1777
+ {
1778
+ width: size,
1779
+ height: size,
1780
+ viewBox: "0 0 24 24",
1781
+ fill: "none",
1782
+ stroke: "currentColor",
1783
+ strokeWidth: "2",
1784
+ strokeLinecap: "round",
1785
+ strokeLinejoin: "round",
1786
+ className,
1787
+ children: [
1788
+ /* @__PURE__ */ jsx("polyline", { points: "23 6 13.5 15.5 8.5 10.5 1 18" }),
1789
+ /* @__PURE__ */ jsx("polyline", { points: "17 6 23 6 23 12" })
1790
+ ]
1791
+ }
1792
+ );
1793
+ var IconAlertTriangle = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1794
+ "svg",
1795
+ {
1796
+ width: size,
1797
+ height: size,
1798
+ viewBox: "0 0 24 24",
1799
+ fill: "none",
1800
+ stroke: "currentColor",
1801
+ strokeWidth: "2",
1802
+ strokeLinecap: "round",
1803
+ strokeLinejoin: "round",
1804
+ className,
1805
+ children: [
1806
+ /* @__PURE__ */ jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
1807
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
1808
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
1809
+ ]
1810
+ }
1811
+ );
1812
+ var IconUser = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1813
+ "svg",
1814
+ {
1815
+ width: size,
1816
+ height: size,
1817
+ viewBox: "0 0 24 24",
1818
+ fill: "none",
1819
+ stroke: "currentColor",
1820
+ strokeWidth: "2",
1821
+ strokeLinecap: "round",
1822
+ strokeLinejoin: "round",
1823
+ className,
1824
+ children: [
1825
+ /* @__PURE__ */ jsx("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }),
1826
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "7", r: "4" })
1827
+ ]
1828
+ }
1829
+ );
1830
+ var IconClock = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1831
+ "svg",
1832
+ {
1833
+ width: size,
1834
+ height: size,
1835
+ viewBox: "0 0 24 24",
1836
+ fill: "none",
1837
+ stroke: "currentColor",
1838
+ strokeWidth: "2",
1839
+ strokeLinecap: "round",
1840
+ strokeLinejoin: "round",
1841
+ className,
1842
+ children: [
1843
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
1844
+ /* @__PURE__ */ jsx("polyline", { points: "12 6 12 12 16 14" })
1845
+ ]
1846
+ }
1847
+ );
1848
+ var IconThumbsUp = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1849
+ "svg",
1850
+ {
1851
+ width: size,
1852
+ height: size,
1853
+ viewBox: "0 0 24 24",
1854
+ fill: "none",
1855
+ stroke: "currentColor",
1856
+ strokeWidth: "2",
1857
+ strokeLinecap: "round",
1858
+ strokeLinejoin: "round",
1859
+ className,
1860
+ children: /* @__PURE__ */ jsx("path", { d: "M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3" })
1861
+ }
1862
+ );
1863
+ var IconThumbsDown = ({ className, size = 16 }) => /* @__PURE__ */ jsx(
1864
+ "svg",
1865
+ {
1866
+ width: size,
1867
+ height: size,
1868
+ viewBox: "0 0 24 24",
1869
+ fill: "none",
1870
+ stroke: "currentColor",
1871
+ strokeWidth: "2",
1872
+ strokeLinecap: "round",
1873
+ strokeLinejoin: "round",
1874
+ className,
1875
+ children: /* @__PURE__ */ jsx("path", { d: "M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17" })
1876
+ }
1877
+ );
1878
+ var IconLightbulb = ({ className, size = 16 }) => /* @__PURE__ */ jsxs(
1879
+ "svg",
1880
+ {
1881
+ width: size,
1882
+ height: size,
1883
+ viewBox: "0 0 24 24",
1884
+ fill: "none",
1885
+ stroke: "currentColor",
1886
+ strokeWidth: "2",
1887
+ strokeLinecap: "round",
1888
+ strokeLinejoin: "round",
1889
+ className,
1890
+ children: [
1891
+ /* @__PURE__ */ jsx("path", { d: "M9 18h6" }),
1892
+ /* @__PURE__ */ jsx("path", { d: "M10 22h4" }),
1893
+ /* @__PURE__ */ jsx("path", { d: "M15.09 14c.18-.98.65-1.74 1.41-2.5A4.65 4.65 0 0 0 18 8 6 6 0 0 0 6 8c0 1 .23 2.23 1.5 3.5A4.61 4.61 0 0 1 8.91 14" })
1894
+ ]
1895
+ }
1896
+ );
1897
+ var EmptyStateDisplay = ({ onRefresh }) => {
1898
+ return /* @__PURE__ */ jsxs("div", { className: "ds-lead-empty", children: [
1899
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-empty__avatar-container", children: /* @__PURE__ */ jsxs("div", { className: "ds-lead-empty__avatar", children: [
1900
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-empty__avatar-pulse" }),
1901
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-empty__avatar-icon", children: /* @__PURE__ */ jsx(IconSparkles, { size: 32 }) })
1902
+ ] }) }),
1903
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-empty__content", children: [
1904
+ /* @__PURE__ */ jsx("h2", { className: "ds-lead-empty__title", children: "Discover Who They Really Are" }),
1905
+ /* @__PURE__ */ jsx("p", { className: "ds-lead-empty__description", children: "Our AI analyzes behavioral patterns, communication style, and personality signals to help you connect more effectively." })
1906
+ ] }),
1907
+ onRefresh && /* @__PURE__ */ jsx("div", { className: "ds-lead-empty__action", children: /* @__PURE__ */ jsxs(Button, { onClick: onRefresh, variant: "primary", size: "lg", children: [
1908
+ /* @__PURE__ */ jsx(IconRefresh, {}),
1909
+ " Begin Analysis"
1910
+ ] }) }),
1911
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-empty__trust", children: [
1912
+ /* @__PURE__ */ jsxs("span", { className: "ds-lead-empty__trust-item", children: [
1913
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-empty__trust-dot" }),
1914
+ "Privacy-first approach"
1915
+ ] }),
1916
+ /* @__PURE__ */ jsxs("span", { className: "ds-lead-empty__trust-item", children: [
1917
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-empty__trust-dot" }),
1918
+ "Public data only"
1919
+ ] }),
1920
+ /* @__PURE__ */ jsxs("span", { className: "ds-lead-empty__trust-item", children: [
1921
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-empty__trust-dot" }),
1922
+ "~2 min analysis"
1923
+ ] })
1924
+ ] })
1925
+ ] });
1926
+ };
1927
+ var ANALYSIS_STAGES = [
1928
+ { id: "identity", label: "Verifying Identity", icon: IconUser },
1929
+ { id: "behavior", label: "Analyzing Behavior", icon: IconBrain },
1930
+ { id: "communication", label: "Mapping Communication Style", icon: IconMessageCircle },
1931
+ { id: "personality", label: "Building Personality Profile", icon: IconSparkles }
1932
+ ];
1933
+ var LoadingStateDisplay = ({ progress }) => {
1934
+ const currentStage = progress?.currentStage || "identity";
1935
+ const completedStages = progress?.completedStages || [];
1936
+ const estimatedTime = progress?.estimatedTimeRemaining;
1937
+ const getStageStatus = (stageId) => {
1938
+ if (completedStages.includes(stageId)) {
1939
+ return "completed";
1940
+ }
1941
+ if (stageId === currentStage) {
1942
+ return "active";
1943
+ }
1944
+ return "pending";
1945
+ };
1946
+ const completionPercentage = Math.round(
1947
+ (completedStages.length + 0.5) / ANALYSIS_STAGES.length * 100
1948
+ );
1949
+ return /* @__PURE__ */ jsxs("div", { className: "ds-lead-loading", children: [
1950
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-loading__progress", children: [
1951
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-loading__progress-bar", children: /* @__PURE__ */ jsx(
1952
+ "div",
1953
+ {
1954
+ className: "ds-lead-loading__progress-fill",
1955
+ style: { width: `${completionPercentage}%` }
1956
+ }
1957
+ ) }),
1958
+ /* @__PURE__ */ jsxs("span", { className: "ds-lead-loading__progress-text", children: [
1959
+ completionPercentage,
1960
+ "% complete"
1961
+ ] })
1962
+ ] }),
1963
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-loading__stages", children: ANALYSIS_STAGES.map((stage, index) => {
1964
+ const status = getStageStatus(stage.id);
1965
+ const Icon = stage.icon;
1966
+ return /* @__PURE__ */ jsxs(
1967
+ "div",
1968
+ {
1969
+ className: clsx4("ds-lead-loading__stage", `ds-lead-loading__stage--${status}`),
1970
+ style: { "--stage-index": index },
1971
+ children: [
1972
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-loading__stage-icon", children: status === "completed" ? /* @__PURE__ */ jsx(IconCheck, { size: 16 }) : /* @__PURE__ */ jsx(Icon, { size: 16 }) }),
1973
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-loading__stage-label", children: stage.label }),
1974
+ status === "active" && /* @__PURE__ */ jsx("div", { className: "ds-lead-loading__stage-pulse" })
1975
+ ]
1976
+ },
1977
+ stage.id
1978
+ );
1979
+ }) }),
1980
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-loading__footer", children: [
1981
+ estimatedTime && estimatedTime > 0 ? /* @__PURE__ */ jsxs("p", { className: "ds-lead-loading__time", children: [
1982
+ "About ",
1983
+ Math.ceil(estimatedTime / 60),
1984
+ " minute",
1985
+ estimatedTime > 60 ? "s" : "",
1986
+ " remaining"
1987
+ ] }) : /* @__PURE__ */ jsx("p", { className: "ds-lead-loading__time", children: "This typically takes 1\u20132 minutes" }),
1988
+ /* @__PURE__ */ jsx("p", { className: "ds-lead-loading__message", children: progress?.message || "Analyzing publicly available information..." })
1989
+ ] })
1990
+ ] });
1991
+ };
1992
+ var IdentityHeader = ({ data, compact }) => {
1993
+ const avatarUrl = data.avatarUrl || `https://ui-avatars.com/api/?name=${encodeURIComponent(data.name)}&background=1a1a2e&color=fff&size=240`;
1994
+ const emailStatus = data.contact?.emailStatus;
1995
+ const linkedinVerified = data.contact?.linkedinVerified;
1996
+ const confidenceScore = data.dataConfidence?.score;
1997
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-lead-identity", compact && "ds-lead-identity--compact"), children: [
1998
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__avatar-wrapper", children: [
1999
+ /* @__PURE__ */ jsx("img", { src: avatarUrl, alt: data.name, className: "ds-lead-identity__avatar" }),
2000
+ confidenceScore && confidenceScore >= 80 && /* @__PURE__ */ jsx("div", { className: "ds-lead-identity__verified-badge", title: "High confidence data", children: /* @__PURE__ */ jsx(IconShieldCheck, { size: 14 }) })
2001
+ ] }),
2002
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__content", children: [
2003
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__name-row", children: [
2004
+ /* @__PURE__ */ jsx("h1", { className: "ds-lead-identity__name", children: data.name }),
2005
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__badges", children: [
2006
+ linkedinVerified && data.contact?.linkedinUrl && /* @__PURE__ */ jsx(
2007
+ OutboundLink,
2008
+ {
2009
+ href: data.contact.linkedinUrl,
2010
+ context: "identity-linkedin-badge",
2011
+ className: "ds-lead-identity__badge ds-lead-identity__badge--linkedin",
2012
+ title: "Verified LinkedIn Profile",
2013
+ children: /* @__PURE__ */ jsx(IconLinkedIn, { size: 14 })
2014
+ }
2015
+ ),
2016
+ emailStatus === "verified" && /* @__PURE__ */ jsx(
2017
+ "span",
2018
+ {
2019
+ className: "ds-lead-identity__badge ds-lead-identity__badge--verified",
2020
+ title: "Email Verified",
2021
+ children: /* @__PURE__ */ jsx(IconMail, { size: 14 })
2022
+ }
2023
+ )
2024
+ ] })
2025
+ ] }),
2026
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__role", children: [
2027
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-identity__role-title", children: data.role }),
2028
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-identity__role-separator", children: "at" }),
2029
+ /* @__PURE__ */ jsxs("span", { className: "ds-lead-identity__company", children: [
2030
+ data.companyLogo && /* @__PURE__ */ jsx(
2031
+ "img",
2032
+ {
2033
+ src: data.companyLogo,
2034
+ alt: data.company,
2035
+ className: "ds-lead-identity__company-logo"
2036
+ }
2037
+ ),
2038
+ data.company
2039
+ ] })
2040
+ ] }),
2041
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-identity__meta", children: /* @__PURE__ */ jsxs("span", { className: "ds-lead-identity__meta-item", children: [
2042
+ /* @__PURE__ */ jsx(IconMapPin, { size: 14 }),
2043
+ data.location
2044
+ ] }) }),
2045
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__actions", children: [
2046
+ data.contact?.email && /* @__PURE__ */ jsxs(
2047
+ OutboundLink,
2048
+ {
2049
+ href: `mailto:${data.contact.email}`,
2050
+ context: "identity-email-contact",
2051
+ openInNewTab: false,
2052
+ className: clsx4(
2053
+ "ds-lead-identity__contact",
2054
+ emailStatus && `ds-lead-identity__contact--${emailStatus}`
2055
+ ),
2056
+ children: [
2057
+ /* @__PURE__ */ jsx(IconMail, { size: 14 }),
2058
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-identity__contact-email", children: data.contact.email }),
2059
+ emailStatus && /* @__PURE__ */ jsxs("span", { className: "ds-lead-identity__contact-status", children: [
2060
+ emailStatus === "verified" && "Verified",
2061
+ emailStatus === "valid" && "Valid",
2062
+ emailStatus === "risky" && "Risky",
2063
+ emailStatus === "invalid" && "Invalid"
2064
+ ] })
2065
+ ]
2066
+ }
2067
+ ),
2068
+ data.lastUpdated && /* @__PURE__ */ jsxs("span", { className: "ds-lead-identity__freshness", children: [
2069
+ /* @__PURE__ */ jsx(IconClock, { size: 12 }),
2070
+ "Updated ",
2071
+ data.lastUpdated
2072
+ ] })
2073
+ ] }),
2074
+ confidenceScore !== void 0 && /* @__PURE__ */ jsxs("div", { className: "ds-lead-identity__confidence", children: [
2075
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-identity__confidence-bar", children: /* @__PURE__ */ jsx(
2076
+ "div",
2077
+ {
2078
+ className: "ds-lead-identity__confidence-fill",
2079
+ style: { width: `${confidenceScore}%` }
2080
+ }
2081
+ ) }),
2082
+ /* @__PURE__ */ jsxs("span", { className: "ds-lead-identity__confidence-label", children: [
2083
+ confidenceScore,
2084
+ "% data confidence"
2085
+ ] })
2086
+ ] })
2087
+ ] })
2088
+ ] });
2089
+ };
2090
+ var IntelligenceSummary = ({
2091
+ data,
2092
+ isLocked = false
2093
+ }) => {
2094
+ if (isLocked) {
2095
+ return /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence", children: /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__grid", children: [
2096
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card ds-lead-intelligence__card--locked", children: [
2097
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card-header", children: [
2098
+ /* @__PURE__ */ jsx(IconBrain, { size: 20 }),
2099
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__card-title", children: "Personality Analysis" })
2100
+ ] }),
2101
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__locked-content", children: [
2102
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence__locked-icon", children: /* @__PURE__ */ jsx(IconLock, { size: 24 }) }),
2103
+ /* @__PURE__ */ jsx("p", { className: "ds-lead-intelligence__locked-text", children: "Personality analysis in progress..." }),
2104
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence__locked-shimmer" })
2105
+ ] })
2106
+ ] }),
2107
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card ds-lead-intelligence__card--locked", children: [
2108
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card-header", children: [
2109
+ /* @__PURE__ */ jsx(IconTarget, { size: 20 }),
2110
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__card-title", children: "Engagement Strategy" })
2111
+ ] }),
2112
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__locked-content", children: [
2113
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence__locked-icon", children: /* @__PURE__ */ jsx(IconLock, { size: 24 }) }),
2114
+ /* @__PURE__ */ jsx("p", { className: "ds-lead-intelligence__locked-text", children: "Building engagement recommendations..." }),
2115
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence__locked-shimmer" })
2116
+ ] })
2117
+ ] })
2118
+ ] }) });
2119
+ }
2120
+ if (!data.personalitySummary && !data.engagementTips?.length) {
2121
+ return null;
2122
+ }
2123
+ return /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence", children: /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__grid", children: [
2124
+ data.personalitySummary && /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card ds-lead-intelligence__card--personality", children: [
2125
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card-header", children: [
2126
+ /* @__PURE__ */ jsx(IconBrain, { size: 20 }),
2127
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__card-title", children: "Personality Analysis" })
2128
+ ] }),
2129
+ /* @__PURE__ */ jsx("p", { className: "ds-lead-intelligence__narrative", children: data.personalitySummary }),
2130
+ data.mbtiType && /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__mbti-badge", children: [
2131
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__mbti-type", children: data.mbtiType }),
2132
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__mbti-label", children: "Personality Type" })
2133
+ ] })
2134
+ ] }),
2135
+ data.engagementTips && data.engagementTips.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card ds-lead-intelligence__card--engagement", children: [
2136
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__card-header", children: [
2137
+ /* @__PURE__ */ jsx(IconTarget, { size: 20 }),
2138
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__card-title", children: "How to Engage" })
2139
+ ] }),
2140
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-intelligence__tips", children: data.engagementTips.map((tip, index) => /* @__PURE__ */ jsxs(
2141
+ "div",
2142
+ {
2143
+ className: clsx4(
2144
+ "ds-lead-intelligence__tip",
2145
+ `ds-lead-intelligence__tip--${tip.type}`
2146
+ ),
2147
+ children: [
2148
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__tip-icon", children: [
2149
+ tip.type === "do" && /* @__PURE__ */ jsx(IconThumbsUp, { size: 14 }),
2150
+ tip.type === "dont" && /* @__PURE__ */ jsx(IconThumbsDown, { size: 14 }),
2151
+ tip.type === "insight" && /* @__PURE__ */ jsx(IconLightbulb, { size: 14 })
2152
+ ] }),
2153
+ /* @__PURE__ */ jsxs("div", { className: "ds-lead-intelligence__tip-content", children: [
2154
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__tip-text", children: tip.text }),
2155
+ tip.detail && /* @__PURE__ */ jsx("span", { className: "ds-lead-intelligence__tip-detail", children: tip.detail })
2156
+ ] })
2157
+ ]
2158
+ },
2159
+ index
2160
+ )) })
2161
+ ] })
2162
+ ] }) });
2163
+ };
2164
+ var DIMENSION_TOOLTIPS = {
2165
+ energy: {
2166
+ left: "Gains energy from social interaction and external activities",
2167
+ right: "Recharges through solitude and internal reflection",
2168
+ description: "Where you direct and receive energy"
2169
+ },
2170
+ mind: {
2171
+ left: "Focuses on patterns, possibilities, and abstract thinking",
2172
+ right: "Prefers concrete facts, details, and practical approaches",
2173
+ description: "How you process information"
2174
+ },
2175
+ nature: {
2176
+ left: "Prioritizes logic, consistency, and objective analysis",
2177
+ right: "Values harmony, empathy, and personal considerations",
2178
+ description: "How you make decisions"
2179
+ },
2180
+ tactics: {
2181
+ left: "Prefers structure, planning, and decisive action",
2182
+ right: "Favors flexibility, spontaneity, and keeping options open",
2183
+ description: "How you organize your life"
2184
+ }
2185
+ };
2186
+ var MBTISpectrum = ({
2187
+ scores,
2188
+ mbtiType,
2189
+ isLocked = false
2190
+ }) => {
2191
+ const [hoveredDimension, setHoveredDimension] = useState(null);
2192
+ if (isLocked) {
2193
+ return /* @__PURE__ */ jsxs("div", { className: "ds-mbti ds-mbti--locked", children: [
2194
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__header", children: [
2195
+ /* @__PURE__ */ jsx("h3", { className: "ds-mbti__title", children: "MBTI Personality Dimensions" }),
2196
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__locked-badge", children: [
2197
+ /* @__PURE__ */ jsx(IconLock, { size: 14 }),
2198
+ /* @__PURE__ */ jsx("span", { children: "Analysis in progress" })
2199
+ ] })
2200
+ ] }),
2201
+ /* @__PURE__ */ jsx("div", { className: "ds-mbti__locked-content", children: [1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxs("div", { className: "ds-mbti__row ds-mbti__row--locked", children: [
2202
+ /* @__PURE__ */ jsx("span", { className: "ds-mbti__label ds-mbti__label--skeleton" }),
2203
+ /* @__PURE__ */ jsx("div", { className: "ds-mbti__track ds-mbti__track--skeleton", children: /* @__PURE__ */ jsx("div", { className: "ds-mbti__skeleton-shimmer" }) }),
2204
+ /* @__PURE__ */ jsx("span", { className: "ds-mbti__label ds-mbti__label--skeleton" })
2205
+ ] }, i)) })
2206
+ ] });
2207
+ }
2208
+ return /* @__PURE__ */ jsxs("div", { className: "ds-mbti", children: [
2209
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__header", children: [
2210
+ /* @__PURE__ */ jsx("h3", { className: "ds-mbti__title", children: "Personality Dimensions" }),
2211
+ mbtiType && /* @__PURE__ */ jsx("span", { className: "ds-mbti__type-badge", children: mbtiType })
2212
+ ] }),
2213
+ /* @__PURE__ */ jsx("div", { className: "ds-mbti__dimensions", children: scores.map((score) => {
2214
+ const tooltip = DIMENSION_TOOLTIPS[score.dimension];
2215
+ const isHovered = hoveredDimension === score.dimension;
2216
+ const dominantSide = score.value < 50 ? "left" : "right";
2217
+ const intensity = Math.abs(score.value - 50);
2218
+ return /* @__PURE__ */ jsxs(
2219
+ "div",
2220
+ {
2221
+ className: clsx4(
2222
+ "ds-mbti__row",
2223
+ `ds-mbti__row--${score.color}`,
2224
+ isHovered && "ds-mbti__row--hovered"
2225
+ ),
2226
+ onMouseEnter: () => setHoveredDimension(score.dimension),
2227
+ onMouseLeave: () => setHoveredDimension(null),
2228
+ children: [
2229
+ /* @__PURE__ */ jsxs(
2230
+ "div",
2231
+ {
2232
+ className: clsx4(
2233
+ "ds-mbti__label",
2234
+ "ds-mbti__label--left",
2235
+ dominantSide === "left" && "ds-mbti__label--active"
2236
+ ),
2237
+ children: [
2238
+ /* @__PURE__ */ jsx("span", { className: "ds-mbti__label-text", children: score.leftLabel }),
2239
+ dominantSide === "left" && /* @__PURE__ */ jsx("span", { className: "ds-mbti__label-strength", children: intensity > 30 ? "Strong" : intensity > 15 ? "Moderate" : "Slight" })
2240
+ ]
2241
+ }
2242
+ ),
2243
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__track-container", children: [
2244
+ /* @__PURE__ */ jsxs("div", { className: clsx4("ds-mbti__track", `ds-mbti__track--${score.color}`), children: [
2245
+ /* @__PURE__ */ jsx("div", { className: "ds-mbti__track-center" }),
2246
+ /* @__PURE__ */ jsx(
2247
+ "div",
2248
+ {
2249
+ className: "ds-mbti__track-fill",
2250
+ style: {
2251
+ left: score.value < 50 ? `${score.value}%` : "50%",
2252
+ width: `${Math.abs(score.value - 50)}%`
2253
+ }
2254
+ }
2255
+ ),
2256
+ /* @__PURE__ */ jsx("div", { className: "ds-mbti__thumb", style: { left: `${score.value}%` }, children: /* @__PURE__ */ jsx("div", { className: "ds-mbti__thumb-glow" }) })
2257
+ ] }),
2258
+ /* @__PURE__ */ jsx("span", { className: "ds-mbti__dimension-label", children: score.label })
2259
+ ] }),
2260
+ /* @__PURE__ */ jsxs(
2261
+ "div",
2262
+ {
2263
+ className: clsx4(
2264
+ "ds-mbti__label",
2265
+ "ds-mbti__label--right",
2266
+ dominantSide === "right" && "ds-mbti__label--active"
2267
+ ),
2268
+ children: [
2269
+ /* @__PURE__ */ jsx("span", { className: "ds-mbti__label-text", children: score.rightLabel }),
2270
+ dominantSide === "right" && /* @__PURE__ */ jsx("span", { className: "ds-mbti__label-strength", children: intensity > 30 ? "Strong" : intensity > 15 ? "Moderate" : "Slight" })
2271
+ ]
2272
+ }
2273
+ ),
2274
+ /* @__PURE__ */ jsx(
2275
+ "button",
2276
+ {
2277
+ className: "ds-mbti__info-button",
2278
+ "aria-label": `Learn more about ${score.label}`,
2279
+ children: /* @__PURE__ */ jsx(IconInfo, { size: 14 })
2280
+ }
2281
+ ),
2282
+ isHovered && tooltip && /* @__PURE__ */ jsxs("div", { className: "ds-mbti__tooltip", children: [
2283
+ /* @__PURE__ */ jsx("p", { className: "ds-mbti__tooltip-description", children: tooltip.description }),
2284
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__tooltip-traits", children: [
2285
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__tooltip-trait", children: [
2286
+ /* @__PURE__ */ jsxs("strong", { children: [
2287
+ score.leftLabel,
2288
+ ":"
2289
+ ] }),
2290
+ " ",
2291
+ tooltip.left
2292
+ ] }),
2293
+ /* @__PURE__ */ jsxs("div", { className: "ds-mbti__tooltip-trait", children: [
2294
+ /* @__PURE__ */ jsxs("strong", { children: [
2295
+ score.rightLabel,
2296
+ ":"
2297
+ ] }),
2298
+ " ",
2299
+ tooltip.right
2300
+ ] })
2301
+ ] })
2302
+ ] })
2303
+ ]
2304
+ },
2305
+ score.dimension
2306
+ );
2307
+ }) })
2308
+ ] });
2309
+ };
2310
+ var COMMUNICATION_LABELS = {
2311
+ visual: { label: "Visual", description: "Prefers diagrams, charts, and visual presentations" },
2312
+ verbal: { label: "Verbal", description: "Responds best to conversations and discussions" },
2313
+ analytical: { label: "Analytical", description: "Values data, logic, and detailed analysis" },
2314
+ written: { label: "Written", description: "Prefers documented, well-structured communication" }
2315
+ };
2316
+ var DECISION_LABELS = {
2317
+ fast: { label: "Fast Decider", description: "Makes quick decisions with available information" },
2318
+ deliberate: { label: "Deliberate", description: "Takes time to weigh all options carefully" },
2319
+ consensus: { label: "Consensus Builder", description: "Seeks input from others before deciding" },
2320
+ "data-driven": {
2321
+ label: "Data-Driven",
2322
+ description: "Requires strong evidence to make decisions"
2323
+ }
2324
+ };
2325
+ var BehavioralHighlights = ({
2326
+ signals,
2327
+ isLocked = false
2328
+ }) => {
2329
+ if (isLocked) {
2330
+ return /* @__PURE__ */ jsxs("div", { className: "ds-behavioral ds-behavioral--locked", children: [
2331
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__header", children: [
2332
+ /* @__PURE__ */ jsx("h3", { className: "ds-behavioral__title", children: "Behavioral Signals" }),
2333
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__locked-badge", children: [
2334
+ /* @__PURE__ */ jsx(IconLock, { size: 14 }),
2335
+ /* @__PURE__ */ jsx("span", { children: "Analyzing patterns..." })
2336
+ ] })
2337
+ ] }),
2338
+ /* @__PURE__ */ jsx("div", { className: "ds-behavioral__grid", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsx("div", { className: "ds-behavioral__item ds-behavioral__item--skeleton", children: /* @__PURE__ */ jsx("div", { className: "ds-behavioral__item-shimmer" }) }, i)) })
2339
+ ] });
2340
+ }
2341
+ const hasAnySignal = signals.communicationStyle || signals.decisionStyle || signals.riskTolerance !== void 0;
2342
+ if (!hasAnySignal) {
2343
+ return null;
2344
+ }
2345
+ return /* @__PURE__ */ jsxs("div", { className: "ds-behavioral", children: [
2346
+ /* @__PURE__ */ jsx("div", { className: "ds-behavioral__header", children: /* @__PURE__ */ jsx("h3", { className: "ds-behavioral__title", children: "Behavioral Signals" }) }),
2347
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__grid", children: [
2348
+ signals.communicationStyle && /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__item", children: [
2349
+ /* @__PURE__ */ jsx("div", { className: "ds-behavioral__item-icon", children: /* @__PURE__ */ jsx(IconMessageCircle, { size: 18 }) }),
2350
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__item-content", children: [
2351
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-label", children: "Communication Style" }),
2352
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-value", children: COMMUNICATION_LABELS[signals.communicationStyle].label }),
2353
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-description", children: COMMUNICATION_LABELS[signals.communicationStyle].description })
2354
+ ] })
2355
+ ] }),
2356
+ signals.decisionStyle && /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__item", children: [
2357
+ /* @__PURE__ */ jsx("div", { className: "ds-behavioral__item-icon", children: /* @__PURE__ */ jsx(IconZap, { size: 18 }) }),
2358
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__item-content", children: [
2359
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-label", children: "Decision Making" }),
2360
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-value", children: DECISION_LABELS[signals.decisionStyle].label }),
2361
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-description", children: DECISION_LABELS[signals.decisionStyle].description })
2362
+ ] })
2363
+ ] }),
2364
+ signals.riskTolerance !== void 0 && /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__item", children: [
2365
+ /* @__PURE__ */ jsx("div", { className: "ds-behavioral__item-icon", children: /* @__PURE__ */ jsx(IconTrendingUp, { size: 18 }) }),
2366
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__item-content", children: [
2367
+ /* @__PURE__ */ jsx("span", { className: "ds-behavioral__item-label", children: "Risk Tolerance" }),
2368
+ /* @__PURE__ */ jsxs("div", { className: "ds-behavioral__risk-meter", children: [
2369
+ /* @__PURE__ */ jsx("div", { className: "ds-behavioral__risk-track", children: /* @__PURE__ */ jsx(
2370
+ "div",
2371
+ {
2372
+ className: clsx4(
2373
+ "ds-behavioral__risk-fill",
2374
+ signals.riskTolerance < 33 && "ds-behavioral__risk-fill--low",
2375
+ signals.riskTolerance >= 33 && signals.riskTolerance < 66 && "ds-behavioral__risk-fill--medium",
2376
+ signals.riskTolerance >= 66 && "ds-behavioral__risk-fill--high"
2377
+ ),
2378
+ style: { width: `${signals.riskTolerance}%` }
2379
+ }
2380
+ ) }),
2381
+ /* @__PURE__ */ jsxs("span", { className: "ds-behavioral__risk-label", children: [
2382
+ signals.riskTolerance < 33 && "Conservative",
2383
+ signals.riskTolerance >= 33 && signals.riskTolerance < 66 && "Balanced",
2384
+ signals.riskTolerance >= 66 && "Risk-Tolerant"
2385
+ ] })
2386
+ ] })
2387
+ ] })
2388
+ ] })
2389
+ ] })
2390
+ ] });
2391
+ };
2392
+ var DeepDiveSection = ({
2393
+ data,
2394
+ defaultExpanded = false
2395
+ }) => {
2396
+ const [isExpanded, setIsExpanded] = useState(defaultExpanded);
2397
+ const hasContent = data.education?.length || data.experience?.length || data.strengths?.length || data.risks?.length || data.careerInsights;
2398
+ if (!hasContent) {
2399
+ return null;
2400
+ }
2401
+ return /* @__PURE__ */ jsxs("div", { className: clsx4("ds-deep-dive", isExpanded && "ds-deep-dive--expanded"), children: [
2402
+ /* @__PURE__ */ jsxs(
2403
+ "button",
2404
+ {
2405
+ className: "ds-deep-dive__trigger",
2406
+ onClick: () => setIsExpanded(!isExpanded),
2407
+ "aria-expanded": isExpanded,
2408
+ "aria-controls": "deep-dive-content",
2409
+ children: [
2410
+ /* @__PURE__ */ jsx("span", { className: "ds-deep-dive__trigger-text", children: "Deep Dive & Background" }),
2411
+ /* @__PURE__ */ jsx("span", { className: "ds-deep-dive__trigger-icon", children: isExpanded ? /* @__PURE__ */ jsx(IconChevronUp, { size: 16 }) : /* @__PURE__ */ jsx(IconChevronDown, { size: 16 }) })
2412
+ ]
2413
+ }
2414
+ ),
2415
+ isExpanded && /* @__PURE__ */ jsx("div", { id: "deep-dive-content", className: "ds-deep-dive__content", children: /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__grid", children: [
2416
+ (data.strengths?.length || data.risks?.length) && /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__card ds-deep-dive__card--insights", children: [
2417
+ data.strengths && data.strengths.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section", children: [
2418
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section-header ds-deep-dive__section-header--success", children: [
2419
+ /* @__PURE__ */ jsx(IconTrendingUp, { size: 16 }),
2420
+ /* @__PURE__ */ jsx("h4", { className: "ds-deep-dive__section-title", children: "Key Strengths" })
2421
+ ] }),
2422
+ /* @__PURE__ */ jsx("ul", { className: "ds-deep-dive__list", children: data.strengths.map((strength, idx) => /* @__PURE__ */ jsx("li", { className: "ds-deep-dive__list-item", children: strength }, idx)) })
2423
+ ] }),
2424
+ data.risks && data.risks.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section", children: [
2425
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section-header ds-deep-dive__section-header--warning", children: [
2426
+ /* @__PURE__ */ jsx(IconAlertTriangle, { size: 16 }),
2427
+ /* @__PURE__ */ jsx("h4", { className: "ds-deep-dive__section-title", children: "Watch Out For" })
2428
+ ] }),
2429
+ /* @__PURE__ */ jsx("ul", { className: "ds-deep-dive__list", children: data.risks.map((risk, idx) => /* @__PURE__ */ jsx("li", { className: "ds-deep-dive__list-item", children: risk }, idx)) })
2430
+ ] })
2431
+ ] }),
2432
+ data.education && data.education.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__card", children: [
2433
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section-header", children: [
2434
+ /* @__PURE__ */ jsx(IconSchool, { size: 16 }),
2435
+ /* @__PURE__ */ jsx("h4", { className: "ds-deep-dive__section-title", children: "Education" })
2436
+ ] }),
2437
+ /* @__PURE__ */ jsx("div", { className: "ds-deep-dive__timeline", children: data.education.map((edu, idx) => /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__timeline-item", children: [
2438
+ edu.logo ? /* @__PURE__ */ jsx(
2439
+ "img",
2440
+ {
2441
+ src: edu.logo,
2442
+ alt: edu.school,
2443
+ className: "ds-deep-dive__timeline-logo"
2444
+ }
2445
+ ) : /* @__PURE__ */ jsx("div", { className: "ds-deep-dive__timeline-icon", children: /* @__PURE__ */ jsx(IconSchool, { size: 16 }) }),
2446
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__timeline-content", children: [
2447
+ /* @__PURE__ */ jsx("h5", { className: "ds-deep-dive__timeline-title", children: edu.school }),
2448
+ /* @__PURE__ */ jsxs("p", { className: "ds-deep-dive__timeline-subtitle", children: [
2449
+ edu.degree,
2450
+ edu.field && ` in ${edu.field}`
2451
+ ] }),
2452
+ /* @__PURE__ */ jsx("span", { className: "ds-deep-dive__timeline-date", children: edu.year })
2453
+ ] })
2454
+ ] }, idx)) })
2455
+ ] }),
2456
+ data.experience && data.experience.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__card", children: [
2457
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section-header", children: [
2458
+ /* @__PURE__ */ jsx(IconBriefcase, { size: 16 }),
2459
+ /* @__PURE__ */ jsx("h4", { className: "ds-deep-dive__section-title", children: "Experience" })
2460
+ ] }),
2461
+ /* @__PURE__ */ jsx("div", { className: "ds-deep-dive__timeline", children: data.experience.map((exp, idx) => /* @__PURE__ */ jsxs(
2462
+ "div",
2463
+ {
2464
+ className: clsx4(
2465
+ "ds-deep-dive__timeline-item",
2466
+ exp.current && "ds-deep-dive__timeline-item--current"
2467
+ ),
2468
+ children: [
2469
+ exp.logo ? /* @__PURE__ */ jsx(
2470
+ "img",
2471
+ {
2472
+ src: exp.logo,
2473
+ alt: exp.company,
2474
+ className: "ds-deep-dive__timeline-logo"
2475
+ }
2476
+ ) : /* @__PURE__ */ jsx("div", { className: "ds-deep-dive__timeline-icon", children: /* @__PURE__ */ jsx(IconBriefcase, { size: 16 }) }),
2477
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__timeline-content", children: [
2478
+ /* @__PURE__ */ jsx("h5", { className: "ds-deep-dive__timeline-title", children: exp.role }),
2479
+ /* @__PURE__ */ jsx("p", { className: "ds-deep-dive__timeline-subtitle", children: exp.company }),
2480
+ /* @__PURE__ */ jsxs("span", { className: "ds-deep-dive__timeline-date", children: [
2481
+ exp.duration,
2482
+ exp.current && /* @__PURE__ */ jsx("span", { className: "ds-deep-dive__current-badge", children: "Current" })
2483
+ ] })
2484
+ ] })
2485
+ ]
2486
+ },
2487
+ idx
2488
+ )) })
2489
+ ] }),
2490
+ data.careerInsights && /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__card ds-deep-dive__card--wide", children: [
2491
+ /* @__PURE__ */ jsxs("div", { className: "ds-deep-dive__section-header", children: [
2492
+ /* @__PURE__ */ jsx(IconTrendingUp, { size: 16 }),
2493
+ /* @__PURE__ */ jsx("h4", { className: "ds-deep-dive__section-title", children: "Career Trajectory" })
2494
+ ] }),
2495
+ /* @__PURE__ */ jsx("p", { className: "ds-deep-dive__narrative", children: data.careerInsights })
2496
+ ] })
2497
+ ] }) })
2498
+ ] });
2499
+ };
2500
+ var LeadProfileView = React4.forwardRef(
2501
+ ({ state, data, analysisProgress, onRefresh, className }, ref) => {
2502
+ if (state === "empty") {
2503
+ return /* @__PURE__ */ jsx("div", { ref, className: clsx4("ds-lead-profile", "ds-lead-profile--empty", className), children: /* @__PURE__ */ jsx(EmptyStateDisplay, { onRefresh }) });
2504
+ }
2505
+ if (state === "loading") {
2506
+ return /* @__PURE__ */ jsx("div", { ref, className: clsx4("ds-lead-profile", "ds-lead-profile--loading", className), children: /* @__PURE__ */ jsx(LoadingStateDisplay, { progress: analysisProgress }) });
2507
+ }
2508
+ if (!data) return null;
2509
+ const isPartial = state === "partial";
2510
+ const hasMBTI = !isPartial && data.mbtiScores?.length;
2511
+ const hasBehavioral = !isPartial && data.behavioralSignals;
2512
+ return /* @__PURE__ */ jsxs("div", { ref, className: clsx4("ds-lead-profile", `ds-lead-profile--${state}`, className), children: [
2513
+ /* @__PURE__ */ jsx("section", { className: "ds-lead-profile__zone ds-lead-profile__zone--identity", children: /* @__PURE__ */ jsx(IdentityHeader, { data, compact: isPartial }) }),
2514
+ /* @__PURE__ */ jsxs("section", { className: "ds-lead-profile__zone ds-lead-profile__zone--intelligence", children: [
2515
+ /* @__PURE__ */ jsx(IntelligenceSummary, { data, isLocked: isPartial }),
2516
+ (hasMBTI || isPartial) && /* @__PURE__ */ jsx("div", { className: "ds-lead-profile__mbti-wrapper", children: /* @__PURE__ */ jsx(
2517
+ MBTISpectrum,
2518
+ {
2519
+ scores: data.mbtiScores || [],
2520
+ mbtiType: data.mbtiType,
2521
+ isLocked: isPartial
2522
+ }
2523
+ ) }),
2524
+ (hasBehavioral || isPartial) && data.behavioralSignals && /* @__PURE__ */ jsx(BehavioralHighlights, { signals: data.behavioralSignals, isLocked: isPartial }),
2525
+ isPartial && /* @__PURE__ */ jsx("div", { className: "ds-lead-profile__partial-notice", children: /* @__PURE__ */ jsxs("div", { className: "ds-lead-profile__partial-notice-content", children: [
2526
+ /* @__PURE__ */ jsx("span", { className: "ds-lead-profile__partial-notice-text", children: "Full intelligence analysis will be available shortly" }),
2527
+ /* @__PURE__ */ jsx("div", { className: "ds-lead-profile__partial-notice-progress", children: /* @__PURE__ */ jsx("div", { className: "ds-lead-profile__partial-notice-bar" }) })
2528
+ ] }) })
2529
+ ] }),
2530
+ !isPartial && /* @__PURE__ */ jsx("section", { className: "ds-lead-profile__zone ds-lead-profile__zone--deep-dive", children: /* @__PURE__ */ jsx(DeepDiveSection, { data }) })
2531
+ ] });
2532
+ }
2533
+ );
2534
+ LeadProfileView.displayName = "LeadProfileView";
2535
+
2536
+ export { ChangeEmail, DataTable, DataTableBody, DataTableCell, DataTableHead, DataTableHeader, DataTableRow, FloatingTabBar, ForgotPassword, LeadProfileView, Login, Shell, Sidebar, SidebarItem, SidebarSection, Signup, TabItem };
2537
+ //# sourceMappingURL=out.js.map
2538
+ //# sourceMappingURL=chunk-OXNXEQY7.js.map