@fluentui/web-components 3.0.0-beta.39 → 3.0.0-beta.40

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 (77) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/dts/accordion/accordion.d.ts +35 -12
  3. package/dist/dts/accordion-item/accordion-item.d.ts +42 -14
  4. package/dist/dts/accordion-item/accordion-item.options.d.ts +2 -2
  5. package/dist/dts/accordion-item/index.d.ts +1 -1
  6. package/dist/dts/checkbox/checkbox.d.ts +98 -48
  7. package/dist/dts/field/field.d.ts +30 -1
  8. package/dist/dts/field/field.options.d.ts +2 -0
  9. package/dist/dts/index.d.ts +1 -1
  10. package/dist/dts/radio/index.d.ts +1 -1
  11. package/dist/dts/radio/radio.d.ts +38 -35
  12. package/dist/dts/radio/radio.options.d.ts +14 -0
  13. package/dist/dts/radio/radio.styles.d.ts +3 -1
  14. package/dist/dts/radio/radio.template.d.ts +13 -1
  15. package/dist/dts/radio-group/radio-group.d.ts +211 -49
  16. package/dist/dts/radio-group/radio-group.template.d.ts +1 -1
  17. package/dist/dts/styles/states/index.d.ts +20 -0
  18. package/dist/dts/switch/switch.d.ts +1 -0
  19. package/dist/dts/utils/root-active-element.d.ts +1 -0
  20. package/dist/esm/accordion/accordion.js +46 -85
  21. package/dist/esm/accordion/accordion.js.map +1 -1
  22. package/dist/esm/accordion-item/accordion-item.js +63 -19
  23. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  24. package/dist/esm/accordion-item/accordion-item.options.js +1 -1
  25. package/dist/esm/accordion-item/accordion-item.options.js.map +1 -1
  26. package/dist/esm/accordion-item/accordion-item.styles.js +41 -63
  27. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  28. package/dist/esm/accordion-item/accordion-item.template.js +24 -43
  29. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  30. package/dist/esm/accordion-item/index.js +1 -1
  31. package/dist/esm/accordion-item/index.js.map +1 -1
  32. package/dist/esm/checkbox/checkbox.js +146 -97
  33. package/dist/esm/checkbox/checkbox.js.map +1 -1
  34. package/dist/esm/checkbox/checkbox.styles.js +1 -6
  35. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  36. package/dist/esm/checkbox/checkbox.template.js.map +1 -1
  37. package/dist/esm/field/field.js +91 -29
  38. package/dist/esm/field/field.js.map +1 -1
  39. package/dist/esm/field/field.options.js.map +1 -1
  40. package/dist/esm/field/field.styles.js +31 -16
  41. package/dist/esm/field/field.styles.js.map +1 -1
  42. package/dist/esm/field/field.template.js +1 -1
  43. package/dist/esm/field/field.template.js.map +1 -1
  44. package/dist/esm/index.js +1 -1
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/radio/radio.js +59 -72
  47. package/dist/esm/radio/radio.js.map +1 -1
  48. package/dist/esm/radio/radio.options.js +2 -0
  49. package/dist/esm/radio/radio.options.js.map +1 -0
  50. package/dist/esm/radio/radio.styles.js +95 -88
  51. package/dist/esm/radio/radio.styles.js.map +1 -1
  52. package/dist/esm/radio/radio.template.js +21 -24
  53. package/dist/esm/radio/radio.template.js.map +1 -1
  54. package/dist/esm/radio-group/radio-group.js +416 -313
  55. package/dist/esm/radio-group/radio-group.js.map +1 -1
  56. package/dist/esm/radio-group/radio-group.styles.js +26 -32
  57. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  58. package/dist/esm/radio-group/radio-group.template.js +6 -21
  59. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  60. package/dist/esm/styles/states/index.js +20 -0
  61. package/dist/esm/styles/states/index.js.map +1 -1
  62. package/dist/esm/switch/switch.js +4 -0
  63. package/dist/esm/switch/switch.js.map +1 -1
  64. package/dist/esm/switch/switch.styles.js +3 -6
  65. package/dist/esm/switch/switch.styles.js.map +1 -1
  66. package/dist/esm/switch/switch.template.js.map +1 -1
  67. package/dist/esm/theme/set-theme.js +3 -6
  68. package/dist/esm/theme/set-theme.js.map +1 -1
  69. package/dist/esm/utils/root-active-element.js +9 -0
  70. package/dist/esm/utils/root-active-element.js.map +1 -0
  71. package/dist/web-components.d.ts +461 -181
  72. package/dist/web-components.js +1387 -1233
  73. package/dist/web-components.min.js +262 -258
  74. package/package.json +1 -1
  75. package/dist/dts/radio/radio.form-associated.d.ts +0 -14
  76. package/dist/esm/radio/radio.form-associated.js +0 -14
  77. package/dist/esm/radio/radio.form-associated.js.map +0 -1
@@ -1,15 +1,15 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Observable } from '@microsoft/fast-element';
3
3
  import { attr, FASTElement, observable } from '@microsoft/fast-element';
4
- import { keyArrowDown, keyArrowUp, keyEnd, keyHome, wrapInBounds } from '@microsoft/fast-web-utilities';
5
4
  import { AccordionItem } from '../accordion-item/accordion-item.js';
6
5
  import { AccordionExpandMode } from './accordion.options.js';
7
6
  /**
8
7
  * An Accordion Custom HTML Element
9
8
  * Implements {@link https://www.w3.org/TR/wai-aria-practices-1.1/#accordion | ARIA Accordion}.
10
9
  *
10
+ * @slot - The default slot for the accordion items
11
11
  * @fires change - Fires a custom 'change' event when the active item changes
12
- * @csspart item - The slot for the accordion items
12
+ *
13
13
  * @public
14
14
  */
15
15
  export class Accordion extends FASTElement {
@@ -25,53 +25,53 @@ export class Accordion extends FASTElement {
25
25
  */
26
26
  this.expandmode = AccordionExpandMode.multi;
27
27
  this.activeItemIndex = 0;
28
- this.change = () => {
29
- this.$emit('change', this.activeid);
30
- };
28
+ /**
29
+ * Resets event listeners and sets the `accordionItems` property
30
+ * then rebinds event listeners to each non-disabled item
31
+ * @returns {void}
32
+ */
31
33
  this.setItems = () => {
32
34
  if (this.slottedAccordionItems.length === 0) {
33
35
  return;
34
36
  }
37
+ // Get all existing children and remove event listeners
35
38
  const children = Array.from(this.children);
36
39
  this.removeItemListeners(children);
40
+ // Resubscribe to the `disabled` attribute of all children
37
41
  children.forEach((child) => Observable.getNotifier(child).subscribe(this, 'disabled'));
42
+ // Add event listeners to each non-disabled AccordionItem
38
43
  this.accordionItems = children.filter(child => !child.hasAttribute('disabled'));
39
- this.accordionIds = this.getItemIds();
40
44
  this.accordionItems.forEach((item, index) => {
41
45
  if (item instanceof AccordionItem) {
42
- item.addEventListener('click', this.activeItemChange);
43
- item.addEventListener('keydown', this.handleItemKeyDown);
44
- item.addEventListener('focus', this.handleItemFocus);
46
+ item.addEventListener('click', this.expandedChangedHandler);
47
+ // Subscribe to the expanded attribute of the item
45
48
  Observable.getNotifier(item).subscribe(this, 'expanded');
46
49
  }
47
- const itemId = this.accordionIds[index];
48
- item.setAttribute('id', typeof itemId !== 'string' ? `accordion-${index + 1}` : itemId);
49
- this.activeid = this.accordionIds[this.activeItemIndex];
50
50
  });
51
51
  if (this.isSingleExpandMode()) {
52
52
  const expandedItem = this.findExpandedItem();
53
53
  this.setSingleExpandMode(expandedItem);
54
54
  }
55
55
  };
56
+ /**
57
+ * Removes event listeners from the previous accordion items
58
+ * @param oldValue An array of the previous accordion items
59
+ */
56
60
  this.removeItemListeners = (oldValue) => {
57
61
  oldValue.forEach((item, index) => {
58
62
  Observable.getNotifier(item).unsubscribe(this, 'disabled');
59
63
  Observable.getNotifier(item).unsubscribe(this, 'expanded');
60
- item.removeEventListener('click', this.activeItemChange);
61
- item.removeEventListener('keydown', this.handleItemKeyDown);
62
- item.removeEventListener('focus', this.handleItemFocus);
64
+ item.removeEventListener('click', this.expandedChangedHandler);
63
65
  });
64
66
  };
65
- this.activeItemChange = (event) => {
66
- if (event.defaultPrevented || event.target !== event.currentTarget) {
67
- return;
68
- }
69
- event.preventDefault();
70
- this.handleExpandedChange(event.target);
71
- };
72
- this.handleExpandedChange = (item) => {
67
+ /**
68
+ * Changes the expanded state of the accordion item
69
+ * @param evt Click event
70
+ * @returns
71
+ */
72
+ this.expandedChangedHandler = (evt) => {
73
+ const item = evt.target;
73
74
  if (item instanceof AccordionItem) {
74
- this.activeid = item.getAttribute('id');
75
75
  if (!this.isSingleExpandMode()) {
76
76
  item.expanded = !item.expanded;
77
77
  // setSingleExpandMode sets activeItemIndex on its own
@@ -80,45 +80,7 @@ export class Accordion extends FASTElement {
80
80
  else {
81
81
  this.setSingleExpandMode(item);
82
82
  }
83
- this.change();
84
- }
85
- };
86
- this.handleItemKeyDown = (event) => {
87
- // only handle the keydown if the event target is the accordion item
88
- // prevents arrow keys from moving focus to accordion headers when focus is on accordion item panel content
89
- if (event.target !== event.currentTarget) {
90
- return;
91
- }
92
- this.accordionIds = this.getItemIds();
93
- switch (event.key) {
94
- case keyArrowUp:
95
- event.preventDefault();
96
- this.adjust(-1);
97
- break;
98
- case keyArrowDown:
99
- event.preventDefault();
100
- this.adjust(1);
101
- break;
102
- case keyHome:
103
- this.activeItemIndex = 0;
104
- this.focusItem();
105
- break;
106
- case keyEnd:
107
- this.activeItemIndex = this.accordionItems.length - 1;
108
- this.focusItem();
109
- break;
110
- }
111
- };
112
- this.handleItemFocus = (event) => {
113
- // update the active item index if the focus moves to an accordion item via a different method other than the up and down arrow key actions
114
- // only do so if the focus is actually on the accordion item and not on any of its children
115
- if (event.target === event.currentTarget) {
116
- const focusedItem = event.target;
117
- const focusedIndex = (this.activeItemIndex = Array.from(this.accordionItems).indexOf(focusedItem));
118
- if (this.activeItemIndex !== focusedIndex && focusedIndex !== -1) {
119
- this.activeItemIndex = focusedIndex;
120
- this.activeid = this.accordionIds[this.activeItemIndex];
121
- }
83
+ this.$emit('change');
122
84
  }
123
85
  };
124
86
  }
@@ -130,12 +92,12 @@ export class Accordion extends FASTElement {
130
92
  if (!expandedItem) {
131
93
  return;
132
94
  }
133
- if (next !== AccordionExpandMode.single) {
134
- expandedItem === null || expandedItem === void 0 ? void 0 : expandedItem.expandbutton.removeAttribute('aria-disabled');
135
- }
136
- else {
95
+ if (next === AccordionExpandMode.single) {
137
96
  this.setSingleExpandMode(expandedItem);
97
+ return;
138
98
  }
99
+ // Clean up single expand mode behavior
100
+ expandedItem === null || expandedItem === void 0 ? void 0 : expandedItem.expandbutton.removeAttribute('aria-disabled');
139
101
  }
140
102
  /**
141
103
  * @internal
@@ -146,6 +108,7 @@ export class Accordion extends FASTElement {
146
108
  }
147
109
  }
148
110
  /**
111
+ * Watch for changes to the slotted accordion items `disabled` and `expanded` attributes
149
112
  * @internal
150
113
  */
151
114
  handleChange(source, propertyName) {
@@ -160,6 +123,10 @@ export class Accordion extends FASTElement {
160
123
  }
161
124
  }
162
125
  }
126
+ /**
127
+ * Find the first expanded item in the accordion
128
+ * @returns {void}
129
+ */
163
130
  findExpandedItem() {
164
131
  var _a;
165
132
  if (this.accordionItems.length === 0) {
@@ -167,6 +134,18 @@ export class Accordion extends FASTElement {
167
134
  }
168
135
  return ((_a = this.accordionItems.find((item) => item instanceof AccordionItem && item.expanded)) !== null && _a !== void 0 ? _a : this.accordionItems[0]);
169
136
  }
137
+ /**
138
+ * Checks if the accordion is in single expand mode
139
+ * @returns {boolean}
140
+ */
141
+ isSingleExpandMode() {
142
+ return this.expandmode === AccordionExpandMode.single;
143
+ }
144
+ /**
145
+ * Controls the behavior of the accordion in single expand mode
146
+ * @param expandedItem The item to expand in single expand mode
147
+ * @returns {void}
148
+ */
170
149
  setSingleExpandMode(expandedItem) {
171
150
  if (this.accordionItems.length === 0) {
172
151
  return;
@@ -188,24 +167,6 @@ export class Accordion extends FASTElement {
188
167
  }
189
168
  });
190
169
  }
191
- getItemIds() {
192
- return this.slottedAccordionItems.map((accordionItem) => {
193
- return accordionItem.id;
194
- });
195
- }
196
- isSingleExpandMode() {
197
- return this.expandmode === AccordionExpandMode.single;
198
- }
199
- adjust(adjustment) {
200
- this.activeItemIndex = wrapInBounds(0, this.accordionItems.length - 1, this.activeItemIndex + adjustment);
201
- this.focusItem();
202
- }
203
- focusItem() {
204
- const element = this.accordionItems[this.activeItemIndex];
205
- if (element instanceof AccordionItem) {
206
- element.expandbutton.focus();
207
- }
208
- }
209
170
  }
210
171
  __decorate([
211
172
  attr({ attribute: 'expand-mode' })
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/accordion/accordion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/accordion/accordion.ts"],"names":[],"mappings":"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"}
@@ -3,26 +3,29 @@ import { attr, FASTElement, nullableNumberConverter } from '@microsoft/fast-elem
3
3
  import { uniqueId } from '@microsoft/fast-web-utilities';
4
4
  import { StartEnd } from '../patterns/index.js';
5
5
  import { applyMixins } from '../utils/apply-mixins.js';
6
+ import { toggleState } from '../utils/element-internals.js';
6
7
  /**
7
8
  *
8
- * @slot start - Content which can be provided between the heading and the icon
9
- * @slot end - Content which can be provided between the start slot and icon
9
+ * @slot start - Content positioned before heading in the collapsed state
10
10
  * @slot heading - Content which serves as the accordion item heading and text of the expand button
11
11
  * @slot - The default slot for accordion item content
12
- * @slot expanded-icon - The expanded icon
13
- * @slot collapsed-icon - The collapsed icon
14
- * @fires change - Fires a custom 'change' event when the button is invoked
12
+ * @slot marker-expanded - The expanded icon
13
+ * @slot marker-collapsed - The collapsed icon
15
14
  * @csspart heading - Wraps the button
16
15
  * @csspart button - The button which serves to invoke the item
17
- * @csspart heading-content - Wraps the slot for the heading content within the button
18
- * @csspart icon - The icon container
19
- * @csspart region - The wrapper for the accordion item content
16
+ * @csspart content - The wrapper for the accordion item content
20
17
  *
21
18
  * @public
22
19
  */
23
20
  export class AccordionItem extends FASTElement {
24
21
  constructor() {
25
22
  super(...arguments);
23
+ /**
24
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
25
+ *
26
+ * @internal
27
+ */
28
+ this.elementInternals = this.attachInternals();
26
29
  /**
27
30
  * Configures the {@link https://www.w3.org/TR/wai-aria-1.1/#aria-level | level} of the
28
31
  * heading element.
@@ -64,15 +67,56 @@ export class AccordionItem extends FASTElement {
64
67
  * HTML Attribute: block
65
68
  */
66
69
  this.block = false;
67
- /**
68
- * @internal
69
- */
70
- this.clickHandler = (e) => {
71
- if (this.disabled) {
72
- return;
73
- }
74
- this.$emit('click', e);
75
- };
70
+ }
71
+ /**
72
+ * Handles expanded changes
73
+ * @param prev - previous value
74
+ * @param next - next value
75
+ */
76
+ expandedChanged(prev, next) {
77
+ toggleState(this.elementInternals, 'expanded', next);
78
+ }
79
+ /**
80
+ * Handles disabled changes
81
+ * @param prev - previous value
82
+ * @param next - next value
83
+ */
84
+ disabledChanged(prev, next) {
85
+ toggleState(this.elementInternals, 'disabled', next);
86
+ }
87
+ /**
88
+ * Handles changes to size attribute
89
+ * @param prev - previous value
90
+ * @param next - next value
91
+ */
92
+ sizeChanged(prev, next) {
93
+ if (prev) {
94
+ toggleState(this.elementInternals, prev, false);
95
+ }
96
+ if (next) {
97
+ toggleState(this.elementInternals, next, true);
98
+ }
99
+ }
100
+ /**
101
+ * Handles changes to block attribute
102
+ * @param prev - previous value
103
+ * @param next - next value
104
+ */
105
+ blockChanged(prev, next) {
106
+ toggleState(this.elementInternals, 'block', next);
107
+ }
108
+ /**
109
+ * Handles changes to marker-position attribute
110
+ * @param prev - previous value
111
+ * @param next - next value
112
+ */
113
+ markerPositionChanged(prev, next) {
114
+ if (prev) {
115
+ toggleState(this.elementInternals, `align-${prev}`, false);
116
+ }
117
+ if (next) {
118
+ toggleState(this.elementInternals, `align-${next}`, true);
119
+ }
76
120
  }
77
121
  }
78
122
  __decorate([
@@ -98,7 +142,7 @@ __decorate([
98
142
  attr({ mode: 'boolean' })
99
143
  ], AccordionItem.prototype, "block", void 0);
100
144
  __decorate([
101
- attr({ attribute: 'expand-icon-position' })
102
- ], AccordionItem.prototype, "expandIconPosition", void 0);
145
+ attr({ attribute: 'marker-position' })
146
+ ], AccordionItem.prototype, "markerPosition", void 0);
103
147
  applyMixins(AccordionItem, StartEnd);
104
148
  //# sourceMappingURL=accordion-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-item.js","sourceRoot":"","sources":["../../../src/accordion-item/accordion-item.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAYvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAA9C;;QACE;;;;;;;WAOG;QAMI,iBAAY,GAA0B,CAAC,CAAC;QAE/C;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAEjC;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAEjC;;;;;;WAMG;QAEI,OAAE,GAAW,QAAQ,CAAC,YAAY,CAAC,CAAC;QAY3C;;;;;;WAMG;QAEI,UAAK,GAAY,KAAK,CAAC;QAiB9B;;WAEG;QACI,iBAAY,GAAG,CAAC,CAAa,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;aACR;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;CAAA;AA7EC;IALC,IAAI,CAAC;QACJ,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,uBAAuB;KACnC,CAAC;mDAC6C;AAU/C;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACO;AAUjC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACO;AAUjC;IADC,IAAI;yCACsC;AAU3C;IADC,IAAI;2CAC2B;AAUhC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;4CACI;AAU9B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;yDACgB;AA2B9D,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"accordion-item.js","sourceRoot":"","sources":["../../../src/accordion-item/accordion-item.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAY5D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAA9C;;QACE;;;;WAIG;QACI,qBAAgB,GAAqB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEnE;;;;;;;WAOG;QAMI,iBAAY,GAA0B,CAAC,CAAC;QAE/C;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAWjC;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAWjC;;;;;;WAMG;QAEI,OAAE,GAAW,QAAQ,CAAC,YAAY,CAAC,CAAC;QA0B3C;;;;;;WAMG;QAEI,UAAK,GAAY,KAAK,CAAC;IAuChC,CAAC;IA7GC;;;;OAIG;IACI,eAAe,CAAC,IAAa,EAAE,IAAa;QACjD,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAYD;;;;OAIG;IACI,eAAe,CAAC,IAAa,EAAE,IAAa;QACjD,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAsBD;;;;OAIG;IACI,WAAW,CAAC,IAAuB,EAAE,IAAuB;QACjE,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAChD;IACH,CAAC;IAYD;;;;OAIG;IACI,YAAY,CAAC,IAAa,EAAE,IAAa;QAC9C,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAYD;;;;OAIG;IACI,qBAAqB,CAAC,IAAiC,EAAE,IAAiC;QAC/F,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SAC5D;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SAC3D;IACH,CAAC;CAMF;AAzHC;IALC,IAAI,CAAC;QACJ,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,uBAAuB;KACnC,CAAC;mDAC6C;AAU/C;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACO;AAmBjC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACO;AAmBjC;IADC,IAAI;yCACsC;AAU3C;IADC,IAAI;2CAC2B;AAwBhC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;4CACI;AAmB9B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;qDACa;AA8BtD,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC"}
@@ -10,7 +10,7 @@ export const AccordionItemSize = {
10
10
  /**
11
11
  * An Accordion Item expand/collapse icon can appear at the start or end of the accordion
12
12
  */
13
- export const AccordionItemExpandIconPosition = {
13
+ export const AccordionItemMarkerPosition = {
14
14
  start: 'start',
15
15
  end: 'end',
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-item.options.js","sourceRoot":"","sources":["../../../src/accordion-item/accordion-item.options.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,aAAa;CACjB,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACF,CAAC"}
1
+ {"version":3,"file":"accordion-item.options.js","sourceRoot":"","sources":["../../../src/accordion-item/accordion-item.options.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,aAAa;CACjB,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '../utils/index.js';
3
+ import { alignEndState, blockState, disabledState, expandedState, extraLargeState, largeState, smallState, } from '../styles/states/index.js';
3
4
  import { borderRadiusMedium, borderRadiusSmall, colorNeutralForeground1, colorNeutralForegroundDisabled, colorStrokeFocus1, colorStrokeFocus2, colorTransparentBackground, fontFamilyBase, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontSizeBase500, fontWeightRegular, lineHeightBase200, lineHeightBase300, lineHeightBase400, lineHeightBase500, spacingHorizontalM, spacingHorizontalMNudge, spacingHorizontalS, } from '../theme/design-tokens.js';
4
5
  export const styles = css `
5
6
  ${display('block')}
@@ -13,7 +14,6 @@ export const styles = css `
13
14
  height: 44px;
14
15
  display: grid;
15
16
  position: relative;
16
- vertical-align: middle;
17
17
  padding-inline: ${spacingHorizontalM} ${spacingHorizontalMNudge};
18
18
  border-radius: ${borderRadiusMedium};
19
19
  font-family: ${fontFamilyBase};
@@ -23,29 +23,20 @@ export const styles = css `
23
23
  grid-template-columns: auto auto 1fr auto;
24
24
  }
25
25
 
26
- .heading-content {
27
- height: 100%;
28
- display: flex;
29
- align-items: center;
30
- }
31
-
32
26
  .button {
33
- box-sizing: border-box;
34
27
  appearance: none;
28
+ background: ${colorTransparentBackground};
35
29
  border: none;
36
- outline: none;
37
- text-align: start;
38
- cursor: pointer;
39
- font-family: inherit;
40
- height: 44px;
30
+ box-sizing: border-box;
41
31
  color: ${colorNeutralForeground1};
42
- background: ${colorTransparentBackground};
43
- line-height: ${lineHeightBase300};
44
- height: auto;
45
- padding: 0;
46
- font-size: inherit;
32
+ cursor: pointer;
33
+ font: inherit;
47
34
  grid-column: auto / span 2;
48
35
  grid-row: 1;
36
+ height: 44px;
37
+ outline: none;
38
+ padding: 0;
39
+ text-align: start;
49
40
  }
50
41
 
51
42
  .button::before {
@@ -56,29 +47,30 @@ export const styles = css `
56
47
  border-radius: ${borderRadiusSmall};
57
48
  }
58
49
 
59
- .icon {
50
+ :where(.default-marker-collapsed, .default-marker-expanded),
51
+ ::slotted(:is([slot='marker-collapsed'], [slot='marker-expanded'])) {
60
52
  display: flex;
61
53
  align-items: center;
62
54
  justify-content: center;
63
55
  pointer-events: none;
64
56
  position: relative;
65
57
  height: 100%;
66
- padding-right: ${spacingHorizontalS};
58
+ padding-inline-end: ${spacingHorizontalS};
67
59
  grid-column: 1 / span 1;
68
60
  grid-row: 1;
69
61
  }
70
62
 
71
- .region {
63
+ .content {
72
64
  margin: 0 ${spacingHorizontalM};
73
65
  }
74
66
 
75
- ::slotted([slot='start']),
76
- ::slotted([slot='end']) {
67
+ ::slotted([slot='start']) {
68
+ display: flex;
77
69
  justify-content: center;
78
70
  align-items: center;
79
71
  padding-right: ${spacingHorizontalS};
80
72
  grid-column: 2 / span 1;
81
- grid-row: 1 / span 1;
73
+ grid-row: 1;
82
74
  }
83
75
 
84
76
  button:focus-visible::after {
@@ -94,33 +86,29 @@ export const styles = css `
94
86
 
95
87
  /* --- Disabled attr styles --- */
96
88
 
97
- :host([disabled]) .button {
89
+ :host(${disabledState}) .button {
98
90
  color: ${colorNeutralForegroundDisabled};
99
91
  }
100
- :host([disabled]) svg {
92
+
93
+ :host(${disabledState}) svg {
101
94
  filter: invert(89%) sepia(0%) saturate(569%) hue-rotate(155deg) brightness(88%) contrast(87%);
102
95
  }
103
96
 
104
97
  /* --- Expanded attr styles --- */
105
98
 
106
- :host([expanded]) .region {
99
+ :host(${expandedState}) .content {
107
100
  display: block;
108
101
  }
109
102
 
110
- :host([expanded]) .default-collapsed-icon,
111
- :host([expanded]) ::slotted([slot='collapsed-icon']),
112
- :host(:not([expanded])) .default-expanded-icon,
113
- :host(:not([expanded])) ::slotted([slot='expanded-icon']),
114
- :host([expanded]) ::slotted([slot='end']),
115
- ::slotted([slot='start']),
116
- .region {
103
+ :host(${expandedState}) .default-marker-collapsed,
104
+ :host(${expandedState}) ::slotted([slot='marker-collapsed']),
105
+ :host(:not(${expandedState})) :is(.default-marker-expanded, .content),
106
+ :host(:not(${expandedState})) ::slotted([slot='marker-expanded']) {
117
107
  display: none;
118
108
  }
119
109
 
120
- :host([expanded]) ::slotted([slot='start']),
121
- :host([expanded]) ::slotted([slot='expanded-icon']),
122
- :host(:not([expanded])) ::slotted([slot='collapsed-icon']),
123
- ::slotted([slot='end']) {
110
+ :host(${expandedState}) ::slotted([slot='marker-expanded']),
111
+ :host(:not(${expandedState})) ::slotted([slot='marker-collapsed']) {
124
112
  display: flex;
125
113
  }
126
114
 
@@ -131,46 +119,35 @@ export const styles = css `
131
119
  line-height: ${lineHeightBase300};
132
120
  }
133
121
 
134
- :host([size='small']) .heading {
122
+ :host(${smallState}) .heading {
135
123
  font-size: ${fontSizeBase200};
136
124
  line-height: ${lineHeightBase200};
137
125
  }
138
126
 
139
- :host([size='large']) .heading {
127
+ :host(${largeState}) .heading {
140
128
  font-size: ${fontSizeBase400};
141
129
  line-height: ${lineHeightBase400};
142
130
  }
143
131
 
144
- :host([size='extra-large']) .heading {
132
+ :host(${extraLargeState}) .heading {
145
133
  font-size: ${fontSizeBase500};
146
134
  line-height: ${lineHeightBase500};
147
135
  }
148
136
 
149
- /* --- expand-icon-position attr styles --- */
150
-
151
- :host([expand-icon-position='end']) :slotted(span[slot='start']),
152
- :host([expand-icon-position='end']) ::slotted(span[slot='end']) {
153
- grid-column: 1 / span 1;
154
- grid-row: 1;
155
- }
137
+ /* --- marker-position attr styles --- */
156
138
 
157
- :host([expand-icon-position='end']) ::slotted(span[slot='start']),
158
- :host([expand-icon-position='end']) ::slotted(span[slot='end']) {
139
+ :host(${alignEndState}) :slotted([slot='start']) {
159
140
  grid-column: 1 / span 1;
160
- grid-row: 1;
161
141
  }
162
142
 
163
- :host([expand-icon-position='end']) .icon {
143
+ :host(${alignEndState}) :is(.default-marker-collapsed, .default-marker-expanded) {
164
144
  grid-column: 4 / span 1;
165
- grid-row: 1;
166
- display: flex;
167
- padding-left: 10px;
168
- padding-right: 0;
145
+ padding-inline-start: ${spacingHorizontalS};
146
+ padding-inline-end: 0;
169
147
  }
170
148
 
171
- :host([expand-icon-position='end']) .button {
149
+ :host(${alignEndState}) .button {
172
150
  grid-column: 2 / span 3;
173
- grid-row: 1;
174
151
  }
175
152
 
176
153
  /* --- Block attr styles --- */
@@ -179,19 +156,20 @@ export const styles = css `
179
156
  max-width: 100%;
180
157
  }
181
158
 
182
- :host([expand-icon-position='end']) .heading {
159
+ :host(${alignEndState}) .heading {
183
160
  grid-template-columns: auto auto 28px;
161
+ padding-inline: ${spacingHorizontalM};
184
162
  }
185
163
 
186
- :host([expand-icon-position='end']) .icon {
187
- grid-column: 5 / span 1;
164
+ :host(${alignEndState}:has([slot='start'])) .heading {
165
+ padding-inline: ${spacingHorizontalMNudge} ${spacingHorizontalM};
188
166
  }
189
167
 
190
- :host([block][expand-icon-position='end']) .heading {
168
+ :host(${blockState}${alignEndState}) .heading {
191
169
  grid-template-columns: auto 1fr;
192
170
  }
193
171
 
194
- :host([block][expand-icon-position='end']) .icon {
172
+ :host(${alignEndState}) :is(.default-marker-collapsed, .default-marker-expanded) {
195
173
  grid-column: 5 / span 1;
196
174
  }
197
175
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-item.styles.js","sourceRoot":"","sources":["../../../src/accordion-item/accordion-item.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,iBAAiB,EACjB,uBAAuB,EACvB,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;sBAYE,kBAAkB,IAAI,uBAAuB;qBAC9C,kBAAkB;mBACpB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;;;;;;;;;;;;;;;;aAmBvB,uBAAuB;kBAClB,0BAA0B;mBACzB,iBAAiB;;;;;;;;;;;;;qBAaf,iBAAiB;;;;;;;;;;qBAUjB,kBAAkB;;;;;;gBAMvB,kBAAkB;;;;;;;qBAOb,kBAAkB;;;;;;;;;;qBAUlB,iBAAiB;;wBAEd,iBAAiB;kCACP,iBAAiB;;;;;;aAMtC,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgC1B,eAAe;mBACb,iBAAiB;;;;iBAInB,eAAe;mBACb,iBAAiB;;;;iBAInB,eAAe;mBACb,iBAAiB;;;;iBAInB,eAAe;mBACb,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDnC,CAAC"}
1
+ {"version":3,"file":"accordion-item.styles.js","sourceRoot":"","sources":["../../../src/accordion-item/accordion-item.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;sBAWE,kBAAkB,IAAI,uBAAuB;qBAC9C,kBAAkB;mBACpB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;;;kBAMlB,0BAA0B;;;aAG/B,uBAAuB;;;;;;;;;;;;;;;;qBAgBf,iBAAiB;;;;;;;;;;;0BAWZ,kBAAkB;;;;;;gBAM5B,kBAAkB;;;;;;;qBAOb,kBAAkB;;;;;;;;;;qBAUlB,iBAAiB;;wBAEd,iBAAiB;kCACP,iBAAiB;;;;;UAKzC,aAAa;aACV,8BAA8B;;;UAGjC,aAAa;;;;;;UAMb,aAAa;;;;UAIb,aAAa;UACb,aAAa;eACR,aAAa;eACb,aAAa;;;;UAIlB,aAAa;eACR,aAAa;;;;;;;iBAOX,eAAe;mBACb,iBAAiB;;;UAG1B,UAAU;iBACH,eAAe;mBACb,iBAAiB;;;UAG1B,UAAU;iBACH,eAAe;mBACb,iBAAiB;;;UAG1B,eAAe;iBACR,eAAe;mBACb,iBAAiB;;;;;UAK1B,aAAa;;;;UAIb,aAAa;;4BAEK,kBAAkB;;;;UAIpC,aAAa;;;;;;;;;;UAUb,aAAa;;sBAED,kBAAkB;;;UAG9B,aAAa;sBACD,uBAAuB,IAAI,kBAAkB;;;UAGzD,UAAU,GAAG,aAAa;;;;UAI1B,aAAa;;;CAGtB,CAAC"}