@stn-uiux/pub-ui 0.1.69 → 0.1.71

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.
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-7ONB2WVN.js.map
@@ -17,6 +17,11 @@ var STN_SECTION_SIDE_SPEC = [
17
17
  value: "`--stn-section-side-bg`",
18
18
  note: "light white \xB7 dark gray-900"
19
19
  },
20
+ {
21
+ property: "Translucent Bg",
22
+ value: "`--stn-section-side-bg-translucent`",
23
+ note: 'variant="translucent" \u2014 light white-50 \xB7 dark black-50 (blur 8px)'
24
+ },
20
25
  {
21
26
  property: "Border",
22
27
  value: "`--stn-section-side-border`",
@@ -32,6 +37,11 @@ var STN_SECTION_SIDE_SPEC = [
32
37
  property: "fill",
33
38
  value: "`fill` prop \u2192 `.stn-section-side--fill`",
34
39
  note: "list view \u2014 search+table \uC5F4 \uB192\uC774 \xB7 \uD558\uB2E8 inset\uC740 .stn-container padding-bottom"
40
+ },
41
+ {
42
+ property: "variant",
43
+ value: '`variant="translucent"`',
44
+ note: "\uAE00\uB798\uC2A4\uBAA8\uD53C\uC998 \uBC18\uD22C\uBA85 \uBE14\uB7EC \uD328\uB110 (.stn-section-side.translucent)"
35
45
  }
36
46
  ];
37
47
  var STN_SECTION_SIDE_USAGE = `import {
@@ -54,4 +64,4 @@ export {
54
64
  STN_SECTION_SIDE_SPEC,
55
65
  STN_SECTION_SIDE_USAGE
56
66
  };
57
- //# sourceMappingURL=chunk-JHRYIWWJ.js.map
67
+ //# sourceMappingURL=chunk-7YKAIENZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnSectionSide.ts"],"sourcesContent":["/**\n * Infomap section-side panel\n * Dark 40000040:102539 · Light 40000042:187762\n * @see StnSectionSide · stn-section-side.css\n */\n\nexport const STN_SECTION_SIDE_FIGMA = {\n dark: '40000040:102539',\n light: '40000042:187762',\n} as const\n\nexport const STN_SECTION_SIDE_INTRO =\n '맵·대시보드 **사이드 패널** 패턴. Light: white · gray-25 border · radius 8 · shadow. Dark: gray-900 · gray-800 border · radius 10. 본문 `StnScroll` + `StnTree`.'\n\nexport const STN_SECTION_SIDE_SPEC = [\n { property: 'Width', value: '264px', note: 'Figma frame' },\n { property: 'Padding', value: '8px', note: '' },\n {\n property: 'Radius',\n value: '`--stn-section-side-radius`',\n note: 'light 8 · dark 10',\n },\n {\n property: 'Background',\n value: '`--stn-section-side-bg`',\n note: 'light white · dark gray-900',\n },\n {\n property: 'Translucent Bg',\n value: '`--stn-section-side-bg-translucent`',\n note: 'variant=\"translucent\" — light white-50 · dark black-50 (blur 8px)',\n },\n {\n property: 'Border',\n value: '`--stn-section-side-border`',\n note: 'light gray-25 · dark gray-800',\n },\n {\n property: 'Shadow',\n value: '`--stn-section-side-shadow`',\n note: 'light 0 3px 10px gray-75 · dark none',\n },\n { property: 'Body', value: 'StnScroll vertical', note: 'overflow tree' },\n {\n property: 'fill',\n value: '`fill` prop → `.stn-section-side--fill`',\n note: 'list view — search+table 열 높이 · 하단 inset은 .stn-container padding-bottom',\n },\n {\n property: 'variant',\n value: '`variant=\"translucent\"`',\n note: '글래스모피즘 반투명 블러 패널 (.stn-section-side.translucent)',\n },\n] as const\n\nexport const STN_SECTION_SIDE_USAGE = `import {\n StnSectionSide,\n StnTree,\n} from '@stn-uiux/pub-ui-react'\nimport { STN_TREE_DEMO } from '@stn-uiux/pub-ui/data/stnTree'\n\n<StnSectionSide style={{ height: 360 }}>\n <StnTree\n heading=\"FOLDER STRUCTURE\"\n nodes={STN_TREE_DEMO}\n defaultExpandedIds={['root', 'group-a', 'equip', 'group-b']}\n />\n</StnSectionSide>`\n"],"mappings":";AAMO,IAAM,yBAAyB;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AACT;AAEO,IAAM,yBACX;AAEK,IAAM,wBAAwB;AAAA,EACnC,EAAE,UAAU,SAAS,OAAO,SAAS,MAAM,cAAc;AAAA,EACzD,EAAE,UAAU,WAAW,OAAO,OAAO,MAAM,GAAG;AAAA,EAC9C;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,EAAE,UAAU,QAAQ,OAAO,sBAAsB,MAAM,gBAAgB;AAAA,EACvE;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,IAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-O77GW7PM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,9 @@
1
+ // src/data/stnPackageVersion.ts
2
+ var STN_UI_VERSION = "0.1.71";
3
+ var STN_UI_VERSION_LABEL = "v0.1.71";
4
+
5
+ export {
6
+ STN_UI_VERSION,
7
+ STN_UI_VERSION_LABEL
8
+ };
9
+ //# sourceMappingURL=chunk-RZCFFGBA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.71'\nexport const STN_UI_VERSION_LABEL = 'v0.1.71'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
package/dist/cli.js CHANGED
@@ -1,3 +1,6 @@
1
+ import {
2
+ STN_TEXT_FIELD_USAGE
3
+ } from "./chunk-NB4NJQYE.js";
1
4
  import {
2
5
  STN_TOAST_REACT_USAGE
3
6
  } from "./chunk-SOEBXG3T.js";
@@ -11,9 +14,6 @@ import {
11
14
  import {
12
15
  STN_TABLE_REACT_EXAMPLE
13
16
  } from "./chunk-IOBNIUK3.js";
14
- import {
15
- STN_TEXT_FIELD_USAGE
16
- } from "./chunk-NB4NJQYE.js";
17
17
  import {
18
18
  STN_SIDE_NAVIGATION_USAGE,
19
19
  STN_SIDE_NAV_ITEM_USAGE
@@ -64,4 +64,6 @@ export { STN_FONT_FAMILY_ROWS, STN_FONT_SIZE_ROWS, STN_FONT_WEIGHT_ROWS, STN_LIN
64
64
  export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardVariant } from './stnCard.js';
65
65
  export { STN_ALERT_CENTER_DASHBOARD_USAGE, STN_ALERT_CENTER_DASHBOARD_WIDGETS, STN_WIDGET_APPEARANCE_ROWS, STN_WIDGET_CHART_SLOT_HTML, STN_WIDGET_CHART_SLOT_REACT, STN_WIDGET_DISABILITY_STATUS_DEMO, STN_WIDGET_FIGMA, STN_WIDGET_FIGMA_DARK, STN_WIDGET_FIGMA_DARK_URL, STN_WIDGET_FIGMA_SHELL_HTML, STN_WIDGET_FIGMA_SHELL_REACT, STN_WIDGET_FIGMA_URL, STN_WIDGET_GRADE_ROW_DEMO, STN_WIDGET_HEADER_HTML, STN_WIDGET_HEADER_REACT, STN_WIDGET_INTRO, STN_WIDGET_KINDS, STN_WIDGET_SHELL_ROWS, STN_WIDGET_TOP5_BARS_DEMO, STN_WIDGET_TRAFFIC_BARS_DEMO, STN_WIDGET_USAGE, STN_WIDGET_USAGE_HTML, StnWidgetAppearance, StnWidgetAppearanceLegacy, StnWidgetAppearanceShell, StnWidgetAssetId, StnWidgetBackgroundMode, StnWidgetContentFamily, StnWidgetGradeRowGrade, StnWidgetKind, StnWidgetKindBodySlot, StnWidgetKindPreview, StnWidgetShell, buildStnWidgetKindUsage, getStnWidgetKind, isStnWidgetKindSlug, normalizeStnWidgetAppearance, resolveStnWidgetBackground, resolveStnWidgetKindAppearance, resolveStnWidgetKindBodySlot, stnWidgetSampleUrl } from './stnWidget.js';
66
66
  export { STN_STATUS_DEMO_STEPS, StnStatusDotState, StnStatusFlowStep, StnStatusFlowStepColor } from './stnStatus.js';
67
+ export { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant } from './stnTabs.js';
67
68
  export { SYSTEM_ICON_DATA_URLS } from './stnSystemIconsData.generated.js';
69
+ import 'react';
@@ -1,4 +1,4 @@
1
- import "../chunk-AVICAV6Z.js";
1
+ import "../chunk-O77GW7PM.js";
2
2
  import {
3
3
  STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT,
4
4
  STN_TOGGLE_BUTTON_PLAYGROUND_INTRO,
@@ -32,6 +32,7 @@ import {
32
32
  import {
33
33
  STN_STATUS_DEMO_STEPS
34
34
  } from "../chunk-SQJPE6HH.js";
35
+ import "../chunk-7ONB2WVN.js";
35
36
  import {
36
37
  STN_TEXT_AREA_HTML,
37
38
  STN_TEXT_AREA_INTRO,
@@ -104,7 +105,7 @@ import {
104
105
  STN_SECTION_SIDE_INTRO,
105
106
  STN_SECTION_SIDE_SPEC,
106
107
  STN_SECTION_SIDE_USAGE
107
- } from "../chunk-JHRYIWWJ.js";
108
+ } from "../chunk-7YKAIENZ.js";
108
109
  import {
109
110
  STN_SEGMENTED_FIGMA,
110
111
  STN_SEGMENTED_HTML,
@@ -135,7 +136,7 @@ import {
135
136
  import {
136
137
  STN_UI_VERSION,
137
138
  STN_UI_VERSION_LABEL
138
- } from "../chunk-QQYDH4WU.js";
139
+ } from "../chunk-RZCFFGBA.js";
139
140
  import {
140
141
  STN_PAGE_ENTER_MOTION_INTRO,
141
142
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -290,6 +291,14 @@ import {
290
291
  STN_GRADE_SEMANTIC_ROWS,
291
292
  STN_GRADE_SOURCE
292
293
  } from "../chunk-E26XJXQY.js";
294
+ import {
295
+ STN_TEXT_FIELD_FIGMA,
296
+ STN_TEXT_FIELD_HTML,
297
+ STN_TEXT_FIELD_INTRO,
298
+ STN_TEXT_FIELD_SIZE_ROWS,
299
+ STN_TEXT_FIELD_STATES,
300
+ STN_TEXT_FIELD_USAGE
301
+ } from "../chunk-NB4NJQYE.js";
293
302
  import {
294
303
  STN_TOAST_DEMO_MSG,
295
304
  STN_TOAST_ICON_SLUG,
@@ -360,14 +369,6 @@ import {
360
369
  STN_TABLE_TH_CHECK_FIGMA,
361
370
  STN_TABLE_TH_LABEL_FIGMA
362
371
  } from "../chunk-IOBNIUK3.js";
363
- import {
364
- STN_TEXT_FIELD_FIGMA,
365
- STN_TEXT_FIELD_HTML,
366
- STN_TEXT_FIELD_INTRO,
367
- STN_TEXT_FIELD_SIZE_ROWS,
368
- STN_TEXT_FIELD_STATES,
369
- STN_TEXT_FIELD_USAGE
370
- } from "../chunk-NB4NJQYE.js";
371
372
  import {
372
373
  STN_SIDE_NAVIGATION_INTRO,
373
374
  STN_SIDE_NAVIGATION_USAGE,
@@ -1,5 +1,5 @@
1
1
  /** Package version constants */
2
- declare const STN_UI_VERSION = "0.1.68";
3
- declare const STN_UI_VERSION_LABEL = "v0.1.68";
2
+ declare const STN_UI_VERSION = "0.1.71";
3
+ declare const STN_UI_VERSION_LABEL = "v0.1.71";
4
4
 
5
5
  export { STN_UI_VERSION, STN_UI_VERSION_LABEL };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  STN_UI_VERSION,
3
3
  STN_UI_VERSION_LABEL
4
- } from "../chunk-QQYDH4WU.js";
4
+ } from "../chunk-RZCFFGBA.js";
5
5
  export {
6
6
  STN_UI_VERSION,
7
7
  STN_UI_VERSION_LABEL
@@ -24,6 +24,10 @@ declare const STN_SECTION_SIDE_SPEC: readonly [{
24
24
  readonly property: "Background";
25
25
  readonly value: "`--stn-section-side-bg`";
26
26
  readonly note: "light white · dark gray-900";
27
+ }, {
28
+ readonly property: "Translucent Bg";
29
+ readonly value: "`--stn-section-side-bg-translucent`";
30
+ readonly note: "variant=\"translucent\" — light white-50 · dark black-50 (blur 8px)";
27
31
  }, {
28
32
  readonly property: "Border";
29
33
  readonly value: "`--stn-section-side-border`";
@@ -40,6 +44,10 @@ declare const STN_SECTION_SIDE_SPEC: readonly [{
40
44
  readonly property: "fill";
41
45
  readonly value: "`fill` prop → `.stn-section-side--fill`";
42
46
  readonly note: "list view — search+table 열 높이 · 하단 inset은 .stn-container padding-bottom";
47
+ }, {
48
+ readonly property: "variant";
49
+ readonly value: "`variant=\"translucent\"`";
50
+ readonly note: "글래스모피즘 반투명 블러 패널 (.stn-section-side.translucent)";
43
51
  }];
44
52
  declare const STN_SECTION_SIDE_USAGE = "import {\n StnSectionSide,\n StnTree,\n} from '@stn-uiux/pub-ui-react'\nimport { STN_TREE_DEMO } from '@stn-uiux/pub-ui/data/stnTree'\n\n<StnSectionSide style={{ height: 360 }}>\n <StnTree\n heading=\"FOLDER STRUCTURE\"\n nodes={STN_TREE_DEMO}\n defaultExpandedIds={['root', 'group-a', 'equip', 'group-b']}\n />\n</StnSectionSide>";
45
53
 
@@ -3,7 +3,7 @@ import {
3
3
  STN_SECTION_SIDE_INTRO,
4
4
  STN_SECTION_SIDE_SPEC,
5
5
  STN_SECTION_SIDE_USAGE
6
- } from "../chunk-JHRYIWWJ.js";
6
+ } from "../chunk-7YKAIENZ.js";
7
7
  export {
8
8
  STN_SECTION_SIDE_FIGMA,
9
9
  STN_SECTION_SIDE_INTRO,
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ /**
4
+ * STN Tabs Data and Type Definitions
5
+ */
6
+
7
+ type StnTabsSize = 'sm' | 'md' | 'lg';
8
+ type StnTabsVariant = 'line';
9
+ type StnTabScrollButtons = 'auto' | boolean;
10
+ type StnTabIconPosition = 'start' | 'end' | 'top' | 'bottom';
11
+ type StnTabIconSize = number | 'sm' | 'md' | 'lg';
12
+ interface StnTabItem {
13
+ value: string | number;
14
+ label?: ReactNode;
15
+ icon?: ReactNode;
16
+ iconPosition?: StnTabIconPosition;
17
+ iconSize?: StnTabIconSize;
18
+ badge?: ReactNode;
19
+ count?: number | string;
20
+ disabled?: boolean;
21
+ wrapped?: boolean;
22
+ tooltip?: ReactNode;
23
+ }
24
+ type StnTabPanelPadding = 'none' | 'sm' | 'md' | 'lg';
25
+
26
+ export type { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant };
@@ -0,0 +1,2 @@
1
+ import "../chunk-7ONB2WVN.js";
2
+ //# sourceMappingURL=stnTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.ts CHANGED
@@ -64,5 +64,7 @@ export { STN_FONT_FAMILY_ROWS, STN_FONT_SIZE_ROWS, STN_FONT_WEIGHT_ROWS, STN_LIN
64
64
  export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardVariant } from './data/stnCard.js';
65
65
  export { STN_ALERT_CENTER_DASHBOARD_USAGE, STN_ALERT_CENTER_DASHBOARD_WIDGETS, STN_WIDGET_APPEARANCE_ROWS, STN_WIDGET_CHART_SLOT_HTML, STN_WIDGET_CHART_SLOT_REACT, STN_WIDGET_DISABILITY_STATUS_DEMO, STN_WIDGET_FIGMA, STN_WIDGET_FIGMA_DARK, STN_WIDGET_FIGMA_DARK_URL, STN_WIDGET_FIGMA_SHELL_HTML, STN_WIDGET_FIGMA_SHELL_REACT, STN_WIDGET_FIGMA_URL, STN_WIDGET_GRADE_ROW_DEMO, STN_WIDGET_HEADER_HTML, STN_WIDGET_HEADER_REACT, STN_WIDGET_INTRO, STN_WIDGET_KINDS, STN_WIDGET_SHELL_ROWS, STN_WIDGET_TOP5_BARS_DEMO, STN_WIDGET_TRAFFIC_BARS_DEMO, STN_WIDGET_USAGE, STN_WIDGET_USAGE_HTML, StnWidgetAppearance, StnWidgetAppearanceLegacy, StnWidgetAppearanceShell, StnWidgetAssetId, StnWidgetBackgroundMode, StnWidgetContentFamily, StnWidgetGradeRowGrade, StnWidgetKind, StnWidgetKindBodySlot, StnWidgetKindPreview, StnWidgetShell, buildStnWidgetKindUsage, getStnWidgetKind, isStnWidgetKindSlug, normalizeStnWidgetAppearance, resolveStnWidgetBackground, resolveStnWidgetKindAppearance, resolveStnWidgetKindBodySlot, stnWidgetSampleUrl } from './data/stnWidget.js';
66
66
  export { STN_STATUS_DEMO_STEPS, StnStatusDotState, StnStatusFlowStep, StnStatusFlowStepColor } from './data/stnStatus.js';
67
+ export { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant } from './data/stnTabs.js';
67
68
  export { STN_UI_CATALOG, STN_UI_COMPONENTS, STN_UI_FOUNDATIONS, StnUiComponentId, StnUiEntry, StnUiFoundationId } from './components.js';
68
69
  export { SYSTEM_ICON_DATA_URLS } from './data/stnSystemIconsData.generated.js';
70
+ import 'react';
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  STN_UI_COMPONENTS,
4
4
  STN_UI_FOUNDATIONS
5
5
  } from "./chunk-N46UQH6L.js";
6
- import "./chunk-AVICAV6Z.js";
6
+ import "./chunk-O77GW7PM.js";
7
7
  import {
8
8
  STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT,
9
9
  STN_TOGGLE_BUTTON_PLAYGROUND_INTRO,
@@ -37,6 +37,7 @@ import {
37
37
  import {
38
38
  STN_STATUS_DEMO_STEPS
39
39
  } from "./chunk-SQJPE6HH.js";
40
+ import "./chunk-7ONB2WVN.js";
40
41
  import {
41
42
  STN_TEXT_AREA_HTML,
42
43
  STN_TEXT_AREA_INTRO,
@@ -109,7 +110,7 @@ import {
109
110
  STN_SECTION_SIDE_INTRO,
110
111
  STN_SECTION_SIDE_SPEC,
111
112
  STN_SECTION_SIDE_USAGE
112
- } from "./chunk-JHRYIWWJ.js";
113
+ } from "./chunk-7YKAIENZ.js";
113
114
  import {
114
115
  STN_SEGMENTED_FIGMA,
115
116
  STN_SEGMENTED_HTML,
@@ -140,7 +141,7 @@ import {
140
141
  import {
141
142
  STN_UI_VERSION,
142
143
  STN_UI_VERSION_LABEL
143
- } from "./chunk-QQYDH4WU.js";
144
+ } from "./chunk-RZCFFGBA.js";
144
145
  import {
145
146
  STN_PAGE_ENTER_MOTION_INTRO,
146
147
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -295,6 +296,14 @@ import {
295
296
  STN_GRADE_SEMANTIC_ROWS,
296
297
  STN_GRADE_SOURCE
297
298
  } from "./chunk-E26XJXQY.js";
299
+ import {
300
+ STN_TEXT_FIELD_FIGMA,
301
+ STN_TEXT_FIELD_HTML,
302
+ STN_TEXT_FIELD_INTRO,
303
+ STN_TEXT_FIELD_SIZE_ROWS,
304
+ STN_TEXT_FIELD_STATES,
305
+ STN_TEXT_FIELD_USAGE
306
+ } from "./chunk-NB4NJQYE.js";
298
307
  import {
299
308
  STN_TOAST_DEMO_MSG,
300
309
  STN_TOAST_ICON_SLUG,
@@ -365,14 +374,6 @@ import {
365
374
  STN_TABLE_TH_CHECK_FIGMA,
366
375
  STN_TABLE_TH_LABEL_FIGMA
367
376
  } from "./chunk-IOBNIUK3.js";
368
- import {
369
- STN_TEXT_FIELD_FIGMA,
370
- STN_TEXT_FIELD_HTML,
371
- STN_TEXT_FIELD_INTRO,
372
- STN_TEXT_FIELD_SIZE_ROWS,
373
- STN_TEXT_FIELD_STATES,
374
- STN_TEXT_FIELD_USAGE
375
- } from "./chunk-NB4NJQYE.js";
376
377
  import {
377
378
  STN_SIDE_NAVIGATION_INTRO,
378
379
  STN_SIDE_NAVIGATION_USAGE,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stn-uiux/pub-ui",
3
- "version": "0.1.69",
3
+ "version": "0.1.71",
4
4
  "description": "STN Pub design system — tokens, specs, and CSS for product HTML / React apps",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -68,6 +68,26 @@
68
68
  background-color: var(--stn-checkbox-bg, transparent);
69
69
  }
70
70
 
71
+ /* Variant: Translucent (반투명 블러 배경) */
72
+ .stn-checkbox.translucent input + label:before {
73
+ border-color: var(--stn-checkbox-border-translucent, var(--stn-border-subtle));
74
+ background-color: var(--stn-checkbox-bg-translucent, var(--stn-opacity-black-60));
75
+ backdrop-filter: blur(var(--stn-checkbox-translucent-blur, 4px));
76
+ -webkit-backdrop-filter: blur(var(--stn-checkbox-translucent-blur, 4px));
77
+ }
78
+
79
+ .stn-checkbox.translucent input:checked + label:before,
80
+ .stn-checkbox.translucent input:indeterminate + label:before,
81
+ .stn-checkbox.translucent.indeterminate input + label:before {
82
+ border-color: var(--stn-checkbox-border-translucent, var(--stn-border-subtle));
83
+ background-color: var(--stn-checkbox-bg-translucent, var(--stn-opacity-black-60));
84
+ }
85
+
86
+ .stn-checkbox.translucent input:disabled + label:before {
87
+ border-color: var(--stn-checkbox-disabled-border);
88
+ background-color: var(--stn-checkbox-disabled-bg);
89
+ }
90
+
71
91
  .stn-checkbox input:checked + label:after {
72
92
  content: '';
73
93
  position: absolute;
@@ -7,7 +7,7 @@
7
7
  * └── .stn-label-prefix__control (children slot — StnDropdown·StnTextField·StnDateRangeField 등)
8
8
  *
9
9
  * Props:
10
- * variant : outline(기본) · filled · standard · transparent
10
+ * variant : outline(기본) · filled · standard · transparent · translucent
11
11
  * size : sm(24px) · md(32px, 기본) · lg(40px)
12
12
  * radius : none · sm · md · lg · xl (기본은 size에 따름)
13
13
  * position : prefix(왼쪽, 기본) · suffix(오른쪽)
@@ -18,7 +18,7 @@
18
18
  * 3. Divider (.stn-label-prefix__divider)
19
19
  * 4. Control Slot (.stn-label-prefix__control)
20
20
  * 5. Size (sm · md · lg)
21
- * 6. Variant (outline · filled · standard · transparent)
21
+ * 6. Variant (outline · filled · standard · transparent · translucent)
22
22
  * 7. Focus-within State
23
23
  * 8. Suffix Position
24
24
  * 9. Radius Override
@@ -199,11 +199,24 @@
199
199
  background-color: transparent;
200
200
  }
201
201
 
202
+ /* 6-5. Translucent (반투명 블러 배경) */
203
+ .stn-label-prefix.translucent {
204
+ border: var(--stn-size-1, 1px) solid var(--stn-label-prefix-border-translucent, var(--stn-border-subtle));
205
+ background-color: var(--stn-label-prefix-bg-translucent, var(--stn-opacity-black-60));
206
+ backdrop-filter: blur(var(--stn-label-prefix-translucent-blur, 8px));
207
+ -webkit-backdrop-filter: blur(var(--stn-label-prefix-translucent-blur, 8px));
208
+ }
209
+
210
+ .stn-label-prefix.translucent > .stn-label-prefix__label {
211
+ background-color: transparent;
212
+ }
213
+
202
214
  /* ==========================================================================
203
215
  7. Focus-within State
204
216
  ========================================================================== */
205
217
  .stn-label-prefix.outline:focus-within,
206
- .stn-label-prefix.filled:focus-within {
218
+ .stn-label-prefix.filled:focus-within,
219
+ .stn-label-prefix.translucent:focus-within {
207
220
  border-color: var(--stn-input-focus-fg, var(--stn-primary));
208
221
  }
209
222
 
@@ -0,0 +1,412 @@
1
+ @charset "utf-8";
2
+ /**
3
+ * StnTabs — 탭 내비게이션 (Tabs, Tab, TabPanel)
4
+ *
5
+ * Classes:
6
+ * - Container: `.stn-tabs`
7
+ * - Scroll area: `.stn-tabs__scroller`
8
+ * - Tab List: `.stn-tabs__list`
9
+ * - Tab item: `.stn-tab`
10
+ * - Floating indicator: `.stn-tabs__indicator`
11
+ * - Scroll buttons: `.stn-tabs__scroll-button`
12
+ * - Panel: `.stn-tab-panel`
13
+ *
14
+ * Variants:
15
+ * - `line` (기본): 하단 2px 밑줄 인디케이터가 부드럽게 이동
16
+ *
17
+ * Sizes:
18
+ * - `sm`: height 32px, font 12px
19
+ * - `md` (기본): height 38px, font 13px
20
+ * - `lg`: height 44px, font 14px
21
+ */
22
+
23
+ /* ==========================================================================
24
+ 1. StnTabs Container
25
+ ========================================================================== */
26
+ .stn-tabs {
27
+ position: relative;
28
+ display: flex;
29
+ align-items: center;
30
+ width: 100%;
31
+ box-sizing: border-box;
32
+ user-select: none;
33
+ background-color: transparent;
34
+ border-bottom: 1px solid var(--stn-border-subtle);
35
+ transition: background-color 0.2s ease, border-color 0.2s ease;
36
+ }
37
+
38
+ .stn-tabs.line {
39
+ border-bottom: 1px solid var(--stn-border-subtle);
40
+ }
41
+
42
+ /* Full Width (stretch tabs) */
43
+ .stn-tabs.full .stn-tabs__list {
44
+ width: 100%;
45
+ }
46
+ .stn-tabs.full .stn-tab {
47
+ flex: 1 1 0%;
48
+ text-align: center;
49
+ justify-content: center;
50
+ }
51
+
52
+ /* Centered Tabs */
53
+ .stn-tabs.centered .stn-tabs__list {
54
+ justify-content: center;
55
+ }
56
+
57
+ /* ==========================================================================
58
+ 2. Scroller & Tab List
59
+ ========================================================================== */
60
+ .stn-tabs__scroller {
61
+ position: relative;
62
+ display: flex;
63
+ flex: 1 1 auto;
64
+ white-space: nowrap;
65
+ overflow-x: auto;
66
+ overflow-y: hidden;
67
+ -webkit-overflow-scrolling: touch; /* iOS Safari 관성 스크롤 */
68
+ touch-action: pan-x; /* 모바일 가로 제스처 최적화 */
69
+ overscroll-behavior-x: contain;
70
+ scrollbar-width: none; /* Hide scrollbar Firefox */
71
+ -ms-overflow-style: none; /* IE/Edge */
72
+ }
73
+
74
+ .stn-tabs__scroller::-webkit-scrollbar {
75
+ display: none; /* Hide scrollbar Chrome/Safari */
76
+ }
77
+
78
+ .stn-tabs__list {
79
+ position: relative;
80
+ display: flex;
81
+ flex-direction: row;
82
+ align-items: center;
83
+ list-style: none;
84
+ margin: 0;
85
+ padding: 0;
86
+ min-width: fit-content;
87
+ }
88
+
89
+ /* ==========================================================================
90
+ 3. Tab Item (.stn-tab)
91
+ ========================================================================== */
92
+ .stn-tab {
93
+ position: relative;
94
+ z-index: 1;
95
+ display: inline-flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ gap: var(--stn-space-6, 6px);
99
+ box-sizing: border-box;
100
+ background: transparent;
101
+ border: none;
102
+ cursor: pointer;
103
+ color: var(--stn-text-tertiary);
104
+ font-family: var(--stn-font-body, Pretendard, sans-serif);
105
+ font-weight: var(--stn-font-weight-medium, 500);
106
+ line-height: 1;
107
+ text-decoration: none;
108
+ white-space: nowrap;
109
+ outline: none;
110
+ -webkit-tap-highlight-color: transparent;
111
+ transition:
112
+ color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
113
+ background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
114
+ border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
115
+ }
116
+
117
+ /* Size: sm */
118
+ .stn-tabs.sm .stn-tab {
119
+ height: var(--stn-size-32, 32px);
120
+ padding: 0 var(--stn-space-12, 12px);
121
+ font-size: var(--stn-font-size-12, 12px);
122
+ border-radius: var(--stn-radius-sm, 6px);
123
+ }
124
+
125
+ /* Size: md (기본) */
126
+ .stn-tabs.md .stn-tab,
127
+ .stn-tabs:not(.sm):not(.lg) .stn-tab {
128
+ height: var(--stn-size-38, 38px);
129
+ padding: 0 var(--stn-space-16, 16px);
130
+ font-size: var(--stn-font-size-13, 13px);
131
+ border-radius: var(--stn-radius-md, 8px);
132
+ }
133
+
134
+ /* Size: lg */
135
+ .stn-tabs.lg .stn-tab {
136
+ height: var(--stn-size-44, 44px);
137
+ padding: 0 var(--stn-space-20, 20px);
138
+ font-size: var(--stn-font-size-14, 14px);
139
+ border-radius: var(--stn-radius-md, 8px);
140
+ }
141
+
142
+ /* Wrapped Labels (긴 텍스트 2줄 자동 줄바꿈) */
143
+ .stn-tab.is-wrapped {
144
+ white-space: normal;
145
+ line-height: var(--stn-line-height-tight, 1.35);
146
+ text-align: center;
147
+ max-width: 260px;
148
+ min-height: var(--stn-size-48, 48px);
149
+ height: auto;
150
+ padding-top: var(--stn-space-6, 6px);
151
+ padding-bottom: var(--stn-space-6, 6px);
152
+ }
153
+
154
+ .stn-tab.is-wrapped .stn-tab__label {
155
+ display: -webkit-box;
156
+ -webkit-line-clamp: 2;
157
+ -webkit-box-orient: vertical;
158
+ overflow: hidden;
159
+ text-overflow: ellipsis;
160
+ word-break: keep-all;
161
+ }
162
+
163
+ /* Hover State */
164
+ .stn-tab:hover:not(.is-disabled) {
165
+ color: var(--stn-text-primary);
166
+ }
167
+
168
+ /* Focus Visible */
169
+ .stn-tab:focus-visible {
170
+ outline: var(--stn-focus-ring-width, var(--stn-size-2, 2px)) solid var(--stn-focus-ring);
171
+ outline-offset: -2px;
172
+ }
173
+
174
+ /* Active / Selected State */
175
+ .stn-tab.is-active {
176
+ color: var(--stn-primary, var(--stn-blue-400));
177
+ font-weight: var(--stn-font-weight-semibold, 600);
178
+ }
179
+
180
+ /* Disabled State */
181
+ .stn-tab.is-disabled {
182
+ cursor: not-allowed;
183
+ opacity: var(--stn-disabled-opacity, 0.45);
184
+ pointer-events: none;
185
+ }
186
+
187
+
188
+ /* Icon in Tab */
189
+ .stn-tab__icon {
190
+ display: inline-flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ line-height: 1;
194
+ flex-shrink: 0;
195
+ transition: transform 0.2s ease, color 0.2s ease;
196
+ }
197
+
198
+ .stn-tab__icon > svg,
199
+ .stn-tab__icon > img,
200
+ .stn-tab__icon > .stn-icon {
201
+ width: 100%;
202
+ height: 100%;
203
+ object-fit: contain;
204
+ }
205
+
206
+ /* Icon Sizes */
207
+ .stn-tab__icon.icon-sm {
208
+ width: var(--stn-size-14, 14px);
209
+ height: var(--stn-size-14, 14px);
210
+ }
211
+
212
+ .stn-tab__icon.icon-md {
213
+ width: var(--stn-size-18, 18px);
214
+ height: var(--stn-size-18, 18px);
215
+ }
216
+
217
+ .stn-tab__icon.icon-lg {
218
+ width: var(--stn-size-22, 22px);
219
+ height: var(--stn-size-22, 22px);
220
+ }
221
+
222
+ /* Icon Positions: start (기본), end, top, bottom */
223
+ .stn-tab.icon-top {
224
+ flex-direction: column;
225
+ justify-content: center;
226
+ gap: var(--stn-space-4, 4px);
227
+ min-height: var(--stn-size-48, 48px);
228
+ height: auto;
229
+ padding-top: var(--stn-space-8, 8px);
230
+ padding-bottom: var(--stn-space-8, 8px);
231
+ }
232
+
233
+ .stn-tab.icon-bottom {
234
+ flex-direction: column-reverse;
235
+ justify-content: center;
236
+ gap: var(--stn-space-4, 4px);
237
+ min-height: var(--stn-size-48, 48px);
238
+ height: auto;
239
+ padding-top: var(--stn-space-8, 8px);
240
+ padding-bottom: var(--stn-space-8, 8px);
241
+ }
242
+
243
+ .stn-tab.icon-end {
244
+ flex-direction: row-reverse;
245
+ }
246
+
247
+ /* Icon-only Tab (정방형 비율 & 툴팁 호환) */
248
+ .stn-tab.icon-only {
249
+ padding: 0;
250
+ aspect-ratio: 1 / 1;
251
+ }
252
+
253
+ .stn-tabs.sm .stn-tab.icon-only {
254
+ width: var(--stn-size-32, 32px);
255
+ min-width: var(--stn-size-32, 32px);
256
+ }
257
+
258
+ .stn-tabs.md .stn-tab.icon-only,
259
+ .stn-tabs:not(.sm):not(.lg) .stn-tab.icon-only {
260
+ width: var(--stn-size-38, 38px);
261
+ min-width: var(--stn-size-38, 38px);
262
+ }
263
+
264
+ .stn-tabs.lg .stn-tab.icon-only {
265
+ width: var(--stn-size-44, 44px);
266
+ min-width: var(--stn-size-44, 44px);
267
+ }
268
+
269
+ /* Badge / Count in Tab — StnChip 'sm' 표준 규격 1:1 연동 */
270
+ .stn-tab__badge {
271
+ display: inline-flex;
272
+ align-items: center;
273
+ justify-content: center;
274
+ min-width: var(--stn-chip-height-sm, 20px);
275
+ height: var(--stn-chip-height-sm, 20px);
276
+ padding: 0 var(--stn-chip-padding-x-sm, 6px);
277
+ border-radius: var(--stn-radius-chip-pill, 9999px);
278
+ font-size: var(--stn-chip-font-size-sm, 11px);
279
+ font-family: var(--stn-font-number, Pretendard, sans-serif);
280
+ font-weight: var(--stn-font-weight-bold, 700);
281
+ line-height: 1;
282
+ background-color: var(--stn-tab-badge-bg);
283
+ color: var(--stn-tab-badge-fg);
284
+ transition: background-color 0.2s ease, color 0.2s ease;
285
+ }
286
+
287
+ .stn-tab.is-active .stn-tab__badge {
288
+ background-color: color-mix(in srgb, var(--stn-primary) 18%, transparent);
289
+ color: var(--stn-primary);
290
+ }
291
+
292
+ .stn-tab__extra {
293
+ display: inline-flex;
294
+ align-items: center;
295
+ line-height: 1;
296
+ }
297
+
298
+ /* ==========================================================================
299
+ 4. Floating Animated Indicator (.stn-tabs__indicator)
300
+ ========================================================================== */
301
+ .stn-tabs__indicator {
302
+ position: absolute;
303
+ pointer-events: none;
304
+ z-index: 0;
305
+ bottom: 0;
306
+ height: 2px;
307
+ background-color: var(--stn-primary);
308
+ border-radius: var(--stn-radius-pill, 2px);
309
+ transition:
310
+ left 0.28s cubic-bezier(0.2, 0.9, 0.3, 1),
311
+ width 0.28s cubic-bezier(0.2, 0.9, 0.3, 1),
312
+ transform 0.28s cubic-bezier(0.2, 0.9, 0.3, 1),
313
+ opacity 0.2s ease;
314
+ }
315
+
316
+ /* ==========================================================================
317
+ 5. Scroll Buttons (.stn-tabs__scroll-button)
318
+ ========================================================================== */
319
+ .stn-tabs__scroll-button {
320
+ display: inline-flex;
321
+ align-items: center;
322
+ justify-content: center;
323
+ width: var(--stn-size-32, 32px);
324
+ height: 100%;
325
+ min-height: var(--stn-size-32, 32px);
326
+ background: transparent;
327
+ border: none;
328
+ color: var(--stn-text-secondary);
329
+ cursor: pointer;
330
+ padding: 0;
331
+ flex-shrink: 0;
332
+ outline: none;
333
+ z-index: 2;
334
+ transition: color 0.15s ease, opacity 0.15s ease, background-color 0.15s ease;
335
+ border-radius: var(--stn-radius-sm, 6px);
336
+ }
337
+
338
+ .stn-tabs__scroll-button:hover:not(:disabled) {
339
+ color: var(--stn-text-primary);
340
+ background-color: color-mix(in srgb, var(--stn-text-primary) 8%, transparent);
341
+ }
342
+
343
+ .stn-tabs__scroll-button:disabled {
344
+ opacity: 0.25;
345
+ cursor: not-allowed;
346
+ }
347
+
348
+ .stn-tabs__scroll-button.start {
349
+ margin-right: var(--stn-space-2, 2px);
350
+ }
351
+
352
+ .stn-tabs__scroll-button.end {
353
+ margin-left: var(--stn-space-2, 2px);
354
+ }
355
+
356
+ /* Fade Edges when scrollable */
357
+ .stn-tabs.is-scrollable.has-scroll-start .stn-tabs__scroller {
358
+ mask-image: linear-gradient(to right, transparent, black 28px, black 100%);
359
+ -webkit-mask-image: linear-gradient(to right, transparent, black 28px, black 100%);
360
+ }
361
+
362
+ .stn-tabs.is-scrollable.has-scroll-end .stn-tabs__scroller {
363
+ mask-image: linear-gradient(to left, transparent, black 28px, black 100%);
364
+ -webkit-mask-image: linear-gradient(to left, transparent, black 28px, black 100%);
365
+ }
366
+
367
+ .stn-tabs.is-scrollable.has-scroll-start.has-scroll-end .stn-tabs__scroller {
368
+ mask-image: linear-gradient(to right, transparent, black 28px, black calc(100% - 28px), transparent 100%);
369
+ -webkit-mask-image: linear-gradient(to right, transparent, black 28px, black calc(100% - 28px), transparent 100%);
370
+ }
371
+
372
+ /* ==========================================================================
373
+ 6. Tab Panel (.stn-tab-panel)
374
+ ========================================================================== */
375
+ .stn-tab-panel {
376
+ box-sizing: border-box;
377
+ width: 100%;
378
+ outline: none;
379
+ animation: stn-tab-panel-fade-in 0.2s cubic-bezier(0.2, 0, 0, 1);
380
+ }
381
+
382
+ .stn-tab-panel[hidden] {
383
+ display: none !important;
384
+ }
385
+
386
+ /* Padding Presets */
387
+ .stn-tab-panel.padding-none {
388
+ padding: 0;
389
+ }
390
+
391
+ .stn-tab-panel.padding-sm {
392
+ padding: var(--stn-space-8, 8px);
393
+ }
394
+
395
+ .stn-tab-panel.padding-md {
396
+ padding: var(--stn-space-16, 16px);
397
+ }
398
+
399
+ .stn-tab-panel.padding-lg {
400
+ padding: var(--stn-space-24, 24px);
401
+ }
402
+
403
+ @keyframes stn-tab-panel-fade-in {
404
+ from {
405
+ opacity: 0;
406
+ transform: translateY(3px);
407
+ }
408
+ to {
409
+ opacity: 1;
410
+ transform: translateY(0);
411
+ }
412
+ }
@@ -21,6 +21,15 @@
21
21
  overflow: hidden;
22
22
  }
23
23
 
24
+ /* translucent variant — 반투명 블러 글래스모피즘 외형 */
25
+ .stn-section-side.translucent,
26
+ .stn-section-side--translucent {
27
+ background: var(--stn-section-side-bg-translucent);
28
+ backdrop-filter: blur(var(--stn-section-side-translucent-blur, 8px));
29
+ -webkit-backdrop-filter: blur(var(--stn-section-side-translucent-blur, 8px));
30
+ border-color: var(--stn-section-side-border-translucent, var(--stn-border-subtle));
31
+ }
32
+
24
33
  /* fullWidth prop 또는 부모 LNB 컨테이너 안에서 가로 100% 확장 지원 */
25
34
  .stn-section-side.is-full-width,
26
35
  .stn-section-side--full,
@@ -70,6 +70,7 @@
70
70
  @import './components/stn-card.css';
71
71
  @import './components/stn-topology.css';
72
72
  @import './components/stn-status.css';
73
+ @import './components/stn-tabs.css';
73
74
 
74
75
  /* --- 5. Patterns (Composite UI Recipes) --- */
75
76
  @import './patterns/stn-section-side.css';
@@ -66,6 +66,8 @@
66
66
  --stn-input-placeholder: var(--stn-gray-600);
67
67
  --stn-dropdown-bg-translucent: var(--stn-opacity-black-25);
68
68
  --stn-label-prefix-label-bg: var(--stn-gray-800);
69
+ --stn-label-prefix-bg-translucent: var(--stn-opacity-black-60);
70
+ --stn-label-prefix-border-translucent: var(--stn-border-subtle);
69
71
  --stn-tooltip-bg-neutral: var(--stn-gray-700);
70
72
  --stn-tooltip-fg-neutral: var(--stn-static-white);
71
73
  --stn-tooltip-border-neutral: var(--stn-gray-600);
@@ -94,6 +96,8 @@
94
96
  --stn-login-field-fg: var(--stn-gray-50);
95
97
  --stn-login-field-placeholder: var(--stn-gray-500);
96
98
  --stn-checkbox-bg: var(--stn-gray-900);
99
+ --stn-checkbox-bg-translucent: var(--stn-opacity-black-60);
100
+ --stn-checkbox-border-translucent: var(--stn-border-subtle);
97
101
  --stn-checkbox-border: var(--stn-gray-650);
98
102
  --stn-checkbox-check: var(--stn-blue-350);
99
103
  --stn-checkbox-check-disabled: var(--stn-gray-500);
@@ -121,6 +125,8 @@
121
125
  --stn-tree-server-icon: var(--stn-gray-400);
122
126
  --stn-scroll-thumb: var(--stn-gray-650);
123
127
  --stn-section-side-bg: var(--stn-gray-900);
128
+ --stn-section-side-bg-translucent: var(--stn-opacity-black-50);
129
+ --stn-section-side-border-translucent: var(--stn-border-subtle);
124
130
  --stn-section-side-border: var(--stn-gray-800);
125
131
  --stn-section-side-radius: 10px;
126
132
  --stn-section-side-shadow: none;
@@ -325,7 +331,7 @@
325
331
  --stn-progress-circle-accent-end: var(--stn-blue-300);
326
332
  --stn-progress-circle-teal-start: var(--stn-teal-400);
327
333
  --stn-progress-circle-teal-end: var(--stn-blue-400);
328
- --stn-header-subtitle: var(--stn-gray-400);
334
+ --stn-header-subtitle: var(--stn-gray-300);
329
335
  --stn-system-chip-dot: var(--stn-blue-400);
330
336
  --stn-system-chip-dot-critical: var(--stn-red-400);
331
337
  --stn-system-chip-dot-major: var(--stn-orange-400);
@@ -349,6 +355,8 @@
349
355
  --stn-side-nav-gradient-icon-glow: var(--stn-cobalt-75);
350
356
  --stn-on-color: var(--stn-static-white);
351
357
  --stn-shade: var(--stn-gray-950);
358
+ --stn-tab-badge-bg: var(--stn-gray-700);
359
+ --stn-tab-badge-fg: var(--stn-text-tertiary);
352
360
  --stn-badge-subtle-bg: var(--stn-opacity-white-10);
353
361
  --stn-badge-error: var(--stn-red-350);
354
362
  --stn-badge-primary: var(--stn-blue-400);
@@ -661,6 +669,8 @@
661
669
  --stn-input-placeholder: var(--stn-gray-400);
662
670
  --stn-dropdown-bg-translucent: var(--stn-opacity-white-50);
663
671
  --stn-label-prefix-label-bg: var(--stn-gray-50);
672
+ --stn-label-prefix-bg-translucent: var(--stn-opacity-white-50);
673
+ --stn-label-prefix-border-translucent: var(--stn-border-subtle);
664
674
  --stn-label-prefix-divider: var(--stn-gray-200);
665
675
  --stn-label-prefix-label-color: var(--stn-gray-500);
666
676
  --stn-tooltip-bg-neutral: var(--stn-gray-600);
@@ -689,6 +699,8 @@
689
699
  --stn-login-field-fg: var(--stn-gray-900);
690
700
  --stn-login-field-placeholder: var(--stn-gray-400);
691
701
  --stn-checkbox-bg: var(--stn-static-white);
702
+ --stn-checkbox-bg-translucent: var(--stn-opacity-white-50);
703
+ --stn-checkbox-border-translucent: var(--stn-border-subtle);
692
704
  --stn-checkbox-border: var(--stn-gray-200);
693
705
  --stn-checkbox-check: var(--stn-blue-350);
694
706
  --stn-checkbox-check-disabled: var(--stn-gray-400);
@@ -716,6 +728,8 @@
716
728
  --stn-tree-server-icon: var(--stn-gray-400);
717
729
  --stn-scroll-thumb: var(--stn-gray-200);
718
730
  --stn-section-side-bg: var(--stn-static-white);
731
+ --stn-section-side-bg-translucent: var(--stn-opacity-white-50);
732
+ --stn-section-side-border-translucent: var(--stn-border-subtle);
719
733
  --stn-section-side-border: var(--stn-gray-25);
720
734
  --stn-section-side-radius: 8px;
721
735
  --stn-section-side-shadow: 0 3px 10px var(--stn-gray-75);
@@ -946,6 +960,8 @@
946
960
  --stn-side-nav-gradient-icon-glow: var(--stn-cobalt-75);
947
961
  --stn-on-color: var(--stn-static-white);
948
962
  --stn-shade: var(--stn-gray-950);
963
+ --stn-tab-badge-bg: var(--stn-gray-100);
964
+ --stn-tab-badge-fg: var(--stn-text-secondary);
949
965
  --stn-badge-subtle-bg: var(--stn-opacity-black-5);
950
966
  --stn-badge-error: var(--stn-red-500);
951
967
  --stn-badge-primary: var(--stn-blue-500);
@@ -91,15 +91,15 @@
91
91
  --stn-blue-250: #5bc7fa;
92
92
  --stn-blue-300: #46bdf7;
93
93
  --stn-blue-350: #28b2f2;
94
- --stn-blue-400: #00aeef;
95
- --stn-blue-450: #009cda;
96
- --stn-blue-500: #0089c2;
97
- --stn-blue-550: #0077a8;
98
- --stn-blue-600: #00638d;
99
- --stn-blue-650: #005174;
100
- --stn-blue-700: #003f5c;
101
- --stn-blue-750: #002f46;
102
- --stn-blue-800: #001f30;
94
+ --stn-blue-400: #0091ef;
95
+ --stn-blue-450: #008edb;
96
+ --stn-blue-500: #007fc5;
97
+ --stn-blue-550: #006fac;
98
+ --stn-blue-600: #005e92;
99
+ --stn-blue-650: #004c77;
100
+ --stn-blue-700: #00385d;
101
+ --stn-blue-750: #001f46;
102
+ --stn-blue-800: #00182f;
103
103
  --stn-cobalt-25: #f2f6ff;
104
104
  --stn-cobalt-50: #e6eeff;
105
105
  --stn-cobalt-75: #d9e5ff;
@@ -222,6 +222,9 @@
222
222
  --stn-header-breadcrumb-mobile-max-width: var(--stn-size-140);
223
223
  --stn-widget-translucent-blur: var(--stn-size-8);
224
224
  --stn-dropdown-translucent-blur: var(--stn-size-8);
225
+ --stn-section-side-translucent-blur: var(--stn-size-8);
226
+ --stn-label-prefix-translucent-blur: var(--stn-size-8);
227
+ --stn-checkbox-translucent-blur: var(--stn-size-4);
225
228
  --stn-widget-overlay-blur: var(--stn-size-4);
226
229
  --stn-widget-severity-blur: var(--stn-size-6);
227
230
  --stn-widget-dot-size: var(--stn-size-8);
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-AVICAV6Z.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnSectionSide.ts"],"sourcesContent":["/**\n * Infomap section-side panel\n * Dark 40000040:102539 · Light 40000042:187762\n * @see StnSectionSide · stn-section-side.css\n */\n\nexport const STN_SECTION_SIDE_FIGMA = {\n dark: '40000040:102539',\n light: '40000042:187762',\n} as const\n\nexport const STN_SECTION_SIDE_INTRO =\n '맵·대시보드 **사이드 패널** 패턴. Light: white · gray-25 border · radius 8 · shadow. Dark: gray-900 · gray-800 border · radius 10. 본문 `StnScroll` + `StnTree`.'\n\nexport const STN_SECTION_SIDE_SPEC = [\n { property: 'Width', value: '264px', note: 'Figma frame' },\n { property: 'Padding', value: '8px', note: '' },\n {\n property: 'Radius',\n value: '`--stn-section-side-radius`',\n note: 'light 8 · dark 10',\n },\n {\n property: 'Background',\n value: '`--stn-section-side-bg`',\n note: 'light white · dark gray-900',\n },\n {\n property: 'Border',\n value: '`--stn-section-side-border`',\n note: 'light gray-25 · dark gray-800',\n },\n {\n property: 'Shadow',\n value: '`--stn-section-side-shadow`',\n note: 'light 0 3px 10px gray-75 · dark none',\n },\n { property: 'Body', value: 'StnScroll vertical', note: 'overflow tree' },\n {\n property: 'fill',\n value: '`fill` prop → `.stn-section-side--fill`',\n note: 'list view — search+table 열 높이 · 하단 inset은 .stn-container padding-bottom',\n },\n] as const\n\nexport const STN_SECTION_SIDE_USAGE = `import {\n StnSectionSide,\n StnTree,\n} from '@stn-uiux/pub-ui-react'\nimport { STN_TREE_DEMO } from '@stn-uiux/pub-ui/data/stnTree'\n\n<StnSectionSide style={{ height: 360 }}>\n <StnTree\n heading=\"FOLDER STRUCTURE\"\n nodes={STN_TREE_DEMO}\n defaultExpandedIds={['root', 'group-a', 'equip', 'group-b']}\n />\n</StnSectionSide>`\n"],"mappings":";AAMO,IAAM,yBAAyB;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AACT;AAEO,IAAM,yBACX;AAEK,IAAM,wBAAwB;AAAA,EACnC,EAAE,UAAU,SAAS,OAAO,SAAS,MAAM,cAAc;AAAA,EACzD,EAAE,UAAU,WAAW,OAAO,OAAO,MAAM,GAAG;AAAA,EAC9C;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,EAAE,UAAU,QAAQ,OAAO,sBAAsB,MAAM,gBAAgB;AAAA,EACvE;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,IAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -1,9 +0,0 @@
1
- // src/data/stnPackageVersion.ts
2
- var STN_UI_VERSION = "0.1.68";
3
- var STN_UI_VERSION_LABEL = "v0.1.68";
4
-
5
- export {
6
- STN_UI_VERSION,
7
- STN_UI_VERSION_LABEL
8
- };
9
- //# sourceMappingURL=chunk-QQYDH4WU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.68'\nexport const STN_UI_VERSION_LABEL = 'v0.1.68'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}