@kushagradhawan/kookie-ui 0.1.41 → 0.1.42
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/README.md +257 -60
- package/components.css +386 -79
- package/dist/cjs/components/schemas/base-button.schema.d.ts +319 -0
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/base-button.schema.js +2 -0
- package/dist/cjs/components/schemas/base-button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/button.schema.d.ts +686 -0
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/button.schema.js +2 -0
- package/dist/cjs/components/schemas/button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/icon-button.schema.d.ts +329 -0
- package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/icon-button.schema.js +2 -0
- package/dist/cjs/components/schemas/icon-button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/index.d.ts +52 -0
- package/dist/cjs/components/schemas/index.d.ts.map +1 -0
- package/dist/cjs/components/schemas/index.js +2 -0
- package/dist/cjs/components/schemas/index.js.map +7 -0
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts +1172 -0
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/toggle-button.schema.js +2 -0
- package/dist/cjs/components/schemas/toggle-button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +563 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js +2 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +7 -0
- package/dist/cjs/components/sheet.d.ts +1 -1
- package/dist/cjs/components/sheet.d.ts.map +1 -1
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +3 -3
- package/dist/cjs/components/shell.d.ts +125 -164
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/sidebar.d.ts +1 -7
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +3 -3
- package/dist/cjs/components/theme.d.ts +3 -0
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +3 -3
- package/dist/cjs/components/theme.props.d.ts +10 -0
- package/dist/cjs/components/theme.props.d.ts.map +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +3 -3
- package/dist/cjs/helpers/font-config.d.ts +96 -0
- package/dist/cjs/helpers/font-config.d.ts.map +1 -0
- package/dist/cjs/helpers/font-config.js +3 -0
- package/dist/cjs/helpers/font-config.js.map +7 -0
- package/dist/cjs/helpers/index.d.ts +1 -0
- package/dist/cjs/helpers/index.d.ts.map +1 -1
- package/dist/cjs/helpers/index.js +1 -1
- package/dist/cjs/helpers/index.js.map +2 -2
- package/dist/esm/components/schemas/base-button.schema.d.ts +319 -0
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/base-button.schema.js +2 -0
- package/dist/esm/components/schemas/base-button.schema.js.map +7 -0
- package/dist/esm/components/schemas/button.schema.d.ts +686 -0
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/button.schema.js +2 -0
- package/dist/esm/components/schemas/button.schema.js.map +7 -0
- package/dist/esm/components/schemas/icon-button.schema.d.ts +329 -0
- package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/icon-button.schema.js +2 -0
- package/dist/esm/components/schemas/icon-button.schema.js.map +7 -0
- package/dist/esm/components/schemas/index.d.ts +52 -0
- package/dist/esm/components/schemas/index.d.ts.map +1 -0
- package/dist/esm/components/schemas/index.js +2 -0
- package/dist/esm/components/schemas/index.js.map +7 -0
- package/dist/esm/components/schemas/toggle-button.schema.d.ts +1172 -0
- package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/toggle-button.schema.js +2 -0
- package/dist/esm/components/schemas/toggle-button.schema.js.map +7 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +563 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.js +2 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.js.map +7 -0
- package/dist/esm/components/sheet.d.ts +1 -1
- package/dist/esm/components/sheet.d.ts.map +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/sheet.js.map +3 -3
- package/dist/esm/components/shell.d.ts +125 -164
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.js.map +3 -3
- package/dist/esm/components/sidebar.d.ts +1 -7
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.js.map +3 -3
- package/dist/esm/components/theme.d.ts +3 -0
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.js.map +3 -3
- package/dist/esm/components/theme.props.d.ts +10 -0
- package/dist/esm/components/theme.props.d.ts.map +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/theme.props.js.map +3 -3
- package/dist/esm/helpers/font-config.d.ts +96 -0
- package/dist/esm/helpers/font-config.d.ts.map +1 -0
- package/dist/esm/helpers/font-config.js +3 -0
- package/dist/esm/helpers/font-config.js.map +7 -0
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.d.ts.map +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/index.js.map +2 -2
- package/package.json +23 -3
- package/schemas/base-button.d.ts +2 -0
- package/schemas/base-button.json +284 -0
- package/schemas/button.d.ts +2 -0
- package/schemas/button.json +535 -0
- package/schemas/icon-button.d.ts +2 -0
- package/schemas/icon-button.json +318 -0
- package/schemas/index.d.ts +2 -0
- package/schemas/index.json +2016 -0
- package/schemas/schemas.d.ts +29 -0
- package/schemas/toggle-button.d.ts +2 -0
- package/schemas/toggle-button.json +543 -0
- package/schemas/toggle-icon-button.d.ts +2 -0
- package/schemas/toggle-icon-button.json +326 -0
- package/schemas-json.d.ts +12 -0
- package/src/components/_internal/base-sidebar.css +1 -2
- package/src/components/schemas/base-button.schema.ts +339 -0
- package/src/components/schemas/button.schema.ts +198 -0
- package/src/components/schemas/icon-button.schema.ts +142 -0
- package/src/components/schemas/index.ts +68 -0
- package/src/components/schemas/toggle-button.schema.ts +122 -0
- package/src/components/schemas/toggle-icon-button.schema.ts +195 -0
- package/src/components/sheet.css +39 -19
- package/src/components/sheet.tsx +62 -3
- package/src/components/shell.css +510 -89
- package/src/components/shell.tsx +2055 -928
- package/src/components/sidebar.tsx +3 -22
- package/src/components/theme.props.tsx +8 -0
- package/src/components/theme.tsx +16 -0
- package/src/helpers/font-config.ts +167 -0
- package/src/helpers/index.ts +1 -0
- package/src/styles/fonts.css +16 -13
- package/src/styles/tokens/typography.css +27 -4
- package/styles.css +398 -79
- package/tokens/base.css +12 -0
- package/tokens.css +12 -0
package/src/components/shell.css
CHANGED
|
@@ -1,155 +1,576 @@
|
|
|
1
|
+
/* stylelint-disable selector-max-specificity */
|
|
1
2
|
/*
|
|
2
|
-
Shell
|
|
3
|
-
-
|
|
4
|
-
-
|
|
3
|
+
Shell Layout System
|
|
4
|
+
- Slot-based layout with 7 slots: Header, Rail, Panel, Sidebar, Content, Inspector, Bottom
|
|
5
|
+
- Responsive presentation: fixed vs overlay per breakpoint
|
|
6
|
+
- Animation principle: collapse -> fade content, then collapse container; expand -> expand container, then fade content
|
|
7
|
+
- Composition rules: Rail+Panel OR Sidebar (exclusive)
|
|
5
8
|
*/
|
|
9
|
+
|
|
10
|
+
/* Root container - vertical layout */
|
|
6
11
|
.rt-ShellRoot {
|
|
7
|
-
inline-size: 100%;
|
|
8
12
|
display: flex;
|
|
9
13
|
flex-direction: column;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
--shell-sidebar-rail-width: var(--space-9, 64px);
|
|
13
|
-
--shell-sidebar-panel-width: 288px;
|
|
14
|
-
--shell-sidebar-combined-width: calc(
|
|
15
|
-
var(--shell-sidebar-rail-width) + var(--shell-sidebar-panel-width)
|
|
16
|
-
);
|
|
17
|
-
/* Overlay width hook - set by JS to one of the tokens above */
|
|
18
|
-
--shell-overlay-width: auto;
|
|
14
|
+
width: 100%;
|
|
15
|
+
overflow: hidden;
|
|
19
16
|
}
|
|
17
|
+
|
|
18
|
+
/* Default height when no height prop is provided */
|
|
19
|
+
.rt-ShellRoot:not([style*='height']) {
|
|
20
|
+
height: 100vh;
|
|
21
|
+
}
|
|
22
|
+
|
|
20
23
|
@supports (height: 100dvh) {
|
|
21
|
-
.rt-ShellRoot {
|
|
22
|
-
|
|
24
|
+
.rt-ShellRoot:not([style*='height']) {
|
|
25
|
+
height: 100dvh;
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
|
|
26
|
-
/*
|
|
29
|
+
/* Header - fixed at top */
|
|
27
30
|
.rt-ShellHeader {
|
|
28
31
|
position: sticky;
|
|
29
32
|
top: 0;
|
|
30
|
-
|
|
31
|
-
z-index: var(--shell-z-header, 10);
|
|
33
|
+
z-index: 50;
|
|
32
34
|
height: var(--shell-header-height, 64px);
|
|
33
35
|
min-height: var(--shell-header-height, 64px);
|
|
36
|
+
background-color: var(--color-panel);
|
|
34
37
|
display: flex;
|
|
35
38
|
align-items: center;
|
|
36
|
-
|
|
39
|
+
flex-shrink: 0;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
|
-
/* Body
|
|
42
|
+
/* Body - main horizontal layout container */
|
|
40
43
|
.rt-ShellBody {
|
|
41
44
|
display: flex;
|
|
42
45
|
flex-direction: row;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
flex: 1 1 auto;
|
|
46
|
-
block-size: auto;
|
|
47
|
-
min-block-size: 0;
|
|
48
|
-
min-inline-size: 0;
|
|
46
|
+
flex: 1;
|
|
47
|
+
min-height: 0;
|
|
49
48
|
overflow: hidden;
|
|
49
|
+
position: relative; /* enable absolute positioning for peek overlays */
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
/*
|
|
53
|
-
.rt-
|
|
52
|
+
/* Left container - holds Rail, Panel, or Sidebar */
|
|
53
|
+
.rt-ShellLeft {
|
|
54
54
|
display: flex;
|
|
55
55
|
flex-direction: row;
|
|
56
56
|
align-items: stretch;
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
flex-shrink: 0;
|
|
58
|
+
height: 100%;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
/* Rail
|
|
62
|
-
.rt-
|
|
61
|
+
/* Rail - slim navigation strip */
|
|
62
|
+
.rt-ShellRail {
|
|
63
63
|
display: flex;
|
|
64
64
|
flex-direction: column;
|
|
65
|
-
|
|
65
|
+
height: 100%;
|
|
66
|
+
background-color: var(--color-surface);
|
|
67
|
+
overflow: hidden;
|
|
68
|
+
|
|
69
|
+
/* Animation setup */
|
|
70
|
+
transition: width var(--motion-duration-small) var(--motion-ease-standard);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.rt-ShellRail[data-mode='expanded'] {
|
|
74
|
+
width: var(--rail-size, 64px);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.rt-ShellRail[data-mode='collapsed'] {
|
|
78
|
+
width: 0px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Keep collapsed panes out of flow to avoid layout blips when exiting peek */
|
|
82
|
+
.rt-ShellRail[data-mode='collapsed'] {
|
|
83
|
+
position: absolute;
|
|
84
|
+
inset-block: 0;
|
|
85
|
+
inset-inline-start: 0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Peek overlay rules consolidated later to avoid duplication */
|
|
89
|
+
|
|
90
|
+
.rt-ShellRailContent {
|
|
91
|
+
display: flex;
|
|
92
|
+
flex-direction: column;
|
|
93
|
+
width: var(--rail-size, 64px);
|
|
94
|
+
height: 100%;
|
|
95
|
+
padding: var(--space-2);
|
|
66
96
|
gap: var(--space-2);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
97
|
+
|
|
98
|
+
/* Content animation: fade out first, then fade in after width settles */
|
|
99
|
+
opacity: 0;
|
|
100
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard)
|
|
101
|
+
var(--motion-duration-small);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.rt-ShellRailContent[data-visible] {
|
|
105
|
+
opacity: 1;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.rt-ShellRail[data-mode='collapsed'] .rt-ShellRailContent {
|
|
109
|
+
/* Exit animation: fade out content first */
|
|
110
|
+
opacity: 0;
|
|
111
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Panel - sidebar content next to Rail */
|
|
115
|
+
.rt-ShellPanel {
|
|
116
|
+
display: flex;
|
|
117
|
+
flex-direction: column;
|
|
118
|
+
height: 100%;
|
|
119
|
+
background-color: var(--color-panel);
|
|
120
|
+
/* Allow handle to bleed across boundary */
|
|
121
|
+
overflow: visible;
|
|
122
|
+
position: relative;
|
|
123
|
+
z-index: 1;
|
|
124
|
+
|
|
125
|
+
/* Animation setup */
|
|
126
|
+
transition: width var(--motion-duration-small) var(--motion-ease-standard);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.rt-ShellPanel[data-visible] {
|
|
130
|
+
width: var(--panel-size, 288px);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.rt-ShellPanel:not([data-visible]) {
|
|
134
|
+
width: 0px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Keep collapsed panel out of flow to avoid layout blips when exiting peek */
|
|
138
|
+
.rt-ShellPanel:not([data-visible]) {
|
|
139
|
+
position: absolute;
|
|
140
|
+
inset-block: 0;
|
|
141
|
+
inset-inline-start: var(--peek-rail-width, var(--rail-size, 64px));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.rt-ShellPanelContent {
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
width: var(--panel-size, 288px);
|
|
148
|
+
height: 100%;
|
|
70
149
|
overflow: hidden;
|
|
71
|
-
|
|
150
|
+
|
|
151
|
+
/* Content animation */
|
|
72
152
|
opacity: 0;
|
|
73
|
-
transition:
|
|
74
|
-
|
|
75
|
-
|
|
153
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard)
|
|
154
|
+
var(--motion-duration-small);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.rt-ShellPanelContent[data-visible] {
|
|
158
|
+
opacity: 1;
|
|
76
159
|
}
|
|
77
160
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
display: block;
|
|
81
|
-
/* Staggered animation: width first, then content fade */
|
|
161
|
+
.rt-ShellPanel:not([data-visible]) .rt-ShellPanelContent {
|
|
162
|
+
/* Exit animation: fade out content first */
|
|
82
163
|
opacity: 0;
|
|
83
|
-
transition:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
164
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* Sidebar - alternative to Rail+Panel */
|
|
168
|
+
.rt-ShellSidebar {
|
|
169
|
+
display: flex;
|
|
170
|
+
flex-direction: column;
|
|
171
|
+
height: 100%;
|
|
172
|
+
background-color: var(--color-panel);
|
|
173
|
+
/* Allow handle to bleed across boundary */
|
|
174
|
+
overflow: visible;
|
|
175
|
+
position: relative;
|
|
176
|
+
z-index: 1;
|
|
177
|
+
|
|
178
|
+
/* Animation setup */
|
|
179
|
+
transition: width var(--motion-duration-small) var(--motion-ease-standard);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.rt-ShellSidebar[data-mode='expanded'] {
|
|
183
|
+
width: var(--sidebar-size, 288px);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.rt-ShellSidebar[data-mode='thin'] {
|
|
187
|
+
width: var(--sidebar-thin-size, 64px);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* Ensure content matches thin width in thin mode */
|
|
191
|
+
.rt-ShellSidebar[data-mode='thin'] .rt-ShellSidebarContent {
|
|
192
|
+
width: var(--sidebar-thin-size, 64px);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.rt-ShellSidebar[data-mode='collapsed'] {
|
|
196
|
+
width: 0px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* Keep collapsed sidebar out of flow to avoid layout blips when exiting peek */
|
|
200
|
+
.rt-ShellSidebar[data-mode='collapsed'] {
|
|
201
|
+
position: absolute;
|
|
202
|
+
inset-block: 0;
|
|
203
|
+
inset-inline-start: 0;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.rt-ShellSidebarContent {
|
|
207
|
+
display: flex;
|
|
208
|
+
flex-direction: column;
|
|
209
|
+
width: 100%;
|
|
210
|
+
height: 100%;
|
|
88
211
|
overflow: hidden;
|
|
212
|
+
|
|
213
|
+
/* Content animation */
|
|
214
|
+
opacity: 0;
|
|
215
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard)
|
|
216
|
+
var(--motion-duration-small);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* Hide resizer in thin mode */
|
|
220
|
+
.rt-ShellSidebar[data-mode='thin'] .rt-ShellResizer {
|
|
221
|
+
display: none;
|
|
89
222
|
}
|
|
90
223
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
224
|
+
.rt-ShellSidebarContent[data-visible] {
|
|
225
|
+
opacity: 1;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.rt-ShellSidebar[data-mode='collapsed'] .rt-ShellSidebarContent {
|
|
229
|
+
/* Exit animation: fade out content first */
|
|
94
230
|
opacity: 0;
|
|
95
|
-
transition:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
231
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* Content - main work area (always required) */
|
|
235
|
+
.rt-ShellContent {
|
|
236
|
+
flex: 1;
|
|
237
|
+
min-width: 0;
|
|
238
|
+
height: 100%;
|
|
239
|
+
overflow: auto;
|
|
240
|
+
background-color: var(--color-surface);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/* Inspector - right-side panel */
|
|
244
|
+
.rt-ShellInspector {
|
|
245
|
+
display: flex;
|
|
246
|
+
flex-direction: column;
|
|
247
|
+
height: 100%;
|
|
248
|
+
background-color: var(--color-panel);
|
|
249
|
+
/* Allow handle to bleed across boundary */
|
|
250
|
+
overflow: visible;
|
|
251
|
+
position: relative;
|
|
252
|
+
z-index: 1;
|
|
253
|
+
|
|
254
|
+
/* Animation setup */
|
|
255
|
+
transition: width var(--motion-duration-small) var(--motion-ease-standard);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.rt-ShellInspector[data-mode='expanded'] {
|
|
259
|
+
width: var(--inspector-size, 320px);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.rt-ShellInspector[data-mode='collapsed'] {
|
|
263
|
+
width: 0px;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.rt-ShellInspector[data-mode='collapsed'] {
|
|
267
|
+
position: absolute;
|
|
268
|
+
inset-block: 0;
|
|
269
|
+
inset-inline-end: 0;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.rt-ShellInspectorContent {
|
|
273
|
+
display: flex;
|
|
274
|
+
flex-direction: column;
|
|
275
|
+
width: var(--inspector-size, 320px);
|
|
276
|
+
height: 100%;
|
|
99
277
|
overflow: hidden;
|
|
278
|
+
|
|
279
|
+
/* Content animation */
|
|
280
|
+
opacity: 0;
|
|
281
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard)
|
|
282
|
+
var(--motion-duration-small);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.rt-ShellInspectorContent[data-visible] {
|
|
286
|
+
opacity: 1;
|
|
100
287
|
}
|
|
101
288
|
|
|
102
|
-
|
|
103
|
-
:
|
|
104
|
-
:where(.rt-ShellSidebarPanel):not([data-visible]),
|
|
105
|
-
:where(.rt-ShellSidebarSingle):not([data-visible]) {
|
|
289
|
+
.rt-ShellInspector[data-mode='collapsed'] .rt-ShellInspectorContent {
|
|
290
|
+
/* Exit animation: fade out content first */
|
|
106
291
|
opacity: 0;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
292
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/* Bottom - bottom panel */
|
|
296
|
+
.rt-ShellBottom {
|
|
297
|
+
display: flex;
|
|
298
|
+
flex-direction: column;
|
|
299
|
+
width: 100%;
|
|
300
|
+
background-color: var(--color-panel);
|
|
301
|
+
/* Allow handle to bleed across boundary */
|
|
302
|
+
overflow: visible;
|
|
303
|
+
flex-shrink: 0;
|
|
304
|
+
position: relative;
|
|
305
|
+
|
|
306
|
+
/* Animation setup */
|
|
307
|
+
transition: height var(--motion-duration-small) var(--motion-ease-standard);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.rt-ShellBottom[data-mode='expanded'] {
|
|
311
|
+
height: var(--bottom-size, 200px);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.rt-ShellBottom[data-mode='collapsed'] {
|
|
315
|
+
height: 0px;
|
|
112
316
|
}
|
|
113
317
|
|
|
114
|
-
|
|
115
|
-
|
|
318
|
+
.rt-ShellBottomContent {
|
|
319
|
+
display: flex;
|
|
320
|
+
flex-direction: column;
|
|
321
|
+
width: 100%;
|
|
322
|
+
height: var(--bottom-size, 200px);
|
|
323
|
+
overflow: hidden;
|
|
324
|
+
|
|
325
|
+
/* Content animation */
|
|
326
|
+
opacity: 0;
|
|
327
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard)
|
|
328
|
+
var(--motion-duration-small);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.rt-ShellBottomContent[data-visible] {
|
|
116
332
|
opacity: 1;
|
|
117
333
|
}
|
|
118
334
|
|
|
335
|
+
/* Disable transitions during active resize */
|
|
336
|
+
.rt-ShellPanel[data-resizing],
|
|
337
|
+
.rt-ShellSidebar[data-resizing],
|
|
338
|
+
.rt-ShellInspector[data-resizing],
|
|
339
|
+
.rt-ShellBottom[data-resizing] {
|
|
340
|
+
transition: none !important;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* Hide resizer when panel isn't visible or is peeking */
|
|
344
|
+
.rt-ShellPanel:not([data-visible]) .rt-ShellResizer,
|
|
345
|
+
.rt-ShellPanel[data-peek] .rt-ShellResizer {
|
|
346
|
+
display: none;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* Hide resizer for other panes when hidden or peeking */
|
|
350
|
+
.rt-ShellInspector[data-mode='collapsed'] .rt-ShellResizer,
|
|
351
|
+
.rt-ShellInspector[data-peek] .rt-ShellResizer,
|
|
352
|
+
.rt-ShellBottom[data-mode='collapsed'] .rt-ShellResizer,
|
|
353
|
+
.rt-ShellBottom[data-peek] .rt-ShellResizer,
|
|
354
|
+
.rt-ShellSidebar[data-mode='collapsed'] .rt-ShellResizer,
|
|
355
|
+
.rt-ShellSidebar[data-peek] .rt-ShellResizer {
|
|
356
|
+
display: none;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.rt-ShellBottom[data-mode='collapsed'] .rt-ShellBottomContent {
|
|
360
|
+
/* Exit animation: fade out content first */
|
|
361
|
+
opacity: 0;
|
|
362
|
+
transition: opacity var(--motion-duration-small) var(--motion-ease-standard);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/* Overlay mode handling */
|
|
366
|
+
[data-presentation='overlay'] {
|
|
367
|
+
/* Overlay handled by JS/Sheet; no extra CSS needed */
|
|
368
|
+
contain: style;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* Stacked mode handling: panes float above content without reflow */
|
|
372
|
+
.rt-ShellLeft[data-presentation='stacked'] {
|
|
373
|
+
position: absolute;
|
|
374
|
+
inset-block: 0;
|
|
375
|
+
inset-inline-start: 0;
|
|
376
|
+
z-index: 30; /* below overlay sheets, above content/fixed */
|
|
377
|
+
transform: translateX(-100%);
|
|
378
|
+
will-change: transform;
|
|
379
|
+
transition:
|
|
380
|
+
transform var(--motion-duration-small) var(--motion-ease-standard),
|
|
381
|
+
box-shadow var(--motion-duration-small) var(--motion-ease-standard);
|
|
382
|
+
box-shadow: 4px 0 12px -6px rgba(0, 0, 0, 0.2);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.rt-ShellLeft[data-presentation='stacked'][data-open] {
|
|
386
|
+
transform: translateX(0);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
/* Ensure peek forces visibility in stacked mode */
|
|
390
|
+
.rt-ShellLeft[data-presentation='stacked'][data-peek] {
|
|
391
|
+
transform: translateX(0);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/* Stacked Inspector: right side */
|
|
395
|
+
.rt-ShellInspector[data-presentation='stacked'] {
|
|
396
|
+
position: absolute;
|
|
397
|
+
inset-block: 0;
|
|
398
|
+
inset-inline-end: 0;
|
|
399
|
+
z-index: 32; /* above left and bottom stacked */
|
|
400
|
+
width: var(--inspector-size, 320px);
|
|
401
|
+
transform: translateX(100%);
|
|
402
|
+
transition:
|
|
403
|
+
transform var(--motion-duration-small) var(--motion-ease-standard),
|
|
404
|
+
box-shadow var(--motion-duration-small) var(--motion-ease-standard);
|
|
405
|
+
box-shadow: -4px 0 12px -6px rgba(0, 0, 0, 0.2);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.rt-ShellInspector[data-presentation='stacked'][data-open] {
|
|
409
|
+
transform: translateX(0);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
.rt-ShellInspector[data-presentation='stacked'][data-peek] {
|
|
413
|
+
transform: translateX(0);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/* Stacked Bottom: bottom edge */
|
|
417
|
+
.rt-ShellBottom[data-presentation='stacked'] {
|
|
418
|
+
position: absolute;
|
|
419
|
+
inset-inline: 0;
|
|
420
|
+
inset-block-end: 0;
|
|
421
|
+
z-index: 31; /* between left and inspector */
|
|
422
|
+
height: var(--bottom-size, 200px);
|
|
423
|
+
transform: translateY(100%);
|
|
424
|
+
transition:
|
|
425
|
+
transform var(--motion-duration-small) var(--motion-ease-standard),
|
|
426
|
+
box-shadow var(--motion-duration-small) var(--motion-ease-standard);
|
|
427
|
+
box-shadow: 0 -4px 12px -6px rgba(0, 0, 0, 0.2);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.rt-ShellBottom[data-presentation='stacked'][data-open] {
|
|
431
|
+
transform: translateY(0);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.rt-ShellBottom[data-presentation='stacked'][data-peek] {
|
|
435
|
+
transform: translateY(0);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/* Accessibility - reduced motion */
|
|
119
439
|
@media (prefers-reduced-motion: reduce) {
|
|
120
|
-
.rt-
|
|
121
|
-
.rt-
|
|
122
|
-
.rt-
|
|
440
|
+
.rt-ShellRail,
|
|
441
|
+
.rt-ShellPanel,
|
|
442
|
+
.rt-ShellSidebar,
|
|
443
|
+
.rt-ShellInspector,
|
|
444
|
+
.rt-ShellBottom,
|
|
445
|
+
.rt-ShellRailContent,
|
|
446
|
+
.rt-ShellPanelContent,
|
|
447
|
+
.rt-ShellSidebarContent,
|
|
448
|
+
.rt-ShellInspectorContent,
|
|
449
|
+
.rt-ShellBottomContent {
|
|
123
450
|
transition: none;
|
|
124
451
|
}
|
|
125
452
|
}
|
|
126
453
|
|
|
127
|
-
/*
|
|
128
|
-
|
|
129
|
-
|
|
454
|
+
/* Trigger styling intentionally omitted */
|
|
455
|
+
|
|
456
|
+
/* Resizer handle (unstyled, full-edge overlay) */
|
|
457
|
+
.rt-ShellResizer {
|
|
458
|
+
position: absolute;
|
|
459
|
+
z-index: 1;
|
|
460
|
+
background: transparent;
|
|
461
|
+
/* hit target size, adjustable per media */
|
|
462
|
+
--resizer-hit: var(--space-3);
|
|
463
|
+
display: flex;
|
|
464
|
+
align-items: center;
|
|
465
|
+
justify-content: center;
|
|
466
|
+
overflow: visible;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.rt-ShellResizer[data-orientation='vertical'][data-edge='end'] {
|
|
470
|
+
inset-block: 0;
|
|
471
|
+
inset-inline-end: 0;
|
|
472
|
+
inline-size: var(--resizer-hit);
|
|
130
473
|
block-size: 100%;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
overflow: auto;
|
|
474
|
+
cursor: col-resize;
|
|
475
|
+
transform: translateX(50%);
|
|
134
476
|
}
|
|
135
477
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
478
|
+
.rt-ShellResizer[data-orientation='vertical'][data-edge='start'] {
|
|
479
|
+
inset-block: 0;
|
|
480
|
+
inset-inline-start: 0;
|
|
481
|
+
inline-size: var(--resizer-hit);
|
|
482
|
+
block-size: 100%;
|
|
483
|
+
cursor: col-resize;
|
|
484
|
+
transform: translateX(-50%);
|
|
139
485
|
}
|
|
140
486
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
487
|
+
.rt-ShellResizer[data-orientation='horizontal'][data-edge='start'] {
|
|
488
|
+
inset-inline: 0;
|
|
489
|
+
inset-block-start: 0;
|
|
490
|
+
inline-size: 100%;
|
|
491
|
+
block-size: var(--resizer-hit);
|
|
492
|
+
cursor: row-resize;
|
|
493
|
+
transform: translateY(-50%);
|
|
145
494
|
}
|
|
146
495
|
|
|
147
|
-
:
|
|
148
|
-
|
|
149
|
-
|
|
496
|
+
@media (pointer: coarse) {
|
|
497
|
+
.rt-ShellResizer {
|
|
498
|
+
--resizer-hit: var(--space-6);
|
|
499
|
+
}
|
|
150
500
|
}
|
|
151
501
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
502
|
+
/* --- Peek overlays (override after pane rules) --- */
|
|
503
|
+
.rt-ShellRail[data-peek],
|
|
504
|
+
.rt-ShellPanel[data-peek],
|
|
505
|
+
.rt-ShellSidebar[data-peek],
|
|
506
|
+
.rt-ShellInspector[data-peek],
|
|
507
|
+
.rt-ShellBottom[data-peek] {
|
|
508
|
+
position: absolute;
|
|
509
|
+
z-index: 40;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/* Directional shadows for peeks */
|
|
513
|
+
.rt-ShellRail[data-peek],
|
|
514
|
+
.rt-ShellPanel[data-peek],
|
|
515
|
+
.rt-ShellSidebar[data-peek] {
|
|
516
|
+
box-shadow: 4px 0 8px -4px rgba(0, 0, 0, 0.15);
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
.rt-ShellInspector[data-peek] {
|
|
520
|
+
box-shadow: -4px 0 8px -4px rgba(0, 0, 0, 0.15);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
.rt-ShellBottom[data-peek] {
|
|
524
|
+
box-shadow: 0 -4px 8px -4px rgba(0, 0, 0, 0.15);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/* Force content visible during peek */
|
|
528
|
+
.rt-ShellRail[data-peek] .rt-ShellRailContent,
|
|
529
|
+
.rt-ShellPanel[data-peek] .rt-ShellPanelContent,
|
|
530
|
+
.rt-ShellSidebar[data-peek] .rt-ShellSidebarContent,
|
|
531
|
+
.rt-ShellInspector[data-peek] .rt-ShellInspectorContent,
|
|
532
|
+
.rt-ShellBottom[data-peek] .rt-ShellBottomContent {
|
|
533
|
+
opacity: 1;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/* Rail peek: left edge */
|
|
537
|
+
.rt-ShellRail[data-peek] {
|
|
538
|
+
inset-block: 0;
|
|
539
|
+
inset-inline-start: 0;
|
|
540
|
+
width: var(--rail-size, 64px);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/* Panel peek: offset by rail width; override hidden width */
|
|
544
|
+
.rt-ShellPanel[data-peek] {
|
|
545
|
+
inset-block: 0;
|
|
546
|
+
inset-inline-start: var(--peek-rail-width, var(--rail-size, 64px));
|
|
547
|
+
width: var(--panel-size, 288px);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
/* Sidebar peek: left edge; if collapsed, use fallback width */
|
|
551
|
+
.rt-ShellSidebar[data-peek] {
|
|
552
|
+
inset-block: 0;
|
|
553
|
+
inset-inline-start: 0;
|
|
554
|
+
/* Always use peek width when peeking */
|
|
555
|
+
width: var(--peek-sidebar-width, var(--sidebar-size, 288px));
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/* Inspector peek: right edge; ensure width even when collapsed */
|
|
559
|
+
.rt-ShellInspector[data-peek] {
|
|
560
|
+
inset-block: 0;
|
|
561
|
+
inset-inline-end: 0;
|
|
562
|
+
width: var(--inspector-size, 320px);
|
|
563
|
+
}
|
|
564
|
+
.rt-ShellInspector[data-peek][data-mode='collapsed'] {
|
|
565
|
+
width: var(--inspector-size, 320px);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
/* Bottom peek: bottom edge; ensure height when collapsed */
|
|
569
|
+
.rt-ShellBottom[data-peek] {
|
|
570
|
+
inset-inline: 0;
|
|
571
|
+
inset-block-end: 0;
|
|
572
|
+
height: var(--bottom-size, 200px);
|
|
573
|
+
}
|
|
574
|
+
.rt-ShellBottom[data-peek][data-mode='collapsed'] {
|
|
575
|
+
height: var(--bottom-size, 200px);
|
|
155
576
|
}
|