sellmate-design-system-react 0.7.0 → 0.8.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.
Files changed (85) hide show
  1. package/dist/components/SBarcodeInput/SBarcodeInput.cjs +61 -49
  2. package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
  3. package/dist/components/SBarcodeInput/SBarcodeInput.js +61 -49
  4. package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
  5. package/dist/components/SChipInput/SChipInput.cjs +64 -49
  6. package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
  7. package/dist/components/SChipInput/SChipInput.js +64 -49
  8. package/dist/components/SChipInput/SChipInput.js.map +1 -1
  9. package/dist/components/SDatePicker/SDatePicker.cjs +61 -49
  10. package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
  11. package/dist/components/SDatePicker/SDatePicker.js +61 -49
  12. package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
  13. package/dist/components/SDateRangePicker/SDateRangePicker.cjs +61 -49
  14. package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
  15. package/dist/components/SDateRangePicker/SDateRangePicker.js +61 -49
  16. package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
  17. package/dist/components/SField/SField.cjs +61 -49
  18. package/dist/components/SField/SField.cjs.map +1 -1
  19. package/dist/components/SField/SField.d.ts +5 -2
  20. package/dist/components/SField/SField.js +61 -49
  21. package/dist/components/SField/SField.js.map +1 -1
  22. package/dist/components/SFilePicker/SFilePicker.cjs +61 -49
  23. package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
  24. package/dist/components/SFilePicker/SFilePicker.js +61 -49
  25. package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
  26. package/dist/components/SInput/SInput.cjs +61 -49
  27. package/dist/components/SInput/SInput.cjs.map +1 -1
  28. package/dist/components/SInput/SInput.js +61 -49
  29. package/dist/components/SInput/SInput.js.map +1 -1
  30. package/dist/components/SKeyValueTable/SKeyValueTable.cjs +72 -50
  31. package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
  32. package/dist/components/SKeyValueTable/SKeyValueTable.js +72 -50
  33. package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
  34. package/dist/components/SNumberInput/SNumberInput.cjs +61 -49
  35. package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
  36. package/dist/components/SNumberInput/SNumberInput.js +61 -49
  37. package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
  38. package/dist/components/SPage/SPage.cjs +19 -2
  39. package/dist/components/SPage/SPage.cjs.map +1 -1
  40. package/dist/components/SPage/SPage.d.ts +7 -1
  41. package/dist/components/SPage/SPage.js +19 -2
  42. package/dist/components/SPage/SPage.js.map +1 -1
  43. package/dist/components/SPage/index.d.ts +1 -0
  44. package/dist/components/SPage/page.config.d.ts +8 -0
  45. package/dist/components/SPopup/SPopup.cjs.map +1 -1
  46. package/dist/components/SPopup/SPopup.js.map +1 -1
  47. package/dist/components/SPortal/SPortal.cjs +3 -0
  48. package/dist/components/SPortal/SPortal.cjs.map +1 -1
  49. package/dist/components/SPortal/SPortal.d.ts +3 -1
  50. package/dist/components/SPortal/SPortal.js +3 -0
  51. package/dist/components/SPortal/SPortal.js.map +1 -1
  52. package/dist/components/SScrollArea/SScrollArea.cjs.map +1 -1
  53. package/dist/components/SScrollArea/SScrollArea.js.map +1 -1
  54. package/dist/components/SSelect/SSelect.cjs +72 -50
  55. package/dist/components/SSelect/SSelect.cjs.map +1 -1
  56. package/dist/components/SSelect/SSelect.js +72 -50
  57. package/dist/components/SSelect/SSelect.js.map +1 -1
  58. package/dist/components/STable/STable.cjs +78 -56
  59. package/dist/components/STable/STable.cjs.map +1 -1
  60. package/dist/components/STable/STable.d.ts +2 -0
  61. package/dist/components/STable/STable.js +78 -56
  62. package/dist/components/STable/STable.js.map +1 -1
  63. package/dist/components/STextarea/STextarea.cjs +61 -49
  64. package/dist/components/STextarea/STextarea.cjs.map +1 -1
  65. package/dist/components/STextarea/STextarea.js +61 -49
  66. package/dist/components/STextarea/STextarea.js.map +1 -1
  67. package/dist/components/STimePicker/STimePicker.cjs +61 -49
  68. package/dist/components/STimePicker/STimePicker.cjs.map +1 -1
  69. package/dist/components/STimePicker/STimePicker.js +61 -49
  70. package/dist/components/STimePicker/STimePicker.js.map +1 -1
  71. package/dist/components/STimeRangePicker/STimeRangePicker.cjs +61 -49
  72. package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -1
  73. package/dist/components/STimeRangePicker/STimeRangePicker.js +61 -49
  74. package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -1
  75. package/dist/index.cjs +95 -58
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +95 -59
  78. package/dist/index.js.map +1 -1
  79. package/dist/lib/scrollbar.cjs +2 -0
  80. package/dist/lib/scrollbar.cjs.map +1 -1
  81. package/dist/lib/scrollbar.d.ts +13 -1
  82. package/dist/lib/scrollbar.js +2 -1
  83. package/dist/lib/scrollbar.js.map +1 -1
  84. package/dist/styles.css +53 -3
  85. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2913,6 +2913,7 @@ var SDivider = forwardRef(function SDivider2({ vertical = false, className, styl
2913
2913
  var FIREFOX_SCROLLBAR_CLASS = "supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-width:thin] supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-color:var(--color-grey-45)_transparent]";
2914
2914
  var SCROLLBAR_CLASS = `${FIREFOX_SCROLLBAR_CLASS} [&::-webkit-scrollbar]:h-[12px] [&::-webkit-scrollbar]:w-[12px] [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:border-2 [&::-webkit-scrollbar-thumb]:border-solid [&::-webkit-scrollbar-thumb]:border-transparent [&::-webkit-scrollbar-thumb]:bg-[var(--color-grey-45)] [&::-webkit-scrollbar-thumb]:bg-clip-padding`;
2915
2915
  var SCROLLBAR_TRACK_BG_CLASS = "supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-color:var(--color-grey-45)_var(--color-grey-10)] [&::-webkit-scrollbar]:bg-[var(--color-grey-10)] [&::-webkit-scrollbar-track]:bg-[var(--color-grey-10)]";
2916
+ var SCROLLBAR_TRACK_BG_WHITE_CLASS = "supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-color:var(--color-grey-45)_var(--color-white)] [&::-webkit-scrollbar]:bg-[var(--color-white)] [&::-webkit-scrollbar-track]:bg-[var(--color-white)]";
2916
2917
  var SCROLLBAR_TRACK_BORDER_CLASS = "[&::-webkit-scrollbar-track:vertical]:[border-left:1px_solid_var(--sys-color-border-default)] [&::-webkit-scrollbar-track:horizontal]:[border-top:1px_solid_var(--sys-color-border-default)] [&::-webkit-scrollbar-thumb:vertical]:[border-left-width:3px] [&::-webkit-scrollbar-thumb:horizontal]:[border-top-width:3px]";
2917
2918
  var AXIS_CLASS = {
2918
2919
  vertical: "overflow-x-hidden overflow-y-auto",
@@ -4398,6 +4399,7 @@ function SPortal({
4398
4399
  viewportPadding = 0,
4399
4400
  onOpenAutoFocus,
4400
4401
  onCloseAutoFocus,
4402
+ onPointerDownOutside,
4401
4403
  children,
4402
4404
  className,
4403
4405
  style,
@@ -4426,7 +4428,9 @@ function SPortal({
4426
4428
  onPointerDownOutside: (e) => {
4427
4429
  if (persistent || anchorRef.current?.contains(e.target)) {
4428
4430
  e.preventDefault();
4431
+ return;
4429
4432
  }
4433
+ onPointerDownOutside?.(e);
4430
4434
  },
4431
4435
  onFocusOutside: (e) => {
4432
4436
  if (persistent || anchorRef.current?.contains(e.target)) {
@@ -5561,14 +5565,24 @@ var SGnb = forwardRef(function SGnb2({
5561
5565
  }
5562
5566
  );
5563
5567
  });
5564
- var SPage = forwardRef(function SPage2({ className, style, children, ...rest }, ref) {
5568
+ var BACKGROUND_CLASS = {
5569
+ frame: `bg-[var(--sys-color-bg-frame)] ${SCROLLBAR_TRACK_BORDER_CLASS} ${SCROLLBAR_TRACK_BG_CLASS}`,
5570
+ neutral: `bg-[var(--sys-color-bg-neutralLight)] ${SCROLLBAR_TRACK_BORDER_CLASS} ${SCROLLBAR_TRACK_BG_WHITE_CLASS}`,
5571
+ screen: `bg-[var(--sys-color-bg-screen)] ${SCROLLBAR_TRACK_BORDER_CLASS} ${SCROLLBAR_TRACK_BG_CLASS}`
5572
+ };
5573
+ var SPage = forwardRef(function SPage2({ background = "frame", className, style, children, ...rest }, ref) {
5565
5574
  const layout = useContext(SLayoutContext);
5566
5575
  const gridStyle = layout?.header === "full" ? { gridColumn: 2, gridRow: 2 } : void 0;
5567
5576
  return /* @__PURE__ */ jsx(
5568
5577
  "main",
5569
5578
  {
5570
5579
  ref,
5571
- className: cn("box-border min-h-0 min-w-0 flex-1 overflow-auto p-20", className),
5580
+ className: cn(
5581
+ "box-border min-h-0 min-w-0 flex-1 overflow-auto p-20",
5582
+ SCROLLBAR_CLASS,
5583
+ BACKGROUND_CLASS[background],
5584
+ className
5585
+ ),
5572
5586
  style: { ...gridStyle, ...style },
5573
5587
  ...rest,
5574
5588
  children
@@ -5576,6 +5590,9 @@ var SPage = forwardRef(function SPage2({ className, style, children, ...rest },
5576
5590
  );
5577
5591
  });
5578
5592
 
5593
+ // src/components/SPage/page.config.ts
5594
+ var PAGE_BACKGROUNDS = ["frame", "neutral", "screen"];
5595
+
5579
5596
  // src/components/STabs/tabs.config.ts
5580
5597
  var TAB_MAIN_SIZE = {
5581
5598
  md: { height: 36, paddingX: 24 },
@@ -6128,6 +6145,7 @@ var SField = forwardRef(function SField2({
6128
6145
  const resolvedSuccess = status === "pass";
6129
6146
  const showError = resolvedError && errorMessage !== "";
6130
6147
  const interactive = !disabled && !readOnly;
6148
+ const hug = cssLen(width) !== void 0;
6131
6149
  const borderColor = borderless ? "transparent" : disabled ? "var(--color-grey-45)" : interactive && focused ? "var(--sys-color-field-border-focus)" : resolvedSuccess ? "var(--sys-color-field-border-success)" : resolvedError ? "var(--sys-color-field-border-danger)" : "var(--sys-color-field-border-default)";
6132
6150
  const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
6133
6151
  const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
@@ -6136,7 +6154,13 @@ var SField = forwardRef(function SField2({
6136
6154
  {
6137
6155
  ref: rootRef,
6138
6156
  "data-name": name || void 0,
6139
- className: cn("inline-flex h-fit w-full flex-col", className),
6157
+ className: cn(
6158
+ "h-fit flex-col",
6159
+ // hug 시 inline-flex 를 유지하면 기존에 세로로 쌓여 있던 필드들이 한 줄에 붙어버리므로
6160
+ // 블록 레벨(flex)로 두어 쌓임은 그대로 유지한다. 나란히 놓으려면 부모를 flex 로.
6161
+ hug ? "flex w-fit max-w-full" : "inline-flex w-full",
6162
+ className
6163
+ ),
6140
6164
  style,
6141
6165
  onMouseEnter,
6142
6166
  onMouseLeave,
@@ -6174,55 +6198,60 @@ var SField = forwardRef(function SField2({
6174
6198
  ]
6175
6199
  }
6176
6200
  ),
6177
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
6178
- /* @__PURE__ */ jsxs(
6179
- "div",
6180
- {
6181
- className: cn(
6182
- "relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
6183
- interactive && !borderless && "hover:border-(--sys-color-field-border-focus) hover:shadow-[0px_0px_4px_0px_#0071ff66] focus-within:border-(--sys-color-field-border-focus) focus-within:shadow-[0px_0px_4px_0px_#0071ff66]",
6184
- disabled && "cursor-not-allowed"
6201
+ /* @__PURE__ */ jsxs(
6202
+ "div",
6203
+ {
6204
+ className: cn("flex min-w-0 flex-col", !hug && "flex-1"),
6205
+ style: { width: cssLen(width), minWidth: cssLen(minWidth) },
6206
+ children: [
6207
+ /* @__PURE__ */ jsxs(
6208
+ "div",
6209
+ {
6210
+ className: cn(
6211
+ "relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
6212
+ interactive && !borderless && "hover:border-(--sys-color-field-border-focus) hover:shadow-[0px_0px_4px_0px_#0071ff66] focus-within:border-(--sys-color-field-border-focus) focus-within:shadow-[0px_0px_4px_0px_#0071ff66]",
6213
+ disabled && "cursor-not-allowed"
6214
+ ),
6215
+ style: {
6216
+ // @ts-expect-error CSS 변수
6217
+ "--field-bc": borderColor,
6218
+ // focused/hovered prop이 명시된 경우 강조를 즉시 반영
6219
+ ...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
6220
+ ...multiline ? { minHeight: s.height } : { height: s.height },
6221
+ "borderRadius": s.radius,
6222
+ "background": bgColor,
6223
+ "color": textColor
6224
+ },
6225
+ "data-focused": focused || void 0,
6226
+ "data-hovered": hovered || void 0,
6227
+ children: [
6228
+ effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
6229
+ "div",
6230
+ {
6231
+ className: "flex shrink-0 items-center gap-(--cmp-field-addonLabel-gap) whitespace-nowrap border-r border-solid px-(--cmp-field-addonLabel-paddingX) text-12 font-medium leading-20",
6232
+ style: {
6233
+ // 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
6234
+ width: cssLen(labelWidth),
6235
+ justifyContent: ALIGN[addonAlign],
6236
+ background: "var(--cmp-field-addonLabel-bg)",
6237
+ borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
6238
+ borderTopLeftRadius: s.radius - 1,
6239
+ borderBottomLeftRadius: s.radius - 1
6240
+ },
6241
+ children: [
6242
+ icon && !label && /* @__PURE__ */ jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
6243
+ effectiveAddonLabel
6244
+ ]
6245
+ }
6246
+ ),
6247
+ /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1", children })
6248
+ ]
6249
+ }
6185
6250
  ),
6186
- style: {
6187
- // @ts-expect-error CSS 변수
6188
- "--field-bc": borderColor,
6189
- // focused/hovered prop이 명시된 경우 강조를 즉시 반영
6190
- ...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
6191
- ...multiline ? { minHeight: s.height } : { height: s.height },
6192
- "minWidth": cssLen(minWidth),
6193
- "width": cssLen(width),
6194
- "borderRadius": s.radius,
6195
- "background": bgColor,
6196
- "color": textColor
6197
- },
6198
- "data-focused": focused || void 0,
6199
- "data-hovered": hovered || void 0,
6200
- children: [
6201
- effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
6202
- "div",
6203
- {
6204
- className: "flex shrink-0 items-center gap-(--cmp-field-addonLabel-gap) whitespace-nowrap border-r border-solid px-(--cmp-field-addonLabel-paddingX) text-12 font-medium leading-20",
6205
- style: {
6206
- // 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
6207
- width: cssLen(labelWidth),
6208
- justifyContent: ALIGN[addonAlign],
6209
- background: "var(--cmp-field-addonLabel-bg)",
6210
- borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
6211
- borderTopLeftRadius: s.radius - 1,
6212
- borderBottomLeftRadius: s.radius - 1
6213
- },
6214
- children: [
6215
- icon && !label && /* @__PURE__ */ jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
6216
- effectiveAddonLabel
6217
- ]
6218
- }
6219
- ),
6220
- /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1", children })
6221
- ]
6222
- }
6223
- ),
6224
- showError ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-hint-color)", children: hint }) : null
6225
- ] })
6251
+ showError ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-hint-color)", children: hint }) : null
6252
+ ]
6253
+ }
6254
+ )
6226
6255
  ] })
6227
6256
  }
6228
6257
  );
@@ -6305,6 +6334,7 @@ var SSelect = forwardRef(function SSelect2({
6305
6334
  const triggerRef = useRef(null);
6306
6335
  const searchInputRef = useRef(null);
6307
6336
  const listRef = useRef(null);
6337
+ const dismissedByPointerRef = useRef(false);
6308
6338
  const flat = useMemo(() => flattenOptions(options), [options]);
6309
6339
  const selectable = useMemo(() => selectableOptions(flat), [flat]);
6310
6340
  const hasLeaf = useMemo(() => flat.some((o) => !o.isGroup), [flat]);
@@ -6334,7 +6364,9 @@ var SSelect = forwardRef(function SSelect2({
6334
6364
  const commitOpen = (next) => {
6335
6365
  setOpen(next);
6336
6366
  onOpenChange?.(next);
6337
- if (!next) {
6367
+ if (next) {
6368
+ dismissedByPointerRef.current = false;
6369
+ } else {
6338
6370
  setPendingOpen(false);
6339
6371
  setSearch("");
6340
6372
  if (rules && rules.length > 0) {
@@ -6558,8 +6590,12 @@ var SSelect = forwardRef(function SSelect2({
6558
6590
  event.preventDefault();
6559
6591
  requestAnimationFrame(() => searchInputRef.current?.focus());
6560
6592
  },
6593
+ onPointerDownOutside: () => {
6594
+ dismissedByPointerRef.current = true;
6595
+ },
6561
6596
  onCloseAutoFocus: (event) => {
6562
6597
  event.preventDefault();
6598
+ if (dismissedByPointerRef.current) return;
6563
6599
  triggerRef.current?.focus();
6564
6600
  },
6565
6601
  className: "rounded-[var(--cmp-listBox-radius)] bg-[var(--cmp-listBox-bg)] shadow-[2px_2px_12px_2px_rgba(0,0,0,0.1)]",
@@ -7065,7 +7101,7 @@ var STable = forwardRef(function STable2({
7065
7101
  position: "sticky",
7066
7102
  left: isLeft ? "var(--sticky-left-offset)" : void 0,
7067
7103
  right: isRight ? "var(--sticky-right-offset)" : void 0,
7068
- zIndex: 3
7104
+ zIndex: 6
7069
7105
  };
7070
7106
  };
7071
7107
  const stickyShadowClass = (i) => {
@@ -7122,7 +7158,7 @@ var STable = forwardRef(function STable2({
7122
7158
  {
7123
7159
  className: cn(
7124
7160
  // 원본 .th--selected: 48px 고정폭, 항상 left sticky, 체크박스 중앙정렬
7125
- "sticky left-0 z-[4] border-b border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] text-center align-middle",
7161
+ "sticky left-0 z-[7] border-b border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] text-center align-middle",
7126
7162
  stickyLeft === 0 && scrolledLeft && "shadow-[5px_0_8px_0_rgba(34,34,34,0.1)]"
7127
7163
  ),
7128
7164
  style: {
@@ -7147,13 +7183,13 @@ var STable = forwardRef(function STable2({
7147
7183
  {
7148
7184
  className: cn(
7149
7185
  "relative border-b border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] px-[16px] text-[12px] font-medium leading-[20px] text-[color:var(--sys-color-fg-primary)]",
7150
- stickyInfo(i).isSticky && "z-[4]",
7186
+ stickyInfo(i).isSticky && "z-[6]",
7151
7187
  stickyShadowClass(i),
7152
7188
  col.thClass
7153
7189
  ),
7154
7190
  style: { textAlign: col.align ?? "left", ...cellStyle(i), ...col.thStyle },
7155
7191
  children: [
7156
- /* @__PURE__ */ jsxs(
7192
+ /* @__PURE__ */ jsx(
7157
7193
  "span",
7158
7194
  {
7159
7195
  className: cn(
@@ -7162,10 +7198,10 @@ var STable = forwardRef(function STable2({
7162
7198
  col.align === "center" && "justify-center",
7163
7199
  col.align === "right" && "justify-end"
7164
7200
  ),
7165
- children: [
7201
+ children: col.renderHeader ? col.renderHeader(col, i) : /* @__PURE__ */ jsxs(Fragment, { children: [
7166
7202
  col.icon && /* @__PURE__ */ jsx(SIcon, { name: col.icon, size: 16, color: col.iconColor }),
7167
7203
  /* @__PURE__ */ jsx("span", { className: "truncate", children: col.label })
7168
- ]
7204
+ ] })
7169
7205
  }
7170
7206
  ),
7171
7207
  resizable && !col.autoWidth && i < visibleCols.length - 1 && // 원본 th__resizer: 셀 우측 경계 안쪽 4px 그립(좌우 1px #CCCCCC 라인, 세로 16px).
@@ -11308,6 +11344,6 @@ function STimeRangePicker({
11308
11344
  );
11309
11345
  }
11310
11346
 
11311
- 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, SActionModal, SBadge, SBarcodeInput, SButton, SCROLL_AREA_AXES, SCalendar, SCallout, SCard, SCheckbox, SChip, SChipInput, SCircleProgress, SConfirmModal, SDatePicker, SDateRangePicker, SDivider, SDropdownButton, SField, SFilePicker, SForm, SGhostButton, SGnb, SGuide, SIcon, SInput, SKeyValueTable, SLayout, SLayoutContext, SLinearProgress, SLoadingContainer, SLoadingModal, SLoadingViewport, 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 };
11347
+ 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, SField, SFilePicker, SForm, SGhostButton, SGnb, SGuide, SIcon, SInput, SKeyValueTable, SLayout, SLayoutContext, SLinearProgress, SLoadingContainer, SLoadingModal, SLoadingViewport, 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 };
11312
11348
  //# sourceMappingURL=index.js.map
11313
11349
  //# sourceMappingURL=index.js.map