@fluentui/web-components 3.0.0-beta.22 → 3.0.0-beta.24

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 (189) hide show
  1. package/CHANGELOG.md +23 -2
  2. package/dist/dts/accordion/accordion.bench.d.ts +3 -0
  3. package/dist/dts/accordion/accordion.options.d.ts +1 -1
  4. package/dist/dts/accordion-item/accordion-item.bench.d.ts +3 -0
  5. package/dist/dts/accordion-item/accordion-item.d.ts +1 -1
  6. package/dist/dts/accordion-item/accordion-item.options.d.ts +2 -2
  7. package/dist/dts/anchor-button/anchor-button.bench.d.ts +3 -0
  8. package/dist/dts/anchor-button/anchor-button.d.ts +1 -1
  9. package/dist/dts/anchor-button/anchor-button.options.d.ts +4 -4
  10. package/dist/dts/avatar/avatar.bench.d.ts +3 -0
  11. package/dist/dts/avatar/avatar.options.d.ts +6 -6
  12. package/dist/dts/badge/badge.bench.d.ts +3 -0
  13. package/dist/dts/badge/badge.options.d.ts +5 -5
  14. package/dist/dts/button/button.bench.d.ts +3 -0
  15. package/dist/dts/button/button.options.d.ts +6 -6
  16. package/dist/dts/checkbox/checkbox.bench.d.ts +3 -0
  17. package/dist/dts/checkbox/checkbox.d.ts +1 -1
  18. package/dist/dts/checkbox/checkbox.options.d.ts +3 -3
  19. package/dist/dts/compound-button/compound-button.bench.d.ts +3 -0
  20. package/dist/dts/compound-button/compound-button.options.d.ts +3 -3
  21. package/dist/dts/counter-badge/counter-badge.bench.d.ts +3 -0
  22. package/dist/dts/counter-badge/counter-badge.options.d.ts +5 -5
  23. package/dist/dts/dialog/dialog.bench.d.ts +3 -0
  24. package/dist/dts/dialog/dialog.d.ts +11 -144
  25. package/dist/dts/dialog/dialog.options.d.ts +2 -2
  26. package/dist/dts/dialog/index.d.ts +1 -1
  27. package/dist/dts/dialog-body/define.d.ts +1 -0
  28. package/dist/dts/dialog-body/dialog-body.bench.d.ts +3 -0
  29. package/dist/dts/dialog-body/dialog-body.d.ts +14 -0
  30. package/dist/dts/dialog-body/dialog-body.definition.d.ts +9 -0
  31. package/dist/dts/dialog-body/dialog-body.styles.d.ts +4 -0
  32. package/dist/dts/dialog-body/dialog-body.template.d.ts +6 -0
  33. package/dist/dts/dialog-body/index.d.ts +4 -0
  34. package/dist/dts/divider/divider.bench.d.ts +3 -0
  35. package/dist/dts/divider/divider.options.d.ts +4 -4
  36. package/dist/dts/form-associated/form-associated.d.ts +4 -4
  37. package/dist/dts/image/image.bench.d.ts +3 -0
  38. package/dist/dts/image/image.options.d.ts +2 -2
  39. package/dist/dts/index-rollup.d.ts +1 -0
  40. package/dist/dts/index.d.ts +2 -1
  41. package/dist/dts/label/label.bench.d.ts +3 -0
  42. package/dist/dts/label/label.options.d.ts +2 -2
  43. package/dist/dts/menu/menu.bench.d.ts +3 -0
  44. package/dist/dts/menu-button/menu-button.bench.d.ts +3 -0
  45. package/dist/dts/menu-button/menu-button.options.d.ts +3 -3
  46. package/dist/dts/menu-item/menu-item.bench.d.ts +3 -0
  47. package/dist/dts/menu-item/menu-item.d.ts +2 -2
  48. package/dist/dts/menu-item/menu-item.options.d.ts +1 -1
  49. package/dist/dts/menu-list/menu-list.bench.d.ts +3 -0
  50. package/dist/dts/patterns/start-end.d.ts +3 -3
  51. package/dist/dts/progress-bar/progress-bar.bench.d.ts +3 -0
  52. package/dist/dts/progress-bar/progress-bar.options.d.ts +4 -4
  53. package/dist/dts/radio/radio.bench.d.ts +3 -0
  54. package/dist/dts/radio/radio.d.ts +2 -2
  55. package/dist/dts/radio-group/radio-group.bench.d.ts +3 -0
  56. package/dist/dts/radio-group/radio-group.options.d.ts +1 -1
  57. package/dist/dts/slider/slider.bench.d.ts +3 -0
  58. package/dist/dts/slider/slider.options.d.ts +4 -4
  59. package/dist/dts/spinner/spinner.bench.d.ts +3 -0
  60. package/dist/dts/spinner/spinner.options.d.ts +2 -2
  61. package/dist/dts/switch/switch.bench.d.ts +3 -0
  62. package/dist/dts/switch/switch.d.ts +1 -1
  63. package/dist/dts/switch/switch.options.d.ts +1 -1
  64. package/dist/dts/tab/tab.bench.d.ts +3 -0
  65. package/dist/dts/tab/tab.d.ts +1 -1
  66. package/dist/dts/tab-panel/tab-panel.bench.d.ts +3 -0
  67. package/dist/dts/tabs/tabs.bench.d.ts +3 -0
  68. package/dist/dts/tabs/tabs.options.d.ts +4 -4
  69. package/dist/dts/text/text.bench.d.ts +3 -0
  70. package/dist/dts/text/text.options.d.ts +4 -4
  71. package/dist/dts/text-input/text-input.bench.d.ts +3 -0
  72. package/dist/dts/text-input/text-input.d.ts +0 -1
  73. package/dist/dts/text-input/text-input.options.d.ts +4 -4
  74. package/dist/dts/toggle-button/toggle-button.bench.d.ts +3 -0
  75. package/dist/dts/toggle-button/toggle-button.options.d.ts +3 -3
  76. package/dist/dts/utils/behaviors/match-media-stylesheet-behavior.d.ts +1 -1
  77. package/dist/dts/utils/display.d.ts +1 -1
  78. package/dist/dts/utils/template-helpers.d.ts +1 -1
  79. package/dist/dts/utils/typings.d.ts +1 -1
  80. package/dist/esm/accordion/accordion.bench.js +30 -0
  81. package/dist/esm/accordion/accordion.bench.js.map +1 -0
  82. package/dist/esm/accordion-item/accordion-item.bench.js +14 -0
  83. package/dist/esm/accordion-item/accordion-item.bench.js.map +1 -0
  84. package/dist/esm/anchor-button/anchor-button.bench.js +11 -0
  85. package/dist/esm/anchor-button/anchor-button.bench.js.map +1 -0
  86. package/dist/esm/avatar/avatar.bench.js +10 -0
  87. package/dist/esm/avatar/avatar.bench.js.map +1 -0
  88. package/dist/esm/badge/badge.bench.js +11 -0
  89. package/dist/esm/badge/badge.bench.js.map +1 -0
  90. package/dist/esm/button/button.bench.js +11 -0
  91. package/dist/esm/button/button.bench.js.map +1 -0
  92. package/dist/esm/button/button.js +26 -26
  93. package/dist/esm/button/button.js.map +1 -1
  94. package/dist/esm/button/button.styles.js +27 -27
  95. package/dist/esm/button/button.styles.js.map +1 -1
  96. package/dist/esm/checkbox/checkbox.bench.js +11 -0
  97. package/dist/esm/checkbox/checkbox.bench.js.map +1 -0
  98. package/dist/esm/compound-button/compound-button.bench.js +15 -0
  99. package/dist/esm/compound-button/compound-button.bench.js.map +1 -0
  100. package/dist/esm/counter-badge/counter-badge.bench.js +11 -0
  101. package/dist/esm/counter-badge/counter-badge.bench.js.map +1 -0
  102. package/dist/esm/dialog/dialog.bench.js +11 -0
  103. package/dist/esm/dialog/dialog.bench.js.map +1 -0
  104. package/dist/esm/dialog/dialog.js +31 -304
  105. package/dist/esm/dialog/dialog.js.map +1 -1
  106. package/dist/esm/dialog/dialog.options.js +1 -1
  107. package/dist/esm/dialog/dialog.options.js.map +1 -1
  108. package/dist/esm/dialog/dialog.styles.js +61 -84
  109. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  110. package/dist/esm/dialog/dialog.template.js +17 -54
  111. package/dist/esm/dialog/dialog.template.js.map +1 -1
  112. package/dist/esm/dialog/index.js +1 -1
  113. package/dist/esm/dialog/index.js.map +1 -1
  114. package/dist/esm/dialog-body/define.js +4 -0
  115. package/dist/esm/dialog-body/define.js.map +1 -0
  116. package/dist/esm/dialog-body/dialog-body.bench.js +11 -0
  117. package/dist/esm/dialog-body/dialog-body.bench.js.map +1 -0
  118. package/dist/esm/dialog-body/dialog-body.definition.js +17 -0
  119. package/dist/esm/dialog-body/dialog-body.definition.js.map +1 -0
  120. package/dist/esm/dialog-body/dialog-body.js +22 -0
  121. package/dist/esm/dialog-body/dialog-body.js.map +1 -0
  122. package/dist/esm/dialog-body/dialog-body.styles.js +79 -0
  123. package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -0
  124. package/dist/esm/dialog-body/dialog-body.template.js +42 -0
  125. package/dist/esm/dialog-body/dialog-body.template.js.map +1 -0
  126. package/dist/esm/dialog-body/index.js +5 -0
  127. package/dist/esm/dialog-body/index.js.map +1 -0
  128. package/dist/esm/divider/divider.bench.js +10 -0
  129. package/dist/esm/divider/divider.bench.js.map +1 -0
  130. package/dist/esm/form-associated/form-associated.js +66 -66
  131. package/dist/esm/form-associated/form-associated.js.map +1 -1
  132. package/dist/esm/image/image.bench.js +14 -0
  133. package/dist/esm/image/image.bench.js.map +1 -0
  134. package/dist/esm/index-rollup.js +1 -0
  135. package/dist/esm/index-rollup.js.map +1 -1
  136. package/dist/esm/index.js +2 -1
  137. package/dist/esm/index.js.map +1 -1
  138. package/dist/esm/label/label.bench.js +11 -0
  139. package/dist/esm/label/label.bench.js.map +1 -0
  140. package/dist/esm/menu/menu.bench.js +31 -0
  141. package/dist/esm/menu/menu.bench.js.map +1 -0
  142. package/dist/esm/menu-button/menu-button.bench.js +11 -0
  143. package/dist/esm/menu-button/menu-button.bench.js.map +1 -0
  144. package/dist/esm/menu-item/menu-item.bench.js +11 -0
  145. package/dist/esm/menu-item/menu-item.bench.js.map +1 -0
  146. package/dist/esm/menu-list/menu-list.bench.js +21 -0
  147. package/dist/esm/menu-list/menu-list.bench.js.map +1 -0
  148. package/dist/esm/progress-bar/progress-bar.bench.js +10 -0
  149. package/dist/esm/progress-bar/progress-bar.bench.js.map +1 -0
  150. package/dist/esm/radio/radio.bench.js +11 -0
  151. package/dist/esm/radio/radio.bench.js.map +1 -0
  152. package/dist/esm/radio/radio.js +11 -11
  153. package/dist/esm/radio/radio.js.map +1 -1
  154. package/dist/esm/radio-group/radio-group.bench.js +21 -0
  155. package/dist/esm/radio-group/radio-group.bench.js.map +1 -0
  156. package/dist/esm/slider/slider.bench.js +10 -0
  157. package/dist/esm/slider/slider.bench.js.map +1 -0
  158. package/dist/esm/slider/slider.template.js +1 -1
  159. package/dist/esm/slider/slider.template.js.map +1 -1
  160. package/dist/esm/spinner/spinner.bench.js +10 -0
  161. package/dist/esm/spinner/spinner.bench.js.map +1 -0
  162. package/dist/esm/switch/switch.bench.js +11 -0
  163. package/dist/esm/switch/switch.bench.js.map +1 -0
  164. package/dist/esm/switch/switch.js +5 -5
  165. package/dist/esm/switch/switch.js.map +1 -1
  166. package/dist/esm/tab/tab.bench.js +11 -0
  167. package/dist/esm/tab/tab.bench.js.map +1 -0
  168. package/dist/esm/tab-panel/tab-panel.bench.js +13 -0
  169. package/dist/esm/tab-panel/tab-panel.bench.js.map +1 -0
  170. package/dist/esm/tabs/tabs.bench.js +32 -0
  171. package/dist/esm/tabs/tabs.bench.js.map +1 -0
  172. package/dist/esm/text/text.bench.js +13 -0
  173. package/dist/esm/text/text.bench.js.map +1 -0
  174. package/dist/esm/text-input/text-input.bench.js +10 -0
  175. package/dist/esm/text-input/text-input.bench.js.map +1 -0
  176. package/dist/esm/theme/set-theme.js +10 -1
  177. package/dist/esm/theme/set-theme.js.map +1 -1
  178. package/dist/esm/toggle-button/toggle-button.bench.js +11 -0
  179. package/dist/esm/toggle-button/toggle-button.bench.js.map +1 -0
  180. package/dist/web-components.d.ts +51 -151
  181. package/dist/web-components.js +264 -838
  182. package/dist/web-components.min.js +235 -237
  183. package/package.json +15 -1
  184. package/dist/fluent-web-components.api.json +0 -29528
  185. package/docs/api-report.md +0 -3366
  186. package/playwright.config.ts +0 -24
  187. package/project.json +0 -6
  188. package/tensile.config.js +0 -22
  189. package/tsdoc.json +0 -44
@@ -1,8 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr, FASTElement, observable, Updates } from '@microsoft/fast-element';
3
- import { isTabbable } from 'tabbable';
4
- import { keyEscape, keyTab } from '@microsoft/fast-web-utilities';
5
- import { DialogModalType } from './dialog.options.js';
3
+ import { DialogType } from './dialog.options.js';
6
4
  /**
7
5
  * A Dialog Custom HTML Element.
8
6
  *
@@ -11,240 +9,33 @@ import { DialogModalType } from './dialog.options.js';
11
9
  export class Dialog extends FASTElement {
12
10
  constructor() {
13
11
  super(...arguments);
14
- /**
15
- * @internal
16
- * Indicates whether focus is being trapped within the dialog
17
- */
18
- this.isTrappingFocus = false;
19
- /**
20
- * @public
21
- * The title action elements
22
- */
23
- this.titleAction = [];
24
12
  /**
25
13
  * @public
26
14
  * The type of the dialog modal
27
15
  */
28
- this.modalType = DialogModalType.modal;
29
- /**
30
- * @public
31
- * Indicates whether the dialog is open
32
- */
33
- this.open = false;
16
+ this.type = DialogType.modal;
34
17
  /**
35
18
  * @public
36
- * Indicates whether the dialog has a title action
37
- */
38
- this.noTitleAction = false;
39
- /**
40
- * @internal
41
- * Indicates whether focus should be trapped within the dialog
42
- */
43
- this.trapFocus = false;
44
- /**
45
- * @public
46
- * Method to emit an event when the dialog's open state changes
47
- * @param dismissed - Indicates whether the dialog was dismissed
48
- */
49
- this.onOpenChangeEvent = (dismissed = false) => {
50
- this.$emit('onOpenChange', { open: this.dialog.open, dismissed: dismissed });
19
+ * Method to emit an event before the dialog's open state changes
20
+ * HTML spec proposal: https://github.com/whatwg/html/issues/9733
21
+ */
22
+ this.emitBeforeToggle = () => {
23
+ this.$emit('beforetoggle', {
24
+ oldState: this.dialog.open ? 'open' : 'closed',
25
+ newState: this.dialog.open ? 'closed' : 'open',
26
+ });
51
27
  };
52
28
  /**
53
29
  * @public
54
- * Handles keydown events on the dialog
55
- * @param e - The keydown event
56
- * @returns boolean | void
57
- */
58
- this.handleKeydown = (e) => {
59
- if (e.defaultPrevented) {
60
- return;
61
- }
62
- switch (e.key) {
63
- case keyEscape:
64
- if (this.modalType !== DialogModalType.alert) {
65
- this.hide(true);
66
- this.$emit('dismiss');
67
- }
68
- break;
69
- default:
70
- return true;
71
- }
72
- };
73
- /**
74
- * @internal
75
- * Handles keydown events on the document
76
- * @param e - The keydown event
77
- */
78
- this.handleDocumentKeydown = (e) => {
79
- if (!e.defaultPrevented && this.dialog.open) {
80
- switch (e.key) {
81
- case keyTab:
82
- this.handleTabKeyDown(e);
83
- break;
84
- }
85
- }
30
+ * Method to emit an event after the dialog's open state changes
31
+ * HTML spec proposal: https://github.com/whatwg/html/issues/9733
32
+ */
33
+ this.emitToggle = () => {
34
+ this.$emit('toggle', {
35
+ oldState: this.dialog.open ? 'closed' : 'open',
36
+ newState: this.dialog.open ? 'open' : 'closed',
37
+ });
86
38
  };
87
- /**
88
- * @internal
89
- * Handles tab keydown events
90
- * @param e - The keydown event
91
- */
92
- this.handleTabKeyDown = (e) => {
93
- if (!this.trapFocus || !this.dialog.open) {
94
- return;
95
- }
96
- const bounds = this.getTabQueueBounds();
97
- if (bounds.length === 1) {
98
- bounds[0].focus();
99
- e.preventDefault();
100
- return;
101
- }
102
- if (e.shiftKey && e.target === bounds[0]) {
103
- bounds[bounds.length - 1].focus();
104
- e.preventDefault();
105
- }
106
- else if (!e.shiftKey && e.target === bounds[bounds.length - 1]) {
107
- bounds[0].focus();
108
- e.preventDefault();
109
- }
110
- return;
111
- };
112
- /**
113
- * @internal
114
- * Gets the bounds of the tab queue
115
- * @returns (HTMLElement | SVGElement)[]
116
- */
117
- this.getTabQueueBounds = () => {
118
- const bounds = [];
119
- return Dialog.reduceTabbableItems(bounds, this);
120
- };
121
- /**
122
- * @internal
123
- * Focuses the first element in the tab queue
124
- */
125
- this.focusFirstElement = () => {
126
- const bounds = this.getTabQueueBounds();
127
- if (bounds.length > 0) {
128
- bounds[0].focus();
129
- }
130
- else {
131
- if (this.dialog instanceof HTMLElement) {
132
- this.dialog.focus();
133
- }
134
- }
135
- };
136
- /**
137
- * @internal
138
- * Determines if focus should be forced
139
- * @param currentFocusElement - The currently focused element
140
- * @returns boolean
141
- */
142
- this.shouldForceFocus = (currentFocusElement) => {
143
- return this.isTrappingFocus && !this.contains(currentFocusElement);
144
- };
145
- /**
146
- * @internal
147
- * Determines if focus should be trapped
148
- * @returns boolean
149
- */
150
- this.shouldTrapFocus = () => {
151
- return this.trapFocus && this.dialog.open;
152
- };
153
- /**
154
- * @internal
155
- * Handles focus events on the document
156
- * @param e - The focus event
157
- */
158
- this.handleDocumentFocus = (e) => {
159
- if (!e.defaultPrevented && this.shouldForceFocus(e.target)) {
160
- this.focusFirstElement();
161
- e.preventDefault();
162
- }
163
- };
164
- /**
165
- * @internal
166
- * Updates the state of focus trapping
167
- * @param shouldTrapFocusOverride - Optional override for whether focus should be trapped
168
- */
169
- this.updateTrapFocus = (shouldTrapFocusOverride) => {
170
- const shouldTrapFocus = shouldTrapFocusOverride === undefined ? this.shouldTrapFocus() : shouldTrapFocusOverride;
171
- if (shouldTrapFocus && !this.isTrappingFocus) {
172
- this.isTrappingFocus = true;
173
- // Add an event listener for focusin events if we are trapping focus
174
- document.addEventListener('focusin', this.handleDocumentFocus);
175
- Updates.enqueue(() => {
176
- if (this.shouldForceFocus(document.activeElement)) {
177
- this.focusFirstElement();
178
- }
179
- });
180
- }
181
- else if (!shouldTrapFocus && this.isTrappingFocus) {
182
- this.isTrappingFocus = false;
183
- // remove event listener if we are not trapping focus
184
- document.removeEventListener('focusin', this.handleDocumentFocus);
185
- }
186
- };
187
- }
188
- /**
189
- * @public
190
- * Lifecycle method called when the element is connected to the DOM
191
- */
192
- connectedCallback() {
193
- super.connectedCallback();
194
- document.addEventListener('keydown', this.handleDocumentKeydown);
195
- Updates.enqueue(() => {
196
- this.updateTrapFocus();
197
- this.setComponent();
198
- });
199
- }
200
- /**
201
- * @public
202
- * Lifecycle method called when the element is disconnected from the DOM
203
- */
204
- disconnectedCallback() {
205
- super.disconnectedCallback();
206
- document.removeEventListener('keydown', this.handleDocumentKeydown);
207
- this.updateTrapFocus(false);
208
- }
209
- /**
210
- * @public
211
- * Method called when the 'open' attribute changes
212
- */
213
- openChanged(oldValue, newValue) {
214
- if (newValue !== oldValue) {
215
- if (newValue && !oldValue) {
216
- this.show();
217
- }
218
- else if (!newValue && oldValue) {
219
- this.hide();
220
- }
221
- }
222
- }
223
- /**
224
- * @public
225
- * Method called when the 'modalType' attribute changes
226
- */
227
- modalTypeChanged(oldValue, newValue) {
228
- if (newValue !== oldValue) {
229
- if (newValue == DialogModalType.alert || newValue == DialogModalType.modal) {
230
- this.trapFocus = true;
231
- }
232
- else {
233
- this.trapFocus = false;
234
- }
235
- }
236
- }
237
- /**
238
- * @public
239
- * Method to set the component's state based on its attributes
240
- */
241
- setComponent() {
242
- if (this.modalType == DialogModalType.modal || this.modalType == DialogModalType.alert) {
243
- this.trapFocus = true;
244
- }
245
- else {
246
- this.trapFocus = false;
247
- }
248
39
  }
249
40
  /**
250
41
  * @public
@@ -252,100 +43,42 @@ export class Dialog extends FASTElement {
252
43
  */
253
44
  show() {
254
45
  Updates.enqueue(() => {
255
- if (this.modalType === DialogModalType.alert || this.modalType === DialogModalType.modal) {
46
+ this.emitBeforeToggle();
47
+ if (this.type === DialogType.alert || this.type === DialogType.modal) {
256
48
  this.dialog.showModal();
257
- this.open = true;
258
- this.updateTrapFocus(true);
259
49
  }
260
- else if (this.modalType === DialogModalType.nonModal) {
50
+ else if (this.type === DialogType.nonModal) {
261
51
  this.dialog.show();
262
- this.open = true;
263
52
  }
264
- this.onOpenChangeEvent();
53
+ this.emitToggle();
265
54
  });
266
55
  }
267
56
  /**
268
57
  * @public
269
58
  * Method to hide the dialog
270
- * @param dismissed - Indicates whether the dialog was dismissed
271
59
  */
272
- hide(dismissed = false) {
60
+ hide() {
61
+ this.emitBeforeToggle();
273
62
  this.dialog.close();
274
- this.open = false;
275
- this.onOpenChangeEvent(dismissed);
63
+ this.emitToggle();
276
64
  }
277
65
  /**
278
66
  * @public
279
- * Method to dismiss the dialog
280
- */
281
- dismiss() {
282
- if (this.modalType === DialogModalType.alert) {
283
- return;
284
- }
285
- this.hide(true);
286
- }
287
- /**
288
- * @public
289
- * Handles click events on the dialog
67
+ * Handles click events on the dialog overlay for light-dismiss
290
68
  * @param event - The click event
291
69
  * @returns boolean
292
70
  */
293
- handleClick(event) {
71
+ clickHandler(event) {
294
72
  event.preventDefault();
295
- if (this.dialog.open && this.modalType !== DialogModalType.alert && event.target === this.dialog) {
296
- this.dismiss();
73
+ if (this.dialog.open && this.type !== DialogType.alert && event.target === this.dialog) {
74
+ this.hide();
297
75
  }
298
76
  return true;
299
77
  }
300
- /**
301
- * @internal
302
- * Reduces the list of tabbable items
303
- * @param elements - The current list of elements
304
- * @param element - The element to consider adding to the list
305
- * @returns HTMLElement[]
306
- */
307
- static reduceTabbableItems(elements, element) {
308
- if (element.getAttribute('tabindex') === '-1') {
309
- return elements;
310
- }
311
- if (isTabbable(element) || (Dialog.isFocusableFastElement(element) && Dialog.hasTabbableShadow(element))) {
312
- elements.push(element);
313
- return elements;
314
- }
315
- return Array.from(element.children).reduce((elements, currentElement) => Dialog.reduceTabbableItems(elements, currentElement), elements);
316
- }
317
- /**
318
- * @internal
319
- * Determines if an element is a focusable FASTElement
320
- * @param element - The element to check
321
- * @returns boolean
322
- */
323
- static isFocusableFastElement(element) {
324
- var _a, _b;
325
- return !!((_b = (_a = element.$fastController) === null || _a === void 0 ? void 0 : _a.definition.shadowOptions) === null || _b === void 0 ? void 0 : _b.delegatesFocus);
326
- }
327
- /**
328
- * @internal
329
- * Determines if an element has a tabbable shadow
330
- * @param element - The element to check
331
- * @returns boolean
332
- */
333
- static hasTabbableShadow(element) {
334
- var _a, _b;
335
- return Array.from((_b = (_a = element.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('*')) !== null && _b !== void 0 ? _b : []).some(x => {
336
- return isTabbable(x);
337
- });
338
- }
339
78
  }
340
79
  __decorate([
341
80
  observable
342
81
  ], Dialog.prototype, "dialog", void 0);
343
- __decorate([
344
- observable
345
- ], Dialog.prototype, "titleAction", void 0);
346
- __decorate([
347
- observable
348
- ], Dialog.prototype, "defaultTitleAction", void 0);
349
82
  __decorate([
350
83
  attr({ attribute: 'aria-describedby' })
351
84
  ], Dialog.prototype, "ariaDescribedby", void 0);
@@ -353,12 +86,6 @@ __decorate([
353
86
  attr({ attribute: 'aria-labelledby' })
354
87
  ], Dialog.prototype, "ariaLabelledby", void 0);
355
88
  __decorate([
356
- attr({ attribute: 'modal-type' })
357
- ], Dialog.prototype, "modalType", void 0);
358
- __decorate([
359
- attr({ mode: 'boolean' })
360
- ], Dialog.prototype, "open", void 0);
361
- __decorate([
362
- attr({ mode: 'boolean', attribute: 'no-title-action' })
363
- ], Dialog.prototype, "noTitleAction", void 0);
89
+ attr
90
+ ], Dialog.prototype, "type", void 0);
364
91
  //# sourceMappingURL=dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/dialog/dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/dialog/dialog.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,OAAO,MAAO,SAAQ,WAAW;IAAvC;;QAsBE;;;WAGG;QAEI,SAAI,GAAe,UAAU,CAAC,KAAK,CAAC;QAE3C;;;;WAIG;QACI,qBAAgB,GAAG,GAAS,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBACzB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;;WAIG;QACI,eAAU,GAAG,GAAS,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC;IAyCJ,CAAC;IAvCC;;;OAGG;IACI,IAAI;QACT,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;gBACpE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;aACzB;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,IAAI;QACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,KAAY;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YACtF,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtFC;IADC,UAAU;sCACuB;AAOlC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;+CACR;AAOhC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;8CACR;AAO/B;IADC,IAAI;oCACsC"}
@@ -2,7 +2,7 @@
2
2
  * Dialog modal type
3
3
  * @public
4
4
  */
5
- export const DialogModalType = {
5
+ export const DialogType = {
6
6
  modal: 'modal',
7
7
  nonModal: 'non-modal',
8
8
  alert: 'alert',
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.options.js","sourceRoot":"","sources":["../../../src/dialog/dialog.options.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,OAAO;CACN,CAAC"}
1
+ {"version":3,"file":"dialog.options.js","sourceRoot":"","sources":["../../../src/dialog/dialog.options.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,OAAO;CACN,CAAC"}
@@ -1,101 +1,78 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { display } from '../utils/index.js';
3
- import { borderRadiusXLarge, colorBackgroundOverlay, colorNeutralBackground1, colorNeutralForeground1, colorTransparentStroke, fontFamilyBase, fontSizeBase300, fontSizeBase500, fontWeightRegular, fontWeightSemibold, lineHeightBase300, lineHeightBase500, shadow64, spacingHorizontalS, spacingHorizontalXXL, spacingVerticalS, spacingVerticalXXL, strokeWidthThin, } from '../theme/design-tokens.js';
2
+ import { borderRadiusXLarge, colorBackgroundOverlay, colorNeutralBackground1, colorNeutralForeground1, colorTransparentStroke, curveAccelerateMid, curveDecelerateMid, curveLinear, durationGentle, shadow64, strokeWidthThin, } from '../theme/design-tokens.js';
4
3
  /** Dialog styles
5
4
  * @public
6
5
  */
7
6
  export const styles = css `
8
- ${display('flex')}
7
+ @layer base {
8
+ :host {
9
+ --dialog-backdrop: ${colorBackgroundOverlay};
10
+ --dialog-starting-scale: 0.85;
11
+ }
9
12
 
10
- :host {
11
- --dialog-backdrop: ${colorBackgroundOverlay};
12
- }
13
+ ::backdrop {
14
+ background: var(--dialog-backdrop, rgba(0, 0, 0, 0.4));
15
+ }
13
16
 
14
- dialog {
15
- background: ${colorNeutralBackground1};
16
- border: ${strokeWidthThin} solid ${colorTransparentStroke};
17
- z-index: 2;
18
- margin: auto auto;
19
- max-width: 100%;
20
- width: 100vw;
21
- border-radius: ${borderRadiusXLarge};
22
- box-shadow: ${shadow64};
23
- max-height: 100vh;
24
- height: fit-content;
25
- overflow: unset;
26
- position: fixed;
27
- inset: 0;
28
- padding: 0;
29
- }
17
+ dialog {
18
+ background: ${colorNeutralBackground1};
19
+ border-radius: ${borderRadiusXLarge};
20
+ border: ${strokeWidthThin} solid ${colorTransparentStroke};
21
+ box-shadow: ${shadow64};
22
+ color: ${colorNeutralForeground1};
23
+ max-height: calc(-48px + 100vh);
24
+ padding: 0;
25
+ width: 100%;
26
+ max-width: 600px;
27
+ }
30
28
 
31
- dialog::backdrop {
32
- background: var(--dialog-backdrop, rgba(0, 0, 0, 0.4));
29
+ :host([type='non-modal']) dialog {
30
+ inset: 0;
31
+ position: fixed;
32
+ z-index: 2;
33
+ overflow: auto;
34
+ }
33
35
  }
34
36
 
35
- .root {
36
- box-sizing: border-box;
37
- display: flex;
38
- flex-direction: column;
39
- overflow: unset;
40
- max-height: calc(100vh - 48px);
41
- padding: ${spacingVerticalXXL} ${spacingHorizontalXXL};
42
- }
37
+ @layer animations {
38
+ /* Disable animations for reduced motion */
39
+ @media (prefers-reduced-motion: no-preference) {
40
+ dialog,
41
+ ::backdrop {
42
+ transition: display allow-discrete, opacity, overlay allow-discrete, scale;
43
+ transition-duration: ${durationGentle};
44
+ transition-timing-function: ${curveDecelerateMid};
45
+ /* Set opacity to 0 when closed */
46
+ opacity: 0;
47
+ }
48
+ ::backdrop {
49
+ transition-timing-function: ${curveLinear};
50
+ }
43
51
 
44
- .title {
45
- font-size: ${fontSizeBase500};
46
- line-height: ${lineHeightBase500};
47
- font-weight: ${fontWeightSemibold};
48
- font-family: ${fontFamilyBase};
49
- color: ${colorNeutralForeground1};
50
- margin-bottom: ${spacingVerticalS};
51
- display: flex;
52
- justify-content: space-between;
53
- align-items: flex-start;
54
- column-gap: 8px;
55
- }
52
+ /* Set opacity to 1 when open */
53
+ [open],
54
+ [open]::backdrop {
55
+ opacity: 1;
56
+ }
56
57
 
57
- .content {
58
- vertical-align: top;
59
- min-height: 32px;
60
- color: ${colorNeutralForeground1};
61
- font-size: ${fontSizeBase300};
62
- line-height: ${lineHeightBase300};
63
- font-weight: ${fontWeightRegular};
64
- font-family: ${fontFamilyBase};
65
- overflow-y: auto;
66
- box-sizing: border-box;
67
- }
58
+ /* Exit styles for dialog */
59
+ dialog:not([open]) {
60
+ /* Make small when leaving */
61
+ scale: var(--dialog-starting-scale);
62
+ /* Faster leaving the stage then entering */
63
+ transition-timing-function: ${curveAccelerateMid};
64
+ }
65
+ }
68
66
 
69
- .actions {
70
- display: flex;
71
- grid-column-start: 1;
72
- flex-direction: column;
73
- max-width: 100vw;
74
- row-gap: ${spacingVerticalS};
75
- padding-top: ${spacingVerticalXXL};
76
- justify-self: stretch;
77
- width: 100%;
78
- }
79
- ::slotted([slot='action']) {
80
- width: 100%;
81
- }
67
+ @starting-style {
68
+ [open],
69
+ [open]::backdrop {
70
+ opacity: 0;
71
+ }
82
72
 
83
- @media screen and (min-width: 480px) {
84
- ::slotted([slot='action']) {
85
- width: fit-content;
86
- }
87
- dialog {
88
- max-width: 600px;
89
- width: 100%;
90
- }
91
- .actions {
92
- display: flex;
93
- flex-direction: row;
94
- justify-content: flex-end;
95
- align-items: center;
96
- column-gap: ${spacingHorizontalS};
97
- padding-top: ${spacingVerticalS};
98
- box-sizing: border-box;
73
+ dialog {
74
+ scale: var(--dialog-starting-scale);
75
+ }
99
76
  }
100
77
  }
101
78
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.styles.js","sourceRoot":"","sources":["../../../src/dialog/dialog.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC;;;yBAGM,sBAAsB;;;;kBAI7B,uBAAuB;cAC3B,eAAe,UAAU,sBAAsB;;;;;qBAKxC,kBAAkB;kBACrB,QAAQ;;;;;;;;;;;;;;;;;;;eAmBX,kBAAkB,IAAI,oBAAoB;;;;iBAIxC,eAAe;mBACb,iBAAiB;mBACjB,kBAAkB;mBAClB,cAAc;aACpB,uBAAuB;qBACf,gBAAgB;;;;;;;;;;aAUxB,uBAAuB;iBACnB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;mBACjB,cAAc;;;;;;;;;;eAUlB,gBAAgB;mBACZ,kBAAkB;;;;;;;;;;;;;;;;;;;;;oBAqBjB,kBAAkB;qBACjB,gBAAgB;;;;CAIpC,CAAC"}
1
+ {"version":3,"file":"dialog.styles.js","sourceRoot":"","sources":["../../../src/dialog/dialog.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;2BAGE,sBAAsB;;;;;;;;;oBAS7B,uBAAuB;uBACpB,kBAAkB;gBACzB,eAAe,UAAU,sBAAsB;oBAC3C,QAAQ;eACb,uBAAuB;;;;;;;;;;;;;;;;;;;;;+BAqBP,cAAc;sCACP,kBAAkB;;;;;sCAKlB,WAAW;;;;;;;;;;;;;;sCAcX,kBAAkB;;;;;;;;;;;;;;;CAevD,CAAC"}