@hivcd-printshop/design-system 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +32 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -27
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -393,6 +393,11 @@ type RadioToggle = {
|
|
|
393
393
|
className?: string;
|
|
394
394
|
labelTextButton?: string;
|
|
395
395
|
onClickTextButton?: () => void;
|
|
396
|
+
/**
|
|
397
|
+
* labelTextButton 앞에 느낌표 아이콘을 붙일지. 기본 false(Figma "상세 안내 페이지"
|
|
398
|
+
* 링크는 아이콘이 없다). 관리자 문의 등 경고성 링크에만 true로 켠다.
|
|
399
|
+
*/
|
|
400
|
+
textButtonIcon?: boolean;
|
|
396
401
|
};
|
|
397
402
|
interface SideRadioAccordionProps {
|
|
398
403
|
step: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -393,6 +393,11 @@ type RadioToggle = {
|
|
|
393
393
|
className?: string;
|
|
394
394
|
labelTextButton?: string;
|
|
395
395
|
onClickTextButton?: () => void;
|
|
396
|
+
/**
|
|
397
|
+
* labelTextButton 앞에 느낌표 아이콘을 붙일지. 기본 false(Figma "상세 안내 페이지"
|
|
398
|
+
* 링크는 아이콘이 없다). 관리자 문의 등 경고성 링크에만 true로 켠다.
|
|
399
|
+
*/
|
|
400
|
+
textButtonIcon?: boolean;
|
|
396
401
|
};
|
|
397
402
|
interface SideRadioAccordionProps {
|
|
398
403
|
step: number;
|
package/dist/index.js
CHANGED
|
@@ -282,8 +282,8 @@ var IconRadioSelected = ({
|
|
|
282
282
|
fill: "none",
|
|
283
283
|
xmlns: "http://www.w3.org/2000/svg",
|
|
284
284
|
children: [
|
|
285
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "7", stroke: stroke || "#121212" }),
|
|
286
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "
|
|
285
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "7", stroke: stroke || "#121212", strokeWidth: "1.5" }),
|
|
286
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "3.5", fill: fill || "#121212" })
|
|
287
287
|
]
|
|
288
288
|
}
|
|
289
289
|
);
|
|
@@ -301,7 +301,7 @@ var IconRadioUnselected = ({
|
|
|
301
301
|
viewBox: "0 0 16 16",
|
|
302
302
|
fill: "none",
|
|
303
303
|
xmlns: "http://www.w3.org/2000/svg",
|
|
304
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "7", stroke: stroke || "#
|
|
304
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "7", stroke: stroke || "#505865", strokeWidth: "1.5" })
|
|
305
305
|
}
|
|
306
306
|
);
|
|
307
307
|
};
|
|
@@ -1496,6 +1496,7 @@ var RadioToggleItem = ({
|
|
|
1496
1496
|
className,
|
|
1497
1497
|
labelTextButton,
|
|
1498
1498
|
onClickTextButton,
|
|
1499
|
+
textButtonIcon = false,
|
|
1499
1500
|
open,
|
|
1500
1501
|
onSelect
|
|
1501
1502
|
}) => {
|
|
@@ -1509,7 +1510,7 @@ var RadioToggleItem = ({
|
|
|
1509
1510
|
onClick: onSelect,
|
|
1510
1511
|
style,
|
|
1511
1512
|
className: cn(
|
|
1512
|
-
"group w-full flex items-center
|
|
1513
|
+
"group w-full flex items-center p-3",
|
|
1513
1514
|
"text-body1-regular text-left cursor-pointer",
|
|
1514
1515
|
open ? "text-strong" : "text-secondary",
|
|
1515
1516
|
rowBg,
|
|
@@ -1529,7 +1530,7 @@ var RadioToggleItem = ({
|
|
|
1529
1530
|
{
|
|
1530
1531
|
label: labelTextButton,
|
|
1531
1532
|
onClick: onClickTextButton,
|
|
1532
|
-
showIcon:
|
|
1533
|
+
showIcon: textButtonIcon,
|
|
1533
1534
|
className: "self-end"
|
|
1534
1535
|
}
|
|
1535
1536
|
)
|
|
@@ -1539,8 +1540,9 @@ var RadioToggleItem = ({
|
|
|
1539
1540
|
var Radio = ({ selected = false, className }) => {
|
|
1540
1541
|
const Icon = selected ? IconRadioSelected : IconRadioUnselected;
|
|
1541
1542
|
return (
|
|
1542
|
-
// 디자인 스펙(Figma "radio" 5:781):
|
|
1543
|
-
// 24px 원형 배경 칩만 나타난다(gray00/gray01).
|
|
1543
|
+
// 디자인 스펙(Figma "radio" 5:781): 24px 히트 영역 안에 10px 원만 중앙에 그려진다.
|
|
1544
|
+
// 아이콘 자체 색은 고정, hover/pressed 시 24px 원형 배경 칩만 나타난다(gray00/gray01).
|
|
1545
|
+
// 부모 버튼의 group-hover/active로 동기화.
|
|
1544
1546
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1545
1547
|
"span",
|
|
1546
1548
|
{
|
|
@@ -1549,7 +1551,7 @@ var Radio = ({ selected = false, className }) => {
|
|
|
1549
1551
|
"group-hover:bg-gray00 group-active:bg-gray01",
|
|
1550
1552
|
className
|
|
1551
1553
|
),
|
|
1552
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { className: "size-
|
|
1554
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { className: "size-2.5" })
|
|
1553
1555
|
}
|
|
1554
1556
|
)
|
|
1555
1557
|
);
|
|
@@ -1694,11 +1696,7 @@ var WeekNavigation = (0, import_react8.forwardRef)(
|
|
|
1694
1696
|
var ArrowButton = ({ direction, visible, onClick }) => {
|
|
1695
1697
|
const divider = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" });
|
|
1696
1698
|
if (!visible) {
|
|
1697
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.
|
|
1698
|
-
direction === "right" && divider,
|
|
1699
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "w-[42px]" }),
|
|
1700
|
-
direction === "left" && divider
|
|
1701
|
-
] });
|
|
1699
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { "aria-hidden": true, className: "w-[43px]" });
|
|
1702
1700
|
}
|
|
1703
1701
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-stretch", children: [
|
|
1704
1702
|
direction === "right" && divider,
|
|
@@ -1761,7 +1759,7 @@ var Timetable = (0, import_react9.forwardRef)(function Timetable2({
|
|
|
1761
1759
|
onNextWeek
|
|
1762
1760
|
}
|
|
1763
1761
|
),
|
|
1764
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn("flex", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1762
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn("flex divide-x divide-gray02", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1765
1763
|
DailyTimetable,
|
|
1766
1764
|
{
|
|
1767
1765
|
date: day.date,
|
|
@@ -1776,19 +1774,24 @@ var Timetable = (0, import_react9.forwardRef)(function Timetable2({
|
|
|
1776
1774
|
var DailyTimetable = ({ date, slots, fluid, onSelectTime, className }) => {
|
|
1777
1775
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
|
|
1778
1776
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "h-12 flex items-center justify-center border-b border-gray02 text-body1-regular text-secondary", children: formatDayLabel(date) }),
|
|
1779
|
-
slots.map((slot) =>
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1777
|
+
slots.map((slot, index) => {
|
|
1778
|
+
const prevState = index > 0 ? slots[index - 1].state : void 0;
|
|
1779
|
+
const withTopBorder = slot.state !== "none" && prevState === "none";
|
|
1780
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1781
|
+
TimeItem,
|
|
1782
|
+
{
|
|
1783
|
+
state: slot.state,
|
|
1784
|
+
label: slot.time,
|
|
1785
|
+
printColor: slot.printColor,
|
|
1786
|
+
color: slot.color,
|
|
1787
|
+
fluid,
|
|
1788
|
+
withTopBorder,
|
|
1789
|
+
className: slot.className,
|
|
1790
|
+
onClick: onSelectTime ? () => onSelectTime(slot.time) : void 0
|
|
1791
|
+
},
|
|
1792
|
+
slot.time
|
|
1793
|
+
);
|
|
1794
|
+
})
|
|
1792
1795
|
] });
|
|
1793
1796
|
};
|
|
1794
1797
|
var TimeItem = ({
|
|
@@ -1797,6 +1800,7 @@ var TimeItem = ({
|
|
|
1797
1800
|
printColor,
|
|
1798
1801
|
color,
|
|
1799
1802
|
fluid,
|
|
1803
|
+
withTopBorder = false,
|
|
1800
1804
|
onClick,
|
|
1801
1805
|
className
|
|
1802
1806
|
}) => {
|
|
@@ -1813,6 +1817,7 @@ var TimeItem = ({
|
|
|
1813
1817
|
"text-body1-medium text-center bg-white text-primary",
|
|
1814
1818
|
// "none"(일정 없음)은 구분선을 그리지 않아 연속된 빈 칸이 하나의 덩어리로 보이게 한다.
|
|
1815
1819
|
state === "none" ? "bg-gray00 text-transparent" : "border-b border-gray02",
|
|
1820
|
+
withTopBorder && "border-t border-gray02",
|
|
1816
1821
|
state === "selected" && "bg-black text-white hover:cursor-pointer",
|
|
1817
1822
|
state === "disabled" && "bg-gray00 text-gray03",
|
|
1818
1823
|
state === "default" && [
|