@hivcd-printshop/design-system 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1551,11 +1551,56 @@ var Tag = ({
1551
1551
  );
1552
1552
  };
1553
1553
 
1554
+ // src/components/TabSwitch/TabSwitch.tsx
1555
+ import { forwardRef as forwardRef3 } from "react";
1556
+ import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
1557
+ var itemKey2 = (item) => item.value ?? item.label;
1558
+ var TabSwitch = forwardRef3(function TabSwitch2({ items, selected, defaultSelected, onSelect, className }, ref) {
1559
+ const [selectedValue, setSelectedValue] = useControllableState(
1560
+ selected,
1561
+ defaultSelected ?? itemKey2(items[0])
1562
+ );
1563
+ return /* @__PURE__ */ jsx36("div", { ref, className: cn("w-full border-b border-gray02", className), children: /* @__PURE__ */ jsx36("div", { className: "flex items-stretch", children: items.map((item) => {
1564
+ const key = itemKey2(item);
1565
+ const isSelected = key === selectedValue;
1566
+ return /* @__PURE__ */ jsxs20("div", { className: "flex items-stretch", children: [
1567
+ /* @__PURE__ */ jsxs20(
1568
+ "button",
1569
+ {
1570
+ type: "button",
1571
+ onClick: () => {
1572
+ setSelectedValue(key);
1573
+ onSelect?.(key);
1574
+ },
1575
+ className: cn(
1576
+ "flex flex-col items-center pt-2.5 cursor-pointer",
1577
+ isSelected ? "gap-2" : "pb-2.5"
1578
+ ),
1579
+ children: [
1580
+ /* @__PURE__ */ jsx36(
1581
+ "span",
1582
+ {
1583
+ className: cn(
1584
+ "px-4 whitespace-nowrap",
1585
+ isSelected ? "text-body1-medium text-strong" : "text-body1-regular text-quaternary"
1586
+ ),
1587
+ children: item.label
1588
+ }
1589
+ ),
1590
+ isSelected && /* @__PURE__ */ jsx36("span", { className: "h-0.5 w-full bg-black" })
1591
+ ]
1592
+ }
1593
+ ),
1594
+ /* @__PURE__ */ jsx36("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1595
+ ] }, key);
1596
+ }) }) });
1597
+ });
1598
+
1554
1599
  // src/components/Timetable/Timetable.tsx
1555
- import { forwardRef as forwardRef4 } from "react";
1600
+ import { forwardRef as forwardRef5 } from "react";
1556
1601
 
1557
1602
  // src/components/Timetable/WeekNavigation.tsx
1558
- import { forwardRef as forwardRef3 } from "react";
1603
+ import { forwardRef as forwardRef4 } from "react";
1559
1604
 
1560
1605
  // src/components/Timetable/dateUtils.ts
1561
1606
  var KOREAN_WEEKDAYS = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
@@ -1588,18 +1633,18 @@ var formatWeekRange = (weekStart) => {
1588
1633
  };
1589
1634
 
1590
1635
  // src/components/Timetable/WeekNavigation.tsx
1591
- import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
1636
+ import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
1592
1637
  var weekLabel = {
1593
1638
  thisWeek: "\uC774\uBC88 \uC8FC",
1594
1639
  nextWeek: "\uB2E4\uC74C \uC8FC",
1595
1640
  twoWeeksLater: "\uB2E4\uB2E4\uC74C \uC8FC"
1596
1641
  };
1597
- var WeekNavigation = forwardRef3(
1642
+ var WeekNavigation = forwardRef4(
1598
1643
  function WeekNavigation2({ date, week, label, canPrev, canNext, onPrevWeek, onNextWeek, className }, ref) {
1599
1644
  const showPrev = canPrev ?? (week ? week !== "thisWeek" : true);
1600
1645
  const showNext = canNext ?? (week ? week !== "twoWeeksLater" : true);
1601
1646
  const text = label ?? (week ? `${weekLabel[week]} (${formatWeekRange(date)})` : formatWeekRange(date));
1602
- return /* @__PURE__ */ jsxs20(
1647
+ return /* @__PURE__ */ jsxs21(
1603
1648
  "div",
1604
1649
  {
1605
1650
  ref,
@@ -1611,22 +1656,22 @@ var WeekNavigation = forwardRef3(
1611
1656
  className
1612
1657
  ),
1613
1658
  children: [
1614
- /* @__PURE__ */ jsx36(ArrowButton, { direction: "left", visible: showPrev, onClick: onPrevWeek }),
1615
- /* @__PURE__ */ jsx36("span", { className: "flex flex-1 items-center justify-center text-center", children: text }),
1616
- /* @__PURE__ */ jsx36(ArrowButton, { direction: "right", visible: showNext, onClick: onNextWeek })
1659
+ /* @__PURE__ */ jsx37(ArrowButton, { direction: "left", visible: showPrev, onClick: onPrevWeek }),
1660
+ /* @__PURE__ */ jsx37("span", { className: "flex flex-1 items-center justify-center text-center", children: text }),
1661
+ /* @__PURE__ */ jsx37(ArrowButton, { direction: "right", visible: showNext, onClick: onNextWeek })
1617
1662
  ]
1618
1663
  }
1619
1664
  );
1620
1665
  }
1621
1666
  );
1622
1667
  var ArrowButton = ({ direction, visible, onClick }) => {
1623
- const divider = /* @__PURE__ */ jsx36("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" });
1668
+ const divider = /* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" });
1624
1669
  if (!visible) {
1625
- return /* @__PURE__ */ jsx36("span", { "aria-hidden": true, className: "w-[43px]" });
1670
+ return /* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-[43px]" });
1626
1671
  }
1627
- return /* @__PURE__ */ jsxs20("div", { className: "flex items-stretch", children: [
1672
+ return /* @__PURE__ */ jsxs21("div", { className: "flex items-stretch", children: [
1628
1673
  direction === "right" && divider,
1629
- /* @__PURE__ */ jsx36(
1674
+ /* @__PURE__ */ jsx37(
1630
1675
  "button",
1631
1676
  {
1632
1677
  type: "button",
@@ -1636,7 +1681,7 @@ var ArrowButton = ({ direction, visible, onClick }) => {
1636
1681
  "text-gray06 cursor-pointer transition-colors",
1637
1682
  "hover:bg-gray00 active:bg-gray01"
1638
1683
  ),
1639
- children: /* @__PURE__ */ jsx36(
1684
+ children: /* @__PURE__ */ jsx37(
1640
1685
  IconChevronDownXS,
1641
1686
  {
1642
1687
  className: direction === "left" ? "rotate-90" : "-rotate-90",
@@ -1650,7 +1695,7 @@ var ArrowButton = ({ direction, visible, onClick }) => {
1650
1695
  };
1651
1696
 
1652
1697
  // src/components/Timetable/Timetable.tsx
1653
- import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
1698
+ import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
1654
1699
  var printColorHoverClass = {
1655
1700
  Plotter: "hover:bg-print-plotter",
1656
1701
  Printer: "hover:bg-print-printer",
@@ -1660,7 +1705,7 @@ var printColorHoverClass = {
1660
1705
  "Seet Cutting": "hover:bg-print-seet-cutting",
1661
1706
  "Laser Cutting": "hover:bg-print-laser-cutting"
1662
1707
  };
1663
- var Timetable = forwardRef4(function Timetable2({
1708
+ var Timetable = forwardRef5(function Timetable2({
1664
1709
  weekStart,
1665
1710
  week,
1666
1711
  days,
@@ -1673,8 +1718,8 @@ var Timetable = forwardRef4(function Timetable2({
1673
1718
  canNextWeek,
1674
1719
  className
1675
1720
  }, ref) {
1676
- return /* @__PURE__ */ jsxs21("div", { ref, className: cn(fluid && "w-full", className), children: [
1677
- !hideWeekNavigation && /* @__PURE__ */ jsx37(
1721
+ return /* @__PURE__ */ jsxs22("div", { ref, className: cn(fluid && "w-full", className), children: [
1722
+ !hideWeekNavigation && /* @__PURE__ */ jsx38(
1678
1723
  WeekNavigation,
1679
1724
  {
1680
1725
  date: weekStart,
@@ -1685,7 +1730,7 @@ var Timetable = forwardRef4(function Timetable2({
1685
1730
  onNextWeek
1686
1731
  }
1687
1732
  ),
1688
- /* @__PURE__ */ jsx37("div", { className: cn("flex divide-x divide-gray02", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ jsx37(
1733
+ /* @__PURE__ */ jsx38("div", { className: cn("flex divide-x divide-gray02", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ jsx38(
1689
1734
  DailyTimetable,
1690
1735
  {
1691
1736
  date: day.date,
@@ -1698,21 +1743,26 @@ var Timetable = forwardRef4(function Timetable2({
1698
1743
  ] });
1699
1744
  });
1700
1745
  var DailyTimetable = ({ date, slots, fluid, onSelectTime, className }) => {
1701
- return /* @__PURE__ */ jsxs21("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
1702
- /* @__PURE__ */ jsx37("div", { className: "h-12 flex items-center justify-center border-b border-gray02 text-body1-regular text-secondary", children: formatDayLabel(date) }),
1703
- slots.map((slot) => /* @__PURE__ */ jsx37(
1704
- TimeItem,
1705
- {
1706
- state: slot.state,
1707
- label: slot.time,
1708
- printColor: slot.printColor,
1709
- color: slot.color,
1710
- fluid,
1711
- className: slot.className,
1712
- onClick: onSelectTime ? () => onSelectTime(slot.time) : void 0
1713
- },
1714
- slot.time
1715
- ))
1746
+ return /* @__PURE__ */ jsxs22("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
1747
+ /* @__PURE__ */ jsx38("div", { className: "h-12 flex items-center justify-center border-b border-gray02 text-body1-regular text-secondary", children: formatDayLabel(date) }),
1748
+ slots.map((slot, index) => {
1749
+ const prevState = index > 0 ? slots[index - 1].state : void 0;
1750
+ const withTopBorder = slot.state !== "none" && prevState === "none";
1751
+ return /* @__PURE__ */ jsx38(
1752
+ TimeItem,
1753
+ {
1754
+ state: slot.state,
1755
+ label: slot.time,
1756
+ printColor: slot.printColor,
1757
+ color: slot.color,
1758
+ fluid,
1759
+ withTopBorder,
1760
+ className: slot.className,
1761
+ onClick: onSelectTime ? () => onSelectTime(slot.time) : void 0
1762
+ },
1763
+ slot.time
1764
+ );
1765
+ })
1716
1766
  ] });
1717
1767
  };
1718
1768
  var TimeItem = ({
@@ -1721,12 +1771,13 @@ var TimeItem = ({
1721
1771
  printColor,
1722
1772
  color,
1723
1773
  fluid,
1774
+ withTopBorder = false,
1724
1775
  onClick,
1725
1776
  className
1726
1777
  }) => {
1727
1778
  const clickable = (state === "default" || state === "selected") && !!onClick;
1728
1779
  const style = state === "default" && color ? { "--tt-hover": color } : void 0;
1729
- return /* @__PURE__ */ jsx37(
1780
+ return /* @__PURE__ */ jsx38(
1730
1781
  "div",
1731
1782
  {
1732
1783
  onClick: clickable ? onClick : void 0,
@@ -1737,6 +1788,7 @@ var TimeItem = ({
1737
1788
  "text-body1-medium text-center bg-white text-primary",
1738
1789
  // "none"(일정 없음)은 구분선을 그리지 않아 연속된 빈 칸이 하나의 덩어리로 보이게 한다.
1739
1790
  state === "none" ? "bg-gray00 text-transparent" : "border-b border-gray02",
1791
+ withTopBorder && "border-t border-gray02",
1740
1792
  state === "selected" && "bg-black text-white hover:cursor-pointer",
1741
1793
  state === "disabled" && "bg-gray00 text-gray03",
1742
1794
  state === "default" && [
@@ -1753,11 +1805,11 @@ var TimeItem = ({
1753
1805
  // src/components/TNB/TNB.tsx
1754
1806
  import {
1755
1807
  Fragment as Fragment2,
1756
- forwardRef as forwardRef5,
1808
+ forwardRef as forwardRef6,
1757
1809
  useCallback as useCallback2,
1758
1810
  useState as useState6
1759
1811
  } from "react";
1760
- import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
1812
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
1761
1813
  function useControllableState2(controlled, defaultValue) {
1762
1814
  const isControlled = controlled !== void 0;
1763
1815
  const [uncontrolled, setUncontrolled] = useState6(defaultValue);
@@ -1770,7 +1822,7 @@ function useControllableState2(controlled, defaultValue) {
1770
1822
  );
1771
1823
  return [value, setValue, isControlled];
1772
1824
  }
1773
- var TNB = forwardRef5(function TNB2({
1825
+ var TNB = forwardRef6(function TNB2({
1774
1826
  logo,
1775
1827
  upperPartItemList,
1776
1828
  upperPartIconList,
@@ -1809,8 +1861,8 @@ var TNB = forwardRef5(function TNB2({
1809
1861
  setLowerValue(label);
1810
1862
  onSelectedLowerChange?.(label);
1811
1863
  };
1812
- return /* @__PURE__ */ jsxs22("nav", { ref, "aria-label": ariaLabel, className: cn("w-full bg-white", className), children: [
1813
- /* @__PURE__ */ jsx38(
1864
+ return /* @__PURE__ */ jsxs23("nav", { ref, "aria-label": ariaLabel, className: cn("w-full bg-white", className), children: [
1865
+ /* @__PURE__ */ jsx39(
1814
1866
  UpperPart,
1815
1867
  {
1816
1868
  logo,
@@ -1821,7 +1873,7 @@ var TNB = forwardRef5(function TNB2({
1821
1873
  linkComponent
1822
1874
  }
1823
1875
  ),
1824
- /* @__PURE__ */ jsx38(
1876
+ /* @__PURE__ */ jsx39(
1825
1877
  LowerPart,
1826
1878
  {
1827
1879
  lowerPartItemList: currentLowerItemList,
@@ -1832,11 +1884,11 @@ var TNB = forwardRef5(function TNB2({
1832
1884
  )
1833
1885
  ] });
1834
1886
  });
1835
- var NavClickable = forwardRef5(function NavClickable2({ href, onClick, linkComponent: Link, current, disabled, className, children }, ref) {
1887
+ var NavClickable = forwardRef6(function NavClickable2({ href, onClick, linkComponent: Link, current, disabled, className, children }, ref) {
1836
1888
  const ariaCurrent = current ? "page" : void 0;
1837
1889
  if (href && !disabled) {
1838
1890
  if (Link) {
1839
- return /* @__PURE__ */ jsx38(
1891
+ return /* @__PURE__ */ jsx39(
1840
1892
  Link,
1841
1893
  {
1842
1894
  href,
@@ -1848,7 +1900,7 @@ var NavClickable = forwardRef5(function NavClickable2({ href, onClick, linkCompo
1848
1900
  }
1849
1901
  );
1850
1902
  }
1851
- return /* @__PURE__ */ jsx38(
1903
+ return /* @__PURE__ */ jsx39(
1852
1904
  "a",
1853
1905
  {
1854
1906
  href,
@@ -1860,7 +1912,7 @@ var NavClickable = forwardRef5(function NavClickable2({ href, onClick, linkCompo
1860
1912
  }
1861
1913
  );
1862
1914
  }
1863
- return /* @__PURE__ */ jsx38(
1915
+ return /* @__PURE__ */ jsx39(
1864
1916
  "button",
1865
1917
  {
1866
1918
  type: "button",
@@ -1882,7 +1934,7 @@ var UpperPart = ({
1882
1934
  linkComponent,
1883
1935
  className
1884
1936
  }) => {
1885
- return /* @__PURE__ */ jsxs22(
1937
+ return /* @__PURE__ */ jsxs23(
1886
1938
  "div",
1887
1939
  {
1888
1940
  className: cn(
@@ -1890,12 +1942,12 @@ var UpperPart = ({
1890
1942
  className
1891
1943
  ),
1892
1944
  children: [
1893
- /* @__PURE__ */ jsxs22("div", { className: "flex items-stretch", children: [
1894
- /* @__PURE__ */ jsx38("div", { className: "flex w-14 shrink-0 items-center justify-center px-3", children: /* @__PURE__ */ jsx38(NavIconButton, { ...logo, linkComponent }) }),
1895
- /* @__PURE__ */ jsxs22("div", { className: "flex items-stretch", children: [
1896
- /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1897
- upperPartItemList.map((item) => /* @__PURE__ */ jsxs22(Fragment2, { children: [
1898
- /* @__PURE__ */ jsx38(
1945
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-stretch", children: [
1946
+ /* @__PURE__ */ jsx39("div", { className: "flex w-14 shrink-0 items-center justify-center px-3", children: /* @__PURE__ */ jsx39(NavIconButton, { ...logo, linkComponent }) }),
1947
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-stretch", children: [
1948
+ /* @__PURE__ */ jsx39("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1949
+ upperPartItemList.map((item) => /* @__PURE__ */ jsxs23(Fragment2, { children: [
1950
+ /* @__PURE__ */ jsx39(
1899
1951
  UpperPartTab,
1900
1952
  {
1901
1953
  label: item.label,
@@ -1908,15 +1960,15 @@ var UpperPart = ({
1908
1960
  }
1909
1961
  }
1910
1962
  ),
1911
- /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1963
+ /* @__PURE__ */ jsx39("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1912
1964
  ] }, item.id ?? item.label))
1913
1965
  ] })
1914
1966
  ] }),
1915
- /* @__PURE__ */ jsxs22("div", { className: "flex items-stretch", children: [
1916
- /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1917
- upperPartIconList.map((icon, index) => /* @__PURE__ */ jsxs22(Fragment2, { children: [
1918
- /* @__PURE__ */ jsx38(NavIconButton, { ...icon, linkComponent }),
1919
- /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1967
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-stretch", children: [
1968
+ /* @__PURE__ */ jsx39("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1969
+ upperPartIconList.map((icon, index) => /* @__PURE__ */ jsxs23(Fragment2, { children: [
1970
+ /* @__PURE__ */ jsx39(NavIconButton, { ...icon, linkComponent }),
1971
+ /* @__PURE__ */ jsx39("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1920
1972
  ] }, icon.id ?? icon.src ?? icon.label ?? index))
1921
1973
  ] })
1922
1974
  ]
@@ -1931,7 +1983,7 @@ var UpperPartTab = ({
1931
1983
  linkComponent,
1932
1984
  className
1933
1985
  }) => {
1934
- return /* @__PURE__ */ jsxs22(
1986
+ return /* @__PURE__ */ jsxs23(
1935
1987
  NavClickable,
1936
1988
  {
1937
1989
  href,
@@ -1946,17 +1998,17 @@ var UpperPartTab = ({
1946
1998
  className
1947
1999
  ),
1948
2000
  children: [
1949
- /* @__PURE__ */ jsx38("span", { className: cn("px-5 text-head1-medium", selected ? "text-strong" : "text-quaternary"), children: label }),
1950
- /* @__PURE__ */ jsx38("span", { className: cn("h-0.5 w-full", selected ? "bg-black" : "bg-transparent") })
2001
+ /* @__PURE__ */ jsx39("span", { className: cn("px-5 text-head1-medium", selected ? "text-strong" : "text-quaternary"), children: label }),
2002
+ /* @__PURE__ */ jsx39("span", { className: cn("h-0.5 w-full", selected ? "bg-black" : "bg-transparent") })
1951
2003
  ]
1952
2004
  }
1953
2005
  );
1954
2006
  };
1955
- var NavIconButton = forwardRef5(
2007
+ var NavIconButton = forwardRef6(
1956
2008
  function NavIconButton2({ src, icon, alt, label, href, onClick, selected, badge, className, linkComponent }, forwardedRef) {
1957
2009
  const interactive = Boolean(onClick || href);
1958
2010
  const showBadge = badge !== void 0 && badge !== null && badge !== false;
1959
- return /* @__PURE__ */ jsxs22(
2011
+ return /* @__PURE__ */ jsxs23(
1960
2012
  NavClickable,
1961
2013
  {
1962
2014
  ref: forwardedRef,
@@ -1972,9 +2024,9 @@ var NavIconButton = forwardRef5(
1972
2024
  className
1973
2025
  ),
1974
2026
  children: [
1975
- icon ? /* @__PURE__ */ jsx38("span", { className: "inline-flex h-6 w-6 items-center justify-center", children: icon }) : src ? /* @__PURE__ */ jsx38("img", { src, alt: alt ?? label ?? "", className: "h-6 w-6" }) : null,
1976
- label ? /* @__PURE__ */ jsx38("span", { className: cn("text-body2-regular", selected ? "text-white" : "text-secondary"), children: label }) : null,
1977
- showBadge ? /* @__PURE__ */ jsx38(
2027
+ icon ? /* @__PURE__ */ jsx39("span", { className: "inline-flex h-6 w-6 items-center justify-center", children: icon }) : src ? /* @__PURE__ */ jsx39("img", { src, alt: alt ?? label ?? "", className: "h-6 w-6" }) : null,
2028
+ label ? /* @__PURE__ */ jsx39("span", { className: cn("text-body2-regular", selected ? "text-white" : "text-secondary"), children: label }) : null,
2029
+ showBadge ? /* @__PURE__ */ jsx39(
1978
2030
  "span",
1979
2031
  {
1980
2032
  "aria-hidden": badge === true,
@@ -2000,14 +2052,14 @@ var LowerPart = ({
2000
2052
  if (lowerPartItemList.length === 0) {
2001
2053
  return null;
2002
2054
  }
2003
- return /* @__PURE__ */ jsxs22(
2055
+ return /* @__PURE__ */ jsxs23(
2004
2056
  "div",
2005
2057
  {
2006
2058
  className: cn("w-full h-[42px] pl-14 flex items-stretch border-b border-gray02", className),
2007
2059
  children: [
2008
- /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
2009
- lowerPartItemList.map((item) => /* @__PURE__ */ jsxs22(Fragment2, { children: [
2010
- /* @__PURE__ */ jsx38(
2060
+ /* @__PURE__ */ jsx39("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
2061
+ lowerPartItemList.map((item) => /* @__PURE__ */ jsxs23(Fragment2, { children: [
2062
+ /* @__PURE__ */ jsx39(
2011
2063
  LowerPartItemButton,
2012
2064
  {
2013
2065
  label: item.label,
@@ -2020,7 +2072,7 @@ var LowerPart = ({
2020
2072
  }
2021
2073
  }
2022
2074
  ),
2023
- /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
2075
+ /* @__PURE__ */ jsx39("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
2024
2076
  ] }, item.id ?? item.label))
2025
2077
  ]
2026
2078
  }
@@ -2034,7 +2086,7 @@ var LowerPartItemButton = ({
2034
2086
  linkComponent,
2035
2087
  className
2036
2088
  }) => {
2037
- return /* @__PURE__ */ jsx38(
2089
+ return /* @__PURE__ */ jsx39(
2038
2090
  NavClickable,
2039
2091
  {
2040
2092
  href,
@@ -2053,10 +2105,10 @@ var LowerPartItemButton = ({
2053
2105
  };
2054
2106
 
2055
2107
  // src/components/Toast/Toast.tsx
2056
- import { forwardRef as forwardRef6, useEffect as useEffect3, useState as useState7 } from "react";
2057
- import { jsx as jsx39 } from "react/jsx-runtime";
2108
+ import { forwardRef as forwardRef7, useEffect as useEffect3, useState as useState7 } from "react";
2109
+ import { jsx as jsx40 } from "react/jsx-runtime";
2058
2110
  var EXIT_MS = 300;
2059
- var Toast = forwardRef6(function Toast2({ message, open, duration = 3e3, onClose, position = "none", className }, ref) {
2111
+ var Toast = forwardRef7(function Toast2({ message, open, duration = 3e3, onClose, position = "none", className }, ref) {
2060
2112
  const controlled = open !== void 0;
2061
2113
  const [mounted, setMounted] = useState7(!controlled || open);
2062
2114
  const [visible, setVisible] = useState7(!controlled || open);
@@ -2077,7 +2129,7 @@ var Toast = forwardRef6(function Toast2({ message, open, duration = 3e3, onClose
2077
2129
  return () => clearTimeout(timer);
2078
2130
  }, [controlled, open, duration, onClose]);
2079
2131
  if (!mounted) return null;
2080
- const banner = /* @__PURE__ */ jsx39(
2132
+ const banner = /* @__PURE__ */ jsx40(
2081
2133
  "div",
2082
2134
  {
2083
2135
  ref,
@@ -2095,7 +2147,7 @@ var Toast = forwardRef6(function Toast2({ message, open, duration = 3e3, onClose
2095
2147
  }
2096
2148
  );
2097
2149
  if (position === "none") return banner;
2098
- return /* @__PURE__ */ jsx39(
2150
+ return /* @__PURE__ */ jsx40(
2099
2151
  "div",
2100
2152
  {
2101
2153
  className: cn(
@@ -2150,6 +2202,7 @@ export {
2150
2202
  SelectBoxOption,
2151
2203
  SideRadioAccordion,
2152
2204
  TNB,
2205
+ TabSwitch,
2153
2206
  Tag,
2154
2207
  TextButton,
2155
2208
  Timetable,