@iyulab/components 1.42.3 → 1.43.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 +43 -0
- package/dist/_virtual/_glob-assets_raw/layout-sidebar.svg.3fe5a68f.js +4 -0
- package/dist/_virtual/_glob-assets_raw/menu-2.svg.d6c83cc4.js +4 -0
- package/dist/components/card/UCard.d.ts +1 -0
- package/dist/components/date-picker/UDatePicker.d.ts +2 -0
- package/dist/components/divider/UDivider.d.ts +1 -0
- package/dist/components/icon/UIcon.d.ts +6 -1
- package/dist/components/option/UOption.d.ts +3 -0
- package/dist/components/tab/UTab.d.ts +1 -0
- package/dist/components/tag/UTag.d.ts +1 -0
- package/dist/utilities/icons.js +4 -0
- package/package.json +1 -1
- package/skills/iyulab-components/references/components/badge.md +7 -0
- package/skills/iyulab-components/references/components/breadcrumb.md +1 -0
- package/skills/iyulab-components/references/components/card.md +1 -0
- package/skills/iyulab-components/references/components/date-picker.md +2 -0
- package/skills/iyulab-components/references/components/divider.md +1 -0
- package/skills/iyulab-components/references/components/icon.md +7 -3
- package/skills/iyulab-components/references/components/menu.md +1 -0
- package/skills/iyulab-components/references/components/option.md +3 -0
- package/skills/iyulab-components/references/components/tag.md +1 -0
- package/skills/iyulab-components/references/components/tooltip.md +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.43.0] - 2026-09-22
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **`menu-2` and `layout-sidebar` join the built-in icon set.** An app shell draws its own
|
|
8
|
+
chrome — a mobile menu toggle, a sidebar toggle, an overlay close button — and two of those
|
|
9
|
+
three names existed only in a CDN-backed library. A deployment without internet access
|
|
10
|
+
rendered them blank no matter how thoroughly the app had baked its own icons into the bundle,
|
|
11
|
+
because the shell was not resolving them through that registration at all. The names now
|
|
12
|
+
exist here, so a shell can resolve all of its chrome from the bundled set.
|
|
13
|
+
- Both glyphs follow what the set already contains: the same 24px grid, the same stroke weight
|
|
14
|
+
and the same caps.
|
|
15
|
+
|
|
16
|
+
### Documentation
|
|
17
|
+
|
|
18
|
+
- **`docs/icons.md` now says which built-in names are load-bearing outside this package.**
|
|
19
|
+
Removing one of them blanks a control in every app built on a shell that draws itself from
|
|
20
|
+
the bundle, and nothing in the type system would say so before the screen went empty.
|
|
21
|
+
|
|
22
|
+
## [1.42.4] - 2026-09-21
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **`u-icon` no longer documents an `svg` CSS part.** It was declared and published but
|
|
27
|
+
**never implemented** — the SVG markup comes from the icon registry or a URL and is injected
|
|
28
|
+
as-is, so there is no element the component owns to carry a part. If you have a rule like
|
|
29
|
+
`u-icon::part(svg) { … }`, it has been matching nothing and raising no error the whole time;
|
|
30
|
+
that is why the claim survived. Style `u-icon` itself instead — it inherits `font-size` and
|
|
31
|
+
`color`, which is what sizes and colors the glyph. This removes a documented name, but
|
|
32
|
+
nothing can have depended on behavior that never existed.
|
|
33
|
+
|
|
34
|
+
### Documentation
|
|
35
|
+
|
|
36
|
+
- **Every CSS part a component emits is now declared and listed.** Nine parts were emitted
|
|
37
|
+
without a `@csspart` declaration (`base` on card, divider, tag and tab; `base`,
|
|
38
|
+
`radio-marker` and `check-marker` on option; `calendar-week` and `time-input` on the date
|
|
39
|
+
picker), and seven were emitted without appearing in their reference page. The badge and
|
|
40
|
+
tooltip pages had no `CSS Parts` section at all, and the breadcrumb page was missing the
|
|
41
|
+
`link` part its items expose.
|
|
42
|
+
- Aiming `::part()` at a name no element carries matches nothing and raises no error, so this
|
|
43
|
+
class of drift is invisible from the outside — which is why it is now checked rather than
|
|
44
|
+
maintained by hand.
|
|
45
|
+
|
|
3
46
|
## [1.42.3] - 2026-09-20
|
|
4
47
|
|
|
5
48
|
### Fixed
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region \0glob-assets_raw/layout-sidebar.svg.3fe5a68f
|
|
2
|
+
var layout_sidebar_svg_default = "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12\" />\n <path d=\"M9 4l0 16\" />\n</svg>";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { layout_sidebar_svg_default as default };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region \0glob-assets_raw/menu-2.svg.d6c83cc4
|
|
2
|
+
var menu_2_svg_default = "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M4 6l16 0\" />\n <path d=\"M4 12l16 0\" />\n <path d=\"M4 18l16 0\" />\n</svg>";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { menu_2_svg_default as default };
|
|
@@ -8,6 +8,7 @@ export type CardOrientation = 'vertical' | 'horizontal';
|
|
|
8
8
|
* @slot footer - 카드 하단 푸터 영역
|
|
9
9
|
* @slot media - 카드의 미디어 영역 (이미지, 동영상 등)
|
|
10
10
|
*
|
|
11
|
+
* @csspart base - 카드 바깥 상자
|
|
11
12
|
* @csspart media - 미디어 영역 컨테이너
|
|
12
13
|
* @csspart content - 콘텐츠 영역 컨테이너
|
|
13
14
|
* @csspart header - 헤더 영역 컨테이너
|
|
@@ -29,6 +29,8 @@ export type DatePickerMode = 'date' | 'datetime';
|
|
|
29
29
|
* @csspart calendar-title - the "Month Year" title
|
|
30
30
|
* @csspart calendar-weekdays - the weekday header row
|
|
31
31
|
* @csspart calendar-grid - the date grid
|
|
32
|
+
* @csspart calendar-week - one week row inside the date grid
|
|
33
|
+
* @csspart time-input - the time-of-day input (datetime mode only)
|
|
32
34
|
* @csspart day - a date cell button
|
|
33
35
|
* @csspart calendar-footer - the row holding the "today"/"clear" quick-action buttons
|
|
34
36
|
* @csspart calendar-time - the row holding the time-of-day input (datetime mode only)
|
|
@@ -3,7 +3,12 @@ export type IconLibrary = (string & {}) | "internal" | "tabler" | "heroicons" |
|
|
|
3
3
|
/**
|
|
4
4
|
* SVG 아이콘을 이름으로 불러와 표시하는 아이콘 컴포넌트입니다.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* ⚠**이 컴포넌트는 part 를 내보내지 않는다 — 호스트(u-icon) 자체가 스타일 대상이다.**
|
|
7
|
+
* svg part 선언이 오래 있었으나 **구현된 적이 없었다**. SVG 마크업은 레지스트리/URL 에서 받아 unsafeHTML 로 그대로 주입하므로, 그 안의 루트 요소에
|
|
8
|
+
* part 를 붙이려면 받아 온 문자열을 고쳐 쓰거나 래퍼 요소를 하나 더 끼워야 한다 — 둘 다 기존
|
|
9
|
+
* 선택자를 깨뜨린다. 없는 part 를 겨눈 선택자는 **아무것도 맞히지 못하고 오류도 내지 않으므로**,
|
|
10
|
+
* 지키지 못할 약속을 지우는 쪽이 소비자에게 정직하다.
|
|
11
|
+
* 크기·색은 u-icon 자신에 걸면 된다(font-size·color 를 상속한다).
|
|
7
12
|
*/
|
|
8
13
|
export declare class UIcon extends UElement {
|
|
9
14
|
static styles: import('lit').CSSResultGroup[];
|
|
@@ -9,7 +9,10 @@ export type OptionMarker = 'radio' | 'check';
|
|
|
9
9
|
* @slot prefix - 라벨 앞에 표시되는 아이콘 등
|
|
10
10
|
* @slot suffix - 라벨 뒤에 표시되는 추가 콘텐츠
|
|
11
11
|
*
|
|
12
|
+
* @csspart base - 옵션 항목 바깥 상자
|
|
12
13
|
* @csspart content - 콘텐츠 영역
|
|
14
|
+
* @csspart radio-marker - 단일 선택 모드의 라디오 표식
|
|
15
|
+
* @csspart check-marker - 다중 선택 모드의 체크 표식
|
|
13
16
|
*
|
|
14
17
|
* @cssprop --option-color-interactive - 호버/포커스 시 텍스트 색상
|
|
15
18
|
* @cssprop --option-border-color-interactive - 호버/포커스 시 테두리 색상
|
|
@@ -13,6 +13,7 @@ export type TagColor = "neutral" | "primary" | "info" | "success" | "warning" |
|
|
|
13
13
|
* @slot prefix - 태그 앞에 표시할 콘텐츠
|
|
14
14
|
* @slot suffix - 태그 뒤에 표시할 콘텐츠
|
|
15
15
|
*
|
|
16
|
+
* @csspart base - 태그 바깥 상자
|
|
16
17
|
* @csspart content - 콘텐츠 영역
|
|
17
18
|
* @csspart icon - 상태 아이콘 (`icon` + 역할 색일 때만 렌더된다)
|
|
18
19
|
*
|
package/dist/utilities/icons.js
CHANGED
|
@@ -12,6 +12,8 @@ import copy_svg_default from "../_virtual/_glob-assets_raw/copy.svg.6192f853.js"
|
|
|
12
12
|
import eye_off_svg_default from "../_virtual/_glob-assets_raw/eye-off.svg.7aa25df0.js";
|
|
13
13
|
import eye_svg_default from "../_virtual/_glob-assets_raw/eye.svg.2e5e9c4c.js";
|
|
14
14
|
import info_circle_fill_svg_default from "../_virtual/_glob-assets_raw/info-circle-fill.svg.6580071d.js";
|
|
15
|
+
import layout_sidebar_svg_default from "../_virtual/_glob-assets_raw/layout-sidebar.svg.3fe5a68f.js";
|
|
16
|
+
import menu_2_svg_default from "../_virtual/_glob-assets_raw/menu-2.svg.d6c83cc4.js";
|
|
15
17
|
import minus_svg_default from "../_virtual/_glob-assets_raw/minus.svg.4610de75.js";
|
|
16
18
|
import plus_svg_default from "../_virtual/_glob-assets_raw/plus.svg.d83ead68.js";
|
|
17
19
|
import search_svg_default from "../_virtual/_glob-assets_raw/search.svg.0ba2012d.js";
|
|
@@ -53,6 +55,8 @@ var InternalIconBundle = new Map(Object.entries(/* #__PURE__ */ Object.assign({
|
|
|
53
55
|
"../assets/icons/eye-off.svg": eye_off_svg_default,
|
|
54
56
|
"../assets/icons/eye.svg": eye_svg_default,
|
|
55
57
|
"../assets/icons/info-circle-fill.svg": info_circle_fill_svg_default,
|
|
58
|
+
"../assets/icons/layout-sidebar.svg": layout_sidebar_svg_default,
|
|
59
|
+
"../assets/icons/menu-2.svg": menu_2_svg_default,
|
|
56
60
|
"../assets/icons/minus.svg": minus_svg_default,
|
|
57
61
|
"../assets/icons/plus.svg": plus_svg_default,
|
|
58
62
|
"../assets/icons/search.svg": search_svg_default,
|
package/package.json
CHANGED
|
@@ -29,6 +29,13 @@ Status badge for numbers, labels, or dot indicators. Use `anchor` to position it
|
|
|
29
29
|
| *(default)* | Badge label (text or icon) |
|
|
30
30
|
| `suffix` | Content after the main label |
|
|
31
31
|
|
|
32
|
+
## CSS Parts
|
|
33
|
+
|
|
34
|
+
| Part | Description |
|
|
35
|
+
|------|-------------|
|
|
36
|
+
| `base` | Outer badge box |
|
|
37
|
+
| `icon` | Status icon (rendered only with `icon` + a semantic `color`) |
|
|
38
|
+
|
|
32
39
|
## Properties
|
|
33
40
|
|
|
34
41
|
| Property | Type | Default | Reflect | Description |
|
|
@@ -46,6 +46,7 @@ Content card with optional media, header, body, and footer sections.
|
|
|
46
46
|
|
|
47
47
|
| Part | Description |
|
|
48
48
|
|------|-------------|
|
|
49
|
+
| `base` | Outer card box |
|
|
49
50
|
| `media` | Media area wrapper |
|
|
50
51
|
| `content` | Full content wrapper (header + body + footer) |
|
|
51
52
|
| `header` | Header slot wrapper |
|
|
@@ -81,6 +81,8 @@ day preserves whatever time-of-day was already set; only the "Today" button over
|
|
|
81
81
|
| `day` | A date cell button |
|
|
82
82
|
| `calendar-footer` | The row holding the "Today"/"Clear" quick-action buttons |
|
|
83
83
|
| `calendar-time` | The row holding the time-of-day input (`mode="datetime"` only) |
|
|
84
|
+
| `calendar-week` | One week row inside the date grid |
|
|
85
|
+
| `time-input` | Time-of-day input (datetime mode only) |
|
|
84
86
|
|
|
85
87
|
## CSS Custom Properties
|
|
86
88
|
|
|
@@ -43,6 +43,7 @@ Horizontal or vertical separator line. Slot content is overlaid as an inline lab
|
|
|
43
43
|
|
|
44
44
|
| Part | Description |
|
|
45
45
|
|------|-------------|
|
|
46
|
+
| `base` | Outer divider box |
|
|
46
47
|
| `line-start` | Line segment before the label |
|
|
47
48
|
| `label` | Label wrapper |
|
|
48
49
|
| `line-end` | Line segment after the label |
|
|
@@ -56,6 +56,10 @@ For registering custom libraries, see [icons.md](../utilities/icons.md).
|
|
|
56
56
|
|
|
57
57
|
## CSS Parts
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
None. Style `u-icon` itself — it inherits `font-size` and `color`, which is what sizes
|
|
60
|
+
and colors the glyph.
|
|
61
|
+
|
|
62
|
+
⚠ A `svg` part was documented here for a long time and **never existed**: the markup comes
|
|
63
|
+
from the registry or a URL and is injected as-is, so there is no element the component owns to
|
|
64
|
+
put a `part` on. `::part(svg)` matched nothing and raised no error, which is exactly how that
|
|
65
|
+
claim survived.
|
|
@@ -100,6 +100,7 @@ Keyboard-navigable menu. Supports single/multiple selection, highlight or checkm
|
|
|
100
100
|
|
|
101
101
|
| Part | Description |
|
|
102
102
|
|------|-------------|
|
|
103
|
+
| `base` | Outer menu box (on `u-menu` itself; the rows below are `u-menu-item` parts) |
|
|
103
104
|
| `header` | Item header row |
|
|
104
105
|
| `content` | Label content area |
|
|
105
106
|
| `submenu` | Inline sub-menu wrapper |
|
|
@@ -57,6 +57,9 @@ Selectable option item. Used inside `u-select`, `u-radio`, and `u-input` (combob
|
|
|
57
57
|
|
|
58
58
|
| Part | Description |
|
|
59
59
|
|------|-------------|
|
|
60
|
+
| `base` | Outer option box |
|
|
61
|
+
| `radio-marker` | Single-select marker |
|
|
62
|
+
| `check-marker` | Multi-select marker |
|
|
60
63
|
| `content` | Main content wrapper |
|
|
61
64
|
|
|
62
65
|
## CSS Custom Properties
|
|
@@ -45,6 +45,7 @@ For interactive chips (selectable/removable), use [`u-chip`](./chip.md) instead.
|
|
|
45
45
|
|
|
46
46
|
| Part | Description |
|
|
47
47
|
|------|-------------|
|
|
48
|
+
| `base` | Outer tag box |
|
|
48
49
|
| `content` | Inner content wrapper |
|
|
49
50
|
| `icon` | Status icon (rendered only with `icon` + a semantic `color`) |
|
|
50
51
|
|
|
@@ -60,6 +60,12 @@ Inherits all `UFloatingElement` properties (see [floating.md](../extensions/floa
|
|
|
60
60
|
> *within* whichever side ended up being used. Neither can be turned off independently.
|
|
61
61
|
|
|
62
62
|
|
|
63
|
+
## CSS Parts
|
|
64
|
+
|
|
65
|
+
| Part | Description |
|
|
66
|
+
|------|-------------|
|
|
67
|
+
| `base` | Outer tooltip box |
|
|
68
|
+
|
|
63
69
|
## Events
|
|
64
70
|
|
|
65
71
|
| Event | Cancelable | Description |
|