@salesmind-ai/design-system 0.3.2 → 0.3.4

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 (215) hide show
  1. package/dist/{SectionShell-BfBw5q0Y.d.cts → SectionShell-GlglHCzz.d.cts} +1 -0
  2. package/dist/{SectionShell-BfBw5q0Y.d.ts → SectionShell-GlglHCzz.d.ts} +1 -0
  3. package/dist/StatsSection-B8iD9L-o.d.ts +68 -0
  4. package/dist/StatsSection-wgd8Vge1.d.cts +68 -0
  5. package/dist/admin/index.cjs +2928 -68
  6. package/dist/admin/index.cjs.map +1 -1
  7. package/dist/admin/index.js +2915 -5
  8. package/dist/admin/index.js.map +1 -1
  9. package/dist/blog/index.cjs +1064 -53
  10. package/dist/blog/index.cjs.map +1 -1
  11. package/dist/blog/index.d.cts +1 -1
  12. package/dist/blog/index.d.ts +1 -1
  13. package/dist/blog/index.js +1054 -8
  14. package/dist/blog/index.js.map +1 -1
  15. package/dist/charts/index.cjs +2694 -46
  16. package/dist/charts/index.cjs.map +1 -1
  17. package/dist/charts/index.js +2680 -3
  18. package/dist/charts/index.js.map +1 -1
  19. package/dist/core/index.cjs +4333 -807
  20. package/dist/core/index.cjs.map +1 -1
  21. package/dist/core/index.js +4130 -14
  22. package/dist/core/index.js.map +1 -1
  23. package/dist/i18n/index.cjs +558 -86
  24. package/dist/i18n/index.cjs.map +1 -1
  25. package/dist/i18n/index.js +544 -1
  26. package/dist/i18n/index.js.map +1 -1
  27. package/dist/index.cjs +17140 -1432
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.css +24 -13
  30. package/dist/index.css.map +1 -1
  31. package/dist/index.d.cts +2 -2
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.js +16785 -31
  34. package/dist/index.js.map +1 -1
  35. package/dist/marketing/index.cjs +3072 -142
  36. package/dist/marketing/index.cjs.map +1 -1
  37. package/dist/marketing/index.d.cts +1 -1
  38. package/dist/marketing/index.d.ts +1 -1
  39. package/dist/marketing/index.js +3042 -11
  40. package/dist/marketing/index.js.map +1 -1
  41. package/dist/motion/index.cjs +1222 -26
  42. package/dist/motion/index.cjs.map +1 -1
  43. package/dist/motion/index.js +1215 -2
  44. package/dist/motion/index.js.map +1 -1
  45. package/dist/nav/index.cjs +1518 -101
  46. package/dist/nav/index.cjs.map +1 -1
  47. package/dist/nav/index.css +24 -13
  48. package/dist/nav/index.css.map +1 -1
  49. package/dist/nav/index.js +1498 -4
  50. package/dist/nav/index.js.map +1 -1
  51. package/dist/report/index.cjs +2403 -171
  52. package/dist/report/index.cjs.map +1 -1
  53. package/dist/report/index.js +2363 -3
  54. package/dist/report/index.js.map +1 -1
  55. package/dist/sections/index.cjs +382 -28
  56. package/dist/sections/index.cjs.map +1 -1
  57. package/dist/sections/index.d.cts +15 -69
  58. package/dist/sections/index.d.ts +15 -69
  59. package/dist/sections/index.js +376 -4
  60. package/dist/sections/index.js.map +1 -1
  61. package/dist/social-proof/index.cjs +1250 -53
  62. package/dist/social-proof/index.cjs.map +1 -1
  63. package/dist/social-proof/index.d.cts +1 -1
  64. package/dist/social-proof/index.d.ts +1 -1
  65. package/dist/social-proof/index.js +1235 -6
  66. package/dist/social-proof/index.js.map +1 -1
  67. package/dist/theme/index.cjs +565 -38
  68. package/dist/theme/index.cjs.map +1 -1
  69. package/dist/theme/index.js +555 -2
  70. package/dist/theme/index.js.map +1 -1
  71. package/dist/web/client/index.cjs +491 -38
  72. package/dist/web/client/index.cjs.map +1 -1
  73. package/dist/web/client/index.js +483 -4
  74. package/dist/web/client/index.js.map +1 -1
  75. package/dist/web/index.cjs +1346 -158
  76. package/dist/web/index.cjs.map +1 -1
  77. package/dist/web/index.js +1305 -9
  78. package/dist/web/index.js.map +1 -1
  79. package/dist/web/server/index.cjs +563 -26
  80. package/dist/web/server/index.cjs.map +1 -1
  81. package/dist/web/server/index.js +560 -1
  82. package/dist/web/server/index.js.map +1 -1
  83. package/package.json +11 -1
  84. package/dist/chunk-2GARWEJK.js +0 -17
  85. package/dist/chunk-2GARWEJK.js.map +0 -1
  86. package/dist/chunk-3NKRFUAR.js +0 -37
  87. package/dist/chunk-3NKRFUAR.js.map +0 -1
  88. package/dist/chunk-3TGSIILM.cjs +0 -201
  89. package/dist/chunk-3TGSIILM.cjs.map +0 -1
  90. package/dist/chunk-4GM5BGBN.cjs +0 -801
  91. package/dist/chunk-4GM5BGBN.cjs.map +0 -1
  92. package/dist/chunk-5LGDEZWY.cjs +0 -2434
  93. package/dist/chunk-5LGDEZWY.cjs.map +0 -1
  94. package/dist/chunk-6H4DSTXR.js +0 -786
  95. package/dist/chunk-6H4DSTXR.js.map +0 -1
  96. package/dist/chunk-6UNG76Y2.js +0 -153
  97. package/dist/chunk-6UNG76Y2.js.map +0 -1
  98. package/dist/chunk-7PX2AZ6Y.js +0 -39
  99. package/dist/chunk-7PX2AZ6Y.js.map +0 -1
  100. package/dist/chunk-B6AVAX4F.js +0 -1415
  101. package/dist/chunk-B6AVAX4F.js.map +0 -1
  102. package/dist/chunk-BILT5KD3.js +0 -264
  103. package/dist/chunk-BILT5KD3.js.map +0 -1
  104. package/dist/chunk-C2BCDNAV.js +0 -24
  105. package/dist/chunk-C2BCDNAV.js.map +0 -1
  106. package/dist/chunk-CH42VPWE.cjs +0 -421
  107. package/dist/chunk-CH42VPWE.cjs.map +0 -1
  108. package/dist/chunk-CJ2MKVAF.cjs +0 -46
  109. package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
  110. package/dist/chunk-DP74LUXG.cjs +0 -98
  111. package/dist/chunk-DP74LUXG.cjs.map +0 -1
  112. package/dist/chunk-E7D6EKJ4.cjs +0 -44
  113. package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
  114. package/dist/chunk-ECXBTUH6.cjs +0 -584
  115. package/dist/chunk-ECXBTUH6.cjs.map +0 -1
  116. package/dist/chunk-EFRAP5ES.js +0 -157
  117. package/dist/chunk-EFRAP5ES.js.map +0 -1
  118. package/dist/chunk-F6YYWMME.js +0 -485
  119. package/dist/chunk-F6YYWMME.js.map +0 -1
  120. package/dist/chunk-FAFAP4L5.js +0 -183
  121. package/dist/chunk-FAFAP4L5.js.map +0 -1
  122. package/dist/chunk-GUZIMHWS.js +0 -1608
  123. package/dist/chunk-GUZIMHWS.js.map +0 -1
  124. package/dist/chunk-H2Y6BSTL.cjs +0 -69
  125. package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
  126. package/dist/chunk-HN4PHABT.js +0 -126
  127. package/dist/chunk-HN4PHABT.js.map +0 -1
  128. package/dist/chunk-HRENHNDJ.js +0 -211
  129. package/dist/chunk-HRENHNDJ.js.map +0 -1
  130. package/dist/chunk-I75BFEYT.cjs +0 -2561
  131. package/dist/chunk-I75BFEYT.cjs.map +0 -1
  132. package/dist/chunk-IFRATNLU.js +0 -562
  133. package/dist/chunk-IFRATNLU.js.map +0 -1
  134. package/dist/chunk-IYPXJ6YC.cjs +0 -69
  135. package/dist/chunk-IYPXJ6YC.cjs.map +0 -1
  136. package/dist/chunk-JPJN4YBC.js +0 -409
  137. package/dist/chunk-JPJN4YBC.js.map +0 -1
  138. package/dist/chunk-KBA2LFBG.js +0 -62
  139. package/dist/chunk-KBA2LFBG.js.map +0 -1
  140. package/dist/chunk-KCKUSU2M.cjs +0 -166
  141. package/dist/chunk-KCKUSU2M.cjs.map +0 -1
  142. package/dist/chunk-KJ2OXQF4.js +0 -287
  143. package/dist/chunk-KJ2OXQF4.js.map +0 -1
  144. package/dist/chunk-KNQEIU7O.cjs +0 -1202
  145. package/dist/chunk-KNQEIU7O.cjs.map +0 -1
  146. package/dist/chunk-KVGSVGRK.cjs +0 -569
  147. package/dist/chunk-KVGSVGRK.cjs.map +0 -1
  148. package/dist/chunk-L352JRV6.cjs +0 -105
  149. package/dist/chunk-L352JRV6.cjs.map +0 -1
  150. package/dist/chunk-LJADZITX.cjs +0 -298
  151. package/dist/chunk-LJADZITX.cjs.map +0 -1
  152. package/dist/chunk-LMJPWXTZ.cjs +0 -194
  153. package/dist/chunk-LMJPWXTZ.cjs.map +0 -1
  154. package/dist/chunk-LOWEAQST.js +0 -701
  155. package/dist/chunk-LOWEAQST.js.map +0 -1
  156. package/dist/chunk-MDB2WCRQ.cjs +0 -137
  157. package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
  158. package/dist/chunk-MQDEE7HC.cjs +0 -283
  159. package/dist/chunk-MQDEE7HC.cjs.map +0 -1
  160. package/dist/chunk-MQRB634A.cjs +0 -34
  161. package/dist/chunk-MQRB634A.cjs.map +0 -1
  162. package/dist/chunk-MTI27RDV.js +0 -185
  163. package/dist/chunk-MTI27RDV.js.map +0 -1
  164. package/dist/chunk-MU6GW5ZV.js +0 -2317
  165. package/dist/chunk-MU6GW5ZV.js.map +0 -1
  166. package/dist/chunk-NN3TUHIH.js +0 -28
  167. package/dist/chunk-NN3TUHIH.js.map +0 -1
  168. package/dist/chunk-NT4LBP7D.cjs +0 -111
  169. package/dist/chunk-NT4LBP7D.cjs.map +0 -1
  170. package/dist/chunk-OLV7OD3X.cjs +0 -502
  171. package/dist/chunk-OLV7OD3X.cjs.map +0 -1
  172. package/dist/chunk-OXNXEQY7.js +0 -2538
  173. package/dist/chunk-OXNXEQY7.js.map +0 -1
  174. package/dist/chunk-P5BOFE5A.js +0 -546
  175. package/dist/chunk-P5BOFE5A.js.map +0 -1
  176. package/dist/chunk-Q2MFGYTE.cjs +0 -1449
  177. package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
  178. package/dist/chunk-Q75DBVDY.cjs +0 -68
  179. package/dist/chunk-Q75DBVDY.cjs.map +0 -1
  180. package/dist/chunk-REQ5Q6ZI.js +0 -1022
  181. package/dist/chunk-REQ5Q6ZI.js.map +0 -1
  182. package/dist/chunk-SICKWUWB.js +0 -62
  183. package/dist/chunk-SICKWUWB.js.map +0 -1
  184. package/dist/chunk-T343CCH5.js +0 -1190
  185. package/dist/chunk-T343CCH5.js.map +0 -1
  186. package/dist/chunk-TEC62D4A.cjs +0 -1624
  187. package/dist/chunk-TEC62D4A.cjs.map +0 -1
  188. package/dist/chunk-TW5JB35D.js +0 -2122
  189. package/dist/chunk-TW5JB35D.js.map +0 -1
  190. package/dist/chunk-VC5LMUVQ.cjs +0 -20
  191. package/dist/chunk-VC5LMUVQ.cjs.map +0 -1
  192. package/dist/chunk-VM7WFMKI.cjs +0 -76
  193. package/dist/chunk-VM7WFMKI.cjs.map +0 -1
  194. package/dist/chunk-W2WTP6HS.cjs +0 -233
  195. package/dist/chunk-W2WTP6HS.cjs.map +0 -1
  196. package/dist/chunk-WH7PYHZY.cjs +0 -35
  197. package/dist/chunk-WH7PYHZY.cjs.map +0 -1
  198. package/dist/chunk-XQZVY7JJ.cjs +0 -717
  199. package/dist/chunk-XQZVY7JJ.cjs.map +0 -1
  200. package/dist/chunk-XU3OMQ7V.js +0 -98
  201. package/dist/chunk-XU3OMQ7V.js.map +0 -1
  202. package/dist/chunk-XWPDRMZG.js +0 -62
  203. package/dist/chunk-XWPDRMZG.js.map +0 -1
  204. package/dist/chunk-Y3CPKNB7.js +0 -67
  205. package/dist/chunk-Y3CPKNB7.js.map +0 -1
  206. package/dist/chunk-YNVRDD2P.js +0 -98
  207. package/dist/chunk-YNVRDD2P.js.map +0 -1
  208. package/dist/chunk-YSYR54XR.js +0 -92
  209. package/dist/chunk-YSYR54XR.js.map +0 -1
  210. package/dist/chunk-YTYDQBVY.cjs +0 -162
  211. package/dist/chunk-YTYDQBVY.cjs.map +0 -1
  212. package/dist/chunk-ZDLOA2UT.cjs +0 -1042
  213. package/dist/chunk-ZDLOA2UT.cjs.map +0 -1
  214. package/dist/chunk-ZWUKRCOJ.cjs +0 -2162
  215. package/dist/chunk-ZWUKRCOJ.cjs.map +0 -1
@@ -1,2538 +0,0 @@
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