sellmate-design-system-react 0.12.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/SActionModal/SActionModal.cjs +3 -3
- package/dist/components/SActionModal/SActionModal.cjs.map +1 -1
- package/dist/components/SActionModal/SActionModal.js +3 -3
- package/dist/components/SActionModal/SActionModal.js.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +1 -1
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +1 -1
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.cjs +4 -4
- package/dist/components/SConfirmModal/SConfirmModal.cjs.map +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.js +4 -4
- package/dist/components/SConfirmModal/SConfirmModal.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +1 -1
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SExpansionItem/SExpansionItem.cjs +42 -12
- package/dist/components/SExpansionItem/SExpansionItem.cjs.map +1 -1
- package/dist/components/SExpansionItem/SExpansionItem.d.ts +2 -0
- package/dist/components/SExpansionItem/SExpansionItem.js +43 -13
- package/dist/components/SExpansionItem/SExpansionItem.js.map +1 -1
- package/dist/components/SField/SField.cjs +1 -1
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.js +1 -1
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.js +1 -1
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +1 -1
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +1 -1
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +3 -3
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +3 -3
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SModal/SModal.cjs +31 -37
- package/dist/components/SModal/SModal.cjs.map +1 -1
- package/dist/components/SModal/SModal.d.ts +38 -19
- package/dist/components/SModal/SModal.js +31 -37
- package/dist/components/SModal/SModal.js.map +1 -1
- package/dist/components/SModalContainer/SModalContainer.cjs +1 -1
- package/dist/components/SModalContainer/SModalContainer.cjs.map +1 -1
- package/dist/components/SModalContainer/SModalContainer.js +1 -1
- package/dist/components/SModalContainer/SModalContainer.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.js +1 -1
- package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +1 -1
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +1 -1
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +2 -2
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.d.ts +2 -1
- package/dist/components/STable/STable.js +2 -2
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STableBar/STableBar.cjs +93 -0
- package/dist/components/STableBar/STableBar.cjs.map +1 -0
- package/dist/components/STableBar/STableBar.d.ts +17 -0
- package/dist/components/STableBar/STableBar.js +91 -0
- package/dist/components/STableBar/STableBar.js.map +1 -0
- package/dist/components/STableBar/index.d.ts +1 -0
- package/dist/components/STextarea/STextarea.cjs +1 -1
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +1 -1
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/STimePicker/STimePicker.cjs +1 -1
- package/dist/components/STimePicker/STimePicker.cjs.map +1 -1
- package/dist/components/STimePicker/STimePicker.js +1 -1
- package/dist/components/STimePicker/STimePicker.js.map +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.cjs +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.js +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -1
- package/dist/components/STooltip/STooltip.cjs +1 -1
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +1 -1
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +133 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +134 -55
- package/dist/index.js.map +1 -1
- package/dist/styles.css +117 -32
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from './components/STabs';
|
|
|
34
34
|
export * from './components/SPagination';
|
|
35
35
|
export * from './components/SStepper';
|
|
36
36
|
export * from './components/STable';
|
|
37
|
+
export * from './components/STableBar';
|
|
37
38
|
export * from './components/SKeyValueTable';
|
|
38
39
|
export * from './components/SToast';
|
|
39
40
|
export * from './components/SForm';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { extendTailwindMerge } from 'tailwind-merge';
|
|
4
|
-
import { forwardRef, useState,
|
|
4
|
+
import { forwardRef, useState, useId, useEffect, useRef, useCallback, createContext, useImperativeHandle, useMemo, useContext, useLayoutEffect, useSyncExternalStore, Fragment as Fragment$1 } from 'react';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import { createPortal } from 'react-dom';
|
|
7
7
|
import { createRoot } from 'react-dom/client';
|
|
@@ -2899,6 +2899,7 @@ var SExpansionItem = forwardRef(
|
|
|
2899
2899
|
leading,
|
|
2900
2900
|
trailing,
|
|
2901
2901
|
bodyPadding = true,
|
|
2902
|
+
bordered = false,
|
|
2902
2903
|
expanded,
|
|
2903
2904
|
defaultExpanded = false,
|
|
2904
2905
|
dense = false,
|
|
@@ -2910,9 +2911,6 @@ var SExpansionItem = forwardRef(
|
|
|
2910
2911
|
}, ref) {
|
|
2911
2912
|
const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
|
|
2912
2913
|
const isExpanded = expanded ?? internalExpanded;
|
|
2913
|
-
const hasBody = Children.toArray(children).some(
|
|
2914
|
-
(child) => child !== null && child !== void 0 && (typeof child !== "string" || child.trim() !== "")
|
|
2915
|
-
);
|
|
2916
2914
|
const leadingNode = typeof leading === "function" ? leading({ expanded: isExpanded, disabled }) : leading;
|
|
2917
2915
|
const id = useId();
|
|
2918
2916
|
return /* @__PURE__ */ jsxs(
|
|
@@ -2921,6 +2919,9 @@ var SExpansionItem = forwardRef(
|
|
|
2921
2919
|
ref,
|
|
2922
2920
|
className: cn(
|
|
2923
2921
|
"group overflow-hidden bg-[var(--cmp-expansionItem-title-bg-default)]",
|
|
2922
|
+
// TODO: expansionItem/bordered/radius 및 border intent 토큰 생성 후 고정값을 토큰으로 교체한다.
|
|
2923
|
+
bordered && "rounded-[8px] border border-[#E1E1E1] hover:border-[#AAAAAA] [&:has(>button:hover)]:border-[#AAAAAA]",
|
|
2924
|
+
bordered && isExpanded && "!border-[#93C4FF]",
|
|
2924
2925
|
className
|
|
2925
2926
|
),
|
|
2926
2927
|
...rest,
|
|
@@ -2940,23 +2941,52 @@ var SExpansionItem = forwardRef(
|
|
|
2940
2941
|
},
|
|
2941
2942
|
className: cn(
|
|
2942
2943
|
"flex w-full items-center justify-between border-0 text-left text-[14px] font-bold leading-[24px] text-[var(--cmp-expansionItem-title-text-default)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--sys-color-border-accent)] disabled:cursor-not-allowed disabled:text-[var(--sys-color-disabled-text)] cursor-pointer",
|
|
2943
|
-
isExpanded && "border-b border-
|
|
2944
|
-
!isExpanded && "hover:bg-
|
|
2945
|
-
dense ? "min-h-8 py-
|
|
2946
|
-
"gap-
|
|
2947
|
-
"pr-
|
|
2948
|
-
depth === 2 ? "pl-[calc(var(--cmp-expansionItem-title-paddingX)+32px)]" : depth === 3 ? "pl-[calc(var(--cmp-expansionItem-title-paddingX)+64px)]" : "pl-
|
|
2949
|
-
isExpanded && "bg-
|
|
2944
|
+
isExpanded && "border-b border-(--cmp-expansionItem-title-border)",
|
|
2945
|
+
!isExpanded && "hover:bg-(--cmp-expansionItem-title-bg-hover)",
|
|
2946
|
+
dense ? "min-h-8 py-(--cmp-expansionItem-title-paddingY-dense)" : "min-h-10 py-(--cmp-expansionItem-title-paddingY-normal)",
|
|
2947
|
+
"gap-(--cmp-expansionItem-title-gap)",
|
|
2948
|
+
"pr-(--cmp-expansionItem-title-paddingX)",
|
|
2949
|
+
depth === 2 ? "pl-[calc(var(--cmp-expansionItem-title-paddingX)+32px)]" : depth === 3 ? "pl-[calc(var(--cmp-expansionItem-title-paddingX)+64px)]" : "pl-(--cmp-expansionItem-title-paddingX)",
|
|
2950
|
+
isExpanded && "bg-(--cmp-expansionItem-title-bg-expanded) text-(--cmp-expansionItem-title-text-expanded)"
|
|
2950
2951
|
),
|
|
2951
2952
|
children: [
|
|
2952
|
-
!leading &&
|
|
2953
|
+
!leading && /* @__PURE__ */ jsx(
|
|
2954
|
+
"span",
|
|
2955
|
+
{
|
|
2956
|
+
className: cn(
|
|
2957
|
+
"flex transition-transform duration-200 ease-out motion-reduce:transition-none",
|
|
2958
|
+
isExpanded && "rotate-180"
|
|
2959
|
+
),
|
|
2960
|
+
children: /* @__PURE__ */ jsx(SIcon, { name: "caretDown", size: 12 })
|
|
2961
|
+
}
|
|
2962
|
+
),
|
|
2953
2963
|
leadingNode,
|
|
2954
2964
|
/* @__PURE__ */ jsx("span", { className: "flex min-w-0 flex-1 flex-col", children: /* @__PURE__ */ jsx("span", { children: title }) }),
|
|
2955
2965
|
trailing
|
|
2956
2966
|
]
|
|
2957
2967
|
}
|
|
2958
2968
|
),
|
|
2959
|
-
/* @__PURE__ */ jsx(
|
|
2969
|
+
/* @__PURE__ */ jsx(
|
|
2970
|
+
"div",
|
|
2971
|
+
{
|
|
2972
|
+
id,
|
|
2973
|
+
"aria-hidden": !isExpanded,
|
|
2974
|
+
className: cn(
|
|
2975
|
+
"grid overflow-hidden bg-[var(--cmp-expansionItem-body-bg)] transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none",
|
|
2976
|
+
isExpanded ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
2977
|
+
),
|
|
2978
|
+
children: /* @__PURE__ */ jsx(
|
|
2979
|
+
"div",
|
|
2980
|
+
{
|
|
2981
|
+
className: cn(
|
|
2982
|
+
"min-h-0 overflow-hidden",
|
|
2983
|
+
bodyPadding && isExpanded && "p-(--cmp-expansionItem-body-padding)"
|
|
2984
|
+
),
|
|
2985
|
+
children
|
|
2986
|
+
}
|
|
2987
|
+
)
|
|
2988
|
+
}
|
|
2989
|
+
)
|
|
2960
2990
|
]
|
|
2961
2991
|
}
|
|
2962
2992
|
);
|
|
@@ -4282,7 +4312,7 @@ var STooltip = forwardRef(function STooltip2({
|
|
|
4282
4312
|
if (disabled || body == null) return /* @__PURE__ */ jsx(Fragment, { children: triggerNode });
|
|
4283
4313
|
const isHover = trigger === "hover";
|
|
4284
4314
|
const contentClass = cn(
|
|
4285
|
-
"z-50 w-fit whitespace-nowrap rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
|
|
4315
|
+
"z-50 w-fit whitespace-nowrap rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px] shadow-normal-sm",
|
|
4286
4316
|
FLOATING_SLIDE_ANIM,
|
|
4287
4317
|
className
|
|
4288
4318
|
);
|
|
@@ -4749,7 +4779,7 @@ function SModalContainer({
|
|
|
4749
4779
|
"div",
|
|
4750
4780
|
{
|
|
4751
4781
|
className: cn(
|
|
4752
|
-
"relative overflow-hidden rounded-[var(--cmp-modal-radius)] bg-[var(--cmp-modal-bg)] shadow-normal-md",
|
|
4782
|
+
"relative flex max-h-[calc(100dvh-48px)] flex-col overflow-hidden rounded-[var(--cmp-modal-radius)] bg-[var(--cmp-modal-bg)] shadow-normal-md",
|
|
4753
4783
|
shaking && "animate-modal-shake",
|
|
4754
4784
|
className
|
|
4755
4785
|
),
|
|
@@ -4841,8 +4871,8 @@ function SConfirmModal({
|
|
|
4841
4871
|
showClose: true,
|
|
4842
4872
|
onClose,
|
|
4843
4873
|
className: "w-fit min-w-[520px]",
|
|
4844
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-[40px] px-[32px] py-[40px]", children: [
|
|
4845
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col items-center gap-[20px]", children: [
|
|
4874
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-auto flex-col items-center gap-[40px] px-[32px] py-[40px]", children: [
|
|
4875
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full min-h-0 flex-col items-center gap-[20px] overflow-y-auto", children: [
|
|
4846
4876
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-[12px]", children: [
|
|
4847
4877
|
iconName && /* @__PURE__ */ jsx(SIcon, { name: iconName, size: 32, color: TYPE_ICON_COLOR[type] }),
|
|
4848
4878
|
/* @__PURE__ */ jsx(
|
|
@@ -4864,7 +4894,7 @@ function SConfirmModal({
|
|
|
4864
4894
|
optionNode != null && optionNode
|
|
4865
4895
|
] })
|
|
4866
4896
|
] }),
|
|
4867
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-[8px]", children: [
|
|
4897
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-shrink-0 gap-[8px]", children: [
|
|
4868
4898
|
subButtonLabel && /* @__PURE__ */ jsx(
|
|
4869
4899
|
SButton,
|
|
4870
4900
|
{
|
|
@@ -4917,8 +4947,8 @@ function SActionModal({
|
|
|
4917
4947
|
showClose: true,
|
|
4918
4948
|
width,
|
|
4919
4949
|
height,
|
|
4920
|
-
className: "w-fit min-w-[480px] min-h-[320px]",
|
|
4921
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex
|
|
4950
|
+
className: "w-fit min-w-[480px] min-h-[min(320px,calc(100dvh-48px))]",
|
|
4951
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-auto flex-col", children: [
|
|
4922
4952
|
/* @__PURE__ */ jsx("header", { className: "flex flex-shrink-0 items-center gap-[var(--cmp-overlay-header-gap)] py-[var(--cmp-overlay-header-paddingY)] pl-[var(--cmp-overlay-header-paddingX)] pr-[calc(var(--cmp-overlay-header-paddingX)+20px)]", children: /* @__PURE__ */ jsx("h2", { className: "text-[16px] font-bold leading-[26px] text-[color:var(--cmp-overlay-header-title-color)]", children: modalTitle }) }),
|
|
4923
4953
|
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-auto px-[var(--cmp-modal-action-body-paddingX)] pb-[var(--cmp-modal-action-body-paddingBottom)]", children }),
|
|
4924
4954
|
button && /* @__PURE__ */ jsx(
|
|
@@ -4984,7 +5014,7 @@ function SLoadingModal({
|
|
|
4984
5014
|
ariaTitle: lines[0] || "\uB85C\uB529 \uC911",
|
|
4985
5015
|
width,
|
|
4986
5016
|
height,
|
|
4987
|
-
children: /* @__PURE__ */
|
|
5017
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex min-h-0 flex-auto flex-col overflow-y-auto px-[32px]", children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex flex-col items-center gap-[20px]", children: [
|
|
4988
5018
|
state2 === "loading" ? progress !== void 0 ? /* @__PURE__ */ jsx(SCircleProgress, { value: progress }) : /* @__PURE__ */ jsx(SCircleProgress, { indeterminate: true }) : /* @__PURE__ */ jsx(SIcon, { name: "warningOutline", size: 80, color: "var(--cmp-modal-confirm-negative-icon)" }),
|
|
4989
5019
|
lines.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[2px]", children: lines.map((m, i) => /* @__PURE__ */ jsx(
|
|
4990
5020
|
"p",
|
|
@@ -5007,7 +5037,7 @@ function SLoadingModal({
|
|
|
5007
5037
|
label: buttonLabel ?? DEFAULT_BUTTON_LABEL[state2]
|
|
5008
5038
|
}
|
|
5009
5039
|
)
|
|
5010
|
-
] })
|
|
5040
|
+
] }) })
|
|
5011
5041
|
}
|
|
5012
5042
|
);
|
|
5013
5043
|
}
|
|
@@ -5090,6 +5120,10 @@ var SModalRefImpl = class {
|
|
|
5090
5120
|
this.root = root;
|
|
5091
5121
|
this.host = host;
|
|
5092
5122
|
}
|
|
5123
|
+
/** @internal create 의 마운트 검사용 host 조회 */
|
|
5124
|
+
_getHost() {
|
|
5125
|
+
return this.host;
|
|
5126
|
+
}
|
|
5093
5127
|
/** @internal 닫힘 시작 표시 — 컴포넌트 버튼·백드롭·ESC 닫힘 경로가 호출(중복 트리거 방지) */
|
|
5094
5128
|
_markDismissed() {
|
|
5095
5129
|
this.dismissRequested = true;
|
|
@@ -5185,46 +5219,35 @@ function LoadingMount({ options, refImpl }) {
|
|
|
5185
5219
|
}
|
|
5186
5220
|
);
|
|
5187
5221
|
}
|
|
5222
|
+
function warnIfNotModal(host, component) {
|
|
5223
|
+
if (typeof process !== "undefined" && process?.env?.NODE_ENV === "production") return;
|
|
5224
|
+
if (!host || host.childElementCount === 0) return;
|
|
5225
|
+
const name = component?.name || "component";
|
|
5226
|
+
console.warn(
|
|
5227
|
+
`[SModal.create] ${name} \uC774(\uAC00) \uBAA8\uB2EC\uC744 \uB744\uC6B0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. create \uB294 \uCEE8\uD14C\uC774\uB108\uB97C \uB367\uC50C\uC6B0\uC9C0 \uC54A\uC73C\uBBC0\uB85C component \uB294 \uB8E8\uD2B8\uC5D0 SActionModal \uC744 \uB80C\uB354\uD558\uACE0, \uC8FC\uC785\uBC1B\uC740 open/onOpenChange/onClose \uB97C \uADF8\uB300\uB85C \uC804\uB2EC\uD574\uC57C \uD569\uB2C8\uB2E4. \uD655\uC778/\uCDE8\uC18C\uB294 SModal.confirm, \uB85C\uB529\uC740 SModal.loading \uC744 \uC0AC\uC6A9\uD558\uC138\uC694.`
|
|
5228
|
+
);
|
|
5229
|
+
}
|
|
5188
5230
|
function CreateMount({ options, refImpl }) {
|
|
5189
|
-
const {
|
|
5190
|
-
component: Component,
|
|
5191
|
-
componentProps,
|
|
5192
|
-
persistent,
|
|
5193
|
-
showClose,
|
|
5194
|
-
width,
|
|
5195
|
-
height,
|
|
5196
|
-
className,
|
|
5197
|
-
ariaTitle
|
|
5198
|
-
} = options;
|
|
5231
|
+
const { component: Component, componentProps } = options;
|
|
5199
5232
|
const [open, setOpen] = useState(true);
|
|
5200
5233
|
useEffect(() => {
|
|
5201
5234
|
refImpl._bindClose(() => setOpen(false));
|
|
5202
5235
|
refImpl._bindUpdate(() => {
|
|
5203
5236
|
});
|
|
5204
|
-
|
|
5237
|
+
warnIfNotModal(refImpl._getHost(), Component);
|
|
5238
|
+
}, [refImpl, Component]);
|
|
5205
5239
|
useExitTeardown(open, refImpl);
|
|
5206
5240
|
const componentAllProps = {
|
|
5207
5241
|
...componentProps,
|
|
5242
|
+
open,
|
|
5243
|
+
onOpenChange: (o) => {
|
|
5244
|
+
if (!o) refImpl._markDismissed();
|
|
5245
|
+
setOpen(o);
|
|
5246
|
+
},
|
|
5247
|
+
onClose: () => refImpl._emitClose(),
|
|
5208
5248
|
modalRef: refImpl
|
|
5209
5249
|
};
|
|
5210
|
-
return /* @__PURE__ */ jsx(
|
|
5211
|
-
SModalContainer,
|
|
5212
|
-
{
|
|
5213
|
-
open,
|
|
5214
|
-
onOpenChange: (o) => {
|
|
5215
|
-
if (!o) refImpl._markDismissed();
|
|
5216
|
-
setOpen(o);
|
|
5217
|
-
},
|
|
5218
|
-
persistent,
|
|
5219
|
-
showClose,
|
|
5220
|
-
onClose: () => refImpl.close(),
|
|
5221
|
-
ariaTitle,
|
|
5222
|
-
width,
|
|
5223
|
-
height,
|
|
5224
|
-
className,
|
|
5225
|
-
children: /* @__PURE__ */ jsx(Component, { ...componentAllProps })
|
|
5226
|
-
}
|
|
5227
|
-
);
|
|
5250
|
+
return /* @__PURE__ */ jsx(Component, { ...componentAllProps });
|
|
5228
5251
|
}
|
|
5229
5252
|
function mount(render) {
|
|
5230
5253
|
const host = document.createElement("div");
|
|
@@ -5248,8 +5271,9 @@ var SModal = {
|
|
|
5248
5271
|
return mount((refImpl) => /* @__PURE__ */ jsx(LoadingMount, { options: { persistent: true, ...options }, refImpl }));
|
|
5249
5272
|
},
|
|
5250
5273
|
/**
|
|
5251
|
-
*
|
|
5252
|
-
*
|
|
5274
|
+
* SActionModal 을 루트로 렌더하는 컴포넌트를 띄운다. 컨테이너를 덧씌우지 않고 표시 제어
|
|
5275
|
+
* (open/onOpenChange/onClose)와 modalRef 만 주입하며, 닫힘 애니메이션 종료 후 자동으로
|
|
5276
|
+
* 언마운트한다. 컴포넌트가 모달을 띄우지 않으면 개발 모드에서 경고한다.
|
|
5253
5277
|
*/
|
|
5254
5278
|
create(options) {
|
|
5255
5279
|
return mount((refImpl) => /* @__PURE__ */ jsx(CreateMount, { options, refImpl }));
|
|
@@ -7725,7 +7749,7 @@ var STable = forwardRef(function STable2({
|
|
|
7725
7749
|
rowBg,
|
|
7726
7750
|
"group-hover:bg-[var(--color-grey-05)]",
|
|
7727
7751
|
stickyShadowClass(i),
|
|
7728
|
-
col.tdClass
|
|
7752
|
+
typeof col.tdClass === "function" ? col.tdClass(row) : col.tdClass
|
|
7729
7753
|
),
|
|
7730
7754
|
style: {
|
|
7731
7755
|
paddingLeft: cellPadX,
|
|
@@ -7782,6 +7806,61 @@ var STable = forwardRef(function STable2({
|
|
|
7782
7806
|
}
|
|
7783
7807
|
);
|
|
7784
7808
|
});
|
|
7809
|
+
var COUNT_NULL = "var(--cmp-table-bar-count-null)";
|
|
7810
|
+
var totalColor = (n) => n > 0 ? "var(--cmp-table-bar-count-total)" : COUNT_NULL;
|
|
7811
|
+
var selectedColor = (n) => n > 0 ? "var(--color-brilliantblue-75)" : COUNT_NULL;
|
|
7812
|
+
var STableBar = forwardRef(function STableBar2({ total, selected, actions, rightActions, className, ...rest }, ref) {
|
|
7813
|
+
const hasTotal = total != null;
|
|
7814
|
+
const hasSelected = selected != null;
|
|
7815
|
+
const hasCount = hasTotal || hasSelected;
|
|
7816
|
+
return /* @__PURE__ */ jsxs(
|
|
7817
|
+
"div",
|
|
7818
|
+
{
|
|
7819
|
+
ref,
|
|
7820
|
+
role: actions || rightActions ? "toolbar" : void 0,
|
|
7821
|
+
className: cn(
|
|
7822
|
+
"flex w-full items-center gap-[var(--cmp-table-bar-section-gap)] px-[var(--sys-space-table-padding-md)]",
|
|
7823
|
+
"h-[var(--cmp-table-bar-height)] shrink-0",
|
|
7824
|
+
"rounded-[var(--cmp-table-radius)] border-[length:var(--cmp-table-border-width)] border-solid border-[var(--cmp-table-border-color)] bg-white",
|
|
7825
|
+
className
|
|
7826
|
+
),
|
|
7827
|
+
...rest,
|
|
7828
|
+
children: [
|
|
7829
|
+
hasCount && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--cmp-table-content-gap)]", children: [
|
|
7830
|
+
hasTotal && /* @__PURE__ */ jsxs("span", { className: "typo-table-accent whitespace-nowrap text-[var(--sys-color-fg-primary)]", children: [
|
|
7831
|
+
"\uCD1D ",
|
|
7832
|
+
/* @__PURE__ */ jsx("b", { style: { color: totalColor(total) }, children: total.toLocaleString() }),
|
|
7833
|
+
" \uAC74"
|
|
7834
|
+
] }),
|
|
7835
|
+
hasTotal && hasSelected && /* @__PURE__ */ jsx(
|
|
7836
|
+
"span",
|
|
7837
|
+
{
|
|
7838
|
+
"aria-hidden": "true",
|
|
7839
|
+
className: "typo-table-body text-[var(--sys-color-fg-tertiary)]",
|
|
7840
|
+
children: "/"
|
|
7841
|
+
}
|
|
7842
|
+
),
|
|
7843
|
+
hasSelected && /* @__PURE__ */ jsxs("span", { className: "typo-table-body whitespace-nowrap text-[var(--sys-color-fg-primary)]", children: [
|
|
7844
|
+
/* @__PURE__ */ jsx("b", { style: { color: selectedColor(selected) }, children: selected.toLocaleString() }),
|
|
7845
|
+
" \uAC74 \uC120\uD0DD"
|
|
7846
|
+
] })
|
|
7847
|
+
] }),
|
|
7848
|
+
actions && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--cmp-table-bar-section-gap)] has-[>div:empty]:hidden", children: [
|
|
7849
|
+
hasCount && /* @__PURE__ */ jsx(
|
|
7850
|
+
SDivider,
|
|
7851
|
+
{
|
|
7852
|
+
vertical: true,
|
|
7853
|
+
className: "h-[var(--cmp-table-bar-divider-height)] self-center",
|
|
7854
|
+
style: { backgroundColor: "var(--cmp-table-border-color)" }
|
|
7855
|
+
}
|
|
7856
|
+
),
|
|
7857
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--cmp-table-content-gap)]", children: actions })
|
|
7858
|
+
] }),
|
|
7859
|
+
rightActions && /* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center gap-[var(--cmp-table-content-gap)] empty:hidden", children: rightActions })
|
|
7860
|
+
]
|
|
7861
|
+
}
|
|
7862
|
+
);
|
|
7863
|
+
});
|
|
7785
7864
|
var FONT = {
|
|
7786
7865
|
sm: { fontSize: 12, lineHeight: 20, paddingX: "var(--cmp-textinput-sm-paddingX)" },
|
|
7787
7866
|
md: { fontSize: 14, lineHeight: 24, paddingX: "var(--cmp-textinput-md-paddingX)" }
|
|
@@ -11803,6 +11882,6 @@ function STimeRangePicker({
|
|
|
11803
11882
|
);
|
|
11804
11883
|
}
|
|
11805
11884
|
|
|
11806
|
-
export { BADGE_COLORS, BUTTON_COLORS, BUTTON_SIZES, COLOR_KEYS, GNB_COLORS, GNB_COMMON, GNB_FOLD_MS, GNB_HEADER, GNB_MENU, GNB_MENU_WIDTH, GNB_RAIL, GNB_RAIL_WIDTH, ICONS, PAGE_BACKGROUNDS, SActionModal, SBadge, SBarcodeInput, SButton, SCROLL_AREA_AXES, SCalendar, SCallout, SCard, SCheckbox, SChip, SChipInput, SCircleProgress, SConfirmModal, SDatePicker, SDateRangePicker, SDivider, SDropdownButton, SExpansionItem, SField, SFilePicker, SForm, SGhostButton, SGnb, SGuide, SIcon, SInput, SKeyValueTable, SLayout, SLayoutContext, SLinearProgress, SLoadingContainer, SLoadingModal, SLoadingViewport, SModal, SNumberInput, SPage, SPagination, SPopover, SPopup, SPortal, SRadio, SRadioButton, SRadioGroup, SScrollArea, SSelect, SStepper, SSwitch, STEPPER_SIZES, STable, STabs, STag, STextLink, STextarea, STimePicker, STimeRangePicker, SToast, SToastContainer, SToggle, STooltip, TAG_COLORS, TAG_SHAPES, TAG_SIZES, TIMEPICKER_SIZES, TIMEPICKER_SIZE_CONFIG, buttonPreset, cn, findGnbAncestors, findGnbRailValue, isColorKey, loading, resolveColor, useSLayout };
|
|
11885
|
+
export { BADGE_COLORS, BUTTON_COLORS, BUTTON_SIZES, COLOR_KEYS, GNB_COLORS, GNB_COMMON, GNB_FOLD_MS, GNB_HEADER, GNB_MENU, GNB_MENU_WIDTH, GNB_RAIL, GNB_RAIL_WIDTH, ICONS, PAGE_BACKGROUNDS, SActionModal, SBadge, SBarcodeInput, SButton, SCROLL_AREA_AXES, SCalendar, SCallout, SCard, SCheckbox, SChip, SChipInput, SCircleProgress, SConfirmModal, SDatePicker, SDateRangePicker, SDivider, SDropdownButton, SExpansionItem, SField, SFilePicker, SForm, SGhostButton, SGnb, SGuide, SIcon, SInput, SKeyValueTable, SLayout, SLayoutContext, SLinearProgress, SLoadingContainer, SLoadingModal, SLoadingViewport, SModal, SNumberInput, SPage, SPagination, SPopover, SPopup, SPortal, SRadio, SRadioButton, SRadioGroup, SScrollArea, SSelect, SStepper, SSwitch, STEPPER_SIZES, STable, STableBar, STabs, STag, STextLink, STextarea, STimePicker, STimeRangePicker, SToast, SToastContainer, SToggle, STooltip, TAG_COLORS, TAG_SHAPES, TAG_SIZES, TIMEPICKER_SIZES, TIMEPICKER_SIZE_CONFIG, buttonPreset, cn, findGnbAncestors, findGnbRailValue, isColorKey, loading, resolveColor, useSLayout };
|
|
11807
11886
|
//# sourceMappingURL=index.js.map
|
|
11808
11887
|
//# sourceMappingURL=index.js.map
|