@zenkigen-inc/component-ui 1.18.0 → 1.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -45,7 +45,7 @@ __export(index_exports, {
45
45
  NotificationInline: () => NotificationInline,
46
46
  Pagination: () => Pagination,
47
47
  PaginationSelect: () => PaginationSelect,
48
- PasswordInput: () => PasswordInput,
48
+ PasswordInput: () => PasswordInput2,
49
49
  Popover: () => Popover,
50
50
  PopoverContent: () => PopoverContent,
51
51
  PopoverTrigger: () => PopoverTrigger,
@@ -181,7 +181,7 @@ var createButton = (props) => {
181
181
  import_component_theme3.buttonColors[variant].disabled,
182
182
  import_component_theme3.focusVisible.normal,
183
183
  {
184
- "h-6 px-2.5": size === "small",
184
+ "h-6 px-2": size === "small",
185
185
  "h-8 px-3": size === "medium",
186
186
  "h-10 px-4 leading-[24px]": size === "large",
187
187
  "inline-flex": elementAs === "a",
@@ -758,7 +758,8 @@ var FileInput = (0, import_react8.forwardRef)(
758
758
  "border-uiBorder03 bg-white text-text01": !isDisabled && !isDragOver && !hasErrors,
759
759
  "border-activeInput bg-activeInput/5": !isDisabled && isDragOver && !hasErrors,
760
760
  "border-supportDanger bg-white": hasErrors && !isDisabled,
761
- "hover:bg-hover02 cursor-pointer": !isDisabled,
761
+ "cursor-pointer hover:bg-hover02 active:bg-active02": !isDisabled,
762
+ "hover:bg-uiBackgroundError active:bg-red-red20": !isDisabled && hasErrors,
762
763
  "border-disabled01 bg-disabled02 text-textPlaceholder cursor-not-allowed": isDisabled
763
764
  }
764
765
  );
@@ -1244,47 +1245,69 @@ function PaginationButton({ page, onClick }) {
1244
1245
  var import_jsx_runtime23 = require("react/jsx-runtime");
1245
1246
  var START_PAGE = 1;
1246
1247
  function Pagination({ currentPage, totalPage, sideNumPagesToShow = 3, onClick }) {
1247
- let center = Math.max(currentPage, START_PAGE + 1);
1248
- center = Math.min(center, totalPage - 1);
1249
- const start = Math.max(center - sideNumPagesToShow, START_PAGE + 1);
1250
- const end = Math.min(center + sideNumPagesToShow, totalPage - 1);
1251
- const offsetStart = center + sideNumPagesToShow >= totalPage ? totalPage - center - sideNumPagesToShow : 0;
1252
- const offsetEnd = center <= sideNumPagesToShow ? sideNumPagesToShow - center + 1 : 0;
1248
+ if (totalPage < START_PAGE) {
1249
+ return null;
1250
+ }
1251
+ const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
1252
+ const clampedCurrentPage = clamp(currentPage, START_PAGE, totalPage);
1253
+ const maxSideNumPagesToShow = Math.max(0, totalPage - 2);
1254
+ const side = clamp(sideNumPagesToShow, 0, maxSideNumPagesToShow);
1255
+ const minPage = START_PAGE + 1;
1256
+ const maxPage = totalPage - 1;
1257
+ const availablePagesCount = Math.max(0, maxPage - minPage + 1);
1258
+ const hasBothSides = clampedCurrentPage > START_PAGE && clampedCurrentPage < totalPage;
1259
+ const windowSize = Math.min(availablePagesCount, hasBothSides ? side * 2 + 1 : side * 2);
1260
+ let start = minPage;
1261
+ if (windowSize > 0) {
1262
+ if (hasBothSides) {
1263
+ start = Math.max(minPage, Math.min(clampedCurrentPage - side, maxPage - windowSize + 1));
1264
+ } else if (clampedCurrentPage === totalPage) {
1265
+ start = Math.max(minPage, maxPage - windowSize + 1);
1266
+ }
1267
+ }
1268
+ const end = windowSize === 0 ? minPage - 1 : Math.min(maxPage, start + windowSize - 1);
1253
1269
  const pageList = [];
1254
- for (let i = start + offsetStart; i <= end + offsetEnd; i++) {
1270
+ for (let i = start; i <= end; i++) {
1255
1271
  pageList.push(i);
1256
1272
  }
1257
1273
  const threeDotIconClasses = "flex h-8 w-8 items-center justify-center gap-1 fill-icon01";
1274
+ const isFirstPage = clampedCurrentPage === START_PAGE;
1275
+ const isLastPage = clampedCurrentPage === totalPage;
1276
+ const firstPageInList = pageList.at(0) ?? null;
1277
+ const lastPageInList = pageList.at(-1) ?? null;
1278
+ const hasHeadEllipsis = firstPageInList !== null && firstPageInList > START_PAGE + 1;
1279
+ const hasTailEllipsis = lastPageInList !== null && lastPageInList < totalPage - 1;
1280
+ const hasLastPageButton = totalPage > START_PAGE;
1258
1281
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1259
1282
  PaginationContext.Provider,
1260
1283
  {
1261
1284
  value: {
1262
- currentPage
1285
+ currentPage: clampedCurrentPage
1263
1286
  },
1264
1287
  children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("ul", { className: "flex gap-1", children: [
1265
1288
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1266
1289
  IconButton,
1267
1290
  {
1268
- isDisabled: currentPage === START_PAGE,
1291
+ isDisabled: isFirstPage,
1269
1292
  variant: "text",
1270
1293
  icon: "angle-left",
1271
1294
  size: "small",
1272
- onClick: () => onClick(currentPage - 1)
1295
+ onClick: () => onClick(Math.max(START_PAGE, clampedCurrentPage - 1))
1273
1296
  }
1274
1297
  ) }),
1275
1298
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PaginationButton, { onClick: () => onClick(START_PAGE), page: START_PAGE }) }),
1276
- pageList.length !== 0 && pageList[0] !== 2 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { className: threeDotIconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "more", size: "small" }) }),
1299
+ hasHeadEllipsis && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { className: threeDotIconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "more", size: "small" }) }),
1277
1300
  pageList.map((page, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PaginationButton, { onClick: () => onClick(page), page }) }, index)),
1278
- pageList.length !== 0 && pageList[pageList.length - 1] !== totalPage - 1 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { className: threeDotIconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "more", size: "small" }) }),
1279
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PaginationButton, { onClick: () => onClick(totalPage), page: totalPage }) }),
1301
+ hasTailEllipsis && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { className: threeDotIconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "more", size: "small" }) }),
1302
+ hasLastPageButton && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PaginationButton, { onClick: () => onClick(totalPage), page: totalPage }) }),
1280
1303
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("li", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1281
1304
  IconButton,
1282
1305
  {
1283
- isDisabled: currentPage === totalPage,
1306
+ isDisabled: isLastPage,
1284
1307
  variant: "text",
1285
1308
  icon: "angle-right",
1286
1309
  size: "small",
1287
- onClick: () => onClick(currentPage + 1)
1310
+ onClick: () => onClick(Math.min(totalPage, clampedCurrentPage + 1))
1288
1311
  }
1289
1312
  ) })
1290
1313
  ] })
@@ -1564,50 +1587,182 @@ function PaginationSelect({
1564
1587
  }
1565
1588
 
1566
1589
  // src/password-input/password-input.tsx
1567
- var import_react22 = require("react");
1590
+ var import_react25 = require("react");
1568
1591
 
1569
1592
  // src/text-input/text-input.tsx
1570
- var import_clsx20 = require("clsx");
1593
+ var import_clsx22 = require("clsx");
1594
+ var import_react24 = require("react");
1595
+
1596
+ // src/text-input/text-input-context.tsx
1571
1597
  var import_react21 = require("react");
1598
+ var TextInputCompoundContext = (0, import_react21.createContext)(null);
1599
+ var useTextInputCompoundContext = (componentName) => {
1600
+ const context = (0, import_react21.useContext)(TextInputCompoundContext);
1601
+ if (context == null) {
1602
+ throw new Error(`${componentName} \u3092\u4F7F\u7528\u3059\u308B\u306B\u306F TextInput \u306E\u5B50\u8981\u7D20\u3068\u3057\u3066\u914D\u7F6E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002`);
1603
+ }
1604
+ return context;
1605
+ };
1606
+
1607
+ // src/text-input/text-input-error-message.tsx
1608
+ var import_clsx20 = require("clsx");
1609
+ var import_react22 = require("react");
1572
1610
  var import_jsx_runtime28 = require("react/jsx-runtime");
1573
- var TextInput = (0, import_react21.forwardRef)(
1574
- ({ size = "medium", isError = false, disabled = false, onClickClearButton, after, ...props }, ref) => {
1575
- const isShowClearButton = !!onClickClearButton && props.value.length !== 0 && !disabled;
1576
- const hasTrailingElement = isShowClearButton || after != null;
1577
- const inputWrapClasses = (0, import_clsx20.clsx)("relative flex items-center gap-2 overflow-hidden rounded border", {
1578
- "border-uiBorder02": !isError && !disabled,
1579
- "border-supportError": isError && !disabled,
1580
- "hover:border-hoverInput": !disabled && !isError,
1581
- "hover:focus-within:border-activeInput": !isError,
1582
- "focus-within:border-activeInput": !isError,
1583
- "bg-disabled02 border-disabled01": disabled,
1584
- "pr-2": size === "medium" && hasTrailingElement,
1585
- "pr-3": size === "large" && hasTrailingElement
1586
- });
1587
- const inputClasses = (0, import_clsx20.clsx)("flex-1 outline-0 placeholder:text-textPlaceholder disabled:text-textPlaceholder", {
1588
- ["typography-label14regular min-h-8 px-2"]: size === "medium",
1589
- ["typography-label16regular min-h-10 px-3"]: size === "large",
1590
- "text-text01": !isError,
1591
- "text-supportError": isError,
1592
- "pr-0": hasTrailingElement
1593
- });
1594
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: inputWrapClasses, children: [
1595
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("input", { ref, size: 1, className: inputClasses, disabled, onChange: props.onChange, ...props }),
1596
- after,
1597
- isShowClearButton && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IconButton, { variant: "text", icon: "close", size: "small", onClick: onClickClearButton })
1598
- ] });
1611
+ var TextInputErrorMessage = (0, import_react22.forwardRef)(
1612
+ ({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
1613
+ const { inputProps } = useTextInputCompoundContext("TextInput.ErrorMessage");
1614
+ const typographyClass = inputProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
1615
+ const shouldRender = inputProps.isError === true;
1616
+ if (!shouldRender) {
1617
+ return null;
1618
+ }
1619
+ const errorMessageClassName = (0, import_clsx20.clsx)(typographyClass, "text-supportError");
1620
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
1599
1621
  }
1600
1622
  );
1601
- TextInput.displayName = "TextInput";
1623
+ TextInputErrorMessage.displayName = "TextInput.ErrorMessage";
1602
1624
 
1603
- // src/password-input/password-input.tsx
1625
+ // src/text-input/text-input-helper-message.tsx
1626
+ var import_clsx21 = require("clsx");
1627
+ var import_react23 = require("react");
1604
1628
  var import_jsx_runtime29 = require("react/jsx-runtime");
1605
- var PasswordInput = (0, import_react22.forwardRef)(({ disabled = false, ...props }, ref) => {
1606
- const [isPasswordVisible, setIsPasswordVisible] = (0, import_react22.useState)(false);
1629
+ var TextInputHelperMessage = (0, import_react23.forwardRef)((props, ref) => {
1630
+ const { inputProps } = useTextInputCompoundContext("TextInput.HelperMessage");
1631
+ const typographyClass = inputProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
1632
+ const helperMessageClassName = (0, import_clsx21.clsx)(typographyClass, "text-text02");
1633
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { ref, className: helperMessageClassName, ...props });
1634
+ });
1635
+ TextInputHelperMessage.displayName = "TextInput.HelperMessage";
1636
+
1637
+ // src/text-input/text-input.tsx
1638
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1639
+ function TextInputInner({
1640
+ size = "medium",
1641
+ isError = false,
1642
+ disabled = false,
1643
+ onClickClearButton,
1644
+ after,
1645
+ children,
1646
+ ...props
1647
+ }, ref) {
1648
+ const autoGeneratedId = (0, import_react24.useId)();
1649
+ const { className: _className, ...restInputProps } = props;
1650
+ const inputPropsForContext = (0, import_react24.useMemo)(
1651
+ () => ({
1652
+ ...restInputProps,
1653
+ size,
1654
+ isError,
1655
+ disabled,
1656
+ onClickClearButton,
1657
+ after
1658
+ }),
1659
+ [restInputProps, size, isError, disabled, onClickClearButton, after]
1660
+ );
1661
+ const contextValue = (0, import_react24.useMemo)(
1662
+ () => ({
1663
+ inputProps: inputPropsForContext,
1664
+ forwardedRef: ref
1665
+ }),
1666
+ [inputPropsForContext, ref]
1667
+ );
1668
+ const helperMessageIds = [];
1669
+ const errorIds = [];
1670
+ const describedByBaseId = restInputProps.id ?? autoGeneratedId;
1671
+ const enhancedChildren = import_react24.Children.map(children, (child) => {
1672
+ if (!(0, import_react24.isValidElement)(child)) {
1673
+ return child;
1674
+ }
1675
+ if (child.type === TextInputHelperMessage) {
1676
+ const helperChild = child;
1677
+ const assignedId = helperChild.props.id ?? `${describedByBaseId}-helper-${helperMessageIds.length + 1}`;
1678
+ helperMessageIds.push(assignedId);
1679
+ return (0, import_react24.cloneElement)(helperChild, { id: assignedId });
1680
+ }
1681
+ if (child.type === TextInputErrorMessage && isError) {
1682
+ const errorChild = child;
1683
+ const assignedId = errorChild.props.id ?? `${describedByBaseId}-error-${errorIds.length + 1}`;
1684
+ errorIds.push(assignedId);
1685
+ return (0, import_react24.cloneElement)(errorChild, { id: assignedId });
1686
+ }
1687
+ return child;
1688
+ });
1689
+ const describedByFromProps = typeof restInputProps["aria-describedby"] === "string" ? restInputProps["aria-describedby"] : null;
1690
+ const describedByList = [describedByFromProps, ...helperMessageIds, ...errorIds].filter(
1691
+ (id) => typeof id === "string" && id.trim().length > 0
1692
+ );
1693
+ const describedByProps = describedByList.length > 0 ? {
1694
+ "aria-describedby": describedByList.join(" ")
1695
+ } : {};
1696
+ const shouldMarkInvalid = isError === true || errorIds.length > 0;
1697
+ const ariaInvalidFromProps = restInputProps["aria-invalid"];
1698
+ const ariaInvalidValue = ariaInvalidFromProps != null ? ariaInvalidFromProps : shouldMarkInvalid ? true : null;
1699
+ const ariaInvalidProps = ariaInvalidValue == null ? {} : { "aria-invalid": ariaInvalidValue };
1700
+ const mergedInputProps = {
1701
+ ...restInputProps,
1702
+ ...describedByProps,
1703
+ ...ariaInvalidProps,
1704
+ disabled
1705
+ };
1706
+ const isShowClearButton = !!onClickClearButton && restInputProps.value.length !== 0 && !disabled;
1707
+ const hasTrailingElement = isShowClearButton || after != null;
1708
+ const inputWrapClasses = (0, import_clsx22.clsx)("relative flex items-center gap-2 overflow-hidden rounded border", {
1709
+ "border-uiBorder02": !isError && !disabled,
1710
+ "border-supportError": isError && !disabled,
1711
+ "hover:border-hoverInput": !disabled && !isError,
1712
+ "hover:focus-within:border-activeInput": !isError,
1713
+ "focus-within:border-activeInput": !isError,
1714
+ "bg-disabled02 border-disabled01": disabled,
1715
+ "pr-2": size === "medium" && hasTrailingElement,
1716
+ "pr-3": size === "large" && hasTrailingElement
1717
+ });
1718
+ const inputClasses = (0, import_clsx22.clsx)("flex-1 outline-0 placeholder:text-textPlaceholder disabled:text-textPlaceholder", {
1719
+ ["typography-label14regular min-h-8 px-2"]: size === "medium",
1720
+ ["typography-label16regular min-h-10 px-3"]: size === "large",
1721
+ "text-text01": !isError,
1722
+ "text-supportError": isError,
1723
+ "pr-0": hasTrailingElement
1724
+ });
1725
+ const inputElement = /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: inputWrapClasses, children: [
1726
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("input", { ref, size: 1, className: inputClasses, ...mergedInputProps }),
1727
+ after,
1728
+ isShowClearButton && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(IconButton, { variant: "text", icon: "close", size: "small", onClick: onClickClearButton })
1729
+ ] });
1730
+ const stackedChildren = enhancedChildren == null ? [] : import_react24.Children.toArray(enhancedChildren);
1731
+ const hasMessageChildren = stackedChildren.length > 0;
1732
+ if (!hasMessageChildren) {
1733
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TextInputCompoundContext.Provider, { value: contextValue, children: inputElement });
1734
+ }
1735
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TextInputCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex flex-col gap-2", children: [
1736
+ inputElement,
1737
+ stackedChildren
1738
+ ] }) });
1739
+ }
1740
+ var attachStatics = (component) => {
1741
+ component.HelperMessage = TextInputHelperMessage;
1742
+ component.ErrorMessage = TextInputErrorMessage;
1743
+ component.displayName = "TextInput";
1744
+ return component;
1745
+ };
1746
+ var TextInputPublic = (0, import_react24.forwardRef)(function TextInputPublic2(props, ref) {
1747
+ return TextInputInner(props, ref);
1748
+ });
1749
+ var InternalTextInputBase = (0, import_react24.forwardRef)(
1750
+ function InternalTextInputBase2(props, ref) {
1751
+ return TextInputInner(props, ref);
1752
+ }
1753
+ );
1754
+ var TextInput = attachStatics(TextInputPublic);
1755
+ var InternalTextInput = attachStatics(InternalTextInputBase);
1756
+
1757
+ // src/password-input/password-input.tsx
1758
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1759
+ var PasswordInputBase = (0, import_react25.forwardRef)(function PasswordInput({ disabled = false, children, ...props }, ref) {
1760
+ const [isPasswordVisible, setIsPasswordVisible] = (0, import_react25.useState)(false);
1761
+ const { className: _className, ...textInputProps } = props;
1607
1762
  const handlePasswordVisibilityToggle = () => {
1608
- setIsPasswordVisible(!isPasswordVisible);
1763
+ setIsPasswordVisible((prev) => !prev);
1609
1764
  };
1610
- const passwordToggleButton = /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1765
+ const passwordToggleButton = /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1611
1766
  IconButton,
1612
1767
  {
1613
1768
  variant: "text",
@@ -1618,27 +1773,32 @@ var PasswordInput = (0, import_react22.forwardRef)(({ disabled = false, ...props
1618
1773
  "aria-label": isPasswordVisible === true ? "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u975E\u8868\u793A\u306B\u3059\u308B" : "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8868\u793A\u3059\u308B"
1619
1774
  }
1620
1775
  );
1621
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1622
- TextInput,
1776
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1777
+ InternalTextInput,
1623
1778
  {
1624
1779
  ref,
1625
1780
  type: isPasswordVisible === true ? "text" : "password",
1626
1781
  disabled,
1627
- ...props,
1628
- ...{ after: passwordToggleButton }
1782
+ after: passwordToggleButton,
1783
+ ...textInputProps,
1784
+ children
1629
1785
  }
1630
1786
  );
1631
1787
  });
1632
- PasswordInput.displayName = "PasswordInput";
1788
+ var PasswordInput2 = Object.assign(PasswordInputBase, {
1789
+ HelperMessage: TextInputHelperMessage,
1790
+ ErrorMessage: TextInputErrorMessage,
1791
+ displayName: "PasswordInput"
1792
+ });
1633
1793
 
1634
1794
  // src/popover/popover.tsx
1635
- var import_react27 = require("@floating-ui/react");
1636
- var import_react28 = require("react");
1795
+ var import_react30 = require("@floating-ui/react");
1796
+ var import_react31 = require("react");
1637
1797
 
1638
1798
  // src/popover/popover-content.tsx
1639
- var import_react24 = require("@floating-ui/react");
1799
+ var import_react27 = require("@floating-ui/react");
1640
1800
  var React = __toESM(require("react"));
1641
- var import_react25 = require("react");
1801
+ var import_react28 = require("react");
1642
1802
 
1643
1803
  // src/utils/react-utils.ts
1644
1804
  function composeRefs(...refs) {
@@ -1660,10 +1820,10 @@ function isElement(node) {
1660
1820
  }
1661
1821
 
1662
1822
  // src/popover/popover-context.ts
1663
- var import_react23 = require("react");
1664
- var PopoverContext = (0, import_react23.createContext)(null);
1823
+ var import_react26 = require("react");
1824
+ var PopoverContext = (0, import_react26.createContext)(null);
1665
1825
  var usePopoverContext = () => {
1666
- const context = (0, import_react23.useContext)(PopoverContext);
1826
+ const context = (0, import_react26.useContext)(PopoverContext);
1667
1827
  if (context == null) {
1668
1828
  throw new Error("Popover components must be used inside <Popover.Root>");
1669
1829
  }
@@ -1671,10 +1831,10 @@ var usePopoverContext = () => {
1671
1831
  };
1672
1832
 
1673
1833
  // src/popover/popover-content.tsx
1674
- var import_jsx_runtime30 = require("react/jsx-runtime");
1675
- var PopoverContent = (0, import_react25.forwardRef)(function PopoverContent2({ children }, ref) {
1834
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1835
+ var PopoverContent = (0, import_react28.forwardRef)(function PopoverContent2({ children }, ref) {
1676
1836
  const { isOpen, triggerRef, floating, panelId, onClose } = usePopoverContext();
1677
- const shouldCloseOnOutsidePress = (0, import_react25.useCallback)(
1837
+ const shouldCloseOnOutsidePress = (0, import_react28.useCallback)(
1678
1838
  (event) => {
1679
1839
  const target = event.target;
1680
1840
  if (!(target instanceof Element)) {
@@ -1690,24 +1850,24 @@ var PopoverContent = (0, import_react25.forwardRef)(function PopoverContent2({ c
1690
1850
  },
1691
1851
  [floating.refs.floating]
1692
1852
  );
1693
- const dismiss = (0, import_react24.useDismiss)(floating.context, {
1853
+ const dismiss = (0, import_react27.useDismiss)(floating.context, {
1694
1854
  outsidePressEvent: "pointerdown",
1695
1855
  outsidePress: shouldCloseOnOutsidePress,
1696
1856
  escapeKey: false
1697
1857
  });
1698
- const interactions = (0, import_react24.useInteractions)([dismiss, (0, import_react24.useRole)(floating.context, { role: "dialog" })]);
1699
- (0, import_react25.useEffect)(() => {
1858
+ const interactions = (0, import_react27.useInteractions)([dismiss, (0, import_react27.useRole)(floating.context, { role: "dialog" })]);
1859
+ (0, import_react28.useEffect)(() => {
1700
1860
  if (isOpen) {
1701
1861
  const element = floating.refs.floating.current;
1702
1862
  element?.focus?.({ preventScroll: true });
1703
1863
  }
1704
1864
  }, [isOpen, floating.refs.floating]);
1705
- (0, import_react25.useEffect)(() => {
1865
+ (0, import_react28.useEffect)(() => {
1706
1866
  if (!isOpen) {
1707
1867
  triggerRef.current?.focus({ preventScroll: true });
1708
1868
  }
1709
1869
  }, [isOpen, triggerRef]);
1710
- const handleKeyDown = (0, import_react25.useCallback)(
1870
+ const handleKeyDown = (0, import_react28.useCallback)(
1711
1871
  (event) => {
1712
1872
  if (event.key === "Escape") {
1713
1873
  event.stopPropagation();
@@ -1727,7 +1887,7 @@ var PopoverContent = (0, import_react25.forwardRef)(function PopoverContent2({ c
1727
1887
  ...childProps.role == null && { role: "dialog" }
1728
1888
  });
1729
1889
  }
1730
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react24.FloatingPortal, { children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1890
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react27.FloatingPortal, { children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1731
1891
  "div",
1732
1892
  {
1733
1893
  ...interactions.getFloatingProps({
@@ -1748,8 +1908,8 @@ var PopoverContent = (0, import_react25.forwardRef)(function PopoverContent2({ c
1748
1908
 
1749
1909
  // src/popover/popover-trigger.tsx
1750
1910
  var React2 = __toESM(require("react"));
1751
- var import_react26 = require("react");
1752
- var PopoverTrigger = (0, import_react26.forwardRef)(function PopoverTrigger2({ children }, ref) {
1911
+ var import_react29 = require("react");
1912
+ var PopoverTrigger = (0, import_react29.forwardRef)(function PopoverTrigger2({ children }, ref) {
1753
1913
  const { isOpen, floating, triggerRef, anchorRef, panelId } = usePopoverContext();
1754
1914
  if (!isElement(children)) {
1755
1915
  return null;
@@ -1777,7 +1937,7 @@ var PopoverTrigger = (0, import_react26.forwardRef)(function PopoverTrigger2({ c
1777
1937
  });
1778
1938
 
1779
1939
  // src/popover/popover.tsx
1780
- var import_jsx_runtime31 = require("react/jsx-runtime");
1940
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1781
1941
  function Popover({
1782
1942
  isOpen,
1783
1943
  children,
@@ -1786,8 +1946,8 @@ function Popover({
1786
1946
  onClose,
1787
1947
  anchorRef
1788
1948
  }) {
1789
- const triggerRef = (0, import_react28.useRef)(null);
1790
- const floating = (0, import_react27.useFloating)({
1949
+ const triggerRef = (0, import_react31.useRef)(null);
1950
+ const floating = (0, import_react30.useFloating)({
1791
1951
  open: isOpen,
1792
1952
  onOpenChange: (open) => {
1793
1953
  if (!open && onClose != null) {
@@ -1795,18 +1955,18 @@ function Popover({
1795
1955
  }
1796
1956
  },
1797
1957
  placement,
1798
- middleware: [(0, import_react27.offset)(offsetValue)],
1799
- whileElementsMounted: import_react27.autoUpdate,
1958
+ middleware: [(0, import_react30.offset)(offsetValue)],
1959
+ whileElementsMounted: import_react30.autoUpdate,
1800
1960
  strategy: "fixed"
1801
1961
  });
1802
- (0, import_react28.useEffect)(() => {
1962
+ (0, import_react31.useEffect)(() => {
1803
1963
  if (anchorRef?.current) {
1804
1964
  floating.refs.setReference(anchorRef.current);
1805
1965
  }
1806
1966
  }, [anchorRef, floating.refs]);
1807
- const contentId = (0, import_react27.useId)() ?? "";
1967
+ const contentId = (0, import_react30.useId)() ?? "";
1808
1968
  const panelId = `${contentId}-panel`;
1809
- const contextValue = (0, import_react28.useMemo)(
1969
+ const contextValue = (0, import_react31.useMemo)(
1810
1970
  () => ({
1811
1971
  isOpen,
1812
1972
  triggerRef,
@@ -1818,53 +1978,53 @@ function Popover({
1818
1978
  }),
1819
1979
  [isOpen, triggerRef, anchorRef, floating, contentId, panelId, onClose]
1820
1980
  );
1821
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopoverContext.Provider, { value: contextValue, children });
1981
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(PopoverContext.Provider, { value: contextValue, children });
1822
1982
  }
1823
1983
  Popover.Trigger = PopoverTrigger;
1824
1984
  Popover.Content = PopoverContent;
1825
1985
 
1826
1986
  // src/popup/popup.tsx
1827
- var import_react31 = require("react");
1987
+ var import_react34 = require("react");
1828
1988
 
1829
1989
  // src/popup/popup-body.tsx
1830
- var import_jsx_runtime32 = require("react/jsx-runtime");
1990
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1831
1991
  function PopupBody({ children }) {
1832
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "overflow-y-auto", children });
1992
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "overflow-y-auto", children });
1833
1993
  }
1834
1994
 
1835
1995
  // src/popup/popup-context.ts
1836
- var import_react29 = require("react");
1837
- var PopupContext = (0, import_react29.createContext)({
1996
+ var import_react32 = require("react");
1997
+ var PopupContext = (0, import_react32.createContext)({
1838
1998
  isOpen: false,
1839
1999
  onClose: () => null
1840
2000
  });
1841
2001
 
1842
2002
  // src/popup/popup-footer.tsx
1843
- var import_jsx_runtime33 = require("react/jsx-runtime");
2003
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1844
2004
  function PopupFooter({ children }) {
1845
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex w-full shrink-0 items-center rounded-b-lg px-6 py-3", children });
2005
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "flex w-full shrink-0 items-center rounded-b-lg px-6 py-3", children });
1846
2006
  }
1847
2007
 
1848
2008
  // src/popup/popup-header.tsx
1849
- var import_react30 = require("react");
1850
- var import_jsx_runtime34 = require("react/jsx-runtime");
2009
+ var import_react33 = require("react");
2010
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1851
2011
  function PopupHeader({ children, before }) {
1852
- const { onClose } = (0, import_react30.useContext)(PopupContext);
1853
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "typography-h5 flex h-12 w-full shrink-0 items-start justify-between rounded-t-lg px-6 pt-3 text-text01", children: [
1854
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-1", children: [
2012
+ const { onClose } = (0, import_react33.useContext)(PopupContext);
2013
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "typography-h5 flex h-12 w-full shrink-0 items-start justify-between rounded-t-lg px-6 pt-3 text-text01", children: [
2014
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-1", children: [
1855
2015
  before,
1856
2016
  children
1857
2017
  ] }),
1858
- onClose && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(IconButton, { icon: "close", size: "small", variant: "text", onClick: onClose })
2018
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconButton, { icon: "close", size: "small", variant: "text", onClick: onClose })
1859
2019
  ] });
1860
2020
  }
1861
2021
 
1862
2022
  // src/popup/popup.tsx
1863
- var import_jsx_runtime35 = require("react/jsx-runtime");
2023
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1864
2024
  var LIMIT_WIDTH2 = 320;
1865
2025
  var LIMIT_HEIGHT2 = 184;
1866
2026
  function useOptionalPopoverContext() {
1867
- return (0, import_react31.useContext)(PopoverContext);
2027
+ return (0, import_react34.useContext)(PopoverContext);
1868
2028
  }
1869
2029
  function Popup({ children, isOpen: controlledIsOpen, width = 480, height, onClose }) {
1870
2030
  const renderWidth = typeof width === "number" ? Math.max(width, LIMIT_WIDTH2) : width;
@@ -1875,7 +2035,7 @@ function Popup({ children, isOpen: controlledIsOpen, width = 480, height, onClos
1875
2035
  if (!isOpen) {
1876
2036
  return null;
1877
2037
  }
1878
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PopupContext.Provider, { value: { isOpen, onClose }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2038
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(PopupContext.Provider, { value: { isOpen, onClose }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1879
2039
  "div",
1880
2040
  {
1881
2041
  className: "grid max-h-full grid-rows-[max-content_1fr_max-content] flex-col rounded-lg bg-uiBackground01 shadow-floatingShadow",
@@ -1890,26 +2050,26 @@ Popup.Footer = PopupFooter;
1890
2050
 
1891
2051
  // src/radio/radio.tsx
1892
2052
  var import_component_theme13 = require("@zenkigen-inc/component-theme");
1893
- var import_clsx21 = __toESM(require("clsx"));
1894
- var import_react32 = require("react");
1895
- var import_jsx_runtime36 = require("react/jsx-runtime");
2053
+ var import_clsx23 = __toESM(require("clsx"));
2054
+ var import_react35 = require("react");
2055
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1896
2056
  function Radio({ name, value, id, label, isChecked = false, isDisabled = false, onChange }) {
1897
- const [isMouseOver, setIsMouseOver] = (0, import_react32.useState)(false);
1898
- const handleMouseOverInput = (0, import_react32.useCallback)(() => {
2057
+ const [isMouseOver, setIsMouseOver] = (0, import_react35.useState)(false);
2058
+ const handleMouseOverInput = (0, import_react35.useCallback)(() => {
1899
2059
  setIsMouseOver(true);
1900
2060
  }, []);
1901
- const handleMouseOutInput = (0, import_react32.useCallback)(() => {
2061
+ const handleMouseOutInput = (0, import_react35.useCallback)(() => {
1902
2062
  setIsMouseOver(false);
1903
2063
  }, []);
1904
- const handleChange = (0, import_react32.useCallback)(
2064
+ const handleChange = (0, import_react35.useCallback)(
1905
2065
  (e) => !isDisabled && onChange?.(e),
1906
2066
  [isDisabled, onChange]
1907
2067
  );
1908
- const inputClasses = (0, import_clsx21.default)("peer absolute z-[1] size-6 opacity-0", {
2068
+ const inputClasses = (0, import_clsx23.default)("peer absolute z-[1] size-6 opacity-0", {
1909
2069
  "cursor-not-allowed": isDisabled,
1910
2070
  "cursor-pointer": !isDisabled
1911
2071
  });
1912
- const boxClasses = (0, import_clsx21.default)(
2072
+ const boxClasses = (0, import_clsx23.default)(
1913
2073
  "inline-flex size-5 items-center justify-center rounded-full border border-solid bg-white",
1914
2074
  import_component_theme13.focusVisible.normalPeer,
1915
2075
  {
@@ -1920,22 +2080,22 @@ function Radio({ name, value, id, label, isChecked = false, isDisabled = false,
1920
2080
  "cursor-pointer": !isDisabled
1921
2081
  }
1922
2082
  );
1923
- const afterClasses = (0, import_clsx21.default)("absolute inset-0 m-auto block size-3 rounded-full", {
2083
+ const afterClasses = (0, import_clsx23.default)("absolute inset-0 m-auto block size-3 rounded-full", {
1924
2084
  "bg-disabled01": isDisabled && isChecked,
1925
2085
  "bg-activeSelectedUi": !isDisabled && isChecked,
1926
2086
  "scale-0": !isChecked,
1927
2087
  "scale-100": isChecked
1928
2088
  });
1929
- const hoverIndicatorClasses = (0, import_clsx21.default)("inline-block size-3 rounded-full", {
2089
+ const hoverIndicatorClasses = (0, import_clsx23.default)("inline-block size-3 rounded-full", {
1930
2090
  "bg-hoverUi": !isDisabled && !isChecked && isMouseOver
1931
2091
  });
1932
- const labelClasses = (0, import_clsx21.default)("typography-label14regular ml-2 flex-[1_0_0] select-none break-all", {
2092
+ const labelClasses = (0, import_clsx23.default)("typography-label14regular ml-2 flex-[1_0_0] select-none break-all", {
1933
2093
  "pointer-events-none cursor-not-allowed text-disabled01": isDisabled,
1934
2094
  "cursor-pointer text-text01": !isDisabled
1935
2095
  });
1936
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center", children: [
1937
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex size-6 items-center justify-center", children: [
1938
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2096
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center", children: [
2097
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex size-6 items-center justify-center", children: [
2098
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1939
2099
  "input",
1940
2100
  {
1941
2101
  type: "checkbox",
@@ -1950,32 +2110,32 @@ function Radio({ name, value, id, label, isChecked = false, isDisabled = false,
1950
2110
  className: inputClasses
1951
2111
  }
1952
2112
  ),
1953
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: boxClasses, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "relative flex size-5 flex-[0_0_auto] items-center justify-center", children: [
1954
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: afterClasses }),
1955
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: hoverIndicatorClasses })
2113
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: boxClasses, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "relative flex size-5 flex-[0_0_auto] items-center justify-center", children: [
2114
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: afterClasses }),
2115
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: hoverIndicatorClasses })
1956
2116
  ] }) })
1957
2117
  ] }),
1958
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("label", { htmlFor: id, className: labelClasses, children: label })
2118
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("label", { htmlFor: id, className: labelClasses, children: label })
1959
2119
  ] });
1960
2120
  }
1961
2121
 
1962
2122
  // src/search/search.tsx
1963
- var import_clsx22 = require("clsx");
1964
- var import_react33 = require("react");
1965
- var import_jsx_runtime37 = require("react/jsx-runtime");
1966
- var Search = (0, import_react33.forwardRef)(({ width = "100%", size = "medium", ...props }, ref) => {
1967
- const classes = (0, import_clsx22.clsx)(
2123
+ var import_clsx24 = require("clsx");
2124
+ var import_react36 = require("react");
2125
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2126
+ var Search = (0, import_react36.forwardRef)(({ width = "100%", size = "medium", ...props }, ref) => {
2127
+ const classes = (0, import_clsx24.clsx)(
1968
2128
  "flex items-center rounded-full border border-uiBorder02 bg-uiBackground01 focus-within:border-activeInput",
1969
2129
  { "h-8 px-3": size === "medium" },
1970
2130
  { "h-10 px-4": size === "large" }
1971
2131
  );
1972
- const inputClasses = (0, import_clsx22.clsx)("mx-2 h-full flex-1 text-text01 outline-0 placeholder:text-textPlaceholder", {
2132
+ const inputClasses = (0, import_clsx24.clsx)("mx-2 h-full flex-1 text-text01 outline-0 placeholder:text-textPlaceholder", {
1973
2133
  ["typography-label14regular"]: size === "medium",
1974
2134
  ["typography-label16regular"]: size === "large"
1975
2135
  });
1976
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "relative", ref, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("form", { onSubmit: props.onSubmit, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: classes, style: { width }, children: [
1977
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: "search", color: "icon01", size: "medium" }),
1978
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2136
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "relative", ref, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("form", { onSubmit: props.onSubmit, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: classes, style: { width }, children: [
2137
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Icon, { name: "search", color: "icon01", size: "medium" }),
2138
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1979
2139
  "input",
1980
2140
  {
1981
2141
  type: "text",
@@ -1986,7 +2146,7 @@ var Search = (0, import_react33.forwardRef)(({ width = "100%", size = "medium",
1986
2146
  onChange: props.onChange
1987
2147
  }
1988
2148
  ),
1989
- props.onClickClearButton && props.value && props.value.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2149
+ props.onClickClearButton && props.value && props.value.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1990
2150
  IconButton,
1991
2151
  {
1992
2152
  variant: "text",
@@ -2001,17 +2161,17 @@ var Search = (0, import_react33.forwardRef)(({ width = "100%", size = "medium",
2001
2161
  Search.displayName = "Search";
2002
2162
 
2003
2163
  // src/segmented-control/segmented-control.tsx
2004
- var import_react36 = __toESM(require("react"));
2164
+ var import_react39 = __toESM(require("react"));
2005
2165
 
2006
2166
  // src/segmented-control/segmented-control-context.ts
2007
- var import_react34 = require("react");
2008
- var SegmentedControlContext = (0, import_react34.createContext)(null);
2167
+ var import_react37 = require("react");
2168
+ var SegmentedControlContext = (0, import_react37.createContext)(null);
2009
2169
 
2010
2170
  // src/segmented-control/segmented-control-item.tsx
2011
2171
  var import_component_theme14 = require("@zenkigen-inc/component-theme");
2012
- var import_clsx23 = require("clsx");
2013
- var import_react35 = require("react");
2014
- var import_jsx_runtime38 = require("react/jsx-runtime");
2172
+ var import_clsx25 = require("clsx");
2173
+ var import_react38 = require("react");
2174
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2015
2175
  var SegmentedControlItem = ({
2016
2176
  label,
2017
2177
  value,
@@ -2020,9 +2180,9 @@ var SegmentedControlItem = ({
2020
2180
  "aria-label": ariaLabel,
2021
2181
  ...rest
2022
2182
  }) => {
2023
- const context = (0, import_react35.useContext)(SegmentedControlContext);
2024
- const buttonRef = (0, import_react35.useRef)(null);
2025
- const lastInteractionWasMouse = (0, import_react35.useRef)(false);
2183
+ const context = (0, import_react38.useContext)(SegmentedControlContext);
2184
+ const buttonRef = (0, import_react38.useRef)(null);
2185
+ const lastInteractionWasMouse = (0, import_react38.useRef)(false);
2026
2186
  if (context === null) {
2027
2187
  throw new Error("SegmentedControl.Item must be used within SegmentedControl");
2028
2188
  }
@@ -2038,7 +2198,7 @@ var SegmentedControlItem = ({
2038
2198
  const isSelected = value === selectedValue;
2039
2199
  const isFocused = value === focusedValue;
2040
2200
  const isOptionDisabled = isContextDisabled || itemDisabled === true;
2041
- (0, import_react35.useEffect)(() => {
2201
+ (0, import_react38.useEffect)(() => {
2042
2202
  if (isFocused === true && buttonRef.current !== null) {
2043
2203
  buttonRef.current.focus();
2044
2204
  }
@@ -2060,7 +2220,7 @@ var SegmentedControlItem = ({
2060
2220
  lastInteractionWasMouse.current = false;
2061
2221
  onBlur?.();
2062
2222
  };
2063
- const buttonClasses = (0, import_clsx23.clsx)("relative flex items-center justify-center gap-1 rounded", import_component_theme14.focusVisible.normal, {
2223
+ const buttonClasses = (0, import_clsx25.clsx)("relative flex items-center justify-center gap-1 rounded", import_component_theme14.focusVisible.normal, {
2064
2224
  "px-2 min-h-[24px] typography-label12regular": size === "small",
2065
2225
  "px-4 min-h-[32px] typography-label14regular": size === "medium",
2066
2226
  // States - Default with hover
@@ -2070,7 +2230,7 @@ var SegmentedControlItem = ({
2070
2230
  // States - Disabled
2071
2231
  "text-disabled01 bg-transparent": isOptionDisabled === true
2072
2232
  });
2073
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2233
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2074
2234
  "button",
2075
2235
  {
2076
2236
  ref: buttonRef,
@@ -2087,25 +2247,25 @@ var SegmentedControlItem = ({
2087
2247
  onMouseDown: handleMouseDown,
2088
2248
  ...rest,
2089
2249
  children: [
2090
- Boolean(icon) === true && icon && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2250
+ Boolean(icon) === true && icon && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2091
2251
  "span",
2092
2252
  {
2093
- className: (0, import_clsx23.clsx)("flex items-center", {
2253
+ className: (0, import_clsx25.clsx)("flex items-center", {
2094
2254
  "fill-disabled01": isOptionDisabled === true,
2095
2255
  "fill-interactive01": isSelected === true && isOptionDisabled === false,
2096
2256
  "fill-icon01": isSelected === false && isOptionDisabled === false
2097
2257
  }),
2098
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: icon, size: "small" })
2258
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Icon, { name: icon, size: "small" })
2099
2259
  }
2100
2260
  ),
2101
- Boolean(label) === true && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "whitespace-nowrap", children: label })
2261
+ Boolean(label) === true && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "whitespace-nowrap", children: label })
2102
2262
  ]
2103
2263
  }
2104
2264
  );
2105
2265
  };
2106
2266
 
2107
2267
  // src/segmented-control/segmented-control.tsx
2108
- var import_jsx_runtime39 = require("react/jsx-runtime");
2268
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2109
2269
  var SegmentedControl = ({
2110
2270
  children,
2111
2271
  value,
@@ -2115,15 +2275,15 @@ var SegmentedControl = ({
2115
2275
  "aria-label": ariaLabel,
2116
2276
  ...rest
2117
2277
  }) => {
2118
- const containerRef = (0, import_react36.useRef)(null);
2119
- const itemIds = import_react36.Children.toArray(children).filter((child) => {
2120
- if (!import_react36.default.isValidElement(child) || typeof child.props !== "object" || child.props === null || !("value" in child.props)) {
2278
+ const containerRef = (0, import_react39.useRef)(null);
2279
+ const itemIds = import_react39.Children.toArray(children).filter((child) => {
2280
+ if (!import_react39.default.isValidElement(child) || typeof child.props !== "object" || child.props === null || !("value" in child.props)) {
2121
2281
  return false;
2122
2282
  }
2123
2283
  const props = child.props;
2124
2284
  return props.isDisabled !== true;
2125
2285
  }).map((child) => child.props.value);
2126
- const childrenCount = import_react36.Children.count(children);
2286
+ const childrenCount = import_react39.Children.count(children);
2127
2287
  const containerStyle = { gridTemplateColumns: `repeat(${childrenCount}, minmax(0,1fr))` };
2128
2288
  const {
2129
2289
  focusedValue,
@@ -2150,7 +2310,7 @@ var SegmentedControl = ({
2150
2310
  onBlur: handleBlurRovingFocus,
2151
2311
  values: itemIds
2152
2312
  };
2153
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SegmentedControlContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2313
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(SegmentedControlContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2154
2314
  "div",
2155
2315
  {
2156
2316
  ref: containerRef,
@@ -2168,19 +2328,19 @@ SegmentedControl.Item = SegmentedControlItem;
2168
2328
 
2169
2329
  // src/select-sort/select-sort.tsx
2170
2330
  var import_component_theme17 = require("@zenkigen-inc/component-theme");
2171
- var import_clsx26 = __toESM(require("clsx"));
2172
- var import_react37 = require("react");
2331
+ var import_clsx28 = __toESM(require("clsx"));
2332
+ var import_react40 = require("react");
2173
2333
 
2174
2334
  // src/select-sort/select-list.tsx
2175
2335
  var import_component_theme16 = require("@zenkigen-inc/component-theme");
2176
- var import_clsx25 = __toESM(require("clsx"));
2336
+ var import_clsx27 = __toESM(require("clsx"));
2177
2337
 
2178
2338
  // src/select-sort/select-item.tsx
2179
2339
  var import_component_theme15 = require("@zenkigen-inc/component-theme");
2180
- var import_clsx24 = __toESM(require("clsx"));
2181
- var import_jsx_runtime40 = require("react/jsx-runtime");
2340
+ var import_clsx26 = __toESM(require("clsx"));
2341
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2182
2342
  function SelectItem2({ children, isSortKey, onClickItem }) {
2183
- const itemClasses = (0, import_clsx24.default)(
2343
+ const itemClasses = (0, import_clsx26.default)(
2184
2344
  "typography-label14regular flex h-8 w-full items-center px-3 hover:bg-hover02 active:bg-active02",
2185
2345
  import_component_theme15.focusVisible.inset,
2186
2346
  {
@@ -2188,16 +2348,16 @@ function SelectItem2({ children, isSortKey, onClickItem }) {
2188
2348
  "bg-uiBackground01 fill-icon01 text-interactive02": !isSortKey
2189
2349
  }
2190
2350
  );
2191
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("li", { className: "flex w-full items-center", onClick: onClickItem, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("button", { className: itemClasses, type: "button", children: [
2192
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "ml-1 mr-6", children }),
2193
- isSortKey && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Icon, { name: "check", size: "small" }) })
2351
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("li", { className: "flex w-full items-center", onClick: onClickItem, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("button", { className: itemClasses, type: "button", children: [
2352
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-1 mr-6", children }),
2353
+ isSortKey && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { name: "check", size: "small" }) })
2194
2354
  ] }) });
2195
2355
  }
2196
2356
 
2197
2357
  // src/select-sort/select-list.tsx
2198
- var import_jsx_runtime41 = require("react/jsx-runtime");
2358
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2199
2359
  function SelectList2({ size, variant, sortOrder, onClickItem, onClickDeselect }) {
2200
- const listClasses = (0, import_clsx25.default)(
2360
+ const listClasses = (0, import_clsx27.default)(
2201
2361
  "absolute z-dropdown w-max overflow-y-auto rounded bg-uiBackground01 py-2 shadow-floatingShadow",
2202
2362
  {
2203
2363
  "top-7": size === "x-small" || size === "small",
@@ -2206,19 +2366,19 @@ function SelectList2({ size, variant, sortOrder, onClickItem, onClickDeselect })
2206
2366
  "border-solid border border-uiBorder01": variant === "outline"
2207
2367
  }
2208
2368
  );
2209
- const deselectButtonClasses = (0, import_clsx25.default)(
2369
+ const deselectButtonClasses = (0, import_clsx27.default)(
2210
2370
  "typography-label14regular flex h-8 w-full items-center px-3 text-interactive02 hover:bg-hover02 active:bg-active02",
2211
2371
  import_component_theme16.focusVisible.inset
2212
2372
  );
2213
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("ul", { className: listClasses, children: [
2214
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(SelectItem2, { isSortKey: sortOrder === "ascend", onClickItem: () => onClickItem("ascend"), children: "\u6607\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
2215
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(SelectItem2, { isSortKey: sortOrder === "descend", onClickItem: () => onClickItem("descend"), children: "\u964D\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
2216
- sortOrder !== null && onClickDeselect && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("button", { className: deselectButtonClasses, type: "button", onClick: onClickDeselect, children: "\u9078\u629E\u89E3\u9664" }) })
2373
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("ul", { className: listClasses, children: [
2374
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SelectItem2, { isSortKey: sortOrder === "ascend", onClickItem: () => onClickItem("ascend"), children: "\u6607\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
2375
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SelectItem2, { isSortKey: sortOrder === "descend", onClickItem: () => onClickItem("descend"), children: "\u964D\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
2376
+ sortOrder !== null && onClickDeselect && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("button", { className: deselectButtonClasses, type: "button", onClick: onClickDeselect, children: "\u9078\u629E\u89E3\u9664" }) })
2217
2377
  ] });
2218
2378
  }
2219
2379
 
2220
2380
  // src/select-sort/select-sort.tsx
2221
- var import_jsx_runtime42 = require("react/jsx-runtime");
2381
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2222
2382
  function SelectSort({
2223
2383
  size = "medium",
2224
2384
  variant = "outline",
@@ -2230,24 +2390,24 @@ function SelectSort({
2230
2390
  onChange,
2231
2391
  onClickDeselect
2232
2392
  }) {
2233
- const [isOptionListOpen, setIsOptionListOpen] = (0, import_react37.useState)(false);
2234
- const targetRef = (0, import_react37.useRef)(null);
2393
+ const [isOptionListOpen, setIsOptionListOpen] = (0, import_react40.useState)(false);
2394
+ const targetRef = (0, import_react40.useRef)(null);
2235
2395
  useOutsideClick(targetRef, () => setIsOptionListOpen(false));
2236
2396
  const handleClickToggle = () => setIsOptionListOpen((prev) => !prev);
2237
- const handleClickItem = (0, import_react37.useCallback)(
2397
+ const handleClickItem = (0, import_react40.useCallback)(
2238
2398
  (value) => {
2239
2399
  onChange?.(value);
2240
2400
  setIsOptionListOpen(false);
2241
2401
  },
2242
2402
  [onChange]
2243
2403
  );
2244
- const wrapperClasses = (0, import_clsx26.default)("relative flex shrink-0 items-center gap-1 rounded", {
2404
+ const wrapperClasses = (0, import_clsx28.default)("relative flex shrink-0 items-center gap-1 rounded", {
2245
2405
  "h-6": size === "x-small" || size === "small",
2246
2406
  "h-8": size === "medium",
2247
2407
  "h-10": size === "large",
2248
2408
  "cursor-not-allowed": isDisabled
2249
2409
  });
2250
- const buttonClasses = (0, import_clsx26.default)(
2410
+ const buttonClasses = (0, import_clsx28.default)(
2251
2411
  "flex size-full items-center rounded",
2252
2412
  import_component_theme17.buttonColors[variant].hover,
2253
2413
  import_component_theme17.buttonColors[variant].active,
@@ -2261,23 +2421,23 @@ function SelectSort({
2261
2421
  "pointer-events-none": isDisabled
2262
2422
  }
2263
2423
  );
2264
- const labelClasses = (0, import_clsx26.default)("truncate", {
2424
+ const labelClasses = (0, import_clsx28.default)("truncate", {
2265
2425
  "typography-label12regular": size === "x-small",
2266
2426
  "typography-label14regular": size === "small" || size === "medium",
2267
2427
  "typography-label16regular": size === "large",
2268
2428
  "mr-1": size === "x-small",
2269
2429
  "mr-2": size !== "x-small"
2270
2430
  });
2271
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: wrapperClasses, style: { width }, ref: targetRef, children: [
2272
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("button", { className: buttonClasses, type: "button", onClick: handleClickToggle, disabled: isDisabled, children: [
2273
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: labelClasses, children: label }),
2274
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "ml-auto flex items-center", children: isSortKey ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2431
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: wrapperClasses, style: { width }, ref: targetRef, children: [
2432
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("button", { className: buttonClasses, type: "button", onClick: handleClickToggle, disabled: isDisabled, children: [
2433
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: labelClasses, children: label }),
2434
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "ml-auto flex items-center", children: isSortKey ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2275
2435
  Icon,
2276
2436
  {
2277
2437
  name: sortOrder === "ascend" ? "arrow-up" : "arrow-down",
2278
2438
  size: size === "large" ? "medium" : "small"
2279
2439
  }
2280
- ) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2440
+ ) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2281
2441
  Icon,
2282
2442
  {
2283
2443
  name: isOptionListOpen ? "angle-small-up" : "angle-small-down",
@@ -2285,7 +2445,7 @@ function SelectSort({
2285
2445
  }
2286
2446
  ) })
2287
2447
  ] }),
2288
- isOptionListOpen && !isDisabled && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2448
+ isOptionListOpen && !isDisabled && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2289
2449
  SelectList2,
2290
2450
  {
2291
2451
  size,
@@ -2300,9 +2460,9 @@ function SelectSort({
2300
2460
 
2301
2461
  // src/sort-button/sort-button.tsx
2302
2462
  var import_component_theme18 = require("@zenkigen-inc/component-theme");
2303
- var import_clsx27 = __toESM(require("clsx"));
2304
- var import_react38 = require("react");
2305
- var import_jsx_runtime43 = require("react/jsx-runtime");
2463
+ var import_clsx29 = __toESM(require("clsx"));
2464
+ var import_react41 = require("react");
2465
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2306
2466
  function SortButton({
2307
2467
  size = "medium",
2308
2468
  width,
@@ -2313,7 +2473,7 @@ function SortButton({
2313
2473
  "aria-label": ariaLabel,
2314
2474
  ...rest
2315
2475
  }) {
2316
- const handleClick = (0, import_react38.useCallback)(() => {
2476
+ const handleClick = (0, import_react41.useCallback)(() => {
2317
2477
  if (isDisabled || !onClick) return;
2318
2478
  onClick();
2319
2479
  }, [isDisabled, onClick]);
@@ -2322,13 +2482,13 @@ function SortButton({
2322
2482
  if (sortOrder === "descend") return "arrow-down";
2323
2483
  return "angle-small-down";
2324
2484
  };
2325
- const wrapperClasses = (0, import_clsx27.default)("relative flex shrink-0 items-center gap-1 rounded", {
2485
+ const wrapperClasses = (0, import_clsx29.default)("relative flex shrink-0 items-center gap-1 rounded", {
2326
2486
  "h-6": size === "x-small" || size === "small",
2327
2487
  "h-8": size === "medium",
2328
2488
  "h-10": size === "large",
2329
2489
  "cursor-not-allowed": isDisabled
2330
2490
  });
2331
- const buttonClasses = (0, import_clsx27.default)(
2491
+ const buttonClasses = (0, import_clsx29.default)(
2332
2492
  "flex size-full items-center rounded",
2333
2493
  import_component_theme18.buttonColors.text.hover,
2334
2494
  import_component_theme18.buttonColors.text.active,
@@ -2344,14 +2504,14 @@ function SortButton({
2344
2504
  "pointer-events-none": isDisabled
2345
2505
  }
2346
2506
  );
2347
- const labelClasses = (0, import_clsx27.default)("truncate", {
2507
+ const labelClasses = (0, import_clsx29.default)("truncate", {
2348
2508
  "typography-label12regular": size === "x-small",
2349
2509
  "typography-label14regular": size === "small" || size === "medium",
2350
2510
  "typography-label16regular": size === "large",
2351
2511
  "mr-1": size === "x-small",
2352
2512
  "mr-2": size !== "x-small"
2353
2513
  });
2354
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: wrapperClasses, style: { width }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
2514
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: wrapperClasses, style: { width }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
2355
2515
  "button",
2356
2516
  {
2357
2517
  className: buttonClasses,
@@ -2362,78 +2522,85 @@ function SortButton({
2362
2522
  "aria-label": ariaLabel,
2363
2523
  "aria-disabled": isDisabled,
2364
2524
  children: [
2365
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: labelClasses, children: label }),
2366
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Icon, { name: getIconName(), size: size === "large" ? "medium" : "small" }) })
2525
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: labelClasses, children: label }),
2526
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Icon, { name: getIconName(), size: size === "large" ? "medium" : "small" }) })
2367
2527
  ]
2368
2528
  }
2369
2529
  ) });
2370
2530
  }
2371
2531
 
2372
2532
  // src/tab/tab.tsx
2373
- var import_clsx29 = require("clsx");
2374
- var import_react39 = require("react");
2533
+ var import_clsx31 = require("clsx");
2534
+ var import_react42 = require("react");
2375
2535
 
2376
2536
  // src/tab/tab-item.tsx
2377
- var import_clsx28 = require("clsx");
2378
- var import_jsx_runtime44 = require("react/jsx-runtime");
2379
- var TabItem = ({ isSelected = false, ...props }) => {
2380
- const classes = (0, import_clsx28.clsx)(
2381
- "relative z-0 flex justify-center py-2 leading-[24px] before:absolute before:inset-x-0 before:bottom-0 before:h-px hover:text-text01 disabled:pointer-events-none disabled:text-disabled01",
2537
+ var import_clsx30 = require("clsx");
2538
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2539
+ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
2540
+ const classes = (0, import_clsx30.clsx)(
2541
+ "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",
2382
2542
  {
2383
- "typography-label14regular": !isSelected,
2384
- "text-interactive02 hover:before:bg-uiBorder04": !isSelected,
2385
- "typography-label14bold": isSelected,
2543
+ "typography-label14regular text-interactive02": !isSelected,
2544
+ "typography-label14bold text-interactive01": isSelected,
2386
2545
  "before:bg-interactive01 hover:before:bg-interactive01 pointer-events-none": isSelected
2387
2546
  }
2388
2547
  );
2389
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2548
+ const iconWrapperClasses = (0, import_clsx30.clsx)("flex shrink-0 items-center", {
2549
+ "fill-disabled01": isDisabled,
2550
+ "fill-interactive01": !isDisabled && isSelected,
2551
+ "fill-icon01 group-hover:fill-interactive01": !isDisabled && !isSelected
2552
+ });
2553
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2390
2554
  "button",
2391
2555
  {
2392
2556
  type: "button",
2393
2557
  role: "tab",
2394
2558
  "aria-selected": isSelected,
2395
2559
  className: classes,
2396
- disabled: props.isDisabled,
2560
+ disabled: isDisabled,
2397
2561
  onClick: () => props.onClick(props.id),
2398
- children: props.children
2562
+ children: [
2563
+ icon != null && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: iconWrapperClasses, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Icon, { name: icon, size: "small" }) }),
2564
+ props.children
2565
+ ]
2399
2566
  }
2400
2567
  );
2401
2568
  };
2402
2569
 
2403
2570
  // src/tab/tab.tsx
2404
- var import_jsx_runtime45 = require("react/jsx-runtime");
2571
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2405
2572
  function Tab({ children, layout = "auto" }) {
2406
- const childrenCount = import_react39.Children.count(children);
2573
+ const childrenCount = import_react42.Children.count(children);
2407
2574
  const containerStyle = layout === "equal" ? { gridTemplateColumns: `repeat(${childrenCount}, minmax(0,1fr))` } : {};
2408
- const containerClasses = (0, import_clsx29.clsx)(
2575
+ const containerClasses = (0, import_clsx31.clsx)(
2409
2576
  "relative gap-4 px-6 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:bg-uiBorder01",
2410
2577
  {
2411
2578
  flex: layout === "auto",
2412
2579
  grid: layout === "equal"
2413
2580
  }
2414
2581
  );
2415
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { role: "tablist", className: containerClasses, style: containerStyle, children });
2582
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { role: "tablist", className: containerClasses, style: containerStyle, children });
2416
2583
  }
2417
2584
  Tab.Item = TabItem;
2418
2585
 
2419
2586
  // src/table/table-cell.tsx
2420
- var import_clsx30 = __toESM(require("clsx"));
2421
- var import_jsx_runtime46 = require("react/jsx-runtime");
2587
+ var import_clsx32 = __toESM(require("clsx"));
2588
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2422
2589
  function TableCell({ children, className, isHeader = false }) {
2423
- const classes = (0, import_clsx30.default)("border-b border-uiBorder01", { "sticky top-0 z-10 bg-white": isHeader }, className);
2424
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: classes, children });
2590
+ const classes = (0, import_clsx32.default)("border-b border-uiBorder01", { "sticky top-0 z-10 bg-white": isHeader }, className);
2591
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: classes, children });
2425
2592
  }
2426
2593
 
2427
2594
  // src/table/table-row.tsx
2428
- var import_clsx31 = __toESM(require("clsx"));
2429
- var import_jsx_runtime47 = require("react/jsx-runtime");
2595
+ var import_clsx33 = __toESM(require("clsx"));
2596
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2430
2597
  function TableRow({ children, isHoverBackgroundVisible = false }) {
2431
- const rowClasses = (0, import_clsx31.default)("contents", isHoverBackgroundVisible && "[&:hover>div]:bg-hoverUi02");
2432
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: rowClasses, children });
2598
+ const rowClasses = (0, import_clsx33.default)("contents", isHoverBackgroundVisible && "[&:hover>div]:bg-hoverUi02");
2599
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: rowClasses, children });
2433
2600
  }
2434
2601
 
2435
2602
  // src/table/table.tsx
2436
- var import_jsx_runtime48 = require("react/jsx-runtime");
2603
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2437
2604
  function Table({
2438
2605
  width,
2439
2606
  templateRows,
@@ -2442,7 +2609,7 @@ function Table({
2442
2609
  autoRows,
2443
2610
  children
2444
2611
  }) {
2445
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
2612
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2446
2613
  "div",
2447
2614
  {
2448
2615
  className: "grid",
@@ -2462,22 +2629,22 @@ Table.Cell = TableCell;
2462
2629
 
2463
2630
  // src/tag/tag.tsx
2464
2631
  var import_component_theme20 = require("@zenkigen-inc/component-theme");
2465
- var import_clsx33 = __toESM(require("clsx"));
2632
+ var import_clsx35 = __toESM(require("clsx"));
2466
2633
 
2467
2634
  // src/tag/delete-icon.tsx
2468
2635
  var import_component_theme19 = require("@zenkigen-inc/component-theme");
2469
- var import_clsx32 = __toESM(require("clsx"));
2470
- var import_jsx_runtime49 = require("react/jsx-runtime");
2636
+ var import_clsx34 = __toESM(require("clsx"));
2637
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2471
2638
  var DeleteIcon = ({ color, variant, onClick }) => {
2472
- const deleteButtonClasses = (0, import_clsx32.default)(
2639
+ const deleteButtonClasses = (0, import_clsx34.default)(
2473
2640
  "group ml-2 size-[14px] rounded-full p-0.5 hover:cursor-pointer hover:bg-iconOnColor focus-visible:bg-iconOnColor",
2474
2641
  import_component_theme19.focusVisible.normal
2475
2642
  );
2476
- const deletePathClasses = (0, import_clsx32.default)({
2643
+ const deletePathClasses = (0, import_clsx34.default)({
2477
2644
  "fill-interactive02": color === "gray" || variant === "light",
2478
2645
  "group-hover:fill-interactive02 group-focus-visible:fill-interactive02 fill-iconOnColor": color !== "gray"
2479
2646
  });
2480
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("button", { type: "button", className: deleteButtonClasses, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2647
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("button", { type: "button", className: deleteButtonClasses, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2481
2648
  "path",
2482
2649
  {
2483
2650
  fillRule: "evenodd",
@@ -2489,9 +2656,9 @@ var DeleteIcon = ({ color, variant, onClick }) => {
2489
2656
  };
2490
2657
 
2491
2658
  // src/tag/tag.tsx
2492
- var import_jsx_runtime50 = require("react/jsx-runtime");
2659
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2493
2660
  function Tag({ id, children, color, variant = "normal", size = "medium", isEditable, onDelete }) {
2494
- const wrapperClasses = (0, import_clsx33.default)("flex", "items-center", "justify-center", {
2661
+ const wrapperClasses = (0, import_clsx35.default)("flex", "items-center", "justify-center", {
2495
2662
  [import_component_theme20.tagColors[color]]: variant === "normal",
2496
2663
  [import_component_theme20.tagLightColors[color]]: variant === "light",
2497
2664
  "h-[14px] typography-label11regular": !isEditable && size === "x-small",
@@ -2503,65 +2670,177 @@ function Tag({ id, children, color, variant = "normal", size = "medium", isEdita
2503
2670
  "py-0.5 px-1": !isEditable,
2504
2671
  "py-1 px-2": isEditable
2505
2672
  });
2506
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: wrapperClasses, children: [
2673
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: wrapperClasses, children: [
2507
2674
  children,
2508
- isEditable ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DeleteIcon, { onClick: () => onDelete(id), color, variant }) : null
2675
+ isEditable ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DeleteIcon, { onClick: () => onDelete(id), color, variant }) : null
2509
2676
  ] });
2510
2677
  }
2511
2678
 
2512
2679
  // src/text-area/text-area.tsx
2513
- var import_clsx34 = require("clsx");
2514
- var import_react40 = require("react");
2515
- var import_jsx_runtime51 = require("react/jsx-runtime");
2516
- var TextArea = (0, import_react40.forwardRef)(
2517
- ({
2518
- size = "medium",
2519
- isResizable = false,
2520
- autoHeight = false,
2521
- maxHeight,
2522
- isError = false,
2523
- disabled = false,
2524
- height,
2525
- ...props
2526
- }, ref) => {
2527
- const classes = (0, import_clsx34.clsx)(
2528
- "w-full rounded border outline-0 placeholder:text-textPlaceholder disabled:text-textPlaceholder",
2529
- {
2530
- "border-supportError": isError && !disabled,
2531
- "hover:border-hoverInput": !disabled && !isError,
2532
- "border-uiBorder02 hover:focus-within:border-activeInput focus-within:border-activeInput text-text01": !isError,
2533
- "bg-disabled02 border-disabled01": disabled,
2534
- "typography-body14regular px-2 pt-1.5 pb-2": size === "medium",
2535
- "text-4 leading-normal px-3.5 py-2.5": size === "large",
2536
- "field-sizing-content": autoHeight,
2537
- "text-supportError": isError,
2538
- "resize-none": !isResizable
2539
- }
2540
- );
2541
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2542
- "textarea",
2543
- {
2544
- ref,
2545
- className: classes,
2546
- disabled,
2547
- ...props,
2548
- style: {
2549
- ...{ maxHeight },
2550
- // 自動高さではない場合で、height 指定がある場合は設定する
2551
- ...!autoHeight && height !== null ? { height } : {},
2552
- // 自動高さの場合で、height が指定されている場合は、height を minHeight に設定する
2553
- ...autoHeight && height !== null ? { minHeight: height } : {}
2554
- }
2555
- }
2556
- ) });
2680
+ var import_clsx38 = require("clsx");
2681
+ var import_react46 = require("react");
2682
+
2683
+ // src/text-area/text-area-context.tsx
2684
+ var import_react43 = require("react");
2685
+ var TextAreaCompoundContext = (0, import_react43.createContext)(null);
2686
+ var useTextAreaCompoundContext = (componentName) => {
2687
+ const context = (0, import_react43.useContext)(TextAreaCompoundContext);
2688
+ if (context == null) {
2689
+ 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`);
2690
+ }
2691
+ return context;
2692
+ };
2693
+
2694
+ // src/text-area/text-area-error-message.tsx
2695
+ var import_clsx36 = require("clsx");
2696
+ var import_react44 = require("react");
2697
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2698
+ var TextAreaErrorMessage = (0, import_react44.forwardRef)(
2699
+ ({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
2700
+ const { textAreaProps } = useTextAreaCompoundContext("TextArea.ErrorMessage");
2701
+ const typographyClass = textAreaProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
2702
+ const shouldRender = textAreaProps.isError === true;
2703
+ if (!shouldRender) {
2704
+ return null;
2705
+ }
2706
+ const errorMessageClassName = (0, import_clsx36.clsx)(typographyClass, "text-supportError");
2707
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
2557
2708
  }
2558
2709
  );
2559
- TextArea.displayName = "TextArea";
2710
+ TextAreaErrorMessage.displayName = "TextArea.ErrorMessage";
2711
+
2712
+ // src/text-area/text-area-helper-message.tsx
2713
+ var import_clsx37 = require("clsx");
2714
+ var import_react45 = require("react");
2715
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2716
+ var TextAreaHelperMessage = (0, import_react45.forwardRef)((props, ref) => {
2717
+ const { textAreaProps } = useTextAreaCompoundContext("TextArea.HelperMessage");
2718
+ const typographyClass = textAreaProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
2719
+ const helperMessageClassName = (0, import_clsx37.clsx)(typographyClass, "text-text02");
2720
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { ref, className: helperMessageClassName, ...props });
2721
+ });
2722
+ TextAreaHelperMessage.displayName = "TextArea.HelperMessage";
2723
+
2724
+ // src/text-area/text-area.tsx
2725
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2726
+ function TextAreaInner({
2727
+ size = "medium",
2728
+ isResizable = false,
2729
+ autoHeight = false,
2730
+ maxHeight,
2731
+ isError = false,
2732
+ disabled = false,
2733
+ height,
2734
+ children,
2735
+ ...props
2736
+ }, ref) {
2737
+ const autoGeneratedId = (0, import_react46.useId)();
2738
+ const textAreaPropsForContext = (0, import_react46.useMemo)(
2739
+ () => ({
2740
+ size,
2741
+ isError
2742
+ }),
2743
+ [size, isError]
2744
+ );
2745
+ const contextValue = (0, import_react46.useMemo)(
2746
+ () => ({
2747
+ textAreaProps: textAreaPropsForContext,
2748
+ forwardedRef: ref
2749
+ }),
2750
+ [textAreaPropsForContext, ref]
2751
+ );
2752
+ const helperMessageIds = [];
2753
+ const errorIds = [];
2754
+ const describedByBaseId = props.id ?? autoGeneratedId;
2755
+ const enhancedChildren = import_react46.Children.map(children, (child) => {
2756
+ if (!(0, import_react46.isValidElement)(child)) {
2757
+ return child;
2758
+ }
2759
+ if (child.type === TextAreaHelperMessage) {
2760
+ const helperChild = child;
2761
+ const assignedId = helperChild.props.id ?? `${describedByBaseId}-helper-${helperMessageIds.length + 1}`;
2762
+ helperMessageIds.push(assignedId);
2763
+ return (0, import_react46.cloneElement)(helperChild, { id: assignedId });
2764
+ }
2765
+ if (child.type === TextAreaErrorMessage && isError) {
2766
+ const errorChild = child;
2767
+ const assignedId = errorChild.props.id ?? `${describedByBaseId}-error-${errorIds.length + 1}`;
2768
+ errorIds.push(assignedId);
2769
+ return (0, import_react46.cloneElement)(errorChild, { id: assignedId });
2770
+ }
2771
+ return child;
2772
+ });
2773
+ const describedByFromProps = typeof props["aria-describedby"] === "string" ? props["aria-describedby"] : null;
2774
+ const describedByList = [describedByFromProps, ...helperMessageIds, ...errorIds].filter(
2775
+ (id) => typeof id === "string" && id.trim().length > 0
2776
+ );
2777
+ const describedByProps = describedByList.length > 0 ? {
2778
+ "aria-describedby": describedByList.join(" ")
2779
+ } : {};
2780
+ const shouldMarkInvalid = isError === true || errorIds.length > 0;
2781
+ const ariaInvalidFromProps = props["aria-invalid"];
2782
+ const ariaInvalidValue = ariaInvalidFromProps != null ? ariaInvalidFromProps : shouldMarkInvalid ? true : null;
2783
+ const ariaInvalidProps = ariaInvalidValue == null ? {} : { "aria-invalid": ariaInvalidValue };
2784
+ const mergedTextAreaProps = {
2785
+ ...props,
2786
+ ...describedByProps,
2787
+ ...ariaInvalidProps
2788
+ };
2789
+ const classes = (0, import_clsx38.clsx)(
2790
+ "w-full rounded border outline-0 placeholder:text-textPlaceholder disabled:text-textPlaceholder",
2791
+ {
2792
+ "border-supportError": isError && !disabled,
2793
+ "hover:border-hoverInput": !disabled && !isError,
2794
+ "border-uiBorder02 hover:focus-within:border-activeInput focus-within:border-activeInput text-text01": !isError,
2795
+ "bg-disabled02 border-disabled01": disabled,
2796
+ "typography-body14regular px-2 pt-2 pb-2": size === "medium",
2797
+ "text-4 leading-normal px-3.5 py-2.5": size === "large",
2798
+ "field-sizing-content": autoHeight,
2799
+ "text-supportError": isError,
2800
+ "resize-none": !isResizable
2801
+ }
2802
+ );
2803
+ const textAreaElement = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2804
+ "textarea",
2805
+ {
2806
+ ref,
2807
+ className: classes,
2808
+ ...mergedTextAreaProps,
2809
+ disabled,
2810
+ style: {
2811
+ ...{ maxHeight },
2812
+ // 自動高さではない場合で、height 指定がある場合は設定する
2813
+ ...!autoHeight && height !== null ? { height } : {},
2814
+ // 自動高さの場合で、height が指定されている場合は、height を minHeight に設定する
2815
+ ...autoHeight && height !== null ? { minHeight: height } : {}
2816
+ }
2817
+ }
2818
+ ) });
2819
+ const stackedChildren = enhancedChildren == null ? [] : import_react46.Children.toArray(enhancedChildren);
2820
+ const hasMessageChildren = stackedChildren.length > 0;
2821
+ if (!hasMessageChildren) {
2822
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TextAreaCompoundContext.Provider, { value: contextValue, children: textAreaElement });
2823
+ }
2824
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TextAreaCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-2", children: [
2825
+ textAreaElement,
2826
+ stackedChildren
2827
+ ] }) });
2828
+ }
2829
+ var attachStatics2 = (component) => {
2830
+ component.HelperMessage = TextAreaHelperMessage;
2831
+ component.ErrorMessage = TextAreaErrorMessage;
2832
+ component.displayName = "TextArea";
2833
+ return component;
2834
+ };
2835
+ var TextAreaBase = (0, import_react46.forwardRef)(function TextAreaBase2(props, ref) {
2836
+ return TextAreaInner(props, ref);
2837
+ });
2838
+ var TextArea = attachStatics2(TextAreaBase);
2560
2839
 
2561
2840
  // src/toast/toast.tsx
2562
- var import_clsx35 = __toESM(require("clsx"));
2563
- var import_react41 = require("react");
2564
- var import_jsx_runtime52 = require("react/jsx-runtime");
2841
+ var import_clsx39 = __toESM(require("clsx"));
2842
+ var import_react47 = require("react");
2843
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2565
2844
  var CLOSE_TIME_MSEC = 5e3;
2566
2845
  function Toast({
2567
2846
  state = "information",
@@ -2571,8 +2850,8 @@ function Toast({
2571
2850
  children,
2572
2851
  onClickClose
2573
2852
  }) {
2574
- const [isRemoving, setIsRemoving] = (0, import_react41.useState)(false);
2575
- const handleClose = (0, import_react41.useCallback)(() => {
2853
+ const [isRemoving, setIsRemoving] = (0, import_react47.useState)(false);
2854
+ const handleClose = (0, import_react47.useCallback)(() => {
2576
2855
  if (isAnimation) {
2577
2856
  setIsRemoving(true);
2578
2857
  } else {
@@ -2580,17 +2859,17 @@ function Toast({
2580
2859
  }
2581
2860
  }, [isAnimation, onClickClose]);
2582
2861
  const handleAnimationEnd = (e) => window.getComputedStyle(e.currentTarget).opacity === "0" && onClickClose();
2583
- const wrapperClasses = (0, import_clsx35.default)("pointer-events-auto flex items-start gap-1 bg-white p-4 shadow-floatingShadow", {
2862
+ const wrapperClasses = (0, import_clsx39.default)("pointer-events-auto flex items-start gap-1 bg-white p-4 shadow-floatingShadow", {
2584
2863
  ["animate-toast-in"]: isAnimation && !isRemoving,
2585
2864
  ["animate-toast-out opacity-0"]: isAnimation && isRemoving
2586
2865
  });
2587
- const iconClasses = (0, import_clsx35.default)("flex items-center", {
2866
+ const iconClasses = (0, import_clsx39.default)("flex items-center", {
2588
2867
  "fill-supportSuccess": state === "success",
2589
2868
  "fill-supportError": state === "error",
2590
2869
  "fill-supportWarning": state === "warning",
2591
2870
  "fill-supportInfo": state === "information"
2592
2871
  });
2593
- const textClasses = (0, import_clsx35.default)("typography-body13regular flex-1 pt-[3px]", {
2872
+ const textClasses = (0, import_clsx39.default)("typography-body13regular flex-1 pt-[3px]", {
2594
2873
  "text-supportError": state === "error",
2595
2874
  "text-text01": state === "success" || state === "warning" || state === "information"
2596
2875
  });
@@ -2600,7 +2879,7 @@ function Toast({
2600
2879
  warning: "warning",
2601
2880
  information: "information-filled"
2602
2881
  };
2603
- (0, import_react41.useEffect)(() => {
2882
+ (0, import_react47.useEffect)(() => {
2604
2883
  const timer = window.setTimeout(() => {
2605
2884
  if (isAutoClose) {
2606
2885
  setIsRemoving(true);
@@ -2608,45 +2887,45 @@ function Toast({
2608
2887
  }, CLOSE_TIME_MSEC);
2609
2888
  return () => window.clearTimeout(timer);
2610
2889
  }, [isAutoClose]);
2611
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: wrapperClasses, style: { width }, onAnimationEnd: handleAnimationEnd, children: [
2612
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: iconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icon, { name: iconName[state] }) }),
2613
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: textClasses, children }),
2614
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(IconButton, { icon: "close", size: "medium", variant: "text", onClick: handleClose, isNoPadding: true })
2890
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: wrapperClasses, style: { width }, onAnimationEnd: handleAnimationEnd, children: [
2891
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: iconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: iconName[state] }) }),
2892
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: textClasses, children }),
2893
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(IconButton, { icon: "close", size: "medium", variant: "text", onClick: handleClose, isNoPadding: true })
2615
2894
  ] });
2616
2895
  }
2617
2896
 
2618
2897
  // src/toast/toast-provider.tsx
2619
- var import_react42 = require("react");
2898
+ var import_react48 = require("react");
2620
2899
  var import_react_dom3 = require("react-dom");
2621
- var import_jsx_runtime53 = require("react/jsx-runtime");
2622
- var ToastContext = (0, import_react42.createContext)({});
2900
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2901
+ var ToastContext = (0, import_react48.createContext)({});
2623
2902
  var ToastProvider = ({ children }) => {
2624
- const [isClientRender, setIsClientRender] = (0, import_react42.useState)(false);
2625
- const [toasts, setToasts] = (0, import_react42.useState)([]);
2626
- const addToast = (0, import_react42.useCallback)(({ message, state }) => {
2903
+ const [isClientRender, setIsClientRender] = (0, import_react48.useState)(false);
2904
+ const [toasts, setToasts] = (0, import_react48.useState)([]);
2905
+ const addToast = (0, import_react48.useCallback)(({ message, state }) => {
2627
2906
  setToasts((prev) => [...prev, { id: Math.trunc(Math.random() * 1e5), message, state }]);
2628
2907
  }, []);
2629
- const removeToast = (0, import_react42.useCallback)((id) => {
2908
+ const removeToast = (0, import_react48.useCallback)((id) => {
2630
2909
  setToasts((prev) => prev.filter((snackbar) => snackbar.id !== id));
2631
2910
  }, []);
2632
- (0, import_react42.useEffect)(() => {
2911
+ (0, import_react48.useEffect)(() => {
2633
2912
  setIsClientRender(true);
2634
2913
  }, []);
2635
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(ToastContext.Provider, { value: { addToast, removeToast }, children: [
2914
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(ToastContext.Provider, { value: { addToast, removeToast }, children: [
2636
2915
  children,
2637
2916
  isClientRender && (0, import_react_dom3.createPortal)(
2638
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("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__ */ (0, import_jsx_runtime53.jsx)(Toast, { state, isAutoClose: true, isAnimation: true, onClickClose: () => removeToast(id), width: 475, children: message }, id)) }),
2917
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("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__ */ (0, import_jsx_runtime57.jsx)(Toast, { state, isAutoClose: true, isAnimation: true, onClickClose: () => removeToast(id), width: 475, children: message }, id)) }),
2639
2918
  document.body
2640
2919
  )
2641
2920
  ] });
2642
2921
  };
2643
2922
  var useToast = () => {
2644
- return (0, import_react42.useContext)(ToastContext);
2923
+ return (0, import_react48.useContext)(ToastContext);
2645
2924
  };
2646
2925
 
2647
2926
  // src/toggle/toggle.tsx
2648
- var import_clsx36 = __toESM(require("clsx"));
2649
- var import_jsx_runtime54 = require("react/jsx-runtime");
2927
+ var import_clsx40 = __toESM(require("clsx"));
2928
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2650
2929
  function Toggle({
2651
2930
  id,
2652
2931
  size = "medium",
@@ -2656,7 +2935,7 @@ function Toggle({
2656
2935
  labelPosition = "right",
2657
2936
  isDisabled = false
2658
2937
  }) {
2659
- const baseClasses = (0, import_clsx36.default)("relative flex items-center rounded-full", {
2938
+ const baseClasses = (0, import_clsx40.default)("relative flex items-center rounded-full", {
2660
2939
  "bg-disabledOn": isDisabled && isChecked,
2661
2940
  "bg-disabled01": isDisabled && !isChecked,
2662
2941
  "bg-interactive01 peer-hover:bg-hover01": !isDisabled && isChecked,
@@ -2664,16 +2943,16 @@ function Toggle({
2664
2943
  "w-8 h-4 px-[3px]": size === "small",
2665
2944
  "w-12 h-6 px-1": size === "medium" || size === "large"
2666
2945
  });
2667
- const inputClasses = (0, import_clsx36.default)(
2946
+ const inputClasses = (0, import_clsx40.default)(
2668
2947
  "peer absolute inset-0 z-[1] opacity-0",
2669
2948
  isDisabled ? "cursor-not-allowed" : "cursor-pointer"
2670
2949
  );
2671
- const indicatorClasses = (0, import_clsx36.default)("rounded-full bg-iconOnColor", {
2950
+ const indicatorClasses = (0, import_clsx40.default)("rounded-full bg-iconOnColor", {
2672
2951
  "w-2.5 h-2.5": size === "small",
2673
2952
  "w-4 h-4": size === "medium" || size === "large",
2674
2953
  "ml-auto": isChecked
2675
2954
  });
2676
- const labelClasses = (0, import_clsx36.default)("break-all", {
2955
+ const labelClasses = (0, import_clsx40.default)("break-all", {
2677
2956
  "mr-2": labelPosition === "left",
2678
2957
  "ml-2": labelPosition === "right",
2679
2958
  "typography-label14regular": size === "small" || size === "medium",
@@ -2681,9 +2960,9 @@ function Toggle({
2681
2960
  "pointer-events-none cursor-not-allowed text-disabled01": isDisabled,
2682
2961
  "cursor-pointer text-text01": !isDisabled
2683
2962
  });
2684
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "relative flex flex-[0_0_auto] items-center", children: [
2685
- label != null && labelPosition === "left" && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { htmlFor: id, className: labelClasses, children: label }),
2686
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2963
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "relative flex flex-[0_0_auto] items-center", children: [
2964
+ label != null && labelPosition === "left" && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { htmlFor: id, className: labelClasses, children: label }),
2965
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2687
2966
  "input",
2688
2967
  {
2689
2968
  className: inputClasses,
@@ -2695,23 +2974,23 @@ function Toggle({
2695
2974
  disabled: isDisabled
2696
2975
  }
2697
2976
  ),
2698
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: baseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: indicatorClasses }) }),
2699
- label != null && labelPosition === "right" && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { htmlFor: id, className: labelClasses, children: label })
2977
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: baseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: indicatorClasses }) }),
2978
+ label != null && labelPosition === "right" && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { htmlFor: id, className: labelClasses, children: label })
2700
2979
  ] });
2701
2980
  }
2702
2981
 
2703
2982
  // src/tooltip/tooltip.tsx
2704
- var import_react44 = require("react");
2983
+ var import_react50 = require("react");
2705
2984
  var import_react_dom4 = require("react-dom");
2706
2985
 
2707
2986
  // src/tooltip/tooltip-content.tsx
2708
- var import_clsx38 = __toESM(require("clsx"));
2987
+ var import_clsx42 = __toESM(require("clsx"));
2709
2988
 
2710
2989
  // src/tooltip/tail-icon.tsx
2711
- var import_clsx37 = __toESM(require("clsx"));
2712
- var import_jsx_runtime55 = require("react/jsx-runtime");
2990
+ var import_clsx41 = __toESM(require("clsx"));
2991
+ var import_jsx_runtime59 = require("react/jsx-runtime");
2713
2992
  var TailIcon = (props) => {
2714
- const tailClasses = (0, import_clsx37.default)("absolute fill-uiBackgroundTooltip", {
2993
+ const tailClasses = (0, import_clsx41.default)("absolute fill-uiBackgroundTooltip", {
2715
2994
  "rotate-180": props.verticalPosition === "bottom",
2716
2995
  "rotate-0": props.verticalPosition !== "bottom",
2717
2996
  "-top-1": props.verticalPosition === "bottom" && props.size === "small",
@@ -2726,9 +3005,9 @@ var TailIcon = (props) => {
2726
3005
  "left-1/2 -translate-x-2": props.horizontalAlign === "center" && props.size !== "small"
2727
3006
  });
2728
3007
  if (props.size === "small") {
2729
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("svg", { className: tailClasses, width: "8", height: "4", viewBox: "0 0 8 4", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { d: "M4 4L0 0H8L4 4Z" }) });
3008
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("svg", { className: tailClasses, width: "8", height: "4", viewBox: "0 0 8 4", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { d: "M4 4L0 0H8L4 4Z" }) });
2730
3009
  } else {
2731
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3010
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2732
3011
  "svg",
2733
3012
  {
2734
3013
  className: tailClasses,
@@ -2737,14 +3016,14 @@ var TailIcon = (props) => {
2737
3016
  viewBox: "0 0 14 8",
2738
3017
  fill: "none",
2739
3018
  xmlns: "http://www.w3.org/2000/svg",
2740
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { d: "M7 8L0 0H14L7 8Z" })
3019
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { d: "M7 8L0 0H14L7 8Z" })
2741
3020
  }
2742
3021
  );
2743
3022
  }
2744
3023
  };
2745
3024
 
2746
3025
  // src/tooltip/tooltip-content.tsx
2747
- var import_jsx_runtime56 = require("react/jsx-runtime");
3026
+ var import_jsx_runtime60 = require("react/jsx-runtime");
2748
3027
  var TooltipContent = ({
2749
3028
  content,
2750
3029
  horizontalAlign,
@@ -2754,7 +3033,7 @@ var TooltipContent = ({
2754
3033
  maxWidth,
2755
3034
  isPortal = false
2756
3035
  }) => {
2757
- const tooltipWrapperClasses = (0, import_clsx38.default)("absolute z-tooltip m-auto flex", {
3036
+ const tooltipWrapperClasses = (0, import_clsx42.default)("absolute z-tooltip m-auto flex", {
2758
3037
  "top-0": !isPortal && verticalPosition === "top",
2759
3038
  "bottom-0": !isPortal && verticalPosition === "bottom",
2760
3039
  "justify-start": horizontalAlign === "left",
@@ -2763,7 +3042,7 @@ var TooltipContent = ({
2763
3042
  "w-[24px]": size === "small",
2764
3043
  "w-[46px]": size !== "small"
2765
3044
  });
2766
- const tooltipBodyClasses = (0, import_clsx38.default)(
3045
+ const tooltipBodyClasses = (0, import_clsx42.default)(
2767
3046
  "absolute z-tooltip inline-block w-max rounded bg-uiBackgroundTooltip text-textOnColor",
2768
3047
  {
2769
3048
  "typography-body12regular": size === "small",
@@ -2780,7 +3059,7 @@ var TooltipContent = ({
2780
3059
  transform: `translate(${tooltipPosition.translateX}, ${tooltipPosition.translateY})`,
2781
3060
  ...tooltipPosition
2782
3061
  } : {};
2783
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: tooltipWrapperClasses, style: tooltipWrapperStyle, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
3062
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: tooltipWrapperClasses, style: tooltipWrapperStyle, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
2784
3063
  "div",
2785
3064
  {
2786
3065
  className: tooltipBodyClasses,
@@ -2789,16 +3068,16 @@ var TooltipContent = ({
2789
3068
  },
2790
3069
  children: [
2791
3070
  content,
2792
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TailIcon, { size, verticalPosition, horizontalAlign })
3071
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(TailIcon, { size, verticalPosition, horizontalAlign })
2793
3072
  ]
2794
3073
  }
2795
3074
  ) });
2796
3075
  };
2797
3076
 
2798
3077
  // src/tooltip/tooltip-hook.ts
2799
- var import_react43 = require("react");
3078
+ var import_react49 = require("react");
2800
3079
  var useTooltip = () => {
2801
- const calculatePosition = (0, import_react43.useCallback)(
3080
+ const calculatePosition = (0, import_react49.useCallback)(
2802
3081
  (args) => {
2803
3082
  const result = {
2804
3083
  maxWidth: "none",
@@ -2850,7 +3129,7 @@ var useTooltip = () => {
2850
3129
  };
2851
3130
 
2852
3131
  // src/tooltip/tooltip.tsx
2853
- var import_jsx_runtime57 = require("react/jsx-runtime");
3132
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2854
3133
  function Tooltip({
2855
3134
  children,
2856
3135
  content,
@@ -2862,8 +3141,8 @@ function Tooltip({
2862
3141
  portalTarget
2863
3142
  }) {
2864
3143
  const { calculatePosition } = useTooltip();
2865
- const [isVisible, setIsVisible] = (0, import_react44.useState)(false);
2866
- const [tooltipPosition, setTooltipPosition] = (0, import_react44.useState)({
3144
+ const [isVisible, setIsVisible] = (0, import_react50.useState)(false);
3145
+ const [tooltipPosition, setTooltipPosition] = (0, import_react50.useState)({
2867
3146
  maxWidth: "none",
2868
3147
  width: "auto",
2869
3148
  left: "0px",
@@ -2872,23 +3151,23 @@ function Tooltip({
2872
3151
  translateX: "0",
2873
3152
  translateY: "0"
2874
3153
  });
2875
- const targetRef = (0, import_react44.useRef)(null);
2876
- const handleMouseOverWrapper = (0, import_react44.useCallback)(() => {
3154
+ const targetRef = (0, import_react50.useRef)(null);
3155
+ const handleMouseOverWrapper = (0, import_react50.useCallback)(() => {
2877
3156
  if (isDisabledHover) {
2878
3157
  return;
2879
3158
  }
2880
3159
  setIsVisible(true);
2881
3160
  }, [isDisabledHover]);
2882
- const handleMouseOutWrapper = (0, import_react44.useCallback)(() => {
3161
+ const handleMouseOutWrapper = (0, import_react50.useCallback)(() => {
2883
3162
  setIsVisible(false);
2884
3163
  }, []);
2885
- (0, import_react44.useEffect)(() => {
3164
+ (0, import_react50.useEffect)(() => {
2886
3165
  if (targetRef.current === null) return;
2887
3166
  const dimensions = targetRef.current?.getBoundingClientRect();
2888
3167
  const position = calculatePosition({ dimensions, maxWidth, verticalPosition, horizontalAlign, tooltipSize: size });
2889
3168
  setTooltipPosition(position);
2890
3169
  }, [calculatePosition, horizontalAlign, maxWidth, size, verticalPosition]);
2891
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
3170
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
2892
3171
  "div",
2893
3172
  {
2894
3173
  ref: targetRef,
@@ -2897,7 +3176,7 @@ function Tooltip({
2897
3176
  onMouseLeave: handleMouseOutWrapper,
2898
3177
  children: [
2899
3178
  children,
2900
- isVisible && (portalTarget == null ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3179
+ isVisible && (portalTarget == null ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2901
3180
  TooltipContent,
2902
3181
  {
2903
3182
  content,
@@ -2908,7 +3187,7 @@ function Tooltip({
2908
3187
  tooltipPosition
2909
3188
  }
2910
3189
  ) : (0, import_react_dom4.createPortal)(
2911
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3190
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2912
3191
  TooltipContent,
2913
3192
  {
2914
3193
  isPortal: true,