@almadar/ui 2.15.10 → 2.15.12

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.
@@ -7078,11 +7078,11 @@ var gapStyles4 = {
7078
7078
  };
7079
7079
  var colStyles2 = {
7080
7080
  1: "grid-cols-1",
7081
- 2: "grid-cols-2",
7082
- 3: "grid-cols-3",
7083
- 4: "grid-cols-4",
7084
- 5: "grid-cols-5",
7085
- 6: "grid-cols-6"
7081
+ 2: "grid-cols-1 sm:grid-cols-2",
7082
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
7083
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
7084
+ 5: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
7085
+ 6: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6"
7086
7086
  };
7087
7087
  var SimpleGrid = ({
7088
7088
  minChildWidth = 250,
@@ -14945,7 +14945,7 @@ var HeroSection = ({
14945
14945
  className: cn(
14946
14946
  "w-full min-h-[60vh] flex items-center justify-center",
14947
14947
  "px-6 py-20",
14948
- "relative overflow-hidden",
14948
+ "relative overflow-x-hidden overflow-y-visible",
14949
14949
  className
14950
14950
  ),
14951
14951
  children: [
@@ -15319,13 +15319,13 @@ var StepFlow = ({
15319
15319
  ] })
15320
15320
  ] }) }, index)) });
15321
15321
  }
15322
- return /* @__PURE__ */ jsxRuntime.jsx(HStack, { gap: "none", align: "start", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(React87__namespace.default.Fragment, { children: [
15323
- /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", className: "flex-1", children: [
15322
+ return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(React87__namespace.default.Fragment, { children: [
15323
+ /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
15324
15324
  /* @__PURE__ */ jsxRuntime.jsx(StepCircle, { step, index }),
15325
15325
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
15326
15326
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", color: "muted", className: "text-center", children: step.description })
15327
15327
  ] }),
15328
- showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-shrink-0 pt-5 px-2", children: /* @__PURE__ */ jsxRuntime.jsx(Divider, { orientation: "horizontal", className: "w-12" }) })
15328
+ showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-shrink-0 self-center py-2 md:pt-5 md:py-0 md:px-2", children: /* @__PURE__ */ jsxRuntime.jsx(Divider, { orientation: "horizontal", className: "w-12 md:w-12" }) })
15329
15329
  ] }, index)) });
15330
15330
  };
15331
15331
  StepFlow.displayName = "StepFlow";
@@ -15376,13 +15376,10 @@ var SplitSection = ({
15376
15376
  className
15377
15377
  ),
15378
15378
  padding: "lg",
15379
- children: /* @__PURE__ */ jsxRuntime.jsx(HStack, { gap: "lg", align: "start", className: "flex-wrap gap-16", children: isImageLeft ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15380
- mediaContent,
15381
- textContent
15382
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15379
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: cn("flex flex-col lg:flex-row gap-10 lg:gap-16 items-start", isImageLeft && "lg:flex-row-reverse"), children: [
15383
15380
  textContent,
15384
15381
  mediaContent
15385
- ] }) })
15382
+ ] })
15386
15383
  }
15387
15384
  );
15388
15385
  };
@@ -7047,11 +7047,11 @@ var gapStyles4 = {
7047
7047
  };
7048
7048
  var colStyles2 = {
7049
7049
  1: "grid-cols-1",
7050
- 2: "grid-cols-2",
7051
- 3: "grid-cols-3",
7052
- 4: "grid-cols-4",
7053
- 5: "grid-cols-5",
7054
- 6: "grid-cols-6"
7050
+ 2: "grid-cols-1 sm:grid-cols-2",
7051
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
7052
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
7053
+ 5: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
7054
+ 6: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6"
7055
7055
  };
7056
7056
  var SimpleGrid = ({
7057
7057
  minChildWidth = 250,
@@ -14914,7 +14914,7 @@ var HeroSection = ({
14914
14914
  className: cn(
14915
14915
  "w-full min-h-[60vh] flex items-center justify-center",
14916
14916
  "px-6 py-20",
14917
- "relative overflow-hidden",
14917
+ "relative overflow-x-hidden overflow-y-visible",
14918
14918
  className
14919
14919
  ),
14920
14920
  children: [
@@ -15288,13 +15288,13 @@ var StepFlow = ({
15288
15288
  ] })
15289
15289
  ] }) }, index)) });
15290
15290
  }
15291
- return /* @__PURE__ */ jsx(HStack, { gap: "none", align: "start", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React87__default.Fragment, { children: [
15292
- /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1", children: [
15291
+ return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React87__default.Fragment, { children: [
15292
+ /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
15293
15293
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
15294
15294
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
15295
15295
  /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "muted", className: "text-center", children: step.description })
15296
15296
  ] }),
15297
- showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 pt-5 px-2", children: /* @__PURE__ */ jsx(Divider, { orientation: "horizontal", className: "w-12" }) })
15297
+ showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 self-center py-2 md:pt-5 md:py-0 md:px-2", children: /* @__PURE__ */ jsx(Divider, { orientation: "horizontal", className: "w-12 md:w-12" }) })
15298
15298
  ] }, index)) });
15299
15299
  };
15300
15300
  StepFlow.displayName = "StepFlow";
@@ -15345,13 +15345,10 @@ var SplitSection = ({
15345
15345
  className
15346
15346
  ),
15347
15347
  padding: "lg",
15348
- children: /* @__PURE__ */ jsx(HStack, { gap: "lg", align: "start", className: "flex-wrap gap-16", children: isImageLeft ? /* @__PURE__ */ jsxs(Fragment, { children: [
15349
- mediaContent,
15350
- textContent
15351
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
15348
+ children: /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col lg:flex-row gap-10 lg:gap-16 items-start", isImageLeft && "lg:flex-row-reverse"), children: [
15352
15349
  textContent,
15353
15350
  mediaContent
15354
- ] }) })
15351
+ ] })
15355
15352
  }
15356
15353
  );
15357
15354
  };
@@ -2484,40 +2484,19 @@ var SharedReality = ({
2484
2484
  };
2485
2485
  SharedReality.displayName = "SharedReality";
2486
2486
  var standardLibraryId = 0;
2487
- var RING_DATA = [
2488
- {
2489
- r: 70,
2490
- clusters: [
2491
- { angle: 0, dots: 3 },
2492
- { angle: 1.57, dots: 2 },
2493
- { angle: 3.14, dots: 3 },
2494
- { angle: 4.71, dots: 2 }
2495
- ]
2496
- },
2497
- {
2498
- r: 120,
2499
- clusters: [
2500
- { angle: 0.5, dots: 3 },
2501
- { angle: 1.3, dots: 2 },
2502
- { angle: 2.1, dots: 3 },
2503
- { angle: 3.5, dots: 2 },
2504
- { angle: 4.3, dots: 3 },
2505
- { angle: 5.5, dots: 2 }
2506
- ]
2507
- },
2508
- {
2509
- r: 170,
2510
- clusters: [
2511
- { angle: 0.3, dots: 2 },
2512
- { angle: 1, dots: 2 },
2513
- { angle: 1.7, dots: 1 },
2514
- { angle: 2.4, dots: 2 },
2515
- { angle: 3.1, dots: 2 },
2516
- { angle: 3.9, dots: 1 },
2517
- { angle: 4.6, dots: 2 },
2518
- { angle: 5.6, dots: 2 }
2519
- ]
2520
- }
2487
+ var GROUPS = [
2488
+ { x: 300, y: 80, dots: 5 },
2489
+ // top
2490
+ { x: 430, y: 140, dots: 4 },
2491
+ // top-right
2492
+ { x: 430, y: 260, dots: 5 },
2493
+ // bottom-right
2494
+ { x: 300, y: 320, dots: 4 },
2495
+ // bottom
2496
+ { x: 170, y: 260, dots: 5 },
2497
+ // bottom-left
2498
+ { x: 170, y: 140, dots: 4 }
2499
+ // top-left
2521
2500
  ];
2522
2501
  var StandardLibrary = ({
2523
2502
  className,
@@ -2527,13 +2506,7 @@ var StandardLibrary = ({
2527
2506
  const ids = React__default.default.useMemo(() => {
2528
2507
  standardLibraryId += 1;
2529
2508
  const base = `sl-${standardLibraryId}`;
2530
- return {
2531
- glow: `${base}-glow`,
2532
- grad1: `${base}-g1`,
2533
- grad2: `${base}-g2`,
2534
- grad3: `${base}-g3`,
2535
- nucGlow: `${base}-ng`
2536
- };
2509
+ return { glow: `${base}-glow`, groupGlow: `${base}-gg` };
2537
2510
  }, []);
2538
2511
  const cx = 300;
2539
2512
  const cy = 200;
@@ -2546,87 +2519,78 @@ var StandardLibrary = ({
2546
2519
  children: [
2547
2520
  /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
2548
2521
  /* @__PURE__ */ jsxRuntime.jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2549
- /* @__PURE__ */ jsxRuntime.jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
2522
+ /* @__PURE__ */ jsxRuntime.jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "3", result: "blur" }),
2550
2523
  /* @__PURE__ */ jsxRuntime.jsxs("feMerge", { children: [
2551
2524
  /* @__PURE__ */ jsxRuntime.jsx("feMergeNode", { in: "blur" }),
2552
2525
  /* @__PURE__ */ jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })
2553
2526
  ] })
2554
2527
  ] }),
2555
- /* @__PURE__ */ jsxRuntime.jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
2556
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2528
+ /* @__PURE__ */ jsxRuntime.jsxs("radialGradient", { id: ids.groupGlow, cx: "50%", cy: "50%", r: "50%", children: [
2529
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.1 }),
2557
2530
  /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2558
- ] }),
2559
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: ids.grad1, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2560
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.35 }),
2561
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.15 }),
2562
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.35 })
2563
- ] }),
2564
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: ids.grad2, x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
2565
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2566
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.1 }),
2567
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.25 })
2568
- ] }),
2569
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: ids.grad3, x1: "0%", y1: "100%", x2: "100%", y2: "0%", children: [
2570
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2571
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.06 }),
2572
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.2 })
2573
2531
  ] })
2574
2532
  ] }),
2575
2533
  animated && /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
2576
- @keyframes sl-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
2534
+ @keyframes sl-pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 0.7; } }
2577
2535
  ` }),
2578
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 190, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
2579
- [ids.grad1, ids.grad2, ids.grad3].map((gradId, ri) => /* @__PURE__ */ jsxRuntime.jsx(
2580
- "circle",
2536
+ GROUPS.map((g, i) => /* @__PURE__ */ jsxRuntime.jsx(
2537
+ "line",
2581
2538
  {
2582
- cx,
2583
- cy,
2584
- r: RING_DATA[ri].r,
2585
- fill: "none",
2586
- stroke: `url(#${gradId})`,
2587
- strokeWidth: ri === 0 ? 1.5 : 1,
2588
- strokeDasharray: ri === 2 ? "3 6" : void 0
2539
+ x1: cx,
2540
+ y1: cy,
2541
+ x2: g.x,
2542
+ y2: g.y,
2543
+ stroke: color,
2544
+ strokeWidth: 0.8,
2545
+ opacity: 0.1,
2546
+ strokeDasharray: "4 6"
2589
2547
  },
2590
- `ring-${ri}`
2548
+ `conn-${i}`
2591
2549
  )),
2592
- RING_DATA.map((ring, ri) => /* @__PURE__ */ jsxRuntime.jsx(
2593
- "g",
2594
- {
2595
- style: animated ? {
2596
- transformOrigin: `${cx}px ${cy}px`,
2597
- animation: `sl-orbit ${40 + ri * 20}s linear infinite${ri % 2 === 1 ? " reverse" : ""}`
2598
- } : void 0,
2599
- children: ring.clusters.map((cluster, ci) => {
2600
- const basex = cx + Math.cos(cluster.angle) * ring.r;
2601
- const basey = cy + Math.sin(cluster.angle) * ring.r;
2602
- const opacity = ri === 0 ? 0.6 : ri === 1 ? 0.45 : 0.3;
2603
- const dotR = ri === 0 ? 3.5 : ri === 1 ? 3 : 2.5;
2604
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
2605
- Array.from({ length: cluster.dots }, (_, di) => {
2606
- const offsetAngle = cluster.angle + (di - (cluster.dots - 1) / 2) * 0.12;
2607
- const offsetR = ring.r + (di % 2 === 0 ? 6 : -6);
2608
- const dx = cx + Math.cos(offsetAngle) * offsetR;
2609
- const dy = cy + Math.sin(offsetAngle) * offsetR;
2610
- return /* @__PURE__ */ jsxRuntime.jsx(
2611
- "circle",
2612
- {
2613
- cx: dx,
2614
- cy: dy,
2615
- r: dotR,
2616
- fill: color,
2617
- opacity
2618
- },
2619
- `dot-${ri}-${ci}-${di}`
2620
- );
2621
- }),
2622
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: basex, cy: basey, r: dotR + 1, fill: color, opacity: opacity * 0.7 })
2623
- ] }, `cluster-${ri}-${ci}`);
2550
+ GROUPS.map((g, i) => {
2551
+ const next = GROUPS[(i + 1) % GROUPS.length];
2552
+ return /* @__PURE__ */ jsxRuntime.jsx(
2553
+ "line",
2554
+ {
2555
+ x1: g.x,
2556
+ y1: g.y,
2557
+ x2: next.x,
2558
+ y2: next.y,
2559
+ stroke: color,
2560
+ strokeWidth: 0.5,
2561
+ opacity: 0.06
2562
+ },
2563
+ `adj-${i}`
2564
+ );
2565
+ }),
2566
+ GROUPS.map((group, gi) => {
2567
+ const dotR = 3;
2568
+ const spread = 14;
2569
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
2570
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: group.x, cy: group.y, r: 28, fill: `url(#${ids.groupGlow})` }),
2571
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: group.x, cy: group.y, r: 24, fill: "none", stroke: color, strokeWidth: 0.7, opacity: 0.15 }),
2572
+ Array.from({ length: group.dots }, (_, di) => {
2573
+ const angle = di / group.dots * Math.PI * 2 - Math.PI / 2;
2574
+ const r = di === 0 ? 0 : spread * 0.55;
2575
+ const dx = di === 0 ? group.x : group.x + Math.cos(angle) * r;
2576
+ const dy = di === 0 ? group.y : group.y + Math.sin(angle) * r;
2577
+ return /* @__PURE__ */ jsxRuntime.jsx(
2578
+ "circle",
2579
+ {
2580
+ cx: dx,
2581
+ cy: dy,
2582
+ r: di === 0 ? dotR + 1 : dotR,
2583
+ fill: color,
2584
+ opacity: di === 0 ? 0.6 : 0.35,
2585
+ style: animated && di === 0 ? { animation: `sl-pulse 3s ease-in-out ${gi * 0.4}s infinite` } : void 0
2586
+ },
2587
+ `dot-${gi}-${di}`
2588
+ );
2624
2589
  })
2625
- },
2626
- `ring-clusters-${ri}`
2627
- )),
2628
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 25, fill: `url(#${ids.nucGlow})` }),
2629
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 8, fill: color, opacity: 0.7, filter: `url(#${ids.glow})` })
2590
+ ] }, `group-${gi}`);
2591
+ }),
2592
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 16, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.25 }),
2593
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 6, fill: color, opacity: 0.6, filter: `url(#${ids.glow})` })
2630
2594
  ]
2631
2595
  }
2632
2596
  );
@@ -2478,40 +2478,19 @@ var SharedReality = ({
2478
2478
  };
2479
2479
  SharedReality.displayName = "SharedReality";
2480
2480
  var standardLibraryId = 0;
2481
- var RING_DATA = [
2482
- {
2483
- r: 70,
2484
- clusters: [
2485
- { angle: 0, dots: 3 },
2486
- { angle: 1.57, dots: 2 },
2487
- { angle: 3.14, dots: 3 },
2488
- { angle: 4.71, dots: 2 }
2489
- ]
2490
- },
2491
- {
2492
- r: 120,
2493
- clusters: [
2494
- { angle: 0.5, dots: 3 },
2495
- { angle: 1.3, dots: 2 },
2496
- { angle: 2.1, dots: 3 },
2497
- { angle: 3.5, dots: 2 },
2498
- { angle: 4.3, dots: 3 },
2499
- { angle: 5.5, dots: 2 }
2500
- ]
2501
- },
2502
- {
2503
- r: 170,
2504
- clusters: [
2505
- { angle: 0.3, dots: 2 },
2506
- { angle: 1, dots: 2 },
2507
- { angle: 1.7, dots: 1 },
2508
- { angle: 2.4, dots: 2 },
2509
- { angle: 3.1, dots: 2 },
2510
- { angle: 3.9, dots: 1 },
2511
- { angle: 4.6, dots: 2 },
2512
- { angle: 5.6, dots: 2 }
2513
- ]
2514
- }
2481
+ var GROUPS = [
2482
+ { x: 300, y: 80, dots: 5 },
2483
+ // top
2484
+ { x: 430, y: 140, dots: 4 },
2485
+ // top-right
2486
+ { x: 430, y: 260, dots: 5 },
2487
+ // bottom-right
2488
+ { x: 300, y: 320, dots: 4 },
2489
+ // bottom
2490
+ { x: 170, y: 260, dots: 5 },
2491
+ // bottom-left
2492
+ { x: 170, y: 140, dots: 4 }
2493
+ // top-left
2515
2494
  ];
2516
2495
  var StandardLibrary = ({
2517
2496
  className,
@@ -2521,13 +2500,7 @@ var StandardLibrary = ({
2521
2500
  const ids = React.useMemo(() => {
2522
2501
  standardLibraryId += 1;
2523
2502
  const base = `sl-${standardLibraryId}`;
2524
- return {
2525
- glow: `${base}-glow`,
2526
- grad1: `${base}-g1`,
2527
- grad2: `${base}-g2`,
2528
- grad3: `${base}-g3`,
2529
- nucGlow: `${base}-ng`
2530
- };
2503
+ return { glow: `${base}-glow`, groupGlow: `${base}-gg` };
2531
2504
  }, []);
2532
2505
  const cx = 300;
2533
2506
  const cy = 200;
@@ -2540,87 +2513,78 @@ var StandardLibrary = ({
2540
2513
  children: [
2541
2514
  /* @__PURE__ */ jsxs("defs", { children: [
2542
2515
  /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2543
- /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
2516
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "3", result: "blur" }),
2544
2517
  /* @__PURE__ */ jsxs("feMerge", { children: [
2545
2518
  /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2546
2519
  /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2547
2520
  ] })
2548
2521
  ] }),
2549
- /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
2550
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2522
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.groupGlow, cx: "50%", cy: "50%", r: "50%", children: [
2523
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.1 }),
2551
2524
  /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2552
- ] }),
2553
- /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad1, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2554
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.35 }),
2555
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.15 }),
2556
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.35 })
2557
- ] }),
2558
- /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad2, x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
2559
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2560
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.1 }),
2561
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.25 })
2562
- ] }),
2563
- /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad3, x1: "0%", y1: "100%", x2: "100%", y2: "0%", children: [
2564
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2565
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.06 }),
2566
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.2 })
2567
2525
  ] })
2568
2526
  ] }),
2569
2527
  animated && /* @__PURE__ */ jsx("style", { children: `
2570
- @keyframes sl-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
2528
+ @keyframes sl-pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 0.7; } }
2571
2529
  ` }),
2572
- /* @__PURE__ */ jsx("circle", { cx, cy, r: 190, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
2573
- [ids.grad1, ids.grad2, ids.grad3].map((gradId, ri) => /* @__PURE__ */ jsx(
2574
- "circle",
2530
+ GROUPS.map((g, i) => /* @__PURE__ */ jsx(
2531
+ "line",
2575
2532
  {
2576
- cx,
2577
- cy,
2578
- r: RING_DATA[ri].r,
2579
- fill: "none",
2580
- stroke: `url(#${gradId})`,
2581
- strokeWidth: ri === 0 ? 1.5 : 1,
2582
- strokeDasharray: ri === 2 ? "3 6" : void 0
2533
+ x1: cx,
2534
+ y1: cy,
2535
+ x2: g.x,
2536
+ y2: g.y,
2537
+ stroke: color,
2538
+ strokeWidth: 0.8,
2539
+ opacity: 0.1,
2540
+ strokeDasharray: "4 6"
2583
2541
  },
2584
- `ring-${ri}`
2542
+ `conn-${i}`
2585
2543
  )),
2586
- RING_DATA.map((ring, ri) => /* @__PURE__ */ jsx(
2587
- "g",
2588
- {
2589
- style: animated ? {
2590
- transformOrigin: `${cx}px ${cy}px`,
2591
- animation: `sl-orbit ${40 + ri * 20}s linear infinite${ri % 2 === 1 ? " reverse" : ""}`
2592
- } : void 0,
2593
- children: ring.clusters.map((cluster, ci) => {
2594
- const basex = cx + Math.cos(cluster.angle) * ring.r;
2595
- const basey = cy + Math.sin(cluster.angle) * ring.r;
2596
- const opacity = ri === 0 ? 0.6 : ri === 1 ? 0.45 : 0.3;
2597
- const dotR = ri === 0 ? 3.5 : ri === 1 ? 3 : 2.5;
2598
- return /* @__PURE__ */ jsxs("g", { children: [
2599
- Array.from({ length: cluster.dots }, (_, di) => {
2600
- const offsetAngle = cluster.angle + (di - (cluster.dots - 1) / 2) * 0.12;
2601
- const offsetR = ring.r + (di % 2 === 0 ? 6 : -6);
2602
- const dx = cx + Math.cos(offsetAngle) * offsetR;
2603
- const dy = cy + Math.sin(offsetAngle) * offsetR;
2604
- return /* @__PURE__ */ jsx(
2605
- "circle",
2606
- {
2607
- cx: dx,
2608
- cy: dy,
2609
- r: dotR,
2610
- fill: color,
2611
- opacity
2612
- },
2613
- `dot-${ri}-${ci}-${di}`
2614
- );
2615
- }),
2616
- /* @__PURE__ */ jsx("circle", { cx: basex, cy: basey, r: dotR + 1, fill: color, opacity: opacity * 0.7 })
2617
- ] }, `cluster-${ri}-${ci}`);
2544
+ GROUPS.map((g, i) => {
2545
+ const next = GROUPS[(i + 1) % GROUPS.length];
2546
+ return /* @__PURE__ */ jsx(
2547
+ "line",
2548
+ {
2549
+ x1: g.x,
2550
+ y1: g.y,
2551
+ x2: next.x,
2552
+ y2: next.y,
2553
+ stroke: color,
2554
+ strokeWidth: 0.5,
2555
+ opacity: 0.06
2556
+ },
2557
+ `adj-${i}`
2558
+ );
2559
+ }),
2560
+ GROUPS.map((group, gi) => {
2561
+ const dotR = 3;
2562
+ const spread = 14;
2563
+ return /* @__PURE__ */ jsxs("g", { children: [
2564
+ /* @__PURE__ */ jsx("circle", { cx: group.x, cy: group.y, r: 28, fill: `url(#${ids.groupGlow})` }),
2565
+ /* @__PURE__ */ jsx("circle", { cx: group.x, cy: group.y, r: 24, fill: "none", stroke: color, strokeWidth: 0.7, opacity: 0.15 }),
2566
+ Array.from({ length: group.dots }, (_, di) => {
2567
+ const angle = di / group.dots * Math.PI * 2 - Math.PI / 2;
2568
+ const r = di === 0 ? 0 : spread * 0.55;
2569
+ const dx = di === 0 ? group.x : group.x + Math.cos(angle) * r;
2570
+ const dy = di === 0 ? group.y : group.y + Math.sin(angle) * r;
2571
+ return /* @__PURE__ */ jsx(
2572
+ "circle",
2573
+ {
2574
+ cx: dx,
2575
+ cy: dy,
2576
+ r: di === 0 ? dotR + 1 : dotR,
2577
+ fill: color,
2578
+ opacity: di === 0 ? 0.6 : 0.35,
2579
+ style: animated && di === 0 ? { animation: `sl-pulse 3s ease-in-out ${gi * 0.4}s infinite` } : void 0
2580
+ },
2581
+ `dot-${gi}-${di}`
2582
+ );
2618
2583
  })
2619
- },
2620
- `ring-clusters-${ri}`
2621
- )),
2622
- /* @__PURE__ */ jsx("circle", { cx, cy, r: 25, fill: `url(#${ids.nucGlow})` }),
2623
- /* @__PURE__ */ jsx("circle", { cx, cy, r: 8, fill: color, opacity: 0.7, filter: `url(#${ids.glow})` })
2584
+ ] }, `group-${gi}`);
2585
+ }),
2586
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 16, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.25 }),
2587
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 6, fill: color, opacity: 0.6, filter: `url(#${ids.glow})` })
2624
2588
  ]
2625
2589
  }
2626
2590
  );
@@ -3687,7 +3687,7 @@ var HeroSection = ({
3687
3687
  className: cn(
3688
3688
  "w-full min-h-[60vh] flex items-center justify-center",
3689
3689
  "px-6 py-20",
3690
- "relative overflow-hidden",
3690
+ "relative overflow-x-hidden overflow-y-visible",
3691
3691
  className
3692
3692
  ),
3693
3693
  children: [
@@ -3843,11 +3843,11 @@ var gapStyles2 = {
3843
3843
  };
3844
3844
  var colStyles = {
3845
3845
  1: "grid-cols-1",
3846
- 2: "grid-cols-2",
3847
- 3: "grid-cols-3",
3848
- 4: "grid-cols-4",
3849
- 5: "grid-cols-5",
3850
- 6: "grid-cols-6"
3846
+ 2: "grid-cols-1 sm:grid-cols-2",
3847
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
3848
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
3849
+ 5: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
3850
+ 6: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6"
3851
3851
  };
3852
3852
  var SimpleGrid = ({
3853
3853
  minChildWidth = 250,
@@ -4021,13 +4021,10 @@ var SplitSection = ({
4021
4021
  className
4022
4022
  ),
4023
4023
  padding: "lg",
4024
- children: /* @__PURE__ */ jsxRuntime.jsx(HStack, { gap: "lg", align: "start", className: "flex-wrap gap-16", children: isImageLeft ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4025
- mediaContent,
4026
- textContent
4027
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4024
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: cn("flex flex-col lg:flex-row gap-10 lg:gap-16 items-start", isImageLeft && "lg:flex-row-reverse"), children: [
4028
4025
  textContent,
4029
4026
  mediaContent
4030
- ] }) })
4027
+ ] })
4031
4028
  }
4032
4029
  );
4033
4030
  };
@@ -4077,13 +4074,13 @@ var StepFlow = ({
4077
4074
  ] })
4078
4075
  ] }) }, index)) });
4079
4076
  }
4080
- return /* @__PURE__ */ jsxRuntime.jsx(HStack, { gap: "none", align: "start", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(React5__default.default.Fragment, { children: [
4081
- /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", className: "flex-1", children: [
4077
+ return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(React5__default.default.Fragment, { children: [
4078
+ /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
4082
4079
  /* @__PURE__ */ jsxRuntime.jsx(StepCircle, { step, index }),
4083
4080
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
4084
4081
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", color: "muted", className: "text-center", children: step.description })
4085
4082
  ] }),
4086
- showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-shrink-0 pt-5 px-2", children: /* @__PURE__ */ jsxRuntime.jsx(Divider, { orientation: "horizontal", className: "w-12" }) })
4083
+ showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-shrink-0 self-center py-2 md:pt-5 md:py-0 md:px-2", children: /* @__PURE__ */ jsxRuntime.jsx(Divider, { orientation: "horizontal", className: "w-12 md:w-12" }) })
4087
4084
  ] }, index)) });
4088
4085
  };
4089
4086
  StepFlow.displayName = "StepFlow";
@@ -1,5 +1,5 @@
1
1
  import React5, { createContext, useCallback, useContext, useState, useRef, useEffect } from 'react';
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import * as LucideIcons from 'lucide-react';
4
4
  import { Loader2, Check, User } from 'lucide-react';
5
5
 
@@ -3663,7 +3663,7 @@ var HeroSection = ({
3663
3663
  className: cn(
3664
3664
  "w-full min-h-[60vh] flex items-center justify-center",
3665
3665
  "px-6 py-20",
3666
- "relative overflow-hidden",
3666
+ "relative overflow-x-hidden overflow-y-visible",
3667
3667
  className
3668
3668
  ),
3669
3669
  children: [
@@ -3819,11 +3819,11 @@ var gapStyles2 = {
3819
3819
  };
3820
3820
  var colStyles = {
3821
3821
  1: "grid-cols-1",
3822
- 2: "grid-cols-2",
3823
- 3: "grid-cols-3",
3824
- 4: "grid-cols-4",
3825
- 5: "grid-cols-5",
3826
- 6: "grid-cols-6"
3822
+ 2: "grid-cols-1 sm:grid-cols-2",
3823
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
3824
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
3825
+ 5: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
3826
+ 6: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6"
3827
3827
  };
3828
3828
  var SimpleGrid = ({
3829
3829
  minChildWidth = 250,
@@ -3997,13 +3997,10 @@ var SplitSection = ({
3997
3997
  className
3998
3998
  ),
3999
3999
  padding: "lg",
4000
- children: /* @__PURE__ */ jsx(HStack, { gap: "lg", align: "start", className: "flex-wrap gap-16", children: isImageLeft ? /* @__PURE__ */ jsxs(Fragment, { children: [
4001
- mediaContent,
4002
- textContent
4003
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4000
+ children: /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col lg:flex-row gap-10 lg:gap-16 items-start", isImageLeft && "lg:flex-row-reverse"), children: [
4004
4001
  textContent,
4005
4002
  mediaContent
4006
- ] }) })
4003
+ ] })
4007
4004
  }
4008
4005
  );
4009
4006
  };
@@ -4053,13 +4050,13 @@ var StepFlow = ({
4053
4050
  ] })
4054
4051
  ] }) }, index)) });
4055
4052
  }
4056
- return /* @__PURE__ */ jsx(HStack, { gap: "none", align: "start", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React5.Fragment, { children: [
4057
- /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1", children: [
4053
+ return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React5.Fragment, { children: [
4054
+ /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
4058
4055
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
4059
4056
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
4060
4057
  /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "muted", className: "text-center", children: step.description })
4061
4058
  ] }),
4062
- showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 pt-5 px-2", children: /* @__PURE__ */ jsx(Divider, { orientation: "horizontal", className: "w-12" }) })
4059
+ showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 self-center py-2 md:pt-5 md:py-0 md:px-2", children: /* @__PURE__ */ jsx(Divider, { orientation: "horizontal", className: "w-12 md:w-12" }) })
4063
4060
  ] }, index)) });
4064
4061
  };
4065
4062
  StepFlow.displayName = "StepFlow";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "2.15.10",
3
+ "version": "2.15.12",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "main": "./dist/components/index.js",
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Almadar Website Theme
3
+ *
4
+ * Brand-accurate theme for almadar.io based on Almadar Brand Guidelines.
5
+ * Teal primary, Cyan accent, Sand Gold highlights, Plus Jakarta Sans typography.
6
+ * Dark hero sections with light content sections (mixed mode).
7
+ */
8
+
9
+ /* ==========================================================================
10
+ * LIGHT MODE (content sections)
11
+ * ========================================================================== */
12
+ [data-theme="almadar-website-light"] {
13
+ /* Shadows */
14
+ --shadow-main: 0 4px 14px rgba(20, 184, 166, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);
15
+ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.04);
16
+ --shadow-lg: 0 8px 30px rgba(20, 184, 166, 0.12), 0 4px 10px rgba(0, 0, 0, 0.04);
17
+ --shadow-inner: inset 0 1px 2px rgba(0, 0, 0, 0.04);
18
+ --shadow-none: none;
19
+ --shadow-hover: 0 12px 40px rgba(20, 184, 166, 0.15);
20
+ --shadow-active: 0 2px 8px rgba(20, 184, 166, 0.1);
21
+
22
+ /* Border radius */
23
+ --radius-none: 0px;
24
+ --radius-sm: 6px;
25
+ --radius-md: 10px;
26
+ --radius-lg: 14px;
27
+ --radius-xl: 20px;
28
+ --radius-full: 9999px;
29
+
30
+ /* Border width */
31
+ --border-width: 1px;
32
+ --border-width-thin: 1px;
33
+ --border-width-thick: 2px;
34
+
35
+ /* Colors - Teal on parchment */
36
+ --color-primary: #14b8a6;
37
+ --color-primary-hover: #0d9488;
38
+ --color-primary-foreground: #ffffff;
39
+
40
+ --color-secondary: #f1f5f9;
41
+ --color-secondary-hover: #e2e8f0;
42
+ --color-secondary-foreground: #0f172a;
43
+
44
+ --color-accent: #06b6d4;
45
+ --color-accent-foreground: #ffffff;
46
+
47
+ --color-muted: #f1f5f9;
48
+ --color-muted-foreground: #64748b;
49
+
50
+ --color-background: #ffffff;
51
+ --color-foreground: #0f172a;
52
+ --color-card: #ffffff;
53
+ --color-card-foreground: #0f172a;
54
+ --color-surface: #f8fafc;
55
+ --color-border: #e2e8f0;
56
+ --color-input: #e2e8f0;
57
+ --color-ring: #14b8a6;
58
+
59
+ /* Sand Gold for special accents */
60
+ --color-gold: #c9a227;
61
+
62
+ /* Semantic colors */
63
+ --color-error: #dc2626;
64
+ --color-error-foreground: #ffffff;
65
+ --color-success: #22c55e;
66
+ --color-success-foreground: #ffffff;
67
+ --color-warning: #f59e0b;
68
+ --color-warning-foreground: #000000;
69
+ --color-info: #3b82f6;
70
+ --color-info-foreground: #ffffff;
71
+
72
+ /* Typography - Plus Jakarta Sans per brand guidelines */
73
+ --font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
74
+ --font-weight-normal: 400;
75
+ --font-weight-medium: 500;
76
+ --font-weight-bold: 700;
77
+ --letter-spacing: -0.02em;
78
+ --line-height: 1.6;
79
+
80
+ /* Icon styling */
81
+ --icon-stroke-width: 1.75;
82
+ --icon-color: #14b8a6;
83
+
84
+ /* Transitions */
85
+ --transition-fast: 150ms;
86
+ --transition-normal: 250ms;
87
+ --transition-slow: 400ms;
88
+ --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
89
+
90
+ /* Hover/Active */
91
+ --hover-scale: 1.02;
92
+ --hover-translate-y: -2px;
93
+ --hover-translate-x: 0;
94
+ --active-scale: 0.98;
95
+ --active-translate-y: 0;
96
+
97
+ /* Focus ring */
98
+ --focus-ring-width: 2px;
99
+ --focus-ring-offset: 2px;
100
+ --focus-ring-color: #14b8a6;
101
+ }
102
+
103
+ /* ==========================================================================
104
+ * DARK MODE (hero sections, dark backgrounds)
105
+ * ========================================================================== */
106
+ [data-theme="almadar-website-dark"] {
107
+ /* Shadows - Teal glow */
108
+ --shadow-main: 0 4px 14px rgba(20, 184, 166, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);
109
+ --shadow-sm: 0 2px 4px rgba(20, 184, 166, 0.1);
110
+ --shadow-lg: 0 8px 30px rgba(20, 184, 166, 0.25), 0 4px 10px rgba(0, 0, 0, 0.1);
111
+ --shadow-inner: inset 0 1px 2px rgba(0, 0, 0, 0.1);
112
+ --shadow-none: none;
113
+ --shadow-hover: 0 12px 40px rgba(20, 184, 166, 0.35), 0 4px 12px rgba(6, 182, 212, 0.2);
114
+ --shadow-active: 0 2px 8px rgba(20, 184, 166, 0.2);
115
+
116
+ /* Border radius */
117
+ --radius-none: 0px;
118
+ --radius-sm: 6px;
119
+ --radius-md: 10px;
120
+ --radius-lg: 14px;
121
+ --radius-xl: 20px;
122
+ --radius-full: 9999px;
123
+
124
+ /* Border width */
125
+ --border-width: 1px;
126
+ --border-width-thin: 1px;
127
+ --border-width-thick: 2px;
128
+
129
+ /* Colors - Teal/Cyan on Midnight Blue */
130
+ --color-primary: #14b8a6;
131
+ --color-primary-hover: #2dd4bf;
132
+ --color-primary-foreground: #042f2e;
133
+
134
+ --color-secondary: #1e293b;
135
+ --color-secondary-hover: #334155;
136
+ --color-secondary-foreground: #f1f5f9;
137
+
138
+ --color-accent: #06b6d4;
139
+ --color-accent-foreground: #083344;
140
+
141
+ --color-muted: #1e293b;
142
+ --color-muted-foreground: #94a3b8;
143
+
144
+ --color-background: #0f172a;
145
+ --color-foreground: #f1f5f9;
146
+ --color-card: #1e293b;
147
+ --color-card-foreground: #f1f5f9;
148
+ --color-surface: #1e293b;
149
+ --color-border: #334155;
150
+ --color-input: rgba(20, 184, 166, 0.3);
151
+ --color-ring: #14b8a6;
152
+
153
+ /* Sand Gold for special accents */
154
+ --color-gold: #c9a227;
155
+
156
+ /* Semantic colors */
157
+ --color-error: #f87171;
158
+ --color-error-foreground: #000000;
159
+ --color-success: #4ade80;
160
+ --color-success-foreground: #000000;
161
+ --color-warning: #fbbf24;
162
+ --color-warning-foreground: #000000;
163
+ --color-info: #38bdf8;
164
+ --color-info-foreground: #000000;
165
+
166
+ /* Typography */
167
+ --font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
168
+ --font-weight-normal: 400;
169
+ --font-weight-medium: 500;
170
+ --font-weight-bold: 700;
171
+ --letter-spacing: -0.02em;
172
+ --line-height: 1.6;
173
+
174
+ /* Icon styling */
175
+ --icon-stroke-width: 1.75;
176
+ --icon-color: #14b8a6;
177
+
178
+ /* Transitions */
179
+ --transition-fast: 150ms;
180
+ --transition-normal: 250ms;
181
+ --transition-slow: 400ms;
182
+ --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
183
+
184
+ /* Hover/Active */
185
+ --hover-scale: 1.02;
186
+ --hover-translate-y: -2px;
187
+ --hover-translate-x: 0;
188
+ --active-scale: 0.98;
189
+ --active-translate-y: 0;
190
+
191
+ /* Focus ring */
192
+ --focus-ring-width: 2px;
193
+ --focus-ring-offset: 2px;
194
+ --focus-ring-color: #14b8a6;
195
+ }
package/themes/index.css CHANGED
@@ -12,6 +12,7 @@
12
12
  @import "./wireframe.css";
13
13
  @import "./minimalist.css";
14
14
  @import "./almadar.css";
15
+ @import "./almadar-website.css";
15
16
  @import "./trait-wars.css";
16
17
 
17
18
  /* Extended themes */