creoui 0.20.1

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.
@@ -0,0 +1,37 @@
1
+ import { Component, JSX } from 'solid-js';
2
+ interface CreoFacetGridProps {
3
+ children: JSX.Element;
4
+ /**
5
+ * Sidebar width (default 320px)。 CSS variable `--creo-facet-grid-sidebar-width` で
6
+ * override 可能。
7
+ */
8
+ sidebarWidth?: string;
9
+ /**
10
+ * Max width of grid (default 1100px)。 CSS variable `--creo-facet-grid-max-width` で
11
+ * override 可能。
12
+ */
13
+ maxWidth?: string;
14
+ /** Class to merge with base */
15
+ class?: string;
16
+ }
17
+ /**
18
+ * CreoFacetGrid — 2-col page grid primitive
19
+ *
20
+ * Layered Surface design v5.1 で確立した page grammar。 intrinsic main (1fr) +
21
+ * extrinsic sidebar (sidebarWidth) の 2-col grid、 920px breakpoint で 1-col 化。
22
+ *
23
+ * 子要素は consumer が intrinsic / extrinsic 配置を決める (PR-3 で `<CreoFacet>`
24
+ * primitive 化予定):
25
+ *
26
+ * ```tsx
27
+ * <CreoFacetGrid>
28
+ * <article>main content</article>
29
+ * <aside>sidebar content</aside>
30
+ * </CreoFacetGrid>
31
+ * ```
32
+ *
33
+ * Vision: mem_1Cak5rxTFWvLNxjSRiQ1Ak (Layered Surface v5.1)
34
+ * Origin: Phase 1 (CREO-160) `.memoryPage` から抽出
35
+ */
36
+ export declare const CreoFacetGrid: Component<CreoFacetGridProps>;
37
+ export {};
@@ -0,0 +1,42 @@
1
+ import { Component, JSX } from 'solid-js';
2
+ interface CreoPageShellProps {
3
+ children: JSX.Element;
4
+ /**
5
+ * Inner container max width (default 1100px)。 CSS variable
6
+ * `--creo-page-shell-max-width` で override 可能。
7
+ */
8
+ maxWidth?: string;
9
+ /**
10
+ * Entrance animation (opacity + translateY) を無効化する。
11
+ * `prefers-reduced-motion: reduce` は CSS module 側で自動対応するので
12
+ * 通常は明示指定不要、 navigation snap や test 環境で off にする用途。
13
+ */
14
+ noAnimation?: boolean;
15
+ /** Class to merge with base (outer `<main>`) */
16
+ class?: string;
17
+ }
18
+ /**
19
+ * CreoPageShell — full-canvas page wrapper primitive
20
+ *
21
+ * Layered Surface design v5.1 の **page mode** primitive。 Rail / Nav の右側に
22
+ * 配置され、 max-width 1100px の inner container + entrance animation で
23
+ * page 遷移を視覚化。 子要素は consumer が `<CreoFacetGrid>` 等で組み立てる。
24
+ *
25
+ * ```tsx
26
+ * <div class="flex h-screen">
27
+ * <Rail />
28
+ * <Nav />
29
+ * <CreoPageShell>
30
+ * <CreoFacetGrid>
31
+ * <article>main</article>
32
+ * <aside>sidebar</aside>
33
+ * </CreoFacetGrid>
34
+ * </CreoPageShell>
35
+ * </div>
36
+ * ```
37
+ *
38
+ * Vision: mem_1Cak5rxTFWvLNxjSRiQ1Ak (Layered Surface v5.1)
39
+ * Origin: Phase 1 (CREO-160) `MemoryPageShell` から layout 部分を抽出
40
+ */
41
+ export declare const CreoPageShell: Component<CreoPageShellProps>;
42
+ export {};
@@ -0,0 +1 @@
1
+ .creo-shell-CPh5B{max-width:var(--creo-facet-grid-max-width, 1100px);margin:0 auto;padding:var(--spacing-xl) var(--spacing-l);display:grid;grid-template-columns:minmax(0,1fr) var(--creo-facet-grid-sidebar-width, 320px);gap:var(--spacing-xl);align-items:start}@media (max-width: 920px){.creo-shell-CPh5B{grid-template-columns:1fr;gap:var(--spacing-l);padding:var(--spacing-m)}}.creo-shell-4bx-q{flex:1 1 0%;overflow-y:auto;min-height:0}.creo-shell-N0Xkz{max-width:var(--creo-page-shell-max-width, 1100px);margin-left:auto;margin-right:auto;padding:var(--spacing-l)}.creo-shell-2-cUr{animation:creo-shell-mb-D2 .3s ease-out both}@keyframes creo-shell-mb-D2{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.creo-shell-2-cUr{animation:none}}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * creoui/shells — Layered Surface page grammar primitives
3
+ *
4
+ * Phase 1 (CREO-160) で creo-web 内に直書きされた layout pattern を
5
+ * 抽出した Solid component primitive 群。 vp-app / chronista-hub /
6
+ * fleetstage CP 等で再利用可能。
7
+ *
8
+ * Vision: mem_1Cak5rxTFWvLNxjSRiQ1Ak (Layered Surface v5.1)
9
+ * Pivot: mem_1CamfZKHbiSdMrzo4pn32T (architectural pivot 2026-05-07)
10
+ *
11
+ * 後続 PR で追加予定 (CREO-84 Phase B):
12
+ * - PR-3: creo-web migration (consumer 側で <CreoFacetGrid> + <CreoPageShell> 適用)
13
+ * - PR-4: <CreoFacet> (intrinsic / extrinsic prop で main/sidebar 子配置)
14
+ * - PR-5: <CreoOrientation> (Rail+Nav grammar) + <CreoPaneShell> (list + opt Sub pane)
15
+ */
16
+ export { CreoFacetGrid } from './CreoFacetGrid';
17
+ export { CreoPageShell } from './CreoPageShell';
@@ -0,0 +1,45 @@
1
+ import { insert as d, effect as o, className as i, style as h, template as s } from "solid-js/web";
2
+ const m = "creo-shell-CPh5B", g = {
3
+ creoFacetGrid: m
4
+ };
5
+ var P = /* @__PURE__ */ s("<div>");
6
+ const b = (e) => (() => {
7
+ var a = P();
8
+ return d(a, () => e.children), o((l) => {
9
+ var t = `${g.creoFacetGrid}${e.class ? ` ${e.class}` : ""}`, r = {
10
+ ...e.maxWidth && {
11
+ "--creo-facet-grid-max-width": e.maxWidth
12
+ },
13
+ ...e.sidebarWidth && {
14
+ "--creo-facet-grid-sidebar-width": e.sidebarWidth
15
+ }
16
+ };
17
+ return t !== l.e && i(a, l.e = t), l.t = h(a, r, l.t), l;
18
+ }, {
19
+ e: void 0,
20
+ t: void 0
21
+ }), a;
22
+ })(), $ = "creo-shell-4bx-q", S = "creo-shell-N0Xkz", x = "creo-shell-2-cUr", c = {
23
+ creoPageShell: $,
24
+ creoPageShellInner: S,
25
+ creoPageShellEntrance: x
26
+ };
27
+ var f = /* @__PURE__ */ s("<main><div>");
28
+ const u = (e) => (() => {
29
+ var a = f(), l = a.firstChild;
30
+ return d(l, () => e.children), o((t) => {
31
+ var r = `${c.creoPageShell}${e.class ? ` ${e.class}` : ""}`, v = e.maxWidth ? {
32
+ "--creo-page-shell-max-width": e.maxWidth
33
+ } : void 0, n = `${c.creoPageShellInner}${e.noAnimation ? "" : ` ${c.creoPageShellEntrance}`}`;
34
+ return r !== t.e && i(a, t.e = r), t.t = h(a, v, t.t), n !== t.a && i(l, t.a = n), t;
35
+ }, {
36
+ e: void 0,
37
+ t: void 0,
38
+ a: void 0
39
+ }), a;
40
+ })();
41
+ export {
42
+ b as CreoFacetGrid,
43
+ u as CreoPageShell
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/shells/CreoFacetGrid.tsx","../../src/shells/CreoPageShell.tsx"],"sourcesContent":["import type { Component, JSX } from 'solid-js'\nimport styles from './CreoFacetGrid.module.css'\n\ninterface CreoFacetGridProps {\n children: JSX.Element\n /**\n * Sidebar width (default 320px)。 CSS variable `--creo-facet-grid-sidebar-width` で\n * override 可能。\n */\n sidebarWidth?: string\n /**\n * Max width of grid (default 1100px)。 CSS variable `--creo-facet-grid-max-width` で\n * override 可能。\n */\n maxWidth?: string\n /** Class to merge with base */\n class?: string\n}\n\n/**\n * CreoFacetGrid — 2-col page grid primitive\n *\n * Layered Surface design v5.1 で確立した page grammar。 intrinsic main (1fr) +\n * extrinsic sidebar (sidebarWidth) の 2-col grid、 920px breakpoint で 1-col 化。\n *\n * 子要素は consumer が intrinsic / extrinsic 配置を決める (PR-3 で `<CreoFacet>`\n * primitive 化予定):\n *\n * ```tsx\n * <CreoFacetGrid>\n * <article>main content</article>\n * <aside>sidebar content</aside>\n * </CreoFacetGrid>\n * ```\n *\n * Vision: mem_1Cak5rxTFWvLNxjSRiQ1Ak (Layered Surface v5.1)\n * Origin: Phase 1 (CREO-160) `.memoryPage` から抽出\n */\nexport const CreoFacetGrid: Component<CreoFacetGridProps> = (props) => (\n <div\n class={`${styles.creoFacetGrid}${props.class ? ` ${props.class}` : ''}`}\n style={{\n ...(props.maxWidth && { '--creo-facet-grid-max-width': props.maxWidth }),\n ...(props.sidebarWidth && {\n '--creo-facet-grid-sidebar-width': props.sidebarWidth,\n }),\n }}\n >\n {props.children}\n </div>\n)\n","import type { Component, JSX } from 'solid-js'\nimport styles from './CreoPageShell.module.css'\n\ninterface CreoPageShellProps {\n children: JSX.Element\n /**\n * Inner container max width (default 1100px)。 CSS variable\n * `--creo-page-shell-max-width` で override 可能。\n */\n maxWidth?: string\n /**\n * Entrance animation (opacity + translateY) を無効化する。\n * `prefers-reduced-motion: reduce` は CSS module 側で自動対応するので\n * 通常は明示指定不要、 navigation snap や test 環境で off にする用途。\n */\n noAnimation?: boolean\n /** Class to merge with base (outer `<main>`) */\n class?: string\n}\n\n/**\n * CreoPageShell — full-canvas page wrapper primitive\n *\n * Layered Surface design v5.1 の **page mode** primitive。 Rail / Nav の右側に\n * 配置され、 max-width 1100px の inner container + entrance animation で\n * page 遷移を視覚化。 子要素は consumer が `<CreoFacetGrid>` 等で組み立てる。\n *\n * ```tsx\n * <div class=\"flex h-screen\">\n * <Rail />\n * <Nav />\n * <CreoPageShell>\n * <CreoFacetGrid>\n * <article>main</article>\n * <aside>sidebar</aside>\n * </CreoFacetGrid>\n * </CreoPageShell>\n * </div>\n * ```\n *\n * Vision: mem_1Cak5rxTFWvLNxjSRiQ1Ak (Layered Surface v5.1)\n * Origin: Phase 1 (CREO-160) `MemoryPageShell` から layout 部分を抽出\n */\nexport const CreoPageShell: Component<CreoPageShellProps> = (props) => (\n <main\n class={`${styles.creoPageShell}${props.class ? ` ${props.class}` : ''}`}\n style={props.maxWidth ? { '--creo-page-shell-max-width': props.maxWidth } : undefined}\n >\n <div\n class={`${styles.creoPageShellInner}${props.noAnimation ? '' : ` ${styles.creoPageShellEntrance}`}`}\n >\n {props.children}\n </div>\n </main>\n)\n"],"names":["CreoFacetGrid","props","_el$","_tmpl$","_$insert","children","_$effect","_p$","_v$","styles","creoFacetGrid","class","_v$2","maxWidth","sidebarWidth","e","_$className","t","_$style","undefined","CreoPageShell","_el$2","firstChild","creoPageShell","_v$3","creoPageShellInner","noAnimation","creoPageShellEntrance","a"],"mappings":";;;;;AAsCO,MAAMA,IAAgDC,QAAK,MAAA;AAAA,MAAAC,IAAAC,EAAAA;AAAAC,SAAAA,EAAAF,GAAA,MAU7DD,EAAMI,QAAQ,GAAAC,EAAAC,CAAAA,MAAA;AAAA,QAAAC,IARR,GAAGC,EAAOC,aAAa,GAAGT,EAAMU,QAAQ,IAAIV,EAAMU,KAAK,KAAK,EAAE,IAAEC,IAChE;AAAA,MACL,GAAIX,EAAMY,YAAY;AAAA,QAAE,+BAA+BZ,EAAMY;AAAAA,MAAAA;AAAAA,MAC7D,GAAIZ,EAAMa,gBAAgB;AAAA,QACxB,mCAAmCb,EAAMa;AAAAA,MAAAA;AAAAA,IAC3C;AACDN,WAAAA,MAAAD,EAAAQ,KAAAC,EAAAd,GAAAK,EAAAQ,IAAAP,CAAA,GAAAD,EAAAU,IAAAC,EAAAhB,GAAAU,GAAAL,EAAAU,CAAA,GAAAV;AAAAA,EAAA,GAAA;AAAA,IAAAQ,GAAAI;AAAAA,IAAAF,GAAAE;AAAAA,EAAAA,CAAA,GAAAjB;AAAA,GAAA;;;;;;ACHE,MAAMkB,IAAgDnB,QAAK,MAAA;AAAA,MAAAC,IAAAC,EAAAA,GAAAkB,IAAAnB,EAAAoB;AAAAlB,SAAAA,EAAAiB,GAAA,MAQ3DpB,EAAMI,QAAQ,GAAAC,EAAAC,CAAAA,MAAA;AAAA,QAAAC,IANV,GAAGC,EAAOc,aAAa,GAAGtB,EAAMU,QAAQ,IAAIV,EAAMU,KAAK,KAAK,EAAE,IAAEC,IAChEX,EAAMY,WAAW;AAAA,MAAE,+BAA+BZ,EAAMY;AAAAA,IAAAA,IAAaM,QAASK,IAG5E,GAAGf,EAAOgB,kBAAkB,GAAGxB,EAAMyB,cAAc,KAAK,IAAIjB,EAAOkB,qBAAqB,EAAE;AAAEnB,WAAAA,MAAAD,EAAAQ,KAAAC,EAAAd,GAAAK,EAAAQ,IAAAP,CAAA,GAAAD,EAAAU,IAAAC,EAAAhB,GAAAU,GAAAL,EAAAU,CAAA,GAAAO,MAAAjB,EAAAqB,KAAAZ,EAAAK,GAAAd,EAAAqB,IAAAJ,CAAA,GAAAjB;AAAAA,EAAA,GAAA;AAAA,IAAAQ,GAAAI;AAAAA,IAAAF,GAAAE;AAAAA,IAAAS,GAAAT;AAAAA,EAAAA,CAAA,GAAAjB;AAAA,GAAA;"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * creoui — token-shim.css
3
+ *
4
+ * 既存プロジェクトが creoui 移行する際の **transitional alias 層**。
5
+ * 典型的な flat 1 階層 (`--color-primary`) / Tailwind 風 / Tabler 風の変数名を
6
+ * creoui の DTCG 3 階層 token へ alias する。
7
+ *
8
+ * 使い方:
9
+ * ```js
10
+ * import 'creoui/tokens.css' // 1. SSOT token
11
+ * import 'creoui/token-shim.css' // 2. transitional aliases
12
+ * // 3. 既存 CSS が徐々に新 token へ置換、shim は最後に削除
13
+ * ```
14
+ *
15
+ * 段階移行 (CREO-103 Phase 1 想定):
16
+ * Phase A: tokens.css + shim.css + 既存 CSS (unchanged) — 背景/枠線/文字色は shim 経由で自動追従
17
+ * Phase B: domain 単位で `bg-primary` → `bg-brand-primary` 等の class/var 置換
18
+ * Phase C: shim 削除 → 完全移行完了
19
+ *
20
+ * **creoui 2 階層目以上の意味的 token** (例: `--color-text-secondary`) を
21
+ * `color-muted` にまとめる等、flat 構造への downgrade が主。逆向き (階層化)
22
+ * は consumer 側の設計判断に委ねる。
23
+ */
24
+
25
+ :root {
26
+ /* ---------- Color: brand / surface / text の flat alias ---------- */
27
+
28
+ --color-primary: var(--color-brand-primary);
29
+ --color-primary-hover: var(--color-brand-primary-hover);
30
+ --color-primary-active: var(--color-brand-primary-active);
31
+ --color-primary-subtle: var(--color-brand-primary-subtle);
32
+ --color-secondary: var(--color-brand-secondary);
33
+ --color-accent: var(--color-brand-accent);
34
+
35
+ --color-success: var(--color-semantic-success);
36
+ --color-warning: var(--color-semantic-warning);
37
+ --color-error: var(--color-semantic-error);
38
+ --color-danger: var(--color-semantic-error); /* Tabler 流 */
39
+ --color-info: var(--color-semantic-info);
40
+
41
+ --color-bg: var(--color-surface-bg-base);
42
+ --color-bg-subtle: var(--color-surface-bg-subtle);
43
+ --color-surface: var(--color-surface-surface);
44
+ --color-surface-muted: var(--color-surface-bg-subtle);
45
+ --color-border: var(--color-surface-border);
46
+
47
+ --color-fg: var(--color-text-primary);
48
+ --color-text: var(--color-text-primary);
49
+ --color-muted: var(--color-text-secondary);
50
+ --color-subtle: var(--color-text-tertiary);
51
+
52
+ /* ---------- Spacing flat alias (Tailwind/Bootstrap 風の数値名) ---------- */
53
+
54
+ --space-1: var(--spacing-xs); /* 4px */
55
+ --space-2: var(--spacing-s); /* 8px */
56
+ --space-3: var(--spacing-m); /* 18px */
57
+ --space-4: var(--spacing-l); /* 24px */
58
+ --space-5: var(--spacing-xl); /* 32px */
59
+
60
+ /* ---------- 5 tier rename legacy alias (sm/md/lg → s/m/l 互換、 v0.16-v0.17 で完了) ----------
61
+ creoui v0.0-v0.16 は xs/sm/md/lg/xl 命名 (Tailwind 流) だったが、 v0.17 で全
62
+ dimension scale token が xs/s/m/l/xl の 5 tier convention に完全統一。 旧 consumer
63
+ (creo-memories 等) は token-shim.css 経由で互換維持。 v0.18 で component attribute
64
+ (data-size="md" 等) も rename されたが、 attribute は HTML markup 側で書換が必要 (CSS
65
+ alias で吸収不可)。 */
66
+
67
+ /* spacing (v0.16 で先行 rename) */
68
+ --spacing-sm: var(--spacing-s);
69
+ --spacing-md: var(--spacing-m);
70
+ --spacing-lg: var(--spacing-l);
71
+
72
+ /* margin (v0.17 で rename) */
73
+ --margin-sm: var(--margin-s);
74
+ --margin-md: var(--margin-m);
75
+ --margin-lg: var(--margin-l);
76
+
77
+ /* radius (v0.17 で rename) */
78
+ --radius-sm: var(--radius-s);
79
+ --radius-md: var(--radius-m);
80
+ --radius-lg: var(--radius-l);
81
+
82
+ /* shadow (v0.17 で rename) */
83
+ --shadow-sm: var(--shadow-s);
84
+ --shadow-md: var(--shadow-m);
85
+ --shadow-lg: var(--shadow-l);
86
+
87
+ /* typography.size (v0.17 で rename) */
88
+ --typography-size-sm: var(--typography-size-s);
89
+ --typography-size-md: var(--typography-size-m);
90
+ --typography-size-lg: var(--typography-size-l);
91
+
92
+ /* typography.display (v0.17 で rename) */
93
+ --typography-display-sm: var(--typography-display-s);
94
+ --typography-display-md: var(--typography-display-m);
95
+ --typography-display-lg: var(--typography-display-l);
96
+
97
+ /* Bootstrap 5 互換 alias (0.25rem 刻み近似、px 化した shim) */
98
+ --bs-spacer: var(--spacing-m);
99
+
100
+ /* ---------- Radius flat alias ---------- */
101
+
102
+ --border-radius: var(--radius-m);
103
+ --border-radius-sm: var(--radius-s);
104
+ --border-radius-lg: var(--radius-l);
105
+ --border-radius-xl: var(--radius-xl);
106
+ --border-radius-pill: var(--radius-full);
107
+ --border-radius-circle: var(--radius-full);
108
+
109
+ /* Tabler 流: --tblr-border-radius */
110
+ --tblr-border-radius: var(--radius-m);
111
+
112
+ /* ---------- Typography flat alias ---------- */
113
+
114
+ --font-size-base: var(--typography-size-m);
115
+ --font-size-sm: var(--typography-size-s);
116
+ --font-size-lg: var(--typography-size-l);
117
+ --font-size-xs: var(--typography-size-xs);
118
+
119
+ --font-family-base: var(--typography-family-sans);
120
+ --font-family-mono: var(--typography-family-mono);
121
+ --font-family-serif: var(--typography-family-sans); /* default fallback */
122
+
123
+ --font-weight-normal: var(--typography-weight-regular);
124
+ --font-weight-medium: var(--typography-weight-medium);
125
+ --font-weight-bold: var(--typography-weight-semibold);
126
+
127
+ /* ---------- Shadow ---------- */
128
+
129
+ --shadow: var(--shadow-m);
130
+ --box-shadow: var(--shadow-m);
131
+ --box-shadow-sm: var(--shadow-s);
132
+ --box-shadow-lg: var(--shadow-l);
133
+ }