@iyulab/modern-app 0.18.7 → 0.18.9

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,31 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.18.9] - 2026-08-31
4
+
5
+ ### Fixed
6
+
7
+ - **JSX couldn't type-check `InfoField`, `PageHeader`, `EmptyState`, `GroupBox`,
8
+ `InfoSection`, `ActionBar`, or `MasterDetailLayout` in a `.tsx` consumer** —
9
+ these seven have no `/react` wrapper by design (plain
10
+ String/Number/Boolean properties work as a raw custom element in JSX on
11
+ both React 18 and 19), but only `HTMLElementTagNameMap` was declared for
12
+ them; `JSX.IntrinsicElements`, what `.tsx` actually checks against, never
13
+ was. Every one of them failed `TS2339` the moment a consumer wrote it in
14
+ JSX. Declared now, and pulled in from each component file itself (not just
15
+ the barrel), so a deep import for tree-shaking still sees it.
16
+
17
+ ## [0.18.8] - 2026-08-30
18
+
19
+ ### Fixed
20
+
21
+ - **`SidebarLayout` ignored an explicit `collapsed: false` on a group config** — a
22
+ group always rendered collapsed regardless of the configured initial state.
23
+ `SidebarGroup.collapsed` defaults to `true`, and the binding used a
24
+ boolean-attribute directive, which only ever adds the attribute — it never
25
+ removes an already-absent one to force `false`, so the default silently won.
26
+ Switched to a direct property binding, which sets the value regardless of the
27
+ component's own default.
28
+
3
29
  ## [0.18.7] - 2026-08-27
4
30
 
5
31
  ### Fixed
@@ -201,7 +201,7 @@ var v = class extends i {
201
201
  <u-sidebar-group
202
202
  ?compact=${this.state === "slim"}
203
203
  ?selected=${t}
204
- ?collapsed="${e.collapsed ?? !1}"
204
+ .collapsed=${e.collapsed ?? !0}
205
205
  .icon="${e.icon}"
206
206
  .lib="${e.lib}"
207
207
  .label="${e.label}"
@@ -0,0 +1,60 @@
1
+ import { default as React } from 'react';
2
+ import { InfoFieldFormat, InfoFieldSize, InfoFieldTrend, InfoFieldTone } from '../components/InfoField.js';
3
+ type BaseElementProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
4
+ interface InfoFieldElementProps extends BaseElementProps {
5
+ label?: string;
6
+ value?: string;
7
+ blank?: string;
8
+ numeric?: boolean;
9
+ format?: InfoFieldFormat;
10
+ currency?: string;
11
+ size?: InfoFieldSize;
12
+ trend?: InfoFieldTrend;
13
+ /** 프로퍼티는 `trendLabel`이지만 Lit 기본 속성명 규칙(소문자화, kebab 아님)상
14
+ * 실제 HTML 속성명은 `trendlabel`이다 — 하이픈을 넣으면 반영되지 않는다. */
15
+ trendlabel?: string;
16
+ tone?: InfoFieldTone;
17
+ }
18
+ interface PageHeaderElementProps extends BaseElementProps {
19
+ title?: string;
20
+ subtitle?: string;
21
+ back?: string;
22
+ 'back-label'?: string;
23
+ locale?: string;
24
+ }
25
+ interface EmptyStateElementProps extends BaseElementProps {
26
+ variant?: 'no-data' | 'no-results';
27
+ title?: string;
28
+ description?: string;
29
+ locale?: string;
30
+ }
31
+ interface GroupBoxElementProps extends BaseElementProps {
32
+ title?: string;
33
+ divider?: boolean;
34
+ flush?: boolean;
35
+ }
36
+ interface InfoSectionElementProps extends BaseElementProps {
37
+ min?: number | string;
38
+ }
39
+ interface ActionBarElementProps extends BaseElementProps {
40
+ sticky?: boolean;
41
+ }
42
+ interface MasterDetailLayoutElementProps extends BaseElementProps {
43
+ 'master-size'?: string;
44
+ 'overlay-breakpoint'?: number | string;
45
+ locale?: string;
46
+ }
47
+ declare module 'react' {
48
+ namespace JSX {
49
+ interface IntrinsicElements {
50
+ 'u-info-field': InfoFieldElementProps;
51
+ 'u-page-header': PageHeaderElementProps;
52
+ 'u-empty-state': EmptyStateElementProps;
53
+ 'u-group-box': GroupBoxElementProps;
54
+ 'u-info-section': InfoSectionElementProps;
55
+ 'u-action-bar': ActionBarElementProps;
56
+ 'u-master-detail-layout': MasterDetailLayoutElementProps;
57
+ }
58
+ }
59
+ }
60
+ export {};
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.18.7",
4
+ "version": "0.18.9",
5
5
  "keywords": [
6
6
  "iyulab",
7
7
  "web-framework",
@@ -51,6 +51,7 @@
51
51
  }
52
52
  },
53
53
  "scripts": {
54
+ "preversion": "node ../../scripts/preversion-check.mjs",
54
55
  "test": "vitest run",
55
56
  "test:watch": "vitest",
56
57
  "start": "vite",