@grandbazar/ui-baza 1.7.0 → 1.9.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.cjs CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
+ const bento = require('./bento.cjs');
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
7
  const React = require('react');
7
8
  const reactDom = require('react-dom');
@@ -51,21 +52,21 @@ function omit(object, ...keys) {
51
52
  return Object.fromEntries(filteredEntries);
52
53
  }
53
54
 
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";
55
+ const badge = "_badge_7i4v4_2";
56
+ const primary$4 = "_primary_7i4v4_9";
57
+ const secondary$5 = "_secondary_7i4v4_13";
58
+ const glass$1 = "_glass_7i4v4_18";
59
+ const accent$5 = "_accent_7i4v4_23";
60
+ const violet = "_violet_7i4v4_28";
61
+ const pink = "_pink_7i4v4_33";
62
+ const red$1 = "_red_7i4v4_38";
63
+ const orange = "_orange_7i4v4_43";
64
+ const green = "_green_7i4v4_48";
65
+ const neutral$3 = "_neutral_7i4v4_53";
66
+ const lg$8 = "_lg_7i4v4_58";
67
+ const md$a = "_md_7i4v4_65";
68
+ const sm$5 = "_sm_7i4v4_72";
69
+ const pill$2 = "_pill_7i4v4_79";
69
70
  const styles$E = {
70
71
  badge: badge,
71
72
  primary: primary$4,
@@ -76,9 +77,9 @@ const styles$E = {
76
77
  pink: pink,
77
78
  red: red$1,
78
79
  orange: orange,
79
- green: green$1,
80
+ green: green,
80
81
  neutral: neutral$3,
81
- lg: lg$7,
82
+ lg: lg$8,
82
83
  md: md$a,
83
84
  sm: sm$5,
84
85
  pill: pill$2
@@ -1318,8 +1319,8 @@ const secondary$3 = "_secondary_11nu9_31";
1318
1319
  const tertiary = "_tertiary_11nu9_49";
1319
1320
  const line = "_line_11nu9_50";
1320
1321
  const neutral$2 = "_neutral_11nu9_79";
1321
- const white$2 = "_white_11nu9_146";
1322
- const lg$6 = "_lg_11nu9_213";
1322
+ const white$3 = "_white_11nu9_146";
1323
+ const lg$7 = "_lg_11nu9_213";
1323
1324
  const md$9 = "_md_11nu9_222";
1324
1325
  const sm$4 = "_sm_11nu9_240";
1325
1326
  const pill$1 = "_pill_11nu9_249";
@@ -1334,8 +1335,8 @@ const styles$z = {
1334
1335
  tertiary: tertiary,
1335
1336
  line: line,
1336
1337
  neutral: neutral$2,
1337
- white: white$2,
1338
- lg: lg$6,
1338
+ white: white$3,
1339
+ lg: lg$7,
1339
1340
  md: md$9,
1340
1341
  "md-sm": "_md-sm_11nu9_231",
1341
1342
  sm: sm$4,
@@ -1348,13 +1349,13 @@ const styles$z = {
1348
1349
  const buttonFunction = "_buttonFunction_o8iku_2";
1349
1350
  const accent$3 = "_accent_o8iku_10";
1350
1351
  const neutral$1 = "_neutral_o8iku_22";
1351
- const lg$5 = "_lg_o8iku_41";
1352
+ const lg$6 = "_lg_o8iku_41";
1352
1353
  const md$8 = "_md_o8iku_46";
1353
1354
  const styles$y = {
1354
1355
  buttonFunction: buttonFunction,
1355
1356
  accent: accent$3,
1356
1357
  neutral: neutral$1,
1357
- lg: lg$5,
1358
+ lg: lg$6,
1358
1359
  md: md$8
1359
1360
  };
1360
1361
 
@@ -1440,13 +1441,13 @@ function Checkbox({ className, label, indeterminate, ...props }) {
1440
1441
 
1441
1442
  const chip = "_chip_1i1br_2";
1442
1443
  const glass = "_glass_1i1br_36";
1443
- const white$1 = "_white_1i1br_59";
1444
+ const white$2 = "_white_1i1br_59";
1444
1445
  const pill = "_pill_1i1br_67";
1445
1446
  const icon$2 = "_icon_1i1br_71";
1446
1447
  const styles$w = {
1447
1448
  chip: chip,
1448
1449
  glass: glass,
1449
- white: white$1,
1450
+ white: white$2,
1450
1451
  pill: pill,
1451
1452
  icon: icon$2
1452
1453
  };
@@ -1487,22 +1488,22 @@ function Chip({
1487
1488
  }
1488
1489
 
1489
1490
  const root$1 = "_root_ww0fb_2";
1490
- const lg$4 = "_lg_ww0fb_16";
1491
+ const lg$5 = "_lg_ww0fb_16";
1491
1492
  const md$7 = "_md_ww0fb_24";
1492
1493
  const red = "_red_ww0fb_32";
1493
1494
  const accent$2 = "_accent_ww0fb_37";
1494
1495
  const neutral = "_neutral_ww0fb_42";
1495
1496
  const secondary$2 = "_secondary_ww0fb_47";
1496
- const white = "_white_ww0fb_52";
1497
+ const white$1 = "_white_ww0fb_52";
1497
1498
  const styles$v = {
1498
1499
  root: root$1,
1499
- lg: lg$4,
1500
+ lg: lg$5,
1500
1501
  md: md$7,
1501
1502
  red: red,
1502
1503
  accent: accent$2,
1503
1504
  neutral: neutral,
1504
1505
  secondary: secondary$2,
1505
- white: white
1506
+ white: white$1
1506
1507
  };
1507
1508
 
1508
1509
  function Counter({ className, size = "lg", color = "red", ...props }) {
@@ -2616,16 +2617,22 @@ function Pagination(props) {
2616
2617
  }
2617
2618
  Pagination.Item = PaginationItem;
2618
2619
 
2619
- const root = "_root_1lyc4_2";
2620
- const segment = "_segment_1lyc4_10";
2621
- const flexGrow = "_flexGrow_1lyc4_19";
2622
- const fill$1 = "_fill_1lyc4_23";
2623
- const trail = "_trail_1lyc4_28";
2624
- const xs = "_xs_1lyc4_32";
2625
- const sm$2 = "_sm_1lyc4_36";
2626
- const md$5 = "_md_1lyc4_40";
2627
- const accent = "_accent_1lyc4_44";
2628
- const green = "_green_1lyc4_48";
2620
+ const root = "_root_1dvnf_2";
2621
+ const segment = "_segment_1dvnf_10";
2622
+ const flexGrow = "_flexGrow_1dvnf_19";
2623
+ const fill$1 = "_fill_1dvnf_23";
2624
+ const trail = "_trail_1dvnf_28";
2625
+ const xs = "_xs_1dvnf_32";
2626
+ const sm$2 = "_sm_1dvnf_36";
2627
+ const md$5 = "_md_1dvnf_40";
2628
+ const accent = "_accent_1dvnf_44";
2629
+ const white = "_white_1dvnf_48";
2630
+ const ring = "_ring_1dvnf_55";
2631
+ const ringSvg = "_ringSvg_1dvnf_68";
2632
+ const ringTrack = "_ringTrack_1dvnf_76";
2633
+ const ringFill = "_ringFill_1dvnf_81";
2634
+ const ringLabel = "_ringLabel_1dvnf_88";
2635
+ const lg$4 = "_lg_1dvnf_102";
2629
2636
  const styles$l = {
2630
2637
  root: root,
2631
2638
  segment: segment,
@@ -2636,7 +2643,13 @@ const styles$l = {
2636
2643
  sm: sm$2,
2637
2644
  md: md$5,
2638
2645
  accent: accent,
2639
- green: green
2646
+ white: white,
2647
+ ring: ring,
2648
+ ringSvg: ringSvg,
2649
+ ringTrack: ringTrack,
2650
+ ringFill: ringFill,
2651
+ ringLabel: ringLabel,
2652
+ lg: lg$4
2640
2653
  };
2641
2654
 
2642
2655
  function ProgressBarLinear({
@@ -2676,6 +2689,56 @@ function ProgressBarLinear({
2676
2689
  );
2677
2690
  }
2678
2691
 
2692
+ const PROGRESS_RING_STROKE_WIDTHS = {
2693
+ sm: 12,
2694
+ md: 11,
2695
+ lg: 9.5
2696
+ };
2697
+
2698
+ function ProgressBarRing({
2699
+ className,
2700
+ size = "md",
2701
+ color = "accent",
2702
+ percent,
2703
+ children,
2704
+ ...props
2705
+ }) {
2706
+ const clampedPercent = Math.min(100, Math.max(0, percent));
2707
+ const strokeWidth = PROGRESS_RING_STROKE_WIDTHS[size];
2708
+ const radius = 50 - strokeWidth / 2;
2709
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2710
+ "div",
2711
+ {
2712
+ className: classNames(styles$l.ring, styles$l[size], styles$l[color], className),
2713
+ role: "progressbar",
2714
+ "aria-valuenow": clampedPercent,
2715
+ "aria-valuemin": 0,
2716
+ "aria-valuemax": 100,
2717
+ "aria-valuetext": `${clampedPercent} percent complete`,
2718
+ "aria-label": "Progress",
2719
+ ...props,
2720
+ children: [
2721
+ /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: styles$l.ringSvg, viewBox: "0 0 100 100", "aria-hidden": "true", children: [
2722
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { className: styles$l.ringTrack, cx: "50", cy: "50", r: radius, strokeWidth }),
2723
+ Boolean(clampedPercent) && /* @__PURE__ */ jsxRuntime.jsx(
2724
+ "circle",
2725
+ {
2726
+ className: styles$l.ringFill,
2727
+ cx: "50",
2728
+ cy: "50",
2729
+ r: radius,
2730
+ strokeWidth,
2731
+ pathLength: 100,
2732
+ strokeDasharray: `${clampedPercent} 100`
2733
+ }
2734
+ )
2735
+ ] }),
2736
+ children && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles$l.ringLabel, children })
2737
+ ]
2738
+ }
2739
+ );
2740
+ }
2741
+
2679
2742
  function ProgressBarSteps({
2680
2743
  className,
2681
2744
  size = "md",
@@ -2717,6 +2780,7 @@ function ProgressBar(props) {
2717
2780
  return /* @__PURE__ */ jsxRuntime.jsx(ProgressBarLinear, { ...props });
2718
2781
  }
2719
2782
  ProgressBar.Steps = ProgressBarSteps;
2783
+ ProgressBar.Ring = ProgressBarRing;
2720
2784
 
2721
2785
  const radioWrapper = "_radioWrapper_13xie_2";
2722
2786
  const radio = "_radio_13xie_2";
@@ -3827,6 +3891,19 @@ function Tooltip(props) {
3827
3891
  }
3828
3892
  Tooltip.Content = TooltipContent;
3829
3893
 
3894
+ exports.BENTO_AUTO_SIZES = bento.BENTO_AUTO_SIZES;
3895
+ exports.BENTO_CONFIGURABLE_SIZES = bento.BENTO_CONFIGURABLE_SIZES;
3896
+ exports.BENTO_GRIDS = bento.BENTO_GRIDS;
3897
+ exports.BENTO_GRID_NAMES = bento.BENTO_GRID_NAMES;
3898
+ exports.BENTO_MOBILE_SIZE_BY_DESKTOP = bento.BENTO_MOBILE_SIZE_BY_DESKTOP;
3899
+ exports.BENTO_SIZES = bento.BENTO_SIZES;
3900
+ exports.BENTO_THIN_SIZES = bento.BENTO_THIN_SIZES;
3901
+ exports.BENTO_TILE_SHAPES = bento.BENTO_TILE_SHAPES;
3902
+ exports.BENTO_TILE_SHAPE_BY_SIZE = bento.BENTO_TILE_SHAPE_BY_SIZE;
3903
+ exports.arrangeBento = bento.arrangeBento;
3904
+ exports.arrangeBentoGrids = bento.arrangeBentoGrids;
3905
+ exports.countBentoHoles = bento.countBentoHoles;
3906
+ exports.toBentoSlot = bento.toBentoSlot;
3830
3907
  exports.Badge = Badge;
3831
3908
  exports.BadgeTabs = BadgeTabs;
3832
3909
  exports.Breadcrumbs = Breadcrumbs;
package/dist/index.d.ts CHANGED
@@ -6,6 +6,10 @@ import { JSX } from 'react/jsx-runtime';
6
6
  import { ReactPortal } from 'react';
7
7
  import { SetStateAction } from 'react';
8
8
 
9
+ export declare function arrangeBento(slots: readonly TBentoSlot[], { columns, presets, rhythm }: TBentoGridRules): TBentoSize[];
10
+
11
+ export declare function arrangeBentoGrids(slotsByGrid: Record<TBentoGrid, readonly TBentoSlot[]>): TBentoSizes[];
12
+
9
13
  /**
10
14
  * Badge displays a label or indicator with customizable color and size.
11
15
  * Supports multiple color schemes and display modes for different contexts.
@@ -50,6 +54,24 @@ declare function BadgeTabsItem({ className, children, isActive, mode, ...props }
50
54
 
51
55
  declare function BadgeTabsRoot({ className, children, ...props }: TBadgeTabsRootProps): JSX.Element;
52
56
 
57
+ export declare const BENTO_AUTO_SIZES: Record<TBentoGrid, readonly TBentoSize[]>;
58
+
59
+ export declare const BENTO_CONFIGURABLE_SIZES: Record<TBentoGrid, readonly TBentoSize[]>;
60
+
61
+ export declare const BENTO_GRID_NAMES: readonly ["mobile", "desktop"];
62
+
63
+ export declare const BENTO_GRIDS: Record<TBentoGrid, TBentoGridRules>;
64
+
65
+ export declare const BENTO_MOBILE_SIZE_BY_DESKTOP: Record<TBentoSize, TBentoSize>;
66
+
67
+ export declare const BENTO_SIZES: readonly ["1x1", "2x1", "2x2", "4x1", "4x2", "6x2", "8x2", "8x3", "4x5"];
68
+
69
+ export declare const BENTO_THIN_SIZES: readonly TBentoSize[];
70
+
71
+ export declare const BENTO_TILE_SHAPE_BY_SIZE: Record<TBentoSize, TBentoTileShape>;
72
+
73
+ export declare const BENTO_TILE_SHAPES: readonly ["square", "strip", "wide", "wideStrip", "large", "long", "picture"];
74
+
53
75
  declare function BreadcrumbItem({ children, className, isActive, asChild, ...props }: TBreadcrumbItemProps): JSX.Element;
54
76
 
55
77
  /**
@@ -138,6 +160,8 @@ declare const CHIP_MODES: readonly ["default", "glass", "white"];
138
160
 
139
161
  declare const CHIP_SHAPES: readonly ["default", "pill"];
140
162
 
163
+ export declare function countBentoHoles(sizes: readonly TBentoSize[], columns: number): number;
164
+
141
165
  export declare function Counter({ className, size, color, ...props }: TCounterProps): JSX.Element;
142
166
 
143
167
  declare const COUNTER_COLORS: readonly ["red", "accent", "neutral", "secondary", "white"];
@@ -495,16 +519,18 @@ declare function PaginationItem({ className, children, size, isCurrent, ...props
495
519
 
496
520
  declare function PaginationRoot({ totalPages, currentPage, size, maxVisiblePages, showArrows, className, onPageChange, renderItem: PaginationItem, renderIconChevron: IconChevron, renderEllipsis: Ellipsis, ...props }: TPaginationRootProps): JSX.Element;
497
521
 
498
- declare const PROGRESS_BAR_COLORS: readonly ["accent", "green"];
522
+ declare const PROGRESS_BAR_COLORS: readonly ["accent", "white"];
499
523
 
500
524
  declare const PROGRESS_BAR_SIZES: readonly ["sm", "md", "xs"];
501
525
 
526
+ declare const PROGRESS_RING_SIZES: readonly ["sm", "md", "lg"];
527
+
502
528
  /**
503
529
  * ProgressBar is a compound component for displaying progress indicators.
504
530
  * Provides flexible building blocks for linear and step-based progress visualization.
505
531
  *
506
532
  * @param size - Size variant of the progress bar (sm, md, xs)
507
- * @param color - Fill color (accent, green); the track stays the same
533
+ * @param color - Fill color (accent, white); white sits on a white-alpha track for dark and accent surfaces
508
534
  * @param percent - Progress percentage (0-100)
509
535
  * @param showFillOnZero - Whether to render the fill segment at 0%
510
536
  * @param className - Additional CSS classes
@@ -513,15 +539,20 @@ declare const PROGRESS_BAR_SIZES: readonly ["sm", "md", "xs"];
513
539
  * <ProgressBar percent={50} size="md" />
514
540
  *
515
541
  * <ProgressBar.Steps currentStep={2} totalSteps={5} />
542
+ *
543
+ * <ProgressBar.Ring percent={60}>3/5</ProgressBar.Ring>
516
544
  */
517
545
  export declare function ProgressBar(props: React.ComponentProps<typeof ProgressBarLinear>): JSX.Element;
518
546
 
519
547
  export declare namespace ProgressBar {
520
548
  var Steps: typeof ProgressBarSteps;
549
+ var Ring: typeof ProgressBarRing;
521
550
  }
522
551
 
523
552
  declare function ProgressBarLinear({ className, size, color, percent, showFillOnZero, ...props }: TProgressBarLinearProps): JSX.Element;
524
553
 
554
+ declare function ProgressBarRing({ className, size, color, percent, children, ...props }: TProgressBarRingProps): JSX.Element;
555
+
525
556
  declare function ProgressBarSteps({ className, size, color, currentStep, totalSteps, ...props }: TProgressBarStepsProps): JSX.Element;
526
557
 
527
558
  /**
@@ -769,6 +800,31 @@ declare type TBadgeTabsRootProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'c
769
800
  children: React.ReactNode;
770
801
  };
771
802
 
803
+ export declare type TBentoGrid = TArrayElement<typeof BENTO_GRID_NAMES>;
804
+
805
+ export declare type TBentoGridRules = {
806
+ columns: number;
807
+ presets: Partial<Record<number, readonly TBentoSize[]>>;
808
+ rhythm: readonly TBentoSize[];
809
+ };
810
+
811
+ export declare type TBentoSize = TArrayElement<typeof BENTO_SIZES>;
812
+
813
+ export declare type TBentoSizes = Record<TBentoGrid, TBentoSize>;
814
+
815
+ export declare type TBentoSlot = {
816
+ preferredSize: TBentoSize | null;
817
+ allowedSizes: readonly TBentoSize[];
818
+ };
819
+
820
+ declare type TBentoSlotSource = {
821
+ allowedSizes: readonly TBentoSize[];
822
+ sizes: Partial<Record<TBentoGrid, TBentoSize | null>>;
823
+ defaultSize: TBentoSize | null;
824
+ };
825
+
826
+ export declare type TBentoTileShape = TArrayElement<typeof BENTO_TILE_SHAPES>;
827
+
772
828
  declare type TBreadcrumbItemProps = TAsChildProps<React.ButtonHTMLAttributes<HTMLButtonElement>> & {
773
829
  children: React.ReactNode;
774
830
  className?: string;
@@ -930,6 +986,8 @@ declare type TNotificationInlineProps = Omit<React.HTMLAttributes<HTMLDivElement
930
986
  onClose?: () => void;
931
987
  };
932
988
 
989
+ export declare function toBentoSlot(grid: TBentoGrid, { allowedSizes, sizes, defaultSize }: TBentoSlotSource): TBentoSlot;
990
+
933
991
  /**
934
992
  * Tooltip is a compound component for displaying contextual hints.
935
993
  * Provides a trigger wrapper and content rendering for short descriptions.
@@ -991,6 +1049,12 @@ declare type TProgressBarLinearProps = Omit<React.HTMLAttributes<HTMLDivElement>
991
1049
  showFillOnZero?: boolean;
992
1050
  };
993
1051
 
1052
+ declare type TProgressBarRingProps = React.HTMLAttributes<HTMLDivElement> & {
1053
+ size?: TArrayElement<typeof PROGRESS_RING_SIZES>;
1054
+ color?: TArrayElement<typeof PROGRESS_BAR_COLORS>;
1055
+ percent: number;
1056
+ };
1057
+
994
1058
  declare type TProgressBarStepsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {
995
1059
  size?: TArrayElement<typeof PROGRESS_BAR_SIZES>;
996
1060
  color?: TArrayElement<typeof PROGRESS_BAR_COLORS>;
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { BENTO_AUTO_SIZES, BENTO_CONFIGURABLE_SIZES, BENTO_GRIDS, BENTO_GRID_NAMES, BENTO_MOBILE_SIZE_BY_DESKTOP, BENTO_SIZES, BENTO_THIN_SIZES, BENTO_TILE_SHAPES, BENTO_TILE_SHAPE_BY_SIZE, arrangeBento, arrangeBentoGrids, countBentoHoles, toBentoSlot } from './bento.js';
1
2
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
3
  import React, { isValidElement, cloneElement, Fragment, useMemo, useState, useCallback, createContext, useEffect, useRef, useContext, useId, Children } from 'react';
3
4
  import { createPortal } from 'react-dom';
@@ -47,21 +48,21 @@ function omit(object, ...keys) {
47
48
  return Object.fromEntries(filteredEntries);
48
49
  }
49
50
 
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";
51
+ const badge = "_badge_7i4v4_2";
52
+ const primary$4 = "_primary_7i4v4_9";
53
+ const secondary$5 = "_secondary_7i4v4_13";
54
+ const glass$1 = "_glass_7i4v4_18";
55
+ const accent$5 = "_accent_7i4v4_23";
56
+ const violet = "_violet_7i4v4_28";
57
+ const pink = "_pink_7i4v4_33";
58
+ const red$1 = "_red_7i4v4_38";
59
+ const orange = "_orange_7i4v4_43";
60
+ const green = "_green_7i4v4_48";
61
+ const neutral$3 = "_neutral_7i4v4_53";
62
+ const lg$8 = "_lg_7i4v4_58";
63
+ const md$a = "_md_7i4v4_65";
64
+ const sm$5 = "_sm_7i4v4_72";
65
+ const pill$2 = "_pill_7i4v4_79";
65
66
  const styles$E = {
66
67
  badge: badge,
67
68
  primary: primary$4,
@@ -72,9 +73,9 @@ const styles$E = {
72
73
  pink: pink,
73
74
  red: red$1,
74
75
  orange: orange,
75
- green: green$1,
76
+ green: green,
76
77
  neutral: neutral$3,
77
- lg: lg$7,
78
+ lg: lg$8,
78
79
  md: md$a,
79
80
  sm: sm$5,
80
81
  pill: pill$2
@@ -1314,8 +1315,8 @@ const secondary$3 = "_secondary_11nu9_31";
1314
1315
  const tertiary = "_tertiary_11nu9_49";
1315
1316
  const line = "_line_11nu9_50";
1316
1317
  const neutral$2 = "_neutral_11nu9_79";
1317
- const white$2 = "_white_11nu9_146";
1318
- const lg$6 = "_lg_11nu9_213";
1318
+ const white$3 = "_white_11nu9_146";
1319
+ const lg$7 = "_lg_11nu9_213";
1319
1320
  const md$9 = "_md_11nu9_222";
1320
1321
  const sm$4 = "_sm_11nu9_240";
1321
1322
  const pill$1 = "_pill_11nu9_249";
@@ -1330,8 +1331,8 @@ const styles$z = {
1330
1331
  tertiary: tertiary,
1331
1332
  line: line,
1332
1333
  neutral: neutral$2,
1333
- white: white$2,
1334
- lg: lg$6,
1334
+ white: white$3,
1335
+ lg: lg$7,
1335
1336
  md: md$9,
1336
1337
  "md-sm": "_md-sm_11nu9_231",
1337
1338
  sm: sm$4,
@@ -1344,13 +1345,13 @@ const styles$z = {
1344
1345
  const buttonFunction = "_buttonFunction_o8iku_2";
1345
1346
  const accent$3 = "_accent_o8iku_10";
1346
1347
  const neutral$1 = "_neutral_o8iku_22";
1347
- const lg$5 = "_lg_o8iku_41";
1348
+ const lg$6 = "_lg_o8iku_41";
1348
1349
  const md$8 = "_md_o8iku_46";
1349
1350
  const styles$y = {
1350
1351
  buttonFunction: buttonFunction,
1351
1352
  accent: accent$3,
1352
1353
  neutral: neutral$1,
1353
- lg: lg$5,
1354
+ lg: lg$6,
1354
1355
  md: md$8
1355
1356
  };
1356
1357
 
@@ -1436,13 +1437,13 @@ function Checkbox({ className, label, indeterminate, ...props }) {
1436
1437
 
1437
1438
  const chip = "_chip_1i1br_2";
1438
1439
  const glass = "_glass_1i1br_36";
1439
- const white$1 = "_white_1i1br_59";
1440
+ const white$2 = "_white_1i1br_59";
1440
1441
  const pill = "_pill_1i1br_67";
1441
1442
  const icon$2 = "_icon_1i1br_71";
1442
1443
  const styles$w = {
1443
1444
  chip: chip,
1444
1445
  glass: glass,
1445
- white: white$1,
1446
+ white: white$2,
1446
1447
  pill: pill,
1447
1448
  icon: icon$2
1448
1449
  };
@@ -1483,22 +1484,22 @@ function Chip({
1483
1484
  }
1484
1485
 
1485
1486
  const root$1 = "_root_ww0fb_2";
1486
- const lg$4 = "_lg_ww0fb_16";
1487
+ const lg$5 = "_lg_ww0fb_16";
1487
1488
  const md$7 = "_md_ww0fb_24";
1488
1489
  const red = "_red_ww0fb_32";
1489
1490
  const accent$2 = "_accent_ww0fb_37";
1490
1491
  const neutral = "_neutral_ww0fb_42";
1491
1492
  const secondary$2 = "_secondary_ww0fb_47";
1492
- const white = "_white_ww0fb_52";
1493
+ const white$1 = "_white_ww0fb_52";
1493
1494
  const styles$v = {
1494
1495
  root: root$1,
1495
- lg: lg$4,
1496
+ lg: lg$5,
1496
1497
  md: md$7,
1497
1498
  red: red,
1498
1499
  accent: accent$2,
1499
1500
  neutral: neutral,
1500
1501
  secondary: secondary$2,
1501
- white: white
1502
+ white: white$1
1502
1503
  };
1503
1504
 
1504
1505
  function Counter({ className, size = "lg", color = "red", ...props }) {
@@ -2612,16 +2613,22 @@ function Pagination(props) {
2612
2613
  }
2613
2614
  Pagination.Item = PaginationItem;
2614
2615
 
2615
- const root = "_root_1lyc4_2";
2616
- const segment = "_segment_1lyc4_10";
2617
- const flexGrow = "_flexGrow_1lyc4_19";
2618
- const fill$1 = "_fill_1lyc4_23";
2619
- const trail = "_trail_1lyc4_28";
2620
- const xs = "_xs_1lyc4_32";
2621
- const sm$2 = "_sm_1lyc4_36";
2622
- const md$5 = "_md_1lyc4_40";
2623
- const accent = "_accent_1lyc4_44";
2624
- const green = "_green_1lyc4_48";
2616
+ const root = "_root_1dvnf_2";
2617
+ const segment = "_segment_1dvnf_10";
2618
+ const flexGrow = "_flexGrow_1dvnf_19";
2619
+ const fill$1 = "_fill_1dvnf_23";
2620
+ const trail = "_trail_1dvnf_28";
2621
+ const xs = "_xs_1dvnf_32";
2622
+ const sm$2 = "_sm_1dvnf_36";
2623
+ const md$5 = "_md_1dvnf_40";
2624
+ const accent = "_accent_1dvnf_44";
2625
+ const white = "_white_1dvnf_48";
2626
+ const ring = "_ring_1dvnf_55";
2627
+ const ringSvg = "_ringSvg_1dvnf_68";
2628
+ const ringTrack = "_ringTrack_1dvnf_76";
2629
+ const ringFill = "_ringFill_1dvnf_81";
2630
+ const ringLabel = "_ringLabel_1dvnf_88";
2631
+ const lg$4 = "_lg_1dvnf_102";
2625
2632
  const styles$l = {
2626
2633
  root: root,
2627
2634
  segment: segment,
@@ -2632,7 +2639,13 @@ const styles$l = {
2632
2639
  sm: sm$2,
2633
2640
  md: md$5,
2634
2641
  accent: accent,
2635
- green: green
2642
+ white: white,
2643
+ ring: ring,
2644
+ ringSvg: ringSvg,
2645
+ ringTrack: ringTrack,
2646
+ ringFill: ringFill,
2647
+ ringLabel: ringLabel,
2648
+ lg: lg$4
2636
2649
  };
2637
2650
 
2638
2651
  function ProgressBarLinear({
@@ -2672,6 +2685,56 @@ function ProgressBarLinear({
2672
2685
  );
2673
2686
  }
2674
2687
 
2688
+ const PROGRESS_RING_STROKE_WIDTHS = {
2689
+ sm: 12,
2690
+ md: 11,
2691
+ lg: 9.5
2692
+ };
2693
+
2694
+ function ProgressBarRing({
2695
+ className,
2696
+ size = "md",
2697
+ color = "accent",
2698
+ percent,
2699
+ children,
2700
+ ...props
2701
+ }) {
2702
+ const clampedPercent = Math.min(100, Math.max(0, percent));
2703
+ const strokeWidth = PROGRESS_RING_STROKE_WIDTHS[size];
2704
+ const radius = 50 - strokeWidth / 2;
2705
+ return /* @__PURE__ */ jsxs(
2706
+ "div",
2707
+ {
2708
+ className: classNames(styles$l.ring, styles$l[size], styles$l[color], className),
2709
+ role: "progressbar",
2710
+ "aria-valuenow": clampedPercent,
2711
+ "aria-valuemin": 0,
2712
+ "aria-valuemax": 100,
2713
+ "aria-valuetext": `${clampedPercent} percent complete`,
2714
+ "aria-label": "Progress",
2715
+ ...props,
2716
+ children: [
2717
+ /* @__PURE__ */ jsxs("svg", { className: styles$l.ringSvg, viewBox: "0 0 100 100", "aria-hidden": "true", children: [
2718
+ /* @__PURE__ */ jsx("circle", { className: styles$l.ringTrack, cx: "50", cy: "50", r: radius, strokeWidth }),
2719
+ Boolean(clampedPercent) && /* @__PURE__ */ jsx(
2720
+ "circle",
2721
+ {
2722
+ className: styles$l.ringFill,
2723
+ cx: "50",
2724
+ cy: "50",
2725
+ r: radius,
2726
+ strokeWidth,
2727
+ pathLength: 100,
2728
+ strokeDasharray: `${clampedPercent} 100`
2729
+ }
2730
+ )
2731
+ ] }),
2732
+ children && /* @__PURE__ */ jsx("span", { className: styles$l.ringLabel, children })
2733
+ ]
2734
+ }
2735
+ );
2736
+ }
2737
+
2675
2738
  function ProgressBarSteps({
2676
2739
  className,
2677
2740
  size = "md",
@@ -2713,6 +2776,7 @@ function ProgressBar(props) {
2713
2776
  return /* @__PURE__ */ jsx(ProgressBarLinear, { ...props });
2714
2777
  }
2715
2778
  ProgressBar.Steps = ProgressBarSteps;
2779
+ ProgressBar.Ring = ProgressBarRing;
2716
2780
 
2717
2781
  const radioWrapper = "_radioWrapper_13xie_2";
2718
2782
  const radio = "_radio_13xie_2";