@nldd/design-system 0.8.61 → 0.8.63

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 (150) hide show
  1. package/dist/components/actions/button/button.d.ts +9 -2
  2. package/dist/components/actions/button/button.d.ts.map +1 -1
  3. package/dist/components/actions/button/button.i18n.d.ts +5 -0
  4. package/dist/components/actions/button/button.i18n.d.ts.map +1 -0
  5. package/dist/components/actions/button/button.i18n.js +4 -0
  6. package/dist/components/actions/button/button.i18n.js.map +1 -0
  7. package/dist/components/actions/button/button.js +5 -2
  8. package/dist/components/actions/button/button.js.map +1 -1
  9. package/dist/components/actions/button/button.styles.d.ts.map +1 -1
  10. package/dist/components/actions/button/button.styles.js +14 -0
  11. package/dist/components/actions/button/button.styles.js.map +1 -1
  12. package/dist/components/actions/button/button.template.d.ts.map +1 -1
  13. package/dist/components/actions/button/button.template.js +17 -4
  14. package/dist/components/actions/button/button.template.js.map +1 -1
  15. package/dist/components/actions/icon-button/icon-button.d.ts +10 -2
  16. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  17. package/dist/components/actions/icon-button/icon-button.i18n.d.ts +5 -0
  18. package/dist/components/actions/icon-button/icon-button.i18n.d.ts.map +1 -0
  19. package/dist/components/actions/icon-button/icon-button.i18n.js +4 -0
  20. package/dist/components/actions/icon-button/icon-button.i18n.js.map +1 -0
  21. package/dist/components/actions/icon-button/icon-button.js +5 -2
  22. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  23. package/dist/components/actions/icon-button/icon-button.template.d.ts.map +1 -1
  24. package/dist/components/actions/icon-button/icon-button.template.js +11 -2
  25. package/dist/components/actions/icon-button/icon-button.template.js.map +1 -1
  26. package/dist/components/components.js +63 -62
  27. package/dist/components/content/byline/byline.d.ts +11 -0
  28. package/dist/components/content/byline/byline.d.ts.map +1 -1
  29. package/dist/components/content/byline/byline.js +20 -0
  30. package/dist/components/content/byline/byline.js.map +1 -1
  31. package/dist/components/content/byline/byline.styles.d.ts.map +1 -1
  32. package/dist/components/content/byline/byline.styles.js +13 -1
  33. package/dist/components/content/byline/byline.styles.js.map +1 -1
  34. package/dist/components/content/byline/byline.template.d.ts.map +1 -1
  35. package/dist/components/content/byline/byline.template.js +17 -2
  36. package/dist/components/content/byline/byline.template.js.map +1 -1
  37. package/dist/components/forms/form-actions/form-actions.styles.d.ts.map +1 -1
  38. package/dist/components/forms/form-actions/form-actions.styles.js +1 -0
  39. package/dist/components/forms/form-actions/form-actions.styles.js.map +1 -1
  40. package/dist/components/forms/form-field/form-field.styles.d.ts.map +1 -1
  41. package/dist/components/forms/form-field/form-field.styles.js +1 -0
  42. package/dist/components/forms/form-field/form-field.styles.js.map +1 -1
  43. package/dist/components/{index-B0DIduK1.js → index-BVaijKe_.js} +1771 -663
  44. package/dist/components/index.d.ts +1 -0
  45. package/dist/components/index.d.ts.map +1 -1
  46. package/dist/components/index.js +1 -0
  47. package/dist/components/index.js.map +1 -1
  48. package/dist/components/layout/collection/collection.d.ts +3 -1
  49. package/dist/components/layout/collection/collection.d.ts.map +1 -1
  50. package/dist/components/layout/collection/collection.js +14 -2
  51. package/dist/components/layout/collection/collection.js.map +1 -1
  52. package/dist/components/layout/collection/collection.styles.d.ts.map +1 -1
  53. package/dist/components/layout/collection/collection.styles.js +7 -10
  54. package/dist/components/layout/collection/collection.styles.js.map +1 -1
  55. package/dist/components/layout/collection/collection.template.d.ts.map +1 -1
  56. package/dist/components/layout/collection/collection.template.js +4 -2
  57. package/dist/components/layout/collection/collection.template.js.map +1 -1
  58. package/dist/components/layout/page-footer/page-footer.d.ts +1 -0
  59. package/dist/components/layout/page-footer/page-footer.d.ts.map +1 -1
  60. package/dist/components/layout/page-footer/page-footer.js +12 -4
  61. package/dist/components/layout/page-footer/page-footer.js.map +1 -1
  62. package/dist/components/layout/page-footer/page-footer.styles.d.ts.map +1 -1
  63. package/dist/components/layout/page-footer/page-footer.styles.js +9 -0
  64. package/dist/components/layout/page-footer/page-footer.styles.js.map +1 -1
  65. package/dist/components/lists-and-tables/list/list.d.ts +45 -0
  66. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  67. package/dist/components/lists-and-tables/list/list.i18n.d.ts +1 -0
  68. package/dist/components/lists-and-tables/list/list.i18n.d.ts.map +1 -1
  69. package/dist/components/lists-and-tables/list/list.i18n.js +1 -0
  70. package/dist/components/lists-and-tables/list/list.i18n.js.map +1 -1
  71. package/dist/components/lists-and-tables/list/list.js +154 -1
  72. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  73. package/dist/components/lists-and-tables/list/list.styles.d.ts.map +1 -1
  74. package/dist/components/lists-and-tables/list/list.styles.js +1 -0
  75. package/dist/components/lists-and-tables/list/list.styles.js.map +1 -1
  76. package/dist/components/lists-and-tables/list-item/list-item.d.ts +10 -2
  77. package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
  78. package/dist/components/lists-and-tables/list-item/list-item.i18n.d.ts +1 -1
  79. package/dist/components/lists-and-tables/list-item/list-item.i18n.js +1 -1
  80. package/dist/components/lists-and-tables/list-item/list-item.i18n.js.map +1 -1
  81. package/dist/components/lists-and-tables/list-item/list-item.js +39 -3
  82. package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
  83. package/dist/components/lists-and-tables/list-item/list-item.styles.d.ts.map +1 -1
  84. package/dist/components/lists-and-tables/list-item/list-item.styles.js +6 -5
  85. package/dist/components/lists-and-tables/list-item/list-item.styles.js.map +1 -1
  86. package/dist/components/lists-and-tables/list-item/list-item.template.d.ts +1 -1
  87. package/dist/components/lists-and-tables/list-item/list-item.template.d.ts.map +1 -1
  88. package/dist/components/lists-and-tables/list-item/list-item.template.js +4 -2
  89. package/dist/components/lists-and-tables/list-item/list-item.template.js.map +1 -1
  90. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.d.ts.map +1 -1
  91. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js +1 -0
  92. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js.map +1 -1
  93. package/dist/components/navigation/link/link.d.ts +9 -2
  94. package/dist/components/navigation/link/link.d.ts.map +1 -1
  95. package/dist/components/navigation/link/link.i18n.d.ts +5 -0
  96. package/dist/components/navigation/link/link.i18n.d.ts.map +1 -0
  97. package/dist/components/navigation/link/link.i18n.js +4 -0
  98. package/dist/components/navigation/link/link.i18n.js.map +1 -0
  99. package/dist/components/navigation/link/link.js +5 -2
  100. package/dist/components/navigation/link/link.js.map +1 -1
  101. package/dist/components/navigation/link/link.styles.d.ts.map +1 -1
  102. package/dist/components/navigation/link/link.styles.js +14 -0
  103. package/dist/components/navigation/link/link.styles.js.map +1 -1
  104. package/dist/components/navigation/link/link.template.d.ts.map +1 -1
  105. package/dist/components/navigation/link/link.template.js +14 -1
  106. package/dist/components/navigation/link/link.template.js.map +1 -1
  107. package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
  108. package/dist/components/navigation/tab-bar/tab-bar.js +11 -4
  109. package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
  110. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  111. package/dist/components/navigation/tab-bar/tab-bar.styles.js +25 -3
  112. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  113. package/dist/components/{prism-python-Dtm_y95w.js → prism-python-Tr_Ff1KJ.js} +1 -1
  114. package/dist/components/{prism-rust-Bp-z7VUz.js → prism-rust-CxUpjfK5.js} +1 -1
  115. package/dist/components/{prism-typescript-hCHH5aho.js → prism-typescript-zaF4YQWN.js} +1 -1
  116. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts +35 -12
  117. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts.map +1 -1
  118. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js +48 -13
  119. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js.map +1 -1
  120. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.d.ts.map +1 -1
  121. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.js +77 -17
  122. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.js.map +1 -1
  123. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.template.d.ts +1 -2
  124. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.template.d.ts.map +1 -1
  125. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.template.js +21 -7
  126. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.template.js.map +1 -1
  127. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts.map +1 -1
  128. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js +12 -2
  129. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js.map +1 -1
  130. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts +123 -0
  131. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts.map +1 -0
  132. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.i18n.d.ts +6 -0
  133. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.i18n.d.ts.map +1 -0
  134. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.i18n.js +5 -0
  135. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.i18n.js.map +1 -0
  136. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js +550 -0
  137. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js.map +1 -0
  138. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.d.ts +2 -0
  139. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.d.ts.map +1 -0
  140. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js +301 -0
  141. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js.map +1 -0
  142. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.template.d.ts +4 -0
  143. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.template.d.ts.map +1 -0
  144. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.template.js +72 -0
  145. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.template.js.map +1 -0
  146. package/dist/components/status-and-feedback/status-bar/status-bar.d.ts +6 -1
  147. package/dist/components/status-and-feedback/status-bar/status-bar.d.ts.map +1 -1
  148. package/dist/components/status-and-feedback/status-bar/status-bar.js +23 -9
  149. package/dist/components/status-and-feedback/status-bar/status-bar.js.map +1 -1
  150. package/package.json +5 -1
@@ -18,6 +18,8 @@ export const activityIndicatorStyles = css `
18
18
  --_gap: var(--primitives-space-4);
19
19
  --_text-font: var(--primitives-font-body-sm-regular-flat);
20
20
  --_backdrop-blur: 3px;
21
+ --_overlay-panel-padding: var(--primitives-space-12);
22
+ --_overlay-panel-corner-radius: var(--primitives-corner-radius-md);
21
23
 
22
24
  ${inheritedTextReset}
23
25
  box-sizing: border-box;
@@ -35,10 +37,13 @@ export const activityIndicatorStyles = css `
35
37
  display: none;
36
38
  }
37
39
 
38
- /* The opt-in backdrop is an absolutely-positioned layer that fills the host,
39
- so the host has to be its containing block. */
40
- :host([backdrop]) {
40
+ /* Overlay mode (content in the default slot): the host wraps the content and
41
+ is the containing block for the absolutely-positioned indicator + backdrop,
42
+ so it sizes to the content instead of filling its parent. */
43
+ :host([has-content]) {
44
+ display: block;
41
45
  position: relative;
46
+ height: auto;
42
47
  }
43
48
 
44
49
 
@@ -59,35 +64,75 @@ export const activityIndicatorStyles = css `
59
64
 
60
65
 
61
66
  /* # Block
62
- Fades the indicator in once it becomes visible (both timing modes), and
63
- stacks the default circle + label as a centred column. width:100% +
67
+ Stacks the default circle + label as a centred column. width:100% +
64
68
  max-width gives a slotted progress-bar a width to fill; the fixed-size
65
69
  circle and the label stay centred via align-items. */
66
70
 
67
71
  .activity-indicator {
68
72
  /* position:relative so it paints above the absolutely-positioned backdrop
69
- (both are z-index:auto; the backdrop comes first in the DOM). */
73
+ (both are z-index:auto; the backdrop comes first in the DOM). Hidden by
74
+ default; the loading host attribute fades it (and the backdrop) in and
75
+ out — opacity + display via transition-behavior: allow-discrete, with a
76
+ starting-style for the entry. */
70
77
  position: relative;
71
- display: flex;
72
- flex-direction: column;
78
+ display: none;
79
+ opacity: 0;
80
+ pointer-events: none;
73
81
  width: 100%;
74
82
  max-width: var(--_max-width);
83
+ flex-direction: column;
75
84
  align-items: center;
76
85
  gap: var(--_gap);
77
- animation: activity-indicator-fade-in var(--_fade-duration) var(--_fade-easing);
86
+ transition-property: opacity, display;
87
+ transition-duration: var(--_fade-duration);
88
+ transition-timing-function: var(--_fade-easing);
89
+ transition-behavior: allow-discrete;
90
+ }
91
+
92
+ :host([loading]) .activity-indicator {
93
+ display: flex;
94
+ opacity: 1;
95
+ }
96
+
97
+ @starting-style {
98
+ :host([loading]) .activity-indicator {
99
+ opacity: 0;
100
+ }
78
101
  }
79
102
 
80
- @keyframes activity-indicator-fade-in {
81
- from { opacity: 0; }
103
+ /* Overlay mode: the wrapped content flows normally; the indicator + backdrop
104
+ sit on top as absolute layers that fill the host. */
105
+ .activity-indicator__content {
106
+ display: block;
82
107
  }
83
108
 
84
- /* Opt-in dimming layer (the backdrop attribute): the context parent
85
- background colour fallback the base surface at one minus the disabled
86
- opacity, so the content underneath reads as inactive while loading. Fades
87
- in with the indicator. */
109
+ /* Overlay mode: the indicator + label sit on a small rounded base-surface
110
+ panel that hugs them with padding (not the full component width) so they
111
+ keep contrast over the dimmed content, and read in the content colour
112
+ instead of inheriting currentColor. */
113
+ :host([has-content]) .activity-indicator {
114
+ box-sizing: border-box;
115
+ position: absolute;
116
+ top: 50%;
117
+ left: 50%;
118
+ border-radius: var(--_overlay-panel-corner-radius);
119
+ background-color: var(--semantics-surfaces-base-background-color);
120
+ width: max-content;
121
+ max-width: calc(100% - var(--primitives-space-32));
122
+ padding: var(--_overlay-panel-padding);
123
+ color: var(--semantics-content-color);
124
+ transform: translate(-50%, -50%);
125
+ }
126
+
127
+ /* Dimming layer (overlay mode, on by default; opt out with no-backdrop): the
128
+ context parent background colour — fallback the base surface — at one minus
129
+ the disabled opacity, so the content underneath reads as inactive while
130
+ loading. Fades in and out with the indicator via the loading attribute. */
88
131
  .activity-indicator__backdrop {
89
132
  position: absolute;
90
133
  inset: 0;
134
+ display: none;
135
+ opacity: 0;
91
136
  /* Frosted dim: the parent surface — fallback base surface — as a
92
137
  translucent fill at one minus the disabled opacity (a translucent
93
138
  colour, not element opacity, which would hide the blur), plus a blur so
@@ -96,7 +141,22 @@ export const activityIndicatorStyles = css `
96
141
  background-color: color-mix(in oklab, var(--context-parent-background-color, var(--semantics-surfaces-base-background-color)) calc((1 - var(--primitives-opacity-disabled)) * 100%), transparent);
97
142
  -webkit-backdrop-filter: blur(var(--_backdrop-blur));
98
143
  backdrop-filter: blur(var(--_backdrop-blur));
99
- animation: activity-indicator-fade-in var(--_fade-duration) var(--_fade-easing);
144
+ pointer-events: none;
145
+ transition-property: opacity, display;
146
+ transition-duration: var(--_fade-duration);
147
+ transition-timing-function: var(--_fade-easing);
148
+ transition-behavior: allow-discrete;
149
+ }
150
+
151
+ :host([loading]) .activity-indicator__backdrop {
152
+ display: block;
153
+ opacity: 1;
154
+ }
155
+
156
+ @starting-style {
157
+ :host([loading]) .activity-indicator__backdrop {
158
+ opacity: 0;
159
+ }
100
160
  }
101
161
 
102
162
  /* display:contents so the default circle + label (or a slotted override)
@@ -162,7 +222,7 @@ export const activityIndicatorStyles = css `
162
222
  @media (prefers-reduced-motion: reduce) {
163
223
  .activity-indicator,
164
224
  .activity-indicator__backdrop {
165
- animation: none;
225
+ transition: none;
166
226
  }
167
227
 
168
228
  .activity-indicator__indicator {
@@ -1 +1 @@
1
- {"version":3,"file":"activity-indicator.styles.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/activity-indicator/activity-indicator.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;IAmBtC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JrB,CAAC"}
1
+ {"version":3,"file":"activity-indicator.styles.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/activity-indicator/activity-indicator.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;IAqBtC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuNrB,CAAC"}
@@ -1,4 +1,3 @@
1
- import { nothing } from 'lit';
2
1
  import type { NLDDActivityIndicator } from './activity-indicator.js';
3
- export declare function activityIndicatorTemplate(component: NLDDActivityIndicator): import("lit-html").TemplateResult<1> | typeof nothing;
2
+ export declare function activityIndicatorTemplate(component: NLDDActivityIndicator): import("lit-html").TemplateResult<1>;
4
3
  //# sourceMappingURL=activity-indicator.template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity-indicator.template.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/activity-indicator/activity-indicator.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,qBAAqB,yDAqCzE"}
1
+ {"version":3,"file":"activity-indicator.template.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/activity-indicator/activity-indicator.template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,qBAAqB,wCAoDzE"}
@@ -1,18 +1,32 @@
1
1
  import { html, nothing } from 'lit';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
3
  export function activityIndicatorTemplate(component) {
4
- // Render nothing while the delay window is open so the indicator doesn't
5
- // even flash for sub-second loads, or once `complete` is set so the
6
- // element stays mounted but ARIA / visuals reflect the finished state.
7
- if (!component._visible || component.complete)
8
- return nothing;
4
+ // Disable + busy-mark the wrapped content while loading (overlay mode). `inert`
5
+ // works over the flat tree, so it reaches the slotted (light-DOM) content and
6
+ // takes its controls out of the tab order which pointer-events alone can't.
7
+ // (aria-busy below reflects the busy state explicitly as true/false rather than
8
+ // toggling the attribute, which some AT track more reliably; note that inert also
9
+ // removes the subtree from the a11y tree, so AT relies on the role="status" host,
10
+ // not this aria-busy, for the loading announcement.)
11
+ const disableContent = component._visible && !component.complete && component._hasContent;
12
+ // The backdrop dims the inert content in overlay mode (unless opted out). It
13
+ // renders for the whole overlay-mode lifetime; the `loading` host attribute —
14
+ // not conditional rendering — drives its (and the indicator's) fade in AND
15
+ // out, so the overlay can also transition away when loading finishes.
16
+ const renderBackdrop = component._hasContent && !component.noBackdrop;
9
17
  // The label always renders so it is the announced content of the
10
18
  // role="status" host; show-text only controls whether it is visible.
11
19
  const text = component._accessibleName;
12
20
  return html `
13
- ${component.backdrop ? html `<div class="activity-indicator__backdrop" aria-hidden="true"></div>` : nothing}
21
+ <div class="activity-indicator__content"
22
+ ?inert=${disableContent}
23
+ aria-busy=${disableContent ? 'true' : 'false'}
24
+ >
25
+ <slot @slotchange=${component._onContentSlotChange}></slot>
26
+ </div>
27
+ ${renderBackdrop ? html `<div class="activity-indicator__backdrop" aria-hidden="true"></div>` : nothing}
14
28
  <div class="activity-indicator">
15
- <slot>
29
+ <slot name="indicator">
16
30
  <svg class="activity-indicator__circle"
17
31
  viewBox="0 0 24 24"
18
32
  fill="none"
@@ -1 +1 @@
1
- {"version":3,"file":"activity-indicator.template.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/activity-indicator/activity-indicator.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,MAAM,UAAU,yBAAyB,CAAC,SAAgC;IACzE,yEAAyE;IACzE,oEAAoE;IACpE,uEAAuE;IACvE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC9D,iEAAiE;IACjE,qEAAqE;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;IACvC,OAAO,IAAI,CAAA;IACR,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,qEAAqE,CAAC,CAAC,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;kBAqB1F,QAAQ,CAAC;QACvB,0BAA0B,EAAE,IAAI;QAChC,2CAA2C,EAAE,CAAC,SAAS,CAAC,QAAQ;KAChE,CAAC,IAAI,IAAI;;;EAGX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"activity-indicator.template.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/activity-indicator/activity-indicator.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,MAAM,UAAU,yBAAyB,CAAC,SAAgC;IACzE,gFAAgF;IAChF,8EAA8E;IAC9E,8EAA8E;IAC9E,gFAAgF;IAChF,kFAAkF;IAClF,kFAAkF;IAClF,qDAAqD;IACrD,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,WAAW,CAAC;IAC1F,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;IACtE,iEAAiE;IACjE,qEAAqE;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;IACvC,OAAO,IAAI,CAAA;;YAEA,cAAc;eACX,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;uBAEzB,SAAS,CAAC,oBAAoB;;IAEjD,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA,qEAAqE,CAAC,CAAC,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;kBAqBtF,QAAQ,CAAC;QACvB,0BAA0B,EAAE,IAAI;QAChC,2CAA2C,EAAE,CAAC,SAAS,CAAC,QAAQ;KAChE,CAAC,IAAI,IAAI;;;EAGX,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inline-dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/inline-dialog/inline-dialog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIjC,OAAO,4BAA4B,CAAC;AACpC,OAAO,4CAA4C,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhG,qBACa,gBAAiB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAsB;IAG5C,OAAO,EAAE,mBAAmB,GAAG,EAAE,CAAM;IAGvC,IAAI,EAAE,gBAAgB,CAAQ;IAG9B,IAAI,SAAM;IAGV,SAAS,EAAE,qBAAqB,GAAG,EAAE,CAAM;IAG3C,IAAI,SAAM;IAGV,cAAc,SAAM;IAGpB,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAGlD,WAAW,UAAS;IAGpB,WAAW,UAAS;IAEpB,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAEQ,YAAY;IAsBZ,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,gBAAgB,CAAC;KACvC;CACD"}
1
+ {"version":3,"file":"inline-dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/inline-dialog/inline-dialog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIjC,OAAO,4BAA4B,CAAC;AACpC,OAAO,4CAA4C,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhG,qBACa,gBAAiB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAsB;IAG5C,OAAO,EAAE,mBAAmB,GAAG,EAAE,CAAM;IAGvC,IAAI,EAAE,gBAAgB,CAAQ;IAG9B,IAAI,SAAM;IAGV,SAAS,EAAE,qBAAqB,GAAG,EAAE,CAAM;IAG3C,IAAI,SAAM;IAGV,cAAc,SAAM;IAGpB,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAGlD,WAAW,UAAS;IAGpB,WAAW,UAAS;IAEpB,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAEQ,YAAY;IAgCZ,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,gBAAgB,CAAC;KACvC;CACD"}
@@ -67,8 +67,18 @@ let NLDDInlineDialog = class NLDDInlineDialog extends LitElement {
67
67
  const syncActions = () => { this._hasActions = hasMeaningfulContent(actionsSlot); };
68
68
  contentSlot?.addEventListener('slotchange', syncContent);
69
69
  actionsSlot?.addEventListener('slotchange', syncActions);
70
- syncContent();
71
- syncActions();
70
+ // Defer the initial sync out of the update lifecycle: setting reactive
71
+ // state synchronously here re-enters the current update and triggers Lit's
72
+ // change-in-update warning. A microtask runs after this update completes,
73
+ // so the follow-up render (when a slot has content) is scheduled cleanly.
74
+ // slotchange handles every later change; this covers the initial state.
75
+ // SSR caveat (no SSR today): on hydration the first paint can land before this
76
+ // microtask drains, briefly showing the empty-slot state. If SSR is adopted,
77
+ // move this into willUpdate (or a second requestUpdate in firstUpdated).
78
+ queueMicrotask(() => {
79
+ syncContent();
80
+ syncActions();
81
+ });
72
82
  }
73
83
  render() {
74
84
  return inlineDialogTemplate(this);
@@ -1 +1 @@
1
- {"version":3,"file":"inline-dialog.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/inline-dialog/inline-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline-dialog.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/inline-dialog/inline-dialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Nederlandse Digitale Dienst Just in Time Education Component (Lit + TypeScript)
3
+ *
4
+ * Een guided-discovery coach-mark. Plaats een control (bijv. nldd-search-field)
5
+ * in de default slot; zolang `active` is gezet tilt het component een callout
6
+ * (titel + supporting text + dismiss) in de top layer via de Popover API
7
+ * (`popover="manual"`), geankerd aan het control met Floating UI. Geen backdrop,
8
+ * non-modaal: de achtergrond blijft interactief. Het control zelf blijft op zijn
9
+ * plek in de flow staan.
10
+ *
11
+ * Met `dismissable` beheert het component het sluiten en vuurt het nldd-close:
12
+ * - de gebruiker voert de geadviseerde interactie uit op het control -> close{completed}
13
+ * - de dismiss-knop -> close{dismissed}
14
+ * - een klik/toets BUITEN de coach-mark -> close{ignored}
15
+ * Zonder `dismissable` sluit niets vanzelf (geen knop, geen buiten- of slot-klik);
16
+ * dan bepaalt de consumer het sluiten zelf via `active` of `complete()`. `complete()`
17
+ * werkt altijd en sluit met close{completed} (bijv. pas bij een echte zoekopdracht).
18
+ *
19
+ * @element nldd-just-in-time-education
20
+ * @attr {boolean} active - Toon de coach-mark. App-gestuurd; standaard false.
21
+ * @attr {string} text - Titel van de callout.
22
+ * @attr {string} supporting-text - Ondersteunende tekst onder de titel.
23
+ * @attr {string} placement - 'auto' | 'top' | 'bottom' | 'left' | 'right' (standaard 'auto').
24
+ * @attr {boolean} dismissable - Toon de dismiss-knop en sta sluiten toe via 1 klik/toets buiten de coach-mark. Standaard false: dan beheert de consumer het sluiten zelf.
25
+ * @attr {string} arrow-length - Pijllengte en dus de afstand tussen card en control, als CSS-lengte (bijv. \`333px\`, \`30vh\`). Leeg = DS-standaard; onder 40px wordt geklemd.
26
+ * @attr {boolean} no-arrow - Verberg de pijl; de card staat dan dicht tegen het control.
27
+ *
28
+ * @slot - Het control waar de coach-mark naar wijst (blijft in de normale flow).
29
+ *
30
+ * @fires nldd-close - Wanneer de coach-mark sluit. detail: { reason: 'completed' | 'dismissed' | 'ignored' }.
31
+ *
32
+ * @note Rendert via de native Popover API (`popover="manual"`) in de top layer,
33
+ * dus het escapet ancestor stacking contexts en `overflow: hidden` clipping.
34
+ * Positionering via Floating UI met `strategy: 'fixed'` + `autoUpdate`. De kant
35
+ * wordt bepaald door de beschikbare ruimte (horizontaal de viewport, verticaal
36
+ * het hele document) bij openen en bij window-resize; scrollen laat de kant vast
37
+ * en verschuift de callout alleen mee met het control.
38
+ *
39
+ * @note Focus-model (dismissable): de callout is een bewust NIET-modale dialog
40
+ * (`role="dialog"`, geen `aria-modal`, geen focus-trap). Bij openen gaat focus
41
+ * erin zodat de dismiss-knop bereikbaar is en Escape sluit; Tab verlaat de callout
42
+ * daarna expres naar de pagina, want de coach-mark wijst naar een control dat de
43
+ * gebruiker moet kunnen bereiken, dus focus vasthouden zou het doel ondermijnen.
44
+ * Niet-dismissable gebruikt een benoemde `role="region"` (aria-label = de titel) en
45
+ * verplaatst focus nooit; de polite live region kondigt de tip aan.
46
+ */
47
+ import { LitElement } from 'lit';
48
+ import type { PropertyValues } from 'lit';
49
+ import '../../actions/icon-button/icon-button.js';
50
+ type Placement = 'auto' | 'top' | 'bottom' | 'left' | 'right';
51
+ export type JustInTimeEducationCloseReason = 'completed' | 'dismissed' | 'ignored';
52
+ declare const NLDDJustInTimeEducation_base: (abstract new (...args: any[]) => LitElement & {
53
+ translations: Partial<{
54
+ 'components.just-in-time-education.accessible-label': string;
55
+ 'components.just-in-time-education.dismiss-action': string;
56
+ }>;
57
+ _t(key: "components.just-in-time-education.accessible-label" | "components.just-in-time-education.dismiss-action", vars?: Record<string, string | number>): string;
58
+ }) & typeof LitElement;
59
+ export declare class NLDDJustInTimeEducation extends NLDDJustInTimeEducation_base {
60
+ static styles: import("lit").CSSResult;
61
+ private static readonly _ownAttributes;
62
+ active: boolean;
63
+ text: string;
64
+ supportingText: string;
65
+ placement: Placement;
66
+ dismissable: boolean;
67
+ arrowLength: string;
68
+ noArrow: boolean;
69
+ private _cleanupAutoUpdate;
70
+ private _attachTimeout;
71
+ private _attributeObserver;
72
+ private _boundDocumentInteraction;
73
+ private _resolvedSide;
74
+ private _lastViewportWidth;
75
+ private _lastViewportHeight;
76
+ readonly _arrowMarkerId: string;
77
+ updated(changed: PropertyValues): void;
78
+ private get _containerEl();
79
+ private get _cardEl();
80
+ private get _announcerEl();
81
+ private _getControl;
82
+ private _getControls;
83
+ /** Mirror one host attribute onto the slotted control(s) — or remove it —
84
+ * unless the component owns that attribute. */
85
+ private _forwardAttribute;
86
+ /** Forward every non-owned host attribute to the slotted control(s); run on
87
+ * slotchange so a freshly slotted control catches up with what's already set. */
88
+ _handleSlotChange(): void;
89
+ private _open;
90
+ private _closePopover;
91
+ private _startPositioning;
92
+ private _stopPositioning;
93
+ private _updatePosition;
94
+ private _chooseSide;
95
+ private _updateArrow;
96
+ /** Route 1: the advised interaction on the slotted control (only when
97
+ * dismissable; otherwise the consumer drives completion via complete()).
98
+ * A mouse click fires pointerdown then focusin, both landing here; the
99
+ * !this.active guard makes the second call a no-op so 'completed' fires once. */
100
+ _handleAdvisedInteraction(): void;
101
+ /** Route 2: a click/keystroke outside the coach-mark (only when dismissable). */
102
+ private _handleDocumentInteraction;
103
+ /** Route 3: the dismiss button. */
104
+ _handleDismiss(): void;
105
+ /** Escape while focus is inside the callout dismisses it (the ARIA non-modal
106
+ * dialog expectation). The document capture listener (route 2) treats inside
107
+ * events as not-outside and bails, so Escape is handled here. stopPropagation
108
+ * keeps it from also closing an ancestor (e.g. a modal the coach-mark sits in). */
109
+ _handleCalloutKeydown(e: KeyboardEvent): void;
110
+ /** Programmatically mark the advised interaction as done (success close). */
111
+ complete(): void;
112
+ private _close;
113
+ connectedCallback(): void;
114
+ disconnectedCallback(): void;
115
+ render(): import("lit-html").TemplateResult;
116
+ }
117
+ declare global {
118
+ interface HTMLElementTagNameMap {
119
+ 'nldd-just-in-time-education': NLDDJustInTimeEducation;
120
+ }
121
+ }
122
+ export {};
123
+ //# sourceMappingURL=just-in-time-education.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"just-in-time-education.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/just-in-time-education/just-in-time-education.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAQ1C,OAAO,0CAA0C,CAAC;AAElD,KAAK,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,8BAA8B,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;;;;;;;;AAInF,qBACa,uBAAwB,SAAQ,4BAAsG;IAClJ,OAAgB,MAAM,0BAA6B;IAOnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAGnC;IAGH,MAAM,UAAS;IAGf,IAAI,SAAM;IAGV,cAAc,SAAM;IAGpB,SAAS,EAAE,SAAS,CAAU;IAG9B,WAAW,UAAS;IAGpB,WAAW,SAAM;IAGjB,OAAO,UAAS;IAEhB,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,yBAAyB,CAAoD;IACrF,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,mBAAmB,CAAK;IAChC,QAAQ,CAAC,cAAc,SAAsC;IAEpD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IA2B/C,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAKpB;oDACgD;IAChD,OAAO,CAAC,iBAAiB;IAUzB;sFACkF;IAClF,iBAAiB,IAAI,IAAI;IAIzB,OAAO,CAAC,KAAK;IA8Bb,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;YAMV,eAAe;IAyF7B,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IAiFpB;;;sFAGkF;IAClF,yBAAyB,IAAI,IAAI;IAKjC,iFAAiF;IACjF,OAAO,CAAC,0BAA0B;IASlC,mCAAmC;IACnC,cAAc,IAAI,IAAI;IAItB;;;wFAGoF;IACpF,qBAAqB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAM7C,6EAA6E;IAC7E,QAAQ,IAAI,IAAI;IAIhB,OAAO,CAAC,MAAM;IASL,iBAAiB,IAAI,IAAI;IAezB,oBAAoB,IAAI,IAAI;IAM5B,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,6BAA6B,EAAE,uBAAuB,CAAC;KACvD;CACD"}
@@ -0,0 +1,6 @@
1
+ export declare const nlddJustInTimeEducationTranslations: {
2
+ 'components.just-in-time-education.accessible-label': string;
3
+ 'components.just-in-time-education.dismiss-action': string;
4
+ };
5
+ export type NLDDJustInTimeEducationTranslations = typeof nlddJustInTimeEducationTranslations;
6
+ //# sourceMappingURL=just-in-time-education.i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"just-in-time-education.i18n.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/just-in-time-education/just-in-time-education.i18n.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC;;;CAG/C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,OAAO,mCAAmC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const nlddJustInTimeEducationTranslations = {
2
+ 'components.just-in-time-education.accessible-label': 'Uitleg',
3
+ 'components.just-in-time-education.dismiss-action': 'Sluit',
4
+ };
5
+ //# sourceMappingURL=just-in-time-education.i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"just-in-time-education.i18n.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/just-in-time-education/just-in-time-education.i18n.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG;IAClD,oDAAoD,EAAE,QAAQ;IAC9D,kDAAkD,EAAE,OAAO;CAC3D,CAAC"}