design-zystem 1.0.391 → 1.0.393

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.
@@ -10,6 +10,7 @@ import * as RadixAvatar from '@radix-ui/react-avatar';
10
10
  import * as RadixCollapsible from '@radix-ui/react-collapsible';
11
11
  import { Drawer as Drawer$1 } from 'vaul';
12
12
  import * as RadixTooltip from '@radix-ui/react-tooltip';
13
+ import * as RadixToggle from '@radix-ui/react-toggle';
13
14
  import { DocumentProps } from 'react-pdf';
14
15
  import * as RadixScrollArea from '@radix-ui/react-scroll-area';
15
16
 
@@ -1243,12 +1244,13 @@ interface PaginationProps {
1243
1244
  /** Structure calquée sur `Pagination`/`PaginationContent`/`PaginationItem` de shadcn (nav > ul > li). */
1244
1245
  declare const Pagination: ({ currentPage, totalItems, itemsPerPage, onPageChange, showSummary, summaryLabel, }: PaginationProps) => react.JSX.Element;
1245
1246
 
1246
- interface TagBubbleProps {
1247
+ type TagBubbleColor = ColorToken | HexColor;
1248
+ interface TagBubbleProps extends Omit<ComponentPropsWithoutRef<typeof RadixToggle.Root>, 'pressed' | 'defaultPressed' | 'onPressedChange' | 'onClick' | 'children' | 'className' | 'type'> {
1247
1249
  label: string;
1248
1250
  hideDot?: boolean;
1249
1251
  active?: boolean;
1250
- activeColor?: ColorToken;
1251
- inactiveColor?: ColorToken;
1252
+ activeColor?: TagBubbleColor;
1253
+ inactiveColor?: TagBubbleColor;
1252
1254
  /** Actif : bordure épaisse + texte `activeColor`, fond en variante claire (ex. `blue_950` → `bg-blue-50`). */
1253
1255
  activeFill?: boolean;
1254
1256
  /** Forme pilule (`rounded-full`) à la place du rectangle arrondi par défaut. */
@@ -1259,7 +1261,7 @@ interface TagBubbleProps {
1259
1261
  className?: string;
1260
1262
  }
1261
1263
  /** Construit sur `@radix-ui/react-toggle` (comme le `Toggle` de shadcn) — chip filtre à deux états, pressable au clavier. */
1262
- declare const TagBubble: ({ label, hideDot, active, activeColor, inactiveColor, activeFill, pill, count, countColor, onClick, className, }: TagBubbleProps) => react.JSX.Element;
1264
+ declare const TagBubble: ({ label, hideDot, active, activeColor, inactiveColor, activeFill, pill, count, countColor, onClick, className, ...rest }: TagBubbleProps) => react.JSX.Element;
1263
1265
 
1264
1266
  interface HistoryChange {
1265
1267
  label: string;
@@ -10,6 +10,7 @@ import * as RadixAvatar from '@radix-ui/react-avatar';
10
10
  import * as RadixCollapsible from '@radix-ui/react-collapsible';
11
11
  import { Drawer as Drawer$1 } from 'vaul';
12
12
  import * as RadixTooltip from '@radix-ui/react-tooltip';
13
+ import * as RadixToggle from '@radix-ui/react-toggle';
13
14
  import { DocumentProps } from 'react-pdf';
14
15
  import * as RadixScrollArea from '@radix-ui/react-scroll-area';
15
16
 
@@ -1243,12 +1244,13 @@ interface PaginationProps {
1243
1244
  /** Structure calquée sur `Pagination`/`PaginationContent`/`PaginationItem` de shadcn (nav > ul > li). */
1244
1245
  declare const Pagination: ({ currentPage, totalItems, itemsPerPage, onPageChange, showSummary, summaryLabel, }: PaginationProps) => react.JSX.Element;
1245
1246
 
1246
- interface TagBubbleProps {
1247
+ type TagBubbleColor = ColorToken | HexColor;
1248
+ interface TagBubbleProps extends Omit<ComponentPropsWithoutRef<typeof RadixToggle.Root>, 'pressed' | 'defaultPressed' | 'onPressedChange' | 'onClick' | 'children' | 'className' | 'type'> {
1247
1249
  label: string;
1248
1250
  hideDot?: boolean;
1249
1251
  active?: boolean;
1250
- activeColor?: ColorToken;
1251
- inactiveColor?: ColorToken;
1252
+ activeColor?: TagBubbleColor;
1253
+ inactiveColor?: TagBubbleColor;
1252
1254
  /** Actif : bordure épaisse + texte `activeColor`, fond en variante claire (ex. `blue_950` → `bg-blue-50`). */
1253
1255
  activeFill?: boolean;
1254
1256
  /** Forme pilule (`rounded-full`) à la place du rectangle arrondi par défaut. */
@@ -1259,7 +1261,7 @@ interface TagBubbleProps {
1259
1261
  className?: string;
1260
1262
  }
1261
1263
  /** Construit sur `@radix-ui/react-toggle` (comme le `Toggle` de shadcn) — chip filtre à deux états, pressable au clavier. */
1262
- declare const TagBubble: ({ label, hideDot, active, activeColor, inactiveColor, activeFill, pill, count, countColor, onClick, className, }: TagBubbleProps) => react.JSX.Element;
1264
+ declare const TagBubble: ({ label, hideDot, active, activeColor, inactiveColor, activeFill, pill, count, countColor, onClick, className, ...rest }: TagBubbleProps) => react.JSX.Element;
1263
1265
 
1264
1266
  interface HistoryChange {
1265
1267
  label: string;
package/dist/ui/index.js CHANGED
@@ -2235,6 +2235,7 @@ var Modal = ({
2235
2235
  RadixDialog.Overlay,
2236
2236
  {
2237
2237
  ref: overlayRef,
2238
+ "data-drawer-keep-open": true,
2238
2239
  onClick: (event) => event.stopPropagation(),
2239
2240
  className: cn(
2240
2241
  "fixed inset-0 z-40",
@@ -4145,6 +4146,7 @@ var CollapsibleContent = (_a) => {
4145
4146
  // src/ui/components/ui/Drawer.tsx
4146
4147
  var import_react27 = require("react");
4147
4148
  var import_vaul = require("vaul");
4149
+ var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
4148
4150
 
4149
4151
  // src/ui/lib/drawer/nestedDrawerAttributes.ts
4150
4152
  var NESTED_DRAWER_ATTRIBUTES = {
@@ -4254,56 +4256,66 @@ var Drawer = ({
4254
4256
  });
4255
4257
  return () => cancelAnimationFrame(frame);
4256
4258
  }, [modal, open]);
4259
+ const closeOnDismiss = (next) => !next && closeDrawer();
4260
+ const drawerPortal = /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_vaul.Drawer.Portal, { children: [
4261
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4262
+ import_vaul.Drawer.Overlay,
4263
+ {
4264
+ ref: overlayRef,
4265
+ onClick: (event) => event.stopPropagation(),
4266
+ className: cn(
4267
+ "fixed inset-0 z-40 bg-black/35 data-[stacked]:bg-transparent",
4268
+ overlayClassName
4269
+ )
4270
+ }
4271
+ ),
4272
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4273
+ import_vaul.Drawer.Content,
4274
+ __spreadProps(__spreadValues({
4275
+ ref: (node) => {
4276
+ contentRef.current = node;
4277
+ setPanel(node);
4278
+ }
4279
+ }, { [NESTED_DRAWER_ATTRIBUTES.panel]: "" }), {
4280
+ onPointerDownOutside: (event) => {
4281
+ const target = event.target;
4282
+ if (target && belongsToLayerAbove(target)) event.preventDefault();
4283
+ },
4284
+ onClick: (event) => event.stopPropagation(),
4285
+ className: cn(
4286
+ "fixed z-50 flex flex-col gap-4 bg-white p-6 outline-none",
4287
+ // vaul prolonge le panneau d'un ::after opaque de 200% (effet
4288
+ // élastique d'un panneau collé au bord) : sur un panneau qui flotte,
4289
+ // il déborde dans la marge et forme une barre blanche jusqu'au bord
4290
+ // de l'écran. `!` car son sélecteur est plus spécifique que la classe.
4291
+ "after:!hidden",
4292
+ "shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)]",
4293
+ "transition-[transform,filter] duration-500",
4294
+ "data-[receded]:-translate-x-9 data-[receded]:scale-[0.965] data-[receded]:brightness-[.82]",
4295
+ CONTENT_POSITION[direction],
4296
+ className
4297
+ ),
4298
+ style: isVertical ? { width: size, maxWidth: "calc(90vw - 16px)" } : { height: size, maxHeight: "calc(90vh - 16px)" },
4299
+ children
4300
+ })
4301
+ )
4302
+ ] });
4257
4303
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4258
4304
  import_vaul.Drawer.Root,
4259
4305
  {
4260
4306
  direction,
4261
4307
  modal,
4262
4308
  open,
4263
- onOpenChange: (next) => !next && closeDrawer(),
4264
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_vaul.Drawer.Portal, { children: [
4265
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4266
- import_vaul.Drawer.Overlay,
4267
- {
4268
- ref: overlayRef,
4269
- onClick: (event) => event.stopPropagation(),
4270
- className: cn(
4271
- "fixed inset-0 z-40 bg-black/35 data-[stacked]:bg-transparent",
4272
- overlayClassName
4273
- )
4274
- }
4275
- ),
4276
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4277
- import_vaul.Drawer.Content,
4278
- __spreadProps(__spreadValues({
4279
- ref: (node) => {
4280
- contentRef.current = node;
4281
- setPanel(node);
4282
- }
4283
- }, { [NESTED_DRAWER_ATTRIBUTES.panel]: "" }), {
4284
- onPointerDownOutside: (event) => {
4285
- const target = event.target;
4286
- if (target && belongsToLayerAbove(target)) event.preventDefault();
4287
- },
4288
- onClick: (event) => event.stopPropagation(),
4289
- className: cn(
4290
- "fixed z-50 flex flex-col gap-4 bg-white p-6 outline-none",
4291
- // vaul prolonge le panneau d'un ::after opaque de 200% (effet
4292
- // élastique d'un panneau collé au bord) : sur un panneau qui flotte,
4293
- // il déborde dans la marge et forme une barre blanche jusqu'au bord
4294
- // de l'écran. `!` car son sélecteur est plus spécifique que la classe.
4295
- "after:!hidden",
4296
- "shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)]",
4297
- "transition-[transform,filter] duration-500",
4298
- "data-[receded]:-translate-x-9 data-[receded]:scale-[0.965] data-[receded]:brightness-[.82]",
4299
- CONTENT_POSITION[direction],
4300
- className
4301
- ),
4302
- style: isVertical ? { width: size, maxWidth: "calc(90vw - 16px)" } : { height: size, maxHeight: "calc(90vh - 16px)" },
4303
- children
4304
- })
4305
- )
4306
- ] })
4309
+ onOpenChange: closeOnDismiss,
4310
+ children: modal ? drawerPortal : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4311
+ DialogPrimitive.Root,
4312
+ {
4313
+ modal: false,
4314
+ open,
4315
+ onOpenChange: closeOnDismiss,
4316
+ children: drawerPortal
4317
+ }
4318
+ )
4307
4319
  }
4308
4320
  );
4309
4321
  };
@@ -5951,33 +5963,49 @@ var BORDER_CLASS = {
5951
5963
  "orange-600": "border-orange-600",
5952
5964
  "purple-700": "border-purple-700"
5953
5965
  };
5954
- var TagBubble = ({
5955
- label,
5956
- hideDot = false,
5957
- active = false,
5958
- activeColor = "blue-700",
5959
- inactiveColor = "grey-600",
5960
- activeFill = false,
5961
- pill = false,
5962
- count,
5963
- countColor = "green-700",
5964
- onClick,
5965
- className
5966
- }) => {
5966
+ var isHexColor = (color) => color.startsWith("#");
5967
+ var TagBubble = (_a) => {
5968
+ var _b = _a, {
5969
+ label,
5970
+ hideDot = false,
5971
+ active = false,
5972
+ activeColor = "blue-700",
5973
+ inactiveColor = "grey-600",
5974
+ activeFill = false,
5975
+ pill = false,
5976
+ count,
5977
+ countColor = "green-700",
5978
+ onClick,
5979
+ className
5980
+ } = _b, rest = __objRest(_b, [
5981
+ "label",
5982
+ "hideDot",
5983
+ "active",
5984
+ "activeColor",
5985
+ "inactiveColor",
5986
+ "activeFill",
5987
+ "pill",
5988
+ "count",
5989
+ "countColor",
5990
+ "onClick",
5991
+ "className"
5992
+ ]);
5967
5993
  const showCount = count !== void 0 && count !== null;
5968
5994
  const filled = activeFill && active;
5995
+ const dotColor = active ? activeColor : inactiveColor;
5996
+ const filledHexColor = filled && isHexColor(activeColor) ? activeColor : void 0;
5969
5997
  return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
5970
5998
  RadixToggle.Root,
5971
- {
5999
+ __spreadProps(__spreadValues({}, rest), {
5972
6000
  type: "button",
5973
6001
  pressed: active,
5974
6002
  onClick,
6003
+ style: __spreadValues({ borderColor: filledHexColor }, rest.style),
5975
6004
  className: cn(
5976
6005
  "inline-flex items-center gap-2 border px-2.5 py-1.5 outline-none",
5977
6006
  pill ? "rounded-full" : "rounded-[6px]",
5978
6007
  filled ? cn(
5979
- LIGHT_BG_CLASS[activeColor],
5980
- BORDER_CLASS[activeColor],
6008
+ isHexColor(activeColor) ? "bg-white" : [LIGHT_BG_CLASS[activeColor], BORDER_CLASS[activeColor]],
5981
6009
  "border-2"
5982
6010
  ) : "border-grey-200 bg-white",
5983
6011
  "focus-visible:ring-2 focus-visible:ring-blue-200",
@@ -5989,8 +6017,9 @@ var TagBubble = ({
5989
6017
  {
5990
6018
  className: cn(
5991
6019
  "h-2 w-2 shrink-0 rounded-full",
5992
- DOT_CLASS[active ? activeColor : inactiveColor]
5993
- )
6020
+ !isHexColor(dotColor) && DOT_CLASS[dotColor]
6021
+ ),
6022
+ style: isHexColor(dotColor) ? { backgroundColor: dotColor } : void 0
5994
6023
  }
5995
6024
  ),
5996
6025
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
@@ -5998,14 +6027,15 @@ var TagBubble = ({
5998
6027
  {
5999
6028
  className: cn(
6000
6029
  "whitespace-nowrap text-xs font-semibold",
6001
- filled ? TEXT_CLASS2[activeColor] : "text-neutral-800"
6030
+ filled ? !isHexColor(activeColor) && TEXT_CLASS2[activeColor] : "text-neutral-800"
6002
6031
  ),
6032
+ style: { color: filledHexColor },
6003
6033
  children: label
6004
6034
  }
6005
6035
  ),
6006
6036
  showCount && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Badge, { theme: countColor, size: "s", children: count })
6007
6037
  ]
6008
- }
6038
+ })
6009
6039
  );
6010
6040
  };
6011
6041
 
package/dist/ui/index.mjs CHANGED
@@ -2047,6 +2047,7 @@ var Modal = ({
2047
2047
  RadixDialog.Overlay,
2048
2048
  {
2049
2049
  ref: overlayRef,
2050
+ "data-drawer-keep-open": true,
2050
2051
  onClick: (event) => event.stopPropagation(),
2051
2052
  className: cn(
2052
2053
  "fixed inset-0 z-40",
@@ -3968,6 +3969,7 @@ var CollapsibleContent = (_a) => {
3968
3969
  // src/ui/components/ui/Drawer.tsx
3969
3970
  import { useEffect as useEffect6, useRef as useRef7, useState as useState7 } from "react";
3970
3971
  import { Drawer as VaulDrawer } from "vaul";
3972
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3971
3973
 
3972
3974
  // src/ui/lib/drawer/nestedDrawerAttributes.ts
3973
3975
  var NESTED_DRAWER_ATTRIBUTES = {
@@ -4077,56 +4079,66 @@ var Drawer = ({
4077
4079
  });
4078
4080
  return () => cancelAnimationFrame(frame);
4079
4081
  }, [modal, open]);
4082
+ const closeOnDismiss = (next) => !next && closeDrawer();
4083
+ const drawerPortal = /* @__PURE__ */ jsxs24(VaulDrawer.Portal, { children: [
4084
+ /* @__PURE__ */ jsx48(
4085
+ VaulDrawer.Overlay,
4086
+ {
4087
+ ref: overlayRef,
4088
+ onClick: (event) => event.stopPropagation(),
4089
+ className: cn(
4090
+ "fixed inset-0 z-40 bg-black/35 data-[stacked]:bg-transparent",
4091
+ overlayClassName
4092
+ )
4093
+ }
4094
+ ),
4095
+ /* @__PURE__ */ jsx48(
4096
+ VaulDrawer.Content,
4097
+ __spreadProps(__spreadValues({
4098
+ ref: (node) => {
4099
+ contentRef.current = node;
4100
+ setPanel(node);
4101
+ }
4102
+ }, { [NESTED_DRAWER_ATTRIBUTES.panel]: "" }), {
4103
+ onPointerDownOutside: (event) => {
4104
+ const target = event.target;
4105
+ if (target && belongsToLayerAbove(target)) event.preventDefault();
4106
+ },
4107
+ onClick: (event) => event.stopPropagation(),
4108
+ className: cn(
4109
+ "fixed z-50 flex flex-col gap-4 bg-white p-6 outline-none",
4110
+ // vaul prolonge le panneau d'un ::after opaque de 200% (effet
4111
+ // élastique d'un panneau collé au bord) : sur un panneau qui flotte,
4112
+ // il déborde dans la marge et forme une barre blanche jusqu'au bord
4113
+ // de l'écran. `!` car son sélecteur est plus spécifique que la classe.
4114
+ "after:!hidden",
4115
+ "shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)]",
4116
+ "transition-[transform,filter] duration-500",
4117
+ "data-[receded]:-translate-x-9 data-[receded]:scale-[0.965] data-[receded]:brightness-[.82]",
4118
+ CONTENT_POSITION[direction],
4119
+ className
4120
+ ),
4121
+ style: isVertical ? { width: size, maxWidth: "calc(90vw - 16px)" } : { height: size, maxHeight: "calc(90vh - 16px)" },
4122
+ children
4123
+ })
4124
+ )
4125
+ ] });
4080
4126
  return /* @__PURE__ */ jsx48(
4081
4127
  VaulDrawer.Root,
4082
4128
  {
4083
4129
  direction,
4084
4130
  modal,
4085
4131
  open,
4086
- onOpenChange: (next) => !next && closeDrawer(),
4087
- children: /* @__PURE__ */ jsxs24(VaulDrawer.Portal, { children: [
4088
- /* @__PURE__ */ jsx48(
4089
- VaulDrawer.Overlay,
4090
- {
4091
- ref: overlayRef,
4092
- onClick: (event) => event.stopPropagation(),
4093
- className: cn(
4094
- "fixed inset-0 z-40 bg-black/35 data-[stacked]:bg-transparent",
4095
- overlayClassName
4096
- )
4097
- }
4098
- ),
4099
- /* @__PURE__ */ jsx48(
4100
- VaulDrawer.Content,
4101
- __spreadProps(__spreadValues({
4102
- ref: (node) => {
4103
- contentRef.current = node;
4104
- setPanel(node);
4105
- }
4106
- }, { [NESTED_DRAWER_ATTRIBUTES.panel]: "" }), {
4107
- onPointerDownOutside: (event) => {
4108
- const target = event.target;
4109
- if (target && belongsToLayerAbove(target)) event.preventDefault();
4110
- },
4111
- onClick: (event) => event.stopPropagation(),
4112
- className: cn(
4113
- "fixed z-50 flex flex-col gap-4 bg-white p-6 outline-none",
4114
- // vaul prolonge le panneau d'un ::after opaque de 200% (effet
4115
- // élastique d'un panneau collé au bord) : sur un panneau qui flotte,
4116
- // il déborde dans la marge et forme une barre blanche jusqu'au bord
4117
- // de l'écran. `!` car son sélecteur est plus spécifique que la classe.
4118
- "after:!hidden",
4119
- "shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)]",
4120
- "transition-[transform,filter] duration-500",
4121
- "data-[receded]:-translate-x-9 data-[receded]:scale-[0.965] data-[receded]:brightness-[.82]",
4122
- CONTENT_POSITION[direction],
4123
- className
4124
- ),
4125
- style: isVertical ? { width: size, maxWidth: "calc(90vw - 16px)" } : { height: size, maxHeight: "calc(90vh - 16px)" },
4126
- children
4127
- })
4128
- )
4129
- ] })
4132
+ onOpenChange: closeOnDismiss,
4133
+ children: modal ? drawerPortal : /* @__PURE__ */ jsx48(
4134
+ DialogPrimitive.Root,
4135
+ {
4136
+ modal: false,
4137
+ open,
4138
+ onOpenChange: closeOnDismiss,
4139
+ children: drawerPortal
4140
+ }
4141
+ )
4130
4142
  }
4131
4143
  );
4132
4144
  };
@@ -5780,33 +5792,49 @@ var BORDER_CLASS = {
5780
5792
  "orange-600": "border-orange-600",
5781
5793
  "purple-700": "border-purple-700"
5782
5794
  };
5783
- var TagBubble = ({
5784
- label,
5785
- hideDot = false,
5786
- active = false,
5787
- activeColor = "blue-700",
5788
- inactiveColor = "grey-600",
5789
- activeFill = false,
5790
- pill = false,
5791
- count,
5792
- countColor = "green-700",
5793
- onClick,
5794
- className
5795
- }) => {
5795
+ var isHexColor = (color) => color.startsWith("#");
5796
+ var TagBubble = (_a) => {
5797
+ var _b = _a, {
5798
+ label,
5799
+ hideDot = false,
5800
+ active = false,
5801
+ activeColor = "blue-700",
5802
+ inactiveColor = "grey-600",
5803
+ activeFill = false,
5804
+ pill = false,
5805
+ count,
5806
+ countColor = "green-700",
5807
+ onClick,
5808
+ className
5809
+ } = _b, rest = __objRest(_b, [
5810
+ "label",
5811
+ "hideDot",
5812
+ "active",
5813
+ "activeColor",
5814
+ "inactiveColor",
5815
+ "activeFill",
5816
+ "pill",
5817
+ "count",
5818
+ "countColor",
5819
+ "onClick",
5820
+ "className"
5821
+ ]);
5796
5822
  const showCount = count !== void 0 && count !== null;
5797
5823
  const filled = activeFill && active;
5824
+ const dotColor = active ? activeColor : inactiveColor;
5825
+ const filledHexColor = filled && isHexColor(activeColor) ? activeColor : void 0;
5798
5826
  return /* @__PURE__ */ jsxs37(
5799
5827
  RadixToggle.Root,
5800
- {
5828
+ __spreadProps(__spreadValues({}, rest), {
5801
5829
  type: "button",
5802
5830
  pressed: active,
5803
5831
  onClick,
5832
+ style: __spreadValues({ borderColor: filledHexColor }, rest.style),
5804
5833
  className: cn(
5805
5834
  "inline-flex items-center gap-2 border px-2.5 py-1.5 outline-none",
5806
5835
  pill ? "rounded-full" : "rounded-[6px]",
5807
5836
  filled ? cn(
5808
- LIGHT_BG_CLASS[activeColor],
5809
- BORDER_CLASS[activeColor],
5837
+ isHexColor(activeColor) ? "bg-white" : [LIGHT_BG_CLASS[activeColor], BORDER_CLASS[activeColor]],
5810
5838
  "border-2"
5811
5839
  ) : "border-grey-200 bg-white",
5812
5840
  "focus-visible:ring-2 focus-visible:ring-blue-200",
@@ -5818,8 +5846,9 @@ var TagBubble = ({
5818
5846
  {
5819
5847
  className: cn(
5820
5848
  "h-2 w-2 shrink-0 rounded-full",
5821
- DOT_CLASS[active ? activeColor : inactiveColor]
5822
- )
5849
+ !isHexColor(dotColor) && DOT_CLASS[dotColor]
5850
+ ),
5851
+ style: isHexColor(dotColor) ? { backgroundColor: dotColor } : void 0
5823
5852
  }
5824
5853
  ),
5825
5854
  /* @__PURE__ */ jsx73(
@@ -5827,14 +5856,15 @@ var TagBubble = ({
5827
5856
  {
5828
5857
  className: cn(
5829
5858
  "whitespace-nowrap text-xs font-semibold",
5830
- filled ? TEXT_CLASS2[activeColor] : "text-neutral-800"
5859
+ filled ? !isHexColor(activeColor) && TEXT_CLASS2[activeColor] : "text-neutral-800"
5831
5860
  ),
5861
+ style: { color: filledHexColor },
5832
5862
  children: label
5833
5863
  }
5834
5864
  ),
5835
5865
  showCount && /* @__PURE__ */ jsx73(Badge, { theme: countColor, size: "s", children: count })
5836
5866
  ]
5837
- }
5867
+ })
5838
5868
  );
5839
5869
  };
5840
5870
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "design-zystem",
3
- "version": "1.0.391",
3
+ "version": "1.0.393",
4
4
  "description": "A React design system of importable components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",