@stn-uiux/pub-ui-react 0.1.58 → 0.1.59
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/README.md +2 -2
- package/dist/index.d.ts +357 -119
- package/dist/index.js +1328 -928
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -4,27 +4,56 @@ function cn(...parts) {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
// src/paginationRange.ts
|
|
7
|
-
function buildPaginationItems(page,
|
|
8
|
-
if (
|
|
9
|
-
if (
|
|
10
|
-
const current = Math.min(Math.max(1, page),
|
|
11
|
-
const range = (start, end) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
function buildPaginationItems(page, count, siblingCount = 1, boundaryCount = 1) {
|
|
8
|
+
if (count < 1) return [];
|
|
9
|
+
if (count === 1) return [1];
|
|
10
|
+
const current = Math.min(Math.max(1, page), count);
|
|
11
|
+
const range = (start, end) => {
|
|
12
|
+
const length = end - start + 1;
|
|
13
|
+
return Array.from({ length: Math.max(0, length) }, (_, i) => start + i);
|
|
14
|
+
};
|
|
15
|
+
const startPages = range(1, Math.min(boundaryCount, count));
|
|
16
|
+
const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);
|
|
17
|
+
const siblingsStart = Math.max(
|
|
18
|
+
Math.min(
|
|
19
|
+
current - siblingCount,
|
|
20
|
+
count - boundaryCount - siblingCount * 2 - 1
|
|
21
|
+
),
|
|
22
|
+
boundaryCount + 2
|
|
23
|
+
);
|
|
24
|
+
const siblingsEnd = Math.min(
|
|
25
|
+
Math.max(
|
|
26
|
+
current + siblingCount,
|
|
27
|
+
boundaryCount + siblingCount * 2 + 2
|
|
28
|
+
),
|
|
29
|
+
endPages.length > 0 ? endPages[0] - 2 : count - 1
|
|
30
|
+
);
|
|
31
|
+
const itemList = [...startPages];
|
|
32
|
+
if (siblingsStart > boundaryCount + 2) {
|
|
33
|
+
itemList.push("ellipsis");
|
|
34
|
+
} else if (boundaryCount + 1 < count - boundaryCount) {
|
|
35
|
+
itemList.push(boundaryCount + 1);
|
|
17
36
|
}
|
|
18
|
-
|
|
19
|
-
|
|
37
|
+
itemList.push(...range(siblingsStart, siblingsEnd));
|
|
38
|
+
if (siblingsEnd < count - boundaryCount - 1) {
|
|
39
|
+
itemList.push("ellipsis");
|
|
40
|
+
} else if (count - boundaryCount > boundaryCount) {
|
|
41
|
+
itemList.push(count - boundaryCount);
|
|
20
42
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
43
|
+
itemList.push(...endPages);
|
|
44
|
+
const result = [];
|
|
45
|
+
for (const item of itemList) {
|
|
46
|
+
if (item === "ellipsis") {
|
|
47
|
+
if (result.length > 0 && result[result.length - 1] !== "ellipsis") {
|
|
48
|
+
result.push("ellipsis");
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
if (!result.includes(item)) {
|
|
52
|
+
result.push(item);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
28
57
|
}
|
|
29
58
|
|
|
30
59
|
// src/StnProvider.tsx
|
|
@@ -87,6 +116,64 @@ function StnProvider({
|
|
|
87
116
|
// src/components/StnButton.tsx
|
|
88
117
|
import { cloneElement, forwardRef, isValidElement } from "react";
|
|
89
118
|
|
|
119
|
+
// src/inputWidth.ts
|
|
120
|
+
import {
|
|
121
|
+
resolveStnInputWidth,
|
|
122
|
+
toStnInputWidthPreset,
|
|
123
|
+
isStnInputFullWidth
|
|
124
|
+
} from "@stn-uiux/pub-ui/data/stnInputWidth";
|
|
125
|
+
function resolveInputWidthProps(_prefix, fullWidth, width) {
|
|
126
|
+
const resolved = resolveStnInputWidth(fullWidth, width);
|
|
127
|
+
if (resolved.kind === "full") {
|
|
128
|
+
return {
|
|
129
|
+
className: "full",
|
|
130
|
+
style: void 0
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
if (resolved.kind === "preset" && resolved.preset != null) {
|
|
134
|
+
return {
|
|
135
|
+
className: `w${resolved.preset}`,
|
|
136
|
+
style: void 0
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
if (resolved.kind === "custom" && resolved.styleWidth != null) {
|
|
140
|
+
return {
|
|
141
|
+
className: "",
|
|
142
|
+
style: { width: resolved.styleWidth }
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return { className: "", style: void 0 };
|
|
146
|
+
}
|
|
147
|
+
function resolveButtonWidthProps(fullWidth, width, defaultPreset) {
|
|
148
|
+
if (isStnInputFullWidth(fullWidth, width)) {
|
|
149
|
+
return {
|
|
150
|
+
className: "full",
|
|
151
|
+
style: void 0
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const target = width !== void 0 && width !== "" ? width : defaultPreset;
|
|
155
|
+
if (target === void 0 || target === "") {
|
|
156
|
+
return { className: "", style: void 0 };
|
|
157
|
+
}
|
|
158
|
+
const preset = toStnInputWidthPreset(target);
|
|
159
|
+
if (preset != null) {
|
|
160
|
+
return {
|
|
161
|
+
className: `w${preset}`,
|
|
162
|
+
style: void 0
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
if (typeof target === "number") {
|
|
166
|
+
return {
|
|
167
|
+
className: "",
|
|
168
|
+
style: { minWidth: `${target}px` }
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
className: "",
|
|
173
|
+
style: { minWidth: String(target) }
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
|
|
90
177
|
// src/components/StnIcon.tsx
|
|
91
178
|
import { resolveSystemIconSrcFromName } from "@stn-uiux/pub-ui/data/stnSystemIcons";
|
|
92
179
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
@@ -181,6 +268,7 @@ var StnButton = forwardRef(function StnButton2({
|
|
|
181
268
|
shape,
|
|
182
269
|
iconPosition,
|
|
183
270
|
icon,
|
|
271
|
+
width,
|
|
184
272
|
fullWidth,
|
|
185
273
|
className,
|
|
186
274
|
type = "button",
|
|
@@ -195,6 +283,7 @@ var StnButton = forwardRef(function StnButton2({
|
|
|
195
283
|
const resolvedIcon = resolveIconNode(icon, glyphPx);
|
|
196
284
|
const isIconOnly = !labeled && resolvedIcon != null;
|
|
197
285
|
const position = resolveIconPosition(iconPosition, icon);
|
|
286
|
+
const widthProps = resolveButtonWidthProps(fullWidth, width);
|
|
198
287
|
const showLeading = (isIconOnly || position === "left") && resolvedIcon != null;
|
|
199
288
|
const showTrailingCustom = !isIconOnly && position === "right" && resolvedIcon != null;
|
|
200
289
|
return /* @__PURE__ */ jsxs(
|
|
@@ -210,9 +299,10 @@ var StnButton = forwardRef(function StnButton2({
|
|
|
210
299
|
resolvedColor !== "primary" && resolvedColor,
|
|
211
300
|
shape === "square" && "square",
|
|
212
301
|
isIconOnly && "icon",
|
|
213
|
-
|
|
302
|
+
!isIconOnly && widthProps.className,
|
|
214
303
|
className
|
|
215
304
|
),
|
|
305
|
+
style: !isIconOnly ? widthProps.style : void 0,
|
|
216
306
|
...rest,
|
|
217
307
|
children: [
|
|
218
308
|
showLeading ? /* @__PURE__ */ jsx3("span", { className: "stn-btn__leading", children: resolvedIcon }) : null,
|
|
@@ -552,8 +642,25 @@ import {
|
|
|
552
642
|
} from "@stn-uiux/pub-ui/data/stnPagination";
|
|
553
643
|
|
|
554
644
|
// src/components/StnPagination.tsx
|
|
555
|
-
import { forwardRef as forwardRef4 } from "react";
|
|
645
|
+
import { forwardRef as forwardRef4, useState as useState3 } from "react";
|
|
556
646
|
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
647
|
+
var FirstIcon = () => /* @__PURE__ */ jsx7(
|
|
648
|
+
"svg",
|
|
649
|
+
{
|
|
650
|
+
className: "stn-pagination__icon",
|
|
651
|
+
viewBox: "0 0 10 11",
|
|
652
|
+
width: "10",
|
|
653
|
+
height: "11",
|
|
654
|
+
"aria-hidden": "true",
|
|
655
|
+
children: /* @__PURE__ */ jsx7(
|
|
656
|
+
"path",
|
|
657
|
+
{
|
|
658
|
+
fill: "currentColor",
|
|
659
|
+
d: "M1.5.3a.75.75 0 0 1 .75.75v8.9a.75.75 0 0 1-1.5 0V1.05A.75.75 0 0 1 1.5.3Zm7.7 0a.75.75 0 0 1 0 1.06L5.56 5.5l3.64 4.14a.75.75 0 1 1-1.12 1L3.95 6.06a.75.75 0 0 1 0-1.12L8.08.3a.75.75 0 0 1 1.12 0Z"
|
|
660
|
+
}
|
|
661
|
+
)
|
|
662
|
+
}
|
|
663
|
+
);
|
|
557
664
|
var PrevIcon = () => /* @__PURE__ */ jsx7(
|
|
558
665
|
"svg",
|
|
559
666
|
{
|
|
@@ -588,55 +695,136 @@ var NextIcon = () => /* @__PURE__ */ jsx7(
|
|
|
588
695
|
)
|
|
589
696
|
}
|
|
590
697
|
);
|
|
698
|
+
var LastIcon = () => /* @__PURE__ */ jsx7(
|
|
699
|
+
"svg",
|
|
700
|
+
{
|
|
701
|
+
className: "stn-pagination__icon",
|
|
702
|
+
viewBox: "0 0 10 11",
|
|
703
|
+
width: "10",
|
|
704
|
+
height: "11",
|
|
705
|
+
"aria-hidden": "true",
|
|
706
|
+
children: /* @__PURE__ */ jsx7(
|
|
707
|
+
"path",
|
|
708
|
+
{
|
|
709
|
+
fill: "currentColor",
|
|
710
|
+
d: "M8.5.3a.75.75 0 0 1 .75.75v8.9a.75.75 0 0 1-1.5 0V1.05A.75.75 0 0 1 8.5.3ZM.8.3a.75.75 0 0 1 1.12 0L6.05 4.94a.75.75 0 0 1 0 1.12L1.92 10.64a.75.75 0 1 1-1.12-1L4.44 5.5.8 1.36A.75.75 0 0 1 .8.3Z"
|
|
711
|
+
}
|
|
712
|
+
)
|
|
713
|
+
}
|
|
714
|
+
);
|
|
591
715
|
var StnPagination = forwardRef4(function StnPagination2({
|
|
592
|
-
page,
|
|
716
|
+
page: controlledPage,
|
|
717
|
+
defaultPage = 1,
|
|
593
718
|
count,
|
|
594
719
|
onPageChange,
|
|
595
|
-
|
|
720
|
+
onChange,
|
|
721
|
+
compact = false,
|
|
722
|
+
siblingCount,
|
|
723
|
+
boundaryCount = 1,
|
|
724
|
+
showFirstButton = false,
|
|
725
|
+
showLastButton = false,
|
|
726
|
+
hidePrevButton = false,
|
|
727
|
+
hideNextButton = false,
|
|
728
|
+
size = "md",
|
|
729
|
+
variant = "text",
|
|
730
|
+
color = "standard",
|
|
731
|
+
disabled = false,
|
|
596
732
|
className,
|
|
597
733
|
"aria-label": ariaLabel = "pagination navigation",
|
|
598
734
|
...rest
|
|
599
735
|
}, ref) {
|
|
600
|
-
const
|
|
601
|
-
const
|
|
602
|
-
const
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
736
|
+
const resolvedSiblingCount = siblingCount !== void 0 ? siblingCount : compact ? 0 : 1;
|
|
737
|
+
const [internalPage, setInternalPage] = useState3(defaultPage);
|
|
738
|
+
const isControlled = controlledPage !== void 0;
|
|
739
|
+
const currentPage = Math.min(Math.max(1, isControlled ? controlledPage : internalPage), Math.max(1, count));
|
|
740
|
+
const handlePageSelect = (nextPage) => {
|
|
741
|
+
if (disabled || nextPage === currentPage || nextPage < 1 || nextPage > count) return;
|
|
742
|
+
if (!isControlled) {
|
|
743
|
+
setInternalPage(nextPage);
|
|
744
|
+
}
|
|
745
|
+
onPageChange?.(nextPage);
|
|
746
|
+
onChange?.(null, nextPage);
|
|
747
|
+
};
|
|
748
|
+
const items = buildPaginationItems(currentPage, count, resolvedSiblingCount, boundaryCount);
|
|
749
|
+
const canPrev = !disabled && currentPage > 1;
|
|
750
|
+
const canNext = !disabled && currentPage < count;
|
|
751
|
+
return /* @__PURE__ */ jsxs4(
|
|
752
|
+
"nav",
|
|
753
|
+
{
|
|
754
|
+
ref,
|
|
755
|
+
className: cn(
|
|
756
|
+
"stn-pagination",
|
|
757
|
+
`stn-pagination--${size}`,
|
|
758
|
+
variant !== "text" && `stn-pagination--${variant}`,
|
|
759
|
+
color && color !== "standard" && `stn-pagination--${color}`,
|
|
760
|
+
compact && "is-compact",
|
|
761
|
+
disabled && "is-disabled",
|
|
762
|
+
className
|
|
763
|
+
),
|
|
764
|
+
"aria-label": ariaLabel,
|
|
765
|
+
...rest,
|
|
766
|
+
children: [
|
|
767
|
+
showFirstButton && /* @__PURE__ */ jsx7(
|
|
768
|
+
"button",
|
|
769
|
+
{
|
|
770
|
+
type: "button",
|
|
771
|
+
className: "stn-pagination__first",
|
|
772
|
+
disabled: !canPrev,
|
|
773
|
+
"aria-label": "\uCCAB \uD398\uC774\uC9C0",
|
|
774
|
+
onClick: () => handlePageSelect(1),
|
|
775
|
+
children: /* @__PURE__ */ jsx7(FirstIcon, {})
|
|
776
|
+
}
|
|
777
|
+
),
|
|
778
|
+
!hidePrevButton && /* @__PURE__ */ jsx7(
|
|
779
|
+
"button",
|
|
780
|
+
{
|
|
781
|
+
type: "button",
|
|
782
|
+
className: "stn-pagination__prev",
|
|
783
|
+
disabled: !canPrev,
|
|
784
|
+
"aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
|
|
785
|
+
onClick: () => handlePageSelect(currentPage - 1),
|
|
786
|
+
children: /* @__PURE__ */ jsx7(PrevIcon, {})
|
|
787
|
+
}
|
|
788
|
+
),
|
|
789
|
+
/* @__PURE__ */ jsx7("ul", { className: "stn-pagination__list", children: items.map(
|
|
790
|
+
(item, index) => item === "ellipsis" ? /* @__PURE__ */ jsx7("li", { children: /* @__PURE__ */ jsx7("span", { className: "stn-pagination__ellipsis", "aria-hidden": "true", children: "\u2026" }) }, `ellipsis-${index}`) : /* @__PURE__ */ jsx7("li", { children: /* @__PURE__ */ jsx7(
|
|
791
|
+
"button",
|
|
792
|
+
{
|
|
793
|
+
type: "button",
|
|
794
|
+
className: cn("stn-pagination__page", item === currentPage && "is-active"),
|
|
795
|
+
disabled,
|
|
796
|
+
"aria-label": `${item} \uD398\uC774\uC9C0`,
|
|
797
|
+
"aria-current": item === currentPage ? "page" : void 0,
|
|
798
|
+
onClick: () => handlePageSelect(item),
|
|
799
|
+
children: item
|
|
800
|
+
}
|
|
801
|
+
) }, item)
|
|
802
|
+
) }),
|
|
803
|
+
!hideNextButton && /* @__PURE__ */ jsx7(
|
|
804
|
+
"button",
|
|
805
|
+
{
|
|
806
|
+
type: "button",
|
|
807
|
+
className: "stn-pagination__next",
|
|
808
|
+
disabled: !canNext,
|
|
809
|
+
"aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
|
|
810
|
+
onClick: () => handlePageSelect(currentPage + 1),
|
|
811
|
+
children: /* @__PURE__ */ jsx7(NextIcon, {})
|
|
812
|
+
}
|
|
813
|
+
),
|
|
814
|
+
showLastButton && /* @__PURE__ */ jsx7(
|
|
815
|
+
"button",
|
|
816
|
+
{
|
|
817
|
+
type: "button",
|
|
818
|
+
className: "stn-pagination__last",
|
|
819
|
+
disabled: !canNext,
|
|
820
|
+
"aria-label": "\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0",
|
|
821
|
+
onClick: () => handlePageSelect(count),
|
|
822
|
+
children: /* @__PURE__ */ jsx7(LastIcon, {})
|
|
823
|
+
}
|
|
824
|
+
)
|
|
825
|
+
]
|
|
826
|
+
}
|
|
827
|
+
);
|
|
640
828
|
});
|
|
641
829
|
|
|
642
830
|
// src/components/StnModal.tsx
|
|
@@ -1173,12 +1361,12 @@ var StnCircularProgress = forwardRef8(
|
|
|
1173
1361
|
// src/components/StnTable.tsx
|
|
1174
1362
|
import {
|
|
1175
1363
|
Children,
|
|
1176
|
-
forwardRef as
|
|
1364
|
+
forwardRef as forwardRef11,
|
|
1177
1365
|
createContext as createContext2,
|
|
1178
1366
|
useContext as useContext2,
|
|
1179
1367
|
useEffect as useEffect5,
|
|
1180
1368
|
useRef as useRef3,
|
|
1181
|
-
useState as
|
|
1369
|
+
useState as useState5
|
|
1182
1370
|
} from "react";
|
|
1183
1371
|
|
|
1184
1372
|
// src/components/StnCheckbox.tsx
|
|
@@ -1281,8 +1469,331 @@ var StnCheckbox = forwardRef9(function StnCheckbox2({
|
|
|
1281
1469
|
);
|
|
1282
1470
|
});
|
|
1283
1471
|
|
|
1284
|
-
// src/components/
|
|
1472
|
+
// src/components/StnStatus.tsx
|
|
1473
|
+
import {
|
|
1474
|
+
forwardRef as forwardRef10,
|
|
1475
|
+
useState as useState4
|
|
1476
|
+
} from "react";
|
|
1477
|
+
|
|
1478
|
+
// src/components/StnSeverityBadge.tsx
|
|
1479
|
+
import React from "react";
|
|
1285
1480
|
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1481
|
+
var SEVERITY_DEFAULT_LABELS = {
|
|
1482
|
+
critical: "Critical",
|
|
1483
|
+
major: "Major",
|
|
1484
|
+
minor: "Minor",
|
|
1485
|
+
warning: "Warning"
|
|
1486
|
+
};
|
|
1487
|
+
var SEVERITY_ICONS = {
|
|
1488
|
+
critical: "fill/alert4",
|
|
1489
|
+
major: "fill/alert3",
|
|
1490
|
+
minor: "fill/alert2",
|
|
1491
|
+
warning: "fill/alert1"
|
|
1492
|
+
};
|
|
1493
|
+
var StnSeverityBadge = React.forwardRef(
|
|
1494
|
+
({
|
|
1495
|
+
severity,
|
|
1496
|
+
variant = "contained",
|
|
1497
|
+
size = "md",
|
|
1498
|
+
round = false,
|
|
1499
|
+
showIcon = true,
|
|
1500
|
+
iconOnly = false,
|
|
1501
|
+
glow = false,
|
|
1502
|
+
blur = false,
|
|
1503
|
+
label,
|
|
1504
|
+
active = false,
|
|
1505
|
+
onClick,
|
|
1506
|
+
className = "",
|
|
1507
|
+
children,
|
|
1508
|
+
...restProps
|
|
1509
|
+
}, ref) => {
|
|
1510
|
+
const isFilter = variant === "filter";
|
|
1511
|
+
const isInteractive = isFilter || Boolean(onClick);
|
|
1512
|
+
const Component = isInteractive ? "button" : "span";
|
|
1513
|
+
const isIconOnly = Boolean(iconOnly);
|
|
1514
|
+
const hasGlow = Boolean(glow || blur || variant === "glow");
|
|
1515
|
+
const resolvedVariant = variant === "glow" ? "contained" : variant || "contained";
|
|
1516
|
+
const classNames = [
|
|
1517
|
+
"stn-status-severity",
|
|
1518
|
+
isFilter ? "filter" : resolvedVariant,
|
|
1519
|
+
size,
|
|
1520
|
+
round ? "round" : "",
|
|
1521
|
+
isIconOnly ? "icon-only" : "",
|
|
1522
|
+
hasGlow ? "glow" : "",
|
|
1523
|
+
severity,
|
|
1524
|
+
active ? "is-active" : "",
|
|
1525
|
+
className
|
|
1526
|
+
].filter(Boolean).join(" ");
|
|
1527
|
+
const defaultLabel = SEVERITY_DEFAULT_LABELS[severity];
|
|
1528
|
+
const displayLabel = children ?? label ?? defaultLabel;
|
|
1529
|
+
const iconName = SEVERITY_ICONS[severity];
|
|
1530
|
+
const elementProps = {
|
|
1531
|
+
ref,
|
|
1532
|
+
className: classNames,
|
|
1533
|
+
onClick,
|
|
1534
|
+
title: restProps.title ?? (isIconOnly ? defaultLabel : void 0),
|
|
1535
|
+
"aria-label": restProps["aria-label"] ?? (isIconOnly ? defaultLabel : void 0),
|
|
1536
|
+
...restProps
|
|
1537
|
+
};
|
|
1538
|
+
if (Component === "button") {
|
|
1539
|
+
elementProps.type = restProps.type || "button";
|
|
1540
|
+
if (isFilter) {
|
|
1541
|
+
elementProps["aria-pressed"] = active;
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
const iconSize = isFilter ? 16 : size === "sm" ? 12 : size === "lg" ? 16 : 14;
|
|
1545
|
+
return /* @__PURE__ */ jsxs9(Component, { ...elementProps, children: [
|
|
1546
|
+
(showIcon || isIconOnly) && /* @__PURE__ */ jsx15(
|
|
1547
|
+
StnIcon,
|
|
1548
|
+
{
|
|
1549
|
+
name: iconName,
|
|
1550
|
+
size: iconSize,
|
|
1551
|
+
className: "stn-status-severity__icon",
|
|
1552
|
+
color: "none",
|
|
1553
|
+
"aria-hidden": "true"
|
|
1554
|
+
}
|
|
1555
|
+
),
|
|
1556
|
+
!isIconOnly && /* @__PURE__ */ jsx15("span", { className: "stn-status-severity__label", children: displayLabel })
|
|
1557
|
+
] });
|
|
1558
|
+
}
|
|
1559
|
+
);
|
|
1560
|
+
StnSeverityBadge.displayName = "StnSeverityBadge";
|
|
1561
|
+
var ALL_SEVERITIES = ["critical", "major", "minor", "warning"];
|
|
1562
|
+
var StnSeverityFilter = ({
|
|
1563
|
+
value = ALL_SEVERITIES,
|
|
1564
|
+
onChange,
|
|
1565
|
+
disabledSeverities = [],
|
|
1566
|
+
showIcon = true,
|
|
1567
|
+
className = ""
|
|
1568
|
+
}) => {
|
|
1569
|
+
const handleToggle = (sev) => {
|
|
1570
|
+
if (!onChange) return;
|
|
1571
|
+
const exists = value.includes(sev);
|
|
1572
|
+
const next = exists ? value.filter((item) => item !== sev) : [...value, sev];
|
|
1573
|
+
onChange(next);
|
|
1574
|
+
};
|
|
1575
|
+
return /* @__PURE__ */ jsx15("div", { className: `stn-status-severity-filter-group ${className}`.trim(), role: "group", "aria-label": "\uC2EC\uAC01\uB3C4 \uD544\uD130", children: ALL_SEVERITIES.map((sev) => {
|
|
1576
|
+
const isActive = value.includes(sev);
|
|
1577
|
+
const isDisabled = disabledSeverities.includes(sev);
|
|
1578
|
+
return /* @__PURE__ */ jsx15(
|
|
1579
|
+
StnSeverityBadge,
|
|
1580
|
+
{
|
|
1581
|
+
severity: sev,
|
|
1582
|
+
variant: "filter",
|
|
1583
|
+
showIcon,
|
|
1584
|
+
active: isActive,
|
|
1585
|
+
disabled: isDisabled,
|
|
1586
|
+
onClick: () => !isDisabled && handleToggle(sev)
|
|
1587
|
+
},
|
|
1588
|
+
sev
|
|
1589
|
+
);
|
|
1590
|
+
}) });
|
|
1591
|
+
};
|
|
1592
|
+
StnSeverityFilter.displayName = "StnSeverityFilter";
|
|
1593
|
+
|
|
1594
|
+
// src/components/StnStatus.tsx
|
|
1595
|
+
import { Fragment, jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1596
|
+
var StnStatusDot = forwardRef10(function StnStatusDot2({
|
|
1597
|
+
state = "up",
|
|
1598
|
+
label,
|
|
1599
|
+
count,
|
|
1600
|
+
pulse = false,
|
|
1601
|
+
bordered = false,
|
|
1602
|
+
dotPosition = "left",
|
|
1603
|
+
size = "md",
|
|
1604
|
+
gap,
|
|
1605
|
+
className,
|
|
1606
|
+
...rest
|
|
1607
|
+
}, ref) {
|
|
1608
|
+
const displayLabel = label ?? (state === "up" ? "UP" : state === "down" ? "DOWN" : state.toUpperCase());
|
|
1609
|
+
const pointEl = dotPosition !== "none" ? /* @__PURE__ */ jsx16("span", { className: "stn-status-dot__point", "aria-hidden": "true" }) : null;
|
|
1610
|
+
return /* @__PURE__ */ jsx16(
|
|
1611
|
+
"div",
|
|
1612
|
+
{
|
|
1613
|
+
ref,
|
|
1614
|
+
className: cn(
|
|
1615
|
+
"stn-status-dot",
|
|
1616
|
+
state,
|
|
1617
|
+
size,
|
|
1618
|
+
bordered && "bordered",
|
|
1619
|
+
pulse && "pulse",
|
|
1620
|
+
dotPosition !== "left" && `dot-${dotPosition}`,
|
|
1621
|
+
gap && `gap-${gap}`,
|
|
1622
|
+
className
|
|
1623
|
+
),
|
|
1624
|
+
"data-stn-status": "dot",
|
|
1625
|
+
...rest,
|
|
1626
|
+
children: dotPosition === "right" ? /* @__PURE__ */ jsxs10(Fragment, { children: [
|
|
1627
|
+
displayLabel ? /* @__PURE__ */ jsx16("span", { className: "stn-status-dot__label", children: displayLabel }) : null,
|
|
1628
|
+
count !== void 0 && count !== null ? /* @__PURE__ */ jsx16("span", { className: "stn-status-dot__count", children: count }) : null,
|
|
1629
|
+
pointEl
|
|
1630
|
+
] }) : /* @__PURE__ */ jsxs10(Fragment, { children: [
|
|
1631
|
+
pointEl,
|
|
1632
|
+
displayLabel ? /* @__PURE__ */ jsx16("span", { className: "stn-status-dot__label", children: displayLabel }) : null,
|
|
1633
|
+
count !== void 0 && count !== null ? /* @__PURE__ */ jsx16("span", { className: "stn-status-dot__count", children: count }) : null
|
|
1634
|
+
] })
|
|
1635
|
+
}
|
|
1636
|
+
);
|
|
1637
|
+
});
|
|
1638
|
+
var StnStatusDotGroup = forwardRef10(function StnStatusDotGroup2({ items, bordered = true, className, ...rest }, ref) {
|
|
1639
|
+
return /* @__PURE__ */ jsx16(
|
|
1640
|
+
"div",
|
|
1641
|
+
{
|
|
1642
|
+
ref,
|
|
1643
|
+
className: cn(
|
|
1644
|
+
"stn-status-dot-group",
|
|
1645
|
+
bordered ? "bordered" : "no-border",
|
|
1646
|
+
className
|
|
1647
|
+
),
|
|
1648
|
+
"data-stn-status": "dot-group",
|
|
1649
|
+
...rest,
|
|
1650
|
+
children: items.map((item) => /* @__PURE__ */ jsx16("div", { className: "stn-status-dot-group__item", children: /* @__PURE__ */ jsx16(
|
|
1651
|
+
StnStatusDot,
|
|
1652
|
+
{
|
|
1653
|
+
state: item.state,
|
|
1654
|
+
label: item.label,
|
|
1655
|
+
count: item.count
|
|
1656
|
+
}
|
|
1657
|
+
) }, item.id))
|
|
1658
|
+
}
|
|
1659
|
+
);
|
|
1660
|
+
});
|
|
1661
|
+
var StnStatusSwitch = forwardRef10(function StnStatusSwitch2({
|
|
1662
|
+
checked: checkedProp,
|
|
1663
|
+
defaultChecked = false,
|
|
1664
|
+
onChange,
|
|
1665
|
+
labelOn = "\uAC10\uC2DC",
|
|
1666
|
+
labelOff = "\uBBF8\uAC10\uC2DC",
|
|
1667
|
+
icon = "line/shield-check",
|
|
1668
|
+
width,
|
|
1669
|
+
fullWidth = false,
|
|
1670
|
+
disabled,
|
|
1671
|
+
className,
|
|
1672
|
+
style,
|
|
1673
|
+
...rest
|
|
1674
|
+
}, ref) {
|
|
1675
|
+
const [internalChecked, setInternalChecked] = useState4(defaultChecked);
|
|
1676
|
+
const isChecked = checkedProp !== void 0 ? checkedProp : internalChecked;
|
|
1677
|
+
const widthProps = resolveButtonWidthProps(fullWidth, width, 80);
|
|
1678
|
+
const handleClick = () => {
|
|
1679
|
+
if (disabled) return;
|
|
1680
|
+
const next = !isChecked;
|
|
1681
|
+
if (checkedProp === void 0) {
|
|
1682
|
+
setInternalChecked(next);
|
|
1683
|
+
}
|
|
1684
|
+
onChange?.(next);
|
|
1685
|
+
};
|
|
1686
|
+
return /* @__PURE__ */ jsxs10(
|
|
1687
|
+
"button",
|
|
1688
|
+
{
|
|
1689
|
+
ref,
|
|
1690
|
+
type: "button",
|
|
1691
|
+
role: "switch",
|
|
1692
|
+
"aria-checked": isChecked,
|
|
1693
|
+
disabled,
|
|
1694
|
+
className: cn(
|
|
1695
|
+
"stn-status-switch",
|
|
1696
|
+
isChecked && "is-checked",
|
|
1697
|
+
widthProps.className,
|
|
1698
|
+
className
|
|
1699
|
+
),
|
|
1700
|
+
style: { ...widthProps.style, ...style },
|
|
1701
|
+
onClick: handleClick,
|
|
1702
|
+
"data-stn-status": "switch",
|
|
1703
|
+
...rest,
|
|
1704
|
+
children: [
|
|
1705
|
+
/* @__PURE__ */ jsx16("span", { className: "stn-status-switch__badge", "aria-hidden": "true", children: /* @__PURE__ */ jsx16(StnIcon, { name: icon, size: 8 }) }),
|
|
1706
|
+
/* @__PURE__ */ jsx16("span", { className: "stn-status-switch__label", children: isChecked ? labelOn : labelOff }),
|
|
1707
|
+
/* @__PURE__ */ jsx16("span", { className: "stn-status-switch__thumb", "aria-hidden": "true" })
|
|
1708
|
+
]
|
|
1709
|
+
}
|
|
1710
|
+
);
|
|
1711
|
+
});
|
|
1712
|
+
var StnStatusFlow = forwardRef10(function StnStatusFlow2({ steps, current, bordered = true, size = "md", className, ...rest }, ref) {
|
|
1713
|
+
const currentIndex = steps.findIndex((s) => s.key === current);
|
|
1714
|
+
const iconSize = size === "xs" ? 9 : size === "sm" ? 10 : size === "lg" ? 13 : size === "xl" ? 15 : 11;
|
|
1715
|
+
return /* @__PURE__ */ jsx16(
|
|
1716
|
+
"div",
|
|
1717
|
+
{
|
|
1718
|
+
ref,
|
|
1719
|
+
className: cn(
|
|
1720
|
+
"stn-status-flow",
|
|
1721
|
+
size,
|
|
1722
|
+
bordered === false && "no-border",
|
|
1723
|
+
className
|
|
1724
|
+
),
|
|
1725
|
+
"data-stn-status": "flow",
|
|
1726
|
+
...rest,
|
|
1727
|
+
children: steps.map((step, idx) => {
|
|
1728
|
+
const isCurrent = step.key === current;
|
|
1729
|
+
const isPassed = currentIndex !== -1 && idx < currentIndex;
|
|
1730
|
+
const isDimmed = currentIndex !== -1 && idx > currentIndex;
|
|
1731
|
+
const badgeColor = step.color ?? (isCurrent ? "primary" : "success");
|
|
1732
|
+
return /* @__PURE__ */ jsxs10("div", { className: "stn-status-flow__item", style: { display: "inline-flex", alignItems: "center", gap: 6 }, children: [
|
|
1733
|
+
idx > 0 && /* @__PURE__ */ jsx16("span", { className: "stn-status-flow__connector", "aria-hidden": "true", children: "|" }),
|
|
1734
|
+
/* @__PURE__ */ jsxs10(
|
|
1735
|
+
"div",
|
|
1736
|
+
{
|
|
1737
|
+
className: cn(
|
|
1738
|
+
"stn-status-flow__step",
|
|
1739
|
+
isCurrent && "is-current",
|
|
1740
|
+
isPassed && "is-passed",
|
|
1741
|
+
isDimmed && "is-dimmed"
|
|
1742
|
+
),
|
|
1743
|
+
children: [
|
|
1744
|
+
/* @__PURE__ */ jsx16(
|
|
1745
|
+
"span",
|
|
1746
|
+
{
|
|
1747
|
+
className: cn(
|
|
1748
|
+
"stn-status-flow__badge",
|
|
1749
|
+
`stn-status-flow__badge--${badgeColor}`
|
|
1750
|
+
),
|
|
1751
|
+
"aria-hidden": "true",
|
|
1752
|
+
children: step.icon ? /* @__PURE__ */ jsx16(StnIcon, { name: step.icon, size: iconSize }) : idx + 1
|
|
1753
|
+
}
|
|
1754
|
+
),
|
|
1755
|
+
/* @__PURE__ */ jsx16("span", { className: "stn-status-flow__label", children: step.label })
|
|
1756
|
+
]
|
|
1757
|
+
}
|
|
1758
|
+
)
|
|
1759
|
+
] }, step.key);
|
|
1760
|
+
})
|
|
1761
|
+
}
|
|
1762
|
+
);
|
|
1763
|
+
});
|
|
1764
|
+
function StnStatus(props) {
|
|
1765
|
+
switch (props.type) {
|
|
1766
|
+
case "dot-group": {
|
|
1767
|
+
const { type: _, ...rest } = props;
|
|
1768
|
+
return /* @__PURE__ */ jsx16(StnStatusDotGroup, { ...rest });
|
|
1769
|
+
}
|
|
1770
|
+
case "switch": {
|
|
1771
|
+
const { type: _, ...rest } = props;
|
|
1772
|
+
return /* @__PURE__ */ jsx16(StnStatusSwitch, { ...rest });
|
|
1773
|
+
}
|
|
1774
|
+
case "severity": {
|
|
1775
|
+
const { type: _, ...rest } = props;
|
|
1776
|
+
return /* @__PURE__ */ jsx16(StnSeverityBadge, { ...rest });
|
|
1777
|
+
}
|
|
1778
|
+
case "flow": {
|
|
1779
|
+
const { type: _, ...rest } = props;
|
|
1780
|
+
return /* @__PURE__ */ jsx16(StnStatusFlow, { ...rest });
|
|
1781
|
+
}
|
|
1782
|
+
case "dot":
|
|
1783
|
+
default: {
|
|
1784
|
+
const { type: _, ...rest } = props;
|
|
1785
|
+
return /* @__PURE__ */ jsx16(StnStatusDot, { ...rest });
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1788
|
+
}
|
|
1789
|
+
StnStatus.Dot = StnStatusDot;
|
|
1790
|
+
StnStatus.DotGroup = StnStatusDotGroup;
|
|
1791
|
+
StnStatus.Severity = StnSeverityBadge;
|
|
1792
|
+
StnStatus.Switch = StnStatusSwitch;
|
|
1793
|
+
StnStatus.Flow = StnStatusFlow;
|
|
1794
|
+
|
|
1795
|
+
// src/components/StnTable.tsx
|
|
1796
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1286
1797
|
var STN_TABLE_FOOTER_MAX_ACTIONS = 4;
|
|
1287
1798
|
function clampFooterRight(node) {
|
|
1288
1799
|
const kids = Children.toArray(node);
|
|
@@ -1308,7 +1819,7 @@ function StnTableBase({
|
|
|
1308
1819
|
onColumnReorder,
|
|
1309
1820
|
className
|
|
1310
1821
|
}) {
|
|
1311
|
-
const [visitedRowId, setVisitedRowId] =
|
|
1822
|
+
const [visitedRowId, setVisitedRowId] = useState5(null);
|
|
1312
1823
|
const wrapperRef = useRef3(null);
|
|
1313
1824
|
useEffect5(() => {
|
|
1314
1825
|
const wrapper = wrapperRef.current;
|
|
@@ -1477,32 +1988,32 @@ function StnTableBase({
|
|
|
1477
1988
|
const hasLeading = summary != null || pageSize != null;
|
|
1478
1989
|
const hasCenter = footerCenter != null;
|
|
1479
1990
|
const hasFooter = hasLeading || hasCenter || right != null;
|
|
1480
|
-
return /* @__PURE__ */
|
|
1481
|
-
/* @__PURE__ */
|
|
1482
|
-
hasFooter ? /* @__PURE__ */
|
|
1483
|
-
hasLeading ? /* @__PURE__ */
|
|
1484
|
-
summary != null ? /* @__PURE__ */
|
|
1485
|
-
pageSize != null ? /* @__PURE__ */
|
|
1486
|
-
] }) : /* @__PURE__ */
|
|
1487
|
-
hasCenter ? /* @__PURE__ */
|
|
1488
|
-
/* @__PURE__ */
|
|
1991
|
+
return /* @__PURE__ */ jsx17(StnTableContext.Provider, { value: { trackVisited, visitedRowId, setVisitedRowId, resizable, draggable }, children: /* @__PURE__ */ jsxs11("div", { ref: wrapperRef, className: cn("stn-table", fill && "stn-table--fill", className), children: [
|
|
1992
|
+
/* @__PURE__ */ jsx17("div", { className: "stn-table__scroll", style: scrollStyle, children }),
|
|
1993
|
+
hasFooter ? /* @__PURE__ */ jsxs11("div", { className: "stn-table__footer", children: [
|
|
1994
|
+
hasLeading ? /* @__PURE__ */ jsxs11("div", { className: "stn-table__footer-leading", children: [
|
|
1995
|
+
summary != null ? /* @__PURE__ */ jsx17("p", { className: "stn-table__summary", children: summary }) : null,
|
|
1996
|
+
pageSize != null ? /* @__PURE__ */ jsx17("div", { className: "stn-table__page-size", children: pageSize }) : null
|
|
1997
|
+
] }) : /* @__PURE__ */ jsx17("span", {}),
|
|
1998
|
+
hasCenter ? /* @__PURE__ */ jsx17("div", { className: "stn-table__footer-center", children: footerCenter }) : /* @__PURE__ */ jsx17("span", {}),
|
|
1999
|
+
/* @__PURE__ */ jsx17("div", { className: "stn-table__footer-right", children: right })
|
|
1489
2000
|
] }) : null
|
|
1490
2001
|
] }) });
|
|
1491
2002
|
}
|
|
1492
|
-
var StnTableGrid =
|
|
1493
|
-
return /* @__PURE__ */
|
|
2003
|
+
var StnTableGrid = forwardRef11(function StnTableGrid2({ className, children, ...rest }, ref) {
|
|
2004
|
+
return /* @__PURE__ */ jsx17("table", { ref, className: cn("stn-table__grid", className), ...rest, children });
|
|
1494
2005
|
});
|
|
1495
|
-
var StnTableHead =
|
|
2006
|
+
var StnTableHead = forwardRef11(
|
|
1496
2007
|
function StnTableHead2({ className, children, ...rest }, ref) {
|
|
1497
|
-
return /* @__PURE__ */
|
|
2008
|
+
return /* @__PURE__ */ jsx17("thead", { ref, className: cn("stn-table__thead", className), ...rest, children });
|
|
1498
2009
|
}
|
|
1499
2010
|
);
|
|
1500
|
-
var StnTableBody =
|
|
2011
|
+
var StnTableBody = forwardRef11(
|
|
1501
2012
|
function StnTableBody2({ className, children, ...rest }, ref) {
|
|
1502
|
-
return /* @__PURE__ */
|
|
2013
|
+
return /* @__PURE__ */ jsx17("tbody", { ref, className: cn("stn-table__tbody", className), ...rest, children });
|
|
1503
2014
|
}
|
|
1504
2015
|
);
|
|
1505
|
-
var StnTableRow =
|
|
2016
|
+
var StnTableRow = forwardRef11(function StnTableRow2({ className, hoverable = false, selected = false, visited = false, highlighted = false, clickable = false, pressed = false, rowId, children, onClick, ...rest }, ref) {
|
|
1506
2017
|
const ctx = useContext2(StnTableContext);
|
|
1507
2018
|
const isTrackedVisited = ctx?.trackVisited && ctx.visitedRowId != null && ctx.visitedRowId === rowId;
|
|
1508
2019
|
const finalVisited = visited || isTrackedVisited;
|
|
@@ -1514,7 +2025,7 @@ var StnTableRow = forwardRef10(function StnTableRow2({ className, hoverable = fa
|
|
|
1514
2025
|
}
|
|
1515
2026
|
onClick?.(e);
|
|
1516
2027
|
};
|
|
1517
|
-
return /* @__PURE__ */
|
|
2028
|
+
return /* @__PURE__ */ jsx17(
|
|
1518
2029
|
"tr",
|
|
1519
2030
|
{
|
|
1520
2031
|
ref,
|
|
@@ -1538,12 +2049,12 @@ function tableColWidthClass(width) {
|
|
|
1538
2049
|
if (typeof width !== "number" || !TABLE_COL_WIDTHS.has(width)) return void 0;
|
|
1539
2050
|
return `stn-table__col--${width}`;
|
|
1540
2051
|
}
|
|
1541
|
-
var StnTableTh =
|
|
2052
|
+
var StnTableTh = forwardRef11(function StnTableTh2({ className, check = false, align, pressed = false, width, style, children, scope = "col", resizable, draggable, name, groupCols, ...rest }, ref) {
|
|
1542
2053
|
const ctx = useContext2(StnTableContext);
|
|
1543
2054
|
const colWidthClass = tableColWidthClass(width);
|
|
1544
2055
|
const finalResizable = resizable ?? ctx?.resizable;
|
|
1545
2056
|
const finalDraggable = draggable ?? ctx?.draggable;
|
|
1546
|
-
return /* @__PURE__ */
|
|
2057
|
+
return /* @__PURE__ */ jsxs11(
|
|
1547
2058
|
"th",
|
|
1548
2059
|
{
|
|
1549
2060
|
ref,
|
|
@@ -1562,7 +2073,7 @@ var StnTableTh = forwardRef10(function StnTableTh2({ className, check = false, a
|
|
|
1562
2073
|
...rest,
|
|
1563
2074
|
children: [
|
|
1564
2075
|
children,
|
|
1565
|
-
finalResizable && /* @__PURE__ */
|
|
2076
|
+
finalResizable && /* @__PURE__ */ jsx17(
|
|
1566
2077
|
"div",
|
|
1567
2078
|
{
|
|
1568
2079
|
className: "stn-table__resizer",
|
|
@@ -1573,7 +2084,7 @@ var StnTableTh = forwardRef10(function StnTableTh2({ className, check = false, a
|
|
|
1573
2084
|
}
|
|
1574
2085
|
);
|
|
1575
2086
|
});
|
|
1576
|
-
var StnTableTd =
|
|
2087
|
+
var StnTableTd = forwardRef11(function StnTableTd2({ className, check = false, align, children, title, onMouseEnter, ...rest }, ref) {
|
|
1577
2088
|
const autoTitle = typeof children === "string" ? children : void 0;
|
|
1578
2089
|
const handleMouseEnter = (e) => {
|
|
1579
2090
|
if (onMouseEnter) onMouseEnter(e);
|
|
@@ -1586,7 +2097,7 @@ var StnTableTd = forwardRef10(function StnTableTd2({ className, check = false, a
|
|
|
1586
2097
|
}
|
|
1587
2098
|
}
|
|
1588
2099
|
};
|
|
1589
|
-
return /* @__PURE__ */
|
|
2100
|
+
return /* @__PURE__ */ jsx17(
|
|
1590
2101
|
"td",
|
|
1591
2102
|
{
|
|
1592
2103
|
ref,
|
|
@@ -1602,15 +2113,15 @@ var StnTableTd = forwardRef10(function StnTableTd2({ className, check = false, a
|
|
|
1602
2113
|
}
|
|
1603
2114
|
);
|
|
1604
2115
|
});
|
|
1605
|
-
var StnTableThCheck =
|
|
1606
|
-
return /* @__PURE__ */
|
|
2116
|
+
var StnTableThCheck = forwardRef11(function StnTableThCheck2({ label = "\uC804\uCCB4 \uC120\uD0DD", scope = "col", className, ...rest }, ref) {
|
|
2117
|
+
return /* @__PURE__ */ jsx17("th", { scope, className: cn("stn-table__col-check", className), children: /* @__PURE__ */ jsx17(StnCheckbox, { ref, controlOnly: true, label, ...rest }) });
|
|
1607
2118
|
});
|
|
1608
|
-
var StnTableTdCheck =
|
|
1609
|
-
return /* @__PURE__ */
|
|
2119
|
+
var StnTableTdCheck = forwardRef11(function StnTableTdCheck2({ label = "\uD589 \uC120\uD0DD", className, ...rest }, ref) {
|
|
2120
|
+
return /* @__PURE__ */ jsx17("td", { className: cn("stn-table__col-check", className), children: /* @__PURE__ */ jsx17(StnCheckbox, { ref, controlOnly: true, label, ...rest }) });
|
|
1610
2121
|
});
|
|
1611
|
-
var StnTableSort =
|
|
2122
|
+
var StnTableSort = forwardRef11(function StnTableSort2({ label, sort = "none", pressed = false, className, type = "button", ...rest }, ref) {
|
|
1612
2123
|
const active = sort !== "none";
|
|
1613
|
-
return /* @__PURE__ */
|
|
2124
|
+
return /* @__PURE__ */ jsxs11(
|
|
1614
2125
|
"button",
|
|
1615
2126
|
{
|
|
1616
2127
|
ref,
|
|
@@ -1626,14 +2137,14 @@ var StnTableSort = forwardRef10(function StnTableSort2({ label, sort = "none", p
|
|
|
1626
2137
|
"aria-sort": sort,
|
|
1627
2138
|
...rest,
|
|
1628
2139
|
children: [
|
|
1629
|
-
/* @__PURE__ */
|
|
1630
|
-
/* @__PURE__ */
|
|
2140
|
+
/* @__PURE__ */ jsx17("span", { className: "stn-table__th-label-text", children: label }),
|
|
2141
|
+
/* @__PURE__ */ jsx17("span", { className: "stn-table__th-label-icon", "aria-hidden": "true" })
|
|
1631
2142
|
]
|
|
1632
2143
|
}
|
|
1633
2144
|
);
|
|
1634
2145
|
});
|
|
1635
|
-
var StnTableRowActions =
|
|
1636
|
-
return /* @__PURE__ */
|
|
2146
|
+
var StnTableRowActions = forwardRef11(function StnTableRowActions2({ className, children, ...rest }, ref) {
|
|
2147
|
+
return /* @__PURE__ */ jsx17("div", { ref, className: cn("stn-table__row-actions", className), ...rest, children });
|
|
1637
2148
|
});
|
|
1638
2149
|
var StnTable = StnTableBase;
|
|
1639
2150
|
StnTable.Grid = StnTableGrid;
|
|
@@ -1646,17 +2157,20 @@ StnTable.ThCheck = StnTableThCheck;
|
|
|
1646
2157
|
StnTable.TdCheck = StnTableTdCheck;
|
|
1647
2158
|
StnTable.Sort = StnTableSort;
|
|
1648
2159
|
StnTable.RowActions = StnTableRowActions;
|
|
2160
|
+
StnTable.Status = StnStatusDot;
|
|
2161
|
+
StnTable.Switch = StnStatusSwitch;
|
|
2162
|
+
StnTable.Flow = StnStatusFlow;
|
|
1649
2163
|
|
|
1650
2164
|
// src/components/StnTree.tsx
|
|
1651
2165
|
import {
|
|
1652
|
-
forwardRef as
|
|
2166
|
+
forwardRef as forwardRef14,
|
|
1653
2167
|
useCallback as useCallback4,
|
|
1654
2168
|
useMemo as useMemo2,
|
|
1655
|
-
useState as
|
|
2169
|
+
useState as useState7
|
|
1656
2170
|
} from "react";
|
|
1657
2171
|
|
|
1658
2172
|
// src/components/StnTreeNode.tsx
|
|
1659
|
-
import { forwardRef as
|
|
2173
|
+
import { forwardRef as forwardRef12 } from "react";
|
|
1660
2174
|
import { resolveSystemIconSrcFromName as resolveSystemIconSrcFromName2 } from "@stn-uiux/pub-ui/data/stnSystemIcons";
|
|
1661
2175
|
|
|
1662
2176
|
// src/stnTreeFlatten.ts
|
|
@@ -1708,7 +2222,9 @@ function walk(nodes, depth, ancestorIsLast, expanded, out) {
|
|
|
1708
2222
|
hasChildren,
|
|
1709
2223
|
expanded: isExpanded,
|
|
1710
2224
|
isLast,
|
|
1711
|
-
visible: node.visible !== false
|
|
2225
|
+
visible: node.visible !== false,
|
|
2226
|
+
count: node.count,
|
|
2227
|
+
icon: node.icon
|
|
1712
2228
|
});
|
|
1713
2229
|
if (hasChildren && isExpanded) {
|
|
1714
2230
|
walk(node.children, depth + 1, [...ancestorIsLast, isLast], expanded, out);
|
|
@@ -1736,7 +2252,7 @@ function collectExpandableIds(nodes) {
|
|
|
1736
2252
|
}
|
|
1737
2253
|
|
|
1738
2254
|
// src/components/StnTreeNode.tsx
|
|
1739
|
-
import { jsx as
|
|
2255
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1740
2256
|
var ICON = {
|
|
1741
2257
|
folderOpen: resolveSystemIconSrcFromName2("fill/folder-open") ?? "",
|
|
1742
2258
|
folderClosed: resolveSystemIconSrcFromName2("fill/folder") ?? "",
|
|
@@ -1752,13 +2268,13 @@ function maskStyle(src) {
|
|
|
1752
2268
|
}
|
|
1753
2269
|
function TreeGuideCell({ cell }) {
|
|
1754
2270
|
if (cell.type === "blank") {
|
|
1755
|
-
return /* @__PURE__ */
|
|
2271
|
+
return /* @__PURE__ */ jsx18("span", { className: "stn-tree__cell stn-tree__cell--blank", "aria-hidden": "true" });
|
|
1756
2272
|
}
|
|
1757
2273
|
if (cell.type === "vertical") {
|
|
1758
|
-
return /* @__PURE__ */
|
|
2274
|
+
return /* @__PURE__ */ jsx18("span", { className: "stn-tree__cell stn-tree__cell--guide", "aria-hidden": "true", children: /* @__PURE__ */ jsx18("span", { className: "stn-tree__guide-glyph", style: maskStyle(ICON.vertical) }) });
|
|
1759
2275
|
}
|
|
1760
2276
|
if (cell.type === "connector") {
|
|
1761
|
-
return /* @__PURE__ */
|
|
2277
|
+
return /* @__PURE__ */ jsx18(
|
|
1762
2278
|
"span",
|
|
1763
2279
|
{
|
|
1764
2280
|
className: cn(
|
|
@@ -1766,7 +2282,7 @@ function TreeGuideCell({ cell }) {
|
|
|
1766
2282
|
cell.variant === "end" && "stn-tree__cell--connector-end"
|
|
1767
2283
|
),
|
|
1768
2284
|
"aria-hidden": "true",
|
|
1769
|
-
children: /* @__PURE__ */
|
|
2285
|
+
children: /* @__PURE__ */ jsx18(
|
|
1770
2286
|
"span",
|
|
1771
2287
|
{
|
|
1772
2288
|
className: "stn-tree__guide-glyph",
|
|
@@ -1776,7 +2292,7 @@ function TreeGuideCell({ cell }) {
|
|
|
1776
2292
|
}
|
|
1777
2293
|
);
|
|
1778
2294
|
}
|
|
1779
|
-
return /* @__PURE__ */
|
|
2295
|
+
return /* @__PURE__ */ jsx18("span", { className: "stn-tree__cell stn-tree__cell--toggle", "aria-hidden": "true", children: /* @__PURE__ */ jsx18(
|
|
1780
2296
|
"span",
|
|
1781
2297
|
{
|
|
1782
2298
|
className: cn("stn-tree__chevron-glyph", cell.expanded && "is-expanded"),
|
|
@@ -1784,10 +2300,17 @@ function TreeGuideCell({ cell }) {
|
|
|
1784
2300
|
}
|
|
1785
2301
|
) });
|
|
1786
2302
|
}
|
|
1787
|
-
function TreeNodeIcon({
|
|
2303
|
+
function TreeNodeIcon({
|
|
2304
|
+
kind,
|
|
2305
|
+
expanded,
|
|
2306
|
+
icon
|
|
2307
|
+
}) {
|
|
2308
|
+
if (icon != null) {
|
|
2309
|
+
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 });
|
|
2310
|
+
}
|
|
1788
2311
|
if (kind === "server") {
|
|
1789
|
-
return /* @__PURE__ */
|
|
1790
|
-
/* @__PURE__ */
|
|
2312
|
+
return /* @__PURE__ */ jsxs12("span", { className: "stn-tree__cell stn-tree__cell--icon stn-tree__icon stn-tree__icon--server", children: [
|
|
2313
|
+
/* @__PURE__ */ jsx18(
|
|
1791
2314
|
StnIcon,
|
|
1792
2315
|
{
|
|
1793
2316
|
name: "fill/server_2_tree_light",
|
|
@@ -1795,7 +2318,7 @@ function TreeNodeIcon({ kind, expanded }) {
|
|
|
1795
2318
|
className: "stn-tree__icon-glyph stn-tree__server-icon stn-tree__server-icon--light stn-icon--color"
|
|
1796
2319
|
}
|
|
1797
2320
|
),
|
|
1798
|
-
/* @__PURE__ */
|
|
2321
|
+
/* @__PURE__ */ jsx18(
|
|
1799
2322
|
StnIcon,
|
|
1800
2323
|
{
|
|
1801
2324
|
name: "fill/server_2",
|
|
@@ -1807,18 +2330,18 @@ function TreeNodeIcon({ kind, expanded }) {
|
|
|
1807
2330
|
}
|
|
1808
2331
|
const folderKind = kind === "root" ? "root" : "folder";
|
|
1809
2332
|
const folderSrc = kind === "root" || expanded ? ICON.folderOpen : ICON.folderClosed;
|
|
1810
|
-
return /* @__PURE__ */
|
|
2333
|
+
return /* @__PURE__ */ jsx18(
|
|
1811
2334
|
"span",
|
|
1812
2335
|
{
|
|
1813
2336
|
className: cn(
|
|
1814
2337
|
"stn-tree__cell stn-tree__cell--icon stn-tree__icon",
|
|
1815
2338
|
`stn-tree__icon--${folderKind}`
|
|
1816
2339
|
),
|
|
1817
|
-
children: /* @__PURE__ */
|
|
2340
|
+
children: /* @__PURE__ */ jsx18("span", { className: "stn-tree__icon-glyph", style: maskStyle(folderSrc), "aria-hidden": "true" })
|
|
1818
2341
|
}
|
|
1819
2342
|
);
|
|
1820
2343
|
}
|
|
1821
|
-
var StnTreeNode =
|
|
2344
|
+
var StnTreeNode = forwardRef12(function StnTreeNode2({
|
|
1822
2345
|
label,
|
|
1823
2346
|
kind = "folder",
|
|
1824
2347
|
bold = false,
|
|
@@ -1830,6 +2353,8 @@ var StnTreeNode = forwardRef11(function StnTreeNode2({
|
|
|
1830
2353
|
ancestorIsLast,
|
|
1831
2354
|
cells: cellsProp,
|
|
1832
2355
|
showIcon = true,
|
|
2356
|
+
icon,
|
|
2357
|
+
count,
|
|
1833
2358
|
visible = true,
|
|
1834
2359
|
showVisibilityToggle = false,
|
|
1835
2360
|
onVisibilityChange,
|
|
@@ -1861,7 +2386,7 @@ var StnTreeNode = forwardRef11(function StnTreeNode2({
|
|
|
1861
2386
|
handleSelect();
|
|
1862
2387
|
}
|
|
1863
2388
|
};
|
|
1864
|
-
return /* @__PURE__ */
|
|
2389
|
+
return /* @__PURE__ */ jsxs12(
|
|
1865
2390
|
"div",
|
|
1866
2391
|
{
|
|
1867
2392
|
ref,
|
|
@@ -1889,7 +2414,7 @@ var StnTreeNode = forwardRef11(function StnTreeNode2({
|
|
|
1889
2414
|
children: [
|
|
1890
2415
|
cells.map((cell, index) => {
|
|
1891
2416
|
if (cell.type === "toggle") {
|
|
1892
|
-
return /* @__PURE__ */
|
|
2417
|
+
return /* @__PURE__ */ jsx18(
|
|
1893
2418
|
"button",
|
|
1894
2419
|
{
|
|
1895
2420
|
type: "button",
|
|
@@ -1900,7 +2425,7 @@ var StnTreeNode = forwardRef11(function StnTreeNode2({
|
|
|
1900
2425
|
event.stopPropagation();
|
|
1901
2426
|
onToggle?.();
|
|
1902
2427
|
},
|
|
1903
|
-
children: /* @__PURE__ */
|
|
2428
|
+
children: /* @__PURE__ */ jsx18(
|
|
1904
2429
|
"span",
|
|
1905
2430
|
{
|
|
1906
2431
|
className: cn("stn-tree__chevron-glyph", cell.expanded && "is-expanded"),
|
|
@@ -1911,11 +2436,12 @@ var StnTreeNode = forwardRef11(function StnTreeNode2({
|
|
|
1911
2436
|
`c-${index}`
|
|
1912
2437
|
);
|
|
1913
2438
|
}
|
|
1914
|
-
return /* @__PURE__ */
|
|
2439
|
+
return /* @__PURE__ */ jsx18(TreeGuideCell, { cell }, `c-${index}`);
|
|
1915
2440
|
}),
|
|
1916
|
-
showIcon && /* @__PURE__ */
|
|
1917
|
-
/* @__PURE__ */
|
|
1918
|
-
|
|
2441
|
+
showIcon && /* @__PURE__ */ jsx18(TreeNodeIcon, { kind, expanded, icon }),
|
|
2442
|
+
/* @__PURE__ */ jsx18("span", { className: cn("stn-tree__label", bold && "is-bold"), children: label }),
|
|
2443
|
+
count != null && /* @__PURE__ */ jsx18("span", { className: "stn-tree__count", "aria-label": `\uC218\uB7C9 ${count}`, children: count }),
|
|
2444
|
+
showVisibilityToggle && /* @__PURE__ */ jsx18(
|
|
1919
2445
|
"button",
|
|
1920
2446
|
{
|
|
1921
2447
|
type: "button",
|
|
@@ -1926,7 +2452,7 @@ var StnTreeNode = forwardRef11(function StnTreeNode2({
|
|
|
1926
2452
|
event.stopPropagation();
|
|
1927
2453
|
onVisibilityChange?.(!visible);
|
|
1928
2454
|
},
|
|
1929
|
-
children: /* @__PURE__ */
|
|
2455
|
+
children: /* @__PURE__ */ jsx18(
|
|
1930
2456
|
"span",
|
|
1931
2457
|
{
|
|
1932
2458
|
className: cn("stn-tree__visibility-glyph", !visible && "is-off"),
|
|
@@ -1943,14 +2469,14 @@ var StnTreeItem = StnTreeNode;
|
|
|
1943
2469
|
|
|
1944
2470
|
// src/components/StnScroll.tsx
|
|
1945
2471
|
import {
|
|
1946
|
-
forwardRef as
|
|
2472
|
+
forwardRef as forwardRef13,
|
|
1947
2473
|
useCallback as useCallback3,
|
|
1948
2474
|
useEffect as useEffect6,
|
|
1949
2475
|
useId as useId4,
|
|
1950
2476
|
useRef as useRef4,
|
|
1951
|
-
useState as
|
|
2477
|
+
useState as useState6
|
|
1952
2478
|
} from "react";
|
|
1953
|
-
import { Fragment, jsx as
|
|
2479
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1954
2480
|
function assignRef(ref, value) {
|
|
1955
2481
|
if (typeof ref === "function") ref(value);
|
|
1956
2482
|
else if (ref) ref.current = value;
|
|
@@ -1961,7 +2487,7 @@ function barWidth(size, scrollWidth) {
|
|
|
1961
2487
|
if (size === "thick") return "12px";
|
|
1962
2488
|
return "8px";
|
|
1963
2489
|
}
|
|
1964
|
-
var StnScroll =
|
|
2490
|
+
var StnScroll = forwardRef13(function StnScroll2({
|
|
1965
2491
|
orientation = "vertical",
|
|
1966
2492
|
variant = "default",
|
|
1967
2493
|
showArrows = false,
|
|
@@ -1980,7 +2506,7 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
1980
2506
|
const rawId = useId4();
|
|
1981
2507
|
const customId = `stn-scr-${rawId.replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
1982
2508
|
const innerRef = useRef4(null);
|
|
1983
|
-
const [edges, setEdges] =
|
|
2509
|
+
const [edges, setEdges] = useState6({ top: true, bottom: false, left: true, right: false });
|
|
1984
2510
|
const hasArrows = variant === "arrows" || showArrows;
|
|
1985
2511
|
const hasCustomStyling = Boolean(thumbColor || trackColor || scrollWidth != null);
|
|
1986
2512
|
const showY = orientation !== "horizontal";
|
|
@@ -1990,7 +2516,7 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
1990
2516
|
const w = scrollWidth != null ? typeof scrollWidth === "number" ? `${scrollWidth}px` : scrollWidth : void 0;
|
|
1991
2517
|
const thumb = thumbColor;
|
|
1992
2518
|
const track = trackColor || "rgba(255, 255, 255, 0.05)";
|
|
1993
|
-
dynamicStyleTag = /* @__PURE__ */
|
|
2519
|
+
dynamicStyleTag = /* @__PURE__ */ jsx19("style", { children: `
|
|
1994
2520
|
.${customId}::-webkit-scrollbar {
|
|
1995
2521
|
${w ? `width: ${w} !important; height: ${w} !important;` : ""}
|
|
1996
2522
|
${track ? `background: ${track} !important;` : ""}
|
|
@@ -2049,15 +2575,15 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
2049
2575
|
behavior: "smooth"
|
|
2050
2576
|
});
|
|
2051
2577
|
};
|
|
2052
|
-
const scrollElement = /* @__PURE__ */
|
|
2578
|
+
const scrollElement = /* @__PURE__ */ jsx19(
|
|
2053
2579
|
"div",
|
|
2054
2580
|
{
|
|
2055
2581
|
ref: setNode,
|
|
2056
2582
|
className: cn(
|
|
2057
2583
|
"stn-scroll",
|
|
2058
|
-
|
|
2059
|
-
size !== "default" &&
|
|
2060
|
-
color !== "default" &&
|
|
2584
|
+
orientation,
|
|
2585
|
+
size !== "default" && size,
|
|
2586
|
+
color !== "default" && color,
|
|
2061
2587
|
hasCustomStyling && customId,
|
|
2062
2588
|
className
|
|
2063
2589
|
),
|
|
@@ -2068,7 +2594,7 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
2068
2594
|
}
|
|
2069
2595
|
);
|
|
2070
2596
|
if (!hasArrows) {
|
|
2071
|
-
return /* @__PURE__ */
|
|
2597
|
+
return /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
2072
2598
|
dynamicStyleTag,
|
|
2073
2599
|
scrollElement
|
|
2074
2600
|
] });
|
|
@@ -2076,11 +2602,11 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
2076
2602
|
const shellStyle = {
|
|
2077
2603
|
"--stn-scroll-width": barWidth(size, scrollWidth)
|
|
2078
2604
|
};
|
|
2079
|
-
return /* @__PURE__ */
|
|
2605
|
+
return /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
2080
2606
|
dynamicStyleTag,
|
|
2081
|
-
/* @__PURE__ */
|
|
2082
|
-
showY ? /* @__PURE__ */
|
|
2083
|
-
/* @__PURE__ */
|
|
2607
|
+
/* @__PURE__ */ jsxs13("div", { className: cn("stn-scroll-shell", orientation), style: shellStyle, children: [
|
|
2608
|
+
showY ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
2609
|
+
/* @__PURE__ */ jsx19(
|
|
2084
2610
|
ScrollArrow,
|
|
2085
2611
|
{
|
|
2086
2612
|
direction: "up",
|
|
@@ -2089,7 +2615,7 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
2089
2615
|
onClick: () => scrollByAxis("y", -1)
|
|
2090
2616
|
}
|
|
2091
2617
|
),
|
|
2092
|
-
/* @__PURE__ */
|
|
2618
|
+
/* @__PURE__ */ jsx19(
|
|
2093
2619
|
ScrollArrow,
|
|
2094
2620
|
{
|
|
2095
2621
|
direction: "down",
|
|
@@ -2100,8 +2626,8 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
2100
2626
|
)
|
|
2101
2627
|
] }) : null,
|
|
2102
2628
|
scrollElement,
|
|
2103
|
-
showX ? /* @__PURE__ */
|
|
2104
|
-
/* @__PURE__ */
|
|
2629
|
+
showX ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
2630
|
+
/* @__PURE__ */ jsx19(
|
|
2105
2631
|
ScrollArrow,
|
|
2106
2632
|
{
|
|
2107
2633
|
direction: "left",
|
|
@@ -2110,7 +2636,7 @@ var StnScroll = forwardRef12(function StnScroll2({
|
|
|
2110
2636
|
onClick: () => scrollByAxis("x", -1)
|
|
2111
2637
|
}
|
|
2112
2638
|
),
|
|
2113
|
-
/* @__PURE__ */
|
|
2639
|
+
/* @__PURE__ */ jsx19(
|
|
2114
2640
|
ScrollArrow,
|
|
2115
2641
|
{
|
|
2116
2642
|
direction: "right",
|
|
@@ -2129,27 +2655,27 @@ function ScrollArrow({
|
|
|
2129
2655
|
label,
|
|
2130
2656
|
...rest
|
|
2131
2657
|
}) {
|
|
2132
|
-
return /* @__PURE__ */
|
|
2658
|
+
return /* @__PURE__ */ jsxs13(
|
|
2133
2659
|
"button",
|
|
2134
2660
|
{
|
|
2135
2661
|
type: "button",
|
|
2136
|
-
className: cn("stn-scroll__arrow",
|
|
2662
|
+
className: cn("stn-scroll__arrow", direction, className),
|
|
2137
2663
|
"aria-label": label,
|
|
2138
2664
|
...rest,
|
|
2139
2665
|
children: [
|
|
2140
|
-
direction === "up" && /* @__PURE__ */
|
|
2141
|
-
direction === "down" && /* @__PURE__ */
|
|
2142
|
-
direction === "left" && /* @__PURE__ */
|
|
2143
|
-
direction === "right" && /* @__PURE__ */
|
|
2666
|
+
direction === "up" && /* @__PURE__ */ jsx19("svg", { width: "7", height: "6", viewBox: "0 0 7 6", fill: "currentColor", children: /* @__PURE__ */ jsx19("path", { d: "M2.78 1.13a0.85 0.85 0 0 1 1.44 0l2.12 3.18A0.85 0.85 0 0 1 5.64 5.6H1.36a0.85 0.85 0 0 1-.7-1.29l2.12-3.18z" }) }),
|
|
2667
|
+
direction === "down" && /* @__PURE__ */ jsx19("svg", { width: "7", height: "6", viewBox: "0 0 7 6", fill: "currentColor", children: /* @__PURE__ */ jsx19("path", { d: "M2.78 4.87a0.85 0.85 0 0 0 1.44 0l2.12-3.18A0.85 0.85 0 0 0 5.64 0.4H1.36a0.85 0.85 0 0 0-.7 1.29l2.12 3.18z" }) }),
|
|
2668
|
+
direction === "left" && /* @__PURE__ */ jsx19("svg", { width: "6", height: "7", viewBox: "0 0 6 7", fill: "currentColor", children: /* @__PURE__ */ jsx19("path", { d: "M1.13 4.22a0.85 0.85 0 0 1 0-1.44l3.18-2.12A0.85 0.85 0 0 1 5.6 1.36v4.28a0.85 0.85 0 0 1-1.29.7L1.13 4.22z" }) }),
|
|
2669
|
+
direction === "right" && /* @__PURE__ */ jsx19("svg", { width: "6", height: "7", viewBox: "0 0 6 7", fill: "currentColor", children: /* @__PURE__ */ jsx19("path", { d: "M4.87 4.22a0.85 0.85 0 0 0 0-1.44L1.69 0.66A0.85 0.85 0 0 0 0.4 1.36v4.28a0.85 0.85 0 0 0 1.29.7l3.18-2.12z" }) })
|
|
2144
2670
|
]
|
|
2145
2671
|
}
|
|
2146
2672
|
);
|
|
2147
2673
|
}
|
|
2148
2674
|
|
|
2149
2675
|
// src/components/StnTree.tsx
|
|
2150
|
-
import { jsx as
|
|
2676
|
+
import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2151
2677
|
function useControllableSet(controlled, defaultIds, defaultExpandAll, allExpandable) {
|
|
2152
|
-
const [internal, setInternal] =
|
|
2678
|
+
const [internal, setInternal] = useState7(() => {
|
|
2153
2679
|
if (defaultIds != null) return defaultIds;
|
|
2154
2680
|
if (defaultExpandAll) return allExpandable;
|
|
2155
2681
|
return [];
|
|
@@ -2164,7 +2690,7 @@ function useControllableSet(controlled, defaultIds, defaultExpandAll, allExpanda
|
|
|
2164
2690
|
);
|
|
2165
2691
|
return [value, setValue];
|
|
2166
2692
|
}
|
|
2167
|
-
var StnTree =
|
|
2693
|
+
var StnTree = forwardRef14(function StnTree2({
|
|
2168
2694
|
nodes,
|
|
2169
2695
|
heading,
|
|
2170
2696
|
defaultExpandAll = false,
|
|
@@ -2198,9 +2724,9 @@ var StnTree = forwardRef13(function StnTree2({
|
|
|
2198
2724
|
defaultExpandAll,
|
|
2199
2725
|
expandableIds
|
|
2200
2726
|
);
|
|
2201
|
-
const [internalSelected, setInternalSelected] =
|
|
2727
|
+
const [internalSelected, setInternalSelected] = useState7(defaultSelectedId);
|
|
2202
2728
|
const selected = selectedId ?? internalSelected;
|
|
2203
|
-
const [internalHidden, setInternalHidden] =
|
|
2729
|
+
const [internalHidden, setInternalHidden] = useState7(() => defaultHiddenIds ?? []);
|
|
2204
2730
|
const hidden = controlledHiddenIds ?? internalHidden;
|
|
2205
2731
|
const handleVisibilityToggle = useCallback4(
|
|
2206
2732
|
(id, nextVisible) => {
|
|
@@ -2236,9 +2762,9 @@ var StnTree = forwardRef13(function StnTree2({
|
|
|
2236
2762
|
},
|
|
2237
2763
|
[onSelect, selectedId]
|
|
2238
2764
|
);
|
|
2239
|
-
const rowsContent = /* @__PURE__ */
|
|
2765
|
+
const rowsContent = /* @__PURE__ */ jsx20("div", { className: "stn-tree__rows", role: "tree", "aria-label": heading || "folder tree", children: rows.map((row) => {
|
|
2240
2766
|
const isHidden = hidden.includes(row.id) || !row.visible;
|
|
2241
|
-
return /* @__PURE__ */
|
|
2767
|
+
return /* @__PURE__ */ jsx20(
|
|
2242
2768
|
StnTreeNode,
|
|
2243
2769
|
{
|
|
2244
2770
|
label: row.label,
|
|
@@ -2251,6 +2777,8 @@ var StnTree = forwardRef13(function StnTree2({
|
|
|
2251
2777
|
isLast: row.isLast,
|
|
2252
2778
|
cells: row.cells,
|
|
2253
2779
|
showIcon: showIcons,
|
|
2780
|
+
icon: row.icon,
|
|
2781
|
+
count: row.count,
|
|
2254
2782
|
visible: !isHidden,
|
|
2255
2783
|
showVisibilityToggle,
|
|
2256
2784
|
onVisibilityChange: (nextVisible) => handleVisibilityToggle(row.id, nextVisible),
|
|
@@ -2261,22 +2789,22 @@ var StnTree = forwardRef13(function StnTree2({
|
|
|
2261
2789
|
row.id
|
|
2262
2790
|
);
|
|
2263
2791
|
}) });
|
|
2264
|
-
return /* @__PURE__ */
|
|
2792
|
+
return /* @__PURE__ */ jsxs14(
|
|
2265
2793
|
"div",
|
|
2266
2794
|
{
|
|
2267
2795
|
ref,
|
|
2268
2796
|
className: cn(
|
|
2269
2797
|
"stn-tree",
|
|
2270
|
-
size
|
|
2271
|
-
width
|
|
2272
|
-
radius !== "sm" && `
|
|
2273
|
-
!guides && "
|
|
2798
|
+
size,
|
|
2799
|
+
width,
|
|
2800
|
+
radius !== "sm" && `radius-${radius}`,
|
|
2801
|
+
!guides && "no-guides",
|
|
2274
2802
|
className
|
|
2275
2803
|
),
|
|
2276
2804
|
...rest,
|
|
2277
2805
|
children: [
|
|
2278
|
-
heading ? /* @__PURE__ */
|
|
2279
|
-
maxHeight != null ? /* @__PURE__ */
|
|
2806
|
+
heading ? /* @__PURE__ */ jsx20("p", { className: "stn-tree__heading", children: heading }) : null,
|
|
2807
|
+
maxHeight != null ? /* @__PURE__ */ jsx20(
|
|
2280
2808
|
StnScroll,
|
|
2281
2809
|
{
|
|
2282
2810
|
orientation: "vertical",
|
|
@@ -2293,22 +2821,22 @@ var StnTree = forwardRef13(function StnTree2({
|
|
|
2293
2821
|
});
|
|
2294
2822
|
|
|
2295
2823
|
// src/components/StnCard.tsx
|
|
2296
|
-
import { forwardRef as
|
|
2297
|
-
import { jsx as
|
|
2824
|
+
import { forwardRef as forwardRef15 } from "react";
|
|
2825
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2298
2826
|
function StnCardHeader({ children, title, extra, className, ...rest }) {
|
|
2299
|
-
return /* @__PURE__ */
|
|
2300
|
-
title ? /* @__PURE__ */
|
|
2827
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("stn-card__header", className), ...rest, children: [
|
|
2828
|
+
title ? /* @__PURE__ */ jsx21("div", { className: "stn-card__header-title", children: title }) : null,
|
|
2301
2829
|
children,
|
|
2302
|
-
extra ? /* @__PURE__ */
|
|
2830
|
+
extra ? /* @__PURE__ */ jsx21("div", { className: "stn-card__header-extra", children: extra }) : null
|
|
2303
2831
|
] });
|
|
2304
2832
|
}
|
|
2305
2833
|
function StnCardBody({ children, className, ...rest }) {
|
|
2306
|
-
return /* @__PURE__ */
|
|
2834
|
+
return /* @__PURE__ */ jsx21("div", { className: cn("stn-card__body", className), ...rest, children });
|
|
2307
2835
|
}
|
|
2308
2836
|
function StnCardFooter({ children, className, ...rest }) {
|
|
2309
|
-
return /* @__PURE__ */
|
|
2837
|
+
return /* @__PURE__ */ jsx21("div", { className: cn("stn-card__footer", className), ...rest, children });
|
|
2310
2838
|
}
|
|
2311
|
-
var StnCard =
|
|
2839
|
+
var StnCard = forwardRef15(function StnCard2({
|
|
2312
2840
|
children,
|
|
2313
2841
|
variant = "flat",
|
|
2314
2842
|
radius = "md",
|
|
@@ -2320,7 +2848,7 @@ var StnCard = forwardRef14(function StnCard2({
|
|
|
2320
2848
|
...rest
|
|
2321
2849
|
}, ref) {
|
|
2322
2850
|
const isClickable = interactive || rest.onClick != null;
|
|
2323
|
-
return /* @__PURE__ */
|
|
2851
|
+
return /* @__PURE__ */ jsx21(
|
|
2324
2852
|
"div",
|
|
2325
2853
|
{
|
|
2326
2854
|
ref,
|
|
@@ -2344,39 +2872,48 @@ StnCard.Body = StnCardBody;
|
|
|
2344
2872
|
StnCard.Footer = StnCardFooter;
|
|
2345
2873
|
|
|
2346
2874
|
// src/patterns/sectionSide/StnSectionSide.tsx
|
|
2347
|
-
import { forwardRef as
|
|
2348
|
-
import { jsx as
|
|
2349
|
-
var StnSectionSide =
|
|
2875
|
+
import { forwardRef as forwardRef16 } from "react";
|
|
2876
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2877
|
+
var StnSectionSide = forwardRef16(function StnSectionSide2({ children, header, footer, className, fill = true, fullWidth = false, scrollProps, ...rest }, ref) {
|
|
2350
2878
|
const { className: scrollClassName, ...scrollRest } = scrollProps ?? {};
|
|
2351
|
-
return /* @__PURE__ */
|
|
2879
|
+
return /* @__PURE__ */ jsxs16(
|
|
2352
2880
|
"aside",
|
|
2353
2881
|
{
|
|
2354
2882
|
ref,
|
|
2355
|
-
className: cn(
|
|
2883
|
+
className: cn(
|
|
2884
|
+
"stn-section-side",
|
|
2885
|
+
fill && "stn-section-side--fill",
|
|
2886
|
+
fullWidth && "is-full-width",
|
|
2887
|
+
className
|
|
2888
|
+
),
|
|
2356
2889
|
"data-stn-section-side": true,
|
|
2357
2890
|
...rest,
|
|
2358
|
-
children:
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2891
|
+
children: [
|
|
2892
|
+
header && /* @__PURE__ */ jsx22("div", { className: "stn-section-side__header", children: header }),
|
|
2893
|
+
/* @__PURE__ */ jsx22(
|
|
2894
|
+
StnScroll,
|
|
2895
|
+
{
|
|
2896
|
+
orientation: "vertical",
|
|
2897
|
+
className: cn("stn-section-side__body", scrollClassName),
|
|
2898
|
+
...scrollRest,
|
|
2899
|
+
children
|
|
2900
|
+
}
|
|
2901
|
+
),
|
|
2902
|
+
footer && /* @__PURE__ */ jsx22("div", { className: "stn-section-side__footer", children: footer })
|
|
2903
|
+
]
|
|
2367
2904
|
}
|
|
2368
2905
|
);
|
|
2369
2906
|
});
|
|
2370
2907
|
function StnSectionSidePreset({ tree, ...sideProps }) {
|
|
2371
|
-
return /* @__PURE__ */
|
|
2908
|
+
return /* @__PURE__ */ jsx22(StnSectionSide, { ...sideProps, children: /* @__PURE__ */ jsx22(StnTree, { heading: "FOLDER STRUCTURE", ...tree }) });
|
|
2372
2909
|
}
|
|
2373
2910
|
|
|
2374
2911
|
// src/patterns/login/StnLoginCard.tsx
|
|
2375
|
-
import { forwardRef as
|
|
2376
|
-
import { jsx as
|
|
2377
|
-
var StnLoginCardGlowWrapper =
|
|
2912
|
+
import { forwardRef as forwardRef17 } from "react";
|
|
2913
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2914
|
+
var StnLoginCardGlowWrapper = forwardRef17(
|
|
2378
2915
|
function StnLoginCardGlowWrapper2({ children, className, ...rest }, ref) {
|
|
2379
|
-
return /* @__PURE__ */
|
|
2916
|
+
return /* @__PURE__ */ jsx23(
|
|
2380
2917
|
"div",
|
|
2381
2918
|
{
|
|
2382
2919
|
ref,
|
|
@@ -2388,7 +2925,7 @@ var StnLoginCardGlowWrapper = forwardRef16(
|
|
|
2388
2925
|
);
|
|
2389
2926
|
}
|
|
2390
2927
|
);
|
|
2391
|
-
var StnLoginCard =
|
|
2928
|
+
var StnLoginCard = forwardRef17(function StnLoginCard2({
|
|
2392
2929
|
brand,
|
|
2393
2930
|
children,
|
|
2394
2931
|
brandPosition = "left",
|
|
@@ -2401,7 +2938,7 @@ var StnLoginCard = forwardRef16(function StnLoginCard2({
|
|
|
2401
2938
|
}, ref) {
|
|
2402
2939
|
const isReversed = reverse || brandPosition === "right";
|
|
2403
2940
|
const hasGlow = glow || variant === "glow";
|
|
2404
|
-
const cardElement = /* @__PURE__ */
|
|
2941
|
+
const cardElement = /* @__PURE__ */ jsxs17(
|
|
2405
2942
|
"div",
|
|
2406
2943
|
{
|
|
2407
2944
|
ref: hasGlow ? void 0 : ref,
|
|
@@ -2409,24 +2946,24 @@ var StnLoginCard = forwardRef16(function StnLoginCard2({
|
|
|
2409
2946
|
"data-stn-login-card": true,
|
|
2410
2947
|
...rest,
|
|
2411
2948
|
children: [
|
|
2412
|
-
brand && /* @__PURE__ */
|
|
2413
|
-
/* @__PURE__ */
|
|
2949
|
+
brand && /* @__PURE__ */ jsx23("div", { className: "stn-login-card__brand", "data-stn-login-card-brand": true, children: brand }),
|
|
2950
|
+
/* @__PURE__ */ jsx23("div", { className: "stn-login-card__form", "data-stn-login-card-form": true, children })
|
|
2414
2951
|
]
|
|
2415
2952
|
}
|
|
2416
2953
|
);
|
|
2417
2954
|
if (hasGlow) {
|
|
2418
|
-
return /* @__PURE__ */
|
|
2955
|
+
return /* @__PURE__ */ jsx23(StnLoginCardGlowWrapper, { ref, className: wrapperClassName, children: cardElement });
|
|
2419
2956
|
}
|
|
2420
2957
|
return cardElement;
|
|
2421
2958
|
});
|
|
2422
|
-
var StnLoginBrandStack =
|
|
2959
|
+
var StnLoginBrandStack = forwardRef17(
|
|
2423
2960
|
function StnLoginBrandStack2({ children, className, ...rest }, ref) {
|
|
2424
|
-
return /* @__PURE__ */
|
|
2961
|
+
return /* @__PURE__ */ jsx23("div", { ref, className: cn("stn-login-brand-stack", className), ...rest, children });
|
|
2425
2962
|
}
|
|
2426
2963
|
);
|
|
2427
|
-
var StnLoginFormStack =
|
|
2964
|
+
var StnLoginFormStack = forwardRef17(
|
|
2428
2965
|
function StnLoginFormStack2({ children, className, ...rest }, ref) {
|
|
2429
|
-
return /* @__PURE__ */
|
|
2966
|
+
return /* @__PURE__ */ jsx23(
|
|
2430
2967
|
"form",
|
|
2431
2968
|
{
|
|
2432
2969
|
ref,
|
|
@@ -2438,9 +2975,9 @@ var StnLoginFormStack = forwardRef16(
|
|
|
2438
2975
|
);
|
|
2439
2976
|
}
|
|
2440
2977
|
);
|
|
2441
|
-
var StnLoginFormFields =
|
|
2978
|
+
var StnLoginFormFields = forwardRef17(
|
|
2442
2979
|
function StnLoginFormFields2({ children, className, ...rest }, ref) {
|
|
2443
|
-
return /* @__PURE__ */
|
|
2980
|
+
return /* @__PURE__ */ jsx23(
|
|
2444
2981
|
"div",
|
|
2445
2982
|
{
|
|
2446
2983
|
ref,
|
|
@@ -2452,9 +2989,9 @@ var StnLoginFormFields = forwardRef16(
|
|
|
2452
2989
|
);
|
|
2453
2990
|
}
|
|
2454
2991
|
);
|
|
2455
|
-
var StnLoginFormLinks =
|
|
2992
|
+
var StnLoginFormLinks = forwardRef17(
|
|
2456
2993
|
function StnLoginFormLinks2({ children, className, ...rest }, ref) {
|
|
2457
|
-
return /* @__PURE__ */
|
|
2994
|
+
return /* @__PURE__ */ jsx23(
|
|
2458
2995
|
"nav",
|
|
2459
2996
|
{
|
|
2460
2997
|
ref,
|
|
@@ -2467,20 +3004,20 @@ var StnLoginFormLinks = forwardRef16(
|
|
|
2467
3004
|
);
|
|
2468
3005
|
}
|
|
2469
3006
|
);
|
|
2470
|
-
var StnLoginPlaceholder =
|
|
3007
|
+
var StnLoginPlaceholder = forwardRef17(
|
|
2471
3008
|
function StnLoginPlaceholder2({ children = "\uC18C\uC15C \uB85C\uADF8\uC778 \uAE30\uB2A5\uC740 \uC900\uBE44 \uC911\uC785\uB2C8\uB2E4.", className, ...rest }, ref) {
|
|
2472
|
-
return /* @__PURE__ */
|
|
3009
|
+
return /* @__PURE__ */ jsx23("p", { ref, className: cn("stn-login__placeholder", className), ...rest, children });
|
|
2473
3010
|
}
|
|
2474
3011
|
);
|
|
2475
3012
|
|
|
2476
3013
|
// src/patterns/login/StnLoginTextField.tsx
|
|
2477
3014
|
import {
|
|
2478
3015
|
cloneElement as cloneElement3,
|
|
2479
|
-
forwardRef as
|
|
3016
|
+
forwardRef as forwardRef18,
|
|
2480
3017
|
isValidElement as isValidElement3
|
|
2481
3018
|
} from "react";
|
|
2482
|
-
import { jsx as
|
|
2483
|
-
var StnLoginTextField =
|
|
3019
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3020
|
+
var StnLoginTextField = forwardRef18(
|
|
2484
3021
|
function StnLoginTextField2({
|
|
2485
3022
|
icon,
|
|
2486
3023
|
iconColor,
|
|
@@ -2495,7 +3032,7 @@ var StnLoginTextField = forwardRef17(
|
|
|
2495
3032
|
let renderedIcon = null;
|
|
2496
3033
|
if (hasIcon) {
|
|
2497
3034
|
if (typeof icon === "string") {
|
|
2498
|
-
renderedIcon = /* @__PURE__ */
|
|
3035
|
+
renderedIcon = /* @__PURE__ */ jsx24(
|
|
2499
3036
|
StnIconBox,
|
|
2500
3037
|
{
|
|
2501
3038
|
icon,
|
|
@@ -2512,7 +3049,7 @@ var StnLoginTextField = forwardRef17(
|
|
|
2512
3049
|
renderedIcon = icon;
|
|
2513
3050
|
}
|
|
2514
3051
|
}
|
|
2515
|
-
return /* @__PURE__ */
|
|
3052
|
+
return /* @__PURE__ */ jsxs18(
|
|
2516
3053
|
"div",
|
|
2517
3054
|
{
|
|
2518
3055
|
className: cn(
|
|
@@ -2522,7 +3059,7 @@ var StnLoginTextField = forwardRef17(
|
|
|
2522
3059
|
),
|
|
2523
3060
|
children: [
|
|
2524
3061
|
renderedIcon,
|
|
2525
|
-
/* @__PURE__ */
|
|
3062
|
+
/* @__PURE__ */ jsx24(
|
|
2526
3063
|
"input",
|
|
2527
3064
|
{
|
|
2528
3065
|
ref,
|
|
@@ -2540,9 +3077,9 @@ var StnLoginTextField = forwardRef17(
|
|
|
2540
3077
|
);
|
|
2541
3078
|
|
|
2542
3079
|
// src/components/StnLogo.tsx
|
|
2543
|
-
import { forwardRef as
|
|
3080
|
+
import { forwardRef as forwardRef19 } from "react";
|
|
2544
3081
|
import { STN_INFOMAP_LOGO } from "@stn-uiux/pub-ui/data/stnBrand";
|
|
2545
|
-
import { jsx as
|
|
3082
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2546
3083
|
function sources(variant) {
|
|
2547
3084
|
if (variant === "onlyimg" || variant === "symbol") {
|
|
2548
3085
|
return { light: STN_INFOMAP_LOGO.onlyImgLight, dark: STN_INFOMAP_LOGO.onlyImgDark };
|
|
@@ -2555,9 +3092,9 @@ function sources(variant) {
|
|
|
2555
3092
|
}
|
|
2556
3093
|
return { light: STN_INFOMAP_LOGO.full, dark: STN_INFOMAP_LOGO.fullDark };
|
|
2557
3094
|
}
|
|
2558
|
-
var StnLogo =
|
|
3095
|
+
var StnLogo = forwardRef19(function StnLogo2({ variant = "horizontal", size = "md", theme, alt = "InfoMap SRM", className, ...rest }, ref) {
|
|
2559
3096
|
const { light, dark } = sources(variant);
|
|
2560
|
-
return /* @__PURE__ */
|
|
3097
|
+
return /* @__PURE__ */ jsxs19(
|
|
2561
3098
|
"span",
|
|
2562
3099
|
{
|
|
2563
3100
|
ref,
|
|
@@ -2565,17 +3102,17 @@ var StnLogo = forwardRef18(function StnLogo2({ variant = "horizontal", size = "m
|
|
|
2565
3102
|
"data-theme": theme,
|
|
2566
3103
|
...rest,
|
|
2567
3104
|
children: [
|
|
2568
|
-
/* @__PURE__ */
|
|
2569
|
-
/* @__PURE__ */
|
|
3105
|
+
/* @__PURE__ */ jsx25("img", { className: "stn-logo__img light", src: light, alt: theme === "dark" ? "" : alt }),
|
|
3106
|
+
/* @__PURE__ */ jsx25("img", { className: "stn-logo__img dark", src: dark, alt: theme === "light" ? "" : alt })
|
|
2570
3107
|
]
|
|
2571
3108
|
}
|
|
2572
3109
|
);
|
|
2573
3110
|
});
|
|
2574
3111
|
|
|
2575
3112
|
// src/components/StnBadge.tsx
|
|
2576
|
-
import
|
|
2577
|
-
import { jsx as
|
|
2578
|
-
var StnBadge =
|
|
3113
|
+
import React2 from "react";
|
|
3114
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3115
|
+
var StnBadge = React2.forwardRef(
|
|
2579
3116
|
({
|
|
2580
3117
|
badgeContent,
|
|
2581
3118
|
variant = "standard",
|
|
@@ -2617,7 +3154,7 @@ var StnBadge = React.forwardRef(
|
|
|
2617
3154
|
...badgeStyle,
|
|
2618
3155
|
...isStandalone && style ? style : {}
|
|
2619
3156
|
};
|
|
2620
|
-
const badgeElement = /* @__PURE__ */
|
|
3157
|
+
const badgeElement = /* @__PURE__ */ jsx26(
|
|
2621
3158
|
"span",
|
|
2622
3159
|
{
|
|
2623
3160
|
ref: isStandalone ? ref : void 0,
|
|
@@ -2641,7 +3178,7 @@ var StnBadge = React.forwardRef(
|
|
|
2641
3178
|
if (isStandalone) {
|
|
2642
3179
|
return badgeElement;
|
|
2643
3180
|
}
|
|
2644
|
-
return /* @__PURE__ */
|
|
3181
|
+
return /* @__PURE__ */ jsxs20("span", { ref, className: cn("stn-badge-root", className), style, ...restProps, children: [
|
|
2645
3182
|
children,
|
|
2646
3183
|
badgeElement
|
|
2647
3184
|
] });
|
|
@@ -2653,11 +3190,11 @@ StnBadge.displayName = "StnBadge";
|
|
|
2653
3190
|
import {
|
|
2654
3191
|
STN_GRADE_SOURCE
|
|
2655
3192
|
} from "@stn-uiux/pub-ui/data/stnChip";
|
|
2656
|
-
import { jsx as
|
|
3193
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2657
3194
|
function hasSideLabel(sideLabel) {
|
|
2658
3195
|
return sideLabel !== void 0 && sideLabel !== null && sideLabel !== "";
|
|
2659
3196
|
}
|
|
2660
|
-
var DefaultDeleteIcon = () => /* @__PURE__ */
|
|
3197
|
+
var DefaultDeleteIcon = () => /* @__PURE__ */ jsx27("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx27("path", { d: "M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" }) });
|
|
2661
3198
|
function StnChip(props) {
|
|
2662
3199
|
const {
|
|
2663
3200
|
variant = "filled",
|
|
@@ -2712,9 +3249,9 @@ function StnChip(props) {
|
|
|
2712
3249
|
onClick?.(e);
|
|
2713
3250
|
}
|
|
2714
3251
|
};
|
|
2715
|
-
const iconElement = icon ? /* @__PURE__ */
|
|
2716
|
-
const contentElement = /* @__PURE__ */
|
|
2717
|
-
const deleteElement = onDelete ? /* @__PURE__ */
|
|
3252
|
+
const iconElement = icon ? /* @__PURE__ */ jsx27("span", { className: "stn-chip__icon", children: icon }) : null;
|
|
3253
|
+
const contentElement = /* @__PURE__ */ jsx27("span", { className: "stn-chip__label", children: content });
|
|
3254
|
+
const deleteElement = onDelete ? /* @__PURE__ */ jsx27(
|
|
2718
3255
|
"button",
|
|
2719
3256
|
{
|
|
2720
3257
|
type: "button",
|
|
@@ -2724,7 +3261,7 @@ function StnChip(props) {
|
|
|
2724
3261
|
e.stopPropagation();
|
|
2725
3262
|
onDelete(e);
|
|
2726
3263
|
},
|
|
2727
|
-
children: deleteIcon ?? /* @__PURE__ */
|
|
3264
|
+
children: deleteIcon ?? /* @__PURE__ */ jsx27(DefaultDeleteIcon, {})
|
|
2728
3265
|
}
|
|
2729
3266
|
) : null;
|
|
2730
3267
|
const elements = [];
|
|
@@ -2741,7 +3278,7 @@ function StnChip(props) {
|
|
|
2741
3278
|
if (deleteElement && deleteIconPosition === "right") {
|
|
2742
3279
|
elements.push(deleteElement);
|
|
2743
3280
|
}
|
|
2744
|
-
const chip = /* @__PURE__ */
|
|
3281
|
+
const chip = /* @__PURE__ */ jsx27(
|
|
2745
3282
|
"span",
|
|
2746
3283
|
{
|
|
2747
3284
|
role,
|
|
@@ -2766,241 +3303,19 @@ function StnChip(props) {
|
|
|
2766
3303
|
if (!hasSideLabel(resolvedSideLabel)) {
|
|
2767
3304
|
return chip;
|
|
2768
3305
|
}
|
|
2769
|
-
return /* @__PURE__ */
|
|
3306
|
+
return /* @__PURE__ */ jsxs21("span", { className: cn("stn-chip-wrap", positionClass, className), children: [
|
|
2770
3307
|
chip,
|
|
2771
|
-
/* @__PURE__ */
|
|
3308
|
+
/* @__PURE__ */ jsx27("span", { className: "stn-chip__side", children: resolvedSideLabel })
|
|
2772
3309
|
] });
|
|
2773
3310
|
}
|
|
2774
3311
|
|
|
2775
|
-
// src/components/StnSeverityBadge.tsx
|
|
2776
|
-
import React2 from "react";
|
|
2777
|
-
import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2778
|
-
var SEVERITY_DEFAULT_LABELS = {
|
|
2779
|
-
critical: "Critical",
|
|
2780
|
-
major: "Major",
|
|
2781
|
-
minor: "Minor",
|
|
2782
|
-
warning: "Warning"
|
|
2783
|
-
};
|
|
2784
|
-
var SEVERITY_ICONS = {
|
|
2785
|
-
critical: "fill/alert4",
|
|
2786
|
-
major: "fill/alert3",
|
|
2787
|
-
minor: "fill/alert2",
|
|
2788
|
-
warning: "fill/alert1"
|
|
2789
|
-
};
|
|
2790
|
-
var StnSeverityBadge = React2.forwardRef(
|
|
2791
|
-
({
|
|
2792
|
-
severity,
|
|
2793
|
-
variant = "badge",
|
|
2794
|
-
size = "md",
|
|
2795
|
-
round = false,
|
|
2796
|
-
showIcon = true,
|
|
2797
|
-
iconOnly = false,
|
|
2798
|
-
glow = false,
|
|
2799
|
-
blur = false,
|
|
2800
|
-
label,
|
|
2801
|
-
active = false,
|
|
2802
|
-
onClick,
|
|
2803
|
-
className = "",
|
|
2804
|
-
children,
|
|
2805
|
-
...restProps
|
|
2806
|
-
}, ref) => {
|
|
2807
|
-
const isFilter = variant === "filter";
|
|
2808
|
-
const isInteractive = isFilter || Boolean(onClick);
|
|
2809
|
-
const Component = isInteractive ? "button" : "span";
|
|
2810
|
-
const isIconOnly = Boolean(iconOnly);
|
|
2811
|
-
const hasGlow = Boolean(glow || blur || variant === "glow");
|
|
2812
|
-
const classNames = [
|
|
2813
|
-
"stn-severity-badge",
|
|
2814
|
-
isFilter ? "filter" : "badge",
|
|
2815
|
-
size,
|
|
2816
|
-
round ? "round" : "",
|
|
2817
|
-
isIconOnly ? "icon-only" : "",
|
|
2818
|
-
hasGlow ? "glow" : "",
|
|
2819
|
-
severity,
|
|
2820
|
-
active ? "is-active" : "",
|
|
2821
|
-
className
|
|
2822
|
-
].filter(Boolean).join(" ");
|
|
2823
|
-
const defaultLabel = SEVERITY_DEFAULT_LABELS[severity];
|
|
2824
|
-
const displayLabel = children ?? label ?? defaultLabel;
|
|
2825
|
-
const iconName = SEVERITY_ICONS[severity];
|
|
2826
|
-
const elementProps = {
|
|
2827
|
-
ref,
|
|
2828
|
-
className: classNames,
|
|
2829
|
-
onClick,
|
|
2830
|
-
title: restProps.title ?? (isIconOnly ? defaultLabel : void 0),
|
|
2831
|
-
"aria-label": restProps["aria-label"] ?? (isIconOnly ? defaultLabel : void 0),
|
|
2832
|
-
...restProps
|
|
2833
|
-
};
|
|
2834
|
-
if (Component === "button") {
|
|
2835
|
-
elementProps.type = restProps.type || "button";
|
|
2836
|
-
if (isFilter) {
|
|
2837
|
-
elementProps["aria-pressed"] = active;
|
|
2838
|
-
}
|
|
2839
|
-
}
|
|
2840
|
-
const iconSize = isFilter ? 16 : size === "sm" ? 12 : size === "lg" ? 16 : 14;
|
|
2841
|
-
return /* @__PURE__ */ jsxs19(Component, { ...elementProps, children: [
|
|
2842
|
-
(showIcon || isIconOnly) && /* @__PURE__ */ jsx26(
|
|
2843
|
-
StnIcon,
|
|
2844
|
-
{
|
|
2845
|
-
name: iconName,
|
|
2846
|
-
size: iconSize,
|
|
2847
|
-
className: "stn-severity-badge__icon",
|
|
2848
|
-
color: "none",
|
|
2849
|
-
"aria-hidden": "true"
|
|
2850
|
-
}
|
|
2851
|
-
),
|
|
2852
|
-
!isIconOnly && /* @__PURE__ */ jsx26("span", { className: "stn-severity-badge__label", children: displayLabel })
|
|
2853
|
-
] });
|
|
2854
|
-
}
|
|
2855
|
-
);
|
|
2856
|
-
StnSeverityBadge.displayName = "StnSeverityBadge";
|
|
2857
|
-
var ALL_SEVERITIES = ["critical", "major", "minor", "warning"];
|
|
2858
|
-
var StnSeverityFilter = ({
|
|
2859
|
-
value = ALL_SEVERITIES,
|
|
2860
|
-
onChange,
|
|
2861
|
-
disabledSeverities = [],
|
|
2862
|
-
showIcon = true,
|
|
2863
|
-
className = ""
|
|
2864
|
-
}) => {
|
|
2865
|
-
const handleToggle = (sev) => {
|
|
2866
|
-
if (!onChange) return;
|
|
2867
|
-
const exists = value.includes(sev);
|
|
2868
|
-
const next = exists ? value.filter((item) => item !== sev) : [...value, sev];
|
|
2869
|
-
onChange(next);
|
|
2870
|
-
};
|
|
2871
|
-
return /* @__PURE__ */ jsx26("div", { className: `stn-severity-filter-group ${className}`.trim(), role: "group", "aria-label": "\uC2EC\uAC01\uB3C4 \uD544\uD130", children: ALL_SEVERITIES.map((sev) => {
|
|
2872
|
-
const isActive = value.includes(sev);
|
|
2873
|
-
const isDisabled = disabledSeverities.includes(sev);
|
|
2874
|
-
return /* @__PURE__ */ jsx26(
|
|
2875
|
-
StnSeverityBadge,
|
|
2876
|
-
{
|
|
2877
|
-
severity: sev,
|
|
2878
|
-
variant: "filter",
|
|
2879
|
-
showIcon,
|
|
2880
|
-
active: isActive,
|
|
2881
|
-
disabled: isDisabled,
|
|
2882
|
-
onClick: () => !isDisabled && handleToggle(sev)
|
|
2883
|
-
},
|
|
2884
|
-
sev
|
|
2885
|
-
);
|
|
2886
|
-
}) });
|
|
2887
|
-
};
|
|
2888
|
-
StnSeverityFilter.displayName = "StnSeverityFilter";
|
|
2889
|
-
|
|
2890
|
-
// src/components/StnSystemChip.tsx
|
|
2891
|
-
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2892
|
-
var DEFAULT_TONE_LABELS = {
|
|
2893
|
-
cr: "CR",
|
|
2894
|
-
mj: "MJ",
|
|
2895
|
-
mn: "MN",
|
|
2896
|
-
wr: "WR",
|
|
2897
|
-
critical: "CR",
|
|
2898
|
-
major: "MJ",
|
|
2899
|
-
minor: "MN",
|
|
2900
|
-
warning: "WR",
|
|
2901
|
-
info: "Info",
|
|
2902
|
-
success: "Success",
|
|
2903
|
-
teal: "WR"
|
|
2904
|
-
};
|
|
2905
|
-
var TONE_PRIORITY = ["cr", "critical", "mj", "major", "mn", "minor", "wr", "warning", "teal"];
|
|
2906
|
-
function canonicalTone(tone) {
|
|
2907
|
-
const raw = tone ? tone.toLowerCase() : "info";
|
|
2908
|
-
if (raw === "critical") return "cr";
|
|
2909
|
-
if (raw === "major") return "mj";
|
|
2910
|
-
if (raw === "minor") return "mn";
|
|
2911
|
-
if (raw === "warning" || raw === "teal") return "wr";
|
|
2912
|
-
return raw;
|
|
2913
|
-
}
|
|
2914
|
-
function pickPrimaryIndex(items) {
|
|
2915
|
-
for (const tone of TONE_PRIORITY) {
|
|
2916
|
-
const index = items.findIndex((item) => {
|
|
2917
|
-
const t = canonicalTone(item.tone);
|
|
2918
|
-
const value = Number(item.value ?? item.count ?? 0);
|
|
2919
|
-
return t === tone && Number.isFinite(value) && value > 0;
|
|
2920
|
-
});
|
|
2921
|
-
if (index >= 0) return index;
|
|
2922
|
-
}
|
|
2923
|
-
return 0;
|
|
2924
|
-
}
|
|
2925
|
-
function StnSystemChip({
|
|
2926
|
-
items,
|
|
2927
|
-
showLabel = false,
|
|
2928
|
-
border = true,
|
|
2929
|
-
bordered = true,
|
|
2930
|
-
textPosition = "right",
|
|
2931
|
-
compact,
|
|
2932
|
-
className,
|
|
2933
|
-
...rest
|
|
2934
|
-
}) {
|
|
2935
|
-
const primaryIndex = pickPrimaryIndex(items);
|
|
2936
|
-
const hasBorder = border !== false && bordered !== false;
|
|
2937
|
-
return /* @__PURE__ */ jsx27(
|
|
2938
|
-
"div",
|
|
2939
|
-
{
|
|
2940
|
-
className: cn(
|
|
2941
|
-
"stn-system-chip",
|
|
2942
|
-
!hasBorder && "no-border stn-system-chip--no-border",
|
|
2943
|
-
textPosition === "left" && "stn-system-chip--text-left",
|
|
2944
|
-
showLabel && "stn-system-chip--labeled",
|
|
2945
|
-
compact === true && "compact",
|
|
2946
|
-
className
|
|
2947
|
-
),
|
|
2948
|
-
role: "group",
|
|
2949
|
-
"aria-label": "System status chip",
|
|
2950
|
-
...compact === void 0 ? {} : { "data-compact": compact ? "true" : "false" },
|
|
2951
|
-
...rest,
|
|
2952
|
-
children: items.map((item, index) => {
|
|
2953
|
-
const tone = canonicalTone(item.tone);
|
|
2954
|
-
const isNamedTone = [
|
|
2955
|
-
"cr",
|
|
2956
|
-
"mj",
|
|
2957
|
-
"mn",
|
|
2958
|
-
"wr",
|
|
2959
|
-
"info",
|
|
2960
|
-
"success",
|
|
2961
|
-
"purple",
|
|
2962
|
-
"neutral"
|
|
2963
|
-
].includes(tone);
|
|
2964
|
-
const dotStyle = item.dotColor ? { backgroundColor: item.dotColor } : !isNamedTone && item.tone ? { backgroundColor: item.tone } : void 0;
|
|
2965
|
-
const displayValue = item.value ?? item.count ?? 0;
|
|
2966
|
-
const displayLabel = item.label ?? (showLabel ? DEFAULT_TONE_LABELS[tone] || item.tone && DEFAULT_TONE_LABELS[item.tone] : void 0);
|
|
2967
|
-
return /* @__PURE__ */ jsxs20(
|
|
2968
|
-
"div",
|
|
2969
|
-
{
|
|
2970
|
-
className: cn(
|
|
2971
|
-
"stn-system-chip__item",
|
|
2972
|
-
index === primaryIndex && "stn-system-chip__item--primary"
|
|
2973
|
-
),
|
|
2974
|
-
children: [
|
|
2975
|
-
/* @__PURE__ */ jsx27(
|
|
2976
|
-
"span",
|
|
2977
|
-
{
|
|
2978
|
-
className: cn(
|
|
2979
|
-
"stn-system-chip__dot",
|
|
2980
|
-
isNamedTone && `stn-system-chip__dot--${tone}`
|
|
2981
|
-
),
|
|
2982
|
-
style: dotStyle,
|
|
2983
|
-
"aria-hidden": "true"
|
|
2984
|
-
}
|
|
2985
|
-
),
|
|
2986
|
-
displayLabel ? /* @__PURE__ */ jsx27("span", { className: "stn-system-chip__label", children: displayLabel }) : null,
|
|
2987
|
-
/* @__PURE__ */ jsx27("span", { className: "stn-system-chip__count", children: displayValue })
|
|
2988
|
-
]
|
|
2989
|
-
},
|
|
2990
|
-
item.id
|
|
2991
|
-
);
|
|
2992
|
-
})
|
|
2993
|
-
}
|
|
2994
|
-
);
|
|
2995
|
-
}
|
|
2996
|
-
|
|
2997
3312
|
// src/components/StnToggleButton.tsx
|
|
2998
3313
|
import {
|
|
2999
|
-
forwardRef as
|
|
3000
|
-
useState as
|
|
3314
|
+
forwardRef as forwardRef20,
|
|
3315
|
+
useState as useState8
|
|
3001
3316
|
} from "react";
|
|
3002
|
-
import { Fragment as
|
|
3003
|
-
var StnToggleButton =
|
|
3317
|
+
import { Fragment as Fragment3, jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3318
|
+
var StnToggleButton = forwardRef20(
|
|
3004
3319
|
function StnToggleButton2({
|
|
3005
3320
|
pressed: pressedProp,
|
|
3006
3321
|
defaultPressed = false,
|
|
@@ -3022,7 +3337,7 @@ var StnToggleButton = forwardRef19(
|
|
|
3022
3337
|
...rest
|
|
3023
3338
|
}, ref) {
|
|
3024
3339
|
const isControlled = pressedProp !== void 0;
|
|
3025
|
-
const [internalPressed, setInternalPressed] =
|
|
3340
|
+
const [internalPressed, setInternalPressed] = useState8(defaultPressed);
|
|
3026
3341
|
const isPressed = isControlled ? Boolean(pressedProp) : internalPressed;
|
|
3027
3342
|
const hasGradient = gradient && gradient !== "none";
|
|
3028
3343
|
const isKnownTone = [
|
|
@@ -3086,10 +3401,10 @@ var StnToggleButton = forwardRef19(
|
|
|
3086
3401
|
style: combinedStyle,
|
|
3087
3402
|
onClick: handleClick,
|
|
3088
3403
|
...rest,
|
|
3089
|
-
children: iconPosition === "right" ? /* @__PURE__ */
|
|
3404
|
+
children: iconPosition === "right" ? /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
3090
3405
|
children,
|
|
3091
3406
|
renderedIcon
|
|
3092
|
-
] }) : /* @__PURE__ */
|
|
3407
|
+
] }) : /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
3093
3408
|
renderedIcon,
|
|
3094
3409
|
children
|
|
3095
3410
|
] })
|
|
@@ -3099,9 +3414,9 @@ var StnToggleButton = forwardRef19(
|
|
|
3099
3414
|
);
|
|
3100
3415
|
|
|
3101
3416
|
// src/components/StnSwitch.tsx
|
|
3102
|
-
import { forwardRef as
|
|
3103
|
-
import { jsx as jsx29, jsxs as
|
|
3104
|
-
var StnSwitch =
|
|
3417
|
+
import { forwardRef as forwardRef21, useId as useId5 } from "react";
|
|
3418
|
+
import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3419
|
+
var StnSwitch = forwardRef21(function StnSwitch2({
|
|
3105
3420
|
label,
|
|
3106
3421
|
size = "md",
|
|
3107
3422
|
color,
|
|
@@ -3153,7 +3468,7 @@ var StnSwitch = forwardRef20(function StnSwitch2({
|
|
|
3153
3468
|
"--stn-switch-track-checked": color
|
|
3154
3469
|
} : void 0;
|
|
3155
3470
|
const sizeClass5 = size !== "md" ? size : "";
|
|
3156
|
-
return /* @__PURE__ */
|
|
3471
|
+
return /* @__PURE__ */ jsxs23(
|
|
3157
3472
|
"label",
|
|
3158
3473
|
{
|
|
3159
3474
|
className: cn(
|
|
@@ -3182,7 +3497,7 @@ var StnSwitch = forwardRef20(function StnSwitch2({
|
|
|
3182
3497
|
}
|
|
3183
3498
|
),
|
|
3184
3499
|
/* @__PURE__ */ jsx29("span", { className: "stn-switch__control", "aria-hidden": "true", children: /* @__PURE__ */ jsx29("span", { className: "stn-switch__thumb" }) }),
|
|
3185
|
-
label != null && label !== "" ? /* @__PURE__ */
|
|
3500
|
+
label != null && label !== "" ? /* @__PURE__ */ jsxs23("span", { className: "stn-switch__label", children: [
|
|
3186
3501
|
label,
|
|
3187
3502
|
required && /* @__PURE__ */ jsx29("span", { className: "stn-switch__required", "aria-hidden": "true", children: "*" })
|
|
3188
3503
|
] }) : null
|
|
@@ -3192,9 +3507,9 @@ var StnSwitch = forwardRef20(function StnSwitch2({
|
|
|
3192
3507
|
});
|
|
3193
3508
|
|
|
3194
3509
|
// src/components/StnRadio.tsx
|
|
3195
|
-
import { forwardRef as
|
|
3196
|
-
import { jsx as jsx30, jsxs as
|
|
3197
|
-
var StnRadio =
|
|
3510
|
+
import { forwardRef as forwardRef22, useId as useId6 } from "react";
|
|
3511
|
+
import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3512
|
+
var StnRadio = forwardRef22(function StnRadio2({
|
|
3198
3513
|
label,
|
|
3199
3514
|
size = "md",
|
|
3200
3515
|
color,
|
|
@@ -3225,7 +3540,7 @@ var StnRadio = forwardRef21(function StnRadio2({
|
|
|
3225
3540
|
"--stn-radio-dot": color,
|
|
3226
3541
|
"--stn-radio-checked-border": color
|
|
3227
3542
|
} : void 0;
|
|
3228
|
-
return /* @__PURE__ */
|
|
3543
|
+
return /* @__PURE__ */ jsxs24(
|
|
3229
3544
|
"span",
|
|
3230
3545
|
{
|
|
3231
3546
|
className: cn(
|
|
@@ -3241,7 +3556,7 @@ var StnRadio = forwardRef21(function StnRadio2({
|
|
|
3241
3556
|
style: inlineStyle,
|
|
3242
3557
|
children: [
|
|
3243
3558
|
/* @__PURE__ */ jsx30("input", { ref, type: "radio", id, disabled, required, ...rest }),
|
|
3244
|
-
/* @__PURE__ */
|
|
3559
|
+
/* @__PURE__ */ jsxs24("label", { htmlFor: id, "aria-hidden": isControlOnly ? true : void 0, children: [
|
|
3245
3560
|
label,
|
|
3246
3561
|
required && !isControlOnly && /* @__PURE__ */ jsx30("span", { className: "stn-radio__required", "aria-hidden": "true", children: "*" })
|
|
3247
3562
|
] })
|
|
@@ -3303,7 +3618,7 @@ function StnRadioGroup({
|
|
|
3303
3618
|
|
|
3304
3619
|
// src/components/StnSegmented.tsx
|
|
3305
3620
|
import { useId as useId8 } from "react";
|
|
3306
|
-
import { jsx as jsx32, jsxs as
|
|
3621
|
+
import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3307
3622
|
function renderSegmentedIcon(icon, size) {
|
|
3308
3623
|
if (!icon) return null;
|
|
3309
3624
|
if (typeof icon === "string") {
|
|
@@ -3318,6 +3633,8 @@ function StnSegmented(props) {
|
|
|
3318
3633
|
size = "md",
|
|
3319
3634
|
orientation = "horizontal",
|
|
3320
3635
|
vertical = false,
|
|
3636
|
+
fullWidth = false,
|
|
3637
|
+
width,
|
|
3321
3638
|
block = false,
|
|
3322
3639
|
disabled = false,
|
|
3323
3640
|
color,
|
|
@@ -3329,6 +3646,7 @@ function StnSegmented(props) {
|
|
|
3329
3646
|
const name = nameProp ?? `stn-segmented-${autoName}`;
|
|
3330
3647
|
const multiple = props.multiple === true;
|
|
3331
3648
|
const isVertical = vertical || orientation === "vertical";
|
|
3649
|
+
const isFull = Boolean(fullWidth || width === "full" || block);
|
|
3332
3650
|
function isSelected(optionValue) {
|
|
3333
3651
|
if (multiple) return props.value.includes(optionValue);
|
|
3334
3652
|
return props.value === optionValue;
|
|
@@ -3349,7 +3667,7 @@ function StnSegmented(props) {
|
|
|
3349
3667
|
"stn-segmented",
|
|
3350
3668
|
isVertical && "vertical",
|
|
3351
3669
|
size !== "md" && size,
|
|
3352
|
-
|
|
3670
|
+
isFull && "full block",
|
|
3353
3671
|
multiple && "stn-segmented--multiple",
|
|
3354
3672
|
color,
|
|
3355
3673
|
className
|
|
@@ -3362,7 +3680,7 @@ function StnSegmented(props) {
|
|
|
3362
3680
|
const itemDisabled = disabled || opt.disabled;
|
|
3363
3681
|
const isIconOnly = Boolean(opt.icon && !opt.label);
|
|
3364
3682
|
const ariaLabelText = opt["aria-label"] || (isIconOnly && typeof opt.value === "string" ? opt.value : void 0);
|
|
3365
|
-
return /* @__PURE__ */
|
|
3683
|
+
return /* @__PURE__ */ jsxs25(
|
|
3366
3684
|
"button",
|
|
3367
3685
|
{
|
|
3368
3686
|
id: opt.id,
|
|
@@ -3399,38 +3717,9 @@ import {
|
|
|
3399
3717
|
useEffect as useEffect7,
|
|
3400
3718
|
useId as useId9,
|
|
3401
3719
|
useRef as useRef5,
|
|
3402
|
-
useState as
|
|
3720
|
+
useState as useState9
|
|
3403
3721
|
} from "react";
|
|
3404
|
-
|
|
3405
|
-
// src/inputWidth.ts
|
|
3406
|
-
import {
|
|
3407
|
-
resolveStnInputWidth
|
|
3408
|
-
} from "@stn-uiux/pub-ui/data/stnInputWidth";
|
|
3409
|
-
function resolveInputWidthProps(_prefix, fullWidth, width) {
|
|
3410
|
-
const resolved = resolveStnInputWidth(fullWidth, width);
|
|
3411
|
-
if (resolved.kind === "full") {
|
|
3412
|
-
return {
|
|
3413
|
-
className: "full",
|
|
3414
|
-
style: void 0
|
|
3415
|
-
};
|
|
3416
|
-
}
|
|
3417
|
-
if (resolved.kind === "preset" && resolved.preset != null) {
|
|
3418
|
-
return {
|
|
3419
|
-
className: `w${resolved.preset}`,
|
|
3420
|
-
style: void 0
|
|
3421
|
-
};
|
|
3422
|
-
}
|
|
3423
|
-
if (resolved.kind === "custom" && resolved.styleWidth != null) {
|
|
3424
|
-
return {
|
|
3425
|
-
className: "",
|
|
3426
|
-
style: { width: resolved.styleWidth }
|
|
3427
|
-
};
|
|
3428
|
-
}
|
|
3429
|
-
return { className: "", style: void 0 };
|
|
3430
|
-
}
|
|
3431
|
-
|
|
3432
|
-
// src/components/StnDropdown.tsx
|
|
3433
|
-
import { jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3722
|
+
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3434
3723
|
function resolveGlyph(node) {
|
|
3435
3724
|
if (typeof node === "string") return /* @__PURE__ */ jsx33(StnIcon, { name: node, size: 16, color: "currentColor" });
|
|
3436
3725
|
return node;
|
|
@@ -3459,7 +3748,7 @@ function variantClass(variant = "outline") {
|
|
|
3459
3748
|
return "outline";
|
|
3460
3749
|
}
|
|
3461
3750
|
function useControllable(controlled, defaultValue, onChange) {
|
|
3462
|
-
const [internal, setInternal] =
|
|
3751
|
+
const [internal, setInternal] = useState9(defaultValue);
|
|
3463
3752
|
const value = controlled ?? internal;
|
|
3464
3753
|
const setValue = useCallback5(
|
|
3465
3754
|
(next) => {
|
|
@@ -3501,7 +3790,7 @@ function StnDropdown({
|
|
|
3501
3790
|
const autoId = useId9();
|
|
3502
3791
|
const rootId = idProp ?? `stn-dropdown-${autoId.replace(/:/g, "")}`;
|
|
3503
3792
|
const [value, setValue] = useControllable(valueProp, defaultValue, onChange);
|
|
3504
|
-
const [open, setOpen] =
|
|
3793
|
+
const [open, setOpen] = useState9(false);
|
|
3505
3794
|
const rootRef = useRef5(null);
|
|
3506
3795
|
const selected = options.find((o) => o.value === value);
|
|
3507
3796
|
const hasValue = selected !== void 0 && value !== "";
|
|
@@ -3573,7 +3862,7 @@ function StnDropdown({
|
|
|
3573
3862
|
setValue(enabledOptions[nextIndex].value);
|
|
3574
3863
|
}
|
|
3575
3864
|
};
|
|
3576
|
-
const dropdownNode = /* @__PURE__ */
|
|
3865
|
+
const dropdownNode = /* @__PURE__ */ jsxs26(
|
|
3577
3866
|
"div",
|
|
3578
3867
|
{
|
|
3579
3868
|
ref: rootRef,
|
|
@@ -3624,13 +3913,13 @@ function StnDropdown({
|
|
|
3624
3913
|
const hasWrap = hasLabel || hasHelper;
|
|
3625
3914
|
if (!hasWrap) return dropdownNode;
|
|
3626
3915
|
const resolvedLabelIcon = labelIcon ?? icon;
|
|
3627
|
-
const labelElement = hasLabel ? /* @__PURE__ */
|
|
3916
|
+
const labelElement = hasLabel ? /* @__PURE__ */ jsxs26("label", { htmlFor: rootId, className: "stn-dropdown__label", children: [
|
|
3628
3917
|
resolvedLabelIcon ? /* @__PURE__ */ jsx33("span", { className: "stn-dropdown__label-icon", "aria-hidden": "true", children: resolveGlyph(resolvedLabelIcon) }) : null,
|
|
3629
3918
|
/* @__PURE__ */ jsx33("span", { className: "stn-dropdown__label-text", children: label }),
|
|
3630
3919
|
required && /* @__PURE__ */ jsx33("span", { className: "stn-dropdown__required", "aria-hidden": "true", children: "*" })
|
|
3631
3920
|
] }) : null;
|
|
3632
3921
|
const isRow = labelPosition === "left" || labelPosition === "right";
|
|
3633
|
-
return /* @__PURE__ */
|
|
3922
|
+
return /* @__PURE__ */ jsxs26(
|
|
3634
3923
|
"div",
|
|
3635
3924
|
{
|
|
3636
3925
|
className: cn(
|
|
@@ -3648,7 +3937,7 @@ function StnDropdown({
|
|
|
3648
3937
|
...divRest,
|
|
3649
3938
|
children: [
|
|
3650
3939
|
hasLabel && (labelPosition === "left" || labelPosition === "top") ? labelElement : null,
|
|
3651
|
-
/* @__PURE__ */
|
|
3940
|
+
/* @__PURE__ */ jsxs26("div", { className: "stn-dropdown-wrap__body", children: [
|
|
3652
3941
|
dropdownNode,
|
|
3653
3942
|
hasHelper && /* @__PURE__ */ jsx33(
|
|
3654
3943
|
"span",
|
|
@@ -3682,8 +3971,8 @@ function StnDropdownMenu({
|
|
|
3682
3971
|
}
|
|
3683
3972
|
|
|
3684
3973
|
// src/components/StnTextField.tsx
|
|
3685
|
-
import { forwardRef as
|
|
3686
|
-
import { jsx as jsx35, jsxs as
|
|
3974
|
+
import { forwardRef as forwardRef23, useId as useId10 } from "react";
|
|
3975
|
+
import { jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3687
3976
|
function normalizeSize(size) {
|
|
3688
3977
|
if (!size) return "M";
|
|
3689
3978
|
const u = String(size).toUpperCase();
|
|
@@ -3713,7 +4002,7 @@ function resolveGlyph2(node) {
|
|
|
3713
4002
|
if (typeof node === "string") return /* @__PURE__ */ jsx35(StnIcon, { name: node, size: 16, color: "currentColor" });
|
|
3714
4003
|
return node;
|
|
3715
4004
|
}
|
|
3716
|
-
var StnTextField =
|
|
4005
|
+
var StnTextField = forwardRef23(function StnTextField2({
|
|
3717
4006
|
size = "M",
|
|
3718
4007
|
variant = "outlined",
|
|
3719
4008
|
color,
|
|
@@ -3755,8 +4044,8 @@ var StnTextField = forwardRef22(function StnTextField2({
|
|
|
3755
4044
|
sizeClass2(size),
|
|
3756
4045
|
colorClass(color),
|
|
3757
4046
|
!hasWrap && widthProps.className,
|
|
3758
|
-
invalid && "
|
|
3759
|
-
hasSlot && "
|
|
4047
|
+
invalid && "invalid",
|
|
4048
|
+
hasSlot && "with-icon",
|
|
3760
4049
|
className
|
|
3761
4050
|
);
|
|
3762
4051
|
const input = /* @__PURE__ */ jsx35(
|
|
@@ -3774,19 +4063,19 @@ var StnTextField = forwardRef22(function StnTextField2({
|
|
|
3774
4063
|
...rest
|
|
3775
4064
|
}
|
|
3776
4065
|
);
|
|
3777
|
-
const field = hasSlot ? /* @__PURE__ */
|
|
4066
|
+
const field = hasSlot ? /* @__PURE__ */ jsxs27("div", { className: fieldClass, style: hasWrap ? void 0 : widthProps.style, children: [
|
|
3778
4067
|
hasLeft ? /* @__PURE__ */ jsx35("span", { className: "stn-text-field__icon-left", "aria-hidden": true, children: /* @__PURE__ */ jsx35("span", { className: "stn-text-field__icon-box", children: resolveGlyph2(leftNode) }) }) : null,
|
|
3779
4068
|
input,
|
|
3780
4069
|
hasRight ? /* @__PURE__ */ jsx35("span", { className: "stn-text-field__icon-right", "aria-hidden": true, children: /* @__PURE__ */ jsx35("span", { className: "stn-text-field__icon-box", children: resolveGlyph2(rightNode) }) }) : null
|
|
3781
4070
|
] }) : input;
|
|
3782
4071
|
if (!hasWrap) return field;
|
|
3783
|
-
const labelElement = hasLabel ? /* @__PURE__ */
|
|
4072
|
+
const labelElement = hasLabel ? /* @__PURE__ */ jsxs27("label", { htmlFor: id, className: "stn-text-field__label", children: [
|
|
3784
4073
|
labelIcon ? /* @__PURE__ */ jsx35("span", { className: "stn-text-field__label-icon", "aria-hidden": "true", children: resolveGlyph2(labelIcon) }) : null,
|
|
3785
4074
|
/* @__PURE__ */ jsx35("span", { className: "stn-text-field__label-text", children: label }),
|
|
3786
4075
|
required && /* @__PURE__ */ jsx35("span", { className: "stn-text-field__required", "aria-hidden": "true", children: "*" })
|
|
3787
4076
|
] }) : null;
|
|
3788
4077
|
const isRow = labelPosition === "left" || labelPosition === "right";
|
|
3789
|
-
return /* @__PURE__ */
|
|
4078
|
+
return /* @__PURE__ */ jsxs27(
|
|
3790
4079
|
"div",
|
|
3791
4080
|
{
|
|
3792
4081
|
className: cn(
|
|
@@ -3800,7 +4089,7 @@ var StnTextField = forwardRef22(function StnTextField2({
|
|
|
3800
4089
|
style: widthProps.style,
|
|
3801
4090
|
children: [
|
|
3802
4091
|
hasLabel && (labelPosition === "left" || labelPosition === "top") ? labelElement : null,
|
|
3803
|
-
/* @__PURE__ */
|
|
4092
|
+
/* @__PURE__ */ jsxs27("div", { className: "stn-text-field-wrap__body", children: [
|
|
3804
4093
|
field,
|
|
3805
4094
|
hasHelper && /* @__PURE__ */ jsx35(
|
|
3806
4095
|
"p",
|
|
@@ -3818,11 +4107,11 @@ var StnTextField = forwardRef22(function StnTextField2({
|
|
|
3818
4107
|
});
|
|
3819
4108
|
|
|
3820
4109
|
// src/components/StnDateRangeField.tsx
|
|
3821
|
-
import { forwardRef as
|
|
4110
|
+
import { forwardRef as forwardRef24, useId as useId11 } from "react";
|
|
3822
4111
|
import {
|
|
3823
4112
|
formatStnDateRangeFieldValue
|
|
3824
4113
|
} from "@stn-uiux/pub-ui/data/stnDateRangeField";
|
|
3825
|
-
import { jsx as jsx36, jsxs as
|
|
4114
|
+
import { jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3826
4115
|
function resolveGlyph3(node) {
|
|
3827
4116
|
if (typeof node === "string") return /* @__PURE__ */ jsx36(StnIcon, { name: node, size: 16, color: "currentColor" });
|
|
3828
4117
|
return node;
|
|
@@ -3848,7 +4137,7 @@ function resolveValue(value, format) {
|
|
|
3848
4137
|
const trimmed = value.trim();
|
|
3849
4138
|
return trimmed || null;
|
|
3850
4139
|
}
|
|
3851
|
-
var StnDateRangeField =
|
|
4140
|
+
var StnDateRangeField = forwardRef24(function StnDateRangeField2({
|
|
3852
4141
|
size = "md",
|
|
3853
4142
|
variant = "outline",
|
|
3854
4143
|
start,
|
|
@@ -3902,8 +4191,8 @@ var StnDateRangeField = forwardRef23(function StnDateRangeField2({
|
|
|
3902
4191
|
),
|
|
3903
4192
|
style: !hasWrap ? widthProps.style ?? style : void 0,
|
|
3904
4193
|
...rest,
|
|
3905
|
-
children: /* @__PURE__ */
|
|
3906
|
-
/* @__PURE__ */
|
|
4194
|
+
children: /* @__PURE__ */ jsxs28("span", { className: "stn-date-range-field__inner", children: [
|
|
4195
|
+
/* @__PURE__ */ jsxs28("span", { className: "stn-date-range-field__text", children: [
|
|
3907
4196
|
/* @__PURE__ */ jsx36("span", { className: cn("stn-date-range-field__value", !startText && "is-placeholder"), children: startText ?? startPlaceholder }),
|
|
3908
4197
|
/* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__sep", "aria-hidden": "true", children: "~" }),
|
|
3909
4198
|
/* @__PURE__ */ jsx36("span", { className: cn("stn-date-range-field__value", !endText && "is-placeholder"), children: endText ?? endPlaceholder })
|
|
@@ -3914,13 +4203,13 @@ var StnDateRangeField = forwardRef23(function StnDateRangeField2({
|
|
|
3914
4203
|
);
|
|
3915
4204
|
if (!hasWrap) return buttonNode;
|
|
3916
4205
|
const resolvedLabelIcon = labelIcon ?? icon;
|
|
3917
|
-
const labelElement = hasLabel ? /* @__PURE__ */
|
|
4206
|
+
const labelElement = hasLabel ? /* @__PURE__ */ jsxs28("label", { htmlFor: rootId, className: "stn-date-range-field__label", children: [
|
|
3918
4207
|
resolvedLabelIcon ? /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__label-icon", "aria-hidden": "true", children: resolveGlyph3(resolvedLabelIcon) }) : null,
|
|
3919
4208
|
/* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__label-text", children: label }),
|
|
3920
4209
|
required && /* @__PURE__ */ jsx36("span", { className: "stn-date-range-field__required", "aria-hidden": "true", children: "*" })
|
|
3921
4210
|
] }) : null;
|
|
3922
4211
|
const isRow = labelPosition === "left" || labelPosition === "right";
|
|
3923
|
-
return /* @__PURE__ */
|
|
4212
|
+
return /* @__PURE__ */ jsxs28(
|
|
3924
4213
|
"div",
|
|
3925
4214
|
{
|
|
3926
4215
|
className: cn(
|
|
@@ -3936,7 +4225,7 @@ var StnDateRangeField = forwardRef23(function StnDateRangeField2({
|
|
|
3936
4225
|
style: widthProps.style ?? style,
|
|
3937
4226
|
children: [
|
|
3938
4227
|
hasLabel && (labelPosition === "left" || labelPosition === "top") ? labelElement : null,
|
|
3939
|
-
/* @__PURE__ */
|
|
4228
|
+
/* @__PURE__ */ jsxs28("div", { className: "stn-date-range-field-wrap__body", children: [
|
|
3940
4229
|
buttonNode,
|
|
3941
4230
|
hasHelper && /* @__PURE__ */ jsx36(
|
|
3942
4231
|
"span",
|
|
@@ -3957,8 +4246,13 @@ var StnDateRangeField = forwardRef23(function StnDateRangeField2({
|
|
|
3957
4246
|
});
|
|
3958
4247
|
|
|
3959
4248
|
// src/components/StnLabelPrefix.tsx
|
|
3960
|
-
import {
|
|
3961
|
-
|
|
4249
|
+
import {
|
|
4250
|
+
useId as useId12,
|
|
4251
|
+
useState as useState10,
|
|
4252
|
+
isValidElement as isValidElement4,
|
|
4253
|
+
cloneElement as cloneElement4
|
|
4254
|
+
} from "react";
|
|
4255
|
+
import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3962
4256
|
function sizeClass4(size) {
|
|
3963
4257
|
return size;
|
|
3964
4258
|
}
|
|
@@ -3968,6 +4262,14 @@ function variantClass4(variant) {
|
|
|
3968
4262
|
function StnLabelPrefix({
|
|
3969
4263
|
label,
|
|
3970
4264
|
labelIcon,
|
|
4265
|
+
checkbox = false,
|
|
4266
|
+
checked,
|
|
4267
|
+
defaultChecked,
|
|
4268
|
+
onCheckboxChange,
|
|
4269
|
+
checkboxDisabled = false,
|
|
4270
|
+
checkboxSize,
|
|
4271
|
+
disableControlWhenUnchecked = false,
|
|
4272
|
+
checkboxSlot,
|
|
3971
4273
|
labelPosition = "prefix",
|
|
3972
4274
|
required = false,
|
|
3973
4275
|
size = "md",
|
|
@@ -3990,6 +4292,15 @@ function StnLabelPrefix({
|
|
|
3990
4292
|
const isError = error || invalid || color === "error";
|
|
3991
4293
|
const hasHelper = helperText != null && helperText !== "";
|
|
3992
4294
|
const helperId = hasHelper ? `${id}-helper` : void 0;
|
|
4295
|
+
const [internalChecked, setInternalChecked] = useState10(defaultChecked ?? false);
|
|
4296
|
+
const isChecked = checked !== void 0 ? checked : internalChecked;
|
|
4297
|
+
const handleCheckboxChange = (nextChecked) => {
|
|
4298
|
+
if (checked === void 0) {
|
|
4299
|
+
setInternalChecked(nextChecked);
|
|
4300
|
+
}
|
|
4301
|
+
onCheckboxChange?.(nextChecked);
|
|
4302
|
+
};
|
|
4303
|
+
const isControlDisabled = disabled || disableControlWhenUnchecked && !isChecked;
|
|
3993
4304
|
const widthProps = resolveInputWidthProps("stn-label-prefix", fullWidth, width);
|
|
3994
4305
|
const rootClass = cn(
|
|
3995
4306
|
"stn-label-prefix",
|
|
@@ -4000,18 +4311,39 @@ function StnLabelPrefix({
|
|
|
4000
4311
|
radius && `radius-${radius}`,
|
|
4001
4312
|
!hasHelper && widthProps.className,
|
|
4002
4313
|
disabled && "is-disabled",
|
|
4314
|
+
isControlDisabled && !disabled && "is-control-disabled",
|
|
4003
4315
|
isError && "is-error",
|
|
4004
4316
|
!hasHelper && className
|
|
4005
4317
|
);
|
|
4006
|
-
const
|
|
4318
|
+
const defaultCheckboxSize = size === "lg" ? "md" : "sm";
|
|
4319
|
+
const resolvedCheckboxSize = checkboxSize ?? defaultCheckboxSize;
|
|
4320
|
+
const checkboxNode = checkboxSlot ?? (checkbox ? /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__checkbox", children: /* @__PURE__ */ jsx37(
|
|
4321
|
+
StnCheckbox,
|
|
4322
|
+
{
|
|
4323
|
+
size: resolvedCheckboxSize,
|
|
4324
|
+
controlOnly: true,
|
|
4325
|
+
checked: isChecked,
|
|
4326
|
+
disabled: disabled || checkboxDisabled,
|
|
4327
|
+
onChange: (e) => handleCheckboxChange(e.target.checked),
|
|
4328
|
+
"aria-label": typeof label === "string" ? `${label} \uC120\uD0DD` : void 0
|
|
4329
|
+
}
|
|
4330
|
+
) }) : null);
|
|
4331
|
+
const labelSection = /* @__PURE__ */ jsxs29("span", { className: "stn-label-prefix__label", children: [
|
|
4332
|
+
checkboxNode,
|
|
4007
4333
|
labelIcon != null && /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__icon", "aria-hidden": "true", children: labelIcon }),
|
|
4008
|
-
/* @__PURE__ */
|
|
4334
|
+
/* @__PURE__ */ jsxs29("span", { className: "stn-label-prefix__text", children: [
|
|
4009
4335
|
label,
|
|
4010
4336
|
required && /* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__required", "aria-hidden": "true", children: "*" })
|
|
4011
4337
|
] }),
|
|
4012
4338
|
/* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__divider", "aria-hidden": "true" })
|
|
4013
4339
|
] });
|
|
4014
|
-
|
|
4340
|
+
let renderedControl = children;
|
|
4341
|
+
if (isControlDisabled && isValidElement4(children) && typeof children.type !== "string") {
|
|
4342
|
+
renderedControl = cloneElement4(children, {
|
|
4343
|
+
disabled: true
|
|
4344
|
+
});
|
|
4345
|
+
}
|
|
4346
|
+
const prefixNode = /* @__PURE__ */ jsxs29(
|
|
4015
4347
|
"div",
|
|
4016
4348
|
{
|
|
4017
4349
|
id: !hasHelper ? id : void 0,
|
|
@@ -4023,14 +4355,14 @@ function StnLabelPrefix({
|
|
|
4023
4355
|
...!hasHelper ? rest : {},
|
|
4024
4356
|
children: [
|
|
4025
4357
|
labelSection,
|
|
4026
|
-
/* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__control", children })
|
|
4358
|
+
/* @__PURE__ */ jsx37("span", { className: "stn-label-prefix__control", children: renderedControl })
|
|
4027
4359
|
]
|
|
4028
4360
|
}
|
|
4029
4361
|
);
|
|
4030
4362
|
if (!hasHelper) {
|
|
4031
4363
|
return prefixNode;
|
|
4032
4364
|
}
|
|
4033
|
-
return /* @__PURE__ */
|
|
4365
|
+
return /* @__PURE__ */ jsxs29(
|
|
4034
4366
|
"div",
|
|
4035
4367
|
{
|
|
4036
4368
|
id,
|
|
@@ -4110,7 +4442,7 @@ import {
|
|
|
4110
4442
|
} from "@stn-uiux/pub-ui/data/stnSearchRequirement";
|
|
4111
4443
|
|
|
4112
4444
|
// src/patterns/search/StnSearchRequirementBar.tsx
|
|
4113
|
-
import { jsx as jsx38, jsxs as
|
|
4445
|
+
import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4114
4446
|
function StnSearchRequirementBar({
|
|
4115
4447
|
children,
|
|
4116
4448
|
className,
|
|
@@ -4143,7 +4475,7 @@ function StnSearchRequirementBarField({
|
|
|
4143
4475
|
controlClassName,
|
|
4144
4476
|
...rest
|
|
4145
4477
|
}) {
|
|
4146
|
-
return /* @__PURE__ */
|
|
4478
|
+
return /* @__PURE__ */ jsxs30("div", { className: cn("stn-search-requirement__field", className), "data-stn-search-requirement": "field", ...rest, children: [
|
|
4147
4479
|
/* @__PURE__ */ jsx38("span", { className: cn("stn-search-requirement__label", labelClassName), children: label }),
|
|
4148
4480
|
/* @__PURE__ */ jsx38("div", { className: cn("stn-search-requirement__control", controlClassName), children })
|
|
4149
4481
|
] });
|
|
@@ -4151,6 +4483,7 @@ function StnSearchRequirementBarField({
|
|
|
4151
4483
|
function StnSearchRequirementBarSearchButton({
|
|
4152
4484
|
children = "\uAC80\uC0C9",
|
|
4153
4485
|
size = "md",
|
|
4486
|
+
variant = "outlined",
|
|
4154
4487
|
icon = /* @__PURE__ */ jsx38(StnIcon, { name: "line/search", size: 16, color: "currentColor" }),
|
|
4155
4488
|
className,
|
|
4156
4489
|
...rest
|
|
@@ -4159,7 +4492,7 @@ function StnSearchRequirementBarSearchButton({
|
|
|
4159
4492
|
StnButton,
|
|
4160
4493
|
{
|
|
4161
4494
|
size,
|
|
4162
|
-
variant
|
|
4495
|
+
variant,
|
|
4163
4496
|
icon,
|
|
4164
4497
|
className,
|
|
4165
4498
|
"data-stn-search-requirement": "search",
|
|
@@ -4217,13 +4550,13 @@ import {
|
|
|
4217
4550
|
useEffect as useEffect9,
|
|
4218
4551
|
useLayoutEffect,
|
|
4219
4552
|
useRef as useRef6,
|
|
4220
|
-
useState as
|
|
4553
|
+
useState as useState12
|
|
4221
4554
|
} from "react";
|
|
4222
4555
|
import { createPortal as createPortal2 } from "react-dom";
|
|
4223
4556
|
import { formatStnDateRangeFieldValue as formatStnDateRangeFieldValue2 } from "@stn-uiux/pub-ui/data/stnDateRangeField";
|
|
4224
4557
|
|
|
4225
4558
|
// src/components/datePicker/StnDateRangePicker.tsx
|
|
4226
|
-
import { useCallback as useCallback6, useEffect as useEffect8, useId as useId13, useMemo as useMemo3, useState as
|
|
4559
|
+
import { useCallback as useCallback6, useEffect as useEffect8, useId as useId13, useMemo as useMemo3, useState as useState11 } from "react";
|
|
4227
4560
|
import {
|
|
4228
4561
|
STN_DATE_PICKER_WEEKDAYS
|
|
4229
4562
|
} from "@stn-uiux/pub-ui/data/stnDatePicker";
|
|
@@ -4283,9 +4616,9 @@ function normalizeRange(start, end) {
|
|
|
4283
4616
|
}
|
|
4284
4617
|
|
|
4285
4618
|
// src/components/datePicker/StnDateRangePicker.tsx
|
|
4286
|
-
import { jsx as jsx39, jsxs as
|
|
4619
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4287
4620
|
function useDraftRange(value, open) {
|
|
4288
|
-
const [draft, setDraft] =
|
|
4621
|
+
const [draft, setDraft] = useState11(value);
|
|
4289
4622
|
useEffect8(() => {
|
|
4290
4623
|
if (open) setDraft(value);
|
|
4291
4624
|
}, [open, value]);
|
|
@@ -4294,13 +4627,13 @@ function useDraftRange(value, open) {
|
|
|
4294
4627
|
function CalendarPanel({ month, range, onPick, onPrev, onNext, showPrev = true, showNext = true }) {
|
|
4295
4628
|
const days = useMemo3(() => buildMonthGrid(month), [month]);
|
|
4296
4629
|
const { start, end } = range;
|
|
4297
|
-
return /* @__PURE__ */
|
|
4298
|
-
/* @__PURE__ */
|
|
4630
|
+
return /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-panel", children: [
|
|
4631
|
+
/* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-panel__header", children: [
|
|
4299
4632
|
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" }),
|
|
4300
4633
|
/* @__PURE__ */ jsx39("p", { className: "stn-date-picker-panel__title", children: formatMonthTitle(month) }),
|
|
4301
4634
|
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" })
|
|
4302
4635
|
] }),
|
|
4303
|
-
/* @__PURE__ */
|
|
4636
|
+
/* @__PURE__ */ jsxs31("table", { className: "stn-date-picker-content", children: [
|
|
4304
4637
|
/* @__PURE__ */ jsx39("thead", { children: /* @__PURE__ */ jsx39("tr", { children: STN_DATE_PICKER_WEEKDAYS.map((label) => /* @__PURE__ */ jsx39("th", { scope: "col", children: label }, label)) }) }),
|
|
4305
4638
|
/* @__PURE__ */ jsx39("tbody", { children: Array.from({ length: 6 }, (_, row) => /* @__PURE__ */ jsx39("tr", { children: days.slice(row * 7, row * 7 + 7).map((cell) => {
|
|
4306
4639
|
const inRange = start && end && isBetweenDays(cell.date, start, end);
|
|
@@ -4338,9 +4671,9 @@ function TimeColumns({ label, value, onChange }) {
|
|
|
4338
4671
|
const seconds = value?.getSeconds() ?? 0;
|
|
4339
4672
|
const base = value ?? /* @__PURE__ */ new Date();
|
|
4340
4673
|
const patch = (h, m, s) => onChange(setTimePart(base, h, m, s));
|
|
4341
|
-
return /* @__PURE__ */
|
|
4674
|
+
return /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-time__side", children: [
|
|
4342
4675
|
/* @__PURE__ */ jsx39("span", { className: "stn-date-picker-time__label", children: label }),
|
|
4343
|
-
/* @__PURE__ */
|
|
4676
|
+
/* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-time__columns", children: [
|
|
4344
4677
|
/* @__PURE__ */ jsx39(
|
|
4345
4678
|
StnScroll,
|
|
4346
4679
|
{
|
|
@@ -4408,7 +4741,7 @@ function StnDateRangePicker({
|
|
|
4408
4741
|
}) {
|
|
4409
4742
|
const titleId = useId13();
|
|
4410
4743
|
const [draft, setDraft] = useDraftRange(value, open);
|
|
4411
|
-
const [leftMonth, setLeftMonth] =
|
|
4744
|
+
const [leftMonth, setLeftMonth] = useState11(() => startOfMonth(draft.start ?? draft.end ?? /* @__PURE__ */ new Date()));
|
|
4412
4745
|
useEffect8(() => {
|
|
4413
4746
|
if (!open) return;
|
|
4414
4747
|
const anchor = draft.start ?? draft.end ?? /* @__PURE__ */ new Date();
|
|
@@ -4468,9 +4801,9 @@ function StnDateRangePicker({
|
|
|
4468
4801
|
role: "dialog",
|
|
4469
4802
|
"aria-modal": "false",
|
|
4470
4803
|
"aria-labelledby": titleId,
|
|
4471
|
-
children: /* @__PURE__ */
|
|
4804
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-dropdown__body", children: [
|
|
4472
4805
|
/* @__PURE__ */ jsx39("span", { id: titleId, className: "stn-sf__visually-hidden", children: "Date range picker" }),
|
|
4473
|
-
/* @__PURE__ */
|
|
4806
|
+
/* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-dropdown__panels", children: [
|
|
4474
4807
|
/* @__PURE__ */ jsx39(
|
|
4475
4808
|
CalendarPanel,
|
|
4476
4809
|
{
|
|
@@ -4494,7 +4827,7 @@ function StnDateRangePicker({
|
|
|
4494
4827
|
}
|
|
4495
4828
|
)
|
|
4496
4829
|
] }),
|
|
4497
|
-
showTime ? /* @__PURE__ */
|
|
4830
|
+
showTime ? /* @__PURE__ */ jsxs31("div", { className: "stn-date-picker-time", children: [
|
|
4498
4831
|
/* @__PURE__ */ jsx39(
|
|
4499
4832
|
TimeColumns,
|
|
4500
4833
|
{
|
|
@@ -4519,9 +4852,9 @@ function StnDateRangePicker({
|
|
|
4519
4852
|
}
|
|
4520
4853
|
|
|
4521
4854
|
// src/components/datePicker/StnDateRangePickerField.tsx
|
|
4522
|
-
import { jsx as jsx40, jsxs as
|
|
4855
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4523
4856
|
function useControllableRange(controlled, defaultValue, onChange) {
|
|
4524
|
-
const [internal, setInternal] =
|
|
4857
|
+
const [internal, setInternal] = useState12(defaultValue);
|
|
4525
4858
|
const value = controlled ?? internal;
|
|
4526
4859
|
const setValue = useCallback7(
|
|
4527
4860
|
(next) => {
|
|
@@ -4553,8 +4886,8 @@ function StnDateRangePickerField({
|
|
|
4553
4886
|
}) {
|
|
4554
4887
|
const format = formatProp ?? (showTime ? formatStnDateRangeFieldValue2 : formatDateOnly);
|
|
4555
4888
|
const [value, setValue] = useControllableRange(valueProp, defaultValue, onChange);
|
|
4556
|
-
const [open, setOpen] =
|
|
4557
|
-
const [anchorRect, setAnchorRect] =
|
|
4889
|
+
const [open, setOpen] = useState12(false);
|
|
4890
|
+
const [anchorRect, setAnchorRect] = useState12(null);
|
|
4558
4891
|
const rootRef = useRef6(null);
|
|
4559
4892
|
const triggerRef = useRef6(null);
|
|
4560
4893
|
const panelRef = useRef6(null);
|
|
@@ -4591,7 +4924,7 @@ function StnDateRangePickerField({
|
|
|
4591
4924
|
document.addEventListener("keydown", onKeyDown);
|
|
4592
4925
|
return () => document.removeEventListener("keydown", onKeyDown);
|
|
4593
4926
|
}, [open]);
|
|
4594
|
-
return /* @__PURE__ */
|
|
4927
|
+
return /* @__PURE__ */ jsxs32("div", { ref: rootRef, className: cn("stn-date-picker-field", className), children: [
|
|
4595
4928
|
/* @__PURE__ */ jsx40(
|
|
4596
4929
|
StnDateRangeField,
|
|
4597
4930
|
{
|
|
@@ -4631,12 +4964,12 @@ function StnDateRangePickerField({
|
|
|
4631
4964
|
}
|
|
4632
4965
|
|
|
4633
4966
|
// src/patterns/search/StnSearchRequirementBarDemo.tsx
|
|
4634
|
-
import { jsx as jsx41, jsxs as
|
|
4967
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4635
4968
|
var ALL_OPTIONS = [{ value: "", label: "\uC804\uCCB4" }];
|
|
4636
4969
|
function StnSearchRequirementBarDemo({ onSearch, onExport, className }) {
|
|
4637
4970
|
const demo = STN_SEARCH_REQUIREMENT_DEMO_FIELDS;
|
|
4638
|
-
return /* @__PURE__ */
|
|
4639
|
-
/* @__PURE__ */
|
|
4971
|
+
return /* @__PURE__ */ jsxs33(StnSearchRequirementBar, { className, children: [
|
|
4972
|
+
/* @__PURE__ */ jsxs33(StnSearchRequirementBar.Fields, { children: [
|
|
4640
4973
|
/* @__PURE__ */ jsx41(
|
|
4641
4974
|
StnTextField,
|
|
4642
4975
|
{
|
|
@@ -4809,7 +5142,7 @@ import {
|
|
|
4809
5142
|
STN_LAYER0_BACKGROUND_DEMO_IMAGES,
|
|
4810
5143
|
STN_LAYER0_MAP_LIGHT_OVERLAY
|
|
4811
5144
|
} from "@stn-uiux/pub-ui/data/stnLayer0Background";
|
|
4812
|
-
import { jsx as jsx43, jsxs as
|
|
5145
|
+
import { jsx as jsx43, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4813
5146
|
function overlayStyle(overlay) {
|
|
4814
5147
|
if (overlay == null || overlay <= 0) return void 0;
|
|
4815
5148
|
const pct = `${Math.min(100, Math.max(0, overlay * 100))}%`;
|
|
@@ -4865,7 +5198,7 @@ function StnLayer0Background({
|
|
|
4865
5198
|
"aria-hidden": alt === "" ? true : void 0,
|
|
4866
5199
|
style: { ...overlayStyle(overlay), ...style },
|
|
4867
5200
|
...rest,
|
|
4868
|
-
children: /* @__PURE__ */
|
|
5201
|
+
children: /* @__PURE__ */ jsxs34("div", { className: "stn-layer0-bg__media", children: [
|
|
4869
5202
|
src ? /* @__PURE__ */ jsx43(
|
|
4870
5203
|
"img",
|
|
4871
5204
|
{
|
|
@@ -4916,9 +5249,9 @@ import {
|
|
|
4916
5249
|
// src/components/StnWidget.tsx
|
|
4917
5250
|
import {
|
|
4918
5251
|
Children as Children2,
|
|
4919
|
-
Fragment as
|
|
4920
|
-
cloneElement as
|
|
4921
|
-
isValidElement as
|
|
5252
|
+
Fragment as Fragment4,
|
|
5253
|
+
cloneElement as cloneElement5,
|
|
5254
|
+
isValidElement as isValidElement5
|
|
4922
5255
|
} from "react";
|
|
4923
5256
|
import {
|
|
4924
5257
|
normalizeStnWidgetAppearance,
|
|
@@ -4927,7 +5260,7 @@ import {
|
|
|
4927
5260
|
|
|
4928
5261
|
// src/components/StnEventBanner.tsx
|
|
4929
5262
|
import React3 from "react";
|
|
4930
|
-
import { jsx as jsx44, jsxs as
|
|
5263
|
+
import { jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4931
5264
|
var SEVERITY_ICONS2 = {
|
|
4932
5265
|
critical: "fill/alert4",
|
|
4933
5266
|
major: "fill/alert3",
|
|
@@ -4935,7 +5268,7 @@ var SEVERITY_ICONS2 = {
|
|
|
4935
5268
|
warning: "fill/alert1"
|
|
4936
5269
|
};
|
|
4937
5270
|
function DefaultTriangleIcon() {
|
|
4938
|
-
return /* @__PURE__ */
|
|
5271
|
+
return /* @__PURE__ */ jsxs35(
|
|
4939
5272
|
"svg",
|
|
4940
5273
|
{
|
|
4941
5274
|
width: "20",
|
|
@@ -4984,7 +5317,7 @@ var StnEventBanner = React3.forwardRef(
|
|
|
4984
5317
|
id,
|
|
4985
5318
|
...restProps
|
|
4986
5319
|
}, ref) => {
|
|
4987
|
-
return /* @__PURE__ */
|
|
5320
|
+
return /* @__PURE__ */ jsxs35(
|
|
4988
5321
|
"div",
|
|
4989
5322
|
{
|
|
4990
5323
|
ref,
|
|
@@ -5001,14 +5334,14 @@ var StnEventBanner = React3.forwardRef(
|
|
|
5001
5334
|
),
|
|
5002
5335
|
...restProps,
|
|
5003
5336
|
children: [
|
|
5004
|
-
/* @__PURE__ */
|
|
5337
|
+
/* @__PURE__ */ jsxs35("div", { className: "stn-event-banner__left", children: [
|
|
5005
5338
|
/* @__PURE__ */ jsx44("div", { className: "stn-event-banner__icon-wrap", children: icon ?? resolveDefaultIcon(severity) }),
|
|
5006
|
-
/* @__PURE__ */
|
|
5339
|
+
/* @__PURE__ */ jsxs35("div", { className: "stn-event-banner__text", children: [
|
|
5007
5340
|
title && /* @__PURE__ */ jsx44("span", { className: "stn-event-banner__title", title: typeof title === "string" ? title : void 0, children: title }),
|
|
5008
5341
|
time && /* @__PURE__ */ jsx44("span", { className: "stn-event-banner__time", title: typeof time === "string" ? time : void 0, children: time })
|
|
5009
5342
|
] })
|
|
5010
5343
|
] }),
|
|
5011
|
-
/* @__PURE__ */
|
|
5344
|
+
/* @__PURE__ */ jsxs35("div", { className: "stn-event-banner__actions", children: [
|
|
5012
5345
|
actions,
|
|
5013
5346
|
actionText && /* @__PURE__ */ jsx44(
|
|
5014
5347
|
"button",
|
|
@@ -5038,7 +5371,7 @@ var StnEventBanner = React3.forwardRef(
|
|
|
5038
5371
|
StnEventBanner.displayName = "StnEventBanner";
|
|
5039
5372
|
|
|
5040
5373
|
// src/patterns/scaffold/StnLoadingSkeleton.tsx
|
|
5041
|
-
import { jsx as jsx45, jsxs as
|
|
5374
|
+
import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5042
5375
|
function StnLoadingSkeletonLine({ width = "full", className, style, ...rest }) {
|
|
5043
5376
|
return /* @__PURE__ */ jsx45(
|
|
5044
5377
|
"div",
|
|
@@ -5078,7 +5411,7 @@ function StnLoadingSkeletonCircle({ size = 40, className, style, ...rest }) {
|
|
|
5078
5411
|
);
|
|
5079
5412
|
}
|
|
5080
5413
|
function StnLoadingSkeletonProfile({ avatarSize = 40, className, style, ...rest }) {
|
|
5081
|
-
return /* @__PURE__ */
|
|
5414
|
+
return /* @__PURE__ */ jsxs36(
|
|
5082
5415
|
"div",
|
|
5083
5416
|
{
|
|
5084
5417
|
className: cn("stn-loading-skeleton--profile", className),
|
|
@@ -5088,7 +5421,7 @@ function StnLoadingSkeletonProfile({ avatarSize = 40, className, style, ...rest
|
|
|
5088
5421
|
...rest,
|
|
5089
5422
|
children: [
|
|
5090
5423
|
/* @__PURE__ */ jsx45(StnLoadingSkeletonCircle, { size: avatarSize }),
|
|
5091
|
-
/* @__PURE__ */
|
|
5424
|
+
/* @__PURE__ */ jsxs36("div", { className: "stn-loading-skeleton__profile-content", children: [
|
|
5092
5425
|
/* @__PURE__ */ jsx45(StnLoadingSkeletonLine, { width: "medium" }),
|
|
5093
5426
|
/* @__PURE__ */ jsx45(StnLoadingSkeletonLine, { width: "short" })
|
|
5094
5427
|
] })
|
|
@@ -5274,7 +5607,7 @@ function ringOrbitRadius(orbit, ringCount, baseRadius, gap = 36) {
|
|
|
5274
5607
|
}
|
|
5275
5608
|
|
|
5276
5609
|
// src/components/topology/StnTopologyNodeMark.tsx
|
|
5277
|
-
import { jsx as jsx46, jsxs as
|
|
5610
|
+
import { jsx as jsx46, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5278
5611
|
function renderTopologyIcon(icon, color, px) {
|
|
5279
5612
|
if (!icon) return null;
|
|
5280
5613
|
if (typeof icon !== "string") return icon;
|
|
@@ -5290,7 +5623,7 @@ function renderTopologyIcon(icon, color, px) {
|
|
|
5290
5623
|
};
|
|
5291
5624
|
switch (icon) {
|
|
5292
5625
|
case "server":
|
|
5293
|
-
return /* @__PURE__ */
|
|
5626
|
+
return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
|
|
5294
5627
|
/* @__PURE__ */ jsx46("rect", { x: "2", y: "2", width: "20", height: "8", rx: "2", ry: "2" }),
|
|
5295
5628
|
/* @__PURE__ */ jsx46("rect", { x: "2", y: "14", width: "20", height: "8", rx: "2", ry: "2" }),
|
|
5296
5629
|
/* @__PURE__ */ jsx46("line", { x1: "6", y1: "6", x2: "6.01", y2: "6" }),
|
|
@@ -5299,7 +5632,7 @@ function renderTopologyIcon(icon, color, px) {
|
|
|
5299
5632
|
case "cloud":
|
|
5300
5633
|
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" }) });
|
|
5301
5634
|
case "ai":
|
|
5302
|
-
return /* @__PURE__ */
|
|
5635
|
+
return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
|
|
5303
5636
|
/* @__PURE__ */ jsx46("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }),
|
|
5304
5637
|
/* @__PURE__ */ jsx46("rect", { x: "9", y: "9", width: "6", height: "6" }),
|
|
5305
5638
|
/* @__PURE__ */ jsx46("line", { x1: "9", y1: "1", x2: "9", y2: "4" }),
|
|
@@ -5312,7 +5645,7 @@ function renderTopologyIcon(icon, color, px) {
|
|
|
5312
5645
|
/* @__PURE__ */ jsx46("line", { x1: "1", y1: "14", x2: "4", y2: "14" })
|
|
5313
5646
|
] });
|
|
5314
5647
|
case "network":
|
|
5315
|
-
return /* @__PURE__ */
|
|
5648
|
+
return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
|
|
5316
5649
|
/* @__PURE__ */ jsx46("rect", { x: "2", y: "2", width: "6", height: "6", rx: "1" }),
|
|
5317
5650
|
/* @__PURE__ */ jsx46("rect", { x: "16", y: "2", width: "6", height: "6", rx: "1" }),
|
|
5318
5651
|
/* @__PURE__ */ jsx46("rect", { x: "9", y: "16", width: "6", height: "6", rx: "1" }),
|
|
@@ -5324,18 +5657,18 @@ function renderTopologyIcon(icon, color, px) {
|
|
|
5324
5657
|
case "shield":
|
|
5325
5658
|
return /* @__PURE__ */ jsx46("svg", { ...iconProps, children: /* @__PURE__ */ jsx46("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) });
|
|
5326
5659
|
case "user":
|
|
5327
|
-
return /* @__PURE__ */
|
|
5660
|
+
return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
|
|
5328
5661
|
/* @__PURE__ */ jsx46("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }),
|
|
5329
5662
|
/* @__PURE__ */ jsx46("circle", { cx: "12", cy: "7", r: "4" })
|
|
5330
5663
|
] });
|
|
5331
5664
|
case "database":
|
|
5332
|
-
return /* @__PURE__ */
|
|
5665
|
+
return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
|
|
5333
5666
|
/* @__PURE__ */ jsx46("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
|
|
5334
5667
|
/* @__PURE__ */ jsx46("path", { d: "M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" }),
|
|
5335
5668
|
/* @__PURE__ */ jsx46("path", { d: "M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" })
|
|
5336
5669
|
] });
|
|
5337
5670
|
case "wifi":
|
|
5338
|
-
return /* @__PURE__ */
|
|
5671
|
+
return /* @__PURE__ */ jsxs37("svg", { ...iconProps, children: [
|
|
5339
5672
|
/* @__PURE__ */ jsx46("path", { d: "M5 12.55a11 11 0 0 1 14.08 0" }),
|
|
5340
5673
|
/* @__PURE__ */ jsx46("path", { d: "M1.42 9a16 16 0 0 1 21.16 0" }),
|
|
5341
5674
|
/* @__PURE__ */ jsx46("path", { d: "M8.53 16.11a6 6 0 0 1 6.95 0" }),
|
|
@@ -5419,7 +5752,7 @@ function StnTopologyNodeMark({
|
|
|
5419
5752
|
const countText = formatTopologyCount(count);
|
|
5420
5753
|
const iconPx = metrics.icon;
|
|
5421
5754
|
const showCornerBadge = !isCount && count != null && count !== "";
|
|
5422
|
-
return /* @__PURE__ */
|
|
5755
|
+
return /* @__PURE__ */ jsxs37(
|
|
5423
5756
|
"g",
|
|
5424
5757
|
{
|
|
5425
5758
|
className: cn("stn-topology-node", selected && "stn-topology-node--selected", className),
|
|
@@ -5431,7 +5764,7 @@ function StnTopologyNodeMark({
|
|
|
5431
5764
|
style: { cursor: onClick ? "pointer" : "default" },
|
|
5432
5765
|
...rest,
|
|
5433
5766
|
children: [
|
|
5434
|
-
isAlert && /* @__PURE__ */
|
|
5767
|
+
isAlert && /* @__PURE__ */ jsxs37(
|
|
5435
5768
|
"circle",
|
|
5436
5769
|
{
|
|
5437
5770
|
className: "stn-topology-node__pulse",
|
|
@@ -5476,7 +5809,7 @@ function StnTopologyNodeMark({
|
|
|
5476
5809
|
children: countText
|
|
5477
5810
|
}
|
|
5478
5811
|
) : /* @__PURE__ */ jsx46("g", { transform: `translate(${x - iconPx / 2}, ${y - iconPx / 2})`, children: renderTopologyIcon(icon, stroke, iconPx) }),
|
|
5479
|
-
showCornerBadge && /* @__PURE__ */
|
|
5812
|
+
showCornerBadge && /* @__PURE__ */ jsxs37("g", { className: "stn-topology-node__badge", children: [
|
|
5480
5813
|
/* @__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" }),
|
|
5481
5814
|
/* @__PURE__ */ jsx46(
|
|
5482
5815
|
"text",
|
|
@@ -5505,7 +5838,7 @@ function StnTopologyNodeMark({
|
|
|
5505
5838
|
children: label
|
|
5506
5839
|
}
|
|
5507
5840
|
),
|
|
5508
|
-
showStatus && resolvedStatusLabel && /* @__PURE__ */
|
|
5841
|
+
showStatus && resolvedStatusLabel && /* @__PURE__ */ jsxs37(
|
|
5509
5842
|
"text",
|
|
5510
5843
|
{
|
|
5511
5844
|
x,
|
|
@@ -5540,7 +5873,7 @@ function StnTopologyNodePreview({
|
|
|
5540
5873
|
}
|
|
5541
5874
|
|
|
5542
5875
|
// src/components/topology/StnTopologyRing.tsx
|
|
5543
|
-
import { jsx as jsx47, jsxs as
|
|
5876
|
+
import { jsx as jsx47, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5544
5877
|
function StnTopologyRing({
|
|
5545
5878
|
core = {
|
|
5546
5879
|
title: "\uC5D0\uC2A4\uD2F0\uC5D4\uC778\uD3EC\uD14D",
|
|
@@ -5617,7 +5950,7 @@ function StnTopologyRing({
|
|
|
5617
5950
|
"data-stn-topology-ring": true,
|
|
5618
5951
|
"data-ring-count": safeRingCount,
|
|
5619
5952
|
...rest,
|
|
5620
|
-
children: /* @__PURE__ */
|
|
5953
|
+
children: /* @__PURE__ */ jsxs38(
|
|
5621
5954
|
"svg",
|
|
5622
5955
|
{
|
|
5623
5956
|
className: "stn-topology-ring__svg",
|
|
@@ -5626,12 +5959,12 @@ function StnTopologyRing({
|
|
|
5626
5959
|
viewBox: `0 0 ${vb} ${vb}`,
|
|
5627
5960
|
overflow: "visible",
|
|
5628
5961
|
children: [
|
|
5629
|
-
/* @__PURE__ */
|
|
5630
|
-
/* @__PURE__ */
|
|
5962
|
+
/* @__PURE__ */ jsxs38("defs", { children: [
|
|
5963
|
+
/* @__PURE__ */ jsxs38("radialGradient", { id: coreGlowId, cx: "50%", cy: "50%", r: "50%", children: [
|
|
5631
5964
|
/* @__PURE__ */ jsx47("stop", { offset: "0%", stopColor: "#722ed1", stopOpacity: "0.8" }),
|
|
5632
5965
|
/* @__PURE__ */ jsx47("stop", { offset: "100%", stopColor: "#120338", stopOpacity: "0" })
|
|
5633
5966
|
] }),
|
|
5634
|
-
/* @__PURE__ */
|
|
5967
|
+
/* @__PURE__ */ jsxs38("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
5635
5968
|
/* @__PURE__ */ jsx47("stop", { offset: "0%", stopColor: "#00e5ff", stopOpacity: "0.4" }),
|
|
5636
5969
|
/* @__PURE__ */ jsx47("stop", { offset: "100%", stopColor: "#722ed1", stopOpacity: "0.4" })
|
|
5637
5970
|
] })
|
|
@@ -5665,7 +5998,7 @@ function StnTopologyRing({
|
|
|
5665
5998
|
},
|
|
5666
5999
|
`line-${node.id}`
|
|
5667
6000
|
)),
|
|
5668
|
-
/* @__PURE__ */
|
|
6001
|
+
/* @__PURE__ */ jsxs38("g", { className: "stn-topology-ring__core", children: [
|
|
5669
6002
|
/* @__PURE__ */ jsx47("circle", { cx: centerX, cy: centerY, r: 54, fill: `url(#${coreGlowId})` }),
|
|
5670
6003
|
/* @__PURE__ */ jsx47(
|
|
5671
6004
|
"circle",
|
|
@@ -5693,7 +6026,7 @@ function StnTopologyRing({
|
|
|
5693
6026
|
}
|
|
5694
6027
|
),
|
|
5695
6028
|
core.title && /* @__PURE__ */ jsx47("text", { x: centerX, y: centerY + 8, textAnchor: "middle", fill: "#f0f2f5", fontSize: "10", fontWeight: "600", children: core.title }),
|
|
5696
|
-
/* @__PURE__ */
|
|
6029
|
+
/* @__PURE__ */ jsxs38("text", { x: centerX, y: centerY + 22, textAnchor: "middle", fill: coreColor, fontSize: "9", fontWeight: "500", children: [
|
|
5697
6030
|
"\u25CF ",
|
|
5698
6031
|
coreStatusLabel
|
|
5699
6032
|
] })
|
|
@@ -5726,8 +6059,8 @@ function StnTopologyRing({
|
|
|
5726
6059
|
}
|
|
5727
6060
|
|
|
5728
6061
|
// src/components/topology/StnTopologyGraph.tsx
|
|
5729
|
-
import { useState as
|
|
5730
|
-
import { jsx as jsx48, jsxs as
|
|
6062
|
+
import { useState as useState13 } from "react";
|
|
6063
|
+
import { jsx as jsx48, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5731
6064
|
var DEFAULT_GRAPH_NODES = [
|
|
5732
6065
|
{ id: "n1", x: 200, y: 58, status: "minor", label: "GW-01", shape: "circle", content: "icon", icon: "wifi" },
|
|
5733
6066
|
{ id: "n2", x: 118, y: 118, status: "critical", label: "BACKUP", shape: "hexagon", content: "count", count: 4, pulse: true },
|
|
@@ -5761,12 +6094,12 @@ function StnTopologyGraph({
|
|
|
5761
6094
|
style,
|
|
5762
6095
|
...rest
|
|
5763
6096
|
}) {
|
|
5764
|
-
const [viewMode, setViewMode] =
|
|
6097
|
+
const [viewMode, setViewMode] = useState13(defaultMode);
|
|
5765
6098
|
if (loading) {
|
|
5766
6099
|
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..." }) });
|
|
5767
6100
|
}
|
|
5768
6101
|
const nodeMap = new Map(nodes.map((n) => [n.id, n]));
|
|
5769
|
-
return /* @__PURE__ */
|
|
6102
|
+
return /* @__PURE__ */ jsxs39(
|
|
5770
6103
|
"div",
|
|
5771
6104
|
{
|
|
5772
6105
|
className: cn("stn-topology-graph", className),
|
|
@@ -5787,8 +6120,8 @@ function StnTopologyGraph({
|
|
|
5787
6120
|
]
|
|
5788
6121
|
}
|
|
5789
6122
|
) }),
|
|
5790
|
-
/* @__PURE__ */
|
|
5791
|
-
viewMode === "3D" ? /* @__PURE__ */
|
|
6123
|
+
/* @__PURE__ */ jsxs39("svg", { className: "stn-topology-graph__svg", width: "100%", height: "100%", viewBox: "0 0 400 300", overflow: "visible", children: [
|
|
6124
|
+
viewMode === "3D" ? /* @__PURE__ */ jsxs39("g", { opacity: "0.6", children: [
|
|
5792
6125
|
/* @__PURE__ */ jsx48("line", { x1: "60", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.06)", strokeDasharray: "3 3" }),
|
|
5793
6126
|
/* @__PURE__ */ jsx48("line", { x1: "130", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "3 3" }),
|
|
5794
6127
|
/* @__PURE__ */ jsx48("line", { x1: "200", y1: "260", x2: "200", y2: "80", stroke: "rgba(255,255,255,0.14)", strokeDasharray: "3 3" }),
|
|
@@ -5797,7 +6130,7 @@ function StnTopologyGraph({
|
|
|
5797
6130
|
/* @__PURE__ */ jsx48("line", { x1: "100", y1: "230", x2: "300", y2: "230", stroke: "rgba(255,255,255,0.06)" }),
|
|
5798
6131
|
/* @__PURE__ */ jsx48("line", { x1: "130", y1: "190", x2: "270", y2: "190", stroke: "rgba(255,255,255,0.06)" }),
|
|
5799
6132
|
/* @__PURE__ */ jsx48("line", { x1: "160", y1: "140", x2: "240", y2: "140", stroke: "rgba(255,255,255,0.06)" })
|
|
5800
|
-
] }) : /* @__PURE__ */
|
|
6133
|
+
] }) : /* @__PURE__ */ jsxs39("g", { opacity: "0.3", children: [
|
|
5801
6134
|
/* @__PURE__ */ jsx48("line", { x1: "40", y1: "60", x2: "360", y2: "60", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
|
|
5802
6135
|
/* @__PURE__ */ jsx48("line", { x1: "40", y1: "150", x2: "360", y2: "150", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
|
|
5803
6136
|
/* @__PURE__ */ jsx48("line", { x1: "40", y1: "240", x2: "360", y2: "240", stroke: "rgba(255,255,255,0.08)", strokeDasharray: "4 4" }),
|
|
@@ -5851,12 +6184,12 @@ function StnTopologyGraph({
|
|
|
5851
6184
|
);
|
|
5852
6185
|
})
|
|
5853
6186
|
] }),
|
|
5854
|
-
showMinimap && /* @__PURE__ */
|
|
5855
|
-
/* @__PURE__ */
|
|
6187
|
+
showMinimap && /* @__PURE__ */ jsxs39("div", { className: "stn-topology-graph__minimap", children: [
|
|
6188
|
+
/* @__PURE__ */ jsxs39("div", { className: "stn-topology-graph__minimap-head", children: [
|
|
5856
6189
|
/* @__PURE__ */ jsx48("span", { children: "\uBBF8\uB9AC\uBCF4\uAE30" }),
|
|
5857
6190
|
/* @__PURE__ */ jsx48("span", { children: "\u2014" })
|
|
5858
6191
|
] }),
|
|
5859
|
-
/* @__PURE__ */
|
|
6192
|
+
/* @__PURE__ */ jsxs39("svg", { width: "100%", height: "40", viewBox: "0 0 100 50", children: [
|
|
5860
6193
|
/* @__PURE__ */ jsx48("polyline", { points: "50,10 40,25 50,40 60,30", fill: "none", stroke: "rgba(255,77,79,0.5)", strokeWidth: "1" }),
|
|
5861
6194
|
/* @__PURE__ */ jsx48("circle", { cx: "50", cy: "10", r: "2", fill: STN_TOPOLOGY_STATUS_COLORS.critical.main }),
|
|
5862
6195
|
/* @__PURE__ */ jsx48("circle", { cx: "40", cy: "25", r: "2.5", fill: STN_TOPOLOGY_STATUS_COLORS.critical.main }),
|
|
@@ -5870,7 +6203,7 @@ function StnTopologyGraph({
|
|
|
5870
6203
|
}
|
|
5871
6204
|
|
|
5872
6205
|
// src/components/StnWidget.tsx
|
|
5873
|
-
import { Fragment as
|
|
6206
|
+
import { Fragment as Fragment5, jsx as jsx49, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5874
6207
|
var SHELL_PUB_CLASS = {
|
|
5875
6208
|
card: "",
|
|
5876
6209
|
"fault-panel": "",
|
|
@@ -5889,8 +6222,8 @@ function bannerSeverityFromStatus(status, isCritical) {
|
|
|
5889
6222
|
return void 0;
|
|
5890
6223
|
}
|
|
5891
6224
|
function withBannerSeverity(banner, severity) {
|
|
5892
|
-
if (!severity || !
|
|
5893
|
-
return
|
|
6225
|
+
if (!severity || !isValidElement5(banner) || banner.type !== StnEventBanner) return banner;
|
|
6226
|
+
return cloneElement5(banner, { severity });
|
|
5894
6227
|
}
|
|
5895
6228
|
function markWidgetSlot(component, slot) {
|
|
5896
6229
|
;
|
|
@@ -5905,7 +6238,7 @@ function readWidgetSlot(type) {
|
|
|
5905
6238
|
function flattenWidgetChildren(children) {
|
|
5906
6239
|
const out = [];
|
|
5907
6240
|
Children2.forEach(children, (child) => {
|
|
5908
|
-
if (
|
|
6241
|
+
if (isValidElement5(child) && child.type === Fragment4) {
|
|
5909
6242
|
const fragmentProps = child.props;
|
|
5910
6243
|
out.push(...flattenWidgetChildren(fragmentProps.children));
|
|
5911
6244
|
return;
|
|
@@ -5918,7 +6251,7 @@ function partitionWidgetChildren(children) {
|
|
|
5918
6251
|
const slots = { headers: [], bodies: [], footers: [], rest: [] };
|
|
5919
6252
|
for (const child of flattenWidgetChildren(children)) {
|
|
5920
6253
|
if (child == null || child === false || child === true) continue;
|
|
5921
|
-
if (
|
|
6254
|
+
if (isValidElement5(child)) {
|
|
5922
6255
|
const slot = readWidgetSlot(child.type);
|
|
5923
6256
|
if (slot === "header") {
|
|
5924
6257
|
slots.headers.push(child);
|
|
@@ -5939,7 +6272,7 @@ function partitionWidgetChildren(children) {
|
|
|
5939
6272
|
}
|
|
5940
6273
|
function mergeBodySlot(body, extra, contentClassName, isEmptyState, emptyStyle) {
|
|
5941
6274
|
const prev = body.props;
|
|
5942
|
-
return
|
|
6275
|
+
return cloneElement5(
|
|
5943
6276
|
body,
|
|
5944
6277
|
{
|
|
5945
6278
|
className: cn(prev.className, contentClassName, isEmptyState && "empty"),
|
|
@@ -5983,7 +6316,7 @@ function StnWidgetPeriodPager({
|
|
|
5983
6316
|
nextLabel = "\uB2E4\uC74C",
|
|
5984
6317
|
...rest
|
|
5985
6318
|
}) {
|
|
5986
|
-
return /* @__PURE__ */
|
|
6319
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__period-pager", className), ...rest, children: [
|
|
5987
6320
|
/* @__PURE__ */ jsx49(
|
|
5988
6321
|
StnButton,
|
|
5989
6322
|
{
|
|
@@ -6022,13 +6355,13 @@ function StnWidgetHeaderInner({
|
|
|
6022
6355
|
wrapActions = false
|
|
6023
6356
|
}) {
|
|
6024
6357
|
const resolvedIconName = headerIconName ?? defaultHeaderIconName(appearance);
|
|
6025
|
-
return /* @__PURE__ */
|
|
6026
|
-
/* @__PURE__ */
|
|
6358
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
|
|
6359
|
+
/* @__PURE__ */ jsxs40("div", { className: "stn-widget__head-start", children: [
|
|
6027
6360
|
showHeaderIcon ? headerIcon != null ? /* @__PURE__ */ jsx49(StnWidgetInsetIcon, { size: "sm", children: headerIcon }) : resolvedIconName ? /* @__PURE__ */ jsx49(StnWidgetInsetIcon, { size: "sm", icon: resolvedIconName }) : null : null,
|
|
6028
|
-
title != null || badge != null ? typeof title === "string" || title == null ? /* @__PURE__ */
|
|
6361
|
+
title != null || badge != null ? typeof title === "string" || title == null ? /* @__PURE__ */ jsxs40("div", { className: "stn-widget__title-wrap", children: [
|
|
6029
6362
|
typeof title === "string" ? /* @__PURE__ */ jsx49("p", { className: "stn-widget__title", title, children: title }) : null,
|
|
6030
6363
|
badge
|
|
6031
|
-
] }) : /* @__PURE__ */
|
|
6364
|
+
] }) : /* @__PURE__ */ jsxs40(Fragment5, { children: [
|
|
6032
6365
|
title,
|
|
6033
6366
|
badge
|
|
6034
6367
|
] }) : null
|
|
@@ -6113,7 +6446,7 @@ function StnWidgetRoot({
|
|
|
6113
6446
|
...rest
|
|
6114
6447
|
};
|
|
6115
6448
|
const slots = partitionWidgetChildren(children);
|
|
6116
|
-
const propHead = shell === "fault-panel" && !isFigmaShell ? title != null || titleActions ? /* @__PURE__ */
|
|
6449
|
+
const propHead = shell === "fault-panel" && !isFigmaShell ? title != null || titleActions ? /* @__PURE__ */ jsxs40("div", { className: "app_bar", children: [
|
|
6117
6450
|
/* @__PURE__ */ jsx49("div", { className: "fault_title_box", children: typeof title === "string" ? /* @__PURE__ */ jsx49("span", { children: title }) : title }),
|
|
6118
6451
|
titleActions
|
|
6119
6452
|
] }) : 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(
|
|
@@ -6130,8 +6463,8 @@ function StnWidgetRoot({
|
|
|
6130
6463
|
headerIcon,
|
|
6131
6464
|
wrapActions
|
|
6132
6465
|
}
|
|
6133
|
-
) : title != null || badge != null || titleActions ? /* @__PURE__ */
|
|
6134
|
-
/* @__PURE__ */
|
|
6466
|
+
) : title != null || badge != null || titleActions ? /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
|
|
6467
|
+
/* @__PURE__ */ jsxs40("div", { className: "stn-widget__head-start", children: [
|
|
6135
6468
|
title != null ? typeof title === "string" ? /* @__PURE__ */ jsx49("p", { className: "stn-widget__title", title, children: title }) : title : null,
|
|
6136
6469
|
badge
|
|
6137
6470
|
] }),
|
|
@@ -6150,14 +6483,14 @@ function StnWidgetRoot({
|
|
|
6150
6483
|
body = /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__body", autoBodyClass, isEmptyState && "empty", contentClassName), style: emptyStyle, children: slots.rest });
|
|
6151
6484
|
}
|
|
6152
6485
|
const footerNode = slots.footers.length > 0 ? slots.footers : footer ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__footer", children: footer }) : null;
|
|
6153
|
-
const card = /* @__PURE__ */
|
|
6486
|
+
const card = /* @__PURE__ */ jsxs40("div", { ...rootProps, children: [
|
|
6154
6487
|
isFigmaShell && appearanceShell === "overlay" ? /* @__PURE__ */ jsx49("div", { className: "stn-widget__map-deco", "aria-hidden": true }) : null,
|
|
6155
6488
|
head,
|
|
6156
6489
|
body,
|
|
6157
6490
|
footerNode
|
|
6158
6491
|
] });
|
|
6159
6492
|
if (banner == null || banner === false) return card;
|
|
6160
|
-
return /* @__PURE__ */
|
|
6493
|
+
return /* @__PURE__ */ jsxs40("div", { className: "stn-widget-anchor", children: [
|
|
6161
6494
|
withBannerSeverity(banner, bannerSeverityFromStatus(status, isCritical)),
|
|
6162
6495
|
card
|
|
6163
6496
|
] });
|
|
@@ -6219,8 +6552,8 @@ function StnWidgetStatusItem({
|
|
|
6219
6552
|
...rest
|
|
6220
6553
|
}) {
|
|
6221
6554
|
const grade = gradeProp ?? (status === "warning" ? "minor" : status) ?? "normal";
|
|
6222
|
-
return /* @__PURE__ */
|
|
6223
|
-
/* @__PURE__ */
|
|
6555
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__status-item", className), ...rest, children: [
|
|
6556
|
+
/* @__PURE__ */ jsxs40("span", { className: "stn-widget__status-label", children: [
|
|
6224
6557
|
showDot ? /* @__PURE__ */ jsx49(
|
|
6225
6558
|
"span",
|
|
6226
6559
|
{
|
|
@@ -6240,7 +6573,7 @@ function StnWidgetStatGroup({ className, children, ...rest }) {
|
|
|
6240
6573
|
return /* @__PURE__ */ jsx49("div", { className: cn("stn-widget__stat-group", className), ...rest, children });
|
|
6241
6574
|
}
|
|
6242
6575
|
function StnWidgetStatCard({ label, count, className, ...rest }) {
|
|
6243
|
-
return /* @__PURE__ */
|
|
6576
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__stat-card", className), ...rest, children: [
|
|
6244
6577
|
/* @__PURE__ */ jsx49("span", { className: "stn-widget__stat-label", children: label }),
|
|
6245
6578
|
/* @__PURE__ */ jsx49("span", { className: "stn-widget__stat-count", children: count })
|
|
6246
6579
|
] });
|
|
@@ -6269,15 +6602,15 @@ function StnWidgetGradeRow({
|
|
|
6269
6602
|
}) {
|
|
6270
6603
|
const clamped = Math.max(0, Math.min(100, percent));
|
|
6271
6604
|
const resolvedPercentLabel = percentLabel ?? formatGradePercent(clamped);
|
|
6272
|
-
return /* @__PURE__ */
|
|
6273
|
-
/* @__PURE__ */
|
|
6274
|
-
/* @__PURE__ */
|
|
6605
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__grade-row", `stn-widget__grade-row--${grade}`, className), ...rest, children: [
|
|
6606
|
+
/* @__PURE__ */ jsxs40("div", { className: "stn-widget__grade-row-left", children: [
|
|
6607
|
+
/* @__PURE__ */ jsxs40("span", { className: "stn-widget__grade-row-label", children: [
|
|
6275
6608
|
/* @__PURE__ */ jsx49(StnIcon, { name: GRADE_ROW_ICON[grade], size: 20, className: "stn-widget__grade-row-icon", "aria-hidden": true }),
|
|
6276
6609
|
label
|
|
6277
6610
|
] }),
|
|
6278
6611
|
/* @__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}%` } }) })
|
|
6279
6612
|
] }),
|
|
6280
|
-
/* @__PURE__ */
|
|
6613
|
+
/* @__PURE__ */ jsxs40("div", { className: "stn-widget__grade-row-right", children: [
|
|
6281
6614
|
/* @__PURE__ */ jsx49("span", { className: "stn-widget__grade-row-value", children: value }),
|
|
6282
6615
|
/* @__PURE__ */ jsx49("span", { className: "stn-widget__grade-row-percent", children: resolvedPercentLabel })
|
|
6283
6616
|
] })
|
|
@@ -6291,8 +6624,8 @@ function StnWidgetFooter({ className, children, ...rest }) {
|
|
|
6291
6624
|
}
|
|
6292
6625
|
markWidgetSlot(StnWidgetFooter, "footer");
|
|
6293
6626
|
function StnWidgetEmpty({ className, children, ...rest }) {
|
|
6294
|
-
return /* @__PURE__ */
|
|
6295
|
-
/* @__PURE__ */
|
|
6627
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("stn-widget__empty", className), ...rest, children: [
|
|
6628
|
+
/* @__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: [
|
|
6296
6629
|
/* @__PURE__ */ jsx49("circle", { cx: "12", cy: "12", r: "10" }),
|
|
6297
6630
|
/* @__PURE__ */ jsx49("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
|
|
6298
6631
|
/* @__PURE__ */ jsx49("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
|
|
@@ -6351,11 +6684,11 @@ import {
|
|
|
6351
6684
|
// src/layouts/StnStack.tsx
|
|
6352
6685
|
import {
|
|
6353
6686
|
Children as Children3,
|
|
6354
|
-
forwardRef as
|
|
6355
|
-
Fragment as
|
|
6356
|
-
isValidElement as
|
|
6687
|
+
forwardRef as forwardRef25,
|
|
6688
|
+
Fragment as Fragment6,
|
|
6689
|
+
isValidElement as isValidElement6
|
|
6357
6690
|
} from "react";
|
|
6358
|
-
import { jsx as jsx50, jsxs as
|
|
6691
|
+
import { jsx as jsx50, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
6359
6692
|
var BREAKPOINTS = ["xs", "sm", "md", "lg", "xl"];
|
|
6360
6693
|
var DIRECTION_CLASS = /* @__PURE__ */ new Set(["row", "row-reverse", "column", "column-reverse"]);
|
|
6361
6694
|
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]);
|
|
@@ -6448,7 +6781,7 @@ function spacingClassesAndStyle(spacing) {
|
|
|
6448
6781
|
}
|
|
6449
6782
|
return { classes, inlineGap };
|
|
6450
6783
|
}
|
|
6451
|
-
var StnStack =
|
|
6784
|
+
var StnStack = forwardRef25(function StnStack2({
|
|
6452
6785
|
component,
|
|
6453
6786
|
as,
|
|
6454
6787
|
direction = "column",
|
|
@@ -6473,8 +6806,8 @@ var StnStack = forwardRef24(function StnStack2({
|
|
|
6473
6806
|
const mergedStyle = inlineGap ? { gap: inlineGap, ...style } : style;
|
|
6474
6807
|
const validChildren = Children3.toArray(children).filter(Boolean);
|
|
6475
6808
|
const renderedChildren = divider ? validChildren.map((child, index) => {
|
|
6476
|
-
const key =
|
|
6477
|
-
return /* @__PURE__ */
|
|
6809
|
+
const key = isValidElement6(child) && child.key != null ? child.key : index;
|
|
6810
|
+
return /* @__PURE__ */ jsxs41(Fragment6, { children: [
|
|
6478
6811
|
index > 0 ? divider : null,
|
|
6479
6812
|
child
|
|
6480
6813
|
] }, key);
|
|
@@ -6503,7 +6836,7 @@ var StnStack = forwardRef24(function StnStack2({
|
|
|
6503
6836
|
});
|
|
6504
6837
|
|
|
6505
6838
|
// src/patterns/dashboard/AlertCenterDashboard.tsx
|
|
6506
|
-
import { jsx as jsx51, jsxs as
|
|
6839
|
+
import { jsx as jsx51, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
6507
6840
|
var TOP5_ROWS = [
|
|
6508
6841
|
{ label: "\uADF8\uB791\uC2DC\uC544", percent: 80, value: "80\uAC74", grade: "critical" },
|
|
6509
6842
|
{ label: "\uC5F0\uB9BD\uC8FC\uD0DD 15\uC138\uB300", percent: 74, value: "74\uAC74", grade: "major" },
|
|
@@ -6512,7 +6845,7 @@ var TOP5_ROWS = [
|
|
|
6512
6845
|
{ label: "PRADA", percent: 68, value: "68\uAC74", grade: "default" }
|
|
6513
6846
|
];
|
|
6514
6847
|
function AlertCenterDashboard({ className, appearance = "translucent", loading = false }) {
|
|
6515
|
-
return /* @__PURE__ */
|
|
6848
|
+
return /* @__PURE__ */ jsxs42(
|
|
6516
6849
|
StnStack,
|
|
6517
6850
|
{
|
|
6518
6851
|
direction: "column",
|
|
@@ -6521,12 +6854,12 @@ function AlertCenterDashboard({ className, appearance = "translucent", loading =
|
|
|
6521
6854
|
style: { flex: "1 1 0%", minHeight: 0, height: "100%", width: "100%" },
|
|
6522
6855
|
"data-stn-dashboard": "alert-widgets",
|
|
6523
6856
|
children: [
|
|
6524
|
-
/* @__PURE__ */ jsx51(StnWidget, { title: "\uC2DC\uC124 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */
|
|
6857
|
+
/* @__PURE__ */ jsx51(StnWidget, { title: "\uC2DC\uC124 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs42(StnWidget.StatusList, { children: [
|
|
6525
6858
|
/* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "PTN", value: "179", showDot: false }),
|
|
6526
6859
|
/* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "MSPP", value: "63", showDot: false }),
|
|
6527
6860
|
/* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "L3\uC2A4\uC704\uCE58", value: "27", showDot: false })
|
|
6528
6861
|
] }) }),
|
|
6529
|
-
/* @__PURE__ */ jsx51(StnWidget, { title: "\uC7A5\uC560 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */
|
|
6862
|
+
/* @__PURE__ */ jsx51(StnWidget, { title: "\uC7A5\uC560 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx51(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs42(StnWidget.StatusList, { children: [
|
|
6530
6863
|
/* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "Critical", value: "43", grade: "critical" }),
|
|
6531
6864
|
/* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "Major", value: "79", grade: "major" }),
|
|
6532
6865
|
/* @__PURE__ */ jsx51(StnWidget.StatusItem, { label: "Minor", value: "3", grade: "minor" })
|
|
@@ -6548,15 +6881,15 @@ function AlertCenterDashboard({ className, appearance = "translucent", loading =
|
|
|
6548
6881
|
}
|
|
6549
6882
|
|
|
6550
6883
|
// src/patterns/dashboard/PubDashboardWidgetBodies.tsx
|
|
6551
|
-
import { jsx as jsx52, jsxs as
|
|
6884
|
+
import { jsx as jsx52, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
6552
6885
|
function PubDisabilityStatusList({ items, summary }) {
|
|
6553
|
-
return /* @__PURE__ */
|
|
6554
|
-
/* @__PURE__ */ jsx52("ul", { className: "ds-disability-status__list", children: items.map((item, i) => /* @__PURE__ */
|
|
6886
|
+
return /* @__PURE__ */ jsxs43("div", { className: "ds-disability-status", children: [
|
|
6887
|
+
/* @__PURE__ */ jsx52("ul", { className: "ds-disability-status__list", children: items.map((item, i) => /* @__PURE__ */ jsxs43(
|
|
6555
6888
|
"li",
|
|
6556
6889
|
{
|
|
6557
6890
|
className: ["ds-disability-status__item", item.grade].filter(Boolean).join(" "),
|
|
6558
6891
|
children: [
|
|
6559
|
-
/* @__PURE__ */
|
|
6892
|
+
/* @__PURE__ */ jsxs43("span", { children: [
|
|
6560
6893
|
item.showDot !== false && item.grade ? /* @__PURE__ */ jsx52("span", { className: "dot", "aria-hidden": true }) : null,
|
|
6561
6894
|
item.label
|
|
6562
6895
|
] }),
|
|
@@ -6565,7 +6898,7 @@ function PubDisabilityStatusList({ items, summary }) {
|
|
|
6565
6898
|
},
|
|
6566
6899
|
i
|
|
6567
6900
|
)) }),
|
|
6568
|
-
summary && summary.length > 0 ? /* @__PURE__ */ jsx52("div", { className: "ds-disability-status__summary", children: summary.map((row, i) => /* @__PURE__ */
|
|
6901
|
+
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: [
|
|
6569
6902
|
row.label,
|
|
6570
6903
|
/* @__PURE__ */ jsx52("span", { children: row.value })
|
|
6571
6904
|
] }, i)) }) : null
|
|
@@ -6573,16 +6906,16 @@ function PubDisabilityStatusList({ items, summary }) {
|
|
|
6573
6906
|
}
|
|
6574
6907
|
function PubTrafficTop5Bars({ rows }) {
|
|
6575
6908
|
const maxPercent = Math.max(...rows.map((row) => row.percent), 0);
|
|
6576
|
-
return /* @__PURE__ */ jsx52("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */
|
|
6909
|
+
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: [
|
|
6577
6910
|
/* @__PURE__ */ jsx52("p", { className: "ds-bar-name", title: row.label, children: row.label }),
|
|
6578
6911
|
/* @__PURE__ */ jsx52("div", { className: "ds-bar-con", title: `${row.percent}%`, children: /* @__PURE__ */ jsx52("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }) }),
|
|
6579
6912
|
/* @__PURE__ */ jsx52("p", { className: "ds-bar-value", title: row.value, children: row.value })
|
|
6580
6913
|
] }, row.label)) });
|
|
6581
6914
|
}
|
|
6582
6915
|
function PubTop5EquipmentBars({ rows }) {
|
|
6583
|
-
return /* @__PURE__ */
|
|
6916
|
+
return /* @__PURE__ */ jsxs43("div", { className: "ds-group", children: [
|
|
6584
6917
|
/* @__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" }) }) }),
|
|
6585
|
-
/* @__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__ */
|
|
6918
|
+
/* @__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: [
|
|
6586
6919
|
/* @__PURE__ */ jsx52("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }),
|
|
6587
6920
|
/* @__PURE__ */ jsx52("div", { className: "ds-bar-status", children: row.status })
|
|
6588
6921
|
] }) }, row.label)) }) })
|
|
@@ -6597,11 +6930,11 @@ function PubChartSample({
|
|
|
6597
6930
|
}
|
|
6598
6931
|
|
|
6599
6932
|
// src/patterns/alertCenter/StnAlertCenterPanel.tsx
|
|
6600
|
-
import { useState as
|
|
6933
|
+
import { useState as useState14 } from "react";
|
|
6601
6934
|
import {
|
|
6602
6935
|
STN_ALERT_CENTER_TABS
|
|
6603
6936
|
} from "@stn-uiux/pub-ui/data/stnAlertCenter";
|
|
6604
|
-
import { jsx as jsx53, jsxs as
|
|
6937
|
+
import { jsx as jsx53, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6605
6938
|
function resolveAlertIcon(item) {
|
|
6606
6939
|
if (item.icon) {
|
|
6607
6940
|
if (item.icon === "line/arrow-down") return "line/arrow-narrow-down";
|
|
@@ -6637,7 +6970,7 @@ function StnAlertCard({
|
|
|
6637
6970
|
interactive: true,
|
|
6638
6971
|
className: cn("stn-alert-card", className),
|
|
6639
6972
|
onClick,
|
|
6640
|
-
children: /* @__PURE__ */
|
|
6973
|
+
children: /* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__row", children: [
|
|
6641
6974
|
/* @__PURE__ */ jsx53(
|
|
6642
6975
|
StnIcon,
|
|
6643
6976
|
{
|
|
@@ -6647,8 +6980,8 @@ function StnAlertCard({
|
|
|
6647
6980
|
className: "stn-alert-card__icon"
|
|
6648
6981
|
}
|
|
6649
6982
|
),
|
|
6650
|
-
/* @__PURE__ */
|
|
6651
|
-
/* @__PURE__ */
|
|
6983
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__body", children: [
|
|
6984
|
+
/* @__PURE__ */ jsxs44(StnStack, { direction: "row", alignItems: "center", spacing: 1, className: "stn-alert-card__header-line", children: [
|
|
6652
6985
|
/* @__PURE__ */ jsx53(
|
|
6653
6986
|
StnChip,
|
|
6654
6987
|
{
|
|
@@ -6668,7 +7001,7 @@ function StnAlertCard({
|
|
|
6668
7001
|
}
|
|
6669
7002
|
)
|
|
6670
7003
|
] }),
|
|
6671
|
-
/* @__PURE__ */
|
|
7004
|
+
/* @__PURE__ */ jsxs44(StnStack, { direction: "row", alignItems: "center", spacing: 2, wrap: "wrap", className: "stn-alert-card__desc-line", children: [
|
|
6672
7005
|
/* @__PURE__ */ jsx53(
|
|
6673
7006
|
"span",
|
|
6674
7007
|
{
|
|
@@ -6677,7 +7010,7 @@ function StnAlertCard({
|
|
|
6677
7010
|
children: /* @__PURE__ */ jsx53("span", { className: "stn-alert-card__text-inner", children: item.description })
|
|
6678
7011
|
}
|
|
6679
7012
|
),
|
|
6680
|
-
item.occurredAt && /* @__PURE__ */
|
|
7013
|
+
item.occurredAt && /* @__PURE__ */ jsxs44(
|
|
6681
7014
|
StnChip,
|
|
6682
7015
|
{
|
|
6683
7016
|
shape: "pill",
|
|
@@ -6693,7 +7026,7 @@ function StnAlertCard({
|
|
|
6693
7026
|
)
|
|
6694
7027
|
] })
|
|
6695
7028
|
] }),
|
|
6696
|
-
/* @__PURE__ */
|
|
7029
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__meta", children: [
|
|
6697
7030
|
/* @__PURE__ */ jsx53("span", { className: "stn-alert-card__time", children: item.time }),
|
|
6698
7031
|
item.unread !== false && /* @__PURE__ */ jsx53(
|
|
6699
7032
|
"span",
|
|
@@ -6729,11 +7062,11 @@ function StnAlertCenterPanel({
|
|
|
6729
7062
|
closeLabel = "\uB2EB\uAE30",
|
|
6730
7063
|
className
|
|
6731
7064
|
}) {
|
|
6732
|
-
const [activeTab, setActiveTab] =
|
|
7065
|
+
const [activeTab, setActiveTab] = useState14(defaultTab);
|
|
6733
7066
|
const alertCount = alerts.length;
|
|
6734
7067
|
const resolvedTitleOverflow = titleOverflow ?? textOverflow;
|
|
6735
7068
|
const resolvedDescOverflow = descOverflow ?? textOverflow;
|
|
6736
|
-
return /* @__PURE__ */
|
|
7069
|
+
return /* @__PURE__ */ jsxs44(
|
|
6737
7070
|
"div",
|
|
6738
7071
|
{
|
|
6739
7072
|
className: cn(
|
|
@@ -6745,8 +7078,8 @@ function StnAlertCenterPanel({
|
|
|
6745
7078
|
),
|
|
6746
7079
|
"data-stn-alert-center": true,
|
|
6747
7080
|
children: [
|
|
6748
|
-
/* @__PURE__ */
|
|
6749
|
-
/* @__PURE__ */
|
|
7081
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__header", children: [
|
|
7082
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__header-left", children: [
|
|
6750
7083
|
/* @__PURE__ */ jsx53(StnIcon, { name: "line/bell", size: 20, color: "var(--stn-primary)" }),
|
|
6751
7084
|
/* @__PURE__ */ jsx53("span", { className: "stn-alert-center__title", children: title }),
|
|
6752
7085
|
alertCount > 0 && /* @__PURE__ */ jsx53(StnChip, { shape: "pill", size: "sm", variant: "subtle", color: "primary", children: alertCount })
|
|
@@ -6764,7 +7097,7 @@ function StnAlertCenterPanel({
|
|
|
6764
7097
|
}))
|
|
6765
7098
|
}
|
|
6766
7099
|
),
|
|
6767
|
-
/* @__PURE__ */
|
|
7100
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__header-right", children: [
|
|
6768
7101
|
/* @__PURE__ */ jsx53(
|
|
6769
7102
|
StnButton,
|
|
6770
7103
|
{
|
|
@@ -6788,7 +7121,7 @@ function StnAlertCenterPanel({
|
|
|
6788
7121
|
)
|
|
6789
7122
|
] })
|
|
6790
7123
|
] }),
|
|
6791
|
-
/* @__PURE__ */
|
|
7124
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-center__list-wrap", children: [
|
|
6792
7125
|
activeTab === "error" && /* @__PURE__ */ jsx53("ul", { className: "stn-alert-center__list", children: alerts.map((item) => /* @__PURE__ */ jsx53("li", { children: /* @__PURE__ */ jsx53(
|
|
6793
7126
|
StnAlertCard,
|
|
6794
7127
|
{
|
|
@@ -6798,24 +7131,24 @@ function StnAlertCenterPanel({
|
|
|
6798
7131
|
onClick: () => onItemClick?.(item)
|
|
6799
7132
|
}
|
|
6800
7133
|
) }, item.id ?? item.title)) }),
|
|
6801
|
-
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__ */
|
|
7134
|
+
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: [
|
|
6802
7135
|
/* @__PURE__ */ jsx53(StnIcon, { name: "line/clock", size: 24, color: "var(--stn-text-secondary)", className: "stn-alert-card__icon" }),
|
|
6803
|
-
/* @__PURE__ */
|
|
6804
|
-
/* @__PURE__ */ jsx53("span", { className: "stn-alert-card__type-label
|
|
7136
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__body", children: [
|
|
7137
|
+
/* @__PURE__ */ jsx53("span", { className: "stn-alert-card__type-label work", children: row.typeLabel }),
|
|
6805
7138
|
/* @__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 }) })
|
|
6806
7139
|
] }),
|
|
6807
7140
|
/* @__PURE__ */ jsx53("span", { className: "stn-alert-card__time", children: row.time })
|
|
6808
7141
|
] }) }) }, row.id ?? row.text)) }),
|
|
6809
|
-
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__ */
|
|
7142
|
+
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: [
|
|
6810
7143
|
/* @__PURE__ */ jsx53(StnIcon, { name: "line/settings", size: 24, color: "var(--stn-secondary)", className: "stn-alert-card__icon" }),
|
|
6811
|
-
/* @__PURE__ */
|
|
7144
|
+
/* @__PURE__ */ jsxs44("div", { className: "stn-alert-card__body", children: [
|
|
6812
7145
|
/* @__PURE__ */ jsx53("span", { className: "stn-alert-card__type-label stn-alert-card__type-label--deploy", children: row.typeLabel }),
|
|
6813
7146
|
/* @__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 }) })
|
|
6814
7147
|
] }),
|
|
6815
7148
|
/* @__PURE__ */ jsx53("span", { className: "stn-alert-card__time", children: row.time })
|
|
6816
7149
|
] }) }) }, row.id ?? row.text)) })
|
|
6817
7150
|
] }),
|
|
6818
|
-
/* @__PURE__ */ jsx53("div", { className: "stn-alert-center__footer", children: /* @__PURE__ */
|
|
7151
|
+
/* @__PURE__ */ jsx53("div", { className: "stn-alert-center__footer", children: /* @__PURE__ */ jsxs44(
|
|
6819
7152
|
"button",
|
|
6820
7153
|
{
|
|
6821
7154
|
type: "button",
|
|
@@ -6870,13 +7203,13 @@ var SideNavContext = createContext3({
|
|
|
6870
7203
|
var useSideNav = () => useContext3(SideNavContext);
|
|
6871
7204
|
|
|
6872
7205
|
// src/components/sideNav/StnSideNavItem.tsx
|
|
6873
|
-
import { forwardRef as
|
|
7206
|
+
import { forwardRef as forwardRef26 } from "react";
|
|
6874
7207
|
import { STN_NAV_MENU_SUB_ICON } from "@stn-uiux/pub-ui/data/stnSideNavItem";
|
|
6875
|
-
import { jsx as jsx55, jsxs as
|
|
7208
|
+
import { jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6876
7209
|
function maskStyle2(src) {
|
|
6877
7210
|
return { maskImage: `url('${src}')`, WebkitMaskImage: `url('${src}')` };
|
|
6878
7211
|
}
|
|
6879
|
-
var StnSideNavItem =
|
|
7212
|
+
var StnSideNavItem = forwardRef26(function StnSideNavItem2({
|
|
6880
7213
|
label,
|
|
6881
7214
|
id,
|
|
6882
7215
|
iconSrc,
|
|
@@ -6919,7 +7252,7 @@ var StnSideNavItem = forwardRef25(function StnSideNavItem2({
|
|
|
6919
7252
|
sideNav.onSelect(id);
|
|
6920
7253
|
}
|
|
6921
7254
|
};
|
|
6922
|
-
const iconElement = hasIcon && !isSub ? /* @__PURE__ */
|
|
7255
|
+
const iconElement = hasIcon && !isSub ? /* @__PURE__ */ jsxs45("span", { className: "stn-side-nav-item__icon-wrap", children: [
|
|
6923
7256
|
/* @__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) }),
|
|
6924
7257
|
showDot ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__dot-wrap", "aria-hidden": "true", children: /* @__PURE__ */ jsx55(StnBadge, { variant: "dot", color: "error" }) }) : null
|
|
6925
7258
|
] }) : null;
|
|
@@ -6944,8 +7277,8 @@ var StnSideNavItem = forwardRef25(function StnSideNavItem2({
|
|
|
6944
7277
|
title: collapsed ? label : void 0,
|
|
6945
7278
|
onClick: handleClick,
|
|
6946
7279
|
...rest,
|
|
6947
|
-
children: /* @__PURE__ */
|
|
6948
|
-
/* @__PURE__ */
|
|
7280
|
+
children: /* @__PURE__ */ jsxs45("span", { className: cn("stn-side-nav-item__inner", spreadTrail && "spread"), children: [
|
|
7281
|
+
/* @__PURE__ */ jsxs45("span", { className: "stn-side-nav-item__lead", children: [
|
|
6949
7282
|
isSub && showSubIndent ? /* @__PURE__ */ jsx55("span", { className: "stn-side-nav-item__sub-indent", "aria-hidden": "true" }) : null,
|
|
6950
7283
|
shouldShowSubDot ? /* @__PURE__ */ jsx55(
|
|
6951
7284
|
"span",
|
|
@@ -6995,12 +7328,12 @@ var StnSideNavItem = forwardRef25(function StnSideNavItem2({
|
|
|
6995
7328
|
});
|
|
6996
7329
|
|
|
6997
7330
|
// src/components/sideNav/StnSideNavHeader.tsx
|
|
6998
|
-
import { forwardRef as
|
|
7331
|
+
import { forwardRef as forwardRef28 } from "react";
|
|
6999
7332
|
|
|
7000
7333
|
// src/components/sideNav/StnSideNavLogo.tsx
|
|
7001
|
-
import { forwardRef as
|
|
7334
|
+
import { forwardRef as forwardRef27 } from "react";
|
|
7002
7335
|
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
7003
|
-
var StnSideNavLogo =
|
|
7336
|
+
var StnSideNavLogo = forwardRef27(
|
|
7004
7337
|
function StnSideNavLogo2({ className, logoProps, ...rest }, ref) {
|
|
7005
7338
|
const { collapsed } = useSideNav();
|
|
7006
7339
|
return /* @__PURE__ */ jsx56(
|
|
@@ -7028,8 +7361,8 @@ var StnSideNavLogo = forwardRef26(
|
|
|
7028
7361
|
);
|
|
7029
7362
|
|
|
7030
7363
|
// src/components/sideNav/StnSideNavHeader.tsx
|
|
7031
|
-
import { Fragment as
|
|
7032
|
-
var StnSideNavHeader =
|
|
7364
|
+
import { Fragment as Fragment7, jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
7365
|
+
var StnSideNavHeader = forwardRef28(function StnSideNavHeader2({
|
|
7033
7366
|
children,
|
|
7034
7367
|
border = false,
|
|
7035
7368
|
hasBorder = false,
|
|
@@ -7052,7 +7385,7 @@ var StnSideNavHeader = forwardRef27(function StnSideNavHeader2({
|
|
|
7052
7385
|
className
|
|
7053
7386
|
),
|
|
7054
7387
|
...rest,
|
|
7055
|
-
children: children ?? /* @__PURE__ */
|
|
7388
|
+
children: children ?? /* @__PURE__ */ jsxs46(Fragment7, { children: [
|
|
7056
7389
|
/* @__PURE__ */ jsx57(StnSideNavLogo, {}),
|
|
7057
7390
|
shouldShowClose ? /* @__PURE__ */ jsx57(
|
|
7058
7391
|
StnButton,
|
|
@@ -7085,9 +7418,9 @@ var StnSideNavHeader = forwardRef27(function StnSideNavHeader2({
|
|
|
7085
7418
|
});
|
|
7086
7419
|
|
|
7087
7420
|
// src/components/sideNav/StnSideNavMenu.tsx
|
|
7088
|
-
import { forwardRef as
|
|
7421
|
+
import { forwardRef as forwardRef29 } from "react";
|
|
7089
7422
|
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
7090
|
-
var StnSideNavMenu =
|
|
7423
|
+
var StnSideNavMenu = forwardRef29(function StnSideNavMenu2({
|
|
7091
7424
|
children,
|
|
7092
7425
|
className,
|
|
7093
7426
|
scrollSize = "thin",
|
|
@@ -7101,9 +7434,9 @@ var StnSideNavMenu = forwardRef28(function StnSideNavMenu2({
|
|
|
7101
7434
|
className: cn(
|
|
7102
7435
|
"stn-side-nav__menu",
|
|
7103
7436
|
"stn-scroll",
|
|
7104
|
-
"
|
|
7105
|
-
scrollSize &&
|
|
7106
|
-
scrollColor &&
|
|
7437
|
+
"vertical",
|
|
7438
|
+
scrollSize && scrollSize,
|
|
7439
|
+
scrollColor && scrollColor,
|
|
7107
7440
|
className
|
|
7108
7441
|
),
|
|
7109
7442
|
"aria-label": "\uC0AC\uC774\uB4DC \uB0B4\uBE44\uAC8C\uC774\uC158",
|
|
@@ -7115,13 +7448,13 @@ var StnSideNavMenu = forwardRef28(function StnSideNavMenu2({
|
|
|
7115
7448
|
|
|
7116
7449
|
// src/components/sideNav/StnSideNavGroup.tsx
|
|
7117
7450
|
import {
|
|
7118
|
-
forwardRef as
|
|
7451
|
+
forwardRef as forwardRef30,
|
|
7119
7452
|
useEffect as useEffect10,
|
|
7120
7453
|
useRef as useRef7,
|
|
7121
|
-
useState as
|
|
7454
|
+
useState as useState15
|
|
7122
7455
|
} from "react";
|
|
7123
|
-
import { jsx as jsx59, jsxs as
|
|
7124
|
-
var StnSideNavGroup =
|
|
7456
|
+
import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
7457
|
+
var StnSideNavGroup = forwardRef30(function StnSideNavGroup2({
|
|
7125
7458
|
label,
|
|
7126
7459
|
parent,
|
|
7127
7460
|
direction = "down",
|
|
@@ -7137,7 +7470,7 @@ var StnSideNavGroup = forwardRef29(function StnSideNavGroup2({
|
|
|
7137
7470
|
...rest
|
|
7138
7471
|
}, ref) {
|
|
7139
7472
|
const { collapsed } = useSideNav();
|
|
7140
|
-
const [internalOpen, setInternalOpen] =
|
|
7473
|
+
const [internalOpen, setInternalOpen] = useState15(defaultOpen);
|
|
7141
7474
|
const isOpen = openProp ?? internalOpen;
|
|
7142
7475
|
const isDropdown = Boolean(dropdown || variant === "dropdown");
|
|
7143
7476
|
const isTransparent = dropdownVariant === "transparent" || dropdownBackground === false;
|
|
@@ -7180,7 +7513,7 @@ var StnSideNavGroup = forwardRef29(function StnSideNavGroup2({
|
|
|
7180
7513
|
children
|
|
7181
7514
|
}
|
|
7182
7515
|
) : null;
|
|
7183
|
-
return /* @__PURE__ */
|
|
7516
|
+
return /* @__PURE__ */ jsxs47(
|
|
7184
7517
|
"div",
|
|
7185
7518
|
{
|
|
7186
7519
|
ref: (node) => {
|
|
@@ -7211,9 +7544,9 @@ var StnSideNavGroup = forwardRef29(function StnSideNavGroup2({
|
|
|
7211
7544
|
});
|
|
7212
7545
|
|
|
7213
7546
|
// src/components/sideNav/StnSideNavSpacer.tsx
|
|
7214
|
-
import { forwardRef as
|
|
7547
|
+
import { forwardRef as forwardRef31 } from "react";
|
|
7215
7548
|
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
7216
|
-
var StnSideNavSpacer =
|
|
7549
|
+
var StnSideNavSpacer = forwardRef31(function StnSideNavSpacer2({ className, style, ...rest }, ref) {
|
|
7217
7550
|
return /* @__PURE__ */ jsx60(
|
|
7218
7551
|
"div",
|
|
7219
7552
|
{
|
|
@@ -7227,9 +7560,9 @@ var StnSideNavSpacer = forwardRef30(function StnSideNavSpacer2({ className, styl
|
|
|
7227
7560
|
});
|
|
7228
7561
|
|
|
7229
7562
|
// src/components/sideNav/StnSideNavFooter.tsx
|
|
7230
|
-
import { forwardRef as
|
|
7563
|
+
import { forwardRef as forwardRef32 } from "react";
|
|
7231
7564
|
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
7232
|
-
var StnSideNavFooter =
|
|
7565
|
+
var StnSideNavFooter = forwardRef32(function StnSideNavFooter2({ curved = false, children, className, ...rest }, ref) {
|
|
7233
7566
|
return /* @__PURE__ */ jsx61(
|
|
7234
7567
|
"nav",
|
|
7235
7568
|
{
|
|
@@ -7243,9 +7576,9 @@ var StnSideNavFooter = forwardRef31(function StnSideNavFooter2({ curved = false,
|
|
|
7243
7576
|
});
|
|
7244
7577
|
|
|
7245
7578
|
// src/components/sideNav/StnSideNavToggle.tsx
|
|
7246
|
-
import { forwardRef as
|
|
7579
|
+
import { forwardRef as forwardRef33 } from "react";
|
|
7247
7580
|
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
7248
|
-
var StnSideNavToggle =
|
|
7581
|
+
var StnSideNavToggle = forwardRef33(
|
|
7249
7582
|
function StnSideNavToggle2({ className, onClick, ...rest }, ref) {
|
|
7250
7583
|
const { collapsed, onToggleCollapse } = useSideNav();
|
|
7251
7584
|
return /* @__PURE__ */ jsx62(
|
|
@@ -7281,9 +7614,9 @@ var StnSideNavToggle = forwardRef32(
|
|
|
7281
7614
|
);
|
|
7282
7615
|
|
|
7283
7616
|
// src/components/sideNav/StnSideNavWatermark.tsx
|
|
7284
|
-
import { forwardRef as
|
|
7617
|
+
import { forwardRef as forwardRef34 } from "react";
|
|
7285
7618
|
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
7286
|
-
var StnSideNavWatermark =
|
|
7619
|
+
var StnSideNavWatermark = forwardRef34(
|
|
7287
7620
|
function StnSideNavWatermark2({ size = "xl", theme, className, ...rest }, ref) {
|
|
7288
7621
|
return /* @__PURE__ */ jsx63(
|
|
7289
7622
|
"div",
|
|
@@ -7299,9 +7632,9 @@ var StnSideNavWatermark = forwardRef33(
|
|
|
7299
7632
|
);
|
|
7300
7633
|
|
|
7301
7634
|
// src/components/sideNav/StnSideNavMobileTrigger.tsx
|
|
7302
|
-
import { forwardRef as
|
|
7303
|
-
import { jsx as jsx64, jsxs as
|
|
7304
|
-
var StnSideNavMobileTrigger =
|
|
7635
|
+
import { forwardRef as forwardRef35 } from "react";
|
|
7636
|
+
import { jsx as jsx64, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
7637
|
+
var StnSideNavMobileTrigger = forwardRef35(
|
|
7305
7638
|
function StnSideNavMobileTrigger2({ floating = false, className, children, onClick, ...rest }, ref) {
|
|
7306
7639
|
const { onToggleMobileOpen, mobileOpen } = useSideNav();
|
|
7307
7640
|
return /* @__PURE__ */ jsx64(
|
|
@@ -7322,7 +7655,7 @@ var StnSideNavMobileTrigger = forwardRef34(
|
|
|
7322
7655
|
onToggleMobileOpen?.();
|
|
7323
7656
|
},
|
|
7324
7657
|
...rest,
|
|
7325
|
-
children: children ?? /* @__PURE__ */
|
|
7658
|
+
children: children ?? /* @__PURE__ */ jsxs48("span", { className: "stn-side-nav__hamburger-bars", "aria-hidden": "true", children: [
|
|
7326
7659
|
/* @__PURE__ */ jsx64("span", {}),
|
|
7327
7660
|
/* @__PURE__ */ jsx64("span", {}),
|
|
7328
7661
|
/* @__PURE__ */ jsx64("span", {})
|
|
@@ -7334,10 +7667,10 @@ var StnSideNavMobileTrigger = forwardRef34(
|
|
|
7334
7667
|
|
|
7335
7668
|
// src/components/sideNav/StnSideNavSub.tsx
|
|
7336
7669
|
import {
|
|
7337
|
-
forwardRef as
|
|
7670
|
+
forwardRef as forwardRef36
|
|
7338
7671
|
} from "react";
|
|
7339
7672
|
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
7340
|
-
var StnSideNavSub =
|
|
7673
|
+
var StnSideNavSub = forwardRef36(
|
|
7341
7674
|
function StnSideNavSub2({ children, className, ...rest }, ref) {
|
|
7342
7675
|
return /* @__PURE__ */ jsx65(
|
|
7343
7676
|
"div",
|
|
@@ -7352,7 +7685,7 @@ var StnSideNavSub = forwardRef35(
|
|
|
7352
7685
|
);
|
|
7353
7686
|
}
|
|
7354
7687
|
);
|
|
7355
|
-
var StnSideNavSubItem =
|
|
7688
|
+
var StnSideNavSubItem = forwardRef36(
|
|
7356
7689
|
function StnSideNavSubItem2({
|
|
7357
7690
|
variant = "ghost",
|
|
7358
7691
|
size = "md",
|
|
@@ -7394,9 +7727,9 @@ var StnSideNavSubItem = forwardRef35(
|
|
|
7394
7727
|
);
|
|
7395
7728
|
|
|
7396
7729
|
// src/components/sideNav/StnSideNavSubNav.tsx
|
|
7397
|
-
import { forwardRef as
|
|
7730
|
+
import { forwardRef as forwardRef37 } from "react";
|
|
7398
7731
|
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
7399
|
-
var StnSideNavSubNav =
|
|
7732
|
+
var StnSideNavSubNav = forwardRef37(
|
|
7400
7733
|
function StnSideNavSubNav2({
|
|
7401
7734
|
dropdown = false,
|
|
7402
7735
|
direction = "down",
|
|
@@ -7431,14 +7764,14 @@ var StnSideNavSubNav = forwardRef36(
|
|
|
7431
7764
|
|
|
7432
7765
|
// src/patterns/sideNav/StnSideNavigation.tsx
|
|
7433
7766
|
import {
|
|
7434
|
-
forwardRef as
|
|
7767
|
+
forwardRef as forwardRef38,
|
|
7435
7768
|
useCallback as useCallback8,
|
|
7436
7769
|
useMemo as useMemo4,
|
|
7437
|
-
useState as
|
|
7770
|
+
useState as useState16
|
|
7438
7771
|
} from "react";
|
|
7439
|
-
import { jsx as jsx67, jsxs as
|
|
7772
|
+
import { jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
7440
7773
|
function useControllableState(controlledValue, defaultValue, onChange) {
|
|
7441
|
-
const [internalState, setInternalState] =
|
|
7774
|
+
const [internalState, setInternalState] = useState16(defaultValue);
|
|
7442
7775
|
const isControlled = controlledValue !== void 0;
|
|
7443
7776
|
const value = isControlled ? controlledValue : internalState;
|
|
7444
7777
|
const setValue = useCallback8(
|
|
@@ -7452,7 +7785,7 @@ function useControllableState(controlledValue, defaultValue, onChange) {
|
|
|
7452
7785
|
);
|
|
7453
7786
|
return [value, setValue];
|
|
7454
7787
|
}
|
|
7455
|
-
var StnSideNavigationRoot =
|
|
7788
|
+
var StnSideNavigationRoot = forwardRef38(function StnSideNavigationRoot2({
|
|
7456
7789
|
variant: variantProp,
|
|
7457
7790
|
appearance,
|
|
7458
7791
|
drawerVariant: drawerVariantProp,
|
|
@@ -7513,7 +7846,7 @@ var StnSideNavigationRoot = forwardRef37(function StnSideNavigationRoot2({
|
|
|
7513
7846
|
}),
|
|
7514
7847
|
[isEffectiveCollapsed, activeId, setActiveId, handleToggleCollapse, mobileOpen, handleToggleMobileOpen, setMobileOpen, isDrawerMode]
|
|
7515
7848
|
);
|
|
7516
|
-
return /* @__PURE__ */
|
|
7849
|
+
return /* @__PURE__ */ jsxs49(SideNavContext.Provider, { value: contextValue, children: [
|
|
7517
7850
|
showMobileTrigger && /* @__PURE__ */ jsx67(StnSideNavMobileTrigger, { floating: true }),
|
|
7518
7851
|
(drawer || responsiveDrawer) && /* @__PURE__ */ jsx67(
|
|
7519
7852
|
"div",
|
|
@@ -7563,16 +7896,16 @@ var StnSideNavigation = Object.assign(StnSideNavigationRoot, {
|
|
|
7563
7896
|
|
|
7564
7897
|
// src/components/StnBreadcrumb.tsx
|
|
7565
7898
|
import {
|
|
7566
|
-
Fragment as
|
|
7899
|
+
Fragment as Fragment8,
|
|
7567
7900
|
useEffect as useEffect11,
|
|
7568
7901
|
useId as useId15,
|
|
7569
7902
|
useRef as useRef8,
|
|
7570
|
-
useState as
|
|
7903
|
+
useState as useState17
|
|
7571
7904
|
} from "react";
|
|
7572
7905
|
import {
|
|
7573
7906
|
STN_BREADCRUMB_ICON_SRC
|
|
7574
7907
|
} from "@stn-uiux/pub-ui/data/stnBreadcrumb";
|
|
7575
|
-
import { Fragment as
|
|
7908
|
+
import { Fragment as Fragment9, jsx as jsx68, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
7576
7909
|
function maskStyle3(src) {
|
|
7577
7910
|
return { maskImage: `url('${src}')`, WebkitMaskImage: `url('${src}')` };
|
|
7578
7911
|
}
|
|
@@ -7605,7 +7938,7 @@ function SegmentContent({
|
|
|
7605
7938
|
label,
|
|
7606
7939
|
menu
|
|
7607
7940
|
}) {
|
|
7608
|
-
return /* @__PURE__ */
|
|
7941
|
+
return /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
7609
7942
|
iconSrc ? /* @__PURE__ */ jsx68(BreadcrumbIcon, { src: iconSrc }) : null,
|
|
7610
7943
|
/* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__label", children: label }),
|
|
7611
7944
|
menu ? /* @__PURE__ */ jsx68(BreadcrumbCaret, {}) : null
|
|
@@ -7666,7 +7999,7 @@ function BreadcrumbSegment({
|
|
|
7666
7999
|
isCurrent
|
|
7667
8000
|
}) {
|
|
7668
8001
|
const menuId = useId15();
|
|
7669
|
-
const [open, setOpen] =
|
|
8002
|
+
const [open, setOpen] = useState17(false);
|
|
7670
8003
|
const menuItems = item.menuItems ?? [];
|
|
7671
8004
|
const showMenu = hasSegmentMenu(item) && !isCurrent;
|
|
7672
8005
|
const canOpenMenu = showMenu && menuItems.length > 0;
|
|
@@ -7677,7 +8010,7 @@ function BreadcrumbSegment({
|
|
|
7677
8010
|
return /* @__PURE__ */ jsx68("span", { className: "stn-breadcrumb__segment", "aria-current": "page", "aria-label": item.label, children: content });
|
|
7678
8011
|
}
|
|
7679
8012
|
if (canOpenMenu) {
|
|
7680
|
-
return /* @__PURE__ */
|
|
8013
|
+
return /* @__PURE__ */ jsxs50("span", { ref: rootRef, className: "stn-breadcrumb__segment-wrap", children: [
|
|
7681
8014
|
/* @__PURE__ */ jsx68(
|
|
7682
8015
|
"button",
|
|
7683
8016
|
{
|
|
@@ -7724,7 +8057,7 @@ function BreadcrumbBack({
|
|
|
7724
8057
|
href,
|
|
7725
8058
|
onClick
|
|
7726
8059
|
}) {
|
|
7727
|
-
const content = /* @__PURE__ */
|
|
8060
|
+
const content = /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
7728
8061
|
/* @__PURE__ */ jsx68(
|
|
7729
8062
|
"span",
|
|
7730
8063
|
{
|
|
@@ -7760,7 +8093,7 @@ function BreadcrumbCollapsed({
|
|
|
7760
8093
|
items,
|
|
7761
8094
|
menuId
|
|
7762
8095
|
}) {
|
|
7763
|
-
const [open, setOpen] =
|
|
8096
|
+
const [open, setOpen] = useState17(false);
|
|
7764
8097
|
const rootRef = useDismissibleMenu(open, () => setOpen(false));
|
|
7765
8098
|
const menuItems = items.map((item) => ({
|
|
7766
8099
|
id: item.id,
|
|
@@ -7769,7 +8102,7 @@ function BreadcrumbCollapsed({
|
|
|
7769
8102
|
onClick: item.onClick,
|
|
7770
8103
|
current: item.current
|
|
7771
8104
|
}));
|
|
7772
|
-
return /* @__PURE__ */
|
|
8105
|
+
return /* @__PURE__ */ jsxs50("li", { className: "stn-breadcrumb__item", ref: rootRef, children: [
|
|
7773
8106
|
/* @__PURE__ */ jsx68(
|
|
7774
8107
|
"button",
|
|
7775
8108
|
{
|
|
@@ -7832,21 +8165,21 @@ function StnBreadcrumb({
|
|
|
7832
8165
|
{
|
|
7833
8166
|
className: cn("stn-breadcrumb", size, variant === "chip" && "chip", className),
|
|
7834
8167
|
"aria-label": "Breadcrumb",
|
|
7835
|
-
children: /* @__PURE__ */
|
|
8168
|
+
children: /* @__PURE__ */ jsxs50("ol", { className: "stn-breadcrumb__list", children: [
|
|
7836
8169
|
currentItem ? /* @__PURE__ */ jsx68("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--back", children: /* @__PURE__ */ jsx68(BreadcrumbBack, { label: currentItem.label, href: backHref, onClick: backOnClick }) }) : null,
|
|
7837
|
-
showHome ? /* @__PURE__ */ jsx68("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--home", children: /* @__PURE__ */
|
|
8170
|
+
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: [
|
|
7838
8171
|
/* @__PURE__ */ jsx68(BreadcrumbIcon, { src: STN_BREADCRUMB_ICON_SRC.home }),
|
|
7839
8172
|
/* @__PURE__ */ jsx68("span", { className: "blind", children: homeLabel })
|
|
7840
8173
|
] }) }) : null,
|
|
7841
|
-
head.map((item, index) => /* @__PURE__ */
|
|
8174
|
+
head.map((item, index) => /* @__PURE__ */ jsxs50(Fragment8, { children: [
|
|
7842
8175
|
showHome || index > 0 ? /* @__PURE__ */ jsx68(BreadcrumbSeparator, {}) : null,
|
|
7843
8176
|
renderTrailItem(item)
|
|
7844
8177
|
] }, item.id)),
|
|
7845
|
-
hidden.length > 0 ? /* @__PURE__ */
|
|
8178
|
+
hidden.length > 0 ? /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
7846
8179
|
/* @__PURE__ */ jsx68(BreadcrumbSeparator, {}),
|
|
7847
8180
|
/* @__PURE__ */ jsx68(BreadcrumbCollapsed, { items: hidden, menuId })
|
|
7848
8181
|
] }) : null,
|
|
7849
|
-
tail.map((item) => /* @__PURE__ */
|
|
8182
|
+
tail.map((item) => /* @__PURE__ */ jsxs50(Fragment8, { children: [
|
|
7850
8183
|
/* @__PURE__ */ jsx68(BreadcrumbSeparator, {}),
|
|
7851
8184
|
renderTrailItem(item)
|
|
7852
8185
|
] }, item.id))
|
|
@@ -7856,9 +8189,9 @@ function StnBreadcrumb({
|
|
|
7856
8189
|
}
|
|
7857
8190
|
|
|
7858
8191
|
// src/components/StnHeaderTitle.tsx
|
|
7859
|
-
import { useEffect as useEffect12, useState as
|
|
8192
|
+
import { useEffect as useEffect12, useState as useState18 } from "react";
|
|
7860
8193
|
import { STN_HEADER_TITLE_FRAME } from "@stn-uiux/pub-ui/data/stnHeaderTitle";
|
|
7861
|
-
import { jsx as jsx69, jsxs as
|
|
8194
|
+
import { jsx as jsx69, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
7862
8195
|
var KO_WEEKDAY_SHORT = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
|
|
7863
8196
|
var KO_WEEKDAY_LONG = [
|
|
7864
8197
|
"\uC77C\uC694\uC77C",
|
|
@@ -7897,7 +8230,7 @@ function formatStnHeaderTitleTime(date, options) {
|
|
|
7897
8230
|
}
|
|
7898
8231
|
function HeaderTitleFrame({ preview = false }) {
|
|
7899
8232
|
const frameClass = preview ? "stn-header-title__frame-preview" : "stn-header-title__frame";
|
|
7900
|
-
return /* @__PURE__ */
|
|
8233
|
+
return /* @__PURE__ */ jsxs51("div", { className: frameClass, "aria-hidden": "true", children: [
|
|
7901
8234
|
/* @__PURE__ */ jsx69("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--outer", children: /* @__PURE__ */ jsx69(
|
|
7902
8235
|
"img",
|
|
7903
8236
|
{
|
|
@@ -7907,7 +8240,7 @@ function HeaderTitleFrame({ preview = false }) {
|
|
|
7907
8240
|
draggable: false
|
|
7908
8241
|
}
|
|
7909
8242
|
) }),
|
|
7910
|
-
/* @__PURE__ */
|
|
8243
|
+
/* @__PURE__ */ jsxs51("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--inner", children: [
|
|
7911
8244
|
/* @__PURE__ */ jsx69(
|
|
7912
8245
|
"img",
|
|
7913
8246
|
{
|
|
@@ -7933,7 +8266,7 @@ function StnHeaderTitleFramePreview({ className }) {
|
|
|
7933
8266
|
return /* @__PURE__ */ jsx69("div", { className: cn("stn-header-title__frame-only", className), children: /* @__PURE__ */ jsx69(HeaderTitleFrame, { preview: true }) });
|
|
7934
8267
|
}
|
|
7935
8268
|
function useLiveClock(enabled) {
|
|
7936
|
-
const [now, setNow] =
|
|
8269
|
+
const [now, setNow] = useState18(() => /* @__PURE__ */ new Date());
|
|
7937
8270
|
useEffect12(() => {
|
|
7938
8271
|
if (!enabled) return;
|
|
7939
8272
|
const id = window.setInterval(() => setNow(/* @__PURE__ */ new Date()), 1e3);
|
|
@@ -7997,7 +8330,7 @@ function StnHeaderTitleClock({
|
|
|
7997
8330
|
}) {
|
|
7998
8331
|
const now = useLiveClock(live);
|
|
7999
8332
|
if (children != null) {
|
|
8000
|
-
return /* @__PURE__ */
|
|
8333
|
+
return /* @__PURE__ */ jsxs51(
|
|
8001
8334
|
"header",
|
|
8002
8335
|
{
|
|
8003
8336
|
className: cn(
|
|
@@ -8040,7 +8373,7 @@ function StnHeaderTitleClock({
|
|
|
8040
8373
|
resolvedTime = formatStnHeaderTitleTime(now, { showSeconds });
|
|
8041
8374
|
}
|
|
8042
8375
|
}
|
|
8043
|
-
return /* @__PURE__ */
|
|
8376
|
+
return /* @__PURE__ */ jsxs51(
|
|
8044
8377
|
"header",
|
|
8045
8378
|
{
|
|
8046
8379
|
className: cn(
|
|
@@ -8053,7 +8386,7 @@ function StnHeaderTitleClock({
|
|
|
8053
8386
|
...rest,
|
|
8054
8387
|
children: [
|
|
8055
8388
|
framed ? /* @__PURE__ */ jsx69(HeaderTitleFrame, {}) : null,
|
|
8056
|
-
/* @__PURE__ */
|
|
8389
|
+
/* @__PURE__ */ jsxs51("div", { className: "stn-header-title__content", children: [
|
|
8057
8390
|
resolvedDate ? /* @__PURE__ */ jsx69("time", { className: "stn-header-title__date", dateTime: resolvedDate, children: resolvedDate }) : null,
|
|
8058
8391
|
showWeekdayOnly ? /* @__PURE__ */ jsx69("span", { className: "stn-header-title__weekday", children: resolvedWeekday }) : null,
|
|
8059
8392
|
resolvedTime ? /* @__PURE__ */ jsx69("span", { className: "stn-header-title__time", "aria-label": "\uD604\uC7AC \uC2DC\uAC01", children: resolvedTime }) : null
|
|
@@ -8073,7 +8406,7 @@ function StnHeaderTitleDual({
|
|
|
8073
8406
|
...rest
|
|
8074
8407
|
}) {
|
|
8075
8408
|
const resolvedMain = mainText ?? title ?? children;
|
|
8076
|
-
return /* @__PURE__ */
|
|
8409
|
+
return /* @__PURE__ */ jsxs51(
|
|
8077
8410
|
"header",
|
|
8078
8411
|
{
|
|
8079
8412
|
className: cn(
|
|
@@ -8086,7 +8419,7 @@ function StnHeaderTitleDual({
|
|
|
8086
8419
|
...rest,
|
|
8087
8420
|
children: [
|
|
8088
8421
|
framed ? /* @__PURE__ */ jsx69(HeaderTitleFrame, {}) : null,
|
|
8089
|
-
/* @__PURE__ */
|
|
8422
|
+
/* @__PURE__ */ jsxs51("div", { className: "stn-header-title__content", children: [
|
|
8090
8423
|
subText != null ? /* @__PURE__ */ jsx69("span", { className: "stn-header-title__sub-text", children: subText }) : null,
|
|
8091
8424
|
resolvedMain != null ? typeof resolvedMain === "string" || typeof resolvedMain === "number" ? /* @__PURE__ */ jsx69("h1", { className: "stn-header-title__text", children: resolvedMain }) : resolvedMain : null
|
|
8092
8425
|
] })
|
|
@@ -8103,7 +8436,7 @@ function StnHeaderTitleText({
|
|
|
8103
8436
|
...rest
|
|
8104
8437
|
}) {
|
|
8105
8438
|
const resolved = title ?? children;
|
|
8106
|
-
return /* @__PURE__ */
|
|
8439
|
+
return /* @__PURE__ */ jsxs51(
|
|
8107
8440
|
"header",
|
|
8108
8441
|
{
|
|
8109
8442
|
className: cn(
|
|
@@ -8141,10 +8474,10 @@ var StnHeaderTitle = Object.assign(StnHeaderTitleRoot, {
|
|
|
8141
8474
|
|
|
8142
8475
|
// src/layouts/StnContainer.tsx
|
|
8143
8476
|
import {
|
|
8144
|
-
forwardRef as
|
|
8477
|
+
forwardRef as forwardRef39
|
|
8145
8478
|
} from "react";
|
|
8146
8479
|
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
8147
|
-
var StnContainer =
|
|
8480
|
+
var StnContainer = forwardRef39(function StnContainer2({
|
|
8148
8481
|
component,
|
|
8149
8482
|
as,
|
|
8150
8483
|
maxWidth = "lg",
|
|
@@ -8182,7 +8515,7 @@ var StnContainer = forwardRef38(function StnContainer2({
|
|
|
8182
8515
|
});
|
|
8183
8516
|
|
|
8184
8517
|
// src/layouts/StnGrid.tsx
|
|
8185
|
-
import { forwardRef as
|
|
8518
|
+
import { forwardRef as forwardRef40 } from "react";
|
|
8186
8519
|
import { jsx as jsx71 } from "react/jsx-runtime";
|
|
8187
8520
|
var BREAKPOINTS2 = ["xs", "sm", "md", "lg", "xl"];
|
|
8188
8521
|
var SPACING_CLASS = {
|
|
@@ -8249,7 +8582,7 @@ function sizeClasses(size) {
|
|
|
8249
8582
|
}
|
|
8250
8583
|
return classes;
|
|
8251
8584
|
}
|
|
8252
|
-
var StnGrid =
|
|
8585
|
+
var StnGrid = forwardRef40(function StnGrid2({
|
|
8253
8586
|
component,
|
|
8254
8587
|
as,
|
|
8255
8588
|
container = false,
|
|
@@ -8293,7 +8626,7 @@ var StnGrid = forwardRef39(function StnGrid2({
|
|
|
8293
8626
|
});
|
|
8294
8627
|
|
|
8295
8628
|
// src/layouts/StnLayerShell.tsx
|
|
8296
|
-
import { jsx as jsx72, jsxs as
|
|
8629
|
+
import { jsx as jsx72, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
8297
8630
|
function StnLayerShell({
|
|
8298
8631
|
gnb,
|
|
8299
8632
|
gnbSide = "left",
|
|
@@ -8314,7 +8647,7 @@ function StnLayerShell({
|
|
|
8314
8647
|
const resolvedMainContent = layer1 ?? children;
|
|
8315
8648
|
const resolvedModal = layer2;
|
|
8316
8649
|
const isGnbRight = gnbSide === "right";
|
|
8317
|
-
return /* @__PURE__ */
|
|
8650
|
+
return /* @__PURE__ */ jsxs52(
|
|
8318
8651
|
"div",
|
|
8319
8652
|
{
|
|
8320
8653
|
id: wrapId,
|
|
@@ -8324,7 +8657,7 @@ function StnLayerShell({
|
|
|
8324
8657
|
children: [
|
|
8325
8658
|
layer0,
|
|
8326
8659
|
utilities ? /* @__PURE__ */ jsx72("div", { className: "stn-page-utilities", "data-stn-layer-role": "utility", children: utilities }) : null,
|
|
8327
|
-
/* @__PURE__ */
|
|
8660
|
+
/* @__PURE__ */ jsxs52(
|
|
8328
8661
|
"main",
|
|
8329
8662
|
{
|
|
8330
8663
|
id: containerId,
|
|
@@ -8333,7 +8666,7 @@ function StnLayerShell({
|
|
|
8333
8666
|
className: cn("stn-layer-1", scrollable && "scroll", containerClassName),
|
|
8334
8667
|
children: [
|
|
8335
8668
|
!isGnbRight && gnb,
|
|
8336
|
-
/* @__PURE__ */
|
|
8669
|
+
/* @__PURE__ */ jsxs52("div", { className: "stn-layer-1__main", children: [
|
|
8337
8670
|
header ? /* @__PURE__ */ jsx72("header", { className: "stn-layer-1__header", children: header }) : null,
|
|
8338
8671
|
/* @__PURE__ */ jsx72("div", { className: cn("stn-layer-1__body", scrollable && "stn-scroll", contentClassName), children: resolvedMainContent })
|
|
8339
8672
|
] }),
|
|
@@ -8347,14 +8680,166 @@ function StnLayerShell({
|
|
|
8347
8680
|
);
|
|
8348
8681
|
}
|
|
8349
8682
|
|
|
8683
|
+
// src/layouts/StnListViewLayout.tsx
|
|
8684
|
+
import { jsx as jsx73, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
8685
|
+
function StnListViewLayoutBody({
|
|
8686
|
+
search,
|
|
8687
|
+
sidebar,
|
|
8688
|
+
table,
|
|
8689
|
+
pagination,
|
|
8690
|
+
lnbSide = "left",
|
|
8691
|
+
children,
|
|
8692
|
+
className
|
|
8693
|
+
}) {
|
|
8694
|
+
const lnbClass = lnbSide === "right" ? "stn-page-scaffold__lnb lnb_box lnb_box_right" : "stn-page-scaffold__lnb lnb_box";
|
|
8695
|
+
const sidebarAside = sidebar ? /* @__PURE__ */ jsx73("aside", { className: lnbClass, children: sidebar }) : null;
|
|
8696
|
+
return /* @__PURE__ */ jsx73(
|
|
8697
|
+
StnContainer,
|
|
8698
|
+
{
|
|
8699
|
+
maxWidth: false,
|
|
8700
|
+
className: cn("stn-list-view-layout__body", className),
|
|
8701
|
+
children: /* @__PURE__ */ jsxs53(
|
|
8702
|
+
StnStack,
|
|
8703
|
+
{
|
|
8704
|
+
direction: "row",
|
|
8705
|
+
spacing: 2,
|
|
8706
|
+
className: "stn-list-view__main",
|
|
8707
|
+
children: [
|
|
8708
|
+
lnbSide === "left" ? sidebarAside : null,
|
|
8709
|
+
/* @__PURE__ */ jsxs53(
|
|
8710
|
+
StnStack,
|
|
8711
|
+
{
|
|
8712
|
+
direction: "column",
|
|
8713
|
+
spacing: 2,
|
|
8714
|
+
className: "stn-list-view__content-stack",
|
|
8715
|
+
children: [
|
|
8716
|
+
search ? /* @__PURE__ */ jsx73("div", { className: "stn-page-scaffold__search search_area", children: search }) : null,
|
|
8717
|
+
/* @__PURE__ */ jsx73(
|
|
8718
|
+
"div",
|
|
8719
|
+
{
|
|
8720
|
+
className: "stn-page-scaffold__content content_box",
|
|
8721
|
+
children: children ?? /* @__PURE__ */ jsxs53("div", { className: "stn-table stn-table--fill", children: [
|
|
8722
|
+
table,
|
|
8723
|
+
pagination
|
|
8724
|
+
] })
|
|
8725
|
+
}
|
|
8726
|
+
)
|
|
8727
|
+
]
|
|
8728
|
+
}
|
|
8729
|
+
),
|
|
8730
|
+
lnbSide === "right" ? sidebarAside : null
|
|
8731
|
+
]
|
|
8732
|
+
}
|
|
8733
|
+
)
|
|
8734
|
+
}
|
|
8735
|
+
);
|
|
8736
|
+
}
|
|
8737
|
+
function StnListViewLayoutRoot({
|
|
8738
|
+
bare: bareProp,
|
|
8739
|
+
noShell,
|
|
8740
|
+
title = "\uBAA9\uB85D \uC870\uD68C",
|
|
8741
|
+
header,
|
|
8742
|
+
search,
|
|
8743
|
+
sidebar,
|
|
8744
|
+
table,
|
|
8745
|
+
pagination,
|
|
8746
|
+
lnbSide = "left",
|
|
8747
|
+
children,
|
|
8748
|
+
className,
|
|
8749
|
+
...rest
|
|
8750
|
+
}) {
|
|
8751
|
+
const bare = bareProp ?? noShell ?? false;
|
|
8752
|
+
const hasLnbClass = lnbSide === "right" ? "has_lnb_right" : "has_lnb";
|
|
8753
|
+
const body = /* @__PURE__ */ jsx73(
|
|
8754
|
+
StnListViewLayoutBody,
|
|
8755
|
+
{
|
|
8756
|
+
search,
|
|
8757
|
+
sidebar,
|
|
8758
|
+
table,
|
|
8759
|
+
pagination,
|
|
8760
|
+
lnbSide,
|
|
8761
|
+
className: bare ? className : void 0,
|
|
8762
|
+
children
|
|
8763
|
+
}
|
|
8764
|
+
);
|
|
8765
|
+
if (bare) {
|
|
8766
|
+
return body;
|
|
8767
|
+
}
|
|
8768
|
+
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 }) }) }) });
|
|
8769
|
+
return /* @__PURE__ */ jsxs53("div", { className: cn("stn-list-view-layout", "stn-layer-1", className), ...rest, children: [
|
|
8770
|
+
renderedHeader,
|
|
8771
|
+
/* @__PURE__ */ jsx73(
|
|
8772
|
+
"div",
|
|
8773
|
+
{
|
|
8774
|
+
className: cn("stn-content-area", sidebar ? hasLnbClass : null, search ? "has_sch" : null),
|
|
8775
|
+
children: body
|
|
8776
|
+
}
|
|
8777
|
+
)
|
|
8778
|
+
] });
|
|
8779
|
+
}
|
|
8780
|
+
function StnListViewLayoutHeader({ className, children, ...rest }) {
|
|
8781
|
+
return /* @__PURE__ */ jsx73("div", { className: cn("stn-layer-1__header", className), ...rest, children });
|
|
8782
|
+
}
|
|
8783
|
+
function StnListViewLayoutSearch({ className, children, ...rest }) {
|
|
8784
|
+
return /* @__PURE__ */ jsx73("div", { className: cn("search_area", className), ...rest, children });
|
|
8785
|
+
}
|
|
8786
|
+
function StnListViewLayoutSidebar({
|
|
8787
|
+
side = "left",
|
|
8788
|
+
className,
|
|
8789
|
+
children,
|
|
8790
|
+
...rest
|
|
8791
|
+
}) {
|
|
8792
|
+
const lnbClass = side === "right" ? "lnb_box_right" : "lnb_box";
|
|
8793
|
+
return /* @__PURE__ */ jsx73("aside", { className: cn(lnbClass, className), ...rest, children });
|
|
8794
|
+
}
|
|
8795
|
+
function StnListViewLayoutContent({ className, children, ...rest }) {
|
|
8796
|
+
return /* @__PURE__ */ jsx73("div", { className: cn("content_box", className), ...rest, children });
|
|
8797
|
+
}
|
|
8798
|
+
function StnListViewLayoutTable({ className, children, ...rest }) {
|
|
8799
|
+
return /* @__PURE__ */ jsx73("div", { className: cn("stn-table", className), ...rest, children });
|
|
8800
|
+
}
|
|
8801
|
+
function StnListViewLayoutPagination({ className, children, ...rest }) {
|
|
8802
|
+
return /* @__PURE__ */ jsx73("div", { className: cn("stn-list-view-layout__pagination-wrap", className), ...rest, children });
|
|
8803
|
+
}
|
|
8804
|
+
var StnListViewLayout = Object.assign(StnListViewLayoutRoot, {
|
|
8805
|
+
Body: StnListViewLayoutBody,
|
|
8806
|
+
Header: StnListViewLayoutHeader,
|
|
8807
|
+
Search: StnListViewLayoutSearch,
|
|
8808
|
+
Sidebar: StnListViewLayoutSidebar,
|
|
8809
|
+
Content: StnListViewLayoutContent,
|
|
8810
|
+
Table: StnListViewLayoutTable,
|
|
8811
|
+
Pagination: StnListViewLayoutPagination
|
|
8812
|
+
});
|
|
8813
|
+
|
|
8814
|
+
// src/index.ts
|
|
8815
|
+
import {
|
|
8816
|
+
STN_LAYOUT_INTRO,
|
|
8817
|
+
STN_LAYOUT_LAYER_PAGE_TREE,
|
|
8818
|
+
STN_LAYOUT_LIST_VIEW_INTRO,
|
|
8819
|
+
STN_LAYOUT_LIST_VIEW_USAGE,
|
|
8820
|
+
STN_LAYOUT_MAP_DASHBOARD_INTRO,
|
|
8821
|
+
STN_LAYOUT_MAP_DASHBOARD_USAGE,
|
|
8822
|
+
STN_LAYER_SHELL_USAGE,
|
|
8823
|
+
applyLnbSideToModifiers,
|
|
8824
|
+
STN_LAYOUT_CONTENT_ROWS,
|
|
8825
|
+
STN_LAYOUT_REGION_ROWS,
|
|
8826
|
+
STN_LAYOUT_SHELL_USAGE,
|
|
8827
|
+
STN_LAYOUT_RECIPES,
|
|
8828
|
+
STN_LAYOUT_PLAYGROUND_TABS,
|
|
8829
|
+
STN_LAYOUT_WHEN_TO_USE,
|
|
8830
|
+
STN_LAYOUT_SCREEN_RECIPES,
|
|
8831
|
+
STN_LAYOUT_SLOT_USAGE,
|
|
8832
|
+
STN_LAYOUT_ALERT_CENTER_USAGE
|
|
8833
|
+
} from "@stn-uiux/pub-ui/data/stnLayout";
|
|
8834
|
+
|
|
8350
8835
|
// src/patterns/dashboard/StnMapCanvas.tsx
|
|
8351
|
-
import { jsx as
|
|
8836
|
+
import { jsx as jsx74 } from "react/jsx-runtime";
|
|
8352
8837
|
function StnMapCanvas({
|
|
8353
8838
|
children,
|
|
8354
8839
|
className,
|
|
8355
8840
|
...rest
|
|
8356
8841
|
}) {
|
|
8357
|
-
return /* @__PURE__ */
|
|
8842
|
+
return /* @__PURE__ */ jsx74(
|
|
8358
8843
|
"div",
|
|
8359
8844
|
{
|
|
8360
8845
|
className: cn("stn-map-canvas", className),
|
|
@@ -8366,7 +8851,7 @@ function StnMapCanvas({
|
|
|
8366
8851
|
}
|
|
8367
8852
|
|
|
8368
8853
|
// src/patterns/dashboard/StnDashboard.tsx
|
|
8369
|
-
import { jsx as
|
|
8854
|
+
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
8370
8855
|
var fillStyle = {
|
|
8371
8856
|
flex: "1 1 0%",
|
|
8372
8857
|
minHeight: 0,
|
|
@@ -8385,7 +8870,7 @@ function StnDashboardRoot({
|
|
|
8385
8870
|
}) {
|
|
8386
8871
|
const isLeft = widgetPosition === "left";
|
|
8387
8872
|
const isBoth = widgetPosition === "both";
|
|
8388
|
-
return /* @__PURE__ */
|
|
8873
|
+
return /* @__PURE__ */ jsx75(
|
|
8389
8874
|
"div",
|
|
8390
8875
|
{
|
|
8391
8876
|
className: cn(
|
|
@@ -8414,7 +8899,7 @@ function StnDashboardLeft({
|
|
|
8414
8899
|
style,
|
|
8415
8900
|
...rest
|
|
8416
8901
|
}) {
|
|
8417
|
-
return /* @__PURE__ */
|
|
8902
|
+
return /* @__PURE__ */ jsx75(
|
|
8418
8903
|
"div",
|
|
8419
8904
|
{
|
|
8420
8905
|
className: cn("stn-dashboard__left", className),
|
|
@@ -8440,7 +8925,7 @@ function StnDashboardRight({
|
|
|
8440
8925
|
style,
|
|
8441
8926
|
...rest
|
|
8442
8927
|
}) {
|
|
8443
|
-
return /* @__PURE__ */
|
|
8928
|
+
return /* @__PURE__ */ jsx75(
|
|
8444
8929
|
"div",
|
|
8445
8930
|
{
|
|
8446
8931
|
className: cn("stn-dashboard__right", className),
|
|
@@ -8468,7 +8953,7 @@ function StnDashboardTopRight({
|
|
|
8468
8953
|
className,
|
|
8469
8954
|
...rest
|
|
8470
8955
|
}) {
|
|
8471
|
-
return /* @__PURE__ */
|
|
8956
|
+
return /* @__PURE__ */ jsx75(
|
|
8472
8957
|
"div",
|
|
8473
8958
|
{
|
|
8474
8959
|
className: cn("stn-dashboard__top-right", className),
|
|
@@ -8487,9 +8972,9 @@ var StnDashboard = Object.assign(StnDashboardRoot, {
|
|
|
8487
8972
|
});
|
|
8488
8973
|
|
|
8489
8974
|
// src/patterns/scaffold/StnPageScaffold.tsx
|
|
8490
|
-
import { jsx as
|
|
8975
|
+
import { jsx as jsx76, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
8491
8976
|
function StnPageScaffoldRoot({ children, className, ...rest }) {
|
|
8492
|
-
return /* @__PURE__ */
|
|
8977
|
+
return /* @__PURE__ */ jsx76(
|
|
8493
8978
|
"div",
|
|
8494
8979
|
{
|
|
8495
8980
|
className: cn("stn-page-scaffold", className),
|
|
@@ -8506,9 +8991,9 @@ function StnPageScaffoldRegion({
|
|
|
8506
8991
|
className,
|
|
8507
8992
|
...rest
|
|
8508
8993
|
}) {
|
|
8509
|
-
return /* @__PURE__ */
|
|
8510
|
-
/* @__PURE__ */
|
|
8511
|
-
hint ? /* @__PURE__ */
|
|
8994
|
+
return /* @__PURE__ */ jsxs54("div", { className: cn("stn-page-scaffold__region", className), "data-stn-page-scaffold": "region", ...rest, children: [
|
|
8995
|
+
/* @__PURE__ */ jsx76("span", { className: "stn-page-scaffold__region-label", children: label }),
|
|
8996
|
+
hint ? /* @__PURE__ */ jsx76("span", { className: "stn-page-scaffold__region-hint", children: hint }) : null,
|
|
8512
8997
|
children
|
|
8513
8998
|
] });
|
|
8514
8999
|
}
|
|
@@ -8519,7 +9004,7 @@ function StnPageScaffoldMapPlaceholder({
|
|
|
8519
9004
|
children,
|
|
8520
9005
|
...rest
|
|
8521
9006
|
}) {
|
|
8522
|
-
return /* @__PURE__ */
|
|
9007
|
+
return /* @__PURE__ */ jsx76("div", { className: "stn-widget shell-canvas stn-map-canvas", "data-stn-dashboard": "canvas", children: /* @__PURE__ */ jsxs54(
|
|
8523
9008
|
"div",
|
|
8524
9009
|
{
|
|
8525
9010
|
className: cn("stn-page-scaffold__canvas-placeholder", className),
|
|
@@ -8527,8 +9012,8 @@ function StnPageScaffoldMapPlaceholder({
|
|
|
8527
9012
|
role: "status",
|
|
8528
9013
|
...rest,
|
|
8529
9014
|
children: [
|
|
8530
|
-
/* @__PURE__ */
|
|
8531
|
-
note ? /* @__PURE__ */
|
|
9015
|
+
/* @__PURE__ */ jsx76("p", { className: "stn-page-scaffold__canvas-placeholder-title", children: message }),
|
|
9016
|
+
note ? /* @__PURE__ */ jsx76("p", { className: "stn-page-scaffold__canvas-placeholder-note", children: note }) : null,
|
|
8532
9017
|
children
|
|
8533
9018
|
]
|
|
8534
9019
|
}
|
|
@@ -8539,7 +9024,7 @@ function StnPageScaffoldMapCanvas({
|
|
|
8539
9024
|
children,
|
|
8540
9025
|
...rest
|
|
8541
9026
|
}) {
|
|
8542
|
-
return /* @__PURE__ */
|
|
9027
|
+
return /* @__PURE__ */ jsx76(
|
|
8543
9028
|
"div",
|
|
8544
9029
|
{
|
|
8545
9030
|
className: cn("stn-widget", "shell-canvas", "stn-map-canvas", "stn-page-scaffold__canvas", className),
|
|
@@ -8552,7 +9037,7 @@ function StnPageScaffoldMapCanvas({
|
|
|
8552
9037
|
}
|
|
8553
9038
|
function StnPageScaffoldLayer({ label, hint, children, className, ...layerProps }) {
|
|
8554
9039
|
const labelText = label ? hint ? `${label} \xB7 ${hint}` : label : void 0;
|
|
8555
|
-
return /* @__PURE__ */
|
|
9040
|
+
return /* @__PURE__ */ jsx76(
|
|
8556
9041
|
StnLayer2,
|
|
8557
9042
|
{
|
|
8558
9043
|
className: cn(
|
|
@@ -8595,16 +9080,47 @@ function ListPageScaffold({
|
|
|
8595
9080
|
...shellProps
|
|
8596
9081
|
}) {
|
|
8597
9082
|
const lnbClass = listPageLnbClass(lnbSide);
|
|
8598
|
-
const lnbAside = showLnb ? /* @__PURE__ */
|
|
9083
|
+
const lnbAside = showLnb ? /* @__PURE__ */ jsx76("aside", { className: lnbClass, children: lnb ?? /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "LNB", hint: lnbHint }) }) : null;
|
|
8599
9084
|
const resolvedContent = layer1 ?? children;
|
|
8600
|
-
const body = /* @__PURE__ */
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
9085
|
+
const body = /* @__PURE__ */ jsx76(
|
|
9086
|
+
StnContainer,
|
|
9087
|
+
{
|
|
9088
|
+
maxWidth: false,
|
|
9089
|
+
className: "stn-list-page-container",
|
|
9090
|
+
children: /* @__PURE__ */ jsxs54(
|
|
9091
|
+
StnStack,
|
|
9092
|
+
{
|
|
9093
|
+
direction: "row",
|
|
9094
|
+
spacing: 2,
|
|
9095
|
+
className: "stn-list-page-main",
|
|
9096
|
+
children: [
|
|
9097
|
+
lnbSide === "left" ? lnbAside : null,
|
|
9098
|
+
/* @__PURE__ */ jsxs54(
|
|
9099
|
+
StnStack,
|
|
9100
|
+
{
|
|
9101
|
+
direction: "column",
|
|
9102
|
+
spacing: 2,
|
|
9103
|
+
className: "stn-list-page-content-stack",
|
|
9104
|
+
children: [
|
|
9105
|
+
showSearch ? /* @__PURE__ */ jsx76("div", { className: "stn-page-scaffold__search search_area", children: search ?? /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "Search", hint: searchHint }) }) : null,
|
|
9106
|
+
/* @__PURE__ */ jsx76(
|
|
9107
|
+
"div",
|
|
9108
|
+
{
|
|
9109
|
+
className: cn("stn-page-scaffold__content content_box", scrollable && "is-scrollable"),
|
|
9110
|
+
children: resolvedContent ?? /* @__PURE__ */ jsx76("div", { className: "stn-table stn-table--fill", children: /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "Table", hint: tableHint }) })
|
|
9111
|
+
}
|
|
9112
|
+
)
|
|
9113
|
+
]
|
|
9114
|
+
}
|
|
9115
|
+
),
|
|
9116
|
+
lnbSide === "right" ? lnbAside : null
|
|
9117
|
+
]
|
|
9118
|
+
}
|
|
9119
|
+
)
|
|
9120
|
+
}
|
|
9121
|
+
);
|
|
9122
|
+
const resolvedHeader = header === null ? void 0 : header ?? /* @__PURE__ */ jsx76(StnHeader, { variant: "page", children: /* @__PURE__ */ jsx76(StnHeader.Left, { children: /* @__PURE__ */ jsx76(StnHeaderPageTitle, { children: title }) }) });
|
|
9123
|
+
return /* @__PURE__ */ jsx76(
|
|
8608
9124
|
StnLayerShell,
|
|
8609
9125
|
{
|
|
8610
9126
|
gnb,
|
|
@@ -8645,25 +9161,25 @@ function DashboardPageScaffold({
|
|
|
8645
9161
|
const isLeft = widgetPosition === "left";
|
|
8646
9162
|
const isBoth = widgetPosition === "both";
|
|
8647
9163
|
const isNone = widgetPosition === "none" || !showRightRegion;
|
|
8648
|
-
const mapColumn = /* @__PURE__ */
|
|
8649
|
-
/* @__PURE__ */
|
|
9164
|
+
const mapColumn = /* @__PURE__ */ jsxs54(StnDashboard.Left, { children: [
|
|
9165
|
+
/* @__PURE__ */ jsx76(StnPageScaffold.MapPlaceholder, { message: finalMapMessage, note: finalMapNote }),
|
|
8650
9166
|
faultPanel
|
|
8651
9167
|
] });
|
|
8652
|
-
const rightWidgets = right ?? /* @__PURE__ */
|
|
8653
|
-
const leftWidgets = left ?? right ?? /* @__PURE__ */
|
|
8654
|
-
const dashboardGrid = bodyEmpty ? /* @__PURE__ */
|
|
8655
|
-
/* @__PURE__ */
|
|
9168
|
+
const rightWidgets = right ?? /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
|
|
9169
|
+
const leftWidgets = left ?? right ?? /* @__PURE__ */ jsx76(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC88C\uCE21 \uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
|
|
9170
|
+
const dashboardGrid = bodyEmpty ? /* @__PURE__ */ jsx76(StnDashboard, { empty: true, widgetPosition, "data-stn-page-scaffold": "dashboard-empty" }) : isBoth ? /* @__PURE__ */ jsxs54(StnDashboard, { widgetPosition: "both", children: [
|
|
9171
|
+
/* @__PURE__ */ jsx76(StnDashboard.Right, { children: leftWidgets }),
|
|
8656
9172
|
mapColumn,
|
|
8657
|
-
/* @__PURE__ */
|
|
8658
|
-
] }) : isLeft ? /* @__PURE__ */
|
|
8659
|
-
/* @__PURE__ */
|
|
9173
|
+
/* @__PURE__ */ jsx76(StnDashboard.Right, { children: rightWidgets })
|
|
9174
|
+
] }) : isLeft ? /* @__PURE__ */ jsxs54(StnDashboard, { widgetPosition: "left", children: [
|
|
9175
|
+
/* @__PURE__ */ jsx76(StnDashboard.Right, { children: leftWidgets }),
|
|
8660
9176
|
mapColumn
|
|
8661
|
-
] }) : /* @__PURE__ */
|
|
9177
|
+
] }) : /* @__PURE__ */ jsxs54(StnDashboard, { widgetPosition: isNone ? "none" : "right", children: [
|
|
8662
9178
|
mapColumn,
|
|
8663
|
-
!isNone ? /* @__PURE__ */
|
|
9179
|
+
!isNone ? /* @__PURE__ */ jsx76(StnDashboard.Right, { children: rightWidgets }) : null
|
|
8664
9180
|
] });
|
|
8665
9181
|
const contentNode = children ?? dashboardGrid;
|
|
8666
|
-
return /* @__PURE__ */
|
|
9182
|
+
return /* @__PURE__ */ jsx76(
|
|
8667
9183
|
StnLayerShell,
|
|
8668
9184
|
{
|
|
8669
9185
|
gnb,
|
|
@@ -8672,7 +9188,7 @@ function DashboardPageScaffold({
|
|
|
8672
9188
|
layer0,
|
|
8673
9189
|
layer2,
|
|
8674
9190
|
...shellProps,
|
|
8675
|
-
children: /* @__PURE__ */
|
|
9191
|
+
children: /* @__PURE__ */ jsx76(
|
|
8676
9192
|
StnContainer,
|
|
8677
9193
|
{
|
|
8678
9194
|
maxWidth: false,
|
|
@@ -8685,135 +9201,15 @@ function DashboardPageScaffold({
|
|
|
8685
9201
|
);
|
|
8686
9202
|
}
|
|
8687
9203
|
|
|
8688
|
-
// src/layouts/StnListViewLayout.tsx
|
|
8689
|
-
import { jsx as jsx76, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
8690
|
-
function StnListViewLayoutBody({
|
|
8691
|
-
search,
|
|
8692
|
-
sidebar,
|
|
8693
|
-
table,
|
|
8694
|
-
pagination,
|
|
8695
|
-
lnbSide = "left",
|
|
8696
|
-
children,
|
|
8697
|
-
className
|
|
8698
|
-
}) {
|
|
8699
|
-
const lnbClass = lnbSide === "right" ? "stn-page-scaffold__lnb lnb_box lnb_box_right" : "stn-page-scaffold__lnb lnb_box";
|
|
8700
|
-
return /* @__PURE__ */ jsxs53(StnPageScaffold, { className: cn("stn-list-view-layout__body", className), children: [
|
|
8701
|
-
lnbSide === "left" && sidebar ? /* @__PURE__ */ jsx76("aside", { className: lnbClass, children: sidebar }) : null,
|
|
8702
|
-
search ? /* @__PURE__ */ jsx76("div", { className: "stn-page-scaffold__search search_area", children: search }) : null,
|
|
8703
|
-
/* @__PURE__ */ jsx76("div", { className: "stn-page-scaffold__content content_box", children: children ?? /* @__PURE__ */ jsxs53("div", { className: "stn-table stn-table--fill", children: [
|
|
8704
|
-
table,
|
|
8705
|
-
pagination
|
|
8706
|
-
] }) }),
|
|
8707
|
-
lnbSide === "right" && sidebar ? /* @__PURE__ */ jsx76("aside", { className: lnbClass, children: sidebar }) : null
|
|
8708
|
-
] });
|
|
8709
|
-
}
|
|
8710
|
-
function StnListViewLayoutRoot({
|
|
8711
|
-
bare: bareProp,
|
|
8712
|
-
noShell,
|
|
8713
|
-
title = "\uBAA9\uB85D \uC870\uD68C",
|
|
8714
|
-
header,
|
|
8715
|
-
search,
|
|
8716
|
-
sidebar,
|
|
8717
|
-
table,
|
|
8718
|
-
pagination,
|
|
8719
|
-
lnbSide = "left",
|
|
8720
|
-
children,
|
|
8721
|
-
className,
|
|
8722
|
-
...rest
|
|
8723
|
-
}) {
|
|
8724
|
-
const bare = bareProp ?? noShell ?? false;
|
|
8725
|
-
const hasLnbClass = lnbSide === "right" ? "has_lnb_right" : "has_lnb";
|
|
8726
|
-
const body = /* @__PURE__ */ jsx76(
|
|
8727
|
-
StnListViewLayoutBody,
|
|
8728
|
-
{
|
|
8729
|
-
search,
|
|
8730
|
-
sidebar,
|
|
8731
|
-
table,
|
|
8732
|
-
pagination,
|
|
8733
|
-
lnbSide,
|
|
8734
|
-
className: bare ? className : void 0,
|
|
8735
|
-
children
|
|
8736
|
-
}
|
|
8737
|
-
);
|
|
8738
|
-
if (bare) {
|
|
8739
|
-
return body;
|
|
8740
|
-
}
|
|
8741
|
-
const renderedHeader = header === null ? null : header !== void 0 ? header : /* @__PURE__ */ jsx76("div", { className: "stn-layer-1__header", children: /* @__PURE__ */ jsx76(StnHeader, { variant: "page", children: /* @__PURE__ */ jsx76(StnHeader.Left, { children: /* @__PURE__ */ jsx76(StnHeaderPageTitle, { children: title }) }) }) });
|
|
8742
|
-
return /* @__PURE__ */ jsxs53("div", { className: cn("stn-list-view-layout", "stn-layer-1", className), ...rest, children: [
|
|
8743
|
-
renderedHeader,
|
|
8744
|
-
/* @__PURE__ */ jsx76(
|
|
8745
|
-
"div",
|
|
8746
|
-
{
|
|
8747
|
-
className: cn("stn-content-area", sidebar ? hasLnbClass : null, search ? "has_sch" : null),
|
|
8748
|
-
children: body
|
|
8749
|
-
}
|
|
8750
|
-
)
|
|
8751
|
-
] });
|
|
8752
|
-
}
|
|
8753
|
-
function StnListViewLayoutHeader({ className, children, ...rest }) {
|
|
8754
|
-
return /* @__PURE__ */ jsx76("div", { className: cn("stn-layer-1__header", className), ...rest, children });
|
|
8755
|
-
}
|
|
8756
|
-
function StnListViewLayoutSearch({ className, children, ...rest }) {
|
|
8757
|
-
return /* @__PURE__ */ jsx76("div", { className: cn("search_area", className), ...rest, children });
|
|
8758
|
-
}
|
|
8759
|
-
function StnListViewLayoutSidebar({
|
|
8760
|
-
side = "left",
|
|
8761
|
-
className,
|
|
8762
|
-
children,
|
|
8763
|
-
...rest
|
|
8764
|
-
}) {
|
|
8765
|
-
const lnbClass = side === "right" ? "lnb_box_right" : "lnb_box";
|
|
8766
|
-
return /* @__PURE__ */ jsx76("aside", { className: cn(lnbClass, className), ...rest, children });
|
|
8767
|
-
}
|
|
8768
|
-
function StnListViewLayoutContent({ className, children, ...rest }) {
|
|
8769
|
-
return /* @__PURE__ */ jsx76("div", { className: cn("content_box", className), ...rest, children });
|
|
8770
|
-
}
|
|
8771
|
-
function StnListViewLayoutTable({ className, children, ...rest }) {
|
|
8772
|
-
return /* @__PURE__ */ jsx76("div", { className: cn("stn-table", className), ...rest, children });
|
|
8773
|
-
}
|
|
8774
|
-
function StnListViewLayoutPagination({ className, children, ...rest }) {
|
|
8775
|
-
return /* @__PURE__ */ jsx76("div", { className: cn("stn-list-view-layout__pagination-wrap", className), ...rest, children });
|
|
8776
|
-
}
|
|
8777
|
-
var StnListViewLayout = Object.assign(StnListViewLayoutRoot, {
|
|
8778
|
-
Body: StnListViewLayoutBody,
|
|
8779
|
-
Header: StnListViewLayoutHeader,
|
|
8780
|
-
Search: StnListViewLayoutSearch,
|
|
8781
|
-
Sidebar: StnListViewLayoutSidebar,
|
|
8782
|
-
Content: StnListViewLayoutContent,
|
|
8783
|
-
Table: StnListViewLayoutTable,
|
|
8784
|
-
Pagination: StnListViewLayoutPagination
|
|
8785
|
-
});
|
|
8786
|
-
|
|
8787
|
-
// src/index.ts
|
|
8788
|
-
import {
|
|
8789
|
-
STN_LAYOUT_INTRO,
|
|
8790
|
-
STN_LAYOUT_LAYER_PAGE_TREE,
|
|
8791
|
-
STN_LAYOUT_LIST_VIEW_INTRO,
|
|
8792
|
-
STN_LAYOUT_LIST_VIEW_USAGE,
|
|
8793
|
-
STN_LAYOUT_MAP_DASHBOARD_INTRO,
|
|
8794
|
-
STN_LAYOUT_MAP_DASHBOARD_USAGE,
|
|
8795
|
-
STN_LAYER_SHELL_USAGE,
|
|
8796
|
-
applyLnbSideToModifiers,
|
|
8797
|
-
STN_LAYOUT_CONTENT_ROWS,
|
|
8798
|
-
STN_LAYOUT_REGION_ROWS,
|
|
8799
|
-
STN_LAYOUT_SHELL_USAGE,
|
|
8800
|
-
STN_LAYOUT_RECIPES,
|
|
8801
|
-
STN_LAYOUT_PLAYGROUND_TABS,
|
|
8802
|
-
STN_LAYOUT_WHEN_TO_USE,
|
|
8803
|
-
STN_LAYOUT_SCREEN_RECIPES,
|
|
8804
|
-
STN_LAYOUT_SLOT_USAGE,
|
|
8805
|
-
STN_LAYOUT_ALERT_CENTER_USAGE
|
|
8806
|
-
} from "@stn-uiux/pub-ui/data/stnLayout";
|
|
8807
|
-
|
|
8808
9204
|
// src/patterns/scaffold/AlertCenterPageScaffold.tsx
|
|
8809
|
-
import { useMemo as useMemo5, useState as
|
|
9205
|
+
import { useMemo as useMemo5, useState as useState19 } from "react";
|
|
8810
9206
|
import {
|
|
8811
9207
|
STN_ALERT_CENTER_DEMO_ALERTS,
|
|
8812
9208
|
STN_ALERT_CENTER_DEMO_DEPLOY,
|
|
8813
9209
|
STN_ALERT_CENTER_DEMO_WORK
|
|
8814
9210
|
} from "@stn-uiux/pub-ui/data/stnAlertCenter";
|
|
8815
9211
|
import { systemIconSrc } from "@stn-uiux/pub-ui/data/stnSystemIcons";
|
|
8816
|
-
import { Fragment as
|
|
9212
|
+
import { Fragment as Fragment10, jsx as jsx77, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
8817
9213
|
function defaultTopologyHeader(_clock) {
|
|
8818
9214
|
return /* @__PURE__ */ jsx77(StnHeader, { variant: "widget" });
|
|
8819
9215
|
}
|
|
@@ -8832,7 +9228,7 @@ function AlertCenterPageScaffold({
|
|
|
8832
9228
|
defaultGnbOpen = true,
|
|
8833
9229
|
...shellProps
|
|
8834
9230
|
}) {
|
|
8835
|
-
const [gnbOpen, setGnbOpen] =
|
|
9231
|
+
const [gnbOpen, setGnbOpen] = useState19(defaultGnbOpen);
|
|
8836
9232
|
const panel = useMemo5(
|
|
8837
9233
|
() => gnbAlertPanel ?? /* @__PURE__ */ jsx77(
|
|
8838
9234
|
StnAlertCenterPanel,
|
|
@@ -8845,24 +9241,24 @@ function AlertCenterPageScaffold({
|
|
|
8845
9241
|
[gnbAlertPanel]
|
|
8846
9242
|
);
|
|
8847
9243
|
const sideNav = useMemo5(
|
|
8848
|
-
() => gnbProp ?? /* @__PURE__ */
|
|
8849
|
-
/* @__PURE__ */
|
|
9244
|
+
() => gnbProp ?? /* @__PURE__ */ jsxs55(Fragment10, { children: [
|
|
9245
|
+
/* @__PURE__ */ jsxs55(
|
|
8850
9246
|
StnSideNavigation,
|
|
8851
9247
|
{
|
|
8852
9248
|
collapsed: !gnbOpen,
|
|
8853
9249
|
onCollapseChange: (col) => setGnbOpen(!col),
|
|
8854
9250
|
children: [
|
|
8855
|
-
/* @__PURE__ */
|
|
9251
|
+
/* @__PURE__ */ jsxs55(StnSideNavigation.Header, { children: [
|
|
8856
9252
|
/* @__PURE__ */ jsx77(StnSideNavigation.Logo, {}),
|
|
8857
9253
|
/* @__PURE__ */ jsx77(StnSideNavigation.Toggle, {})
|
|
8858
9254
|
] }),
|
|
8859
|
-
/* @__PURE__ */
|
|
9255
|
+
/* @__PURE__ */ jsxs55(StnSideNavigation.Menu, { children: [
|
|
8860
9256
|
/* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/layout-grid"), label: "\uBA54\uC778 \uB300\uC2DC\uBCF4\uB4DC", active: true }),
|
|
8861
9257
|
/* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/server_2"), label: "\uC11C\uBC84 \uBAA8\uB2C8\uD130\uB9C1" }),
|
|
8862
9258
|
/* @__PURE__ */ jsx77(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/activity"), label: "\uB124\uD2B8\uC6CC\uD06C \uBD84\uC11D" })
|
|
8863
9259
|
] }),
|
|
8864
9260
|
/* @__PURE__ */ jsx77(StnSideNavigation.Spacer, {}),
|
|
8865
|
-
/* @__PURE__ */
|
|
9261
|
+
/* @__PURE__ */ jsxs55(StnSideNavigation.Footer, { curved: true, children: [
|
|
8866
9262
|
/* @__PURE__ */ jsx77(StnSideNavigation.Watermark, {}),
|
|
8867
9263
|
/* @__PURE__ */ jsx77(
|
|
8868
9264
|
StnSideNavigation.Item,
|
|
@@ -8900,8 +9296,8 @@ function AlertCenterPageScaffold({
|
|
|
8900
9296
|
}
|
|
8901
9297
|
|
|
8902
9298
|
// src/patterns/scaffold/LoginPageScaffold.tsx
|
|
8903
|
-
import { useState as
|
|
8904
|
-
import { jsx as jsx78, jsxs as
|
|
9299
|
+
import { useState as useState20 } from "react";
|
|
9300
|
+
import { jsx as jsx78, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
8905
9301
|
var LOGIN_TABS = [
|
|
8906
9302
|
{ value: "normal", label: "\uC77C\uBC18 \uB85C\uADF8\uC778" },
|
|
8907
9303
|
{ value: "social", label: "\uC18C\uC15C \uB85C\uADF8\uC778" }
|
|
@@ -8912,14 +9308,14 @@ function DefaultLoginForm({
|
|
|
8912
9308
|
signUpHref = "#",
|
|
8913
9309
|
recoverHref = "#"
|
|
8914
9310
|
}) {
|
|
8915
|
-
const [mode, setMode] =
|
|
8916
|
-
const [userId, setUserId] =
|
|
8917
|
-
const [password, setPassword] =
|
|
9311
|
+
const [mode, setMode] = useState20("normal");
|
|
9312
|
+
const [userId, setUserId] = useState20("");
|
|
9313
|
+
const [password, setPassword] = useState20("");
|
|
8918
9314
|
function handleSubmit(e) {
|
|
8919
9315
|
e.preventDefault();
|
|
8920
9316
|
onLogin?.(userId, password);
|
|
8921
9317
|
}
|
|
8922
|
-
return /* @__PURE__ */
|
|
9318
|
+
return /* @__PURE__ */ jsxs56(StnLoginFormStack, { onSubmit: handleSubmit, children: [
|
|
8923
9319
|
/* @__PURE__ */ jsx78(
|
|
8924
9320
|
StnSegmented,
|
|
8925
9321
|
{
|
|
@@ -8929,7 +9325,7 @@ function DefaultLoginForm({
|
|
|
8929
9325
|
options: LOGIN_TABS
|
|
8930
9326
|
}
|
|
8931
9327
|
),
|
|
8932
|
-
mode === "normal" ? /* @__PURE__ */
|
|
9328
|
+
mode === "normal" ? /* @__PURE__ */ jsxs56(StnLoginFormFields, { children: [
|
|
8933
9329
|
/* @__PURE__ */ jsx78(
|
|
8934
9330
|
StnLoginTextField,
|
|
8935
9331
|
{
|
|
@@ -8957,7 +9353,7 @@ function DefaultLoginForm({
|
|
|
8957
9353
|
)
|
|
8958
9354
|
] }) : socialContent ?? /* @__PURE__ */ jsx78(StnLoginPlaceholder, {}),
|
|
8959
9355
|
/* @__PURE__ */ jsx78(StnButton, { type: "submit", size: "xl", fullWidth: true, children: "\uB85C\uADF8\uC778" }),
|
|
8960
|
-
/* @__PURE__ */
|
|
9356
|
+
/* @__PURE__ */ jsxs56(StnLoginFormLinks, { children: [
|
|
8961
9357
|
/* @__PURE__ */ jsx78("a", { href: signUpHref, children: "\uD68C\uC6D0\uAC00\uC785" }),
|
|
8962
9358
|
/* @__PURE__ */ jsx78("a", { href: recoverHref, children: "\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30" })
|
|
8963
9359
|
] })
|
|
@@ -8978,7 +9374,7 @@ function DefaultLoginCard({
|
|
|
8978
9374
|
{
|
|
8979
9375
|
glow,
|
|
8980
9376
|
variant,
|
|
8981
|
-
brand: /* @__PURE__ */
|
|
9377
|
+
brand: /* @__PURE__ */ jsxs56(StnLoginBrandStack, { children: [
|
|
8982
9378
|
logo ?? /* @__PURE__ */ jsx78(StnLogo, { variant: "vertical", size: "xl" }),
|
|
8983
9379
|
/* @__PURE__ */ jsx78("p", { className: "stn-login-card__caption", children: productCaption })
|
|
8984
9380
|
] }),
|
|
@@ -9022,7 +9418,7 @@ function LoginPageScaffold({
|
|
|
9022
9418
|
recoverHref
|
|
9023
9419
|
}
|
|
9024
9420
|
);
|
|
9025
|
-
return /* @__PURE__ */
|
|
9421
|
+
return /* @__PURE__ */ jsxs56(
|
|
9026
9422
|
"div",
|
|
9027
9423
|
{
|
|
9028
9424
|
className: cn("stn-wrap stn-page--login", wrapClassName),
|
|
@@ -9059,7 +9455,7 @@ import {
|
|
|
9059
9455
|
|
|
9060
9456
|
// src/patterns/toolbar/StnFloatingToolbar.tsx
|
|
9061
9457
|
import React4 from "react";
|
|
9062
|
-
import { jsx as jsx79, jsxs as
|
|
9458
|
+
import { jsx as jsx79, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
9063
9459
|
var DEFAULT_MAP_MODES = [
|
|
9064
9460
|
{ value: "sphere", label: "\uAD6C\uBA74" },
|
|
9065
9461
|
{ value: "plane", label: "\uD3C9\uBA74" },
|
|
@@ -9102,7 +9498,7 @@ var StnMapToolbar = React4.forwardRef(
|
|
|
9102
9498
|
children,
|
|
9103
9499
|
...restProps
|
|
9104
9500
|
}, ref) => {
|
|
9105
|
-
return /* @__PURE__ */
|
|
9501
|
+
return /* @__PURE__ */ jsxs57(
|
|
9106
9502
|
StnFloatingToolbar,
|
|
9107
9503
|
{
|
|
9108
9504
|
ref,
|
|
@@ -9129,7 +9525,7 @@ var StnMapToolbar = React4.forwardRef(
|
|
|
9129
9525
|
variant: buttonVariant,
|
|
9130
9526
|
size: "md",
|
|
9131
9527
|
shape: "square",
|
|
9132
|
-
icon: /* @__PURE__ */
|
|
9528
|
+
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: [
|
|
9133
9529
|
/* @__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" }),
|
|
9134
9530
|
/* @__PURE__ */ jsx79("path", { d: "M3 4.00098V9.00098H8" }),
|
|
9135
9531
|
/* @__PURE__ */ jsx79("circle", { cx: "12", cy: "12", r: "1", fill: "currentColor" })
|
|
@@ -9145,7 +9541,7 @@ var StnMapToolbar = React4.forwardRef(
|
|
|
9145
9541
|
variant: buttonVariant,
|
|
9146
9542
|
size: "md",
|
|
9147
9543
|
shape: "square",
|
|
9148
|
-
icon: /* @__PURE__ */
|
|
9544
|
+
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: [
|
|
9149
9545
|
/* @__PURE__ */ jsx79("path", { d: "M16 4H20V8" }),
|
|
9150
9546
|
/* @__PURE__ */ jsx79("path", { d: "M14 10L20 4" }),
|
|
9151
9547
|
/* @__PURE__ */ jsx79("path", { d: "M8 20H4V16" }),
|
|
@@ -9162,7 +9558,7 @@ var StnMapToolbar = React4.forwardRef(
|
|
|
9162
9558
|
variant: buttonVariant,
|
|
9163
9559
|
size: "md",
|
|
9164
9560
|
shape: "square",
|
|
9165
|
-
icon: /* @__PURE__ */
|
|
9561
|
+
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: [
|
|
9166
9562
|
/* @__PURE__ */ jsx79("path", { d: "M12 5V19" }),
|
|
9167
9563
|
/* @__PURE__ */ jsx79("path", { d: "M5 12H19" })
|
|
9168
9564
|
] }),
|
|
@@ -9189,7 +9585,7 @@ var StnMapToolbar = React4.forwardRef(
|
|
|
9189
9585
|
variant: buttonVariant,
|
|
9190
9586
|
size: "md",
|
|
9191
9587
|
shape: "square",
|
|
9192
|
-
icon: /* @__PURE__ */
|
|
9588
|
+
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: [
|
|
9193
9589
|
/* @__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" }),
|
|
9194
9590
|
/* @__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" })
|
|
9195
9591
|
] }),
|
|
@@ -9443,8 +9839,12 @@ export {
|
|
|
9443
9839
|
StnSideNavigation,
|
|
9444
9840
|
StnSlider,
|
|
9445
9841
|
StnStack,
|
|
9842
|
+
StnStatus,
|
|
9843
|
+
StnStatusDot,
|
|
9844
|
+
StnStatusDotGroup,
|
|
9845
|
+
StnStatusFlow,
|
|
9846
|
+
StnStatusSwitch,
|
|
9446
9847
|
StnSwitch,
|
|
9447
|
-
StnSystemChip,
|
|
9448
9848
|
StnTable,
|
|
9449
9849
|
StnTableBody,
|
|
9450
9850
|
StnTableGrid,
|