@iyulab/modern-app 0.3.4 → 0.3.6
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 +89 -83
- package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.130.0}/helpers/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.130.0}/helpers/decorateMetadata.js +1 -1
- package/dist/components/SidebarButton.js +2 -2
- package/dist/components/SidebarGroup.js +2 -2
- package/dist/components/SidebarLink.js +2 -2
- package/dist/components/SidebarSection.js +2 -2
- package/dist/internals/StyledElement.js +2 -2
- package/dist/layouts/SidebarLayout.d.ts +2 -0
- package/dist/layouts/SidebarLayout.js +31 -4
- package/dist/layouts/SidebarLayout.styles.js +1 -0
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,107 +1,113 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.3.
|
|
3
|
+
## [0.3.5] - 2026-04-07
|
|
4
4
|
|
|
5
|
-
###
|
|
6
|
-
-
|
|
7
|
-
- Progress bar shows error state (red) on `route-error` and auto-dismisses
|
|
5
|
+
### Changed
|
|
6
|
+
- Updated dependencies: `@iyulab/components` ^1.0.1 → ^1.0.3, `@iyulab/router` ^0.7.4 → ^0.9.1
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
- Added `docs/` topic guides and `skills/modern-app/` agent skill package
|
|
11
|
-
- Rewrote `README.md` with accurate API and links to docs/skills
|
|
8
|
+
## [0.3.4] - 2026-04-01
|
|
12
9
|
|
|
13
|
-
|
|
10
|
+
### Added
|
|
11
|
+
- Progress bar fade-in/out with CSS transition tied to `route-begin` and `route-done` events
|
|
12
|
+
- Progress bar error state (red) on `route-error` with auto-dismiss
|
|
13
|
+
- `docs/` topic guides and `skills/modern-app/` agent skill package
|
|
14
14
|
|
|
15
|
-
###
|
|
16
|
-
-
|
|
15
|
+
### Changed
|
|
16
|
+
- Rewrote `README.md` with accurate API references and links to docs and skills
|
|
17
17
|
|
|
18
|
-
## 0.3.
|
|
18
|
+
## [0.3.3] - 2026-04-01
|
|
19
19
|
|
|
20
|
-
###
|
|
21
|
-
-
|
|
20
|
+
### Fixed
|
|
21
|
+
- Fixed missing `u-` prefix in `customElement` registration for `SidebarButton`, `SidebarGroup`, `SidebarLink`, and `SidebarSection` — components were referenced as `u-sidebar-*` in templates but registered as `sidebar-*`, causing them not to render
|
|
22
|
+
|
|
23
|
+
## [0.3.2] - 2026-04-01
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- **Breaking:** Upgraded `@iyulab/components` from `^0.4.0` to `^1.0.0`:
|
|
22
27
|
- `Notifier` → `Toast` API migration
|
|
23
|
-
- `AlertType` → `AlertStatus`, `ScreenPosition` → `ToastPosition` type
|
|
28
|
+
- `AlertType` → `AlertStatus`, `ScreenPosition` → `ToastPosition` type renames
|
|
24
29
|
- `IconRegistry` import path: `utilities/IconRegistry.js` → `utilities/icons.js`
|
|
25
|
-
- Component import style: `.component.js` → side-effect import (`UIcon.js`, `UButton.js
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
- **Simplified Toast API**: Removed `private notify()` method from `App` class, each notification method now calls `Toast.notice()`, etc. directly
|
|
30
|
+
- Component import style: `.component.js` → side-effect import (e.g. `UIcon.js`, `UButton.js`)
|
|
31
|
+
- Removed `static dependencies` pattern — switched to `@customElement` decorator with side-effect imports
|
|
32
|
+
- Simplified Toast API: each notification method now calls `Toast.notice()` etc. directly; removed private `notify()` from `App` class
|
|
33
|
+
- Updated dependencies: `i18next` ^25.8.13 → ^25.10.10, `vite` ^7.3.1 → ^8.0.3, `@types/node` ^25.3.2 → ^25.5.0
|
|
30
34
|
|
|
31
|
-
###
|
|
35
|
+
### Fixed
|
|
32
36
|
- Changed `updated()` → `willUpdate()` in `SidebarLayout` to resolve update-in-update anti-pattern
|
|
33
|
-
- Switched `SidebarLayout` icon library from inline `sidebar-app` to `bootstrap
|
|
34
|
-
|
|
35
|
-
### Dependencies
|
|
36
|
-
- `@iyulab/components` ^0.4.0 → ^1.0.0
|
|
37
|
-
- `i18next` ^25.8.13 → ^25.10.10
|
|
38
|
-
- `vite` ^7.3.1 → ^8.0.3
|
|
39
|
-
- `@types/node` ^25.3.2 → ^25.5.0
|
|
40
|
-
|
|
41
|
-
## 0.3.1 (2026-03-05)
|
|
37
|
+
- Switched `SidebarLayout` icon library from inline `sidebar-app` to `bootstrap`; removed inline SVG registration
|
|
42
38
|
|
|
43
|
-
|
|
44
|
-
- **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
|
|
39
|
+
## [0.3.1] - 2026-03-05
|
|
45
40
|
|
|
46
|
-
###
|
|
47
|
-
- **
|
|
48
|
-
-
|
|
49
|
-
-
|
|
41
|
+
### Changed
|
|
42
|
+
- **Breaking:** Replaced `<u-outlet>` inside `SidebarLayout` with `<slot>`; moved `<u-outlet>` to Light DOM in `App` to allow external CSS during React routing
|
|
43
|
+
- Migrated base class of all components from `BaseElement` to `UElement`
|
|
44
|
+
- `SidebarLinkConfig.type` changed from optional to required
|
|
45
|
+
- Corrected import path casing for `Theme.js`, `Notifier.js`, etc.
|
|
46
|
+
- Updated dependencies: `@iyulab/components` ^0.2.0 → ^0.4.0, `@iyulab/router` ^0.6.2 → ^0.7.2, `i18next` ^25.8.0 → ^25.8.13, `@types/node` ^25.0.9 → ^25.3.2
|
|
50
47
|
|
|
51
|
-
###
|
|
48
|
+
### Fixed
|
|
52
49
|
- Removed duplicate `color` property in `SidebarButton.styles.ts`
|
|
53
50
|
- Cleaned up unused callback parameters in `repeat` directive
|
|
54
51
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- `
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
###
|
|
64
|
-
- **
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- Removed `
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
###
|
|
78
|
-
- Improved responsive behavior with screen size observer
|
|
79
|
-
- Added route context tracking and active link highlighting
|
|
80
|
-
- Improved color scheme and typography
|
|
81
|
-
- Enhanced transition animations
|
|
82
|
-
- Cleaner layout spacing and gaps
|
|
83
|
-
- Improved event handling for route changes and screen resizing
|
|
84
|
-
- Enhanced pattern matching for active link detection
|
|
85
|
-
|
|
86
|
-
## 0.2.5 (2026-01-06)
|
|
52
|
+
## [0.3.0] - 2026-01-21
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
- Mobile layout support with new states (`mobile`, `mobile-open`) and dedicated mobile header
|
|
56
|
+
- Route context tracking and active link highlighting
|
|
57
|
+
- `ScreenObserver` class replacing MobX observables for responsive behavior
|
|
58
|
+
- `title` and `iconBasepath` properties in app configuration
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
- **Breaking:** `localization` config option renamed to `i18n`
|
|
62
|
+
- **Breaking:** `layout.menu` renamed to `layout.main`
|
|
63
|
+
- **Breaking:** `logo` type changed to string (icon name)
|
|
64
|
+
- Type definitions moved from `AppTypes.ts` to their respective modules
|
|
65
|
+
- Improved color scheme, typography, transition animations, layout spacing, and event handling
|
|
66
|
+
|
|
67
|
+
### Removed
|
|
68
|
+
- Removed `SidebarLogo` component — logo now rendered via `u-icon`
|
|
69
|
+
- Removed `observables.ts` (replaced by `ScreenObserver`)
|
|
70
|
+
- Removed `AppTypes.ts`
|
|
71
|
+
|
|
72
|
+
## [0.2.5] - 2026-01-06
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
87
75
|
- Updated `@iyulab/components` to v0.1.11
|
|
88
76
|
|
|
89
|
-
## 0.2.4
|
|
90
|
-
|
|
77
|
+
## [0.2.4] - 2025-12-19
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
- Fixed case-sensitive import paths
|
|
81
|
+
|
|
82
|
+
## [0.2.3] - 2025-12-19
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- `root` option in `AppConfig` to set the application root element
|
|
86
|
+
|
|
87
|
+
### Changed
|
|
88
|
+
- Updated `@iyulab/components` to v0.1.10
|
|
89
|
+
|
|
90
|
+
## [0.2.2] - 2025-11-17
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
- `fallback` config option in `AppConfig`
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
- Improved `route-progress` handling in layout component
|
|
97
|
+
|
|
98
|
+
## [0.2.1] - 2025-11-13
|
|
99
|
+
|
|
100
|
+
### Changed
|
|
101
|
+
- `progress` property changed from a value to a function on the `app` instance
|
|
102
|
+
- `locales` option renamed to `localization` in `AppConfig`
|
|
91
103
|
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
- update `@iyulab/components` to v0.1.10
|
|
104
|
+
### Fixed
|
|
105
|
+
- Fixed component and sidebar style issues
|
|
95
106
|
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
- improved route-progress handling in layout component
|
|
107
|
+
### Removed
|
|
108
|
+
- Removed `theme` setter property from `app` instance
|
|
99
109
|
|
|
100
|
-
## 0.2.
|
|
101
|
-
- Fixed few component and sidebar styles
|
|
102
|
-
- removed `theme` setter property in `app` instance
|
|
103
|
-
- changed `progress` property to function in `app` instance
|
|
104
|
-
- changed name `locales` option to `localization` option in `AppConfig` type
|
|
110
|
+
## [0.2.0] - 2025-11-12
|
|
105
111
|
|
|
106
|
-
|
|
107
|
-
- Initial
|
|
112
|
+
### Added
|
|
113
|
+
- Initial release
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.
|
|
1
|
+
//#region \0@oxc-project+runtime@0.130.0/helpers/decorate.js
|
|
2
2
|
function e(e, t, n, r) {
|
|
3
3
|
var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
|
|
4
4
|
if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
|
|
2
|
+
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
|
|
3
3
|
import { StyledElement as n } from "../internals/StyledElement.js";
|
|
4
4
|
import { styles as r } from "./SidebarButton.styles.js";
|
|
5
5
|
import { html as i } from "lit";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
|
|
2
|
+
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
|
|
3
3
|
import { StyledElement as n } from "../internals/StyledElement.js";
|
|
4
4
|
import { SidebarLink as r } from "./SidebarLink.js";
|
|
5
5
|
import { styles as i } from "./SidebarGroup.styles.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
|
|
2
|
+
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
|
|
3
3
|
import { StyledElement as n } from "../internals/StyledElement.js";
|
|
4
4
|
import { styles as r } from "./SidebarLink.styles.js";
|
|
5
5
|
import { html as i } from "lit";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
|
|
2
|
+
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
|
|
3
3
|
import { StyledElement as n } from "../internals/StyledElement.js";
|
|
4
4
|
import { styles as r } from "./SidebarSection.styles.js";
|
|
5
5
|
import { html as i } from "lit";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorateMetadata as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
|
|
2
|
+
import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
|
|
3
3
|
import { property as n } from "lit/decorators.js";
|
|
4
4
|
import { UElement as r } from "@iyulab/components/dist/components/UElement.js";
|
|
5
5
|
//#region src/internals/StyledElement.ts
|
|
@@ -51,6 +51,8 @@ export declare class SidebarLayout extends StyledElement<SidebarParts> {
|
|
|
51
51
|
private handleRouteDone;
|
|
52
52
|
/** 라우트 에러 핸들러 */
|
|
53
53
|
private handleRouteError;
|
|
54
|
+
/** .main 키보드 스크롤 핸들러 (WCAG 2.1 SC 2.1.1) */
|
|
55
|
+
private _handleMainKeydown;
|
|
54
56
|
/** 화면 크기 변경에 따른 사이드바 상태 업데이트 */
|
|
55
57
|
private handleScreenResize;
|
|
56
58
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { app as e } from "../App.js";
|
|
2
|
-
import { __decorateMetadata as t } from "../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.
|
|
2
|
+
import { __decorateMetadata as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
|
|
3
|
+
import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
|
|
4
4
|
import { StyledElement as r } from "../internals/StyledElement.js";
|
|
5
5
|
import "../components/SidebarSection.js";
|
|
6
6
|
import "../components/SidebarLink.js";
|
|
@@ -31,11 +31,38 @@ var m, h = class extends r {
|
|
|
31
31
|
}, this.handleRouteDone = (e) => {
|
|
32
32
|
this.progressBarEl.value = 100, setTimeout(() => {
|
|
33
33
|
this.progressBarEl.removeAttribute("visible");
|
|
34
|
-
}, 300);
|
|
34
|
+
}, 300), (this.shadowRoot?.querySelector(".main"))?.focus({ preventScroll: !0 });
|
|
35
35
|
}, this.handleRouteError = (e) => {
|
|
36
36
|
this.progressBarEl.setAttribute("error", ""), this.progressBarEl.value = 100, setTimeout(() => {
|
|
37
37
|
this.progressBarEl.removeAttribute("visible"), this.progressBarEl.removeAttribute("error");
|
|
38
38
|
}, 300);
|
|
39
|
+
}, this._handleMainKeydown = (e) => {
|
|
40
|
+
let t = this.shadowRoot?.querySelector(".main");
|
|
41
|
+
if (!t) return;
|
|
42
|
+
let n = t.clientHeight;
|
|
43
|
+
switch (e.key) {
|
|
44
|
+
case " ":
|
|
45
|
+
case "PageDown":
|
|
46
|
+
t.scrollTop += e.shiftKey ? -n : n;
|
|
47
|
+
break;
|
|
48
|
+
case "PageUp":
|
|
49
|
+
t.scrollTop -= n;
|
|
50
|
+
break;
|
|
51
|
+
case "End":
|
|
52
|
+
t.scrollTop = t.scrollHeight;
|
|
53
|
+
break;
|
|
54
|
+
case "Home":
|
|
55
|
+
t.scrollTop = 0;
|
|
56
|
+
break;
|
|
57
|
+
case "ArrowDown":
|
|
58
|
+
t.scrollTop += 80;
|
|
59
|
+
break;
|
|
60
|
+
case "ArrowUp":
|
|
61
|
+
t.scrollTop -= 80;
|
|
62
|
+
break;
|
|
63
|
+
default: return;
|
|
64
|
+
}
|
|
65
|
+
e.preventDefault();
|
|
39
66
|
}, this.handleScreenResize = (e) => {
|
|
40
67
|
let t = e.detail.size;
|
|
41
68
|
t === "large" ? this.state = "default" : t === "medium" ? this.state = "slim" : t === "small" ? this.state = "mobile" : console.warn("Unknown screen size:", t);
|
|
@@ -105,7 +132,7 @@ var m, h = class extends r {
|
|
|
105
132
|
</aside>
|
|
106
133
|
|
|
107
134
|
<!-- Main Content -->
|
|
108
|
-
<div class="main" part="main" scrollable>
|
|
135
|
+
<div class="main" part="main" scrollable tabindex="-1" @keydown=${this._handleMainKeydown}>
|
|
109
136
|
<u-progress-bar part="progress"></u-progress-bar>
|
|
110
137
|
|
|
111
138
|
<slot></slot>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyulab/modern-app",
|
|
3
3
|
"description": "web-framework by iyulab based on lit-element",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.6",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iyulab",
|
|
7
7
|
"web-framework",
|
|
@@ -38,15 +38,15 @@
|
|
|
38
38
|
"build": "vite build"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@iyulab/components": "^1.0.
|
|
42
|
-
"@iyulab/router": "^0.
|
|
43
|
-
"i18next": "^
|
|
44
|
-
"lit": "^3.3.
|
|
41
|
+
"@iyulab/components": "^1.0.6",
|
|
42
|
+
"@iyulab/router": "^0.9.3",
|
|
43
|
+
"i18next": "^26.2.0",
|
|
44
|
+
"lit": "^3.3.3"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@types/node": "^25.
|
|
47
|
+
"@types/node": "^25.8.0",
|
|
48
48
|
"typescript": "^5.9.3",
|
|
49
|
-
"vite": "^8.0.
|
|
50
|
-
"vite-plugin-dts": "^
|
|
49
|
+
"vite": "^8.0.13",
|
|
50
|
+
"vite-plugin-dts": "^5.0.0"
|
|
51
51
|
}
|
|
52
52
|
}
|