@duskmoon-dev/core 1.18.5 → 1.19.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.
Files changed (127) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/tailwind-plugin.cjs +2 -2
  3. package/dist/components/console-page.css +178 -0
  4. package/dist/components/home-page.css +94 -0
  5. package/dist/components/index.css +366 -0
  6. package/dist/components/sign-page.css +80 -0
  7. package/dist/components/table.css +10 -0
  8. package/dist/components/tooltip.css +1 -0
  9. package/dist/esm/components/accordion.d.ts +5 -0
  10. package/dist/esm/components/accordion.js +4 -2
  11. package/dist/esm/components/alert.d.ts +5 -0
  12. package/dist/esm/components/alert.js +4 -2
  13. package/dist/esm/components/appbar.d.ts +5 -0
  14. package/dist/esm/components/appbar.js +4 -2
  15. package/dist/esm/components/autocomplete.d.ts +5 -0
  16. package/dist/esm/components/autocomplete.js +4 -2
  17. package/dist/esm/components/avatar.d.ts +5 -0
  18. package/dist/esm/components/avatar.js +4 -2
  19. package/dist/esm/components/badge.d.ts +5 -0
  20. package/dist/esm/components/badge.js +4 -2
  21. package/dist/esm/components/bottom-navigation.d.ts +5 -0
  22. package/dist/esm/components/bottom-navigation.js +4 -2
  23. package/dist/esm/components/bottomsheet.d.ts +5 -0
  24. package/dist/esm/components/bottomsheet.js +4 -2
  25. package/dist/esm/components/button.d.ts +5 -0
  26. package/dist/esm/components/button.js +4 -2
  27. package/dist/esm/components/card.d.ts +5 -0
  28. package/dist/esm/components/card.js +4 -2
  29. package/dist/esm/components/cascader.d.ts +5 -0
  30. package/dist/esm/components/cascader.js +4 -2
  31. package/dist/esm/components/chat.d.ts +5 -0
  32. package/dist/esm/components/chat.js +4 -2
  33. package/dist/esm/components/checkbox.d.ts +5 -0
  34. package/dist/esm/components/checkbox.js +4 -2
  35. package/dist/esm/components/chip.d.ts +5 -0
  36. package/dist/esm/components/chip.js +4 -2
  37. package/dist/esm/components/circle-menu.d.ts +5 -0
  38. package/dist/esm/components/circle-menu.js +4 -2
  39. package/dist/esm/components/code-block.d.ts +5 -0
  40. package/dist/esm/components/code-block.js +4 -2
  41. package/dist/esm/components/collapse.d.ts +5 -0
  42. package/dist/esm/components/collapse.js +4 -2
  43. package/dist/esm/components/console-page.d.ts +5 -0
  44. package/dist/esm/components/console-page.js +187 -0
  45. package/dist/esm/components/datepicker.d.ts +5 -0
  46. package/dist/esm/components/datepicker.js +4 -2
  47. package/dist/esm/components/dialog.d.ts +5 -0
  48. package/dist/esm/components/dialog.js +4 -2
  49. package/dist/esm/components/divider.d.ts +5 -0
  50. package/dist/esm/components/divider.js +4 -2
  51. package/dist/esm/components/drawer.d.ts +5 -0
  52. package/dist/esm/components/drawer.js +4 -2
  53. package/dist/esm/components/file-upload.d.ts +5 -0
  54. package/dist/esm/components/file-upload.js +4 -2
  55. package/dist/esm/components/form-group.d.ts +5 -0
  56. package/dist/esm/components/form-group.js +4 -2
  57. package/dist/esm/components/form.d.ts +5 -0
  58. package/dist/esm/components/form.js +4 -2
  59. package/dist/esm/components/home-page.d.ts +5 -0
  60. package/dist/esm/components/home-page.js +103 -0
  61. package/dist/esm/components/input.d.ts +5 -0
  62. package/dist/esm/components/input.js +4 -2
  63. package/dist/esm/components/list.d.ts +5 -0
  64. package/dist/esm/components/list.js +4 -2
  65. package/dist/esm/components/markdown-body.d.ts +5 -0
  66. package/dist/esm/components/markdown-body.js +4 -2
  67. package/dist/esm/components/modal.d.ts +5 -0
  68. package/dist/esm/components/modal.js +4 -2
  69. package/dist/esm/components/multi-select.d.ts +5 -0
  70. package/dist/esm/components/multi-select.js +4 -2
  71. package/dist/esm/components/navigation.d.ts +5 -0
  72. package/dist/esm/components/navigation.js +4 -2
  73. package/dist/esm/components/nested-menu.d.ts +5 -0
  74. package/dist/esm/components/nested-menu.js +4 -2
  75. package/dist/esm/components/otp-input.d.ts +5 -0
  76. package/dist/esm/components/otp-input.js +4 -2
  77. package/dist/esm/components/pin-input.d.ts +5 -0
  78. package/dist/esm/components/pin-input.js +4 -2
  79. package/dist/esm/components/popover.d.ts +5 -0
  80. package/dist/esm/components/popover.js +4 -2
  81. package/dist/esm/components/progress.d.ts +5 -0
  82. package/dist/esm/components/progress.js +4 -2
  83. package/dist/esm/components/radio.d.ts +5 -0
  84. package/dist/esm/components/radio.js +4 -2
  85. package/dist/esm/components/rating.d.ts +5 -0
  86. package/dist/esm/components/rating.js +4 -2
  87. package/dist/esm/components/segment-control.d.ts +5 -0
  88. package/dist/esm/components/segment-control.js +4 -2
  89. package/dist/esm/components/select.d.ts +5 -0
  90. package/dist/esm/components/select.js +4 -2
  91. package/dist/esm/components/sign-page.d.ts +5 -0
  92. package/dist/esm/components/sign-page.js +89 -0
  93. package/dist/esm/components/skeleton.d.ts +5 -0
  94. package/dist/esm/components/skeleton.js +4 -2
  95. package/dist/esm/components/slider.d.ts +5 -0
  96. package/dist/esm/components/slider.js +4 -2
  97. package/dist/esm/components/snackbar.d.ts +5 -0
  98. package/dist/esm/components/snackbar.js +4 -2
  99. package/dist/esm/components/stepper.d.ts +5 -0
  100. package/dist/esm/components/stepper.js +4 -2
  101. package/dist/esm/components/switch.d.ts +5 -0
  102. package/dist/esm/components/switch.js +4 -2
  103. package/dist/esm/components/table.d.ts +5 -0
  104. package/dist/esm/components/table.js +14 -2
  105. package/dist/esm/components/textarea.d.ts +5 -0
  106. package/dist/esm/components/textarea.js +4 -2
  107. package/dist/esm/components/theme-controller.d.ts +5 -0
  108. package/dist/esm/components/theme-controller.js +4 -2
  109. package/dist/esm/components/time-input.d.ts +5 -0
  110. package/dist/esm/components/time-input.js +4 -2
  111. package/dist/esm/components/timeline.d.ts +5 -0
  112. package/dist/esm/components/timeline.js +4 -2
  113. package/dist/esm/components/toast.d.ts +5 -0
  114. package/dist/esm/components/toast.js +4 -2
  115. package/dist/esm/components/toggle.d.ts +5 -0
  116. package/dist/esm/components/toggle.js +4 -2
  117. package/dist/esm/components/tooltip.d.ts +5 -0
  118. package/dist/esm/components/tooltip.js +5 -2
  119. package/dist/esm/components/tree-select.d.ts +5 -0
  120. package/dist/esm/components/tree-select.js +4 -2
  121. package/dist/index.css +366 -0
  122. package/dist/index.min.css +1 -1
  123. package/dist/standalone/duskmoonui-themes.css +1 -1
  124. package/dist/standalone/duskmoonui.css +368 -2
  125. package/dist/standalone/duskmoonui.js +10 -6
  126. package/dist/standalone/duskmoonui.mjs +10 -6
  127. package/package.json +72 -1
package/README.md CHANGED
@@ -442,4 +442,4 @@ See [specs/004-oklch-color-system/quickstart.md](./specs/004-oklch-color-system/
442
442
 
443
443
  MIT
444
444
 
445
- <!-- release 33538689051 -->
445
+ <!-- release 33856237002 -->
@@ -18,7 +18,7 @@ var __toESM = (mod, isNodeMode, target) => {
18
18
  return cached;
19
19
  }
20
20
  target = mod != null ? __create(__getProtoOf(mod)) : {};
21
- const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
21
+ const to = isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
22
  if (mod && typeof mod === "object" || typeof mod === "function") {
23
23
  for (let key of __getOwnPropNames(mod))
24
24
  if (!__hasOwnProp.call(to, key))
@@ -69,7 +69,7 @@ __export(exports_tailwind_plugin, {
69
69
  duskmoonPlugin: () => duskmoonPlugin
70
70
  });
71
71
  module.exports = __toCommonJS(exports_tailwind_plugin);
72
- var import_plugin = __toESM(require("tailwindcss/plugin"));
72
+ var import_plugin = __toESM(require("tailwindcss/plugin"), 1);
73
73
  var themeColors = {
74
74
  primary: "var(--color-primary)",
75
75
  "primary-content": "var(--color-primary-content)",
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Console Page Layout
3
+ * Responsive application shell with expanded, icon-rail, and hidden sidebar states.
4
+ */
5
+
6
+ @layer components {
7
+ .console-page {
8
+ --console-page-sidebar-width: 17.5rem;
9
+ --console-page-sidebar-compact-width: 5rem;
10
+ container-type: inline-size;
11
+ container-name: console-page;
12
+ width: 100%;
13
+ min-width: 0;
14
+ min-height: var(--console-page-min-height, 100dvh);
15
+ background-color: var(--color-surface);
16
+ color: var(--color-on-surface);
17
+ }
18
+
19
+ .console-page-frame {
20
+ display: grid;
21
+ min-height: inherit;
22
+ grid-template-areas:
23
+ "appbar"
24
+ "main";
25
+ grid-template-columns: minmax(0, 1fr);
26
+ grid-template-rows: auto minmax(0, 1fr);
27
+ transition: grid-template-columns 240ms ease-out;
28
+ }
29
+
30
+ .console-page-appbar {
31
+ grid-area: appbar;
32
+ z-index: 20;
33
+ }
34
+
35
+ .console-page-sidebar {
36
+ display: none;
37
+ grid-area: sidebar;
38
+ min-width: 0;
39
+ overflow: hidden;
40
+ background-color: var(--color-surface-container-low);
41
+ border-inline-end: 1px solid var(--color-outline-variant);
42
+ transition:
43
+ opacity 160ms ease-out,
44
+ visibility 160ms ease-out;
45
+ }
46
+
47
+ .console-page-sidebar-header,
48
+ .console-page-sidebar-footer {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: 0.75rem;
52
+ min-height: 4rem;
53
+ padding: 0.75rem 1rem;
54
+ flex-shrink: 0;
55
+ }
56
+
57
+ .console-page-sidebar-header {
58
+ border-bottom: 1px solid var(--color-outline-variant);
59
+ }
60
+
61
+ .console-page-sidebar-body {
62
+ flex: 1;
63
+ min-height: 0;
64
+ overflow-y: auto;
65
+ overflow-x: hidden;
66
+ padding-block: 0.5rem;
67
+ }
68
+
69
+ .console-page-sidebar-footer {
70
+ border-top: 1px solid var(--color-outline-variant);
71
+ }
72
+
73
+ .console-page-main {
74
+ grid-area: main;
75
+ min-width: 0;
76
+ overflow: auto;
77
+ padding: clamp(1rem, 4cqi, 2.5rem);
78
+ background-color: var(--color-surface);
79
+ }
80
+
81
+ .console-page-nav-label {
82
+ overflow: hidden;
83
+ text-overflow: ellipsis;
84
+ white-space: nowrap;
85
+ }
86
+
87
+ .console-page-sidebar-toggle {
88
+ display: none;
89
+ }
90
+
91
+ .console-page-menu-trigger {
92
+ display: inline-flex;
93
+ }
94
+
95
+ .console-page-mobile-menu {
96
+ max-width: min(20rem, calc(100cqi - 2rem));
97
+ }
98
+
99
+ @container console-page (min-width: 48rem) {
100
+ .console-page-frame {
101
+ grid-template-areas:
102
+ "appbar appbar"
103
+ "sidebar main";
104
+ grid-template-columns: var(--console-page-sidebar-width) minmax(0, 1fr);
105
+ }
106
+
107
+ .console-page-sidebar {
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ .console-page-sidebar-toggle {
113
+ display: inline-flex;
114
+ }
115
+
116
+ .console-page-menu-trigger {
117
+ display: none;
118
+ }
119
+
120
+ .console-page-mobile-menu {
121
+ display: none;
122
+ }
123
+
124
+ .console-page-sidebar-compact .console-page-frame {
125
+ grid-template-columns: var(--console-page-sidebar-compact-width) minmax(0, 1fr);
126
+ }
127
+
128
+ .console-page-sidebar-compact .console-page-nav-label {
129
+ position: absolute;
130
+ width: 1px;
131
+ height: 1px;
132
+ padding: 0;
133
+ margin: -1px;
134
+ overflow: hidden;
135
+ clip: rect(0, 0, 0, 0);
136
+ white-space: nowrap;
137
+ border: 0;
138
+ }
139
+
140
+ .console-page-sidebar-compact .console-page-sidebar-header,
141
+ .console-page-sidebar-compact .console-page-sidebar-footer {
142
+ justify-content: center;
143
+ padding-inline: 0.75rem;
144
+ }
145
+
146
+ .console-page-sidebar-compact .console-page-sidebar-body :is(.nested-menu li > a, .nested-menu li > button, .nested-menu summary) {
147
+ justify-content: center;
148
+ padding-inline: 0.75rem;
149
+ }
150
+
151
+ .console-page-sidebar-compact .console-page-sidebar-body .drawer-item {
152
+ justify-content: center;
153
+ padding-inline: 0.75rem;
154
+ }
155
+
156
+ .console-page-sidebar-compact .console-page-sidebar-body :is(.nested-menu-title, details > ul, summary::after) {
157
+ display: none;
158
+ }
159
+
160
+ .console-page-sidebar-hidden .console-page-frame {
161
+ grid-template-areas:
162
+ "appbar"
163
+ "main";
164
+ grid-template-columns: minmax(0, 1fr);
165
+ }
166
+
167
+ .console-page-sidebar-hidden .console-page-sidebar {
168
+ display: none;
169
+ }
170
+ }
171
+
172
+ @media (prefers-reduced-motion: reduce) {
173
+ .console-page-frame,
174
+ .console-page-sidebar {
175
+ transition: none;
176
+ }
177
+ }
178
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Home Page Layout
3
+ * App-bar-led public application shell driven by its containing width.
4
+ */
5
+
6
+ @layer components {
7
+ .home-page {
8
+ container-type: inline-size;
9
+ container-name: home-page;
10
+ width: 100%;
11
+ min-width: 0;
12
+ min-height: var(--home-page-min-height, 100dvh);
13
+ background-color: var(--color-surface);
14
+ color: var(--color-on-surface);
15
+ }
16
+
17
+ .home-page-frame {
18
+ display: grid;
19
+ min-height: inherit;
20
+ grid-template-rows: auto minmax(0, 1fr) auto;
21
+ }
22
+
23
+ .home-page-header {
24
+ z-index: 10;
25
+ }
26
+
27
+ .home-page-nav {
28
+ display: none;
29
+ align-items: center;
30
+ gap: 0.25rem;
31
+ }
32
+
33
+ .home-page-actions {
34
+ display: none;
35
+ align-items: center;
36
+ gap: 0.25rem;
37
+ }
38
+
39
+ .home-page-menu-trigger {
40
+ display: inline-flex;
41
+ }
42
+
43
+ .home-page-mobile-menu {
44
+ max-width: min(20rem, calc(100cqi - 2rem));
45
+ }
46
+
47
+ .home-page-main {
48
+ min-width: 0;
49
+ }
50
+
51
+ .home-page-content {
52
+ width: min(100%, 80rem);
53
+ margin-inline: auto;
54
+ padding: clamp(1rem, 5cqi, 3rem);
55
+ }
56
+
57
+ .home-page-hero {
58
+ display: grid;
59
+ align-items: center;
60
+ grid-template-columns: minmax(0, 1fr);
61
+ gap: clamp(2rem, 5cqi, 4rem);
62
+ }
63
+
64
+ .home-page-footer {
65
+ border-top: 1px solid var(--color-outline-variant);
66
+ background-color: var(--color-surface-container-low);
67
+ }
68
+
69
+ @container home-page (min-width: 48rem) {
70
+ .home-page-nav {
71
+ display: flex;
72
+ }
73
+
74
+ .home-page-actions {
75
+ display: flex;
76
+ }
77
+
78
+ .home-page-menu-trigger {
79
+ display: none;
80
+ }
81
+
82
+ .home-page-mobile-menu {
83
+ display: none;
84
+ }
85
+
86
+ .home-page-content {
87
+ padding-inline: clamp(2rem, 5cqi, 5rem);
88
+ }
89
+
90
+ .home-page-hero {
91
+ grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
92
+ }
93
+ }
94
+ }
@@ -5002,6 +5002,16 @@
5002
5002
  box-shadow: var(--shadow-xs);
5003
5003
  }
5004
5004
 
5005
+ .table-sticky th,
5006
+ .table-sticky thead th,
5007
+ .table-sticky .table-header-cell {
5008
+ position: sticky;
5009
+ top: 0;
5010
+ z-index: 10;
5011
+ background-color: var(--color-surface-container);
5012
+ box-shadow: var(--shadow-xs);
5013
+ }
5014
+
5005
5015
  /* Sortable Header */
5006
5016
  .table-sortable th {
5007
5017
  cursor: pointer;
@@ -14294,6 +14304,7 @@
14294
14304
  pointer-events: none;
14295
14305
  opacity: 0;
14296
14306
  transform: scale(0.95);
14307
+ overflow: visible;
14297
14308
  position-area: top;
14298
14309
  position-try-fallbacks: flip-block, flip-inline, flip-block flip-inline;
14299
14310
  transition:
@@ -15166,6 +15177,185 @@
15166
15177
  }
15167
15178
  }
15168
15179
 
15180
+ /**
15181
+ * Console Page Layout
15182
+ * Responsive application shell with expanded, icon-rail, and hidden sidebar states.
15183
+ */
15184
+
15185
+ @layer components {
15186
+ .console-page {
15187
+ --console-page-sidebar-width: 17.5rem;
15188
+ --console-page-sidebar-compact-width: 5rem;
15189
+ container-type: inline-size;
15190
+ container-name: console-page;
15191
+ width: 100%;
15192
+ min-width: 0;
15193
+ min-height: var(--console-page-min-height, 100dvh);
15194
+ background-color: var(--color-surface);
15195
+ color: var(--color-on-surface);
15196
+ }
15197
+
15198
+ .console-page-frame {
15199
+ display: grid;
15200
+ min-height: inherit;
15201
+ grid-template-areas:
15202
+ "appbar"
15203
+ "main";
15204
+ grid-template-columns: minmax(0, 1fr);
15205
+ grid-template-rows: auto minmax(0, 1fr);
15206
+ transition: grid-template-columns 240ms ease-out;
15207
+ }
15208
+
15209
+ .console-page-appbar {
15210
+ grid-area: appbar;
15211
+ z-index: 20;
15212
+ }
15213
+
15214
+ .console-page-sidebar {
15215
+ display: none;
15216
+ grid-area: sidebar;
15217
+ min-width: 0;
15218
+ overflow: hidden;
15219
+ background-color: var(--color-surface-container-low);
15220
+ border-inline-end: 1px solid var(--color-outline-variant);
15221
+ transition:
15222
+ opacity 160ms ease-out,
15223
+ visibility 160ms ease-out;
15224
+ }
15225
+
15226
+ .console-page-sidebar-header,
15227
+ .console-page-sidebar-footer {
15228
+ display: flex;
15229
+ align-items: center;
15230
+ gap: 0.75rem;
15231
+ min-height: 4rem;
15232
+ padding: 0.75rem 1rem;
15233
+ flex-shrink: 0;
15234
+ }
15235
+
15236
+ .console-page-sidebar-header {
15237
+ border-bottom: 1px solid var(--color-outline-variant);
15238
+ }
15239
+
15240
+ .console-page-sidebar-body {
15241
+ flex: 1;
15242
+ min-height: 0;
15243
+ overflow-y: auto;
15244
+ overflow-x: hidden;
15245
+ padding-block: 0.5rem;
15246
+ }
15247
+
15248
+ .console-page-sidebar-footer {
15249
+ border-top: 1px solid var(--color-outline-variant);
15250
+ }
15251
+
15252
+ .console-page-main {
15253
+ grid-area: main;
15254
+ min-width: 0;
15255
+ overflow: auto;
15256
+ padding: clamp(1rem, 4cqi, 2.5rem);
15257
+ background-color: var(--color-surface);
15258
+ }
15259
+
15260
+ .console-page-nav-label {
15261
+ overflow: hidden;
15262
+ text-overflow: ellipsis;
15263
+ white-space: nowrap;
15264
+ }
15265
+
15266
+ .console-page-sidebar-toggle {
15267
+ display: none;
15268
+ }
15269
+
15270
+ .console-page-menu-trigger {
15271
+ display: inline-flex;
15272
+ }
15273
+
15274
+ .console-page-mobile-menu {
15275
+ max-width: min(20rem, calc(100cqi - 2rem));
15276
+ }
15277
+
15278
+ @container console-page (min-width: 48rem) {
15279
+ .console-page-frame {
15280
+ grid-template-areas:
15281
+ "appbar appbar"
15282
+ "sidebar main";
15283
+ grid-template-columns: var(--console-page-sidebar-width) minmax(0, 1fr);
15284
+ }
15285
+
15286
+ .console-page-sidebar {
15287
+ display: flex;
15288
+ flex-direction: column;
15289
+ }
15290
+
15291
+ .console-page-sidebar-toggle {
15292
+ display: inline-flex;
15293
+ }
15294
+
15295
+ .console-page-menu-trigger {
15296
+ display: none;
15297
+ }
15298
+
15299
+ .console-page-mobile-menu {
15300
+ display: none;
15301
+ }
15302
+
15303
+ .console-page-sidebar-compact .console-page-frame {
15304
+ grid-template-columns: var(--console-page-sidebar-compact-width) minmax(0, 1fr);
15305
+ }
15306
+
15307
+ .console-page-sidebar-compact .console-page-nav-label {
15308
+ position: absolute;
15309
+ width: 1px;
15310
+ height: 1px;
15311
+ padding: 0;
15312
+ margin: -1px;
15313
+ overflow: hidden;
15314
+ clip: rect(0, 0, 0, 0);
15315
+ white-space: nowrap;
15316
+ border: 0;
15317
+ }
15318
+
15319
+ .console-page-sidebar-compact .console-page-sidebar-header,
15320
+ .console-page-sidebar-compact .console-page-sidebar-footer {
15321
+ justify-content: center;
15322
+ padding-inline: 0.75rem;
15323
+ }
15324
+
15325
+ .console-page-sidebar-compact .console-page-sidebar-body :is(.nested-menu li > a, .nested-menu li > button, .nested-menu summary) {
15326
+ justify-content: center;
15327
+ padding-inline: 0.75rem;
15328
+ }
15329
+
15330
+ .console-page-sidebar-compact .console-page-sidebar-body .drawer-item {
15331
+ justify-content: center;
15332
+ padding-inline: 0.75rem;
15333
+ }
15334
+
15335
+ .console-page-sidebar-compact .console-page-sidebar-body :is(.nested-menu-title, details > ul, summary::after) {
15336
+ display: none;
15337
+ }
15338
+
15339
+ .console-page-sidebar-hidden .console-page-frame {
15340
+ grid-template-areas:
15341
+ "appbar"
15342
+ "main";
15343
+ grid-template-columns: minmax(0, 1fr);
15344
+ }
15345
+
15346
+ .console-page-sidebar-hidden .console-page-sidebar {
15347
+ display: none;
15348
+ }
15349
+ }
15350
+
15351
+ @media (prefers-reduced-motion: reduce) {
15352
+ .console-page-frame,
15353
+ .console-page-sidebar {
15354
+ transition: none;
15355
+ }
15356
+ }
15357
+ }
15358
+
15169
15359
  /**
15170
15360
  * Divider Component Styles
15171
15361
  * DuskMoonUI - Material Design 3 inspired divider system
@@ -15541,6 +15731,182 @@
15541
15731
  }
15542
15732
  }
15543
15733
 
15734
+ /**
15735
+ * Home Page Layout
15736
+ * App-bar-led public application shell driven by its containing width.
15737
+ */
15738
+
15739
+ @layer components {
15740
+ .home-page {
15741
+ container-type: inline-size;
15742
+ container-name: home-page;
15743
+ width: 100%;
15744
+ min-width: 0;
15745
+ min-height: var(--home-page-min-height, 100dvh);
15746
+ background-color: var(--color-surface);
15747
+ color: var(--color-on-surface);
15748
+ }
15749
+
15750
+ .home-page-frame {
15751
+ display: grid;
15752
+ min-height: inherit;
15753
+ grid-template-rows: auto minmax(0, 1fr) auto;
15754
+ }
15755
+
15756
+ .home-page-header {
15757
+ z-index: 10;
15758
+ }
15759
+
15760
+ .home-page-nav {
15761
+ display: none;
15762
+ align-items: center;
15763
+ gap: 0.25rem;
15764
+ }
15765
+
15766
+ .home-page-actions {
15767
+ display: none;
15768
+ align-items: center;
15769
+ gap: 0.25rem;
15770
+ }
15771
+
15772
+ .home-page-menu-trigger {
15773
+ display: inline-flex;
15774
+ }
15775
+
15776
+ .home-page-mobile-menu {
15777
+ max-width: min(20rem, calc(100cqi - 2rem));
15778
+ }
15779
+
15780
+ .home-page-main {
15781
+ min-width: 0;
15782
+ }
15783
+
15784
+ .home-page-content {
15785
+ width: min(100%, 80rem);
15786
+ margin-inline: auto;
15787
+ padding: clamp(1rem, 5cqi, 3rem);
15788
+ }
15789
+
15790
+ .home-page-hero {
15791
+ display: grid;
15792
+ align-items: center;
15793
+ grid-template-columns: minmax(0, 1fr);
15794
+ gap: clamp(2rem, 5cqi, 4rem);
15795
+ }
15796
+
15797
+ .home-page-footer {
15798
+ border-top: 1px solid var(--color-outline-variant);
15799
+ background-color: var(--color-surface-container-low);
15800
+ }
15801
+
15802
+ @container home-page (min-width: 48rem) {
15803
+ .home-page-nav {
15804
+ display: flex;
15805
+ }
15806
+
15807
+ .home-page-actions {
15808
+ display: flex;
15809
+ }
15810
+
15811
+ .home-page-menu-trigger {
15812
+ display: none;
15813
+ }
15814
+
15815
+ .home-page-mobile-menu {
15816
+ display: none;
15817
+ }
15818
+
15819
+ .home-page-content {
15820
+ padding-inline: clamp(2rem, 5cqi, 5rem);
15821
+ }
15822
+
15823
+ .home-page-hero {
15824
+ grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
15825
+ }
15826
+ }
15827
+ }
15828
+
15829
+ /**
15830
+ * Sign Page Layout
15831
+ * Responsive authentication shell driven by its containing width.
15832
+ */
15833
+
15834
+ @layer components {
15835
+ .sign-page {
15836
+ container-type: inline-size;
15837
+ container-name: sign-page;
15838
+ width: 100%;
15839
+ min-width: 0;
15840
+ min-height: var(--sign-page-min-height, 100dvh);
15841
+ overflow: hidden;
15842
+ background-color: var(--color-surface);
15843
+ color: var(--color-on-surface);
15844
+ }
15845
+
15846
+ .sign-page-frame {
15847
+ display: grid;
15848
+ min-height: inherit;
15849
+ grid-template-columns: minmax(0, 1fr);
15850
+ }
15851
+
15852
+ .sign-page-aside {
15853
+ display: none;
15854
+ position: relative;
15855
+ isolation: isolate;
15856
+ overflow: hidden;
15857
+ padding: clamp(2rem, 6cqi, 5rem);
15858
+ background-color: var(--color-primary-container);
15859
+ color: var(--color-on-primary-container);
15860
+ }
15861
+
15862
+ .sign-page-aside::before,
15863
+ .sign-page-aside::after {
15864
+ content: "";
15865
+ position: absolute;
15866
+ z-index: -1;
15867
+ border-radius: var(--radius-full);
15868
+ background: color-mix(in oklch, var(--color-tertiary) 24%, transparent);
15869
+ filter: blur(1px);
15870
+ }
15871
+
15872
+ .sign-page-aside::before {
15873
+ width: 22rem;
15874
+ height: 22rem;
15875
+ inset: -8rem -6rem auto auto;
15876
+ }
15877
+
15878
+ .sign-page-aside::after {
15879
+ width: 15rem;
15880
+ height: 15rem;
15881
+ inset: auto auto -5rem -4rem;
15882
+ background: color-mix(in oklch, var(--color-secondary) 22%, transparent);
15883
+ }
15884
+
15885
+ .sign-page-main {
15886
+ display: grid;
15887
+ place-items: center;
15888
+ min-width: 0;
15889
+ padding: clamp(1rem, 6cqi, 4rem);
15890
+ background-color: var(--color-surface);
15891
+ }
15892
+
15893
+ .sign-page-content {
15894
+ width: min(100%, 30rem);
15895
+ }
15896
+
15897
+ @container sign-page (min-width: 48rem) {
15898
+ .sign-page-frame {
15899
+ grid-template-columns: minmax(20rem, 1.15fr) minmax(24rem, 0.85fr);
15900
+ }
15901
+
15902
+ .sign-page-aside {
15903
+ display: flex;
15904
+ flex-direction: column;
15905
+ justify-content: space-between;
15906
+ }
15907
+ }
15908
+ }
15909
+
15544
15910
 
15545
15911
  /* ============================================
15546
15912
  * NAVIGATION COMPONENTS