@zenkigen-inc/component-ui 1.21.1 → 1.22.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.mjs CHANGED
@@ -2968,22 +2968,35 @@ Modal.Footer = ModalFooter;
2968
2968
  // src/notification-inline/notification-inline.tsx
2969
2969
  import { clsx as clsx29 } from "clsx";
2970
2970
  import { jsx as jsx38, jsxs as jsxs15 } from "react/jsx-runtime";
2971
- function NotificationInline({ state = "default", size = "medium", ...props }) {
2972
- const wrapperClasses = clsx29("typography-body13regular flex items-center gap-1 rounded text-text01", {
2971
+ function NotificationInline({ state = "default", size = "medium", variant = "default", ...props }) {
2972
+ const isOutline = variant === "outline";
2973
+ const wrapperClasses = clsx29("typography-body13regular flex items-center gap-1 rounded border text-text01", {
2973
2974
  "bg-uiBackgroundError": state === "attention",
2974
2975
  "bg-uiBackgroundWarning": state === "warning",
2975
2976
  "bg-uiBackgroundBlue": state === "information",
2976
2977
  "bg-uiBackgroundSuccess": state === "success",
2977
2978
  "bg-uiBackgroundGray": state === "default",
2978
- "p-2": size === "small",
2979
- "p-3": size === "medium"
2979
+ // 1 行時の高さの基準は small が閉じるボタン(24px)、medium がアイコン(24px)。
2980
+ // showClose / state によらず高さが変わらないよう、両サイズとも最小高を確保する
2981
+ "min-h-12 p-[calc(0.75rem_-_1px)]": size === "small",
2982
+ "min-h-14 p-[calc(1rem_-_1px)]": size === "medium",
2983
+ "border-transparent": !isOutline,
2984
+ "border-supportError": isOutline && state === "attention",
2985
+ "border-supportWarning": isOutline && state === "warning",
2986
+ "border-supportInfo": isOutline && state === "information",
2987
+ "border-supportSuccess": isOutline && state === "success",
2988
+ "border-uiBorder04": isOutline && state === "default"
2980
2989
  });
2981
- const iconClasses = clsx29("flex items-center", {
2990
+ const iconClasses = clsx29("flex shrink-0 items-center", {
2991
+ "h-5": size === "small",
2982
2992
  "fill-supportError": state === "attention",
2983
2993
  "fill-supportWarning": state === "warning",
2984
2994
  "fill-blue-blue50": state === "information",
2985
2995
  "fill-supportSuccess": state === "success"
2986
2996
  });
2997
+ const textClasses = clsx29("flex-1", {
2998
+ "pt-[2px]": size === "medium" && state !== "default"
2999
+ });
2987
3000
  const iconName = {
2988
3001
  attention: "attention",
2989
3002
  success: "success-filled",
@@ -2995,9 +3008,11 @@ function NotificationInline({ state = "default", size = "medium", ...props }) {
2995
3008
  medium: "medium"
2996
3009
  };
2997
3010
  return /* @__PURE__ */ jsxs15("div", { className: wrapperClasses, children: [
2998
- state !== "default" && /* @__PURE__ */ jsx38("div", { className: iconClasses, children: /* @__PURE__ */ jsx38(Icon, { name: iconName[state], size: iconSize[size] }) }),
2999
- /* @__PURE__ */ jsx38("p", { className: "flex-1", children: props.children }),
3000
- props.showClose === true && /* @__PURE__ */ jsx38("div", { className: "flex items-center", children: /* @__PURE__ */ jsx38(IconButton, { icon: "close", size: "small", variant: "text", onClick: props.onClickClose }) })
3011
+ /* @__PURE__ */ jsxs15("div", { className: "flex flex-1 items-start gap-1", children: [
3012
+ state !== "default" && /* @__PURE__ */ jsx38("div", { className: iconClasses, children: /* @__PURE__ */ jsx38(Icon, { name: iconName[state], size: iconSize[size] }) }),
3013
+ /* @__PURE__ */ jsx38("p", { className: textClasses, children: props.children })
3014
+ ] }),
3015
+ props.showClose === true && /* @__PURE__ */ jsx38("div", { className: "ml-2 flex shrink-0 items-center", children: /* @__PURE__ */ jsx38(IconButton, { icon: "close", size: "small", variant: "text", onClick: props.onClickClose }) })
3001
3016
  ] });
3002
3017
  }
3003
3018
 
@@ -3209,7 +3224,9 @@ function Select({
3209
3224
  isOptionSelected = false,
3210
3225
  onChange,
3211
3226
  optionListMaxHeight,
3212
- matchListToTrigger = false
3227
+ matchListToTrigger = false,
3228
+ "aria-label": ariaLabel,
3229
+ "aria-describedby": ariaDescribedby
3213
3230
  }) {
3214
3231
  const [isOptionListOpen, setIsOptionListOpen] = useState10(false);
3215
3232
  const targetRef = useRef11(null);
@@ -3270,6 +3287,7 @@ function Select({
3270
3287
  "typography-label14regular": size === "small" || size === "medium",
3271
3288
  "typography-label16regular": size === "large"
3272
3289
  });
3290
+ const ariaInvalidProps = isError ? { "aria-invalid": true } : {};
3273
3291
  return /* @__PURE__ */ jsx43(
3274
3292
  SelectContext.Provider,
3275
3293
  {
@@ -3291,6 +3309,9 @@ function Select({
3291
3309
  ref: refs.setReference,
3292
3310
  className: buttonClasses,
3293
3311
  type: "button",
3312
+ "aria-label": ariaLabel,
3313
+ "aria-describedby": ariaDescribedby,
3314
+ ...ariaInvalidProps,
3294
3315
  onClick: handleClickToggle,
3295
3316
  disabled: isDisabled,
3296
3317
  children: [
@@ -3599,23 +3620,207 @@ function Radio({
3599
3620
  ] });
3600
3621
  }
3601
3622
 
3623
+ // src/radio-card/radio-card.tsx
3624
+ import { Children as Children5, cloneElement as cloneElement5, isValidElement as isValidElement5, useId as useId6, useMemo as useMemo6 } from "react";
3625
+
3626
+ // src/radio-card/radio-card-context.ts
3627
+ import { createContext as createContext12, useContext as useContext15 } from "react";
3628
+ var RadioCardContext = createContext12(null);
3629
+ function useRadioCardContext(componentName) {
3630
+ const context = useContext15(RadioCardContext);
3631
+ if (context === null) {
3632
+ throw new Error(`<${componentName}> \u306F <RadioCard> \u306E\u5185\u90E8\u3067\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`);
3633
+ }
3634
+ return context;
3635
+ }
3636
+
3637
+ // src/radio-card/radio-card-error-message.tsx
3638
+ import { jsx as jsx51 } from "react/jsx-runtime";
3639
+ function RadioCardErrorMessage({ children, id }) {
3640
+ const { isError } = useRadioCardContext("RadioCard.ErrorMessage");
3641
+ if (!isError) {
3642
+ return null;
3643
+ }
3644
+ return /* @__PURE__ */ jsx51("p", { id, className: "typography-label13regular text-supportError", "aria-live": "assertive", children });
3645
+ }
3646
+ RadioCardErrorMessage.displayName = "RadioCard.ErrorMessage";
3647
+
3648
+ // src/radio-card/radio-card-group.tsx
3649
+ import { jsx as jsx52 } from "react/jsx-runtime";
3650
+ function RadioCardGroup({ children }) {
3651
+ const { ariaLabel, ariaLabelledby, errorDescribedBy } = useRadioCardContext("RadioCard.Group");
3652
+ const describedByProps = errorDescribedBy != null ? { "aria-describedby": errorDescribedBy } : {};
3653
+ return /* @__PURE__ */ jsx52(
3654
+ "div",
3655
+ {
3656
+ role: "radiogroup",
3657
+ "aria-label": ariaLabel,
3658
+ "aria-labelledby": ariaLabelledby,
3659
+ className: "flex flex-col gap-4",
3660
+ ...describedByProps,
3661
+ children
3662
+ }
3663
+ );
3664
+ }
3665
+ RadioCardGroup.displayName = "RadioCard.Group";
3666
+
3667
+ // src/radio-card/radio-card-item.tsx
3668
+ import { focusVisible as focusVisible13 } from "@zenkigen-inc/component-theme";
3669
+ import clsx35 from "clsx";
3670
+ import { useId as useId5 } from "react";
3671
+ import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
3672
+ function RadioCardItem({ value, label, description, isDisabled: itemDisabled = false, id }) {
3673
+ const context = useRadioCardContext("RadioCard.Item");
3674
+ const autoId = useId5();
3675
+ const inputId = id ?? autoId;
3676
+ const labelId = `${inputId}-label`;
3677
+ const descriptionId = `${inputId}-description`;
3678
+ const isChecked = context.value === value;
3679
+ const isDisabled = context.isDisabled || itemDisabled;
3680
+ const isError = context.isError && !isDisabled;
3681
+ const hasDescription = description != null && description !== "";
3682
+ const describedByProps = hasDescription ? { "aria-describedby": descriptionId } : {};
3683
+ const ariaInvalidProps = isError ? { "aria-invalid": true } : {};
3684
+ const handleChange = () => {
3685
+ if (!isDisabled) {
3686
+ context.onChange(value);
3687
+ }
3688
+ };
3689
+ const cardClasses = clsx35(
3690
+ "pointer-events-none flex flex-col gap-2 rounded border border-solid px-4 py-3",
3691
+ focusVisible13.normalPeer,
3692
+ {
3693
+ "border-uiBorder02 bg-uiBackground01": isDisabled,
3694
+ "border-supportError bg-uiBackground01 group-hover:bg-hoverUi02": isError,
3695
+ "border-selectedUiBorder bg-selectedUi group-hover:bg-hoverUi02": !isDisabled && !isError && isChecked,
3696
+ "border-uiBorder02 bg-uiBackground01 group-hover:bg-hoverUi02": !isDisabled && !isError && !isChecked
3697
+ }
3698
+ );
3699
+ const boxClasses = clsx35(
3700
+ "relative inline-flex size-5 shrink-0 items-center justify-center rounded-full border border-solid bg-white",
3701
+ {
3702
+ "border-disabled01": isDisabled,
3703
+ "border-supportError group-hover:border-hoverError": !isDisabled && isError,
3704
+ "border-uiBorder04 group-hover:border-hoverUiBorder": !isDisabled && !isError
3705
+ }
3706
+ );
3707
+ const dotClasses = clsx35("absolute inset-0 m-auto size-3 rounded-full", {
3708
+ "scale-100": isChecked,
3709
+ "scale-0": !isChecked,
3710
+ "bg-disabled01": isDisabled && isChecked,
3711
+ "bg-supportError": !isDisabled && isError && isChecked,
3712
+ "bg-activeSelectedUi": !isDisabled && !isError && isChecked
3713
+ });
3714
+ const hoverDotClasses = clsx35("size-3 rounded-full bg-transparent", {
3715
+ "group-hover:bg-hoverUi": !isDisabled && !isChecked
3716
+ });
3717
+ const labelClasses = clsx35("typography-label14regular ml-2 select-none break-all", {
3718
+ "text-disabled01": isDisabled,
3719
+ "text-text01": !isDisabled
3720
+ });
3721
+ const descriptionClasses = clsx35("typography-body12regular pl-7", {
3722
+ "text-disabled01": isDisabled,
3723
+ "text-text02": !isDisabled
3724
+ });
3725
+ return /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
3726
+ /* @__PURE__ */ jsx53(
3727
+ "input",
3728
+ {
3729
+ type: "radio",
3730
+ id: inputId,
3731
+ name: context.name,
3732
+ value,
3733
+ checked: isChecked,
3734
+ disabled: isDisabled,
3735
+ onChange: handleChange,
3736
+ "aria-labelledby": labelId,
3737
+ className: "peer absolute inset-0 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed",
3738
+ ...describedByProps,
3739
+ ...ariaInvalidProps
3740
+ }
3741
+ ),
3742
+ /* @__PURE__ */ jsxs23("div", { className: cardClasses, children: [
3743
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center", children: [
3744
+ /* @__PURE__ */ jsxs23("span", { className: boxClasses, "aria-hidden": "true", children: [
3745
+ /* @__PURE__ */ jsx53("span", { className: dotClasses }),
3746
+ /* @__PURE__ */ jsx53("span", { className: hoverDotClasses })
3747
+ ] }),
3748
+ /* @__PURE__ */ jsx53("span", { id: labelId, className: labelClasses, children: label })
3749
+ ] }),
3750
+ hasDescription ? /* @__PURE__ */ jsx53("p", { id: descriptionId, className: descriptionClasses, children: description }) : null
3751
+ ] })
3752
+ ] });
3753
+ }
3754
+ RadioCardItem.displayName = "RadioCard.Item";
3755
+
3756
+ // src/radio-card/radio-card.tsx
3757
+ import { jsx as jsx54 } from "react/jsx-runtime";
3758
+ function RadioCardRoot({
3759
+ children,
3760
+ value,
3761
+ onChange,
3762
+ name,
3763
+ isDisabled = false,
3764
+ isError = false,
3765
+ "aria-label": ariaLabel,
3766
+ "aria-labelledby": ariaLabelledby
3767
+ }) {
3768
+ const autoName = useId6();
3769
+ const baseId = useId6();
3770
+ const resolvedName = name ?? autoName;
3771
+ const errorIds = [];
3772
+ const enhancedChildren = Children5.map(children, (child) => {
3773
+ if (!isValidElement5(child)) {
3774
+ return child;
3775
+ }
3776
+ if (child.type === RadioCardErrorMessage && isError) {
3777
+ const errorChild = child;
3778
+ const assignedId = errorChild.props.id ?? `${baseId}-error-${errorIds.length + 1}`;
3779
+ errorIds.push(assignedId);
3780
+ return cloneElement5(errorChild, { id: assignedId });
3781
+ }
3782
+ return child;
3783
+ });
3784
+ const errorDescribedBy = errorIds.length > 0 ? errorIds.join(" ") : null;
3785
+ const contextValue = useMemo6(
3786
+ () => ({
3787
+ value,
3788
+ onChange,
3789
+ name: resolvedName,
3790
+ isDisabled,
3791
+ isError,
3792
+ errorDescribedBy,
3793
+ ariaLabel,
3794
+ ariaLabelledby
3795
+ }),
3796
+ [value, onChange, resolvedName, isDisabled, isError, errorDescribedBy, ariaLabel, ariaLabelledby]
3797
+ );
3798
+ return /* @__PURE__ */ jsx54(RadioCardContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx54("div", { className: "flex flex-col gap-2", children: enhancedChildren }) });
3799
+ }
3800
+ var RadioCard = Object.assign(RadioCardRoot, {
3801
+ Group: RadioCardGroup,
3802
+ Item: RadioCardItem,
3803
+ ErrorMessage: RadioCardErrorMessage,
3804
+ displayName: "RadioCard"
3805
+ });
3806
+
3602
3807
  // src/search/search.tsx
3603
- import { clsx as clsx35 } from "clsx";
3808
+ import { clsx as clsx36 } from "clsx";
3604
3809
  import { forwardRef as forwardRef12 } from "react";
3605
- import { jsx as jsx51, jsxs as jsxs23 } from "react/jsx-runtime";
3810
+ import { jsx as jsx55, jsxs as jsxs24 } from "react/jsx-runtime";
3606
3811
  var Search = forwardRef12(({ width = "100%", size = "medium", ...props }, ref) => {
3607
- const classes = clsx35(
3812
+ const classes = clsx36(
3608
3813
  "flex items-center rounded-full border border-uiBorder02 bg-uiBackground01 focus-within:border-activeInput",
3609
3814
  { "h-8 px-3": size === "medium" },
3610
3815
  { "h-10 px-4": size === "large" }
3611
3816
  );
3612
- const inputClasses = clsx35("mx-2 h-full flex-1 text-text01 outline-none placeholder:text-textPlaceholder", {
3817
+ const inputClasses = clsx36("mx-2 h-full flex-1 text-text01 outline-none placeholder:text-textPlaceholder", {
3613
3818
  ["typography-label14regular"]: size === "medium",
3614
3819
  ["typography-label16regular"]: size === "large"
3615
3820
  });
3616
- return /* @__PURE__ */ jsx51("div", { className: "relative", ref, children: /* @__PURE__ */ jsx51("form", { onSubmit: props.onSubmit, children: /* @__PURE__ */ jsxs23("div", { className: classes, style: { width }, children: [
3617
- /* @__PURE__ */ jsx51(Icon, { name: "search", color: "icon01", size: "medium" }),
3618
- /* @__PURE__ */ jsx51(
3821
+ return /* @__PURE__ */ jsx55("div", { className: "relative", ref, children: /* @__PURE__ */ jsx55("form", { onSubmit: props.onSubmit, children: /* @__PURE__ */ jsxs24("div", { className: classes, style: { width }, children: [
3822
+ /* @__PURE__ */ jsx55(Icon, { name: "search", color: "icon01", size: "medium" }),
3823
+ /* @__PURE__ */ jsx55(
3619
3824
  "input",
3620
3825
  {
3621
3826
  type: "text",
@@ -3626,7 +3831,7 @@ var Search = forwardRef12(({ width = "100%", size = "medium", ...props }, ref) =
3626
3831
  onChange: props.onChange
3627
3832
  }
3628
3833
  ),
3629
- props.onClickClearButton && props.value && props.value.length !== 0 && /* @__PURE__ */ jsx51(
3834
+ props.onClickClearButton && props.value && props.value.length !== 0 && /* @__PURE__ */ jsx55(
3630
3835
  IconButton,
3631
3836
  {
3632
3837
  variant: "text",
@@ -3641,17 +3846,17 @@ var Search = forwardRef12(({ width = "100%", size = "medium", ...props }, ref) =
3641
3846
  Search.displayName = "Search";
3642
3847
 
3643
3848
  // src/segmented-control/segmented-control.tsx
3644
- import React4, { Children as Children5, useRef as useRef13 } from "react";
3849
+ import React4, { Children as Children6, useRef as useRef13 } from "react";
3645
3850
 
3646
3851
  // src/segmented-control/segmented-control-context.ts
3647
- import { createContext as createContext12 } from "react";
3648
- var SegmentedControlContext = createContext12(null);
3852
+ import { createContext as createContext13 } from "react";
3853
+ var SegmentedControlContext = createContext13(null);
3649
3854
 
3650
3855
  // src/segmented-control/segmented-control-item.tsx
3651
- import { focusVisible as focusVisible13 } from "@zenkigen-inc/component-theme";
3652
- import { clsx as clsx36 } from "clsx";
3653
- import { useContext as useContext15, useEffect as useEffect11, useRef as useRef12 } from "react";
3654
- import { jsx as jsx52, jsxs as jsxs24 } from "react/jsx-runtime";
3856
+ import { focusVisible as focusVisible14 } from "@zenkigen-inc/component-theme";
3857
+ import { clsx as clsx37 } from "clsx";
3858
+ import { useContext as useContext16, useEffect as useEffect11, useRef as useRef12 } from "react";
3859
+ import { jsx as jsx56, jsxs as jsxs25 } from "react/jsx-runtime";
3655
3860
  var SegmentedControlItem = ({
3656
3861
  label,
3657
3862
  value,
@@ -3660,7 +3865,7 @@ var SegmentedControlItem = ({
3660
3865
  "aria-label": ariaLabel,
3661
3866
  ...rest
3662
3867
  }) => {
3663
- const context = useContext15(SegmentedControlContext);
3868
+ const context = useContext16(SegmentedControlContext);
3664
3869
  const buttonRef = useRef12(null);
3665
3870
  const lastInteractionWasMouse = useRef12(false);
3666
3871
  if (context === null) {
@@ -3700,7 +3905,7 @@ var SegmentedControlItem = ({
3700
3905
  lastInteractionWasMouse.current = false;
3701
3906
  onBlur?.();
3702
3907
  };
3703
- const buttonClasses = clsx36("relative flex items-center justify-center gap-1 rounded", focusVisible13.normal, {
3908
+ const buttonClasses = clsx37("relative flex items-center justify-center gap-1 rounded", focusVisible14.normal, {
3704
3909
  "px-2 min-h-[24px] typography-label12regular": size === "small",
3705
3910
  "px-4 min-h-[32px] typography-label14regular": size === "medium",
3706
3911
  // States - Default with hover
@@ -3710,7 +3915,7 @@ var SegmentedControlItem = ({
3710
3915
  // States - Disabled
3711
3916
  "text-disabled01 bg-transparent": isOptionDisabled === true
3712
3917
  });
3713
- return /* @__PURE__ */ jsxs24(
3918
+ return /* @__PURE__ */ jsxs25(
3714
3919
  "button",
3715
3920
  {
3716
3921
  ref: buttonRef,
@@ -3727,25 +3932,25 @@ var SegmentedControlItem = ({
3727
3932
  onMouseDown: handleMouseDown,
3728
3933
  ...rest,
3729
3934
  children: [
3730
- Boolean(icon) === true && icon && /* @__PURE__ */ jsx52(
3935
+ Boolean(icon) === true && icon && /* @__PURE__ */ jsx56(
3731
3936
  "span",
3732
3937
  {
3733
- className: clsx36("flex items-center", {
3938
+ className: clsx37("flex items-center", {
3734
3939
  "fill-disabled01": isOptionDisabled === true,
3735
3940
  "fill-interactive01": isSelected === true && isOptionDisabled === false,
3736
3941
  "fill-icon01": isSelected === false && isOptionDisabled === false
3737
3942
  }),
3738
- children: /* @__PURE__ */ jsx52(Icon, { name: icon, size: "small" })
3943
+ children: /* @__PURE__ */ jsx56(Icon, { name: icon, size: "small" })
3739
3944
  }
3740
3945
  ),
3741
- Boolean(label) === true && /* @__PURE__ */ jsx52("span", { className: "whitespace-nowrap", children: label })
3946
+ Boolean(label) === true && /* @__PURE__ */ jsx56("span", { className: "whitespace-nowrap", children: label })
3742
3947
  ]
3743
3948
  }
3744
3949
  );
3745
3950
  };
3746
3951
 
3747
3952
  // src/segmented-control/segmented-control.tsx
3748
- import { Fragment as Fragment6, jsx as jsx53 } from "react/jsx-runtime";
3953
+ import { Fragment as Fragment6, jsx as jsx57 } from "react/jsx-runtime";
3749
3954
  var SegmentedControl = ({
3750
3955
  children,
3751
3956
  value,
@@ -3756,14 +3961,14 @@ var SegmentedControl = ({
3756
3961
  ...rest
3757
3962
  }) => {
3758
3963
  const containerRef = useRef13(null);
3759
- const itemIds = Children5.toArray(children).filter((child) => {
3964
+ const itemIds = Children6.toArray(children).filter((child) => {
3760
3965
  if (!React4.isValidElement(child) || typeof child.props !== "object" || child.props === null || !("value" in child.props)) {
3761
3966
  return false;
3762
3967
  }
3763
3968
  const props = child.props;
3764
3969
  return props.isDisabled !== true;
3765
3970
  }).map((child) => child.props.value);
3766
- const childrenCount = Children5.count(children);
3971
+ const childrenCount = Children6.count(children);
3767
3972
  const containerStyle = { gridTemplateColumns: `repeat(${childrenCount}, minmax(0,1fr))` };
3768
3973
  const {
3769
3974
  focusedValue,
@@ -3790,7 +3995,7 @@ var SegmentedControl = ({
3790
3995
  onBlur: handleBlurRovingFocus,
3791
3996
  values: itemIds
3792
3997
  };
3793
- return /* @__PURE__ */ jsx53(Fragment6, { children: /* @__PURE__ */ jsx53(SegmentedControlContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx53(
3998
+ return /* @__PURE__ */ jsx57(Fragment6, { children: /* @__PURE__ */ jsx57(SegmentedControlContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx57(
3794
3999
  "div",
3795
4000
  {
3796
4001
  ref: containerRef,
@@ -3807,22 +4012,22 @@ var SegmentedControl = ({
3807
4012
  SegmentedControl.Item = SegmentedControlItem;
3808
4013
 
3809
4014
  // src/select-sort/select-sort.tsx
3810
- import { buttonColors as buttonColors4, focusVisible as focusVisible16 } from "@zenkigen-inc/component-theme";
3811
- import clsx39 from "clsx";
4015
+ import { buttonColors as buttonColors4, focusVisible as focusVisible17 } from "@zenkigen-inc/component-theme";
4016
+ import clsx40 from "clsx";
3812
4017
  import { useCallback as useCallback13, useRef as useRef14, useState as useState13 } from "react";
3813
4018
 
3814
4019
  // src/select-sort/select-list.tsx
3815
- import { focusVisible as focusVisible15 } from "@zenkigen-inc/component-theme";
3816
- import clsx38 from "clsx";
4020
+ import { focusVisible as focusVisible16 } from "@zenkigen-inc/component-theme";
4021
+ import clsx39 from "clsx";
3817
4022
 
3818
4023
  // src/select-sort/select-item.tsx
3819
- import { focusVisible as focusVisible14 } from "@zenkigen-inc/component-theme";
3820
- import clsx37 from "clsx";
3821
- import { jsx as jsx54, jsxs as jsxs25 } from "react/jsx-runtime";
4024
+ import { focusVisible as focusVisible15 } from "@zenkigen-inc/component-theme";
4025
+ import clsx38 from "clsx";
4026
+ import { jsx as jsx58, jsxs as jsxs26 } from "react/jsx-runtime";
3822
4027
  function SelectItem2({ children, isSortKey, size, onClickItem }) {
3823
- const itemClasses = clsx37(
4028
+ const itemClasses = clsx38(
3824
4029
  "typography-label14regular flex w-full items-center px-3 hover:bg-hover02 active:bg-active02",
3825
- focusVisible14.inset,
4030
+ focusVisible15.inset,
3826
4031
  {
3827
4032
  "h-8": size !== "large",
3828
4033
  "h-10": size === "large",
@@ -3830,16 +4035,16 @@ function SelectItem2({ children, isSortKey, size, onClickItem }) {
3830
4035
  "bg-uiBackground01 fill-icon01 text-interactive02": !isSortKey
3831
4036
  }
3832
4037
  );
3833
- return /* @__PURE__ */ jsx54("li", { className: "flex w-full items-center", onClick: onClickItem, children: /* @__PURE__ */ jsxs25("button", { className: itemClasses, type: "button", children: [
3834
- /* @__PURE__ */ jsx54("span", { className: "ml-1 mr-6", children }),
3835
- isSortKey && /* @__PURE__ */ jsx54("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx54(Icon, { name: "check", size: "small" }) })
4038
+ return /* @__PURE__ */ jsx58("li", { className: "flex w-full items-center", onClick: onClickItem, children: /* @__PURE__ */ jsxs26("button", { className: itemClasses, type: "button", children: [
4039
+ /* @__PURE__ */ jsx58("span", { className: "ml-1 mr-6", children }),
4040
+ isSortKey && /* @__PURE__ */ jsx58("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx58(Icon, { name: "check", size: "small" }) })
3836
4041
  ] }) });
3837
4042
  }
3838
4043
 
3839
4044
  // src/select-sort/select-list.tsx
3840
- import { jsx as jsx55, jsxs as jsxs26 } from "react/jsx-runtime";
4045
+ import { jsx as jsx59, jsxs as jsxs27 } from "react/jsx-runtime";
3841
4046
  function SelectList2({ size, variant, sortOrder, onClickItem, onClickDeselect }) {
3842
- const listClasses = clsx38(
4047
+ const listClasses = clsx39(
3843
4048
  "absolute z-dropdown w-max overflow-y-auto rounded bg-uiBackground01 py-2 shadow-floatingShadow",
3844
4049
  {
3845
4050
  "top-7": size === "x-small" || size === "small",
@@ -3848,23 +4053,23 @@ function SelectList2({ size, variant, sortOrder, onClickItem, onClickDeselect })
3848
4053
  "border-solid border border-uiBorder01": variant === "outline"
3849
4054
  }
3850
4055
  );
3851
- const deselectButtonClasses = clsx38(
4056
+ const deselectButtonClasses = clsx39(
3852
4057
  "typography-label14regular flex w-full items-center px-3 text-interactive02 hover:bg-hover02 active:bg-active02",
3853
- focusVisible15.inset,
4058
+ focusVisible16.inset,
3854
4059
  {
3855
4060
  "h-8": size !== "large",
3856
4061
  "h-10": size === "large"
3857
4062
  }
3858
4063
  );
3859
- return /* @__PURE__ */ jsxs26("ul", { className: listClasses, children: [
3860
- /* @__PURE__ */ jsx55(SelectItem2, { size, isSortKey: sortOrder === "ascend", onClickItem: () => onClickItem("ascend"), children: "\u6607\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
3861
- /* @__PURE__ */ jsx55(SelectItem2, { size, isSortKey: sortOrder === "descend", onClickItem: () => onClickItem("descend"), children: "\u964D\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
3862
- sortOrder !== null && onClickDeselect && /* @__PURE__ */ jsx55("li", { children: /* @__PURE__ */ jsx55("button", { className: deselectButtonClasses, type: "button", onClick: onClickDeselect, children: "\u9078\u629E\u89E3\u9664" }) })
4064
+ return /* @__PURE__ */ jsxs27("ul", { className: listClasses, children: [
4065
+ /* @__PURE__ */ jsx59(SelectItem2, { size, isSortKey: sortOrder === "ascend", onClickItem: () => onClickItem("ascend"), children: "\u6607\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
4066
+ /* @__PURE__ */ jsx59(SelectItem2, { size, isSortKey: sortOrder === "descend", onClickItem: () => onClickItem("descend"), children: "\u964D\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
4067
+ sortOrder !== null && onClickDeselect && /* @__PURE__ */ jsx59("li", { children: /* @__PURE__ */ jsx59("button", { className: deselectButtonClasses, type: "button", onClick: onClickDeselect, children: "\u9078\u629E\u89E3\u9664" }) })
3863
4068
  ] });
3864
4069
  }
3865
4070
 
3866
4071
  // src/select-sort/select-sort.tsx
3867
- import { jsx as jsx56, jsxs as jsxs27 } from "react/jsx-runtime";
4072
+ import { jsx as jsx60, jsxs as jsxs28 } from "react/jsx-runtime";
3868
4073
  function SelectSort({
3869
4074
  size = "medium",
3870
4075
  variant = "outline",
@@ -3892,18 +4097,18 @@ function SelectSort({
3892
4097
  },
3893
4098
  [onChange]
3894
4099
  );
3895
- const wrapperClasses = clsx39("relative flex shrink-0 items-center gap-1 rounded", {
4100
+ const wrapperClasses = clsx40("relative flex shrink-0 items-center gap-1 rounded", {
3896
4101
  "h-6": size === "x-small" || size === "small",
3897
4102
  "h-8": size === "medium",
3898
4103
  "h-10": size === "large",
3899
4104
  "cursor-not-allowed": isDisabled
3900
4105
  });
3901
- const buttonClasses = clsx39(
4106
+ const buttonClasses = clsx40(
3902
4107
  "flex size-full items-center rounded",
3903
4108
  buttonColors4[variant].hover,
3904
4109
  buttonColors4[variant].active,
3905
4110
  buttonColors4[variant].disabled,
3906
- focusVisible16.normal,
4111
+ focusVisible17.normal,
3907
4112
  {
3908
4113
  [buttonColors4[variant].selected]: isSortKey,
3909
4114
  [buttonColors4[variant].base]: !isSortKey,
@@ -3912,23 +4117,23 @@ function SelectSort({
3912
4117
  "pointer-events-none": isDisabled
3913
4118
  }
3914
4119
  );
3915
- const labelClasses = clsx39("truncate", {
4120
+ const labelClasses = clsx40("truncate", {
3916
4121
  "typography-label12regular": size === "x-small",
3917
4122
  "typography-label14regular": size === "small" || size === "medium",
3918
4123
  "typography-label16regular": size === "large",
3919
4124
  "mr-1": size === "x-small",
3920
4125
  "mr-2": size !== "x-small"
3921
4126
  });
3922
- return /* @__PURE__ */ jsxs27("div", { className: wrapperClasses, style: { width }, ref: targetRef, children: [
3923
- /* @__PURE__ */ jsxs27("button", { className: buttonClasses, type: "button", onClick: handleClickToggle, disabled: isDisabled, children: [
3924
- /* @__PURE__ */ jsx56("div", { className: labelClasses, children: label }),
3925
- /* @__PURE__ */ jsx56("div", { className: "ml-auto flex items-center", children: isSortKey ? /* @__PURE__ */ jsx56(
4127
+ return /* @__PURE__ */ jsxs28("div", { className: wrapperClasses, style: { width }, ref: targetRef, children: [
4128
+ /* @__PURE__ */ jsxs28("button", { className: buttonClasses, type: "button", onClick: handleClickToggle, disabled: isDisabled, children: [
4129
+ /* @__PURE__ */ jsx60("div", { className: labelClasses, children: label }),
4130
+ /* @__PURE__ */ jsx60("div", { className: "ml-auto flex items-center", children: isSortKey ? /* @__PURE__ */ jsx60(
3926
4131
  Icon,
3927
4132
  {
3928
4133
  name: sortOrder === "ascend" ? "arrow-up" : "arrow-down",
3929
4134
  size: size === "large" ? "medium" : "small"
3930
4135
  }
3931
- ) : /* @__PURE__ */ jsx56(
4136
+ ) : /* @__PURE__ */ jsx60(
3932
4137
  Icon,
3933
4138
  {
3934
4139
  name: isOptionListOpen ? "angle-small-up" : "angle-small-down",
@@ -3936,7 +4141,7 @@ function SelectSort({
3936
4141
  }
3937
4142
  ) })
3938
4143
  ] }),
3939
- isOptionListOpen && !isDisabled && /* @__PURE__ */ jsx56(
4144
+ isOptionListOpen && !isDisabled && /* @__PURE__ */ jsx60(
3940
4145
  SelectList2,
3941
4146
  {
3942
4147
  size,
@@ -3950,10 +4155,10 @@ function SelectSort({
3950
4155
  }
3951
4156
 
3952
4157
  // src/sort-button/sort-button.tsx
3953
- import { buttonColors as buttonColors5, focusVisible as focusVisible17 } from "@zenkigen-inc/component-theme";
3954
- import clsx40 from "clsx";
4158
+ import { buttonColors as buttonColors5, focusVisible as focusVisible18 } from "@zenkigen-inc/component-theme";
4159
+ import clsx41 from "clsx";
3955
4160
  import { useCallback as useCallback14 } from "react";
3956
- import { jsx as jsx57, jsxs as jsxs28 } from "react/jsx-runtime";
4161
+ import { jsx as jsx61, jsxs as jsxs29 } from "react/jsx-runtime";
3957
4162
  function SortButton({
3958
4163
  size = "medium",
3959
4164
  width,
@@ -3973,18 +4178,18 @@ function SortButton({
3973
4178
  if (sortOrder === "descend") return "arrow-down";
3974
4179
  return "angle-small-down";
3975
4180
  };
3976
- const wrapperClasses = clsx40("relative flex shrink-0 items-center gap-1 rounded", {
4181
+ const wrapperClasses = clsx41("relative flex shrink-0 items-center gap-1 rounded", {
3977
4182
  "h-6": size === "x-small" || size === "small",
3978
4183
  "h-8": size === "medium",
3979
4184
  "h-10": size === "large",
3980
4185
  "cursor-not-allowed": isDisabled
3981
4186
  });
3982
- const buttonClasses = clsx40(
4187
+ const buttonClasses = clsx41(
3983
4188
  "flex size-full items-center rounded",
3984
4189
  buttonColors5.text.hover,
3985
4190
  buttonColors5.text.active,
3986
4191
  buttonColors5.text.disabled,
3987
- focusVisible17.normal,
4192
+ focusVisible18.normal,
3988
4193
  {
3989
4194
  [buttonColors5.text.selected]: !isDisabled && sortOrder !== null,
3990
4195
  // ソート状態時は選択状態のスタイル
@@ -3995,14 +4200,14 @@ function SortButton({
3995
4200
  "pointer-events-none": isDisabled
3996
4201
  }
3997
4202
  );
3998
- const labelClasses = clsx40("truncate", {
4203
+ const labelClasses = clsx41("truncate", {
3999
4204
  "typography-label12regular": size === "x-small",
4000
4205
  "typography-label14regular": size === "small" || size === "medium",
4001
4206
  "typography-label16regular": size === "large",
4002
4207
  "mr-1": size === "x-small",
4003
4208
  "mr-2": size !== "x-small"
4004
4209
  });
4005
- return /* @__PURE__ */ jsx57("div", { className: wrapperClasses, style: { width }, children: /* @__PURE__ */ jsxs28(
4210
+ return /* @__PURE__ */ jsx61("div", { className: wrapperClasses, style: { width }, children: /* @__PURE__ */ jsxs29(
4006
4211
  "button",
4007
4212
  {
4008
4213
  className: buttonClasses,
@@ -4013,22 +4218,22 @@ function SortButton({
4013
4218
  "aria-label": ariaLabel,
4014
4219
  "aria-disabled": isDisabled,
4015
4220
  children: [
4016
- /* @__PURE__ */ jsx57("div", { className: labelClasses, children: label }),
4017
- /* @__PURE__ */ jsx57("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx57(Icon, { name: getIconName(), size: size === "large" ? "medium" : "small" }) })
4221
+ /* @__PURE__ */ jsx61("div", { className: labelClasses, children: label }),
4222
+ /* @__PURE__ */ jsx61("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx61(Icon, { name: getIconName(), size: size === "large" ? "medium" : "small" }) })
4018
4223
  ]
4019
4224
  }
4020
4225
  ) });
4021
4226
  }
4022
4227
 
4023
4228
  // src/steps/steps.tsx
4024
- import { clsx as clsx43 } from "clsx";
4025
- import { Children as Children6, Fragment as Fragment7, isValidElement as isValidElement5, useId as useId5, useMemo as useMemo6, useState as useState14 } from "react";
4229
+ import { clsx as clsx44 } from "clsx";
4230
+ import { Children as Children7, Fragment as Fragment7, isValidElement as isValidElement6, useId as useId7, useMemo as useMemo7, useState as useState14 } from "react";
4026
4231
 
4027
4232
  // src/steps/steps-context.ts
4028
- import { createContext as createContext13, useContext as useContext16 } from "react";
4029
- var StepsContext = createContext13(null);
4233
+ import { createContext as createContext14, useContext as useContext17 } from "react";
4234
+ var StepsContext = createContext14(null);
4030
4235
  function useStepsContext() {
4031
- const context = useContext16(StepsContext);
4236
+ const context = useContext17(StepsContext);
4032
4237
  if (context === null) {
4033
4238
  throw new Error("Steps.Item must be used within <Steps>");
4034
4239
  }
@@ -4036,13 +4241,13 @@ function useStepsContext() {
4036
4241
  }
4037
4242
 
4038
4243
  // src/steps/steps-item.tsx
4039
- import { clsx as clsx42 } from "clsx";
4244
+ import { clsx as clsx43 } from "clsx";
4040
4245
 
4041
4246
  // src/steps/steps-item-context.ts
4042
- import { createContext as createContext14, useContext as useContext17 } from "react";
4043
- var StepsItemContext = createContext14(null);
4247
+ import { createContext as createContext15, useContext as useContext18 } from "react";
4248
+ var StepsItemContext = createContext15(null);
4044
4249
  function useStepsItemContext() {
4045
- const context = useContext17(StepsItemContext);
4250
+ const context = useContext18(StepsItemContext);
4046
4251
  if (context === null) {
4047
4252
  throw new Error("Steps.Item must be rendered inside a <Steps> component");
4048
4253
  }
@@ -4050,34 +4255,34 @@ function useStepsItemContext() {
4050
4255
  }
4051
4256
 
4052
4257
  // src/steps/steps-separator.tsx
4053
- import { clsx as clsx41 } from "clsx";
4054
- import { jsx as jsx58 } from "react/jsx-runtime";
4258
+ import { clsx as clsx42 } from "clsx";
4259
+ import { jsx as jsx62 } from "react/jsx-runtime";
4055
4260
  function StepsSeparator({ progress }) {
4056
4261
  const { orientation } = useStepsContext();
4057
4262
  const isVerticalLine = orientation === "vertical";
4058
4263
  const colorClass = progress === "completed" ? "bg-interactive01" : "bg-uiBorder01";
4059
4264
  if (isVerticalLine) {
4060
- return /* @__PURE__ */ jsx58("div", { "aria-hidden": "true", className: clsx41("mx-auto h-full min-h-2 w-px", colorClass) });
4265
+ return /* @__PURE__ */ jsx62("div", { "aria-hidden": "true", className: clsx42("mx-auto h-full min-h-2 w-px", colorClass) });
4061
4266
  }
4062
- return /* @__PURE__ */ jsx58("div", { "aria-hidden": "true", className: clsx41("h-px flex-1", colorClass) });
4267
+ return /* @__PURE__ */ jsx62("div", { "aria-hidden": "true", className: clsx42("h-px flex-1", colorClass) });
4063
4268
  }
4064
4269
 
4065
4270
  // src/steps/steps-item.tsx
4066
- import { jsx as jsx59, jsxs as jsxs29 } from "react/jsx-runtime";
4271
+ import { jsx as jsx63, jsxs as jsxs30 } from "react/jsx-runtime";
4067
4272
  var progressSrOnlyLabel = {
4068
4273
  completed: "\u5B8C\u4E86: ",
4069
4274
  current: "\u73FE\u5728\u306E\u30B9\u30C6\u30C3\u30D7: ",
4070
4275
  upcoming: "\u672A\u7740\u624B: "
4071
4276
  };
4072
4277
  function getCircleSizeClass(size) {
4073
- return clsx42({
4278
+ return clsx43({
4074
4279
  "size-6 typography-label12regular": size === "small",
4075
4280
  "size-8 typography-label12regular": size === "medium",
4076
4281
  "size-10 typography-label16regular": size === "large"
4077
4282
  });
4078
4283
  }
4079
4284
  function getCircleVariantProgressClass(variant, progress) {
4080
- return clsx42({
4285
+ return clsx43({
4081
4286
  // subtle(全 state border-transparent で box-sizing を揃える)
4082
4287
  "bg-uiBackground02 text-text01 border-transparent": variant === "subtle" && progress === "upcoming",
4083
4288
  "bg-activeUi text-text01 border-transparent": variant === "subtle" && progress === "current",
@@ -4089,7 +4294,7 @@ function getCircleVariantProgressClass(variant, progress) {
4089
4294
  });
4090
4295
  }
4091
4296
  function getCircleClasses(size, variant, state) {
4092
- return clsx42(
4297
+ return clsx43(
4093
4298
  "box-border flex items-center justify-center rounded-full border-2",
4094
4299
  getCircleSizeClass(size),
4095
4300
  getCircleVariantProgressClass(variant, state.progress)
@@ -4107,65 +4312,65 @@ function StepsItem({ label, description }) {
4107
4312
  const { state, index, isLast, id } = useStepsItemContext();
4108
4313
  const isCircleFilled = state.progress === "completed";
4109
4314
  const circleClasses = getCircleClasses(size, variant, state);
4110
- const checkIcon = variant === "solid" ? /* @__PURE__ */ jsx59(Icon, { name: "check", size: getIconSize(size), color: "iconOnColor" }) : /* @__PURE__ */ jsx59(Icon, { name: "check", size: getIconSize(size), className: "fill-gray-gray100" });
4111
- const circle = /* @__PURE__ */ jsx59("span", { "aria-hidden": "true", className: circleClasses, children: isCircleFilled ? checkIcon : /* @__PURE__ */ jsx59("span", { children: index + 1 }) });
4112
- const labelBlock = /* @__PURE__ */ jsxs29("span", { className: clsx42("flex flex-col", textOrientation === "horizontal" ? "gap-1" : "items-center text-center"), children: [
4113
- /* @__PURE__ */ jsxs29(
4315
+ const checkIcon = variant === "solid" ? /* @__PURE__ */ jsx63(Icon, { name: "check", size: getIconSize(size), color: "iconOnColor" }) : /* @__PURE__ */ jsx63(Icon, { name: "check", size: getIconSize(size), className: "fill-gray-gray100" });
4316
+ const circle = /* @__PURE__ */ jsx63("span", { "aria-hidden": "true", className: circleClasses, children: isCircleFilled ? checkIcon : /* @__PURE__ */ jsx63("span", { children: index + 1 }) });
4317
+ const labelBlock = /* @__PURE__ */ jsxs30("span", { className: clsx43("flex flex-col", textOrientation === "horizontal" ? "gap-1" : "items-center text-center"), children: [
4318
+ /* @__PURE__ */ jsxs30(
4114
4319
  "span",
4115
4320
  {
4116
- className: clsx42(
4321
+ className: clsx43(
4117
4322
  "whitespace-nowrap text-text01",
4118
4323
  size === "large" ? "typography-body16regular" : "typography-body14regular"
4119
4324
  ),
4120
4325
  children: [
4121
- /* @__PURE__ */ jsx59("span", { className: "sr-only", children: progressSrOnlyLabel[state.progress] }),
4326
+ /* @__PURE__ */ jsx63("span", { className: "sr-only", children: progressSrOnlyLabel[state.progress] }),
4122
4327
  label
4123
4328
  ]
4124
4329
  }
4125
4330
  ),
4126
- description != null && /* @__PURE__ */ jsx59("span", { className: "typography-label12regular whitespace-nowrap text-text02", children: description })
4331
+ description != null && /* @__PURE__ */ jsx63("span", { className: "typography-label12regular whitespace-nowrap text-text02", children: description })
4127
4332
  ] });
4128
4333
  const ariaCurrentProps = state.progress === "current" ? { "aria-current": "step" } : {};
4129
4334
  if (orientation === "horizontal" && textOrientation === "horizontal") {
4130
- return /* @__PURE__ */ jsx59("li", { ...ariaCurrentProps, id, children: /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
4335
+ return /* @__PURE__ */ jsx63("li", { ...ariaCurrentProps, id, children: /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2", children: [
4131
4336
  circle,
4132
4337
  labelBlock
4133
4338
  ] }) });
4134
4339
  }
4135
4340
  if (orientation === "horizontal" && textOrientation === "vertical") {
4136
- return /* @__PURE__ */ jsx59("li", { ...ariaCurrentProps, id, children: /* @__PURE__ */ jsxs29("div", { className: "flex flex-col items-center gap-1", children: [
4341
+ return /* @__PURE__ */ jsx63("li", { ...ariaCurrentProps, id, children: /* @__PURE__ */ jsxs30("div", { className: "flex flex-col items-center gap-1", children: [
4137
4342
  circle,
4138
4343
  labelBlock
4139
4344
  ] }) });
4140
4345
  }
4141
4346
  if (orientation === "vertical" && textOrientation === "horizontal") {
4142
- return /* @__PURE__ */ jsxs29(
4347
+ return /* @__PURE__ */ jsxs30(
4143
4348
  "li",
4144
4349
  {
4145
4350
  ...ariaCurrentProps,
4146
- className: clsx42(
4351
+ className: clsx43(
4147
4352
  "grid grid-cols-[min-content_1fr] grid-rows-[auto_1fr] items-center gap-x-2",
4148
4353
  !isLast && "flex-1"
4149
4354
  ),
4150
4355
  id,
4151
4356
  children: [
4152
- /* @__PURE__ */ jsx59("div", { className: "col-start-1 row-start-1 flex items-center", children: circle }),
4153
- /* @__PURE__ */ jsx59("div", { className: "col-start-2 row-start-1 flex items-center", children: labelBlock }),
4154
- !isLast && /* @__PURE__ */ jsx59("div", { className: "col-start-1 row-start-2 flex items-stretch justify-center self-stretch py-2", children: /* @__PURE__ */ jsx59(StepsSeparator, { progress: state.progress }) })
4357
+ /* @__PURE__ */ jsx63("div", { className: "col-start-1 row-start-1 flex items-center", children: circle }),
4358
+ /* @__PURE__ */ jsx63("div", { className: "col-start-2 row-start-1 flex items-center", children: labelBlock }),
4359
+ !isLast && /* @__PURE__ */ jsx63("div", { className: "col-start-1 row-start-2 flex items-stretch justify-center self-stretch py-2", children: /* @__PURE__ */ jsx63(StepsSeparator, { progress: state.progress }) })
4155
4360
  ]
4156
4361
  }
4157
4362
  );
4158
4363
  }
4159
- return /* @__PURE__ */ jsxs29("li", { ...ariaCurrentProps, className: clsx42("flex flex-col items-center gap-1", !isLast && "flex-1"), id, children: [
4364
+ return /* @__PURE__ */ jsxs30("li", { ...ariaCurrentProps, className: clsx43("flex flex-col items-center gap-1", !isLast && "flex-1"), id, children: [
4160
4365
  circle,
4161
4366
  labelBlock,
4162
- !isLast && /* @__PURE__ */ jsx59("div", { className: "flex flex-1 items-stretch self-stretch py-2", children: /* @__PURE__ */ jsx59(StepsSeparator, { progress: state.progress }) })
4367
+ !isLast && /* @__PURE__ */ jsx63("div", { className: "flex flex-1 items-stretch self-stretch py-2", children: /* @__PURE__ */ jsx63(StepsSeparator, { progress: state.progress }) })
4163
4368
  ] });
4164
4369
  }
4165
4370
  StepsItem.displayName = "Steps.Item";
4166
4371
 
4167
4372
  // src/steps/steps.tsx
4168
- import { jsx as jsx60 } from "react/jsx-runtime";
4373
+ import { jsx as jsx64 } from "react/jsx-runtime";
4169
4374
  function getSeparatorCellHeightClass(size) {
4170
4375
  if (size === "small") return "h-6";
4171
4376
  if (size === "medium") return "h-8";
@@ -4178,12 +4383,12 @@ function HorizontalSeparatorCell({
4178
4383
  }) {
4179
4384
  const heightClass = getSeparatorCellHeightClass(size);
4180
4385
  const alignClass = textOrientation === "vertical" ? "self-start" : "";
4181
- return /* @__PURE__ */ jsx60("li", { "aria-hidden": "true", className: clsx43("flex items-center", heightClass, alignClass), role: "presentation", children: /* @__PURE__ */ jsx60(StepsSeparator, { progress }) });
4386
+ return /* @__PURE__ */ jsx64("li", { "aria-hidden": "true", className: clsx44("flex items-center", heightClass, alignClass), role: "presentation", children: /* @__PURE__ */ jsx64(StepsSeparator, { progress }) });
4182
4387
  }
4183
4388
  function collectStepsItems(children) {
4184
4389
  const result = [];
4185
- Children6.toArray(children).forEach((child) => {
4186
- if (!isValidElement5(child)) {
4390
+ Children7.toArray(children).forEach((child) => {
4391
+ if (!isValidElement6(child)) {
4187
4392
  return;
4188
4393
  }
4189
4394
  if (child.type === StepsItem) {
@@ -4207,12 +4412,12 @@ function StepsRoot({
4207
4412
  variant = "solid",
4208
4413
  "aria-label": ariaLabel
4209
4414
  }) {
4210
- const baseId = useId5();
4415
+ const baseId = useId7();
4211
4416
  const [internalStep] = useState14(defaultCurrentStep ?? 0);
4212
4417
  const resolvedCurrentStep = currentStep ?? internalStep;
4213
- const itemElements = useMemo6(() => collectStepsItems(children), [children]);
4418
+ const itemElements = useMemo7(() => collectStepsItems(children), [children]);
4214
4419
  const stepsCount = itemElements.length;
4215
- const contextValue = useMemo6(
4420
+ const contextValue = useMemo7(
4216
4421
  () => ({
4217
4422
  size,
4218
4423
  orientation,
@@ -4231,13 +4436,13 @@ function StepsRoot({
4231
4436
  const state = states[index] ?? { progress: "upcoming" };
4232
4437
  const isLast = index === stepsCount - 1;
4233
4438
  const id = `${baseId}-item-${index}`;
4234
- return /* @__PURE__ */ jsx60(StepsItemContext.Provider, { value: { index, state, isLast, id }, children: item }, item.key ?? `item-${index}`);
4439
+ return /* @__PURE__ */ jsx64(StepsItemContext.Provider, { value: { index, state, isLast, id }, children: item }, item.key ?? `item-${index}`);
4235
4440
  };
4236
4441
  const renderedChildren = orientation === "horizontal" ? itemElements.flatMap((item, index) => {
4237
4442
  const nodes = [wrapItem(item, index)];
4238
4443
  if (index < stepsCount - 1) {
4239
4444
  nodes.push(
4240
- /* @__PURE__ */ jsx60(
4445
+ /* @__PURE__ */ jsx64(
4241
4446
  HorizontalSeparatorCell,
4242
4447
  {
4243
4448
  progress: states[index]?.progress ?? "upcoming",
@@ -4250,7 +4455,7 @@ function StepsRoot({
4250
4455
  }
4251
4456
  return nodes;
4252
4457
  }) : itemElements.map((item, index) => wrapItem(item, index));
4253
- const listClassName = clsx43(
4458
+ const listClassName = clsx44(
4254
4459
  orientation === "horizontal" ? ["grid w-full gap-x-2", textOrientation === "vertical" ? "items-start" : "items-center"] : "flex flex-col items-stretch"
4255
4460
  );
4256
4461
  const horizontalGridTemplate = Array.from(
@@ -4258,20 +4463,20 @@ function StepsRoot({
4258
4463
  (_unused, index) => index === stepsCount - 1 ? "max-content" : "max-content minmax(8px, 1fr)"
4259
4464
  ).join(" ");
4260
4465
  const listStyleProps = orientation === "horizontal" ? { style: { gridTemplateColumns: horizontalGridTemplate } } : {};
4261
- return /* @__PURE__ */ jsx60(StepsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx60("ol", { "aria-label": ariaLabel, className: listClassName, role: "list", ...listStyleProps, children: renderedChildren }) });
4466
+ return /* @__PURE__ */ jsx64(StepsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx64("ol", { "aria-label": ariaLabel, className: listClassName, role: "list", ...listStyleProps, children: renderedChildren }) });
4262
4467
  }
4263
4468
  var Steps = StepsRoot;
4264
4469
  Steps.Item = StepsItem;
4265
4470
 
4266
4471
  // src/tab/tab.tsx
4267
- import { clsx as clsx45 } from "clsx";
4268
- import { Children as Children7 } from "react";
4472
+ import { clsx as clsx46 } from "clsx";
4473
+ import { Children as Children8 } from "react";
4269
4474
 
4270
4475
  // src/tab/tab-item.tsx
4271
- import { clsx as clsx44 } from "clsx";
4272
- import { jsx as jsx61, jsxs as jsxs30 } from "react/jsx-runtime";
4476
+ import { clsx as clsx45 } from "clsx";
4477
+ import { jsx as jsx65, jsxs as jsxs31 } from "react/jsx-runtime";
4273
4478
  var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
4274
- const classes = clsx44(
4479
+ const classes = clsx45(
4275
4480
  "group relative z-0 flex items-center justify-center gap-1 py-2 leading-[24px] before:absolute before:inset-x-0 before:bottom-0 before:h-[2px] hover:text-interactive01 disabled:pointer-events-none disabled:text-disabled01",
4276
4481
  {
4277
4482
  "typography-label14regular text-interactive02": !isSelected,
@@ -4279,12 +4484,12 @@ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
4279
4484
  "before:bg-interactive01 hover:before:bg-interactive01 pointer-events-none": isSelected
4280
4485
  }
4281
4486
  );
4282
- const iconWrapperClasses = clsx44("flex shrink-0 items-center", {
4487
+ const iconWrapperClasses = clsx45("flex shrink-0 items-center", {
4283
4488
  "fill-disabled01": isDisabled,
4284
4489
  "fill-interactive01": !isDisabled && isSelected,
4285
4490
  "fill-icon01 group-hover:fill-interactive01": !isDisabled && !isSelected
4286
4491
  });
4287
- return /* @__PURE__ */ jsxs30(
4492
+ return /* @__PURE__ */ jsxs31(
4288
4493
  "button",
4289
4494
  {
4290
4495
  type: "button",
@@ -4294,7 +4499,7 @@ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
4294
4499
  disabled: isDisabled,
4295
4500
  onClick: () => props.onClick(props.id),
4296
4501
  children: [
4297
- icon != null && /* @__PURE__ */ jsx61("span", { className: iconWrapperClasses, children: /* @__PURE__ */ jsx61(Icon, { name: icon, size: "small" }) }),
4502
+ icon != null && /* @__PURE__ */ jsx65("span", { className: iconWrapperClasses, children: /* @__PURE__ */ jsx65(Icon, { name: icon, size: "small" }) }),
4298
4503
  props.children
4299
4504
  ]
4300
4505
  }
@@ -4302,39 +4507,39 @@ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
4302
4507
  };
4303
4508
 
4304
4509
  // src/tab/tab.tsx
4305
- import { jsx as jsx62 } from "react/jsx-runtime";
4510
+ import { jsx as jsx66 } from "react/jsx-runtime";
4306
4511
  function Tab({ children, layout = "auto" }) {
4307
- const childrenCount = Children7.count(children);
4512
+ const childrenCount = Children8.count(children);
4308
4513
  const containerStyle = layout === "equal" ? { gridTemplateColumns: `repeat(${childrenCount}, minmax(0,1fr))` } : {};
4309
- const containerClasses = clsx45(
4514
+ const containerClasses = clsx46(
4310
4515
  "relative gap-4 px-6 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:bg-uiBorder01",
4311
4516
  {
4312
4517
  flex: layout === "auto",
4313
4518
  grid: layout === "equal"
4314
4519
  }
4315
4520
  );
4316
- return /* @__PURE__ */ jsx62("div", { role: "tablist", className: containerClasses, style: containerStyle, children });
4521
+ return /* @__PURE__ */ jsx66("div", { role: "tablist", className: containerClasses, style: containerStyle, children });
4317
4522
  }
4318
4523
  Tab.Item = TabItem;
4319
4524
 
4320
4525
  // src/table/table-cell.tsx
4321
- import clsx46 from "clsx";
4322
- import { jsx as jsx63 } from "react/jsx-runtime";
4526
+ import clsx47 from "clsx";
4527
+ import { jsx as jsx67 } from "react/jsx-runtime";
4323
4528
  function TableCell({ children, className, isHeader = false }) {
4324
- const classes = clsx46("border-b border-uiBorder01", { "sticky top-0 z-10 bg-white": isHeader }, className);
4325
- return /* @__PURE__ */ jsx63("div", { className: classes, children });
4529
+ const classes = clsx47("border-b border-uiBorder01", { "sticky top-0 z-10 bg-white": isHeader }, className);
4530
+ return /* @__PURE__ */ jsx67("div", { className: classes, children });
4326
4531
  }
4327
4532
 
4328
4533
  // src/table/table-row.tsx
4329
- import clsx47 from "clsx";
4330
- import { jsx as jsx64 } from "react/jsx-runtime";
4534
+ import clsx48 from "clsx";
4535
+ import { jsx as jsx68 } from "react/jsx-runtime";
4331
4536
  function TableRow({ children, isHoverBackgroundVisible = false }) {
4332
- const rowClasses = clsx47("contents", isHoverBackgroundVisible && "[&:hover>div]:bg-hoverUi02");
4333
- return /* @__PURE__ */ jsx64("div", { className: rowClasses, children });
4537
+ const rowClasses = clsx48("contents", isHoverBackgroundVisible && "[&:hover>div]:bg-hoverUi02");
4538
+ return /* @__PURE__ */ jsx68("div", { className: rowClasses, children });
4334
4539
  }
4335
4540
 
4336
4541
  // src/table/table.tsx
4337
- import { jsx as jsx65 } from "react/jsx-runtime";
4542
+ import { jsx as jsx69 } from "react/jsx-runtime";
4338
4543
  function Table({
4339
4544
  width,
4340
4545
  templateRows,
@@ -4343,7 +4548,7 @@ function Table({
4343
4548
  autoRows,
4344
4549
  children
4345
4550
  }) {
4346
- return /* @__PURE__ */ jsx65(
4551
+ return /* @__PURE__ */ jsx69(
4347
4552
  "div",
4348
4553
  {
4349
4554
  className: "grid",
@@ -4363,22 +4568,22 @@ Table.Cell = TableCell;
4363
4568
 
4364
4569
  // src/tag/tag.tsx
4365
4570
  import { tagColors, tagLightColors } from "@zenkigen-inc/component-theme";
4366
- import clsx49 from "clsx";
4571
+ import clsx50 from "clsx";
4367
4572
 
4368
4573
  // src/tag/delete-icon.tsx
4369
- import { focusVisible as focusVisible18 } from "@zenkigen-inc/component-theme";
4370
- import clsx48 from "clsx";
4371
- import { jsx as jsx66 } from "react/jsx-runtime";
4574
+ import { focusVisible as focusVisible19 } from "@zenkigen-inc/component-theme";
4575
+ import clsx49 from "clsx";
4576
+ import { jsx as jsx70 } from "react/jsx-runtime";
4372
4577
  var DeleteIcon = ({ color, variant, onClick }) => {
4373
- const deleteButtonClasses = clsx48(
4578
+ const deleteButtonClasses = clsx49(
4374
4579
  "group ml-2 size-[14px] rounded-full p-0.5 hover:cursor-pointer hover:bg-iconOnColor focus-visible:bg-iconOnColor",
4375
- focusVisible18.normal
4580
+ focusVisible19.normal
4376
4581
  );
4377
- const deletePathClasses = clsx48({
4582
+ const deletePathClasses = clsx49({
4378
4583
  "fill-interactive02": color === "gray" || variant === "light",
4379
4584
  "group-hover:fill-interactive02 group-focus-visible:fill-interactive02 fill-iconOnColor": color !== "gray"
4380
4585
  });
4381
- return /* @__PURE__ */ jsx66("button", { type: "button", className: deleteButtonClasses, onClick, children: /* @__PURE__ */ jsx66("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx66(
4586
+ return /* @__PURE__ */ jsx70("button", { type: "button", className: deleteButtonClasses, onClick, children: /* @__PURE__ */ jsx70("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx70(
4382
4587
  "path",
4383
4588
  {
4384
4589
  fillRule: "evenodd",
@@ -4390,9 +4595,9 @@ var DeleteIcon = ({ color, variant, onClick }) => {
4390
4595
  };
4391
4596
 
4392
4597
  // src/tag/tag.tsx
4393
- import { jsx as jsx67, jsxs as jsxs31 } from "react/jsx-runtime";
4598
+ import { jsx as jsx71, jsxs as jsxs32 } from "react/jsx-runtime";
4394
4599
  function Tag({ id, children, color, variant = "normal", size = "medium", isEditable, onDelete }) {
4395
- const wrapperClasses = clsx49("flex", "items-center", "justify-center", {
4600
+ const wrapperClasses = clsx50("flex", "items-center", "justify-center", {
4396
4601
  [tagColors[color]]: variant === "normal",
4397
4602
  [tagLightColors[color]]: variant === "light",
4398
4603
  "h-[14px] typography-label11regular": !isEditable && size === "x-small",
@@ -4403,21 +4608,21 @@ function Tag({ id, children, color, variant = "normal", size = "medium", isEdita
4403
4608
  "px-1": !isEditable,
4404
4609
  "px-2": isEditable
4405
4610
  });
4406
- return /* @__PURE__ */ jsxs31("div", { className: wrapperClasses, children: [
4611
+ return /* @__PURE__ */ jsxs32("div", { className: wrapperClasses, children: [
4407
4612
  children,
4408
- isEditable ? /* @__PURE__ */ jsx67(DeleteIcon, { onClick: () => onDelete(id), color, variant }) : null
4613
+ isEditable ? /* @__PURE__ */ jsx71(DeleteIcon, { onClick: () => onDelete(id), color, variant }) : null
4409
4614
  ] });
4410
4615
  }
4411
4616
 
4412
4617
  // src/text-area/text-area.tsx
4413
- import { clsx as clsx52 } from "clsx";
4414
- import { Children as Children8, cloneElement as cloneElement5, forwardRef as forwardRef15, isValidElement as isValidElement6, useId as useId6, useMemo as useMemo7 } from "react";
4618
+ import { clsx as clsx53 } from "clsx";
4619
+ import { Children as Children9, cloneElement as cloneElement6, forwardRef as forwardRef15, isValidElement as isValidElement7, useId as useId8, useMemo as useMemo8 } from "react";
4415
4620
 
4416
4621
  // src/text-area/text-area-context.tsx
4417
- import { createContext as createContext15, useContext as useContext18 } from "react";
4418
- var TextAreaCompoundContext = createContext15(null);
4622
+ import { createContext as createContext16, useContext as useContext19 } from "react";
4623
+ var TextAreaCompoundContext = createContext16(null);
4419
4624
  var useTextAreaCompoundContext = (componentName) => {
4420
- const context = useContext18(TextAreaCompoundContext);
4625
+ const context = useContext19(TextAreaCompoundContext);
4421
4626
  if (context == null) {
4422
4627
  throw new Error(`${componentName} \u3092\u4F7F\u7528\u3059\u308B\u306B\u306F TextArea \u306E\u5B50\u8981\u7D20\u3068\u3057\u3066\u914D\u7F6E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002`);
4423
4628
  }
@@ -4425,9 +4630,9 @@ var useTextAreaCompoundContext = (componentName) => {
4425
4630
  };
4426
4631
 
4427
4632
  // src/text-area/text-area-error-message.tsx
4428
- import { clsx as clsx50 } from "clsx";
4633
+ import { clsx as clsx51 } from "clsx";
4429
4634
  import { forwardRef as forwardRef13 } from "react";
4430
- import { jsx as jsx68 } from "react/jsx-runtime";
4635
+ import { jsx as jsx72 } from "react/jsx-runtime";
4431
4636
  var TextAreaErrorMessage = forwardRef13(
4432
4637
  ({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
4433
4638
  const { textAreaProps } = useTextAreaCompoundContext("TextArea.ErrorMessage");
@@ -4436,26 +4641,26 @@ var TextAreaErrorMessage = forwardRef13(
4436
4641
  if (!shouldRender) {
4437
4642
  return null;
4438
4643
  }
4439
- const errorMessageClassName = clsx50(typographyClass, "text-supportError");
4440
- return /* @__PURE__ */ jsx68("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
4644
+ const errorMessageClassName = clsx51(typographyClass, "text-supportError");
4645
+ return /* @__PURE__ */ jsx72("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
4441
4646
  }
4442
4647
  );
4443
4648
  TextAreaErrorMessage.displayName = "TextArea.ErrorMessage";
4444
4649
 
4445
4650
  // src/text-area/text-area-helper-message.tsx
4446
- import { clsx as clsx51 } from "clsx";
4651
+ import { clsx as clsx52 } from "clsx";
4447
4652
  import { forwardRef as forwardRef14 } from "react";
4448
- import { jsx as jsx69 } from "react/jsx-runtime";
4653
+ import { jsx as jsx73 } from "react/jsx-runtime";
4449
4654
  var TextAreaHelperMessage = forwardRef14((props, ref) => {
4450
4655
  const { textAreaProps } = useTextAreaCompoundContext("TextArea.HelperMessage");
4451
4656
  const typographyClass = textAreaProps.size === "large" ? "typography-label13regular" : "typography-label12regular";
4452
- const helperMessageClassName = clsx51(typographyClass, "text-text02");
4453
- return /* @__PURE__ */ jsx69("div", { ref, className: helperMessageClassName, ...props });
4657
+ const helperMessageClassName = clsx52(typographyClass, "text-text02");
4658
+ return /* @__PURE__ */ jsx73("div", { ref, className: helperMessageClassName, ...props });
4454
4659
  });
4455
4660
  TextAreaHelperMessage.displayName = "TextArea.HelperMessage";
4456
4661
 
4457
4662
  // src/text-area/text-area.tsx
4458
- import { jsx as jsx70, jsxs as jsxs32 } from "react/jsx-runtime";
4663
+ import { jsx as jsx74, jsxs as jsxs33 } from "react/jsx-runtime";
4459
4664
  function TextAreaInner({
4460
4665
  size = "medium",
4461
4666
  variant = "outline",
@@ -4472,8 +4677,8 @@ function TextAreaInner({
4472
4677
  maxLength,
4473
4678
  ...props
4474
4679
  }, ref) {
4475
- const autoGeneratedId = useId6();
4476
- const textAreaPropsForContext = useMemo7(
4680
+ const autoGeneratedId = useId8();
4681
+ const textAreaPropsForContext = useMemo8(
4477
4682
  () => ({
4478
4683
  size,
4479
4684
  variant,
@@ -4481,7 +4686,7 @@ function TextAreaInner({
4481
4686
  }),
4482
4687
  [size, variant, isError]
4483
4688
  );
4484
- const contextValue = useMemo7(
4689
+ const contextValue = useMemo8(
4485
4690
  () => ({
4486
4691
  textAreaProps: textAreaPropsForContext,
4487
4692
  forwardedRef: ref
@@ -4491,21 +4696,21 @@ function TextAreaInner({
4491
4696
  const helperMessageIds = [];
4492
4697
  const errorIds = [];
4493
4698
  const describedByBaseId = props.id ?? autoGeneratedId;
4494
- const enhancedChildren = Children8.map(children, (child) => {
4495
- if (!isValidElement6(child)) {
4699
+ const enhancedChildren = Children9.map(children, (child) => {
4700
+ if (!isValidElement7(child)) {
4496
4701
  return child;
4497
4702
  }
4498
4703
  if (child.type === TextAreaHelperMessage) {
4499
4704
  const helperChild = child;
4500
4705
  const assignedId = helperChild.props.id ?? `${describedByBaseId}-helper-${helperMessageIds.length + 1}`;
4501
4706
  helperMessageIds.push(assignedId);
4502
- return cloneElement5(helperChild, { id: assignedId });
4707
+ return cloneElement6(helperChild, { id: assignedId });
4503
4708
  }
4504
4709
  if (child.type === TextAreaErrorMessage && isError) {
4505
4710
  const errorChild = child;
4506
4711
  const assignedId = errorChild.props.id ?? `${describedByBaseId}-error-${errorIds.length + 1}`;
4507
4712
  errorIds.push(assignedId);
4508
- return cloneElement5(errorChild, { id: assignedId });
4713
+ return cloneElement6(errorChild, { id: assignedId });
4509
4714
  }
4510
4715
  return child;
4511
4716
  });
@@ -4532,7 +4737,7 @@ function TextAreaInner({
4532
4737
  ...maxLengthProps
4533
4738
  };
4534
4739
  const isBorderless = variant === "text";
4535
- const textAreaWrapperClassName = clsx52(
4740
+ const textAreaWrapperClassName = clsx53(
4536
4741
  "box-border flex w-full overflow-hidden rounded border",
4537
4742
  {
4538
4743
  // outline variant
@@ -4548,7 +4753,7 @@ function TextAreaInner({
4548
4753
  // className は variant="outline" のみ受け入れ、後方互換のため wrapper の末尾に合成(@deprecated)
4549
4754
  !isBorderless && className
4550
4755
  );
4551
- const textAreaClassName = clsx52("w-full border-none bg-uiBackground01 outline-none", {
4756
+ const textAreaClassName = clsx53("w-full border-none bg-uiBackground01 outline-none", {
4552
4757
  // outline: 従来の padding
4553
4758
  "typography-body14regular px-2 py-2": !isBorderless && size === "medium",
4554
4759
  "typography-body16regular px-3 py-2": !isBorderless && size === "large",
@@ -4567,7 +4772,7 @@ function TextAreaInner({
4567
4772
  "resize-none": !isResizable
4568
4773
  });
4569
4774
  const hasHeight = height != null && String(height).trim().length > 0;
4570
- const textAreaElement = /* @__PURE__ */ jsx70(
4775
+ const textAreaElement = /* @__PURE__ */ jsx74(
4571
4776
  "div",
4572
4777
  {
4573
4778
  className: textAreaWrapperClassName,
@@ -4578,7 +4783,7 @@ function TextAreaInner({
4578
4783
  ...!autoHeight && hasHeight && !isResizable ? { height } : {},
4579
4784
  ...autoHeight && hasHeight ? { minHeight: height } : {}
4580
4785
  },
4581
- children: /* @__PURE__ */ jsx70(
4786
+ children: /* @__PURE__ */ jsx74(
4582
4787
  "textarea",
4583
4788
  {
4584
4789
  ref,
@@ -4594,11 +4799,11 @@ function TextAreaInner({
4594
4799
  )
4595
4800
  }
4596
4801
  );
4597
- const counterElement = isCounterVisible ? /* @__PURE__ */ jsx70(
4802
+ const counterElement = isCounterVisible ? /* @__PURE__ */ jsx74(
4598
4803
  "div",
4599
4804
  {
4600
4805
  id: counterId,
4601
- className: clsx52(
4806
+ className: clsx53(
4602
4807
  "shrink-0",
4603
4808
  size === "large" ? "typography-label13regular" : "typography-label12regular",
4604
4809
  !disabled && isExceeded ? "text-supportError" : "text-text02"
@@ -4607,17 +4812,17 @@ function TextAreaInner({
4607
4812
  children: counterLimit != null ? `${currentLength}/${counterLimit}\u6587\u5B57` : `${currentLength}\u6587\u5B57`
4608
4813
  }
4609
4814
  ) : null;
4610
- const stackedChildren = enhancedChildren == null ? [] : Children8.toArray(enhancedChildren);
4815
+ const stackedChildren = enhancedChildren == null ? [] : Children9.toArray(enhancedChildren);
4611
4816
  const hasMessageChildren = stackedChildren.length > 0;
4612
4817
  const hasBottomContent = hasMessageChildren || counterElement != null;
4613
4818
  if (!hasBottomContent) {
4614
- return /* @__PURE__ */ jsx70(TextAreaCompoundContext.Provider, { value: contextValue, children: textAreaElement });
4819
+ return /* @__PURE__ */ jsx74(TextAreaCompoundContext.Provider, { value: contextValue, children: textAreaElement });
4615
4820
  }
4616
- return /* @__PURE__ */ jsx70(TextAreaCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-2", children: [
4821
+ return /* @__PURE__ */ jsx74(TextAreaCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-2", children: [
4617
4822
  textAreaElement,
4618
- /* @__PURE__ */ jsxs32("div", { className: "flex items-start justify-between gap-2", children: [
4619
- hasMessageChildren && /* @__PURE__ */ jsx70("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: stackedChildren }),
4620
- !hasMessageChildren && counterElement != null && /* @__PURE__ */ jsx70("div", { className: "flex-1" }),
4823
+ /* @__PURE__ */ jsxs33("div", { className: "flex items-start justify-between gap-2", children: [
4824
+ hasMessageChildren && /* @__PURE__ */ jsx74("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: stackedChildren }),
4825
+ !hasMessageChildren && counterElement != null && /* @__PURE__ */ jsx74("div", { className: "flex-1" }),
4621
4826
  counterElement
4622
4827
  ] })
4623
4828
  ] }) });
@@ -4633,10 +4838,242 @@ var TextAreaBase = forwardRef15(function TextAreaBase2(props, ref) {
4633
4838
  });
4634
4839
  var TextArea = attachStatics2(TextAreaBase);
4635
4840
 
4841
+ // src/time-picker/time-picker.tsx
4842
+ import { clsx as clsx55 } from "clsx";
4843
+ import { Children as Children10, cloneElement as cloneElement7, Fragment as Fragment8, isValidElement as isValidElement8, useId as useId9, useMemo as useMemo9 } from "react";
4844
+
4845
+ // src/time-picker/time-picker-context.tsx
4846
+ import { createContext as createContext17, useContext as useContext20 } from "react";
4847
+ var TimePickerCompoundContext = createContext17(null);
4848
+ var useTimePickerCompoundContext = (componentName) => {
4849
+ const context = useContext20(TimePickerCompoundContext);
4850
+ if (context == null) {
4851
+ throw new Error(`${componentName} \u3092\u4F7F\u7528\u3059\u308B\u306B\u306F TimePicker \u306E\u5B50\u8981\u7D20\u3068\u3057\u3066\u914D\u7F6E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002`);
4852
+ }
4853
+ return context;
4854
+ };
4855
+
4856
+ // src/time-picker/time-picker-error-message.tsx
4857
+ import { clsx as clsx54 } from "clsx";
4858
+ import { forwardRef as forwardRef16 } from "react";
4859
+ import { jsx as jsx75 } from "react/jsx-runtime";
4860
+ var TimePickerErrorMessage = forwardRef16(
4861
+ ({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
4862
+ const { size, isError } = useTimePickerCompoundContext("TimePicker.ErrorMessage");
4863
+ const typographyClass = size === "large" ? "typography-label12regular" : "typography-label11regular";
4864
+ if (isError !== true) {
4865
+ return null;
4866
+ }
4867
+ const errorMessageClassName = clsx54(typographyClass, "text-supportError");
4868
+ return /* @__PURE__ */ jsx75("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
4869
+ }
4870
+ );
4871
+ TimePickerErrorMessage.displayName = "TimePicker.ErrorMessage";
4872
+
4873
+ // src/time-picker/time-picker-utils.ts
4874
+ var MIN_HOUR = 0;
4875
+ var MAX_HOUR = 23;
4876
+ var MIN_MINUTE = 0;
4877
+ var MAX_MINUTE = 59;
4878
+ var MINUTES_PER_HOUR = 60;
4879
+ var padZero = (value) => String(value).padStart(2, "0");
4880
+ var toTotalMinutes = (hour, minute) => hour * MINUTES_PER_HOUR + minute;
4881
+ var createHourOption = (hour) => ({
4882
+ id: `hour-${hour}`,
4883
+ value: String(hour),
4884
+ label: padZero(hour)
4885
+ });
4886
+ var createMinuteOption = (minute) => ({
4887
+ id: `minute-${minute}`,
4888
+ value: String(minute),
4889
+ label: padZero(minute)
4890
+ });
4891
+ var parseTime = (time) => {
4892
+ const match = /^(\d{1,2}):(\d{1,2})$/.exec(time);
4893
+ if (match == null) {
4894
+ return null;
4895
+ }
4896
+ const hour = Number(match[1]);
4897
+ const minute = Number(match[2]);
4898
+ if (Number.isNaN(hour) || Number.isNaN(minute)) {
4899
+ return null;
4900
+ }
4901
+ if (hour < MIN_HOUR || hour > MAX_HOUR || minute < MIN_MINUTE || minute > MAX_MINUTE) {
4902
+ return null;
4903
+ }
4904
+ return { hour, minute };
4905
+ };
4906
+ var formatTime = (value) => {
4907
+ if (value.hour == null || value.minute == null) {
4908
+ return null;
4909
+ }
4910
+ return `${padZero(value.hour)}:${padZero(value.minute)}`;
4911
+ };
4912
+ var isTimeInRange = (hour, minute, minTime, maxTime) => {
4913
+ const total = toTotalMinutes(hour, minute);
4914
+ const min = minTime != null ? parseTime(minTime) : null;
4915
+ const max = maxTime != null ? parseTime(maxTime) : null;
4916
+ if (min != null && total < toTotalMinutes(min.hour, min.minute)) {
4917
+ return false;
4918
+ }
4919
+ if (max != null && total > toTotalMinutes(max.hour, max.minute)) {
4920
+ return false;
4921
+ }
4922
+ return true;
4923
+ };
4924
+ var isMinuteAvailableForAnyHour = (minute, minTime, maxTime) => {
4925
+ for (let hour = MIN_HOUR; hour <= MAX_HOUR; hour += 1) {
4926
+ if (isTimeInRange(hour, minute, minTime, maxTime)) {
4927
+ return true;
4928
+ }
4929
+ }
4930
+ return false;
4931
+ };
4932
+ var generateMinuteOptions = (minuteStep, selectedHour, minTime, maxTime) => {
4933
+ const min = minTime != null ? parseTime(minTime) : null;
4934
+ const max = maxTime != null ? parseTime(maxTime) : null;
4935
+ const shouldFilterByRange = min != null || max != null;
4936
+ const options = [];
4937
+ for (let minute = MIN_MINUTE; minute <= MAX_MINUTE; minute += minuteStep) {
4938
+ if (shouldFilterByRange) {
4939
+ const isAvailable = selectedHour != null ? isTimeInRange(selectedHour, minute, minTime, maxTime) : isMinuteAvailableForAnyHour(minute, minTime, maxTime);
4940
+ if (!isAvailable) {
4941
+ continue;
4942
+ }
4943
+ }
4944
+ options.push(createMinuteOption(minute));
4945
+ }
4946
+ return options;
4947
+ };
4948
+ var generateHourOptions = (minuteStep, minTime, maxTime) => {
4949
+ const options = [];
4950
+ for (let hour = MIN_HOUR; hour <= MAX_HOUR; hour += 1) {
4951
+ if (generateMinuteOptions(minuteStep, hour, minTime, maxTime).length === 0) {
4952
+ continue;
4953
+ }
4954
+ options.push(createHourOption(hour));
4955
+ }
4956
+ return options;
4957
+ };
4958
+
4959
+ // src/time-picker/time-picker.tsx
4960
+ import { jsx as jsx76, jsxs as jsxs34 } from "react/jsx-runtime";
4961
+ var SELECT_WIDTH_BY_SIZE = {
4962
+ "x-small": 80,
4963
+ small: 80,
4964
+ medium: 80,
4965
+ large: 88
4966
+ };
4967
+ var PLACEHOLDER = "--";
4968
+ var HOUR_ARIA_LABEL = "\u6642";
4969
+ var MINUTE_ARIA_LABEL = "\u5206";
4970
+ var createTriggerAriaLabel = (baseLabel, selectedOption) => selectedOption != null ? `${baseLabel} ${selectedOption.label}` : baseLabel;
4971
+ var OPTION_LIST_MAX_HEIGHT = "250px";
4972
+ var TimePicker = ({
4973
+ value,
4974
+ onChange,
4975
+ size = "medium",
4976
+ minuteStep = 1,
4977
+ minTime,
4978
+ maxTime,
4979
+ isDisabled = false,
4980
+ isError = false,
4981
+ children
4982
+ }) => {
4983
+ const autoGeneratedId = useId9();
4984
+ const hourOptions = useMemo9(() => generateHourOptions(minuteStep, minTime, maxTime), [minuteStep, minTime, maxTime]);
4985
+ const minuteOptions = useMemo9(
4986
+ () => generateMinuteOptions(minuteStep, value.hour, minTime, maxTime),
4987
+ [minuteStep, value.hour, minTime, maxTime]
4988
+ );
4989
+ const selectedHourOption = value.hour != null ? createHourOption(value.hour) : null;
4990
+ const selectedMinuteOption = value.minute != null ? createMinuteOption(value.minute) : null;
4991
+ const handleHourChange = (option) => {
4992
+ const nextHour = option != null ? Number(option.value) : null;
4993
+ const shouldResetMinute = nextHour != null && value.minute != null && !isTimeInRange(nextHour, value.minute, minTime, maxTime);
4994
+ onChange({ hour: nextHour, minute: shouldResetMinute ? null : value.minute });
4995
+ };
4996
+ const handleMinuteChange = (option) => {
4997
+ onChange({ hour: value.hour, minute: option != null ? Number(option.value) : null });
4998
+ };
4999
+ const errorIds = [];
5000
+ const assignErrorIds = (nodes) => Children10.map(nodes, (child) => {
5001
+ if (!isValidElement8(child)) {
5002
+ return child;
5003
+ }
5004
+ if (child.type === Fragment8) {
5005
+ const fragmentChild = child;
5006
+ return cloneElement7(fragmentChild, {}, assignErrorIds(fragmentChild.props.children));
5007
+ }
5008
+ if (child.type === TimePickerErrorMessage && isError) {
5009
+ const errorChild = child;
5010
+ const assignedId = errorChild.props.id ?? `${autoGeneratedId}-error-${errorIds.length + 1}`;
5011
+ errorIds.push(assignedId);
5012
+ return cloneElement7(errorChild, { id: assignedId });
5013
+ }
5014
+ return child;
5015
+ });
5016
+ const enhancedChildren = assignErrorIds(children);
5017
+ const sharedAriaProps = errorIds.length > 0 ? { "aria-describedby": errorIds.join(" ") } : {};
5018
+ const separatorClasses = clsx55("text-text02", {
5019
+ "typography-label12regular": size === "x-small",
5020
+ "typography-label14regular": size === "small" || size === "medium",
5021
+ "typography-label16regular": size === "large"
5022
+ });
5023
+ const selectWidth = SELECT_WIDTH_BY_SIZE[size];
5024
+ const contextValue = useMemo9(() => ({ size, isError }), [size, isError]);
5025
+ const timeInputs = /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-2", children: [
5026
+ /* @__PURE__ */ jsx76(
5027
+ Select,
5028
+ {
5029
+ size,
5030
+ width: selectWidth,
5031
+ placeholder: PLACEHOLDER,
5032
+ selectedOption: selectedHourOption,
5033
+ isDisabled,
5034
+ isError,
5035
+ optionListMaxHeight: OPTION_LIST_MAX_HEIGHT,
5036
+ "aria-label": createTriggerAriaLabel(HOUR_ARIA_LABEL, selectedHourOption),
5037
+ ...sharedAriaProps,
5038
+ onChange: handleHourChange,
5039
+ children: hourOptions.map((option) => /* @__PURE__ */ jsx76(Select.Option, { option }, option.id))
5040
+ }
5041
+ ),
5042
+ /* @__PURE__ */ jsx76("span", { className: separatorClasses, children: ":" }),
5043
+ /* @__PURE__ */ jsx76(
5044
+ Select,
5045
+ {
5046
+ size,
5047
+ width: selectWidth,
5048
+ placeholder: PLACEHOLDER,
5049
+ selectedOption: selectedMinuteOption,
5050
+ isDisabled,
5051
+ isError,
5052
+ optionListMaxHeight: OPTION_LIST_MAX_HEIGHT,
5053
+ "aria-label": createTriggerAriaLabel(MINUTE_ARIA_LABEL, selectedMinuteOption),
5054
+ ...sharedAriaProps,
5055
+ onChange: handleMinuteChange,
5056
+ children: minuteOptions.map((option) => /* @__PURE__ */ jsx76(Select.Option, { option }, option.id))
5057
+ }
5058
+ )
5059
+ ] });
5060
+ const stackedChildren = enhancedChildren == null ? [] : Children10.toArray(enhancedChildren);
5061
+ const hasMessageChildren = stackedChildren.length > 0;
5062
+ if (!hasMessageChildren) {
5063
+ return /* @__PURE__ */ jsx76(TimePickerCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx76("div", { className: "flex flex-col", children: timeInputs }) });
5064
+ }
5065
+ return /* @__PURE__ */ jsx76(TimePickerCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-2", children: [
5066
+ timeInputs,
5067
+ stackedChildren
5068
+ ] }) });
5069
+ };
5070
+ TimePicker.ErrorMessage = TimePickerErrorMessage;
5071
+ TimePicker.displayName = "TimePicker";
5072
+
4636
5073
  // src/toast/toast.tsx
4637
- import clsx53 from "clsx";
5074
+ import clsx56 from "clsx";
4638
5075
  import { useCallback as useCallback15, useEffect as useEffect12, useState as useState15 } from "react";
4639
- import { jsx as jsx71, jsxs as jsxs33 } from "react/jsx-runtime";
5076
+ import { jsx as jsx77, jsxs as jsxs35 } from "react/jsx-runtime";
4640
5077
  var CLOSE_TIME_MSEC = 5e3;
4641
5078
  function Toast({
4642
5079
  state = "information",
@@ -4655,17 +5092,17 @@ function Toast({
4655
5092
  }
4656
5093
  }, [isAnimation, onClickClose]);
4657
5094
  const handleAnimationEnd = (e) => window.getComputedStyle(e.currentTarget).opacity === "0" && onClickClose();
4658
- const wrapperClasses = clsx53("pointer-events-auto flex items-start gap-1 bg-white p-4 shadow-floatingShadow", {
5095
+ const wrapperClasses = clsx56("pointer-events-auto flex items-start gap-1 bg-white p-4 shadow-floatingShadow", {
4659
5096
  ["animate-toast-in"]: isAnimation && !isRemoving,
4660
5097
  ["animate-toast-out opacity-0"]: isAnimation && isRemoving
4661
5098
  });
4662
- const iconClasses = clsx53("flex items-center", {
5099
+ const iconClasses = clsx56("flex items-center", {
4663
5100
  "fill-supportSuccess": state === "success",
4664
5101
  "fill-supportError": state === "error",
4665
5102
  "fill-supportWarning": state === "warning",
4666
5103
  "fill-supportInfo": state === "information"
4667
5104
  });
4668
- const textClasses = clsx53("typography-body13regular flex-1 pt-[3px]", {
5105
+ const textClasses = clsx56("typography-body13regular flex-1 pt-[3px]", {
4669
5106
  "text-supportError": state === "error",
4670
5107
  "text-text01": state === "success" || state === "warning" || state === "information"
4671
5108
  });
@@ -4683,18 +5120,18 @@ function Toast({
4683
5120
  }, CLOSE_TIME_MSEC);
4684
5121
  return () => window.clearTimeout(timer);
4685
5122
  }, [isAutoClose]);
4686
- return /* @__PURE__ */ jsxs33("div", { className: wrapperClasses, style: { width }, onAnimationEnd: handleAnimationEnd, children: [
4687
- /* @__PURE__ */ jsx71("div", { className: iconClasses, children: /* @__PURE__ */ jsx71(Icon, { name: iconName[state] }) }),
4688
- /* @__PURE__ */ jsx71("p", { className: textClasses, children }),
4689
- /* @__PURE__ */ jsx71(IconButton, { icon: "close", size: "medium", variant: "text", onClick: handleClose, isNoPadding: true })
5123
+ return /* @__PURE__ */ jsxs35("div", { className: wrapperClasses, style: { width }, onAnimationEnd: handleAnimationEnd, children: [
5124
+ /* @__PURE__ */ jsx77("div", { className: iconClasses, children: /* @__PURE__ */ jsx77(Icon, { name: iconName[state] }) }),
5125
+ /* @__PURE__ */ jsx77("p", { className: textClasses, children }),
5126
+ /* @__PURE__ */ jsx77(IconButton, { icon: "close", size: "medium", variant: "text", onClick: handleClose, isNoPadding: true })
4690
5127
  ] });
4691
5128
  }
4692
5129
 
4693
5130
  // src/toast/toast-provider.tsx
4694
- import { createContext as createContext16, useCallback as useCallback16, useContext as useContext19, useEffect as useEffect13, useState as useState16 } from "react";
5131
+ import { createContext as createContext18, useCallback as useCallback16, useContext as useContext21, useEffect as useEffect13, useState as useState16 } from "react";
4695
5132
  import { createPortal as createPortal3 } from "react-dom";
4696
- import { jsx as jsx72, jsxs as jsxs34 } from "react/jsx-runtime";
4697
- var ToastContext = createContext16({});
5133
+ import { jsx as jsx78, jsxs as jsxs36 } from "react/jsx-runtime";
5134
+ var ToastContext = createContext18({});
4698
5135
  var ToastProvider = ({ children }) => {
4699
5136
  const [isClientRender, setIsClientRender] = useState16(false);
4700
5137
  const [toasts, setToasts] = useState16([]);
@@ -4707,21 +5144,21 @@ var ToastProvider = ({ children }) => {
4707
5144
  useEffect13(() => {
4708
5145
  setIsClientRender(true);
4709
5146
  }, []);
4710
- return /* @__PURE__ */ jsxs34(ToastContext.Provider, { value: { addToast, removeToast }, children: [
5147
+ return /* @__PURE__ */ jsxs36(ToastContext.Provider, { value: { addToast, removeToast }, children: [
4711
5148
  children,
4712
5149
  isClientRender && createPortal3(
4713
- /* @__PURE__ */ jsx72("div", { className: "pointer-events-none fixed bottom-0 left-0 z-toast mb-4 ml-4 flex w-full flex-col-reverse gap-[16px]", children: toasts.map(({ id, message, state }) => /* @__PURE__ */ jsx72(Toast, { state, isAutoClose: true, isAnimation: true, onClickClose: () => removeToast(id), width: 475, children: message }, id)) }),
5150
+ /* @__PURE__ */ jsx78("div", { className: "pointer-events-none fixed bottom-0 left-0 z-toast mb-4 ml-4 flex w-full flex-col-reverse gap-[16px]", children: toasts.map(({ id, message, state }) => /* @__PURE__ */ jsx78(Toast, { state, isAutoClose: true, isAnimation: true, onClickClose: () => removeToast(id), width: 475, children: message }, id)) }),
4714
5151
  document.body
4715
5152
  )
4716
5153
  ] });
4717
5154
  };
4718
5155
  var useToast = () => {
4719
- return useContext19(ToastContext);
5156
+ return useContext21(ToastContext);
4720
5157
  };
4721
5158
 
4722
5159
  // src/toggle/toggle.tsx
4723
- import clsx54 from "clsx";
4724
- import { jsx as jsx73, jsxs as jsxs35 } from "react/jsx-runtime";
5160
+ import clsx57 from "clsx";
5161
+ import { jsx as jsx79, jsxs as jsxs37 } from "react/jsx-runtime";
4725
5162
  function Toggle({
4726
5163
  id,
4727
5164
  size = "medium",
@@ -4731,7 +5168,7 @@ function Toggle({
4731
5168
  labelPosition = "right",
4732
5169
  isDisabled = false
4733
5170
  }) {
4734
- const baseClasses = clsx54("relative flex items-center rounded-full", {
5171
+ const baseClasses = clsx57("relative flex items-center rounded-full", {
4735
5172
  "bg-disabledOn": isDisabled && isChecked,
4736
5173
  "bg-disabled01": isDisabled && !isChecked,
4737
5174
  "bg-interactive01 peer-hover:bg-hover01": !isDisabled && isChecked,
@@ -4739,16 +5176,16 @@ function Toggle({
4739
5176
  "w-8 h-4 px-[3px]": size === "small",
4740
5177
  "w-12 h-6 px-1": size === "medium" || size === "large"
4741
5178
  });
4742
- const inputClasses = clsx54(
5179
+ const inputClasses = clsx57(
4743
5180
  "peer absolute inset-0 z-[1] opacity-0",
4744
5181
  isDisabled ? "cursor-not-allowed" : "cursor-pointer"
4745
5182
  );
4746
- const indicatorClasses = clsx54("rounded-full bg-iconOnColor", {
5183
+ const indicatorClasses = clsx57("rounded-full bg-iconOnColor", {
4747
5184
  "w-2.5 h-2.5": size === "small",
4748
5185
  "w-4 h-4": size === "medium" || size === "large",
4749
5186
  "ml-auto": isChecked
4750
5187
  });
4751
- const labelClasses = clsx54("break-all", {
5188
+ const labelClasses = clsx57("break-all", {
4752
5189
  "mr-2": labelPosition === "left",
4753
5190
  "ml-2": labelPosition === "right",
4754
5191
  "typography-label14regular": size === "small" || size === "medium",
@@ -4756,9 +5193,9 @@ function Toggle({
4756
5193
  "pointer-events-none cursor-not-allowed text-disabled01": isDisabled,
4757
5194
  "cursor-pointer text-text01": !isDisabled
4758
5195
  });
4759
- return /* @__PURE__ */ jsxs35("div", { className: "relative flex flex-[0_0_auto] items-center", children: [
4760
- label != null && labelPosition === "left" && /* @__PURE__ */ jsx73("label", { htmlFor: id, className: labelClasses, children: label }),
4761
- /* @__PURE__ */ jsx73(
5196
+ return /* @__PURE__ */ jsxs37("div", { className: "relative flex flex-[0_0_auto] items-center", children: [
5197
+ label != null && labelPosition === "left" && /* @__PURE__ */ jsx79("label", { htmlFor: id, className: labelClasses, children: label }),
5198
+ /* @__PURE__ */ jsx79(
4762
5199
  "input",
4763
5200
  {
4764
5201
  className: inputClasses,
@@ -4770,8 +5207,8 @@ function Toggle({
4770
5207
  disabled: isDisabled
4771
5208
  }
4772
5209
  ),
4773
- /* @__PURE__ */ jsx73("div", { className: baseClasses, children: /* @__PURE__ */ jsx73("span", { className: indicatorClasses }) }),
4774
- label != null && labelPosition === "right" && /* @__PURE__ */ jsx73("label", { htmlFor: id, className: labelClasses, children: label })
5210
+ /* @__PURE__ */ jsx79("div", { className: baseClasses, children: /* @__PURE__ */ jsx79("span", { className: indicatorClasses }) }),
5211
+ label != null && labelPosition === "right" && /* @__PURE__ */ jsx79("label", { htmlFor: id, className: labelClasses, children: label })
4775
5212
  ] });
4776
5213
  }
4777
5214
 
@@ -4780,13 +5217,13 @@ import { useCallback as useCallback18, useEffect as useEffect14, useRef as useRe
4780
5217
  import { createPortal as createPortal4 } from "react-dom";
4781
5218
 
4782
5219
  // src/tooltip/tooltip-content.tsx
4783
- import clsx56 from "clsx";
5220
+ import clsx59 from "clsx";
4784
5221
 
4785
5222
  // src/tooltip/tail-icon.tsx
4786
- import clsx55 from "clsx";
4787
- import { jsx as jsx74 } from "react/jsx-runtime";
5223
+ import clsx58 from "clsx";
5224
+ import { jsx as jsx80 } from "react/jsx-runtime";
4788
5225
  var TailIcon = (props) => {
4789
- const tailClasses = clsx55("absolute fill-uiBackgroundTooltip", {
5226
+ const tailClasses = clsx58("absolute fill-uiBackgroundTooltip", {
4790
5227
  "rotate-180": props.verticalPosition === "bottom",
4791
5228
  "rotate-0": props.verticalPosition !== "bottom",
4792
5229
  "-top-1": props.verticalPosition === "bottom" && props.size === "small",
@@ -4801,9 +5238,9 @@ var TailIcon = (props) => {
4801
5238
  "left-1/2 -translate-x-2": props.horizontalAlign === "center" && props.size !== "small"
4802
5239
  });
4803
5240
  if (props.size === "small") {
4804
- return /* @__PURE__ */ jsx74("svg", { className: tailClasses, width: "8", height: "4", viewBox: "0 0 8 4", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx74("path", { d: "M4 4L0 0H8L4 4Z" }) });
5241
+ return /* @__PURE__ */ jsx80("svg", { className: tailClasses, width: "8", height: "4", viewBox: "0 0 8 4", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx80("path", { d: "M4 4L0 0H8L4 4Z" }) });
4805
5242
  } else {
4806
- return /* @__PURE__ */ jsx74(
5243
+ return /* @__PURE__ */ jsx80(
4807
5244
  "svg",
4808
5245
  {
4809
5246
  className: tailClasses,
@@ -4812,14 +5249,14 @@ var TailIcon = (props) => {
4812
5249
  viewBox: "0 0 14 8",
4813
5250
  fill: "none",
4814
5251
  xmlns: "http://www.w3.org/2000/svg",
4815
- children: /* @__PURE__ */ jsx74("path", { d: "M7 8L0 0H14L7 8Z" })
5252
+ children: /* @__PURE__ */ jsx80("path", { d: "M7 8L0 0H14L7 8Z" })
4816
5253
  }
4817
5254
  );
4818
5255
  }
4819
5256
  };
4820
5257
 
4821
5258
  // src/tooltip/tooltip-content.tsx
4822
- import { jsx as jsx75, jsxs as jsxs36 } from "react/jsx-runtime";
5259
+ import { jsx as jsx81, jsxs as jsxs38 } from "react/jsx-runtime";
4823
5260
  var TooltipContent = ({
4824
5261
  content,
4825
5262
  horizontalAlign,
@@ -4829,7 +5266,7 @@ var TooltipContent = ({
4829
5266
  maxWidth,
4830
5267
  isPortal = false
4831
5268
  }) => {
4832
- const tooltipWrapperClasses = clsx56("absolute z-tooltip m-auto flex", {
5269
+ const tooltipWrapperClasses = clsx59("absolute z-tooltip m-auto flex", {
4833
5270
  "top-0": !isPortal && verticalPosition === "top",
4834
5271
  "bottom-0": !isPortal && verticalPosition === "bottom",
4835
5272
  "justify-start": horizontalAlign === "left",
@@ -4838,7 +5275,7 @@ var TooltipContent = ({
4838
5275
  "w-[24px]": size === "small",
4839
5276
  "w-[46px]": size !== "small"
4840
5277
  });
4841
- const tooltipBodyClasses = clsx56(
5278
+ const tooltipBodyClasses = clsx59(
4842
5279
  "absolute z-tooltip inline-block w-max rounded bg-uiBackgroundTooltip text-textOnColor",
4843
5280
  {
4844
5281
  "typography-body12regular": size === "small",
@@ -4855,7 +5292,7 @@ var TooltipContent = ({
4855
5292
  transform: `translate(${tooltipPosition.translateX}, ${tooltipPosition.translateY})`,
4856
5293
  ...tooltipPosition
4857
5294
  } : {};
4858
- return /* @__PURE__ */ jsx75("div", { className: tooltipWrapperClasses, style: tooltipWrapperStyle, children: /* @__PURE__ */ jsxs36(
5295
+ return /* @__PURE__ */ jsx81("div", { className: tooltipWrapperClasses, style: tooltipWrapperStyle, children: /* @__PURE__ */ jsxs38(
4859
5296
  "div",
4860
5297
  {
4861
5298
  className: tooltipBodyClasses,
@@ -4864,7 +5301,7 @@ var TooltipContent = ({
4864
5301
  },
4865
5302
  children: [
4866
5303
  content,
4867
- /* @__PURE__ */ jsx75(TailIcon, { size, verticalPosition, horizontalAlign })
5304
+ /* @__PURE__ */ jsx81(TailIcon, { size, verticalPosition, horizontalAlign })
4868
5305
  ]
4869
5306
  }
4870
5307
  ) });
@@ -4925,7 +5362,7 @@ var useTooltip = () => {
4925
5362
  };
4926
5363
 
4927
5364
  // src/tooltip/tooltip.tsx
4928
- import { jsx as jsx76, jsxs as jsxs37 } from "react/jsx-runtime";
5365
+ import { jsx as jsx82, jsxs as jsxs39 } from "react/jsx-runtime";
4929
5366
  function Tooltip({
4930
5367
  children,
4931
5368
  content,
@@ -4995,7 +5432,7 @@ function Tooltip({
4995
5432
  window.removeEventListener("resize", updatePosition);
4996
5433
  };
4997
5434
  }, [isVisible, calculatePosition, maxWidth, verticalPosition, horizontalAlign, size]);
4998
- return /* @__PURE__ */ jsxs37(
5435
+ return /* @__PURE__ */ jsxs39(
4999
5436
  "div",
5000
5437
  {
5001
5438
  ref: targetRef,
@@ -5004,7 +5441,7 @@ function Tooltip({
5004
5441
  onMouseLeave: handleMouseOutWrapper,
5005
5442
  children: [
5006
5443
  children,
5007
- isVisible && (portalTarget == null ? /* @__PURE__ */ jsx76(
5444
+ isVisible && (portalTarget == null ? /* @__PURE__ */ jsx82(
5008
5445
  TooltipContent,
5009
5446
  {
5010
5447
  content,
@@ -5015,7 +5452,7 @@ function Tooltip({
5015
5452
  tooltipPosition
5016
5453
  }
5017
5454
  ) : createPortal4(
5018
- /* @__PURE__ */ jsx76(
5455
+ /* @__PURE__ */ jsx82(
5019
5456
  TooltipContent,
5020
5457
  {
5021
5458
  isPortal: true,
@@ -5059,6 +5496,7 @@ export {
5059
5496
  PopoverTrigger,
5060
5497
  Popup,
5061
5498
  Radio,
5499
+ RadioCard,
5062
5500
  Search,
5063
5501
  SegmentedControl,
5064
5502
  Select,
@@ -5073,10 +5511,13 @@ export {
5073
5511
  Tag,
5074
5512
  TextArea,
5075
5513
  TextInput,
5514
+ TimePicker,
5076
5515
  Toast,
5077
5516
  ToastProvider,
5078
5517
  Toggle,
5079
5518
  Tooltip,
5519
+ formatTime,
5520
+ parseTime,
5080
5521
  useOutsideClick,
5081
5522
  useRovingFocus,
5082
5523
  useToast