@telepix-lab/telepix-ui 0.5.1 → 0.6.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.
@@ -1,6 +1,6 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import React__default, { useState, useLayoutEffect, forwardRef, createElement, createContext, useId as useId$1, useContext, useEffect, useRef, useCallback } from 'react';
3
+ import React__default, { useState, useLayoutEffect, forwardRef, createElement, createContext, useId as useId$1, useContext, useEffect, useRef, Fragment as Fragment$1, useCallback } from 'react';
4
4
  import * as ReactDOM from 'react-dom';
5
5
  import ReactDOM__default from 'react-dom';
6
6
  import { DayPicker, getDefaultClassNames } from 'react-day-picker';
@@ -12049,6 +12049,39 @@ function cn(...inputs) {
12049
12049
  return twMerge(clsx(inputs));
12050
12050
  }
12051
12051
 
12052
+ const StateColorContainer = ({ groupName = "state", isInverted, className, }) => {
12053
+ const fillClassMap = {
12054
+ wrapper: {
12055
+ normal: "group-hover/wrapper:bg-fill-hovered bg-fill-default group-active/wrapper:bg-fill-pressed group-aria-selected/wrapper:bg-fill-selected",
12056
+ invert: "group-hover/wrapper:bg-fill-invert-hovered group-active/wrapper:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/wrapper:bg-fill-invert-selected",
12057
+ },
12058
+ item: {
12059
+ normal: "group-hover/item:bg-fill-hovered bg-fill-default group-active/item:bg-fill-pressed group-aria-selected/item:bg-fill-selected",
12060
+ invert: "group-hover/item:bg-fill-invert-hovered group-active/item:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/item:bg-fill-invert-selected",
12061
+ },
12062
+ option: {
12063
+ normal: "group-hover/option:bg-fill-hovered bg-fill-default group-active/option:bg-fill-pressed group-aria-selected/option:bg-fill-selected",
12064
+ invert: "group-hover/option:bg-fill-invert-hovered group-active/option:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/option:bg-fill-invert-selected",
12065
+ },
12066
+ tab: {
12067
+ normal: "group-hover/tab:bg-fill-hovered bg-fill-default group-active/tab:bg-fill-pressed group-aria-selected/tab:bg-fill-selected",
12068
+ invert: "group-hover/tab:bg-fill-invert-hovered group-active/tab:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/tab:bg-fill-invert-selected",
12069
+ },
12070
+ chip: {
12071
+ normal: "group-hover/chip:bg-fill-hovered bg-fill-default group-active/chip:bg-fill-pressed group-aria-selected/chip:bg-fill-selected",
12072
+ invert: "group-hover/chip:bg-fill-invert-hovered group-active/chip:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/chip:bg-fill-invert-selected",
12073
+ },
12074
+ state: {
12075
+ normal: "group-hover/state:bg-fill-hovered bg-fill-default group-active/state:bg-fill-pressed group-aria-selected/state:bg-fill-selected",
12076
+ invert: "group-hover/state:bg-fill-invert-hovered group-active/state:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/state:bg-fill-invert-selected",
12077
+ },
12078
+ };
12079
+ const group = groupName || "state";
12080
+ const mode = isInverted ? "invert" : "normal";
12081
+ const actionClass = fillClassMap[group]?.[mode] ?? fillClassMap.state[mode];
12082
+ return (jsx("div", { className: cn("absolute left-0 top-0 right-0 bottom-0 inset-0 pointer-events-none z-0", actionClass, className) }));
12083
+ };
12084
+
12052
12085
  const RadioGroupContext = createContext({ value: "", disabled: false });
12053
12086
  /**
12054
12087
  * 라디오 버튼 그룹을 생성하는 컴포넌트입니다.<br/>
@@ -12076,7 +12109,8 @@ const RadioItem = forwardRef(({ label, labelClassName, wrapperClassName, ...rest
12076
12109
  const randomId = id ?? useId$1();
12077
12110
  const isSelected = useContext(RadioGroupContext).value === value;
12078
12111
  const isDisabled = useContext(RadioGroupContext).disabled || disabled || false;
12079
- return (jsxs("div", { className: cn("flex items-center gap-1.5 cursor-pointer bg-transparent border-none", wrapperClassName), children: [jsx(Item2, { ...restProps, id: randomId, ref: ref, value: value, disabled: isDisabled, className: cn("bg-transparent border-none p-0 flex items-center outline-none justify-center cursor-pointer", className), children: isDisabled ? (jsx(CircleBackslashIcon, { className: "stroke-comp-disabled" })) : isSelected ? (jsx(RadiobuttonIcon, { className: "stroke-comp-mono-selected" })) : (jsx(CircleIcon, { className: "stroke-comp-mono-default" })) }), label && (jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", isDisabled && "text-comp-disabled cursor-default", isSelected && "text-comp-mono-selected", labelClassName), htmlFor: randomId, children: label }))] }));
12112
+ return (jsxs("div", { className: cn("flex items-center gap-1.5 cursor-pointer bg-transparent border-none py-1 pr-2 group/state relative", wrapperClassName), children: [jsx(Item2, { ...restProps, id: randomId, ref: ref, value: value, disabled: isDisabled, className: cn("bg-transparent border-none p-1.5 flex items-center outline-none justify-center cursor-pointer", className), children: isDisabled ? (jsx(CircleBackslashIcon, { className: "text-comp-disabled" })) : isSelected ? (jsx(RadiobuttonIcon, { className: "text-comp-mono-default" })) : (jsx(CircleIcon, { className: "text-comp-mono-default" })) }), label && (jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", isDisabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: randomId, children: label })), jsx(StateColorContainer, { className: cn("rounded-lg", isDisabled &&
12113
+ "bg-fill-disabled group-hover/state:bg-fill-disabled group-active/state:bg-fill-disabled") })] }));
12080
12114
  });
12081
12115
  RadioGroup.displayName = "RadioGroup";
12082
12116
  RadioItem.displayName = "RadioItem";
@@ -12283,7 +12317,7 @@ const Checkbox = forwardRef(({ label, labelClassName, wrapperClassName, ...rest
12283
12317
  return (jsx(SquareMinus, { className: "size-full fill-transparent text-comp-disabled cursor-default" }));
12284
12318
  }
12285
12319
  else if (checked) {
12286
- return (jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "size-full fill-transparent text-comp-mono-selected", children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M1 2.1821C1 1.52924 1.52925 1 2.1821 1H13.6879C14.3408 1 14.87 1.52925 14.87 2.1821V13.6879C14.87 14.3408 14.3408 14.87 13.6879 14.87H2.1821C1.52924 14.87 1 14.3408 1 13.6879V2.1821ZM11.3429 4.58303C11.6121 4.76774 11.6805 5.13566 11.4958 5.4048L7.38613 11.393C7.28127 11.5457 7.11082 11.6405 6.9257 11.6489C6.74058 11.6574 6.56222 11.5785 6.44391 11.4359L4.0914 8.59999C3.88299 8.34876 3.9177 7.97614 4.16894 7.76772C4.42018 7.55931 4.79279 7.59403 5.00121 7.84526L6.85419 10.079L10.5211 4.73591C10.7059 4.46676 11.0738 4.39832 11.3429 4.58303Z", fill: "currentColor" }) }));
12320
+ return (jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "size-full fill-transparent text-comp-mono-default", children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M1 2.1821C1 1.52924 1.52925 1 2.1821 1H13.6879C14.3408 1 14.87 1.52925 14.87 2.1821V13.6879C14.87 14.3408 14.3408 14.87 13.6879 14.87H2.1821C1.52924 14.87 1 14.3408 1 13.6879V2.1821ZM11.3429 4.58303C11.6121 4.76774 11.6805 5.13566 11.4958 5.4048L7.38613 11.393C7.28127 11.5457 7.11082 11.6405 6.9257 11.6489C6.74058 11.6574 6.56222 11.5785 6.44391 11.4359L4.0914 8.59999C3.88299 8.34876 3.9177 7.97614 4.16894 7.76772C4.42018 7.55931 4.79279 7.59403 5.00121 7.84526L6.85419 10.079L10.5211 4.73591C10.7059 4.46676 11.0738 4.39832 11.3429 4.58303Z", fill: "currentColor" }) }));
12287
12321
  }
12288
12322
  return (jsx(BoxIcon, { className: "size-full fill-transparent text-comp-mono-default" }));
12289
12323
  };
@@ -12291,7 +12325,9 @@ const Checkbox = forwardRef(({ label, labelClassName, wrapperClassName, ...rest
12291
12325
  setChecked(value);
12292
12326
  onChange?.(value);
12293
12327
  };
12294
- return (jsxs("div", { className: cn("flex items-center gap-2.5", wrapperClassName), children: [jsx(Checkbox$1, { ref: ref, id: id ?? randomId, ...rest, checked: defaultChecked ? checked : isChecked, className: cn("size-4 p-0 cursor-pointer border-transparent bg-transparent", className), onCheckedChange: onCheckedChange, children: renderCheckboxIcon(defaultChecked ? checked : isChecked, disabled) }), jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", disabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: id ?? randomId, "aria-disabled": disabled, children: label })] }));
12328
+ return (jsxs("div", { className: cn("flex items-center gap-2.5 pr-3 pl-1.5 py-1 relative group/state rounded-lg", wrapperClassName), children: [jsx(Checkbox$1, { ref: ref, id: id ?? randomId, ...rest, checked: defaultChecked ? checked : isChecked, className: cn("size-4 p-0 cursor-pointer border-transparent bg-transparent", className), onCheckedChange: onCheckedChange, children: renderCheckboxIcon(defaultChecked ? checked : isChecked, disabled) }), jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", disabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: id ?? randomId, "aria-disabled": disabled, children: label }), jsx(StateColorContainer, { className: cn("rounded-lg", disabled
12329
+ ? "bg-fill-default group-hover/state:bg-fill-default group-active/state:bg-fill-default"
12330
+ : "") })] }));
12295
12331
  });
12296
12332
  Checkbox.displayName = "Checkbox";
12297
12333
 
@@ -12361,7 +12397,7 @@ const DialogTrigger = (props) => {
12361
12397
  const DialogPortal = Portal$3;
12362
12398
  const DialogClose = Close;
12363
12399
  const DialogContent = ({ className, overlayClassName, children, ...rest }) => {
12364
- return (jsxs(Portal$3, { children: [jsx(Overlay, { className: cn("fixed top-0 bottom-0 left-0 right-0 bg-pure-black-50 inset-0 z-[1000] animate-fade-in", overlayClassName) }), jsxs(Content$1, { className: cn("fixed top-1/2 left-1/2 z-[1001] animate-content-fade-in", className), ...rest, children: [jsx(Title, { "data-slot": "dialog-title", ...rest, children: jsx(Root$4, {}) }), jsx(Description, {}), jsx(Card, { children: children })] })] }));
12400
+ return (jsxs(Portal$3, { children: [jsx(Overlay, { className: cn("fixed top-0 bottom-0 left-0 right-0 bg-page-fade inset-0 z-[1000] animate-fade-in", overlayClassName) }), jsxs(Content$1, { className: cn("fixed top-1/2 left-1/2 z-[1001] animate-content-fade-in", className), ...rest, children: [jsx(Title, { "data-slot": "dialog-title", ...rest, children: jsx(Root$4, {}) }), jsx(Description, {}), jsx(Card, { children: children })] })] }));
12365
12401
  };
12366
12402
  const DialogDescription = (props) => {
12367
12403
  return jsx(CardBody, { ...props, children: props.children });
@@ -12377,8 +12413,10 @@ const DialogBody = ({ className, ...rest }) => {
12377
12413
  const SELECT_TRIGGER_VARIANTS = {
12378
12414
  OUTLINE: "outline",
12379
12415
  GHOST: "ghost",
12416
+ FILLED: "filled",
12380
12417
  };
12381
12418
  const SELECT_TRIGGER_SIZES = {
12419
+ COMPACT: "compact",
12382
12420
  REGULAR: "regular",
12383
12421
  LARGE: "large",
12384
12422
  };
@@ -12405,15 +12443,13 @@ const SELECT_TRIGGER_SIZES = {
12405
12443
  const Select = (props) => jsx(Root2, { ...props });
12406
12444
  const SelectTrigger = ({ placeholder, variant = "outline", size = "regular", icon, ...rest }) => {
12407
12445
  const { className, ...otherProps } = rest;
12408
- return (jsxs(Trigger$1, { className: cn(`flex items-center justify-between w-full bg-fill-mono-default outline-none cursor-pointer text-comp-mono-default
12409
- hover:not-[:is([data-disabled])]:bg-fill-mono-hovered hover:not-[:is([data-disabled])]:text-comp-mono-hovered
12410
- [&:is([data-disabled])]:text-comp-disabled [&:is([data-placeholder]):not(:is([data-disabled]))]:text-comp-mono-subtle-default
12411
- [&:is([data-placeholder]):not(:is([data-disabled]))]:hover:text-comp-mono-subtle-hovered
12412
- `, variant === SELECT_TRIGGER_VARIANTS.OUTLINE &&
12413
- "border border-border-bound [&:not(:is([data-placeholder]))]:border-border-focused [&:is([data-disabled])]:border-transparent rounded-sm py-0 px-2", variant === SELECT_TRIGGER_VARIANTS.GHOST &&
12414
- "border border-transparent py-0 px-2 has-[button:has([data-placeholder])]:border-comp-mono-subtle-default", size === SELECT_TRIGGER_SIZES.REGULAR &&
12446
+ return (jsxs(Trigger$1, { className: cn("relative group/state flex items-center justify-between w-full bg-page-l-null outline-none cursor-pointer text-comp-mono-default data-[placeholder]:not-disabled:text-comp-mono-subtle-default data-disabled:text-comp-disabled rounded-md", variant === SELECT_TRIGGER_VARIANTS.OUTLINE &&
12447
+ "border border-border-bound [&:not(:is([data-placeholder]))]:border-border-focused data-disabled:border-transparent py-0 px-2", variant === SELECT_TRIGGER_VARIANTS.GHOST &&
12448
+ "border border-transparent py-0 px-2 [&:not(:is([data-placeholder]))]:border-border-focused data-disabled:border-transparent", variant === SELECT_TRIGGER_VARIANTS.FILLED &&
12449
+ "border border-transparent py-0 px-2 bg-page-l3 [&:not(:is([data-placeholder]))]:border-border-focused [&:not(:is([data-placeholder]))]:bg-page-l2 data-disabled:border-transparent data-disabled:bg-page-l-null", size === SELECT_TRIGGER_SIZES.COMPACT &&
12450
+ "py-1.5 px-1 text-label font-medium leading-label-compact gap-1", size === SELECT_TRIGGER_SIZES.REGULAR &&
12415
12451
  "py-1.5 px-2 text-body font-medium leading-body-compact gap-2", size === SELECT_TRIGGER_SIZES.LARGE &&
12416
- "py-3 px-4 text-base leading-base-compact font-medium gap-3", className), ...otherProps, children: [icon && jsx("div", { className: "flex items-center justify-center", children: icon }), jsx(Value, { placeholder: placeholder }), jsx(Icon$1, { className: "flex items-center justify-center", children: jsx(CaretDownIcon, {}) })] }));
12452
+ "py-3 px-4 text-base leading-base-compact font-medium gap-3", className), ...otherProps, children: [icon && jsx("div", { className: "flex items-center justify-center", children: icon }), jsx(Value, { placeholder: placeholder }), jsx(Icon$1, { className: "flex items-center justify-center text-comp-mono-default group-disabled/state:text-comp-disabled", children: jsx(CaretDownIcon, {}) }), jsx(StateColorContainer, { className: "rounded-md group-data-disabled/state:bg-fill-default" })] }));
12417
12453
  };
12418
12454
  const SelectContent = ({ children, viewportClassName, viewportWrapperClassName, ...rest }) => {
12419
12455
  const { className, position, sideOffset, ...otherProps } = rest;
@@ -12428,11 +12464,9 @@ const SelectSeparator = (props) => {
12428
12464
  };
12429
12465
  const SelectItem = ({ indicator, ...rest }) => {
12430
12466
  const { className, textValue, ...otherProps } = rest;
12431
- return (jsxs(Item, { className: cn(`flex items-center justify-between gap-2 py-1.5 px-2 cursor-pointer text-comp-mono-default text-body font-medium leading-body-compact outline-none rounded-sm
12432
- hover:not-[:is([data-disabled])]:bg-fill-mono-hovered hover:not-[:is([data-disabled])]:text-comp-mono-hovered
12467
+ return (jsxs(Item, { className: cn(`relative group/state flex items-center justify-between gap-2 py-1.5 px-2 cursor-pointer text-comp-mono-default text-body font-medium leading-body-compact outline-none rounded-sm
12433
12468
  [&:is([data-disabled])]:text-comp-disabled [&:is([data-disabled])]:cursor-not-allowed
12434
- [&:is([data-state='checked'])]:bg-fill-mono-selected [&:is([data-state='checked'])]:text-comp-mono-selected
12435
- `, className), ...otherProps, children: [jsx(ItemText, { children: textValue }), indicator && (jsx(ItemIndicator, { className: "w-4 flex items-center justify-center", children: indicator }))] }));
12469
+ `, className), ...otherProps, children: [jsx(ItemText, { children: textValue }), indicator && (jsx(ItemIndicator, { className: "w-4 flex items-center justify-center", children: indicator })), jsx(StateColorContainer, { className: "rounded-sm group-data-disabled/state:bg-fill-default" })] }));
12436
12470
  };
12437
12471
  Select.displayName = "Select";
12438
12472
  SelectTrigger.displayName = "SelectTrigger";
@@ -12481,13 +12515,9 @@ const VerticalMenu = forwardRef(({ disabled, value, label, icon, variant = "acce
12481
12515
  context.setSelectedMenu?.(value);
12482
12516
  rest.onClick?.(e);
12483
12517
  };
12484
- return (jsxs("button", { ref: ref, className: cn("w-full flex items-center rounded-md text-body leading-body-compact font-medium bg-transparent border-none cursor-pointer text-comp-mono-default", size === VERTICAL_MENU_SIZES.SMALL && "gap-3 p-1", size === VERTICAL_MENU_SIZES.REGULAR && "gap-[18px] p-2.5", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
12485
- `hover:not-[:is([data-selected='true'])]:not-disabled:text-comp-mono-hovered hover:not-[:is([data-selected='true'])]:not-disabled:bg-fill-mono-hovered active:not-disabled:text-comp-mono-pressed active:not-disabled:bg-fill-mono-pressed
12486
- [&:is([data-selected='true'])]:text-comp-accent-selected [&:is([data-selected='true'])]:bg-fill-accent-selected [&:is([data-selected='true'])]:font-semibold
12487
- disabled:text-comp-disabled disabled:bg-fill-disabled disabled:cursor-not-allowed`, variant === VERTICAL_MENU_VARIANTS.GHOST &&
12488
- `hover:not-[:is([data-selected='true'])]:not-disabled:text-comp-mono-hovered hover:not-[:is([data-selected='true'])]:not-disabled:bg-fill-mono-hovered active:not-disabled:text-comp-mono-pressed active:not-disabled:bg-fill-mono-pressed
12489
- [&:is([data-selected='true'])]:text-comp-mono-selected [&:is([data-selected='true'])]:bg-fill-mono-selected [&:is([data-selected='true'])]:font-semibold
12490
- disabled:text-comp-disabled disabled:bg-fill-disabled disabled:cursor-not-allowed`, rest.className), ...rest, disabled: isDisabled, value: value, "data-selected": isSelected, onClick: onClick, children: [icon && (jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label] }));
12518
+ return (jsxs("button", { ref: ref, className: cn("group/state relative w-full flex items-center rounded-md text-body leading-body-compact font-medium bg-transparent border-none cursor-pointer data-[selected=true]:font-semibold data-disabled:text-comp-disabled text-comp-mono-default", size === VERTICAL_MENU_SIZES.SMALL && "gap-3 p-1", size === VERTICAL_MENU_SIZES.REGULAR && "gap-[18px] p-2.5", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
12519
+ `bg-page-l-null data-[selected=true]:bg-page-accent-l0 data-[selected=true]:text-comp-accent-default`, rest.className), ...rest, disabled: isDisabled, value: value, "data-selected": isSelected, "aria-selected": isSelected, onClick: onClick, children: [icon && (jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label, jsx(StateColorContainer, { className: cn("rounded-md group-disabled/state:bg-fill-default", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
12520
+ "group-aria-selected:bg-fill-default") })] }));
12491
12521
  });
12492
12522
  VerticalMenu.displayName = "VerticalMenu";
12493
12523
 
@@ -12523,11 +12553,7 @@ const HorizontalTab = forwardRef(({ value, label, className, icon, size = "regul
12523
12553
  return;
12524
12554
  setSelectedTab(value);
12525
12555
  };
12526
- return (jsxs("button", { ref: ref, className: cn(`p-0 flex flex-col items-center justify-center flex-nowrap text-comp-mono-subtle-default text-body font-medium leading-body-compact bg-transparent border-none cursor-pointer
12527
- hover:not([data-selected='true']):not(:disabled):text-comp-mono-subtle-hovered
12528
- active:not(:disabled):text-comp-mono-subtle-pressed
12529
- disabled:text-comp-disabled disabled:cursor-not-allowed
12530
- `, isSelected && "text-comp-mono-subtle-selected font-bold", className), onClick: handleClick, disabled: isDisabled, "data-selected": isSelected, ...rest, children: [jsxs("div", { className: cn("flex items-center justify-center gap-2", size === HORIZONTAL_TAB_SIZES.SMALL && "py-1 px-2", size === HORIZONTAL_TAB_SIZES.REGULAR && "py-2.5 px-2"), children: [icon && (jsx("span", { className: cn("flex items-center justify-center size-5", size === HORIZONTAL_TAB_SIZES.SMALL && "size-4"), children: icon })), label] }), jsx("div", { className: cn("bg-comp-mono-subtle-default mt-[3px] h-[1px] w-full", isSelected && "bg-comp-mono-subtle-selected h-0.5 mt-0.5"), "data-selected": isSelected })] }));
12556
+ return (jsxs("button", { ref: ref, className: cn("relative group/state p-0 flex flex-col items-center justify-center flex-nowrap text-comp-mono-subtle-default text-body font-medium leading-body-compact bg-transparent border-none cursor-pointer disabled:cursor-not-allowed", isSelected && "font-bold", className), onClick: handleClick, disabled: isDisabled, "data-selected": isSelected, "aria-selected": isSelected, ...rest, children: [jsxs("div", { className: cn("flex items-center justify-center gap-2", size === HORIZONTAL_TAB_SIZES.SMALL && "py-1 px-2", size === HORIZONTAL_TAB_SIZES.REGULAR && "py-2.5 px-2"), children: [icon && (jsx("span", { className: cn("flex items-center justify-center size-5", size === HORIZONTAL_TAB_SIZES.SMALL && "size-4"), children: icon })), label] }), jsx("div", { className: cn("bg-comp-mono-subtle-default mt-[3px] h-[1px] w-full", isSelected && "h-0.5 mt-0.5"), "data-selected": isSelected }), jsx(StateColorContainer, { className: "group-aria-selected/state:bg-fill-default rounded-sm" })] }));
12531
12557
  });
12532
12558
 
12533
12559
  const ModeTabContext = createContext({
@@ -12557,7 +12583,7 @@ const ModeTab = forwardRef(({ label, icon, value, className, ...rest }, ref) =>
12557
12583
  return;
12558
12584
  setSelectedTab(value);
12559
12585
  };
12560
- return (jsxs("button", { ref: ref, className: cn("px-2 py-1 flex items-center justify-center gap-2.5 flex-1 text-comp-mono-subtle-default text-body leading-body-compact font-medium cursor-pointer bg-transparent border-none rounded-sm hover:text-comp-mono-subtle-hovered active:text-comp-mono-subtle-pressed", isSelected && "text-comp-mono-selected bg-page-l0", isDisabled && "text-comp-disabled cursor-not-allowed", className), "data-selected": isSelected, disabled: isDisabled, onClick: handleClick, ...rest, children: [icon && (jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label] }));
12586
+ return (jsxs("button", { ref: ref, className: cn("relative group/state shadow-basic px-2 py-1 flex items-center justify-center gap-2.5 flex-1 text-comp-mono-subtle-default aria-selected:text-comp-mono-default text-body leading-body-compact font-medium cursor-pointer bg-transparent border-none rounded-sm hover:text-comp-mono-subtle-hovered active:text-comp-mono-subtle-pressed", isSelected && "bg-page-l0", isDisabled && "text-comp-disabled cursor-not-allowed", className), "data-selected": isSelected, "aria-selected": isSelected, disabled: isDisabled, onClick: handleClick, ...rest, children: [icon && (jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label, jsx(StateColorContainer, { className: "rounded-sm" })] }));
12561
12587
  });
12562
12588
 
12563
12589
  const TOOLTIP_SHORT_VARIANTS = {
@@ -12577,14 +12603,14 @@ const TooltipTrigger = Trigger;
12577
12603
  const TooltipContent = ({ type, ...rest }) => {
12578
12604
  const { className, ...otherProps } = rest;
12579
12605
  if (type === "default") {
12580
- return (jsx(Portal, { children: jsx(Content2, { className: cn("py-4 px-5 flex flex-col gap-1 bg-page-l1 rounded-lg border border-border-overlay shadow-basic", className), ...otherProps, children: rest.children }) }));
12606
+ return (jsx(Portal, { children: jsx(Content2, { className: cn("py-4 px-5 flex flex-col gap-1 bg-page-translucent-l2 rounded-lg border border-border-overlay shadow-glass-medium backdrop-blur-sm", className), ...otherProps, children: rest.children }) }));
12581
12607
  }
12582
12608
  const { variant = "default", size = "regular" } = rest;
12583
12609
  return (jsx(Portal, { children: jsx(Content2, { className: cn("shadow-basic rounded-lg", type === "short" &&
12584
12610
  variant === TOOLTIP_SHORT_VARIANTS.DEFAULT &&
12585
- "border border-border-overlay bg-page-l1 text-comp-mono-default", type === "short" &&
12611
+ "border border-border-overlay bg-page-translucent-l2 text-comp-mono-default", type === "short" &&
12586
12612
  variant === TOOLTIP_SHORT_VARIANTS.ACCENT &&
12587
- "bg-page-accent text-comp-accent-default", type === "short" &&
12613
+ "bg-page-accent-l0 text-comp-accent-default", type === "short" &&
12588
12614
  size === TOOLTIP_SHORT_SIZES.REGULAR &&
12589
12615
  "py-2 px-3 text-body font-medium leading-body-compact", type === "short" &&
12590
12616
  size === TOOLTIP_SHORT_SIZES.SMALL &&
@@ -12615,22 +12641,13 @@ const Tag = forwardRef(({ icon, value, variant = "filled", size = "regular", cla
12615
12641
  event.stopPropagation();
12616
12642
  onDeleteClick?.(value, event);
12617
12643
  };
12618
- return (jsxs("button", { ref: ref, className: cn("flex items-center justify-center rounded-sm bg-transparent", variant === "filled" &&
12619
- `bg-fill-mono-subtle-default text-comp-mono-subtle-default border border-fill-mono-subtle-default
12620
- hover:bg-fill-mono-subtle-hovered hover:comp-mono-subtle-hovered hover:border-fill-mono-subtle-hovered
12621
- disabled:bg-fill-disabled disabled:text-comp-disabled disabled:border-fill-disabled`, variant === "filled" &&
12622
- useSelectedStyle &&
12623
- "active:fill-mono-subtle-pressed active:comp-mono-subtle-pressed active:border-fill-mono-subtle-pressed", variant === "filled" &&
12624
- isSelected &&
12625
- `bg-fill-mono-subtle-selected text-comp-mono-subtle-selected border-border-selected`, variant === "accent" &&
12626
- `bg-fill-accent-default text-comp-accent-default hover:bg-fill-accent-hovered hover:text-comp-accent-hovered
12627
- disabled:bg-fill-disabled disabled:text-comp-disabled`, variant === "accent" &&
12628
- useSelectedStyle &&
12629
- "active:bg-fill-accent-pressed active:text-comp-accent-pressed", variant === "accent" &&
12630
- isSelected &&
12631
- `bg-fill-accent-selected text-comp-accent-selected`, size === "regular" &&
12632
- "text-body font-medium leading-body-compact px-1 py-0.5 gap-2", size === "small" &&
12633
- "text-label font-medium leading-label-compact p-0.5 gap-1.5", className), onClick: handleClick, "data-selected": isSelected, ...props, children: [icon && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0", children: icon })), jsx("span", { className: "flex-1 text-nowrap overflow-hidden text-ellipsis text-inherit text-size-inherit leading-inherit font-inherit", children: value.label }), onDeleteClick && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0 cursor-pointer", onClick: handleDeleteClick, children: jsx(X, {}) }))] }));
12644
+ return (jsxs("button", { ref: ref, className: cn("flex items-center justify-center rounded-sm bg-transparent relative group/state", variant === "filled" &&
12645
+ `bg-page-l4 text-comp-mono-subtle-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, variant === "accent" &&
12646
+ `bg-page-accent-l0 text-comp-accent-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, size === "regular" &&
12647
+ "text-body font-medium leading-body-compact px-2 py-1 gap-2", size === "small" &&
12648
+ "text-label font-medium leading-label-compact px-1.5 py-0.5 gap-1.5", className), onClick: handleClick, "data-selected": isSelected, "aria-selected": isSelected, ...props, children: [icon && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0", children: icon })), jsx("span", { className: "flex-1 text-nowrap overflow-hidden text-ellipsis text-inherit text-size-inherit leading-inherit font-inherit", children: value.label }), onDeleteClick && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0 cursor-pointer text-comp-mono-default group-disabled/state:text-comp-disabled", onClick: handleDeleteClick, children: jsx(X, {}) })), jsx(StateColorContainer, { className: cn("rounded-sm", useSelectedStyle
12649
+ ? ""
12650
+ : "group-active/state:bg-fill-default group-active/state:border-transparent group-disabled/state:bg-fill-default"), isInverted: variant === "accent" })] }));
12634
12651
  });
12635
12652
  Tag.displayName = "Tag";
12636
12653
 
@@ -12852,14 +12869,24 @@ Text.displayName = "Text";
12852
12869
  * ```
12853
12870
  */
12854
12871
  const Input = forwardRef(({ size = "regular", leftIcon, rightIcon, wrapperClassName, isError = false, useHoverStyle = true, errorMessage, ...rest }, ref) => {
12855
- return (jsxs("div", { className: "flex flex-col gap-2", children: [jsxs("div", { "aria-disabled": rest.disabled, className: cn("flex items-center justify-center rounded-lg bg-fill-mono-default focus-within:bg-fill-mono-default border border-border-bound focus-within:border-border-focused has-[input:disabled]:border-transparent", useHoverStyle && "hover:bg-fill-mono-hovered", size === INPUT_SIZES.REGULAR &&
12872
+ const innerRef = useRef(null);
12873
+ const mergedRef = (node) => {
12874
+ if (typeof ref === "function")
12875
+ ref(node);
12876
+ else if (ref)
12877
+ ref.current = node;
12878
+ innerRef.current = node;
12879
+ };
12880
+ return (jsxs(Fragment$1, { children: [jsxs("div", { "aria-disabled": rest.disabled, className: cn("relative group/state flex items-center justify-center rounded-lg bg-Page-l-null border border-border-bound focus-within:border-border-focused has-[input:disabled]:border-transparent", size === INPUT_SIZES.REGULAR &&
12856
12881
  "py-1.5 px-2 text-body leading-body-compact font-medium gap-2", size === INPUT_SIZES.LARGE &&
12857
12882
  "py-[11px] px-4 text-base leading-base-compact font-medium gap-3", isError &&
12858
- "border-comp-chroma-error focus-within:border-comp-chroma-error", wrapperClassName), children: [leftIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: leftIcon })), jsx("input", { ref: ref, className: cn("border-none outline-none p-0 flex-1 bg-transparent text-comp-mono-default placeholder:text-comp-mono-subtle-default focus:placeholder:text-comp-mono-subtle-selected disabled:text-comp-disabled disabled:placeholder:text-comp-disabled", useHoverStyle &&
12883
+ "border-comp-chroma-error focus-within:border-comp-chroma-error", wrapperClassName), onClick: () => {
12884
+ innerRef.current?.focus();
12885
+ }, children: [jsx(StateColorContainer, { className: cn("group-focus-within/state:bg-page-l-null", (!useHoverStyle || rest.disabled) && "hover:bg-fill-default") }), leftIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: leftIcon })), jsx("input", { ref: mergedRef, className: cn("border-none outline-none p-0 flex-1 bg-transparent text-comp-mono-default placeholder:text-comp-mono-subtle-default focus:placeholder:text-comp-mono-subtle-selected disabled:text-comp-disabled disabled:placeholder:text-comp-disabled", useHoverStyle &&
12859
12886
  "hover:placeholder:text-comp-mono-subtle-hovered", size === INPUT_SIZES.REGULAR &&
12860
12887
  "text-body leading-body-compact font-medium", size === INPUT_SIZES.LARGE &&
12861
12888
  "text-base leading-base-compact font-medium", isError &&
12862
- "placeholder:text-comp-chroma-error text-comp-chroma-error hover:placeholder:text-comp-error focus:placeholder:text-comp-error", rest.className), ...rest }), rightIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: rightIcon }))] }), errorMessage && (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-chroma-error", children: errorMessage }))] }));
12889
+ "placeholder:text-comp-chroma-error text-comp-chroma-error hover:placeholder:text-comp-error focus:placeholder:text-comp-error", rest.className), ...rest }), rightIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: rightIcon }))] }), errorMessage && (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-chroma-error mt-2", children: errorMessage }))] }));
12863
12890
  });
12864
12891
  Input.displayName = "Input";
12865
12892
 
@@ -12908,7 +12935,7 @@ const MultipleSelectTrigger = forwardRef(({ size = "regular", children, ...rest
12908
12935
  setIsOpen(value);
12909
12936
  onClick?.(e);
12910
12937
  };
12911
- return (jsxs("div", { ref: ref, className: cn("flex items-center justify-between rounded-lg cursor-pointer border border-border-bound bg-fill-mono-default hover:bg-fill-mono-hovered", values.length > 0 && "border-border-focused", disabled && "border-none cursor-not-allowed", size === MULTIPLE_SELECT_SIZES.REGULAR && "py-1.5 px-3 gap-1", size === MULTIPLE_SELECT_SIZES.LARGE && "py-3 pr-4 pl-3 gap-2", className), "data-disabled": disabled, "data-selected": values.length > 0, onClick: handleTriggerClick, ...otherProps, children: [children, jsx("span", { className: "flex items-center justify-center size-4", children: jsx(ChevronDown, { size: 16 }) })] }));
12938
+ return (jsxs("div", { ref: ref, className: cn("relative group/state flex items-center justify-between rounded-lg cursor-pointer border border-border-bound bg-page-l-null text-comp-mono-default aria-selected:border-border-focused", disabled && "border-transparent cursor-not-allowed", size === MULTIPLE_SELECT_SIZES.REGULAR && "py-1.5 px-3 gap-2", size === MULTIPLE_SELECT_SIZES.LARGE && "py-3 pr-4 pl-3 gap-3", className), "data-disabled": disabled, "data-selected": isOpen, "aria-selected": isOpen, onClick: handleTriggerClick, ...otherProps, children: [children, jsx("span", { className: "flex items-center justify-center size-4 text-comp-mono-default", children: jsx(ChevronDown, { size: 16 }) }), jsx(StateColorContainer, { className: "group-aria-selected/state:bg-fill-default" })] }));
12912
12939
  });
12913
12940
  const MultipleSelectValue = forwardRef(({ placeholder, className, ...rest }, ref) => {
12914
12941
  const { values, disabled, setSelectedValues } = useContext(MultipleSelectContext);
@@ -12962,7 +12989,7 @@ const MultipleSelectContent = forwardRef(({ useSearch, options: optionsProps, in
12962
12989
  window.removeEventListener("resize", close);
12963
12990
  };
12964
12991
  }, [setIsOpen]);
12965
- return (isOpen && (jsxs("div", { ref: composedRefs, className: cn("flex-1 absolute top-[calc(100%+4px)] left-0 z-[1000] w-[calc(100%-16px)] bg-page-l1 rounded-xl shadow-medium p-2 border border-border-overlay", className), ...rest, children: [useSearch && (jsx("div", { className: "pb-2 mb-2 border-b border-b-border-divider", children: jsx(Input, { onChange: handleSearchChange, leftIcon: jsx(MagnifyingGlassIcon, { width: 20, height: 20 }), placeholder: "Enter any characters..." }) })), jsx("ul", { className: "p-0 m-0 flex flex-col gap-1 list-none", children: options.map((option) => (jsx(MultipleSelectItem, { option: option, indicator: indicator }, option.value))) })] })));
12992
+ return (isOpen && (jsxs("div", { ref: composedRefs, className: cn("flex-1 absolute top-[calc(100%+4px)] left-0 z-[1000] w-[calc(100%-16px)] bg-page-translucent-l1 shadow-glass-medium backdrop-blur-sm rounded-xl p-2 border border-border-overlay", className), ...rest, children: [useSearch && (jsx("div", { className: "pb-2 mb-2 border-b border-b-border-divider", children: jsx(Input, { onChange: handleSearchChange, leftIcon: jsx(MagnifyingGlassIcon, { width: 20, height: 20 }), placeholder: "Enter any characters..." }) })), jsx("ul", { className: "p-0 m-0 flex flex-col gap-1 list-none", children: options.map((option) => (jsx(MultipleSelectItem, { option: option, indicator: indicator }, option.value))) })] })));
12966
12993
  });
12967
12994
  const MultipleSelectItem = forwardRef(({ option, indicator, className, ...rest }, ref) => {
12968
12995
  const { values, setSelectedValues } = useContext(MultipleSelectContext);
@@ -12976,8 +13003,8 @@ const MultipleSelectItem = forwardRef(({ option, indicator, className, ...rest }
12976
13003
  : [...values, option];
12977
13004
  setSelectedValues(newValues);
12978
13005
  };
12979
- return (jsxs("li", { ref: ref, "data-selected": isSelected, "data-disabled": option.disabled, className: cn("py-2 px-3 cursor-pointer flex items-center justify-between gap-2 text-body text-comp-mono-default leading-body-compact font-medium rounded-sm hover:bg-fill-mono-hovered hover:text-comp-mono-default active:bg-fill-mono-selected active:text-comp-mono-default", isSelected && "bg-fill-mono-selected text-comp-mono-default", option.disabled &&
12980
- "bg-fill-disabled text-comp-disabled cursor-not-allowed", className), onClick: handleClick, ...rest, children: [jsx("span", { className: "flex-1 overflow-ellipsis overflow-x-hidden whitespace-nowrap text-inherit text-size-inherit leading-inherit font-inherit", children: option.label }), indicator && isSelected && (jsx("span", { className: "flex items-center justify-center size-4", children: indicator }))] }));
13006
+ return (jsxs("li", { ref: ref, "data-selected": isSelected, "aria-selected": isSelected, "data-disabled": option.disabled, className: cn("group/state relative py-2 px-3 cursor-pointer flex items-center justify-between gap-2 text-body text-comp-mono-default leading-body-compact font-medium rounded-sm", isSelected && "bg-fill-mono-selected text-comp-mono-default", option.disabled &&
13007
+ "bg-fill-disabled text-comp-disabled cursor-not-allowed", className), onClick: handleClick, ...rest, children: [jsx("span", { className: "flex-1 overflow-ellipsis overflow-x-hidden whitespace-nowrap text-inherit text-size-inherit leading-inherit font-inherit", children: option.label }), indicator && isSelected && (jsx("span", { className: "flex items-center justify-center size-4", children: indicator })), jsx(StateColorContainer, { className: "rounded-sm" })] }));
12981
13008
  });
12982
13009
 
12983
13010
  const Table = forwardRef(({ className, ...rest }, ref) => {
@@ -12990,7 +13017,7 @@ const TableBody = forwardRef(({ ...rest }, ref) => {
12990
13017
  return jsx("tbody", { ref: ref, ...rest });
12991
13018
  });
12992
13019
  const TableRow = forwardRef(({ isSelected, shouldLastBorderRender = true, className, ...rest }, ref) => {
12993
- return (jsx("tr", { ref: ref, "data-selected": isSelected, "data-last-border": shouldLastBorderRender, className: cn("border-b border-border-divider hover:bg-fill-mono-hovered", isSelected && "bg-fill-mono-selected", !shouldLastBorderRender && "last:border-b-0", className), ...rest }));
13020
+ return (jsx("tr", { ref: ref, "data-selected": isSelected, "data-last-border": shouldLastBorderRender, className: cn("border-b border-border-divider hover:bg-fill-hovered", isSelected && "bg-fill-selected", !shouldLastBorderRender && "last:border-b-0", className), ...rest }));
12994
13021
  });
12995
13022
  const TableHead = forwardRef(({ className, children, ...rest }, ref) => {
12996
13023
  return (jsx("th", { ref: ref, className: cn("text-body leading-body font-medium py-5 pr-0 pl-9 last:pr-9 align-middle text-comp-mono-subtle-default text-left", className), ...rest, children: jsx("div", { className: "overflow-hidden overflow-ellipsis whitespace-nowrap", children: children }) }));
@@ -13025,8 +13052,8 @@ const InteractiveListItemContext = createContext({
13025
13052
  disabled: false,
13026
13053
  });
13027
13054
  const InteractiveListItem = forwardRef(({ isSelected, disabled, showHoverActions = true, children, className, ...rest }, ref) => {
13028
- return (jsx(InteractiveListItemContext, { value: { disabled: !!disabled }, children: jsx("div", { ref: ref, "data-selected": isSelected, "data-disabled": disabled, "data-hover-actions": showHoverActions, className: cn("flex items-center gap-1 p-1.5 rounded-sm cursor-pointer text-comp-mono-default bg-fill-mono-default border border-transparent hover:bg-fill-mono-hovered active:bg-fill-mono-pressed", isSelected && "bg-fill-mono-selected border-border-selected", disabled &&
13029
- "cursor-not-allowed text-comp-disabled bg-fill-disabled", className), ...rest, children: children }) }));
13055
+ return (jsx(InteractiveListItemContext, { value: { disabled: !!disabled }, children: jsxs("div", { ref: ref, "aria-selected": isSelected, "data-selected": isSelected, "data-disabled": disabled, "data-hover-actions": showHoverActions, className: cn("relative group/wrapper flex items-center gap-1 p-1.5 rounded-sm cursor-pointer text-comp-mono-default bg-page-l-null order border-transparent", isSelected && "bg-fill-mono-selected border-border-selected", disabled &&
13056
+ "cursor-not-allowed text-comp-disabled bg-fill-disabled", className), ...rest, children: [children, jsx(StateColorContainer, { className: "rounded-sm", groupName: "wrapper" })] }) }));
13030
13057
  });
13031
13058
  const InteractiveListItemIcon = forwardRef(({ children, className, ...props }, ref) => {
13032
13059
  return (jsx("span", { className: cn("flex items-center justify-center size-6 p-1", className), ...props, ref: ref, children: children }));
@@ -13052,20 +13079,21 @@ const Calendar = ({ className, classNames, showOutsideDays = true, ...props }) =
13052
13079
  month_grid: "border-separate border-spacing-0",
13053
13080
  weekday: "text-comp-mono-subtle-default text-body font-normal leading-body size-9 p-1",
13054
13081
  day: "p-1 bg-transparent",
13055
- day_button: "size-8 rounded-md hover:bg-fill-mono-subtle-hovered focus:outline-none text-body leading-3.5 font-medium text-comp-mono-default cursor-pointer",
13056
- selected: cn("[&_button]:bg-fill-accent-selected bg-transparent", props.mode === "single" &&
13057
- "[&_button]:text-comp-accent-default [&_button]:hover:bg-fill-accent-selected"),
13058
- range_start: "[&_button]:bg-fill-accent-selected bg-transparent [&_button]:text-comp-accent-default [&_button]:hover:bg-fill-accent-selected",
13059
- range_middle: "[&_button]:bg-fill-mono-subtle-default bg-transparent [&_button]:hover:bg-fill-mono-subtle-default",
13060
- range_end: "[&_button]:bg-fill-accent-selected bg-transparent [&_button]:text-comp-accent-default [&_button]:hover:bg-fill-accent-selected",
13061
- button_next: cn(getDefaultClassNames().button_next, "h-9 py-0 px-2 text-body leading-body-compact !bg-fill-mono-default hover:!bg-fill-mono-hovered active:!bg-fill-mono-pressed disabled:!bg-fill-disabled disabled:text-comp-disabled rounded-md"),
13062
- button_previous: cn(getDefaultClassNames().button_previous, "h-9 py-0 px-2 text-body leading-body-compact !bg-fill-mono-default hover:!bg-fill-mono-hovered active:!bg-fill-mono-pressed disabled:!bg-fill-disabled disabled:text-comp-disabled rounded-md"),
13082
+ day_button: "size-8 rounded-md hover:bg-fill-hovered focus:outline-none text-body leading-3.5 font-medium text-comp-mono-default cursor-pointer",
13083
+ selected: cn("[&_button]:bg-page-accent-l0 bg-transparent", props.mode === "single" &&
13084
+ "[&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0"),
13085
+ outside: "[&_button]:text-comp-disabled",
13086
+ range_start: "[&_button]:bg-page-accent-l0 bg-transparent [&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0",
13087
+ range_middle: "[&_button]:bg-page-l3 bg-transparent [&_button]:hover:bg-fill-hovered",
13088
+ range_end: "[&_button]:bg-page-accent-l0 bg-transparent [&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0",
13089
+ button_next: cn(getDefaultClassNames().button_next, "h-9 py-0 px-2 text-body leading-body-compact !bg-fill-default hover:!bg-fill-hovered active:!bg-fill-mono-pressed disabled:!bg-fill-disabled disabled:text-comp-disabled rounded-md"),
13090
+ button_previous: cn(getDefaultClassNames().button_previous, "h-9 py-0 px-2 text-body leading-body-compact !bg-fill-default hover:!bg-fill-hovered active:!bg-fill-mono-pressed disabled:!bg-fill-disabled disabled:text-comp-disabled rounded-md"),
13063
13091
  ...classNames,
13064
13092
  }, components: {
13065
13093
  Dropdown: (props) => {
13066
13094
  const { options, className, classNames, components, ...rest } = props;
13067
13095
  const selectedOption = options?.find(({ value }) => value === rest.value);
13068
- return (jsxs("div", { className: cn("flex px-2 py-1 rounded-lg bg-fill-mono-subtle-default relative", props["aria-label"]?.includes("Month") ? "w-28" : "w-20"), children: [jsx("select", { ...rest, className: cn("text-body leading-body-compact font-medium text-comp-mono-default focus:outline-none z-[1] opacity-0 appearance-none absolute inset-0 w-full", className), name: props["aria-label"], children: options?.map((option) => (jsx("option", { value: option.value, children: option.label }, option.value))) }), jsxs(Text, { variant: "medBodyMedCompact", className: "flex gap-0.5 items-center justify-end w-full text-comp-mono-default leading-3.5", "aria-hidden": true, children: [jsx("span", { className: "inline-block px-1 py-1.5 flex-1 text-right", children: selectedOption?.label }), jsx(ChevronDown, { size: 16 })] })] }));
13096
+ return (jsxs("div", { className: cn("group/state flex px-2 py-1 rounded-lg relative cursor-pointer", props["aria-label"]?.includes("Month") ? "w-28" : "w-20"), children: [jsx("select", { ...rest, className: cn("text-body leading-body-compact font-medium text-comp-mono-default focus:outline-none z-[1] opacity-0 appearance-none absolute inset-0 w-full", className), name: props["aria-label"], children: options?.map((option) => (jsx("option", { value: option.value, children: option.label }, option.value))) }), jsxs(Text, { variant: "medBodyMedCompact", className: "flex gap-0.5 items-center justify-end w-full text-comp-mono-default leading-3.5 cursor-pointer", "aria-hidden": true, children: [jsx("span", { className: "inline-block px-1 py-1.5 flex-1 text-right", children: selectedOption?.label }), jsx(ChevronDown, { size: 16 })] }), jsx(StateColorContainer, { className: "rounded-lg" })] }));
13069
13097
  },
13070
13098
  Chevron: (args) => (jsx(ChevronLeft, { ...args, size: 20, "data-orientation": args.orientation, className: "text-comp-mono-default [&:is([data-orientation='right'])]:rotate-180 [&:is([data-orientation='up'])]:rotate-90 [&:is([data-orientation='down'])]:-rotate-90" })),
13071
13099
  }, ...props }));
@@ -13077,6 +13105,7 @@ const BUTTON_SIZES = {
13077
13105
  LARGE: "large",
13078
13106
  };
13079
13107
  const BUTTON_VARIANTS = {
13108
+ ACCENT: "accent",
13080
13109
  THUMBNAIL_GHOST: "thumbnail_ghost"};
13081
13110
 
13082
13111
  /**
@@ -13093,7 +13122,7 @@ const BUTTON_VARIANTS = {
13093
13122
  * </Button>
13094
13123
  * ```
13095
13124
  */
13096
- const Button = forwardRef(({ variant = "accent", size = "regular", fullWidth = false, isLoading = false, leftIcon, rightIcon, children, disabled, className, ...rest }, ref) => {
13125
+ const Button = forwardRef(({ variant = "accent", size = "regular", fullWidth = false, isLoading = false, leftIcon, rightIcon, children, disabled, className, stateContainerClassName, ...rest }, ref) => {
13097
13126
  const getClassName = (size, variant) => {
13098
13127
  const sizeClassName = {
13099
13128
  small: "h-7 py-0 px-1.5 text-label leading-label-compact",
@@ -13106,12 +13135,16 @@ const Button = forwardRef(({ variant = "accent", size = "regular", fullWidth = f
13106
13135
  large: "px-1.5",
13107
13136
  }[size];
13108
13137
  const variantClassName = {
13109
- accent: "bg-fill-accent-default hover:bg-fill-accent-hovered active:bg-fill-accent-pressed disabled:bg-fill-disabled text-comp-accent-default disabled:text-comp-disabled",
13110
- outline: "bg-fill-mono-default hover:bg-fill-mono-hovered active:bg-fill-mono-pressed disabled:bg-fill-disabled text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent",
13111
- ghost: "bg-fill-mono-default hover:bg-fill-mono-hovered active:bg-fill-mono-pressed disabled:bg-fill-disabled text-comp-mono-default disabled:text-comp-disabled",
13112
- thumbnail_ghost: "bg-transparent hover:bg-fill-mono-hovered active:bg-fill-mono-pressed disabled:bg-fill-disabled text-comp-mono-default disabled:text-comp-disabled",
13113
- subtle_filled: "bg-fill-mono-subtle-default hover:bg-fill-mono-subtle-hovered active:bg-fill-mono-subtle-pressed disabled:bg-fill-disabled text-comp-mono-subtle-default disabled:text-comp-disabled",
13114
- accent_ghost: "bg-fill-mono-default hover:bg-fill-accent-hovered active:bg-fill-accent-pressed disabled:bg-fill-disabled text-comp-accent-default disabled:text-comp-disabled",
13138
+ accent: "bg-page-accent-l0 disabled:bg-pure-transparent text-comp-accent-default disabled:text-comp-disabled",
13139
+ outline: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent aria-selected:border-border-selected",
13140
+ outline_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent aria-selected:border-border-selected aria-selected:bg-page-accent-l0 aria-selected:text-comp-accent-default",
13141
+ ghost: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled",
13142
+ thumbnail_ghost: "bg-page-l-null disabled:bg-fill-disabled text-comp-mono-default disabled:text-comp-disabled",
13143
+ ghost_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled aria-selected:bg-page-accent-l0 aria-selected:text-comp-accent-default",
13144
+ subtle_filled: "bg-page-l3 disabled:bg-fill-disabled text-comp-mono-subtle-default disabled:text-comp-disabled aria-selected:text-comp-mono-default",
13145
+ outline_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled border border-border-accent-bound disabled:border-pure-transparent aria-selected:border-border-accent-selected",
13146
+ ghost_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled",
13147
+ ghost_dim: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-subtle-default disabled:text-comp-disabled aria-selected:text-comp-mono-default",
13115
13148
  }[variant];
13116
13149
  return [
13117
13150
  sizeClassName,
@@ -13140,7 +13173,7 @@ const Button = forwardRef(({ variant = "accent", size = "regular", fullWidth = f
13140
13173
  return "px-1.5";
13141
13174
  return "px-2"; // 기본값은 regular 크기
13142
13175
  };
13143
- return (jsxs("button", { ref: ref, disabled: disabled ?? isLoading, className: cn("flex items-center justify-center relative box-border m-0 border-transparent outline-none cursor-pointer select-none align-middle appearance-none text-center transition-normal font-medium w-auto rounded-md overflow-hidden pointer-events-auto disabled:pointer-events-none disabled:cursor-not-allowed", ...getClassName(size, variant), fullWidth && "w-full", !children && (leftIcon || rightIcon) && getPaddingOnlyIcon(size), className), ...rest, children: [isLoading && (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: cn("lucide lucide-loader-circle-icon lucide-loader-circle absolute animate-spin", size === BUTTON_SIZES.SMALL &&
13176
+ return (jsxs("button", { ref: ref, disabled: disabled ?? isLoading, className: cn("flex group/state items-center justify-center relative box-border m-0 border-transparent outline-none cursor-pointer select-none align-middle appearance-none text-center transition-normal font-medium w-auto rounded-md overflow-hidden pointer-events-auto disabled:pointer-events-none disabled:cursor-not-allowed", ...getClassName(size, variant), fullWidth && "w-full", !children && (leftIcon || rightIcon) && getPaddingOnlyIcon(size), className), ...rest, children: [jsx(StateColorContainer, { isInverted: variant === BUTTON_VARIANTS.ACCENT, className: stateContainerClassName }), isLoading && (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: cn("lucide lucide-loader-circle-icon lucide-loader-circle absolute animate-spin", size === BUTTON_SIZES.SMALL &&
13144
13177
  "size-4 top-[calc(50%-8px)] left-[calc(50%-8px)]", size === BUTTON_SIZES.REGULAR &&
13145
13178
  "size-5 top-[calc(50%-10px)] left-[calc(50%-10px)]", size === BUTTON_SIZES.LARGE &&
13146
13179
  "size-6 top-[calc(50%-12px)] left-[calc(50%-12px)]"), children: jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) })), leftIcon && (jsx("div", { className: cn("flex items-center justify-center relative", variant === BUTTON_VARIANTS.THUMBNAIL_GHOST &&
@@ -13197,7 +13230,7 @@ const DatePicker = ({ size = "regular", placeholder = "Pick a date", format = "Y
13197
13230
  }
13198
13231
  return placeholder ?? "";
13199
13232
  };
13200
- return (jsxs(Root2$2, { open: open, onOpenChange: handleOpenChange, children: [jsx(Trigger$2, { asChild: true, children: jsx(Button, { size: size, fullWidth: true, variant: "outline", leftIcon: jsx(Calendar$1, { size: 20 }), className: "justify-start", disabled: disabled, children: getDateToFormatString(inputValue) }) }), jsx(Content2$2, { sideOffset: 10, align: "start", className: cn("z-10", popoverContentClassName), ...rest, children: mode === "single" ? (jsx(Calendar, { mode: "single", ...rest, selected: inputValue, onSelect: handleSelect })) : mode === "multiple" ? (jsx(Calendar, { mode: "multiple", ...rest, selected: Array.isArray(inputValue) ? inputValue : [], onSelect: handleSelect })) : (jsx(Calendar, { mode: "range", ...rest, selected: inputValue, onSelect: handleSelect })) })] }));
13233
+ return (jsxs(Root2$2, { open: open, onOpenChange: handleOpenChange, children: [jsx(Trigger$2, { asChild: true, children: jsx(Button, { size: size, fullWidth: true, variant: "outline", leftIcon: jsx(Calendar$1, { size: 20 }), className: "justify-start", "aria-selected": open, disabled: disabled, stateContainerClassName: open ? "group-aria-selected/state:bg-fill-default" : undefined, children: getDateToFormatString(inputValue) }) }), jsx(Content2$2, { sideOffset: 10, align: "start", className: cn("z-10", popoverContentClassName), ...rest, children: mode === "single" ? (jsx(Calendar, { mode: "single", ...rest, selected: inputValue, onSelect: handleSelect })) : mode === "multiple" ? (jsx(Calendar, { mode: "multiple", ...rest, selected: Array.isArray(inputValue) ? inputValue : [], onSelect: handleSelect })) : (jsx(Calendar, { mode: "range", ...rest, selected: inputValue, onSelect: handleSelect })) })] }));
13201
13234
  };
13202
13235
 
13203
13236
  const ContextMenu = Root2$3;
@@ -13210,12 +13243,8 @@ const ContextMenuLabel = (props) => {
13210
13243
  return (jsx(Label2, { ...props, children: props.children }));
13211
13244
  };
13212
13245
  const ContextMenuItem = ({ leftIcon, rightSlot, textValue, ...rest }) => {
13213
- return (jsxs(Item2$1, { ...rest, className: cn(`group outline-none p-2 flex items-center justify-between gap-2 text-body leading-body-compact font-medium text-comp-mono-default bg-fill-mono-default border border-fill-mono-default rounded-sm
13214
- hover:not-[:is([data-disabled])]:bg-fill-mono-hovered hover:not-[:is([data-disabled])]:text-comp-mono-hovered
13215
- active:not-[:is([data-disabled])]:bg-fill-mono-pressed active:not-[:is([data-disabled])]:text-comp-mono-pressed
13216
- [&:is([data-state='open'])]:bg-fill-mono-selected [&:is([data-state='open'])]:text-comp-mono-selected
13217
- [&:is([data-disabled])]:bg-fill-disabled [&:is([data-disabled])]:text-comp-disabled [&:is([data-disabled])]:cursor-not-allowed`, rest.className), children: [jsxs("div", { className: "flex-1 flex items-center gap-2 text-size-inherit font-inherit leading-inherit overflow-hidden", children: [jsx("div", { className: "size-4 flex items-center justify-center text-size-inherit leading-inherit font-inherit bg-transparent", children: leftIcon }), jsx("span", { className: "overflow-ellipsis overflow-hidden whitespace-nowrap", children: textValue })] }), rightSlot && (jsx("div", { className: `flex items-center justify-center text-size-inherit leading-inherit font-inherit text-comp-mono-subtle-default
13218
- group-hover:not-[data-disabled]:text-comp-mono-subtle-hovered group-[data-state="open"]:text-comp-mono-subtle-selected group-[data-disabled]:text-comp-disabled`, children: rightSlot }))] }));
13246
+ return (jsxs(Item2$1, { ...rest, className: cn(`relative group/state outline-none p-2 flex items-center justify-between gap-2 text-body leading-body-compact font-medium text-comp-mono-default bg-page-l-null rounded-sm
13247
+ [&:is([data-disabled])]:bg-fill-disabled [&:is([data-disabled])]:text-comp-disabled [&:is([data-disabled])]:cursor-not-allowed`, rest.className), children: [jsxs("div", { className: "flex-1 flex items-center gap-2 text-size-inherit font-inherit leading-inherit overflow-hidden", children: [jsx("div", { className: "size-4 flex items-center justify-center text-size-inherit leading-inherit font-inherit bg-transparent text-comp-mono-subtle-default group-aria-disabled/state:text-comp-disabled", children: leftIcon }), jsx("span", { className: "overflow-ellipsis overflow-hidden whitespace-nowrap", children: textValue })] }), rightSlot && (jsx("div", { className: `flex items-center justify-center text-size-inherit leading-inherit font-inherit text-comp-mono-subtle-default group-aria-disabled/state:text-comp-disabled`, children: rightSlot })), jsx(StateColorContainer, { className: "rounded-sm group-aria-disabled/state:bg-fill-default group-[data-state='open']/state:bg-fill-selected" })] }));
13219
13248
  };
13220
13249
  const ContextMenuGroup = Group2;
13221
13250
  const ContextMenuSub = Sub2;
@@ -13224,7 +13253,7 @@ const ContextMenuSubContent = (props) => {
13224
13253
  return (jsx(Portal2, { children: jsx(SubContent2, { ...props, className: cn("p-2 bg-page-l1 shadow-medium rounded-lg w-[320px] border border-border-overlay", props.className), children: props.children }) }));
13225
13254
  };
13226
13255
  const ContextMenuSeparator = (props) => {
13227
- return (jsx(Separator2, { ...props, className: cn("h-[1px] bg-border-overlay my-1", props.className) }));
13256
+ return (jsx(Separator2, { ...props, className: cn("h-[1px] bg-border-divider my-1", props.className) }));
13228
13257
  };
13229
13258
  const ContextMenuCheckboxItem = CheckboxItem2;
13230
13259
  const ContextMenuRadioGroup = RadioGroup2;
@@ -13235,8 +13264,8 @@ const ContextMenuItemIndicator = (props) => {
13235
13264
 
13236
13265
  const AutocompleteContentItem = ({ inputValue, item, index, displayValue, highlightedIndex, onClick, className = "", }) => {
13237
13266
  const isHighlighted = index === highlightedIndex;
13238
- return (jsx("li", { id: `suggestion-item-${index}`, className: cn("rounded-sm p-2 text-comp-mono-default text-body leading-body-compact font-medium list-none hover:bg-fill-mono-hovered hover:text-comp-mono-hovered", isHighlighted && "bg-fill-mono-hovered text-comp-mono-hovered", className), onClick: (e) => onClick(item, e), role: "option", "aria-selected": isHighlighted, children: displayValue(item)
13239
- .split(new RegExp(`(${inputValue})`, "gi"))
13267
+ return (jsx("li", { id: `suggestion-item-${index}`, className: cn("rounded-sm p-2 text-comp-mono-default text-body leading-body-compact font-medium list-none hover:bg-fill-hovered", isHighlighted && "bg-fill-selected", className), onClick: (e) => onClick(item, e), role: "option", "aria-selected": isHighlighted, children: displayValue(item)
13268
+ .split(new RegExp(`(${inputValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")})`, "gi"))
13240
13269
  .map((part, i) => part.toLowerCase() === inputValue.toLowerCase() ? (jsx("span", { className: "font-bold text-comp-chroma-error", children: part }, i)) : (jsx("span", { children: part }, i))) }));
13241
13270
  };
13242
13271
  const Autocomplete = ({ placeholder, data, value, displayValue, onSelect, onChange, noResultsMessage = "검색 결과가 없습니다.", maxResults = 10, debounceTime = 300, wrapperClassName, contentClassName, itemClassName, }) => {
@@ -13353,27 +13382,27 @@ const SWITCH_SIZES = {
13353
13382
 
13354
13383
  const FilledSwitch = (props) => {
13355
13384
  const { size, checked, thumbClassName, ...rest } = props;
13356
- return (jsxs(Root, { className: cn("flex items-center gap-1 bg-page-l2 rounded-lg relative", size === SWITCH_SIZES.REGULAR && "p-1.5 w-[68px] h-9", size === SWITCH_SIZES.SMALL && "p-1 w-[59px] h-7"), checked: checked, ...rest, children: [jsx(Thumb, { className: cn("rounded-sm absolute transition-all duration-100", size === SWITCH_SIZES.REGULAR &&
13385
+ return (jsxs(Root, { className: cn("group/state flex items-center gap-1 bg-page-l2 rounded-lg relative", size === SWITCH_SIZES.REGULAR && "p-1.5 w-[68px] h-9", size === SWITCH_SIZES.SMALL && "p-1 w-[59px] h-7"), checked: checked, ...rest, children: [jsx(Thumb, { className: cn("absolute transition-all duration-100 rounded-sm border border-border-divider", size === SWITCH_SIZES.REGULAR &&
13357
13386
  "size-6 left-1.5 data-[state=checked]:left-[37px]", size === SWITCH_SIZES.SMALL &&
13358
- "size-5 left-1 data-[state=checked]:left-[35px]", checked ? "bg-fill-accent-selected" : "bg-fill-mono-subtle-selected", thumbClassName) }), checked ? (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-mono-selected py-1 px-[5px] text-left w-full", as: "div", children: "ON" })) : (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-mono-subtle-default py-1 px-0.5 text-right w-full", as: "div", children: "OFF" }))] }));
13387
+ "size-5 left-1 data-[state=checked]:left-[35px]", checked ? "bg-page-accent-l0" : "bg-page-l3", thumbClassName) }), checked ? (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-mono-default py-1 px-[5px] text-left w-full", as: "div", children: "ON" })) : (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-mono-subtle-default py-1 px-0.5 text-right w-full", as: "div", children: "OFF" })), jsx(StateColorContainer, { className: "rounded-lg" })] }));
13359
13388
  };
13360
13389
  const OutlinedSwitch = (props) => {
13361
13390
  const { size, checked, thumbClassName, ...rest } = props;
13362
- return (jsxs(Root, { className: cn("group border shadow-inner p-1 relative rounded-[20px]", checked
13363
- ? "bg-fill-accent-default hover:bg-fill-accent-hovered border-transparent"
13364
- : "bg-fill-mono-default hover:bg-fill-mono-hovered border-border-divider hover:border-border-bound", size === SWITCH_SIZES.REGULAR && "w-[74px] h-9", size === SWITCH_SIZES.SMALL && "w-[60px] h-7"), checked: checked, ...rest, children: [jsx(Thumb, { className: cn("absolute transition-all duration-100 top-[3px] rounded-full left-1 bg-border-divider data-[state=checked]:bg-comp-accent-default shadow-basic group-hover:bg-border-bound data-[state=checked]:group-hover:bg-comp-accent-hovered", size === SWITCH_SIZES.REGULAR &&
13365
- "size-7 data-[state=checked]:left-[42px] group-hover:shadow-large", size === SWITCH_SIZES.SMALL &&
13366
- "size-5 data-[state=checked]:left-[36px] group-hover:shadow-basic", thumbClassName) }), checked ? (jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
13391
+ return (jsxs(Root, { className: cn("group/state border shadow-inner p-1 relative rounded-[20px]", checked
13392
+ ? "bg-page-accent-l0 border-transparent"
13393
+ : "bg-page-l-null border-border-divider", size === SWITCH_SIZES.REGULAR && "w-[74px] h-9", size === SWITCH_SIZES.SMALL && "w-[60px] h-7"), checked: checked, ...rest, children: [jsx(Thumb, { className: cn("absolute transition-all duration-100 top-[3px] rounded-full left-1 bg-page-l3 border border-border-bound shadow-basic", size === SWITCH_SIZES.REGULAR &&
13394
+ "size-7 data-[state=checked]:left-[42px]", size === SWITCH_SIZES.SMALL &&
13395
+ "size-5 data-[state=checked]:left-[36px]", thumbClassName) }), checked ? (jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
13367
13396
  ? "boldBodyBoldCompact"
13368
- : "boldLabelBoldCompact", className: "text-comp-accent-default pl-2 text-left group-hover:text-comp-accent-hovered", as: "div", children: "ON" })) : (jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
13397
+ : "boldLabelBoldCompact", className: "text-comp-accent-default pl-2 text-left", as: "div", children: "ON" })) : (jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
13369
13398
  ? "medBodyMedCompact"
13370
- : "medLabelMedCompact", className: cn("text-comp-mono-subtle-default text-right group-hover:text-comp-mono-subtle-hovered", size === SWITCH_SIZES.REGULAR && "pr-1.5", size === SWITCH_SIZES.SMALL && "pr-[3px]"), as: "div", children: "OFF" }))] }));
13399
+ : "medLabelMedCompact", className: cn("text-comp-mono-subtle-default text-right", size === SWITCH_SIZES.REGULAR && "pr-1.5", size === SWITCH_SIZES.SMALL && "pr-[3px]"), as: "div", children: "OFF" })), jsx(StateColorContainer, { className: "rounded-[20px]" })] }));
13371
13400
  };
13372
13401
  const SlideSwitch = (props) => {
13373
13402
  const { size, checked, thumbClassName, leftIcon, rightIcon, ...rest } = props;
13374
- return (jsxs(Root, { className: cn("group border shadow-inner p-1 relative rounded-[20px] border-border-bound bg-fill-mono-default hover:bg-fill-mono-hovered", size === SWITCH_SIZES.REGULAR && "w-[70px] h-9", size === SWITCH_SIZES.SMALL && "w-[54px] h-7"), checked: checked, ...rest, children: [jsx(Thumb, { className: cn("absolute transition-all duration-100 top-[3px] rounded-full left-1 bg-page-l2 shadow-medium border border-border-bound", size === SWITCH_SIZES.REGULAR &&
13403
+ return (jsxs(Root, { className: cn("group/state border shadow-inner p-1 relative rounded-[20px] border-border-bound bg-page-l-null", size === SWITCH_SIZES.REGULAR && "w-[70px] h-9", size === SWITCH_SIZES.SMALL && "w-[54px] h-7"), checked: checked, ...rest, children: [jsx(Thumb, { className: cn("absolute transition-all duration-100 top-[3px] rounded-full left-1 bg-page-l3 shadow-basic border border-border-bound", size === SWITCH_SIZES.REGULAR &&
13375
13404
  "size-7 data-[state=checked]:left-[36px]", size === SWITCH_SIZES.SMALL &&
13376
- "size-5 data-[state=checked]:left-[28px]", thumbClassName) }), leftIcon && (jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "left-[8px] size-4", size === SWITCH_SIZES.REGULAR && "left-[10px] size-5", checked ? "opacity-100" : "opacity-0"), children: leftIcon })), rightIcon && (jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "right-[8px] size-4", size === SWITCH_SIZES.REGULAR && "right-[10px] size-5", !checked ? "opacity-100" : "opacity-0"), children: rightIcon }))] }));
13405
+ "size-5 data-[state=checked]:left-[28px]", thumbClassName) }), leftIcon && (jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "left-[8px] size-4", size === SWITCH_SIZES.REGULAR && "left-[10px] size-5", checked ? "opacity-100" : "opacity-0"), children: leftIcon })), rightIcon && (jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "right-[8px] size-4", size === SWITCH_SIZES.REGULAR && "right-[10px] size-5", !checked ? "opacity-100" : "opacity-0"), children: rightIcon })), jsx(StateColorContainer, { className: "rounded-[20px]" })] }));
13377
13406
  };
13378
13407
  const Switch = (props) => {
13379
13408
  const { defaultChecked, checked: isChecked } = props;
@@ -13,3 +13,5 @@ export { Tag } from "./tag";
13
13
  export { TAG_SIZES, TAG_VARIANTS } from "./tag/types";
14
14
  export type { TagSize, TagVariant } from "./tag/types";
15
15
  export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, } from "./pagination";
16
+ export { StateColorContainer } from "./state-color-container";
17
+ export type { StateGroupName } from "./state-color-container/types";