@almadar/ui 5.26.0 → 5.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2269,18 +2269,22 @@ var init_SvgBranch = __esm({
2269
2269
  "components/core/atoms/svg/SvgBranch.tsx"() {
2270
2270
  "use client";
2271
2271
  SvgBranch = ({
2272
- x,
2273
- y,
2272
+ x = 5,
2273
+ y = 50,
2274
2274
  variant = "fork",
2275
2275
  branches = 2,
2276
2276
  size = 1,
2277
2277
  color = "var(--color-primary)",
2278
2278
  opacity = 1,
2279
- className
2279
+ className,
2280
+ asRoot = true,
2281
+ width = 100,
2282
+ height = 100
2280
2283
  }) => {
2284
+ let inner;
2281
2285
  if (variant === "diamond") {
2282
2286
  const points = buildDiamondPoints(x, y, size);
2283
- return /* @__PURE__ */ jsx("g", { className, opacity, children: /* @__PURE__ */ jsx(
2287
+ inner = /* @__PURE__ */ jsx("g", { className, opacity, children: /* @__PURE__ */ jsx(
2284
2288
  "polygon",
2285
2289
  {
2286
2290
  points,
@@ -2290,23 +2294,28 @@ var init_SvgBranch = __esm({
2290
2294
  strokeLinejoin: "round"
2291
2295
  }
2292
2296
  ) });
2297
+ } else {
2298
+ const paths = variant === "fork" ? buildForkPaths(x, y, branches, size) : buildMergePaths(x, y, branches, size);
2299
+ inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2300
+ paths.map((d, i) => /* @__PURE__ */ jsx(
2301
+ "path",
2302
+ {
2303
+ d,
2304
+ fill: "none",
2305
+ stroke: color,
2306
+ strokeWidth: 2,
2307
+ strokeLinecap: "round"
2308
+ },
2309
+ i
2310
+ )),
2311
+ variant === "fork" && /* @__PURE__ */ jsx("circle", { cx: x + 30 * size, cy: y, r: 3, fill: color }),
2312
+ variant === "merge" && /* @__PURE__ */ jsx("circle", { cx: x + 30 * size, cy: y, r: 3, fill: color })
2313
+ ] });
2293
2314
  }
2294
- const paths = variant === "fork" ? buildForkPaths(x, y, branches, size) : buildMergePaths(x, y, branches, size);
2295
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2296
- paths.map((d, i) => /* @__PURE__ */ jsx(
2297
- "path",
2298
- {
2299
- d,
2300
- fill: "none",
2301
- stroke: color,
2302
- strokeWidth: 2,
2303
- strokeLinecap: "round"
2304
- },
2305
- i
2306
- )),
2307
- variant === "fork" && /* @__PURE__ */ jsx("circle", { cx: x + 30 * size, cy: y, r: 3, fill: color }),
2308
- variant === "merge" && /* @__PURE__ */ jsx("circle", { cx: x + 30 * size, cy: y, r: 3, fill: color })
2309
- ] });
2315
+ if (asRoot) {
2316
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2317
+ }
2318
+ return /* @__PURE__ */ jsx(Fragment, { children: inner });
2310
2319
  };
2311
2320
  SvgBranch.displayName = "SvgBranch";
2312
2321
  }
@@ -2316,20 +2325,23 @@ var init_SvgConnection = __esm({
2316
2325
  "components/core/atoms/svg/SvgConnection.tsx"() {
2317
2326
  "use client";
2318
2327
  SvgConnection = ({
2319
- x1,
2320
- y1,
2321
- x2,
2322
- y2,
2328
+ x1 = 10,
2329
+ y1 = 50,
2330
+ x2 = 90,
2331
+ y2 = 50,
2323
2332
  variant = "solid",
2324
2333
  color = "var(--color-primary)",
2325
2334
  strokeWidth = 1.5,
2326
2335
  opacity = 1,
2327
- className
2336
+ className,
2337
+ asRoot = true,
2338
+ width = 100,
2339
+ height = 100
2328
2340
  }) => {
2329
2341
  const dashProps = variant === "solid" ? {} : {
2330
2342
  strokeDasharray: "8 6"
2331
2343
  };
2332
- return /* @__PURE__ */ jsx(
2344
+ const inner = /* @__PURE__ */ jsx(
2333
2345
  "line",
2334
2346
  {
2335
2347
  className: [
@@ -2347,22 +2359,30 @@ var init_SvgConnection = __esm({
2347
2359
  ...dashProps
2348
2360
  }
2349
2361
  );
2362
+ if (asRoot) {
2363
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2364
+ }
2365
+ return inner;
2350
2366
  };
2351
2367
  SvgConnection.displayName = "SvgConnection";
2352
2368
  }
2353
2369
  });
2354
- var flowIdCounter, SvgFlow;
2370
+ var flowIdCounter, DEFAULT_POINTS, SvgFlow;
2355
2371
  var init_SvgFlow = __esm({
2356
2372
  "components/core/atoms/svg/SvgFlow.tsx"() {
2357
2373
  "use client";
2358
2374
  flowIdCounter = 0;
2375
+ DEFAULT_POINTS = [[10, 50], [50, 20], [90, 50]];
2359
2376
  SvgFlow = ({
2360
- points,
2377
+ points = DEFAULT_POINTS,
2361
2378
  color = "var(--color-primary)",
2362
2379
  strokeWidth = 1.5,
2363
2380
  animated = false,
2364
2381
  opacity = 1,
2365
- className
2382
+ className,
2383
+ asRoot = true,
2384
+ width = 100,
2385
+ height = 100
2366
2386
  }) => {
2367
2387
  const markerId = React84__default.useMemo(() => {
2368
2388
  flowIdCounter += 1;
@@ -2372,7 +2392,7 @@ var init_SvgFlow = __esm({
2372
2392
  return null;
2373
2393
  }
2374
2394
  const pathData = points.map((pt, i) => `${i === 0 ? "M" : "L"}${pt[0]},${pt[1]}`).join(" ");
2375
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2395
+ const inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2376
2396
  /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
2377
2397
  "marker",
2378
2398
  {
@@ -2401,6 +2421,10 @@ var init_SvgFlow = __esm({
2401
2421
  }
2402
2422
  )
2403
2423
  ] });
2424
+ if (asRoot) {
2425
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2426
+ }
2427
+ return inner;
2404
2428
  };
2405
2429
  SvgFlow.displayName = "SvgFlow";
2406
2430
  }
@@ -2410,8 +2434,8 @@ var init_SvgGrid = __esm({
2410
2434
  "components/core/atoms/svg/SvgGrid.tsx"() {
2411
2435
  "use client";
2412
2436
  SvgGrid = ({
2413
- x,
2414
- y,
2437
+ x = 10,
2438
+ y = 10,
2415
2439
  cols = 4,
2416
2440
  rows: rows2 = 3,
2417
2441
  spacing = 20,
@@ -2419,10 +2443,13 @@ var init_SvgGrid = __esm({
2419
2443
  color = "var(--color-primary)",
2420
2444
  opacity = 1,
2421
2445
  className,
2422
- highlights = []
2446
+ highlights = [],
2447
+ asRoot = true,
2448
+ width = 100,
2449
+ height = 100
2423
2450
  }) => {
2424
2451
  const highlightSet = new Set(highlights);
2425
- return /* @__PURE__ */ jsx("g", { className, opacity, children: Array.from({ length: rows2 }).map(
2452
+ const inner = /* @__PURE__ */ jsx("g", { className, opacity, children: Array.from({ length: rows2 }).map(
2426
2453
  (_, row) => Array.from({ length: cols }).map((_2, col) => {
2427
2454
  const index = row * cols + col;
2428
2455
  const isHighlighted = highlightSet.has(index);
@@ -2441,6 +2468,10 @@ var init_SvgGrid = __esm({
2441
2468
  );
2442
2469
  })
2443
2470
  ) });
2471
+ if (asRoot) {
2472
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2473
+ }
2474
+ return inner;
2444
2475
  };
2445
2476
  SvgGrid.displayName = "SvgGrid";
2446
2477
  }
@@ -2450,15 +2481,18 @@ var init_SvgLobe = __esm({
2450
2481
  "components/core/atoms/svg/SvgLobe.tsx"() {
2451
2482
  "use client";
2452
2483
  SvgLobe = ({
2453
- cx,
2454
- cy,
2484
+ cx = 50,
2485
+ cy = 50,
2455
2486
  rx = 14,
2456
2487
  ry = 20,
2457
2488
  rotation = 0,
2458
2489
  shells = 2,
2459
2490
  color = "var(--color-primary)",
2460
2491
  opacity = 1,
2461
- className
2492
+ className,
2493
+ asRoot = true,
2494
+ width = 100,
2495
+ height = 100
2462
2496
  }) => {
2463
2497
  const clampedShells = Math.max(1, Math.min(3, shells));
2464
2498
  const renderShell = (shellIndex) => {
@@ -2493,7 +2527,7 @@ var init_SvgLobe = __esm({
2493
2527
  )
2494
2528
  ] }, shellIndex);
2495
2529
  };
2496
- return /* @__PURE__ */ jsx(
2530
+ const inner = /* @__PURE__ */ jsx(
2497
2531
  "g",
2498
2532
  {
2499
2533
  className,
@@ -2502,6 +2536,10 @@ var init_SvgLobe = __esm({
2502
2536
  children: Array.from({ length: clampedShells }, (_, i) => renderShell(i))
2503
2537
  }
2504
2538
  );
2539
+ if (asRoot) {
2540
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2541
+ }
2542
+ return inner;
2505
2543
  };
2506
2544
  SvgLobe.displayName = "SvgLobe";
2507
2545
  }
@@ -2530,18 +2568,21 @@ var init_SvgMesh = __esm({
2530
2568
  "components/core/atoms/svg/SvgMesh.tsx"() {
2531
2569
  "use client";
2532
2570
  SvgMesh = ({
2533
- cx,
2534
- cy,
2571
+ cx = 60,
2572
+ cy = 60,
2535
2573
  nodes = 6,
2536
2574
  radius = 50,
2537
2575
  color = "var(--color-primary)",
2538
2576
  connectionDensity = 0.5,
2539
2577
  opacity = 1,
2540
- className
2578
+ className,
2579
+ asRoot = true,
2580
+ width = 120,
2581
+ height = 120
2541
2582
  }) => {
2542
2583
  const positions = getNodePositions(cx, cy, nodes, radius);
2543
2584
  const connections = getConnections(nodes, connectionDensity);
2544
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2585
+ const inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2545
2586
  connections.map(([a, b]) => /* @__PURE__ */ jsx(
2546
2587
  "line",
2547
2588
  {
@@ -2566,6 +2607,10 @@ var init_SvgMesh = __esm({
2566
2607
  i
2567
2608
  ))
2568
2609
  ] });
2610
+ if (asRoot) {
2611
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2612
+ }
2613
+ return inner;
2569
2614
  };
2570
2615
  SvgMesh.displayName = "SvgMesh";
2571
2616
  }
@@ -2707,74 +2752,82 @@ var init_SvgMorph = __esm({
2707
2752
  };
2708
2753
  FlowArrow.displayName = "FlowArrow";
2709
2754
  SvgMorph = ({
2710
- x,
2711
- y,
2755
+ x = 5,
2756
+ y = 10,
2712
2757
  size = 1,
2713
2758
  variant = "generic",
2714
2759
  color = "var(--color-primary)",
2715
2760
  opacity = 1,
2716
- className
2761
+ className,
2762
+ asRoot = true,
2763
+ width = 130,
2764
+ height = 50
2717
2765
  }) => {
2718
2766
  const gap = 40 * size;
2719
2767
  const midY = y + 10 * size;
2768
+ let inner;
2720
2769
  if (variant === "text-to-code") {
2721
2770
  const leftEnd = x + 30 * size;
2722
2771
  const rightStart = leftEnd + gap;
2723
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2772
+ inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2724
2773
  /* @__PURE__ */ jsx(TextLines, { x, y, scale: size, color }),
2725
2774
  /* @__PURE__ */ jsx(FlowArrow, { x1: leftEnd, y: midY, x2: rightStart, scale: size, color }),
2726
2775
  /* @__PURE__ */ jsx(CodeBrackets, { x: rightStart, y, scale: size, color })
2727
2776
  ] });
2728
- }
2729
- if (variant === "code-to-app") {
2777
+ } else if (variant === "code-to-app") {
2730
2778
  const leftEnd = x + 26 * size;
2731
2779
  const rightStart = leftEnd + gap;
2732
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2780
+ inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2733
2781
  /* @__PURE__ */ jsx(CodeBrackets, { x, y, scale: size, color }),
2734
2782
  /* @__PURE__ */ jsx(FlowArrow, { x1: leftEnd, y: midY, x2: rightStart, scale: size, color }),
2735
2783
  /* @__PURE__ */ jsx(AppRect, { x: rightStart, y, scale: size, color })
2736
2784
  ] });
2785
+ } else {
2786
+ const circleR = 10 * size;
2787
+ const circleX = x + circleR;
2788
+ const squareStart = x + circleR * 2 + gap;
2789
+ const squareSize = circleR * 2;
2790
+ inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2791
+ /* @__PURE__ */ jsx(
2792
+ "circle",
2793
+ {
2794
+ cx: circleX,
2795
+ cy: midY,
2796
+ r: circleR,
2797
+ fill: "none",
2798
+ stroke: color,
2799
+ strokeWidth: 2 * size
2800
+ }
2801
+ ),
2802
+ /* @__PURE__ */ jsx(
2803
+ FlowArrow,
2804
+ {
2805
+ x1: circleX + circleR + 2 * size,
2806
+ y: midY,
2807
+ x2: squareStart,
2808
+ scale: size,
2809
+ color
2810
+ }
2811
+ ),
2812
+ /* @__PURE__ */ jsx(
2813
+ "rect",
2814
+ {
2815
+ x: squareStart,
2816
+ y: midY - circleR,
2817
+ width: squareSize,
2818
+ height: squareSize,
2819
+ rx: 3 * size,
2820
+ fill: "none",
2821
+ stroke: color,
2822
+ strokeWidth: 2 * size
2823
+ }
2824
+ )
2825
+ ] });
2737
2826
  }
2738
- const circleR = 10 * size;
2739
- const circleX = x + circleR;
2740
- const squareStart = x + circleR * 2 + gap;
2741
- const squareSize = circleR * 2;
2742
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2743
- /* @__PURE__ */ jsx(
2744
- "circle",
2745
- {
2746
- cx: circleX,
2747
- cy: midY,
2748
- r: circleR,
2749
- fill: "none",
2750
- stroke: color,
2751
- strokeWidth: 2 * size
2752
- }
2753
- ),
2754
- /* @__PURE__ */ jsx(
2755
- FlowArrow,
2756
- {
2757
- x1: circleX + circleR + 2 * size,
2758
- y: midY,
2759
- x2: squareStart,
2760
- scale: size,
2761
- color
2762
- }
2763
- ),
2764
- /* @__PURE__ */ jsx(
2765
- "rect",
2766
- {
2767
- x: squareStart,
2768
- y: midY - circleR,
2769
- width: squareSize,
2770
- height: squareSize,
2771
- rx: 3 * size,
2772
- fill: "none",
2773
- stroke: color,
2774
- strokeWidth: 2 * size
2775
- }
2776
- )
2777
- ] });
2827
+ if (asRoot) {
2828
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2829
+ }
2830
+ return /* @__PURE__ */ jsx(Fragment, { children: inner });
2778
2831
  };
2779
2832
  SvgMorph.displayName = "SvgMorph";
2780
2833
  }
@@ -2784,16 +2837,19 @@ var init_SvgNode = __esm({
2784
2837
  "components/core/atoms/svg/SvgNode.tsx"() {
2785
2838
  "use client";
2786
2839
  SvgNode = ({
2787
- x,
2788
- y,
2840
+ x = 50,
2841
+ y = 50,
2789
2842
  r = 6,
2790
2843
  variant = "filled",
2791
2844
  color = "var(--color-primary)",
2792
2845
  opacity = 1,
2793
2846
  className,
2794
- label
2847
+ label,
2848
+ asRoot = true,
2849
+ width = 100,
2850
+ height = 100
2795
2851
  }) => {
2796
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2852
+ const inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2797
2853
  variant === "pulse" && /* @__PURE__ */ jsx(
2798
2854
  "circle",
2799
2855
  {
@@ -2831,6 +2887,10 @@ var init_SvgNode = __esm({
2831
2887
  }
2832
2888
  )
2833
2889
  ] });
2890
+ if (asRoot) {
2891
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2892
+ }
2893
+ return inner;
2834
2894
  };
2835
2895
  SvgNode.displayName = "SvgNode";
2836
2896
  }
@@ -2852,16 +2912,19 @@ var init_SvgPulse = __esm({
2852
2912
  }
2853
2913
  `;
2854
2914
  SvgPulse = ({
2855
- cx,
2856
- cy,
2915
+ cx = 70,
2916
+ cy = 70,
2857
2917
  rings = 3,
2858
2918
  maxRadius = 60,
2859
2919
  color = "var(--color-primary)",
2860
2920
  animated = true,
2861
2921
  opacity = 1,
2862
- className
2922
+ className,
2923
+ asRoot = true,
2924
+ width = 140,
2925
+ height = 140
2863
2926
  }) => {
2864
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2927
+ const inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2865
2928
  animated && /* @__PURE__ */ jsx("style", { children: PULSE_KEYFRAMES }),
2866
2929
  Array.from({ length: rings }).map((_, i) => {
2867
2930
  const ringRadius = (i + 1) / rings * maxRadius;
@@ -2887,6 +2950,10 @@ var init_SvgPulse = __esm({
2887
2950
  }),
2888
2951
  /* @__PURE__ */ jsx("circle", { cx, cy, r: 3, fill: color })
2889
2952
  ] });
2953
+ if (asRoot) {
2954
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
2955
+ }
2956
+ return inner;
2890
2957
  };
2891
2958
  SvgPulse.displayName = "SvgPulse";
2892
2959
  }
@@ -2897,21 +2964,24 @@ var init_SvgRing = __esm({
2897
2964
  "use client";
2898
2965
  ringIdCounter = 0;
2899
2966
  SvgRing = ({
2900
- cx,
2901
- cy,
2967
+ cx = 50,
2968
+ cy = 50,
2902
2969
  r = 40,
2903
2970
  variant = "solid",
2904
2971
  color = "var(--color-primary)",
2905
2972
  strokeWidth = 1.5,
2906
2973
  opacity = 1,
2907
2974
  className,
2908
- label
2975
+ label,
2976
+ asRoot = true,
2977
+ width = 100,
2978
+ height = 100
2909
2979
  }) => {
2910
2980
  const gradientId = React84__default.useMemo(() => {
2911
2981
  ringIdCounter += 1;
2912
2982
  return `almadar-ring-glow-${ringIdCounter}`;
2913
2983
  }, []);
2914
- return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2984
+ const inner = /* @__PURE__ */ jsxs("g", { className, opacity, children: [
2915
2985
  variant === "glow" && /* @__PURE__ */ jsxs(Fragment, { children: [
2916
2986
  /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("radialGradient", { id: gradientId, cx: "50%", cy: "50%", r: "50%", children: [
2917
2987
  /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
@@ -2944,6 +3014,10 @@ var init_SvgRing = __esm({
2944
3014
  }
2945
3015
  )
2946
3016
  ] });
3017
+ if (asRoot) {
3018
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
3019
+ }
3020
+ return inner;
2947
3021
  };
2948
3022
  SvgRing.displayName = "SvgRing";
2949
3023
  }
@@ -2955,15 +3029,18 @@ var init_SvgShield = __esm({
2955
3029
  SHIELD_PATH = "M15,2 C15,2 5,5 2,6 C2,6 2,18 5,24 C8,30 15,34 15,34 C15,34 22,30 25,24 C28,18 28,6 28,6 C25,5 15,2 15,2 Z";
2956
3030
  CHECK_PATH = "M10,18 L14,22 L21,13";
2957
3031
  SvgShield = ({
2958
- x,
2959
- y,
3032
+ x = 50,
3033
+ y = 50,
2960
3034
  size = 1,
2961
3035
  variant = "outline",
2962
3036
  color = "var(--color-primary)",
2963
3037
  opacity = 1,
2964
- className
3038
+ className,
3039
+ asRoot = true,
3040
+ width = 100,
3041
+ height = 100
2965
3042
  }) => {
2966
- return /* @__PURE__ */ jsxs(
3043
+ const inner = /* @__PURE__ */ jsxs(
2967
3044
  "g",
2968
3045
  {
2969
3046
  className,
@@ -2994,6 +3071,10 @@ var init_SvgShield = __esm({
2994
3071
  ]
2995
3072
  }
2996
3073
  );
3074
+ if (asRoot) {
3075
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${width} ${height}`, width, height, children: inner });
3076
+ }
3077
+ return inner;
2997
3078
  };
2998
3079
  SvgShield.displayName = "SvgShield";
2999
3080
  }
@@ -3003,20 +3084,23 @@ var init_SvgStack = __esm({
3003
3084
  "components/core/atoms/svg/SvgStack.tsx"() {
3004
3085
  "use client";
3005
3086
  SvgStack = ({
3006
- x,
3007
- y,
3087
+ x = 10,
3088
+ y = 40,
3008
3089
  layers: rawLayers = 3,
3009
3090
  width = 60,
3010
3091
  height = 40,
3011
3092
  color = "var(--color-primary)",
3012
3093
  opacity = 1,
3013
3094
  className,
3014
- labels
3095
+ labels,
3096
+ asRoot = true,
3097
+ svgWidth = 90,
3098
+ svgHeight = 80
3015
3099
  }) => {
3016
3100
  const layers = Math.max(2, Math.min(4, rawLayers));
3017
3101
  const verticalOffset = 8;
3018
3102
  const horizontalOffset = 4;
3019
- return /* @__PURE__ */ jsx("g", { className, opacity, children: Array.from({ length: layers }).map((_, i) => {
3103
+ const inner = /* @__PURE__ */ jsx("g", { className, opacity, children: Array.from({ length: layers }).map((_, i) => {
3020
3104
  const layerIndex = layers - 1 - i;
3021
3105
  const layerX = x + layerIndex * horizontalOffset;
3022
3106
  const layerY = y - layerIndex * verticalOffset;
@@ -3054,6 +3138,10 @@ var init_SvgStack = __esm({
3054
3138
  )
3055
3139
  ] }, layerIndex);
3056
3140
  }) });
3141
+ if (asRoot) {
3142
+ return /* @__PURE__ */ jsx("svg", { viewBox: `0 0 ${svgWidth} ${svgHeight}`, width: svgWidth, height: svgHeight, children: inner });
3143
+ }
3144
+ return inner;
3057
3145
  };
3058
3146
  SvgStack.displayName = "SvgStack";
3059
3147
  }
@@ -3890,10 +3978,11 @@ var init_ProgressBar = __esm({
3890
3978
  const effectiveColor = color ?? variant;
3891
3979
  const effectiveShowPercentage = showPercentage || showLabel;
3892
3980
  if (progressType === "linear") {
3981
+ const showHeader = label || effectiveShowPercentage;
3893
3982
  return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
3894
- label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1.5", children: [
3895
- /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-foreground", children: label }),
3896
- effectiveShowPercentage && /* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground font-medium", children: [
3983
+ showHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1.5", children: [
3984
+ label && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-foreground", children: label }),
3985
+ effectiveShowPercentage && /* @__PURE__ */ jsxs("span", { className: cn("text-sm text-foreground font-medium", !label && "ml-auto"), children: [
3897
3986
  Math.round(percentage),
3898
3987
  "%"
3899
3988
  ] })
@@ -3978,10 +4067,11 @@ var init_ProgressBar = __esm({
3978
4067
  const stepValue = max / steps;
3979
4068
  const activeSteps = Math.floor(value / stepValue);
3980
4069
  const partialStep = value % stepValue / stepValue;
4070
+ const showStepHeader = label || effectiveShowPercentage;
3981
4071
  return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
3982
- label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
3983
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: label }),
3984
- effectiveShowPercentage && /* @__PURE__ */ jsxs("span", { className: "text-sm text-muted-foreground", children: [
4072
+ showStepHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
4073
+ label && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: label }),
4074
+ effectiveShowPercentage && /* @__PURE__ */ jsxs("span", { className: cn("text-sm text-muted-foreground", !label && "ml-auto"), children: [
3985
4075
  Math.round(percentage),
3986
4076
  "%"
3987
4077
  ] })
@@ -10502,7 +10592,7 @@ var init_AuthLayout = __esm({
10502
10592
  init_Stack();
10503
10593
  init_Typography();
10504
10594
  AuthLayout = ({
10505
- appName = "{{APP_TITLE}}",
10595
+ appName = "My App",
10506
10596
  logo,
10507
10597
  backgroundImage,
10508
10598
  showBranding = true,
@@ -14226,7 +14316,7 @@ var init_MarkdownContent = __esm({
14226
14316
  init_CodeBlock();
14227
14317
  init_cn();
14228
14318
  MarkdownContent = React84__default.memo(
14229
- ({ content, direction, className }) => {
14319
+ ({ content, direction = "ltr", className }) => {
14230
14320
  const { t: _t } = useTranslate();
14231
14321
  const safeContent = typeof content === "string" ? content : String(content ?? "");
14232
14322
  return /* @__PURE__ */ jsx(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "5.26.0",
3
+ "version": "5.26.2",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [