@iyulab/modern-app 0.3.0 → 0.3.2

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 CHANGED
@@ -1,5 +1,48 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.2 (2026-04-01)
4
+
5
+ ### Breaking Changes
6
+ - **`@iyulab/components` major upgrade**: `^0.4.0` → `^1.0.0`
7
+ - `Notifier` → `Toast` API migration
8
+ - `AlertType` → `AlertStatus`, `ScreenPosition` → `ToastPosition` type rename
9
+ - `IconRegistry` import path: `utilities/IconRegistry.js` → `utilities/icons.js`
10
+ - Component import style: `.component.js` → side-effect import (`UIcon.js`, `UButton.js`, etc.)
11
+
12
+ ### Refactor
13
+ - **Component registration migration**: Removed `static dependencies` pattern → `@customElement` decorator + side-effect import
14
+ - **Simplified Toast API**: Removed `private notify()` method from `App` class, each notification method now calls `Toast.notice()`, etc. directly
15
+
16
+ ### Fixes
17
+ - Changed `updated()` → `willUpdate()` in `SidebarLayout` to resolve update-in-update anti-pattern
18
+ - Switched `SidebarLayout` icon library from inline `sidebar-app` to `bootstrap`, removed inline SVG registration code
19
+
20
+ ### Dependencies
21
+ - `@iyulab/components` ^0.4.0 → ^1.0.0
22
+ - `i18next` ^25.8.13 → ^25.10.10
23
+ - `vite` ^7.3.1 → ^8.0.3
24
+ - `@types/node` ^25.3.2 → ^25.5.0
25
+
26
+ ## 0.3.1 (2026-03-05)
27
+
28
+ ### Breaking Changes
29
+ - **Slot-based Outlet structure**: Replaced `<u-outlet>` inside `SidebarLayout` with `<slot>`, and moved `<u-outlet>` to Light DOM in `App`. This allows external CSS to apply correctly during React routing
30
+
31
+ ### Changes
32
+ - **BaseElement → UElement migration**: Changed base class of all components from `BaseElement` to `UElement`
33
+ - **SidebarLinkConfig**: Changed `type` property from optional to required
34
+ - **Fixed import paths**: Corrected casing for `Theme.js`, `Notifier.js`, etc.
35
+
36
+ ### Fixes
37
+ - Removed duplicate `color` property in `SidebarButton.styles.ts`
38
+ - Cleaned up unused callback parameters in `repeat` directive
39
+
40
+ ### Dependencies
41
+ - `@iyulab/components` ^0.2.0 → ^0.4.0
42
+ - `@iyulab/router` ^0.6.2 → ^0.7.2
43
+ - `i18next` ^25.8.0 → ^25.8.13
44
+ - `@types/node` ^25.0.9 → ^25.3.2
45
+
3
46
  ## 0.3.0 (2026-01-21)
4
47
 
5
48
  ### Breaking Changes
package/README.md CHANGED
@@ -10,6 +10,24 @@ For complete examples and documentation, visit our demo site: [https://modern-ap
10
10
  npm install @iyulab/modern-app
11
11
  ```
12
12
 
13
+ ## Architecture
14
+
15
+ `@iyulab/modern-app` is a **client-side SPA framework** built on Lit Element. It is designed for:
16
+
17
+ ✅ **Suitable for:**
18
+ - Single Page Applications (SPA)
19
+ - Admin dashboards and internal tools
20
+ - Progressive Web Apps (PWA)
21
+ - Projects where SEO is not a primary concern
22
+
23
+ ❌ **Not suitable for:**
24
+ - Server-Side Rendering (SSR) frameworks (Next.js, Nuxt, SvelteKit, etc.)
25
+ - Static Site Generation (SSG)
26
+ - SEO-critical public-facing pages
27
+ - Projects requiring initial HTML content for search engines
28
+
29
+ This is by design — Lit components render on the client side. If you need SSR capabilities, consider using Lit's experimental SSR support separately or choose a framework designed for SSR from the start.
30
+
13
31
  ## Quick Start
14
32
 
15
33
  ```typescript
package/dist/App.d.ts CHANGED
@@ -41,8 +41,6 @@ declare class App {
41
41
  success(message: string, options?: NotificationOptions): Promise<void>;
42
42
  /** 에러 메시지 */
43
43
  error(message: string, options?: NotificationOptions): Promise<void>;
44
- /** 알림 표시 */
45
- private notify;
46
44
  /** 레이아웃 생성 */
47
45
  private createLayout;
48
46
  }
package/dist/App.js CHANGED
@@ -1,106 +1,77 @@
1
- import r from "i18next";
2
- import { Router as u } from "@iyulab/router";
3
- import { setDefaultBaseUrl as h } from "@iyulab/components/dist/utilities/IconRegistry.js";
4
- import { Theme as s } from "@iyulab/components/dist/utilities/Theme.js";
5
- import { Notifier as y } from "@iyulab/components/dist/utilities/Notifier.js";
6
- import { ScreenObserver as c } from "./internals/ScreenObserver.js";
7
- class o {
8
- // private 생성자로 외부에서 인스턴스 생성 방지
9
- constructor() {
10
- }
11
- /** 싱글톤 인스턴스 반환 */
12
- static get instance() {
13
- return o._instance || (o._instance = new o()), o._instance;
14
- }
15
- /** 현재 앱 설정 반환 */
16
- get config() {
17
- return this._config;
18
- }
19
- /** 라우터 인스턴스 반환 */
20
- get router() {
21
- return this._router;
22
- }
23
- /** 화면 크기 반환 */
24
- get screen() {
25
- return this._screen?.get();
26
- }
27
- /** 스타일 테마 관리 유틸리티 객체 반환 */
28
- get theme() {
29
- return s;
30
- }
31
- /** 다국어 로컬라이저(i18next) 반환 */
32
- get i18n() {
33
- return r;
34
- }
35
- /** 로드 초기화 */
36
- async load(t) {
37
- if (this.unload(), this._config = t, await s.init(t.theme), t.iconBasepath && h(t.iconBasepath), t.i18n) {
38
- for (const i of t.i18n.plugins || [])
39
- r.use(i);
40
- await r.init(t.i18n);
41
- }
42
- const e = t.root || document.body;
43
- this._layout = await this.createLayout(e, t.layout), this._screen = new c({
44
- element: e,
45
- breakpoints: t.layout.breakpoints || [768, 1024]
46
- }), this._router = new u({
47
- root: this._layout,
48
- basepath: t.basepath,
49
- routes: t.routes,
50
- fallback: t.fallback
51
- });
52
- }
53
- /** 앱 언로드 */
54
- unload() {
55
- this._screen && (this._screen.destroy(), this._screen = void 0), this._layout && (this._layout.remove(), this._layout = void 0), this._router && (this._router.destroy(), this._router = void 0), this._config && (this._config = void 0);
56
- }
57
- /** 페이지 이동 */
58
- navigate(t) {
59
- this._router?.go(t);
60
- }
61
- /** 공지 메시지 */
62
- async notice(t, e) {
63
- await this.notify("notice", t, e);
64
- }
65
- /** 정보 메시지 */
66
- async info(t, e) {
67
- await this.notify("info", t, e);
68
- }
69
- /** 경고 메시지 */
70
- async warning(t, e) {
71
- await this.notify("warning", t, e);
72
- }
73
- /** 성공 메시지 */
74
- async success(t, e) {
75
- await this.notify("success", t, e);
76
- }
77
- /** 에러 메시지 */
78
- async error(t, e) {
79
- await this.notify("error", t, e);
80
- }
81
- /** 알림 표시 */
82
- async notify(t, e, i) {
83
- await y.toast({
84
- type: t,
85
- content: e,
86
- heading: i?.title,
87
- duration: i?.duration || 3e3,
88
- position: i?.position || "top-right"
89
- });
90
- }
91
- /** 레이아웃 생성 */
92
- async createLayout(t, e) {
93
- t === document.body && (document.body.style.margin = "0", document.body.style.width = "100vw", document.body.style.height = "100vh");
94
- let i;
95
- if (e.type === "sidebar") {
96
- const { SidebarLayout: n } = await import("./layouts/SidebarLayout.js"), a = new n();
97
- a.config = e, i = a;
98
- } else
99
- throw new Error(`Unsupported layout type: ${e.type}`);
100
- return t.appendChild(i), "updateComplete" in i && await i.updateComplete, i;
101
- }
102
- }
103
- const _ = o.instance;
104
- export {
105
- _ as app
106
- };
1
+ import { ScreenObserver as e } from "./internals/ScreenObserver.js";
2
+ import t from "i18next";
3
+ import { Router as n } from "@iyulab/router";
4
+ import { setDefaultBaseUrl as r } from "@iyulab/components/dist/utilities/icons.js";
5
+ import { Theme as i } from "@iyulab/components/dist/utilities/Theme.js";
6
+ import { Toast as a } from "@iyulab/components/dist/utilities/Toast.js";
7
+ var o = class o {
8
+ constructor() {}
9
+ static get instance() {
10
+ return o._instance ||= new o(), o._instance;
11
+ }
12
+ get config() {
13
+ return this._config;
14
+ }
15
+ get router() {
16
+ return this._router;
17
+ }
18
+ get screen() {
19
+ return this._screen?.get();
20
+ }
21
+ get theme() {
22
+ return i;
23
+ }
24
+ get i18n() {
25
+ return t;
26
+ }
27
+ async load(a) {
28
+ if (this.unload(), this._config = a, await i.init(a.theme), a.iconBasepath && r(a.iconBasepath), a.i18n) {
29
+ for (let e of a.i18n.plugins || []) t.use(e);
30
+ await t.init(a.i18n);
31
+ }
32
+ let o = a.root || document.body;
33
+ this._layout = await this.createLayout(o, a.layout), this._screen = new e({
34
+ element: o,
35
+ breakpoints: a.layout.breakpoints || [768, 1024]
36
+ });
37
+ let s = document.createElement("u-outlet");
38
+ this._layout.appendChild(s), this._router = new n({
39
+ root: this._layout,
40
+ basepath: a.basepath,
41
+ routes: a.routes,
42
+ fallback: a.fallback
43
+ });
44
+ }
45
+ unload() {
46
+ this._screen &&= (this._screen.destroy(), void 0), this._layout &&= (this._layout.remove(), void 0), this._router &&= (this._router.destroy(), void 0), this._config &&= void 0;
47
+ }
48
+ navigate(e) {
49
+ this._router?.go(e);
50
+ }
51
+ async notice(e, t) {
52
+ await a.notice(e, { ...t });
53
+ }
54
+ async info(e, t) {
55
+ await a.info(e, { ...t });
56
+ }
57
+ async warning(e, t) {
58
+ await a.warning(e, { ...t });
59
+ }
60
+ async success(e, t) {
61
+ await a.success(e, { ...t });
62
+ }
63
+ async error(e, t) {
64
+ await a.error(e, { ...t });
65
+ }
66
+ async createLayout(e, t) {
67
+ e === document.body && (document.body.style.margin = "0", document.body.style.width = "100vw", document.body.style.height = "100vh");
68
+ let n;
69
+ if (t.type === "sidebar") {
70
+ let { SidebarLayout: e } = await import("./layouts/SidebarLayout.js"), r = new e();
71
+ r.config = t, n = r;
72
+ } else throw Error(`Unsupported layout type: ${t.type}`);
73
+ return e.appendChild(n), "updateComplete" in n && await n.updateComplete, n;
74
+ }
75
+ }.instance;
76
+ //#endregion
77
+ export { o as app };
@@ -0,0 +1,9 @@
1
+ //#region \0@oxc-project+runtime@0.122.0/helpers/decorate.js
2
+ function e(e, t, n, r) {
3
+ var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
4
+ if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
5
+ else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
6
+ return i > 3 && a && Object.defineProperty(t, n, a), a;
7
+ }
8
+ //#endregion
9
+ export { e as __decorate };
@@ -0,0 +1,6 @@
1
+ //#region \0@oxc-project+runtime@0.122.0/helpers/decorateMetadata.js
2
+ function e(e, t) {
3
+ if (typeof Reflect == "object" && typeof Reflect.metadata == "function") return Reflect.metadata(e, t);
4
+ }
5
+ //#endregion
6
+ export { e as __decorateMetadata };
@@ -1,5 +1,4 @@
1
1
  import { DirectiveResult } from 'lit/directive.js';
2
- import { BaseElement } from '@iyulab/components/dist/components/BaseElement.js';
3
2
  import { StyledElement, StyleMap } from '../internals/StyledElement.js';
4
3
  /** 버튼 항목 부분 */
5
4
  type ElementParts = 'host' | 'base' | 'icon' | 'label';
@@ -16,7 +15,6 @@ export interface SidebarButtonConfig {
16
15
  */
17
16
  export declare class SidebarButton extends StyledElement<ElementParts> {
18
17
  static styles: import('lit').CSSResultGroup[];
19
- static dependencies: Record<string, typeof BaseElement>;
20
18
  /** 콤팩트 모드 여부 */
21
19
  compact: boolean;
22
20
  /** 기본 u-icon 경로의 아이콘 이름 */
@@ -1,27 +1,20 @@
1
- import { html as c } from "lit";
2
- import { property as o } from "lit/decorators.js";
3
- import { UIcon as l } from "@iyulab/components/dist/components/icon/UIcon.component.js";
4
- import { StyledElement as m } from "../internals/StyledElement.js";
5
- import { styles as u } from "./SidebarButton.styles.js";
6
- var d = Object.defineProperty, p = (e, n, s, f) => {
7
- for (var t = void 0, r = e.length - 1, a; r >= 0; r--)
8
- (a = e[r]) && (t = a(n, s, t) || t);
9
- return t && d(n, s, t), t;
10
- };
11
- class i extends m {
12
- constructor() {
13
- super(...arguments), this.compact = !1;
14
- }
15
- static {
16
- this.styles = [super.styles, u];
17
- }
18
- static {
19
- this.dependencies = {
20
- "u-icon": l
21
- };
22
- }
23
- render() {
24
- return c`
1
+ import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorateMetadata.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
3
+ import { StyledElement as n } from "../internals/StyledElement.js";
4
+ import { styles as r } from "./SidebarButton.styles.js";
5
+ import { html as i } from "lit";
6
+ import { customElement as a, property as o } from "lit/decorators.js";
7
+ import "@iyulab/components/dist/components/icon/UIcon.js";
8
+ //#region src/components/SidebarButton.ts
9
+ var s = class extends n {
10
+ constructor(...e) {
11
+ super(...e), this.compact = !1;
12
+ }
13
+ static {
14
+ this.styles = [super.styles, r];
15
+ }
16
+ render() {
17
+ return i`
25
18
  <button part="base" ?compact=${this.compact}>
26
19
  <u-icon part="icon" ?hidden=${!this.icon}
27
20
  .name=${this.icon}
@@ -31,17 +24,10 @@ class i extends m {
31
24
  </span>
32
25
  </button>
33
26
  `;
34
- }
35
- }
36
- p([
37
- o({ type: Boolean, reflect: !0 })
38
- ], i.prototype, "compact");
39
- p([
40
- o({ type: String })
41
- ], i.prototype, "icon");
42
- p([
43
- o({ type: String })
44
- ], i.prototype, "label");
45
- export {
46
- i as SidebarButton
27
+ }
47
28
  };
29
+ t([o({
30
+ type: Boolean,
31
+ reflect: !0
32
+ }), e("design:type", Object)], s.prototype, "compact", void 0), t([o({ type: String }), e("design:type", String)], s.prototype, "icon", void 0), t([o({ type: String }), e("design:type", Object)], s.prototype, "label", void 0), s = t([a("sidebar-button")], s);
33
+ //#endregion
@@ -1,10 +1,10 @@
1
- import { css as o } from "lit";
2
- const r = o`
1
+ import { css as e } from "lit";
2
+ //#region src/components/SidebarButton.styles.ts
3
+ var t = e`
3
4
  :host {
4
5
  display: block;
5
6
  width: 100%;
6
7
  color: var(--u-txt-color);
7
- color: var(--u-neutral-800);
8
8
  background-color: transparent;
9
9
  border: none;
10
10
  border-radius: 8px;
@@ -55,6 +55,5 @@ const r = o`
55
55
  text-overflow: ellipsis;
56
56
  }
57
57
  `;
58
- export {
59
- r as styles
60
- };
58
+ //#endregion
59
+ export { t as styles };
@@ -1,5 +1,4 @@
1
1
  import { DirectiveResult } from 'lit/directive.js';
2
- import { BaseElement } from '@iyulab/components/dist/components/BaseElement.js';
3
2
  import { StyledElement, StyleMap } from '../internals/StyledElement.js';
4
3
  import { SidebarLinkConfig } from './SidebarLink.js';
5
4
  type ElementParts = 'host' | 'header' | 'icon' | 'label' | 'caret' | 'items';
@@ -18,7 +17,6 @@ export interface SidebarGroupConfig {
18
17
  */
19
18
  export declare class SidebarGroup extends StyledElement<ElementParts> {
20
19
  static styles: import('lit').CSSResultGroup[];
21
- static dependencies: Record<string, typeof BaseElement>;
22
20
  /** 콤팩트 모드 여부 */
23
21
  compact: boolean;
24
22
  /** 선택된 상태 */
@@ -1,30 +1,23 @@
1
- import { html as p } from "lit";
2
- import { property as e } from "lit/decorators.js";
3
- import { UIcon as d } from "@iyulab/components/dist/components/icon/UIcon.component.js";
4
- import { StyledElement as h } from "../internals/StyledElement.js";
5
- import { SidebarLink as m } from "./SidebarLink.js";
6
- import { styles as u } from "./SidebarGroup.styles.js";
7
- var f = Object.defineProperty, o = (i, l, c, a) => {
8
- for (var t = void 0, r = i.length - 1, n; r >= 0; r--)
9
- (n = i[r]) && (t = n(l, c, t) || t);
10
- return t && f(l, c, t), t;
11
- };
12
- class s extends h {
13
- constructor() {
14
- super(...arguments), this.compact = !1, this.selected = !1, this.collapsed = !0, this.handleButtonClick = (l) => {
15
- this.compact ? this.shadowRoot?.querySelector("slot")?.assignedElements({ flatten: !0 }).find((t) => t instanceof m)?.renderRoot.querySelector("u-link")?.click() : this.collapsed = !this.collapsed;
16
- };
17
- }
18
- static {
19
- this.styles = [super.styles, u];
20
- }
21
- static {
22
- this.dependencies = {
23
- "u-icon": d
24
- };
25
- }
26
- render() {
27
- return p`
1
+ import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorateMetadata.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
3
+ import { StyledElement as n } from "../internals/StyledElement.js";
4
+ import { SidebarLink as r } from "./SidebarLink.js";
5
+ import { styles as i } from "./SidebarGroup.styles.js";
6
+ import { html as a } from "lit";
7
+ import { customElement as o, property as s } from "lit/decorators.js";
8
+ import "@iyulab/components/dist/components/icon/UIcon.js";
9
+ //#region src/components/SidebarGroup.ts
10
+ var c = class extends n {
11
+ constructor(...e) {
12
+ super(...e), this.compact = !1, this.selected = !1, this.collapsed = !0, this.handleButtonClick = (e) => {
13
+ this.compact ? ((this.shadowRoot?.querySelector("slot")?.assignedElements({ flatten: !0 }).find((e) => e instanceof r))?.renderRoot.querySelector("u-link"))?.click() : this.collapsed = !this.collapsed;
14
+ };
15
+ }
16
+ static {
17
+ this.styles = [super.styles, i];
18
+ }
19
+ render() {
20
+ return a`
28
21
  <button part="header"
29
22
  ?compact=${this.compact}
30
23
  ?selected=${this.selected}
@@ -47,23 +40,16 @@ class s extends h {
47
40
  <slot></slot>
48
41
  </div>
49
42
  `;
50
- }
51
- }
52
- o([
53
- e({ type: Boolean, reflect: !0 })
54
- ], s.prototype, "compact");
55
- o([
56
- e({ type: Boolean, reflect: !0 })
57
- ], s.prototype, "selected");
58
- o([
59
- e({ type: Boolean, reflect: !0 })
60
- ], s.prototype, "collapsed");
61
- o([
62
- e({ type: String })
63
- ], s.prototype, "icon");
64
- o([
65
- e({ type: String })
66
- ], s.prototype, "label");
67
- export {
68
- s as SidebarGroup
43
+ }
69
44
  };
45
+ t([s({
46
+ type: Boolean,
47
+ reflect: !0
48
+ }), e("design:type", Boolean)], c.prototype, "compact", void 0), t([s({
49
+ type: Boolean,
50
+ reflect: !0
51
+ }), e("design:type", Boolean)], c.prototype, "selected", void 0), t([s({
52
+ type: Boolean,
53
+ reflect: !0
54
+ }), e("design:type", Boolean)], c.prototype, "collapsed", void 0), t([s({ type: String }), e("design:type", String)], c.prototype, "icon", void 0), t([s({ type: String }), e("design:type", Object)], c.prototype, "label", void 0), c = t([o("sidebar-group")], c);
55
+ //#endregion
@@ -1,5 +1,6 @@
1
- import { css as o } from "lit";
2
- const t = o`
1
+ import { css as e } from "lit";
2
+ //#region src/components/SidebarGroup.styles.ts
3
+ var t = e`
3
4
  :host {
4
5
  display: flex;
5
6
  flex-direction: column;
@@ -83,6 +84,5 @@ const t = o`
83
84
  opacity: 0;
84
85
  }
85
86
  `;
86
- export {
87
- t as styles
88
- };
87
+ //#endregion
88
+ export { t as styles };
@@ -1,10 +1,9 @@
1
1
  import { DirectiveResult } from 'lit/directive.js';
2
- import { BaseElement } from '@iyulab/components/dist/components/BaseElement.js';
3
2
  import { StyledElement, StyleMap } from '../internals/StyledElement.js';
4
3
  type ElementParts = 'host' | 'base' | 'icon' | 'label';
5
4
  /** 링크 항목 디폴트 타입 */
6
5
  export interface SidebarLinkConfig {
7
- type?: 'link';
6
+ type: 'link';
8
7
  icon?: string;
9
8
  label: string | DirectiveResult;
10
9
  href: string;
@@ -17,7 +16,6 @@ export interface SidebarLinkConfig {
17
16
  */
18
17
  export declare class SidebarLink extends StyledElement<ElementParts> {
19
18
  static styles: import('lit').CSSResultGroup[];
20
- static dependencies: Record<string, typeof BaseElement>;
21
19
  /** selected 상태 */
22
20
  selected: boolean;
23
21
  /** 콤팩트 모드 여부 */
@@ -1,27 +1,20 @@
1
- import { html as c } from "lit";
2
- import { property as e } from "lit/decorators.js";
3
- import { UIcon as l } from "@iyulab/components/dist/components/icon/UIcon.component.js";
4
- import { StyledElement as m } from "../internals/StyledElement.js";
5
- import { styles as d } from "./SidebarLink.styles.js";
6
- var h = Object.defineProperty, r = (p, n, s, y) => {
7
- for (var t = void 0, i = p.length - 1, a; i >= 0; i--)
8
- (a = p[i]) && (t = a(n, s, t) || t);
9
- return t && h(n, s, t), t;
10
- };
11
- class o extends m {
12
- constructor() {
13
- super(...arguments), this.selected = !1, this.compact = !1;
14
- }
15
- static {
16
- this.styles = [super.styles, d];
17
- }
18
- static {
19
- this.dependencies = {
20
- "u-icon": l
21
- };
22
- }
23
- render() {
24
- return c`
1
+ import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorateMetadata.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
3
+ import { StyledElement as n } from "../internals/StyledElement.js";
4
+ import { styles as r } from "./SidebarLink.styles.js";
5
+ import { html as i } from "lit";
6
+ import { customElement as a, property as o } from "lit/decorators.js";
7
+ import "@iyulab/components/dist/components/icon/UIcon.js";
8
+ //#region src/components/SidebarLink.ts
9
+ var s = class extends n {
10
+ constructor(...e) {
11
+ super(...e), this.selected = !1, this.compact = !1;
12
+ }
13
+ static {
14
+ this.styles = [super.styles, r];
15
+ }
16
+ render() {
17
+ return i`
25
18
  <u-link .href=${this.href || "#"}>
26
19
  <div class="container" part="base" ?compact=${this.compact}>
27
20
  <u-icon part="icon" ?hidden=${!this.icon}
@@ -33,26 +26,11 @@ class o extends m {
33
26
  </div>
34
27
  </u-link>
35
28
  `;
36
- }
37
- }
38
- r([
39
- e({ type: Boolean, reflect: !0 })
40
- ], o.prototype, "selected");
41
- r([
42
- e({ type: Boolean })
43
- ], o.prototype, "compact");
44
- r([
45
- e({ type: String })
46
- ], o.prototype, "icon");
47
- r([
48
- e({ type: String })
49
- ], o.prototype, "label");
50
- r([
51
- e({ type: String })
52
- ], o.prototype, "href");
53
- r([
54
- e({ type: String })
55
- ], o.prototype, "pattern");
56
- export {
57
- o as SidebarLink
29
+ }
58
30
  };
31
+ t([o({
32
+ type: Boolean,
33
+ reflect: !0
34
+ }), e("design:type", Object)], s.prototype, "selected", void 0), t([o({ type: Boolean }), e("design:type", Object)], s.prototype, "compact", void 0), t([o({ type: String }), e("design:type", String)], s.prototype, "icon", void 0), t([o({ type: String }), e("design:type", Object)], s.prototype, "label", void 0), t([o({ type: String }), e("design:type", String)], s.prototype, "href", void 0), t([o({ type: String }), e("design:type", Object)], s.prototype, "pattern", void 0), s = t([a("sidebar-link")], s);
35
+ //#endregion
36
+ export { s as SidebarLink };
@@ -1,5 +1,6 @@
1
- import { css as o } from "lit";
2
- const e = o`
1
+ import { css as e } from "lit";
2
+ //#region src/components/SidebarLink.styles.ts
3
+ var t = e`
3
4
  :host {
4
5
  display: block;
5
6
  color: var(--u-neutral-800);
@@ -53,6 +54,5 @@ const e = o`
53
54
  text-overflow: ellipsis;
54
55
  }
55
56
  `;
56
- export {
57
- e as styles
58
- };
57
+ //#endregion
58
+ export { t as styles };
@@ -1,5 +1,4 @@
1
1
  import { DirectiveResult } from 'lit/directive.js';
2
- import { BaseElement } from '@iyulab/components/dist/components/BaseElement.js';
3
2
  import { StyledElement, StyleMap } from '../internals/StyledElement.js';
4
3
  import { SidebarLinkConfig } from './SidebarLink.js';
5
4
  import { SidebarGroupConfig } from './SidebarGroup.js';
@@ -17,7 +16,6 @@ export interface SidebarSectionConfig {
17
16
  */
18
17
  export declare class SidebarSection extends StyledElement<ElementParts> {
19
18
  static styles: import('lit').CSSResultGroup[];
20
- static dependencies: Record<string, typeof BaseElement>;
21
19
  /** 콤팩트 모드 여부 */
22
20
  compact: boolean;
23
21
  /** 네비게이션 아이템 데이터 */