@grandbazar/ui-baza 1.6.0 → 1.7.1

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.cjs CHANGED
@@ -51,21 +51,21 @@ function omit(object, ...keys) {
51
51
  return Object.fromEntries(filteredEntries);
52
52
  }
53
53
 
54
- const badge = "_badge_x6ia4_2";
55
- const primary$4 = "_primary_x6ia4_9";
56
- const secondary$5 = "_secondary_x6ia4_13";
57
- const glass$1 = "_glass_x6ia4_18";
58
- const accent$5 = "_accent_x6ia4_23";
59
- const violet = "_violet_x6ia4_28";
60
- const pink = "_pink_x6ia4_33";
61
- const red$1 = "_red_x6ia4_38";
62
- const orange = "_orange_x6ia4_43";
63
- const green$1 = "_green_x6ia4_48";
64
- const neutral$3 = "_neutral_x6ia4_54";
65
- const lg$7 = "_lg_x6ia4_59";
66
- const md$a = "_md_x6ia4_66";
67
- const sm$5 = "_sm_x6ia4_73";
68
- const pill$2 = "_pill_x6ia4_80";
54
+ const badge = "_badge_7i4v4_2";
55
+ const primary$4 = "_primary_7i4v4_9";
56
+ const secondary$5 = "_secondary_7i4v4_13";
57
+ const glass$1 = "_glass_7i4v4_18";
58
+ const accent$5 = "_accent_7i4v4_23";
59
+ const violet = "_violet_7i4v4_28";
60
+ const pink = "_pink_7i4v4_33";
61
+ const red$1 = "_red_7i4v4_38";
62
+ const orange = "_orange_7i4v4_43";
63
+ const green = "_green_7i4v4_48";
64
+ const neutral$3 = "_neutral_7i4v4_53";
65
+ const lg$8 = "_lg_7i4v4_58";
66
+ const md$a = "_md_7i4v4_65";
67
+ const sm$5 = "_sm_7i4v4_72";
68
+ const pill$2 = "_pill_7i4v4_79";
69
69
  const styles$E = {
70
70
  badge: badge,
71
71
  primary: primary$4,
@@ -76,9 +76,9 @@ const styles$E = {
76
76
  pink: pink,
77
77
  red: red$1,
78
78
  orange: orange,
79
- green: green$1,
79
+ green: green,
80
80
  neutral: neutral$3,
81
- lg: lg$7,
81
+ lg: lg$8,
82
82
  md: md$a,
83
83
  sm: sm$5,
84
84
  pill: pill$2
@@ -1318,8 +1318,8 @@ const secondary$3 = "_secondary_11nu9_31";
1318
1318
  const tertiary = "_tertiary_11nu9_49";
1319
1319
  const line = "_line_11nu9_50";
1320
1320
  const neutral$2 = "_neutral_11nu9_79";
1321
- const white$1 = "_white_11nu9_146";
1322
- const lg$6 = "_lg_11nu9_213";
1321
+ const white$3 = "_white_11nu9_146";
1322
+ const lg$7 = "_lg_11nu9_213";
1323
1323
  const md$9 = "_md_11nu9_222";
1324
1324
  const sm$4 = "_sm_11nu9_240";
1325
1325
  const pill$1 = "_pill_11nu9_249";
@@ -1334,8 +1334,8 @@ const styles$z = {
1334
1334
  tertiary: tertiary,
1335
1335
  line: line,
1336
1336
  neutral: neutral$2,
1337
- white: white$1,
1338
- lg: lg$6,
1337
+ white: white$3,
1338
+ lg: lg$7,
1339
1339
  md: md$9,
1340
1340
  "md-sm": "_md-sm_11nu9_231",
1341
1341
  sm: sm$4,
@@ -1348,13 +1348,13 @@ const styles$z = {
1348
1348
  const buttonFunction = "_buttonFunction_o8iku_2";
1349
1349
  const accent$3 = "_accent_o8iku_10";
1350
1350
  const neutral$1 = "_neutral_o8iku_22";
1351
- const lg$5 = "_lg_o8iku_41";
1351
+ const lg$6 = "_lg_o8iku_41";
1352
1352
  const md$8 = "_md_o8iku_46";
1353
1353
  const styles$y = {
1354
1354
  buttonFunction: buttonFunction,
1355
1355
  accent: accent$3,
1356
1356
  neutral: neutral$1,
1357
- lg: lg$5,
1357
+ lg: lg$6,
1358
1358
  md: md$8
1359
1359
  };
1360
1360
 
@@ -1438,13 +1438,15 @@ function Checkbox({ className, label, indeterminate, ...props }) {
1438
1438
  );
1439
1439
  }
1440
1440
 
1441
- const chip = "_chip_nge5j_2";
1442
- const glass = "_glass_nge5j_36";
1443
- const pill = "_pill_nge5j_59";
1444
- const icon$2 = "_icon_nge5j_63";
1441
+ const chip = "_chip_1i1br_2";
1442
+ const glass = "_glass_1i1br_36";
1443
+ const white$2 = "_white_1i1br_59";
1444
+ const pill = "_pill_1i1br_67";
1445
+ const icon$2 = "_icon_1i1br_71";
1445
1446
  const styles$w = {
1446
1447
  chip: chip,
1447
1448
  glass: glass,
1449
+ white: white$2,
1448
1450
  pill: pill,
1449
1451
  icon: icon$2
1450
1452
  };
@@ -1485,22 +1487,22 @@ function Chip({
1485
1487
  }
1486
1488
 
1487
1489
  const root$1 = "_root_ww0fb_2";
1488
- const lg$4 = "_lg_ww0fb_16";
1490
+ const lg$5 = "_lg_ww0fb_16";
1489
1491
  const md$7 = "_md_ww0fb_24";
1490
1492
  const red = "_red_ww0fb_32";
1491
1493
  const accent$2 = "_accent_ww0fb_37";
1492
1494
  const neutral = "_neutral_ww0fb_42";
1493
1495
  const secondary$2 = "_secondary_ww0fb_47";
1494
- const white = "_white_ww0fb_52";
1496
+ const white$1 = "_white_ww0fb_52";
1495
1497
  const styles$v = {
1496
1498
  root: root$1,
1497
- lg: lg$4,
1499
+ lg: lg$5,
1498
1500
  md: md$7,
1499
1501
  red: red,
1500
1502
  accent: accent$2,
1501
1503
  neutral: neutral,
1502
1504
  secondary: secondary$2,
1503
- white: white
1505
+ white: white$1
1504
1506
  };
1505
1507
 
1506
1508
  function Counter({ className, size = "lg", color = "red", ...props }) {
@@ -2614,16 +2616,22 @@ function Pagination(props) {
2614
2616
  }
2615
2617
  Pagination.Item = PaginationItem;
2616
2618
 
2617
- const root = "_root_1lyc4_2";
2618
- const segment = "_segment_1lyc4_10";
2619
- const flexGrow = "_flexGrow_1lyc4_19";
2620
- const fill$1 = "_fill_1lyc4_23";
2621
- const trail = "_trail_1lyc4_28";
2622
- const xs = "_xs_1lyc4_32";
2623
- const sm$2 = "_sm_1lyc4_36";
2624
- const md$5 = "_md_1lyc4_40";
2625
- const accent = "_accent_1lyc4_44";
2626
- const green = "_green_1lyc4_48";
2619
+ const root = "_root_1dvnf_2";
2620
+ const segment = "_segment_1dvnf_10";
2621
+ const flexGrow = "_flexGrow_1dvnf_19";
2622
+ const fill$1 = "_fill_1dvnf_23";
2623
+ const trail = "_trail_1dvnf_28";
2624
+ const xs = "_xs_1dvnf_32";
2625
+ const sm$2 = "_sm_1dvnf_36";
2626
+ const md$5 = "_md_1dvnf_40";
2627
+ const accent = "_accent_1dvnf_44";
2628
+ const white = "_white_1dvnf_48";
2629
+ const ring = "_ring_1dvnf_55";
2630
+ const ringSvg = "_ringSvg_1dvnf_68";
2631
+ const ringTrack = "_ringTrack_1dvnf_76";
2632
+ const ringFill = "_ringFill_1dvnf_81";
2633
+ const ringLabel = "_ringLabel_1dvnf_88";
2634
+ const lg$4 = "_lg_1dvnf_102";
2627
2635
  const styles$l = {
2628
2636
  root: root,
2629
2637
  segment: segment,
@@ -2634,7 +2642,13 @@ const styles$l = {
2634
2642
  sm: sm$2,
2635
2643
  md: md$5,
2636
2644
  accent: accent,
2637
- green: green
2645
+ white: white,
2646
+ ring: ring,
2647
+ ringSvg: ringSvg,
2648
+ ringTrack: ringTrack,
2649
+ ringFill: ringFill,
2650
+ ringLabel: ringLabel,
2651
+ lg: lg$4
2638
2652
  };
2639
2653
 
2640
2654
  function ProgressBarLinear({
@@ -2674,6 +2688,56 @@ function ProgressBarLinear({
2674
2688
  );
2675
2689
  }
2676
2690
 
2691
+ const PROGRESS_RING_STROKE_WIDTHS = {
2692
+ sm: 12,
2693
+ md: 11,
2694
+ lg: 9.5
2695
+ };
2696
+
2697
+ function ProgressBarRing({
2698
+ className,
2699
+ size = "md",
2700
+ color = "accent",
2701
+ percent,
2702
+ children,
2703
+ ...props
2704
+ }) {
2705
+ const clampedPercent = Math.min(100, Math.max(0, percent));
2706
+ const strokeWidth = PROGRESS_RING_STROKE_WIDTHS[size];
2707
+ const radius = 50 - strokeWidth / 2;
2708
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2709
+ "div",
2710
+ {
2711
+ className: classNames(styles$l.ring, styles$l[size], styles$l[color], className),
2712
+ role: "progressbar",
2713
+ "aria-valuenow": clampedPercent,
2714
+ "aria-valuemin": 0,
2715
+ "aria-valuemax": 100,
2716
+ "aria-valuetext": `${clampedPercent} percent complete`,
2717
+ "aria-label": "Progress",
2718
+ ...props,
2719
+ children: [
2720
+ /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: styles$l.ringSvg, viewBox: "0 0 100 100", "aria-hidden": "true", children: [
2721
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { className: styles$l.ringTrack, cx: "50", cy: "50", r: radius, strokeWidth }),
2722
+ Boolean(clampedPercent) && /* @__PURE__ */ jsxRuntime.jsx(
2723
+ "circle",
2724
+ {
2725
+ className: styles$l.ringFill,
2726
+ cx: "50",
2727
+ cy: "50",
2728
+ r: radius,
2729
+ strokeWidth,
2730
+ pathLength: 100,
2731
+ strokeDasharray: `${clampedPercent} 100`
2732
+ }
2733
+ )
2734
+ ] }),
2735
+ children && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles$l.ringLabel, children })
2736
+ ]
2737
+ }
2738
+ );
2739
+ }
2740
+
2677
2741
  function ProgressBarSteps({
2678
2742
  className,
2679
2743
  size = "md",
@@ -2715,6 +2779,7 @@ function ProgressBar(props) {
2715
2779
  return /* @__PURE__ */ jsxRuntime.jsx(ProgressBarLinear, { ...props });
2716
2780
  }
2717
2781
  ProgressBar.Steps = ProgressBarSteps;
2782
+ ProgressBar.Ring = ProgressBarRing;
2718
2783
 
2719
2784
  const radioWrapper = "_radioWrapper_13xie_2";
2720
2785
  const radio = "_radio_13xie_2";
package/dist/index.d.ts CHANGED
@@ -126,14 +126,15 @@ export declare function Checkbox({ className, label, indeterminate, ...props }:
126
126
  * @param disabled - Whether the chip is disabled
127
127
  * @param icon - Leading icon; inherits the text color, accent while the chip is not selected
128
128
  * @param shape - Corner shape (default, pill)
129
- * @param mode - Visual mode (default, glass); glass is a translucent white chip for colored backgrounds
129
+ * @param mode - Visual mode (default, glass, white); glass is a translucent white chip for colored backgrounds,
130
+ * white is a solid white chip for light-grey surfaces
130
131
  * @param asChild - When true, merges props onto the child element instead of rendering a div
131
132
  * @param className - Additional CSS classes
132
133
  * @param children - Content to display inside the chip
133
134
  */
134
135
  export declare function Chip({ isSelected, children, className, disabled, icon, shape, mode, asChild, ...props }: TChipProps): JSX.Element;
135
136
 
136
- declare const CHIP_MODES: readonly ["default", "glass"];
137
+ declare const CHIP_MODES: readonly ["default", "glass", "white"];
137
138
 
138
139
  declare const CHIP_SHAPES: readonly ["default", "pill"];
139
140
 
@@ -494,16 +495,18 @@ declare function PaginationItem({ className, children, size, isCurrent, ...props
494
495
 
495
496
  declare function PaginationRoot({ totalPages, currentPage, size, maxVisiblePages, showArrows, className, onPageChange, renderItem: PaginationItem, renderIconChevron: IconChevron, renderEllipsis: Ellipsis, ...props }: TPaginationRootProps): JSX.Element;
496
497
 
497
- declare const PROGRESS_BAR_COLORS: readonly ["accent", "green"];
498
+ declare const PROGRESS_BAR_COLORS: readonly ["accent", "white"];
498
499
 
499
500
  declare const PROGRESS_BAR_SIZES: readonly ["sm", "md", "xs"];
500
501
 
502
+ declare const PROGRESS_RING_SIZES: readonly ["sm", "md", "lg"];
503
+
501
504
  /**
502
505
  * ProgressBar is a compound component for displaying progress indicators.
503
506
  * Provides flexible building blocks for linear and step-based progress visualization.
504
507
  *
505
508
  * @param size - Size variant of the progress bar (sm, md, xs)
506
- * @param color - Fill color (accent, green); the track stays the same
509
+ * @param color - Fill color (accent, white); white sits on a white-alpha track for dark and accent surfaces
507
510
  * @param percent - Progress percentage (0-100)
508
511
  * @param showFillOnZero - Whether to render the fill segment at 0%
509
512
  * @param className - Additional CSS classes
@@ -512,15 +515,20 @@ declare const PROGRESS_BAR_SIZES: readonly ["sm", "md", "xs"];
512
515
  * <ProgressBar percent={50} size="md" />
513
516
  *
514
517
  * <ProgressBar.Steps currentStep={2} totalSteps={5} />
518
+ *
519
+ * <ProgressBar.Ring percent={60}>3/5</ProgressBar.Ring>
515
520
  */
516
521
  export declare function ProgressBar(props: React.ComponentProps<typeof ProgressBarLinear>): JSX.Element;
517
522
 
518
523
  export declare namespace ProgressBar {
519
524
  var Steps: typeof ProgressBarSteps;
525
+ var Ring: typeof ProgressBarRing;
520
526
  }
521
527
 
522
528
  declare function ProgressBarLinear({ className, size, color, percent, showFillOnZero, ...props }: TProgressBarLinearProps): JSX.Element;
523
529
 
530
+ declare function ProgressBarRing({ className, size, color, percent, children, ...props }: TProgressBarRingProps): JSX.Element;
531
+
524
532
  declare function ProgressBarSteps({ className, size, color, currentStep, totalSteps, ...props }: TProgressBarStepsProps): JSX.Element;
525
533
 
526
534
  /**
@@ -990,6 +998,12 @@ declare type TProgressBarLinearProps = Omit<React.HTMLAttributes<HTMLDivElement>
990
998
  showFillOnZero?: boolean;
991
999
  };
992
1000
 
1001
+ declare type TProgressBarRingProps = React.HTMLAttributes<HTMLDivElement> & {
1002
+ size?: TArrayElement<typeof PROGRESS_RING_SIZES>;
1003
+ color?: TArrayElement<typeof PROGRESS_BAR_COLORS>;
1004
+ percent: number;
1005
+ };
1006
+
993
1007
  declare type TProgressBarStepsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {
994
1008
  size?: TArrayElement<typeof PROGRESS_BAR_SIZES>;
995
1009
  color?: TArrayElement<typeof PROGRESS_BAR_COLORS>;
package/dist/index.js CHANGED
@@ -47,21 +47,21 @@ function omit(object, ...keys) {
47
47
  return Object.fromEntries(filteredEntries);
48
48
  }
49
49
 
50
- const badge = "_badge_x6ia4_2";
51
- const primary$4 = "_primary_x6ia4_9";
52
- const secondary$5 = "_secondary_x6ia4_13";
53
- const glass$1 = "_glass_x6ia4_18";
54
- const accent$5 = "_accent_x6ia4_23";
55
- const violet = "_violet_x6ia4_28";
56
- const pink = "_pink_x6ia4_33";
57
- const red$1 = "_red_x6ia4_38";
58
- const orange = "_orange_x6ia4_43";
59
- const green$1 = "_green_x6ia4_48";
60
- const neutral$3 = "_neutral_x6ia4_54";
61
- const lg$7 = "_lg_x6ia4_59";
62
- const md$a = "_md_x6ia4_66";
63
- const sm$5 = "_sm_x6ia4_73";
64
- const pill$2 = "_pill_x6ia4_80";
50
+ const badge = "_badge_7i4v4_2";
51
+ const primary$4 = "_primary_7i4v4_9";
52
+ const secondary$5 = "_secondary_7i4v4_13";
53
+ const glass$1 = "_glass_7i4v4_18";
54
+ const accent$5 = "_accent_7i4v4_23";
55
+ const violet = "_violet_7i4v4_28";
56
+ const pink = "_pink_7i4v4_33";
57
+ const red$1 = "_red_7i4v4_38";
58
+ const orange = "_orange_7i4v4_43";
59
+ const green = "_green_7i4v4_48";
60
+ const neutral$3 = "_neutral_7i4v4_53";
61
+ const lg$8 = "_lg_7i4v4_58";
62
+ const md$a = "_md_7i4v4_65";
63
+ const sm$5 = "_sm_7i4v4_72";
64
+ const pill$2 = "_pill_7i4v4_79";
65
65
  const styles$E = {
66
66
  badge: badge,
67
67
  primary: primary$4,
@@ -72,9 +72,9 @@ const styles$E = {
72
72
  pink: pink,
73
73
  red: red$1,
74
74
  orange: orange,
75
- green: green$1,
75
+ green: green,
76
76
  neutral: neutral$3,
77
- lg: lg$7,
77
+ lg: lg$8,
78
78
  md: md$a,
79
79
  sm: sm$5,
80
80
  pill: pill$2
@@ -1314,8 +1314,8 @@ const secondary$3 = "_secondary_11nu9_31";
1314
1314
  const tertiary = "_tertiary_11nu9_49";
1315
1315
  const line = "_line_11nu9_50";
1316
1316
  const neutral$2 = "_neutral_11nu9_79";
1317
- const white$1 = "_white_11nu9_146";
1318
- const lg$6 = "_lg_11nu9_213";
1317
+ const white$3 = "_white_11nu9_146";
1318
+ const lg$7 = "_lg_11nu9_213";
1319
1319
  const md$9 = "_md_11nu9_222";
1320
1320
  const sm$4 = "_sm_11nu9_240";
1321
1321
  const pill$1 = "_pill_11nu9_249";
@@ -1330,8 +1330,8 @@ const styles$z = {
1330
1330
  tertiary: tertiary,
1331
1331
  line: line,
1332
1332
  neutral: neutral$2,
1333
- white: white$1,
1334
- lg: lg$6,
1333
+ white: white$3,
1334
+ lg: lg$7,
1335
1335
  md: md$9,
1336
1336
  "md-sm": "_md-sm_11nu9_231",
1337
1337
  sm: sm$4,
@@ -1344,13 +1344,13 @@ const styles$z = {
1344
1344
  const buttonFunction = "_buttonFunction_o8iku_2";
1345
1345
  const accent$3 = "_accent_o8iku_10";
1346
1346
  const neutral$1 = "_neutral_o8iku_22";
1347
- const lg$5 = "_lg_o8iku_41";
1347
+ const lg$6 = "_lg_o8iku_41";
1348
1348
  const md$8 = "_md_o8iku_46";
1349
1349
  const styles$y = {
1350
1350
  buttonFunction: buttonFunction,
1351
1351
  accent: accent$3,
1352
1352
  neutral: neutral$1,
1353
- lg: lg$5,
1353
+ lg: lg$6,
1354
1354
  md: md$8
1355
1355
  };
1356
1356
 
@@ -1434,13 +1434,15 @@ function Checkbox({ className, label, indeterminate, ...props }) {
1434
1434
  );
1435
1435
  }
1436
1436
 
1437
- const chip = "_chip_nge5j_2";
1438
- const glass = "_glass_nge5j_36";
1439
- const pill = "_pill_nge5j_59";
1440
- const icon$2 = "_icon_nge5j_63";
1437
+ const chip = "_chip_1i1br_2";
1438
+ const glass = "_glass_1i1br_36";
1439
+ const white$2 = "_white_1i1br_59";
1440
+ const pill = "_pill_1i1br_67";
1441
+ const icon$2 = "_icon_1i1br_71";
1441
1442
  const styles$w = {
1442
1443
  chip: chip,
1443
1444
  glass: glass,
1445
+ white: white$2,
1444
1446
  pill: pill,
1445
1447
  icon: icon$2
1446
1448
  };
@@ -1481,22 +1483,22 @@ function Chip({
1481
1483
  }
1482
1484
 
1483
1485
  const root$1 = "_root_ww0fb_2";
1484
- const lg$4 = "_lg_ww0fb_16";
1486
+ const lg$5 = "_lg_ww0fb_16";
1485
1487
  const md$7 = "_md_ww0fb_24";
1486
1488
  const red = "_red_ww0fb_32";
1487
1489
  const accent$2 = "_accent_ww0fb_37";
1488
1490
  const neutral = "_neutral_ww0fb_42";
1489
1491
  const secondary$2 = "_secondary_ww0fb_47";
1490
- const white = "_white_ww0fb_52";
1492
+ const white$1 = "_white_ww0fb_52";
1491
1493
  const styles$v = {
1492
1494
  root: root$1,
1493
- lg: lg$4,
1495
+ lg: lg$5,
1494
1496
  md: md$7,
1495
1497
  red: red,
1496
1498
  accent: accent$2,
1497
1499
  neutral: neutral,
1498
1500
  secondary: secondary$2,
1499
- white: white
1501
+ white: white$1
1500
1502
  };
1501
1503
 
1502
1504
  function Counter({ className, size = "lg", color = "red", ...props }) {
@@ -2610,16 +2612,22 @@ function Pagination(props) {
2610
2612
  }
2611
2613
  Pagination.Item = PaginationItem;
2612
2614
 
2613
- const root = "_root_1lyc4_2";
2614
- const segment = "_segment_1lyc4_10";
2615
- const flexGrow = "_flexGrow_1lyc4_19";
2616
- const fill$1 = "_fill_1lyc4_23";
2617
- const trail = "_trail_1lyc4_28";
2618
- const xs = "_xs_1lyc4_32";
2619
- const sm$2 = "_sm_1lyc4_36";
2620
- const md$5 = "_md_1lyc4_40";
2621
- const accent = "_accent_1lyc4_44";
2622
- const green = "_green_1lyc4_48";
2615
+ const root = "_root_1dvnf_2";
2616
+ const segment = "_segment_1dvnf_10";
2617
+ const flexGrow = "_flexGrow_1dvnf_19";
2618
+ const fill$1 = "_fill_1dvnf_23";
2619
+ const trail = "_trail_1dvnf_28";
2620
+ const xs = "_xs_1dvnf_32";
2621
+ const sm$2 = "_sm_1dvnf_36";
2622
+ const md$5 = "_md_1dvnf_40";
2623
+ const accent = "_accent_1dvnf_44";
2624
+ const white = "_white_1dvnf_48";
2625
+ const ring = "_ring_1dvnf_55";
2626
+ const ringSvg = "_ringSvg_1dvnf_68";
2627
+ const ringTrack = "_ringTrack_1dvnf_76";
2628
+ const ringFill = "_ringFill_1dvnf_81";
2629
+ const ringLabel = "_ringLabel_1dvnf_88";
2630
+ const lg$4 = "_lg_1dvnf_102";
2623
2631
  const styles$l = {
2624
2632
  root: root,
2625
2633
  segment: segment,
@@ -2630,7 +2638,13 @@ const styles$l = {
2630
2638
  sm: sm$2,
2631
2639
  md: md$5,
2632
2640
  accent: accent,
2633
- green: green
2641
+ white: white,
2642
+ ring: ring,
2643
+ ringSvg: ringSvg,
2644
+ ringTrack: ringTrack,
2645
+ ringFill: ringFill,
2646
+ ringLabel: ringLabel,
2647
+ lg: lg$4
2634
2648
  };
2635
2649
 
2636
2650
  function ProgressBarLinear({
@@ -2670,6 +2684,56 @@ function ProgressBarLinear({
2670
2684
  );
2671
2685
  }
2672
2686
 
2687
+ const PROGRESS_RING_STROKE_WIDTHS = {
2688
+ sm: 12,
2689
+ md: 11,
2690
+ lg: 9.5
2691
+ };
2692
+
2693
+ function ProgressBarRing({
2694
+ className,
2695
+ size = "md",
2696
+ color = "accent",
2697
+ percent,
2698
+ children,
2699
+ ...props
2700
+ }) {
2701
+ const clampedPercent = Math.min(100, Math.max(0, percent));
2702
+ const strokeWidth = PROGRESS_RING_STROKE_WIDTHS[size];
2703
+ const radius = 50 - strokeWidth / 2;
2704
+ return /* @__PURE__ */ jsxs(
2705
+ "div",
2706
+ {
2707
+ className: classNames(styles$l.ring, styles$l[size], styles$l[color], className),
2708
+ role: "progressbar",
2709
+ "aria-valuenow": clampedPercent,
2710
+ "aria-valuemin": 0,
2711
+ "aria-valuemax": 100,
2712
+ "aria-valuetext": `${clampedPercent} percent complete`,
2713
+ "aria-label": "Progress",
2714
+ ...props,
2715
+ children: [
2716
+ /* @__PURE__ */ jsxs("svg", { className: styles$l.ringSvg, viewBox: "0 0 100 100", "aria-hidden": "true", children: [
2717
+ /* @__PURE__ */ jsx("circle", { className: styles$l.ringTrack, cx: "50", cy: "50", r: radius, strokeWidth }),
2718
+ Boolean(clampedPercent) && /* @__PURE__ */ jsx(
2719
+ "circle",
2720
+ {
2721
+ className: styles$l.ringFill,
2722
+ cx: "50",
2723
+ cy: "50",
2724
+ r: radius,
2725
+ strokeWidth,
2726
+ pathLength: 100,
2727
+ strokeDasharray: `${clampedPercent} 100`
2728
+ }
2729
+ )
2730
+ ] }),
2731
+ children && /* @__PURE__ */ jsx("span", { className: styles$l.ringLabel, children })
2732
+ ]
2733
+ }
2734
+ );
2735
+ }
2736
+
2673
2737
  function ProgressBarSteps({
2674
2738
  className,
2675
2739
  size = "md",
@@ -2711,6 +2775,7 @@ function ProgressBar(props) {
2711
2775
  return /* @__PURE__ */ jsx(ProgressBarLinear, { ...props });
2712
2776
  }
2713
2777
  ProgressBar.Steps = ProgressBarSteps;
2778
+ ProgressBar.Ring = ProgressBarRing;
2714
2779
 
2715
2780
  const radioWrapper = "_radioWrapper_13xie_2";
2716
2781
  const radio = "_radio_13xie_2";
package/dist/style.css CHANGED
@@ -298,7 +298,6 @@ textarea {
298
298
  --color-orange-alpha-100: color-mix(in srgb, var(--color-orange) 10%, var(--color-transparent));
299
299
 
300
300
  --color-green: #00d06f;
301
- --color-green-900: color-mix(in srgb, var(--color-green) 55%, var(--color-neutral));
302
301
  --color-green-alpha-500: color-mix(in srgb, var(--color-green) 50%, var(--color-transparent));
303
302
  --color-green-alpha-100: color-mix(in srgb, var(--color-green) 10%, var(--color-transparent));
304
303
 
@@ -371,85 +370,84 @@ textarea {
371
370
  }
372
371
  }
373
372
  @layer ui_baza_components {
374
- ._badge_x6ia4_2 {
373
+ ._badge_7i4v4_2 {
375
374
  display: flex;
376
375
  align-items: center;
377
376
  justify-content: center;
378
377
  color: var(--color-white);
379
378
  font-weight: var(--font-weight-bold);
380
379
 
381
- &._primary_x6ia4_9 {
380
+ &._primary_7i4v4_9 {
382
381
  background-color: var(--badge-color);
383
382
  }
384
383
 
385
- &._secondary_x6ia4_13 {
384
+ &._secondary_7i4v4_13 {
386
385
  background-color: var(--badge-color-alpha);
387
- color: var(--badge-color-on-alpha, var(--badge-color));
386
+ color: var(--badge-color);
388
387
  }
389
388
 
390
- &._glass_x6ia4_18 {
389
+ &._glass_7i4v4_18 {
391
390
  background-color: var(--color-white-alpha-200);
392
391
  color: var(--color-white);
393
392
  }
394
393
 
395
- &._accent_x6ia4_23 {
394
+ &._accent_7i4v4_23 {
396
395
  --badge-color: var(--color-accent);
397
396
  --badge-color-alpha: var(--color-accent-alpha-100);
398
397
  }
399
398
 
400
- &._violet_x6ia4_28 {
399
+ &._violet_7i4v4_28 {
401
400
  --badge-color: var(--color-violet);
402
401
  --badge-color-alpha: var(--color-violet-alpha-100);
403
402
  }
404
403
 
405
- &._pink_x6ia4_33 {
404
+ &._pink_7i4v4_33 {
406
405
  --badge-color: var(--color-pink);
407
406
  --badge-color-alpha: var(--color-pink-alpha-100);
408
407
  }
409
408
 
410
- &._red_x6ia4_38 {
409
+ &._red_7i4v4_38 {
411
410
  --badge-color: var(--color-red);
412
411
  --badge-color-alpha: var(--color-red-alpha-100);
413
412
  }
414
413
 
415
- &._orange_x6ia4_43 {
414
+ &._orange_7i4v4_43 {
416
415
  --badge-color: var(--color-orange);
417
416
  --badge-color-alpha: var(--color-orange-alpha-100);
418
417
  }
419
418
 
420
- &._green_x6ia4_48 {
419
+ &._green_7i4v4_48 {
421
420
  --badge-color: var(--color-green);
422
421
  --badge-color-alpha: var(--color-green-alpha-100);
423
- --badge-color-on-alpha: var(--color-green-900);
424
422
  }
425
423
 
426
- &._neutral_x6ia4_54 {
424
+ &._neutral_7i4v4_53 {
427
425
  --badge-color: var(--color-neutral);
428
426
  --badge-color-alpha: var(--color-neutral-alpha-60);
429
427
  }
430
428
 
431
- &._lg_x6ia4_59 {
429
+ &._lg_7i4v4_58 {
432
430
  padding: var(--space-sm);
433
431
  border-radius: var(--radius-md);
434
432
  font-size: var(--size-sm);
435
433
  line-height: var(--line-height-md);
436
434
  }
437
435
 
438
- &._md_x6ia4_66 {
436
+ &._md_7i4v4_65 {
439
437
  padding: var(--space-xs);
440
438
  border-radius: var(--radius-sm);
441
439
  font-size: var(--size-xs);
442
440
  line-height: var(--line-height-sm);
443
441
  }
444
442
 
445
- &._sm_x6ia4_73 {
443
+ &._sm_7i4v4_72 {
446
444
  padding: 0 var(--space-lg);
447
445
  border-radius: var(--radius-sm);
448
446
  font-size: var(--size-xs);
449
447
  line-height: var(--line-height-lg);
450
448
  }
451
449
 
452
- &._pill_x6ia4_80 {
450
+ &._pill_7i4v4_79 {
453
451
  border-radius: var(--radius-full);
454
452
  }
455
453
  }
@@ -960,7 +958,7 @@ textarea {
960
958
  }
961
959
  }
962
960
  @layer ui_baza_components {
963
- ._chip_nge5j_2 {
961
+ ._chip_1i1br_2 {
964
962
  --chip-icon-size: 16px;
965
963
 
966
964
  display: flex;
@@ -994,7 +992,7 @@ textarea {
994
992
  pointer-events: none;
995
993
  }
996
994
 
997
- &._glass_nge5j_36 {
995
+ &._glass_1i1br_36 {
998
996
  background-color: var(--color-white-alpha-200);
999
997
  color: var(--color-white);
1000
998
 
@@ -1017,11 +1015,19 @@ textarea {
1017
1015
  }
1018
1016
  }
1019
1017
 
1020
- &._pill_nge5j_59 {
1018
+ &._white_1i1br_59:not([data-selected='true'], [data-disabled='true']) {
1019
+ background-color: var(--color-white);
1020
+
1021
+ &:hover {
1022
+ background-color: var(--color-neutral-40);
1023
+ }
1024
+ }
1025
+
1026
+ &._pill_1i1br_67 {
1021
1027
  border-radius: var(--radius-full);
1022
1028
  }
1023
1029
 
1024
- ._icon_nge5j_63 {
1030
+ ._icon_1i1br_71 {
1025
1031
  display: flex;
1026
1032
  flex-shrink: 0;
1027
1033
  width: var(--chip-icon-size);
@@ -1035,9 +1041,9 @@ textarea {
1035
1041
  }
1036
1042
  }
1037
1043
 
1038
- &[data-selected='true'] ._icon_nge5j_63,
1039
- &[data-disabled='true'] ._icon_nge5j_63,
1040
- &._glass_nge5j_36 ._icon_nge5j_63 {
1044
+ &[data-selected='true'] ._icon_1i1br_71,
1045
+ &[data-disabled='true'] ._icon_1i1br_71,
1046
+ &._glass_1i1br_36 ._icon_1i1br_71 {
1041
1047
  color: inherit;
1042
1048
  }
1043
1049
  }
@@ -1504,7 +1510,7 @@ textarea {
1504
1510
  }
1505
1511
  }
1506
1512
  @layer ui_baza_components {
1507
- ._root_1lyc4_2 {
1513
+ ._root_1dvnf_2 {
1508
1514
  display: flex;
1509
1515
  align-items: center;
1510
1516
  width: 100%;
@@ -1512,7 +1518,7 @@ textarea {
1512
1518
  gap: var(--space-xs);
1513
1519
  }
1514
1520
 
1515
- ._segment_1lyc4_10 {
1521
+ ._segment_1dvnf_10 {
1516
1522
  min-width: var(--progress-bar-height);
1517
1523
  height: 100%;
1518
1524
  border-radius: var(--radius-5xl);
@@ -1521,37 +1527,92 @@ textarea {
1521
1527
  width var(--transition-duration-default) ease-in-out;
1522
1528
  }
1523
1529
 
1524
- ._flexGrow_1lyc4_19 {
1530
+ ._flexGrow_1dvnf_19 {
1525
1531
  flex: 1 1 0;
1526
1532
  }
1527
1533
 
1528
- ._fill_1lyc4_23 {
1534
+ ._fill_1dvnf_23 {
1529
1535
  width: var(--clamped-percent);
1530
1536
  background-color: var(--progress-bar-fill-color);
1531
1537
  }
1532
1538
 
1533
- ._trail_1lyc4_28 {
1534
- background-color: var(--color-neutral-alpha-60);
1539
+ ._trail_1dvnf_28 {
1540
+ background-color: var(--progress-bar-trail-color, var(--color-neutral-alpha-60));
1535
1541
  }
1536
1542
 
1537
- ._xs_1lyc4_32 {
1543
+ ._xs_1dvnf_32 {
1538
1544
  --progress-bar-height: 5px;
1539
1545
  }
1540
1546
 
1541
- ._sm_1lyc4_36 {
1547
+ ._sm_1dvnf_36 {
1542
1548
  --progress-bar-height: 8px;
1543
1549
  }
1544
1550
 
1545
- ._md_1lyc4_40 {
1551
+ ._md_1dvnf_40 {
1546
1552
  --progress-bar-height: 12px;
1547
1553
  }
1548
1554
 
1549
- ._accent_1lyc4_44 {
1555
+ ._accent_1dvnf_44 {
1550
1556
  --progress-bar-fill-color: var(--color-accent);
1551
1557
  }
1552
1558
 
1553
- ._green_1lyc4_48 {
1554
- --progress-bar-fill-color: var(--color-green-900);
1559
+ ._white_1dvnf_48 {
1560
+ --progress-bar-fill-color: var(--color-white);
1561
+ --progress-bar-trail-color: var(--color-white-alpha-300);
1562
+ }
1563
+ }
1564
+
1565
+ @layer ui_baza_components {
1566
+ ._ring_1dvnf_55 {
1567
+ display: inline-flex;
1568
+ position: relative;
1569
+ flex-shrink: 0;
1570
+ align-items: center;
1571
+ justify-content: center;
1572
+ width: var(--progress-ring-size);
1573
+ height: var(--progress-ring-size);
1574
+ font-weight: 600;
1575
+ font-size: var(--progress-ring-font-size);
1576
+ line-height: 1;
1577
+ }
1578
+
1579
+ ._ringSvg_1dvnf_68 {
1580
+ position: absolute;
1581
+ width: 100%;
1582
+ height: 100%;
1583
+ inset: 0;
1584
+ transform: rotate(-90deg);
1585
+ }
1586
+
1587
+ ._ringTrack_1dvnf_76 {
1588
+ fill: none;
1589
+ stroke: var(--progress-bar-trail-color, var(--color-neutral-alpha-80));
1590
+ }
1591
+
1592
+ ._ringFill_1dvnf_81 {
1593
+ fill: none;
1594
+ stroke: var(--progress-bar-fill-color);
1595
+ stroke-linecap: round;
1596
+ transition: stroke-dasharray var(--transition-duration-default) ease-in-out;
1597
+ }
1598
+
1599
+ ._ringLabel_1dvnf_88 {
1600
+ position: relative;
1601
+ }
1602
+
1603
+ ._ring_1dvnf_55._sm_1dvnf_36 {
1604
+ --progress-ring-size: 34px;
1605
+ --progress-ring-font-size: 10px;
1606
+ }
1607
+
1608
+ ._ring_1dvnf_55._md_1dvnf_40 {
1609
+ --progress-ring-size: 44px;
1610
+ --progress-ring-font-size: 12px;
1611
+ }
1612
+
1613
+ ._ring_1dvnf_55._lg_1dvnf_102 {
1614
+ --progress-ring-size: 84px;
1615
+ --progress-ring-font-size: 20px;
1555
1616
  }
1556
1617
  }
1557
1618
  @layer ui_baza_components {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grandbazar/ui-baza",
3
- "version": "1.6.0",
3
+ "version": "1.7.1",
4
4
  "description": "A lightweight and modular UI kit for building modern, accessible web interfaces. Designed for flexibility, scalability, and developer happiness.",
5
5
  "repository": {
6
6
  "type": "git",