@iyulab/components 1.9.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +107 -9
- package/README.md +11 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/decorateMetadata.js +1 -1
- package/dist/_virtual/_glob-assets_raw/dark.css.e8ac080d.js +1 -1
- package/dist/_virtual/_glob-assets_raw/light.css.637cb2f8.js +1 -1
- package/dist/components/UElement.d.ts +1 -4
- package/dist/components/UElement.js +3 -4
- package/dist/components/UElement.styles.js +2 -2
- package/dist/components/UFloatingElement.js +2 -2
- package/dist/components/UFormControlElement.js +2 -2
- package/dist/components/UOverlayElement.d.ts +3 -0
- package/dist/components/UOverlayElement.js +5 -2
- package/dist/components/alert/UAlert.d.ts +3 -0
- package/dist/components/alert/UAlert.js +2 -2
- package/dist/components/alert/UAlert.styles.js +29 -19
- package/dist/components/avatar/UAvatar.js +2 -2
- package/dist/components/avatar/UAvatar.styles.js +2 -2
- package/dist/components/badge/UBadge.d.ts +2 -0
- package/dist/components/badge/UBadge.js +7 -5
- package/dist/components/badge/UBadge.styles.js +16 -5
- package/dist/components/breadcrumb/UBreadcrumb.js +1 -1
- package/dist/components/breadcrumb-item/UBreadcrumbItem.js +2 -2
- package/dist/components/breadcrumb-item/UBreadcrumbItem.styles.js +1 -1
- package/dist/components/button/UButton.d.ts +19 -2
- package/dist/components/button/UButton.js +2 -2
- package/dist/components/button/UButton.styles.js +34 -23
- package/dist/components/button-group/UButtonGroup.js +2 -2
- package/dist/components/card/UCard.d.ts +2 -0
- package/dist/components/card/UCard.js +4 -2
- package/dist/components/card/UCard.styles.js +17 -3
- package/dist/components/carousel/UCarousel.js +2 -2
- package/dist/components/carousel/UCarousel.styles.js +1 -1
- package/dist/components/checkbox/UCheckbox.d.ts +2 -0
- package/dist/components/checkbox/UCheckbox.js +2 -2
- package/dist/components/checkbox/UCheckbox.styles.js +39 -99
- package/dist/components/chip/UChip.js +2 -2
- package/dist/components/copy-button/UCopyButton.js +2 -2
- package/dist/components/copy-button/UCopyButton.styles.js +2 -2
- package/dist/components/dialog/UDialog.js +2 -2
- package/dist/components/dialog/UDialog.styles.js +2 -2
- package/dist/components/divider/UDivider.js +2 -2
- package/dist/components/drawer/UDrawer.d.ts +1 -1
- package/dist/components/drawer/UDrawer.js +2 -2
- package/dist/components/drawer/UDrawer.styles.js +1 -1
- package/dist/components/field/UField.js +2 -2
- package/dist/components/field/UField.styles.js +2 -2
- package/dist/components/form/UForm.js +2 -2
- package/dist/components/icon/UIcon.js +2 -2
- package/dist/components/icon-button/UIconButton.js +2 -2
- package/dist/components/icon-button/UIconButton.styles.js +1 -1
- package/dist/components/input/UInput.d.ts +4 -0
- package/dist/components/input/UInput.js +2 -4
- package/dist/components/input/UInput.styles.js +6 -3
- package/dist/components/menu/UMenu.d.ts +3 -0
- package/dist/components/menu/UMenu.js +5 -4
- package/dist/components/menu/UMenu.styles.js +19 -6
- package/dist/components/menu-item/UMenuItem.d.ts +2 -0
- package/dist/components/menu-item/UMenuItem.js +3 -2
- package/dist/components/menu-item/UMenuItem.styles.js +2 -2
- package/dist/components/option/UOption.d.ts +4 -0
- package/dist/components/option/UOption.js +9 -7
- package/dist/components/option/UOption.styles.js +17 -6
- package/dist/components/panel/UPanel.js +2 -2
- package/dist/components/popover/UPopover.js +2 -3
- package/dist/components/progress-bar/UProgressBar.js +4 -3
- package/dist/components/progress-bar/UProgressBar.styles.js +10 -10
- package/dist/components/progress-ring/UProgressRing.js +2 -2
- package/dist/components/progress-ring/UProgressRing.styles.js +9 -9
- package/dist/components/radio/URadio.d.ts +3 -0
- package/dist/components/radio/URadio.js +2 -3
- package/dist/components/radio/URadio.styles.js +2 -2
- package/dist/components/rating/URating.js +2 -2
- package/dist/components/rating/URating.styles.js +2 -2
- package/dist/components/select/USelect.js +2 -4
- package/dist/components/select/USelect.styles.js +3 -3
- package/dist/components/skeleton/USkeleton.js +2 -2
- package/dist/components/skeleton/USkeleton.styles.js +3 -3
- package/dist/components/slider/USlider.js +2 -2
- package/dist/components/slider/USlider.styles.js +4 -4
- package/dist/components/spinner/USpinner.js +2 -2
- package/dist/components/spinner/USpinner.styles.js +1 -1
- package/dist/components/split-panel/USplitPanel.js +2 -2
- package/dist/components/split-panel/USplitPanel.styles.js +2 -2
- package/dist/components/switch/USwitch.js +2 -2
- package/dist/components/switch/USwitch.styles.js +4 -4
- package/dist/components/tab/UTab.d.ts +2 -0
- package/dist/components/tab/UTab.js +9 -7
- package/dist/components/tab/UTab.styles.js +15 -3
- package/dist/components/tab-panel/UTabPanel.d.ts +2 -0
- package/dist/components/tab-panel/UTabPanel.js +2 -2
- package/dist/components/tab-panel/UTabPanel.styles.js +3 -3
- package/dist/components/tag/UTag.d.ts +4 -0
- package/dist/components/tag/UTag.js +9 -7
- package/dist/components/tag/UTag.styles.js +101 -170
- package/dist/components/textarea/UTextarea.js +2 -2
- package/dist/components/textarea/UTextarea.styles.js +2 -2
- package/dist/components/tooltip/UTooltip.d.ts +2 -0
- package/dist/components/tooltip/UTooltip.js +5 -3
- package/dist/components/tooltip/UTooltip.styles.js +12 -3
- package/dist/components/tree/UTree.d.ts +6 -0
- package/dist/components/tree/UTree.js +2 -2
- package/dist/components/tree-item/UTreeItem.d.ts +2 -0
- package/dist/components/tree-item/UTreeItem.js +2 -2
- package/dist/components/tree-item/UTreeItem.styles.js +3 -3
- package/dist/react/UDialog.d.ts +5 -1
- package/dist/react/UDialog.js +4 -1
- package/dist/react/UDrawer.d.ts +5 -1
- package/dist/react/UDrawer.js +4 -1
- package/dist/react/UPopover.d.ts +4 -2
- package/dist/react/UTooltip.d.ts +4 -2
- package/dist/styles/dark.css +64 -7
- package/dist/styles/light.css +64 -7
- package/dist/styles/tokens.css +17 -0
- package/dist/utilities/Theme.js +4 -0
- package/package.json +7 -4
- package/plugins/vite-plugin-glob-resolve.d.ts +0 -12
- package/plugins/vite-plugin-glob-resolve.js +0 -66
- package/plugins/vite-plugin-react-wrapper.d.ts +0 -14
- package/plugins/vite-plugin-react-wrapper.js +0 -235
|
@@ -68,7 +68,7 @@ var styles = css`
|
|
|
68
68
|
* 테두리는 CanvasText 원색이 과해 옅게 혼합.
|
|
69
69
|
*/
|
|
70
70
|
border: 1px solid var(--u-border-color, color-mix(in srgb, CanvasText 20%, Canvas));
|
|
71
|
-
border-radius:
|
|
71
|
+
border-radius: var(--u-radius-lg);
|
|
72
72
|
background: var(--u-panel-bg-color, Canvas);
|
|
73
73
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
74
74
|
pointer-events: auto;
|
|
@@ -98,7 +98,7 @@ var styles = css`
|
|
|
98
98
|
flex-shrink: 0;
|
|
99
99
|
padding: 4px;
|
|
100
100
|
font-size: inherit;
|
|
101
|
-
border-radius:
|
|
101
|
+
border-radius: var(--u-radius-md);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
.body {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { styles } from "./UDivider.styles.js";
|
|
5
5
|
import { html } from "lit";
|
|
6
6
|
import { customElement, property } from "lit/decorators.js";
|
|
@@ -13,7 +13,7 @@ export type DrawerPlacement = 'left' | 'right' | 'top' | 'bottom';
|
|
|
13
13
|
* @csspart body - 본문 영역
|
|
14
14
|
* @csspart close-btn - 닫기 버튼
|
|
15
15
|
*
|
|
16
|
-
* @
|
|
16
|
+
* @cssprop --drawer-size - 드로어 패널의 슬라이드 축 방향 크기 (기본값: 좌우 28rem / 상하 16rem).
|
|
17
17
|
* 좌우(left/right) placement는 너비, 상하(top/bottom) placement는 높이로 적용된다(상하 기본 16rem).
|
|
18
18
|
* 화면이 좁으면 max-width/max-height:100%로 자동 축소된다.
|
|
19
19
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
3
3
|
import { UOverlayElement } from "../UOverlayElement.js";
|
|
4
4
|
import "../button/UButton.js";
|
|
5
5
|
import "../icon/UIcon.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { styles } from "./UField.styles.js";
|
|
5
5
|
import { html, nothing } from "lit";
|
|
6
6
|
import { customElement, property } from "lit/decorators.js";
|
|
@@ -12,7 +12,7 @@ var styles = css`
|
|
|
12
12
|
cursor: not-allowed;
|
|
13
13
|
}
|
|
14
14
|
:host([invalid]) .footer {
|
|
15
|
-
color: var(--u-
|
|
15
|
+
color: var(--u-danger-color);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.header {
|
|
@@ -32,7 +32,7 @@ var styles = css`
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.required {
|
|
35
|
-
color: var(--u-
|
|
35
|
+
color: var(--u-danger-color);
|
|
36
36
|
margin-right: 0.2em;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { UFormControlElement } from "../UFormControlElement.js";
|
|
5
5
|
import { arrayAttrConverter } from "../../utilities/converters.js";
|
|
6
6
|
import { styles } from "./UForm.styles.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { IconRegistry, getDefaultBaseUrl } from "../../utilities/icons.js";
|
|
5
5
|
import { styles } from "./UIcon.styles.js";
|
|
6
6
|
import { nothing } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import "../button/UButton.js";
|
|
5
5
|
import "../icon/UIcon.js";
|
|
6
6
|
import "../tooltip/UTooltip.js";
|
|
@@ -23,6 +23,10 @@ export type InputVariant = 'outlined' | 'filled' | 'underlined' | 'borderless';
|
|
|
23
23
|
* docs/theming.md 참고)
|
|
24
24
|
* @csspart popover - 드롭다운 팝오버 요소
|
|
25
25
|
*
|
|
26
|
+
* @cssprop --u-input-display - 호스트의 display (기본값: inline-block). 폼/그리드 셀에서
|
|
27
|
+
* 컨테이너 폭을 채우려면 `block`으로 지정한다.
|
|
28
|
+
* @cssprop --u-input-width - 호스트의 width (기본값: auto). flex 컨테이너처럼 block만으로는
|
|
29
|
+
* 늘어나지 않는 맥락에서 `100%`로 지정한다.
|
|
26
30
|
* @cssprop --input-popover-width - 드롭다운 팝오버의 너비 (기본값: 앵커(트리거) 너비)
|
|
27
31
|
* @cssprop --input-popover-min-height - 드롭다운 팝오버의 최소 높이 (기본값: 0px)
|
|
28
32
|
* @cssprop --input-popover-max-height - 드롭다운 팝오버의 최대 높이 (기본값: 50vh)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
3
3
|
import { UFormControlElement } from "../UFormControlElement.js";
|
|
4
4
|
import "../spinner/USpinner.js";
|
|
5
5
|
import "../icon/UIcon.js";
|
|
@@ -71,7 +71,6 @@ var UInput = class UInput extends UFormControlElement {
|
|
|
71
71
|
case "Escape":
|
|
72
72
|
e.preventDefault();
|
|
73
73
|
this.popoverEl?.hide();
|
|
74
|
-
break;
|
|
75
74
|
}
|
|
76
75
|
};
|
|
77
76
|
this.handlePasswordTogglerClick = (e) => {
|
|
@@ -115,7 +114,6 @@ var UInput = class UInput extends UFormControlElement {
|
|
|
115
114
|
e.preventDefault();
|
|
116
115
|
this.popoverEl?.hide();
|
|
117
116
|
this.focus();
|
|
118
|
-
break;
|
|
119
117
|
}
|
|
120
118
|
};
|
|
121
119
|
this.handlePopoverShow = (e) => {
|
|
@@ -8,7 +8,10 @@ var styles = css`
|
|
|
8
8
|
|
|
9
9
|
:host {
|
|
10
10
|
position: relative;
|
|
11
|
+
/* 폼/그리드 셀에서 컨테이너 폭을 채우려면 소비자가 --u-input-display: block 을 준다.
|
|
12
|
+
flex 컨테이너처럼 block 만으로 늘어나지 않는 맥락을 위해 width 경로도 함께 연다. */
|
|
11
13
|
display: var(--u-input-display, inline-block);
|
|
14
|
+
width: var(--u-input-width, auto);
|
|
12
15
|
color: var(--u-txt-color);
|
|
13
16
|
font-size: inherit;
|
|
14
17
|
font-family: var(--u-font-base);
|
|
@@ -72,7 +75,7 @@ var styles = css`
|
|
|
72
75
|
padding-left: 0;
|
|
73
76
|
padding-right: 0;
|
|
74
77
|
border: none;
|
|
75
|
-
border-radius:
|
|
78
|
+
border-radius: var(--u-radius-none);
|
|
76
79
|
border-bottom: 1px solid var(--u-input-border-color);
|
|
77
80
|
background-color: transparent;
|
|
78
81
|
}
|
|
@@ -98,7 +101,7 @@ var styles = css`
|
|
|
98
101
|
/* ===== Variant: borderless ===== */
|
|
99
102
|
:host([variant="borderless"]) .container {
|
|
100
103
|
border: none;
|
|
101
|
-
border-radius:
|
|
104
|
+
border-radius: var(--u-radius-none);
|
|
102
105
|
background-color: transparent;
|
|
103
106
|
padding: 0;
|
|
104
107
|
box-shadow: none;
|
|
@@ -170,7 +173,7 @@ var styles = css`
|
|
|
170
173
|
max-height: var(--input-popover-max-height);
|
|
171
174
|
padding: 4px;
|
|
172
175
|
border: 1px solid var(--u-border-color);
|
|
173
|
-
border-radius:
|
|
176
|
+
border-radius: var(--u-radius-lg);
|
|
174
177
|
background-color: var(--u-panel-bg-color);
|
|
175
178
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
|
|
176
179
|
overflow-x: auto;
|
|
@@ -8,6 +8,9 @@ export type MenuSelection = 'none' | 'single' | 'multiple';
|
|
|
8
8
|
* @slot - 메뉴 아이템 (u-menu-item, u-divider)
|
|
9
9
|
*
|
|
10
10
|
* @cssprop --menu-indent-size - 하위 메뉴 아이템의 들여쓰기 크기 (기본값: 20px)
|
|
11
|
+
* @cssprop --menu-padding - 내부 여백 (`borderless` 는 0)
|
|
12
|
+
* @cssprop --menu-border-width - 테두리 두께 (`borderless` 는 0)
|
|
13
|
+
* @cssprop --menu-border-color - 테두리 색
|
|
11
14
|
*
|
|
12
15
|
* @event change - 선택된 아이템이 변경될 때 발생
|
|
13
16
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { UMenuItem } from "../menu-item/UMenuItem.js";
|
|
5
5
|
import { styles } from "./UMenu.styles.js";
|
|
6
6
|
import { html } from "lit";
|
|
@@ -88,7 +88,6 @@ var UMenu = class UMenu extends UElement {
|
|
|
88
88
|
e.preventDefault();
|
|
89
89
|
if (!focused.leaf && focused.expanded) focused.expanded = false;
|
|
90
90
|
else if (focused.parentItem) focused.parentItem.focus();
|
|
91
|
-
break;
|
|
92
91
|
}
|
|
93
92
|
};
|
|
94
93
|
}
|
|
@@ -121,7 +120,9 @@ var UMenu = class UMenu extends UElement {
|
|
|
121
120
|
].some((k) => changedProperties.has(k))) this.propagate();
|
|
122
121
|
}
|
|
123
122
|
render() {
|
|
124
|
-
return html`<
|
|
123
|
+
return html`<div class="base" part="base">
|
|
124
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
125
|
+
</div>`;
|
|
125
126
|
}
|
|
126
127
|
getItems(fn) {
|
|
127
128
|
const result = [];
|
|
@@ -8,16 +8,29 @@ var styles = css`
|
|
|
8
8
|
:host {
|
|
9
9
|
display: flex;
|
|
10
10
|
flex-direction: column;
|
|
11
|
-
padding: 4px;
|
|
12
11
|
min-width: 160px;
|
|
13
|
-
border:
|
|
14
|
-
border-radius: 6px;
|
|
12
|
+
border-radius: var(--u-radius-lg);
|
|
15
13
|
background-color: var(--u-panel-bg-color);
|
|
14
|
+
|
|
15
|
+
--menu-padding: 4px;
|
|
16
|
+
--menu-border-width: 1px;
|
|
17
|
+
--menu-border-color: var(--u-border-color);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* 여백/테두리는 내부 요소가 진다 — :host 에 두면 소비 앱 CSS 리셋에 지워진다. */
|
|
21
|
+
.base {
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
width: 100%;
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
padding: var(--menu-padding);
|
|
27
|
+
border: var(--menu-border-width) solid var(--menu-border-color);
|
|
28
|
+
border-radius: inherit;
|
|
16
29
|
}
|
|
17
30
|
:host([borderless]) {
|
|
18
|
-
padding: 0;
|
|
19
|
-
border:
|
|
20
|
-
border-radius:
|
|
31
|
+
--menu-padding: 0;
|
|
32
|
+
--menu-border-width: 0;
|
|
33
|
+
border-radius: var(--u-radius-none);
|
|
21
34
|
background-color: transparent;
|
|
22
35
|
}
|
|
23
36
|
`;
|
|
@@ -16,6 +16,8 @@ export type MenuItemAlign = 'left' | 'center' | 'right';
|
|
|
16
16
|
* @csspart popover - 팝오버 모드에서 하위 메뉴 컨테이너
|
|
17
17
|
*
|
|
18
18
|
* @event pick - 아이템 선택 시 발생 (하위 메뉴가 없는 경우)
|
|
19
|
+
*
|
|
20
|
+
* @cssprop --menu-item-color - 선택/활성 상태의 기준색 (기본: --u-primary-color)
|
|
19
21
|
*/
|
|
20
22
|
export declare class UMenuItem extends UElement {
|
|
21
23
|
static styles: import('lit').CSSResultGroup[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import "../icon/UIcon.js";
|
|
5
5
|
import { UDivider } from "../divider/UDivider.js";
|
|
6
6
|
import "../popover/UPopover.js";
|
|
@@ -121,6 +121,7 @@ var UMenuItem = class UMenuItem extends UElement {
|
|
|
121
121
|
trigger="hover"
|
|
122
122
|
placement="right-start"
|
|
123
123
|
offset="4"
|
|
124
|
+
strategy="fixed"
|
|
124
125
|
>
|
|
125
126
|
<slot name="children" @slotchange=${this.handleChildrenSlotChange}></slot>
|
|
126
127
|
</u-popover>`}
|
|
@@ -3,7 +3,7 @@ import { css } from "lit";
|
|
|
3
3
|
var styles = css`
|
|
4
4
|
:host {
|
|
5
5
|
--menu-item-depth: 0;
|
|
6
|
-
--menu-item-color: var(--u-primary-color
|
|
6
|
+
--menu-item-color: var(--u-primary-color);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
:host {
|
|
@@ -137,7 +137,7 @@ var styles = css`
|
|
|
137
137
|
flex-direction: column;
|
|
138
138
|
padding: 4px;
|
|
139
139
|
border: 1px solid var(--u-border-color);
|
|
140
|
-
border-radius:
|
|
140
|
+
border-radius: var(--u-radius-md);
|
|
141
141
|
background-color: var(--u-panel-bg-color);
|
|
142
142
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
143
143
|
transform: scale(0.8);
|
|
@@ -20,6 +20,10 @@ export type OptionMarker = 'radio' | 'check';
|
|
|
20
20
|
* @cssprop --option-color-active-interactive - 선택된 상태에서 호버/포커스 시 텍스트 색상
|
|
21
21
|
* @cssprop --option-border-color-active-interactive - 선택된 상태에서 호버/포커스 시 테두리 색상
|
|
22
22
|
* @cssprop --option-background-color-active-interactive - 선택된 상태에서 호버/포커스 시 배경 색상
|
|
23
|
+
* @cssprop --option-color - 선택 상태의 기준색. 위 active 계열이 이 값에서 파생된다
|
|
24
|
+
* (기본: --u-primary-color)
|
|
25
|
+
* @cssprop --option-padding-block - 세로 여백
|
|
26
|
+
* @cssprop --option-padding-inline - 가로 여백
|
|
23
27
|
*/
|
|
24
28
|
export declare class UOption extends UElement {
|
|
25
29
|
static styles: import('lit').CSSResultGroup[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import "../icon/UIcon.js";
|
|
5
5
|
import { styles } from "./UOption.styles.js";
|
|
6
6
|
import { html, nothing } from "lit";
|
|
@@ -32,12 +32,14 @@ var UOption = class UOption extends UElement {
|
|
|
32
32
|
}
|
|
33
33
|
render() {
|
|
34
34
|
return html`
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<
|
|
35
|
+
<div class="base" part="base">
|
|
36
|
+
${this.renderMarker()}
|
|
37
|
+
<slot name="prefix"></slot>
|
|
38
|
+
<div class="content" part="content">
|
|
39
|
+
<slot></slot>
|
|
40
|
+
</div>
|
|
41
|
+
<slot name="suffix"></slot>
|
|
39
42
|
</div>
|
|
40
|
-
<slot name="suffix"></slot>
|
|
41
43
|
`;
|
|
42
44
|
}
|
|
43
45
|
renderMarker() {
|
|
@@ -2,7 +2,7 @@ import { css } from "lit";
|
|
|
2
2
|
//#region src/components/option/UOption.styles.ts
|
|
3
3
|
var styles = css`
|
|
4
4
|
:host {
|
|
5
|
-
--option-color: var(--u-primary-color
|
|
5
|
+
--option-color: var(--u-primary-color);
|
|
6
6
|
--option-color-interactive: inherit;
|
|
7
7
|
--option-border-color-interactive: var(--u-border-color-hover);
|
|
8
8
|
--option-background-color-interactive: var(--u-bg-color-hover);
|
|
@@ -18,12 +18,23 @@ var styles = css`
|
|
|
18
18
|
|
|
19
19
|
:host {
|
|
20
20
|
display: flex;
|
|
21
|
-
flex-direction: row;
|
|
22
|
-
align-items: center;
|
|
23
|
-
padding: 0.25em 0.5em;
|
|
24
21
|
transition: background-color 0.15s ease, color 0.15s ease;
|
|
25
22
|
user-select: none;
|
|
26
23
|
cursor: pointer;
|
|
24
|
+
|
|
25
|
+
--option-padding-block: 0.25em;
|
|
26
|
+
--option-padding-inline: 0.5em;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* 여백은 내부 요소가 진다 — :host 에 두면 소비 앱 CSS 리셋에 지워진다. */
|
|
30
|
+
.base {
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
width: 100%;
|
|
33
|
+
display: flex;
|
|
34
|
+
flex-direction: row;
|
|
35
|
+
align-items: center;
|
|
36
|
+
padding: var(--option-padding-block) var(--option-padding-inline);
|
|
37
|
+
border-radius: inherit;
|
|
27
38
|
}
|
|
28
39
|
:host(:focus-visible) {
|
|
29
40
|
outline: none;
|
|
@@ -89,7 +100,7 @@ var styles = css`
|
|
|
89
100
|
width: 1.25em;
|
|
90
101
|
height: 1.25em;
|
|
91
102
|
border: 2px solid var(--u-neutral-400);
|
|
92
|
-
border-radius:
|
|
103
|
+
border-radius: var(--u-radius-circle);
|
|
93
104
|
background-color: var(--u-bg-color);
|
|
94
105
|
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
95
106
|
}
|
|
@@ -113,7 +124,7 @@ var styles = css`
|
|
|
113
124
|
display: block;
|
|
114
125
|
width: 0.45em;
|
|
115
126
|
height: 0.45em;
|
|
116
|
-
border-radius:
|
|
127
|
+
border-radius: var(--u-radius-circle);
|
|
117
128
|
background-color: var(--option-color-active);
|
|
118
129
|
transform: scale(0);
|
|
119
130
|
transition: transform 0.15s ease;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { styles } from "./UPanel.styles.js";
|
|
5
5
|
import { html } from "lit";
|
|
6
6
|
import { customElement, property } from "lit/decorators.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
3
3
|
import { UFloatingElement } from "../UFloatingElement.js";
|
|
4
4
|
import { arrayAttrConverter } from "../../utilities/converters.js";
|
|
5
5
|
import { styles } from "./UPopover.styles.js";
|
|
@@ -171,7 +171,6 @@ var UPopover = class UPopover extends UFloatingElement {
|
|
|
171
171
|
}
|
|
172
172
|
this.addEventListener("focusin", this.handlePopoverFocusIn);
|
|
173
173
|
this.addEventListener("focusout", this.handlePopoverFocusOut);
|
|
174
|
-
break;
|
|
175
174
|
}
|
|
176
175
|
const dismissList = new Set(this.dismiss);
|
|
177
176
|
if (dismissList.has("click")) document.addEventListener("click", this.handleDocumentClick);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { styles } from "./UProgressBar.styles.js";
|
|
5
5
|
import { html } from "lit";
|
|
6
6
|
import { customElement, property, state } from "lit/decorators.js";
|
|
@@ -49,7 +49,8 @@ var UProgressBar = class UProgressBar extends UElement {
|
|
|
49
49
|
|
|
50
50
|
<div class="segments" part="segments" ?hidden=${!hasSegments}>
|
|
51
51
|
${Array.from({ length: Math.max(this.segments - 1, 0) }, (_, i) => {
|
|
52
|
-
|
|
52
|
+
const left = (i + 1) / this.segments * 100;
|
|
53
|
+
return html`<div class="segment-gap" style="left: ${left}%; width: ${this.segmentGap}px;"></div>`;
|
|
53
54
|
})}
|
|
54
55
|
</div>
|
|
55
56
|
|
|
@@ -3,27 +3,27 @@ import { css } from "lit";
|
|
|
3
3
|
var styles = css`
|
|
4
4
|
:host {
|
|
5
5
|
--progress-bar-height: 0.5em;
|
|
6
|
-
--progress-bar-color: var(--u-primary-color
|
|
6
|
+
--progress-bar-color: var(--u-primary-color);
|
|
7
7
|
--progress-bar-buffer-color: color-mix(in srgb, var(--progress-bar-color) 35%, var(--u-bg-color));
|
|
8
8
|
--progress-bar-track-color: var(--u-neutral-200);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
/* === Status Colors === */
|
|
12
12
|
:host([status="success"]) {
|
|
13
|
-
--progress-bar-color: var(--u-
|
|
14
|
-
--progress-bar-buffer-color: var(--u-
|
|
13
|
+
--progress-bar-color: var(--u-success-color);
|
|
14
|
+
--progress-bar-buffer-color: var(--u-success-color-weakest);
|
|
15
15
|
}
|
|
16
16
|
:host([status="warning"]) {
|
|
17
|
-
--progress-bar-color: var(--u-
|
|
18
|
-
--progress-bar-buffer-color: var(--u-
|
|
17
|
+
--progress-bar-color: var(--u-warning-color-weak);
|
|
18
|
+
--progress-bar-buffer-color: var(--u-warning-color-weakest);
|
|
19
19
|
}
|
|
20
20
|
:host([status="error"]) {
|
|
21
|
-
--progress-bar-color: var(--u-
|
|
22
|
-
--progress-bar-buffer-color: var(--u-
|
|
21
|
+
--progress-bar-color: var(--u-danger-color);
|
|
22
|
+
--progress-bar-buffer-color: var(--u-danger-color-weakest);
|
|
23
23
|
}
|
|
24
24
|
:host([status="info"]) {
|
|
25
|
-
--progress-bar-color: var(--u-
|
|
26
|
-
--progress-bar-buffer-color: var(--u-
|
|
25
|
+
--progress-bar-color: var(--u-info-color-weak);
|
|
26
|
+
--progress-bar-buffer-color: var(--u-info-color-weakest);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
:host {
|
|
@@ -37,7 +37,7 @@ var styles = css`
|
|
|
37
37
|
|
|
38
38
|
/* === Rounded === */
|
|
39
39
|
:host([rounded]) {
|
|
40
|
-
border-radius:
|
|
40
|
+
border-radius: var(--u-radius-pill);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
/* === Indeterminate === */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
3
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
4
4
|
import { styles } from "./UProgressRing.styles.js";
|
|
5
5
|
import { html } from "lit";
|
|
6
6
|
import { customElement, property, state } from "lit/decorators.js";
|
|
@@ -3,7 +3,7 @@ import { css } from "lit";
|
|
|
3
3
|
var styles = css`
|
|
4
4
|
:host {
|
|
5
5
|
--progress-ring-size: 6em;
|
|
6
|
-
--progress-ring-color: var(--u-primary-color
|
|
6
|
+
--progress-ring-color: var(--u-primary-color);
|
|
7
7
|
--progress-ring-track-width: 6;
|
|
8
8
|
--progress-ring-track-color: var(--u-neutral-200);
|
|
9
9
|
--progress-ring-buffer-color: color-mix(in srgb, var(--progress-ring-color) 35%, var(--u-bg-color));
|
|
@@ -11,20 +11,20 @@ var styles = css`
|
|
|
11
11
|
|
|
12
12
|
/* === Status Colors === */
|
|
13
13
|
:host([status="success"]) {
|
|
14
|
-
--progress-ring-color: var(--u-
|
|
15
|
-
--progress-ring-buffer-color: var(--u-
|
|
14
|
+
--progress-ring-color: var(--u-success-color);
|
|
15
|
+
--progress-ring-buffer-color: var(--u-success-color-weakest);
|
|
16
16
|
}
|
|
17
17
|
:host([status="warning"]) {
|
|
18
|
-
--progress-ring-color: var(--u-
|
|
19
|
-
--progress-ring-buffer-color: var(--u-
|
|
18
|
+
--progress-ring-color: var(--u-warning-color-weak);
|
|
19
|
+
--progress-ring-buffer-color: var(--u-warning-color-weakest);
|
|
20
20
|
}
|
|
21
21
|
:host([status="error"]) {
|
|
22
|
-
--progress-ring-color: var(--u-
|
|
23
|
-
--progress-ring-buffer-color: var(--u-
|
|
22
|
+
--progress-ring-color: var(--u-danger-color);
|
|
23
|
+
--progress-ring-buffer-color: var(--u-danger-color-weakest);
|
|
24
24
|
}
|
|
25
25
|
:host([status="info"]) {
|
|
26
|
-
--progress-ring-color: var(--u-
|
|
27
|
-
--progress-ring-buffer-color: var(--u-
|
|
26
|
+
--progress-ring-color: var(--u-info-color-weak);
|
|
27
|
+
--progress-ring-buffer-color: var(--u-info-color-weakest);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
/* === Host === */
|
|
@@ -11,6 +11,9 @@ export type RadioOrientation = "vertical" | "horizontal";
|
|
|
11
11
|
* @csspart field - u-field 요소
|
|
12
12
|
* @csspart container - 옵션들을 감싸는 컨테이너
|
|
13
13
|
*
|
|
14
|
+
* @cssprop --radio-color - 선택 상태의 기준색 (기본: --u-primary-color)
|
|
15
|
+
* @cssprop --radio-color-active - 선택 상태 active 톤 (기본: --radio-color 85% + black)
|
|
16
|
+
*
|
|
14
17
|
* @event change - 사용자 상호작용(옵션 클릭·키보드)으로 선택 값이 변경될 때 발생.
|
|
15
18
|
* 네이티브 라디오와 동일하게 프로그램적 value 세팅·옵션 등록으로는 발화하지 않는다.
|
|
16
19
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
3
3
|
import { UFormControlElement } from "../UFormControlElement.js";
|
|
4
4
|
import { Locale } from "../../utilities/Locale.js";
|
|
5
5
|
import "../field/UField.js";
|
|
@@ -59,7 +59,6 @@ var URadio = class URadio extends UFormControlElement {
|
|
|
59
59
|
case "End":
|
|
60
60
|
e.preventDefault();
|
|
61
61
|
options[options.length - 1].focus();
|
|
62
|
-
break;
|
|
63
62
|
}
|
|
64
63
|
};
|
|
65
64
|
}
|
|
@@ -2,7 +2,7 @@ import { css } from "lit";
|
|
|
2
2
|
//#region src/components/radio/URadio.styles.ts
|
|
3
3
|
var styles = css`
|
|
4
4
|
:host {
|
|
5
|
-
--radio-color: var(--u-primary-color
|
|
5
|
+
--radio-color: var(--u-primary-color);
|
|
6
6
|
--radio-color-active: color-mix(in srgb, var(--radio-color) 85%, black);
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -38,7 +38,7 @@ var styles = css`
|
|
|
38
38
|
border-radius: 0.35em;
|
|
39
39
|
}
|
|
40
40
|
:host([invalid]) .container {
|
|
41
|
-
border-color: var(--u-
|
|
41
|
+
border-color: var(--u-danger-color);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/* Type: default */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
|
|
3
3
|
import { UFormControlElement } from "../UFormControlElement.js";
|
|
4
4
|
import "../icon/UIcon.js";
|
|
5
5
|
import { Locale } from "../../utilities/Locale.js";
|
|
@@ -2,7 +2,7 @@ import { css } from "lit";
|
|
|
2
2
|
//#region src/components/rating/URating.styles.ts
|
|
3
3
|
var styles = css`
|
|
4
4
|
:host {
|
|
5
|
-
--rating-symbol-color: var(--u-
|
|
5
|
+
--rating-symbol-color: var(--u-warning-color-weak);
|
|
6
6
|
--rating-symbol-off-color: var(--u-neutral-300);
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ var styles = css`
|
|
|
32
32
|
transition: color 0.15s ease, transform 0.15s ease;
|
|
33
33
|
}
|
|
34
34
|
.symbol:focus-visible {
|
|
35
|
-
outline: 2px solid var(--u-
|
|
35
|
+
outline: 2px solid var(--u-primary-color-weak);
|
|
36
36
|
outline-offset: 2px;
|
|
37
37
|
}
|
|
38
38
|
:host(:not([disabled]):not([readonly])) .symbol:hover {
|