@stn-uiux/pub-ui-react 0.1.63 → 0.1.64

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
@@ -177,13 +177,12 @@ function resolveButtonWidthProps(fullWidth, width, defaultPreset) {
177
177
  // src/components/StnIcon.tsx
178
178
  import { resolveSystemIconSrcFromName } from "@stn-uiux/pub-ui/data/stnSystemIcons";
179
179
  import { jsx as jsx2 } from "react/jsx-runtime";
180
- function StnIcon({ name, src, color, size = 24, className, style }) {
180
+ function StnIcon({ name, src, color, size, className, style }) {
181
181
  if (name && src) {
182
182
  console.warn("[StnIcon] `name` and `src` cannot be used together. Using `src`.");
183
183
  }
184
184
  const sizeStyle = {
185
- width: size,
186
- height: size,
185
+ ...size !== void 0 ? { width: size, height: size } : void 0,
187
186
  ...style
188
187
  };
189
188
  const resolvedSrc = src ?? (name ? resolveSystemIconSrcFromName(name) : null);
@@ -358,6 +357,7 @@ var StnTooltip = forwardRef2(
358
357
  iconPosition = "left",
359
358
  leadingIcon,
360
359
  trailingIcon,
360
+ offset,
361
361
  open,
362
362
  alwaysVisible,
363
363
  tooltipClassName,
@@ -368,11 +368,16 @@ var StnTooltip = forwardRef2(
368
368
  const glyphPx = TOOLTIP_ICON_PX[size] ?? 14;
369
369
  const finalLeadingIcon = leadingIcon != null ? resolveIconNode2(leadingIcon, glyphPx) : icon != null && iconPosition !== "right" ? resolveIconNode2(icon, glyphPx) : null;
370
370
  const finalTrailingIcon = trailingIcon != null ? resolveIconNode2(trailingIcon, glyphPx) : icon != null && iconPosition === "right" ? resolveIconNode2(icon, glyphPx) : null;
371
+ const resolvedOffset = offset !== void 0 ? typeof offset === "number" ? `${offset}px` : /^space[-_]\d+$/.test(String(offset).trim()) ? `var(--stn-${String(offset).trim().replace("_", "-")})` : /^\d+$/.test(String(offset).trim()) ? `${String(offset).trim()}px` : String(offset).trim() : void 0;
372
+ const tooltipStyle = resolvedOffset !== void 0 ? {
373
+ "--stn-tooltip-offset": resolvedOffset
374
+ } : void 0;
371
375
  const tooltipElement = /* @__PURE__ */ jsxs2(
372
376
  "div",
373
377
  {
374
378
  ref: !children ? ref : void 0,
375
379
  role: "tooltip",
380
+ style: tooltipStyle,
376
381
  className: cn(
377
382
  "stn-tooltip",
378
383
  variant,
@@ -1926,38 +1931,6 @@ var StnStatusSeverity = forwardRef11(function StnStatusSeverity2({
1926
1931
  ] });
1927
1932
  });
1928
1933
  StnStatusSeverity.displayName = "StnStatusSeverity";
1929
- var ALL_SEVERITIES = ["critical", "major", "minor", "warning"];
1930
- function StnStatusSeverityFilter({
1931
- value = ALL_SEVERITIES,
1932
- onChange,
1933
- disabledSeverities = [],
1934
- showIcon = true,
1935
- className = ""
1936
- }) {
1937
- const handleToggle = (sev) => {
1938
- if (!onChange) return;
1939
- const exists = value.includes(sev);
1940
- const next = exists ? value.filter((item) => item !== sev) : [...value, sev];
1941
- onChange(next);
1942
- };
1943
- return /* @__PURE__ */ jsx16("div", { className: `stn-status-severity-filter-group ${className}`.trim(), role: "group", "aria-label": "\uC2EC\uAC01\uB3C4 \uD544\uD130", children: ALL_SEVERITIES.map((sev) => {
1944
- const isActive = value.includes(sev);
1945
- const isDisabled = disabledSeverities.includes(sev);
1946
- return /* @__PURE__ */ jsx16(
1947
- StnStatusSeverity,
1948
- {
1949
- severity: sev,
1950
- variant: "filter",
1951
- showIcon,
1952
- active: isActive,
1953
- disabled: isDisabled,
1954
- onClick: () => !isDisabled && handleToggle(sev)
1955
- },
1956
- sev
1957
- );
1958
- }) });
1959
- }
1960
- StnStatusSeverityFilter.displayName = "StnStatusSeverityFilter";
1961
1934
  function StnStatus(props) {
1962
1935
  switch (props.type) {
1963
1936
  case "dot-group": {
@@ -1972,10 +1945,6 @@ function StnStatus(props) {
1972
1945
  const { type: _, ...rest } = props;
1973
1946
  return /* @__PURE__ */ jsx16(StnStatusSeverity, { ...rest });
1974
1947
  }
1975
- case "severity-filter": {
1976
- const { type: _, ...rest } = props;
1977
- return /* @__PURE__ */ jsx16(StnStatusSeverityFilter, { ...rest });
1978
- }
1979
1948
  case "flow": {
1980
1949
  const { type: _, ...rest } = props;
1981
1950
  return /* @__PURE__ */ jsx16(StnStatusFlow, { ...rest });
@@ -1990,7 +1959,6 @@ function StnStatus(props) {
1990
1959
  StnStatus.Dot = StnStatusDot;
1991
1960
  StnStatus.DotGroup = StnStatusDotGroup;
1992
1961
  StnStatus.Severity = StnStatusSeverity;
1993
- StnStatus.SeverityFilter = StnStatusSeverityFilter;
1994
1962
  StnStatus.Switch = StnStatusSwitch;
1995
1963
  StnStatus.Flow = StnStatusFlow;
1996
1964
 
@@ -2517,7 +2485,7 @@ function TreeNodeIcon({
2517
2485
  icon
2518
2486
  }) {
2519
2487
  if (icon != null) {
2520
- return /* @__PURE__ */ jsx18("span", { className: "stn-tree__cell stn-tree__cell--icon stn-tree__icon stn-tree__icon--custom", children: typeof icon === "string" ? /* @__PURE__ */ jsx18(StnIcon, { name: icon, size: 16, className: "stn-tree__icon-glyph" }) : icon });
2488
+ return /* @__PURE__ */ jsx18("span", { className: "stn-tree__cell stn-tree__cell--icon stn-tree__icon stn-tree__icon--custom", children: typeof icon === "string" ? /* @__PURE__ */ jsx18(StnIcon, { name: icon, className: "stn-tree__icon-glyph" }) : icon });
2521
2489
  }
2522
2490
  if (kind === "server") {
2523
2491
  return /* @__PURE__ */ jsxs12("span", { className: "stn-tree__cell stn-tree__cell--icon stn-tree__icon stn-tree__icon--server", children: [
@@ -2525,7 +2493,6 @@ function TreeNodeIcon({
2525
2493
  StnIcon,
2526
2494
  {
2527
2495
  name: "fill/server_2_tree_light",
2528
- size: 16,
2529
2496
  className: "stn-tree__icon-glyph stn-tree__server-icon stn-tree__server-icon--light stn-icon--color"
2530
2497
  }
2531
2498
  ),
@@ -2533,7 +2500,6 @@ function TreeNodeIcon({
2533
2500
  StnIcon,
2534
2501
  {
2535
2502
  name: "fill/server_2",
2536
- size: 16,
2537
2503
  className: "stn-tree__icon-glyph stn-tree__server-icon stn-tree__server-icon--dark stn-icon--color"
2538
2504
  }
2539
2505
  )
@@ -3165,7 +3131,7 @@ var StnBadge = React.forwardRef(
3165
3131
  displayContent = `${max}+`;
3166
3132
  }
3167
3133
  const positionClass = `${anchorOrigin.vertical}-${anchorOrigin.horizontal}`;
3168
- const colorClass2 = color;
3134
+ const colorClass3 = color;
3169
3135
  const appearanceClass = appearance;
3170
3136
  const isStandalone = !children;
3171
3137
  const customBadgeStyle = {
@@ -3182,7 +3148,7 @@ var StnBadge = React.forwardRef(
3182
3148
  "stn-badge",
3183
3149
  isDot ? "dot" : "standard",
3184
3150
  appearanceClass,
3185
- colorClass2,
3151
+ colorClass3,
3186
3152
  !isStandalone && positionClass,
3187
3153
  isStandalone && "standalone",
3188
3154
  invisible && "is-invisible",
@@ -3238,6 +3204,7 @@ function StnChip(props) {
3238
3204
  children,
3239
3205
  grade,
3240
3206
  accent,
3207
+ dashed = false,
3241
3208
  onClick,
3242
3209
  onKeyDown,
3243
3210
  role: roleProp,
@@ -3248,7 +3215,7 @@ function StnChip(props) {
3248
3215
  const resolvedShape = rawShape === "rounded" || rawShape === "square" ? "square" : rawShape;
3249
3216
  const isOutline = variant === "outline" || variant === "outlined" || variant === "border";
3250
3217
  const isSubtle = bgOpacity === 50 || bgOpacity === "50" || bgOpacity === "50%" || bgOpacity === 0.5 || variant === "subtle" || variant === "soft" || variant === "tinted" || variant === "contained-50" || variant === "filled-50";
3251
- const variantClass6 = isOutline ? "outline" : isSubtle ? "subtle contained-50 bg-50" : "filled";
3218
+ const variantClass7 = isOutline ? "outline" : isSubtle ? "subtle contained-50 bg-50" : "filled";
3252
3219
  const resolvedColor = color ?? grade;
3253
3220
  let content = children ?? label;
3254
3221
  if (!content && grade && STN_GRADE_SOURCE[grade]) {
@@ -3305,10 +3272,11 @@ function StnChip(props) {
3305
3272
  tabIndex,
3306
3273
  className: cn(
3307
3274
  "stn-chip",
3308
- variantClass6,
3275
+ variantClass7,
3309
3276
  size,
3310
3277
  resolvedShape,
3311
3278
  resolvedColor,
3279
+ dashed && "dashed",
3312
3280
  isClickable && "clickable",
3313
3281
  onDelete && "deletable",
3314
3282
  accent && `stn-chip--accent-${accent}`,
@@ -4126,17 +4094,170 @@ var StnTextField = forwardRef23(function StnTextField2({
4126
4094
  );
4127
4095
  });
4128
4096
 
4129
- // src/components/StnDateRangeField.tsx
4130
- import { forwardRef as forwardRef24, useId as useId11 } from "react";
4097
+ // src/components/StnTextArea.tsx
4131
4098
  import {
4132
- formatStnDateRangeFieldValue
4133
- } from "@stn-uiux/pub-ui/data/stnDateRangeField";
4099
+ forwardRef as forwardRef24,
4100
+ useId as useId11,
4101
+ useState as useState10
4102
+ } from "react";
4134
4103
  import { jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
4104
+ function normalizeSize2(size) {
4105
+ return size ?? "md";
4106
+ }
4107
+ function variantClass3(variant) {
4108
+ if (variant === "filled") return "filled";
4109
+ if (variant === "standard") return "standard";
4110
+ if (variant === "transparent") return "transparent";
4111
+ return "outlined";
4112
+ }
4113
+ function colorClass2(color) {
4114
+ if (!color || color === "primary" || color === "secondary") return void 0;
4115
+ return color;
4116
+ }
4117
+ function resizeClass(resize) {
4118
+ if (resize === "none") return "resize-none";
4119
+ if (resize === "horizontal") return "resize-horizontal";
4120
+ if (resize === "both") return "resize-both";
4121
+ return "resize-vertical";
4122
+ }
4135
4123
  function resolveGlyph3(node) {
4136
4124
  if (typeof node === "string") return /* @__PURE__ */ jsx35(StnIcon, { name: node, size: 16, color: "currentColor" });
4137
4125
  return node;
4138
4126
  }
4139
- function normalizeSize2(size) {
4127
+ var StnTextArea = forwardRef24(function StnTextArea2({
4128
+ size = "md",
4129
+ variant = "outlined",
4130
+ color,
4131
+ invalid,
4132
+ fullWidth,
4133
+ width,
4134
+ label,
4135
+ labelIcon,
4136
+ labelPosition = "top",
4137
+ required,
4138
+ helperText,
4139
+ showCount = false,
4140
+ resize = "vertical",
4141
+ rows = 3,
4142
+ maxLength,
4143
+ className,
4144
+ disabled,
4145
+ id: idProp,
4146
+ value,
4147
+ defaultValue,
4148
+ onChange,
4149
+ "aria-invalid": ariaInvalid,
4150
+ "aria-describedby": ariaDescribedBy,
4151
+ ...rest
4152
+ }, ref) {
4153
+ const autoId = useId11();
4154
+ const id = idProp ?? autoId;
4155
+ const isControlled = value !== void 0;
4156
+ const [uncontrolledLength, setUncontrolledLength] = useState10(() => {
4157
+ if (defaultValue != null) return String(defaultValue).length;
4158
+ return 0;
4159
+ });
4160
+ const currentLength = isControlled ? String(value ?? "").length : uncontrolledLength;
4161
+ const handleTextChange = (e) => {
4162
+ if (!isControlled) {
4163
+ setUncontrolledLength(e.target.value.length);
4164
+ }
4165
+ onChange?.(e);
4166
+ };
4167
+ const hasLabel = label != null && label !== "";
4168
+ const hasHelper = helperText != null && helperText !== "";
4169
+ const hasFooter = hasHelper || showCount;
4170
+ const hasWrap = hasLabel || hasFooter;
4171
+ const helperId = hasHelper ? `${id}-helper` : void 0;
4172
+ const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(" ") || void 0;
4173
+ const widthProps = resolveInputWidthProps("stn-text-area", fullWidth, width);
4174
+ const textAreaClass = cn(
4175
+ "stn-text-area",
4176
+ variantClass3(variant),
4177
+ normalizeSize2(size),
4178
+ colorClass2(color),
4179
+ resizeClass(resize),
4180
+ !hasWrap && widthProps.className,
4181
+ invalid && "invalid",
4182
+ className
4183
+ );
4184
+ const textareaElement = /* @__PURE__ */ jsx35(
4185
+ "textarea",
4186
+ {
4187
+ ref,
4188
+ id,
4189
+ rows,
4190
+ disabled,
4191
+ required,
4192
+ maxLength,
4193
+ value,
4194
+ defaultValue,
4195
+ onChange: handleTextChange,
4196
+ "aria-invalid": invalid ? true : ariaInvalid,
4197
+ "aria-describedby": describedBy,
4198
+ className: textAreaClass,
4199
+ style: hasWrap ? void 0 : widthProps.style,
4200
+ ...rest
4201
+ }
4202
+ );
4203
+ if (!hasWrap) {
4204
+ return textareaElement;
4205
+ }
4206
+ const labelElement = hasLabel ? /* @__PURE__ */ jsxs27("label", { htmlFor: id, className: "stn-text-area__label", children: [
4207
+ labelIcon ? /* @__PURE__ */ jsx35("span", { className: "stn-text-area__label-icon", "aria-hidden": "true", children: resolveGlyph3(labelIcon) }) : null,
4208
+ /* @__PURE__ */ jsx35("span", { className: "stn-text-area__label-text", children: label }),
4209
+ required && /* @__PURE__ */ jsx35("span", { className: "stn-text-area__required", "aria-hidden": "true", children: "*" })
4210
+ ] }) : null;
4211
+ const isRow = labelPosition === "left" || labelPosition === "right";
4212
+ return /* @__PURE__ */ jsxs27(
4213
+ "div",
4214
+ {
4215
+ className: cn(
4216
+ "stn-text-area-wrap",
4217
+ isRow ? "stn-text-area-wrap--row" : "stn-text-area-wrap--col",
4218
+ hasLabel && labelPosition === "left" && "stn-text-area-wrap--label-left",
4219
+ hasLabel && labelPosition === "right" && "stn-text-area-wrap--label-right",
4220
+ hasLabel && labelPosition === "top" && "stn-text-area-wrap--label-top",
4221
+ widthProps.className
4222
+ ),
4223
+ style: widthProps.style,
4224
+ children: [
4225
+ hasLabel && (labelPosition === "left" || labelPosition === "top") ? labelElement : null,
4226
+ /* @__PURE__ */ jsxs27("div", { className: "stn-text-area-wrap__body", children: [
4227
+ textareaElement,
4228
+ hasFooter && /* @__PURE__ */ jsxs27("div", { className: "stn-text-area__footer", children: [
4229
+ hasHelper ? /* @__PURE__ */ jsx35(
4230
+ "p",
4231
+ {
4232
+ id: helperId,
4233
+ className: cn("stn-text-area__helper", invalid && "stn-text-area__helper--error"),
4234
+ children: helperText
4235
+ }
4236
+ ) : /* @__PURE__ */ jsx35("span", {}),
4237
+ showCount && /* @__PURE__ */ jsxs27("span", { className: "stn-text-area__count", children: [
4238
+ currentLength,
4239
+ maxLength != null ? ` / ${maxLength}` : ""
4240
+ ] })
4241
+ ] })
4242
+ ] }),
4243
+ hasLabel && labelPosition === "right" ? labelElement : null
4244
+ ]
4245
+ }
4246
+ );
4247
+ });
4248
+ StnTextArea.displayName = "StnTextArea";
4249
+
4250
+ // src/components/StnDateRangeField.tsx
4251
+ import { forwardRef as forwardRef25, useId as useId12 } from "react";
4252
+ import {
4253
+ formatStnDateRangeFieldValue
4254
+ } from "@stn-uiux/pub-ui/data/stnDateRangeField";
4255
+ import { jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
4256
+ function resolveGlyph4(node) {
4257
+ if (typeof node === "string") return /* @__PURE__ */ jsx36(StnIcon, { name: node, size: 16, color: "currentColor" });
4258
+ return node;
4259
+ }
4260
+ function normalizeSize3(size) {
4140
4261
  if (!size) return "md";
4141
4262
  const s = String(size).toLowerCase();
4142
4263
  if (s === "s" || s === "sm") return "sm";
@@ -4145,9 +4266,9 @@ function normalizeSize2(size) {
4145
4266
  return "md";
4146
4267
  }
4147
4268
  function sizeClass3(size) {
4148
- return normalizeSize2(size);
4269
+ return normalizeSize3(size);
4149
4270
  }
4150
- function variantClass3(variant = "outline") {
4271
+ function variantClass4(variant = "outline") {
4151
4272
  if (variant === "transparent") return "transparent";
4152
4273
  return "";
4153
4274
  }
@@ -4157,7 +4278,7 @@ function resolveValue(value, format) {
4157
4278
  const trimmed = value.trim();
4158
4279
  return trimmed || null;
4159
4280
  }
4160
- var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4281
+ var StnDateRangeField = forwardRef25(function StnDateRangeField2({
4161
4282
  size = "md",
4162
4283
  variant = "outline",
4163
4284
  start,
@@ -4182,7 +4303,7 @@ var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4182
4303
  "aria-invalid": ariaInvalid,
4183
4304
  ...rest
4184
4305
  }, ref) {
4185
- const autoId = useId11();
4306
+ const autoId = useId12();
4186
4307
  const rootId = idProp ?? `stn-date-range-${autoId.replace(/:/g, "")}`;
4187
4308
  const startText = resolveValue(start, format);
4188
4309
  const endText = resolveValue(end, format);
@@ -4191,7 +4312,7 @@ var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4191
4312
  const hasLabel = label != null && label !== "";
4192
4313
  const hasHelper = helperText != null && helperText !== "";
4193
4314
  const hasWrap = hasLabel || hasHelper;
4194
- const buttonNode = /* @__PURE__ */ jsx35(
4315
+ const buttonNode = /* @__PURE__ */ jsx36(
4195
4316
  "button",
4196
4317
  {
4197
4318
  ref,
@@ -4202,7 +4323,7 @@ var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4202
4323
  className: cn(
4203
4324
  "stn-date-range-field",
4204
4325
  sizeClass3(size),
4205
- variantClass3(variant),
4326
+ variantClass4(variant),
4206
4327
  !hasWrap && widthProps.className,
4207
4328
  fullWidth && "stn-date-range-field--full w100p",
4208
4329
  invalid && "stn-date-range-field--invalid",
@@ -4211,25 +4332,25 @@ var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4211
4332
  ),
4212
4333
  style: !hasWrap ? widthProps.style ?? style : void 0,
4213
4334
  ...rest,
4214
- children: /* @__PURE__ */ jsxs27("span", { className: "stn-date-range-field__inner", children: [
4215
- /* @__PURE__ */ jsxs27("span", { className: "stn-date-range-field__text", children: [
4216
- /* @__PURE__ */ jsx35("span", { className: cn("stn-date-range-field__value", !startText && "is-placeholder"), children: startText ?? startPlaceholder }),
4217
- /* @__PURE__ */ jsx35("span", { className: "stn-date-range-field__sep", "aria-hidden": "true", children: "~" }),
4218
- /* @__PURE__ */ jsx35("span", { className: cn("stn-date-range-field__value", !endText && "is-placeholder"), children: endText ?? endPlaceholder })
4335
+ children: /* @__PURE__ */ jsxs28("span", { className: "stn-date-range-field__inner", children: [
4336
+ /* @__PURE__ */ jsxs28("span", { className: "stn-date-range-field__text", children: [
4337
+ /* @__PURE__ */ jsx36("span", { className: cn("stn-date-range-field__value", !startText && "is-placeholder"), children: startText ?? startPlaceholder }),
4338
+ /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__sep", "aria-hidden": "true", children: "~" }),
4339
+ /* @__PURE__ */ jsx36("span", { className: cn("stn-date-range-field__value", !endText && "is-placeholder"), children: endText ?? endPlaceholder })
4219
4340
  ] }),
4220
- /* @__PURE__ */ jsx35("span", { className: "stn-date-range-field__icon", "aria-hidden": "true" })
4341
+ /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__icon", "aria-hidden": "true" })
4221
4342
  ] })
4222
4343
  }
4223
4344
  );
4224
4345
  if (!hasWrap) return buttonNode;
4225
4346
  const resolvedLabelIcon = labelIcon ?? icon;
4226
- const labelElement = hasLabel ? /* @__PURE__ */ jsxs27("label", { htmlFor: rootId, className: "stn-date-range-field__label", children: [
4227
- resolvedLabelIcon ? /* @__PURE__ */ jsx35("span", { className: "stn-date-range-field__label-icon", "aria-hidden": "true", children: resolveGlyph3(resolvedLabelIcon) }) : null,
4228
- /* @__PURE__ */ jsx35("span", { className: "stn-date-range-field__label-text", children: label }),
4229
- required && /* @__PURE__ */ jsx35("span", { className: "stn-date-range-field__required", "aria-hidden": "true", children: "*" })
4347
+ const labelElement = hasLabel ? /* @__PURE__ */ jsxs28("label", { htmlFor: rootId, className: "stn-date-range-field__label", children: [
4348
+ resolvedLabelIcon ? /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__label-icon", "aria-hidden": "true", children: resolveGlyph4(resolvedLabelIcon) }) : null,
4349
+ /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__label-text", children: label }),
4350
+ required && /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__required", "aria-hidden": "true", children: "*" })
4230
4351
  ] }) : null;
4231
4352
  const isRow = labelPosition === "left" || labelPosition === "right";
4232
- return /* @__PURE__ */ jsxs27(
4353
+ return /* @__PURE__ */ jsxs28(
4233
4354
  "div",
4234
4355
  {
4235
4356
  className: cn(
@@ -4245,9 +4366,9 @@ var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4245
4366
  style: widthProps.style ?? style,
4246
4367
  children: [
4247
4368
  hasLabel && (labelPosition === "left" || labelPosition === "top") ? labelElement : null,
4248
- /* @__PURE__ */ jsxs27("div", { className: "stn-date-range-field-wrap__body", children: [
4369
+ /* @__PURE__ */ jsxs28("div", { className: "stn-date-range-field-wrap__body", children: [
4249
4370
  buttonNode,
4250
- hasHelper && /* @__PURE__ */ jsx35(
4371
+ hasHelper && /* @__PURE__ */ jsx36(
4251
4372
  "span",
4252
4373
  {
4253
4374
  id: `${rootId}-helper`,
@@ -4267,16 +4388,16 @@ var StnDateRangeField = forwardRef24(function StnDateRangeField2({
4267
4388
 
4268
4389
  // src/components/StnLabelPrefix.tsx
4269
4390
  import {
4270
- useId as useId12,
4271
- useState as useState10,
4391
+ useId as useId13,
4392
+ useState as useState11,
4272
4393
  isValidElement as isValidElement4,
4273
4394
  cloneElement as cloneElement4
4274
4395
  } from "react";
4275
- import { jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
4396
+ import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
4276
4397
  function sizeClass4(size) {
4277
4398
  return size;
4278
4399
  }
4279
- function variantClass4(variant) {
4400
+ function variantClass5(variant) {
4280
4401
  return variant;
4281
4402
  }
4282
4403
  function StnLabelPrefix({
@@ -4307,12 +4428,12 @@ function StnLabelPrefix({
4307
4428
  id: idProp,
4308
4429
  ...rest
4309
4430
  }) {
4310
- const autoId = useId12();
4431
+ const autoId = useId13();
4311
4432
  const id = idProp ?? autoId;
4312
4433
  const isError = error || invalid || color === "error";
4313
4434
  const hasHelper = helperText != null && helperText !== "";
4314
4435
  const helperId = hasHelper ? `${id}-helper` : void 0;
4315
- const [internalChecked, setInternalChecked] = useState10(defaultChecked ?? false);
4436
+ const [internalChecked, setInternalChecked] = useState11(defaultChecked ?? false);
4316
4437
  const isChecked = checked !== void 0 ? checked : internalChecked;
4317
4438
  const handleCheckboxChange = (nextChecked) => {
4318
4439
  if (checked === void 0) {
@@ -4325,7 +4446,7 @@ function StnLabelPrefix({
4325
4446
  const rootClass = cn(
4326
4447
  "stn-label-prefix",
4327
4448
  sizeClass4(size),
4328
- variantClass4(variant),
4449
+ variantClass5(variant),
4329
4450
  color && color !== "error" && color,
4330
4451
  labelPosition === "suffix" && "stn-label-prefix--suffix",
4331
4452
  radius && `radius-${radius}`,
@@ -4337,7 +4458,7 @@ function StnLabelPrefix({
4337
4458
  );
4338
4459
  const defaultCheckboxSize = size === "lg" ? "md" : "sm";
4339
4460
  const resolvedCheckboxSize = checkboxSize ?? defaultCheckboxSize;
4340
- const checkboxNode = checkboxSlot ?? (checkbox ? /* @__PURE__ */ jsx36("span", { className: "stn-label-prefix__checkbox", children: /* @__PURE__ */ jsx36(
4461
+ const checkboxNode = checkboxSlot ?? (checkbox ? /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__checkbox", children: /* @__PURE__ */ jsx37(
4341
4462
  StnCheckbox,
4342
4463
  {
4343
4464
  size: resolvedCheckboxSize,
@@ -4348,14 +4469,14 @@ function StnLabelPrefix({
4348
4469
  "aria-label": typeof label === "string" ? `${label} \uC120\uD0DD` : void 0
4349
4470
  }
4350
4471
  ) }) : null);
4351
- const labelSection = /* @__PURE__ */ jsxs28("span", { className: "stn-label-prefix__label", children: [
4472
+ const labelSection = /* @__PURE__ */ jsxs29("span", { className: "stn-label-prefix__label", children: [
4352
4473
  checkboxNode,
4353
- labelIcon != null && /* @__PURE__ */ jsx36("span", { className: "stn-label-prefix__icon", "aria-hidden": "true", children: labelIcon }),
4354
- /* @__PURE__ */ jsxs28("span", { className: "stn-label-prefix__text", children: [
4474
+ labelIcon != null && /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__icon", "aria-hidden": "true", children: labelIcon }),
4475
+ /* @__PURE__ */ jsxs29("span", { className: "stn-label-prefix__text", children: [
4355
4476
  label,
4356
- required && /* @__PURE__ */ jsx36("span", { className: "stn-label-prefix__required", "aria-hidden": "true", children: "*" })
4477
+ required && /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__required", "aria-hidden": "true", children: "*" })
4357
4478
  ] }),
4358
- /* @__PURE__ */ jsx36("span", { className: "stn-label-prefix__divider", "aria-hidden": "true" })
4479
+ /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__divider", "aria-hidden": "true" })
4359
4480
  ] });
4360
4481
  let renderedControl = children;
4361
4482
  if (isControlDisabled && isValidElement4(children) && typeof children.type !== "string") {
@@ -4363,7 +4484,7 @@ function StnLabelPrefix({
4363
4484
  disabled: true
4364
4485
  });
4365
4486
  }
4366
- const prefixNode = /* @__PURE__ */ jsxs28(
4487
+ const prefixNode = /* @__PURE__ */ jsxs29(
4367
4488
  "div",
4368
4489
  {
4369
4490
  id: !hasHelper ? id : void 0,
@@ -4375,14 +4496,14 @@ function StnLabelPrefix({
4375
4496
  ...!hasHelper ? rest : {},
4376
4497
  children: [
4377
4498
  labelSection,
4378
- /* @__PURE__ */ jsx36("span", { className: "stn-label-prefix__control", children: renderedControl })
4499
+ /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__control", children: renderedControl })
4379
4500
  ]
4380
4501
  }
4381
4502
  );
4382
4503
  if (!hasHelper) {
4383
4504
  return prefixNode;
4384
4505
  }
4385
- return /* @__PURE__ */ jsxs28(
4506
+ return /* @__PURE__ */ jsxs29(
4386
4507
  "div",
4387
4508
  {
4388
4509
  id,
@@ -4396,7 +4517,7 @@ function StnLabelPrefix({
4396
4517
  ...rest,
4397
4518
  children: [
4398
4519
  prefixNode,
4399
- /* @__PURE__ */ jsx36(
4520
+ /* @__PURE__ */ jsx37(
4400
4521
  "p",
4401
4522
  {
4402
4523
  id: helperId,
@@ -4462,14 +4583,14 @@ import {
4462
4583
  } from "@stn-uiux/pub-ui/data/stnSearchRequirement";
4463
4584
 
4464
4585
  // src/patterns/search/StnSearchRequirementBar.tsx
4465
- import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
4586
+ import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
4466
4587
  function StnSearchRequirementBar({
4467
4588
  children,
4468
4589
  className,
4469
4590
  density = "default",
4470
4591
  ...rest
4471
4592
  }) {
4472
- return /* @__PURE__ */ jsx37(
4593
+ return /* @__PURE__ */ jsx38(
4473
4594
  "div",
4474
4595
  {
4475
4596
  className: cn(
@@ -4485,7 +4606,7 @@ function StnSearchRequirementBar({
4485
4606
  );
4486
4607
  }
4487
4608
  function StnSearchRequirementBarFields({ children, className, ...rest }) {
4488
- return /* @__PURE__ */ jsx37("div", { className: cn("stn-search-requirement__fields", className), "data-stn-search-requirement": "fields", ...rest, children });
4609
+ return /* @__PURE__ */ jsx38("div", { className: cn("stn-search-requirement__fields", className), "data-stn-search-requirement": "fields", ...rest, children });
4489
4610
  }
4490
4611
  function StnSearchRequirementBarField({
4491
4612
  label,
@@ -4495,20 +4616,20 @@ function StnSearchRequirementBarField({
4495
4616
  controlClassName,
4496
4617
  ...rest
4497
4618
  }) {
4498
- return /* @__PURE__ */ jsxs29("div", { className: cn("stn-search-requirement__field", className), "data-stn-search-requirement": "field", ...rest, children: [
4499
- /* @__PURE__ */ jsx37("span", { className: cn("stn-search-requirement__label", labelClassName), children: label }),
4500
- /* @__PURE__ */ jsx37("div", { className: cn("stn-search-requirement__control", controlClassName), children })
4619
+ return /* @__PURE__ */ jsxs30("div", { className: cn("stn-search-requirement__field", className), "data-stn-search-requirement": "field", ...rest, children: [
4620
+ /* @__PURE__ */ jsx38("span", { className: cn("stn-search-requirement__label", labelClassName), children: label }),
4621
+ /* @__PURE__ */ jsx38("div", { className: cn("stn-search-requirement__control", controlClassName), children })
4501
4622
  ] });
4502
4623
  }
4503
4624
  function StnSearchRequirementBarSearchButton({
4504
4625
  children = "\uAC80\uC0C9",
4505
4626
  size = "md",
4506
4627
  variant = "outlined",
4507
- icon = /* @__PURE__ */ jsx37(StnIcon, { name: "line/search", size: 16, color: "currentColor" }),
4628
+ icon = /* @__PURE__ */ jsx38(StnIcon, { name: "line/search", size: 16, color: "currentColor" }),
4508
4629
  className,
4509
4630
  ...rest
4510
4631
  }) {
4511
- return /* @__PURE__ */ jsx37(
4632
+ return /* @__PURE__ */ jsx38(
4512
4633
  StnButton,
4513
4634
  {
4514
4635
  size,
@@ -4530,10 +4651,10 @@ function StnSearchRequirementBarExport({
4530
4651
  "aria-label": ariaLabel = "Excel\uBCF4\uB0B4\uAE30",
4531
4652
  ...rest
4532
4653
  }) {
4533
- return /* @__PURE__ */ jsx37(
4654
+ return /* @__PURE__ */ jsx38(
4534
4655
  StnButton,
4535
4656
  {
4536
- icon: icon ?? /* @__PURE__ */ jsx37(StnIcon, { name, size: 24, color: "currentColor" }),
4657
+ icon: icon ?? /* @__PURE__ */ jsx38(StnIcon, { name, size: 24, color: "currentColor" }),
4537
4658
  variant,
4538
4659
  size,
4539
4660
  "aria-label": ariaLabel,
@@ -4544,7 +4665,7 @@ function StnSearchRequirementBarExport({
4544
4665
  );
4545
4666
  }
4546
4667
  function StnSearchRequirementBarDivider({ className, ...rest }) {
4547
- return /* @__PURE__ */ jsx37(
4668
+ return /* @__PURE__ */ jsx38(
4548
4669
  "span",
4549
4670
  {
4550
4671
  className: cn("stn-search-requirement__divider", className),
@@ -4570,13 +4691,13 @@ import {
4570
4691
  useEffect as useEffect9,
4571
4692
  useLayoutEffect,
4572
4693
  useRef as useRef6,
4573
- useState as useState12
4694
+ useState as useState13
4574
4695
  } from "react";
4575
4696
  import { createPortal as createPortal2 } from "react-dom";
4576
4697
  import { formatStnDateRangeFieldValue as formatStnDateRangeFieldValue2 } from "@stn-uiux/pub-ui/data/stnDateRangeField";
4577
4698
 
4578
4699
  // src/components/datePicker/StnDateRangePicker.tsx
4579
- import { useCallback as useCallback6, useEffect as useEffect8, useId as useId13, useMemo as useMemo3, useState as useState11 } from "react";
4700
+ import { useCallback as useCallback6, useEffect as useEffect8, useId as useId14, useMemo as useMemo3, useState as useState12 } from "react";
4580
4701
  import {
4581
4702
  STN_DATE_PICKER_WEEKDAYS
4582
4703
  } from "@stn-uiux/pub-ui/data/stnDatePicker";
@@ -4636,9 +4757,9 @@ function normalizeRange(start, end) {
4636
4757
  }
4637
4758
 
4638
4759
  // src/components/datePicker/StnDateRangePicker.tsx
4639
- import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
4760
+ import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
4640
4761
  function useDraftRange(value, open) {
4641
- const [draft, setDraft] = useState11(value);
4762
+ const [draft, setDraft] = useState12(value);
4642
4763
  useEffect8(() => {
4643
4764
  if (open) setDraft(value);
4644
4765
  }, [open, value]);
@@ -4647,19 +4768,19 @@ function useDraftRange(value, open) {
4647
4768
  function CalendarPanel({ month, range, onPick, onPrev, onNext, showPrev = true, showNext = true }) {
4648
4769
  const days = useMemo3(() => buildMonthGrid(month), [month]);
4649
4770
  const { start, end } = range;
4650
- return /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-panel", children: [
4651
- /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-panel__header", children: [
4652
- showPrev ? /* @__PURE__ */ jsx38("button", { type: "button", className: "stn-date-picker-panel__nav", onClick: onPrev, "aria-label": "Previous month", children: "\u2039" }) : /* @__PURE__ */ jsx38("span", { className: "stn-date-picker-panel__nav", "aria-hidden": "true" }),
4653
- /* @__PURE__ */ jsx38("p", { className: "stn-date-picker-panel__title", children: formatMonthTitle(month) }),
4654
- showNext ? /* @__PURE__ */ jsx38("button", { type: "button", className: "stn-date-picker-panel__nav", onClick: onNext, "aria-label": "Next month", children: "\u203A" }) : /* @__PURE__ */ jsx38("span", { className: "stn-date-picker-panel__nav", "aria-hidden": "true" })
4771
+ return /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-panel", children: [
4772
+ /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-panel__header", children: [
4773
+ showPrev ? /* @__PURE__ */ jsx39("button", { type: "button", className: "stn-date-picker-panel__nav", onClick: onPrev, "aria-label": "Previous month", children: "\u2039" }) : /* @__PURE__ */ jsx39("span", { className: "stn-date-picker-panel__nav", "aria-hidden": "true" }),
4774
+ /* @__PURE__ */ jsx39("p", { className: "stn-date-picker-panel__title", children: formatMonthTitle(month) }),
4775
+ showNext ? /* @__PURE__ */ jsx39("button", { type: "button", className: "stn-date-picker-panel__nav", onClick: onNext, "aria-label": "Next month", children: "\u203A" }) : /* @__PURE__ */ jsx39("span", { className: "stn-date-picker-panel__nav", "aria-hidden": "true" })
4655
4776
  ] }),
4656
- /* @__PURE__ */ jsxs30("table", { className: "stn-date-picker-content", children: [
4657
- /* @__PURE__ */ jsx38("thead", { children: /* @__PURE__ */ jsx38("tr", { children: STN_DATE_PICKER_WEEKDAYS.map((label) => /* @__PURE__ */ jsx38("th", { scope: "col", children: label }, label)) }) }),
4658
- /* @__PURE__ */ jsx38("tbody", { children: Array.from({ length: 6 }, (_, row) => /* @__PURE__ */ jsx38("tr", { children: days.slice(row * 7, row * 7 + 7).map((cell) => {
4777
+ /* @__PURE__ */ jsxs31("table", { className: "stn-date-picker-content", children: [
4778
+ /* @__PURE__ */ jsx39("thead", { children: /* @__PURE__ */ jsx39("tr", { children: STN_DATE_PICKER_WEEKDAYS.map((label) => /* @__PURE__ */ jsx39("th", { scope: "col", children: label }, label)) }) }),
4779
+ /* @__PURE__ */ jsx39("tbody", { children: Array.from({ length: 6 }, (_, row) => /* @__PURE__ */ jsx39("tr", { children: days.slice(row * 7, row * 7 + 7).map((cell) => {
4659
4780
  const inRange = start && end && isBetweenDays(cell.date, start, end);
4660
4781
  const isStart = start ? isSameDay(cell.date, start) : false;
4661
4782
  const isEnd = end ? isSameDay(cell.date, end) : false;
4662
- return /* @__PURE__ */ jsx38(
4783
+ return /* @__PURE__ */ jsx39(
4663
4784
  "td",
4664
4785
  {
4665
4786
  className: cn(
@@ -4669,7 +4790,7 @@ function CalendarPanel({ month, range, onPick, onPrev, onNext, showPrev = true,
4669
4790
  isStart && "stn-date-picker-cell--range-start",
4670
4791
  isEnd && "stn-date-picker-cell--range-end"
4671
4792
  ),
4672
- children: /* @__PURE__ */ jsx38(
4793
+ children: /* @__PURE__ */ jsx39(
4673
4794
  "button",
4674
4795
  {
4675
4796
  type: "button",
@@ -4691,16 +4812,16 @@ function TimeColumns({ label, value, onChange }) {
4691
4812
  const seconds = value?.getSeconds() ?? 0;
4692
4813
  const base = value ?? /* @__PURE__ */ new Date();
4693
4814
  const patch = (h, m, s) => onChange(setTimePart(base, h, m, s));
4694
- return /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-time__side", children: [
4695
- /* @__PURE__ */ jsx38("span", { className: "stn-date-picker-time__label", children: label }),
4696
- /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-time__columns", children: [
4697
- /* @__PURE__ */ jsx38(
4815
+ return /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-time__side", children: [
4816
+ /* @__PURE__ */ jsx39("span", { className: "stn-date-picker-time__label", children: label }),
4817
+ /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-time__columns", children: [
4818
+ /* @__PURE__ */ jsx39(
4698
4819
  StnScroll,
4699
4820
  {
4700
4821
  variant: "arrows",
4701
4822
  size: "thin",
4702
4823
  className: "stn-date-picker-time__scroll",
4703
- children: /* @__PURE__ */ jsx38("ul", { className: "stn-date-picker-time__column", "aria-label": `${label} hour`, children: Array.from({ length: 24 }, (_, h) => /* @__PURE__ */ jsx38("li", { children: /* @__PURE__ */ jsx38(
4824
+ children: /* @__PURE__ */ jsx39("ul", { className: "stn-date-picker-time__column", "aria-label": `${label} hour`, children: Array.from({ length: 24 }, (_, h) => /* @__PURE__ */ jsx39("li", { children: /* @__PURE__ */ jsx39(
4704
4825
  "button",
4705
4826
  {
4706
4827
  type: "button",
@@ -4711,13 +4832,13 @@ function TimeColumns({ label, value, onChange }) {
4711
4832
  ) }, h)) })
4712
4833
  }
4713
4834
  ),
4714
- /* @__PURE__ */ jsx38(
4835
+ /* @__PURE__ */ jsx39(
4715
4836
  StnScroll,
4716
4837
  {
4717
4838
  variant: "arrows",
4718
4839
  size: "thin",
4719
4840
  className: "stn-date-picker-time__scroll",
4720
- children: /* @__PURE__ */ jsx38("ul", { className: "stn-date-picker-time__column", "aria-label": `${label} minute`, children: Array.from({ length: 60 }, (_, m) => /* @__PURE__ */ jsx38("li", { children: /* @__PURE__ */ jsx38(
4841
+ children: /* @__PURE__ */ jsx39("ul", { className: "stn-date-picker-time__column", "aria-label": `${label} minute`, children: Array.from({ length: 60 }, (_, m) => /* @__PURE__ */ jsx39("li", { children: /* @__PURE__ */ jsx39(
4721
4842
  "button",
4722
4843
  {
4723
4844
  type: "button",
@@ -4728,13 +4849,13 @@ function TimeColumns({ label, value, onChange }) {
4728
4849
  ) }, m)) })
4729
4850
  }
4730
4851
  ),
4731
- /* @__PURE__ */ jsx38(
4852
+ /* @__PURE__ */ jsx39(
4732
4853
  StnScroll,
4733
4854
  {
4734
4855
  variant: "arrows",
4735
4856
  size: "thin",
4736
4857
  className: "stn-date-picker-time__scroll",
4737
- children: /* @__PURE__ */ jsx38("ul", { className: "stn-date-picker-time__column", "aria-label": `${label} second`, children: Array.from({ length: 60 }, (_, s) => /* @__PURE__ */ jsx38("li", { children: /* @__PURE__ */ jsx38(
4858
+ children: /* @__PURE__ */ jsx39("ul", { className: "stn-date-picker-time__column", "aria-label": `${label} second`, children: Array.from({ length: 60 }, (_, s) => /* @__PURE__ */ jsx39("li", { children: /* @__PURE__ */ jsx39(
4738
4859
  "button",
4739
4860
  {
4740
4861
  type: "button",
@@ -4759,9 +4880,9 @@ function StnDateRangePicker({
4759
4880
  style,
4760
4881
  anchorRect
4761
4882
  }) {
4762
- const titleId = useId13();
4883
+ const titleId = useId14();
4763
4884
  const [draft, setDraft] = useDraftRange(value, open);
4764
- const [leftMonth, setLeftMonth] = useState11(() => startOfMonth(draft.start ?? draft.end ?? /* @__PURE__ */ new Date()));
4885
+ const [leftMonth, setLeftMonth] = useState12(() => startOfMonth(draft.start ?? draft.end ?? /* @__PURE__ */ new Date()));
4765
4886
  useEffect8(() => {
4766
4887
  if (!open) return;
4767
4888
  const anchor = draft.start ?? draft.end ?? /* @__PURE__ */ new Date();
@@ -4813,7 +4934,7 @@ function StnDateRangePicker({
4813
4934
  left: anchorRect.left,
4814
4935
  ...style
4815
4936
  } : style ?? {};
4816
- return /* @__PURE__ */ jsx38(
4937
+ return /* @__PURE__ */ jsx39(
4817
4938
  "div",
4818
4939
  {
4819
4940
  className: cn("stn-date-picker-dropdown", className),
@@ -4821,10 +4942,10 @@ function StnDateRangePicker({
4821
4942
  role: "dialog",
4822
4943
  "aria-modal": "false",
4823
4944
  "aria-labelledby": titleId,
4824
- children: /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-dropdown__body", children: [
4825
- /* @__PURE__ */ jsx38("span", { id: titleId, className: "stn-sf__visually-hidden", children: "Date range picker" }),
4826
- /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-dropdown__panels", children: [
4827
- /* @__PURE__ */ jsx38(
4945
+ children: /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-dropdown__body", children: [
4946
+ /* @__PURE__ */ jsx39("span", { id: titleId, className: "stn-sf__visually-hidden", children: "Date range picker" }),
4947
+ /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-dropdown__panels", children: [
4948
+ /* @__PURE__ */ jsx39(
4828
4949
  CalendarPanel,
4829
4950
  {
4830
4951
  month: leftMonth,
@@ -4835,7 +4956,7 @@ function StnDateRangePicker({
4835
4956
  showNext: false
4836
4957
  }
4837
4958
  ),
4838
- /* @__PURE__ */ jsx38(
4959
+ /* @__PURE__ */ jsx39(
4839
4960
  CalendarPanel,
4840
4961
  {
4841
4962
  month: rightMonth,
@@ -4847,8 +4968,8 @@ function StnDateRangePicker({
4847
4968
  }
4848
4969
  )
4849
4970
  ] }),
4850
- showTime ? /* @__PURE__ */ jsxs30("div", { className: "stn-date-picker-time", children: [
4851
- /* @__PURE__ */ jsx38(
4971
+ showTime ? /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-time", children: [
4972
+ /* @__PURE__ */ jsx39(
4852
4973
  TimeColumns,
4853
4974
  {
4854
4975
  label: "\uC2DC\uC791",
@@ -4856,7 +4977,7 @@ function StnDateRangePicker({
4856
4977
  onChange: (start) => updateDraft({ ...draft, start })
4857
4978
  }
4858
4979
  ),
4859
- /* @__PURE__ */ jsx38(
4980
+ /* @__PURE__ */ jsx39(
4860
4981
  TimeColumns,
4861
4982
  {
4862
4983
  label: "\uC885\uB8CC",
@@ -4865,16 +4986,16 @@ function StnDateRangePicker({
4865
4986
  }
4866
4987
  )
4867
4988
  ] }) : null,
4868
- /* @__PURE__ */ jsx38("div", { className: "stn-date-picker-footer", children: /* @__PURE__ */ jsx38(StnButton, { size: "md", variant: "contained", onClick: handleApply, disabled: !draft.start || !draft.end, children: "\uD655\uC778" }) })
4989
+ /* @__PURE__ */ jsx39("div", { className: "stn-date-picker-footer", children: /* @__PURE__ */ jsx39(StnButton, { size: "md", variant: "contained", onClick: handleApply, disabled: !draft.start || !draft.end, children: "\uD655\uC778" }) })
4869
4990
  ] })
4870
4991
  }
4871
4992
  );
4872
4993
  }
4873
4994
 
4874
4995
  // src/components/datePicker/StnDateRangePickerField.tsx
4875
- import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
4996
+ import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
4876
4997
  function useControllableRange(controlled, defaultValue, onChange) {
4877
- const [internal, setInternal] = useState12(defaultValue);
4998
+ const [internal, setInternal] = useState13(defaultValue);
4878
4999
  const value = controlled ?? internal;
4879
5000
  const setValue = useCallback7(
4880
5001
  (next) => {
@@ -4906,8 +5027,8 @@ function StnDateRangePickerField({
4906
5027
  }) {
4907
5028
  const format = formatProp ?? (showTime ? formatStnDateRangeFieldValue2 : formatDateOnly);
4908
5029
  const [value, setValue] = useControllableRange(valueProp, defaultValue, onChange);
4909
- const [open, setOpen] = useState12(false);
4910
- const [anchorRect, setAnchorRect] = useState12(null);
5030
+ const [open, setOpen] = useState13(false);
5031
+ const [anchorRect, setAnchorRect] = useState13(null);
4911
5032
  const rootRef = useRef6(null);
4912
5033
  const triggerRef = useRef6(null);
4913
5034
  const panelRef = useRef6(null);
@@ -4944,8 +5065,8 @@ function StnDateRangePickerField({
4944
5065
  document.addEventListener("keydown", onKeyDown);
4945
5066
  return () => document.removeEventListener("keydown", onKeyDown);
4946
5067
  }, [open]);
4947
- return /* @__PURE__ */ jsxs31("div", { ref: rootRef, className: cn("stn-date-picker-field", className), children: [
4948
- /* @__PURE__ */ jsx39(
5068
+ return /* @__PURE__ */ jsxs32("div", { ref: rootRef, className: cn("stn-date-picker-field", className), children: [
5069
+ /* @__PURE__ */ jsx40(
4949
5070
  StnDateRangeField,
4950
5071
  {
4951
5072
  ref: triggerRef,
@@ -4965,7 +5086,7 @@ function StnDateRangePickerField({
4965
5086
  }
4966
5087
  ),
4967
5088
  open && typeof document !== "undefined" ? createPortal2(
4968
- /* @__PURE__ */ jsx39("div", { ref: panelRef, children: /* @__PURE__ */ jsx39(
5089
+ /* @__PURE__ */ jsx40("div", { ref: panelRef, children: /* @__PURE__ */ jsx40(
4969
5090
  StnDateRangePicker,
4970
5091
  {
4971
5092
  open: true,
@@ -4984,13 +5105,13 @@ function StnDateRangePickerField({
4984
5105
  }
4985
5106
 
4986
5107
  // src/patterns/search/StnSearchRequirementBarDemo.tsx
4987
- import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
5108
+ import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
4988
5109
  var ALL_OPTIONS = [{ value: "", label: "\uC804\uCCB4" }];
4989
5110
  function StnSearchRequirementBarDemo({ onSearch, onExport, className }) {
4990
5111
  const demo = STN_SEARCH_REQUIREMENT_DEMO_FIELDS;
4991
- return /* @__PURE__ */ jsxs32(StnSearchRequirementBar, { className, children: [
4992
- /* @__PURE__ */ jsxs32(StnSearchRequirementBar.Fields, { children: [
4993
- /* @__PURE__ */ jsx40(
5112
+ return /* @__PURE__ */ jsxs33(StnSearchRequirementBar, { className, children: [
5113
+ /* @__PURE__ */ jsxs33(StnSearchRequirementBar.Fields, { children: [
5114
+ /* @__PURE__ */ jsx41(
4994
5115
  StnTextField,
4995
5116
  {
4996
5117
  label: demo.reportTypeText.label,
@@ -5000,7 +5121,7 @@ function StnSearchRequirementBarDemo({ onSearch, onExport, className }) {
5000
5121
  "aria-label": demo.reportTypeText.label
5001
5122
  }
5002
5123
  ),
5003
- /* @__PURE__ */ jsx40(
5124
+ /* @__PURE__ */ jsx41(
5004
5125
  StnDropdown,
5005
5126
  {
5006
5127
  label: demo.reportTypeSelect.label,
@@ -5011,7 +5132,7 @@ function StnSearchRequirementBarDemo({ onSearch, onExport, className }) {
5011
5132
  "aria-label": demo.reportTypeSelect.label
5012
5133
  }
5013
5134
  ),
5014
- /* @__PURE__ */ jsx40(
5135
+ /* @__PURE__ */ jsx41(
5015
5136
  StnDropdown,
5016
5137
  {
5017
5138
  label: demo.periodType.label,
@@ -5022,7 +5143,7 @@ function StnSearchRequirementBarDemo({ onSearch, onExport, className }) {
5022
5143
  "aria-label": demo.periodType.label
5023
5144
  }
5024
5145
  ),
5025
- /* @__PURE__ */ jsx40(
5146
+ /* @__PURE__ */ jsx41(
5026
5147
  StnDateRangePickerField,
5027
5148
  {
5028
5149
  label: demo.period.label,
@@ -5036,8 +5157,8 @@ function StnSearchRequirementBarDemo({ onSearch, onExport, className }) {
5036
5157
  }
5037
5158
  )
5038
5159
  ] }),
5039
- /* @__PURE__ */ jsx40(StnSearchRequirementBar.SearchButton, { onClick: onSearch }),
5040
- /* @__PURE__ */ jsx40(StnSearchRequirementBar.Export, { onClick: onExport })
5160
+ /* @__PURE__ */ jsx41(StnSearchRequirementBar.SearchButton, { onClick: onSearch }),
5161
+ /* @__PURE__ */ jsx41(StnSearchRequirementBar.Export, { onClick: onExport })
5041
5162
  ] });
5042
5163
  }
5043
5164
 
@@ -5051,8 +5172,8 @@ import {
5051
5172
  } from "@stn-uiux/pub-ui/data/stnHeader";
5052
5173
 
5053
5174
  // src/patterns/header/StnHeader.tsx
5054
- import { jsx as jsx41 } from "react/jsx-runtime";
5055
- function variantClass5(variant) {
5175
+ import { jsx as jsx42 } from "react/jsx-runtime";
5176
+ function variantClass6(variant) {
5056
5177
  if (variant === "page") return "stn-header--page";
5057
5178
  return void 0;
5058
5179
  }
@@ -5078,12 +5199,12 @@ function StnHeader({
5078
5199
  ...dynamicStyles,
5079
5200
  ...style
5080
5201
  };
5081
- return /* @__PURE__ */ jsx41(
5202
+ return /* @__PURE__ */ jsx42(
5082
5203
  "header",
5083
5204
  {
5084
5205
  className: cn(
5085
5206
  "stn-header",
5086
- variantClass5(variant),
5207
+ variantClass6(variant),
5087
5208
  isNamedPadding ? `padding-${padding}` : void 0,
5088
5209
  isNamedGap ? `gap-${gap}` : void 0,
5089
5210
  className
@@ -5096,20 +5217,20 @@ function StnHeader({
5096
5217
  );
5097
5218
  }
5098
5219
  function StnHeaderLeft({ children, className, ...rest }) {
5099
- return /* @__PURE__ */ jsx41("div", { className: cn("stn-header__left", className), "data-stn-header-region": "left", ...rest, children });
5220
+ return /* @__PURE__ */ jsx42("div", { className: cn("stn-header__left", className), "data-stn-header-region": "left", ...rest, children });
5100
5221
  }
5101
5222
  function StnHeaderCenter({ children, className, ...rest }) {
5102
- return /* @__PURE__ */ jsx41("div", { className: cn("stn-header__center", className), "data-stn-header-region": "center", ...rest, children });
5223
+ return /* @__PURE__ */ jsx42("div", { className: cn("stn-header__center", className), "data-stn-header-region": "center", ...rest, children });
5103
5224
  }
5104
5225
  function StnHeaderRight({ children, className, ...rest }) {
5105
- return /* @__PURE__ */ jsx41("div", { className: cn("stn-header__right", className), "data-stn-header-region": "right", ...rest, children });
5226
+ return /* @__PURE__ */ jsx42("div", { className: cn("stn-header__right", className), "data-stn-header-region": "right", ...rest, children });
5106
5227
  }
5107
5228
  StnHeader.Left = StnHeaderLeft;
5108
5229
  StnHeader.Center = StnHeaderCenter;
5109
5230
  StnHeader.Right = StnHeaderRight;
5110
5231
  function StnHeaderPageTitle({ children, className, title, ...rest }) {
5111
5232
  const autoTitle = typeof children === "string" ? children : void 0;
5112
- return /* @__PURE__ */ jsx41(
5233
+ return /* @__PURE__ */ jsx42(
5113
5234
  "h1",
5114
5235
  {
5115
5236
  className: cn("stn-header__page-title", className),
@@ -5121,7 +5242,7 @@ function StnHeaderPageTitle({ children, className, title, ...rest }) {
5121
5242
  }
5122
5243
  function StnHeaderSubTitle({ children, className, title, ...rest }) {
5123
5244
  const autoTitle = typeof children === "string" ? children : void 0;
5124
- return /* @__PURE__ */ jsx41(
5245
+ return /* @__PURE__ */ jsx42(
5125
5246
  "span",
5126
5247
  {
5127
5248
  className: cn("stn-header__subtitle", className),
@@ -5133,7 +5254,7 @@ function StnHeaderSubTitle({ children, className, title, ...rest }) {
5133
5254
  }
5134
5255
  function StnHeaderContextTitle({ children, className, title, ...rest }) {
5135
5256
  const autoTitle = typeof children === "string" ? children : void 0;
5136
- return /* @__PURE__ */ jsx41(
5257
+ return /* @__PURE__ */ jsx42(
5137
5258
  "span",
5138
5259
  {
5139
5260
  className: cn("stn-header__context-title", className),
@@ -5144,7 +5265,7 @@ function StnHeaderContextTitle({ children, className, title, ...rest }) {
5144
5265
  );
5145
5266
  }
5146
5267
  function StnHeaderToolbar({ children, className, ...rest }) {
5147
- return /* @__PURE__ */ jsx41("div", { className: cn("stn-header-toolbar", className), "data-stn-header-toolbar": true, ...rest, children });
5268
+ return /* @__PURE__ */ jsx42("div", { className: cn("stn-header-toolbar", className), "data-stn-header-toolbar": true, ...rest, children });
5148
5269
  }
5149
5270
 
5150
5271
  // src/index.ts
@@ -5162,7 +5283,7 @@ import {
5162
5283
  STN_LAYER0_BACKGROUND_DEMO_IMAGES,
5163
5284
  STN_LAYER0_MAP_LIGHT_OVERLAY
5164
5285
  } from "@stn-uiux/pub-ui/data/stnLayer0Background";
5165
- import { jsx as jsx42, jsxs as jsxs33 } from "react/jsx-runtime";
5286
+ import { jsx as jsx43, jsxs as jsxs34 } from "react/jsx-runtime";
5166
5287
  function overlayStyle(overlay) {
5167
5288
  if (overlay == null || overlay <= 0) return void 0;
5168
5289
  const pct = `${Math.min(100, Math.max(0, overlay * 100))}%`;
@@ -5211,15 +5332,15 @@ function StnLayer0Background({
5211
5332
  const isImage = kind === "image" || Boolean(src || srcDark);
5212
5333
  if (isImage) {
5213
5334
  const paired = Boolean(src && srcDark);
5214
- return /* @__PURE__ */ jsx42(
5335
+ return /* @__PURE__ */ jsx43(
5215
5336
  "div",
5216
5337
  {
5217
5338
  className: cn("stn-layer0-bg", "image", className),
5218
5339
  "aria-hidden": alt === "" ? true : void 0,
5219
5340
  style: { ...overlayStyle(overlay), ...style },
5220
5341
  ...rest,
5221
- children: /* @__PURE__ */ jsxs33("div", { className: "stn-layer0-bg__media", children: [
5222
- src ? /* @__PURE__ */ jsx42(
5342
+ children: /* @__PURE__ */ jsxs34("div", { className: "stn-layer0-bg__media", children: [
5343
+ src ? /* @__PURE__ */ jsx43(
5223
5344
  "img",
5224
5345
  {
5225
5346
  className: cn("stn-layer0-bg__img", paired && "light"),
@@ -5228,7 +5349,7 @@ function StnLayer0Background({
5228
5349
  decoding: "async"
5229
5350
  }
5230
5351
  ) : null,
5231
- srcDark ? /* @__PURE__ */ jsx42(
5352
+ srcDark ? /* @__PURE__ */ jsx43(
5232
5353
  "img",
5233
5354
  {
5234
5355
  className: cn("stn-layer0-bg__img", paired ? "dark" : void 0),
@@ -5237,13 +5358,13 @@ function StnLayer0Background({
5237
5358
  decoding: "async"
5238
5359
  }
5239
5360
  ) : null,
5240
- overlay != null && overlay > 0 ? /* @__PURE__ */ jsx42("div", { className: "stn-layer0-bg__overlay", "aria-hidden": "true" }) : null,
5241
- overlayDarkRadial ? /* @__PURE__ */ jsx42("div", { className: "stn-layer0-bg__overlay radial", "aria-hidden": "true" }) : null
5361
+ overlay != null && overlay > 0 ? /* @__PURE__ */ jsx43("div", { className: "stn-layer0-bg__overlay", "aria-hidden": "true" }) : null,
5362
+ overlayDarkRadial ? /* @__PURE__ */ jsx43("div", { className: "stn-layer0-bg__overlay radial", "aria-hidden": "true" }) : null
5242
5363
  ] })
5243
5364
  }
5244
5365
  );
5245
5366
  }
5246
- return /* @__PURE__ */ jsx42(
5367
+ return /* @__PURE__ */ jsx43(
5247
5368
  "div",
5248
5369
  {
5249
5370
  className: cn("stn-layer0-bg", "color", color, className),
@@ -5280,7 +5401,7 @@ import {
5280
5401
 
5281
5402
  // src/components/StnEventBanner.tsx
5282
5403
  import React2 from "react";
5283
- import { jsx as jsx43, jsxs as jsxs34 } from "react/jsx-runtime";
5404
+ import { jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
5284
5405
  var SEVERITY_ICONS2 = {
5285
5406
  critical: "fill/alert4",
5286
5407
  major: "fill/alert3",
@@ -5288,7 +5409,7 @@ var SEVERITY_ICONS2 = {
5288
5409
  warning: "fill/alert1"
5289
5410
  };
5290
5411
  function DefaultTriangleIcon() {
5291
- return /* @__PURE__ */ jsxs34(
5412
+ return /* @__PURE__ */ jsxs35(
5292
5413
  "svg",
5293
5414
  {
5294
5415
  width: "20",
@@ -5298,7 +5419,7 @@ function DefaultTriangleIcon() {
5298
5419
  xmlns: "http://www.w3.org/2000/svg",
5299
5420
  "aria-hidden": "true",
5300
5421
  children: [
5301
- /* @__PURE__ */ jsx43(
5422
+ /* @__PURE__ */ jsx44(
5302
5423
  "path",
5303
5424
  {
5304
5425
  d: "M10.29 3.86L1.82 18A2 2 0 0 0 3.54 21H20.46A2 2 0 0 0 22.18 18L13.71 3.86A2 2 0 0 0 10.29 3.86Z",
@@ -5308,17 +5429,17 @@ function DefaultTriangleIcon() {
5308
5429
  strokeLinejoin: "round"
5309
5430
  }
5310
5431
  ),
5311
- /* @__PURE__ */ jsx43("line", { x1: "12", y1: "9", x2: "12", y2: "13", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }),
5312
- /* @__PURE__ */ jsx43("circle", { cx: "12", cy: "17", r: "1", fill: "currentColor" })
5432
+ /* @__PURE__ */ jsx44("line", { x1: "12", y1: "9", x2: "12", y2: "13", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }),
5433
+ /* @__PURE__ */ jsx44("circle", { cx: "12", cy: "17", r: "1", fill: "currentColor" })
5313
5434
  ]
5314
5435
  }
5315
5436
  );
5316
5437
  }
5317
5438
  function resolveDefaultIcon(severity) {
5318
5439
  if (severity === "critical") {
5319
- return /* @__PURE__ */ jsx43(DefaultTriangleIcon, {});
5440
+ return /* @__PURE__ */ jsx44(DefaultTriangleIcon, {});
5320
5441
  }
5321
- return /* @__PURE__ */ jsx43(StnIcon, { name: SEVERITY_ICONS2[severity] || "fill/alert4", size: 20 });
5442
+ return /* @__PURE__ */ jsx44(StnIcon, { name: SEVERITY_ICONS2[severity] || "fill/alert4", size: 20 });
5322
5443
  }
5323
5444
  var StnEventBanner = React2.forwardRef(
5324
5445
  ({
@@ -5337,7 +5458,7 @@ var StnEventBanner = React2.forwardRef(
5337
5458
  id,
5338
5459
  ...restProps
5339
5460
  }, ref) => {
5340
- return /* @__PURE__ */ jsxs34(
5461
+ return /* @__PURE__ */ jsxs35(
5341
5462
  "div",
5342
5463
  {
5343
5464
  ref,
@@ -5354,16 +5475,16 @@ var StnEventBanner = React2.forwardRef(
5354
5475
  ),
5355
5476
  ...restProps,
5356
5477
  children: [
5357
- /* @__PURE__ */ jsxs34("div", { className: "stn-event-banner__left", children: [
5358
- /* @__PURE__ */ jsx43("div", { className: "stn-event-banner__icon-wrap", children: icon ?? resolveDefaultIcon(severity) }),
5359
- /* @__PURE__ */ jsxs34("div", { className: "stn-event-banner__text", children: [
5360
- title && /* @__PURE__ */ jsx43("span", { className: "stn-event-banner__title", title: typeof title === "string" ? title : void 0, children: title }),
5361
- time && /* @__PURE__ */ jsx43("span", { className: "stn-event-banner__time", title: typeof time === "string" ? time : void 0, children: time })
5478
+ /* @__PURE__ */ jsxs35("div", { className: "stn-event-banner__left", children: [
5479
+ /* @__PURE__ */ jsx44("div", { className: "stn-event-banner__icon-wrap", children: icon ?? resolveDefaultIcon(severity) }),
5480
+ /* @__PURE__ */ jsxs35("div", { className: "stn-event-banner__text", children: [
5481
+ title && /* @__PURE__ */ jsx44("span", { className: "stn-event-banner__title", title: typeof title === "string" ? title : void 0, children: title }),
5482
+ time && /* @__PURE__ */ jsx44("span", { className: "stn-event-banner__time", title: typeof time === "string" ? time : void 0, children: time })
5362
5483
  ] })
5363
5484
  ] }),
5364
- /* @__PURE__ */ jsxs34("div", { className: "stn-event-banner__actions", children: [
5485
+ /* @__PURE__ */ jsxs35("div", { className: "stn-event-banner__actions", children: [
5365
5486
  actions,
5366
- actionText && /* @__PURE__ */ jsx43(
5487
+ actionText && /* @__PURE__ */ jsx44(
5367
5488
  "button",
5368
5489
  {
5369
5490
  type: "button",
@@ -5372,7 +5493,7 @@ var StnEventBanner = React2.forwardRef(
5372
5493
  children: actionText
5373
5494
  }
5374
5495
  ),
5375
- onClose && /* @__PURE__ */ jsx43(
5496
+ onClose && /* @__PURE__ */ jsx44(
5376
5497
  "button",
5377
5498
  {
5378
5499
  type: "button",
@@ -5391,9 +5512,9 @@ var StnEventBanner = React2.forwardRef(
5391
5512
  StnEventBanner.displayName = "StnEventBanner";
5392
5513
 
5393
5514
  // src/patterns/scaffold/StnLoadingSkeleton.tsx
5394
- import { jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
5515
+ import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
5395
5516
  function StnLoadingSkeletonLine({ width = "full", className, style, ...rest }) {
5396
- return /* @__PURE__ */ jsx44(
5517
+ return /* @__PURE__ */ jsx45(
5397
5518
  "div",
5398
5519
  {
5399
5520
  className: cn(
@@ -5409,7 +5530,7 @@ function StnLoadingSkeletonLine({ width = "full", className, style, ...rest }) {
5409
5530
  );
5410
5531
  }
5411
5532
  function StnLoadingSkeletonBlock({ minHeight = 48, className, style, ...rest }) {
5412
- return /* @__PURE__ */ jsx44(
5533
+ return /* @__PURE__ */ jsx45(
5413
5534
  "div",
5414
5535
  {
5415
5536
  className: cn("stn-loading-skeleton__block", className),
@@ -5420,7 +5541,7 @@ function StnLoadingSkeletonBlock({ minHeight = 48, className, style, ...rest })
5420
5541
  );
5421
5542
  }
5422
5543
  function StnLoadingSkeletonCircle({ size = 40, className, style, ...rest }) {
5423
- return /* @__PURE__ */ jsx44(
5544
+ return /* @__PURE__ */ jsx45(
5424
5545
  "div",
5425
5546
  {
5426
5547
  className: cn("stn-loading-skeleton__circle", className),
@@ -5431,7 +5552,7 @@ function StnLoadingSkeletonCircle({ size = 40, className, style, ...rest }) {
5431
5552
  );
5432
5553
  }
5433
5554
  function StnLoadingSkeletonProfile({ avatarSize = 40, className, style, ...rest }) {
5434
- return /* @__PURE__ */ jsxs35(
5555
+ return /* @__PURE__ */ jsxs36(
5435
5556
  "div",
5436
5557
  {
5437
5558
  className: cn("stn-loading-skeleton--profile", className),
@@ -5440,17 +5561,17 @@ function StnLoadingSkeletonProfile({ avatarSize = 40, className, style, ...rest
5440
5561
  "aria-label": "\uD504\uB85C\uD544 \uB85C\uB529 \uC911",
5441
5562
  ...rest,
5442
5563
  children: [
5443
- /* @__PURE__ */ jsx44(StnLoadingSkeletonCircle, { size: avatarSize }),
5444
- /* @__PURE__ */ jsxs35("div", { className: "stn-loading-skeleton__profile-content", children: [
5445
- /* @__PURE__ */ jsx44(StnLoadingSkeletonLine, { width: "medium" }),
5446
- /* @__PURE__ */ jsx44(StnLoadingSkeletonLine, { width: "short" })
5564
+ /* @__PURE__ */ jsx45(StnLoadingSkeletonCircle, { size: avatarSize }),
5565
+ /* @__PURE__ */ jsxs36("div", { className: "stn-loading-skeleton__profile-content", children: [
5566
+ /* @__PURE__ */ jsx45(StnLoadingSkeletonLine, { width: "medium" }),
5567
+ /* @__PURE__ */ jsx45(StnLoadingSkeletonLine, { width: "short" })
5447
5568
  ] })
5448
5569
  ]
5449
5570
  }
5450
5571
  );
5451
5572
  }
5452
5573
  function StnLoadingSkeletonWidget({ lines = 4, className, style, ...rest }) {
5453
- return /* @__PURE__ */ jsx44(
5574
+ return /* @__PURE__ */ jsx45(
5454
5575
  "div",
5455
5576
  {
5456
5577
  className: cn("stn-loading-skeleton", "stn-loading-skeleton--widget", className),
@@ -5458,12 +5579,12 @@ function StnLoadingSkeletonWidget({ lines = 4, className, style, ...rest }) {
5458
5579
  "aria-busy": "true",
5459
5580
  "aria-label": "\uB85C\uB529 \uC911",
5460
5581
  ...rest,
5461
- children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx44(StnLoadingSkeletonLine, { width: i % 3 === 0 ? "short" : i % 2 === 0 ? "medium" : "full" }, i))
5582
+ children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx45(StnLoadingSkeletonLine, { width: i % 3 === 0 ? "short" : i % 2 === 0 ? "medium" : "full" }, i))
5462
5583
  }
5463
5584
  );
5464
5585
  }
5465
5586
  function StnLoadingSkeletonTable({ rows = 5, cols = 4, className, style, ...rest }) {
5466
- return /* @__PURE__ */ jsx44(
5587
+ return /* @__PURE__ */ jsx45(
5467
5588
  "div",
5468
5589
  {
5469
5590
  className: cn("stn-loading-skeleton", "stn-loading-skeleton--table", className),
@@ -5471,7 +5592,7 @@ function StnLoadingSkeletonTable({ rows = 5, cols = 4, className, style, ...rest
5471
5592
  "aria-busy": "true",
5472
5593
  "aria-label": "\uD14C\uC774\uBE14 \uB85C\uB529 \uC911",
5473
5594
  ...rest,
5474
- children: Array.from({ length: rows }, (_, row) => /* @__PURE__ */ jsx44("div", { className: "stn-loading-skeleton__table-row", children: Array.from({ length: cols }, (_2, col) => /* @__PURE__ */ jsx44(StnLoadingSkeletonLine, {}, col)) }, row))
5595
+ children: Array.from({ length: rows }, (_, row) => /* @__PURE__ */ jsx45("div", { className: "stn-loading-skeleton__table-row", children: Array.from({ length: cols }, (_2, col) => /* @__PURE__ */ jsx45(StnLoadingSkeletonLine, {}, col)) }, row))
5475
5596
  }
5476
5597
  );
5477
5598
  }
@@ -5490,23 +5611,23 @@ function StnLoadingSkeletonRoot({
5490
5611
  ...rest
5491
5612
  }) {
5492
5613
  if (children != null) {
5493
- return /* @__PURE__ */ jsx44("div", { className: cn("stn-loading-skeleton", className), style, "aria-busy": "true", ...rest, children });
5614
+ return /* @__PURE__ */ jsx45("div", { className: cn("stn-loading-skeleton", className), style, "aria-busy": "true", ...rest, children });
5494
5615
  }
5495
5616
  const resolvedVariant = variant ?? "line";
5496
5617
  switch (resolvedVariant) {
5497
5618
  case "circle":
5498
- return /* @__PURE__ */ jsx44(StnLoadingSkeletonCircle, { size, className, style, ...rest });
5619
+ return /* @__PURE__ */ jsx45(StnLoadingSkeletonCircle, { size, className, style, ...rest });
5499
5620
  case "block":
5500
- return /* @__PURE__ */ jsx44(StnLoadingSkeletonBlock, { minHeight, className, style, ...rest });
5621
+ return /* @__PURE__ */ jsx45(StnLoadingSkeletonBlock, { minHeight, className, style, ...rest });
5501
5622
  case "profile":
5502
- return /* @__PURE__ */ jsx44(StnLoadingSkeletonProfile, { avatarSize: avatarSize ?? size, className, style, ...rest });
5623
+ return /* @__PURE__ */ jsx45(StnLoadingSkeletonProfile, { avatarSize: avatarSize ?? size, className, style, ...rest });
5503
5624
  case "widget":
5504
- return /* @__PURE__ */ jsx44(StnLoadingSkeletonWidget, { lines, className, style, ...rest });
5625
+ return /* @__PURE__ */ jsx45(StnLoadingSkeletonWidget, { lines, className, style, ...rest });
5505
5626
  case "table":
5506
- return /* @__PURE__ */ jsx44(StnLoadingSkeletonTable, { rows, cols, className, style, ...rest });
5627
+ return /* @__PURE__ */ jsx45(StnLoadingSkeletonTable, { rows, cols, className, style, ...rest });
5507
5628
  case "line":
5508
5629
  default:
5509
- return /* @__PURE__ */ jsx44(StnLoadingSkeletonLine, { width, className, style, ...rest });
5630
+ return /* @__PURE__ */ jsx45(StnLoadingSkeletonLine, { width, className, style, ...rest });
5510
5631
  }
5511
5632
  }
5512
5633
  var StnLoadingSkeleton = Object.assign(StnLoadingSkeletonRoot, {
@@ -5519,7 +5640,7 @@ var StnLoadingSkeleton = Object.assign(StnLoadingSkeletonRoot, {
5519
5640
  });
5520
5641
 
5521
5642
  // src/components/topology/StnTopologyRing.tsx
5522
- import { useId as useId14 } from "react";
5643
+ import { useId as useId15 } from "react";
5523
5644
 
5524
5645
  // src/components/topology/stnTopologyShared.ts
5525
5646
  var STN_TOPOLOGY_NODE_SHAPES = [
@@ -5627,7 +5748,7 @@ function ringOrbitRadius(orbit, ringCount, baseRadius, gap = 36) {
5627
5748
  }
5628
5749
 
5629
5750
  // src/components/topology/StnTopologyNodeMark.tsx
5630
- import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
5751
+ import { jsx as jsx46, jsxs as jsxs37 } from "react/jsx-runtime";
5631
5752
  function renderTopologyIcon(icon, color, px) {
5632
5753
  if (!icon) return null;
5633
5754
  if (typeof icon !== "string") return icon;
@@ -5643,56 +5764,56 @@ function renderTopologyIcon(icon, color, px) {
5643
5764
  };
5644
5765
  switch (icon) {
5645
5766
  case "server":
5646
- return /* @__PURE__ */ jsxs36("svg", { ...iconProps, children: [
5647
- /* @__PURE__ */ jsx45("rect", { x: "2", y: "2", width: "20", height: "8", rx: "2", ry: "2" }),
5648
- /* @__PURE__ */ jsx45("rect", { x: "2", y: "14", width: "20", height: "8", rx: "2", ry: "2" }),
5649
- /* @__PURE__ */ jsx45("line", { x1: "6", y1: "6", x2: "6.01", y2: "6" }),
5650
- /* @__PURE__ */ jsx45("line", { x1: "6", y1: "18", x2: "6.01", y2: "18" })
5767
+ return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
5768
+ /* @__PURE__ */ jsx46("rect", { x: "2", y: "2", width: "20", height: "8", rx: "2", ry: "2" }),
5769
+ /* @__PURE__ */ jsx46("rect", { x: "2", y: "14", width: "20", height: "8", rx: "2", ry: "2" }),
5770
+ /* @__PURE__ */ jsx46("line", { x1: "6", y1: "6", x2: "6.01", y2: "6" }),
5771
+ /* @__PURE__ */ jsx46("line", { x1: "6", y1: "18", x2: "6.01", y2: "18" })
5651
5772
  ] });
5652
5773
  case "cloud":
5653
- return /* @__PURE__ */ jsx45("svg", { ...iconProps, children: /* @__PURE__ */ jsx45("path", { d: "M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z" }) });
5774
+ return /* @__PURE__ */ jsx46("svg", { ...iconProps, children: /* @__PURE__ */ jsx46("path", { d: "M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z" }) });
5654
5775
  case "ai":
5655
- return /* @__PURE__ */ jsxs36("svg", { ...iconProps, children: [
5656
- /* @__PURE__ */ jsx45("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }),
5657
- /* @__PURE__ */ jsx45("rect", { x: "9", y: "9", width: "6", height: "6" }),
5658
- /* @__PURE__ */ jsx45("line", { x1: "9", y1: "1", x2: "9", y2: "4" }),
5659
- /* @__PURE__ */ jsx45("line", { x1: "15", y1: "1", x2: "15", y2: "4" }),
5660
- /* @__PURE__ */ jsx45("line", { x1: "9", y1: "20", x2: "9", y2: "23" }),
5661
- /* @__PURE__ */ jsx45("line", { x1: "15", y1: "20", x2: "15", y2: "23" }),
5662
- /* @__PURE__ */ jsx45("line", { x1: "20", y1: "9", x2: "23", y2: "9" }),
5663
- /* @__PURE__ */ jsx45("line", { x1: "20", y1: "14", x2: "23", y2: "14" }),
5664
- /* @__PURE__ */ jsx45("line", { x1: "1", y1: "9", x2: "4", y2: "9" }),
5665
- /* @__PURE__ */ jsx45("line", { x1: "1", y1: "14", x2: "4", y2: "14" })
5776
+ return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
5777
+ /* @__PURE__ */ jsx46("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }),
5778
+ /* @__PURE__ */ jsx46("rect", { x: "9", y: "9", width: "6", height: "6" }),
5779
+ /* @__PURE__ */ jsx46("line", { x1: "9", y1: "1", x2: "9", y2: "4" }),
5780
+ /* @__PURE__ */ jsx46("line", { x1: "15", y1: "1", x2: "15", y2: "4" }),
5781
+ /* @__PURE__ */ jsx46("line", { x1: "9", y1: "20", x2: "9", y2: "23" }),
5782
+ /* @__PURE__ */ jsx46("line", { x1: "15", y1: "20", x2: "15", y2: "23" }),
5783
+ /* @__PURE__ */ jsx46("line", { x1: "20", y1: "9", x2: "23", y2: "9" }),
5784
+ /* @__PURE__ */ jsx46("line", { x1: "20", y1: "14", x2: "23", y2: "14" }),
5785
+ /* @__PURE__ */ jsx46("line", { x1: "1", y1: "9", x2: "4", y2: "9" }),
5786
+ /* @__PURE__ */ jsx46("line", { x1: "1", y1: "14", x2: "4", y2: "14" })
5666
5787
  ] });
5667
5788
  case "network":
5668
- return /* @__PURE__ */ jsxs36("svg", { ...iconProps, children: [
5669
- /* @__PURE__ */ jsx45("rect", { x: "2", y: "2", width: "6", height: "6", rx: "1" }),
5670
- /* @__PURE__ */ jsx45("rect", { x: "16", y: "2", width: "6", height: "6", rx: "1" }),
5671
- /* @__PURE__ */ jsx45("rect", { x: "9", y: "16", width: "6", height: "6", rx: "1" }),
5672
- /* @__PURE__ */ jsx45("line", { x1: "5", y1: "8", x2: "5", y2: "12" }),
5673
- /* @__PURE__ */ jsx45("line", { x1: "19", y1: "8", x2: "19", y2: "12" }),
5674
- /* @__PURE__ */ jsx45("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
5675
- /* @__PURE__ */ jsx45("line", { x1: "12", y1: "12", x2: "12", y2: "16" })
5789
+ return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
5790
+ /* @__PURE__ */ jsx46("rect", { x: "2", y: "2", width: "6", height: "6", rx: "1" }),
5791
+ /* @__PURE__ */ jsx46("rect", { x: "16", y: "2", width: "6", height: "6", rx: "1" }),
5792
+ /* @__PURE__ */ jsx46("rect", { x: "9", y: "16", width: "6", height: "6", rx: "1" }),
5793
+ /* @__PURE__ */ jsx46("line", { x1: "5", y1: "8", x2: "5", y2: "12" }),
5794
+ /* @__PURE__ */ jsx46("line", { x1: "19", y1: "8", x2: "19", y2: "12" }),
5795
+ /* @__PURE__ */ jsx46("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
5796
+ /* @__PURE__ */ jsx46("line", { x1: "12", y1: "12", x2: "12", y2: "16" })
5676
5797
  ] });
5677
5798
  case "shield":
5678
- return /* @__PURE__ */ jsx45("svg", { ...iconProps, children: /* @__PURE__ */ jsx45("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) });
5799
+ return /* @__PURE__ */ jsx46("svg", { ...iconProps, children: /* @__PURE__ */ jsx46("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) });
5679
5800
  case "user":
5680
- return /* @__PURE__ */ jsxs36("svg", { ...iconProps, children: [
5681
- /* @__PURE__ */ jsx45("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }),
5682
- /* @__PURE__ */ jsx45("circle", { cx: "12", cy: "7", r: "4" })
5801
+ return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
5802
+ /* @__PURE__ */ jsx46("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }),
5803
+ /* @__PURE__ */ jsx46("circle", { cx: "12", cy: "7", r: "4" })
5683
5804
  ] });
5684
5805
  case "database":
5685
- return /* @__PURE__ */ jsxs36("svg", { ...iconProps, children: [
5686
- /* @__PURE__ */ jsx45("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
5687
- /* @__PURE__ */ jsx45("path", { d: "M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" }),
5688
- /* @__PURE__ */ jsx45("path", { d: "M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" })
5806
+ return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
5807
+ /* @__PURE__ */ jsx46("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
5808
+ /* @__PURE__ */ jsx46("path", { d: "M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" }),
5809
+ /* @__PURE__ */ jsx46("path", { d: "M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" })
5689
5810
  ] });
5690
5811
  case "wifi":
5691
- return /* @__PURE__ */ jsxs36("svg", { ...iconProps, children: [
5692
- /* @__PURE__ */ jsx45("path", { d: "M5 12.55a11 11 0 0 1 14.08 0" }),
5693
- /* @__PURE__ */ jsx45("path", { d: "M1.42 9a16 16 0 0 1 21.16 0" }),
5694
- /* @__PURE__ */ jsx45("path", { d: "M8.53 16.11a6 6 0 0 1 6.95 0" }),
5695
- /* @__PURE__ */ jsx45("line", { x1: "12", y1: "20", x2: "12.01", y2: "20" })
5812
+ return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
5813
+ /* @__PURE__ */ jsx46("path", { d: "M5 12.55a11 11 0 0 1 14.08 0" }),
5814
+ /* @__PURE__ */ jsx46("path", { d: "M1.42 9a16 16 0 0 1 21.16 0" }),
5815
+ /* @__PURE__ */ jsx46("path", { d: "M8.53 16.11a6 6 0 0 1 6.95 0" }),
5816
+ /* @__PURE__ */ jsx46("line", { x1: "12", y1: "20", x2: "12.01", y2: "20" })
5696
5817
  ] });
5697
5818
  default:
5698
5819
  return null;
@@ -5710,11 +5831,11 @@ function NodeShape({
5710
5831
  }) {
5711
5832
  const filter = glow ? `drop-shadow(0 0 8px ${glow})` : "drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4))";
5712
5833
  if (shape === "circle") {
5713
- return /* @__PURE__ */ jsx45("circle", { cx: x, cy: y, r, fill, stroke, strokeWidth, style: { filter } });
5834
+ return /* @__PURE__ */ jsx46("circle", { cx: x, cy: y, r, fill, stroke, strokeWidth, style: { filter } });
5714
5835
  }
5715
5836
  if (shape === "square") {
5716
5837
  const size = r * 2;
5717
- return /* @__PURE__ */ jsx45(
5838
+ return /* @__PURE__ */ jsx46(
5718
5839
  "rect",
5719
5840
  {
5720
5841
  x: x - r,
@@ -5729,7 +5850,7 @@ function NodeShape({
5729
5850
  }
5730
5851
  );
5731
5852
  }
5732
- return /* @__PURE__ */ jsx45(
5853
+ return /* @__PURE__ */ jsx46(
5733
5854
  "polygon",
5734
5855
  {
5735
5856
  points: topologyShapePoints(shape, x, y, r),
@@ -5772,7 +5893,7 @@ function StnTopologyNodeMark({
5772
5893
  const countText = formatTopologyCount(count);
5773
5894
  const iconPx = metrics.icon;
5774
5895
  const showCornerBadge = !isCount && count != null && count !== "";
5775
- return /* @__PURE__ */ jsxs36(
5896
+ return /* @__PURE__ */ jsxs37(
5776
5897
  "g",
5777
5898
  {
5778
5899
  className: cn("stn-topology-node", selected && "stn-topology-node--selected", className),
@@ -5784,7 +5905,7 @@ function StnTopologyNodeMark({
5784
5905
  style: { cursor: onClick ? "pointer" : "default" },
5785
5906
  ...rest,
5786
5907
  children: [
5787
- isAlert && /* @__PURE__ */ jsxs36(
5908
+ isAlert && /* @__PURE__ */ jsxs37(
5788
5909
  "circle",
5789
5910
  {
5790
5911
  className: "stn-topology-node__pulse",
@@ -5796,13 +5917,13 @@ function StnTopologyNodeMark({
5796
5917
  strokeWidth: "1.5",
5797
5918
  opacity: "0.55",
5798
5919
  children: [
5799
- /* @__PURE__ */ jsx45("animate", { attributeName: "r", values: `${r + 4};${r + 12};${r + 4}`, dur: "2s", repeatCount: "indefinite" }),
5800
- /* @__PURE__ */ jsx45("animate", { attributeName: "opacity", values: "0.75;0.15;0.75", dur: "2s", repeatCount: "indefinite" })
5920
+ /* @__PURE__ */ jsx46("animate", { attributeName: "r", values: `${r + 4};${r + 12};${r + 4}`, dur: "2s", repeatCount: "indefinite" }),
5921
+ /* @__PURE__ */ jsx46("animate", { attributeName: "opacity", values: "0.75;0.15;0.75", dur: "2s", repeatCount: "indefinite" })
5801
5922
  ]
5802
5923
  }
5803
5924
  ),
5804
- selected && /* @__PURE__ */ jsx45("circle", { cx: x, cy: y, r: r + 6, fill: "none", stroke: "#00e5ff", strokeWidth: "1.5", strokeDasharray: "3 3" }),
5805
- /* @__PURE__ */ jsx45(
5925
+ selected && /* @__PURE__ */ jsx46("circle", { cx: x, cy: y, r: r + 6, fill: "none", stroke: "#00e5ff", strokeWidth: "1.5", strokeDasharray: "3 3" }),
5926
+ /* @__PURE__ */ jsx46(
5806
5927
  NodeShape,
5807
5928
  {
5808
5929
  shape,
@@ -5815,7 +5936,7 @@ function StnTopologyNodeMark({
5815
5936
  glow: isAlert || isCount ? tone.glow : ""
5816
5937
  }
5817
5938
  ),
5818
- isCount ? /* @__PURE__ */ jsx45(
5939
+ isCount ? /* @__PURE__ */ jsx46(
5819
5940
  "text",
5820
5941
  {
5821
5942
  x,
@@ -5828,10 +5949,10 @@ function StnTopologyNodeMark({
5828
5949
  style: { textShadow: "0 1px 2px rgba(0, 0, 0, 0.85)" },
5829
5950
  children: countText
5830
5951
  }
5831
- ) : /* @__PURE__ */ jsx45("g", { transform: `translate(${x - iconPx / 2}, ${y - iconPx / 2})`, children: renderTopologyIcon(icon, stroke, iconPx) }),
5832
- showCornerBadge && /* @__PURE__ */ jsxs36("g", { className: "stn-topology-node__badge", children: [
5833
- /* @__PURE__ */ jsx45("circle", { cx: x + r * 0.72, cy: y - r * 0.72, r: Math.max(6, r * 0.38), fill: stroke, stroke: "rgba(6,7,15,0.9)", strokeWidth: "1" }),
5834
- /* @__PURE__ */ jsx45(
5952
+ ) : /* @__PURE__ */ jsx46("g", { transform: `translate(${x - iconPx / 2}, ${y - iconPx / 2})`, children: renderTopologyIcon(icon, stroke, iconPx) }),
5953
+ showCornerBadge && /* @__PURE__ */ jsxs37("g", { className: "stn-topology-node__badge", children: [
5954
+ /* @__PURE__ */ jsx46("circle", { cx: x + r * 0.72, cy: y - r * 0.72, r: Math.max(6, r * 0.38), fill: stroke, stroke: "rgba(6,7,15,0.9)", strokeWidth: "1" }),
5955
+ /* @__PURE__ */ jsx46(
5835
5956
  "text",
5836
5957
  {
5837
5958
  x: x + r * 0.72,
@@ -5845,7 +5966,7 @@ function StnTopologyNodeMark({
5845
5966
  }
5846
5967
  )
5847
5968
  ] }),
5848
- showLabel && label && /* @__PURE__ */ jsx45(
5969
+ showLabel && label && /* @__PURE__ */ jsx46(
5849
5970
  "text",
5850
5971
  {
5851
5972
  x,
@@ -5858,7 +5979,7 @@ function StnTopologyNodeMark({
5858
5979
  children: label
5859
5980
  }
5860
5981
  ),
5861
- showStatus && resolvedStatusLabel && /* @__PURE__ */ jsxs36(
5982
+ showStatus && resolvedStatusLabel && /* @__PURE__ */ jsxs37(
5862
5983
  "text",
5863
5984
  {
5864
5985
  x,
@@ -5889,11 +6010,11 @@ function StnTopologyNodePreview({
5889
6010
  const r = STN_TOPOLOGY_NODE_SIZE[size].r;
5890
6011
  const w = width ?? r * 2 + (showLabel ? 88 : 28);
5891
6012
  const h = height ?? r * 2 + (showLabel || showStatus ? 56 : 28);
5892
- return /* @__PURE__ */ jsx45("svg", { className: "stn-topology-node-preview", width: w, height: h, viewBox: `0 0 ${w} ${h}`, overflow: "visible", children: /* @__PURE__ */ jsx45(StnTopologyNodeMark, { x: w / 2, y: h / 2, size, showLabel, showStatus, ...rest }) });
6013
+ return /* @__PURE__ */ jsx46("svg", { className: "stn-topology-node-preview", width: w, height: h, viewBox: `0 0 ${w} ${h}`, overflow: "visible", children: /* @__PURE__ */ jsx46(StnTopologyNodeMark, { x: w / 2, y: h / 2, size, showLabel, showStatus, ...rest }) });
5893
6014
  }
5894
6015
 
5895
6016
  // src/components/topology/StnTopologyRing.tsx
5896
- import { jsx as jsx46, jsxs as jsxs37 } from "react/jsx-runtime";
6017
+ import { jsx as jsx47, jsxs as jsxs38 } from "react/jsx-runtime";
5897
6018
  function StnTopologyRing({
5898
6019
  core = {
5899
6020
  title: "\uC5D0\uC2A4\uD2F0\uC5D4\uC778\uD3EC\uD14D",
@@ -5914,8 +6035,8 @@ function StnTopologyRing({
5914
6035
  style,
5915
6036
  ...rest
5916
6037
  }) {
5917
- const gradientId = useId14();
5918
- const coreGlowId = useId14();
6038
+ const gradientId = useId15();
6039
+ const coreGlowId = useId15();
5919
6040
  const safeRingCount = Math.max(1, ringCount);
5920
6041
  const radii = Array.from(
5921
6042
  { length: safeRingCount },
@@ -5952,17 +6073,17 @@ function StnTopologyRing({
5952
6073
  };
5953
6074
  });
5954
6075
  if (loading) {
5955
- return /* @__PURE__ */ jsx46(
6076
+ return /* @__PURE__ */ jsx47(
5956
6077
  "div",
5957
6078
  {
5958
6079
  className: cn("stn-topology-ring", "stn-topology-ring--loading", className),
5959
6080
  style,
5960
6081
  ...rest,
5961
- children: /* @__PURE__ */ jsx46("div", { className: "stn-topology-ring__loading-label", children: "\uD1A0\uD3F4\uB85C\uC9C0 \uB9C1 \uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC624\uB294 \uC911..." })
6082
+ children: /* @__PURE__ */ jsx47("div", { className: "stn-topology-ring__loading-label", children: "\uD1A0\uD3F4\uB85C\uC9C0 \uB9C1 \uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC624\uB294 \uC911..." })
5962
6083
  }
5963
6084
  );
5964
6085
  }
5965
- return /* @__PURE__ */ jsx46(
6086
+ return /* @__PURE__ */ jsx47(
5966
6087
  "div",
5967
6088
  {
5968
6089
  className: cn("stn-topology-ring", className),
@@ -5970,7 +6091,7 @@ function StnTopologyRing({
5970
6091
  "data-stn-topology-ring": true,
5971
6092
  "data-ring-count": safeRingCount,
5972
6093
  ...rest,
5973
- children: /* @__PURE__ */ jsxs37(
6094
+ children: /* @__PURE__ */ jsxs38(
5974
6095
  "svg",
5975
6096
  {
5976
6097
  className: "stn-topology-ring__svg",
@@ -5979,19 +6100,19 @@ function StnTopologyRing({
5979
6100
  viewBox: `0 0 ${vb} ${vb}`,
5980
6101
  overflow: "visible",
5981
6102
  children: [
5982
- /* @__PURE__ */ jsxs37("defs", { children: [
5983
- /* @__PURE__ */ jsxs37("radialGradient", { id: coreGlowId, cx: "50%", cy: "50%", r: "50%", children: [
5984
- /* @__PURE__ */ jsx46("stop", { offset: "0%", stopColor: "#722ed1", stopOpacity: "0.8" }),
5985
- /* @__PURE__ */ jsx46("stop", { offset: "100%", stopColor: "#120338", stopOpacity: "0" })
6103
+ /* @__PURE__ */ jsxs38("defs", { children: [
6104
+ /* @__PURE__ */ jsxs38("radialGradient", { id: coreGlowId, cx: "50%", cy: "50%", r: "50%", children: [
6105
+ /* @__PURE__ */ jsx47("stop", { offset: "0%", stopColor: "#722ed1", stopOpacity: "0.8" }),
6106
+ /* @__PURE__ */ jsx47("stop", { offset: "100%", stopColor: "#120338", stopOpacity: "0" })
5986
6107
  ] }),
5987
- /* @__PURE__ */ jsxs37("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
5988
- /* @__PURE__ */ jsx46("stop", { offset: "0%", stopColor: "#00e5ff", stopOpacity: "0.4" }),
5989
- /* @__PURE__ */ jsx46("stop", { offset: "100%", stopColor: "#722ed1", stopOpacity: "0.4" })
6108
+ /* @__PURE__ */ jsxs38("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6109
+ /* @__PURE__ */ jsx47("stop", { offset: "0%", stopColor: "#00e5ff", stopOpacity: "0.4" }),
6110
+ /* @__PURE__ */ jsx47("stop", { offset: "100%", stopColor: "#722ed1", stopOpacity: "0.4" })
5990
6111
  ] })
5991
6112
  ] }),
5992
6113
  radii.map((r, idx) => {
5993
6114
  const isMain = idx + 1 === mainOrbit;
5994
- return /* @__PURE__ */ jsx46(
6115
+ return /* @__PURE__ */ jsx47(
5995
6116
  "circle",
5996
6117
  {
5997
6118
  cx: centerX,
@@ -6005,7 +6126,7 @@ function StnTopologyRing({
6005
6126
  `orbit-${idx}`
6006
6127
  );
6007
6128
  }),
6008
- connectionLineStyle !== "none" && calculatedNodes.map((node) => /* @__PURE__ */ jsx46(
6129
+ connectionLineStyle !== "none" && calculatedNodes.map((node) => /* @__PURE__ */ jsx47(
6009
6130
  "line",
6010
6131
  {
6011
6132
  x1: centerX,
@@ -6018,9 +6139,9 @@ function StnTopologyRing({
6018
6139
  },
6019
6140
  `line-${node.id}`
6020
6141
  )),
6021
- /* @__PURE__ */ jsxs37("g", { className: "stn-topology-ring__core", children: [
6022
- /* @__PURE__ */ jsx46("circle", { cx: centerX, cy: centerY, r: 54, fill: `url(#${coreGlowId})` }),
6023
- /* @__PURE__ */ jsx46(
6142
+ /* @__PURE__ */ jsxs38("g", { className: "stn-topology-ring__core", children: [
6143
+ /* @__PURE__ */ jsx47("circle", { cx: centerX, cy: centerY, r: 54, fill: `url(#${coreGlowId})` }),
6144
+ /* @__PURE__ */ jsx47(
6024
6145
  "circle",
6025
6146
  {
6026
6147
  cx: centerX,
@@ -6032,7 +6153,7 @@ function StnTopologyRing({
6032
6153
  style: { filter: "drop-shadow(0 0 12px rgba(114, 46, 209, 0.6))" }
6033
6154
  }
6034
6155
  ),
6035
- core.subTitle && /* @__PURE__ */ jsx46(
6156
+ core.subTitle && /* @__PURE__ */ jsx47(
6036
6157
  "text",
6037
6158
  {
6038
6159
  x: centerX,
@@ -6045,13 +6166,13 @@ function StnTopologyRing({
6045
6166
  children: core.subTitle
6046
6167
  }
6047
6168
  ),
6048
- core.title && /* @__PURE__ */ jsx46("text", { x: centerX, y: centerY + 8, textAnchor: "middle", fill: "#f0f2f5", fontSize: "10", fontWeight: "600", children: core.title }),
6049
- /* @__PURE__ */ jsxs37("text", { x: centerX, y: centerY + 22, textAnchor: "middle", fill: coreColor, fontSize: "9", fontWeight: "500", children: [
6169
+ core.title && /* @__PURE__ */ jsx47("text", { x: centerX, y: centerY + 8, textAnchor: "middle", fill: "#f0f2f5", fontSize: "10", fontWeight: "600", children: core.title }),
6170
+ /* @__PURE__ */ jsxs38("text", { x: centerX, y: centerY + 22, textAnchor: "middle", fill: coreColor, fontSize: "9", fontWeight: "500", children: [
6050
6171
  "\u25CF ",
6051
6172
  coreStatusLabel
6052
6173
  ] })
6053
6174
  ] }),
6054
- calculatedNodes.map((node) => /* @__PURE__ */ jsx46(
6175
+ calculatedNodes.map((node) => /* @__PURE__ */ jsx47(
6055
6176
  StnTopologyNodeMark,
6056
6177
  {
6057
6178
  x: node.x,
@@ -6079,8 +6200,8 @@ function StnTopologyRing({
6079
6200
  }
6080
6201
 
6081
6202
  // src/components/topology/StnTopologyGraph.tsx
6082
- import { useState as useState13 } from "react";
6083
- import { jsx as jsx47, jsxs as jsxs38 } from "react/jsx-runtime";
6203
+ import { useState as useState14 } from "react";
6204
+ import { jsx as jsx48, jsxs as jsxs39 } from "react/jsx-runtime";
6084
6205
  var DEFAULT_GRAPH_NODES = [
6085
6206
  { id: "n1", x: 200, y: 58, status: "minor", label: "GW-01", shape: "circle", content: "icon", icon: "wifi" },
6086
6207
  { id: "n2", x: 118, y: 118, status: "critical", label: "BACKUP", shape: "hexagon", content: "count", count: 4, pulse: true },
@@ -6114,12 +6235,12 @@ function StnTopologyGraph({
6114
6235
  style,
6115
6236
  ...rest
6116
6237
  }) {
6117
- const [viewMode, setViewMode] = useState13(defaultMode);
6238
+ const [viewMode, setViewMode] = useState14(defaultMode);
6118
6239
  if (loading) {
6119
- return /* @__PURE__ */ jsx47("div", { className: cn("stn-topology-graph", "stn-topology-graph--loading", className), style, ...rest, children: /* @__PURE__ */ jsx47("div", { className: "stn-topology-graph__loading-label", children: "\uD1A0\uD3F4\uB85C\uC9C0 \uCE94\uBC84\uC2A4 \uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC624\uB294 \uC911..." }) });
6240
+ return /* @__PURE__ */ jsx48("div", { className: cn("stn-topology-graph", "stn-topology-graph--loading", className), style, ...rest, children: /* @__PURE__ */ jsx48("div", { className: "stn-topology-graph__loading-label", children: "\uD1A0\uD3F4\uB85C\uC9C0 \uCE94\uBC84\uC2A4 \uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC624\uB294 \uC911..." }) });
6120
6241
  }
6121
6242
  const nodeMap = new Map(nodes.map((n) => [n.id, n]));
6122
- return /* @__PURE__ */ jsxs38(
6243
+ return /* @__PURE__ */ jsxs39(
6123
6244
  "div",
6124
6245
  {
6125
6246
  className: cn("stn-topology-graph", className),
@@ -6128,7 +6249,7 @@ function StnTopologyGraph({
6128
6249
  "data-view-mode": viewMode,
6129
6250
  ...rest,
6130
6251
  children: [
6131
- showModeToggle && /* @__PURE__ */ jsx47("div", { className: "stn-topology-graph__mode", children: /* @__PURE__ */ jsx47(
6252
+ showModeToggle && /* @__PURE__ */ jsx48("div", { className: "stn-topology-graph__mode", children: /* @__PURE__ */ jsx48(
6132
6253
  StnSegmented,
6133
6254
  {
6134
6255
  size: "sm",
@@ -6140,23 +6261,23 @@ function StnTopologyGraph({
6140
6261
  ]
6141
6262
  }
6142
6263
  ) }),
6143
- /* @__PURE__ */ jsxs38("svg", { className: "stn-topology-graph__svg", width: "100%", height: "100%", viewBox: "0 0 400 300", overflow: "visible", children: [
6144
- viewMode === "3D" ? /* @__PURE__ */ jsxs38("g", { opacity: "0.6", children: [
6145
- /* @__PURE__ */ jsx47("line", { x1: "60", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.06)", strokeDasharray: "3 3" }),
6146
- /* @__PURE__ */ jsx47("line", { x1: "130", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "3 3" }),
6147
- /* @__PURE__ */ jsx47("line", { x1: "200", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.14)", strokeDasharray: "3 3" }),
6148
- /* @__PURE__ */ jsx47("line", { x1: "270", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "3 3" }),
6149
- /* @__PURE__ */ jsx47("line", { x1: "340", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.06)", strokeDasharray: "3 3" }),
6150
- /* @__PURE__ */ jsx47("line", { x1: "100", y1: "230", x2: "300", y2: "230", stroke: "rgba(255,255,255,0.06)" }),
6151
- /* @__PURE__ */ jsx47("line", { x1: "130", y1: "190", x2: "270", y2: "190", stroke: "rgba(255,255,255,0.06)" }),
6152
- /* @__PURE__ */ jsx47("line", { x1: "160", y1: "140", x2: "240", y2: "140", stroke: "rgba(255,255,255,0.06)" })
6153
- ] }) : /* @__PURE__ */ jsxs38("g", { opacity: "0.3", children: [
6154
- /* @__PURE__ */ jsx47("line", { x1: "40", y1: "60", x2: "360", y2: "60", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6155
- /* @__PURE__ */ jsx47("line", { x1: "40", y1: "150", x2: "360", y2: "150", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6156
- /* @__PURE__ */ jsx47("line", { x1: "40", y1: "240", x2: "360", y2: "240", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6157
- /* @__PURE__ */ jsx47("line", { x1: "100", y1: "20", x2: "100", y2: "280", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6158
- /* @__PURE__ */ jsx47("line", { x1: "200", y1: "20", x2: "200", y2: "280", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6159
- /* @__PURE__ */ jsx47("line", { x1: "300", y1: "20", x2: "300", y2: "280", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" })
6264
+ /* @__PURE__ */ jsxs39("svg", { className: "stn-topology-graph__svg", width: "100%", height: "100%", viewBox: "0 0 400 300", overflow: "visible", children: [
6265
+ viewMode === "3D" ? /* @__PURE__ */ jsxs39("g", { opacity: "0.6", children: [
6266
+ /* @__PURE__ */ jsx48("line", { x1: "60", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.06)", strokeDasharray: "3 3" }),
6267
+ /* @__PURE__ */ jsx48("line", { x1: "130", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "3 3" }),
6268
+ /* @__PURE__ */ jsx48("line", { x1: "200", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.14)", strokeDasharray: "3 3" }),
6269
+ /* @__PURE__ */ jsx48("line", { x1: "270", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "3 3" }),
6270
+ /* @__PURE__ */ jsx48("line", { x1: "340", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.06)", strokeDasharray: "3 3" }),
6271
+ /* @__PURE__ */ jsx48("line", { x1: "100", y1: "230", x2: "300", y2: "230", stroke: "rgba(255,255,255,0.06)" }),
6272
+ /* @__PURE__ */ jsx48("line", { x1: "130", y1: "190", x2: "270", y2: "190", stroke: "rgba(255,255,255,0.06)" }),
6273
+ /* @__PURE__ */ jsx48("line", { x1: "160", y1: "140", x2: "240", y2: "140", stroke: "rgba(255,255,255,0.06)" })
6274
+ ] }) : /* @__PURE__ */ jsxs39("g", { opacity: "0.3", children: [
6275
+ /* @__PURE__ */ jsx48("line", { x1: "40", y1: "60", x2: "360", y2: "60", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6276
+ /* @__PURE__ */ jsx48("line", { x1: "40", y1: "150", x2: "360", y2: "150", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6277
+ /* @__PURE__ */ jsx48("line", { x1: "40", y1: "240", x2: "360", y2: "240", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6278
+ /* @__PURE__ */ jsx48("line", { x1: "100", y1: "20", x2: "100", y2: "280", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6279
+ /* @__PURE__ */ jsx48("line", { x1: "200", y1: "20", x2: "200", y2: "280", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
6280
+ /* @__PURE__ */ jsx48("line", { x1: "300", y1: "20", x2: "300", y2: "280", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" })
6160
6281
  ] }),
6161
6282
  links.map((link, idx) => {
6162
6283
  const s = nodeMap.get(link.source);
@@ -6164,7 +6285,7 @@ function StnTopologyGraph({
6164
6285
  if (!s || !t) return null;
6165
6286
  const isAlert = s.status === "critical" || t.status === "critical" || link.status === "critical";
6166
6287
  const strokeColor = isAlert ? "rgba(255, 77, 79, 0.65)" : "rgba(255, 255, 255, 0.2)";
6167
- return /* @__PURE__ */ jsx47(
6288
+ return /* @__PURE__ */ jsx48(
6168
6289
  "line",
6169
6290
  {
6170
6291
  x1: s.x,
@@ -6181,7 +6302,7 @@ function StnTopologyGraph({
6181
6302
  nodes.map((node) => {
6182
6303
  const status = node.status ?? "normal";
6183
6304
  const isCore = Boolean(node.isCore);
6184
- return /* @__PURE__ */ jsx47(
6305
+ return /* @__PURE__ */ jsx48(
6185
6306
  StnTopologyNodeMark,
6186
6307
  {
6187
6308
  x: node.x,
@@ -6204,17 +6325,17 @@ function StnTopologyGraph({
6204
6325
  );
6205
6326
  })
6206
6327
  ] }),
6207
- showMinimap && /* @__PURE__ */ jsxs38("div", { className: "stn-topology-graph__minimap", children: [
6208
- /* @__PURE__ */ jsxs38("div", { className: "stn-topology-graph__minimap-head", children: [
6209
- /* @__PURE__ */ jsx47("span", { children: "\uBBF8\uB9AC\uBCF4\uAE30" }),
6210
- /* @__PURE__ */ jsx47("span", { children: "\u2014" })
6328
+ showMinimap && /* @__PURE__ */ jsxs39("div", { className: "stn-topology-graph__minimap", children: [
6329
+ /* @__PURE__ */ jsxs39("div", { className: "stn-topology-graph__minimap-head", children: [
6330
+ /* @__PURE__ */ jsx48("span", { children: "\uBBF8\uB9AC\uBCF4\uAE30" }),
6331
+ /* @__PURE__ */ jsx48("span", { children: "\u2014" })
6211
6332
  ] }),
6212
- /* @__PURE__ */ jsxs38("svg", { width: "100%", height: "40", viewBox: "0 0 100 50", children: [
6213
- /* @__PURE__ */ jsx47("polyline", { points: "50,10 40,25 50,40 60,30", fill: "none", stroke: "rgba(255,77,79,0.5)", strokeWidth: "1" }),
6214
- /* @__PURE__ */ jsx47("circle", { cx: "50", cy: "10", r: "2", fill: STN_TOPOLOGY_STATUS_COLORS.critical.main }),
6215
- /* @__PURE__ */ jsx47("circle", { cx: "40", cy: "25", r: "2.5", fill: STN_TOPOLOGY_STATUS_COLORS.critical.main }),
6216
- /* @__PURE__ */ jsx47("circle", { cx: "50", cy: "40", r: "2", fill: "#00e5ff" }),
6217
- /* @__PURE__ */ jsx47("circle", { cx: "60", cy: "30", r: "2", fill: STN_TOPOLOGY_STATUS_COLORS.normal.main })
6333
+ /* @__PURE__ */ jsxs39("svg", { width: "100%", height: "40", viewBox: "0 0 100 50", children: [
6334
+ /* @__PURE__ */ jsx48("polyline", { points: "50,10 40,25 50,40 60,30", fill: "none", stroke: "rgba(255,77,79,0.5)", strokeWidth: "1" }),
6335
+ /* @__PURE__ */ jsx48("circle", { cx: "50", cy: "10", r: "2", fill: STN_TOPOLOGY_STATUS_COLORS.critical.main }),
6336
+ /* @__PURE__ */ jsx48("circle", { cx: "40", cy: "25", r: "2.5", fill: STN_TOPOLOGY_STATUS_COLORS.critical.main }),
6337
+ /* @__PURE__ */ jsx48("circle", { cx: "50", cy: "40", r: "2", fill: "#00e5ff" }),
6338
+ /* @__PURE__ */ jsx48("circle", { cx: "60", cy: "30", r: "2", fill: STN_TOPOLOGY_STATUS_COLORS.normal.main })
6218
6339
  ] })
6219
6340
  ] })
6220
6341
  ]
@@ -6223,7 +6344,7 @@ function StnTopologyGraph({
6223
6344
  }
6224
6345
 
6225
6346
  // src/components/StnWidget.tsx
6226
- import { Fragment as Fragment5, jsx as jsx48, jsxs as jsxs39 } from "react/jsx-runtime";
6347
+ import { Fragment as Fragment5, jsx as jsx49, jsxs as jsxs40 } from "react/jsx-runtime";
6227
6348
  var SHELL_PUB_CLASS = {
6228
6349
  card: "",
6229
6350
  "fault-panel": "",
@@ -6306,20 +6427,20 @@ function StnWidgetPeriodText({
6306
6427
  className,
6307
6428
  ...rest
6308
6429
  }) {
6309
- return /* @__PURE__ */ jsx48("span", { className: cn("stn-widget__period-text", className), ...rest, children });
6430
+ return /* @__PURE__ */ jsx49("span", { className: cn("stn-widget__period-text", className), ...rest, children });
6310
6431
  }
6311
6432
  function StnWidgetPeriodSelect({
6312
6433
  label,
6313
6434
  className,
6314
6435
  ...rest
6315
6436
  }) {
6316
- return /* @__PURE__ */ jsx48(
6437
+ return /* @__PURE__ */ jsx49(
6317
6438
  StnButton,
6318
6439
  {
6319
6440
  variant: "ghost",
6320
6441
  size: "sm",
6321
6442
  shape: "square",
6322
- icon: /* @__PURE__ */ jsx48(StnIcon, { name: "line/chevron-down" }),
6443
+ icon: /* @__PURE__ */ jsx49(StnIcon, { name: "line/chevron-down" }),
6323
6444
  iconPosition: "right",
6324
6445
  className,
6325
6446
  ...rest,
@@ -6336,26 +6457,26 @@ function StnWidgetPeriodPager({
6336
6457
  nextLabel = "\uB2E4\uC74C",
6337
6458
  ...rest
6338
6459
  }) {
6339
- return /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__period-pager", className), ...rest, children: [
6340
- /* @__PURE__ */ jsx48(
6460
+ return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__period-pager", className), ...rest, children: [
6461
+ /* @__PURE__ */ jsx49(
6341
6462
  StnButton,
6342
6463
  {
6343
6464
  variant: "ghost",
6344
6465
  size: "sm",
6345
6466
  shape: "square",
6346
- icon: /* @__PURE__ */ jsx48(StnIcon, { name: "line/arrow-narrow-left" }),
6467
+ icon: /* @__PURE__ */ jsx49(StnIcon, { name: "line/arrow-narrow-left" }),
6347
6468
  onClick: onPrev,
6348
6469
  "aria-label": prevLabel
6349
6470
  }
6350
6471
  ),
6351
- /* @__PURE__ */ jsx48("span", { className: "stn-widget__period-pager-label", children: label }),
6352
- /* @__PURE__ */ jsx48(
6472
+ /* @__PURE__ */ jsx49("span", { className: "stn-widget__period-pager-label", children: label }),
6473
+ /* @__PURE__ */ jsx49(
6353
6474
  StnButton,
6354
6475
  {
6355
6476
  variant: "ghost",
6356
6477
  size: "sm",
6357
6478
  shape: "square",
6358
- icon: /* @__PURE__ */ jsx48(StnIcon, { name: "line/arrow-narrow-right" }),
6479
+ icon: /* @__PURE__ */ jsx49(StnIcon, { name: "line/arrow-narrow-right" }),
6359
6480
  onClick: onNext,
6360
6481
  "aria-label": nextLabel
6361
6482
  }
@@ -6375,18 +6496,18 @@ function StnWidgetHeaderInner({
6375
6496
  wrapActions = false
6376
6497
  }) {
6377
6498
  const resolvedIconName = headerIconName ?? defaultHeaderIconName(appearance);
6378
- return /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
6379
- /* @__PURE__ */ jsxs39("div", { className: "stn-widget__head-start", children: [
6380
- showHeaderIcon ? headerIcon != null ? /* @__PURE__ */ jsx48(StnWidgetInsetIcon, { size: "sm", children: headerIcon }) : resolvedIconName ? /* @__PURE__ */ jsx48(StnWidgetInsetIcon, { size: "sm", icon: resolvedIconName }) : null : null,
6381
- title != null || badge != null ? typeof title === "string" || title == null ? /* @__PURE__ */ jsxs39("div", { className: "stn-widget__title-wrap", children: [
6382
- typeof title === "string" ? /* @__PURE__ */ jsx48("p", { className: "stn-widget__title", title, children: title }) : null,
6499
+ return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
6500
+ /* @__PURE__ */ jsxs40("div", { className: "stn-widget__head-start", children: [
6501
+ showHeaderIcon ? headerIcon != null ? /* @__PURE__ */ jsx49(StnWidgetInsetIcon, { size: "sm", children: headerIcon }) : resolvedIconName ? /* @__PURE__ */ jsx49(StnWidgetInsetIcon, { size: "sm", icon: resolvedIconName }) : null : null,
6502
+ title != null || badge != null ? typeof title === "string" || title == null ? /* @__PURE__ */ jsxs40("div", { className: "stn-widget__title-wrap", children: [
6503
+ typeof title === "string" ? /* @__PURE__ */ jsx49("p", { className: "stn-widget__title", title, children: title }) : null,
6383
6504
  badge
6384
- ] }) : /* @__PURE__ */ jsxs39(Fragment5, { children: [
6505
+ ] }) : /* @__PURE__ */ jsxs40(Fragment5, { children: [
6385
6506
  title,
6386
6507
  badge
6387
6508
  ] }) : null
6388
6509
  ] }),
6389
- titleActions != null || periodActions != null || periodLabel != null && periodLabel !== "" ? /* @__PURE__ */ jsx48("div", { className: "stn-widget__head-end", children: titleActions ?? (periodActions != null ? periodActions : periodLabel != null && periodLabel !== "" ? /* @__PURE__ */ jsx48(StnWidgetPeriodText, { children: periodLabel }) : null) }) : null
6510
+ titleActions != null || periodActions != null || periodLabel != null && periodLabel !== "" ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__head-end", children: titleActions ?? (periodActions != null ? periodActions : periodLabel != null && periodLabel !== "" ? /* @__PURE__ */ jsx49(StnWidgetPeriodText, { children: periodLabel }) : null) }) : null
6390
6511
  ] });
6391
6512
  }
6392
6513
  function StnWidgetRoot({
@@ -6466,10 +6587,10 @@ function StnWidgetRoot({
6466
6587
  ...rest
6467
6588
  };
6468
6589
  const slots = partitionWidgetChildren(children);
6469
- const propHead = shell === "fault-panel" && !isFigmaShell ? title != null || titleActions ? /* @__PURE__ */ jsxs39("div", { className: "app_bar", children: [
6470
- /* @__PURE__ */ jsx48("div", { className: "fault_title_box", children: typeof title === "string" ? /* @__PURE__ */ jsx48("span", { children: title }) : title }),
6590
+ const propHead = shell === "fault-panel" && !isFigmaShell ? title != null || titleActions ? /* @__PURE__ */ jsxs40("div", { className: "app_bar", children: [
6591
+ /* @__PURE__ */ jsx49("div", { className: "fault_title_box", children: typeof title === "string" ? /* @__PURE__ */ jsx49("span", { children: title }) : title }),
6471
6592
  titleActions
6472
- ] }) : null : shell === "board" || shell === "board-item" ? title != null ? /* @__PURE__ */ jsx48("div", { className: "stn-widget__head", children: typeof title === "string" ? /* @__PURE__ */ jsx48("p", { children: title }) : title }) : null : isFigmaShell ? /* @__PURE__ */ jsx48(
6593
+ ] }) : null : shell === "board" || shell === "board-item" ? title != null ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__head", children: typeof title === "string" ? /* @__PURE__ */ jsx49("p", { children: title }) : title }) : null : isFigmaShell ? /* @__PURE__ */ jsx49(
6473
6594
  StnWidgetHeaderInner,
6474
6595
  {
6475
6596
  appearance,
@@ -6483,48 +6604,48 @@ function StnWidgetRoot({
6483
6604
  headerIcon,
6484
6605
  wrapActions
6485
6606
  }
6486
- ) : title != null || badge != null || titleActions ? /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
6487
- /* @__PURE__ */ jsxs39("div", { className: "stn-widget__head-start", children: [
6488
- title != null ? typeof title === "string" ? /* @__PURE__ */ jsx48("p", { className: "stn-widget__title", title, children: title }) : title : null,
6607
+ ) : title != null || badge != null || titleActions ? /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
6608
+ /* @__PURE__ */ jsxs40("div", { className: "stn-widget__head-start", children: [
6609
+ title != null ? typeof title === "string" ? /* @__PURE__ */ jsx49("p", { className: "stn-widget__title", title, children: title }) : title : null,
6489
6610
  badge
6490
6611
  ] }),
6491
- titleActions ? /* @__PURE__ */ jsx48("div", { className: "stn-widget__head-end", children: titleActions }) : null
6612
+ titleActions ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__head-end", children: titleActions }) : null
6492
6613
  ] }) : null;
6493
6614
  const head = slots.headers.length > 0 ? slots.headers : propHead;
6494
6615
  const autoBodyClass = shell === "fault-panel" && !isFigmaShell ? "table_area" : void 0;
6495
6616
  let body;
6496
6617
  if (loading) {
6497
- body = /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__body", autoBodyClass, contentClassName), children: /* @__PURE__ */ jsx48(StnWidgetLoading, {}) });
6618
+ body = /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__body", autoBodyClass, contentClassName), children: /* @__PURE__ */ jsx49(StnWidgetLoading, {}) });
6498
6619
  } else if (slots.bodies.length > 0) {
6499
6620
  body = slots.bodies.map(
6500
6621
  (slot, index) => mergeBodySlot(slot, index === 0 ? slots.rest : [], contentClassName, isEmptyState, emptyStyle)
6501
6622
  );
6502
6623
  } else {
6503
- body = /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__body", autoBodyClass, isEmptyState && "empty", contentClassName), style: emptyStyle, children: slots.rest });
6624
+ body = /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__body", autoBodyClass, isEmptyState && "empty", contentClassName), style: emptyStyle, children: slots.rest });
6504
6625
  }
6505
- const footerNode = slots.footers.length > 0 ? slots.footers : footer ? /* @__PURE__ */ jsx48("div", { className: "stn-widget__footer", children: footer }) : null;
6506
- const card = /* @__PURE__ */ jsxs39("div", { ...rootProps, children: [
6507
- isFigmaShell && appearanceShell === "overlay" ? /* @__PURE__ */ jsx48("div", { className: "stn-widget__map-deco", "aria-hidden": true }) : null,
6626
+ const footerNode = slots.footers.length > 0 ? slots.footers : footer ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__footer", children: footer }) : null;
6627
+ const card = /* @__PURE__ */ jsxs40("div", { ...rootProps, children: [
6628
+ isFigmaShell && appearanceShell === "overlay" ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__map-deco", "aria-hidden": true }) : null,
6508
6629
  head,
6509
6630
  body,
6510
6631
  footerNode
6511
6632
  ] });
6512
6633
  if (banner == null || banner === false) return card;
6513
- return /* @__PURE__ */ jsxs39("div", { className: "stn-widget-anchor", children: [
6634
+ return /* @__PURE__ */ jsxs40("div", { className: "stn-widget-anchor", children: [
6514
6635
  withBannerSeverity(banner, bannerSeverityFromStatus(status, isCritical)),
6515
6636
  card
6516
6637
  ] });
6517
6638
  }
6518
6639
  function StnWidgetHeader({ className, wrap = false, children, ...rest }) {
6519
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__head", wrap && "stn-widget__head--wrap", className), ...rest, children });
6640
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__head", wrap && "stn-widget__head--wrap", className), ...rest, children });
6520
6641
  }
6521
6642
  markWidgetSlot(StnWidgetHeader, "header");
6522
6643
  function StnWidgetTitle({ className, children, title, ...rest }) {
6523
6644
  const titleAttr = title ?? (typeof children === "string" ? children : void 0);
6524
- return /* @__PURE__ */ jsx48("p", { className: cn("stn-widget__title", className), title: titleAttr, ...rest, children });
6645
+ return /* @__PURE__ */ jsx49("p", { className: cn("stn-widget__title", className), title: titleAttr, ...rest, children });
6525
6646
  }
6526
6647
  function StnWidgetActions({ className, children, ...rest }) {
6527
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__head-end", className), ...rest, children });
6648
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__head-end", className), ...rest, children });
6528
6649
  }
6529
6650
  function StnWidgetBody({
6530
6651
  padding,
@@ -6538,7 +6659,7 @@ function StnWidgetBody({
6538
6659
  }) {
6539
6660
  const emptyText = typeof empty === "string" ? empty : void 0;
6540
6661
  const mergedStyle = emptyText ? { ["--stn-widget-empty-text"]: `"${emptyText}"`, ...style } : style;
6541
- return /* @__PURE__ */ jsx48(
6662
+ return /* @__PURE__ */ jsx49(
6542
6663
  "div",
6543
6664
  {
6544
6665
  className: cn(
@@ -6560,7 +6681,7 @@ function StnWidgetBody({
6560
6681
  }
6561
6682
  markWidgetSlot(StnWidgetBody, "body");
6562
6683
  function StnWidgetChartSlot({ label = "select chart", className, children, ...rest }) {
6563
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__chart-slot", className), "data-stn-widget-chart-slot": true, ...rest, children: children ?? /* @__PURE__ */ jsx48("span", { className: "stn-widget__chart-slot-label", children: label }) });
6684
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__chart-slot", className), "data-stn-widget-chart-slot": true, ...rest, children: children ?? /* @__PURE__ */ jsx49("span", { className: "stn-widget__chart-slot-label", children: label }) });
6564
6685
  }
6565
6686
  function StnWidgetStatusItem({
6566
6687
  label,
@@ -6572,9 +6693,9 @@ function StnWidgetStatusItem({
6572
6693
  ...rest
6573
6694
  }) {
6574
6695
  const grade = gradeProp ?? (status === "warning" ? "minor" : status) ?? "normal";
6575
- return /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__status-item", className), ...rest, children: [
6576
- /* @__PURE__ */ jsxs39("span", { className: "stn-widget__status-label", children: [
6577
- showDot ? /* @__PURE__ */ jsx48(
6696
+ return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__status-item", className), ...rest, children: [
6697
+ /* @__PURE__ */ jsxs40("span", { className: "stn-widget__status-label", children: [
6698
+ showDot ? /* @__PURE__ */ jsx49(
6578
6699
  "span",
6579
6700
  {
6580
6701
  className: cn("stn-widget__status-dot", `stn-widget__status-dot--${grade}`),
@@ -6583,23 +6704,23 @@ function StnWidgetStatusItem({
6583
6704
  ) : null,
6584
6705
  label
6585
6706
  ] }),
6586
- /* @__PURE__ */ jsx48("span", { className: "stn-widget__status-val", children: value })
6707
+ /* @__PURE__ */ jsx49("span", { className: "stn-widget__status-val", children: value })
6587
6708
  ] });
6588
6709
  }
6589
6710
  function StnWidgetStatusList({ className, children, ...rest }) {
6590
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__status-list", className), ...rest, children });
6711
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__status-list", className), ...rest, children });
6591
6712
  }
6592
6713
  function StnWidgetStatGroup({ className, children, ...rest }) {
6593
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__stat-group", className), ...rest, children });
6714
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__stat-group", className), ...rest, children });
6594
6715
  }
6595
6716
  function StnWidgetStatCard({ label, count, className, ...rest }) {
6596
- return /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__stat-card", className), ...rest, children: [
6597
- /* @__PURE__ */ jsx48("span", { className: "stn-widget__stat-label", children: label }),
6598
- /* @__PURE__ */ jsx48("span", { className: "stn-widget__stat-count", children: count })
6717
+ return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__stat-card", className), ...rest, children: [
6718
+ /* @__PURE__ */ jsx49("span", { className: "stn-widget__stat-label", children: label }),
6719
+ /* @__PURE__ */ jsx49("span", { className: "stn-widget__stat-count", children: count })
6599
6720
  ] });
6600
6721
  }
6601
6722
  function StnWidgetPlaceholder({ label = "\uCF58\uD150\uCE20 \uC601\uC5ED" }) {
6602
- return /* @__PURE__ */ jsx48("div", { className: "stn-widget__placeholder", children: label });
6723
+ return /* @__PURE__ */ jsx49("div", { className: "stn-widget__placeholder", children: label });
6603
6724
  }
6604
6725
  var GRADE_ROW_ICON = {
6605
6726
  critical: "fill/alert4",
@@ -6622,42 +6743,42 @@ function StnWidgetGradeRow({
6622
6743
  }) {
6623
6744
  const clamped = Math.max(0, Math.min(100, percent));
6624
6745
  const resolvedPercentLabel = percentLabel ?? formatGradePercent(clamped);
6625
- return /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__grade-row", `stn-widget__grade-row--${grade}`, className), ...rest, children: [
6626
- /* @__PURE__ */ jsxs39("div", { className: "stn-widget__grade-row-left", children: [
6627
- /* @__PURE__ */ jsxs39("span", { className: "stn-widget__grade-row-label", children: [
6628
- /* @__PURE__ */ jsx48(StnIcon, { name: GRADE_ROW_ICON[grade], size: 20, className: "stn-widget__grade-row-icon", "aria-hidden": true }),
6746
+ return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__grade-row", `stn-widget__grade-row--${grade}`, className), ...rest, children: [
6747
+ /* @__PURE__ */ jsxs40("div", { className: "stn-widget__grade-row-left", children: [
6748
+ /* @__PURE__ */ jsxs40("span", { className: "stn-widget__grade-row-label", children: [
6749
+ /* @__PURE__ */ jsx49(StnIcon, { name: GRADE_ROW_ICON[grade], size: 20, className: "stn-widget__grade-row-icon", "aria-hidden": true }),
6629
6750
  label
6630
6751
  ] }),
6631
- /* @__PURE__ */ jsx48("div", { className: "stn-widget__grade-row-track", "aria-hidden": true, children: /* @__PURE__ */ jsx48("span", { className: "stn-widget__grade-row-fill", style: { width: `${clamped}%` } }) })
6752
+ /* @__PURE__ */ jsx49("div", { className: "stn-widget__grade-row-track", "aria-hidden": true, children: /* @__PURE__ */ jsx49("span", { className: "stn-widget__grade-row-fill", style: { width: `${clamped}%` } }) })
6632
6753
  ] }),
6633
- /* @__PURE__ */ jsxs39("div", { className: "stn-widget__grade-row-right", children: [
6634
- /* @__PURE__ */ jsx48("span", { className: "stn-widget__grade-row-value", children: value }),
6635
- /* @__PURE__ */ jsx48("span", { className: "stn-widget__grade-row-percent", children: resolvedPercentLabel })
6754
+ /* @__PURE__ */ jsxs40("div", { className: "stn-widget__grade-row-right", children: [
6755
+ /* @__PURE__ */ jsx49("span", { className: "stn-widget__grade-row-value", children: value }),
6756
+ /* @__PURE__ */ jsx49("span", { className: "stn-widget__grade-row-percent", children: resolvedPercentLabel })
6636
6757
  ] })
6637
6758
  ] });
6638
6759
  }
6639
6760
  function StnWidgetGradeRowList({ className, children, ...rest }) {
6640
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__grade-row-list", className), ...rest, children });
6761
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__grade-row-list", className), ...rest, children });
6641
6762
  }
6642
6763
  function StnWidgetFooter({ className, children, ...rest }) {
6643
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__footer", className), ...rest, children });
6764
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__footer", className), ...rest, children });
6644
6765
  }
6645
6766
  markWidgetSlot(StnWidgetFooter, "footer");
6646
6767
  function StnWidgetEmpty({ className, children, ...rest }) {
6647
- return /* @__PURE__ */ jsxs39("div", { className: cn("stn-widget__empty", className), ...rest, children: [
6648
- /* @__PURE__ */ jsxs39("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { opacity: 0.6 }, children: [
6649
- /* @__PURE__ */ jsx48("circle", { cx: "12", cy: "12", r: "10" }),
6650
- /* @__PURE__ */ jsx48("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
6651
- /* @__PURE__ */ jsx48("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
6768
+ return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__empty", className), ...rest, children: [
6769
+ /* @__PURE__ */ jsxs40("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { opacity: 0.6 }, children: [
6770
+ /* @__PURE__ */ jsx49("circle", { cx: "12", cy: "12", r: "10" }),
6771
+ /* @__PURE__ */ jsx49("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
6772
+ /* @__PURE__ */ jsx49("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
6652
6773
  ] }),
6653
- /* @__PURE__ */ jsx48("div", { children: children ?? "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4." })
6774
+ /* @__PURE__ */ jsx49("div", { children: children ?? "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4." })
6654
6775
  ] });
6655
6776
  }
6656
6777
  function StnWidgetLoading({ lines = 3, className, children, ...rest }) {
6657
- return /* @__PURE__ */ jsx48("div", { className: cn("stn-widget__loading", className), ...rest, children: children ?? /* @__PURE__ */ jsx48(StnLoadingSkeleton.Widget, { lines }) });
6778
+ return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__loading", className), ...rest, children: children ?? /* @__PURE__ */ jsx49(StnLoadingSkeleton.Widget, { lines }) });
6658
6779
  }
6659
6780
  function StnWidgetInsetIcon({ className, size = "sm", ...rest }) {
6660
- return /* @__PURE__ */ jsx48(StnIconBox, { size, className: cn("stn-widget__inset-icon", className), ...rest });
6781
+ return /* @__PURE__ */ jsx49(StnIconBox, { size, className: cn("stn-widget__inset-icon", className), ...rest });
6661
6782
  }
6662
6783
  var StnWidget = Object.assign(StnWidgetRoot, {
6663
6784
  Header: StnWidgetHeader,
@@ -6704,11 +6825,11 @@ import {
6704
6825
  // src/layouts/StnStack.tsx
6705
6826
  import {
6706
6827
  Children as Children3,
6707
- forwardRef as forwardRef25,
6828
+ forwardRef as forwardRef26,
6708
6829
  Fragment as Fragment6,
6709
6830
  isValidElement as isValidElement6
6710
6831
  } from "react";
6711
- import { jsx as jsx49, jsxs as jsxs40 } from "react/jsx-runtime";
6832
+ import { jsx as jsx50, jsxs as jsxs41 } from "react/jsx-runtime";
6712
6833
  var BREAKPOINTS = ["xs", "sm", "md", "lg", "xl"];
6713
6834
  var DIRECTION_CLASS = /* @__PURE__ */ new Set(["row", "row-reverse", "column", "column-reverse"]);
6714
6835
  var STACK_SPACE_TOKENS = /* @__PURE__ */ new Set([2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 36, 40, 44, 48, 56, 64, 80, 84]);
@@ -6801,7 +6922,7 @@ function spacingClassesAndStyle(spacing) {
6801
6922
  }
6802
6923
  return { classes, inlineGap };
6803
6924
  }
6804
- var StnStack = forwardRef25(function StnStack2({
6925
+ var StnStack = forwardRef26(function StnStack2({
6805
6926
  component,
6806
6927
  as,
6807
6928
  direction = "column",
@@ -6831,12 +6952,12 @@ var StnStack = forwardRef25(function StnStack2({
6831
6952
  const validChildren = Children3.toArray(children).filter(Boolean);
6832
6953
  const renderedChildren = divider ? validChildren.map((child, index) => {
6833
6954
  const key = isValidElement6(child) && child.key != null ? child.key : index;
6834
- return /* @__PURE__ */ jsxs40(Fragment6, { children: [
6955
+ return /* @__PURE__ */ jsxs41(Fragment6, { children: [
6835
6956
  index > 0 ? divider : null,
6836
6957
  child
6837
6958
  ] }, key);
6838
6959
  }) : children;
6839
- return /* @__PURE__ */ jsx49(
6960
+ return /* @__PURE__ */ jsx50(
6840
6961
  Component,
6841
6962
  {
6842
6963
  ref,
@@ -6860,7 +6981,7 @@ var StnStack = forwardRef25(function StnStack2({
6860
6981
  });
6861
6982
 
6862
6983
  // src/patterns/dashboard/AlertCenterDashboard.tsx
6863
- import { jsx as jsx50, jsxs as jsxs41 } from "react/jsx-runtime";
6984
+ import { jsx as jsx51, jsxs as jsxs42 } from "react/jsx-runtime";
6864
6985
  var TOP5_ROWS = [
6865
6986
  { label: "\uADF8\uB791\uC2DC\uC544", percent: 80, value: "80\uAC74", grade: "critical" },
6866
6987
  { label: "\uC5F0\uB9BD\uC8FC\uD0DD 15\uC138\uB300", percent: 74, value: "74\uAC74", grade: "major" },
@@ -6869,7 +6990,7 @@ var TOP5_ROWS = [
6869
6990
  { label: "PRADA", percent: 68, value: "68\uAC74", grade: "default" }
6870
6991
  ];
6871
6992
  function AlertCenterDashboard({ className, appearance = "translucent", loading = false }) {
6872
- return /* @__PURE__ */ jsxs41(
6993
+ return /* @__PURE__ */ jsxs42(
6873
6994
  StnStack,
6874
6995
  {
6875
6996
  direction: "column",
@@ -6878,17 +6999,17 @@ function AlertCenterDashboard({ className, appearance = "translucent", loading =
6878
6999
  style: { flex: "1 1 0%", minHeight: 0, height: "100%", width: "100%" },
6879
7000
  "data-stn-dashboard": "alert-widgets",
6880
7001
  children: [
6881
- /* @__PURE__ */ jsx50(StnWidget, { title: "\uC2DC\uC124 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx50(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs41(StnWidget.StatusList, { children: [
6882
- /* @__PURE__ */ jsx50(StnWidget.StatusItem, { label: "PTN", value: "179", showDot: false }),
6883
- /* @__PURE__ */ jsx50(StnWidget.StatusItem, { label: "MSPP", value: "63", showDot: false }),
6884
- /* @__PURE__ */ jsx50(StnWidget.StatusItem, { label: "L3\uC2A4\uC704\uCE58", value: "27", showDot: false })
7002
+ /* @__PURE__ */ jsx51(StnWidget, { title: "\uC2DC\uC124 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs42(StnWidget.StatusList, { children: [
7003
+ /* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "PTN", value: "179", showDot: false }),
7004
+ /* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "MSPP", value: "63", showDot: false }),
7005
+ /* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "L3\uC2A4\uC704\uCE58", value: "27", showDot: false })
6885
7006
  ] }) }),
6886
- /* @__PURE__ */ jsx50(StnWidget, { title: "\uC7A5\uC560 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx50(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs41(StnWidget.StatusList, { children: [
6887
- /* @__PURE__ */ jsx50(StnWidget.StatusItem, { label: "Critical", value: "43", grade: "critical" }),
6888
- /* @__PURE__ */ jsx50(StnWidget.StatusItem, { label: "Major", value: "79", grade: "major" }),
6889
- /* @__PURE__ */ jsx50(StnWidget.StatusItem, { label: "Minor", value: "3", grade: "minor" })
7007
+ /* @__PURE__ */ jsx51(StnWidget, { title: "\uC7A5\uC560 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs42(StnWidget.StatusList, { children: [
7008
+ /* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "Critical", value: "43", grade: "critical" }),
7009
+ /* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "Major", value: "79", grade: "major" }),
7010
+ /* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "Minor", value: "3", grade: "minor" })
6890
7011
  ] }) }),
6891
- /* @__PURE__ */ jsx50(StnWidget, { title: "\uC77C\uC77C \uC7A5\uBE44\uBCC4 \uC7A5\uC560 TOP5", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx50(StnLoadingSkeleton.Widget, { lines: 4 }) : /* @__PURE__ */ jsx50(StnWidget.GradeRowList, { children: TOP5_ROWS.map((row) => /* @__PURE__ */ jsx50(
7012
+ /* @__PURE__ */ jsx51(StnWidget, { title: "\uC77C\uC77C \uC7A5\uBE44\uBCC4 \uC7A5\uC560 TOP5", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 4 }) : /* @__PURE__ */ jsx51(StnWidget.GradeRowList, { children: TOP5_ROWS.map((row) => /* @__PURE__ */ jsx51(
6892
7013
  StnWidget.GradeRow,
6893
7014
  {
6894
7015
  grade: row.grade,
@@ -6898,50 +7019,50 @@ function AlertCenterDashboard({ className, appearance = "translucent", loading =
6898
7019
  },
6899
7020
  row.label
6900
7021
  )) }) }),
6901
- /* @__PURE__ */ jsx50(StnWidget, { title: "\uC77C\uC77C \uC7A5\uC560 \uD1B5\uACC4", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx50(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsx50(StnWidget.ChartSlot, { label: "\uC77C\uC77C \uC7A5\uC560 \uD1B5\uACC4 \uCC28\uD2B8" }) })
7022
+ /* @__PURE__ */ jsx51(StnWidget, { title: "\uC77C\uC77C \uC7A5\uC560 \uD1B5\uACC4", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsx51(StnWidget.ChartSlot, { label: "\uC77C\uC77C \uC7A5\uC560 \uD1B5\uACC4 \uCC28\uD2B8" }) })
6902
7023
  ]
6903
7024
  }
6904
7025
  );
6905
7026
  }
6906
7027
 
6907
7028
  // src/patterns/dashboard/PubDashboardWidgetBodies.tsx
6908
- import { jsx as jsx51, jsxs as jsxs42 } from "react/jsx-runtime";
7029
+ import { jsx as jsx52, jsxs as jsxs43 } from "react/jsx-runtime";
6909
7030
  function PubDisabilityStatusList({ items, summary }) {
6910
- return /* @__PURE__ */ jsxs42("div", { className: "ds-disability-status", children: [
6911
- /* @__PURE__ */ jsx51("ul", { className: "ds-disability-status__list", children: items.map((item, i) => /* @__PURE__ */ jsxs42(
7031
+ return /* @__PURE__ */ jsxs43("div", { className: "ds-disability-status", children: [
7032
+ /* @__PURE__ */ jsx52("ul", { className: "ds-disability-status__list", children: items.map((item, i) => /* @__PURE__ */ jsxs43(
6912
7033
  "li",
6913
7034
  {
6914
7035
  className: ["ds-disability-status__item", item.grade].filter(Boolean).join(" "),
6915
7036
  children: [
6916
- /* @__PURE__ */ jsxs42("span", { children: [
6917
- item.showDot !== false && item.grade ? /* @__PURE__ */ jsx51("span", { className: "dot", "aria-hidden": true }) : null,
7037
+ /* @__PURE__ */ jsxs43("span", { children: [
7038
+ item.showDot !== false && item.grade ? /* @__PURE__ */ jsx52("span", { className: "dot", "aria-hidden": true }) : null,
6918
7039
  item.label
6919
7040
  ] }),
6920
- /* @__PURE__ */ jsx51("p", { children: item.value })
7041
+ /* @__PURE__ */ jsx52("p", { children: item.value })
6921
7042
  ]
6922
7043
  },
6923
7044
  i
6924
7045
  )) }),
6925
- summary && summary.length > 0 ? /* @__PURE__ */ jsx51("div", { className: "ds-disability-status__summary", children: summary.map((row, i) => /* @__PURE__ */ jsxs42("p", { className: "ds-disability-status__value", children: [
7046
+ summary && summary.length > 0 ? /* @__PURE__ */ jsx52("div", { className: "ds-disability-status__summary", children: summary.map((row, i) => /* @__PURE__ */ jsxs43("p", { className: "ds-disability-status__value", children: [
6926
7047
  row.label,
6927
- /* @__PURE__ */ jsx51("span", { children: row.value })
7048
+ /* @__PURE__ */ jsx52("span", { children: row.value })
6928
7049
  ] }, i)) }) : null
6929
7050
  ] });
6930
7051
  }
6931
7052
  function PubTrafficTop5Bars({ rows }) {
6932
7053
  const maxPercent = Math.max(...rows.map((row) => row.percent), 0);
6933
- return /* @__PURE__ */ jsx51("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */ jsxs42("div", { className: ["ds-bar", row.percent === maxPercent ? "max" : ""].filter(Boolean).join(" "), children: [
6934
- /* @__PURE__ */ jsx51("p", { className: "ds-bar-name", title: row.label, children: row.label }),
6935
- /* @__PURE__ */ jsx51("div", { className: "ds-bar-con", title: `${row.percent}%`, children: /* @__PURE__ */ jsx51("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }) }),
6936
- /* @__PURE__ */ jsx51("p", { className: "ds-bar-value", title: row.value, children: row.value })
7054
+ return /* @__PURE__ */ jsx52("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */ jsxs43("div", { className: ["ds-bar", row.percent === maxPercent ? "max" : ""].filter(Boolean).join(" "), children: [
7055
+ /* @__PURE__ */ jsx52("p", { className: "ds-bar-name", title: row.label, children: row.label }),
7056
+ /* @__PURE__ */ jsx52("div", { className: "ds-bar-con", title: `${row.percent}%`, children: /* @__PURE__ */ jsx52("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }) }),
7057
+ /* @__PURE__ */ jsx52("p", { className: "ds-bar-value", title: row.value, children: row.value })
6937
7058
  ] }, row.label)) });
6938
7059
  }
6939
7060
  function PubTop5EquipmentBars({ rows }) {
6940
- return /* @__PURE__ */ jsxs42("div", { className: "ds-group", children: [
6941
- /* @__PURE__ */ jsx51("div", { className: "ds-group-box", children: /* @__PURE__ */ jsx51("div", { className: "ds-equipment-ico", children: /* @__PURE__ */ jsx51("span", { className: "blind", children: "\uC7A5\uBE44 \uC774\uBBF8\uC9C0" }) }) }),
6942
- /* @__PURE__ */ jsx51("div", { className: "ds-group-box", children: /* @__PURE__ */ jsx51("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */ jsx51("div", { className: "ds-bar type-2", children: /* @__PURE__ */ jsxs42("div", { className: "ds-bar-con", title: `${row.percent}%`, children: [
6943
- /* @__PURE__ */ jsx51("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }),
6944
- /* @__PURE__ */ jsx51("div", { className: "ds-bar-status", children: row.status })
7061
+ return /* @__PURE__ */ jsxs43("div", { className: "ds-group", children: [
7062
+ /* @__PURE__ */ jsx52("div", { className: "ds-group-box", children: /* @__PURE__ */ jsx52("div", { className: "ds-equipment-ico", children: /* @__PURE__ */ jsx52("span", { className: "blind", children: "\uC7A5\uBE44 \uC774\uBBF8\uC9C0" }) }) }),
7063
+ /* @__PURE__ */ jsx52("div", { className: "ds-group-box", children: /* @__PURE__ */ jsx52("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */ jsx52("div", { className: "ds-bar type-2", children: /* @__PURE__ */ jsxs43("div", { className: "ds-bar-con", title: `${row.percent}%`, children: [
7064
+ /* @__PURE__ */ jsx52("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }),
7065
+ /* @__PURE__ */ jsx52("div", { className: "ds-bar-status", children: row.status })
6945
7066
  ] }) }, row.label)) }) })
6946
7067
  ] });
6947
7068
  }
@@ -6950,15 +7071,15 @@ function PubChartSample({
6950
7071
  alt = "\uCC28\uD2B8",
6951
7072
  onError
6952
7073
  }) {
6953
- return /* @__PURE__ */ jsx51("div", { className: "ds-chart", children: /* @__PURE__ */ jsx51("img", { src, alt, className: "chart_sample", onError }) });
7074
+ return /* @__PURE__ */ jsx52("div", { className: "ds-chart", children: /* @__PURE__ */ jsx52("img", { src, alt, className: "chart_sample", onError }) });
6954
7075
  }
6955
7076
 
6956
7077
  // src/patterns/alertCenter/StnAlertCenterPanel.tsx
6957
- import { useState as useState14 } from "react";
7078
+ import { useState as useState15 } from "react";
6958
7079
  import {
6959
7080
  STN_ALERT_CENTER_TABS
6960
7081
  } from "@stn-uiux/pub-ui/data/stnAlertCenter";
6961
- import { jsx as jsx52, jsxs as jsxs43 } from "react/jsx-runtime";
7082
+ import { jsx as jsx53, jsxs as jsxs44 } from "react/jsx-runtime";
6962
7083
  function resolveAlertIcon(item) {
6963
7084
  if (item.icon) {
6964
7085
  if (item.icon === "line/arrow-down") return "line/arrow-narrow-down";
@@ -6985,7 +7106,7 @@ function StnAlertCard({
6985
7106
  }) {
6986
7107
  const iconNode = resolveAlertIcon(item);
6987
7108
  const gradeLabel = resolveGradeLabel(item.grade);
6988
- return /* @__PURE__ */ jsx52(
7109
+ return /* @__PURE__ */ jsx53(
6989
7110
  StnCard,
6990
7111
  {
6991
7112
  variant: "elevated",
@@ -6994,8 +7115,8 @@ function StnAlertCard({
6994
7115
  interactive: true,
6995
7116
  className: cn("stn-alert-card", className),
6996
7117
  onClick,
6997
- children: /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__row", children: [
6998
- /* @__PURE__ */ jsx52(
7118
+ children: /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__row", children: [
7119
+ /* @__PURE__ */ jsx53(
6999
7120
  StnIcon,
7000
7121
  {
7001
7122
  name: iconNode,
@@ -7004,9 +7125,9 @@ function StnAlertCard({
7004
7125
  className: "stn-alert-card__icon"
7005
7126
  }
7006
7127
  ),
7007
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__body", children: [
7008
- /* @__PURE__ */ jsxs43(StnStack, { direction: "row", alignItems: "center", spacing: 1, className: "stn-alert-card__header-line", children: [
7009
- /* @__PURE__ */ jsx52(
7128
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__body", children: [
7129
+ /* @__PURE__ */ jsxs44(StnStack, { direction: "row", alignItems: "center", spacing: 1, className: "stn-alert-card__header-line", children: [
7130
+ /* @__PURE__ */ jsx53(
7010
7131
  StnChip,
7011
7132
  {
7012
7133
  shape: "pill",
@@ -7016,25 +7137,25 @@ function StnAlertCard({
7016
7137
  children: gradeLabel
7017
7138
  }
7018
7139
  ),
7019
- /* @__PURE__ */ jsx52(
7140
+ /* @__PURE__ */ jsx53(
7020
7141
  "span",
7021
7142
  {
7022
7143
  className: cn("stn-alert-card__title", titleOverflow),
7023
7144
  title: item.title,
7024
- children: /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__text-inner", children: item.title })
7145
+ children: /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__text-inner", children: item.title })
7025
7146
  }
7026
7147
  )
7027
7148
  ] }),
7028
- /* @__PURE__ */ jsxs43(StnStack, { direction: "row", alignItems: "center", spacing: 2, wrap: "wrap", className: "stn-alert-card__desc-line", children: [
7029
- /* @__PURE__ */ jsx52(
7149
+ /* @__PURE__ */ jsxs44(StnStack, { direction: "row", alignItems: "center", spacing: 2, wrap: "wrap", className: "stn-alert-card__desc-line", children: [
7150
+ /* @__PURE__ */ jsx53(
7030
7151
  "span",
7031
7152
  {
7032
7153
  className: cn("stn-alert-card__desc", descOverflow),
7033
7154
  title: item.description,
7034
- children: /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__text-inner", children: item.description })
7155
+ children: /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__text-inner", children: item.description })
7035
7156
  }
7036
7157
  ),
7037
- item.occurredAt && /* @__PURE__ */ jsxs43(
7158
+ item.occurredAt && /* @__PURE__ */ jsxs44(
7038
7159
  StnChip,
7039
7160
  {
7040
7161
  shape: "pill",
@@ -7050,9 +7171,9 @@ function StnAlertCard({
7050
7171
  )
7051
7172
  ] })
7052
7173
  ] }),
7053
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__meta", children: [
7054
- /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__time", children: item.time }),
7055
- item.unread !== false && /* @__PURE__ */ jsx52(
7174
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__meta", children: [
7175
+ /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__time", children: item.time }),
7176
+ item.unread !== false && /* @__PURE__ */ jsx53(
7056
7177
  "span",
7057
7178
  {
7058
7179
  className: cn(
@@ -7086,11 +7207,11 @@ function StnAlertCenterPanel({
7086
7207
  closeLabel = "\uB2EB\uAE30",
7087
7208
  className
7088
7209
  }) {
7089
- const [activeTab, setActiveTab] = useState14(defaultTab);
7210
+ const [activeTab, setActiveTab] = useState15(defaultTab);
7090
7211
  const alertCount = alerts.length;
7091
7212
  const resolvedTitleOverflow = titleOverflow ?? textOverflow;
7092
7213
  const resolvedDescOverflow = descOverflow ?? textOverflow;
7093
- return /* @__PURE__ */ jsxs43(
7214
+ return /* @__PURE__ */ jsxs44(
7094
7215
  "div",
7095
7216
  {
7096
7217
  className: cn(
@@ -7102,13 +7223,13 @@ function StnAlertCenterPanel({
7102
7223
  ),
7103
7224
  "data-stn-alert-center": true,
7104
7225
  children: [
7105
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-center__header", children: [
7106
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-center__header-left", children: [
7107
- /* @__PURE__ */ jsx52(StnIcon, { name: "line/bell", size: 20, color: "var(--stn-primary)" }),
7108
- /* @__PURE__ */ jsx52("span", { className: "stn-alert-center__title", children: title }),
7109
- alertCount > 0 && /* @__PURE__ */ jsx52(StnChip, { shape: "pill", size: "sm", variant: "subtle", color: "primary", children: alertCount })
7226
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__header", children: [
7227
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__header-left", children: [
7228
+ /* @__PURE__ */ jsx53(StnIcon, { name: "line/bell", size: 20, color: "var(--stn-primary)" }),
7229
+ /* @__PURE__ */ jsx53("span", { className: "stn-alert-center__title", children: title }),
7230
+ alertCount > 0 && /* @__PURE__ */ jsx53(StnChip, { shape: "pill", size: "sm", variant: "subtle", color: "primary", children: alertCount })
7110
7231
  ] }),
7111
- /* @__PURE__ */ jsx52(
7232
+ /* @__PURE__ */ jsx53(
7112
7233
  StnSegmented,
7113
7234
  {
7114
7235
  size: "md",
@@ -7121,8 +7242,8 @@ function StnAlertCenterPanel({
7121
7242
  }))
7122
7243
  }
7123
7244
  ),
7124
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-center__header-right", children: [
7125
- /* @__PURE__ */ jsx52(
7245
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__header-right", children: [
7246
+ /* @__PURE__ */ jsx53(
7126
7247
  StnButton,
7127
7248
  {
7128
7249
  variant: "text",
@@ -7132,8 +7253,8 @@ function StnAlertCenterPanel({
7132
7253
  children: "\uBAA8\uB450 \uC77D\uC74C"
7133
7254
  }
7134
7255
  ),
7135
- /* @__PURE__ */ jsx52("div", { className: "stn-alert-center__divider", "aria-hidden": true }),
7136
- /* @__PURE__ */ jsx52(
7256
+ /* @__PURE__ */ jsx53("div", { className: "stn-alert-center__divider", "aria-hidden": true }),
7257
+ /* @__PURE__ */ jsx53(
7137
7258
  StnButton,
7138
7259
  {
7139
7260
  icon: "line/x",
@@ -7145,8 +7266,8 @@ function StnAlertCenterPanel({
7145
7266
  )
7146
7267
  ] })
7147
7268
  ] }),
7148
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-center__list-wrap", children: [
7149
- activeTab === "error" && /* @__PURE__ */ jsx52("ul", { className: "stn-alert-center__list", children: alerts.map((item) => /* @__PURE__ */ jsx52("li", { children: /* @__PURE__ */ jsx52(
7269
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__list-wrap", children: [
7270
+ activeTab === "error" && /* @__PURE__ */ jsx53("ul", { className: "stn-alert-center__list", children: alerts.map((item) => /* @__PURE__ */ jsx53("li", { children: /* @__PURE__ */ jsx53(
7150
7271
  StnAlertCard,
7151
7272
  {
7152
7273
  item,
@@ -7155,33 +7276,33 @@ function StnAlertCenterPanel({
7155
7276
  onClick: () => onItemClick?.(item)
7156
7277
  }
7157
7278
  ) }, item.id ?? item.title)) }),
7158
- activeTab === "work" && /* @__PURE__ */ jsx52("ul", { className: "stn-alert-center__list", children: workItems.map((row) => /* @__PURE__ */ jsx52("li", { children: /* @__PURE__ */ jsx52(StnCard, { variant: "elevated", radius: "md", padding: "md", interactive: true, className: "stn-alert-card", children: /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__row", children: [
7159
- /* @__PURE__ */ jsx52(StnIcon, { name: "line/clock", size: 24, color: "var(--stn-text-secondary)", className: "stn-alert-card__icon" }),
7160
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__body", children: [
7161
- /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__type-label work", children: row.typeLabel }),
7162
- /* @__PURE__ */ jsx52("span", { className: cn("stn-alert-card__desc", resolvedDescOverflow), title: row.text, children: /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__text-inner", children: row.text }) })
7279
+ activeTab === "work" && /* @__PURE__ */ jsx53("ul", { className: "stn-alert-center__list", children: workItems.map((row) => /* @__PURE__ */ jsx53("li", { children: /* @__PURE__ */ jsx53(StnCard, { variant: "elevated", radius: "md", padding: "md", interactive: true, className: "stn-alert-card", children: /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__row", children: [
7280
+ /* @__PURE__ */ jsx53(StnIcon, { name: "line/clock", size: 24, color: "var(--stn-text-secondary)", className: "stn-alert-card__icon" }),
7281
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__body", children: [
7282
+ /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__type-label work", children: row.typeLabel }),
7283
+ /* @__PURE__ */ jsx53("span", { className: cn("stn-alert-card__desc", resolvedDescOverflow), title: row.text, children: /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__text-inner", children: row.text }) })
7163
7284
  ] }),
7164
- /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__time", children: row.time })
7285
+ /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__time", children: row.time })
7165
7286
  ] }) }) }, row.id ?? row.text)) }),
7166
- activeTab === "deploy" && /* @__PURE__ */ jsx52("ul", { className: "stn-alert-center__list", children: deployItems.map((row) => /* @__PURE__ */ jsx52("li", { children: /* @__PURE__ */ jsx52(StnCard, { variant: "elevated", radius: "md", padding: "md", interactive: true, className: "stn-alert-card", children: /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__row", children: [
7167
- /* @__PURE__ */ jsx52(StnIcon, { name: "line/settings", size: 24, color: "var(--stn-secondary)", className: "stn-alert-card__icon" }),
7168
- /* @__PURE__ */ jsxs43("div", { className: "stn-alert-card__body", children: [
7169
- /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__type-label stn-alert-card__type-label--deploy", children: row.typeLabel }),
7170
- /* @__PURE__ */ jsx52("span", { className: cn("stn-alert-card__desc", resolvedDescOverflow), title: row.text, children: /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__text-inner", children: row.text }) })
7287
+ activeTab === "deploy" && /* @__PURE__ */ jsx53("ul", { className: "stn-alert-center__list", children: deployItems.map((row) => /* @__PURE__ */ jsx53("li", { children: /* @__PURE__ */ jsx53(StnCard, { variant: "elevated", radius: "md", padding: "md", interactive: true, className: "stn-alert-card", children: /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__row", children: [
7288
+ /* @__PURE__ */ jsx53(StnIcon, { name: "line/settings", size: 24, color: "var(--stn-secondary)", className: "stn-alert-card__icon" }),
7289
+ /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__body", children: [
7290
+ /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__type-label stn-alert-card__type-label--deploy", children: row.typeLabel }),
7291
+ /* @__PURE__ */ jsx53("span", { className: cn("stn-alert-card__desc", resolvedDescOverflow), title: row.text, children: /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__text-inner", children: row.text }) })
7171
7292
  ] }),
7172
- /* @__PURE__ */ jsx52("span", { className: "stn-alert-card__time", children: row.time })
7293
+ /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__time", children: row.time })
7173
7294
  ] }) }) }, row.id ?? row.text)) })
7174
7295
  ] }),
7175
- /* @__PURE__ */ jsx52("div", { className: "stn-alert-center__footer", children: /* @__PURE__ */ jsxs43(
7296
+ /* @__PURE__ */ jsx53("div", { className: "stn-alert-center__footer", children: /* @__PURE__ */ jsxs44(
7176
7297
  "button",
7177
7298
  {
7178
7299
  type: "button",
7179
7300
  className: "stn-alert-center__footer-link",
7180
7301
  onClick: onManageSettings,
7181
7302
  children: [
7182
- /* @__PURE__ */ jsx52("span", { children: "\uC54C\uB9BC \uC124\uC815 \uAD00\uB9AC" }),
7183
- /* @__PURE__ */ jsx52(StnIcon, { name: "line/settings", size: 14 }),
7184
- /* @__PURE__ */ jsx52(StnIcon, { name: "line/chevron-right", size: 14 })
7303
+ /* @__PURE__ */ jsx53("span", { children: "\uC54C\uB9BC \uC124\uC815 \uAD00\uB9AC" }),
7304
+ /* @__PURE__ */ jsx53(StnIcon, { name: "line/settings", size: 14 }),
7305
+ /* @__PURE__ */ jsx53(StnIcon, { name: "line/chevron-right", size: 14 })
7185
7306
  ]
7186
7307
  }
7187
7308
  ) })
@@ -7191,18 +7312,18 @@ function StnAlertCenterPanel({
7191
7312
  }
7192
7313
 
7193
7314
  // src/patterns/alertCenter/StnAlertCenterDocPreview.tsx
7194
- import { jsx as jsx53 } from "react/jsx-runtime";
7315
+ import { jsx as jsx54 } from "react/jsx-runtime";
7195
7316
  function StnAlertCenterDocPreview({
7196
7317
  theme = "light",
7197
7318
  withDocChrome = true,
7198
7319
  children,
7199
7320
  ...panelProps
7200
7321
  }) {
7201
- const panel = children ?? /* @__PURE__ */ jsx53(StnAlertCenterPanel, { ...panelProps });
7322
+ const panel = children ?? /* @__PURE__ */ jsx54(StnAlertCenterPanel, { ...panelProps });
7202
7323
  if (!withDocChrome) {
7203
- return /* @__PURE__ */ jsx53(StnProvider, { theme, applyThemeToDocument: false, children: panel });
7324
+ return /* @__PURE__ */ jsx54(StnProvider, { theme, applyThemeToDocument: false, children: panel });
7204
7325
  }
7205
- return /* @__PURE__ */ jsx53("div", { className: "stn-doc-frame stn-doc-frame--alert-center", "data-theme": theme, children: /* @__PURE__ */ jsx53("div", { className: "stn-alert-center-preview-shell", children: panel }) });
7326
+ return /* @__PURE__ */ jsx54("div", { className: "stn-doc-frame stn-doc-frame--alert-center", "data-theme": theme, children: /* @__PURE__ */ jsx54("div", { className: "stn-alert-center-preview-shell", children: panel }) });
7206
7327
  }
7207
7328
 
7208
7329
  // src/index.ts
@@ -7227,13 +7348,13 @@ var SideNavContext = createContext3({
7227
7348
  var useSideNav = () => useContext3(SideNavContext);
7228
7349
 
7229
7350
  // src/components/sideNav/StnSideNavItem.tsx
7230
- import { forwardRef as forwardRef26 } from "react";
7351
+ import { forwardRef as forwardRef27 } from "react";
7231
7352
  import { STN_NAV_MENU_SUB_ICON } from "@stn-uiux/pub-ui/data/stnSideNavItem";
7232
- import { jsx as jsx54, jsxs as jsxs44 } from "react/jsx-runtime";
7353
+ import { jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
7233
7354
  function maskStyle2(src) {
7234
7355
  return { maskImage: `url('${src}')`, WebkitMaskImage: `url('${src}')` };
7235
7356
  }
7236
- var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7357
+ var StnSideNavItem = forwardRef27(function StnSideNavItem2({
7237
7358
  label,
7238
7359
  id,
7239
7360
  iconSrc,
@@ -7276,13 +7397,13 @@ var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7276
7397
  sideNav.onSelect(id);
7277
7398
  }
7278
7399
  };
7279
- const iconElement = hasIcon && !isSub ? /* @__PURE__ */ jsxs44("span", { className: "stn-side-nav-item__icon-wrap", children: [
7280
- /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__icon", "aria-hidden": "true", children: icon ?? (resolvedIconSrc ? /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__icon-glyph", style: maskStyle2(resolvedIconSrc) }) : null) }),
7281
- showDot ? /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__dot-wrap", "aria-hidden": "true", children: /* @__PURE__ */ jsx54(StnBadge, { variant: "dot", color: "error" }) }) : null
7400
+ const iconElement = hasIcon && !isSub ? /* @__PURE__ */ jsxs45("span", { className: "stn-side-nav-item__icon-wrap", children: [
7401
+ /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__icon", "aria-hidden": "true", children: icon ?? (resolvedIconSrc ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__icon-glyph", style: maskStyle2(resolvedIconSrc) }) : null) }),
7402
+ showDot ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__dot-wrap", "aria-hidden": "true", children: /* @__PURE__ */ jsx55(StnBadge, { variant: "dot", color: "error" }) }) : null
7282
7403
  ] }) : null;
7283
- const subIconElement = hasIcon && isSub ? /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__sub-icon", "aria-hidden": "true", children: icon ?? (resolvedIconSrc ? /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__icon-glyph", style: maskStyle2(resolvedIconSrc) }) : null) }) : null;
7404
+ const subIconElement = hasIcon && isSub ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__sub-icon", "aria-hidden": "true", children: icon ?? (resolvedIconSrc ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__icon-glyph", style: maskStyle2(resolvedIconSrc) }) : null) }) : null;
7284
7405
  const activeIconElement = isSub ? subIconElement : iconElement;
7285
- return /* @__PURE__ */ jsx54(
7406
+ return /* @__PURE__ */ jsx55(
7286
7407
  "button",
7287
7408
  {
7288
7409
  ref,
@@ -7301,10 +7422,10 @@ var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7301
7422
  title: collapsed ? label : void 0,
7302
7423
  onClick: handleClick,
7303
7424
  ...rest,
7304
- children: /* @__PURE__ */ jsxs44("span", { className: cn("stn-side-nav-item__inner", spreadTrail && "spread"), children: [
7305
- /* @__PURE__ */ jsxs44("span", { className: "stn-side-nav-item__lead", children: [
7306
- isSub && showSubIndent ? /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__sub-indent", "aria-hidden": "true" }) : null,
7307
- shouldShowSubDot ? /* @__PURE__ */ jsx54(
7425
+ children: /* @__PURE__ */ jsxs45("span", { className: cn("stn-side-nav-item__inner", spreadTrail && "spread"), children: [
7426
+ /* @__PURE__ */ jsxs45("span", { className: "stn-side-nav-item__lead", children: [
7427
+ isSub && showSubIndent ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__sub-indent", "aria-hidden": "true" }) : null,
7428
+ shouldShowSubDot ? /* @__PURE__ */ jsx55(
7308
7429
  "span",
7309
7430
  {
7310
7431
  className: cn(
@@ -7312,14 +7433,14 @@ var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7312
7433
  hasIcon && iconPosition === "left" && "compact"
7313
7434
  ),
7314
7435
  "aria-hidden": "true",
7315
- children: /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__sub-dot-glyph", style: maskStyle2(STN_NAV_MENU_SUB_ICON) })
7436
+ children: /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__sub-dot-glyph", style: maskStyle2(STN_NAV_MENU_SUB_ICON) })
7316
7437
  }
7317
7438
  ) : null,
7318
7439
  iconPosition === "left" ? activeIconElement : null,
7319
- /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__label", children: label })
7440
+ /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__label", children: label })
7320
7441
  ] }),
7321
7442
  iconPosition === "right" ? activeIconElement : null,
7322
- renderBadge ? typeof badge === "string" || typeof badge === "number" ? /* @__PURE__ */ jsx54(
7443
+ renderBadge ? typeof badge === "string" || typeof badge === "number" ? /* @__PURE__ */ jsx55(
7323
7444
  StnBadge,
7324
7445
  {
7325
7446
  badgeContent: badge,
@@ -7327,7 +7448,7 @@ var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7327
7448
  appearance: "subtle",
7328
7449
  className: "stn-side-nav-item__badge"
7329
7450
  }
7330
- ) : badge ? /* @__PURE__ */ jsx54("span", { className: "stn-side-nav-item__badge", children: badge }) : showBadgeDot ? /* @__PURE__ */ jsx54(
7451
+ ) : badge ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__badge", children: badge }) : showBadgeDot ? /* @__PURE__ */ jsx55(
7331
7452
  StnBadge,
7332
7453
  {
7333
7454
  variant: "dot",
@@ -7335,7 +7456,7 @@ var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7335
7456
  className: "stn-side-nav-item__badge"
7336
7457
  }
7337
7458
  ) : null : null,
7338
- !isSub && showChevron && !collapsed ? /* @__PURE__ */ jsx54(
7459
+ !isSub && showChevron && !collapsed ? /* @__PURE__ */ jsx55(
7339
7460
  "span",
7340
7461
  {
7341
7462
  className: cn(
@@ -7352,15 +7473,15 @@ var StnSideNavItem = forwardRef26(function StnSideNavItem2({
7352
7473
  });
7353
7474
 
7354
7475
  // src/components/sideNav/StnSideNavHeader.tsx
7355
- import { forwardRef as forwardRef28 } from "react";
7476
+ import { forwardRef as forwardRef29 } from "react";
7356
7477
 
7357
7478
  // src/components/sideNav/StnSideNavLogo.tsx
7358
- import { forwardRef as forwardRef27 } from "react";
7359
- import { jsx as jsx55 } from "react/jsx-runtime";
7360
- var StnSideNavLogo = forwardRef27(
7479
+ import { forwardRef as forwardRef28 } from "react";
7480
+ import { jsx as jsx56 } from "react/jsx-runtime";
7481
+ var StnSideNavLogo = forwardRef28(
7361
7482
  function StnSideNavLogo2({ className, logoProps, ...rest }, ref) {
7362
7483
  const { collapsed } = useSideNav();
7363
- return /* @__PURE__ */ jsx55(
7484
+ return /* @__PURE__ */ jsx56(
7364
7485
  "div",
7365
7486
  {
7366
7487
  ref,
@@ -7371,7 +7492,7 @@ var StnSideNavLogo = forwardRef27(
7371
7492
  ),
7372
7493
  title: "InfoMap",
7373
7494
  ...rest,
7374
- children: /* @__PURE__ */ jsx55(
7495
+ children: /* @__PURE__ */ jsx56(
7375
7496
  StnLogo,
7376
7497
  {
7377
7498
  variant: collapsed ? "onlyimg" : "horizontal",
@@ -7385,8 +7506,8 @@ var StnSideNavLogo = forwardRef27(
7385
7506
  );
7386
7507
 
7387
7508
  // src/components/sideNav/StnSideNavHeader.tsx
7388
- import { Fragment as Fragment7, jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
7389
- var StnSideNavHeader = forwardRef28(function StnSideNavHeader2({
7509
+ import { Fragment as Fragment7, jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
7510
+ var StnSideNavHeader = forwardRef29(function StnSideNavHeader2({
7390
7511
  children,
7391
7512
  border = false,
7392
7513
  hasBorder = false,
@@ -7398,7 +7519,7 @@ var StnSideNavHeader = forwardRef28(function StnSideNavHeader2({
7398
7519
  const { collapsed, onToggleCollapse, isDrawer, setMobileOpen } = useSideNav();
7399
7520
  const withBorder = Boolean(border || hasBorder);
7400
7521
  const shouldShowClose = showClose ?? Boolean(isDrawer);
7401
- return /* @__PURE__ */ jsx56(
7522
+ return /* @__PURE__ */ jsx57(
7402
7523
  "div",
7403
7524
  {
7404
7525
  ref,
@@ -7409,9 +7530,9 @@ var StnSideNavHeader = forwardRef28(function StnSideNavHeader2({
7409
7530
  className
7410
7531
  ),
7411
7532
  ...rest,
7412
- children: children ?? /* @__PURE__ */ jsxs45(Fragment7, { children: [
7413
- /* @__PURE__ */ jsx56(StnSideNavLogo, {}),
7414
- shouldShowClose ? /* @__PURE__ */ jsx56(
7533
+ children: children ?? /* @__PURE__ */ jsxs46(Fragment7, { children: [
7534
+ /* @__PURE__ */ jsx57(StnSideNavLogo, {}),
7535
+ shouldShowClose ? /* @__PURE__ */ jsx57(
7415
7536
  StnButton,
7416
7537
  {
7417
7538
  size: "sm",
@@ -7423,7 +7544,7 @@ var StnSideNavHeader = forwardRef28(function StnSideNavHeader2({
7423
7544
  className: "stn-side-nav__collapse-btn",
7424
7545
  onClick: () => setMobileOpen?.(false)
7425
7546
  }
7426
- ) : showToggle ? /* @__PURE__ */ jsx56(
7547
+ ) : showToggle ? /* @__PURE__ */ jsx57(
7427
7548
  StnButton,
7428
7549
  {
7429
7550
  size: "sm",
@@ -7442,16 +7563,16 @@ var StnSideNavHeader = forwardRef28(function StnSideNavHeader2({
7442
7563
  });
7443
7564
 
7444
7565
  // src/components/sideNav/StnSideNavMenu.tsx
7445
- import { forwardRef as forwardRef29 } from "react";
7446
- import { jsx as jsx57 } from "react/jsx-runtime";
7447
- var StnSideNavMenu = forwardRef29(function StnSideNavMenu2({
7566
+ import { forwardRef as forwardRef30 } from "react";
7567
+ import { jsx as jsx58 } from "react/jsx-runtime";
7568
+ var StnSideNavMenu = forwardRef30(function StnSideNavMenu2({
7448
7569
  children,
7449
7570
  className,
7450
7571
  scrollSize = "thin",
7451
7572
  scrollColor = "fade",
7452
7573
  ...rest
7453
7574
  }, ref) {
7454
- return /* @__PURE__ */ jsx57(
7575
+ return /* @__PURE__ */ jsx58(
7455
7576
  "nav",
7456
7577
  {
7457
7578
  ref,
@@ -7472,13 +7593,13 @@ var StnSideNavMenu = forwardRef29(function StnSideNavMenu2({
7472
7593
 
7473
7594
  // src/components/sideNav/StnSideNavGroup.tsx
7474
7595
  import {
7475
- forwardRef as forwardRef30,
7596
+ forwardRef as forwardRef31,
7476
7597
  useEffect as useEffect10,
7477
7598
  useRef as useRef7,
7478
- useState as useState15
7599
+ useState as useState16
7479
7600
  } from "react";
7480
- import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime";
7481
- var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
7601
+ import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime";
7602
+ var StnSideNavGroup = forwardRef31(function StnSideNavGroup2({
7482
7603
  label,
7483
7604
  parent,
7484
7605
  direction = "down",
@@ -7494,7 +7615,7 @@ var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
7494
7615
  ...rest
7495
7616
  }, ref) {
7496
7617
  const { collapsed } = useSideNav();
7497
- const [internalOpen, setInternalOpen] = useState15(defaultOpen);
7618
+ const [internalOpen, setInternalOpen] = useState16(defaultOpen);
7498
7619
  const isOpen = openProp ?? internalOpen;
7499
7620
  const isDropdown = Boolean(dropdown || variant === "dropdown");
7500
7621
  const isTransparent = dropdownVariant === "transparent" || dropdownBackground === false;
@@ -7522,7 +7643,7 @@ var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
7522
7643
  }
7523
7644
  onOpenChange?.(next);
7524
7645
  };
7525
- const subnavNode = children && (!collapsed && isOpen) ? /* @__PURE__ */ jsx58(
7646
+ const subnavNode = children && (!collapsed && isOpen) ? /* @__PURE__ */ jsx59(
7526
7647
  "div",
7527
7648
  {
7528
7649
  className: cn(
@@ -7537,7 +7658,7 @@ var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
7537
7658
  children
7538
7659
  }
7539
7660
  ) : null;
7540
- return /* @__PURE__ */ jsxs46(
7661
+ return /* @__PURE__ */ jsxs47(
7541
7662
  "div",
7542
7663
  {
7543
7664
  ref: (node) => {
@@ -7558,7 +7679,7 @@ var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
7558
7679
  "aria-label": typeof label === "string" ? label : void 0,
7559
7680
  ...rest,
7560
7681
  children: [
7561
- label && !collapsed ? /* @__PURE__ */ jsx58("span", { className: "stn-side-nav__group-label", onClick: handleToggle, children: label }) : null,
7682
+ label && !collapsed ? /* @__PURE__ */ jsx59("span", { className: "stn-side-nav__group-label", onClick: handleToggle, children: label }) : null,
7562
7683
  isUp ? subnavNode : null,
7563
7684
  parent,
7564
7685
  !isUp ? subnavNode : null
@@ -7568,10 +7689,10 @@ var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
7568
7689
  });
7569
7690
 
7570
7691
  // src/components/sideNav/StnSideNavSpacer.tsx
7571
- import { forwardRef as forwardRef31 } from "react";
7572
- import { jsx as jsx59 } from "react/jsx-runtime";
7573
- var StnSideNavSpacer = forwardRef31(function StnSideNavSpacer2({ className, style, ...rest }, ref) {
7574
- return /* @__PURE__ */ jsx59(
7692
+ import { forwardRef as forwardRef32 } from "react";
7693
+ import { jsx as jsx60 } from "react/jsx-runtime";
7694
+ var StnSideNavSpacer = forwardRef32(function StnSideNavSpacer2({ className, style, ...rest }, ref) {
7695
+ return /* @__PURE__ */ jsx60(
7575
7696
  "div",
7576
7697
  {
7577
7698
  ref,
@@ -7584,10 +7705,10 @@ var StnSideNavSpacer = forwardRef31(function StnSideNavSpacer2({ className, styl
7584
7705
  });
7585
7706
 
7586
7707
  // src/components/sideNav/StnSideNavFooter.tsx
7587
- import { forwardRef as forwardRef32 } from "react";
7588
- import { jsx as jsx60 } from "react/jsx-runtime";
7589
- var StnSideNavFooter = forwardRef32(function StnSideNavFooter2({ curved = false, children, className, ...rest }, ref) {
7590
- return /* @__PURE__ */ jsx60(
7708
+ import { forwardRef as forwardRef33 } from "react";
7709
+ import { jsx as jsx61 } from "react/jsx-runtime";
7710
+ var StnSideNavFooter = forwardRef33(function StnSideNavFooter2({ curved = false, children, className, ...rest }, ref) {
7711
+ return /* @__PURE__ */ jsx61(
7591
7712
  "nav",
7592
7713
  {
7593
7714
  ref,
@@ -7600,12 +7721,12 @@ var StnSideNavFooter = forwardRef32(function StnSideNavFooter2({ curved = false,
7600
7721
  });
7601
7722
 
7602
7723
  // src/components/sideNav/StnSideNavToggle.tsx
7603
- import { forwardRef as forwardRef33 } from "react";
7604
- import { jsx as jsx61 } from "react/jsx-runtime";
7605
- var StnSideNavToggle = forwardRef33(
7724
+ import { forwardRef as forwardRef34 } from "react";
7725
+ import { jsx as jsx62 } from "react/jsx-runtime";
7726
+ var StnSideNavToggle = forwardRef34(
7606
7727
  function StnSideNavToggle2({ className, onClick, ...rest }, ref) {
7607
7728
  const { collapsed, onToggleCollapse } = useSideNav();
7608
- return /* @__PURE__ */ jsx61(
7729
+ return /* @__PURE__ */ jsx62(
7609
7730
  "button",
7610
7731
  {
7611
7732
  ref,
@@ -7618,7 +7739,7 @@ var StnSideNavToggle = forwardRef33(
7618
7739
  "aria-label": collapsed ? "\uC0AC\uC774\uB4DC\uBC14 \uD3BC\uCE58\uAE30" : "\uC0AC\uC774\uB4DC\uBC14 \uC811\uAE30",
7619
7740
  title: collapsed ? "\uC0AC\uC774\uB4DC\uBC14 \uD3BC\uCE58\uAE30" : "\uC0AC\uC774\uB4DC\uBC14 \uC811\uAE30",
7620
7741
  ...rest,
7621
- children: /* @__PURE__ */ jsx61(
7742
+ children: /* @__PURE__ */ jsx62(
7622
7743
  "svg",
7623
7744
  {
7624
7745
  width: "12",
@@ -7629,7 +7750,7 @@ var StnSideNavToggle = forwardRef33(
7629
7750
  strokeWidth: "2.5",
7630
7751
  strokeLinecap: "round",
7631
7752
  strokeLinejoin: "round",
7632
- children: /* @__PURE__ */ jsx61("path", { d: "M9 18l6-6-6-6" })
7753
+ children: /* @__PURE__ */ jsx62("path", { d: "M9 18l6-6-6-6" })
7633
7754
  }
7634
7755
  )
7635
7756
  }
@@ -7638,30 +7759,30 @@ var StnSideNavToggle = forwardRef33(
7638
7759
  );
7639
7760
 
7640
7761
  // src/components/sideNav/StnSideNavWatermark.tsx
7641
- import { forwardRef as forwardRef34 } from "react";
7642
- import { jsx as jsx62 } from "react/jsx-runtime";
7643
- var StnSideNavWatermark = forwardRef34(
7762
+ import { forwardRef as forwardRef35 } from "react";
7763
+ import { jsx as jsx63 } from "react/jsx-runtime";
7764
+ var StnSideNavWatermark = forwardRef35(
7644
7765
  function StnSideNavWatermark2({ size = "xl", theme, className, ...rest }, ref) {
7645
- return /* @__PURE__ */ jsx62(
7766
+ return /* @__PURE__ */ jsx63(
7646
7767
  "div",
7647
7768
  {
7648
7769
  ref,
7649
7770
  className: cn("stn-side-nav__watermark", className),
7650
7771
  "aria-hidden": "true",
7651
7772
  ...rest,
7652
- children: /* @__PURE__ */ jsx62(StnLogo, { variant: "watermark", size, theme })
7773
+ children: /* @__PURE__ */ jsx63(StnLogo, { variant: "watermark", size, theme })
7653
7774
  }
7654
7775
  );
7655
7776
  }
7656
7777
  );
7657
7778
 
7658
7779
  // src/components/sideNav/StnSideNavMobileTrigger.tsx
7659
- import { forwardRef as forwardRef35 } from "react";
7660
- import { jsx as jsx63, jsxs as jsxs47 } from "react/jsx-runtime";
7661
- var StnSideNavMobileTrigger = forwardRef35(
7780
+ import { forwardRef as forwardRef36 } from "react";
7781
+ import { jsx as jsx64, jsxs as jsxs48 } from "react/jsx-runtime";
7782
+ var StnSideNavMobileTrigger = forwardRef36(
7662
7783
  function StnSideNavMobileTrigger2({ floating = false, className, children, onClick, ...rest }, ref) {
7663
7784
  const { onToggleMobileOpen, mobileOpen } = useSideNav();
7664
- return /* @__PURE__ */ jsx63(
7785
+ return /* @__PURE__ */ jsx64(
7665
7786
  "button",
7666
7787
  {
7667
7788
  ref,
@@ -7679,10 +7800,10 @@ var StnSideNavMobileTrigger = forwardRef35(
7679
7800
  onToggleMobileOpen?.();
7680
7801
  },
7681
7802
  ...rest,
7682
- children: children ?? /* @__PURE__ */ jsxs47("span", { className: "stn-side-nav__hamburger-bars", "aria-hidden": "true", children: [
7683
- /* @__PURE__ */ jsx63("span", {}),
7684
- /* @__PURE__ */ jsx63("span", {}),
7685
- /* @__PURE__ */ jsx63("span", {})
7803
+ children: children ?? /* @__PURE__ */ jsxs48("span", { className: "stn-side-nav__hamburger-bars", "aria-hidden": "true", children: [
7804
+ /* @__PURE__ */ jsx64("span", {}),
7805
+ /* @__PURE__ */ jsx64("span", {}),
7806
+ /* @__PURE__ */ jsx64("span", {})
7686
7807
  ] })
7687
7808
  }
7688
7809
  );
@@ -7691,12 +7812,12 @@ var StnSideNavMobileTrigger = forwardRef35(
7691
7812
 
7692
7813
  // src/components/sideNav/StnSideNavSub.tsx
7693
7814
  import {
7694
- forwardRef as forwardRef36
7815
+ forwardRef as forwardRef37
7695
7816
  } from "react";
7696
- import { jsx as jsx64 } from "react/jsx-runtime";
7697
- var StnSideNavSub = forwardRef36(
7817
+ import { jsx as jsx65 } from "react/jsx-runtime";
7818
+ var StnSideNavSub = forwardRef37(
7698
7819
  function StnSideNavSub2({ children, className, ...rest }, ref) {
7699
- return /* @__PURE__ */ jsx64(
7820
+ return /* @__PURE__ */ jsx65(
7700
7821
  "div",
7701
7822
  {
7702
7823
  ref,
@@ -7709,7 +7830,7 @@ var StnSideNavSub = forwardRef36(
7709
7830
  );
7710
7831
  }
7711
7832
  );
7712
- var StnSideNavSubItem = forwardRef36(
7833
+ var StnSideNavSubItem = forwardRef37(
7713
7834
  function StnSideNavSubItem2({
7714
7835
  variant = "ghost",
7715
7836
  size = "md",
@@ -7725,14 +7846,14 @@ var StnSideNavSubItem = forwardRef36(
7725
7846
  const { collapsed } = useSideNav();
7726
7847
  const content = children ?? label;
7727
7848
  const computedTitle = title ?? (typeof content === "string" ? content : void 0);
7728
- const resolvedIcon = icon ?? (iconSrc ? /* @__PURE__ */ jsx64("span", { className: "stn-side-nav__sub-icon", children: /* @__PURE__ */ jsx64(
7849
+ const resolvedIcon = icon ?? (iconSrc ? /* @__PURE__ */ jsx65("span", { className: "stn-side-nav__sub-icon", children: /* @__PURE__ */ jsx65(
7729
7850
  "span",
7730
7851
  {
7731
7852
  className: "stn-side-nav__sub-glyph",
7732
7853
  style: { maskImage: `url('${iconSrc}')`, WebkitMaskImage: `url('${iconSrc}')` }
7733
7854
  }
7734
7855
  ) }) : null);
7735
- return /* @__PURE__ */ jsx64(
7856
+ return /* @__PURE__ */ jsx65(
7736
7857
  StnButton,
7737
7858
  {
7738
7859
  ref,
@@ -7751,9 +7872,9 @@ var StnSideNavSubItem = forwardRef36(
7751
7872
  );
7752
7873
 
7753
7874
  // src/components/sideNav/StnSideNavSubNav.tsx
7754
- import { forwardRef as forwardRef37 } from "react";
7755
- import { jsx as jsx65 } from "react/jsx-runtime";
7756
- var StnSideNavSubNav = forwardRef37(
7875
+ import { forwardRef as forwardRef38 } from "react";
7876
+ import { jsx as jsx66 } from "react/jsx-runtime";
7877
+ var StnSideNavSubNav = forwardRef38(
7757
7878
  function StnSideNavSubNav2({
7758
7879
  dropdown = false,
7759
7880
  direction = "down",
@@ -7765,7 +7886,7 @@ var StnSideNavSubNav = forwardRef37(
7765
7886
  }, ref) {
7766
7887
  const isUp = direction === "up";
7767
7888
  const isTransparent = variant === "transparent" || background === false;
7768
- return /* @__PURE__ */ jsx65(
7889
+ return /* @__PURE__ */ jsx66(
7769
7890
  "div",
7770
7891
  {
7771
7892
  ref,
@@ -7788,14 +7909,14 @@ var StnSideNavSubNav = forwardRef37(
7788
7909
 
7789
7910
  // src/patterns/sideNav/StnSideNavigation.tsx
7790
7911
  import {
7791
- forwardRef as forwardRef38,
7912
+ forwardRef as forwardRef39,
7792
7913
  useCallback as useCallback8,
7793
7914
  useMemo as useMemo4,
7794
- useState as useState16
7915
+ useState as useState17
7795
7916
  } from "react";
7796
- import { jsx as jsx66, jsxs as jsxs48 } from "react/jsx-runtime";
7917
+ import { jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
7797
7918
  function useControllableState(controlledValue, defaultValue, onChange) {
7798
- const [internalState, setInternalState] = useState16(defaultValue);
7919
+ const [internalState, setInternalState] = useState17(defaultValue);
7799
7920
  const isControlled = controlledValue !== void 0;
7800
7921
  const value = isControlled ? controlledValue : internalState;
7801
7922
  const setValue = useCallback8(
@@ -7809,7 +7930,7 @@ function useControllableState(controlledValue, defaultValue, onChange) {
7809
7930
  );
7810
7931
  return [value, setValue];
7811
7932
  }
7812
- var StnSideNavigationRoot = forwardRef38(function StnSideNavigationRoot2({
7933
+ var StnSideNavigationRoot = forwardRef39(function StnSideNavigationRoot2({
7813
7934
  variant: variantProp,
7814
7935
  appearance,
7815
7936
  drawerVariant: drawerVariantProp,
@@ -7870,9 +7991,9 @@ var StnSideNavigationRoot = forwardRef38(function StnSideNavigationRoot2({
7870
7991
  }),
7871
7992
  [isEffectiveCollapsed, activeId, setActiveId, handleToggleCollapse, mobileOpen, handleToggleMobileOpen, setMobileOpen, isDrawerMode]
7872
7993
  );
7873
- return /* @__PURE__ */ jsxs48(SideNavContext.Provider, { value: contextValue, children: [
7874
- showMobileTrigger && /* @__PURE__ */ jsx66(StnSideNavMobileTrigger, { floating: true }),
7875
- (drawer || responsiveDrawer) && /* @__PURE__ */ jsx66(
7994
+ return /* @__PURE__ */ jsxs49(SideNavContext.Provider, { value: contextValue, children: [
7995
+ showMobileTrigger && /* @__PURE__ */ jsx67(StnSideNavMobileTrigger, { floating: true }),
7996
+ (drawer || responsiveDrawer) && /* @__PURE__ */ jsx67(
7876
7997
  "div",
7877
7998
  {
7878
7999
  className: cn("stn-side-nav__backdrop", mobileOpen && "is-open"),
@@ -7880,7 +8001,7 @@ var StnSideNavigationRoot = forwardRef38(function StnSideNavigationRoot2({
7880
8001
  "aria-hidden": !mobileOpen
7881
8002
  }
7882
8003
  ),
7883
- /* @__PURE__ */ jsx66(
8004
+ /* @__PURE__ */ jsx67(
7884
8005
  "aside",
7885
8006
  {
7886
8007
  ref,
@@ -7922,14 +8043,14 @@ var StnSideNavigation = Object.assign(StnSideNavigationRoot, {
7922
8043
  import {
7923
8044
  Fragment as Fragment8,
7924
8045
  useEffect as useEffect11,
7925
- useId as useId15,
8046
+ useId as useId16,
7926
8047
  useRef as useRef8,
7927
- useState as useState17
8048
+ useState as useState18
7928
8049
  } from "react";
7929
8050
  import {
7930
8051
  STN_BREADCRUMB_ICON_SRC
7931
8052
  } from "@stn-uiux/pub-ui/data/stnBreadcrumb";
7932
- import { Fragment as Fragment9, jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
8053
+ import { Fragment as Fragment9, jsx as jsx68, jsxs as jsxs50 } from "react/jsx-runtime";
7933
8054
  function maskStyle3(src) {
7934
8055
  return { maskImage: `url('${src}')`, WebkitMaskImage: `url('${src}')` };
7935
8056
  }
@@ -7942,13 +8063,13 @@ function hasSegmentMenu(item) {
7942
8063
  return Boolean(item.menu || item.menuItems && item.menuItems.length > 0);
7943
8064
  }
7944
8065
  function BreadcrumbSeparator() {
7945
- return /* @__PURE__ */ jsx67("li", { className: "separator", "aria-hidden": "true", children: /* @__PURE__ */ jsx67("span", { style: maskStyle3(STN_BREADCRUMB_ICON_SRC.separator) }) });
8066
+ return /* @__PURE__ */ jsx68("li", { className: "separator", "aria-hidden": "true", children: /* @__PURE__ */ jsx68("span", { style: maskStyle3(STN_BREADCRUMB_ICON_SRC.separator) }) });
7946
8067
  }
7947
8068
  function BreadcrumbIcon({ src }) {
7948
- return /* @__PURE__ */ jsx67("span", { className: "stn-breadcrumb__icon-glyph", style: maskStyle3(src), "aria-hidden": "true" });
8069
+ return /* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__icon-glyph", style: maskStyle3(src), "aria-hidden": "true" });
7949
8070
  }
7950
8071
  function BreadcrumbCaret() {
7951
- return /* @__PURE__ */ jsx67(
8072
+ return /* @__PURE__ */ jsx68(
7952
8073
  "span",
7953
8074
  {
7954
8075
  className: "stn-breadcrumb__caret",
@@ -7962,10 +8083,10 @@ function SegmentContent({
7962
8083
  label,
7963
8084
  menu
7964
8085
  }) {
7965
- return /* @__PURE__ */ jsxs49(Fragment9, { children: [
7966
- iconSrc ? /* @__PURE__ */ jsx67(BreadcrumbIcon, { src: iconSrc }) : null,
7967
- /* @__PURE__ */ jsx67("span", { className: "stn-breadcrumb__label", children: label }),
7968
- menu ? /* @__PURE__ */ jsx67(BreadcrumbCaret, {}) : null
8086
+ return /* @__PURE__ */ jsxs50(Fragment9, { children: [
8087
+ iconSrc ? /* @__PURE__ */ jsx68(BreadcrumbIcon, { src: iconSrc }) : null,
8088
+ /* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__label", children: label }),
8089
+ menu ? /* @__PURE__ */ jsx68(BreadcrumbCaret, {}) : null
7969
8090
  ] });
7970
8091
  }
7971
8092
  function BreadcrumbMenuList({
@@ -7973,7 +8094,7 @@ function BreadcrumbMenuList({
7973
8094
  items,
7974
8095
  onPick
7975
8096
  }) {
7976
- return /* @__PURE__ */ jsx67("ul", { id, className: "stn-breadcrumb__menu", role: "menu", children: items.map((option) => /* @__PURE__ */ jsx67("li", { role: "none", children: option.href ? /* @__PURE__ */ jsx67(
8097
+ return /* @__PURE__ */ jsx68("ul", { id, className: "stn-breadcrumb__menu", role: "menu", children: items.map((option) => /* @__PURE__ */ jsx68("li", { role: "none", children: option.href ? /* @__PURE__ */ jsx68(
7977
8098
  "a",
7978
8099
  {
7979
8100
  role: "menuitem",
@@ -7985,7 +8106,7 @@ function BreadcrumbMenuList({
7985
8106
  },
7986
8107
  children: option.label
7987
8108
  }
7988
- ) : /* @__PURE__ */ jsx67(
8109
+ ) : /* @__PURE__ */ jsx68(
7989
8110
  "button",
7990
8111
  {
7991
8112
  type: "button",
@@ -8022,20 +8143,20 @@ function BreadcrumbSegment({
8022
8143
  item,
8023
8144
  isCurrent
8024
8145
  }) {
8025
- const menuId = useId15();
8026
- const [open, setOpen] = useState17(false);
8146
+ const menuId = useId16();
8147
+ const [open, setOpen] = useState18(false);
8027
8148
  const menuItems = item.menuItems ?? [];
8028
8149
  const showMenu = hasSegmentMenu(item) && !isCurrent;
8029
8150
  const canOpenMenu = showMenu && menuItems.length > 0;
8030
8151
  const rootRef = useDismissibleMenu(open, () => setOpen(false));
8031
8152
  const iconSrc = resolveIconSrc(item);
8032
- const content = /* @__PURE__ */ jsx67(SegmentContent, { iconSrc, label: item.label, menu: showMenu });
8153
+ const content = /* @__PURE__ */ jsx68(SegmentContent, { iconSrc, label: item.label, menu: showMenu });
8033
8154
  if (isCurrent) {
8034
- return /* @__PURE__ */ jsx67("span", { className: "stn-breadcrumb__segment", "aria-current": "page", "aria-label": item.label, children: content });
8155
+ return /* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__segment", "aria-current": "page", "aria-label": item.label, children: content });
8035
8156
  }
8036
8157
  if (canOpenMenu) {
8037
- return /* @__PURE__ */ jsxs49("span", { ref: rootRef, className: "stn-breadcrumb__segment-wrap", children: [
8038
- /* @__PURE__ */ jsx67(
8158
+ return /* @__PURE__ */ jsxs50("span", { ref: rootRef, className: "stn-breadcrumb__segment-wrap", children: [
8159
+ /* @__PURE__ */ jsx68(
8039
8160
  "button",
8040
8161
  {
8041
8162
  type: "button",
@@ -8051,7 +8172,7 @@ function BreadcrumbSegment({
8051
8172
  children: content
8052
8173
  }
8053
8174
  ),
8054
- open ? /* @__PURE__ */ jsx67(BreadcrumbMenuList, { id: menuId, items: menuItems, onPick: () => setOpen(false) }) : null
8175
+ open ? /* @__PURE__ */ jsx68(BreadcrumbMenuList, { id: menuId, items: menuItems, onPick: () => setOpen(false) }) : null
8055
8176
  ] });
8056
8177
  }
8057
8178
  if (item.menu || item.onClick) {
@@ -8063,7 +8184,7 @@ function BreadcrumbSegment({
8063
8184
  "aria-haspopup": item.menu ? "menu" : void 0,
8064
8185
  "aria-expanded": item.menu ? false : void 0
8065
8186
  };
8066
- return /* @__PURE__ */ jsx67("button", { ...buttonProps, children: content });
8187
+ return /* @__PURE__ */ jsx68("button", { ...buttonProps, children: content });
8067
8188
  }
8068
8189
  if (item.href) {
8069
8190
  const linkProps = {
@@ -8072,17 +8193,17 @@ function BreadcrumbSegment({
8072
8193
  onClick: item.onClick,
8073
8194
  "aria-label": item.label
8074
8195
  };
8075
- return /* @__PURE__ */ jsx67("a", { ...linkProps, children: content });
8196
+ return /* @__PURE__ */ jsx68("a", { ...linkProps, children: content });
8076
8197
  }
8077
- return /* @__PURE__ */ jsx67("span", { className: "stn-breadcrumb__segment", "aria-label": item.label, children: content });
8198
+ return /* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__segment", "aria-label": item.label, children: content });
8078
8199
  }
8079
8200
  function BreadcrumbBack({
8080
8201
  label,
8081
8202
  href,
8082
8203
  onClick
8083
8204
  }) {
8084
- const content = /* @__PURE__ */ jsxs49(Fragment9, { children: [
8085
- /* @__PURE__ */ jsx67(
8205
+ const content = /* @__PURE__ */ jsxs50(Fragment9, { children: [
8206
+ /* @__PURE__ */ jsx68(
8086
8207
  "span",
8087
8208
  {
8088
8209
  className: "stn-breadcrumb__back-glyph",
@@ -8090,12 +8211,12 @@ function BreadcrumbBack({
8090
8211
  "aria-hidden": "true"
8091
8212
  }
8092
8213
  ),
8093
- /* @__PURE__ */ jsx67("span", { className: "stn-breadcrumb__label", children: label })
8214
+ /* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__label", children: label })
8094
8215
  ] });
8095
8216
  if (href) {
8096
- return /* @__PURE__ */ jsx67("a", { className: "stn-breadcrumb__back", href, onClick, "aria-label": `\uB4A4\uB85C: ${label}`, children: content });
8217
+ return /* @__PURE__ */ jsx68("a", { className: "stn-breadcrumb__back", href, onClick, "aria-label": `\uB4A4\uB85C: ${label}`, children: content });
8097
8218
  }
8098
- return /* @__PURE__ */ jsx67("button", { type: "button", className: "stn-breadcrumb__back", onClick, "aria-label": `\uB4A4\uB85C: ${label}`, children: content });
8219
+ return /* @__PURE__ */ jsx68("button", { type: "button", className: "stn-breadcrumb__back", onClick, "aria-label": `\uB4A4\uB85C: ${label}`, children: content });
8099
8220
  }
8100
8221
  function splitCollapsedItems(items, maxItems, itemsBeforeCollapse, itemsAfterCollapse) {
8101
8222
  if (!maxItems || items.length <= maxItems) {
@@ -8117,7 +8238,7 @@ function BreadcrumbCollapsed({
8117
8238
  items,
8118
8239
  menuId
8119
8240
  }) {
8120
- const [open, setOpen] = useState17(false);
8241
+ const [open, setOpen] = useState18(false);
8121
8242
  const rootRef = useDismissibleMenu(open, () => setOpen(false));
8122
8243
  const menuItems = items.map((item) => ({
8123
8244
  id: item.id,
@@ -8126,8 +8247,8 @@ function BreadcrumbCollapsed({
8126
8247
  onClick: item.onClick,
8127
8248
  current: item.current
8128
8249
  }));
8129
- return /* @__PURE__ */ jsxs49("li", { className: "stn-breadcrumb__item", ref: rootRef, children: [
8130
- /* @__PURE__ */ jsx67(
8250
+ return /* @__PURE__ */ jsxs50("li", { className: "stn-breadcrumb__item", ref: rootRef, children: [
8251
+ /* @__PURE__ */ jsx68(
8131
8252
  "button",
8132
8253
  {
8133
8254
  type: "button",
@@ -8140,7 +8261,7 @@ function BreadcrumbCollapsed({
8140
8261
  children: "\u22EF"
8141
8262
  }
8142
8263
  ),
8143
- open ? /* @__PURE__ */ jsx67(BreadcrumbMenuList, { id: menuId, items: menuItems, onPick: () => setOpen(false) }) : null
8264
+ open ? /* @__PURE__ */ jsx68(BreadcrumbMenuList, { id: menuId, items: menuItems, onPick: () => setOpen(false) }) : null
8144
8265
  ] });
8145
8266
  }
8146
8267
  function StnBreadcrumb({
@@ -8157,7 +8278,7 @@ function StnBreadcrumb({
8157
8278
  homeLabel = "\uD648",
8158
8279
  renderItem
8159
8280
  }) {
8160
- const menuId = useId15();
8281
+ const menuId = useId16();
8161
8282
  const currentIndex = items.findIndex((item, index) => item.current ?? index === items.length - 1);
8162
8283
  const currentItem = currentIndex >= 0 ? items[currentIndex] : items[items.length - 1];
8163
8284
  const previousItem = currentIndex > 0 ? items[currentIndex - 1] : null;
@@ -8172,8 +8293,8 @@ function StnBreadcrumb({
8172
8293
  const lastId = items[items.length - 1]?.id;
8173
8294
  const renderTrailItem = (item) => {
8174
8295
  const isCurrent = Boolean(item.current) || item.id === lastId;
8175
- const segment = /* @__PURE__ */ jsx67(BreadcrumbSegment, { item, isCurrent });
8176
- return /* @__PURE__ */ jsx67(
8296
+ const segment = /* @__PURE__ */ jsx68(BreadcrumbSegment, { item, isCurrent });
8297
+ return /* @__PURE__ */ jsx68(
8177
8298
  "li",
8178
8299
  {
8179
8300
  className: cn(
@@ -8184,27 +8305,27 @@ function StnBreadcrumb({
8184
8305
  }
8185
8306
  );
8186
8307
  };
8187
- return /* @__PURE__ */ jsx67(
8308
+ return /* @__PURE__ */ jsx68(
8188
8309
  "nav",
8189
8310
  {
8190
8311
  className: cn("stn-breadcrumb", size, variant === "chip" && "chip", className),
8191
8312
  "aria-label": "Breadcrumb",
8192
- children: /* @__PURE__ */ jsxs49("ol", { className: "stn-breadcrumb__list", children: [
8193
- currentItem ? /* @__PURE__ */ jsx67("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--back", children: /* @__PURE__ */ jsx67(BreadcrumbBack, { label: currentItem.label, href: backHref, onClick: backOnClick }) }) : null,
8194
- showHome ? /* @__PURE__ */ jsx67("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--home", children: /* @__PURE__ */ jsxs49("a", { className: "stn-breadcrumb__home", href: homeHref, onClick: onHomeClick, children: [
8195
- /* @__PURE__ */ jsx67(BreadcrumbIcon, { src: STN_BREADCRUMB_ICON_SRC.home }),
8196
- /* @__PURE__ */ jsx67("span", { className: "blind", children: homeLabel })
8313
+ children: /* @__PURE__ */ jsxs50("ol", { className: "stn-breadcrumb__list", children: [
8314
+ currentItem ? /* @__PURE__ */ jsx68("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--back", children: /* @__PURE__ */ jsx68(BreadcrumbBack, { label: currentItem.label, href: backHref, onClick: backOnClick }) }) : null,
8315
+ showHome ? /* @__PURE__ */ jsx68("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--home", children: /* @__PURE__ */ jsxs50("a", { className: "stn-breadcrumb__home", href: homeHref, onClick: onHomeClick, children: [
8316
+ /* @__PURE__ */ jsx68(BreadcrumbIcon, { src: STN_BREADCRUMB_ICON_SRC.home }),
8317
+ /* @__PURE__ */ jsx68("span", { className: "blind", children: homeLabel })
8197
8318
  ] }) }) : null,
8198
- head.map((item, index) => /* @__PURE__ */ jsxs49(Fragment8, { children: [
8199
- showHome || index > 0 ? /* @__PURE__ */ jsx67(BreadcrumbSeparator, {}) : null,
8319
+ head.map((item, index) => /* @__PURE__ */ jsxs50(Fragment8, { children: [
8320
+ showHome || index > 0 ? /* @__PURE__ */ jsx68(BreadcrumbSeparator, {}) : null,
8200
8321
  renderTrailItem(item)
8201
8322
  ] }, item.id)),
8202
- hidden.length > 0 ? /* @__PURE__ */ jsxs49(Fragment9, { children: [
8203
- /* @__PURE__ */ jsx67(BreadcrumbSeparator, {}),
8204
- /* @__PURE__ */ jsx67(BreadcrumbCollapsed, { items: hidden, menuId })
8323
+ hidden.length > 0 ? /* @__PURE__ */ jsxs50(Fragment9, { children: [
8324
+ /* @__PURE__ */ jsx68(BreadcrumbSeparator, {}),
8325
+ /* @__PURE__ */ jsx68(BreadcrumbCollapsed, { items: hidden, menuId })
8205
8326
  ] }) : null,
8206
- tail.map((item) => /* @__PURE__ */ jsxs49(Fragment8, { children: [
8207
- /* @__PURE__ */ jsx67(BreadcrumbSeparator, {}),
8327
+ tail.map((item) => /* @__PURE__ */ jsxs50(Fragment8, { children: [
8328
+ /* @__PURE__ */ jsx68(BreadcrumbSeparator, {}),
8208
8329
  renderTrailItem(item)
8209
8330
  ] }, item.id))
8210
8331
  ] })
@@ -8213,9 +8334,9 @@ function StnBreadcrumb({
8213
8334
  }
8214
8335
 
8215
8336
  // src/components/StnHeaderTitle.tsx
8216
- import { useEffect as useEffect12, useState as useState18 } from "react";
8337
+ import { useEffect as useEffect12, useState as useState19 } from "react";
8217
8338
  import { STN_HEADER_TITLE_FRAME } from "@stn-uiux/pub-ui/data/stnHeaderTitle";
8218
- import { jsx as jsx68, jsxs as jsxs50 } from "react/jsx-runtime";
8339
+ import { jsx as jsx69, jsxs as jsxs51 } from "react/jsx-runtime";
8219
8340
  var KO_WEEKDAY_SHORT = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
8220
8341
  var KO_WEEKDAY_LONG = [
8221
8342
  "\uC77C\uC694\uC77C",
@@ -8254,8 +8375,8 @@ function formatStnHeaderTitleTime(date, options) {
8254
8375
  }
8255
8376
  function HeaderTitleFrame({ preview = false }) {
8256
8377
  const frameClass = preview ? "stn-header-title__frame-preview" : "stn-header-title__frame";
8257
- return /* @__PURE__ */ jsxs50("div", { className: frameClass, "aria-hidden": "true", children: [
8258
- /* @__PURE__ */ jsx68("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--outer", children: /* @__PURE__ */ jsx68(
8378
+ return /* @__PURE__ */ jsxs51("div", { className: frameClass, "aria-hidden": "true", children: [
8379
+ /* @__PURE__ */ jsx69("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--outer", children: /* @__PURE__ */ jsx69(
8259
8380
  "img",
8260
8381
  {
8261
8382
  className: "stn-header-title__frame-img",
@@ -8264,8 +8385,8 @@ function HeaderTitleFrame({ preview = false }) {
8264
8385
  draggable: false
8265
8386
  }
8266
8387
  ) }),
8267
- /* @__PURE__ */ jsxs50("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--inner", children: [
8268
- /* @__PURE__ */ jsx68(
8388
+ /* @__PURE__ */ jsxs51("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--inner", children: [
8389
+ /* @__PURE__ */ jsx69(
8269
8390
  "img",
8270
8391
  {
8271
8392
  className: "stn-header-title__frame-img stn-header-title__frame-img--dark",
@@ -8274,7 +8395,7 @@ function HeaderTitleFrame({ preview = false }) {
8274
8395
  draggable: false
8275
8396
  }
8276
8397
  ),
8277
- /* @__PURE__ */ jsx68(
8398
+ /* @__PURE__ */ jsx69(
8278
8399
  "img",
8279
8400
  {
8280
8401
  className: "stn-header-title__frame-img stn-header-title__frame-img--light",
@@ -8287,10 +8408,10 @@ function HeaderTitleFrame({ preview = false }) {
8287
8408
  ] });
8288
8409
  }
8289
8410
  function StnHeaderTitleFramePreview({ className }) {
8290
- return /* @__PURE__ */ jsx68("div", { className: cn("stn-header-title__frame-only", className), children: /* @__PURE__ */ jsx68(HeaderTitleFrame, { preview: true }) });
8411
+ return /* @__PURE__ */ jsx69("div", { className: cn("stn-header-title__frame-only", className), children: /* @__PURE__ */ jsx69(HeaderTitleFrame, { preview: true }) });
8291
8412
  }
8292
8413
  function useLiveClock(enabled) {
8293
- const [now, setNow] = useState18(() => /* @__PURE__ */ new Date());
8414
+ const [now, setNow] = useState19(() => /* @__PURE__ */ new Date());
8294
8415
  useEffect12(() => {
8295
8416
  if (!enabled) return;
8296
8417
  const id = window.setInterval(() => setNow(/* @__PURE__ */ new Date()), 1e3);
@@ -8303,35 +8424,35 @@ function StnHeaderTitleMainText({
8303
8424
  children,
8304
8425
  ...rest
8305
8426
  }) {
8306
- return /* @__PURE__ */ jsx68("h1", { className: cn("stn-header-title__text", className), ...rest, children });
8427
+ return /* @__PURE__ */ jsx69("h1", { className: cn("stn-header-title__text", className), ...rest, children });
8307
8428
  }
8308
8429
  function StnHeaderTitleSubText({
8309
8430
  className,
8310
8431
  children,
8311
8432
  ...rest
8312
8433
  }) {
8313
- return /* @__PURE__ */ jsx68("span", { className: cn("stn-header-title__sub-text", className), ...rest, children });
8434
+ return /* @__PURE__ */ jsx69("span", { className: cn("stn-header-title__sub-text", className), ...rest, children });
8314
8435
  }
8315
8436
  function StnHeaderTitleDate({
8316
8437
  className,
8317
8438
  children,
8318
8439
  ...rest
8319
8440
  }) {
8320
- return /* @__PURE__ */ jsx68("time", { className: cn("stn-header-title__date", className), ...rest, children });
8441
+ return /* @__PURE__ */ jsx69("time", { className: cn("stn-header-title__date", className), ...rest, children });
8321
8442
  }
8322
8443
  function StnHeaderTitleWeekday({
8323
8444
  className,
8324
8445
  children,
8325
8446
  ...rest
8326
8447
  }) {
8327
- return /* @__PURE__ */ jsx68("span", { className: cn("stn-header-title__weekday", className), ...rest, children });
8448
+ return /* @__PURE__ */ jsx69("span", { className: cn("stn-header-title__weekday", className), ...rest, children });
8328
8449
  }
8329
8450
  function StnHeaderTitleTime({
8330
8451
  className,
8331
8452
  children,
8332
8453
  ...rest
8333
8454
  }) {
8334
- return /* @__PURE__ */ jsx68("span", { className: cn("stn-header-title__time", className), "aria-label": "\uD604\uC7AC \uC2DC\uAC01", ...rest, children });
8455
+ return /* @__PURE__ */ jsx69("span", { className: cn("stn-header-title__time", className), "aria-label": "\uD604\uC7AC \uC2DC\uAC01", ...rest, children });
8335
8456
  }
8336
8457
  function StnHeaderTitleClock({
8337
8458
  className,
@@ -8354,7 +8475,7 @@ function StnHeaderTitleClock({
8354
8475
  }) {
8355
8476
  const now = useLiveClock(live);
8356
8477
  if (children != null) {
8357
- return /* @__PURE__ */ jsxs50(
8478
+ return /* @__PURE__ */ jsxs51(
8358
8479
  "header",
8359
8480
  {
8360
8481
  className: cn(
@@ -8366,8 +8487,8 @@ function StnHeaderTitleClock({
8366
8487
  ),
8367
8488
  ...rest,
8368
8489
  children: [
8369
- framed ? /* @__PURE__ */ jsx68(HeaderTitleFrame, {}) : null,
8370
- /* @__PURE__ */ jsx68("div", { className: "stn-header-title__content", children })
8490
+ framed ? /* @__PURE__ */ jsx69(HeaderTitleFrame, {}) : null,
8491
+ /* @__PURE__ */ jsx69("div", { className: "stn-header-title__content", children })
8371
8492
  ]
8372
8493
  }
8373
8494
  );
@@ -8397,7 +8518,7 @@ function StnHeaderTitleClock({
8397
8518
  resolvedTime = formatStnHeaderTitleTime(now, { showSeconds });
8398
8519
  }
8399
8520
  }
8400
- return /* @__PURE__ */ jsxs50(
8521
+ return /* @__PURE__ */ jsxs51(
8401
8522
  "header",
8402
8523
  {
8403
8524
  className: cn(
@@ -8409,11 +8530,11 @@ function StnHeaderTitleClock({
8409
8530
  ),
8410
8531
  ...rest,
8411
8532
  children: [
8412
- framed ? /* @__PURE__ */ jsx68(HeaderTitleFrame, {}) : null,
8413
- /* @__PURE__ */ jsxs50("div", { className: "stn-header-title__content", children: [
8414
- resolvedDate ? /* @__PURE__ */ jsx68("time", { className: "stn-header-title__date", dateTime: resolvedDate, children: resolvedDate }) : null,
8415
- showWeekdayOnly ? /* @__PURE__ */ jsx68("span", { className: "stn-header-title__weekday", children: resolvedWeekday }) : null,
8416
- resolvedTime ? /* @__PURE__ */ jsx68("span", { className: "stn-header-title__time", "aria-label": "\uD604\uC7AC \uC2DC\uAC01", children: resolvedTime }) : null
8533
+ framed ? /* @__PURE__ */ jsx69(HeaderTitleFrame, {}) : null,
8534
+ /* @__PURE__ */ jsxs51("div", { className: "stn-header-title__content", children: [
8535
+ resolvedDate ? /* @__PURE__ */ jsx69("time", { className: "stn-header-title__date", dateTime: resolvedDate, children: resolvedDate }) : null,
8536
+ showWeekdayOnly ? /* @__PURE__ */ jsx69("span", { className: "stn-header-title__weekday", children: resolvedWeekday }) : null,
8537
+ resolvedTime ? /* @__PURE__ */ jsx69("span", { className: "stn-header-title__time", "aria-label": "\uD604\uC7AC \uC2DC\uAC01", children: resolvedTime }) : null
8417
8538
  ] })
8418
8539
  ]
8419
8540
  }
@@ -8430,7 +8551,7 @@ function StnHeaderTitleDual({
8430
8551
  ...rest
8431
8552
  }) {
8432
8553
  const resolvedMain = mainText ?? title ?? children;
8433
- return /* @__PURE__ */ jsxs50(
8554
+ return /* @__PURE__ */ jsxs51(
8434
8555
  "header",
8435
8556
  {
8436
8557
  className: cn(
@@ -8442,10 +8563,10 @@ function StnHeaderTitleDual({
8442
8563
  ),
8443
8564
  ...rest,
8444
8565
  children: [
8445
- framed ? /* @__PURE__ */ jsx68(HeaderTitleFrame, {}) : null,
8446
- /* @__PURE__ */ jsxs50("div", { className: "stn-header-title__content", children: [
8447
- subText != null ? /* @__PURE__ */ jsx68("span", { className: "stn-header-title__sub-text", children: subText }) : null,
8448
- resolvedMain != null ? typeof resolvedMain === "string" || typeof resolvedMain === "number" ? /* @__PURE__ */ jsx68("h1", { className: "stn-header-title__text", children: resolvedMain }) : resolvedMain : null
8566
+ framed ? /* @__PURE__ */ jsx69(HeaderTitleFrame, {}) : null,
8567
+ /* @__PURE__ */ jsxs51("div", { className: "stn-header-title__content", children: [
8568
+ subText != null ? /* @__PURE__ */ jsx69("span", { className: "stn-header-title__sub-text", children: subText }) : null,
8569
+ resolvedMain != null ? typeof resolvedMain === "string" || typeof resolvedMain === "number" ? /* @__PURE__ */ jsx69("h1", { className: "stn-header-title__text", children: resolvedMain }) : resolvedMain : null
8449
8570
  ] })
8450
8571
  ]
8451
8572
  }
@@ -8460,7 +8581,7 @@ function StnHeaderTitleText({
8460
8581
  ...rest
8461
8582
  }) {
8462
8583
  const resolved = title ?? children;
8463
- return /* @__PURE__ */ jsxs50(
8584
+ return /* @__PURE__ */ jsxs51(
8464
8585
  "header",
8465
8586
  {
8466
8587
  className: cn(
@@ -8472,20 +8593,20 @@ function StnHeaderTitleText({
8472
8593
  ),
8473
8594
  ...rest,
8474
8595
  children: [
8475
- framed ? /* @__PURE__ */ jsx68(HeaderTitleFrame, {}) : null,
8476
- /* @__PURE__ */ jsx68("div", { className: "stn-header-title__content", children: typeof resolved === "string" || typeof resolved === "number" ? /* @__PURE__ */ jsx68("h1", { className: "stn-header-title__text", children: resolved }) : resolved })
8596
+ framed ? /* @__PURE__ */ jsx69(HeaderTitleFrame, {}) : null,
8597
+ /* @__PURE__ */ jsx69("div", { className: "stn-header-title__content", children: typeof resolved === "string" || typeof resolved === "number" ? /* @__PURE__ */ jsx69("h1", { className: "stn-header-title__text", children: resolved }) : resolved })
8477
8598
  ]
8478
8599
  }
8479
8600
  );
8480
8601
  }
8481
8602
  function StnHeaderTitleRoot(props) {
8482
8603
  if (props.variant === "clock") {
8483
- return /* @__PURE__ */ jsx68(StnHeaderTitleClock, { ...props });
8604
+ return /* @__PURE__ */ jsx69(StnHeaderTitleClock, { ...props });
8484
8605
  }
8485
8606
  if (props.variant === "dual" || "subText" in props && props.subText != null) {
8486
- return /* @__PURE__ */ jsx68(StnHeaderTitleDual, { ...props });
8607
+ return /* @__PURE__ */ jsx69(StnHeaderTitleDual, { ...props });
8487
8608
  }
8488
- return /* @__PURE__ */ jsx68(StnHeaderTitleText, { ...props });
8609
+ return /* @__PURE__ */ jsx69(StnHeaderTitleText, { ...props });
8489
8610
  }
8490
8611
  var StnHeaderTitle = Object.assign(StnHeaderTitleRoot, {
8491
8612
  Text: StnHeaderTitleMainText,
@@ -8498,10 +8619,10 @@ var StnHeaderTitle = Object.assign(StnHeaderTitleRoot, {
8498
8619
 
8499
8620
  // src/layouts/StnContainer.tsx
8500
8621
  import {
8501
- forwardRef as forwardRef39
8622
+ forwardRef as forwardRef40
8502
8623
  } from "react";
8503
- import { jsx as jsx69 } from "react/jsx-runtime";
8504
- var StnContainer = forwardRef39(function StnContainer2({
8624
+ import { jsx as jsx70 } from "react/jsx-runtime";
8625
+ var StnContainer = forwardRef40(function StnContainer2({
8505
8626
  component,
8506
8627
  as,
8507
8628
  maxWidth = "lg",
@@ -8516,7 +8637,7 @@ var StnContainer = forwardRef39(function StnContainer2({
8516
8637
  const Component = component ?? as ?? "div";
8517
8638
  const maxWidthClass = maxWidth ? `stn-container--${maxWidth} stn-container--max-width-${maxWidth}` : "stn-container--fluid stn-container--max-width-false";
8518
8639
  const classKey = maxWidth ? `maxWidth${maxWidth.charAt(0).toUpperCase() + maxWidth.slice(1)}` : "maxWidthFalse";
8519
- return /* @__PURE__ */ jsx69(
8640
+ return /* @__PURE__ */ jsx70(
8520
8641
  Component,
8521
8642
  {
8522
8643
  ref,
@@ -8539,8 +8660,8 @@ var StnContainer = forwardRef39(function StnContainer2({
8539
8660
  });
8540
8661
 
8541
8662
  // src/layouts/StnGrid.tsx
8542
- import { forwardRef as forwardRef40 } from "react";
8543
- import { jsx as jsx70 } from "react/jsx-runtime";
8663
+ import { forwardRef as forwardRef41 } from "react";
8664
+ import { jsx as jsx71 } from "react/jsx-runtime";
8544
8665
  var BREAKPOINTS2 = ["xs", "sm", "md", "lg", "xl"];
8545
8666
  var SPACING_CLASS = {
8546
8667
  "0": "0",
@@ -8606,7 +8727,7 @@ function sizeClasses(size) {
8606
8727
  }
8607
8728
  return classes;
8608
8729
  }
8609
- var StnGrid = forwardRef40(function StnGrid2({
8730
+ var StnGrid = forwardRef41(function StnGrid2({
8610
8731
  component,
8611
8732
  as,
8612
8733
  container = false,
@@ -8626,7 +8747,7 @@ var StnGrid = forwardRef40(function StnGrid2({
8626
8747
  const Component = component ?? as ?? "div";
8627
8748
  const justify = typeof justifyContent === "string" && JUSTIFY_CLASS2.has(justifyContent) ? justifyContent : void 0;
8628
8749
  const align = typeof alignItems === "string" && ALIGN_CLASS2.has(alignItems) ? alignItems : void 0;
8629
- return /* @__PURE__ */ jsx70(
8750
+ return /* @__PURE__ */ jsx71(
8630
8751
  Component,
8631
8752
  {
8632
8753
  ref,
@@ -8650,7 +8771,7 @@ var StnGrid = forwardRef40(function StnGrid2({
8650
8771
  });
8651
8772
 
8652
8773
  // src/layouts/StnLayerShell.tsx
8653
- import { jsx as jsx71, jsxs as jsxs51 } from "react/jsx-runtime";
8774
+ import { jsx as jsx72, jsxs as jsxs52 } from "react/jsx-runtime";
8654
8775
  function StnLayerShell({
8655
8776
  gnb,
8656
8777
  gnbSide = "left",
@@ -8671,7 +8792,7 @@ function StnLayerShell({
8671
8792
  const resolvedMainContent = layer1 ?? children;
8672
8793
  const resolvedModal = layer2;
8673
8794
  const isGnbRight = gnbSide === "right";
8674
- return /* @__PURE__ */ jsxs51(
8795
+ return /* @__PURE__ */ jsxs52(
8675
8796
  "div",
8676
8797
  {
8677
8798
  id: wrapId,
@@ -8680,8 +8801,8 @@ function StnLayerShell({
8680
8801
  className: cn("stn-wrap", isGnbRight && "stn-wrap--gnb-right", wrapClassName),
8681
8802
  children: [
8682
8803
  layer0,
8683
- utilities ? /* @__PURE__ */ jsx71("div", { className: "stn-page-utilities", "data-stn-layer-role": "utility", children: utilities }) : null,
8684
- /* @__PURE__ */ jsxs51(
8804
+ utilities ? /* @__PURE__ */ jsx72("div", { className: "stn-page-utilities", "data-stn-layer-role": "utility", children: utilities }) : null,
8805
+ /* @__PURE__ */ jsxs52(
8685
8806
  "main",
8686
8807
  {
8687
8808
  id: containerId,
@@ -8690,9 +8811,9 @@ function StnLayerShell({
8690
8811
  className: cn("stn-layer-1", scrollable && "scroll", containerClassName),
8691
8812
  children: [
8692
8813
  !isGnbRight && gnb,
8693
- /* @__PURE__ */ jsxs51("div", { className: "stn-layer-1__main", children: [
8694
- header ? /* @__PURE__ */ jsx71("header", { className: "stn-layer-1__header", children: header }) : null,
8695
- /* @__PURE__ */ jsx71("div", { className: cn("stn-layer-1__body", scrollable && "stn-scroll", contentClassName), children: resolvedMainContent })
8814
+ /* @__PURE__ */ jsxs52("div", { className: "stn-layer-1__main", children: [
8815
+ header ? /* @__PURE__ */ jsx72("header", { className: "stn-layer-1__header", children: header }) : null,
8816
+ /* @__PURE__ */ jsx72("div", { className: cn("stn-layer-1__body", scrollable && "stn-scroll", contentClassName), children: resolvedMainContent })
8696
8817
  ] }),
8697
8818
  isGnbRight && gnb
8698
8819
  ]
@@ -8705,7 +8826,7 @@ function StnLayerShell({
8705
8826
  }
8706
8827
 
8707
8828
  // src/layouts/StnListViewLayout.tsx
8708
- import { jsx as jsx72, jsxs as jsxs52 } from "react/jsx-runtime";
8829
+ import { jsx as jsx73, jsxs as jsxs53 } from "react/jsx-runtime";
8709
8830
  function StnListViewLayoutBody({
8710
8831
  search,
8711
8832
  sidebar,
@@ -8716,13 +8837,13 @@ function StnListViewLayoutBody({
8716
8837
  className
8717
8838
  }) {
8718
8839
  const lnbClass = lnbSide === "right" ? "stn-page-scaffold__lnb lnb_box lnb_box_right" : "stn-page-scaffold__lnb lnb_box";
8719
- const sidebarAside = sidebar ? /* @__PURE__ */ jsx72("aside", { className: lnbClass, children: sidebar }) : null;
8720
- return /* @__PURE__ */ jsx72(
8840
+ const sidebarAside = sidebar ? /* @__PURE__ */ jsx73("aside", { className: lnbClass, children: sidebar }) : null;
8841
+ return /* @__PURE__ */ jsx73(
8721
8842
  StnContainer,
8722
8843
  {
8723
8844
  maxWidth: false,
8724
8845
  className: cn("stn-list-view-layout__body", className),
8725
- children: /* @__PURE__ */ jsxs52(
8846
+ children: /* @__PURE__ */ jsxs53(
8726
8847
  StnStack,
8727
8848
  {
8728
8849
  direction: "row",
@@ -8730,19 +8851,19 @@ function StnListViewLayoutBody({
8730
8851
  className: "stn-list-view__main",
8731
8852
  children: [
8732
8853
  lnbSide === "left" ? sidebarAside : null,
8733
- /* @__PURE__ */ jsxs52(
8854
+ /* @__PURE__ */ jsxs53(
8734
8855
  StnStack,
8735
8856
  {
8736
8857
  direction: "column",
8737
8858
  spacing: 2,
8738
8859
  className: "stn-list-view__content-stack",
8739
8860
  children: [
8740
- search ? /* @__PURE__ */ jsx72("div", { className: "stn-page-scaffold__search search_area", children: search }) : null,
8741
- /* @__PURE__ */ jsx72(
8861
+ search ? /* @__PURE__ */ jsx73("div", { className: "stn-page-scaffold__search search_area", children: search }) : null,
8862
+ /* @__PURE__ */ jsx73(
8742
8863
  "div",
8743
8864
  {
8744
8865
  className: "stn-page-scaffold__content content_box",
8745
- children: children ?? /* @__PURE__ */ jsxs52("div", { className: "stn-table stn-table--fill", children: [
8866
+ children: children ?? /* @__PURE__ */ jsxs53("div", { className: "stn-table stn-table--fill", children: [
8746
8867
  table,
8747
8868
  pagination
8748
8869
  ] })
@@ -8774,7 +8895,7 @@ function StnListViewLayoutRoot({
8774
8895
  }) {
8775
8896
  const bare = bareProp ?? noShell ?? false;
8776
8897
  const hasLnbClass = lnbSide === "right" ? "has_lnb_right" : "has_lnb";
8777
- const body = /* @__PURE__ */ jsx72(
8898
+ const body = /* @__PURE__ */ jsx73(
8778
8899
  StnListViewLayoutBody,
8779
8900
  {
8780
8901
  search,
@@ -8789,10 +8910,10 @@ function StnListViewLayoutRoot({
8789
8910
  if (bare) {
8790
8911
  return body;
8791
8912
  }
8792
- const renderedHeader = header === null ? null : header !== void 0 ? header : /* @__PURE__ */ jsx72("div", { className: "stn-layer-1__header", children: /* @__PURE__ */ jsx72(StnHeader, { variant: "page", children: /* @__PURE__ */ jsx72(StnHeader.Left, { children: /* @__PURE__ */ jsx72(StnHeaderPageTitle, { children: title }) }) }) });
8793
- return /* @__PURE__ */ jsxs52("div", { className: cn("stn-list-view-layout", "stn-layer-1", className), ...rest, children: [
8913
+ const renderedHeader = header === null ? null : header !== void 0 ? header : /* @__PURE__ */ jsx73("div", { className: "stn-layer-1__header", children: /* @__PURE__ */ jsx73(StnHeader, { variant: "page", children: /* @__PURE__ */ jsx73(StnHeader.Left, { children: /* @__PURE__ */ jsx73(StnHeaderPageTitle, { children: title }) }) }) });
8914
+ return /* @__PURE__ */ jsxs53("div", { className: cn("stn-list-view-layout", "stn-layer-1", className), ...rest, children: [
8794
8915
  renderedHeader,
8795
- /* @__PURE__ */ jsx72(
8916
+ /* @__PURE__ */ jsx73(
8796
8917
  "div",
8797
8918
  {
8798
8919
  className: cn("stn-content-area", sidebar ? hasLnbClass : null, search ? "has_sch" : null),
@@ -8802,10 +8923,10 @@ function StnListViewLayoutRoot({
8802
8923
  ] });
8803
8924
  }
8804
8925
  function StnListViewLayoutHeader({ className, children, ...rest }) {
8805
- return /* @__PURE__ */ jsx72("div", { className: cn("stn-layer-1__header", className), ...rest, children });
8926
+ return /* @__PURE__ */ jsx73("div", { className: cn("stn-layer-1__header", className), ...rest, children });
8806
8927
  }
8807
8928
  function StnListViewLayoutSearch({ className, children, ...rest }) {
8808
- return /* @__PURE__ */ jsx72("div", { className: cn("search_area", className), ...rest, children });
8929
+ return /* @__PURE__ */ jsx73("div", { className: cn("search_area", className), ...rest, children });
8809
8930
  }
8810
8931
  function StnListViewLayoutSidebar({
8811
8932
  side = "left",
@@ -8814,16 +8935,16 @@ function StnListViewLayoutSidebar({
8814
8935
  ...rest
8815
8936
  }) {
8816
8937
  const lnbClass = side === "right" ? "lnb_box_right" : "lnb_box";
8817
- return /* @__PURE__ */ jsx72("aside", { className: cn(lnbClass, className), ...rest, children });
8938
+ return /* @__PURE__ */ jsx73("aside", { className: cn(lnbClass, className), ...rest, children });
8818
8939
  }
8819
8940
  function StnListViewLayoutContent({ className, children, ...rest }) {
8820
- return /* @__PURE__ */ jsx72("div", { className: cn("content_box", className), ...rest, children });
8941
+ return /* @__PURE__ */ jsx73("div", { className: cn("content_box", className), ...rest, children });
8821
8942
  }
8822
8943
  function StnListViewLayoutTable({ className, children, ...rest }) {
8823
- return /* @__PURE__ */ jsx72("div", { className: cn("stn-table", className), ...rest, children });
8944
+ return /* @__PURE__ */ jsx73("div", { className: cn("stn-table", className), ...rest, children });
8824
8945
  }
8825
8946
  function StnListViewLayoutPagination({ className, children, ...rest }) {
8826
- return /* @__PURE__ */ jsx72("div", { className: cn("stn-list-view-layout__pagination-wrap", className), ...rest, children });
8947
+ return /* @__PURE__ */ jsx73("div", { className: cn("stn-list-view-layout__pagination-wrap", className), ...rest, children });
8827
8948
  }
8828
8949
  var StnListViewLayout = Object.assign(StnListViewLayoutRoot, {
8829
8950
  Body: StnListViewLayoutBody,
@@ -8857,13 +8978,13 @@ import {
8857
8978
  } from "@stn-uiux/pub-ui/data/stnLayout";
8858
8979
 
8859
8980
  // src/patterns/dashboard/StnMapCanvas.tsx
8860
- import { jsx as jsx73 } from "react/jsx-runtime";
8981
+ import { jsx as jsx74 } from "react/jsx-runtime";
8861
8982
  function StnMapCanvas({
8862
8983
  children,
8863
8984
  className,
8864
8985
  ...rest
8865
8986
  }) {
8866
- return /* @__PURE__ */ jsx73(
8987
+ return /* @__PURE__ */ jsx74(
8867
8988
  "div",
8868
8989
  {
8869
8990
  className: cn("stn-map-canvas", className),
@@ -8875,7 +8996,7 @@ function StnMapCanvas({
8875
8996
  }
8876
8997
 
8877
8998
  // src/patterns/dashboard/StnDashboard.tsx
8878
- import { jsx as jsx74 } from "react/jsx-runtime";
8999
+ import { jsx as jsx75 } from "react/jsx-runtime";
8879
9000
  var fillStyle = {
8880
9001
  flex: "1 1 0%",
8881
9002
  minHeight: 0,
@@ -8894,7 +9015,7 @@ function StnDashboardRoot({
8894
9015
  }) {
8895
9016
  const isLeft = widgetPosition === "left";
8896
9017
  const isBoth = widgetPosition === "both";
8897
- return /* @__PURE__ */ jsx74(
9018
+ return /* @__PURE__ */ jsx75(
8898
9019
  "div",
8899
9020
  {
8900
9021
  className: cn(
@@ -8923,7 +9044,7 @@ function StnDashboardLeft({
8923
9044
  style,
8924
9045
  ...rest
8925
9046
  }) {
8926
- return /* @__PURE__ */ jsx74(
9047
+ return /* @__PURE__ */ jsx75(
8927
9048
  "div",
8928
9049
  {
8929
9050
  className: cn("stn-dashboard__left", className),
@@ -8949,7 +9070,7 @@ function StnDashboardRight({
8949
9070
  style,
8950
9071
  ...rest
8951
9072
  }) {
8952
- return /* @__PURE__ */ jsx74(
9073
+ return /* @__PURE__ */ jsx75(
8953
9074
  "div",
8954
9075
  {
8955
9076
  className: cn("stn-dashboard__right", className),
@@ -8977,7 +9098,7 @@ function StnDashboardTopRight({
8977
9098
  className,
8978
9099
  ...rest
8979
9100
  }) {
8980
- return /* @__PURE__ */ jsx74(
9101
+ return /* @__PURE__ */ jsx75(
8981
9102
  "div",
8982
9103
  {
8983
9104
  className: cn("stn-dashboard__top-right", className),
@@ -8996,9 +9117,9 @@ var StnDashboard = Object.assign(StnDashboardRoot, {
8996
9117
  });
8997
9118
 
8998
9119
  // src/patterns/scaffold/StnPageScaffold.tsx
8999
- import { jsx as jsx75, jsxs as jsxs53 } from "react/jsx-runtime";
9120
+ import { jsx as jsx76, jsxs as jsxs54 } from "react/jsx-runtime";
9000
9121
  function StnPageScaffoldRoot({ children, className, ...rest }) {
9001
- return /* @__PURE__ */ jsx75(
9122
+ return /* @__PURE__ */ jsx76(
9002
9123
  "div",
9003
9124
  {
9004
9125
  className: cn("stn-page-scaffold", className),
@@ -9015,9 +9136,9 @@ function StnPageScaffoldRegion({
9015
9136
  className,
9016
9137
  ...rest
9017
9138
  }) {
9018
- return /* @__PURE__ */ jsxs53("div", { className: cn("stn-page-scaffold__region", className), "data-stn-page-scaffold": "region", ...rest, children: [
9019
- /* @__PURE__ */ jsx75("span", { className: "stn-page-scaffold__region-label", children: label }),
9020
- hint ? /* @__PURE__ */ jsx75("span", { className: "stn-page-scaffold__region-hint", children: hint }) : null,
9139
+ return /* @__PURE__ */ jsxs54("div", { className: cn("stn-page-scaffold__region", className), "data-stn-page-scaffold": "region", ...rest, children: [
9140
+ /* @__PURE__ */ jsx76("span", { className: "stn-page-scaffold__region-label", children: label }),
9141
+ hint ? /* @__PURE__ */ jsx76("span", { className: "stn-page-scaffold__region-hint", children: hint }) : null,
9021
9142
  children
9022
9143
  ] });
9023
9144
  }
@@ -9028,7 +9149,7 @@ function StnPageScaffoldMapPlaceholder({
9028
9149
  children,
9029
9150
  ...rest
9030
9151
  }) {
9031
- return /* @__PURE__ */ jsx75("div", { className: "stn-widget shell-canvas stn-map-canvas", "data-stn-dashboard": "canvas", children: /* @__PURE__ */ jsxs53(
9152
+ return /* @__PURE__ */ jsx76("div", { className: "stn-widget shell-canvas stn-map-canvas", "data-stn-dashboard": "canvas", children: /* @__PURE__ */ jsxs54(
9032
9153
  "div",
9033
9154
  {
9034
9155
  className: cn("stn-page-scaffold__canvas-placeholder", className),
@@ -9036,8 +9157,8 @@ function StnPageScaffoldMapPlaceholder({
9036
9157
  role: "status",
9037
9158
  ...rest,
9038
9159
  children: [
9039
- /* @__PURE__ */ jsx75("p", { className: "stn-page-scaffold__canvas-placeholder-title", children: message }),
9040
- note ? /* @__PURE__ */ jsx75("p", { className: "stn-page-scaffold__canvas-placeholder-note", children: note }) : null,
9160
+ /* @__PURE__ */ jsx76("p", { className: "stn-page-scaffold__canvas-placeholder-title", children: message }),
9161
+ note ? /* @__PURE__ */ jsx76("p", { className: "stn-page-scaffold__canvas-placeholder-note", children: note }) : null,
9041
9162
  children
9042
9163
  ]
9043
9164
  }
@@ -9048,7 +9169,7 @@ function StnPageScaffoldMapCanvas({
9048
9169
  children,
9049
9170
  ...rest
9050
9171
  }) {
9051
- return /* @__PURE__ */ jsx75(
9172
+ return /* @__PURE__ */ jsx76(
9052
9173
  "div",
9053
9174
  {
9054
9175
  className: cn("stn-widget", "shell-canvas", "stn-map-canvas", "stn-page-scaffold__canvas", className),
@@ -9061,7 +9182,7 @@ function StnPageScaffoldMapCanvas({
9061
9182
  }
9062
9183
  function StnPageScaffoldLayer({ label, hint, children, className, ...layerProps }) {
9063
9184
  const labelText = label ? hint ? `${label} \xB7 ${hint}` : label : void 0;
9064
- return /* @__PURE__ */ jsx75(
9185
+ return /* @__PURE__ */ jsx76(
9065
9186
  StnLayer2,
9066
9187
  {
9067
9188
  className: cn(
@@ -9108,25 +9229,25 @@ function DashboardPageScaffold({
9108
9229
  const isLeft = widgetPosition === "left";
9109
9230
  const isBoth = widgetPosition === "both";
9110
9231
  const isNone = widgetPosition === "none" || !showRightRegion;
9111
- const mapColumn = /* @__PURE__ */ jsxs53(StnDashboard.Left, { children: [
9112
- /* @__PURE__ */ jsx75(StnPageScaffold.MapPlaceholder, { message: finalMapMessage, note: finalMapNote }),
9232
+ const mapColumn = /* @__PURE__ */ jsxs54(StnDashboard.Left, { children: [
9233
+ /* @__PURE__ */ jsx76(StnPageScaffold.MapPlaceholder, { message: finalMapMessage, note: finalMapNote }),
9113
9234
  faultPanel
9114
9235
  ] });
9115
- const rightWidgets = right ?? /* @__PURE__ */ jsx75(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
9116
- const leftWidgets = left ?? right ?? /* @__PURE__ */ jsx75(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC88C\uCE21 \uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
9117
- const dashboardGrid = bodyEmpty ? /* @__PURE__ */ jsx75(StnDashboard, { empty: true, widgetPosition, "data-stn-page-scaffold": "dashboard-empty" }) : isBoth ? /* @__PURE__ */ jsxs53(StnDashboard, { widgetPosition: "both", children: [
9118
- /* @__PURE__ */ jsx75(StnDashboard.Right, { children: leftWidgets }),
9236
+ const rightWidgets = right ?? /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
9237
+ const leftWidgets = left ?? right ?? /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC88C\uCE21 \uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
9238
+ const dashboardGrid = bodyEmpty ? /* @__PURE__ */ jsx76(StnDashboard, { empty: true, widgetPosition, "data-stn-page-scaffold": "dashboard-empty" }) : isBoth ? /* @__PURE__ */ jsxs54(StnDashboard, { widgetPosition: "both", children: [
9239
+ /* @__PURE__ */ jsx76(StnDashboard.Right, { children: leftWidgets }),
9119
9240
  mapColumn,
9120
- /* @__PURE__ */ jsx75(StnDashboard.Right, { children: rightWidgets })
9121
- ] }) : isLeft ? /* @__PURE__ */ jsxs53(StnDashboard, { widgetPosition: "left", children: [
9122
- /* @__PURE__ */ jsx75(StnDashboard.Right, { children: leftWidgets }),
9241
+ /* @__PURE__ */ jsx76(StnDashboard.Right, { children: rightWidgets })
9242
+ ] }) : isLeft ? /* @__PURE__ */ jsxs54(StnDashboard, { widgetPosition: "left", children: [
9243
+ /* @__PURE__ */ jsx76(StnDashboard.Right, { children: leftWidgets }),
9123
9244
  mapColumn
9124
- ] }) : /* @__PURE__ */ jsxs53(StnDashboard, { widgetPosition: isNone ? "none" : "right", children: [
9245
+ ] }) : /* @__PURE__ */ jsxs54(StnDashboard, { widgetPosition: isNone ? "none" : "right", children: [
9125
9246
  mapColumn,
9126
- !isNone ? /* @__PURE__ */ jsx75(StnDashboard.Right, { children: rightWidgets }) : null
9247
+ !isNone ? /* @__PURE__ */ jsx76(StnDashboard.Right, { children: rightWidgets }) : null
9127
9248
  ] });
9128
9249
  const contentNode = children ?? dashboardGrid;
9129
- return /* @__PURE__ */ jsx75(
9250
+ return /* @__PURE__ */ jsx76(
9130
9251
  StnLayerShell,
9131
9252
  {
9132
9253
  gnb,
@@ -9135,7 +9256,7 @@ function DashboardPageScaffold({
9135
9256
  layer0,
9136
9257
  layer2,
9137
9258
  ...shellProps,
9138
- children: /* @__PURE__ */ jsx75(
9259
+ children: /* @__PURE__ */ jsx76(
9139
9260
  StnContainer,
9140
9261
  {
9141
9262
  maxWidth: false,
@@ -9149,16 +9270,16 @@ function DashboardPageScaffold({
9149
9270
  }
9150
9271
 
9151
9272
  // src/patterns/scaffold/AlertCenterPageScaffold.tsx
9152
- import { useMemo as useMemo5, useState as useState19 } from "react";
9273
+ import { useMemo as useMemo5, useState as useState20 } from "react";
9153
9274
  import {
9154
9275
  STN_ALERT_CENTER_DEMO_ALERTS,
9155
9276
  STN_ALERT_CENTER_DEMO_DEPLOY,
9156
9277
  STN_ALERT_CENTER_DEMO_WORK
9157
9278
  } from "@stn-uiux/pub-ui/data/stnAlertCenter";
9158
9279
  import { systemIconSrc } from "@stn-uiux/pub-ui/data/stnSystemIcons";
9159
- import { Fragment as Fragment10, jsx as jsx76, jsxs as jsxs54 } from "react/jsx-runtime";
9280
+ import { Fragment as Fragment10, jsx as jsx77, jsxs as jsxs55 } from "react/jsx-runtime";
9160
9281
  function defaultTopologyHeader(_clock) {
9161
- return /* @__PURE__ */ jsx76(StnHeader, { variant: "widget" });
9282
+ return /* @__PURE__ */ jsx77(StnHeader, { variant: "widget" });
9162
9283
  }
9163
9284
  function AlertCenterPageScaffold({
9164
9285
  gnbAlertPanel,
@@ -9175,9 +9296,9 @@ function AlertCenterPageScaffold({
9175
9296
  defaultGnbOpen = true,
9176
9297
  ...shellProps
9177
9298
  }) {
9178
- const [gnbOpen, setGnbOpen] = useState19(defaultGnbOpen);
9299
+ const [gnbOpen, setGnbOpen] = useState20(defaultGnbOpen);
9179
9300
  const panel = useMemo5(
9180
- () => gnbAlertPanel ?? /* @__PURE__ */ jsx76(
9301
+ () => gnbAlertPanel ?? /* @__PURE__ */ jsx77(
9181
9302
  StnAlertCenterPanel,
9182
9303
  {
9183
9304
  alerts: STN_ALERT_CENTER_DEMO_ALERTS,
@@ -9188,26 +9309,26 @@ function AlertCenterPageScaffold({
9188
9309
  [gnbAlertPanel]
9189
9310
  );
9190
9311
  const sideNav = useMemo5(
9191
- () => gnbProp ?? /* @__PURE__ */ jsxs54(Fragment10, { children: [
9192
- /* @__PURE__ */ jsxs54(
9312
+ () => gnbProp ?? /* @__PURE__ */ jsxs55(Fragment10, { children: [
9313
+ /* @__PURE__ */ jsxs55(
9193
9314
  StnSideNavigation,
9194
9315
  {
9195
9316
  collapsed: !gnbOpen,
9196
9317
  onCollapseChange: (col) => setGnbOpen(!col),
9197
9318
  children: [
9198
- /* @__PURE__ */ jsxs54(StnSideNavigation.Header, { children: [
9199
- /* @__PURE__ */ jsx76(StnSideNavigation.Logo, {}),
9200
- /* @__PURE__ */ jsx76(StnSideNavigation.Toggle, {})
9319
+ /* @__PURE__ */ jsxs55(StnSideNavigation.Header, { children: [
9320
+ /* @__PURE__ */ jsx77(StnSideNavigation.Logo, {}),
9321
+ /* @__PURE__ */ jsx77(StnSideNavigation.Toggle, {})
9201
9322
  ] }),
9202
- /* @__PURE__ */ jsxs54(StnSideNavigation.Menu, { children: [
9203
- /* @__PURE__ */ jsx76(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/layout-grid"), label: "\uBA54\uC778 \uB300\uC2DC\uBCF4\uB4DC", active: true }),
9204
- /* @__PURE__ */ jsx76(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/server_2"), label: "\uC11C\uBC84 \uBAA8\uB2C8\uD130\uB9C1" }),
9205
- /* @__PURE__ */ jsx76(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/activity"), label: "\uB124\uD2B8\uC6CC\uD06C \uBD84\uC11D" })
9323
+ /* @__PURE__ */ jsxs55(StnSideNavigation.Menu, { children: [
9324
+ /* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/layout-grid"), label: "\uBA54\uC778 \uB300\uC2DC\uBCF4\uB4DC", active: true }),
9325
+ /* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/server_2"), label: "\uC11C\uBC84 \uBAA8\uB2C8\uD130\uB9C1" }),
9326
+ /* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/activity"), label: "\uB124\uD2B8\uC6CC\uD06C \uBD84\uC11D" })
9206
9327
  ] }),
9207
- /* @__PURE__ */ jsx76(StnSideNavigation.Spacer, {}),
9208
- /* @__PURE__ */ jsxs54(StnSideNavigation.Footer, { curved: true, children: [
9209
- /* @__PURE__ */ jsx76(StnSideNavigation.Watermark, {}),
9210
- /* @__PURE__ */ jsx76(
9328
+ /* @__PURE__ */ jsx77(StnSideNavigation.Spacer, {}),
9329
+ /* @__PURE__ */ jsxs55(StnSideNavigation.Footer, { curved: true, children: [
9330
+ /* @__PURE__ */ jsx77(StnSideNavigation.Watermark, {}),
9331
+ /* @__PURE__ */ jsx77(
9211
9332
  StnSideNavigation.Item,
9212
9333
  {
9213
9334
  iconSrc: systemIconSrc("line/bell"),
@@ -9216,7 +9337,7 @@ function AlertCenterPageScaffold({
9216
9337
  onClick: void 0
9217
9338
  }
9218
9339
  ),
9219
- /* @__PURE__ */ jsx76(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/settings"), label: "\uC124\uC815" })
9340
+ /* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/settings"), label: "\uC124\uC815" })
9220
9341
  ] })
9221
9342
  ]
9222
9343
  }
@@ -9225,8 +9346,8 @@ function AlertCenterPageScaffold({
9225
9346
  ] }),
9226
9347
  [gnbProp, gnbOpen, panel]
9227
9348
  );
9228
- const faultSlot = faultPanel ?? (showFaultPanelPlaceholder ? /* @__PURE__ */ jsx76("div", { className: "wrap_real_time stn-page-scaffold__fault-ph", children: /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "\uC2E4\uC2DC\uAC04 \uC7A5\uC560 \uD604\uD669", hint: "StnWidget shell=fault-panel \xB7 \uC120\uD0DD" }) }) : null);
9229
- return /* @__PURE__ */ jsx76(
9349
+ const faultSlot = faultPanel ?? (showFaultPanelPlaceholder ? /* @__PURE__ */ jsx77("div", { className: "wrap_real_time stn-page-scaffold__fault-ph", children: /* @__PURE__ */ jsx77(StnPageScaffold.Region, { label: "\uC2E4\uC2DC\uAC04 \uC7A5\uC560 \uD604\uD669", hint: "StnWidget shell=fault-panel \xB7 \uC120\uD0DD" }) }) : null);
9350
+ return /* @__PURE__ */ jsx77(
9230
9351
  DashboardPageScaffold,
9231
9352
  {
9232
9353
  gnb: sideNav,
@@ -9234,7 +9355,7 @@ function AlertCenterPageScaffold({
9234
9355
  mapMessage,
9235
9356
  mapNote,
9236
9357
  faultPanel: faultSlot,
9237
- right: right ?? /* @__PURE__ */ jsx76(AlertCenterDashboard, {}),
9358
+ right: right ?? /* @__PURE__ */ jsx77(AlertCenterDashboard, {}),
9238
9359
  wrapId,
9239
9360
  wrapClassName: "stn-page--map-bg",
9240
9361
  ...shellProps
@@ -9243,8 +9364,8 @@ function AlertCenterPageScaffold({
9243
9364
  }
9244
9365
 
9245
9366
  // src/patterns/scaffold/LoginPageScaffold.tsx
9246
- import { useState as useState20 } from "react";
9247
- import { jsx as jsx77, jsxs as jsxs55 } from "react/jsx-runtime";
9367
+ import { useState as useState21 } from "react";
9368
+ import { jsx as jsx78, jsxs as jsxs56 } from "react/jsx-runtime";
9248
9369
  var LOGIN_TABS = [
9249
9370
  { value: "normal", label: "\uC77C\uBC18 \uB85C\uADF8\uC778" },
9250
9371
  { value: "social", label: "\uC18C\uC15C \uB85C\uADF8\uC778" }
@@ -9255,15 +9376,15 @@ function DefaultLoginForm({
9255
9376
  signUpHref = "#",
9256
9377
  recoverHref = "#"
9257
9378
  }) {
9258
- const [mode, setMode] = useState20("normal");
9259
- const [userId, setUserId] = useState20("");
9260
- const [password, setPassword] = useState20("");
9379
+ const [mode, setMode] = useState21("normal");
9380
+ const [userId, setUserId] = useState21("");
9381
+ const [password, setPassword] = useState21("");
9261
9382
  function handleSubmit(e) {
9262
9383
  e.preventDefault();
9263
9384
  onLogin?.(userId, password);
9264
9385
  }
9265
- return /* @__PURE__ */ jsxs55(StnLoginFormStack, { onSubmit: handleSubmit, children: [
9266
- /* @__PURE__ */ jsx77(
9386
+ return /* @__PURE__ */ jsxs56(StnLoginFormStack, { onSubmit: handleSubmit, children: [
9387
+ /* @__PURE__ */ jsx78(
9267
9388
  StnSegmented,
9268
9389
  {
9269
9390
  "aria-label": "\uB85C\uADF8\uC778 \uBC29\uC2DD",
@@ -9272,8 +9393,8 @@ function DefaultLoginForm({
9272
9393
  options: LOGIN_TABS
9273
9394
  }
9274
9395
  ),
9275
- mode === "normal" ? /* @__PURE__ */ jsxs55(StnLoginFormFields, { children: [
9276
- /* @__PURE__ */ jsx77(
9396
+ mode === "normal" ? /* @__PURE__ */ jsxs56(StnLoginFormFields, { children: [
9397
+ /* @__PURE__ */ jsx78(
9277
9398
  StnLoginTextField,
9278
9399
  {
9279
9400
  icon: "line/user",
@@ -9285,7 +9406,7 @@ function DefaultLoginForm({
9285
9406
  "aria-label": "\uC544\uC774\uB514"
9286
9407
  }
9287
9408
  ),
9288
- /* @__PURE__ */ jsx77(
9409
+ /* @__PURE__ */ jsx78(
9289
9410
  StnLoginTextField,
9290
9411
  {
9291
9412
  icon: "line/lock",
@@ -9298,11 +9419,11 @@ function DefaultLoginForm({
9298
9419
  "aria-label": "\uBE44\uBC00\uBC88\uD638"
9299
9420
  }
9300
9421
  )
9301
- ] }) : socialContent ?? /* @__PURE__ */ jsx77(StnLoginPlaceholder, {}),
9302
- /* @__PURE__ */ jsx77(StnButton, { type: "submit", size: "xl", fullWidth: true, children: "\uB85C\uADF8\uC778" }),
9303
- /* @__PURE__ */ jsxs55(StnLoginFormLinks, { children: [
9304
- /* @__PURE__ */ jsx77("a", { href: signUpHref, children: "\uD68C\uC6D0\uAC00\uC785" }),
9305
- /* @__PURE__ */ jsx77("a", { href: recoverHref, children: "\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30" })
9422
+ ] }) : socialContent ?? /* @__PURE__ */ jsx78(StnLoginPlaceholder, {}),
9423
+ /* @__PURE__ */ jsx78(StnButton, { type: "submit", size: "xl", fullWidth: true, children: "\uB85C\uADF8\uC778" }),
9424
+ /* @__PURE__ */ jsxs56(StnLoginFormLinks, { children: [
9425
+ /* @__PURE__ */ jsx78("a", { href: signUpHref, children: "\uD68C\uC6D0\uAC00\uC785" }),
9426
+ /* @__PURE__ */ jsx78("a", { href: recoverHref, children: "\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30" })
9306
9427
  ] })
9307
9428
  ] });
9308
9429
  }
@@ -9316,16 +9437,16 @@ function DefaultLoginCard({
9316
9437
  signUpHref,
9317
9438
  recoverHref
9318
9439
  }) {
9319
- return /* @__PURE__ */ jsx77(
9440
+ return /* @__PURE__ */ jsx78(
9320
9441
  StnLoginCard,
9321
9442
  {
9322
9443
  glow,
9323
9444
  variant,
9324
- brand: /* @__PURE__ */ jsxs55(StnLoginBrandStack, { children: [
9325
- logo ?? /* @__PURE__ */ jsx77(StnLogo, { variant: "vertical", size: "xl" }),
9326
- /* @__PURE__ */ jsx77("p", { className: "stn-login-card__caption", children: productCaption })
9445
+ brand: /* @__PURE__ */ jsxs56(StnLoginBrandStack, { children: [
9446
+ logo ?? /* @__PURE__ */ jsx78(StnLogo, { variant: "vertical", size: "xl" }),
9447
+ /* @__PURE__ */ jsx78("p", { className: "stn-login-card__caption", children: productCaption })
9327
9448
  ] }),
9328
- children: /* @__PURE__ */ jsx77(
9449
+ children: /* @__PURE__ */ jsx78(
9329
9450
  DefaultLoginForm,
9330
9451
  {
9331
9452
  onLogin,
@@ -9351,8 +9472,8 @@ function LoginPageScaffold({
9351
9472
  recoverHref,
9352
9473
  ...shellProps
9353
9474
  }) {
9354
- const resolvedLayer0 = layer0 ?? /* @__PURE__ */ jsx77(StnLayer0Background, { variant: "login" });
9355
- const resolvedCard = children ?? /* @__PURE__ */ jsx77(
9475
+ const resolvedLayer0 = layer0 ?? /* @__PURE__ */ jsx78(StnLayer0Background, { variant: "login" });
9476
+ const resolvedCard = children ?? /* @__PURE__ */ jsx78(
9356
9477
  DefaultLoginCard,
9357
9478
  {
9358
9479
  logo,
@@ -9365,7 +9486,7 @@ function LoginPageScaffold({
9365
9486
  recoverHref
9366
9487
  }
9367
9488
  );
9368
- return /* @__PURE__ */ jsxs55(
9489
+ return /* @__PURE__ */ jsxs56(
9369
9490
  "div",
9370
9491
  {
9371
9492
  className: cn("stn-wrap stn-page--login", wrapClassName),
@@ -9373,7 +9494,7 @@ function LoginPageScaffold({
9373
9494
  ...shellProps,
9374
9495
  children: [
9375
9496
  resolvedLayer0,
9376
- /* @__PURE__ */ jsx77("div", { className: "stn-login", children: resolvedCard })
9497
+ /* @__PURE__ */ jsx78("div", { className: "stn-login", children: resolvedCard })
9377
9498
  ]
9378
9499
  }
9379
9500
  );
@@ -9402,7 +9523,7 @@ import {
9402
9523
 
9403
9524
  // src/patterns/toolbar/StnFloatingToolbar.tsx
9404
9525
  import React3 from "react";
9405
- import { jsx as jsx78, jsxs as jsxs56 } from "react/jsx-runtime";
9526
+ import { jsx as jsx79, jsxs as jsxs57 } from "react/jsx-runtime";
9406
9527
  var DEFAULT_MAP_MODES = [
9407
9528
  { value: "sphere", label: "\uAD6C\uBA74" },
9408
9529
  { value: "plane", label: "\uD3C9\uBA74" },
@@ -9412,7 +9533,7 @@ var StnFloatingToolbar = React3.forwardRef(
9412
9533
  ({ placement = "none", orientation = "horizontal", className, children, ...restProps }, ref) => {
9413
9534
  const placementClass = placement !== "none" ? `stn-floating-toolbar--${placement}` : "";
9414
9535
  const orientationClass = orientation === "vertical" ? "stn-floating-toolbar--vertical" : "";
9415
- return /* @__PURE__ */ jsx78(
9536
+ return /* @__PURE__ */ jsx79(
9416
9537
  "div",
9417
9538
  {
9418
9539
  ref,
@@ -9445,7 +9566,7 @@ var StnMapToolbar = React3.forwardRef(
9445
9566
  children,
9446
9567
  ...restProps
9447
9568
  }, ref) => {
9448
- return /* @__PURE__ */ jsxs56(
9569
+ return /* @__PURE__ */ jsxs57(
9449
9570
  StnFloatingToolbar,
9450
9571
  {
9451
9572
  ref,
@@ -9455,7 +9576,7 @@ var StnMapToolbar = React3.forwardRef(
9455
9576
  "aria-label": "\uC9C0\uB3C4 \uBC0F \uD1A0\uD3F4\uB85C\uC9C0 \uB3C4\uAD6C \uBAA8\uC74C",
9456
9577
  ...restProps,
9457
9578
  children: [
9458
- modeOptions && modeOptions.length > 0 && /* @__PURE__ */ jsx78(
9579
+ modeOptions && modeOptions.length > 0 && /* @__PURE__ */ jsx79(
9459
9580
  StnDropdown,
9460
9581
  {
9461
9582
  size: "md",
@@ -9466,75 +9587,75 @@ var StnMapToolbar = React3.forwardRef(
9466
9587
  "aria-label": "\uD22C\uC601 \uBAA8\uB4DC \uC120\uD0DD"
9467
9588
  }
9468
9589
  ),
9469
- onRestore && /* @__PURE__ */ jsx78(
9590
+ onRestore && /* @__PURE__ */ jsx79(
9470
9591
  StnButton,
9471
9592
  {
9472
9593
  variant: buttonVariant,
9473
9594
  size: "md",
9474
9595
  shape: "square",
9475
- icon: /* @__PURE__ */ jsxs56("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9476
- /* @__PURE__ */ jsx78("path", { d: "M3.06006 13C3.30547 15.1939 4.34865 17.221 5.9912 18.696C7.63374 20.1709 9.76108 20.9907 11.9686 20.9994C14.1762 21.0081 16.3099 20.2052 17.9641 18.7434C19.6183 17.2815 20.6775 15.2627 20.9403 13.0708C21.2031 10.879 20.6511 8.66696 19.3894 6.85551C18.1276 5.04406 16.2441 3.75951 14.0971 3.24618C11.95 2.73284 9.68922 3.02652 7.74457 4.07135C5.79993 5.11619 4.30712 6.83931 3.55006 8.913" }),
9477
- /* @__PURE__ */ jsx78("path", { d: "M3 4.00098V9.00098H8" }),
9478
- /* @__PURE__ */ jsx78("circle", { cx: "12", cy: "12", r: "1", fill: "currentColor" })
9596
+ icon: /* @__PURE__ */ jsxs57("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9597
+ /* @__PURE__ */ jsx79("path", { d: "M3.06006 13C3.30547 15.1939 4.34865 17.221 5.9912 18.696C7.63374 20.1709 9.76108 20.9907 11.9686 20.9994C14.1762 21.0081 16.3099 20.2052 17.9641 18.7434C19.6183 17.2815 20.6775 15.2627 20.9403 13.0708C21.2031 10.879 20.6511 8.66696 19.3894 6.85551C18.1276 5.04406 16.2441 3.75951 14.0971 3.24618C11.95 2.73284 9.68922 3.02652 7.74457 4.07135C5.79993 5.11619 4.30712 6.83931 3.55006 8.913" }),
9598
+ /* @__PURE__ */ jsx79("path", { d: "M3 4.00098V9.00098H8" }),
9599
+ /* @__PURE__ */ jsx79("circle", { cx: "12", cy: "12", r: "1", fill: "currentColor" })
9479
9600
  ] }),
9480
9601
  "aria-label": "\uCD08\uAE30\uD654 (Restore)",
9481
9602
  title: "\uCD08\uAE30\uD654 (Restore)",
9482
9603
  onClick: onRestore
9483
9604
  }
9484
9605
  ),
9485
- onFullscreen && /* @__PURE__ */ jsx78(
9606
+ onFullscreen && /* @__PURE__ */ jsx79(
9486
9607
  StnButton,
9487
9608
  {
9488
9609
  variant: buttonVariant,
9489
9610
  size: "md",
9490
9611
  shape: "square",
9491
- icon: /* @__PURE__ */ jsxs56("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9492
- /* @__PURE__ */ jsx78("path", { d: "M16 4H20V8" }),
9493
- /* @__PURE__ */ jsx78("path", { d: "M14 10L20 4" }),
9494
- /* @__PURE__ */ jsx78("path", { d: "M8 20H4V16" }),
9495
- /* @__PURE__ */ jsx78("path", { d: "M4 20L10 14" })
9612
+ icon: /* @__PURE__ */ jsxs57("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9613
+ /* @__PURE__ */ jsx79("path", { d: "M16 4H20V8" }),
9614
+ /* @__PURE__ */ jsx79("path", { d: "M14 10L20 4" }),
9615
+ /* @__PURE__ */ jsx79("path", { d: "M8 20H4V16" }),
9616
+ /* @__PURE__ */ jsx79("path", { d: "M4 20L10 14" })
9496
9617
  ] }),
9497
9618
  "aria-label": "\uC804\uCCB4\uD654\uBA74",
9498
9619
  title: "\uC804\uCCB4\uD654\uBA74",
9499
9620
  onClick: onFullscreen
9500
9621
  }
9501
9622
  ),
9502
- onZoomIn && /* @__PURE__ */ jsx78(
9623
+ onZoomIn && /* @__PURE__ */ jsx79(
9503
9624
  StnButton,
9504
9625
  {
9505
9626
  variant: buttonVariant,
9506
9627
  size: "md",
9507
9628
  shape: "square",
9508
- icon: /* @__PURE__ */ jsxs56("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9509
- /* @__PURE__ */ jsx78("path", { d: "M12 5V19" }),
9510
- /* @__PURE__ */ jsx78("path", { d: "M5 12H19" })
9629
+ icon: /* @__PURE__ */ jsxs57("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9630
+ /* @__PURE__ */ jsx79("path", { d: "M12 5V19" }),
9631
+ /* @__PURE__ */ jsx79("path", { d: "M5 12H19" })
9511
9632
  ] }),
9512
9633
  "aria-label": "\uD655\uB300",
9513
9634
  title: "\uD655\uB300",
9514
9635
  onClick: onZoomIn
9515
9636
  }
9516
9637
  ),
9517
- onZoomOut && /* @__PURE__ */ jsx78(
9638
+ onZoomOut && /* @__PURE__ */ jsx79(
9518
9639
  StnButton,
9519
9640
  {
9520
9641
  variant: buttonVariant,
9521
9642
  size: "md",
9522
9643
  shape: "square",
9523
- icon: /* @__PURE__ */ jsx78("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx78("path", { d: "M5 12H19" }) }),
9644
+ icon: /* @__PURE__ */ jsx79("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx79("path", { d: "M5 12H19" }) }),
9524
9645
  "aria-label": "\uCD95\uC18C",
9525
9646
  title: "\uCD95\uC18C",
9526
9647
  onClick: onZoomOut
9527
9648
  }
9528
9649
  ),
9529
- onRefresh && /* @__PURE__ */ jsx78(
9650
+ onRefresh && /* @__PURE__ */ jsx79(
9530
9651
  StnButton,
9531
9652
  {
9532
9653
  variant: buttonVariant,
9533
9654
  size: "md",
9534
9655
  shape: "square",
9535
- icon: /* @__PURE__ */ jsxs56("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9536
- /* @__PURE__ */ jsx78("path", { d: "M20 11C19.7554 9.24023 18.9391 7.60967 17.6766 6.35951C16.4142 5.10934 14.7758 4.30893 13.0137 4.08156C11.2516 3.8542 9.46362 4.21249 7.9252 5.10126C6.38678 5.99002 5.18325 7.35995 4.5 9.00001M4 5.00001V9.00001H8" }),
9537
- /* @__PURE__ */ jsx78("path", { d: "M4 13C4.24456 14.7598 5.06093 16.3903 6.32336 17.6405C7.58579 18.8907 9.22424 19.6911 10.9863 19.9184C12.7484 20.1458 14.5364 19.7875 16.0748 18.8988C17.6132 18.01 18.8168 16.6401 19.5 15M20 19V15H16" })
9656
+ icon: /* @__PURE__ */ jsxs57("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
9657
+ /* @__PURE__ */ jsx79("path", { d: "M20 11C19.7554 9.24023 18.9391 7.60967 17.6766 6.35951C16.4142 5.10934 14.7758 4.30893 13.0137 4.08156C11.2516 3.8542 9.46362 4.21249 7.9252 5.10126C6.38678 5.99002 5.18325 7.35995 4.5 9.00001M4 5.00001V9.00001H8" }),
9658
+ /* @__PURE__ */ jsx79("path", { d: "M4 13C4.24456 14.7598 5.06093 16.3903 6.32336 17.6405C7.58579 18.8907 9.22424 19.6911 10.9863 19.9184C12.7484 20.1458 14.5364 19.7875 16.0748 18.8988C17.6132 18.01 18.8168 16.6401 19.5 15M20 19V15H16" })
9538
9659
  ] }),
9539
9660
  "aria-label": "\uC0C8\uB85C\uACE0\uCE68",
9540
9661
  title: "\uC0C8\uB85C\uACE0\uCE68",
@@ -9788,7 +9909,6 @@ export {
9788
9909
  StnStatusDotGroup,
9789
9910
  StnStatusFlow,
9790
9911
  StnStatusSeverity,
9791
- StnStatusSeverityFilter,
9792
9912
  StnStatusSwitch,
9793
9913
  StnSwitch,
9794
9914
  StnTable,
@@ -9801,6 +9921,7 @@ export {
9801
9921
  StnTableTdCheck,
9802
9922
  StnTableTh,
9803
9923
  StnTableThCheck,
9924
+ StnTextArea,
9804
9925
  StnTextField,
9805
9926
  StnToastCloseButton,
9806
9927
  StnToastIcon,