@jsekulowicz/ds-components 0.18.1 → 0.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 (39) hide show
  1. package/custom-elements.json +308 -7
  2. package/dist/atoms/nav-item/nav-control.styles.js +1 -1
  3. package/dist/atoms/nav-item/nav-group.d.ts +1 -0
  4. package/dist/atoms/nav-item/nav-group.d.ts.map +1 -1
  5. package/dist/atoms/nav-item/nav-group.js +2 -10
  6. package/dist/atoms/nav-item/nav-group.js.map +1 -1
  7. package/dist/atoms/nav-item/nav-group.styles.d.ts.map +1 -1
  8. package/dist/atoms/nav-item/nav-group.styles.js +0 -8
  9. package/dist/atoms/nav-item/nav-group.styles.js.map +1 -1
  10. package/dist/atoms/segmented-control/segmented-control.d.ts +1 -0
  11. package/dist/atoms/segmented-control/segmented-control.d.ts.map +1 -1
  12. package/dist/atoms/segmented-control/segmented-control.js +5 -1
  13. package/dist/atoms/segmented-control/segmented-control.js.map +1 -1
  14. package/dist/atoms/select/select.common-styles.d.ts.map +1 -1
  15. package/dist/atoms/select/select.common-styles.js +12 -2
  16. package/dist/atoms/select/select.common-styles.js.map +1 -1
  17. package/dist/atoms/table/table-rendering.d.ts +2 -0
  18. package/dist/atoms/table/table-rendering.d.ts.map +1 -1
  19. package/dist/atoms/table/table-rendering.js +2 -0
  20. package/dist/atoms/table/table-rendering.js.map +1 -1
  21. package/dist/atoms/table/table.d.ts.map +1 -1
  22. package/dist/atoms/table/table.js +35 -0
  23. package/dist/atoms/table/table.js.map +1 -1
  24. package/dist/organisms/sidenav/sidenav.d.ts +1 -0
  25. package/dist/organisms/sidenav/sidenav.d.ts.map +1 -1
  26. package/dist/organisms/sidenav/sidenav.js +5 -2
  27. package/dist/organisms/sidenav/sidenav.js.map +1 -1
  28. package/dist/organisms/sidenav/sidenav.styles.js +7 -7
  29. package/dist/shared/scroll-fade.styles.d.ts.map +1 -1
  30. package/dist/shared/scroll-fade.styles.js +2 -1
  31. package/dist/shared/scroll-fade.styles.js.map +1 -1
  32. package/dist/templates/page-shell/page-shell.d.ts +15 -1
  33. package/dist/templates/page-shell/page-shell.d.ts.map +1 -1
  34. package/dist/templates/page-shell/page-shell.js +188 -18
  35. package/dist/templates/page-shell/page-shell.js.map +1 -1
  36. package/dist/templates/page-shell/page-shell.styles.d.ts.map +1 -1
  37. package/dist/templates/page-shell/page-shell.styles.js +106 -12
  38. package/dist/templates/page-shell/page-shell.styles.js.map +1 -1
  39. package/package.json +1 -1
@@ -8,9 +8,13 @@ import { html } from 'lit';
8
8
  import { property, state } from 'lit/decorators.js';
9
9
  import { DsElement } from '@jsekulowicz/ds-core';
10
10
  import { pageShellStyles } from './page-shell.styles.js';
11
+ import { scrollFadeStyles } from '../../shared/scroll-fade.styles.js';
12
+ import { ScrollFadeController } from '../../shared/scroll-fade-controller.js';
11
13
  import '../../atoms/button/define.js';
12
14
  import '../../atoms/icon/define.js';
13
15
  import '../../atoms/icon/icons/bars-3.js';
16
+ import '../../atoms/icon/icons/chevron-left.js';
17
+ import '../../atoms/icon/icons/chevron-right.js';
14
18
  import '../../molecules/drawer/define.js';
15
19
  import '../../organisms/top-bar/define.js';
16
20
  /**
@@ -26,6 +30,8 @@ import '../../organisms/top-bar/define.js';
26
30
  * @cssprop --ds-page-shell-max-width - Outer cap for the shell's content column. Header inner
27
31
  * content and the aside + main row centre at this width and align vertically. Defaults to `none`.
28
32
  * Header chrome remains full-bleed.
33
+ * @event ds-aside-state-change - Emitted when an opt-in desktop aside toggle changes state.
34
+ * Detail: `{ side, state, previousState }`.
29
35
  */
30
36
  export class DsPageShell extends DsElement {
31
37
  constructor() {
@@ -33,6 +39,10 @@ export class DsPageShell extends DsElement {
33
39
  this.brand = '';
34
40
  this.menuLabel = 'Navigation menu';
35
41
  this.endLabel = 'Secondary navigation';
42
+ this.asideToggle = false;
43
+ this.asideEndToggle = false;
44
+ this.asideState = 'visible';
45
+ this.asideEndState = 'visible';
36
46
  this._mobileLayout = false;
37
47
  this._mobileNavOpen = false;
38
48
  this._hasAside = false;
@@ -40,6 +50,8 @@ export class DsPageShell extends DsElement {
40
50
  this._hasFooter = false;
41
51
  this.#resizeObserver = null;
42
52
  this.#slotObserver = null;
53
+ this._asideScrollFade = new ScrollFadeController(this, () => this.shadowRoot?.querySelector('aside[part="aside"]'));
54
+ this._asideEndScrollFade = new ScrollFadeController(this, () => this.shadowRoot?.querySelector('aside[part="aside-end"]'));
43
55
  this.#syncSlotPresence = () => {
44
56
  const aside = this.shadowRoot?.querySelector('slot[name="aside"]');
45
57
  const asideEnd = this.shadowRoot?.querySelector('slot[name="aside-end"]');
@@ -89,6 +101,7 @@ export class DsPageShell extends DsElement {
89
101
  const slot = event.target;
90
102
  this._hasAside = hasAssignedContent(slot);
91
103
  this.toggleAttribute('aside-empty', !this._hasAside);
104
+ this.#syncSlottedAsideCollapsed();
92
105
  };
93
106
  this.#onAsideEndSlotChange = (event) => {
94
107
  const slot = event.target;
@@ -100,8 +113,14 @@ export class DsPageShell extends DsElement {
100
113
  this._hasFooter = hasAssignedContent(slot);
101
114
  this.toggleAttribute('footer-empty', !this._hasFooter);
102
115
  };
116
+ this.#toggleAsideState = () => {
117
+ this.#setAsideState(this.#nextAsideState());
118
+ };
119
+ this.#toggleAsideEndState = () => {
120
+ this.#setAsideEndState(this.#nextAsideEndState());
121
+ };
103
122
  }
104
- static { this.styles = [...DsElement.styles, pageShellStyles]; }
123
+ static { this.styles = [...DsElement.styles, scrollFadeStyles, pageShellStyles]; }
105
124
  #resizeObserver;
106
125
  #slotObserver;
107
126
  connectedCallback() {
@@ -135,6 +154,13 @@ export class DsPageShell extends DsElement {
135
154
  firstUpdated() {
136
155
  this.#syncSlotPresence();
137
156
  }
157
+ updated(changed) {
158
+ if (changed.has('asideState') ||
159
+ changed.has('_mobileLayout') ||
160
+ changed.has('_hasAside')) {
161
+ this.#syncSlottedAsideCollapsed();
162
+ }
163
+ }
138
164
  #syncSlotPresence;
139
165
  #syncLayout;
140
166
  #setMobileNav;
@@ -144,6 +170,56 @@ export class DsPageShell extends DsElement {
144
170
  #onAsideSlotChange;
145
171
  #onAsideEndSlotChange;
146
172
  #onFooterSlotChange;
173
+ #syncSlottedAsideCollapsed() {
174
+ const aside = this.querySelector('[slot="aside"]');
175
+ if (!aside || this._mobileLayout) {
176
+ return;
177
+ }
178
+ if (!this.asideToggle && this.asideState === 'visible') {
179
+ return;
180
+ }
181
+ aside.toggleAttribute('collapsed', this.asideState !== 'visible');
182
+ }
183
+ #showStartToggle() {
184
+ return this.asideToggle && this._hasAside && !this._mobileLayout;
185
+ }
186
+ #showEndToggle() {
187
+ return this.asideEndToggle && this._hasAsideEnd && !this._mobileLayout;
188
+ }
189
+ #nextAsideState() {
190
+ if (this.asideState === 'visible') {
191
+ return 'compact';
192
+ }
193
+ if (this.asideState === 'compact') {
194
+ return 'hidden';
195
+ }
196
+ return 'visible';
197
+ }
198
+ #nextAsideEndState() {
199
+ return this.asideEndState === 'visible' ? 'hidden' : 'visible';
200
+ }
201
+ #setAsideState(state) {
202
+ const previousState = this.asideState;
203
+ if (state === previousState) {
204
+ return;
205
+ }
206
+ this.asideState = state;
207
+ this.emit('ds-aside-state-change', {
208
+ detail: { side: 'start', state, previousState },
209
+ });
210
+ }
211
+ #setAsideEndState(state) {
212
+ const previousState = this.asideEndState;
213
+ if (state === previousState) {
214
+ return;
215
+ }
216
+ this.asideEndState = state;
217
+ this.emit('ds-aside-state-change', {
218
+ detail: { side: 'end', state, previousState },
219
+ });
220
+ }
221
+ #toggleAsideState;
222
+ #toggleAsideEndState;
147
223
  render() {
148
224
  const ariaExpanded = this._mobileNavOpen ? 'true' : 'false';
149
225
  const hasFooter = this._hasFooter || hasNamedSlotContent(this, 'footer');
@@ -169,17 +245,11 @@ export class DsPageShell extends DsElement {
169
245
  </ds-top-bar>
170
246
  </header>
171
247
  <div class="shell-body" part="body">
172
- ${this._mobileLayout ? this.#renderMobileAside() : this.#renderDesktopAside()}
248
+ ${this._mobileLayout ? this.#renderMobileAside() : this.#renderDesktopStartCluster()}
173
249
  <main part="main">
174
250
  <slot></slot>
175
251
  </main>
176
- <aside
177
- part="aside-end"
178
- aria-label=${this.endLabel}
179
- ?hidden=${!this._hasAsideEnd}
180
- >
181
- <slot name="aside-end" @slotchange=${this.#onAsideEndSlotChange}></slot>
182
- </aside>
252
+ ${this._mobileLayout ? this.#renderMobileAsideEnd() : this.#renderDesktopEndCluster()}
183
253
  </div>
184
254
  ${hasFooter
185
255
  ? html `<footer part="footer">
@@ -187,15 +257,94 @@ export class DsPageShell extends DsElement {
187
257
  </footer>`
188
258
  : null}`;
189
259
  }
190
- #renderDesktopAside() {
191
- return html `<aside
192
- id="mobile-aside"
193
- part="aside"
194
- aria-label=${this.menuLabel}
195
- @click=${this.#onAsideClick}
196
- >
197
- <slot name="aside" @slotchange=${this.#onAsideSlotChange}></slot>
198
- </aside>`;
260
+ #renderDesktopStartCluster() {
261
+ if (!this._hasAside && !this.#showStartToggle()) {
262
+ return html `<slot name="aside" class="presence-slot" @slotchange=${this.#onAsideSlotChange}></slot>`;
263
+ }
264
+ return html `<div class="aside-start-cluster" part="aside-start-cluster">
265
+ <aside
266
+ id="desktop-aside"
267
+ class="scroll-fade"
268
+ part="aside"
269
+ aria-label=${this.menuLabel}
270
+ aria-hidden=${this.asideState === 'hidden' ? 'true' : 'false'}
271
+ ?hidden=${!this._hasAside}
272
+ ?inert=${this.asideState === 'hidden'}
273
+ @click=${this.#onAsideClick}
274
+ >
275
+ <slot name="aside" @slotchange=${this.#onAsideSlotChange}></slot>
276
+ </aside>
277
+ ${this.#renderStartToggle()}
278
+ </div>`;
279
+ }
280
+ #renderDesktopEndCluster() {
281
+ if (!this._hasAsideEnd && !this.#showEndToggle()) {
282
+ return html `<slot name="aside-end" class="presence-slot" @slotchange=${this.#onAsideEndSlotChange}></slot>`;
283
+ }
284
+ return html `<div class="aside-end-cluster" part="aside-end-cluster">
285
+ ${this.#renderEndToggle()}
286
+ <aside
287
+ id="desktop-aside-end"
288
+ class="scroll-fade"
289
+ part="aside-end"
290
+ aria-label=${this.endLabel}
291
+ aria-hidden=${this.asideEndState === 'hidden' ? 'true' : 'false'}
292
+ ?hidden=${!this._hasAsideEnd}
293
+ ?inert=${this.asideEndState === 'hidden'}
294
+ >
295
+ <slot name="aside-end" @slotchange=${this.#onAsideEndSlotChange}></slot>
296
+ </aside>
297
+ </div>`;
298
+ }
299
+ #renderStartToggle() {
300
+ if (!this.#showStartToggle()) {
301
+ return null;
302
+ }
303
+ const hidden = this.asideState === 'hidden';
304
+ const label = this.asideState === 'visible'
305
+ ? 'Collapse primary navigation'
306
+ : hidden
307
+ ? 'Show primary navigation'
308
+ : 'Hide primary navigation';
309
+ return html `<div class="aside-toggle-rail aside-toggle-start-rail" part="aside-toggle-rail aside-toggle-start-rail">
310
+ <ds-button
311
+ class="aside-toggle aside-toggle-start"
312
+ part="aside-toggle aside-toggle-start"
313
+ variant="secondary"
314
+ size="sm"
315
+ square
316
+ label=${label}
317
+ aria-label=${label}
318
+ aria-controls="desktop-aside"
319
+ aria-expanded=${hidden ? 'false' : 'true'}
320
+ @click=${this.#toggleAsideState}
321
+ >
322
+ <ds-icon slot="leading" name=${hidden ? 'chevron-right' : 'chevron-left'} size="lg"></ds-icon>
323
+ </ds-button>
324
+ </div>`;
325
+ }
326
+ #renderEndToggle() {
327
+ if (!this.#showEndToggle()) {
328
+ return null;
329
+ }
330
+ const hidden = this.asideEndState === 'hidden';
331
+ const label = hidden ? 'Show secondary navigation' : 'Hide secondary navigation';
332
+ return html `<div class="aside-toggle-rail aside-toggle-end-rail" part="aside-toggle-rail aside-toggle-end-rail">
333
+ <ds-button
334
+ class="aside-toggle aside-toggle-end"
335
+ part="aside-toggle aside-toggle-end"
336
+ variant="secondary"
337
+ size="sm"
338
+ square
339
+ label=${label}
340
+ aria-label=${label}
341
+ aria-controls="desktop-aside-end"
342
+ aria-expanded=${hidden ? 'false' : 'true'}
343
+ @click=${this.#toggleAsideEndState}
344
+ >
345
+ <ds-icon slot="leading" name=${hidden ? 'chevron-left' : 'chevron-right'} size="lg"></ds-icon>
346
+ </ds-button>
347
+ </div>`;
199
348
  }
200
349
  #renderMobileAside() {
201
350
  return html `<ds-drawer
@@ -213,6 +362,15 @@ export class DsPageShell extends DsElement {
213
362
  <slot name="aside" @slotchange=${this.#onAsideSlotChange}></slot>
214
363
  </ds-drawer>`;
215
364
  }
365
+ #renderMobileAsideEnd() {
366
+ return html `<aside
367
+ part="aside-end"
368
+ aria-label=${this.endLabel}
369
+ ?hidden=${!this._hasAsideEnd}
370
+ >
371
+ <slot name="aside-end" @slotchange=${this.#onAsideEndSlotChange}></slot>
372
+ </aside>`;
373
+ }
216
374
  }
217
375
  __decorate([
218
376
  property()
@@ -223,6 +381,18 @@ __decorate([
223
381
  __decorate([
224
382
  property({ attribute: 'end-label' })
225
383
  ], DsPageShell.prototype, "endLabel", void 0);
384
+ __decorate([
385
+ property({ type: Boolean, reflect: true, attribute: 'aside-toggle' })
386
+ ], DsPageShell.prototype, "asideToggle", void 0);
387
+ __decorate([
388
+ property({ type: Boolean, reflect: true, attribute: 'aside-end-toggle' })
389
+ ], DsPageShell.prototype, "asideEndToggle", void 0);
390
+ __decorate([
391
+ property({ reflect: true, attribute: 'aside-state' })
392
+ ], DsPageShell.prototype, "asideState", void 0);
393
+ __decorate([
394
+ property({ reflect: true, attribute: 'aside-end-state' })
395
+ ], DsPageShell.prototype, "asideEndState", void 0);
226
396
  __decorate([
227
397
  state()
228
398
  ], DsPageShell.prototype, "_mobileLayout", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"page-shell.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,mCAAmC,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAA1C;;QAGc,UAAK,GAAG,EAAE,CAAC;QACgB,cAAS,GAAG,iBAAiB,CAAC;QAC/B,aAAQ,GAAG,sBAAsB,CAAC;QACvD,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;QACvB,cAAS,GAAG,KAAK,CAAC;QAClB,iBAAY,GAAG,KAAK,CAAC;QACrB,eAAU,GAAG,KAAK,CAAC;QACpC,oBAAe,GAA0B,IAAI,CAAC;QAC9C,kBAAa,GAA4B,IAAI,CAAC;QAoC9C,sBAAiB,GAAG,GAAS,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAkB,oBAAoB,CAAC,CAAC;YACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAkB,wBAAwB,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAkB,qBAAqB,CAAC,CAAC;YACtF,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YACrE,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,KAAa,EAAQ,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,IAAa,EAAQ,EAAE;YACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,CAAc,gBAAgB,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;YAClF,CAAC;QACH,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAS,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,oBAAe,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,KAAY,EAAQ,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,MAAM,cAAc,GAAG,KAAK;iBACzB,YAAY,EAAE;iBACd,IAAI,CACH,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,YAAY,WAAW;gBAC3B,CAAC,IAAI,CAAC,OAAO,KAAK,aAAa;oBAC7B,IAAI,CAAC,OAAO,KAAK,GAAG;oBACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CACxC,CAAC;YACJ,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAEF,uBAAkB,GAAG,CAAC,KAAY,EAAQ,EAAE;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAyB,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,0BAAqB,GAAG,CAAC,KAAY,EAAQ,EAAE;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAyB,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,wBAAmB,GAAG,CAAC,KAAY,EAAQ,EAAE;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAyB,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC,CAAC;IAyEJ,CAAC;aA9LiB,WAAM,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,AAAzC,CAA0C;IAUhE,eAAe,CAA+B;IAC9C,aAAa,CAAiC;IAErC,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE;YAC/B,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEQ,YAAY;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAUf;IAEF,WAAW,CAMT;IAEF,aAAa,CAMX;IAEF,gBAAgB,CAEd;IAEF,eAAe,CAEb;IAEF,aAAa,CAgBX;IAEF,kBAAkB,CAIhB;IAEF,qBAAqB,CAInB;IAEF,mBAAmB,CAIjB;IAEO,MAAM;QACb,MAAM,YAAY,GAAqB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzE,OAAO,IAAI,CAAA;2CAC4B,IAAI,CAAC,SAAS;4CACb,IAAI,CAAC,KAAK;;YAE1C,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,IAAI,CAAA;;;;;wBAKM,IAAI,CAAC,SAAS;6BACT,IAAI,CAAC,SAAS;gCACX,YAAY;;yBAEnB,IAAI,CAAC,gBAAgB;;;2BAGnB;YACf,CAAC,CAAC,IAAI;;;;UAIR,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE;;;;;;uBAM9D,IAAI,CAAC,QAAQ;oBAChB,CAAC,IAAI,CAAC,YAAY;;+CAES,IAAI,CAAC,qBAAqB;;;QAGjE,SAAS;YACT,CAAC,CAAC,IAAI,CAAA;8CACgC,IAAI,CAAC,mBAAmB;oBAClD;YACZ,CAAC,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAA;;;mBAGI,IAAI,CAAC,SAAS;eAClB,IAAI,CAAC,aAAa;;uCAEM,IAAI,CAAC,kBAAkB;aACjD,CAAC;IACZ,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAA;;;;;cAKD,IAAI,CAAC,cAAc;cACnB,IAAI,CAAC,SAAS;kBACV,IAAI,CAAC,eAAe;mBACnB,IAAI,CAAC,eAAe;eACxB,IAAI,CAAC,aAAa;;+CAEc,IAAI,CAAC,KAAK;uCAClB,IAAI,CAAC,kBAAkB;iBAC7C,CAAC;IAChB,CAAC;;AA3LW;IAAX,QAAQ,EAAE;0CAAY;AACgB;IAAtC,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;8CAA+B;AAC/B;IAArC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;6CAAmC;AACvD;IAAhB,KAAK,EAAE;kDAA+B;AACtB;IAAhB,KAAK,EAAE;mDAAgC;AACvB;IAAhB,KAAK,EAAE;8CAA2B;AAClB;IAAhB,KAAK,EAAE;iDAA8B;AACrB;IAAhB,KAAK,EAAE;+CAA4B;AAuLtC,SAAS,mBAAmB,CAC1B,IAAiB,EACjB,IAAY,EACZ,IAA6B;IAE7B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAqB;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"page-shell.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-shell.styles.d.ts","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,yBAsJ3B,CAAC"}
1
+ {"version":3,"file":"page-shell.styles.d.ts","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,yBAoP3B,CAAC"}
@@ -4,6 +4,8 @@ const belowDesktopBreakpoint = unsafeCSS(`calc(${breakpoint.lg} - 0.02px)`);
4
4
  export const pageShellStyles = css `
5
5
  :host {
6
6
  --ds-page-shell-max-width: none;
7
+ --ds-page-shell-aside-toggle-clearance:
8
+ calc(var(--ds-size-sm) / 2);
7
9
 
8
10
  display: flex;
9
11
  flex-direction: column;
@@ -54,33 +56,62 @@ export const pageShellStyles = css `
54
56
  max-width: var(--ds-page-shell-max-width);
55
57
  margin-inline: auto;
56
58
  display: grid;
57
- grid-template-columns: auto 1fr auto;
59
+ grid-template-columns: auto minmax(0, 1fr) auto;
58
60
  min-height: 0;
59
61
  }
60
62
 
61
- :host([aside-empty]) .shell-body {
62
- grid-template-columns: 1fr auto;
63
+ .presence-slot {
64
+ display: none;
65
+ }
66
+
67
+ .aside-start-cluster,
68
+ .aside-end-cluster {
69
+ display: grid;
70
+ grid-template-columns: 1fr;
71
+ position: relative;
72
+ min-width: 0;
73
+ min-height: 0;
74
+ transition: grid-template-columns var(--ds-duration-slow) var(--ds-easing-standard);
63
75
  }
64
76
 
65
- :host([aside-end-empty]) .shell-body {
66
- grid-template-columns: auto 1fr;
77
+ .aside-start-cluster {
78
+ grid-column: 1;
79
+ border-inline-end: 1px solid var(--ds-color-border);
67
80
  }
68
81
 
69
- :host([aside-empty][aside-end-empty]) .shell-body {
70
- grid-template-columns: 1fr;
82
+ .aside-end-cluster {
83
+ grid-column: 3;
84
+ border-inline-start: 1px solid var(--ds-color-border);
85
+ }
86
+
87
+ main {
88
+ grid-column: 2;
71
89
  }
72
90
 
73
91
  aside {
74
92
  display: flex;
93
+ box-sizing: border-box;
75
94
  overflow-x: clip;
76
95
  overflow-y: auto;
77
96
  overflow-clip-margin-inline: var(--ds-space-2);
97
+ min-width: 0;
78
98
  min-height: 0;
79
- scrollbar-color: var(--ds-color-fg-subtle) transparent;
80
- scrollbar-width: thin;
81
- /* No scrollbar-gutter reservation: the aside sits flush with its column
82
- edge so the consumer's <main> solely owns the gap. The scrollbar
83
- appears on demand when the aside genuinely overflows. */
99
+ --ds-scroll-fade-depth: var(--ds-space-12, 3rem);
100
+ scrollbar-width: none;
101
+ mask-image: var(--ds-scroll-fade-mask);
102
+ transition: opacity var(--ds-duration-slow) var(--ds-easing-standard);
103
+ }
104
+
105
+ aside::-webkit-scrollbar {
106
+ display: none;
107
+ }
108
+
109
+ :host([aside-toggle]) aside[part="aside"] {
110
+ padding-inline-end: var(--ds-page-shell-aside-toggle-clearance);
111
+ }
112
+
113
+ :host([aside-end-toggle]) aside[part="aside-end"] {
114
+ padding-inline-start: var(--ds-page-shell-aside-toggle-clearance);
84
115
  }
85
116
 
86
117
  :host([aside-empty]) aside[part="aside"],
@@ -92,6 +123,66 @@ export const pageShellStyles = css `
92
123
  display: none;
93
124
  }
94
125
 
126
+ aside[hidden] {
127
+ display: none;
128
+ }
129
+
130
+ /* Collapsing to 0fr animates the grid track from its content width to zero
131
+ without measuring it in JS; the aside clips via overflow + min-width: 0.
132
+ The cluster keeps a small min-width so the toggle button that straddles
133
+ its edge never touches the viewport edge. */
134
+ :host([aside-state='hidden']) .aside-start-cluster,
135
+ :host([aside-end-state='hidden']) .aside-end-cluster {
136
+ grid-template-columns: 0fr;
137
+ min-width: calc(var(--ds-size-sm) / 2 + var(--ds-space-2));
138
+ }
139
+
140
+ :host([aside-state='hidden']) aside[part="aside"],
141
+ :host([aside-end-state='hidden']) aside[part="aside-end"] {
142
+ padding-inline: 0;
143
+ opacity: 0;
144
+ pointer-events: none;
145
+ }
146
+
147
+ :host([aside-state='compact']) aside[part="aside"] ::slotted(ds-sidenav) {
148
+ width: var(--ds-sidenav-collapsed-width, var(--ds-space-14, 3.5rem)) !important;
149
+ }
150
+
151
+ @media (prefers-reduced-motion: reduce) {
152
+ .aside-start-cluster,
153
+ .aside-end-cluster,
154
+ aside {
155
+ transition: none;
156
+ }
157
+ }
158
+
159
+ .aside-toggle-rail {
160
+ position: absolute;
161
+ inset-block-start: var(--ds-space-5);
162
+ z-index: 1;
163
+ width: var(--ds-size-sm);
164
+ min-width: var(--ds-size-sm);
165
+ height: var(--ds-size-sm);
166
+ }
167
+
168
+ .aside-toggle-start-rail {
169
+ inset-inline-end: calc(var(--ds-size-sm) / -2);
170
+ }
171
+
172
+ .aside-toggle-end-rail {
173
+ inset-inline-start: calc(var(--ds-size-sm) / -2);
174
+ }
175
+
176
+ .aside-toggle::part(button) {
177
+ flex-shrink: 0;
178
+ background: var(--ds-color-bg);
179
+ border-color: var(--ds-color-border);
180
+ }
181
+
182
+ .aside-toggle:hover::part(button) {
183
+ background: var(--ds-color-bg-subtle);
184
+ }
185
+
95
186
  main {
96
187
  padding: var(--ds-space-5);
97
188
  overflow-x: clip;
@@ -129,6 +220,9 @@ export const pageShellStyles = css `
129
220
  :host([mobile-layout]) .shell-body {
130
221
  grid-template-columns: 1fr;
131
222
  }
223
+ :host([mobile-layout]) main {
224
+ grid-column: 1;
225
+ }
132
226
  :host([mobile-layout]) aside[part="aside-end"] {
133
227
  display: none;
134
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"page-shell.styles.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,sBAAsB,GAAG,SAAS,CAAC,QAAQ,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0GX,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C5C,CAAC"}
1
+ {"version":3,"file":"page-shell.styles.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,sBAAsB,GAAG,SAAS,CAAC,QAAQ,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAqMX,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsekulowicz/ds-components",
3
- "version": "0.18.1",
3
+ "version": "0.19.0",
4
4
  "description": "Lit web components for the Design System Library (atoms, molecules, organisms, templates, pages).",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {