@nldd/design-system 0.8.65 → 0.8.67

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 (97) hide show
  1. package/dist/components/actions/toolbar/toolbar.d.ts +4 -2
  2. package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
  3. package/dist/components/actions/toolbar/toolbar.js +4 -2
  4. package/dist/components/actions/toolbar/toolbar.js.map +1 -1
  5. package/dist/components/actions/toolbar/toolbar.styles.d.ts.map +1 -1
  6. package/dist/components/actions/toolbar/toolbar.styles.js +32 -8
  7. package/dist/components/actions/toolbar/toolbar.styles.js.map +1 -1
  8. package/dist/components/actions/toolbar/toolbar.template.d.ts.map +1 -1
  9. package/dist/components/actions/toolbar/toolbar.template.js +5 -2
  10. package/dist/components/actions/toolbar/toolbar.template.js.map +1 -1
  11. package/dist/components/components.js +1 -1
  12. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  13. package/dist/components/content/icon/icon-aliases.js +21 -7
  14. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  15. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  16. package/dist/components/content/icon/icon-registry.js +16 -4
  17. package/dist/components/content/icon/icon-registry.js.map +1 -1
  18. package/dist/components/{index-D3NSlPL5.js → index-Bfw_pYWB.js} +1 -1
  19. package/dist/components/{index-BlMqctke.js → index-Bqf6o41r.js} +1 -1
  20. package/dist/components/{index-BseMFLNF.js → index-CKnwqp_9.js} +1 -1
  21. package/dist/components/{index-D7B3n3QJ.js → index-CXT1jMFt.js} +1 -1
  22. package/dist/components/{index-ChjtFo6I.js → index-DO7aT0MT.js} +1 -1
  23. package/dist/components/{index-BcdqzZql.js → index-DWwviobk.js} +1 -1
  24. package/dist/components/{index-BI4lrehT.js → index-DjsXjoZJ.js} +629 -81
  25. package/dist/components/inputs/text-editor/text-editor.commands.d.ts +7 -0
  26. package/dist/components/inputs/text-editor/text-editor.commands.d.ts.map +1 -1
  27. package/dist/components/inputs/text-editor/text-editor.commands.js +44 -0
  28. package/dist/components/inputs/text-editor/text-editor.commands.js.map +1 -1
  29. package/dist/components/inputs/text-editor/text-editor.d.ts +1 -1
  30. package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
  31. package/dist/components/inputs/text-editor/text-editor.js +5 -7
  32. package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
  33. package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts.map +1 -1
  34. package/dist/components/inputs/text-editor/text-editor.ordered-list.js +32 -11
  35. package/dist/components/inputs/text-editor/text-editor.ordered-list.js.map +1 -1
  36. package/dist/components/inputs/token-field/token-field.d.ts +3 -3
  37. package/dist/components/inputs/token-field/token-field.d.ts.map +1 -1
  38. package/dist/components/inputs/token-field/token-field.js +17 -5
  39. package/dist/components/inputs/token-field/token-field.js.map +1 -1
  40. package/dist/components/layout/app-view/app-view.d.ts +26 -6
  41. package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
  42. package/dist/components/layout/app-view/app-view.js +101 -11
  43. package/dist/components/layout/app-view/app-view.js.map +1 -1
  44. package/dist/components/layout/app-view/app-view.styles.d.ts.map +1 -1
  45. package/dist/components/layout/app-view/app-view.styles.js +25 -0
  46. package/dist/components/layout/app-view/app-view.styles.js.map +1 -1
  47. package/dist/components/layout/page/page.d.ts +31 -1
  48. package/dist/components/layout/page/page.d.ts.map +1 -1
  49. package/dist/components/layout/page/page.js +112 -26
  50. package/dist/components/layout/page/page.js.map +1 -1
  51. package/dist/components/layout/page/page.styles.d.ts.map +1 -1
  52. package/dist/components/layout/page/page.styles.js +48 -0
  53. package/dist/components/layout/page/page.styles.js.map +1 -1
  54. package/dist/components/layout/sheet/sheet.d.ts +4 -0
  55. package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
  56. package/dist/components/layout/sheet/sheet.js +4 -0
  57. package/dist/components/layout/sheet/sheet.js.map +1 -1
  58. package/dist/components/layout/split-views/bar-split-view/bar-split-view.d.ts +3 -0
  59. package/dist/components/layout/split-views/bar-split-view/bar-split-view.d.ts.map +1 -1
  60. package/dist/components/layout/split-views/bar-split-view/bar-split-view.js +49 -0
  61. package/dist/components/layout/split-views/bar-split-view/bar-split-view.js.map +1 -1
  62. package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.d.ts.map +1 -1
  63. package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js +55 -0
  64. package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js.map +1 -1
  65. package/dist/components/layout/split-views/bar-split-view/bar-split-view.template.d.ts.map +1 -1
  66. package/dist/components/layout/split-views/bar-split-view/bar-split-view.template.js +18 -9
  67. package/dist/components/layout/split-views/bar-split-view/bar-split-view.template.js.map +1 -1
  68. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts +8 -0
  69. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts.map +1 -1
  70. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js +21 -0
  71. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js.map +1 -1
  72. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.d.ts.map +1 -1
  73. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js +34 -0
  74. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js.map +1 -1
  75. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.d.ts.map +1 -1
  76. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.js +17 -7
  77. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.js.map +1 -1
  78. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts +6 -0
  79. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts.map +1 -1
  80. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js +17 -0
  81. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js.map +1 -1
  82. package/dist/components/layout/split-views/split-view-pane/split-view-pane.d.ts +10 -0
  83. package/dist/components/layout/split-views/split-view-pane/split-view-pane.d.ts.map +1 -1
  84. package/dist/components/layout/split-views/split-view-pane/split-view-pane.js +13 -0
  85. package/dist/components/layout/split-views/split-view-pane/split-view-pane.js.map +1 -1
  86. package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.d.ts.map +1 -1
  87. package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js +19 -0
  88. package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js.map +1 -1
  89. package/dist/components/navigation/top-title-bar/top-title-bar.d.ts +6 -1
  90. package/dist/components/navigation/top-title-bar/top-title-bar.d.ts.map +1 -1
  91. package/dist/components/navigation/top-title-bar/top-title-bar.js +42 -6
  92. package/dist/components/navigation/top-title-bar/top-title-bar.js.map +1 -1
  93. package/dist/utilities/scroll-mode-controller.d.ts +69 -0
  94. package/dist/utilities/scroll-mode-controller.d.ts.map +1 -0
  95. package/dist/utilities/scroll-mode-controller.js +101 -0
  96. package/dist/utilities/scroll-mode-controller.js.map +1 -0
  97. package/package.json +1 -1
@@ -13,6 +13,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
13
13
  * .page__scroll takes over scrolling. A ResizeObserver on the header
14
14
  * sets padding-top on the scroll wrapper (only when not scrolled).
15
15
  *
16
+ * In root-scroll mode (--context-scroll-mode: root, derived upstream by
17
+ * nldd-app-view) the page stops owning a scroller: the document scrolls and the
18
+ * sticky header/footer become position:sticky layers offset by
19
+ * --context-layer-top/bottom. The mode is read on connect/resize and reflected
20
+ * to [data-scroll] so the CSS can branch.
21
+ *
16
22
  * @element nldd-page
17
23
  *
18
24
  * @attr {boolean} sticky-header - Sticky header
@@ -25,6 +31,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
25
31
  */
26
32
  import { LitElement } from 'lit';
27
33
  import { customElement, property, state } from 'lit/decorators.js';
34
+ import { findScrollModeProvider } from '../../../utilities/scroll-mode-controller.js';
28
35
  import { pageStyles } from './page.styles.js';
29
36
  import { pageTemplate } from './page.template.js';
30
37
  let NLDDPage = class NLDDPage extends LitElement {
@@ -34,12 +41,25 @@ let NLDDPage = class NLDDPage extends LitElement {
34
41
  this.stickyFooter = false;
35
42
  this.background = 'inherit';
36
43
  this._scrolled = false;
44
+ this._scrollMode = 'nested';
37
45
  this._scrollTarget = null;
46
+ this._scrollProvider = null;
38
47
  this._headerObserver = null;
39
48
  this._mainSlot = null;
49
+ this._resizeRaf = 0;
50
+ this._onResize = () => {
51
+ if (this._resizeRaf)
52
+ return;
53
+ this._resizeRaf = requestAnimationFrame(() => {
54
+ this._resizeRaf = 0;
55
+ if (this._readScrollMode())
56
+ this._configureScroll();
57
+ });
58
+ };
40
59
  this._onScroll = () => {
41
- const target = (this.stickyHeader ? this._scrollEl : this);
42
- this._scrolled = target.scrollTop > 0;
60
+ this._scrolled = this._isRoot
61
+ ? window.scrollY > 0
62
+ : ((this.stickyHeader ? this._scrollEl : this)?.scrollTop ?? 0) > 0;
43
63
  };
44
64
  this._updateMainItems = () => {
45
65
  const slot = this._mainSlot;
@@ -51,8 +71,28 @@ let NLDDPage = class NLDDPage extends LitElement {
51
71
  items.forEach(el => el.classList.toggle('is-last', el === last));
52
72
  };
53
73
  }
74
+ get _isRoot() {
75
+ return this._scrollMode === 'root';
76
+ }
54
77
  get scrollTarget() {
55
- return (this.stickyHeader ? (this._scrollEl ?? this) : this);
78
+ if (this._isRoot)
79
+ return (document.scrollingElement ?? document.documentElement);
80
+ return this.stickyHeader ? (this._scrollEl ?? this) : this;
81
+ }
82
+ /**
83
+ * The target to attach scroll LISTENERS to for this page's scrolling. In root
84
+ * mode the document is the scroller and its scroll event fires on `window` —
85
+ * a listener on `document.scrollingElement` would never fire — so this differs
86
+ * from `scrollTarget` (which is for reading scrollTop). In nested mode the two
87
+ * are the same. Components that react to this page's scroll (e.g.
88
+ * nldd-top-title-bar's collapse-anchor) must listen here and measure position
89
+ * against the viewport.
90
+ * @internal
91
+ */
92
+ get scrollEventTarget() {
93
+ if (this._isRoot)
94
+ return window;
95
+ return this.stickyHeader ? (this._scrollEl ?? this) : this;
56
96
  }
57
97
  get _headerEl() {
58
98
  return this.shadowRoot?.querySelector('.page__header') ?? null;
@@ -69,43 +109,89 @@ let NLDDPage = class NLDDPage extends LitElement {
69
109
  // light-DOM host avoids it entirely.
70
110
  this.style.containerType = 'inline-size';
71
111
  this.style.containerName = 'layout-container';
72
- if (this.hasUpdated) {
73
- this._setupScrollListener();
74
- if (this.stickyHeader)
75
- this._setupHeaderObserver();
112
+ this._scrollProvider = findScrollModeProvider(this);
113
+ if (this._scrollProvider) {
114
+ // Push-driven inside an app-view: it pushes the authoritative mode on
115
+ // register (and on every change), so the page never self-reads the var.
116
+ // A stale getComputedStyle read while re-mounting on navigation
117
+ // otherwise stuck the page in nested mode (clipped, footer not sticky
118
+ // against the viewport) until a resize.
119
+ this._scrollProvider.registerScrollConsumer(this);
120
+ if (this.hasUpdated)
121
+ this._configureScroll();
122
+ }
123
+ else {
124
+ // Stand-alone (docs): the scroll mode flips at a media-query breakpoint,
125
+ // so read the inherited var and re-read on resize.
126
+ window.addEventListener('resize', this._onResize, { passive: true });
127
+ if (this.hasUpdated) {
128
+ this._readScrollMode();
129
+ this._configureScroll();
130
+ }
76
131
  }
77
132
  }
78
133
  disconnectedCallback() {
79
134
  super.disconnectedCallback();
135
+ window.removeEventListener('resize', this._onResize);
136
+ this._scrollProvider?.unregisterScrollConsumer(this);
137
+ this._scrollProvider = null;
138
+ if (this._resizeRaf)
139
+ cancelAnimationFrame(this._resizeRaf);
80
140
  this._teardownScrollListener();
81
141
  this._teardownHeaderObserver();
82
142
  this._teardownMainSlotListener();
83
143
  }
84
144
  firstUpdated() {
85
- this._setupScrollListener();
86
- if (this.stickyHeader)
87
- this._setupHeaderObserver();
145
+ // With a provider the mode was already pushed on register (see
146
+ // connectedCallback); only a stand-alone page self-reads the inherited var.
147
+ if (!this._scrollProvider)
148
+ this._readScrollMode();
149
+ this._configureScroll();
88
150
  this._setupMainSlotListener();
89
151
  }
90
152
  updated(changed) {
91
- if (changed.has('stickyHeader')) {
92
- this._teardownScrollListener();
93
- this._setupScrollListener();
94
- if (this.stickyHeader) {
95
- this._setupHeaderObserver();
96
- }
97
- else {
98
- this._teardownHeaderObserver();
99
- if (this._scrollEl)
100
- this._scrollEl.style.paddingTop = '';
101
- }
102
- }
153
+ if (changed.has('stickyHeader'))
154
+ this._configureScroll();
155
+ }
156
+ /**
157
+ * ScrollModeConsumer — nldd-app-view pushes the derived mode here; called with
158
+ * no argument (resize / no app-view) it re-reads the inherited var. @internal
159
+ */
160
+ readScrollMode(mode) {
161
+ if (this._readScrollMode(mode))
162
+ this._configureScroll();
163
+ }
164
+ // Apply the scroll mode; returns true when it changed so callers can
165
+ // reconfigure. With an explicit mode (app-view's push) it is applied directly
166
+ // — race-free, unlike a getComputedStyle read mid-propagation. Otherwise the
167
+ // inherited --context-scroll-mode is read (anything but 'root' means nested).
168
+ _readScrollMode(mode) {
169
+ const next = mode
170
+ ?? (getComputedStyle(this).getPropertyValue('--context-scroll-mode').trim() === 'root' ? 'root' : 'nested');
171
+ if (next === this._scrollMode)
172
+ return false;
173
+ this._scrollMode = next;
174
+ this.dataset.scroll = next;
175
+ return true;
176
+ }
177
+ // (Re)wire the scroll listener + header observer for the current mode.
178
+ _configureScroll() {
179
+ this._teardownScrollListener();
180
+ this._teardownHeaderObserver();
181
+ if (this._scrollEl)
182
+ this._scrollEl.style.paddingTop = '';
183
+ this._setupScrollListener();
184
+ // The absolute-header padding hack is nested-mode only; a root-mode
185
+ // sticky header sits in flow and reserves its own space.
186
+ if (this.stickyHeader && !this._isRoot)
187
+ this._setupHeaderObserver();
188
+ this._onScroll();
103
189
  }
104
190
  _setupScrollListener() {
105
- const target = this.stickyHeader ? this._scrollEl : this;
106
- if (!target)
107
- return;
108
- target.addEventListener('scroll', this._onScroll);
191
+ // Root mode scrolls the document (listen on window); nested mode scrolls
192
+ // the host, or .page__scroll with a sticky header. See scrollEventTarget.
193
+ const target = this.scrollEventTarget;
194
+ target.addEventListener('scroll', this._onScroll, { passive: true });
109
195
  this._scrollTarget = target;
110
196
  }
111
197
  _teardownScrollListener() {
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../src/components/layout/page/page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../src/components/layout/page/page.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/page/page.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,yBAmItB,CAAC"}
1
+ {"version":3,"file":"page.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/page/page.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,yBAmLtB,CAAC"}
@@ -45,6 +45,24 @@ export const pageStyles = css `
45
45
  overflow: hidden;
46
46
  }
47
47
 
48
+ /* Root-scroll mode: the DOCUMENT scrolls (see nldd-app-view), not the page.
49
+ The page stops owning an inner scroll container and its sticky-header/footer
50
+ become real position:sticky layers against the document, offset by the
51
+ cumulative layer heights above/below (--context-layer-top/bottom, published
52
+ by any bars sitting outside the page). The mode is derived upstream and
53
+ delivered as --context-scroll-mode; nldd-page reflects it to [data-scroll]
54
+ so these (higher-specificity, later) rules win over the nested ones. */
55
+ :host([data-scroll="root"]) {
56
+ height: auto;
57
+ overflow: visible;
58
+ overscroll-behavior: auto;
59
+ }
60
+
61
+ /* Undo the nested-mode clip — the document is the scroller now. */
62
+ :host([data-scroll="root"][sticky-header]) {
63
+ overflow: visible;
64
+ }
65
+
48
66
 
49
67
  /* # Block */
50
68
 
@@ -55,6 +73,14 @@ export const pageStyles = css `
55
73
  flex-grow: 1;
56
74
  }
57
75
 
76
+ /* Root-scroll mode: no inner scroller; content-sized (flex-shrink:0) so the
77
+ sticky header/footer's containing block spans the whole document rather
78
+ than being squeezed to a definite ancestor height. */
79
+ :host([data-scroll="root"]) .page {
80
+ overflow: visible;
81
+ flex-shrink: 0;
82
+ }
83
+
58
84
 
59
85
  /* # Elements */
60
86
 
@@ -89,6 +115,17 @@ export const pageStyles = css `
89
115
  opacity: 1;
90
116
  }
91
117
 
118
+ /* Root-scroll mode: sticky against the document instead of absolute-over-a-
119
+ nested-scroller. Being in normal flow it reserves its own space, so no
120
+ ResizeObserver padding is needed. left/right revert to auto: those insets
121
+ only mattered for the absolute overlay. */
122
+ :host([data-scroll="root"][sticky-header]) .page__header {
123
+ position: sticky;
124
+ top: var(--context-layer-top, 0px);
125
+ left: auto;
126
+ right: auto;
127
+ }
128
+
92
129
  .page__scroll {
93
130
  display: flex;
94
131
  min-height: 0;
@@ -102,6 +139,12 @@ export const pageStyles = css `
102
139
  overscroll-behavior: contain;
103
140
  }
104
141
 
142
+ /* Root-scroll mode: content-sized, no inner scroller (see the .page rule). */
143
+ :host([data-scroll="root"]) .page__scroll {
144
+ overflow: visible;
145
+ flex-shrink: 0;
146
+ }
147
+
105
148
  .page__main {
106
149
  display: flex;
107
150
  flex-direction: column;
@@ -130,5 +173,10 @@ export const pageStyles = css `
130
173
  pointer-events: none;
131
174
  height: var(--primitives-space-32);
132
175
  }
176
+
177
+ /* Root-scroll mode: footer sticks to the document bottom, above any bottom bars. */
178
+ :host([data-scroll="root"][sticky-footer]) .page__footer {
179
+ bottom: var(--context-layer-bottom, 0px);
180
+ }
133
181
  `;
134
182
  //# sourceMappingURL=page.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.styles.js","sourceRoot":"","sources":["../../../../src/components/layout/page/page.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmI5B,CAAC"}
1
+ {"version":3,"file":"page.styles.js","sourceRoot":"","sources":["../../../../src/components/layout/page/page.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmL5B,CAAC"}
@@ -8,6 +8,10 @@
8
8
  * On small (sm) viewports the sheet always renders as a bottom sheet,
9
9
  * regardless of the configured placement.
10
10
  *
11
+ * Render the sheet at the document root (teleport/portal it to `document.body`),
12
+ * never inside a split view's content flow: as a slotted flex child it would steal
13
+ * pane height (see `nldd-split-view-pane`).
14
+ *
11
15
  * @element nldd-sheet
12
16
  *
13
17
  * @attr {string} placement - Sheet position: 'left' | 'right' | 'bottom' (default: 'right')
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/sheet/sheet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAQjC,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,qBACa,SAAU,SAAQ,UAAU;IACxC,OAAgB,MAAM,0BAAe;IAGrC,SAAS,EAAE,SAAS,CAAW;IAE/B;;;;;;OAMG;IAEH,MAAM,SAAM;IAGZ,QAAQ,UAAS;IAEjB,sFAAsF;IAEtF,eAAe,SAAa;IAE5B;;;;OAIG;IAEH,KAAK,SAAM;IAEF,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IA8B9C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,KAAK,OAAO,GAElB;IAEQ,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAKrC,IAAI,IAAI,IAAI;IAmBZ,OAAO,CAAC,YAAY;IAWpB,IAAI,IAAI,IAAI;IAyBZ,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAOvC,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAM7B,OAAO,CAAC,cAAc,CAUpB;IAEO,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,YAAY,EAAE,SAAS,CAAC;KACxB;CACD"}
1
+ {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/sheet/sheet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAQjC,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,qBACa,SAAU,SAAQ,UAAU;IACxC,OAAgB,MAAM,0BAAe;IAGrC,SAAS,EAAE,SAAS,CAAW;IAE/B;;;;;;OAMG;IAEH,MAAM,SAAM;IAGZ,QAAQ,UAAS;IAEjB,sFAAsF;IAEtF,eAAe,SAAa;IAE5B;;;;OAIG;IAEH,KAAK,SAAM;IAEF,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IA8B9C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,KAAK,OAAO,GAElB;IAEQ,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAKrC,IAAI,IAAI,IAAI;IAmBZ,OAAO,CAAC,YAAY;IAWpB,IAAI,IAAI,IAAI;IAyBZ,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAOvC,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAM7B,OAAO,CAAC,cAAc,CAUpB;IAEO,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,YAAY,EAAE,SAAS,CAAC;KACxB;CACD"}
@@ -8,6 +8,10 @@
8
8
  * On small (sm) viewports the sheet always renders as a bottom sheet,
9
9
  * regardless of the configured placement.
10
10
  *
11
+ * Render the sheet at the document root (teleport/portal it to `document.body`),
12
+ * never inside a split view's content flow: as a slotted flex child it would steal
13
+ * pane height (see `nldd-split-view-pane`).
14
+ *
11
15
  * @element nldd-sheet
12
16
  *
13
17
  * @attr {string} placement - Sheet position: 'left' | 'right' | 'bottom' (default: 'right')
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../../src/components/layout/sheet/sheet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../../src/components/layout/sheet/sheet.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export type Breakpoint = 'sm' | 'md' | 'lg';
36
36
  type BreakpointOrUnmeasured = Breakpoint | null;
37
37
  export declare class NLDDBarSplitView extends LitElement {
38
38
  static styles: import("lit").CSSResult;
39
+ private _scrollMode;
39
40
  background: 'inherit' | 'base' | 'tinted';
40
41
  _currentBreakpoint: BreakpointOrUnmeasured;
41
42
  private _observer;
@@ -45,6 +46,8 @@ export declare class NLDDBarSplitView extends LitElement {
45
46
  private _getBreakpoint;
46
47
  private _isChildVisible;
47
48
  _getSortedChildren(): Element[];
49
+ updated(): void;
50
+ private _updateLayerOffsets;
48
51
  render(): import("lit-html").TemplateResult;
49
52
  }
50
53
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"bar-split-view.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AASjC,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,KAAK,sBAAsB,GAAG,UAAU,GAAG,IAAI,CAAC;AAEhD,qBACa,gBAAiB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAsB;IAG5C,UAAU,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAa;IAMtD,kBAAkB,EAAE,sBAAsB,CAAQ;IAElD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,eAAe,CAA+B;IAE7C,iBAAiB;IAkBjB,oBAAoB;IAQ7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAkBvB,kBAAkB,IAAI,OAAO,EAAE;IAmBtB,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,qBAAqB,EAAE,gBAAgB,CAAC;KACxC;CACD"}
1
+ {"version":3,"file":"bar-split-view.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAUjC,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,KAAK,sBAAsB,GAAG,UAAU,GAAG,IAAI,CAAC;AAEhD,qBACa,gBAAiB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAsB;IAI5C,OAAO,CAAC,WAAW,CAAoE;IAGvF,UAAU,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAa;IAMtD,kBAAkB,EAAE,sBAAsB,CAAQ;IAElD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,eAAe,CAA+B;IAE7C,iBAAiB;IAqBjB,oBAAoB;IAQ7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAkBvB,kBAAkB,IAAI,OAAO,EAAE;IAmBtB,OAAO,IAAI,IAAI;IAUxB,OAAO,CAAC,mBAAmB,CAkCzB;IAEO,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,qBAAqB,EAAE,gBAAgB,CAAC;KACxC;CACD"}
@@ -42,11 +42,15 @@ import { customElement, property, state } from 'lit/decorators.js';
42
42
  import { barSplitViewStyles } from './bar-split-view.styles.js';
43
43
  import { barSplitViewTemplate } from './bar-split-view.template.js';
44
44
  import { breakpoints } from '../../../../assets/styles/breakpoints.js';
45
+ import { ScrollModeController } from '../../../../utilities/scroll-mode-controller.js';
45
46
  const smMaxPx = parseInt(breakpoints.smMax);
46
47
  const mdMaxPx = parseInt(breakpoints.mdMax);
47
48
  let NLDDBarSplitView = class NLDDBarSplitView extends LitElement {
48
49
  constructor() {
49
50
  super(...arguments);
51
+ // Reflects --context-scroll-mode to [data-scroll]; on change, re-computes the
52
+ // sticky-bar offsets below.
53
+ this._scrollMode = new ScrollModeController(this, () => this._updateLayerOffsets());
50
54
  this.background = 'inherit';
51
55
  // null until connectedCallback measures the viewport. Before measurement the
52
56
  // template falls back to DOM order with dividers — no breakpoint-specific
@@ -54,6 +58,43 @@ let NLDDBarSplitView = class NLDDBarSplitView extends LitElement {
54
58
  this._currentBreakpoint = null;
55
59
  this._observer = null;
56
60
  this._resizeObserver = null;
61
+ // In root-scroll mode, stack the bars as sticky layers: each top bar sticks
62
+ // below the ones above it, each bottom bar above the ones below it, and the
63
+ // cumulative heights are published as --context-layer-top/bottom on the main
64
+ // so a descendant nldd-page's sticky header/footer stack against them.
65
+ this._updateLayerOffsets = () => {
66
+ const block = this.shadowRoot?.querySelector('.bar-split-view') ?? null;
67
+ const main = block?.querySelector('.bar-split-view__main') ?? null;
68
+ if (!block || !main)
69
+ return;
70
+ const children = Array.from(block.children);
71
+ const mainIndex = children.indexOf(main);
72
+ if (this._scrollMode.mode !== 'root') {
73
+ children.forEach(el => { el.style.top = ''; el.style.bottom = ''; });
74
+ main.style.removeProperty('--context-layer-top');
75
+ main.style.removeProperty('--context-layer-bottom');
76
+ return;
77
+ }
78
+ // Everything above main sticks to the top and stacks; everything below
79
+ // sticks to the bottom. Dividers are included, so they ride with their bar
80
+ // and count toward the offset. Base offsets are inherited from any
81
+ // bars/app-view above this one (px values, so nested bars compose).
82
+ const cs = getComputedStyle(this);
83
+ let top = parseFloat(cs.getPropertyValue('--context-layer-top')) || 0;
84
+ for (let i = 0; i < mainIndex; i++) {
85
+ children[i].style.top = `${top}px`;
86
+ children[i].style.bottom = '';
87
+ top += children[i].offsetHeight;
88
+ }
89
+ main.style.setProperty('--context-layer-top', `${top}px`);
90
+ let bottom = parseFloat(cs.getPropertyValue('--context-layer-bottom')) || 0;
91
+ for (let i = children.length - 1; i > mainIndex; i--) {
92
+ children[i].style.bottom = `${bottom}px`;
93
+ children[i].style.top = '';
94
+ bottom += children[i].offsetHeight;
95
+ }
96
+ main.style.setProperty('--context-layer-bottom', `${bottom}px`);
97
+ };
57
98
  }
58
99
  connectedCallback() {
59
100
  super.connectedCallback();
@@ -66,6 +107,9 @@ let NLDDBarSplitView = class NLDDBarSplitView extends LitElement {
66
107
  this._currentBreakpoint = bp;
67
108
  this.requestUpdate();
68
109
  }
110
+ // Bar heights (and thus the published layer offsets) can change on any
111
+ // resize; in root mode the flowing host resizes with them.
112
+ this._updateLayerOffsets();
69
113
  });
70
114
  this._resizeObserver.observe(this);
71
115
  }
@@ -119,6 +163,11 @@ let NLDDBarSplitView = class NLDDBarSplitView extends LitElement {
119
163
  return aVal - bVal;
120
164
  });
121
165
  }
166
+ updated() {
167
+ // Re-apply after every render — the bar wrappers are re-created, so their
168
+ // inline sticky insets would otherwise be lost.
169
+ this._updateLayerOffsets();
170
+ }
122
171
  render() {
123
172
  return barSplitViewTemplate(this);
124
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bar-split-view.js","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bar-split-view.js","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bar-split-view.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,yBAmF9B,CAAC"}
1
+ {"version":3,"file":"bar-split-view.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,yBA0I9B,CAAC"}
@@ -31,6 +31,16 @@ export const barSplitViewStyles = css `
31
31
  --_background-color: var(--context-parent-background-color);
32
32
  }
33
33
 
34
+ /* Root-scroll mode: the document scrolls (ScrollModeController /
35
+ --context-scroll-mode). Bars become sticky layers that stay put while the
36
+ main content scrolls under them; their measured heights are published into
37
+ --context-layer-top/bottom (see bar-split-view.ts) so a descendant
38
+ nldd-page's sticky header/footer stack below/above them. The sticky insets
39
+ and those offsets are set by JS; bars paint above the content. */
40
+ :host([data-scroll="root"]) {
41
+ height: auto;
42
+ }
43
+
34
44
 
35
45
  /* # Block */
36
46
 
@@ -44,6 +54,15 @@ export const barSplitViewStyles = css `
44
54
  flex-basis: 0;
45
55
  }
46
56
 
57
+ /* Root-scroll mode: flow wrappers must be content-sized (not flex-basis:0) so
58
+ their border box spans the whole document. Otherwise a sticky bar's
59
+ containing block is only as tall as the initial viewport fill and the bar
60
+ un-sticks partway down. */
61
+ :host([data-scroll="root"]) .bar-split-view {
62
+ flex-basis: auto;
63
+ flex-shrink: 0;
64
+ }
65
+
47
66
 
48
67
  /* # Elements */
49
68
 
@@ -55,10 +74,31 @@ export const barSplitViewStyles = css `
55
74
  flex-shrink: 0;
56
75
  }
57
76
 
77
+ :host([data-scroll="root"]) .bar-split-view__bar {
78
+ overflow: visible;
79
+ /* Sticky bars sit over the scrolling document, so they need an opaque
80
+ background to occlude the content passing beneath them. */
81
+ background-color: var(--_background-color);
82
+ }
83
+
84
+ /* Root-scroll mode: top/bottom bars stick; JS sets their top/bottom insets. */
85
+ :host([data-scroll="root"]) .bar-split-view__bar--top,
86
+ :host([data-scroll="root"]) .bar-split-view__bar--bottom {
87
+ position: sticky;
88
+ z-index: 3;
89
+ }
90
+
58
91
  .bar-split-view__divider {
59
92
  flex-shrink: 0;
60
93
  }
61
94
 
95
+ /* Root-scroll mode: the seam divider sticks too, riding with its bar instead
96
+ of scrolling away with the content. */
97
+ :host([data-scroll="root"]) .bar-split-view__divider {
98
+ position: sticky;
99
+ z-index: 3;
100
+ }
101
+
62
102
  .bar-split-view__main {
63
103
  display: flex;
64
104
  min-width: 0;
@@ -70,6 +110,12 @@ export const barSplitViewStyles = css `
70
110
  flex-basis: 0;
71
111
  }
72
112
 
113
+ :host([data-scroll="root"]) .bar-split-view__main {
114
+ overflow: visible;
115
+ flex-basis: auto;
116
+ flex-shrink: 0;
117
+ }
118
+
73
119
  /* Only the main pane grows to fill remaining space; bar panes size to
74
120
  * their content. Without this scoping a bar's slotted content gets
75
121
  * flex-basis: 0 and collapses (the old 'flex: 1' shorthand expanded
@@ -82,5 +128,14 @@ export const barSplitViewStyles = css `
82
128
  flex-shrink: 1;
83
129
  flex-basis: 0;
84
130
  }
131
+
132
+ /* Root-scroll mode: the slotted main layer (a split-view or page) is a COLUMN
133
+ item of the main column: give it a real content height (flex-basis:auto)
134
+ that it keeps on tall pages (flex-shrink:0), otherwise its 0 basis collapses
135
+ the main box and the sticky bars' containing block never spans the document. */
136
+ :host([data-scroll="root"]) ::slotted([slot="main"]) {
137
+ flex-basis: auto;
138
+ flex-shrink: 0;
139
+ }
85
140
  `;
86
141
  //# sourceMappingURL=bar-split-view.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bar-split-view.styles.js","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFpC,CAAC"}
1
+ {"version":3,"file":"bar-split-view.styles.js","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0IpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bar-split-view.template.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAW,MAAM,KAAK,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,6CAA6C,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,cAAc,CA8BhF"}
1
+ {"version":3,"file":"bar-split-view.template.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/split-views/bar-split-view/bar-split-view.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAW,MAAM,KAAK,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,6CAA6C,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,cAAc,CAwChF"}