@dmitriikapustin/ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -34,6 +34,12 @@ var __objRest = (source, exclude) => {
34
34
  }
35
35
  return target;
36
36
  };
37
+
38
+ // src/atoms/Spinner.module.scss
39
+ var Spinner_module_default = {
40
+ root: "Spinner_module_root",
41
+ fallback: "Spinner_module_fallback"
42
+ };
37
43
  var sizeMap = {
38
44
  sm: 32,
39
45
  md: 48,
@@ -41,7 +47,7 @@ var sizeMap = {
41
47
  };
42
48
  var cachedData = null;
43
49
  function Spinner({ size = "md", className = "" }) {
44
- const s = sizeMap[size];
50
+ const px = sizeMap[size];
45
51
  const [data, setData] = useState(() => cachedData);
46
52
  useEffect(() => {
47
53
  if (data) return;
@@ -60,8 +66,8 @@ function Spinner({ size = "md", className = "" }) {
60
66
  return /* @__PURE__ */ jsx(
61
67
  "div",
62
68
  {
63
- className: `inline-flex items-center justify-center ${className}`,
64
- style: { width: s, height: s },
69
+ className: `${Spinner_module_default.root} ${className}`,
70
+ style: { width: px, height: px },
65
71
  "aria-label": "Loading",
66
72
  children: data ? /* @__PURE__ */ jsx(
67
73
  Lottie,
@@ -69,27 +75,29 @@ function Spinner({ size = "md", className = "" }) {
69
75
  animationData: data,
70
76
  loop: true,
71
77
  autoplay: true,
72
- style: { width: s, height: s }
78
+ style: { width: px, height: px }
73
79
  }
74
80
  ) : /* @__PURE__ */ jsx(
75
81
  "div",
76
82
  {
77
- className: "rounded-full border-2 border-[var(--border-color)] border-t-[var(--fg)] animate-spin",
78
- style: { width: s * 0.7, height: s * 0.7 }
83
+ className: Spinner_module_default.fallback,
84
+ style: { width: px * 0.7, height: px * 0.7 }
79
85
  }
80
86
  )
81
87
  }
82
88
  );
83
89
  }
84
- var variantStyles = {
85
- primary: "bg-[var(--fg)] text-[var(--bg)] border border-[var(--bg)] hover:opacity-90 active:opacity-80 shadow-[var(--shadow-sm)]",
86
- secondary: "bg-[var(--bg-tertiary)] text-[var(--fg)] hover:bg-[var(--border-color)] active:bg-[var(--border-color-strong)]",
87
- outline: "border border-[var(--fg-secondary)] text-[var(--fg-secondary)] hover:bg-[var(--bg-tertiary)] active:bg-[var(--border-color)]",
88
- ghost: "text-[var(--fg-secondary)] hover:text-[var(--fg)] hover:bg-[var(--bg-tertiary)] active:bg-[var(--border-color)]"
89
- };
90
- var sizeStyles = {
91
- sm: "text-[13px] px-4 py-2 gap-1.5 rounded-full tracking-[-0.25px]",
92
- md: "text-[13px] px-4 py-2 gap-2 rounded-full tracking-[-0.25px]"
90
+
91
+ // src/atoms/Button.module.scss
92
+ var Button_module_default = {
93
+ root: "Button_module_root",
94
+ primary: "Button_module_primary",
95
+ secondary: "Button_module_secondary",
96
+ outline: "Button_module_outline",
97
+ ghost: "Button_module_ghost",
98
+ sm: "Button_module_sm",
99
+ md: "Button_module_md",
100
+ disabled: "Button_module_disabled"
93
101
  };
94
102
  function Button(_a) {
95
103
  var _b = _a, {
@@ -114,7 +122,7 @@ function Button(_a) {
114
122
  return /* @__PURE__ */ jsxs(
115
123
  "button",
116
124
  __spreadProps(__spreadValues({
117
- className: `inline-flex items-center justify-center font-medium transition-all duration-[var(--transition-fast)] cursor-pointer select-none whitespace-nowrap ${variantStyles[variant]} ${sizeStyles[size]} ${disabled || loading ? "opacity-50 cursor-not-allowed pointer-events-none" : ""} ${className}`,
125
+ className: `${Button_module_default.root} ${Button_module_default[variant]} ${Button_module_default[size]}${disabled || loading ? ` ${Button_module_default.disabled}` : ""}${className ? ` ${className}` : ""}`,
118
126
  disabled: disabled || loading
119
127
  }, props), {
120
128
  children: [
@@ -125,6 +133,20 @@ function Button(_a) {
125
133
  })
126
134
  );
127
135
  }
136
+
137
+ // src/atoms/Input.module.scss
138
+ var Input_module_default = {
139
+ wrapper: "Input_module_wrapper",
140
+ label: "Input_module_label",
141
+ inputWrap: "Input_module_inputWrap",
142
+ input: "Input_module_input",
143
+ hasIconLeft: "Input_module_hasIconLeft",
144
+ hasIconRight: "Input_module_hasIconRight",
145
+ iconLeft: "Input_module_iconLeft",
146
+ iconRight: "Input_module_iconRight",
147
+ error: "Input_module_error",
148
+ errorText: "Input_module_errorText"
149
+ };
128
150
  function Input(_a) {
129
151
  var _b = _a, {
130
152
  label,
@@ -142,41 +164,37 @@ function Input(_a) {
142
164
  "id"
143
165
  ]);
144
166
  const inputId = id || (label == null ? void 0 : label.toLowerCase().replace(/\s+/g, "-"));
145
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
146
- label && /* @__PURE__ */ jsx(
147
- "label",
148
- {
149
- htmlFor: inputId,
150
- className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]",
151
- children: label
152
- }
153
- ),
154
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
155
- icon && /* @__PURE__ */ jsx("span", { className: "absolute left-3.5 top-1/2 -translate-y-1/2 text-[var(--fg-muted)]", children: icon }),
167
+ return /* @__PURE__ */ jsxs("div", { className: Input_module_default.wrapper, children: [
168
+ label && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: Input_module_default.label, children: label }),
169
+ /* @__PURE__ */ jsxs("div", { className: Input_module_default.inputWrap, children: [
170
+ icon && /* @__PURE__ */ jsx("span", { className: Input_module_default.iconLeft, children: icon }),
156
171
  /* @__PURE__ */ jsx(
157
172
  "input",
158
173
  __spreadValues({
159
174
  id: inputId,
160
- className: `w-full border border-[var(--fg-muted)] bg-[var(--bg)] px-[15px] py-3 text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)] placeholder:text-[var(--fg-muted)] transition-all duration-[var(--transition-fast)] focus:outline-none focus:border-[var(--fg)] rounded-full ${icon ? "pl-10" : ""} ${iconRight ? "pr-10" : ""} ${error ? "border-[var(--color-error)] focus:border-[var(--color-error)]" : ""} ${className}`
175
+ className: `${Input_module_default.input}${icon ? ` ${Input_module_default.hasIconLeft}` : ""}${iconRight ? ` ${Input_module_default.hasIconRight}` : ""}${error ? ` ${Input_module_default.error}` : ""}${className ? ` ${className}` : ""}`
161
176
  }, props)
162
177
  ),
163
- iconRight && /* @__PURE__ */ jsx("span", { className: "absolute right-3.5 top-1/2 -translate-y-1/2 text-[var(--fg-muted)]", children: iconRight })
178
+ iconRight && /* @__PURE__ */ jsx("span", { className: Input_module_default.iconRight, children: iconRight })
164
179
  ] }),
165
- error && /* @__PURE__ */ jsx("p", { className: "text-[13px] tracking-[-0.25px] text-[var(--color-error)]", children: error })
180
+ error && /* @__PURE__ */ jsx("p", { className: Input_module_default.errorText, children: error })
166
181
  ] });
167
182
  }
168
- var colorStyles = {
169
- default: "bg-[var(--bg-tertiary)] text-[var(--fg)]",
170
- success: "bg-[var(--bg-tertiary)] text-[var(--color-success)]",
171
- warning: "bg-[var(--bg-tertiary)] text-[var(--color-warning)]",
172
- error: "bg-[var(--bg-tertiary)] text-[var(--color-error)]",
173
- info: "bg-[var(--bg-tertiary)] text-[var(--color-info)]"
183
+
184
+ // src/atoms/Badge.module.scss
185
+ var Badge_module_default = {
186
+ root: "Badge_module_root",
187
+ default: "Badge_module_default",
188
+ success: "Badge_module_success",
189
+ warning: "Badge_module_warning",
190
+ error: "Badge_module_error",
191
+ info: "Badge_module_info"
174
192
  };
175
193
  function Badge({ color = "default", children, className = "" }) {
176
194
  return /* @__PURE__ */ jsx(
177
195
  "span",
178
196
  {
179
- className: `inline-flex items-center px-2.5 py-0.5 rounded-full text-[13px] font-semibold tracking-[-0.25px] ${colorStyles[color]} ${className}`,
197
+ className: `${Badge_module_default.root} ${Badge_module_default[color]}${className ? ` ${className}` : ""}`,
180
198
  children
181
199
  }
182
200
  );
@@ -214,71 +232,108 @@ var IconlyEye = IconlyActivity;
214
232
  var IconlyEyeOff = IconlyActivity;
215
233
  var IconlyChevronRight = IconlyActivity;
216
234
  var IconlyChevronLeft = IconlyActivity;
217
- var colorStyles2 = {
218
- default: "bg-[var(--bg-tertiary)] text-[var(--fg-secondary)] border-[var(--border-color)]",
219
- primary: "bg-[var(--bg-tertiary)] text-[var(--fg)] border-[var(--border-color-strong)]",
220
- success: "bg-[var(--bg-tertiary)] text-[var(--color-success)] border-[var(--border-color)]",
221
- warning: "bg-[var(--bg-tertiary)] text-[var(--color-warning)] border-[var(--border-color)]",
222
- error: "bg-[var(--bg-tertiary)] text-[var(--color-error)] border-[var(--border-color)]"
235
+
236
+ // src/atoms/Tag.module.scss
237
+ var Tag_module_default = {
238
+ root: "Tag_module_root",
239
+ default: "Tag_module_default",
240
+ primary: "Tag_module_primary",
241
+ success: "Tag_module_success",
242
+ warning: "Tag_module_warning",
243
+ error: "Tag_module_error",
244
+ closeBtn: "Tag_module_closeBtn"
223
245
  };
224
246
  function Tag({ color = "default", closable = false, onClose, children, className = "" }) {
247
+ return /* @__PURE__ */ jsxs("span", { className: `${Tag_module_default.root} ${Tag_module_default[color]} ${className}`, children: [
248
+ children,
249
+ closable && /* @__PURE__ */ jsx(
250
+ "button",
251
+ {
252
+ onClick: onClose,
253
+ className: Tag_module_default.closeBtn,
254
+ "aria-label": "Remove tag",
255
+ children: /* @__PURE__ */ jsx(IconlyClose, { size: 12 })
256
+ }
257
+ )
258
+ ] });
259
+ }
260
+
261
+ // src/atoms/Toggle.module.scss
262
+ var Toggle_module_default = {
263
+ root: "Toggle_module_root",
264
+ track: "Toggle_module_track",
265
+ trackOn: "Toggle_module_trackOn",
266
+ trackOff: "Toggle_module_trackOff",
267
+ knob: "Toggle_module_knob",
268
+ knobOn: "Toggle_module_knobOn",
269
+ knobOff: "Toggle_module_knobOff",
270
+ label: "Toggle_module_label",
271
+ disabled: "Toggle_module_disabled"
272
+ };
273
+ function Toggle({
274
+ checked = false,
275
+ onChange,
276
+ label,
277
+ disabled = false,
278
+ className = ""
279
+ }) {
225
280
  return /* @__PURE__ */ jsxs(
226
- "span",
281
+ "label",
227
282
  {
228
- className: `inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-[13px] font-medium tracking-[-0.25px] border ${colorStyles2[color]} ${className}`,
283
+ className: `${Toggle_module_default.root}${disabled ? ` ${Toggle_module_default.disabled}` : ""}${className ? ` ${className}` : ""}`,
229
284
  children: [
230
- children,
231
- closable && /* @__PURE__ */ jsx(
285
+ /* @__PURE__ */ jsx(
232
286
  "button",
233
287
  {
234
- onClick: onClose,
235
- className: "hover:opacity-70 transition-opacity cursor-pointer",
236
- "aria-label": "Remove tag",
237
- children: /* @__PURE__ */ jsx(IconlyClose, { size: 12 })
288
+ role: "switch",
289
+ type: "button",
290
+ "aria-checked": checked,
291
+ disabled,
292
+ onClick: () => onChange == null ? void 0 : onChange(!checked),
293
+ className: `${Toggle_module_default.track} ${checked ? Toggle_module_default.trackOn : Toggle_module_default.trackOff}${disabled ? ` ${Toggle_module_default.disabled}` : ""}`,
294
+ children: /* @__PURE__ */ jsx(
295
+ "span",
296
+ {
297
+ className: `${Toggle_module_default.knob} ${checked ? Toggle_module_default.knobOn : Toggle_module_default.knobOff}`
298
+ }
299
+ )
238
300
  }
239
- )
301
+ ),
302
+ label && /* @__PURE__ */ jsx("span", { className: Toggle_module_default.label, children: label })
240
303
  ]
241
304
  }
242
305
  );
243
306
  }
244
- function Toggle({ checked = false, onChange, label, disabled = false, className = "" }) {
245
- return /* @__PURE__ */ jsxs("label", { className: `inline-flex items-center gap-2.5 ${disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"} ${className}`, children: [
246
- /* @__PURE__ */ jsx(
247
- "button",
248
- {
249
- role: "switch",
250
- type: "button",
251
- "aria-checked": checked,
252
- disabled,
253
- onClick: () => onChange == null ? void 0 : onChange(!checked),
254
- className: `relative inline-flex h-6 w-11 shrink-0 items-center rounded-full px-0.5 transition-colors duration-200 ease-in-out focus:outline-none cursor-pointer ${checked ? "bg-[var(--color-accent)] justify-end" : "bg-[var(--border-color)]"} ${disabled ? "cursor-not-allowed" : ""}`,
255
- children: /* @__PURE__ */ jsx(
256
- "span",
257
- {
258
- className: "pointer-events-none inline-block h-5 w-5 rounded-full bg-white transition-transform duration-200 ease-in-out"
259
- }
260
- )
261
- }
262
- ),
263
- label && /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]", children: label })
264
- ] });
265
- }
266
- var sizeMap2 = {
267
- sm: { container: "w-8 h-8", text: "text-xs" },
268
- md: { container: "w-10 h-10", text: "text-sm" },
269
- lg: { container: "w-12 h-12", text: "text-base" },
270
- xl: { container: "w-16 h-16", text: "text-lg" }
307
+
308
+ // src/atoms/Avatar.module.scss
309
+ var Avatar_module_default = {
310
+ root: "Avatar_module_root",
311
+ initials: "Avatar_module_initials",
312
+ initialsText: "Avatar_module_initialsText",
313
+ sm: "Avatar_module_sm",
314
+ md: "Avatar_module_md",
315
+ lg: "Avatar_module_lg",
316
+ xl: "Avatar_module_xl",
317
+ textSm: "Avatar_module_textSm",
318
+ textMd: "Avatar_module_textMd",
319
+ textLg: "Avatar_module_textLg",
320
+ textXl: "Avatar_module_textXl"
321
+ };
322
+ var textSizeMap = {
323
+ sm: Avatar_module_default.textSm,
324
+ md: Avatar_module_default.textMd,
325
+ lg: Avatar_module_default.textLg,
326
+ xl: Avatar_module_default.textXl
271
327
  };
272
328
  function Avatar(_a) {
273
329
  var _b = _a, { src, alt = "", initials, size = "md", className = "" } = _b, props = __objRest(_b, ["src", "alt", "initials", "size", "className"]);
274
- const s = sizeMap2[size];
275
330
  if (!src && initials) {
276
331
  return /* @__PURE__ */ jsx(
277
332
  "div",
278
333
  {
279
- className: `${s.container} rounded-full bg-[var(--bg-tertiary)] border border-[var(--border-color)] flex items-center justify-center ${className}`,
334
+ className: `${Avatar_module_default.initials} ${Avatar_module_default[size]}${className ? ` ${className}` : ""}`,
280
335
  "aria-label": alt || initials,
281
- children: /* @__PURE__ */ jsx("span", { className: `${s.text} font-medium text-[var(--fg-secondary)] select-none`, children: initials })
336
+ children: /* @__PURE__ */ jsx("span", { className: `${Avatar_module_default.initialsText} ${textSizeMap[size]}`, children: initials })
282
337
  }
283
338
  );
284
339
  }
@@ -290,37 +345,55 @@ function Avatar(_a) {
290
345
  __spreadValues({
291
346
  src: imgSrc,
292
347
  alt,
293
- className: `${s.container} rounded-full object-cover ${className}`
348
+ className: `${Avatar_module_default.root} ${Avatar_module_default[size]}${className ? ` ${className}` : ""}`
294
349
  }, props)
295
350
  )
296
351
  );
297
352
  }
353
+
354
+ // src/atoms/Divider.module.scss
355
+ var Divider_module_default = {
356
+ root: "Divider_module_root",
357
+ withLabel: "Divider_module_withLabel",
358
+ line: "Divider_module_line",
359
+ label: "Divider_module_label"
360
+ };
298
361
  function Divider({ className = "", label }) {
299
362
  if (label) {
300
- return /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-4 ${className}`, children: [
301
- /* @__PURE__ */ jsx("div", { className: "flex-1 h-px bg-[var(--border-color)]" }),
302
- /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-[var(--fg-muted)] uppercase tracking-wider", children: label }),
303
- /* @__PURE__ */ jsx("div", { className: "flex-1 h-px bg-[var(--border-color)]" })
363
+ return /* @__PURE__ */ jsxs("div", { className: `${Divider_module_default.withLabel}${className ? ` ${className}` : ""}`, children: [
364
+ /* @__PURE__ */ jsx("div", { className: Divider_module_default.line }),
365
+ /* @__PURE__ */ jsx("span", { className: Divider_module_default.label, children: label }),
366
+ /* @__PURE__ */ jsx("div", { className: Divider_module_default.line })
304
367
  ] });
305
368
  }
306
- return /* @__PURE__ */ jsx("hr", { className: `border-none h-px bg-[var(--border-color)] ${className}` });
369
+ return /* @__PURE__ */ jsx("hr", { className: `${Divider_module_default.root}${className ? ` ${className}` : ""}` });
307
370
  }
371
+
372
+ // src/atoms/MenuItem.module.scss
373
+ var MenuItem_module_default = {
374
+ root: "MenuItem_module_root",
375
+ active: "MenuItem_module_active"
376
+ };
308
377
  function MenuItem({ text, active = false, onClick, className = "" }) {
309
378
  return /* @__PURE__ */ jsx(
310
379
  "button",
311
380
  {
312
381
  onClick,
313
- className: `inline-flex items-center px-[4px] py-[2px] text-[13px] font-medium tracking-[-0.25px] cursor-pointer border-none text-left whitespace-nowrap transition-colors duration-150 ${active ? "bg-[var(--bg-secondary)] text-[var(--fg)]" : "bg-transparent text-[var(--fg-muted)] hover:text-[var(--fg-secondary)]"} ${className}`,
382
+ className: `${MenuItem_module_default.root}${active ? ` ${MenuItem_module_default.active}` : ""}${className ? ` ${className}` : ""}`,
314
383
  children: text
315
384
  }
316
385
  );
317
386
  }
318
- var variantStyles2 = {
319
- primary: "bg-[var(--fg)] text-[var(--bg)] border border-[var(--bg)] shadow-[var(--shadow-sm)]",
320
- secondary: "bg-[var(--bg-tertiary)] text-[var(--fg-secondary)]",
321
- clear: "bg-transparent text-[var(--fg-secondary)] shadow-[var(--shadow-sm)]",
322
- disabled: "bg-[var(--bg-tertiary)] text-[var(--fg-muted)] opacity-50 cursor-not-allowed",
323
- contrast: "bg-[var(--border-color)] text-[var(--fg-secondary)]"
387
+
388
+ // src/atoms/IconButton.module.scss
389
+ var IconButton_module_default = {
390
+ root: "IconButton_module_root",
391
+ primary: "IconButton_module_primary",
392
+ secondary: "IconButton_module_secondary",
393
+ clear: "IconButton_module_clear",
394
+ disabled: "IconButton_module_disabled",
395
+ contrast: "IconButton_module_contrast",
396
+ isDisabled: "IconButton_module_isDisabled"
324
397
  };
325
398
  function IconButton(_a) {
326
399
  var _b = _a, { icon, variant = "primary", className = "", disabled } = _b, props = __objRest(_b, ["icon", "variant", "className", "disabled"]);
@@ -328,34 +401,57 @@ function IconButton(_a) {
328
401
  return /* @__PURE__ */ jsx(
329
402
  "button",
330
403
  __spreadProps(__spreadValues({
331
- className: `inline-flex items-center justify-center w-9 h-9 rounded-full transition-all duration-[var(--transition-fast)] cursor-pointer shrink-0 ${variantStyles2[variant]} ${isDisabled ? "cursor-not-allowed" : ""} ${className}`,
404
+ className: `${IconButton_module_default.root} ${IconButton_module_default[variant]}${isDisabled ? ` ${IconButton_module_default.isDisabled}` : ""}${className ? ` ${className}` : ""}`,
332
405
  disabled: isDisabled
333
406
  }, props), {
334
407
  children: icon
335
408
  })
336
409
  );
337
410
  }
411
+
412
+ // src/atoms/Logo.module.scss
413
+ var Logo_module_default = {
414
+ short: "Logo_module_short",
415
+ full: "Logo_module_full",
416
+ third: "Logo_module_third",
417
+ thirdText: "Logo_module_thirdText"
418
+ };
338
419
  function Logo({ version = "short", className = "" }) {
339
420
  if (version === "short") {
340
- return /* @__PURE__ */ jsx("div", { className: `w-[19px] h-5 ${className}`, children: /* @__PURE__ */ jsx("img", { className: "logo-img", src: "/assets/logos/logo-short.svg", alt: "aiacade.me", width: 19, height: 20 }) });
421
+ return /* @__PURE__ */ jsx("div", { className: `${Logo_module_default.short}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("img", { className: "logo-img", src: "/assets/logos/logo-short.svg", alt: "aiacade.me", width: 19, height: 20 }) });
341
422
  }
342
423
  if (version === "third") {
343
- return /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-1.5 ${className}`, children: [
424
+ return /* @__PURE__ */ jsxs("div", { className: `${Logo_module_default.third}${className ? ` ${className}` : ""}`, children: [
344
425
  /* @__PURE__ */ jsx("img", { className: "logo-img", src: "/assets/logos/logo-icon.svg", alt: "", width: 20, height: 20 }),
345
- /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]", children: "aiacade.me" })
426
+ /* @__PURE__ */ jsx("span", { className: Logo_module_default.thirdText, children: "aiacade.me" })
346
427
  ] });
347
428
  }
348
- return /* @__PURE__ */ jsx("div", { className: `h-5 w-[130px] ${className}`, children: /* @__PURE__ */ jsx("img", { className: "logo-img", src: "/assets/logos/logo-full.svg", alt: "aiacade.me", width: 130, height: 20 }) });
429
+ return /* @__PURE__ */ jsx("div", { className: `${Logo_module_default.full}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("img", { className: "logo-img", src: "/assets/logos/logo-full.svg", alt: "aiacade.me", width: 130, height: 20 }) });
349
430
  }
431
+
432
+ // src/atoms/StatBadge.module.scss
433
+ var StatBadge_module_default = {
434
+ root: "StatBadge_module_root",
435
+ bracket: "StatBadge_module_bracket"
436
+ };
350
437
  function StatBadge({ value, suffix, showBrackets = false, className = "" }) {
351
- return /* @__PURE__ */ jsxs("span", { className: `inline-flex items-center text-[13px] font-medium text-[var(--fg-secondary)] tracking-[-0.25px] whitespace-nowrap ${className}`, children: [
352
- showBrackets && /* @__PURE__ */ jsx("span", { className: "text-[var(--fg-muted)]", children: "[ " }),
438
+ return /* @__PURE__ */ jsxs("span", { className: `${StatBadge_module_default.root}${className ? ` ${className}` : ""}`, children: [
439
+ showBrackets && /* @__PURE__ */ jsx("span", { className: StatBadge_module_default.bracket, children: "[ " }),
353
440
  value,
354
441
  " ",
355
442
  suffix,
356
- showBrackets && /* @__PURE__ */ jsx("span", { className: "text-[var(--fg-muted)]", children: " ]" })
443
+ showBrackets && /* @__PURE__ */ jsx("span", { className: StatBadge_module_default.bracket, children: " ]" })
357
444
  ] });
358
445
  }
446
+
447
+ // src/atoms/Textarea.module.scss
448
+ var Textarea_module_default = {
449
+ wrapper: "Textarea_module_wrapper",
450
+ label: "Textarea_module_label",
451
+ textarea: "Textarea_module_textarea",
452
+ error: "Textarea_module_error",
453
+ errorText: "Textarea_module_errorText"
454
+ };
359
455
  function Textarea(_a) {
360
456
  var _b = _a, {
361
457
  label,
@@ -371,26 +467,30 @@ function Textarea(_a) {
371
467
  "rows"
372
468
  ]);
373
469
  const textareaId = id || (label == null ? void 0 : label.toLowerCase().replace(/\s+/g, "-"));
374
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
375
- label && /* @__PURE__ */ jsx(
376
- "label",
377
- {
378
- htmlFor: textareaId,
379
- className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]",
380
- children: label
381
- }
382
- ),
470
+ return /* @__PURE__ */ jsxs("div", { className: Textarea_module_default.wrapper, children: [
471
+ label && /* @__PURE__ */ jsx("label", { htmlFor: textareaId, className: Textarea_module_default.label, children: label }),
383
472
  /* @__PURE__ */ jsx(
384
473
  "textarea",
385
474
  __spreadValues({
386
475
  id: textareaId,
387
476
  rows,
388
- className: `w-full border border-[var(--fg-muted)] bg-[var(--bg)] px-[15px] py-3 text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)] placeholder:text-[var(--fg-muted)] transition-all duration-[var(--transition-fast)] focus:outline-none focus:border-[var(--fg)] rounded-[var(--radius-lg)] resize-vertical ${error ? "border-[var(--color-error)] focus:border-[var(--color-error)]" : ""} ${className}`
477
+ className: `${Textarea_module_default.textarea}${error ? ` ${Textarea_module_default.error}` : ""}${className ? ` ${className}` : ""}`
389
478
  }, props)
390
479
  ),
391
- error && /* @__PURE__ */ jsx("p", { className: "text-[13px] tracking-[-0.25px] text-[var(--color-error)]", children: error })
480
+ error && /* @__PURE__ */ jsx("p", { className: Textarea_module_default.errorText, children: error })
392
481
  ] });
393
482
  }
483
+
484
+ // src/atoms/Select.module.scss
485
+ var Select_module_default = {
486
+ wrapper: "Select_module_wrapper",
487
+ label: "Select_module_label",
488
+ selectWrap: "Select_module_selectWrap",
489
+ select: "Select_module_select",
490
+ chevron: "Select_module_chevron",
491
+ error: "Select_module_error",
492
+ errorText: "Select_module_errorText"
493
+ };
394
494
  function Select(_a) {
395
495
  var _b = _a, {
396
496
  label,
@@ -408,21 +508,14 @@ function Select(_a) {
408
508
  "id"
409
509
  ]);
410
510
  const selectId = id || (label == null ? void 0 : label.toLowerCase().replace(/\s+/g, "-"));
411
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
412
- label && /* @__PURE__ */ jsx(
413
- "label",
414
- {
415
- htmlFor: selectId,
416
- className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]",
417
- children: label
418
- }
419
- ),
420
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
511
+ return /* @__PURE__ */ jsxs("div", { className: Select_module_default.wrapper, children: [
512
+ label && /* @__PURE__ */ jsx("label", { htmlFor: selectId, className: Select_module_default.label, children: label }),
513
+ /* @__PURE__ */ jsxs("div", { className: Select_module_default.selectWrap, children: [
421
514
  /* @__PURE__ */ jsxs(
422
515
  "select",
423
516
  __spreadProps(__spreadValues(__spreadValues({
424
517
  id: selectId,
425
- className: `w-full appearance-none border border-[var(--fg-muted)] bg-[var(--bg)] px-[15px] py-3 pr-10 text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)] transition-all duration-[var(--transition-fast)] focus:outline-none focus:border-[var(--fg)] rounded-full ${error ? "border-[var(--color-error)] focus:border-[var(--color-error)]" : ""} ${className}`
518
+ className: `${Select_module_default.select}${error ? ` ${Select_module_default.error}` : ""}${className ? ` ${className}` : ""}`
426
519
  }, !("value" in props) && { defaultValue: "" }), props), {
427
520
  children: [
428
521
  placeholder && /* @__PURE__ */ jsx("option", { value: "", disabled: true, children: placeholder }),
@@ -430,11 +523,22 @@ function Select(_a) {
430
523
  ]
431
524
  })
432
525
  ),
433
- /* @__PURE__ */ jsx("span", { className: "absolute right-3.5 top-1/2 -translate-y-1/2 pointer-events-none text-[var(--fg-muted)]", children: /* @__PURE__ */ jsx(IconlyChevronDown, { size: 16 }) })
526
+ /* @__PURE__ */ jsx("span", { className: Select_module_default.chevron, children: /* @__PURE__ */ jsx(IconlyChevronDown, { size: 16 }) })
434
527
  ] }),
435
- error && /* @__PURE__ */ jsx("p", { className: "text-[13px] tracking-[-0.25px] text-[var(--color-error)]", children: error })
528
+ error && /* @__PURE__ */ jsx("p", { className: Select_module_default.errorText, children: error })
436
529
  ] });
437
530
  }
531
+
532
+ // src/atoms/Checkbox.module.scss
533
+ var Checkbox_module_default = {
534
+ root: "Checkbox_module_root",
535
+ hiddenInput: "Checkbox_module_hiddenInput",
536
+ box: "Checkbox_module_box",
537
+ checked: "Checkbox_module_checked",
538
+ unchecked: "Checkbox_module_unchecked",
539
+ label: "Checkbox_module_label",
540
+ disabled: "Checkbox_module_disabled"
541
+ };
438
542
  function Checkbox({
439
543
  checked = false,
440
544
  onChange,
@@ -445,7 +549,7 @@ function Checkbox({
445
549
  return /* @__PURE__ */ jsxs(
446
550
  "label",
447
551
  {
448
- className: `inline-flex items-center gap-2.5 ${disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"} ${className}`,
552
+ className: `${Checkbox_module_default.root}${disabled ? ` ${Checkbox_module_default.disabled}` : ""}${className ? ` ${className}` : ""}`,
449
553
  children: [
450
554
  /* @__PURE__ */ jsx(
451
555
  "input",
@@ -454,13 +558,13 @@ function Checkbox({
454
558
  checked,
455
559
  disabled,
456
560
  onChange: () => onChange == null ? void 0 : onChange(!checked),
457
- className: "absolute opacity-0 w-0 h-0"
561
+ className: Checkbox_module_default.hiddenInput
458
562
  }
459
563
  ),
460
564
  /* @__PURE__ */ jsx(
461
565
  "span",
462
566
  {
463
- className: `flex items-center justify-center w-[18px] h-[18px] rounded-[5px] border transition-colors duration-200 shrink-0 ${checked ? "bg-[var(--color-accent)] border-[var(--color-accent)]" : "border-[var(--fg-muted)] bg-transparent"}`,
567
+ className: `${Checkbox_module_default.box} ${checked ? Checkbox_module_default.checked : Checkbox_module_default.unchecked}`,
464
568
  children: checked && /* @__PURE__ */ jsx(
465
569
  "svg",
466
570
  {
@@ -483,11 +587,23 @@ function Checkbox({
483
587
  )
484
588
  }
485
589
  ),
486
- label && /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]", children: label })
590
+ label && /* @__PURE__ */ jsx("span", { className: Checkbox_module_default.label, children: label })
487
591
  ]
488
592
  }
489
593
  );
490
594
  }
595
+
596
+ // src/atoms/Radio.module.scss
597
+ var Radio_module_default = {
598
+ root: "Radio_module_root",
599
+ hiddenInput: "Radio_module_hiddenInput",
600
+ circle: "Radio_module_circle",
601
+ checked: "Radio_module_checked",
602
+ unchecked: "Radio_module_unchecked",
603
+ dot: "Radio_module_dot",
604
+ label: "Radio_module_label",
605
+ disabled: "Radio_module_disabled"
606
+ };
491
607
  function Radio({
492
608
  checked = false,
493
609
  onChange,
@@ -500,7 +616,7 @@ function Radio({
500
616
  return /* @__PURE__ */ jsxs(
501
617
  "label",
502
618
  {
503
- className: `inline-flex items-center gap-2.5 ${disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"} ${className}`,
619
+ className: `${Radio_module_default.root}${disabled ? ` ${Radio_module_default.disabled}` : ""}${className ? ` ${className}` : ""}`,
504
620
  children: [
505
621
  /* @__PURE__ */ jsx(
506
622
  "input",
@@ -511,60 +627,71 @@ function Radio({
511
627
  name,
512
628
  value,
513
629
  onChange: () => onChange == null ? void 0 : onChange(!checked),
514
- className: "absolute opacity-0 w-0 h-0"
630
+ className: Radio_module_default.hiddenInput
515
631
  }
516
632
  ),
517
633
  /* @__PURE__ */ jsx(
518
634
  "span",
519
635
  {
520
- className: `flex items-center justify-center w-[18px] h-[18px] rounded-full border transition-colors duration-200 shrink-0 ${checked ? "border-[var(--color-accent)]" : "border-[var(--fg-muted)]"}`,
521
- children: checked && /* @__PURE__ */ jsx("span", { className: "w-[8px] h-[8px] rounded-full bg-[var(--color-accent)]" })
636
+ className: `${Radio_module_default.circle} ${checked ? Radio_module_default.checked : Radio_module_default.unchecked}`,
637
+ children: checked && /* @__PURE__ */ jsx("span", { className: Radio_module_default.dot })
522
638
  }
523
639
  ),
524
- label && /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]", children: label })
640
+ label && /* @__PURE__ */ jsx("span", { className: Radio_module_default.label, children: label })
525
641
  ]
526
642
  }
527
643
  );
528
644
  }
529
- var variantStyles3 = {
530
- default: "text-[var(--color-accent)] hover:underline",
531
- muted: "text-[var(--fg-muted)] hover:text-[var(--fg)]",
532
- underline: "text-[var(--fg)] underline underline-offset-2 hover:text-[var(--color-accent)]"
645
+
646
+ // src/atoms/Link.module.scss
647
+ var Link_module_default = {
648
+ root: "Link_module_root",
649
+ default: "Link_module_default",
650
+ muted: "Link_module_muted",
651
+ underline: "Link_module_underline"
533
652
  };
534
653
  function Link(_a) {
535
654
  var _b = _a, { variant = "default", className = "", children } = _b, rest = __objRest(_b, ["variant", "className", "children"]);
536
655
  return /* @__PURE__ */ jsx(
537
656
  "a",
538
657
  __spreadProps(__spreadValues({
539
- className: `text-[13px] tracking-[-0.25px] transition-colors duration-[var(--transition-fast)] inline-flex items-center gap-1 ${variantStyles3[variant]} ${className}`
658
+ className: `${Link_module_default.root} ${Link_module_default[variant]}${className ? ` ${className}` : ""}`
540
659
  }, rest), {
541
660
  children
542
661
  })
543
662
  );
544
663
  }
545
- var positionStyles = {
546
- top: "bottom-full left-1/2 -translate-x-1/2 mb-1.5",
547
- bottom: "top-full left-1/2 -translate-x-1/2 mt-1.5",
548
- left: "right-full top-1/2 -translate-y-1/2 mr-1.5",
549
- right: "left-full top-1/2 -translate-y-1/2 ml-1.5"
664
+
665
+ // src/atoms/Tooltip.module.scss
666
+ var Tooltip_module_default = {
667
+ root: "Tooltip_module_root",
668
+ tooltip: "Tooltip_module_tooltip",
669
+ top: "Tooltip_module_top",
670
+ bottom: "Tooltip_module_bottom",
671
+ left: "Tooltip_module_left",
672
+ right: "Tooltip_module_right"
550
673
  };
551
674
  function Tooltip({ content, position = "top", children, className = "" }) {
552
- return /* @__PURE__ */ jsxs("span", { className: `relative inline-flex group ${className}`, children: [
675
+ return /* @__PURE__ */ jsxs("span", { className: `${Tooltip_module_default.root} ${className}`, children: [
553
676
  children,
554
677
  /* @__PURE__ */ jsx(
555
678
  "span",
556
679
  {
557
680
  role: "tooltip",
558
- className: `absolute invisible group-hover:visible opacity-0 group-hover:opacity-100 transition-opacity bg-[var(--fg)] text-[var(--bg)] text-[11px] px-2 py-1 rounded-md whitespace-nowrap z-50 pointer-events-none ${positionStyles[position]}`,
681
+ className: `${Tooltip_module_default.tooltip} ${Tooltip_module_default[position]}`,
559
682
  children: content
560
683
  }
561
684
  )
562
685
  ] });
563
686
  }
564
- var variantStyles4 = {
565
- line: "h-4 w-full rounded-full",
566
- circle: "rounded-full",
567
- rect: "rounded-[var(--radius-lg)]"
687
+
688
+ // src/atoms/Skeleton.module.scss
689
+ var Skeleton_module_default = {
690
+ pulse: "Skeleton_module_pulse",
691
+ root: "Skeleton_module_root",
692
+ line: "Skeleton_module_line",
693
+ circle: "Skeleton_module_circle",
694
+ rect: "Skeleton_module_rect"
568
695
  };
569
696
  function Skeleton({ variant = "line", width, height, className = "" }) {
570
697
  const style = {};
@@ -577,12 +704,23 @@ function Skeleton({ variant = "line", width, height, className = "" }) {
577
704
  return /* @__PURE__ */ jsx(
578
705
  "div",
579
706
  {
580
- className: `animate-pulse bg-[var(--bg-tertiary)] ${variantStyles4[variant]} ${className}`,
707
+ className: `${Skeleton_module_default.root} ${Skeleton_module_default[variant]} ${className}`,
581
708
  style: Object.keys(style).length > 0 ? style : void 0,
582
709
  "aria-hidden": "true"
583
710
  }
584
711
  );
585
712
  }
713
+
714
+ // src/atoms/TicketButton.module.scss
715
+ var TicketButton_module_default = {
716
+ root: "TicketButton_module_root",
717
+ stub: "TicketButton_module_stub",
718
+ body: "TicketButton_module_body",
719
+ bodySvg: "TicketButton_module_bodySvg",
720
+ bodyText: "TicketButton_module_bodyText",
721
+ stubSvg: "TicketButton_module_stubSvg",
722
+ stubIcon: "TicketButton_module_stubIcon"
723
+ };
586
724
  var DefaultIcon = () => /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("polyline", { points: "9 18 15 12 9 6" }) });
587
725
  function TicketButton(_a) {
588
726
  var _b = _a, {
@@ -605,14 +743,14 @@ function TicketButton(_a) {
605
743
  return /* @__PURE__ */ jsxs(
606
744
  "button",
607
745
  __spreadProps(__spreadValues({
608
- className: `group relative inline-flex items-stretch cursor-pointer border-none bg-transparent p-0 select-none ${className}`
746
+ className: `${TicketButton_module_default.root} ${className}`
609
747
  }, props), {
610
748
  children: [
611
- /* @__PURE__ */ jsxs("span", { className: "relative flex items-center", children: [
749
+ /* @__PURE__ */ jsxs("span", { className: TicketButton_module_default.body, children: [
612
750
  /* @__PURE__ */ jsxs(
613
751
  "svg",
614
752
  {
615
- className: "absolute inset-0 w-full h-full",
753
+ className: TicketButton_module_default.bodySvg,
616
754
  viewBox: "0 0 140 56",
617
755
  fill: "none",
618
756
  preserveAspectRatio: "none",
@@ -637,13 +775,13 @@ function TicketButton(_a) {
637
775
  ]
638
776
  }
639
777
  ),
640
- /* @__PURE__ */ jsx("span", { className: "relative z-10 px-6 py-4 text-[13px] font-semibold tracking-[-0.25px] whitespace-nowrap", style: { color: fg }, children })
778
+ /* @__PURE__ */ jsx("span", { className: TicketButton_module_default.bodyText, style: { color: fg }, children })
641
779
  ] }),
642
- /* @__PURE__ */ jsxs("span", { className: "relative flex items-center transition-transform duration-300 ease-[cubic-bezier(0.34,1.56,0.64,1)] group-hover:translate-x-1.5", children: [
780
+ /* @__PURE__ */ jsxs("span", { className: TicketButton_module_default.stub, children: [
643
781
  /* @__PURE__ */ jsxs(
644
782
  "svg",
645
783
  {
646
- className: "absolute inset-0 w-full h-full",
784
+ className: TicketButton_module_default.stubSvg,
647
785
  viewBox: "0 0 56 56",
648
786
  fill: "none",
649
787
  preserveAspectRatio: "none",
@@ -667,36 +805,55 @@ function TicketButton(_a) {
667
805
  ]
668
806
  }
669
807
  ),
670
- /* @__PURE__ */ jsx("span", { className: "relative z-10 w-[56px] h-[56px] flex items-center justify-center", style: { color: fg }, children: icon || /* @__PURE__ */ jsx(DefaultIcon, {}) })
808
+ /* @__PURE__ */ jsx("span", { className: TicketButton_module_default.stubIcon, style: { color: fg }, children: icon || /* @__PURE__ */ jsx(DefaultIcon, {}) })
671
809
  ] })
672
810
  ]
673
811
  })
674
812
  );
675
813
  }
814
+
815
+ // src/molecules/Card.module.scss
816
+ var Card_module_default = {
817
+ root: "Card_module_root",
818
+ imageWrapper: "Card_module_imageWrapper",
819
+ image: "Card_module_image",
820
+ body: "Card_module_body",
821
+ title: "Card_module_title",
822
+ description: "Card_module_description",
823
+ footer: "Card_module_footer"
824
+ };
676
825
  function Card({ image, title, description, footer, children, className = "" }) {
677
- return /* @__PURE__ */ jsxs(
678
- "div",
679
- {
680
- className: `rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] overflow-hidden shadow-[var(--shadow-xs)] transition-all duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)] hover:-translate-y-0.5 ${className}`,
681
- children: [
682
- image && /* @__PURE__ */ jsx("div", { className: "aspect-video overflow-hidden", children: /* @__PURE__ */ jsx("img", { src: image, alt: title || "", className: "w-full h-full object-cover" }) }),
683
- /* @__PURE__ */ jsxs("div", { className: "p-5", children: [
684
- title && /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-[var(--fg)] mb-1", children: title }),
685
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--fg-secondary)] leading-relaxed", children: description }),
686
- children
687
- ] }),
688
- footer && /* @__PURE__ */ jsx("div", { className: "px-5 py-3 border-t border-[var(--border-color)] bg-[var(--bg-secondary)]", children: footer })
689
- ]
690
- }
691
- );
826
+ return /* @__PURE__ */ jsxs("div", { className: `${Card_module_default.root}${className ? ` ${className}` : ""}`, children: [
827
+ image && /* @__PURE__ */ jsx("div", { className: Card_module_default.imageWrapper, children: /* @__PURE__ */ jsx("img", { src: image, alt: title || "", className: Card_module_default.image }) }),
828
+ /* @__PURE__ */ jsxs("div", { className: Card_module_default.body, children: [
829
+ title && /* @__PURE__ */ jsx("h3", { className: Card_module_default.title, children: title }),
830
+ description && /* @__PURE__ */ jsx("p", { className: Card_module_default.description, children: description }),
831
+ children
832
+ ] }),
833
+ footer && /* @__PURE__ */ jsx("div", { className: Card_module_default.footer, children: footer })
834
+ ] });
692
835
  }
836
+
837
+ // src/molecules/FormField.module.scss
838
+ var FormField_module_default = {
839
+ root: "FormField_module_root",
840
+ hint: "FormField_module_hint"
841
+ };
693
842
  function FormField(_a) {
694
843
  var _b = _a, { label, error, hint, icon } = _b, inputProps = __objRest(_b, ["label", "error", "hint", "icon"]);
695
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
844
+ return /* @__PURE__ */ jsxs("div", { className: FormField_module_default.root, children: [
696
845
  /* @__PURE__ */ jsx(Input, __spreadValues({ label, error, icon }, inputProps)),
697
- hint && !error && /* @__PURE__ */ jsx("p", { className: "text-[0.8125rem] text-[var(--fg-muted)]", children: hint })
846
+ hint && !error && /* @__PURE__ */ jsx("p", { className: FormField_module_default.hint, children: hint })
698
847
  ] });
699
848
  }
849
+
850
+ // src/molecules/SearchBar.module.scss
851
+ var SearchBar_module_default = {
852
+ root: "SearchBar_module_root",
853
+ searchIcon: "SearchBar_module_searchIcon",
854
+ input: "SearchBar_module_input",
855
+ clearBtn: "SearchBar_module_clearBtn"
856
+ };
700
857
  function SearchBar({ placeholder = "Search...", value: controlledValue, onChange, className = "" }) {
701
858
  const [internalValue, setInternalValue] = useState("");
702
859
  const value = controlledValue != null ? controlledValue : internalValue;
@@ -704,8 +861,8 @@ function SearchBar({ placeholder = "Search...", value: controlledValue, onChange
704
861
  setInternalValue(val);
705
862
  onChange == null ? void 0 : onChange(val);
706
863
  };
707
- return /* @__PURE__ */ jsxs("div", { className: `relative flex items-center ${className}`, children: [
708
- /* @__PURE__ */ jsx("div", { className: "absolute left-3 text-[var(--fg-muted)]", children: /* @__PURE__ */ jsx(IconlySearch, { size: 18 }) }),
864
+ return /* @__PURE__ */ jsxs("div", { className: `${SearchBar_module_default.root}${className ? ` ${className}` : ""}`, children: [
865
+ /* @__PURE__ */ jsx("div", { className: SearchBar_module_default.searchIcon, children: /* @__PURE__ */ jsx(IconlySearch, { size: 18 }) }),
709
866
  /* @__PURE__ */ jsx(
710
867
  "input",
711
868
  {
@@ -714,73 +871,95 @@ function SearchBar({ placeholder = "Search...", value: controlledValue, onChange
714
871
  onChange: (e) => handleChange(e.target.value),
715
872
  placeholder,
716
873
  "aria-label": "Search",
717
- className: "w-full rounded-[var(--radius-lg)] border border-[var(--border-color)] bg-[var(--bg)] pl-10 pr-10 py-2.5 text-sm text-[var(--fg)] placeholder:text-[var(--fg-muted)] transition-all duration-[var(--transition-fast)] focus:outline-none focus:ring-2 focus:ring-[var(--brand-primary)] focus:border-transparent"
874
+ className: SearchBar_module_default.input
718
875
  }
719
876
  ),
720
877
  value && /* @__PURE__ */ jsx(
721
878
  "button",
722
879
  {
723
880
  onClick: () => handleChange(""),
724
- className: "absolute right-3 text-[var(--fg-muted)] hover:text-[var(--fg)] transition-colors cursor-pointer",
881
+ className: SearchBar_module_default.clearBtn,
725
882
  "aria-label": "Clear search",
726
883
  children: /* @__PURE__ */ jsx(IconlyClose, { size: 16 })
727
884
  }
728
885
  )
729
886
  ] });
730
887
  }
888
+
889
+ // src/molecules/Stat.module.scss
890
+ var Stat_module_default = {
891
+ root: "Stat_module_root",
892
+ valueRow: "Stat_module_valueRow",
893
+ value: "Stat_module_value",
894
+ trend: "Stat_module_trend",
895
+ positive: "Stat_module_positive",
896
+ negative: "Stat_module_negative",
897
+ label: "Stat_module_label"
898
+ };
731
899
  function Stat({ value, label, trend, className = "" }) {
732
- return /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-1 ${className}`, children: [
733
- /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
734
- /* @__PURE__ */ jsx("span", { className: "text-2xl font-bold text-[var(--fg)]", children: value }),
735
- trend && /* @__PURE__ */ jsxs(
736
- "span",
737
- {
738
- className: `text-sm font-medium ${trend.positive ? "text-[var(--color-success)]" : "text-[var(--color-error)]"}`,
739
- children: [
740
- trend.positive ? "\u2191" : "\u2193",
741
- " ",
742
- trend.value
743
- ]
744
- }
745
- )
900
+ return /* @__PURE__ */ jsxs("div", { className: `${Stat_module_default.root}${className ? ` ${className}` : ""}`, children: [
901
+ /* @__PURE__ */ jsxs("div", { className: Stat_module_default.valueRow, children: [
902
+ /* @__PURE__ */ jsx("span", { className: Stat_module_default.value, children: value }),
903
+ trend && /* @__PURE__ */ jsxs("span", { className: `${Stat_module_default.trend} ${trend.positive ? Stat_module_default.positive : Stat_module_default.negative}`, children: [
904
+ trend.positive ? "\u2191" : "\u2193",
905
+ " ",
906
+ trend.value
907
+ ] })
746
908
  ] }),
747
- /* @__PURE__ */ jsx("span", { className: "text-sm text-[var(--fg-muted)]", children: label })
909
+ /* @__PURE__ */ jsx("span", { className: Stat_module_default.label, children: label })
748
910
  ] });
749
911
  }
750
- var variantConfig = {
751
- info: { accentColor: "text-[var(--color-info)]", Icon: IconlyInfoCircle },
752
- success: { accentColor: "text-[var(--color-success)]", Icon: IconlySuccess },
753
- warning: { accentColor: "text-[var(--color-warning)]", Icon: IconlyWarning },
754
- error: { accentColor: "text-[var(--color-error)]", Icon: IconlyError }
912
+
913
+ // src/molecules/Alert.module.scss
914
+ var Alert_module_default = {
915
+ root: "Alert_module_root",
916
+ icon: "Alert_module_icon",
917
+ info: "Alert_module_info",
918
+ success: "Alert_module_success",
919
+ warning: "Alert_module_warning",
920
+ error: "Alert_module_error",
921
+ content: "Alert_module_content",
922
+ title: "Alert_module_title",
923
+ message: "Alert_module_message",
924
+ dismiss: "Alert_module_dismiss"
925
+ };
926
+ var variantIcons = {
927
+ info: IconlyInfoCircle,
928
+ success: IconlySuccess,
929
+ warning: IconlyWarning,
930
+ error: IconlyError
755
931
  };
756
932
  function Alert({ variant = "info", title, children, closable = false, className = "" }) {
757
933
  const [visible, setVisible] = useState(true);
758
934
  if (!visible) return null;
759
- const config = variantConfig[variant];
760
- const { Icon } = config;
761
- return /* @__PURE__ */ jsxs(
762
- "div",
763
- {
764
- className: `flex gap-3 p-4 rounded-[var(--radius-lg)] border border-[var(--border-color)] bg-[var(--bg-secondary)] ${className}`,
765
- children: [
766
- /* @__PURE__ */ jsx("div", { className: `shrink-0 mt-0.5 ${config.accentColor}`, children: /* @__PURE__ */ jsx(Icon, { size: 20 }) }),
767
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
768
- title && /* @__PURE__ */ jsx("p", { className: `text-[13px] font-medium tracking-[-0.25px] mb-0.5 ${config.accentColor}`, children: title }),
769
- /* @__PURE__ */ jsx("p", { className: "text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)]", children })
770
- ] }),
771
- closable && /* @__PURE__ */ jsx(
772
- "button",
773
- {
774
- onClick: () => setVisible(false),
775
- className: "shrink-0 text-[var(--fg-muted)] hover:text-[var(--fg)] transition-all duration-[var(--transition-fast)] cursor-pointer",
776
- "aria-label": "Dismiss",
777
- children: /* @__PURE__ */ jsx(IconlyClose, { size: 16 })
778
- }
779
- )
780
- ]
781
- }
782
- );
935
+ const Icon = variantIcons[variant];
936
+ const variantClass = Alert_module_default[variant];
937
+ return /* @__PURE__ */ jsxs("div", { className: `${Alert_module_default.root}${className ? ` ${className}` : ""}`, children: [
938
+ /* @__PURE__ */ jsx("div", { className: `${Alert_module_default.icon} ${variantClass}`, children: /* @__PURE__ */ jsx(Icon, { size: 20 }) }),
939
+ /* @__PURE__ */ jsxs("div", { className: Alert_module_default.content, children: [
940
+ title && /* @__PURE__ */ jsx("p", { className: `${Alert_module_default.title} ${variantClass}`, children: title }),
941
+ /* @__PURE__ */ jsx("p", { className: Alert_module_default.message, children })
942
+ ] }),
943
+ closable && /* @__PURE__ */ jsx(
944
+ "button",
945
+ {
946
+ onClick: () => setVisible(false),
947
+ className: Alert_module_default.dismiss,
948
+ "aria-label": "Dismiss",
949
+ children: /* @__PURE__ */ jsx(IconlyClose, { size: 16 })
950
+ }
951
+ )
952
+ ] });
783
953
  }
954
+
955
+ // src/molecules/Tabs.module.scss
956
+ var Tabs_module_default = {
957
+ tabList: "Tabs_module_tabList",
958
+ tab: "Tabs_module_tab",
959
+ active: "Tabs_module_active",
960
+ indicator: "Tabs_module_indicator",
961
+ panel: "Tabs_module_panel"
962
+ };
784
963
  function Tabs({ tabs, defaultTab, onChange, className = "" }) {
785
964
  var _a, _b;
786
965
  const [activeTab, setActiveTab] = useState(defaultTab || ((_a = tabs[0]) == null ? void 0 : _a.id));
@@ -811,7 +990,7 @@ function Tabs({ tabs, defaultTab, onChange, className = "" }) {
811
990
  "div",
812
991
  {
813
992
  role: "tablist",
814
- className: "flex border-b border-[var(--border-color)]",
993
+ className: Tabs_module_default.tabList,
815
994
  onKeyDown: handleKeyDown,
816
995
  children: tabs.map((tab, index) => /* @__PURE__ */ jsxs(
817
996
  "button",
@@ -825,10 +1004,10 @@ function Tabs({ tabs, defaultTab, onChange, className = "" }) {
825
1004
  "aria-controls": `panel-${tab.id}`,
826
1005
  tabIndex: activeTab === tab.id ? 0 : -1,
827
1006
  onClick: () => activateTab(tab.id),
828
- className: `px-4 py-2.5 text-sm font-medium transition-colors cursor-pointer relative ${activeTab === tab.id ? "text-[var(--brand-primary)]" : "text-[var(--fg-muted)] hover:text-[var(--fg)]"}`,
1007
+ className: `${Tabs_module_default.tab} ${activeTab === tab.id ? Tabs_module_default.active : ""}`,
829
1008
  children: [
830
1009
  tab.label,
831
- activeTab === tab.id && /* @__PURE__ */ jsx("span", { className: "absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--brand-primary)] rounded-full" })
1010
+ activeTab === tab.id && /* @__PURE__ */ jsx("span", { className: Tabs_module_default.indicator })
832
1011
  ]
833
1012
  },
834
1013
  tab.id
@@ -841,12 +1020,24 @@ function Tabs({ tabs, defaultTab, onChange, className = "" }) {
841
1020
  role: "tabpanel",
842
1021
  id: `panel-${activeTab}`,
843
1022
  "aria-labelledby": `tab-${activeTab}`,
844
- className: "pt-4",
1023
+ className: Tabs_module_default.panel,
845
1024
  children: activeContent
846
1025
  }
847
1026
  )
848
1027
  ] });
849
1028
  }
1029
+
1030
+ // src/molecules/ChatInput.module.scss
1031
+ var ChatInput_module_default = {
1032
+ root: "ChatInput_module_root",
1033
+ contrast: "ChatInput_module_contrast",
1034
+ plain: "ChatInput_module_plain",
1035
+ input: "ChatInput_module_input",
1036
+ actions: "ChatInput_module_actions",
1037
+ actionsFull: "ChatInput_module_actionsFull",
1038
+ actionsEasy: "ChatInput_module_actionsEasy",
1039
+ toolGroup: "ChatInput_module_toolGroup"
1040
+ };
850
1041
  function ChatInput({
851
1042
  placeholder = "\u0412\u0432\u0435\u0434\u0438 \u0441\u0432\u043E\u0439 email...",
852
1043
  buttonText = "\u041D\u0430\u0447\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",
@@ -864,7 +1055,6 @@ function ChatInput({
864
1055
  setValue("");
865
1056
  }
866
1057
  };
867
- const containerStyles = contrast ? "bg-[var(--bg)] border border-[var(--bg-tertiary)] shadow-[var(--shadow-md)] px-[15px] py-[13px]" : "bg-[var(--bg-tertiary)] pl-3.5 pr-3 py-3";
868
1058
  return /* @__PURE__ */ jsxs(
869
1059
  "form",
870
1060
  {
@@ -873,7 +1063,7 @@ function ChatInput({
873
1063
  var _a;
874
1064
  return (_a = inputRef.current) == null ? void 0 : _a.focus();
875
1065
  },
876
- className: `rounded-[16px] overflow-hidden flex flex-col gap-4 w-full max-w-[440px] cursor-text ${containerStyles} ${className}`,
1066
+ className: `${ChatInput_module_default.root} ${contrast ? ChatInput_module_default.contrast : ChatInput_module_default.plain}${className ? ` ${className}` : ""}`,
877
1067
  children: [
878
1068
  /* @__PURE__ */ jsx(
879
1069
  "input",
@@ -883,11 +1073,11 @@ function ChatInput({
883
1073
  value,
884
1074
  onChange: (e) => setValue(e.target.value),
885
1075
  placeholder,
886
- className: "w-full bg-transparent border-none outline-none text-[13px] tracking-[-0.25px] text-[var(--fg)] placeholder:text-[var(--fg-muted)] font-normal"
1076
+ className: ChatInput_module_default.input
887
1077
  }
888
1078
  ),
889
- /* @__PURE__ */ jsxs("div", { className: `flex items-center ${type === "full" ? "justify-between" : "justify-end"}`, children: [
890
- type === "full" && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
1079
+ /* @__PURE__ */ jsxs("div", { className: `${ChatInput_module_default.actions} ${type === "full" ? ChatInput_module_default.actionsFull : ChatInput_module_default.actionsEasy}`, children: [
1080
+ type === "full" && /* @__PURE__ */ jsxs("div", { className: ChatInput_module_default.toolGroup, children: [
891
1081
  /* @__PURE__ */ jsx(IconButton, { variant: "secondary", icon: /* @__PURE__ */ jsx(IconlySmile, { size: 20 }), type: "button", "aria-label": "Emoji" }),
892
1082
  /* @__PURE__ */ jsx(IconButton, { variant: "clear", icon: /* @__PURE__ */ jsx(IconlyAttach, { size: 20 }), type: "button", "aria-label": "Attach" }),
893
1083
  /* @__PURE__ */ jsx(IconButton, { variant: "clear", icon: /* @__PURE__ */ jsx(IconlyInfo, { size: 20 }), type: "button", "aria-label": "Info" })
@@ -898,43 +1088,83 @@ function ChatInput({
898
1088
  }
899
1089
  );
900
1090
  }
1091
+
1092
+ // src/molecules/ChatMessage.module.scss
1093
+ var ChatMessage_module_default = {
1094
+ root: "ChatMessage_module_root",
1095
+ user: "ChatMessage_module_user",
1096
+ ai: "ChatMessage_module_ai",
1097
+ bubble: "ChatMessage_module_bubble",
1098
+ sm: "ChatMessage_module_sm",
1099
+ lg: "ChatMessage_module_lg",
1100
+ bubbleUser: "ChatMessage_module_bubbleUser",
1101
+ bubbleAi: "ChatMessage_module_bubbleAi"
1102
+ };
901
1103
  function ChatMessage({ children, role = "user", size = "sm", className = "" }) {
902
1104
  const isUser = role === "user";
903
- const isLarge = size === "lg";
904
- return /* @__PURE__ */ jsx("div", { className: `flex ${isUser ? "justify-end" : "justify-start"} ${className}`, children: /* @__PURE__ */ jsx(
1105
+ return /* @__PURE__ */ jsx("div", { className: `${ChatMessage_module_default.root} ${isUser ? ChatMessage_module_default.user : ChatMessage_module_default.ai}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx(
905
1106
  "div",
906
1107
  {
907
- className: `text-[13px] tracking-[-0.25px] font-normal px-4 rounded-tl-[16px] rounded-tr-[16px] ${isLarge ? "w-[225px] py-3" : "py-2"} ${isUser ? "bg-[var(--bg-secondary)] text-[var(--fg)] rounded-bl-[16px]" : "bg-[var(--color-accent)] text-[var(--bg)] rounded-br-[16px]"} ${isLarge ? "leading-normal" : "leading-normal"}`,
1108
+ className: `${ChatMessage_module_default.bubble} ${ChatMessage_module_default[size]} ${isUser ? ChatMessage_module_default.bubbleUser : ChatMessage_module_default.bubbleAi}`,
908
1109
  children
909
1110
  }
910
1111
  ) });
911
1112
  }
1113
+
1114
+ // src/molecules/TopPromo.module.scss
1115
+ var TopPromo_module_default = {
1116
+ root: "TopPromo_module_root",
1117
+ text: "TopPromo_module_text"
1118
+ };
912
1119
  function TopPromo({ text, buttonText = "\u0421\u043C\u043E\u0442\u0440\u0435\u0442\u044C", onButtonClick, className = "" }) {
913
- return /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-2.5 ${className}`, children: [
914
- /* @__PURE__ */ jsx("span", { className: "text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)]", children: text }),
1120
+ return /* @__PURE__ */ jsxs("div", { className: `${TopPromo_module_default.root}${className ? ` ${className}` : ""}`, children: [
1121
+ /* @__PURE__ */ jsx("span", { className: TopPromo_module_default.text, children: text }),
915
1122
  /* @__PURE__ */ jsx(Button, { variant: "primary", size: "sm", onClick: onButtonClick, children: buttonText })
916
1123
  ] });
917
1124
  }
1125
+
1126
+ // src/molecules/ProfileNav.module.scss
1127
+ var ProfileNav_module_default = {
1128
+ root: "ProfileNav_module_root",
1129
+ stats: "ProfileNav_module_stats",
1130
+ statItem: "ProfileNav_module_statItem",
1131
+ statText: "ProfileNav_module_statText",
1132
+ separator: "ProfileNav_module_separator"
1133
+ };
918
1134
  function ProfileNav({ stats, avatarSrc, avatarInitials = "DK", className = "" }) {
919
- return /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-5 ${className}`, children: [
920
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: stats.map((stat, i) => /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center text-[13px] font-medium tracking-[-0.25px] whitespace-nowrap", children: [
921
- /* @__PURE__ */ jsxs("span", { className: "text-[var(--fg-secondary)]", children: [
1135
+ return /* @__PURE__ */ jsxs("div", { className: `${ProfileNav_module_default.root}${className ? ` ${className}` : ""}`, children: [
1136
+ /* @__PURE__ */ jsx("div", { className: ProfileNav_module_default.stats, children: stats.map((stat, i) => /* @__PURE__ */ jsxs("span", { className: ProfileNav_module_default.statItem, children: [
1137
+ /* @__PURE__ */ jsxs("span", { className: ProfileNav_module_default.statText, children: [
922
1138
  stat.value,
923
1139
  " ",
924
1140
  stat.suffix
925
1141
  ] }),
926
- i < stats.length - 1 && /* @__PURE__ */ jsx("span", { className: "text-[var(--fg-muted)]", children: " //" })
1142
+ i < stats.length - 1 && /* @__PURE__ */ jsx("span", { className: ProfileNav_module_default.separator, children: " //" })
927
1143
  ] }, i)) }),
928
1144
  /* @__PURE__ */ jsx(Avatar, { size: "sm", src: avatarSrc, initials: avatarInitials })
929
1145
  ] });
930
1146
  }
1147
+
1148
+ // src/molecules/IconWithText.module.scss
1149
+ var IconWithText_module_default = {
1150
+ root: "IconWithText_module_root",
1151
+ icon: "IconWithText_module_icon",
1152
+ text: "IconWithText_module_text"
1153
+ };
931
1154
  function IconWithText({ icon, text, side = "left", className = "" }) {
932
- return /* @__PURE__ */ jsxs("div", { className: `inline-flex items-center gap-1.5 py-1 rounded-full ${className}`, children: [
933
- side === "left" && /* @__PURE__ */ jsx("span", { className: "shrink-0 w-5 h-5 flex items-center justify-center", children: icon }),
934
- /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px] whitespace-nowrap", children: text }),
935
- side === "right" && /* @__PURE__ */ jsx("span", { className: "shrink-0 w-5 h-5 flex items-center justify-center", children: icon })
1155
+ return /* @__PURE__ */ jsxs("div", { className: `${IconWithText_module_default.root}${className ? ` ${className}` : ""}`, children: [
1156
+ side === "left" && /* @__PURE__ */ jsx("span", { className: IconWithText_module_default.icon, children: icon }),
1157
+ /* @__PURE__ */ jsx("span", { className: IconWithText_module_default.text, children: text }),
1158
+ side === "right" && /* @__PURE__ */ jsx("span", { className: IconWithText_module_default.icon, children: icon })
936
1159
  ] });
937
1160
  }
1161
+
1162
+ // src/molecules/StampCard.module.scss
1163
+ var StampCard_module_default = {
1164
+ root: "StampCard_module_root",
1165
+ plain: "StampCard_module_plain",
1166
+ inner: "StampCard_module_inner"
1167
+ };
938
1168
  function StampCard({
939
1169
  children,
940
1170
  className = "",
@@ -986,9 +1216,9 @@ function StampCard({
986
1216
  };
987
1217
  }, [build, stamp]);
988
1218
  if (!stamp) {
989
- return /* @__PURE__ */ jsx("div", { className: `rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] overflow-hidden shadow-[var(--shadow-xs)] ${className}`, children });
1219
+ return /* @__PURE__ */ jsx("div", { className: `${StampCard_module_default.plain} ${className}`, children });
990
1220
  }
991
- return /* @__PURE__ */ jsx("div", { ref: outerRef, className: `relative ${className}`, children: /* @__PURE__ */ jsx("div", { style: { filter: "drop-shadow(0 1px 3px rgba(0,0,0,0.25)) drop-shadow(0 4px 12px rgba(0,0,0,0.20))" }, children: /* @__PURE__ */ jsx(
1221
+ return /* @__PURE__ */ jsx("div", { ref: outerRef, className: `${StampCard_module_default.root} ${className}`, children: /* @__PURE__ */ jsx("div", { style: { filter: "drop-shadow(0 1px 3px rgba(0,0,0,0.25)) drop-shadow(0 4px 12px rgba(0,0,0,0.20))" }, children: /* @__PURE__ */ jsx(
992
1222
  "div",
993
1223
  {
994
1224
  style: {
@@ -997,10 +1227,15 @@ function StampCard({
997
1227
  WebkitMaskSize: "100% 100%",
998
1228
  maskSize: "100% 100%"
999
1229
  },
1000
- children: /* @__PURE__ */ jsx("div", { className: "bg-[var(--bg)]", children })
1230
+ children: /* @__PURE__ */ jsx("div", { className: StampCard_module_default.inner, children })
1001
1231
  }
1002
1232
  ) }) });
1003
1233
  }
1234
+
1235
+ // src/molecules/PasswordInput.module.scss
1236
+ var PasswordInput_module_default = {
1237
+ toggle: "PasswordInput_module_toggle"
1238
+ };
1004
1239
  function PasswordInput(_a) {
1005
1240
  var props = __objRest(_a, []);
1006
1241
  const [showPassword, setShowPassword] = useState(false);
@@ -1013,7 +1248,7 @@ function PasswordInput(_a) {
1013
1248
  {
1014
1249
  type: "button",
1015
1250
  onClick: () => setShowPassword((prev) => !prev),
1016
- className: "flex items-center justify-center cursor-pointer",
1251
+ className: PasswordInput_module_default.toggle,
1017
1252
  "aria-label": showPassword ? "Hide password" : "Show password",
1018
1253
  tabIndex: -1,
1019
1254
  children: showPassword ? /* @__PURE__ */ jsx(IconlyEyeOff, { size: 18 }) : /* @__PURE__ */ jsx(IconlyEye, { size: 18 })
@@ -1022,31 +1257,54 @@ function PasswordInput(_a) {
1022
1257
  })
1023
1258
  );
1024
1259
  }
1260
+
1261
+ // src/molecules/Breadcrumbs.module.scss
1262
+ var Breadcrumbs_module_default = {
1263
+ list: "Breadcrumbs_module_list",
1264
+ item: "Breadcrumbs_module_item",
1265
+ separator: "Breadcrumbs_module_separator",
1266
+ active: "Breadcrumbs_module_active",
1267
+ link: "Breadcrumbs_module_link"
1268
+ };
1025
1269
  function Breadcrumbs({
1026
1270
  items,
1027
1271
  separator = /* @__PURE__ */ jsx(IconlyChevronRight, { size: 14 })
1028
1272
  }) {
1029
- return /* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx("ol", { className: "flex items-center gap-1.5 text-[13px] tracking-[-0.25px]", children: items.map((item, index) => {
1273
+ return /* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx("ol", { className: Breadcrumbs_module_default.list, children: items.map((item, index) => {
1030
1274
  var _a;
1031
1275
  const isLast = index === items.length - 1;
1032
- return /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-1.5", children: [
1033
- index > 0 && /* @__PURE__ */ jsx("span", { className: "text-[var(--fg-muted)]", "aria-hidden": "true", children: separator }),
1034
- isLast ? /* @__PURE__ */ jsx("span", { className: "text-[var(--fg)] font-medium", "aria-current": "page", children: item.label }) : /* @__PURE__ */ jsx(
1276
+ return /* @__PURE__ */ jsxs("li", { className: Breadcrumbs_module_default.item, children: [
1277
+ index > 0 && /* @__PURE__ */ jsx("span", { className: Breadcrumbs_module_default.separator, "aria-hidden": "true", children: separator }),
1278
+ isLast ? /* @__PURE__ */ jsx("span", { className: Breadcrumbs_module_default.active, "aria-current": "page", children: item.label }) : /* @__PURE__ */ jsx(
1035
1279
  "a",
1036
1280
  {
1037
1281
  href: (_a = item.href) != null ? _a : "#",
1038
- className: "text-[var(--fg-muted)] hover:text-[var(--fg)] transition-colors duration-[var(--transition-fast)]",
1282
+ className: Breadcrumbs_module_default.link,
1039
1283
  children: item.label
1040
1284
  }
1041
1285
  )
1042
1286
  ] }, index);
1043
1287
  }) }) });
1044
1288
  }
1045
- var variantConfig2 = {
1046
- info: { accentColor: "text-[var(--color-info)]", Icon: IconlyInfoCircle },
1047
- success: { accentColor: "text-[var(--color-success)]", Icon: IconlySuccess },
1048
- warning: { accentColor: "text-[var(--color-warning)]", Icon: IconlyWarning },
1049
- error: { accentColor: "text-[var(--color-error)]", Icon: IconlyError }
1289
+
1290
+ // src/molecules/Toast.module.scss
1291
+ var Toast_module_default = {
1292
+ root: "Toast_module_root",
1293
+ icon: "Toast_module_icon",
1294
+ info: "Toast_module_info",
1295
+ success: "Toast_module_success",
1296
+ warning: "Toast_module_warning",
1297
+ error: "Toast_module_error",
1298
+ content: "Toast_module_content",
1299
+ title: "Toast_module_title",
1300
+ message: "Toast_module_message",
1301
+ dismiss: "Toast_module_dismiss"
1302
+ };
1303
+ var variantIcons2 = {
1304
+ info: IconlyInfoCircle,
1305
+ success: IconlySuccess,
1306
+ warning: IconlyWarning,
1307
+ error: IconlyError
1050
1308
  };
1051
1309
  function Toast({
1052
1310
  variant = "info",
@@ -1063,25 +1321,25 @@ function Toast({
1063
1321
  return () => clearTimeout(timer);
1064
1322
  }, [visible, duration, onClose]);
1065
1323
  if (!visible) return null;
1066
- const config = variantConfig2[variant];
1067
- const { Icon } = config;
1324
+ const Icon = variantIcons2[variant];
1325
+ const variantClass = Toast_module_default[variant];
1068
1326
  return /* @__PURE__ */ jsxs(
1069
1327
  "div",
1070
1328
  {
1071
1329
  role: "alert",
1072
1330
  "aria-live": "assertive",
1073
- className: `fixed bottom-6 right-6 z-50 flex gap-3 p-4 rounded-[var(--radius-lg)] border border-[var(--border-color)] bg-[var(--bg-secondary)] shadow-lg max-w-sm ${className}`,
1331
+ className: `${Toast_module_default.root}${className ? ` ${className}` : ""}`,
1074
1332
  children: [
1075
- /* @__PURE__ */ jsx("div", { className: `shrink-0 mt-0.5 ${config.accentColor}`, children: /* @__PURE__ */ jsx(Icon, { size: 20 }) }),
1076
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
1077
- title && /* @__PURE__ */ jsx("p", { className: `text-[13px] font-medium tracking-[-0.25px] mb-0.5 ${config.accentColor}`, children: title }),
1078
- /* @__PURE__ */ jsx("p", { className: "text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)]", children: message })
1333
+ /* @__PURE__ */ jsx("div", { className: `${Toast_module_default.icon} ${variantClass}`, children: /* @__PURE__ */ jsx(Icon, { size: 20 }) }),
1334
+ /* @__PURE__ */ jsxs("div", { className: Toast_module_default.content, children: [
1335
+ title && /* @__PURE__ */ jsx("p", { className: `${Toast_module_default.title} ${variantClass}`, children: title }),
1336
+ /* @__PURE__ */ jsx("p", { className: Toast_module_default.message, children: message })
1079
1337
  ] }),
1080
1338
  /* @__PURE__ */ jsx(
1081
1339
  "button",
1082
1340
  {
1083
1341
  onClick: onClose,
1084
- className: "shrink-0 text-[var(--fg-muted)] hover:text-[var(--fg)] transition-all duration-[var(--transition-fast)] cursor-pointer",
1342
+ className: Toast_module_default.dismiss,
1085
1343
  "aria-label": "Dismiss",
1086
1344
  children: /* @__PURE__ */ jsx(IconlyClose, { size: 16 })
1087
1345
  }
@@ -1090,6 +1348,15 @@ function Toast({
1090
1348
  }
1091
1349
  );
1092
1350
  }
1351
+
1352
+ // src/molecules/Pagination.module.scss
1353
+ var Pagination_module_default = {
1354
+ root: "Pagination_module_root",
1355
+ pageBtn: "Pagination_module_pageBtn",
1356
+ activePage: "Pagination_module_activePage",
1357
+ ellipsis: "Pagination_module_ellipsis",
1358
+ nav: "Pagination_module_nav"
1359
+ };
1093
1360
  function getPageRange(current, total, siblings) {
1094
1361
  const range = /* @__PURE__ */ new Set();
1095
1362
  range.add(1);
@@ -1118,32 +1385,24 @@ function Pagination({
1118
1385
  const pages = getPageRange(currentPage, totalPages, siblingCount);
1119
1386
  const isFirst = currentPage === 1;
1120
1387
  const isLast = currentPage === totalPages;
1121
- const buttonBase = "min-w-[36px] h-[36px] flex items-center justify-center text-[13px] tracking-[-0.25px] transition-all duration-[var(--transition-fast)] cursor-pointer";
1122
- return /* @__PURE__ */ jsxs("nav", { "aria-label": "Pagination", className: `flex items-center gap-1 ${className}`, children: [
1388
+ return /* @__PURE__ */ jsxs("nav", { "aria-label": "Pagination", className: `${Pagination_module_default.root} ${className}`, children: [
1123
1389
  /* @__PURE__ */ jsx(
1124
1390
  "button",
1125
1391
  {
1126
1392
  onClick: () => onPageChange(currentPage - 1),
1127
1393
  disabled: isFirst,
1128
1394
  "aria-label": "Previous page",
1129
- className: `${buttonBase} text-[var(--fg-secondary)] hover:text-[var(--fg)] ${isFirst ? "opacity-50 cursor-not-allowed" : ""}`,
1395
+ className: Pagination_module_default.nav,
1130
1396
  children: /* @__PURE__ */ jsx(IconlyChevronLeft, { size: 18 })
1131
1397
  }
1132
1398
  ),
1133
1399
  pages.map(
1134
- (page, i) => page === "\u2026" ? /* @__PURE__ */ jsx(
1135
- "span",
1136
- {
1137
- className: "min-w-[36px] h-[36px] flex items-center justify-center text-[13px] text-[var(--fg-muted)]",
1138
- children: "\u2026"
1139
- },
1140
- `ellipsis-${i}`
1141
- ) : /* @__PURE__ */ jsx(
1400
+ (page, i) => page === "\u2026" ? /* @__PURE__ */ jsx("span", { className: Pagination_module_default.ellipsis, children: "\u2026" }, `ellipsis-${i}`) : /* @__PURE__ */ jsx(
1142
1401
  "button",
1143
1402
  {
1144
1403
  onClick: () => onPageChange(page),
1145
1404
  "aria-current": page === currentPage ? "page" : void 0,
1146
- className: `${buttonBase} rounded-full ${page === currentPage ? "bg-[var(--fg)] text-[var(--bg)] font-medium" : "text-[var(--fg-secondary)] hover:text-[var(--fg)] hover:bg-[var(--bg-secondary)]"}`,
1405
+ className: `${Pagination_module_default.pageBtn} ${page === currentPage ? Pagination_module_default.activePage : ""}`,
1147
1406
  children: page
1148
1407
  },
1149
1408
  page
@@ -1155,12 +1414,22 @@ function Pagination({
1155
1414
  onClick: () => onPageChange(currentPage + 1),
1156
1415
  disabled: isLast,
1157
1416
  "aria-label": "Next page",
1158
- className: `${buttonBase} text-[var(--fg-secondary)] hover:text-[var(--fg)] ${isLast ? "opacity-50 cursor-not-allowed" : ""}`,
1417
+ className: Pagination_module_default.nav,
1159
1418
  children: /* @__PURE__ */ jsx(IconlyChevronRight, { size: 18 })
1160
1419
  }
1161
1420
  )
1162
1421
  ] });
1163
1422
  }
1423
+
1424
+ // src/molecules/CodeInput.module.scss
1425
+ var CodeInput_module_default = {
1426
+ root: "CodeInput_module_root",
1427
+ label: "CodeInput_module_label",
1428
+ group: "CodeInput_module_group",
1429
+ digitInput: "CodeInput_module_digitInput",
1430
+ digitError: "CodeInput_module_digitError",
1431
+ errorText: "CodeInput_module_errorText"
1432
+ };
1164
1433
  function CodeInput({
1165
1434
  length,
1166
1435
  value,
@@ -1213,16 +1482,9 @@ function CodeInput({
1213
1482
  [length, onChange, focusInput]
1214
1483
  );
1215
1484
  const inputId = label == null ? void 0 : label.toLowerCase().replace(/\s+/g, "-");
1216
- return /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-1.5 ${className}`, children: [
1217
- label && /* @__PURE__ */ jsx(
1218
- "label",
1219
- {
1220
- htmlFor: inputId,
1221
- className: "text-[13px] font-medium text-[var(--fg)] tracking-[-0.25px]",
1222
- children: label
1223
- }
1224
- ),
1225
- /* @__PURE__ */ jsx("div", { className: "flex gap-3", role: "group", "aria-label": label || "Code input", children: Array.from({ length }, (_, i) => /* @__PURE__ */ jsx(
1485
+ return /* @__PURE__ */ jsxs("div", { className: `${CodeInput_module_default.root} ${className}`, children: [
1486
+ label && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: CodeInput_module_default.label, children: label }),
1487
+ /* @__PURE__ */ jsx("div", { className: CodeInput_module_default.group, role: "group", "aria-label": label || "Code input", children: Array.from({ length }, (_, i) => /* @__PURE__ */ jsx(
1226
1488
  "input",
1227
1489
  {
1228
1490
  id: i === 0 ? inputId : void 0,
@@ -1237,14 +1499,25 @@ function CodeInput({
1237
1499
  onKeyDown: handleKeyDown(i),
1238
1500
  onPaste: handlePaste,
1239
1501
  autoComplete: "one-time-code",
1240
- className: `w-12 h-12 text-center text-lg border bg-[var(--bg)] text-[var(--fg)] rounded-[var(--radius-lg)] transition-all duration-[var(--transition-fast)] focus:outline-none focus:border-[var(--fg)] ${error ? "border-[var(--color-error)] focus:border-[var(--color-error)]" : "border-[var(--fg-muted)]"}`,
1502
+ className: `${CodeInput_module_default.digitInput} ${error ? CodeInput_module_default.digitError : ""}`,
1241
1503
  "aria-label": `Digit ${i + 1}`
1242
1504
  },
1243
1505
  i
1244
1506
  )) }),
1245
- error && /* @__PURE__ */ jsx("p", { className: "text-[13px] tracking-[-0.25px] text-[var(--color-error)]", children: error })
1507
+ error && /* @__PURE__ */ jsx("p", { className: CodeInput_module_default.errorText, children: error })
1246
1508
  ] });
1247
1509
  }
1510
+
1511
+ // src/molecules/Modal.module.scss
1512
+ var Modal_module_default = {
1513
+ dialog: "Modal_module_dialog",
1514
+ content: "Modal_module_content",
1515
+ header: "Modal_module_header",
1516
+ title: "Modal_module_title",
1517
+ closeBtn: "Modal_module_closeBtn",
1518
+ body: "Modal_module_body",
1519
+ footer: "Modal_module_footer"
1520
+ };
1248
1521
  function Modal({
1249
1522
  open,
1250
1523
  onClose,
@@ -1274,27 +1547,39 @@ function Modal({
1274
1547
  ref: dialogRef,
1275
1548
  onClose,
1276
1549
  onClick: handleBackdropClick,
1277
- className: `max-w-lg w-full p-0 rounded-[var(--radius-lg)] shadow-xl bg-[var(--bg)] border border-[var(--border-color)] backdrop:bg-black/50 ${className}`,
1278
- children: /* @__PURE__ */ jsxs("div", { className: "p-6", children: [
1279
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between mb-4", children: [
1280
- title && /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-[var(--fg)] tracking-[-0.25px]", children: title }),
1550
+ className: `${Modal_module_default.dialog}${className ? ` ${className}` : ""}`,
1551
+ children: /* @__PURE__ */ jsxs("div", { className: Modal_module_default.content, children: [
1552
+ /* @__PURE__ */ jsxs("div", { className: Modal_module_default.header, children: [
1553
+ title && /* @__PURE__ */ jsx("h2", { className: Modal_module_default.title, children: title }),
1281
1554
  /* @__PURE__ */ jsx(
1282
1555
  "button",
1283
1556
  {
1284
1557
  type: "button",
1285
1558
  onClick: onClose,
1286
- className: "shrink-0 ml-auto text-[var(--fg-muted)] hover:text-[var(--fg)] transition-all duration-[var(--transition-fast)] cursor-pointer",
1559
+ className: Modal_module_default.closeBtn,
1287
1560
  "aria-label": "Close",
1288
1561
  children: /* @__PURE__ */ jsx(IconlyClose, { size: 20 })
1289
1562
  }
1290
1563
  )
1291
1564
  ] }),
1292
- /* @__PURE__ */ jsx("div", { className: "text-[14px] text-[var(--fg-secondary)] leading-relaxed", children }),
1293
- footer && /* @__PURE__ */ jsx("div", { className: "flex gap-3 justify-end mt-6", children: footer })
1565
+ /* @__PURE__ */ jsx("div", { className: Modal_module_default.body, children }),
1566
+ footer && /* @__PURE__ */ jsx("div", { className: Modal_module_default.footer, children: footer })
1294
1567
  ] })
1295
1568
  }
1296
1569
  );
1297
1570
  }
1571
+
1572
+ // src/molecules/DropdownMenu.module.scss
1573
+ var DropdownMenu_module_default = {
1574
+ root: "DropdownMenu_module_root",
1575
+ trigger: "DropdownMenu_module_trigger",
1576
+ menu: "DropdownMenu_module_menu",
1577
+ alignLeft: "DropdownMenu_module_alignLeft",
1578
+ alignRight: "DropdownMenu_module_alignRight",
1579
+ item: "DropdownMenu_module_item",
1580
+ itemIcon: "DropdownMenu_module_itemIcon",
1581
+ divider: "DropdownMenu_module_divider"
1582
+ };
1298
1583
  function DropdownMenu({
1299
1584
  trigger,
1300
1585
  items,
@@ -1362,7 +1647,7 @@ function DropdownMenu({
1362
1647
  openMenu();
1363
1648
  }
1364
1649
  };
1365
- return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: `relative inline-block ${className}`, children: [
1650
+ return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: `${DropdownMenu_module_default.root} ${className}`, children: [
1366
1651
  /* @__PURE__ */ jsx(
1367
1652
  "div",
1368
1653
  {
@@ -1371,7 +1656,7 @@ function DropdownMenu({
1371
1656
  tabIndex: 0,
1372
1657
  onClick: () => isOpen ? closeMenu() : openMenu(),
1373
1658
  onKeyDown: handleTriggerKeyDown,
1374
- className: "cursor-pointer inline-flex",
1659
+ className: DropdownMenu_module_default.trigger,
1375
1660
  "aria-haspopup": "true",
1376
1661
  "aria-expanded": isOpen,
1377
1662
  children: trigger
@@ -1382,9 +1667,9 @@ function DropdownMenu({
1382
1667
  {
1383
1668
  role: "menu",
1384
1669
  onKeyDown: handleMenuKeyDown,
1385
- className: `absolute top-full mt-1 z-50 rounded-[var(--radius-lg)] shadow-lg border border-[var(--border-color)] bg-[var(--bg)] min-w-[180px] py-1 ${align === "right" ? "right-0" : "left-0"}`,
1670
+ className: `${DropdownMenu_module_default.menu} ${align === "right" ? DropdownMenu_module_default.alignRight : DropdownMenu_module_default.alignLeft}`,
1386
1671
  children: items.map((item, i) => /* @__PURE__ */ jsxs("div", { children: [
1387
- item.divider && /* @__PURE__ */ jsx("hr", { className: "my-1 border-[var(--border-color)]" }),
1672
+ item.divider && /* @__PURE__ */ jsx("hr", { className: DropdownMenu_module_default.divider }),
1388
1673
  /* @__PURE__ */ jsxs(
1389
1674
  "button",
1390
1675
  {
@@ -1398,9 +1683,9 @@ function DropdownMenu({
1398
1683
  item.onClick();
1399
1684
  closeMenu();
1400
1685
  },
1401
- className: "flex items-center gap-2 w-full px-3 py-2 text-[13px] tracking-[-0.25px] text-[var(--fg-secondary)] hover:bg-[var(--bg-secondary)] hover:text-[var(--fg)] transition-all duration-[var(--transition-fast)] cursor-pointer text-left",
1686
+ className: DropdownMenu_module_default.item,
1402
1687
  children: [
1403
- item.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--fg-muted)]", children: item.icon }),
1688
+ item.icon && /* @__PURE__ */ jsx("span", { className: DropdownMenu_module_default.itemIcon, children: item.icon }),
1404
1689
  item.label
1405
1690
  ]
1406
1691
  }
@@ -1410,56 +1695,90 @@ function DropdownMenu({
1410
1695
  )
1411
1696
  ] });
1412
1697
  }
1698
+
1699
+ // src/organisms/Header.module.scss
1700
+ var Header_module_default = {
1701
+ root: "Header_module_root",
1702
+ container: "Header_module_container",
1703
+ bar: "Header_module_bar",
1704
+ leftGroup: "Header_module_leftGroup",
1705
+ logoFallback: "Header_module_logoFallback",
1706
+ logoBrand: "Header_module_logoBrand",
1707
+ desktopNav: "Header_module_desktopNav",
1708
+ navLink: "Header_module_navLink",
1709
+ desktopActions: "Header_module_desktopActions",
1710
+ mobileToggle: "Header_module_mobileToggle",
1711
+ mobileMenu: "Header_module_mobileMenu",
1712
+ mobileNav: "Header_module_mobileNav",
1713
+ mobileActions: "Header_module_mobileActions"
1714
+ };
1413
1715
  function Header({ logo, navItems = [], className = "" }) {
1414
1716
  const [mobileOpen, setMobileOpen] = useState(false);
1415
- return /* @__PURE__ */ jsxs("header", { className: `border-b border-[var(--border-color)] bg-[var(--bg)]/80 backdrop-blur-md sticky top-0 z-50 ${className}`, children: [
1416
- /* @__PURE__ */ jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between h-16", children: [
1417
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-8", children: [
1418
- logo || /* @__PURE__ */ jsxs("span", { className: "text-lg font-bold text-[var(--fg)]", children: [
1419
- /* @__PURE__ */ jsx("span", { className: "text-[var(--brand-primary)]", children: "K" }),
1717
+ return /* @__PURE__ */ jsxs("header", { className: `${Header_module_default.root}${className ? ` ${className}` : ""}`, children: [
1718
+ /* @__PURE__ */ jsx("div", { className: Header_module_default.container, children: /* @__PURE__ */ jsxs("div", { className: Header_module_default.bar, children: [
1719
+ /* @__PURE__ */ jsxs("div", { className: Header_module_default.leftGroup, children: [
1720
+ logo || /* @__PURE__ */ jsxs("span", { className: Header_module_default.logoFallback, children: [
1721
+ /* @__PURE__ */ jsx("span", { className: Header_module_default.logoBrand, children: "K" }),
1420
1722
  "apustin"
1421
1723
  ] }),
1422
- /* @__PURE__ */ jsx("nav", { className: "hidden md:flex items-center gap-1", children: navItems.map((item) => /* @__PURE__ */ jsx(
1724
+ /* @__PURE__ */ jsx("nav", { className: Header_module_default.desktopNav, children: navItems.map((item) => /* @__PURE__ */ jsx(
1423
1725
  "a",
1424
1726
  {
1425
1727
  href: item.href,
1426
- className: "px-3 py-2 text-sm text-[var(--fg-secondary)] hover:text-[var(--fg)] rounded-[var(--radius-md)] hover:bg-[var(--bg-tertiary)] transition-colors",
1728
+ className: Header_module_default.navLink,
1427
1729
  children: item.label
1428
1730
  },
1429
1731
  item.label
1430
1732
  )) })
1431
1733
  ] }),
1432
- /* @__PURE__ */ jsxs("div", { className: "hidden md:flex items-center gap-3", children: [
1734
+ /* @__PURE__ */ jsxs("div", { className: Header_module_default.desktopActions, children: [
1433
1735
  /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", children: "Sign in" }),
1434
1736
  /* @__PURE__ */ jsx(Button, { size: "sm", children: "Get started" })
1435
1737
  ] }),
1436
1738
  /* @__PURE__ */ jsx(
1437
1739
  "button",
1438
1740
  {
1439
- className: "md:hidden p-2 text-[var(--fg-secondary)] hover:text-[var(--fg)] cursor-pointer",
1741
+ className: Header_module_default.mobileToggle,
1440
1742
  onClick: () => setMobileOpen(!mobileOpen),
1441
1743
  "aria-label": "Toggle menu",
1442
1744
  children: mobileOpen ? /* @__PURE__ */ jsx(IconlyClose, { size: 24 }) : /* @__PURE__ */ jsx(IconlyMenu, { size: 24 })
1443
1745
  }
1444
1746
  )
1445
1747
  ] }) }),
1446
- mobileOpen && /* @__PURE__ */ jsxs("div", { className: "md:hidden border-t border-[var(--border-color)] bg-[var(--bg)] px-4 py-4", children: [
1447
- /* @__PURE__ */ jsx("nav", { className: "flex flex-col gap-1", children: navItems.map((item) => /* @__PURE__ */ jsx(
1748
+ mobileOpen && /* @__PURE__ */ jsxs("div", { className: Header_module_default.mobileMenu, children: [
1749
+ /* @__PURE__ */ jsx("nav", { className: Header_module_default.mobileNav, children: navItems.map((item) => /* @__PURE__ */ jsx(
1448
1750
  "a",
1449
1751
  {
1450
1752
  href: item.href,
1451
- className: "px-3 py-2 text-sm text-[var(--fg-secondary)] hover:text-[var(--fg)] rounded-[var(--radius-md)] hover:bg-[var(--bg-tertiary)] transition-colors",
1753
+ className: Header_module_default.navLink,
1452
1754
  children: item.label
1453
1755
  },
1454
1756
  item.label
1455
1757
  )) }),
1456
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 mt-4 pt-4 border-t border-[var(--border-color)]", children: [
1758
+ /* @__PURE__ */ jsxs("div", { className: Header_module_default.mobileActions, children: [
1457
1759
  /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", children: "Sign in" }),
1458
1760
  /* @__PURE__ */ jsx(Button, { size: "sm", children: "Get started" })
1459
1761
  ] })
1460
1762
  ] })
1461
1763
  ] });
1462
1764
  }
1765
+
1766
+ // src/organisms/Footer.module.scss
1767
+ var Footer_module_default = {
1768
+ root: "Footer_module_root",
1769
+ container: "Footer_module_container",
1770
+ grid: "Footer_module_grid",
1771
+ brand: "Footer_module_brand",
1772
+ brandAccent: "Footer_module_brandAccent",
1773
+ tagline: "Footer_module_tagline",
1774
+ columnTitle: "Footer_module_columnTitle",
1775
+ linkList: "Footer_module_linkList",
1776
+ link: "Footer_module_link",
1777
+ bottom: "Footer_module_bottom",
1778
+ copyright: "Footer_module_copyright",
1779
+ socials: "Footer_module_socials",
1780
+ socialLink: "Footer_module_socialLink"
1781
+ };
1463
1782
  var defaultColumns = [
1464
1783
  {
1465
1784
  title: "Product",
@@ -1490,38 +1809,38 @@ var defaultColumns = [
1490
1809
  }
1491
1810
  ];
1492
1811
  function Footer({ columns = defaultColumns, className = "" }) {
1493
- return /* @__PURE__ */ jsx("footer", { className: `border-t border-[var(--border-color)] bg-[var(--bg)] ${className}`, children: /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12", children: [
1494
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-8", children: [
1812
+ return /* @__PURE__ */ jsx("footer", { className: `${Footer_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsxs("div", { className: Footer_module_default.container, children: [
1813
+ /* @__PURE__ */ jsxs("div", { className: Footer_module_default.grid, children: [
1495
1814
  /* @__PURE__ */ jsxs("div", { children: [
1496
- /* @__PURE__ */ jsxs("span", { className: "text-lg font-bold text-[var(--fg)]", children: [
1497
- /* @__PURE__ */ jsx("span", { className: "text-[var(--brand-primary)]", children: "K" }),
1815
+ /* @__PURE__ */ jsxs("span", { className: Footer_module_default.brand, children: [
1816
+ /* @__PURE__ */ jsx("span", { className: Footer_module_default.brandAccent, children: "K" }),
1498
1817
  "apustin"
1499
1818
  ] }),
1500
- /* @__PURE__ */ jsx("p", { className: "mt-3 text-[13px] text-[var(--fg-muted)] leading-relaxed tracking-[-0.25px]", children: "A modern design system for building beautiful interfaces." })
1819
+ /* @__PURE__ */ jsx("p", { className: Footer_module_default.tagline, children: "A modern design system for building beautiful interfaces." })
1501
1820
  ] }),
1502
1821
  columns.map((col) => /* @__PURE__ */ jsxs("div", { children: [
1503
- /* @__PURE__ */ jsx("h4", { className: "text-[13px] font-semibold text-[var(--fg-secondary)] mb-3 tracking-[-0.25px]", children: col.title }),
1504
- /* @__PURE__ */ jsx("ul", { className: "space-y-2.5", children: col.links.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1822
+ /* @__PURE__ */ jsx("h4", { className: Footer_module_default.columnTitle, children: col.title }),
1823
+ /* @__PURE__ */ jsx("ul", { className: Footer_module_default.linkList, children: col.links.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1505
1824
  "a",
1506
1825
  {
1507
1826
  href: link.href,
1508
- className: "text-[13px] text-[var(--fg-muted)] hover:text-[var(--fg)] transition-colors duration-[var(--transition-fast)] tracking-[-0.25px]",
1827
+ className: Footer_module_default.link,
1509
1828
  children: link.label
1510
1829
  }
1511
1830
  ) }, link.label)) })
1512
1831
  ] }, col.title))
1513
1832
  ] }),
1514
- /* @__PURE__ */ jsxs("div", { className: "mt-12 pt-8 border-t border-[var(--border-color)] flex flex-col sm:flex-row justify-between items-center gap-4", children: [
1515
- /* @__PURE__ */ jsxs("p", { className: "text-[13px] text-[var(--fg-muted)] tracking-[-0.25px]", children: [
1833
+ /* @__PURE__ */ jsxs("div", { className: Footer_module_default.bottom, children: [
1834
+ /* @__PURE__ */ jsxs("p", { className: Footer_module_default.copyright, children: [
1516
1835
  "\xA9 ",
1517
1836
  (/* @__PURE__ */ new Date()).getFullYear(),
1518
1837
  " Kapustin Team. All rights reserved."
1519
1838
  ] }),
1520
- /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: ["Twitter", "GitHub", "Discord"].map((social) => /* @__PURE__ */ jsx(
1839
+ /* @__PURE__ */ jsx("div", { className: Footer_module_default.socials, children: ["Twitter", "GitHub", "Discord"].map((social) => /* @__PURE__ */ jsx(
1521
1840
  "a",
1522
1841
  {
1523
1842
  href: "#",
1524
- className: "text-[13px] text-[var(--fg-muted)] hover:text-[var(--fg)] transition-colors duration-[var(--transition-fast)] tracking-[-0.25px]",
1843
+ className: Footer_module_default.socialLink,
1525
1844
  children: social
1526
1845
  },
1527
1846
  social
@@ -1529,6 +1848,23 @@ function Footer({ columns = defaultColumns, className = "" }) {
1529
1848
  ] })
1530
1849
  ] }) });
1531
1850
  }
1851
+
1852
+ // src/organisms/PricingCard.module.scss
1853
+ var PricingCard_module_default = {
1854
+ root: "PricingCard_module_root",
1855
+ highlighted: "PricingCard_module_highlighted",
1856
+ badgeWrap: "PricingCard_module_badgeWrap",
1857
+ header: "PricingCard_module_header",
1858
+ plan: "PricingCard_module_plan",
1859
+ description: "PricingCard_module_description",
1860
+ priceBlock: "PricingCard_module_priceBlock",
1861
+ price: "PricingCard_module_price",
1862
+ period: "PricingCard_module_period",
1863
+ features: "PricingCard_module_features",
1864
+ featureItem: "PricingCard_module_featureItem",
1865
+ featureIcon: "PricingCard_module_featureIcon",
1866
+ cta: "PricingCard_module_cta"
1867
+ };
1532
1868
  function PricingCard({
1533
1869
  plan,
1534
1870
  price,
@@ -1542,63 +1878,88 @@ function PricingCard({
1542
1878
  return /* @__PURE__ */ jsxs(
1543
1879
  "div",
1544
1880
  {
1545
- className: `relative rounded-[var(--radius-xl)] border p-6 flex flex-col ${highlighted ? "border-[var(--brand-primary)] shadow-[0_0_0_1px_var(--brand-primary),var(--shadow-lg)] bg-[var(--bg)]" : "border-[var(--border-color)] bg-[var(--bg)] shadow-[var(--shadow-xs)]"} ${className}`,
1881
+ className: `${PricingCard_module_default.root}${highlighted ? ` ${PricingCard_module_default.highlighted}` : ""}${className ? ` ${className}` : ""}`,
1546
1882
  children: [
1547
- badge && /* @__PURE__ */ jsx("div", { className: "absolute -top-3 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsx(Badge, { color: "info", children: badge }) }),
1548
- /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
1549
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-[var(--fg)]", children: plan }),
1550
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--fg-muted)] mt-1", children: description })
1883
+ badge && /* @__PURE__ */ jsx("div", { className: PricingCard_module_default.badgeWrap, children: /* @__PURE__ */ jsx(Badge, { color: "info", children: badge }) }),
1884
+ /* @__PURE__ */ jsxs("div", { className: PricingCard_module_default.header, children: [
1885
+ /* @__PURE__ */ jsx("h3", { className: PricingCard_module_default.plan, children: plan }),
1886
+ description && /* @__PURE__ */ jsx("p", { className: PricingCard_module_default.description, children: description })
1551
1887
  ] }),
1552
- /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
1553
- /* @__PURE__ */ jsx("span", { className: "text-4xl font-bold text-[var(--fg)]", children: price }),
1554
- /* @__PURE__ */ jsx("span", { className: "text-[var(--fg-muted)]", children: period })
1888
+ /* @__PURE__ */ jsxs("div", { className: PricingCard_module_default.priceBlock, children: [
1889
+ /* @__PURE__ */ jsx("span", { className: PricingCard_module_default.price, children: price }),
1890
+ /* @__PURE__ */ jsx("span", { className: PricingCard_module_default.period, children: period })
1555
1891
  ] }),
1556
- /* @__PURE__ */ jsx("ul", { className: "space-y-3 mb-8 flex-1", children: features.map((feature, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2.5 text-sm text-[var(--fg-secondary)]", children: [
1557
- /* @__PURE__ */ jsx("span", { className: "shrink-0 mt-0.5 text-[var(--color-success)]", children: /* @__PURE__ */ jsx(IconlyCheck, { size: 16 }) }),
1892
+ /* @__PURE__ */ jsx("ul", { className: PricingCard_module_default.features, children: features.map((feature, i) => /* @__PURE__ */ jsxs("li", { className: PricingCard_module_default.featureItem, children: [
1893
+ /* @__PURE__ */ jsx("span", { className: PricingCard_module_default.featureIcon, children: /* @__PURE__ */ jsx(IconlyCheck, { size: 16 }) }),
1558
1894
  feature
1559
1895
  ] }, i)) }),
1560
- /* @__PURE__ */ jsx(Button, { variant: highlighted ? "primary" : "outline", className: "w-full", children: "Get started" })
1896
+ /* @__PURE__ */ jsx(Button, { variant: highlighted ? "primary" : "outline", className: PricingCard_module_default.cta, children: "Get started" })
1561
1897
  ]
1562
1898
  }
1563
1899
  );
1564
1900
  }
1901
+
1902
+ // src/organisms/TestimonialCard.module.scss
1903
+ var TestimonialCard_module_default = {
1904
+ root: "TestimonialCard_module_root",
1905
+ quoteIcon: "TestimonialCard_module_quoteIcon",
1906
+ quoteText: "TestimonialCard_module_quoteText",
1907
+ author: "TestimonialCard_module_author",
1908
+ authorName: "TestimonialCard_module_authorName",
1909
+ authorRole: "TestimonialCard_module_authorRole"
1910
+ };
1565
1911
  function TestimonialCard({ quote, name, role, avatarSrc, className = "" }) {
1566
1912
  const initials = name.split(" ").map((n) => n[0]).join("").toUpperCase();
1567
- return /* @__PURE__ */ jsxs("div", { className: `rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] p-6 shadow-[var(--shadow-xs)] ${className}`, children: [
1568
- /* @__PURE__ */ jsx("div", { className: "text-[var(--brand-primary)] opacity-30 mb-4", children: /* @__PURE__ */ jsx(IconlyQuote, { size: 32 }) }),
1569
- /* @__PURE__ */ jsxs("p", { className: "text-sm text-[var(--fg-secondary)] leading-relaxed mb-6", children: [
1913
+ return /* @__PURE__ */ jsxs("div", { className: `${TestimonialCard_module_default.root}${className ? ` ${className}` : ""}`, children: [
1914
+ /* @__PURE__ */ jsx("div", { className: TestimonialCard_module_default.quoteIcon, children: /* @__PURE__ */ jsx(IconlyQuote, { size: 32 }) }),
1915
+ /* @__PURE__ */ jsxs("p", { className: TestimonialCard_module_default.quoteText, children: [
1570
1916
  "\u201C",
1571
1917
  quote,
1572
1918
  "\u201D"
1573
1919
  ] }),
1574
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
1920
+ /* @__PURE__ */ jsxs("div", { className: TestimonialCard_module_default.author, children: [
1575
1921
  /* @__PURE__ */ jsx(Avatar, { src: avatarSrc, initials, size: "sm" }),
1576
1922
  /* @__PURE__ */ jsxs("div", { children: [
1577
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[var(--fg)]", children: name }),
1578
- /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--fg-muted)]", children: role })
1923
+ /* @__PURE__ */ jsx("p", { className: TestimonialCard_module_default.authorName, children: name }),
1924
+ /* @__PURE__ */ jsx("p", { className: TestimonialCard_module_default.authorRole, children: role })
1579
1925
  ] })
1580
1926
  ] })
1581
1927
  ] });
1582
1928
  }
1929
+
1930
+ // src/organisms/FeatureGrid.module.scss
1931
+ var FeatureGrid_module_default = {
1932
+ root: "FeatureGrid_module_root",
1933
+ cols2: "FeatureGrid_module_cols2",
1934
+ cols3: "FeatureGrid_module_cols3",
1935
+ cols4: "FeatureGrid_module_cols4",
1936
+ card: "FeatureGrid_module_card",
1937
+ cardIcon: "FeatureGrid_module_cardIcon",
1938
+ cardTitle: "FeatureGrid_module_cardTitle",
1939
+ cardDescription: "FeatureGrid_module_cardDescription"
1940
+ };
1583
1941
  function FeatureGrid({ features, columns = 3, className = "" }) {
1584
- const gridCols = {
1585
- 2: "md:grid-cols-2",
1586
- 3: "md:grid-cols-3",
1587
- 4: "md:grid-cols-2 lg:grid-cols-4"
1942
+ const colsClass = {
1943
+ 2: FeatureGrid_module_default.cols2,
1944
+ 3: FeatureGrid_module_default.cols3,
1945
+ 4: FeatureGrid_module_default.cols4
1588
1946
  };
1589
- return /* @__PURE__ */ jsx("div", { className: `grid grid-cols-1 ${gridCols[columns]} gap-6 ${className}`, children: features.map((feature, i) => /* @__PURE__ */ jsxs(
1590
- "div",
1591
- {
1592
- className: "rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] p-6 transition-all duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)] hover:-translate-y-0.5",
1593
- children: [
1594
- /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-[var(--radius-lg)] bg-[var(--brand-primary)]/10 flex items-center justify-center text-[var(--brand-primary)] mb-4", children: feature.icon }),
1595
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-[var(--fg)] mb-1.5", children: feature.title }),
1596
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--fg-muted)] leading-relaxed", children: feature.description })
1597
- ]
1598
- },
1599
- i
1600
- )) });
1947
+ return /* @__PURE__ */ jsx("div", { className: `${FeatureGrid_module_default.root} ${colsClass[columns]}${className ? ` ${className}` : ""}`, children: features.map((feature, i) => /* @__PURE__ */ jsxs("div", { className: FeatureGrid_module_default.card, children: [
1948
+ /* @__PURE__ */ jsx("div", { className: FeatureGrid_module_default.cardIcon, children: feature.icon }),
1949
+ /* @__PURE__ */ jsx("h3", { className: FeatureGrid_module_default.cardTitle, children: feature.title }),
1950
+ /* @__PURE__ */ jsx("p", { className: FeatureGrid_module_default.cardDescription, children: feature.description })
1951
+ ] }, i)) });
1601
1952
  }
1953
+
1954
+ // src/organisms/Sidebar.module.scss
1955
+ var Sidebar_module_default = {
1956
+ root: "Sidebar_module_root",
1957
+ menu: "Sidebar_module_menu",
1958
+ courseSubmenu: "Sidebar_module_courseSubmenu",
1959
+ nav: "Sidebar_module_nav",
1960
+ footer: "Sidebar_module_footer",
1961
+ legal: "Sidebar_module_legal"
1962
+ };
1602
1963
  var defaultMenuItems = [
1603
1964
  "\u0413\u043B\u0430\u0432\u043D\u0430\u044F",
1604
1965
  "\u041C\u043E\u0438 \u043A\u0443\u0440\u0441\u044B",
@@ -1620,13 +1981,13 @@ var courseMenuItems = [
1620
1981
  function Sidebar({ type = "menu", menuItems, footer, className = "" }) {
1621
1982
  const items = menuItems || (type === "courseSubmenu" ? courseMenuItems : defaultMenuItems);
1622
1983
  const [active, setActive] = useState(0);
1623
- const width = type === "courseSubmenu" ? "w-[340px]" : "w-[240px]";
1984
+ const widthClass = type === "courseSubmenu" ? Sidebar_module_default.courseSubmenu : Sidebar_module_default.menu;
1624
1985
  return /* @__PURE__ */ jsxs(
1625
1986
  "aside",
1626
1987
  {
1627
- className: `bg-[var(--bg)] border-r border-[var(--border-color)] flex flex-col justify-between p-8 shrink-0 h-full ${width} ${className}`,
1988
+ className: `${Sidebar_module_default.root} ${widthClass}${className ? ` ${className}` : ""}`,
1628
1989
  children: [
1629
- /* @__PURE__ */ jsx("nav", { className: "flex flex-col gap-1 items-start", children: items.map((item, i) => /* @__PURE__ */ jsx(
1990
+ /* @__PURE__ */ jsx("nav", { className: Sidebar_module_default.nav, children: items.map((item, i) => /* @__PURE__ */ jsx(
1630
1991
  MenuItem,
1631
1992
  {
1632
1993
  text: item,
@@ -1635,9 +1996,9 @@ function Sidebar({ type = "menu", menuItems, footer, className = "" }) {
1635
1996
  },
1636
1997
  `${item}-${i}`
1637
1998
  )) }),
1638
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5 w-full", children: [
1999
+ /* @__PURE__ */ jsxs("div", { className: Sidebar_module_default.footer, children: [
1639
2000
  type === "menu" && footer,
1640
- /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-[var(--fg-muted)] tracking-[-0.2px]", children: [
2001
+ /* @__PURE__ */ jsxs("p", { className: Sidebar_module_default.legal, children: [
1641
2002
  "kapustin.cc, 2026 ",
1642
2003
  /* @__PURE__ */ jsx("br", {}),
1643
2004
  "\u0418\u041F \u041A\u0430\u043F\u0443\u0441\u0442\u0438\u043D \u0414.\u0412., \u0418\u041D\u041D 7721250201"
@@ -1647,6 +2008,25 @@ function Sidebar({ type = "menu", menuItems, footer, className = "" }) {
1647
2008
  }
1648
2009
  );
1649
2010
  }
2011
+
2012
+ // src/organisms/AppCard.module.scss
2013
+ var AppCard_module_default = {
2014
+ defaultCard: "AppCard_module_defaultCard",
2015
+ stampCard: "AppCard_module_stampCard",
2016
+ imageWrap: "AppCard_module_imageWrap",
2017
+ imageWrapRounded: "AppCard_module_imageWrap AppCard_module_imageWrapRounded",
2018
+ image: "AppCard_module_image",
2019
+ contentDefaultNoImage: "AppCard_module_contentArea AppCard_module_contentDefault AppCard_module_contentDefaultNoImage",
2020
+ contentDefaultWithImage: "AppCard_module_contentArea AppCard_module_contentDefault AppCard_module_contentDefaultWithImage",
2021
+ contentStamp: "AppCard_module_contentArea AppCard_module_contentStamp",
2022
+ textGroup: "AppCard_module_textGroup",
2023
+ cardTitle: "AppCard_module_cardTitle",
2024
+ cardDesc: "AppCard_module_cardDesc",
2025
+ footer: "AppCard_module_footer",
2026
+ iconRow: "AppCard_module_iconRow",
2027
+ shadowWrap: "AppCard_module_shadowWrap",
2028
+ stampBg: "AppCard_module_stampBg"
2029
+ };
1650
2030
  var HOLE_R = 4;
1651
2031
  var HOLE_SP = 16;
1652
2032
  function buildStampMask(w, h) {
@@ -1673,18 +2053,18 @@ function CardContent({
1673
2053
  isStamp
1674
2054
  }) {
1675
2055
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1676
- image && /* @__PURE__ */ jsx("div", { className: `relative w-full aspect-[16/9] overflow-hidden ${isStamp ? "" : "rounded-t-[16px]"}`, children: /* @__PURE__ */ jsx("img", { src: image, alt: title, className: "absolute inset-0 w-full h-full object-cover" }) }),
2056
+ image && /* @__PURE__ */ jsx("div", { className: isStamp ? AppCard_module_default.imageWrap : AppCard_module_default.imageWrapRounded, children: /* @__PURE__ */ jsx("img", { src: image, alt: title, className: AppCard_module_default.image }) }),
1677
2057
  /* @__PURE__ */ jsxs(
1678
2058
  "div",
1679
2059
  {
1680
- className: `bg-[var(--bg)] overflow-hidden flex flex-col justify-between px-[25px] pt-[25px] pb-[21px] flex-1 min-h-[220px] relative ${isStamp ? "" : `border border-[var(--bg-tertiary)] shadow-[var(--shadow-md)] ${image ? "rounded-b-[16px]" : "rounded-[16px]"}`}`,
2060
+ className: isStamp ? AppCard_module_default.contentStamp : image ? AppCard_module_default.contentDefaultWithImage : AppCard_module_default.contentDefaultNoImage,
1681
2061
  children: [
1682
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 pr-8", children: [
1683
- /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-[var(--fg-secondary)] tracking-[-0.25px]", children: title }),
1684
- /* @__PURE__ */ jsx("p", { className: "text-[13px] text-[var(--fg-muted)] tracking-[-0.25px] leading-normal", children: description })
2062
+ /* @__PURE__ */ jsxs("div", { className: AppCard_module_default.textGroup, children: [
2063
+ /* @__PURE__ */ jsx("h3", { className: AppCard_module_default.cardTitle, children: title }),
2064
+ /* @__PURE__ */ jsx("p", { className: AppCard_module_default.cardDesc, children: description })
1685
2065
  ] }),
1686
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mt-5", children: [
1687
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: icons }),
2066
+ /* @__PURE__ */ jsxs("div", { className: AppCard_module_default.footer, children: [
2067
+ /* @__PURE__ */ jsx("div", { className: AppCard_module_default.iconRow, children: icons }),
1688
2068
  /* @__PURE__ */ jsx(Button, { variant: buttonVariant === "outline" ? "outline" : "primary", size: "sm", onClick: onButtonClick, children: buttonText })
1689
2069
  ] })
1690
2070
  ]
@@ -1701,7 +2081,7 @@ function AppCard(_a) {
1701
2081
  "className"
1702
2082
  ]);
1703
2083
  if (variant === "default") {
1704
- return /* @__PURE__ */ jsx("div", { className: `flex flex-col w-[320px] ${className}`, children: /* @__PURE__ */ jsx(CardContent, __spreadProps(__spreadValues({}, contentProps), { isStamp: false })) });
2084
+ return /* @__PURE__ */ jsx("div", { className: `${AppCard_module_default.defaultCard}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx(CardContent, __spreadProps(__spreadValues({}, contentProps), { isStamp: false })) });
1705
2085
  }
1706
2086
  const padded = variant === "stamp-padded";
1707
2087
  return /* @__PURE__ */ jsx(StampWrapper, { className, padded, children: /* @__PURE__ */ jsx(CardContent, __spreadProps(__spreadValues({}, contentProps), { isStamp: true })) });
@@ -1727,7 +2107,7 @@ function StampWrapper({ children, className, padded }) {
1727
2107
  ro.disconnect();
1728
2108
  };
1729
2109
  }, [build]);
1730
- return /* @__PURE__ */ jsx("div", { ref, className: `flex flex-col w-[320px] relative ${className}`, children: /* @__PURE__ */ jsx("div", { style: { filter: "drop-shadow(0 1px 3px rgba(0,0,0,0.15)) drop-shadow(0 4px 12px rgba(0,0,0,0.12))" }, children: /* @__PURE__ */ jsx(
2110
+ return /* @__PURE__ */ jsx("div", { ref, className: `${AppCard_module_default.stampCard}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: AppCard_module_default.shadowWrap, children: /* @__PURE__ */ jsx(
1731
2111
  "div",
1732
2112
  {
1733
2113
  style: {
@@ -1736,10 +2116,15 @@ function StampWrapper({ children, className, padded }) {
1736
2116
  WebkitMaskSize: "100% 100%",
1737
2117
  maskSize: "100% 100%"
1738
2118
  },
1739
- children: /* @__PURE__ */ jsx("div", { className: "bg-[var(--bg)]", style: padded ? { padding: STAMP_PADDING } : void 0, children })
2119
+ children: /* @__PURE__ */ jsx("div", { className: AppCard_module_default.stampBg, style: padded ? { padding: STAMP_PADDING } : void 0, children })
1740
2120
  }
1741
2121
  ) }) });
1742
2122
  }
2123
+
2124
+ // src/organisms/AppTopLine.module.scss
2125
+ var AppTopLine_module_default = {
2126
+ root: "AppTopLine_module_root"
2127
+ };
1743
2128
  function AppTopLine({
1744
2129
  promoText = "\u0412\u0430\u043C \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0441\u043A\u0438\u0434\u043A\u0430 10% \u043D\u0430 \u0432\u0441\u0435 \u043F\u043B\u0430\u0442\u043D\u044B\u0435 \u043A\u0443\u0440\u0441\u044B",
1745
2130
  promoButtonText = "\u0421\u043C\u043E\u0442\u0440\u0435\u0442\u044C",
@@ -1752,19 +2137,51 @@ function AppTopLine({
1752
2137
  avatarSrc,
1753
2138
  className = ""
1754
2139
  }) {
1755
- return /* @__PURE__ */ jsxs("div", { className: `bg-[var(--bg)] flex items-center justify-between w-full ${className}`, children: [
2140
+ return /* @__PURE__ */ jsxs("div", { className: `${AppTopLine_module_default.root}${className ? ` ${className}` : ""}`, children: [
1756
2141
  /* @__PURE__ */ jsx(TopPromo, { text: promoText, buttonText: promoButtonText }),
1757
2142
  /* @__PURE__ */ jsx(ProfileNav, { stats, avatarSrc })
1758
2143
  ] });
1759
2144
  }
2145
+
2146
+ // src/organisms/EmptyState.module.scss
2147
+ var EmptyState_module_default = {
2148
+ root: "EmptyState_module_root",
2149
+ icon: "EmptyState_module_icon",
2150
+ title: "EmptyState_module_title",
2151
+ description: "EmptyState_module_description",
2152
+ action: "EmptyState_module_action"
2153
+ };
1760
2154
  function EmptyState({ icon, title, description, action, className = "" }) {
1761
- return /* @__PURE__ */ jsxs("div", { className: `rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] p-8 shadow-[var(--shadow-xs)] flex flex-col items-center text-center ${className}`, children: [
1762
- icon && /* @__PURE__ */ jsx("div", { className: "text-[var(--fg-muted)] mb-4", children: icon }),
1763
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-[var(--fg)]", children: title }),
1764
- /* @__PURE__ */ jsx("p", { className: "text-[13px] text-[var(--fg-muted)] tracking-[-0.25px] mt-1 max-w-sm", children: description }),
1765
- action && /* @__PURE__ */ jsx("div", { className: "mt-5", children: action })
2155
+ return /* @__PURE__ */ jsxs("div", { className: `${EmptyState_module_default.root}${className ? ` ${className}` : ""}`, children: [
2156
+ icon && /* @__PURE__ */ jsx("div", { className: EmptyState_module_default.icon, children: icon }),
2157
+ /* @__PURE__ */ jsx("h3", { className: EmptyState_module_default.title, children: title }),
2158
+ /* @__PURE__ */ jsx("p", { className: EmptyState_module_default.description, children: description }),
2159
+ action && /* @__PURE__ */ jsx("div", { className: EmptyState_module_default.action, children: action })
1766
2160
  ] });
1767
2161
  }
2162
+
2163
+ // src/organisms/HeroSection.module.scss
2164
+ var HeroSection_module_default = {
2165
+ root: "HeroSection_module_root",
2166
+ bgGlow: "HeroSection_module_bgGlow",
2167
+ glowOrb: "HeroSection_module_glowOrb",
2168
+ inner: "HeroSection_module_inner",
2169
+ innerCompact: "HeroSection_module_innerCompact",
2170
+ content: "HeroSection_module_content",
2171
+ contentCenter: "HeroSection_module_content HeroSection_module_contentCenter",
2172
+ eyebrowWrap: "HeroSection_module_eyebrowWrap",
2173
+ eyebrowCenter: "HeroSection_module_eyebrowCenter",
2174
+ eyebrow: "HeroSection_module_eyebrow",
2175
+ eyebrowDot: "HeroSection_module_eyebrowDot",
2176
+ title: "HeroSection_module_title",
2177
+ subtitle: "HeroSection_module_subtitle",
2178
+ subtitleCenter: "HeroSection_module_subtitleCenter",
2179
+ actions: "HeroSection_module_actions",
2180
+ actionsCenter: "HeroSection_module_actionsCenter",
2181
+ mediaWrapCenter: "HeroSection_module_mediaWrap HeroSection_module_mediaWrapCenter",
2182
+ mediaWrapLeft: "HeroSection_module_mediaWrap HeroSection_module_mediaWrapLeft",
2183
+ mediaBox: "HeroSection_module_mediaBox"
2184
+ };
1768
2185
  function HeroSection({
1769
2186
  eyebrow,
1770
2187
  title,
@@ -1777,30 +2194,40 @@ function HeroSection({
1777
2194
  }) {
1778
2195
  const isCenter = align === "center";
1779
2196
  const isCompact = size === "compact";
1780
- return /* @__PURE__ */ jsxs("section", { className: `relative overflow-hidden ${className}`, children: [
1781
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 pointer-events-none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-1/2 -translate-x-1/2 w-[800px] h-[600px] bg-[radial-gradient(ellipse_at_center,var(--brand-primary)_0%,transparent_70%)] opacity-[0.04]" }) }),
1782
- /* @__PURE__ */ jsxs("div", { className: `relative ${isCompact ? "py-16 md:py-20" : "py-20 md:py-32"}`, children: [
1783
- /* @__PURE__ */ jsxs("div", { className: `max-w-4xl ${isCenter ? "mx-auto text-center" : ""}`, children: [
1784
- eyebrow && /* @__PURE__ */ jsx("div", { className: `mb-4 md:mb-5 ${isCenter ? "flex justify-center" : ""}`, children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-[11px] font-semibold uppercase tracking-[0.08em] bg-[var(--brand-primary)]/10 text-[var(--brand-primary)] border border-[var(--brand-primary)]/15", children: [
1785
- /* @__PURE__ */ jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-[var(--brand-primary)] animate-pulse" }),
2197
+ return /* @__PURE__ */ jsxs("section", { className: `${HeroSection_module_default.root}${className ? ` ${className}` : ""}`, children: [
2198
+ /* @__PURE__ */ jsx("div", { className: HeroSection_module_default.bgGlow, "aria-hidden": "true", children: /* @__PURE__ */ jsx("div", { className: HeroSection_module_default.glowOrb }) }),
2199
+ /* @__PURE__ */ jsxs("div", { className: isCompact ? HeroSection_module_default.innerCompact : HeroSection_module_default.inner, children: [
2200
+ /* @__PURE__ */ jsxs("div", { className: isCenter ? HeroSection_module_default.contentCenter : HeroSection_module_default.content, children: [
2201
+ eyebrow && /* @__PURE__ */ jsx("div", { className: `${HeroSection_module_default.eyebrowWrap}${isCenter ? ` ${HeroSection_module_default.eyebrowCenter}` : ""}`, children: /* @__PURE__ */ jsxs("span", { className: HeroSection_module_default.eyebrow, children: [
2202
+ /* @__PURE__ */ jsx("span", { className: HeroSection_module_default.eyebrowDot }),
1786
2203
  eyebrow
1787
2204
  ] }) }),
1788
- /* @__PURE__ */ jsx("h1", { className: `text-[clamp(2rem,5vw,3.75rem)] font-bold leading-[1.08] tracking-[-0.035em] text-[var(--fg)] text-balance`, children: title }),
1789
- subtitle && /* @__PURE__ */ jsx("p", { className: `mt-5 md:mt-6 text-base md:text-lg text-[var(--fg-secondary)] leading-relaxed max-w-2xl ${isCenter ? "mx-auto" : ""}`, children: subtitle }),
1790
- actions && /* @__PURE__ */ jsx("div", { className: `mt-8 md:mt-10 flex flex-wrap gap-3 ${isCenter ? "justify-center" : ""}`, children: actions })
2205
+ /* @__PURE__ */ jsx("h1", { className: HeroSection_module_default.title, children: title }),
2206
+ subtitle && /* @__PURE__ */ jsx("p", { className: `${HeroSection_module_default.subtitle}${isCenter ? ` ${HeroSection_module_default.subtitleCenter}` : ""}`, children: subtitle }),
2207
+ actions && /* @__PURE__ */ jsx("div", { className: `${HeroSection_module_default.actions}${isCenter ? ` ${HeroSection_module_default.actionsCenter}` : ""}`, children: actions })
1791
2208
  ] }),
1792
- media && /* @__PURE__ */ jsx("div", { className: `mt-12 md:mt-16 ${isCenter ? "max-w-5xl mx-auto" : "max-w-4xl"}`, children: /* @__PURE__ */ jsx("div", { className: "rounded-[var(--radius-xl)] border border-[var(--border-color)] shadow-[var(--shadow-xl)] overflow-hidden bg-[var(--bg-secondary)]", children: media }) })
2209
+ media && /* @__PURE__ */ jsx("div", { className: isCenter ? HeroSection_module_default.mediaWrapCenter : HeroSection_module_default.mediaWrapLeft, children: /* @__PURE__ */ jsx("div", { className: HeroSection_module_default.mediaBox, children: media }) })
1793
2210
  ] })
1794
2211
  ] });
1795
2212
  }
2213
+
2214
+ // src/organisms/LogoCloud.module.scss
2215
+ var LogoCloud_module_default = {
2216
+ root: "LogoCloud_module_root",
2217
+ label: "LogoCloud_module_label",
2218
+ grid: "LogoCloud_module_grid",
2219
+ logoItem: "LogoCloud_module_logoItem",
2220
+ logoImg: "LogoCloud_module_logoImg",
2221
+ logoText: "LogoCloud_module_logoText"
2222
+ };
1796
2223
  function LogoCloud({
1797
2224
  label = "Trusted by teams at",
1798
2225
  logos,
1799
2226
  className = ""
1800
2227
  }) {
1801
- return /* @__PURE__ */ jsxs("section", { className: `py-10 md:py-14 ${className}`, children: [
1802
- label && /* @__PURE__ */ jsx("p", { className: "text-center text-[11px] font-semibold uppercase tracking-[0.1em] text-[var(--fg-muted)] mb-8", children: label }),
1803
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-x-10 gap-y-6 md:gap-x-14", children: logos.map((logo) => /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 opacity-40 hover:opacity-70 transition-opacity duration-[var(--transition-base)]", children: logo.src ? (
2228
+ return /* @__PURE__ */ jsxs("section", { className: `${LogoCloud_module_default.root}${className ? ` ${className}` : ""}`, children: [
2229
+ label && /* @__PURE__ */ jsx("p", { className: LogoCloud_module_default.label, children: label }),
2230
+ /* @__PURE__ */ jsx("div", { className: LogoCloud_module_default.grid, children: logos.map((logo) => /* @__PURE__ */ jsx("div", { className: LogoCloud_module_default.logoItem, children: logo.src ? (
1804
2231
  // eslint-disable-next-line @next/next/no-img-element
1805
2232
  /* @__PURE__ */ jsx(
1806
2233
  "img",
@@ -1808,32 +2235,52 @@ function LogoCloud({
1808
2235
  src: logo.src,
1809
2236
  alt: logo.name,
1810
2237
  width: logo.width || 100,
1811
- className: "h-6 md:h-7 w-auto object-contain logo-img"
2238
+ className: `${LogoCloud_module_default.logoImg} logo-img`
1812
2239
  }
1813
2240
  )
1814
- ) : /* @__PURE__ */ jsx("span", { className: "text-sm md:text-base font-bold tracking-[-0.02em] text-[var(--fg)] select-none", children: logo.name }) }, logo.name)) })
2241
+ ) : /* @__PURE__ */ jsx("span", { className: LogoCloud_module_default.logoText, children: logo.name }) }, logo.name)) })
1815
2242
  ] });
1816
2243
  }
2244
+
2245
+ // src/organisms/StatsBar.module.scss
2246
+ var StatsBar_module_default = {
2247
+ root: "StatsBar_module_root",
2248
+ inline: "StatsBar_module_inline",
2249
+ inlineGrid: "StatsBar_module_inlineGrid",
2250
+ inlineItem: "StatsBar_module_inlineItem",
2251
+ cardsGrid: "StatsBar_module_cardsGrid",
2252
+ card: "StatsBar_module_card",
2253
+ cardIconWrap: "StatsBar_module_cardIconWrap",
2254
+ statValue: "StatsBar_module_statValue",
2255
+ statLabel: "StatsBar_module_statLabel"
2256
+ };
1817
2257
  function StatsBar({ stats, variant = "inline", className = "" }) {
1818
2258
  if (variant === "cards") {
1819
- return /* @__PURE__ */ jsx("section", { className: `py-10 md:py-14 ${className}`, children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: stats.map((stat, i) => /* @__PURE__ */ jsxs(
1820
- "div",
1821
- {
1822
- className: "rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] p-5 md:p-6 text-center transition-all duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)] hover:-translate-y-0.5",
1823
- children: [
1824
- stat.icon && /* @__PURE__ */ jsx("div", { className: "flex justify-center mb-3 text-[var(--brand-primary)]", children: stat.icon }),
1825
- /* @__PURE__ */ jsx("div", { className: "text-2xl md:text-3xl font-bold text-[var(--fg)] tracking-[-0.03em] tabular-nums", children: stat.value }),
1826
- /* @__PURE__ */ jsx("div", { className: "mt-1 text-[13px] text-[var(--fg-muted)] tracking-[-0.25px]", children: stat.label })
1827
- ]
1828
- },
1829
- i
1830
- )) }) });
2259
+ return /* @__PURE__ */ jsx("section", { className: `${StatsBar_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.cardsGrid, children: stats.map((stat, i) => /* @__PURE__ */ jsxs("div", { className: StatsBar_module_default.card, children: [
2260
+ stat.icon && /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.cardIconWrap, children: stat.icon }),
2261
+ /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.statValue, children: stat.value }),
2262
+ /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.statLabel, children: stat.label })
2263
+ ] }, i)) }) });
1831
2264
  }
1832
- return /* @__PURE__ */ jsx("section", { className: `py-10 md:py-14 border-y border-[var(--border-color)] ${className}`, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-8 md:gap-16", children: stats.map((stat, i) => /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
1833
- /* @__PURE__ */ jsx("div", { className: "text-2xl md:text-3xl font-bold text-[var(--fg)] tracking-[-0.03em] tabular-nums", children: stat.value }),
1834
- /* @__PURE__ */ jsx("div", { className: "mt-1 text-[13px] text-[var(--fg-muted)] tracking-[-0.25px]", children: stat.label })
2265
+ return /* @__PURE__ */ jsx("section", { className: `${StatsBar_module_default.root} ${StatsBar_module_default.inline}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.inlineGrid, children: stats.map((stat, i) => /* @__PURE__ */ jsxs("div", { className: StatsBar_module_default.inlineItem, children: [
2266
+ /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.statValue, children: stat.value }),
2267
+ /* @__PURE__ */ jsx("div", { className: StatsBar_module_default.statLabel, children: stat.label })
1835
2268
  ] }, i)) }) });
1836
2269
  }
2270
+
2271
+ // src/organisms/CTASection.module.scss
2272
+ var CTASection_module_default = {
2273
+ root: "CTASection_module_root",
2274
+ default: "CTASection_module_default",
2275
+ filled: "CTASection_module_filled",
2276
+ bordered: "CTASection_module_bordered",
2277
+ inner: "CTASection_module_inner",
2278
+ title: "CTASection_module_title",
2279
+ titleFilled: "CTASection_module_titleFilled",
2280
+ description: "CTASection_module_description",
2281
+ descriptionFilled: "CTASection_module_descriptionFilled",
2282
+ actions: "CTASection_module_actions"
2283
+ };
1837
2284
  function CTASection({
1838
2285
  title,
1839
2286
  description,
@@ -1841,44 +2288,42 @@ function CTASection({
1841
2288
  variant = "default",
1842
2289
  className = ""
1843
2290
  }) {
1844
- const variantStyles5 = {
1845
- default: "py-16 md:py-24",
1846
- filled: "py-12 md:py-16 px-6 md:px-12 rounded-[var(--radius-xl)] bg-[var(--fg)] text-[var(--bg)]",
1847
- bordered: "py-12 md:py-16 px-6 md:px-12 rounded-[var(--radius-xl)] border-2 border-dashed border-[var(--border-color-strong)]"
1848
- };
1849
2291
  const isFilled = variant === "filled";
1850
- return /* @__PURE__ */ jsx("section", { className: `${variantStyles5[variant]} ${className}`, children: /* @__PURE__ */ jsxs("div", { className: "max-w-2xl mx-auto text-center", children: [
1851
- /* @__PURE__ */ jsx(
1852
- "h2",
1853
- {
1854
- className: `text-2xl md:text-4xl font-bold tracking-[-0.03em] leading-[1.1] ${isFilled ? "text-[var(--bg)]" : "text-[var(--fg)]"}`,
1855
- children: title
1856
- }
1857
- ),
1858
- description && /* @__PURE__ */ jsx(
1859
- "p",
1860
- {
1861
- className: `mt-4 text-base leading-relaxed ${isFilled ? "text-[var(--bg)]/70" : "text-[var(--fg-secondary)]"}`,
1862
- children: description
1863
- }
1864
- ),
1865
- actions && /* @__PURE__ */ jsx("div", { className: "mt-8 flex flex-wrap gap-3 justify-center", children: actions })
2292
+ return /* @__PURE__ */ jsx("section", { className: `${CTASection_module_default.root} ${CTASection_module_default[variant]}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsxs("div", { className: CTASection_module_default.inner, children: [
2293
+ /* @__PURE__ */ jsx("h2", { className: `${CTASection_module_default.title}${isFilled ? ` ${CTASection_module_default.titleFilled}` : ""}`, children: title }),
2294
+ description && /* @__PURE__ */ jsx("p", { className: `${CTASection_module_default.description}${isFilled ? ` ${CTASection_module_default.descriptionFilled}` : ""}`, children: description }),
2295
+ actions && /* @__PURE__ */ jsx("div", { className: CTASection_module_default.actions, children: actions })
1866
2296
  ] }) });
1867
2297
  }
2298
+
2299
+ // src/organisms/BentoGrid.module.scss
2300
+ var BentoGrid_module_default = {
2301
+ root: "BentoGrid_module_root",
2302
+ grid: "BentoGrid_module_grid",
2303
+ item: "BentoGrid_module_item",
2304
+ colSpan2: "BentoGrid_module_colSpan2",
2305
+ rowSpan2: "BentoGrid_module_rowSpan2",
2306
+ mediaWrap: "BentoGrid_module_mediaWrap",
2307
+ content: "BentoGrid_module_content",
2308
+ contentTall: "BentoGrid_module_contentTall",
2309
+ itemIcon: "BentoGrid_module_itemIcon",
2310
+ itemTitle: "BentoGrid_module_itemTitle",
2311
+ itemDescription: "BentoGrid_module_itemDescription"
2312
+ };
1868
2313
  function BentoGrid({ items, className = "" }) {
1869
- return /* @__PURE__ */ jsx("section", { className: `py-10 md:py-14 ${className}`, children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: items.map((item, i) => {
1870
- const colSpanClass = item.span === 2 ? "md:col-span-2" : "";
1871
- const rowSpanClass = item.rowSpan === 2 ? "md:row-span-2" : "";
2314
+ return /* @__PURE__ */ jsx("section", { className: `${BentoGrid_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: BentoGrid_module_default.grid, children: items.map((item, i) => {
2315
+ const spanClass = item.span === 2 ? ` ${BentoGrid_module_default.colSpan2}` : "";
2316
+ const rowClass = item.rowSpan === 2 ? ` ${BentoGrid_module_default.rowSpan2}` : "";
1872
2317
  return /* @__PURE__ */ jsxs(
1873
2318
  "div",
1874
2319
  {
1875
- className: `group relative rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] overflow-hidden transition-all duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)] hover:border-[var(--border-color-strong)] ${colSpanClass} ${rowSpanClass} ${item.className || ""}`,
2320
+ className: `${BentoGrid_module_default.item}${spanClass}${rowClass}${item.className ? ` ${item.className}` : ""}`,
1876
2321
  children: [
1877
- item.media && /* @__PURE__ */ jsx("div", { className: "w-full overflow-hidden", children: item.media }),
1878
- /* @__PURE__ */ jsxs("div", { className: `p-5 md:p-6 ${item.rowSpan === 2 ? "flex flex-col h-full" : ""}`, children: [
1879
- item.icon && /* @__PURE__ */ jsx("div", { className: "w-9 h-9 rounded-[var(--radius-md)] bg-[var(--brand-primary)]/10 flex items-center justify-center text-[var(--brand-primary)] mb-3.5", children: item.icon }),
1880
- /* @__PURE__ */ jsx("h3", { className: "text-[15px] font-semibold text-[var(--fg)] tracking-[-0.01em]", children: item.title }),
1881
- item.description && /* @__PURE__ */ jsx("p", { className: "mt-1.5 text-[13px] text-[var(--fg-muted)] leading-relaxed tracking-[-0.25px]", children: item.description })
2322
+ item.media && /* @__PURE__ */ jsx("div", { className: BentoGrid_module_default.mediaWrap, children: item.media }),
2323
+ /* @__PURE__ */ jsxs("div", { className: `${BentoGrid_module_default.content}${item.rowSpan === 2 ? ` ${BentoGrid_module_default.contentTall}` : ""}`, children: [
2324
+ item.icon && /* @__PURE__ */ jsx("div", { className: BentoGrid_module_default.itemIcon, children: item.icon }),
2325
+ /* @__PURE__ */ jsx("h3", { className: BentoGrid_module_default.itemTitle, children: item.title }),
2326
+ item.description && /* @__PURE__ */ jsx("p", { className: BentoGrid_module_default.itemDescription, children: item.description })
1882
2327
  ] })
1883
2328
  ]
1884
2329
  },
@@ -1886,6 +2331,23 @@ function BentoGrid({ items, className = "" }) {
1886
2331
  );
1887
2332
  }) }) });
1888
2333
  }
2334
+
2335
+ // src/organisms/FAQSection.module.scss
2336
+ var FAQSection_module_default = {
2337
+ root: "FAQSection_module_root",
2338
+ container: "FAQSection_module_container",
2339
+ title: "FAQSection_module_title",
2340
+ subtitle: "FAQSection_module_subtitle",
2341
+ list: "FAQSection_module_list",
2342
+ item: "FAQSection_module_item",
2343
+ question: "FAQSection_module_question",
2344
+ questionText: "FAQSection_module_questionText",
2345
+ toggleIcon: "FAQSection_module_toggleIcon",
2346
+ toggleIconOpen: "FAQSection_module_toggleIcon FAQSection_module_toggleIconOpen",
2347
+ answerOpen: "FAQSection_module_answer FAQSection_module_answerOpen",
2348
+ answerClosed: "FAQSection_module_answer FAQSection_module_answerClosed",
2349
+ answerText: "FAQSection_module_answerText"
2350
+ };
1889
2351
  function FAQSection({
1890
2352
  title = "Frequently asked questions",
1891
2353
  subtitle,
@@ -1894,64 +2356,72 @@ function FAQSection({
1894
2356
  }) {
1895
2357
  const [openIndex, setOpenIndex] = useState(null);
1896
2358
  const toggle = (i) => setOpenIndex(openIndex === i ? null : i);
1897
- return /* @__PURE__ */ jsx("section", { className: `py-14 md:py-20 ${className}`, children: /* @__PURE__ */ jsxs("div", { className: "max-w-2xl mx-auto", children: [
1898
- title && /* @__PURE__ */ jsx("h2", { className: "text-2xl md:text-3xl font-bold text-[var(--fg)] tracking-[-0.03em] text-center", children: title }),
1899
- subtitle && /* @__PURE__ */ jsx("p", { className: "mt-3 text-base text-[var(--fg-secondary)] text-center", children: subtitle }),
1900
- /* @__PURE__ */ jsx("div", { className: `${title || subtitle ? "mt-10" : ""} divide-y divide-[var(--border-color)]`, children: items.map((item, i) => {
2359
+ return /* @__PURE__ */ jsx("section", { className: `${FAQSection_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsxs("div", { className: FAQSection_module_default.container, children: [
2360
+ title && /* @__PURE__ */ jsx("h2", { className: FAQSection_module_default.title, children: title }),
2361
+ subtitle && /* @__PURE__ */ jsx("p", { className: FAQSection_module_default.subtitle, children: subtitle }),
2362
+ /* @__PURE__ */ jsx("div", { className: title || subtitle ? FAQSection_module_default.list : "", children: items.map((item, i) => {
1901
2363
  const isOpen = openIndex === i;
1902
- return /* @__PURE__ */ jsxs("div", { className: "py-5", children: [
2364
+ return /* @__PURE__ */ jsxs("div", { className: FAQSection_module_default.item, children: [
1903
2365
  /* @__PURE__ */ jsxs(
1904
2366
  "button",
1905
2367
  {
1906
2368
  onClick: () => toggle(i),
1907
- className: "w-full flex items-center justify-between gap-4 text-left cursor-pointer group",
2369
+ className: FAQSection_module_default.question,
1908
2370
  "aria-expanded": isOpen,
1909
2371
  children: [
1910
- /* @__PURE__ */ jsx("span", { className: "text-[15px] font-medium text-[var(--fg)] group-hover:text-[var(--brand-primary)] transition-colors", children: item.question }),
1911
- /* @__PURE__ */ jsx(
1912
- "span",
1913
- {
1914
- className: `shrink-0 w-5 h-5 flex items-center justify-center text-[var(--fg-muted)] transition-transform duration-200 ${isOpen ? "rotate-45" : ""}`,
1915
- children: /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M7 1v12M1 7h12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })
1916
- }
1917
- )
2372
+ /* @__PURE__ */ jsx("span", { className: FAQSection_module_default.questionText, children: item.question }),
2373
+ /* @__PURE__ */ jsx("span", { className: isOpen ? FAQSection_module_default.toggleIconOpen : FAQSection_module_default.toggleIcon, children: /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M7 1v12M1 7h12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) })
1918
2374
  ]
1919
2375
  }
1920
2376
  ),
1921
- /* @__PURE__ */ jsx(
1922
- "div",
1923
- {
1924
- className: `overflow-hidden transition-all duration-200 ease-out ${isOpen ? "max-h-96 opacity-100 mt-3" : "max-h-0 opacity-0"}`,
1925
- children: /* @__PURE__ */ jsx("p", { className: "text-[14px] text-[var(--fg-secondary)] leading-relaxed pr-8", children: item.answer })
1926
- }
1927
- )
2377
+ /* @__PURE__ */ jsx("div", { className: isOpen ? FAQSection_module_default.answerOpen : FAQSection_module_default.answerClosed, children: /* @__PURE__ */ jsx("p", { className: FAQSection_module_default.answerText, children: item.answer }) })
1928
2378
  ] }, i);
1929
2379
  }) })
1930
2380
  ] }) });
1931
2381
  }
2382
+
2383
+ // src/organisms/ComparisonTable.module.scss
2384
+ var ComparisonTable_module_default = {
2385
+ root: "ComparisonTable_module_root",
2386
+ scrollWrap: "ComparisonTable_module_scrollWrap",
2387
+ table: "ComparisonTable_module_table",
2388
+ headerCell: "ComparisonTable_module_headerCell",
2389
+ columnHeader: "ComparisonTable_module_columnHeader",
2390
+ columnHeaderHighlighted: "ComparisonTable_module_columnHeader ComparisonTable_module_columnHeaderHighlighted",
2391
+ bodyRow: "ComparisonTable_module_bodyRow",
2392
+ featureCell: "ComparisonTable_module_featureCell",
2393
+ valueCell: "ComparisonTable_module_valueCell",
2394
+ valueCellHighlighted: "ComparisonTable_module_valueCell ComparisonTable_module_valueCellHighlighted",
2395
+ valueCellHighlightedLast: "ComparisonTable_module_valueCell ComparisonTable_module_valueCellHighlighted ComparisonTable_module_valueCellHighlightedLast",
2396
+ iconSuccess: "ComparisonTable_module_iconSuccess",
2397
+ iconMuted: "ComparisonTable_module_iconMuted",
2398
+ textValue: "ComparisonTable_module_textValue"
2399
+ };
1932
2400
  function ComparisonTable({ columns, rows, className = "" }) {
1933
- return /* @__PURE__ */ jsx("section", { className: `py-10 md:py-14 ${className}`, children: /* @__PURE__ */ jsx("div", { className: "overflow-x-auto -mx-4 px-4", children: /* @__PURE__ */ jsxs("table", { className: "w-full border-collapse min-w-[500px]", children: [
2401
+ return /* @__PURE__ */ jsx("section", { className: `${ComparisonTable_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: ComparisonTable_module_default.scrollWrap, children: /* @__PURE__ */ jsxs("table", { className: ComparisonTable_module_default.table, children: [
1934
2402
  /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
1935
- /* @__PURE__ */ jsx("th", { className: "text-left py-4 px-4 text-[13px] font-medium text-[var(--fg-muted)] tracking-[-0.25px] w-[40%]" }),
2403
+ /* @__PURE__ */ jsx("th", { className: ComparisonTable_module_default.headerCell }),
1936
2404
  columns.map((col, i) => /* @__PURE__ */ jsx(
1937
2405
  "th",
1938
2406
  {
1939
- className: `py-4 px-4 text-center text-sm font-semibold ${col.highlighted ? "text-[var(--brand-primary)] bg-[var(--brand-primary)]/5 rounded-t-[var(--radius-lg)]" : "text-[var(--fg)]"}`,
2407
+ className: col.highlighted ? ComparisonTable_module_default.columnHeaderHighlighted : ComparisonTable_module_default.columnHeader,
1940
2408
  children: col.label
1941
2409
  },
1942
2410
  i
1943
2411
  ))
1944
2412
  ] }) }),
1945
- /* @__PURE__ */ jsx("tbody", { children: rows.map((row, ri) => /* @__PURE__ */ jsxs("tr", { className: "border-t border-[var(--border-color)]", children: [
1946
- /* @__PURE__ */ jsx("td", { className: "py-3.5 px-4 text-[14px] text-[var(--fg-secondary)]", children: row.feature }),
2413
+ /* @__PURE__ */ jsx("tbody", { children: rows.map((row, ri) => /* @__PURE__ */ jsxs("tr", { className: ComparisonTable_module_default.bodyRow, children: [
2414
+ /* @__PURE__ */ jsx("td", { className: ComparisonTable_module_default.featureCell, children: row.feature }),
1947
2415
  row.values.map((val, vi) => {
1948
2416
  var _a;
1949
2417
  const isHighlighted = (_a = columns[vi]) == null ? void 0 : _a.highlighted;
2418
+ const isLast = ri === rows.length - 1;
2419
+ const cellClass = isHighlighted ? isLast ? ComparisonTable_module_default.valueCellHighlightedLast : ComparisonTable_module_default.valueCellHighlighted : ComparisonTable_module_default.valueCell;
1950
2420
  return /* @__PURE__ */ jsx(
1951
2421
  "td",
1952
2422
  {
1953
- className: `py-3.5 px-4 text-center ${isHighlighted ? "bg-[var(--brand-primary)]/5" : ""} ${ri === rows.length - 1 && isHighlighted ? "rounded-b-[var(--radius-lg)]" : ""}`,
1954
- children: typeof val === "boolean" ? val ? /* @__PURE__ */ jsx("span", { className: "inline-flex text-[var(--color-success)]", children: /* @__PURE__ */ jsx(IconlyCheck, { size: 18 }) }) : /* @__PURE__ */ jsx("span", { className: "inline-flex text-[var(--fg-muted)]/40", children: /* @__PURE__ */ jsx(IconlyClose, { size: 18 }) }) : /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-[var(--fg)]", children: val })
2423
+ className: cellClass,
2424
+ children: typeof val === "boolean" ? val ? /* @__PURE__ */ jsx("span", { className: ComparisonTable_module_default.iconSuccess, children: /* @__PURE__ */ jsx(IconlyCheck, { size: 18 }) }) : /* @__PURE__ */ jsx("span", { className: ComparisonTable_module_default.iconMuted, children: /* @__PURE__ */ jsx(IconlyClose, { size: 18 }) }) : /* @__PURE__ */ jsx("span", { className: ComparisonTable_module_default.textValue, children: val })
1955
2425
  },
1956
2426
  vi
1957
2427
  );
@@ -1959,79 +2429,121 @@ function ComparisonTable({ columns, rows, className = "" }) {
1959
2429
  ] }, ri)) })
1960
2430
  ] }) }) });
1961
2431
  }
2432
+
2433
+ // src/organisms/PromoBento.module.scss
2434
+ var PromoBento_module_default = {
2435
+ root: "PromoBento_module_root",
2436
+ header: "PromoBento_module_header",
2437
+ heading: "PromoBento_module_heading",
2438
+ subtitle: "PromoBento_module_subtitle",
2439
+ grid: "PromoBento_module_grid",
2440
+ card: "PromoBento_module_card",
2441
+ cardMedia: "PromoBento_module_cardMedia",
2442
+ cardMediaInner: "PromoBento_module_cardMediaInner",
2443
+ cardFade: "PromoBento_module_cardFade",
2444
+ cardContent: "PromoBento_module_cardContent",
2445
+ pill: "PromoBento_module_pill",
2446
+ pillInner: "PromoBento_module_pillInner",
2447
+ pillIcon: "PromoBento_module_pillIcon",
2448
+ cardTitle: "PromoBento_module_cardTitle",
2449
+ cardDesc: "PromoBento_module_cardDesc",
2450
+ cardCta: "PromoBento_module_cardCta"
2451
+ };
1962
2452
  function PromoBentoCard({ pill, title, description, cta, media, className = "" }) {
1963
- return /* @__PURE__ */ jsxs(
1964
- "div",
1965
- {
1966
- className: `relative flex flex-col rounded-[clamp(24px,3vw,48px)] bg-[var(--bg-secondary)] overflow-hidden group transition-shadow duration-[var(--transition-slow)] hover:shadow-[var(--shadow-lg)] ${className}`,
1967
- children: [
1968
- media && /* @__PURE__ */ jsxs("div", { className: "relative flex-1 min-h-[240px] md:min-h-[320px] overflow-hidden", children: [
1969
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center p-6", children: media }),
1970
- /* @__PURE__ */ jsx(
1971
- "div",
1972
- {
1973
- className: "absolute bottom-0 left-0 right-0 h-[140px] pointer-events-none",
1974
- style: {
1975
- background: "linear-gradient(to top, var(--bg-secondary) 0%, transparent 100%)"
1976
- }
1977
- }
1978
- )
1979
- ] }),
1980
- /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-4 p-6 md:p-8 pt-0", children: [
1981
- pill && /* @__PURE__ */ jsx("div", { className: "flex", children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--bg)] border border-[var(--border-color)] text-sm font-semibold text-[var(--fg)]", children: [
1982
- pill.icon && /* @__PURE__ */ jsx("span", { className: "w-5 h-5 flex items-center justify-center", children: pill.icon }),
1983
- pill.label
1984
- ] }) }),
1985
- /* @__PURE__ */ jsx("h3", { className: "text-xl md:text-[28px] leading-[1.2] tracking-[-0.02em] text-[var(--fg)]", children: title }),
1986
- description && /* @__PURE__ */ jsx("p", { className: "text-sm md:text-base leading-relaxed text-[var(--fg-secondary)] max-w-[85%]", children: description }),
1987
- cta && /* @__PURE__ */ jsx("div", { className: "mt-1", children: /* @__PURE__ */ jsx(
1988
- Button,
1989
- {
1990
- variant: "outline",
1991
- onClick: cta.onClick,
1992
- icon: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M6 3l5 5-5 5" }) }),
1993
- children: cta.label
1994
- }
1995
- ) })
1996
- ] })
1997
- ]
1998
- }
1999
- );
2453
+ return /* @__PURE__ */ jsxs("div", { className: `${PromoBento_module_default.card}${className ? ` ${className}` : ""}`, children: [
2454
+ media && /* @__PURE__ */ jsxs("div", { className: PromoBento_module_default.cardMedia, children: [
2455
+ /* @__PURE__ */ jsx("div", { className: PromoBento_module_default.cardMediaInner, children: media }),
2456
+ /* @__PURE__ */ jsx("div", { className: PromoBento_module_default.cardFade })
2457
+ ] }),
2458
+ /* @__PURE__ */ jsxs("div", { className: PromoBento_module_default.cardContent, children: [
2459
+ pill && /* @__PURE__ */ jsx("div", { className: PromoBento_module_default.pill, children: /* @__PURE__ */ jsxs("span", { className: PromoBento_module_default.pillInner, children: [
2460
+ pill.icon && /* @__PURE__ */ jsx("span", { className: PromoBento_module_default.pillIcon, children: pill.icon }),
2461
+ pill.label
2462
+ ] }) }),
2463
+ /* @__PURE__ */ jsx("h3", { className: PromoBento_module_default.cardTitle, children: title }),
2464
+ description && /* @__PURE__ */ jsx("p", { className: PromoBento_module_default.cardDesc, children: description }),
2465
+ cta && /* @__PURE__ */ jsx("div", { className: PromoBento_module_default.cardCta, children: /* @__PURE__ */ jsx(
2466
+ Button,
2467
+ {
2468
+ variant: "outline",
2469
+ onClick: cta.onClick,
2470
+ icon: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M6 3l5 5-5 5" }) }),
2471
+ children: cta.label
2472
+ }
2473
+ ) })
2474
+ ] })
2475
+ ] });
2000
2476
  }
2001
2477
  function PromoBento({ heading, subtitle, items, className = "" }) {
2002
- return /* @__PURE__ */ jsxs("section", { className: `py-16 md:py-24 ${className}`, children: [
2003
- /* @__PURE__ */ jsxs("div", { className: "mb-10 md:mb-14 max-w-xl", children: [
2004
- /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.75rem,4vw,2.75rem)] font-bold leading-[1.1] tracking-[-0.03em] text-[var(--fg)] text-balance", children: heading }),
2005
- subtitle && /* @__PURE__ */ jsx("p", { className: "mt-3 text-base text-[var(--fg-secondary)] leading-relaxed", children: subtitle })
2478
+ return /* @__PURE__ */ jsxs("section", { className: `${PromoBento_module_default.root}${className ? ` ${className}` : ""}`, children: [
2479
+ /* @__PURE__ */ jsxs("div", { className: PromoBento_module_default.header, children: [
2480
+ /* @__PURE__ */ jsx("h2", { className: PromoBento_module_default.heading, children: heading }),
2481
+ subtitle && /* @__PURE__ */ jsx("p", { className: PromoBento_module_default.subtitle, children: subtitle })
2006
2482
  ] }),
2007
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-9", children: items.map((item, i) => /* @__PURE__ */ jsx(PromoBentoCard, __spreadValues({}, item), i)) })
2483
+ /* @__PURE__ */ jsx("div", { className: PromoBento_module_default.grid, children: items.map((item, i) => /* @__PURE__ */ jsx(PromoBentoCard, __spreadValues({}, item), i)) })
2008
2484
  ] });
2009
2485
  }
2486
+
2487
+ // src/organisms/PromoShowcase.module.scss
2488
+ var PromoShowcase_module_default = {
2489
+ root: "PromoShowcase_module_root",
2490
+ heading: "PromoShowcase_module_heading",
2491
+ headingText: "PromoShowcase_module_headingText",
2492
+ body: "PromoShowcase_module_body",
2493
+ stepper: "PromoShowcase_module_stepper",
2494
+ stepButton: "PromoShowcase_module_stepButton",
2495
+ stepButtonActive: "PromoShowcase_module_stepButtonActive",
2496
+ contentArea: "PromoShowcase_module_contentArea",
2497
+ panel: "PromoShowcase_module_panel",
2498
+ panelActive: "PromoShowcase_module_panelActive",
2499
+ panelInner: "PromoShowcase_module_panelInner"
2500
+ };
2010
2501
  function PromoShowcase({ heading, steps, className = "" }) {
2011
2502
  const [activeIndex, setActiveIndex] = useState(0);
2012
- return /* @__PURE__ */ jsxs("section", { className: `py-16 md:py-24 ${className}`, children: [
2013
- /* @__PURE__ */ jsx("div", { className: "mb-10 md:mb-14 max-w-xl", children: /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.75rem,4vw,2.75rem)] font-bold leading-[1.1] tracking-[-0.03em] text-[var(--fg)] text-balance", children: heading }) }),
2014
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 md:gap-8", children: [
2015
- /* @__PURE__ */ jsx("div", { className: "flex gap-1 p-1 rounded-full bg-[var(--bg-secondary)] border border-[var(--border-color)] w-fit", children: steps.map((step, i) => /* @__PURE__ */ jsx(
2503
+ return /* @__PURE__ */ jsxs("section", { className: `${PromoShowcase_module_default.root}${className ? ` ${className}` : ""}`, children: [
2504
+ /* @__PURE__ */ jsx("div", { className: PromoShowcase_module_default.heading, children: /* @__PURE__ */ jsx("h2", { className: PromoShowcase_module_default.headingText, children: heading }) }),
2505
+ /* @__PURE__ */ jsxs("div", { className: PromoShowcase_module_default.body, children: [
2506
+ /* @__PURE__ */ jsx("div", { className: PromoShowcase_module_default.stepper, children: steps.map((step, i) => /* @__PURE__ */ jsx(
2016
2507
  "button",
2017
2508
  {
2018
2509
  onClick: () => setActiveIndex(i),
2019
- className: `px-5 py-2.5 rounded-full text-sm font-medium transition-all duration-[var(--transition-base)] cursor-pointer ${i === activeIndex ? "bg-[var(--fg)] text-[var(--bg)] shadow-[var(--shadow-sm)]" : "text-[var(--fg-secondary)] hover:text-[var(--fg)] hover:bg-[var(--bg-tertiary)]"}`,
2510
+ className: `${PromoShowcase_module_default.stepButton}${i === activeIndex ? ` ${PromoShowcase_module_default.stepButtonActive}` : ""}`,
2020
2511
  children: step.label
2021
2512
  },
2022
2513
  i
2023
2514
  )) }),
2024
- /* @__PURE__ */ jsx("div", { className: "relative rounded-[clamp(16px,2vw,32px)] border border-[var(--border-color)] bg-[var(--bg-secondary)] overflow-hidden min-h-[300px] md:min-h-[480px]", children: steps.map((step, i) => /* @__PURE__ */ jsx(
2515
+ /* @__PURE__ */ jsx("div", { className: PromoShowcase_module_default.contentArea, children: steps.map((step, i) => /* @__PURE__ */ jsx(
2025
2516
  "div",
2026
2517
  {
2027
- className: `absolute inset-0 transition-opacity duration-300 ease-out ${i === activeIndex ? "opacity-100 z-10" : "opacity-0 z-0 pointer-events-none"}`,
2028
- children: /* @__PURE__ */ jsx("div", { className: "w-full h-full flex items-center justify-center p-6 md:p-10", children: step.content })
2518
+ className: `${PromoShowcase_module_default.panel}${i === activeIndex ? ` ${PromoShowcase_module_default.panelActive}` : ""}`,
2519
+ children: /* @__PURE__ */ jsx("div", { className: PromoShowcase_module_default.panelInner, children: step.content })
2029
2520
  },
2030
2521
  i
2031
2522
  )) })
2032
2523
  ] })
2033
2524
  ] });
2034
2525
  }
2526
+
2527
+ // src/organisms/PromoSplit.module.scss
2528
+ var PromoSplit_module_default = {
2529
+ root: "PromoSplit_module_root",
2530
+ grid: "PromoSplit_module_grid",
2531
+ gridReversed: "PromoSplit_module_grid PromoSplit_module_gridReversed",
2532
+ textColumn: "PromoSplit_module_textColumn",
2533
+ textColumnLtr: "PromoSplit_module_textColumnLtr",
2534
+ heading: "PromoSplit_module_heading",
2535
+ description: "PromoSplit_module_description",
2536
+ features: "PromoSplit_module_features",
2537
+ feature: "PromoSplit_module_feature",
2538
+ featureTitle: "PromoSplit_module_featureTitle",
2539
+ featureDesc: "PromoSplit_module_featureDesc",
2540
+ mediaColumn: "PromoSplit_module_mediaColumn",
2541
+ mediaColumnLtr: "PromoSplit_module_mediaColumnLtr",
2542
+ mediaBox: "PromoSplit_module_mediaBox",
2543
+ mediaContent: "PromoSplit_module_mediaContent",
2544
+ mediaPlaceholder: "PromoSplit_module_mediaPlaceholder",
2545
+ placeholderCircle: "PromoSplit_module_placeholderCircle"
2546
+ };
2035
2547
  function PromoSplit({
2036
2548
  heading,
2037
2549
  description,
@@ -2041,66 +2553,118 @@ function PromoSplit({
2041
2553
  className = ""
2042
2554
  }) {
2043
2555
  const isLeft = mediaPosition === "left";
2044
- return /* @__PURE__ */ jsx("section", { className: `py-16 md:py-24 ${className}`, children: /* @__PURE__ */ jsxs("div", { className: `grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-16 items-center ${isLeft ? "lg:[direction:rtl]" : ""}`, children: [
2045
- /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-6 ${isLeft ? "lg:[direction:ltr]" : ""}`, children: [
2046
- /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.75rem,4vw,2.75rem)] font-bold leading-[1.1] tracking-[-0.03em] text-[var(--fg)] text-balance", children: heading }),
2047
- description && /* @__PURE__ */ jsx("p", { className: "text-base md:text-lg leading-relaxed text-[var(--fg-secondary)]", children: description }),
2048
- features && features.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-5 mt-2", children: features.map((feature, i) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
2049
- /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-[var(--fg)]", children: feature.title }),
2050
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--fg-secondary)] leading-relaxed", children: feature.description })
2556
+ return /* @__PURE__ */ jsx("section", { className: `${PromoSplit_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsxs("div", { className: isLeft ? PromoSplit_module_default.gridReversed : PromoSplit_module_default.grid, children: [
2557
+ /* @__PURE__ */ jsxs("div", { className: `${PromoSplit_module_default.textColumn}${isLeft ? ` ${PromoSplit_module_default.textColumnLtr}` : ""}`, children: [
2558
+ /* @__PURE__ */ jsx("h2", { className: PromoSplit_module_default.heading, children: heading }),
2559
+ description && /* @__PURE__ */ jsx("p", { className: PromoSplit_module_default.description, children: description }),
2560
+ features && features.length > 0 && /* @__PURE__ */ jsx("div", { className: PromoSplit_module_default.features, children: features.map((feature, i) => /* @__PURE__ */ jsxs("div", { className: PromoSplit_module_default.feature, children: [
2561
+ /* @__PURE__ */ jsx("h3", { className: PromoSplit_module_default.featureTitle, children: feature.title }),
2562
+ /* @__PURE__ */ jsx("p", { className: PromoSplit_module_default.featureDesc, children: feature.description })
2051
2563
  ] }, i)) })
2052
2564
  ] }),
2053
- /* @__PURE__ */ jsx("div", { className: `relative ${isLeft ? "lg:[direction:ltr]" : ""}`, children: /* @__PURE__ */ jsx("div", { className: "relative rounded-[clamp(16px,2vw,32px)] bg-[var(--bg-secondary)] border border-[var(--border-color)] overflow-hidden min-h-[280px] md:min-h-[380px]", children: media ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center p-6", children: media }) : /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "w-20 h-20 rounded-full bg-[var(--bg-tertiary)] flex items-center justify-center", children: /* @__PURE__ */ jsxs("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "var(--fg-muted)", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
2565
+ /* @__PURE__ */ jsx("div", { className: `${PromoSplit_module_default.mediaColumn}${isLeft ? ` ${PromoSplit_module_default.mediaColumnLtr}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: PromoSplit_module_default.mediaBox, children: media ? /* @__PURE__ */ jsx("div", { className: PromoSplit_module_default.mediaContent, children: media }) : /* @__PURE__ */ jsx("div", { className: PromoSplit_module_default.mediaPlaceholder, children: /* @__PURE__ */ jsx("div", { className: PromoSplit_module_default.placeholderCircle, children: /* @__PURE__ */ jsxs("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "var(--fg-muted)", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
2054
2566
  /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
2055
2567
  /* @__PURE__ */ jsx("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
2056
2568
  /* @__PURE__ */ jsx("path", { d: "m21 15-5-5L5 21" })
2057
2569
  ] }) }) }) }) })
2058
2570
  ] }) });
2059
2571
  }
2572
+
2573
+ // src/organisms/PromoTrustGrid.module.scss
2574
+ var PromoTrustGrid_module_default = {
2575
+ root: "PromoTrustGrid_module_root",
2576
+ heading: "PromoTrustGrid_module_heading",
2577
+ headingText: "PromoTrustGrid_module_headingText",
2578
+ grid: "PromoTrustGrid_module_grid",
2579
+ featureCard: "PromoTrustGrid_module_featureCard",
2580
+ featureIcon: "PromoTrustGrid_module_featureIcon",
2581
+ featureTitle: "PromoTrustGrid_module_featureTitle",
2582
+ featureDescription: "PromoTrustGrid_module_featureDescription",
2583
+ media: "PromoTrustGrid_module_media",
2584
+ mediaInner: "PromoTrustGrid_module_mediaInner"
2585
+ };
2060
2586
  function PromoTrustGrid({ heading, features, media, className = "" }) {
2061
- return /* @__PURE__ */ jsxs("section", { className: `py-16 md:py-24 ${className}`, children: [
2062
- /* @__PURE__ */ jsx("div", { className: "mb-10 md:mb-14", children: /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.75rem,4vw,2.75rem)] font-bold leading-[1.1] tracking-[-0.03em] text-[var(--fg)] text-balance", children: heading }) }),
2063
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6 mb-10 md:mb-14", children: features.map((feature, i) => /* @__PURE__ */ jsxs(
2064
- "div",
2065
- {
2066
- className: "group relative flex flex-col gap-3 p-6 md:p-8 rounded-[var(--radius-xl)] bg-[var(--bg)] border border-[var(--border-color)] transition-all duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)] hover:-translate-y-0.5",
2067
- children: [
2068
- feature.icon && /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-[var(--radius-lg)] bg-[var(--fg)]/5 flex items-center justify-center text-[var(--fg)] mb-1", children: feature.icon }),
2069
- /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-[var(--fg)] leading-snug", children: feature.title }),
2070
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--fg-secondary)] leading-relaxed", children: feature.description })
2071
- ]
2072
- },
2073
- i
2074
- )) }),
2075
- media && /* @__PURE__ */ jsx("div", { className: "relative rounded-[clamp(16px,2vw,32px)] bg-[var(--bg-secondary)] border border-[var(--border-color)] overflow-hidden min-h-[280px] md:min-h-[420px]", children: /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center p-6", children: media }) })
2587
+ return /* @__PURE__ */ jsxs("section", { className: `${PromoTrustGrid_module_default.root}${className ? ` ${className}` : ""}`, children: [
2588
+ /* @__PURE__ */ jsx("div", { className: PromoTrustGrid_module_default.heading, children: /* @__PURE__ */ jsx("h2", { className: PromoTrustGrid_module_default.headingText, children: heading }) }),
2589
+ /* @__PURE__ */ jsx("div", { className: PromoTrustGrid_module_default.grid, children: features.map((feature, i) => /* @__PURE__ */ jsxs("div", { className: PromoTrustGrid_module_default.featureCard, children: [
2590
+ feature.icon && /* @__PURE__ */ jsx("div", { className: PromoTrustGrid_module_default.featureIcon, children: feature.icon }),
2591
+ /* @__PURE__ */ jsx("h3", { className: PromoTrustGrid_module_default.featureTitle, children: feature.title }),
2592
+ /* @__PURE__ */ jsx("p", { className: PromoTrustGrid_module_default.featureDescription, children: feature.description })
2593
+ ] }, i)) }),
2594
+ media && /* @__PURE__ */ jsx("div", { className: PromoTrustGrid_module_default.media, children: /* @__PURE__ */ jsx("div", { className: PromoTrustGrid_module_default.mediaInner, children: media }) })
2076
2595
  ] });
2077
2596
  }
2597
+
2598
+ // src/organisms/PromoDevicesCTA.module.scss
2599
+ var PromoDevicesCTA_module_default = {
2600
+ root: "PromoDevicesCTA_module_root",
2601
+ textBlock: "PromoDevicesCTA_module_textBlock",
2602
+ heading: "PromoDevicesCTA_module_heading",
2603
+ description: "PromoDevicesCTA_module_description",
2604
+ ctaWrap: "PromoDevicesCTA_module_ctaWrap",
2605
+ devices: "PromoDevicesCTA_module_devices",
2606
+ laptop: "PromoDevicesCTA_module_laptop",
2607
+ laptopScreen: "PromoDevicesCTA_module_laptopScreen",
2608
+ laptopScreenInner: "PromoDevicesCTA_module_laptopScreenInner",
2609
+ laptopHinge: "PromoDevicesCTA_module_laptopHinge",
2610
+ laptopBase: "PromoDevicesCTA_module_laptopBase",
2611
+ tablet: "PromoDevicesCTA_module_tablet",
2612
+ tabletShell: "PromoDevicesCTA_module_tabletShell",
2613
+ tabletScreen: "PromoDevicesCTA_module_tabletScreen",
2614
+ phone: "PromoDevicesCTA_module_phone",
2615
+ phoneShell: "PromoDevicesCTA_module_phoneShell",
2616
+ phoneNotch: "PromoDevicesCTA_module_phoneNotch",
2617
+ phoneScreen: "PromoDevicesCTA_module_phoneScreen"
2618
+ };
2078
2619
  function PromoDevicesCTA({
2079
2620
  heading,
2080
2621
  description,
2081
2622
  cta,
2082
2623
  className = ""
2083
2624
  }) {
2084
- return /* @__PURE__ */ jsxs("section", { className: `py-16 md:py-24 ${className}`, children: [
2085
- /* @__PURE__ */ jsxs("div", { className: "max-w-2xl mx-auto text-center mb-8 md:mb-10", children: [
2086
- /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.75rem,4vw,2.75rem)] font-bold leading-[1.1] tracking-[-0.03em] text-[var(--fg)] text-balance", children: heading }),
2087
- description && /* @__PURE__ */ jsx("p", { className: "mt-4 text-base md:text-lg leading-relaxed text-[var(--fg-secondary)]", children: description }),
2088
- cta && /* @__PURE__ */ jsx("div", { className: "mt-6 flex justify-center", children: /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: cta.onClick, children: cta.label }) })
2625
+ return /* @__PURE__ */ jsxs("section", { className: `${PromoDevicesCTA_module_default.root}${className ? ` ${className}` : ""}`, children: [
2626
+ /* @__PURE__ */ jsxs("div", { className: PromoDevicesCTA_module_default.textBlock, children: [
2627
+ /* @__PURE__ */ jsx("h2", { className: PromoDevicesCTA_module_default.heading, children: heading }),
2628
+ description && /* @__PURE__ */ jsx("p", { className: PromoDevicesCTA_module_default.description, children: description }),
2629
+ cta && /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.ctaWrap, children: /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: cta.onClick, children: cta.label }) })
2089
2630
  ] }),
2090
- /* @__PURE__ */ jsxs("div", { className: "relative flex items-end justify-center gap-6 md:gap-10 px-4 md:px-0 max-w-4xl mx-auto", children: [
2091
- /* @__PURE__ */ jsxs("div", { className: "hidden md:block relative w-[38%] max-w-[380px]", children: [
2092
- /* @__PURE__ */ jsx("div", { className: "aspect-[16/10] rounded-t-[var(--radius-lg)] border border-b-0 border-[var(--border-color)] bg-[var(--bg-secondary)] overflow-hidden shadow-[var(--shadow-md)]", children: /* @__PURE__ */ jsx("div", { className: "absolute inset-3 rounded-[var(--radius-md)] bg-[var(--bg-tertiary)]" }) }),
2093
- /* @__PURE__ */ jsx("div", { className: "h-2.5 bg-[var(--bg-tertiary)] border border-[var(--border-color)] rounded-b-sm" }),
2094
- /* @__PURE__ */ jsx("div", { className: "h-1 bg-[var(--bg-tertiary)] border-x border-b border-[var(--border-color)] rounded-b-[var(--radius-sm)] mx-[-4%]" })
2631
+ /* @__PURE__ */ jsxs("div", { className: PromoDevicesCTA_module_default.devices, children: [
2632
+ /* @__PURE__ */ jsxs("div", { className: PromoDevicesCTA_module_default.laptop, children: [
2633
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.laptopScreen, children: /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.laptopScreenInner }) }),
2634
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.laptopHinge }),
2635
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.laptopBase })
2095
2636
  ] }),
2096
- /* @__PURE__ */ jsx("div", { className: "relative w-[40%] md:w-[28%] max-w-[280px]", children: /* @__PURE__ */ jsx("div", { className: "aspect-[3/4] rounded-[var(--radius-xl)] border-2 border-[var(--border-color)] bg-[var(--bg-secondary)] overflow-hidden shadow-[var(--shadow-lg)]", children: /* @__PURE__ */ jsx("div", { className: "absolute inset-2.5 rounded-[var(--radius-lg)] bg-[var(--bg-tertiary)]" }) }) }),
2097
- /* @__PURE__ */ jsx("div", { className: "relative w-[24%] md:w-[14%] max-w-[140px]", children: /* @__PURE__ */ jsxs("div", { className: "aspect-[9/19] rounded-[clamp(12px,2vw,24px)] border-2 border-[var(--border-color)] bg-[var(--bg-secondary)] overflow-hidden shadow-[var(--shadow-lg)]", children: [
2098
- /* @__PURE__ */ jsx("div", { className: "absolute top-1.5 left-1/2 -translate-x-1/2 w-[40%] h-[3%] rounded-full bg-[var(--border-color)]" }),
2099
- /* @__PURE__ */ jsx("div", { className: "absolute inset-1.5 top-[6%] rounded-[clamp(8px,1.5vw,16px)] bg-[var(--bg-tertiary)]" })
2637
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.tablet, children: /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.tabletShell, children: /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.tabletScreen }) }) }),
2638
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.phone, children: /* @__PURE__ */ jsxs("div", { className: PromoDevicesCTA_module_default.phoneShell, children: [
2639
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.phoneNotch }),
2640
+ /* @__PURE__ */ jsx("div", { className: PromoDevicesCTA_module_default.phoneScreen })
2100
2641
  ] }) })
2101
2642
  ] })
2102
2643
  ] });
2103
2644
  }
2645
+
2646
+ // src/organisms/PromoTestimonials.module.scss
2647
+ var PromoTestimonials_module_default = {
2648
+ root: "PromoTestimonials_module_root",
2649
+ wrapper: "PromoTestimonials_module_wrapper",
2650
+ avatarSection: "PromoTestimonials_module_avatarSection",
2651
+ avatarStack: "PromoTestimonials_module_avatarStack",
2652
+ avatarRing: "PromoTestimonials_module_avatarRing",
2653
+ overflowBadge: "PromoTestimonials_module_overflowBadge",
2654
+ overflowCircle: "PromoTestimonials_module_overflowCircle",
2655
+ headingSection: "PromoTestimonials_module_headingSection",
2656
+ heading: "PromoTestimonials_module_heading",
2657
+ subtitle: "PromoTestimonials_module_subtitle",
2658
+ cardsSection: "PromoTestimonials_module_cardsSection",
2659
+ cardsGrid: "PromoTestimonials_module_cardsGrid",
2660
+ card: "PromoTestimonials_module_card",
2661
+ quote: "PromoTestimonials_module_quote",
2662
+ author: "PromoTestimonials_module_author",
2663
+ authorName: "PromoTestimonials_module_authorName",
2664
+ authorRole: "PromoTestimonials_module_authorRole",
2665
+ mediaSection: "PromoTestimonials_module_mediaSection",
2666
+ mediaBox: "PromoTestimonials_module_mediaBox"
2667
+ };
2104
2668
  function PromoTestimonials({
2105
2669
  heading,
2106
2670
  subtitle,
@@ -2108,14 +2672,14 @@ function PromoTestimonials({
2108
2672
  media,
2109
2673
  className = ""
2110
2674
  }) {
2111
- return /* @__PURE__ */ jsx("section", { className: `py-16 md:py-24 ${className}`, children: /* @__PURE__ */ jsxs("div", { className: "relative rounded-[clamp(20px,3vw,40px)] border border-[var(--border-color)] bg-[var(--bg)] overflow-hidden", children: [
2112
- /* @__PURE__ */ jsx("div", { className: "flex justify-center pt-10 md:pt-14 pb-2", children: /* @__PURE__ */ jsxs("div", { className: "flex -space-x-3", children: [
2675
+ return /* @__PURE__ */ jsx("section", { className: `${PromoTestimonials_module_default.root}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsxs("div", { className: PromoTestimonials_module_default.wrapper, children: [
2676
+ /* @__PURE__ */ jsx("div", { className: PromoTestimonials_module_default.avatarSection, children: /* @__PURE__ */ jsxs("div", { className: PromoTestimonials_module_default.avatarStack, children: [
2113
2677
  testimonials.slice(0, 5).map((t, i) => {
2114
2678
  const initials = t.name.split(" ").map((n) => n[0]).join("").toUpperCase();
2115
2679
  return /* @__PURE__ */ jsx(
2116
2680
  "div",
2117
2681
  {
2118
- className: "relative ring-3 ring-[var(--bg)] rounded-full",
2682
+ className: PromoTestimonials_module_default.avatarRing,
2119
2683
  style: { zIndex: 10 - i },
2120
2684
  children: /* @__PURE__ */ jsx(
2121
2685
  Avatar,
@@ -2129,32 +2693,32 @@ function PromoTestimonials({
2129
2693
  i
2130
2694
  );
2131
2695
  }),
2132
- testimonials.length > 5 && /* @__PURE__ */ jsx("div", { className: "relative ring-3 ring-[var(--bg)] rounded-full z-0", children: /* @__PURE__ */ jsxs("div", { className: "w-10 h-10 rounded-full bg-[var(--bg-tertiary)] flex items-center justify-center text-xs font-semibold text-[var(--fg-secondary)]", children: [
2696
+ testimonials.length > 5 && /* @__PURE__ */ jsx("div", { className: PromoTestimonials_module_default.overflowBadge, children: /* @__PURE__ */ jsxs("div", { className: PromoTestimonials_module_default.overflowCircle, children: [
2133
2697
  "+",
2134
2698
  testimonials.length - 5
2135
2699
  ] }) })
2136
2700
  ] }) }),
2137
- /* @__PURE__ */ jsxs("div", { className: "text-center px-6 pb-8 md:pb-10", children: [
2138
- /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.75rem,4vw,2.75rem)] font-bold leading-[1.1] tracking-[-0.03em] text-[var(--fg)] text-balance", children: heading }),
2139
- subtitle && /* @__PURE__ */ jsx("p", { className: "mt-3 text-base text-[var(--fg-secondary)] leading-relaxed max-w-lg mx-auto", children: subtitle })
2701
+ /* @__PURE__ */ jsxs("div", { className: PromoTestimonials_module_default.headingSection, children: [
2702
+ /* @__PURE__ */ jsx("h2", { className: PromoTestimonials_module_default.heading, children: heading }),
2703
+ subtitle && /* @__PURE__ */ jsx("p", { className: PromoTestimonials_module_default.subtitle, children: subtitle })
2140
2704
  ] }),
2141
- /* @__PURE__ */ jsx("div", { className: "px-6 md:px-10 pb-8 md:pb-12", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-5", children: testimonials.map((t, i) => {
2705
+ /* @__PURE__ */ jsx("div", { className: PromoTestimonials_module_default.cardsSection, children: /* @__PURE__ */ jsx("div", { className: PromoTestimonials_module_default.cardsGrid, children: testimonials.map((t, i) => {
2142
2706
  const initials = t.name.split(" ").map((n) => n[0]).join("").toUpperCase();
2143
2707
  return /* @__PURE__ */ jsxs(
2144
2708
  "div",
2145
2709
  {
2146
- className: "flex flex-col gap-4 p-5 md:p-6 rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] transition-shadow duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)]",
2710
+ className: PromoTestimonials_module_default.card,
2147
2711
  children: [
2148
- /* @__PURE__ */ jsxs("p", { className: "text-sm text-[var(--fg-secondary)] leading-relaxed flex-1", children: [
2712
+ /* @__PURE__ */ jsxs("p", { className: PromoTestimonials_module_default.quote, children: [
2149
2713
  "\u201C",
2150
2714
  t.quote,
2151
2715
  "\u201D"
2152
2716
  ] }),
2153
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pt-1", children: [
2717
+ /* @__PURE__ */ jsxs("div", { className: PromoTestimonials_module_default.author, children: [
2154
2718
  /* @__PURE__ */ jsx(Avatar, { size: "sm", src: t.avatarSrc, initials }),
2155
2719
  /* @__PURE__ */ jsxs("div", { children: [
2156
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[var(--fg)]", children: t.name }),
2157
- /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--fg-muted)]", children: t.role })
2720
+ /* @__PURE__ */ jsx("p", { className: PromoTestimonials_module_default.authorName, children: t.name }),
2721
+ /* @__PURE__ */ jsx("p", { className: PromoTestimonials_module_default.authorRole, children: t.role })
2158
2722
  ] })
2159
2723
  ] })
2160
2724
  ]
@@ -2162,9 +2726,30 @@ function PromoTestimonials({
2162
2726
  i
2163
2727
  );
2164
2728
  }) }) }),
2165
- media && /* @__PURE__ */ jsx("div", { className: "px-6 md:px-10 pb-8 md:pb-12", children: /* @__PURE__ */ jsx("div", { className: "rounded-[var(--radius-xl)] bg-[var(--bg-secondary)] overflow-hidden", children: media }) })
2729
+ media && /* @__PURE__ */ jsx("div", { className: PromoTestimonials_module_default.mediaSection, children: /* @__PURE__ */ jsx("div", { className: PromoTestimonials_module_default.mediaBox, children: media }) })
2166
2730
  ] }) });
2167
2731
  }
2732
+
2733
+ // src/organisms/PromoHero.module.scss
2734
+ var PromoHero_module_default = {
2735
+ root: "PromoHero_module_root",
2736
+ dark: "PromoHero_module_dark",
2737
+ light: "PromoHero_module_light",
2738
+ gradient: "PromoHero_module_gradient",
2739
+ glowLayer: "PromoHero_module_glowLayer",
2740
+ glowTop: "PromoHero_module_glowTop",
2741
+ glowBottom: "PromoHero_module_glowBottom",
2742
+ inner: "PromoHero_module_inner",
2743
+ textColumn: "PromoHero_module_textColumn",
2744
+ title: "PromoHero_module_title",
2745
+ subtitle: "PromoHero_module_subtitle",
2746
+ subtitleDark: "PromoHero_module_subtitleDark",
2747
+ subtitleLight: "PromoHero_module_subtitleLight",
2748
+ actions: "PromoHero_module_actions",
2749
+ ctaDark: "PromoHero_module_ctaDark",
2750
+ ghostDark: "PromoHero_module_ghostDark",
2751
+ mediaColumn: "PromoHero_module_mediaColumn"
2752
+ };
2168
2753
  function PromoHero({
2169
2754
  title,
2170
2755
  subtitle,
@@ -2174,36 +2759,29 @@ function PromoHero({
2174
2759
  variant = "dark",
2175
2760
  className = ""
2176
2761
  }) {
2177
- const variantStyles5 = {
2178
- dark: "bg-[var(--neutral-900)] text-white",
2179
- light: "bg-[var(--bg)] text-[var(--fg)]",
2180
- gradient: "bg-gradient-to-br from-[var(--neutral-900)] via-[var(--neutral-800)] to-[var(--neutral-700)] text-white"
2181
- };
2182
- const subtitleColor = {
2183
- dark: "text-white/70",
2184
- light: "text-[var(--fg-secondary)]",
2185
- gradient: "text-white/70"
2186
- };
2762
+ const variantClass = variant === "dark" ? PromoHero_module_default.dark : variant === "gradient" ? PromoHero_module_default.gradient : PromoHero_module_default.light;
2763
+ const subtitleClass = variant === "light" ? PromoHero_module_default.subtitleLight : PromoHero_module_default.subtitleDark;
2764
+ const isLight = variant === "light";
2187
2765
  return /* @__PURE__ */ jsxs(
2188
2766
  "section",
2189
2767
  {
2190
- className: `relative overflow-hidden rounded-[clamp(20px,3vw,40px)] min-h-[480px] md:min-h-[600px] flex items-center ${variantStyles5[variant]} ${className}`,
2768
+ className: `${PromoHero_module_default.root} ${variantClass}${className ? ` ${className}` : ""}`,
2191
2769
  children: [
2192
- variant !== "light" && /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 pointer-events-none", "aria-hidden": "true", children: [
2193
- /* @__PURE__ */ jsx("div", { className: "absolute top-[-20%] right-[-10%] w-[600px] h-[600px] rounded-full bg-white/[0.03] blur-[100px]" }),
2194
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-[-30%] left-[-5%] w-[400px] h-[400px] rounded-full bg-white/[0.02] blur-[80px]" })
2770
+ !isLight && /* @__PURE__ */ jsxs("div", { className: PromoHero_module_default.glowLayer, "aria-hidden": "true", children: [
2771
+ /* @__PURE__ */ jsx("div", { className: PromoHero_module_default.glowTop }),
2772
+ /* @__PURE__ */ jsx("div", { className: PromoHero_module_default.glowBottom })
2195
2773
  ] }),
2196
- /* @__PURE__ */ jsxs("div", { className: "relative z-10 grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-16 w-full p-8 md:p-12 lg:p-16 items-center", children: [
2197
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5 md:gap-6", children: [
2198
- /* @__PURE__ */ jsx("h1", { className: "text-[clamp(2.25rem,5.5vw,5rem)] font-bold leading-[0.95] tracking-[-0.04em] text-balance", children: title }),
2199
- subtitle && /* @__PURE__ */ jsx("p", { className: `text-base md:text-lg leading-relaxed max-w-lg ${subtitleColor[variant]}`, children: subtitle }),
2200
- (cta || secondaryCta) && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-3 mt-2", children: [
2774
+ /* @__PURE__ */ jsxs("div", { className: PromoHero_module_default.inner, children: [
2775
+ /* @__PURE__ */ jsxs("div", { className: PromoHero_module_default.textColumn, children: [
2776
+ /* @__PURE__ */ jsx("h1", { className: PromoHero_module_default.title, children: title }),
2777
+ subtitle && /* @__PURE__ */ jsx("p", { className: `${PromoHero_module_default.subtitle} ${subtitleClass}`, children: subtitle }),
2778
+ (cta || secondaryCta) && /* @__PURE__ */ jsxs("div", { className: PromoHero_module_default.actions, children: [
2201
2779
  cta && /* @__PURE__ */ jsx(
2202
2780
  Button,
2203
2781
  {
2204
- variant: variant === "light" ? "primary" : "outline",
2782
+ variant: isLight ? "primary" : "outline",
2205
2783
  onClick: cta.onClick,
2206
- className: variant !== "light" ? "border-white/20 text-white hover:bg-white/10" : "",
2784
+ className: !isLight ? PromoHero_module_default.ctaDark : "",
2207
2785
  children: cta.label
2208
2786
  }
2209
2787
  ),
@@ -2212,18 +2790,65 @@ function PromoHero({
2212
2790
  {
2213
2791
  variant: "ghost",
2214
2792
  onClick: secondaryCta.onClick,
2215
- className: variant !== "light" ? "text-white/70 hover:text-white hover:bg-white/5" : "",
2793
+ className: !isLight ? PromoHero_module_default.ghostDark : "",
2216
2794
  children: secondaryCta.label
2217
2795
  }
2218
2796
  )
2219
2797
  ] })
2220
2798
  ] }),
2221
- media && /* @__PURE__ */ jsx("div", { className: "relative flex items-center justify-center", children: media })
2799
+ media && /* @__PURE__ */ jsx("div", { className: PromoHero_module_default.mediaColumn, children: media })
2222
2800
  ] })
2223
2801
  ]
2224
2802
  }
2225
2803
  );
2226
2804
  }
2805
+
2806
+ // src/organisms/PromoPricing.module.scss
2807
+ var PromoPricing_module_default = {
2808
+ root: "PromoPricing_module_root",
2809
+ dark: "PromoPricing_module_dark",
2810
+ light: "PromoPricing_module_light",
2811
+ headingSection: "PromoPricing_module_headingSection",
2812
+ heading: "PromoPricing_module_heading",
2813
+ headingDark: "PromoPricing_module_headingDark",
2814
+ headingLight: "PromoPricing_module_headingLight",
2815
+ subtitle: "PromoPricing_module_subtitle",
2816
+ subtitleDark: "PromoPricing_module_subtitleDark",
2817
+ subtitleLight: "PromoPricing_module_subtitleLight",
2818
+ tiersGrid: "PromoPricing_module_tiersGrid",
2819
+ tierDefault: "PromoPricing_module_tierCard PromoPricing_module_tierDefault",
2820
+ tierHighlighted: "PromoPricing_module_tierCard PromoPricing_module_tierHighlighted",
2821
+ tierDark: "PromoPricing_module_tierCard PromoPricing_module_tierDark",
2822
+ tierDarkHighlighted: "PromoPricing_module_tierCard PromoPricing_module_tierDarkHighlighted",
2823
+ tierName: "PromoPricing_module_tierName",
2824
+ tierNameMuted: "PromoPricing_module_tierNameMuted",
2825
+ tierNameDark: "PromoPricing_module_tierNameDark",
2826
+ tierNameHighlightedLight: "PromoPricing_module_tierNameHighlightedLight",
2827
+ tierNameHighlightedDark: "PromoPricing_module_tierNameHighlightedDark",
2828
+ price: "PromoPricing_module_price",
2829
+ period: "PromoPricing_module_period",
2830
+ periodMuted: "PromoPricing_module_periodMuted",
2831
+ periodDark: "PromoPricing_module_periodDark",
2832
+ periodHighlightedLight: "PromoPricing_module_periodHighlightedLight",
2833
+ periodHighlightedDark: "PromoPricing_module_periodHighlightedDark",
2834
+ tierDesc: "PromoPricing_module_tierDesc",
2835
+ tierDescMuted: "PromoPricing_module_tierDescMuted",
2836
+ tierDescDark: "PromoPricing_module_tierDescDark",
2837
+ tierDescHighlightedLight: "PromoPricing_module_tierDescHighlightedLight",
2838
+ tierDescHighlightedDark: "PromoPricing_module_tierDescHighlightedDark",
2839
+ featureList: "PromoPricing_module_featureList",
2840
+ featureItem: "PromoPricing_module_featureItem",
2841
+ checkIcon: "PromoPricing_module_checkIcon",
2842
+ checkDefault: "PromoPricing_module_checkDefault",
2843
+ checkDark: "PromoPricing_module_checkDark",
2844
+ checkHighlightedLight: "PromoPricing_module_checkHighlightedLight",
2845
+ checkHighlightedDark: "PromoPricing_module_checkHighlightedDark",
2846
+ featureTextMuted: "PromoPricing_module_featureTextMuted",
2847
+ featureTextDark: "PromoPricing_module_featureTextDark",
2848
+ featureTextHighlightedLight: "PromoPricing_module_featureTextHighlightedLight",
2849
+ featureTextHighlightedDark: "PromoPricing_module_featureTextHighlightedDark",
2850
+ ctaWrap: "PromoPricing_module_ctaWrap"
2851
+ };
2227
2852
  function PromoPricing({
2228
2853
  heading,
2229
2854
  subtitle,
@@ -2232,39 +2857,51 @@ function PromoPricing({
2232
2857
  className = ""
2233
2858
  }) {
2234
2859
  const isDark = variant === "dark";
2860
+ const getTierClass = (highlighted) => {
2861
+ if (highlighted) return isDark ? PromoPricing_module_default.tierDarkHighlighted : PromoPricing_module_default.tierHighlighted;
2862
+ return isDark ? PromoPricing_module_default.tierDark : PromoPricing_module_default.tierDefault;
2863
+ };
2864
+ const getNameClass = (highlighted) => {
2865
+ if (highlighted) return isDark ? PromoPricing_module_default.tierNameHighlightedDark : PromoPricing_module_default.tierNameHighlightedLight;
2866
+ return isDark ? PromoPricing_module_default.tierNameDark : PromoPricing_module_default.tierNameMuted;
2867
+ };
2868
+ const getPeriodClass = (highlighted) => {
2869
+ if (highlighted) return isDark ? PromoPricing_module_default.periodHighlightedDark : PromoPricing_module_default.periodHighlightedLight;
2870
+ return isDark ? PromoPricing_module_default.periodDark : PromoPricing_module_default.periodMuted;
2871
+ };
2872
+ const getDescClass = (highlighted) => {
2873
+ if (highlighted) return isDark ? PromoPricing_module_default.tierDescHighlightedDark : PromoPricing_module_default.tierDescHighlightedLight;
2874
+ return isDark ? PromoPricing_module_default.tierDescDark : PromoPricing_module_default.tierDescMuted;
2875
+ };
2876
+ const getCheckClass = (highlighted) => {
2877
+ if (highlighted) return isDark ? PromoPricing_module_default.checkHighlightedDark : PromoPricing_module_default.checkHighlightedLight;
2878
+ return isDark ? PromoPricing_module_default.checkDark : PromoPricing_module_default.checkDefault;
2879
+ };
2880
+ const getFeatureTextClass = (highlighted) => {
2881
+ if (highlighted) return isDark ? PromoPricing_module_default.featureTextHighlightedDark : PromoPricing_module_default.featureTextHighlightedLight;
2882
+ return isDark ? PromoPricing_module_default.featureTextDark : PromoPricing_module_default.featureTextMuted;
2883
+ };
2235
2884
  return /* @__PURE__ */ jsxs(
2236
2885
  "section",
2237
2886
  {
2238
- className: `py-16 md:py-24 px-6 md:px-12 rounded-[clamp(20px,3vw,40px)] ${isDark ? "bg-[var(--neutral-900)] text-white" : "bg-[var(--bg)]"} ${className}`,
2887
+ className: `${PromoPricing_module_default.root} ${isDark ? PromoPricing_module_default.dark : PromoPricing_module_default.light}${className ? ` ${className}` : ""}`,
2239
2888
  children: [
2240
- /* @__PURE__ */ jsxs("div", { className: "text-center mb-10 md:mb-14 max-w-2xl mx-auto", children: [
2241
- /* @__PURE__ */ jsx(
2242
- "h2",
2243
- {
2244
- className: `text-[clamp(2rem,5vw,4.75rem)] font-bold leading-[0.95] tracking-[-0.04em] text-balance ${isDark ? "text-white" : "text-[var(--fg)]"}`,
2245
- children: heading
2246
- }
2247
- ),
2248
- subtitle && /* @__PURE__ */ jsx("p", { className: `mt-4 text-base md:text-lg leading-relaxed ${isDark ? "text-white/60" : "text-[var(--fg-secondary)]"}`, children: subtitle })
2889
+ /* @__PURE__ */ jsxs("div", { className: PromoPricing_module_default.headingSection, children: [
2890
+ /* @__PURE__ */ jsx("h2", { className: `${PromoPricing_module_default.heading} ${isDark ? PromoPricing_module_default.headingDark : PromoPricing_module_default.headingLight}`, children: heading }),
2891
+ subtitle && /* @__PURE__ */ jsx("p", { className: `${PromoPricing_module_default.subtitle} ${isDark ? PromoPricing_module_default.subtitleDark : PromoPricing_module_default.subtitleLight}`, children: subtitle })
2249
2892
  ] }),
2250
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-6 max-w-5xl mx-auto", children: tiers.map((tier, i) => /* @__PURE__ */ jsxs(
2893
+ /* @__PURE__ */ jsx("div", { className: PromoPricing_module_default.tiersGrid, children: tiers.map((tier, i) => /* @__PURE__ */ jsxs(
2251
2894
  "div",
2252
2895
  {
2253
- className: `relative flex flex-col rounded-[var(--radius-xl)] p-6 md:p-8 transition-all duration-[var(--transition-base)] ${tier.highlighted ? isDark ? "bg-white text-[var(--neutral-900)] shadow-[0_0_60px_rgba(255,255,255,0.1)]" : "bg-[var(--fg)] text-[var(--bg)] shadow-[var(--shadow-xl)]" : isDark ? "bg-white/[0.06] border border-white/10 text-white hover:bg-white/[0.1]" : "bg-[var(--bg)] border border-[var(--border-color)] hover:shadow-[var(--shadow-md)] hover:-translate-y-0.5"}`,
2896
+ className: getTierClass(tier.highlighted),
2254
2897
  children: [
2255
- /* @__PURE__ */ jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsx(
2256
- "h3",
2257
- {
2258
- className: `text-sm font-semibold uppercase tracking-[0.06em] ${tier.highlighted ? isDark ? "text-[var(--neutral-500)]" : "text-[var(--bg)]/60" : isDark ? "text-white/50" : "text-[var(--fg-muted)]"}`,
2259
- children: tier.name
2260
- }
2261
- ) }),
2262
- /* @__PURE__ */ jsxs("div", { className: "mb-2", children: [
2263
- /* @__PURE__ */ jsx("span", { className: "text-4xl md:text-5xl font-bold tracking-[-0.03em]", children: tier.price }),
2264
- tier.period && /* @__PURE__ */ jsx("span", { className: `text-sm ml-1 ${tier.highlighted ? isDark ? "text-[var(--neutral-500)]" : "text-[var(--bg)]/50" : isDark ? "text-white/40" : "text-[var(--fg-muted)]"}`, children: tier.period })
2898
+ /* @__PURE__ */ jsx("div", { className: PromoPricing_module_default.tierName, children: /* @__PURE__ */ jsx("h3", { className: getNameClass(tier.highlighted), children: tier.name }) }),
2899
+ /* @__PURE__ */ jsxs("div", { className: PromoPricing_module_default.price, children: [
2900
+ /* @__PURE__ */ jsx("span", { children: tier.price }),
2901
+ tier.period && /* @__PURE__ */ jsx("span", { className: `${PromoPricing_module_default.period} ${getPeriodClass(tier.highlighted)}`, children: tier.period })
2265
2902
  ] }),
2266
- tier.description && /* @__PURE__ */ jsx("p", { className: `text-sm mb-6 ${tier.highlighted ? isDark ? "text-[var(--neutral-600)]" : "text-[var(--bg)]/60" : isDark ? "text-white/50" : "text-[var(--fg-secondary)]"}`, children: tier.description }),
2267
- /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-2.5 mb-8 flex-1", children: tier.features.map((feature, fi) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2.5 text-sm", children: [
2903
+ tier.description && /* @__PURE__ */ jsx("p", { className: `${PromoPricing_module_default.tierDesc} ${getDescClass(tier.highlighted)}`, children: tier.description }),
2904
+ /* @__PURE__ */ jsx("ul", { className: PromoPricing_module_default.featureList, children: tier.features.map((feature, fi) => /* @__PURE__ */ jsxs("li", { className: PromoPricing_module_default.featureItem, children: [
2268
2905
  /* @__PURE__ */ jsx(
2269
2906
  "svg",
2270
2907
  {
@@ -2272,13 +2909,13 @@ function PromoPricing({
2272
2909
  height: "16",
2273
2910
  viewBox: "0 0 16 16",
2274
2911
  fill: "none",
2275
- className: `shrink-0 mt-0.5 ${tier.highlighted ? isDark ? "text-[var(--color-success)]" : "text-[var(--color-success-light)]" : isDark ? "text-white/40" : "text-[var(--color-success)]"}`,
2912
+ className: `${PromoPricing_module_default.checkIcon} ${getCheckClass(tier.highlighted)}`,
2276
2913
  children: /* @__PURE__ */ jsx("path", { d: "M3.5 8.5L6.5 11.5L12.5 4.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
2277
2914
  }
2278
2915
  ),
2279
- /* @__PURE__ */ jsx("span", { className: `${tier.highlighted ? isDark ? "text-[var(--neutral-700)]" : "text-[var(--bg)]/80" : isDark ? "text-white/70" : "text-[var(--fg-secondary)]"}`, children: feature })
2916
+ /* @__PURE__ */ jsx("span", { className: getFeatureTextClass(tier.highlighted), children: feature })
2280
2917
  ] }, fi)) }),
2281
- tier.cta && /* @__PURE__ */ jsx("div", { className: "mt-auto", children: tier.cta })
2918
+ tier.cta && /* @__PURE__ */ jsx("div", { className: PromoPricing_module_default.ctaWrap, children: tier.cta })
2282
2919
  ]
2283
2920
  },
2284
2921
  i
@@ -2287,6 +2924,24 @@ function PromoPricing({
2287
2924
  }
2288
2925
  );
2289
2926
  }
2927
+
2928
+ // src/organisms/PromoActionCards.module.scss
2929
+ var PromoActionCards_module_default = {
2930
+ root: "PromoActionCards_module_root",
2931
+ header: "PromoActionCards_module_header",
2932
+ heading: "PromoActionCards_module_heading",
2933
+ subtitle: "PromoActionCards_module_subtitle",
2934
+ grid2: "PromoActionCards_module_grid PromoActionCards_module_grid2",
2935
+ grid3: "PromoActionCards_module_grid PromoActionCards_module_grid3",
2936
+ card: "PromoActionCards_module_card",
2937
+ cardContent: "PromoActionCards_module_cardContent",
2938
+ cardTitle: "PromoActionCards_module_cardTitle",
2939
+ cardDesc: "PromoActionCards_module_cardDesc",
2940
+ cardFooter: "PromoActionCards_module_cardFooter",
2941
+ iconGroup: "PromoActionCards_module_iconGroup",
2942
+ iconCircle: "PromoActionCards_module_iconCircle",
2943
+ ctaBtn: "PromoActionCards_module_ctaBtn"
2944
+ };
2290
2945
  function PromoActionCards({
2291
2946
  heading,
2292
2947
  subtitle,
@@ -2294,28 +2949,28 @@ function PromoActionCards({
2294
2949
  columns = 3,
2295
2950
  className = ""
2296
2951
  }) {
2297
- const gridCols = columns === 2 ? "md:grid-cols-2" : "md:grid-cols-2 lg:grid-cols-3";
2298
- return /* @__PURE__ */ jsxs("section", { className: `py-16 md:py-24 ${className}`, children: [
2299
- /* @__PURE__ */ jsxs("div", { className: "mb-10 md:mb-14 max-w-xl", children: [
2300
- /* @__PURE__ */ jsx("h2", { className: "text-[clamp(1.25rem,3vw,1.5rem)] font-medium leading-[1.3] tracking-[-0.01em] text-[var(--fg-secondary)] text-balance", children: heading }),
2301
- subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-[var(--fg-muted)]", children: subtitle })
2952
+ const gridClass = columns === 2 ? PromoActionCards_module_default.grid2 : PromoActionCards_module_default.grid3;
2953
+ return /* @__PURE__ */ jsxs("section", { className: `${PromoActionCards_module_default.root}${className ? ` ${className}` : ""}`, children: [
2954
+ /* @__PURE__ */ jsxs("div", { className: PromoActionCards_module_default.header, children: [
2955
+ /* @__PURE__ */ jsx("h2", { className: PromoActionCards_module_default.heading, children: heading }),
2956
+ subtitle && /* @__PURE__ */ jsx("p", { className: PromoActionCards_module_default.subtitle, children: subtitle })
2302
2957
  ] }),
2303
- /* @__PURE__ */ jsx("div", { className: `grid grid-cols-1 ${gridCols} gap-4 md:gap-5`, children: cards.map((card, i) => {
2958
+ /* @__PURE__ */ jsx("div", { className: gridClass, children: cards.map((card, i) => {
2304
2959
  var _a;
2305
2960
  return /* @__PURE__ */ jsxs(
2306
2961
  "div",
2307
2962
  {
2308
- className: "group flex flex-col gap-4 p-5 md:p-6 rounded-[var(--radius-xl)] border border-[var(--border-color)] bg-[var(--bg)] transition-all duration-[var(--transition-base)] hover:shadow-[var(--shadow-md)] hover:border-[var(--border-color-strong)]",
2963
+ className: PromoActionCards_module_default.card,
2309
2964
  children: [
2310
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 flex-1", children: [
2311
- /* @__PURE__ */ jsx("h3", { className: "text-[15px] font-semibold text-[var(--fg)] leading-snug", children: card.title }),
2312
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--fg-secondary)] leading-relaxed", children: card.description })
2965
+ /* @__PURE__ */ jsxs("div", { className: PromoActionCards_module_default.cardContent, children: [
2966
+ /* @__PURE__ */ jsx("h3", { className: PromoActionCards_module_default.cardTitle, children: card.title }),
2967
+ /* @__PURE__ */ jsx("p", { className: PromoActionCards_module_default.cardDesc, children: card.description })
2313
2968
  ] }),
2314
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between pt-1", children: [
2315
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: (_a = card.icons) == null ? void 0 : _a.map((icon, ii) => /* @__PURE__ */ jsx(
2969
+ /* @__PURE__ */ jsxs("div", { className: PromoActionCards_module_default.cardFooter, children: [
2970
+ /* @__PURE__ */ jsx("div", { className: PromoActionCards_module_default.iconGroup, children: (_a = card.icons) == null ? void 0 : _a.map((icon, ii) => /* @__PURE__ */ jsx(
2316
2971
  "span",
2317
2972
  {
2318
- className: "w-7 h-7 rounded-full bg-[var(--bg-secondary)] flex items-center justify-center text-[var(--fg-secondary)]",
2973
+ className: PromoActionCards_module_default.iconCircle,
2319
2974
  children: icon
2320
2975
  },
2321
2976
  ii
@@ -2324,7 +2979,7 @@ function PromoActionCards({
2324
2979
  "button",
2325
2980
  {
2326
2981
  onClick: card.cta.onClick,
2327
- className: "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-medium bg-[var(--fg)] text-[var(--bg)] hover:opacity-90 transition-opacity cursor-pointer",
2982
+ className: PromoActionCards_module_default.ctaBtn,
2328
2983
  children: [
2329
2984
  card.cta.label,
2330
2985
  /* @__PURE__ */ jsx("svg", { width: "11", height: "11", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M4.5 2.5l4 3.5-4 3.5" }) })
@@ -2339,6 +2994,22 @@ function PromoActionCards({
2339
2994
  }) })
2340
2995
  ] });
2341
2996
  }
2997
+
2998
+ // src/templates/ArticleHero.module.scss
2999
+ var ArticleHero_module_default = {
3000
+ root: "ArticleHero_module_root",
3001
+ bgLayer: "ArticleHero_module_bgLayer",
3002
+ bgImage: "ArticleHero_module_bgImage",
3003
+ overlay: "ArticleHero_module_overlay",
3004
+ topBar: "ArticleHero_module_topBar",
3005
+ logo: "ArticleHero_module_logo",
3006
+ divider: "ArticleHero_module_divider",
3007
+ nav: "ArticleHero_module_nav",
3008
+ bottom: "ArticleHero_module_bottom",
3009
+ category: "ArticleHero_module_category",
3010
+ title: "ArticleHero_module_title",
3011
+ subtitle: "ArticleHero_module_subtitle"
3012
+ };
2342
3013
  var DEFAULT_BG = "https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=1600&h=900&fit=crop&q=80";
2343
3014
  function ArticleHero({
2344
3015
  category,
@@ -2350,48 +3021,44 @@ function ArticleHero({
2350
3021
  className = ""
2351
3022
  }) {
2352
3023
  const bgSrc = backgroundImage != null ? backgroundImage : DEFAULT_BG;
2353
- return /* @__PURE__ */ jsxs(
2354
- "section",
2355
- {
2356
- className: `relative w-full rounded-[var(--radius-xl)] overflow-hidden min-h-[320px] md:min-h-[480px] flex flex-col justify-between p-5 md:p-10 ${className}`,
2357
- children: [
2358
- /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 pointer-events-none", children: [
2359
- /* @__PURE__ */ jsx(
2360
- "img",
2361
- {
2362
- src: bgSrc,
2363
- alt: "",
2364
- className: "absolute inset-0 w-full h-full object-cover"
2365
- }
2366
- ),
2367
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/40" })
2368
- ] }),
2369
- /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center w-full", children: [
2370
- logo && /* @__PURE__ */ jsx("div", { className: "shrink-0 pr-4 md:pr-10", children: logo }),
2371
- /* @__PURE__ */ jsx("div", { className: "flex-1 h-px bg-white/30" }),
2372
- nav && /* @__PURE__ */ jsx("div", { className: "shrink-0 pl-4 md:pl-10", children: nav })
2373
- ] }),
2374
- /* @__PURE__ */ jsxs("div", { className: "relative z-10 max-w-[500px]", children: [
2375
- category && /* @__PURE__ */ jsx("p", { className: "text-lg text-white leading-7 mb-2", children: category }),
2376
- /* @__PURE__ */ jsx("h1", { className: "text-[32px] leading-[34px] md:text-[60px] md:leading-[60px] font-normal text-white tracking-[-2px] md:tracking-[-3px] mb-4", children: title }),
2377
- subtitle && /* @__PURE__ */ jsx("p", { className: "text-lg text-white/90 leading-[22.5px]", children: subtitle })
2378
- ] })
2379
- ]
2380
- }
2381
- );
3024
+ return /* @__PURE__ */ jsxs("section", { className: `${ArticleHero_module_default.root}${className ? ` ${className}` : ""}`, children: [
3025
+ /* @__PURE__ */ jsxs("div", { className: ArticleHero_module_default.bgLayer, children: [
3026
+ /* @__PURE__ */ jsx("img", { src: bgSrc, alt: "", className: ArticleHero_module_default.bgImage }),
3027
+ /* @__PURE__ */ jsx("div", { className: ArticleHero_module_default.overlay })
3028
+ ] }),
3029
+ /* @__PURE__ */ jsxs("div", { className: ArticleHero_module_default.topBar, children: [
3030
+ logo && /* @__PURE__ */ jsx("div", { className: ArticleHero_module_default.logo, children: logo }),
3031
+ /* @__PURE__ */ jsx("div", { className: ArticleHero_module_default.divider }),
3032
+ nav && /* @__PURE__ */ jsx("div", { className: ArticleHero_module_default.nav, children: nav })
3033
+ ] }),
3034
+ /* @__PURE__ */ jsxs("div", { className: ArticleHero_module_default.bottom, children: [
3035
+ category && /* @__PURE__ */ jsx("p", { className: ArticleHero_module_default.category, children: category }),
3036
+ /* @__PURE__ */ jsx("h1", { className: ArticleHero_module_default.title, children: title }),
3037
+ subtitle && /* @__PURE__ */ jsx("p", { className: ArticleHero_module_default.subtitle, children: subtitle })
3038
+ ] })
3039
+ ] });
2382
3040
  }
3041
+
3042
+ // src/templates/ArticleBody.module.scss
3043
+ var ArticleBody_module_default = {
3044
+ root: "ArticleBody_module_root"
3045
+ };
2383
3046
  function ArticleBody({ children, className = "" }) {
2384
- return /* @__PURE__ */ jsx(
2385
- "div",
2386
- {
2387
- className: `text-[16px] leading-7 text-[var(--fg-secondary)] font-normal ${className}`,
2388
- children
2389
- }
2390
- );
3047
+ return /* @__PURE__ */ jsx("div", { className: `${ArticleBody_module_default.root}${className ? ` ${className}` : ""}`, children });
2391
3048
  }
2392
- var levelStyles = {
2393
- 2: "text-[24px] leading-8 font-bold pt-12",
2394
- 3: "text-[20px] leading-8 font-semibold pt-8"
3049
+
3050
+ // src/templates/ArticleHeading.module.scss
3051
+ var ArticleHeading_module_default = {
3052
+ root: "ArticleHeading_module_root",
3053
+ header: "ArticleHeading_module_header",
3054
+ h2: "ArticleHeading_module_h2",
3055
+ h3: "ArticleHeading_module_h3",
3056
+ action: "ArticleHeading_module_action",
3057
+ subtitle: "ArticleHeading_module_subtitle"
3058
+ };
3059
+ var levelClass = {
3060
+ 2: ArticleHeading_module_default.h2,
3061
+ 3: ArticleHeading_module_default.h3
2395
3062
  };
2396
3063
  function ArticleHeading({
2397
3064
  level = 2,
@@ -2401,14 +3068,29 @@ function ArticleHeading({
2401
3068
  className = ""
2402
3069
  }) {
2403
3070
  const Tag2 = `h${level}`;
2404
- return /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-1 ${className}`, children: [
2405
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
2406
- /* @__PURE__ */ jsx(Tag2, { className: `text-[var(--fg)] tracking-tight ${levelStyles[level]}`, children }),
2407
- action && /* @__PURE__ */ jsx("div", { className: "shrink-0", children: action })
3071
+ return /* @__PURE__ */ jsxs("div", { className: `${ArticleHeading_module_default.root}${className ? ` ${className}` : ""}`, children: [
3072
+ /* @__PURE__ */ jsxs("div", { className: ArticleHeading_module_default.header, children: [
3073
+ /* @__PURE__ */ jsx(Tag2, { className: levelClass[level], children }),
3074
+ action && /* @__PURE__ */ jsx("div", { className: ArticleHeading_module_default.action, children: action })
2408
3075
  ] }),
2409
- subtitle && /* @__PURE__ */ jsx("p", { className: "text-[14px] leading-5 text-[var(--fg-muted)]", children: subtitle })
3076
+ subtitle && /* @__PURE__ */ jsx("p", { className: ArticleHeading_module_default.subtitle, children: subtitle })
2410
3077
  ] });
2411
3078
  }
3079
+
3080
+ // src/templates/ArticleFigure.module.scss
3081
+ var ArticleFigure_module_default = {
3082
+ root: "ArticleFigure_module_root",
3083
+ imageWrapper: "ArticleFigure_module_imageWrapper",
3084
+ image: "ArticleFigure_module_image",
3085
+ childWrapper: "ArticleFigure_module_childWrapper",
3086
+ placeholder: "ArticleFigure_module_placeholder",
3087
+ placeholderText: "ArticleFigure_module_placeholderText",
3088
+ legend: "ArticleFigure_module_legend",
3089
+ legendItem: "ArticleFigure_module_legendItem",
3090
+ legendSwatch: "ArticleFigure_module_legendSwatch",
3091
+ legendLabel: "ArticleFigure_module_legendLabel",
3092
+ caption: "ArticleFigure_module_caption"
3093
+ };
2412
3094
  function ArticleFigure({
2413
3095
  src,
2414
3096
  alt = "",
@@ -2418,37 +3100,52 @@ function ArticleFigure({
2418
3100
  children,
2419
3101
  className = ""
2420
3102
  }) {
2421
- return /* @__PURE__ */ jsxs("figure", { className: `w-full ${className}`, children: [
3103
+ return /* @__PURE__ */ jsxs("figure", { className: `${ArticleFigure_module_default.root}${className ? ` ${className}` : ""}`, children: [
2422
3104
  /* @__PURE__ */ jsx(
2423
3105
  "div",
2424
3106
  {
2425
- className: "w-full rounded-[var(--radius-lg)] overflow-hidden bg-[var(--bg-secondary)] flex items-center justify-center",
3107
+ className: ArticleFigure_module_default.imageWrapper,
2426
3108
  style: { minHeight: height },
2427
3109
  children: src ? (
2428
3110
  // eslint-disable-next-line @next/next/no-img-element
2429
- /* @__PURE__ */ jsx("img", { src, alt, className: "w-full h-full object-contain" })
2430
- ) : children ? /* @__PURE__ */ jsx("div", { className: "w-full h-full p-4", children }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2 text-[var(--fg-muted)]", children: [
3111
+ /* @__PURE__ */ jsx("img", { src, alt, className: ArticleFigure_module_default.image })
3112
+ ) : children ? /* @__PURE__ */ jsx("div", { className: ArticleFigure_module_default.childWrapper, children }) : /* @__PURE__ */ jsxs("div", { className: ArticleFigure_module_default.placeholder, children: [
2431
3113
  /* @__PURE__ */ jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [
2432
3114
  /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
2433
3115
  /* @__PURE__ */ jsx("path", { d: "M3 16l5-5 4 4 4-6 5 7" })
2434
3116
  ] }),
2435
- /* @__PURE__ */ jsx("span", { className: "text-sm", children: "Figure placeholder" })
3117
+ /* @__PURE__ */ jsx("span", { className: ArticleFigure_module_default.placeholderText, children: "Figure placeholder" })
2436
3118
  ] })
2437
3119
  }
2438
3120
  ),
2439
- legend && legend.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 mt-3 flex-wrap", children: legend.map((item) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
3121
+ legend && legend.length > 0 && /* @__PURE__ */ jsx("div", { className: ArticleFigure_module_default.legend, children: legend.map((item) => /* @__PURE__ */ jsxs("div", { className: ArticleFigure_module_default.legendItem, children: [
2440
3122
  /* @__PURE__ */ jsx(
2441
3123
  "span",
2442
3124
  {
2443
- className: "w-3 h-3 rounded-sm shrink-0",
3125
+ className: ArticleFigure_module_default.legendSwatch,
2444
3126
  style: { backgroundColor: item.color }
2445
3127
  }
2446
3128
  ),
2447
- /* @__PURE__ */ jsx("span", { className: "text-[12px] leading-4 text-[var(--fg-secondary)]", children: item.label })
3129
+ /* @__PURE__ */ jsx("span", { className: ArticleFigure_module_default.legendLabel, children: item.label })
2448
3130
  ] }, item.label)) }),
2449
- caption && /* @__PURE__ */ jsx("figcaption", { className: "mt-2 text-[14px] leading-5 text-[var(--fg-muted)]", children: caption })
3131
+ caption && /* @__PURE__ */ jsx("figcaption", { className: ArticleFigure_module_default.caption, children: caption })
2450
3132
  ] });
2451
3133
  }
3134
+
3135
+ // src/templates/ArticleTable.module.scss
3136
+ var ArticleTable_module_default = {
3137
+ root: "ArticleTable_module_root",
3138
+ headerRow: "ArticleTable_module_headerRow",
3139
+ rankCell: "ArticleTable_module_rankCell",
3140
+ headerCell: "ArticleTable_module_headerCell",
3141
+ headerLabel: "ArticleTable_module_headerLabel",
3142
+ row: "ArticleTable_module_row",
3143
+ rankValue: "ArticleTable_module_rankValue",
3144
+ cell: "ArticleTable_module_cell",
3145
+ cellText: "ArticleTable_module_cellText",
3146
+ badge: "ArticleTable_module_badge",
3147
+ showMore: "ArticleTable_module_showMore"
3148
+ };
2452
3149
  function ArticleTable({
2453
3150
  columns,
2454
3151
  rows,
@@ -2460,34 +3157,27 @@ function ArticleTable({
2460
3157
  const limit = initialVisible != null ? initialVisible : rows.length;
2461
3158
  const visibleRows = expanded ? rows : rows.slice(0, limit);
2462
3159
  const hiddenCount = rows.length - limit;
2463
- return /* @__PURE__ */ jsxs("div", { className: `w-full ${className}`, children: [
2464
- /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-[var(--border-color)] pb-px", children: [
2465
- showRank && /* @__PURE__ */ jsx("div", { className: "w-[120px] shrink-0" }),
2466
- columns.map((col) => /* @__PURE__ */ jsx("div", { className: "flex-1 px-4 py-3.5", children: /* @__PURE__ */ jsx("span", { className: "text-[14px] leading-5 font-medium text-[var(--fg-muted)]", children: col.label }) }, col.key))
3160
+ return /* @__PURE__ */ jsxs("div", { className: `${ArticleTable_module_default.root}${className ? ` ${className}` : ""}`, children: [
3161
+ /* @__PURE__ */ jsxs("div", { className: ArticleTable_module_default.headerRow, children: [
3162
+ showRank && /* @__PURE__ */ jsx("div", { className: ArticleTable_module_default.rankCell }),
3163
+ columns.map((col) => /* @__PURE__ */ jsx("div", { className: ArticleTable_module_default.headerCell, children: /* @__PURE__ */ jsx("span", { className: ArticleTable_module_default.headerLabel, children: col.label }) }, col.key))
2467
3164
  ] }),
2468
- /* @__PURE__ */ jsx("div", { children: visibleRows.map((row, i) => /* @__PURE__ */ jsxs(
2469
- "div",
2470
- {
2471
- className: "flex items-center gap-4 border-b border-[var(--border-color)] last:border-b-0",
2472
- children: [
2473
- showRank && /* @__PURE__ */ jsx("div", { className: "w-[120px] shrink-0 px-4 py-4", children: /* @__PURE__ */ jsx("span", { className: "text-[14px] leading-5 text-[var(--fg-muted)]", children: i + 1 }) }),
2474
- columns.map((col) => {
2475
- const value = row[col.key];
2476
- const hasBadge = row._badge && row._badgeColumn === col.key;
2477
- return /* @__PURE__ */ jsxs("div", { className: "flex-1 px-4 py-4 flex items-center gap-3", children: [
2478
- col.render ? col.render(value, row) : /* @__PURE__ */ jsx("span", { className: "text-[14px] leading-5 text-[var(--fg-secondary)]", children: String(value != null ? value : "") }),
2479
- hasBadge && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center px-2.5 py-0.5 rounded-full text-[12px] leading-4 font-semibold bg-[var(--bg-tertiary)] text-[var(--fg)]", children: row._badge })
2480
- ] }, col.key);
2481
- })
2482
- ]
2483
- },
2484
- i
2485
- )) }),
3165
+ /* @__PURE__ */ jsx("div", { children: visibleRows.map((row, i) => /* @__PURE__ */ jsxs("div", { className: ArticleTable_module_default.row, children: [
3166
+ showRank && /* @__PURE__ */ jsx("div", { className: ArticleTable_module_default.rankValue, children: /* @__PURE__ */ jsx("span", { children: i + 1 }) }),
3167
+ columns.map((col) => {
3168
+ const value = row[col.key];
3169
+ const hasBadge = row._badge && row._badgeColumn === col.key;
3170
+ return /* @__PURE__ */ jsxs("div", { className: ArticleTable_module_default.cell, children: [
3171
+ col.render ? col.render(value, row) : /* @__PURE__ */ jsx("span", { className: ArticleTable_module_default.cellText, children: String(value != null ? value : "") }),
3172
+ hasBadge && /* @__PURE__ */ jsx("span", { className: ArticleTable_module_default.badge, children: row._badge })
3173
+ ] }, col.key);
3174
+ })
3175
+ ] }, i)) }),
2486
3176
  hiddenCount > 0 && !expanded && /* @__PURE__ */ jsxs(
2487
3177
  "button",
2488
3178
  {
2489
3179
  onClick: () => setExpanded(true),
2490
- className: "mt-4 text-[14px] leading-5 font-medium text-[var(--fg-muted)] hover:text-[var(--fg)] transition-colors cursor-pointer",
3180
+ className: ArticleTable_module_default.showMore,
2491
3181
  children: [
2492
3182
  "Show ",
2493
3183
  hiddenCount,
@@ -2497,34 +3187,62 @@ function ArticleTable({
2497
3187
  )
2498
3188
  ] });
2499
3189
  }
3190
+
3191
+ // src/templates/ArticleList.module.scss
3192
+ var ArticleList_module_default = {
3193
+ root: "ArticleList_module_root",
3194
+ ordered: "ArticleList_module_ordered",
3195
+ unordered: "ArticleList_module_unordered",
3196
+ item: "ArticleList_module_item"
3197
+ };
2500
3198
  function ArticleList({
2501
3199
  variant = "unordered",
2502
3200
  items,
2503
3201
  className = ""
2504
3202
  }) {
2505
3203
  const Tag2 = variant === "ordered" ? "ol" : "ul";
2506
- const markerClass = variant === "ordered" ? "list-decimal" : "list-disc";
3204
+ const variantClass = variant === "ordered" ? ArticleList_module_default.ordered : ArticleList_module_default.unordered;
2507
3205
  return /* @__PURE__ */ jsx(
2508
3206
  Tag2,
2509
3207
  {
2510
- className: `pl-[26px] flex flex-col gap-2 text-[16px] leading-7 text-[var(--fg-secondary)] ${markerClass} ${className}`,
2511
- children: items.map((item, i) => /* @__PURE__ */ jsx("li", { className: "pl-1", children: item }, i))
3208
+ className: `${ArticleList_module_default.root} ${variantClass}${className ? ` ${className}` : ""}`,
3209
+ children: items.map((item, i) => /* @__PURE__ */ jsx("li", { className: ArticleList_module_default.item, children: item }, i))
2512
3210
  }
2513
3211
  );
2514
3212
  }
3213
+
3214
+ // src/templates/ArticleNote.module.scss
3215
+ var ArticleNote_module_default = {
3216
+ root: "ArticleNote_module_root"
3217
+ };
2515
3218
  function ArticleNote({ children, className = "" }) {
2516
- return /* @__PURE__ */ jsx(
2517
- "p",
2518
- {
2519
- className: `text-[16px] leading-7 text-[var(--fg-secondary)] italic ${className}`,
2520
- children
2521
- }
2522
- );
3219
+ return /* @__PURE__ */ jsx("p", { className: `${ArticleNote_module_default.root}${className ? ` ${className}` : ""}`, children });
2523
3220
  }
2524
- var roleStyles = {
2525
- assistant: { bg: "bg-[var(--bg-secondary)]", label: "text-[var(--fg-secondary)]", gradient: "var(--bg-secondary)" },
2526
- system: { bg: "bg-[var(--bg-tertiary)]", label: "text-[var(--fg-secondary)]", gradient: "var(--bg-tertiary)" },
2527
- user: { bg: "bg-[var(--bg-secondary)]", label: "text-[var(--fg-secondary)]", gradient: "var(--bg-secondary)" }
3221
+
3222
+ // src/templates/ArticleChatBlock.module.scss
3223
+ var ArticleChatBlock_module_default = {
3224
+ root: "ArticleChatBlock_module_root",
3225
+ assistant: "ArticleChatBlock_module_assistant",
3226
+ system: "ArticleChatBlock_module_system",
3227
+ user: "ArticleChatBlock_module_user",
3228
+ header: "ArticleChatBlock_module_header",
3229
+ roleLabel: "ArticleChatBlock_module_roleLabel",
3230
+ toolBadge: "ArticleChatBlock_module_toolBadge",
3231
+ toolBadgeInner: "ArticleChatBlock_module_toolBadgeInner",
3232
+ toolDot: "ArticleChatBlock_module_toolDot",
3233
+ toolLabel: "ArticleChatBlock_module_toolLabel",
3234
+ divider: "ArticleChatBlock_module_divider",
3235
+ contentWrapper: "ArticleChatBlock_module_contentWrapper",
3236
+ content: "ArticleChatBlock_module_content",
3237
+ fadeOverlay: "ArticleChatBlock_module_fadeOverlay",
3238
+ fadeGradient: "ArticleChatBlock_module_fadeGradient",
3239
+ showMoreBar: "ArticleChatBlock_module_showMoreBar",
3240
+ showMoreBtn: "ArticleChatBlock_module_showMoreBtn"
3241
+ };
3242
+ var roleConfig = {
3243
+ assistant: { cls: ArticleChatBlock_module_default.assistant, gradient: "var(--bg-secondary)" },
3244
+ system: { cls: ArticleChatBlock_module_default.system, gradient: "var(--bg-tertiary)" },
3245
+ user: { cls: ArticleChatBlock_module_default.user, gradient: "var(--bg-secondary)" }
2528
3246
  };
2529
3247
  function ArticleChatBlock({
2530
3248
  role,
@@ -2537,41 +3255,41 @@ function ArticleChatBlock({
2537
3255
  }) {
2538
3256
  var _a;
2539
3257
  const [expanded, setExpanded] = useState(false);
2540
- const styles = (_a = roleStyles[role]) != null ? _a : roleStyles.assistant;
2541
- return /* @__PURE__ */ jsxs("div", { className: `w-full rounded-[var(--radius-lg)] overflow-hidden ${styles.bg} ${className}`, children: [
2542
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 px-5 pt-4 pb-2", children: /* @__PURE__ */ jsxs("span", { className: `text-[12px] leading-4 ${styles.label}`, children: [
3258
+ const config = (_a = roleConfig[role]) != null ? _a : roleConfig.assistant;
3259
+ return /* @__PURE__ */ jsxs("div", { className: `${ArticleChatBlock_module_default.root} ${config.cls}${className ? ` ${className}` : ""}`, children: [
3260
+ /* @__PURE__ */ jsx("div", { className: ArticleChatBlock_module_default.header, children: /* @__PURE__ */ jsxs("span", { className: ArticleChatBlock_module_default.roleLabel, children: [
2543
3261
  role,
2544
3262
  model && ` \u2022 ${model}`
2545
3263
  ] }) }),
2546
- toolCall && /* @__PURE__ */ jsx("div", { className: "px-5 pb-2", children: /* @__PURE__ */ jsxs("div", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full border border-[var(--border-color)] bg-[var(--bg)]", children: [
2547
- /* @__PURE__ */ jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-[var(--color-accent)]" }),
2548
- /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium tracking-[-0.25px] text-[var(--fg-secondary)]", children: toolCall })
3264
+ toolCall && /* @__PURE__ */ jsx("div", { className: ArticleChatBlock_module_default.toolBadge, children: /* @__PURE__ */ jsxs("div", { className: ArticleChatBlock_module_default.toolBadgeInner, children: [
3265
+ /* @__PURE__ */ jsx("span", { className: ArticleChatBlock_module_default.toolDot }),
3266
+ /* @__PURE__ */ jsx("span", { className: ArticleChatBlock_module_default.toolLabel, children: toolCall })
2549
3267
  ] }) }),
2550
- /* @__PURE__ */ jsx("div", { className: "mx-5 h-px bg-[var(--border-color)]" }),
2551
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
3268
+ /* @__PURE__ */ jsx("div", { className: ArticleChatBlock_module_default.divider }),
3269
+ /* @__PURE__ */ jsxs("div", { className: ArticleChatBlock_module_default.contentWrapper, children: [
2552
3270
  /* @__PURE__ */ jsx(
2553
3271
  "div",
2554
3272
  {
2555
- className: "px-5 py-4 text-[14px] leading-6 text-[var(--fg-secondary)] overflow-hidden transition-all",
3273
+ className: ArticleChatBlock_module_default.content,
2556
3274
  style: collapsible && !expanded ? { maxHeight: collapsedHeight, overflow: "hidden" } : void 0,
2557
3275
  children
2558
3276
  }
2559
3277
  ),
2560
- collapsible && !expanded && /* @__PURE__ */ jsxs("div", { className: "absolute bottom-0 left-0 right-0", children: [
3278
+ collapsible && !expanded && /* @__PURE__ */ jsxs("div", { className: ArticleChatBlock_module_default.fadeOverlay, children: [
2561
3279
  /* @__PURE__ */ jsx(
2562
3280
  "div",
2563
3281
  {
2564
- className: "h-16 pointer-events-none",
3282
+ className: ArticleChatBlock_module_default.fadeGradient,
2565
3283
  style: {
2566
- background: `linear-gradient(to top, ${styles.gradient}, transparent)`
3284
+ background: `linear-gradient(to top, ${config.gradient}, transparent)`
2567
3285
  }
2568
3286
  }
2569
3287
  ),
2570
- /* @__PURE__ */ jsx("div", { className: `px-5 pb-4 ${styles.bg}`, children: /* @__PURE__ */ jsx(
3288
+ /* @__PURE__ */ jsx("div", { className: `${ArticleChatBlock_module_default.showMoreBar} ${config.cls}`, children: /* @__PURE__ */ jsx(
2571
3289
  "button",
2572
3290
  {
2573
3291
  onClick: () => setExpanded(true),
2574
- className: "text-[14px] leading-5 font-medium text-[var(--fg-muted)] hover:text-[var(--fg)] transition-colors cursor-pointer",
3292
+ className: ArticleChatBlock_module_default.showMoreBtn,
2575
3293
  children: "Show more"
2576
3294
  }
2577
3295
  ) })
@@ -2579,40 +3297,79 @@ function ArticleChatBlock({
2579
3297
  ] })
2580
3298
  ] });
2581
3299
  }
3300
+
3301
+ // src/templates/ArticleLinkButton.module.scss
3302
+ var ArticleLinkButton_module_default = {
3303
+ root: "ArticleLinkButton_module_root"
3304
+ };
2582
3305
  function ArticleLinkButton({
2583
3306
  children,
2584
3307
  href,
2585
3308
  onClick,
2586
3309
  className = ""
2587
3310
  }) {
2588
- const baseClass = `inline-flex items-center justify-center px-4 py-2 rounded-full bg-[var(--fg)] text-[13px] font-medium tracking-[-0.25px] text-[var(--bg)] border border-[var(--bg)] shadow-[var(--shadow-sm)] hover:opacity-90 active:opacity-80 transition-all duration-[var(--transition-fast)] cursor-pointer ${className}`;
3311
+ const cls = `${ArticleLinkButton_module_default.root}${className ? ` ${className}` : ""}`;
2589
3312
  if (href) {
2590
- return /* @__PURE__ */ jsx("a", { href, className: baseClass, children });
3313
+ return /* @__PURE__ */ jsx("a", { href, className: cls, children });
2591
3314
  }
2592
- return /* @__PURE__ */ jsx("button", { onClick, className: baseClass, children });
3315
+ return /* @__PURE__ */ jsx("button", { onClick, className: cls, children });
2593
3316
  }
3317
+
3318
+ // src/templates/ArticleFooter.module.scss
3319
+ var ArticleFooter_module_default = {
3320
+ root: "ArticleFooter_module_root",
3321
+ topBar: "ArticleFooter_module_topBar",
3322
+ logo: "ArticleFooter_module_logo",
3323
+ divider: "ArticleFooter_module_divider",
3324
+ copyright: "ArticleFooter_module_copyright"
3325
+ };
2594
3326
  function ArticleFooter({
2595
3327
  logo,
2596
3328
  copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} All rights reserved.`,
2597
3329
  className = ""
2598
3330
  }) {
2599
- return /* @__PURE__ */ jsxs("footer", { className: `w-full px-20 py-10 flex flex-col gap-10 ${className}`, children: [
2600
- /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
2601
- logo && /* @__PURE__ */ jsx("div", { className: "shrink-0 pr-10", children: logo }),
2602
- /* @__PURE__ */ jsx("div", { className: "flex-1 h-px bg-[var(--fg)]" })
3331
+ return /* @__PURE__ */ jsxs("footer", { className: `${ArticleFooter_module_default.root}${className ? ` ${className}` : ""}`, children: [
3332
+ /* @__PURE__ */ jsxs("div", { className: ArticleFooter_module_default.topBar, children: [
3333
+ logo && /* @__PURE__ */ jsx("div", { className: ArticleFooter_module_default.logo, children: logo }),
3334
+ /* @__PURE__ */ jsx("div", { className: ArticleFooter_module_default.divider })
2603
3335
  ] }),
2604
- /* @__PURE__ */ jsx("p", { className: "text-[14px] leading-5 text-[var(--fg-muted)]", children: copyright })
3336
+ /* @__PURE__ */ jsx("p", { className: ArticleFooter_module_default.copyright, children: copyright })
2605
3337
  ] });
2606
3338
  }
3339
+
3340
+ // src/templates/ArticleLayout.module.scss
3341
+ var ArticleLayout_module_default = {
3342
+ root: "ArticleLayout_module_root",
3343
+ wide: "ArticleLayout_module_wide",
3344
+ narrow: "ArticleLayout_module_narrow"
3345
+ };
2607
3346
  function ArticleLayout({ children, className = "" }) {
2608
- return /* @__PURE__ */ jsx("article", { className: `w-full max-w-[1100px] mx-auto flex flex-col gap-5 ${className}`, children });
3347
+ return /* @__PURE__ */ jsx("article", { className: `${ArticleLayout_module_default.root}${className ? ` ${className}` : ""}`, children });
2609
3348
  }
2610
3349
  function ArticleWide({ children, className = "" }) {
2611
- return /* @__PURE__ */ jsx("div", { className: `w-full ${className}`, children });
3350
+ return /* @__PURE__ */ jsx("div", { className: `${ArticleLayout_module_default.wide}${className ? ` ${className}` : ""}`, children });
2612
3351
  }
2613
3352
  function ArticleNarrow({ children, className = "" }) {
2614
- return /* @__PURE__ */ jsx("div", { className: `w-full max-w-[720px] ${className}`, children });
3353
+ return /* @__PURE__ */ jsx("div", { className: `${ArticleLayout_module_default.narrow}${className ? ` ${className}` : ""}`, children });
2615
3354
  }
3355
+
3356
+ // src/templates/ArticleChart.module.scss
3357
+ var ArticleChart_module_default = {
3358
+ figure: "ArticleChart_module_figure",
3359
+ chartWrapper: "ArticleChart_module_chartWrapper",
3360
+ tooltip: "ArticleChart_module_tooltip",
3361
+ tooltipLabel: "ArticleChart_module_tooltipLabel",
3362
+ tooltipRow: "ArticleChart_module_tooltipRow",
3363
+ tooltipDot: "ArticleChart_module_tooltipDot",
3364
+ tooltipName: "ArticleChart_module_tooltipName",
3365
+ tooltipValue: "ArticleChart_module_tooltipValue",
3366
+ scatterTooltipLabel: "ArticleChart_module_scatterTooltipLabel",
3367
+ scatterTooltipRow: "ArticleChart_module_scatterTooltipRow",
3368
+ legend: "ArticleChart_module_legend",
3369
+ legendItem: "ArticleChart_module_legendItem",
3370
+ legendSwatch: "ArticleChart_module_legendSwatch",
3371
+ legendLabel: "ArticleChart_module_legendLabel"
3372
+ };
2616
3373
  function ChartTooltip({
2617
3374
  active,
2618
3375
  payload,
@@ -2623,15 +3380,15 @@ function ChartTooltip({
2623
3380
  }) {
2624
3381
  if (!active || !(payload == null ? void 0 : payload.length)) return null;
2625
3382
  const fmt = valueFormatter != null ? valueFormatter : ((v) => String(v));
2626
- return /* @__PURE__ */ jsxs("div", { className: "bg-[var(--bg)] border border-[var(--border-color)] rounded-[var(--radius-md)] shadow-[var(--shadow-md)] px-3 py-2 text-[12px] leading-4", children: [
2627
- label !== void 0 && /* @__PURE__ */ jsxs("p", { className: "text-[var(--fg-muted)] mb-1", children: [
3383
+ return /* @__PURE__ */ jsxs("div", { className: ArticleChart_module_default.tooltip, children: [
3384
+ label !== void 0 && /* @__PURE__ */ jsxs("p", { className: ArticleChart_module_default.tooltipLabel, children: [
2628
3385
  xLabel ? `${xLabel}: ` : "",
2629
3386
  label
2630
3387
  ] }),
2631
- payload.map((entry, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2632
- /* @__PURE__ */ jsx("span", { className: "w-2 h-2 rounded-full shrink-0", style: { backgroundColor: entry.color } }),
2633
- /* @__PURE__ */ jsx("span", { className: "text-[var(--fg-secondary)]", children: entry.name }),
2634
- /* @__PURE__ */ jsx("span", { className: "font-medium text-[var(--fg)] ml-auto pl-3", children: yLabel ? `${fmt(entry.value)} ` : fmt(entry.value) })
3388
+ payload.map((entry, i) => /* @__PURE__ */ jsxs("div", { className: ArticleChart_module_default.tooltipRow, children: [
3389
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.tooltipDot, style: { backgroundColor: entry.color } }),
3390
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.tooltipName, children: entry.name }),
3391
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.tooltipValue, children: yLabel ? `${fmt(entry.value)} ` : fmt(entry.value) })
2635
3392
  ] }, i))
2636
3393
  ] });
2637
3394
  }
@@ -2645,8 +3402,8 @@ function ArticleLineChart({
2645
3402
  valueFormatter,
2646
3403
  className = ""
2647
3404
  }) {
2648
- return /* @__PURE__ */ jsxs("figure", { className: `w-full ${className}`, children: [
2649
- /* @__PURE__ */ jsx("div", { className: "w-full", style: { height }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(LineChart, { data, margin: { top: 8, right: 16, bottom: 4, left: 8 }, children: [
3405
+ return /* @__PURE__ */ jsxs("figure", { className: `${ArticleChart_module_default.figure}${className ? ` ${className}` : ""}`, children: [
3406
+ /* @__PURE__ */ jsx("div", { className: ArticleChart_module_default.chartWrapper, style: { height }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(LineChart, { data, margin: { top: 8, right: 16, bottom: 4, left: 8 }, children: [
2650
3407
  /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "var(--border-color)" }),
2651
3408
  /* @__PURE__ */ jsx(
2652
3409
  XAxis,
@@ -2696,9 +3453,9 @@ function ArticleLineChart({
2696
3453
  s.dataKey
2697
3454
  ))
2698
3455
  ] }) }) }),
2699
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 mt-3 flex-wrap", children: series.map((s) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
2700
- /* @__PURE__ */ jsx("span", { className: "w-3 h-3 rounded-sm shrink-0", style: { backgroundColor: s.color } }),
2701
- /* @__PURE__ */ jsx("span", { className: "text-[12px] leading-4 text-[var(--fg-secondary)]", children: s.name })
3456
+ /* @__PURE__ */ jsx("div", { className: ArticleChart_module_default.legend, children: series.map((s) => /* @__PURE__ */ jsxs("div", { className: ArticleChart_module_default.legendItem, children: [
3457
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.legendSwatch, style: { backgroundColor: s.color } }),
3458
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.legendLabel, children: s.name })
2702
3459
  ] }, s.dataKey)) })
2703
3460
  ] });
2704
3461
  }
@@ -2713,8 +3470,8 @@ function ArticleBarChart({
2713
3470
  valueFormatter,
2714
3471
  className = ""
2715
3472
  }) {
2716
- return /* @__PURE__ */ jsxs("figure", { className: `w-full ${className}`, children: [
2717
- /* @__PURE__ */ jsx("div", { className: "w-full", style: { height }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(BarChart, { data, margin: { top: 8, right: 16, bottom: 4, left: 8 }, children: [
3473
+ return /* @__PURE__ */ jsxs("figure", { className: `${ArticleChart_module_default.figure}${className ? ` ${className}` : ""}`, children: [
3474
+ /* @__PURE__ */ jsx("div", { className: ArticleChart_module_default.chartWrapper, style: { height }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(BarChart, { data, margin: { top: 8, right: 16, bottom: 4, left: 8 }, children: [
2718
3475
  /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "var(--border-color)", vertical: false }),
2719
3476
  /* @__PURE__ */ jsx(
2720
3477
  XAxis,
@@ -2762,9 +3519,9 @@ function ArticleBarChart({
2762
3519
  s.dataKey
2763
3520
  ))
2764
3521
  ] }) }) }),
2765
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 mt-3 flex-wrap", children: series.map((s) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
2766
- /* @__PURE__ */ jsx("span", { className: "w-3 h-3 rounded-sm shrink-0", style: { backgroundColor: s.color } }),
2767
- /* @__PURE__ */ jsx("span", { className: "text-[12px] leading-4 text-[var(--fg-secondary)]", children: s.name })
3522
+ /* @__PURE__ */ jsx("div", { className: ArticleChart_module_default.legend, children: series.map((s) => /* @__PURE__ */ jsxs("div", { className: ArticleChart_module_default.legendItem, children: [
3523
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.legendSwatch, style: { backgroundColor: s.color } }),
3524
+ /* @__PURE__ */ jsx("span", { className: ArticleChart_module_default.legendLabel, children: s.name })
2768
3525
  ] }, s.dataKey)) })
2769
3526
  ] });
2770
3527
  }
@@ -2782,7 +3539,7 @@ function ArticleScatterChart({
2782
3539
  var _a;
2783
3540
  return (_a = d.color) != null ? _a : color;
2784
3541
  });
2785
- return /* @__PURE__ */ jsx("figure", { className: `w-full ${className}`, children: /* @__PURE__ */ jsx("div", { className: "w-full", style: { height }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(ScatterChart, { margin: { top: 8, right: 16, bottom: 4, left: 8 }, children: [
3542
+ return /* @__PURE__ */ jsx("figure", { className: `${ArticleChart_module_default.figure}${className ? ` ${className}` : ""}`, children: /* @__PURE__ */ jsx("div", { className: ArticleChart_module_default.chartWrapper, style: { height }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(ScatterChart, { margin: { top: 8, right: 16, bottom: 4, left: 8 }, children: [
2786
3543
  /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "var(--border-color)" }),
2787
3544
  /* @__PURE__ */ jsx(
2788
3545
  XAxis,
@@ -2818,14 +3575,14 @@ function ArticleScatterChart({
2818
3575
  if (!active || !(payload == null ? void 0 : payload.length)) return null;
2819
3576
  const point = (_a = payload[0]) == null ? void 0 : _a.payload;
2820
3577
  const fmt = valueFormatter != null ? valueFormatter : ((v) => String(v));
2821
- return /* @__PURE__ */ jsxs("div", { className: "bg-[var(--bg)] border border-[var(--border-color)] rounded-[var(--radius-md)] shadow-[var(--shadow-md)] px-3 py-2 text-[12px] leading-4", children: [
2822
- point.label && /* @__PURE__ */ jsx("p", { className: "font-medium text-[var(--fg)] mb-1", children: point.label }),
2823
- xLabel && /* @__PURE__ */ jsxs("p", { className: "text-[var(--fg-secondary)]", children: [
3578
+ return /* @__PURE__ */ jsxs("div", { className: ArticleChart_module_default.tooltip, children: [
3579
+ point.label && /* @__PURE__ */ jsx("p", { className: ArticleChart_module_default.scatterTooltipLabel, children: point.label }),
3580
+ xLabel && /* @__PURE__ */ jsxs("p", { className: ArticleChart_module_default.scatterTooltipRow, children: [
2824
3581
  xLabel,
2825
3582
  ": ",
2826
3583
  fmt(point.x)
2827
3584
  ] }),
2828
- yLabel && /* @__PURE__ */ jsxs("p", { className: "text-[var(--fg-secondary)]", children: [
3585
+ yLabel && /* @__PURE__ */ jsxs("p", { className: ArticleChart_module_default.scatterTooltipRow, children: [
2829
3586
  yLabel,
2830
3587
  ": ",
2831
3588
  fmt(point.y)
@@ -2837,6 +3594,16 @@ function ArticleScatterChart({
2837
3594
  /* @__PURE__ */ jsx(Scatter, { data, children: data.map((_, i) => /* @__PURE__ */ jsx(Cell, { fill: colors[i], r: 6 }, i)) })
2838
3595
  ] }) }) }) });
2839
3596
  }
3597
+
3598
+ // src/templates/LandingLayout.module.scss
3599
+ var LandingLayout_module_default = {
3600
+ headerMode: "LandingLayout_module_headerMode",
3601
+ headerMain: "LandingLayout_module_headerMain",
3602
+ sidebarMode: "LandingLayout_module_sidebarMode",
3603
+ sidebarNav: "LandingLayout_module_sidebarNav",
3604
+ sidebarMain: "LandingLayout_module_sidebarMain",
3605
+ sidebarContent: "LandingLayout_module_sidebarContent"
3606
+ };
2840
3607
  function LandingLayout({
2841
3608
  mode = "header",
2842
3609
  nav,
@@ -2844,14 +3611,14 @@ function LandingLayout({
2844
3611
  className = ""
2845
3612
  }) {
2846
3613
  if (mode === "sidebar") {
2847
- return /* @__PURE__ */ jsxs("div", { className: `flex min-h-screen bg-[var(--bg)] ${className}`, children: [
2848
- nav && /* @__PURE__ */ jsx("div", { className: "hidden md:flex shrink-0", children: nav }),
2849
- /* @__PURE__ */ jsx("main", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx("div", { className: "px-6 md:px-10 lg:px-16 max-w-5xl", children }) })
3614
+ return /* @__PURE__ */ jsxs("div", { className: `${LandingLayout_module_default.sidebarMode}${className ? ` ${className}` : ""}`, children: [
3615
+ nav && /* @__PURE__ */ jsx("div", { className: LandingLayout_module_default.sidebarNav, children: nav }),
3616
+ /* @__PURE__ */ jsx("main", { className: LandingLayout_module_default.sidebarMain, children: /* @__PURE__ */ jsx("div", { className: LandingLayout_module_default.sidebarContent, children }) })
2850
3617
  ] });
2851
3618
  }
2852
- return /* @__PURE__ */ jsxs("div", { className: `min-h-screen bg-[var(--bg)] ${className}`, children: [
3619
+ return /* @__PURE__ */ jsxs("div", { className: `${LandingLayout_module_default.headerMode}${className ? ` ${className}` : ""}`, children: [
2853
3620
  nav,
2854
- /* @__PURE__ */ jsx("main", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children })
3621
+ /* @__PURE__ */ jsx("main", { className: LandingLayout_module_default.headerMain, children })
2855
3622
  ] });
2856
3623
  }
2857
3624