@spectrum-web-components/action-group 0.41.1 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/action-group",
3
- "version": "0.41.1",
3
+ "version": "0.42.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -58,13 +58,13 @@
58
58
  ],
59
59
  "dependencies": {
60
60
  "@lit-labs/observers": "^2.0.0",
61
- "@spectrum-web-components/action-button": "^0.41.1",
62
- "@spectrum-web-components/base": "^0.41.1",
63
- "@spectrum-web-components/icons-workflow": "^0.41.1",
64
- "@spectrum-web-components/reactive-controllers": "^0.41.1"
61
+ "@spectrum-web-components/action-button": "^0.42.0",
62
+ "@spectrum-web-components/base": "^0.42.0",
63
+ "@spectrum-web-components/icons-workflow": "^0.42.0",
64
+ "@spectrum-web-components/reactive-controllers": "^0.42.0"
65
65
  },
66
66
  "devDependencies": {
67
- "@spectrum-css/actiongroup": "^4.2.1"
67
+ "@spectrum-css/actiongroup": "^4.2.4"
68
68
  },
69
69
  "types": "./src/index.d.ts",
70
70
  "customElements": "custom-elements.json",
@@ -72,5 +72,5 @@
72
72
  "./sp-*.js",
73
73
  "./**/*.dev.js"
74
74
  ],
75
- "gitHead": "1eded35d98d01973b40990486b86840ba464a2da"
75
+ "gitHead": "9b3bd55ff8e8f9438817255976e77fd456b19d72"
76
76
  }
@@ -148,13 +148,12 @@ export class ActionGroup extends SizedMixin(SpectrumElement, {
148
148
  this.rovingTabindexController.focus(options);
149
149
  }
150
150
  deselectSelectedButtons() {
151
- const selected = [
152
- ...this.querySelectorAll("[selected]")
153
- ];
154
- selected.forEach((el) => {
155
- el.selected = false;
156
- el.tabIndex = -1;
157
- el.setAttribute(
151
+ this.buttons.forEach((button) => {
152
+ if (!button.selected)
153
+ return;
154
+ button.selected = false;
155
+ button.tabIndex = -1;
156
+ button.setAttribute(
158
157
  this.selects ? "aria-checked" : (
159
158
  /* c8 ignore */
160
159
  "aria-pressed"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["ActionGroup.ts"],
4
- "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport type { ActionButton } from '@spectrum-web-components/action-button';\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\nimport { MutationController } from '@lit-labs/observers/mutation-controller.js';\n\nimport styles from './action-group.css.js';\n\nconst EMPTY_SELECTION: string[] = [];\n\n/**\n * @element sp-action-group\n * @slot - the sp-action-button elements that make up the group\n *\n * @fires change - Announces that selection state has been changed by user\n */\nexport class ActionGroup extends SizedMixin(SpectrumElement, {\n validSizes: ['xs', 's', 'm', 'l', 'xl'],\n noDefaultSize: true,\n}) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n public set buttons(buttons: ActionButton[]) {\n /* c8 ignore next 1 */\n if (buttons === this.buttons) return;\n this._buttons = buttons;\n this.rovingTabindexController.clearElementCache();\n }\n\n public get buttons(): ActionButton[] {\n return this._buttons;\n }\n\n public _buttons: ActionButton[] = [];\n\n protected _buttonSelector = 'sp-action-button';\n\n constructor() {\n super();\n\n new MutationController(this, {\n config: {\n childList: true,\n subtree: true,\n },\n callback: () => {\n this.manageButtons();\n },\n skipInitial: true,\n });\n }\n\n rovingTabindexController = new RovingTabindexController<ActionButton>(\n this,\n {\n focusInIndex: (elements: ActionButton[]) => {\n let firstEnabledIndex = -1;\n const firstSelectedIndex = elements.findIndex((el, index) => {\n if (!elements[firstEnabledIndex] && !el.disabled) {\n firstEnabledIndex = index;\n }\n return el.selected && !el.disabled;\n });\n return elements[firstSelectedIndex]\n ? firstSelectedIndex\n : firstEnabledIndex;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: ActionButton) => !el.disabled,\n }\n );\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public justified = false;\n\n @property({ type: String })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public quiet = false;\n\n @property({ type: String })\n public selects: undefined | 'single' | 'multiple';\n\n @property({ reflect: true })\n public static?: 'white' | 'black';\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n private _selected: string[] = EMPTY_SELECTION;\n\n set selected(selected: string[]) {\n this.requestUpdate('selected', this._selected);\n this._selected = selected;\n this.updateComplete.then(() => {\n this.applySelects();\n this.manageChildren();\n });\n }\n\n @property({ type: Array })\n get selected(): string[] {\n return this._selected;\n }\n\n @query('slot')\n slotElement!: HTMLSlotElement;\n\n private dispatchChange(old: string[]): void {\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n if (!applyDefault) {\n this.setSelected(old);\n this.buttons.map((button) => {\n button.selected = this.selected.includes(button.value);\n });\n }\n }\n\n private setSelected(selected: string[], announce?: boolean): void {\n /* c8 ignore next 1 */\n if (selected === this.selected) return;\n\n const old = this.selected;\n this.requestUpdate('selected', old);\n this._selected = selected;\n if (!announce) return;\n this.dispatchChange(old);\n }\n\n public override focus(options?: FocusOptions): void {\n this.rovingTabindexController.focus(options);\n }\n\n private deselectSelectedButtons(): void {\n const selected = [\n ...this.querySelectorAll('[selected]'),\n ] as ActionButton[];\n selected.forEach((el) => {\n el.selected = false;\n el.tabIndex = -1;\n el.setAttribute(\n this.selects ? 'aria-checked' : /* c8 ignore */ 'aria-pressed',\n 'false'\n );\n });\n }\n\n private handleActionButtonChange(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handleClick(event: Event): void {\n const target = event.target as ActionButton;\n if (typeof target.value === 'undefined') {\n return;\n }\n switch (this.selects) {\n case 'single': {\n this.deselectSelectedButtons();\n target.selected = true;\n target.tabIndex = 0;\n target.setAttribute('aria-checked', 'true');\n this.setSelected([target.value], true);\n break;\n }\n case 'multiple': {\n const selected = [...this.selected];\n target.selected = !target.selected;\n target.setAttribute(\n 'aria-checked',\n target.selected ? 'true' : 'false'\n );\n if (target.selected) {\n selected.push(target.value);\n } else {\n selected.splice(this.selected.indexOf(target.value), 1);\n }\n this.setSelected(selected, true);\n\n this.buttons.forEach((button) => {\n button.tabIndex = -1;\n });\n\n target.tabIndex = 0;\n\n break;\n }\n default:\n break;\n }\n }\n\n private async applySelects(): Promise<void> {\n await this.manageSelects(true);\n }\n\n private async manageSelects(applied?: boolean): Promise<void> {\n if (!this.buttons.length) {\n return;\n }\n\n const options = this.buttons;\n switch (this.selects) {\n case 'single': {\n // single behaves as a radio group\n this.setAttribute('role', 'radiogroup');\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'radio');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n const selected = selections.map((button) => {\n return button.value;\n });\n\n this.setSelected(selected || EMPTY_SELECTION);\n break;\n }\n case 'multiple': {\n // switching from single to multiple, remove role=\"radiogroup\"\n if (this.getAttribute('role') === 'radiogroup') {\n this.removeAttribute('role');\n }\n const selection: string[] = [];\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'checkbox');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selection.push(option.value);\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n const selected = !!selection.length\n ? selection\n : EMPTY_SELECTION;\n this.setSelected(selected);\n break;\n }\n default:\n // if user defines .selected\n if (this.selected.length) {\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'button');\n if (option.selected) {\n option.setAttribute('aria-pressed', 'true');\n selections.push(option);\n } else {\n option.removeAttribute('aria-pressed');\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n this.setSelected(\n selections.map((button) => {\n return button.value;\n })\n );\n } else {\n this.buttons.forEach((option) => {\n option.setAttribute('role', 'button');\n });\n break;\n }\n }\n\n // When no other role is defined, use role=\"toolbar\", which is appropriate with roving tabindex.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'toolbar');\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot role=\"presentation\" @slotchange=${this.manageButtons}></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('selects')) {\n this.manageSelects();\n this.manageChildren();\n if (!!this.selects) {\n this.shadowRoot.addEventListener(\n 'change',\n this.handleActionButtonChange\n );\n } else {\n this.shadowRoot.removeEventListener(\n 'change',\n this.handleActionButtonChange\n );\n }\n }\n if (\n changes.has('quiet') ||\n changes.has('emphasized') ||\n changes.has('size') ||\n changes.has('static')\n ) {\n this.manageChildren(changes);\n }\n // Update `aria-label` when `label` available or not first `updated`\n if (\n changes.has('label') &&\n (this.label || typeof changes.get('label') !== 'undefined')\n ) {\n if (this.label.length) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n private manageChildren(changes?: PropertyValues): void {\n this.buttons.forEach((button) => {\n if (this.quiet || changes?.get('quiet')) {\n button.quiet = this.quiet;\n }\n if (this.emphasized || changes?.get('emphasized')) {\n button.emphasized = this.emphasized;\n }\n if (this.static || changes?.get('static')) {\n button.static = this.static;\n }\n if (this.selects || !this.hasManaged) {\n button.selected = this.selected.includes(button.value);\n }\n if (\n this.size &&\n (this.size !== 'm' ||\n typeof changes?.get('size') !== 'undefined')\n ) {\n button.size = this.size;\n }\n });\n }\n\n private hasManaged = false;\n\n private manageButtons = (): void => {\n const assignedElements = this.slotElement.assignedElements({\n flatten: true,\n });\n const buttons = assignedElements.reduce((acc: unknown[], el) => {\n if (el.matches(this._buttonSelector)) {\n acc.push(el);\n } else {\n const buttonDescendents = Array.from(\n el.querySelectorAll(`:scope > ${this._buttonSelector}`)\n );\n acc.push(...buttonDescendents);\n }\n return acc;\n }, []);\n this.buttons = buttons as ActionButton[];\n if (this.selects || !this.hasManaged) {\n // <select> element merges selected so following paradigm here\n const currentlySelectedButtons: string[] = [];\n this.buttons.forEach((button: ActionButton) => {\n if (button.selected) {\n currentlySelectedButtons.push(button.value);\n }\n });\n this.setSelected(this.selected.concat(currentlySelectedButtons));\n }\n this.manageChildren();\n this.manageSelects();\n this.hasManaged = true;\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EAEA;AAAA,EACA;AAAA,OAEG;AACP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP,SAAS,gCAAgC;AACzC,SAAS,0BAA0B;AAEnC,OAAO,YAAY;AAEnB,MAAM,kBAA4B,CAAC;AAQ5B,aAAM,oBAAoB,WAAW,iBAAiB;AAAA,EACzD,YAAY,CAAC,MAAM,KAAK,KAAK,KAAK,IAAI;AAAA,EACtC,eAAe;AACnB,CAAC,EAAE;AAAA,EAoBC,cAAc;AACV,UAAM;AALV,SAAO,WAA2B,CAAC;AAEnC,SAAU,kBAAkB;AAiB5B,oCAA2B,IAAI;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,cAAc,CAAC,aAA6B;AACxC,cAAI,oBAAoB;AACxB,gBAAM,qBAAqB,SAAS,UAAU,CAAC,IAAI,UAAU;AACzD,gBAAI,CAAC,SAAS,iBAAiB,KAAK,CAAC,GAAG,UAAU;AAC9C,kCAAoB;AAAA,YACxB;AACA,mBAAO,GAAG,YAAY,CAAC,GAAG;AAAA,UAC9B,CAAC;AACD,iBAAO,SAAS,kBAAkB,IAC5B,qBACA;AAAA,QACV;AAAA,QACA,UAAU,MAAM,KAAK;AAAA,QACrB,oBAAoB,CAAC,OAAqB,CAAC,GAAG;AAAA,MAClD;AAAA,IACJ;AAGA,SAAO,UAAU;AAGjB,SAAO,aAAa;AAGpB,SAAO,YAAY;AAGnB,SAAO,QAAQ;AAGf,SAAO,QAAQ;AASf,SAAO,WAAW;AAElB,SAAQ,YAAsB;AA2R9B,SAAQ,aAAa;AAErB,SAAQ,gBAAgB,MAAY;AAChC,YAAM,mBAAmB,KAAK,YAAY,iBAAiB;AAAA,QACvD,SAAS;AAAA,MACb,CAAC;AACD,YAAM,UAAU,iBAAiB,OAAO,CAAC,KAAgB,OAAO;AAC5D,YAAI,GAAG,QAAQ,KAAK,eAAe,GAAG;AAClC,cAAI,KAAK,EAAE;AAAA,QACf,OAAO;AACH,gBAAM,oBAAoB,MAAM;AAAA,YAC5B,GAAG,iBAAiB,YAAY,KAAK,eAAe,EAAE;AAAA,UAC1D;AACA,cAAI,KAAK,GAAG,iBAAiB;AAAA,QACjC;AACA,eAAO;AAAA,MACX,GAAG,CAAC,CAAC;AACL,WAAK,UAAU;AACf,UAAI,KAAK,WAAW,CAAC,KAAK,YAAY;AAElC,cAAM,2BAAqC,CAAC;AAC5C,aAAK,QAAQ,QAAQ,CAAC,WAAyB;AAC3C,cAAI,OAAO,UAAU;AACjB,qCAAyB,KAAK,OAAO,KAAK;AAAA,UAC9C;AAAA,QACJ,CAAC;AACD,aAAK,YAAY,KAAK,SAAS,OAAO,wBAAwB,CAAC;AAAA,MACnE;AACA,WAAK,eAAe;AACpB,WAAK,cAAc;AACnB,WAAK,aAAa;AAAA,IACtB;AAlXI,QAAI,mBAAmB,MAAM;AAAA,MACzB,QAAQ;AAAA,QACJ,WAAW;AAAA,QACX,SAAS;AAAA,MACb;AAAA,MACA,UAAU,MAAM;AACZ,aAAK,cAAc;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,IACjB,CAAC;AAAA,EACL;AAAA,EAhCA,WAA2B,SAAyB;AAChD,WAAO,CAAC,MAAM;AAAA,EAClB;AAAA,EAEA,IAAW,QAAQ,SAAyB;AAExC,QAAI,YAAY,KAAK;AAAS;AAC9B,SAAK,WAAW;AAChB,SAAK,yBAAyB,kBAAkB;AAAA,EACpD;AAAA,EAEA,IAAW,UAA0B;AACjC,WAAO,KAAK;AAAA,EAChB;AAAA,EAmEA,IAAI,SAAS,UAAoB;AAC7B,SAAK,cAAc,YAAY,KAAK,SAAS;AAC7C,SAAK,YAAY;AACjB,SAAK,eAAe,KAAK,MAAM;AAC3B,WAAK,aAAa;AAClB,WAAK,eAAe;AAAA,IACxB,CAAC;AAAA,EACL;AAAA,EAGA,IAAI,WAAqB;AACrB,WAAO,KAAK;AAAA,EAChB;AAAA,EAKQ,eAAe,KAAqB;AACxC,UAAM,eAAe,KAAK;AAAA,MACtB,IAAI,MAAM,UAAU;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,MAChB,CAAC;AAAA,IACL;AAEA,QAAI,CAAC,cAAc;AACf,WAAK,YAAY,GAAG;AACpB,WAAK,QAAQ,IAAI,CAAC,WAAW;AACzB,eAAO,WAAW,KAAK,SAAS,SAAS,OAAO,KAAK;AAAA,MACzD,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEQ,YAAY,UAAoB,UAA0B;AAE9D,QAAI,aAAa,KAAK;AAAU;AAEhC,UAAM,MAAM,KAAK;AACjB,SAAK,cAAc,YAAY,GAAG;AAClC,SAAK,YAAY;AACjB,QAAI,CAAC;AAAU;AACf,SAAK,eAAe,GAAG;AAAA,EAC3B;AAAA,EAEgB,MAAM,SAA8B;AAChD,SAAK,yBAAyB,MAAM,OAAO;AAAA,EAC/C;AAAA,EAEQ,0BAAgC;AACpC,UAAM,WAAW;AAAA,MACb,GAAG,KAAK,iBAAiB,YAAY;AAAA,IACzC;AACA,aAAS,QAAQ,CAAC,OAAO;AACrB,SAAG,WAAW;AACd,SAAG,WAAW;AACd,SAAG;AAAA,QACC,KAAK,UAAU;AAAA;AAAA,UAAiC;AAAA;AAAA,QAChD;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEQ,yBAAyB,OAAoB;AACjD,UAAM,gBAAgB;AACtB,UAAM,eAAe;AAAA,EACzB;AAAA,EAEQ,YAAY,OAAoB;AACpC,UAAM,SAAS,MAAM;AACrB,QAAI,OAAO,OAAO,UAAU,aAAa;AACrC;AAAA,IACJ;AACA,YAAQ,KAAK,SAAS;AAAA,MAClB,KAAK,UAAU;AACX,aAAK,wBAAwB;AAC7B,eAAO,WAAW;AAClB,eAAO,WAAW;AAClB,eAAO,aAAa,gBAAgB,MAAM;AAC1C,aAAK,YAAY,CAAC,OAAO,KAAK,GAAG,IAAI;AACrC;AAAA,MACJ;AAAA,MACA,KAAK,YAAY;AACb,cAAM,WAAW,CAAC,GAAG,KAAK,QAAQ;AAClC,eAAO,WAAW,CAAC,OAAO;AAC1B,eAAO;AAAA,UACH;AAAA,UACA,OAAO,WAAW,SAAS;AAAA,QAC/B;AACA,YAAI,OAAO,UAAU;AACjB,mBAAS,KAAK,OAAO,KAAK;AAAA,QAC9B,OAAO;AACH,mBAAS,OAAO,KAAK,SAAS,QAAQ,OAAO,KAAK,GAAG,CAAC;AAAA,QAC1D;AACA,aAAK,YAAY,UAAU,IAAI;AAE/B,aAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,iBAAO,WAAW;AAAA,QACtB,CAAC;AAED,eAAO,WAAW;AAElB;AAAA,MACJ;AAAA,MACA;AACI;AAAA,IACR;AAAA,EACJ;AAAA,EAEA,MAAc,eAA8B;AACxC,UAAM,KAAK,cAAc,IAAI;AAAA,EACjC;AAAA,EAEA,MAAc,cAAc,SAAkC;AAC1D,QAAI,CAAC,KAAK,QAAQ,QAAQ;AACtB;AAAA,IACJ;AAEA,UAAM,UAAU,KAAK;AACrB,YAAQ,KAAK,SAAS;AAAA,MAClB,KAAK,UAAU;AAEX,aAAK,aAAa,QAAQ,YAAY;AACtC,cAAM,aAA6B,CAAC;AACpC,cAAM,UAAU,QAAQ,IAAI,OAAO,WAAW;AAC1C,gBAAM,OAAO;AACb,iBAAO,aAAa,QAAQ,OAAO;AACnC,iBAAO;AAAA,YACH;AAAA,YACA,OAAO,WAAW,SAAS;AAAA,UAC/B;AACA,cAAI,OAAO,UAAU;AACjB,uBAAW,KAAK,MAAM;AAAA,UAC1B;AAAA,QACJ,CAAC;AACD,YAAI;AAAS;AACb,cAAM,QAAQ,IAAI,OAAO;AAEzB,cAAM,WAAW,WAAW,IAAI,CAAC,WAAW;AACxC,iBAAO,OAAO;AAAA,QAClB,CAAC;AAED,aAAK,YAAY,YAAY,eAAe;AAC5C;AAAA,MACJ;AAAA,MACA,KAAK,YAAY;AAEb,YAAI,KAAK,aAAa,MAAM,MAAM,cAAc;AAC5C,eAAK,gBAAgB,MAAM;AAAA,QAC/B;AACA,cAAM,YAAsB,CAAC;AAC7B,cAAM,aAA6B,CAAC;AACpC,cAAM,UAAU,QAAQ,IAAI,OAAO,WAAW;AAC1C,gBAAM,OAAO;AACb,iBAAO,aAAa,QAAQ,UAAU;AACtC,iBAAO;AAAA,YACH;AAAA,YACA,OAAO,WAAW,SAAS;AAAA,UAC/B;AACA,cAAI,OAAO,UAAU;AACjB,sBAAU,KAAK,OAAO,KAAK;AAC3B,uBAAW,KAAK,MAAM;AAAA,UAC1B;AAAA,QACJ,CAAC;AACD,YAAI;AAAS;AACb,cAAM,QAAQ,IAAI,OAAO;AACzB,cAAM,WAAW,CAAC,CAAC,UAAU,SACvB,YACA;AACN,aAAK,YAAY,QAAQ;AACzB;AAAA,MACJ;AAAA,MACA;AAEI,YAAI,KAAK,SAAS,QAAQ;AACtB,gBAAM,aAA6B,CAAC;AACpC,gBAAM,UAAU,QAAQ,IAAI,OAAO,WAAW;AAC1C,kBAAM,OAAO;AACb,mBAAO,aAAa,QAAQ,QAAQ;AACpC,gBAAI,OAAO,UAAU;AACjB,qBAAO,aAAa,gBAAgB,MAAM;AAC1C,yBAAW,KAAK,MAAM;AAAA,YAC1B,OAAO;AACH,qBAAO,gBAAgB,cAAc;AAAA,YACzC;AAAA,UACJ,CAAC;AACD,cAAI;AAAS;AACb,gBAAM,QAAQ,IAAI,OAAO;AAEzB,eAAK;AAAA,YACD,WAAW,IAAI,CAAC,WAAW;AACvB,qBAAO,OAAO;AAAA,YAClB,CAAC;AAAA,UACL;AAAA,QACJ,OAAO;AACH,eAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,mBAAO,aAAa,QAAQ,QAAQ;AAAA,UACxC,CAAC;AACD;AAAA,QACJ;AAAA,IACR;AAGA,QAAI,CAAC,KAAK,aAAa,MAAM,GAAG;AAC5B,WAAK,aAAa,QAAQ,SAAS;AAAA,IACvC;AAAA,EACJ;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA,oDACqC,KAAK,aAAa;AAAA;AAAA,EAElE;AAAA,EAEmB,aAAa,SAA+B;AAC3D,UAAM,aAAa,OAAO;AAC1B,SAAK,iBAAiB,SAAS,KAAK,WAAW;AAAA,EACnD;AAAA,EAEmB,QAAQ,SAA+B;AACtD,UAAM,QAAQ,OAAO;AACrB,QAAI,QAAQ,IAAI,SAAS,GAAG;AACxB,WAAK,cAAc;AACnB,WAAK,eAAe;AACpB,UAAI,CAAC,CAAC,KAAK,SAAS;AAChB,aAAK,WAAW;AAAA,UACZ;AAAA,UACA,KAAK;AAAA,QACT;AAAA,MACJ,OAAO;AACH,aAAK,WAAW;AAAA,UACZ;AAAA,UACA,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AACA,QACI,QAAQ,IAAI,OAAO,KACnB,QAAQ,IAAI,YAAY,KACxB,QAAQ,IAAI,MAAM,KAClB,QAAQ,IAAI,QAAQ,GACtB;AACE,WAAK,eAAe,OAAO;AAAA,IAC/B;AAEA,QACI,QAAQ,IAAI,OAAO,MAClB,KAAK,SAAS,OAAO,QAAQ,IAAI,OAAO,MAAM,cACjD;AACE,UAAI,KAAK,MAAM,QAAQ;AACnB,aAAK,aAAa,cAAc,KAAK,KAAK;AAAA,MAC9C,OAAO;AACH,aAAK,gBAAgB,YAAY;AAAA,MACrC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,eAAe,SAAgC;AACnD,SAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,UAAI,KAAK,UAAS,mCAAS,IAAI,WAAU;AACrC,eAAO,QAAQ,KAAK;AAAA,MACxB;AACA,UAAI,KAAK,eAAc,mCAAS,IAAI,gBAAe;AAC/C,eAAO,aAAa,KAAK;AAAA,MAC7B;AACA,UAAI,KAAK,WAAU,mCAAS,IAAI,YAAW;AACvC,eAAO,SAAS,KAAK;AAAA,MACzB;AACA,UAAI,KAAK,WAAW,CAAC,KAAK,YAAY;AAClC,eAAO,WAAW,KAAK,SAAS,SAAS,OAAO,KAAK;AAAA,MACzD;AACA,UACI,KAAK,SACJ,KAAK,SAAS,OACX,QAAO,mCAAS,IAAI,aAAY,cACtC;AACE,eAAO,OAAO,KAAK;AAAA,MACvB;AAAA,IACJ,CAAC;AAAA,EACL;AAkCJ;AAlVW;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA1DjC,YA2DF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA7DjC,YA8DF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAhEjC,YAiEF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAnEjB,YAoEF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAtEjC,YAuEF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAzEjB,YA0EF;AAGA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GA5ElB,YA6EF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA/EjC,YAgFF;AAcH;AAAA,EADH,SAAS,EAAE,MAAM,MAAM,CAAC;AAAA,GA7FhB,YA8FL;AAKJ;AAAA,EADC,MAAM,MAAM;AAAA,GAlGJ,YAmGT;",
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport type { ActionButton } from '@spectrum-web-components/action-button';\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\nimport { MutationController } from '@lit-labs/observers/mutation-controller.js';\n\nimport styles from './action-group.css.js';\n\nconst EMPTY_SELECTION: string[] = [];\n\n/**\n * @element sp-action-group\n * @slot - the sp-action-button elements that make up the group\n *\n * @fires change - Announces that selection state has been changed by user\n */\nexport class ActionGroup extends SizedMixin(SpectrumElement, {\n validSizes: ['xs', 's', 'm', 'l', 'xl'],\n noDefaultSize: true,\n}) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n public set buttons(buttons: ActionButton[]) {\n /* c8 ignore next 1 */\n if (buttons === this.buttons) return;\n this._buttons = buttons;\n this.rovingTabindexController.clearElementCache();\n }\n\n public get buttons(): ActionButton[] {\n return this._buttons;\n }\n\n public _buttons: ActionButton[] = [];\n\n protected _buttonSelector = 'sp-action-button';\n\n constructor() {\n super();\n\n new MutationController(this, {\n config: {\n childList: true,\n subtree: true,\n },\n callback: () => {\n this.manageButtons();\n },\n skipInitial: true,\n });\n }\n\n rovingTabindexController = new RovingTabindexController<ActionButton>(\n this,\n {\n focusInIndex: (elements: ActionButton[]) => {\n let firstEnabledIndex = -1;\n const firstSelectedIndex = elements.findIndex((el, index) => {\n if (!elements[firstEnabledIndex] && !el.disabled) {\n firstEnabledIndex = index;\n }\n return el.selected && !el.disabled;\n });\n return elements[firstSelectedIndex]\n ? firstSelectedIndex\n : firstEnabledIndex;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: ActionButton) => !el.disabled,\n }\n );\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public justified = false;\n\n @property({ type: String })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public quiet = false;\n\n @property({ type: String })\n public selects: undefined | 'single' | 'multiple';\n\n @property({ reflect: true })\n public static?: 'white' | 'black';\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n private _selected: string[] = EMPTY_SELECTION;\n\n set selected(selected: string[]) {\n this.requestUpdate('selected', this._selected);\n this._selected = selected;\n this.updateComplete.then(() => {\n this.applySelects();\n this.manageChildren();\n });\n }\n\n @property({ type: Array })\n get selected(): string[] {\n return this._selected;\n }\n\n @query('slot')\n slotElement!: HTMLSlotElement;\n\n private dispatchChange(old: string[]): void {\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n if (!applyDefault) {\n this.setSelected(old);\n this.buttons.map((button) => {\n button.selected = this.selected.includes(button.value);\n });\n }\n }\n\n private setSelected(selected: string[], announce?: boolean): void {\n /* c8 ignore next 1 */\n if (selected === this.selected) return;\n\n const old = this.selected;\n this.requestUpdate('selected', old);\n this._selected = selected;\n if (!announce) return;\n this.dispatchChange(old);\n }\n\n public override focus(options?: FocusOptions): void {\n this.rovingTabindexController.focus(options);\n }\n\n private deselectSelectedButtons(): void {\n this.buttons.forEach((button) => {\n if (!button.selected) return;\n\n button.selected = false;\n button.tabIndex = -1;\n button.setAttribute(\n this.selects ? 'aria-checked' : /* c8 ignore */ 'aria-pressed',\n 'false'\n );\n });\n }\n\n private handleActionButtonChange(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handleClick(event: Event): void {\n const target = event.target as ActionButton;\n if (typeof target.value === 'undefined') {\n return;\n }\n switch (this.selects) {\n case 'single': {\n this.deselectSelectedButtons();\n target.selected = true;\n target.tabIndex = 0;\n target.setAttribute('aria-checked', 'true');\n this.setSelected([target.value], true);\n break;\n }\n case 'multiple': {\n const selected = [...this.selected];\n target.selected = !target.selected;\n target.setAttribute(\n 'aria-checked',\n target.selected ? 'true' : 'false'\n );\n if (target.selected) {\n selected.push(target.value);\n } else {\n selected.splice(this.selected.indexOf(target.value), 1);\n }\n this.setSelected(selected, true);\n\n this.buttons.forEach((button) => {\n button.tabIndex = -1;\n });\n\n target.tabIndex = 0;\n\n break;\n }\n default:\n break;\n }\n }\n\n private async applySelects(): Promise<void> {\n await this.manageSelects(true);\n }\n\n private async manageSelects(applied?: boolean): Promise<void> {\n if (!this.buttons.length) {\n return;\n }\n\n const options = this.buttons;\n switch (this.selects) {\n case 'single': {\n // single behaves as a radio group\n this.setAttribute('role', 'radiogroup');\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'radio');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n const selected = selections.map((button) => {\n return button.value;\n });\n\n this.setSelected(selected || EMPTY_SELECTION);\n break;\n }\n case 'multiple': {\n // switching from single to multiple, remove role=\"radiogroup\"\n if (this.getAttribute('role') === 'radiogroup') {\n this.removeAttribute('role');\n }\n const selection: string[] = [];\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'checkbox');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selection.push(option.value);\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n const selected = !!selection.length\n ? selection\n : EMPTY_SELECTION;\n this.setSelected(selected);\n break;\n }\n default:\n // if user defines .selected\n if (this.selected.length) {\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'button');\n if (option.selected) {\n option.setAttribute('aria-pressed', 'true');\n selections.push(option);\n } else {\n option.removeAttribute('aria-pressed');\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n this.setSelected(\n selections.map((button) => {\n return button.value;\n })\n );\n } else {\n this.buttons.forEach((option) => {\n option.setAttribute('role', 'button');\n });\n break;\n }\n }\n\n // When no other role is defined, use role=\"toolbar\", which is appropriate with roving tabindex.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'toolbar');\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot role=\"presentation\" @slotchange=${this.manageButtons}></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('selects')) {\n this.manageSelects();\n this.manageChildren();\n if (!!this.selects) {\n this.shadowRoot.addEventListener(\n 'change',\n this.handleActionButtonChange\n );\n } else {\n this.shadowRoot.removeEventListener(\n 'change',\n this.handleActionButtonChange\n );\n }\n }\n if (\n changes.has('quiet') ||\n changes.has('emphasized') ||\n changes.has('size') ||\n changes.has('static')\n ) {\n this.manageChildren(changes);\n }\n // Update `aria-label` when `label` available or not first `updated`\n if (\n changes.has('label') &&\n (this.label || typeof changes.get('label') !== 'undefined')\n ) {\n if (this.label.length) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n private manageChildren(changes?: PropertyValues): void {\n this.buttons.forEach((button) => {\n if (this.quiet || changes?.get('quiet')) {\n button.quiet = this.quiet;\n }\n if (this.emphasized || changes?.get('emphasized')) {\n button.emphasized = this.emphasized;\n }\n if (this.static || changes?.get('static')) {\n button.static = this.static;\n }\n if (this.selects || !this.hasManaged) {\n button.selected = this.selected.includes(button.value);\n }\n if (\n this.size &&\n (this.size !== 'm' ||\n typeof changes?.get('size') !== 'undefined')\n ) {\n button.size = this.size;\n }\n });\n }\n\n private hasManaged = false;\n\n private manageButtons = (): void => {\n const assignedElements = this.slotElement.assignedElements({\n flatten: true,\n });\n const buttons = assignedElements.reduce((acc: unknown[], el) => {\n if (el.matches(this._buttonSelector)) {\n acc.push(el);\n } else {\n const buttonDescendents = Array.from(\n el.querySelectorAll(`:scope > ${this._buttonSelector}`)\n );\n acc.push(...buttonDescendents);\n }\n return acc;\n }, []);\n this.buttons = buttons as ActionButton[];\n if (this.selects || !this.hasManaged) {\n // <select> element merges selected so following paradigm here\n const currentlySelectedButtons: string[] = [];\n this.buttons.forEach((button: ActionButton) => {\n if (button.selected) {\n currentlySelectedButtons.push(button.value);\n }\n });\n this.setSelected(this.selected.concat(currentlySelectedButtons));\n }\n this.manageChildren();\n this.manageSelects();\n this.hasManaged = true;\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EAEA;AAAA,EACA;AAAA,OAEG;AACP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP,SAAS,gCAAgC;AACzC,SAAS,0BAA0B;AAEnC,OAAO,YAAY;AAEnB,MAAM,kBAA4B,CAAC;AAQ5B,aAAM,oBAAoB,WAAW,iBAAiB;AAAA,EACzD,YAAY,CAAC,MAAM,KAAK,KAAK,KAAK,IAAI;AAAA,EACtC,eAAe;AACnB,CAAC,EAAE;AAAA,EAoBC,cAAc;AACV,UAAM;AALV,SAAO,WAA2B,CAAC;AAEnC,SAAU,kBAAkB;AAiB5B,oCAA2B,IAAI;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,cAAc,CAAC,aAA6B;AACxC,cAAI,oBAAoB;AACxB,gBAAM,qBAAqB,SAAS,UAAU,CAAC,IAAI,UAAU;AACzD,gBAAI,CAAC,SAAS,iBAAiB,KAAK,CAAC,GAAG,UAAU;AAC9C,kCAAoB;AAAA,YACxB;AACA,mBAAO,GAAG,YAAY,CAAC,GAAG;AAAA,UAC9B,CAAC;AACD,iBAAO,SAAS,kBAAkB,IAC5B,qBACA;AAAA,QACV;AAAA,QACA,UAAU,MAAM,KAAK;AAAA,QACrB,oBAAoB,CAAC,OAAqB,CAAC,GAAG;AAAA,MAClD;AAAA,IACJ;AAGA,SAAO,UAAU;AAGjB,SAAO,aAAa;AAGpB,SAAO,YAAY;AAGnB,SAAO,QAAQ;AAGf,SAAO,QAAQ;AASf,SAAO,WAAW;AAElB,SAAQ,YAAsB;AA0R9B,SAAQ,aAAa;AAErB,SAAQ,gBAAgB,MAAY;AAChC,YAAM,mBAAmB,KAAK,YAAY,iBAAiB;AAAA,QACvD,SAAS;AAAA,MACb,CAAC;AACD,YAAM,UAAU,iBAAiB,OAAO,CAAC,KAAgB,OAAO;AAC5D,YAAI,GAAG,QAAQ,KAAK,eAAe,GAAG;AAClC,cAAI,KAAK,EAAE;AAAA,QACf,OAAO;AACH,gBAAM,oBAAoB,MAAM;AAAA,YAC5B,GAAG,iBAAiB,YAAY,KAAK,eAAe,EAAE;AAAA,UAC1D;AACA,cAAI,KAAK,GAAG,iBAAiB;AAAA,QACjC;AACA,eAAO;AAAA,MACX,GAAG,CAAC,CAAC;AACL,WAAK,UAAU;AACf,UAAI,KAAK,WAAW,CAAC,KAAK,YAAY;AAElC,cAAM,2BAAqC,CAAC;AAC5C,aAAK,QAAQ,QAAQ,CAAC,WAAyB;AAC3C,cAAI,OAAO,UAAU;AACjB,qCAAyB,KAAK,OAAO,KAAK;AAAA,UAC9C;AAAA,QACJ,CAAC;AACD,aAAK,YAAY,KAAK,SAAS,OAAO,wBAAwB,CAAC;AAAA,MACnE;AACA,WAAK,eAAe;AACpB,WAAK,cAAc;AACnB,WAAK,aAAa;AAAA,IACtB;AAjXI,QAAI,mBAAmB,MAAM;AAAA,MACzB,QAAQ;AAAA,QACJ,WAAW;AAAA,QACX,SAAS;AAAA,MACb;AAAA,MACA,UAAU,MAAM;AACZ,aAAK,cAAc;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,IACjB,CAAC;AAAA,EACL;AAAA,EAhCA,WAA2B,SAAyB;AAChD,WAAO,CAAC,MAAM;AAAA,EAClB;AAAA,EAEA,IAAW,QAAQ,SAAyB;AAExC,QAAI,YAAY,KAAK;AAAS;AAC9B,SAAK,WAAW;AAChB,SAAK,yBAAyB,kBAAkB;AAAA,EACpD;AAAA,EAEA,IAAW,UAA0B;AACjC,WAAO,KAAK;AAAA,EAChB;AAAA,EAmEA,IAAI,SAAS,UAAoB;AAC7B,SAAK,cAAc,YAAY,KAAK,SAAS;AAC7C,SAAK,YAAY;AACjB,SAAK,eAAe,KAAK,MAAM;AAC3B,WAAK,aAAa;AAClB,WAAK,eAAe;AAAA,IACxB,CAAC;AAAA,EACL;AAAA,EAGA,IAAI,WAAqB;AACrB,WAAO,KAAK;AAAA,EAChB;AAAA,EAKQ,eAAe,KAAqB;AACxC,UAAM,eAAe,KAAK;AAAA,MACtB,IAAI,MAAM,UAAU;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,MAChB,CAAC;AAAA,IACL;AAEA,QAAI,CAAC,cAAc;AACf,WAAK,YAAY,GAAG;AACpB,WAAK,QAAQ,IAAI,CAAC,WAAW;AACzB,eAAO,WAAW,KAAK,SAAS,SAAS,OAAO,KAAK;AAAA,MACzD,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEQ,YAAY,UAAoB,UAA0B;AAE9D,QAAI,aAAa,KAAK;AAAU;AAEhC,UAAM,MAAM,KAAK;AACjB,SAAK,cAAc,YAAY,GAAG;AAClC,SAAK,YAAY;AACjB,QAAI,CAAC;AAAU;AACf,SAAK,eAAe,GAAG;AAAA,EAC3B;AAAA,EAEgB,MAAM,SAA8B;AAChD,SAAK,yBAAyB,MAAM,OAAO;AAAA,EAC/C;AAAA,EAEQ,0BAAgC;AACpC,SAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,UAAI,CAAC,OAAO;AAAU;AAEtB,aAAO,WAAW;AAClB,aAAO,WAAW;AAClB,aAAO;AAAA,QACH,KAAK,UAAU;AAAA;AAAA,UAAiC;AAAA;AAAA,QAChD;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEQ,yBAAyB,OAAoB;AACjD,UAAM,gBAAgB;AACtB,UAAM,eAAe;AAAA,EACzB;AAAA,EAEQ,YAAY,OAAoB;AACpC,UAAM,SAAS,MAAM;AACrB,QAAI,OAAO,OAAO,UAAU,aAAa;AACrC;AAAA,IACJ;AACA,YAAQ,KAAK,SAAS;AAAA,MAClB,KAAK,UAAU;AACX,aAAK,wBAAwB;AAC7B,eAAO,WAAW;AAClB,eAAO,WAAW;AAClB,eAAO,aAAa,gBAAgB,MAAM;AAC1C,aAAK,YAAY,CAAC,OAAO,KAAK,GAAG,IAAI;AACrC;AAAA,MACJ;AAAA,MACA,KAAK,YAAY;AACb,cAAM,WAAW,CAAC,GAAG,KAAK,QAAQ;AAClC,eAAO,WAAW,CAAC,OAAO;AAC1B,eAAO;AAAA,UACH;AAAA,UACA,OAAO,WAAW,SAAS;AAAA,QAC/B;AACA,YAAI,OAAO,UAAU;AACjB,mBAAS,KAAK,OAAO,KAAK;AAAA,QAC9B,OAAO;AACH,mBAAS,OAAO,KAAK,SAAS,QAAQ,OAAO,KAAK,GAAG,CAAC;AAAA,QAC1D;AACA,aAAK,YAAY,UAAU,IAAI;AAE/B,aAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,iBAAO,WAAW;AAAA,QACtB,CAAC;AAED,eAAO,WAAW;AAElB;AAAA,MACJ;AAAA,MACA;AACI;AAAA,IACR;AAAA,EACJ;AAAA,EAEA,MAAc,eAA8B;AACxC,UAAM,KAAK,cAAc,IAAI;AAAA,EACjC;AAAA,EAEA,MAAc,cAAc,SAAkC;AAC1D,QAAI,CAAC,KAAK,QAAQ,QAAQ;AACtB;AAAA,IACJ;AAEA,UAAM,UAAU,KAAK;AACrB,YAAQ,KAAK,SAAS;AAAA,MAClB,KAAK,UAAU;AAEX,aAAK,aAAa,QAAQ,YAAY;AACtC,cAAM,aAA6B,CAAC;AACpC,cAAM,UAAU,QAAQ,IAAI,OAAO,WAAW;AAC1C,gBAAM,OAAO;AACb,iBAAO,aAAa,QAAQ,OAAO;AACnC,iBAAO;AAAA,YACH;AAAA,YACA,OAAO,WAAW,SAAS;AAAA,UAC/B;AACA,cAAI,OAAO,UAAU;AACjB,uBAAW,KAAK,MAAM;AAAA,UAC1B;AAAA,QACJ,CAAC;AACD,YAAI;AAAS;AACb,cAAM,QAAQ,IAAI,OAAO;AAEzB,cAAM,WAAW,WAAW,IAAI,CAAC,WAAW;AACxC,iBAAO,OAAO;AAAA,QAClB,CAAC;AAED,aAAK,YAAY,YAAY,eAAe;AAC5C;AAAA,MACJ;AAAA,MACA,KAAK,YAAY;AAEb,YAAI,KAAK,aAAa,MAAM,MAAM,cAAc;AAC5C,eAAK,gBAAgB,MAAM;AAAA,QAC/B;AACA,cAAM,YAAsB,CAAC;AAC7B,cAAM,aAA6B,CAAC;AACpC,cAAM,UAAU,QAAQ,IAAI,OAAO,WAAW;AAC1C,gBAAM,OAAO;AACb,iBAAO,aAAa,QAAQ,UAAU;AACtC,iBAAO;AAAA,YACH;AAAA,YACA,OAAO,WAAW,SAAS;AAAA,UAC/B;AACA,cAAI,OAAO,UAAU;AACjB,sBAAU,KAAK,OAAO,KAAK;AAC3B,uBAAW,KAAK,MAAM;AAAA,UAC1B;AAAA,QACJ,CAAC;AACD,YAAI;AAAS;AACb,cAAM,QAAQ,IAAI,OAAO;AACzB,cAAM,WAAW,CAAC,CAAC,UAAU,SACvB,YACA;AACN,aAAK,YAAY,QAAQ;AACzB;AAAA,MACJ;AAAA,MACA;AAEI,YAAI,KAAK,SAAS,QAAQ;AACtB,gBAAM,aAA6B,CAAC;AACpC,gBAAM,UAAU,QAAQ,IAAI,OAAO,WAAW;AAC1C,kBAAM,OAAO;AACb,mBAAO,aAAa,QAAQ,QAAQ;AACpC,gBAAI,OAAO,UAAU;AACjB,qBAAO,aAAa,gBAAgB,MAAM;AAC1C,yBAAW,KAAK,MAAM;AAAA,YAC1B,OAAO;AACH,qBAAO,gBAAgB,cAAc;AAAA,YACzC;AAAA,UACJ,CAAC;AACD,cAAI;AAAS;AACb,gBAAM,QAAQ,IAAI,OAAO;AAEzB,eAAK;AAAA,YACD,WAAW,IAAI,CAAC,WAAW;AACvB,qBAAO,OAAO;AAAA,YAClB,CAAC;AAAA,UACL;AAAA,QACJ,OAAO;AACH,eAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,mBAAO,aAAa,QAAQ,QAAQ;AAAA,UACxC,CAAC;AACD;AAAA,QACJ;AAAA,IACR;AAGA,QAAI,CAAC,KAAK,aAAa,MAAM,GAAG;AAC5B,WAAK,aAAa,QAAQ,SAAS;AAAA,IACvC;AAAA,EACJ;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA,oDACqC,KAAK,aAAa;AAAA;AAAA,EAElE;AAAA,EAEmB,aAAa,SAA+B;AAC3D,UAAM,aAAa,OAAO;AAC1B,SAAK,iBAAiB,SAAS,KAAK,WAAW;AAAA,EACnD;AAAA,EAEmB,QAAQ,SAA+B;AACtD,UAAM,QAAQ,OAAO;AACrB,QAAI,QAAQ,IAAI,SAAS,GAAG;AACxB,WAAK,cAAc;AACnB,WAAK,eAAe;AACpB,UAAI,CAAC,CAAC,KAAK,SAAS;AAChB,aAAK,WAAW;AAAA,UACZ;AAAA,UACA,KAAK;AAAA,QACT;AAAA,MACJ,OAAO;AACH,aAAK,WAAW;AAAA,UACZ;AAAA,UACA,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AACA,QACI,QAAQ,IAAI,OAAO,KACnB,QAAQ,IAAI,YAAY,KACxB,QAAQ,IAAI,MAAM,KAClB,QAAQ,IAAI,QAAQ,GACtB;AACE,WAAK,eAAe,OAAO;AAAA,IAC/B;AAEA,QACI,QAAQ,IAAI,OAAO,MAClB,KAAK,SAAS,OAAO,QAAQ,IAAI,OAAO,MAAM,cACjD;AACE,UAAI,KAAK,MAAM,QAAQ;AACnB,aAAK,aAAa,cAAc,KAAK,KAAK;AAAA,MAC9C,OAAO;AACH,aAAK,gBAAgB,YAAY;AAAA,MACrC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,eAAe,SAAgC;AACnD,SAAK,QAAQ,QAAQ,CAAC,WAAW;AAC7B,UAAI,KAAK,UAAS,mCAAS,IAAI,WAAU;AACrC,eAAO,QAAQ,KAAK;AAAA,MACxB;AACA,UAAI,KAAK,eAAc,mCAAS,IAAI,gBAAe;AAC/C,eAAO,aAAa,KAAK;AAAA,MAC7B;AACA,UAAI,KAAK,WAAU,mCAAS,IAAI,YAAW;AACvC,eAAO,SAAS,KAAK;AAAA,MACzB;AACA,UAAI,KAAK,WAAW,CAAC,KAAK,YAAY;AAClC,eAAO,WAAW,KAAK,SAAS,SAAS,OAAO,KAAK;AAAA,MACzD;AACA,UACI,KAAK,SACJ,KAAK,SAAS,OACX,QAAO,mCAAS,IAAI,aAAY,cACtC;AACE,eAAO,OAAO,KAAK;AAAA,MACvB;AAAA,IACJ,CAAC;AAAA,EACL;AAkCJ;AAjVW;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA1DjC,YA2DF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA7DjC,YA8DF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAhEjC,YAiEF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAnEjB,YAoEF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAtEjC,YAuEF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAzEjB,YA0EF;AAGA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GA5ElB,YA6EF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA/EjC,YAgFF;AAcH;AAAA,EADH,SAAS,EAAE,MAAM,MAAM,CAAC;AAAA,GA7FhB,YA8FL;AAKJ;AAAA,EADC,MAAM,MAAM;AAAA,GAlGJ,YAmGT;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- "use strict";var h=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var r=(c,u,e,t)=>{for(var s=t>1?void 0:t?p(u,e):u,i=c.length-1,l;i>=0;i--)(l=c[i])&&(s=(t?l(u,e,s):l(s))||s);return t&&s&&h(u,e,s),s};import{html as b,SizedMixin as f,SpectrumElement as m}from"@spectrum-web-components/base";import{property as n,query as v}from"@spectrum-web-components/base/src/decorators.js";import{RovingTabindexController as g}from"@spectrum-web-components/reactive-controllers/src/RovingTabindex.js";import{MutationController as y}from"@lit-labs/observers/mutation-controller.js";import S from"./action-group.css.js";const d=[];export class ActionGroup extends f(m,{validSizes:["xs","s","m","l","xl"],noDefaultSize:!0}){constructor(){super();this._buttons=[];this._buttonSelector="sp-action-button";this.rovingTabindexController=new g(this,{focusInIndex:e=>{let t=-1;const s=e.findIndex((i,l)=>(!e[t]&&!i.disabled&&(t=l),i.selected&&!i.disabled));return e[s]?s:t},elements:()=>this.buttons,isFocusableElement:e=>!e.disabled});this.compact=!1;this.emphasized=!1;this.justified=!1;this.label="";this.quiet=!1;this.vertical=!1;this._selected=d;this.hasManaged=!1;this.manageButtons=()=>{const t=this.slotElement.assignedElements({flatten:!0}).reduce((s,i)=>{if(i.matches(this._buttonSelector))s.push(i);else{const l=Array.from(i.querySelectorAll(`:scope > ${this._buttonSelector}`));s.push(...l)}return s},[]);if(this.buttons=t,this.selects||!this.hasManaged){const s=[];this.buttons.forEach(i=>{i.selected&&s.push(i.value)}),this.setSelected(this.selected.concat(s))}this.manageChildren(),this.manageSelects(),this.hasManaged=!0};new y(this,{config:{childList:!0,subtree:!0},callback:()=>{this.manageButtons()},skipInitial:!0})}static get styles(){return[S]}set buttons(e){e!==this.buttons&&(this._buttons=e,this.rovingTabindexController.clearElementCache())}get buttons(){return this._buttons}set selected(e){this.requestUpdate("selected",this._selected),this._selected=e,this.updateComplete.then(()=>{this.applySelects(),this.manageChildren()})}get selected(){return this._selected}dispatchChange(e){this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0,cancelable:!0}))||(this.setSelected(e),this.buttons.map(s=>{s.selected=this.selected.includes(s.value)}))}setSelected(e,t){if(e===this.selected)return;const s=this.selected;this.requestUpdate("selected",s),this._selected=e,t&&this.dispatchChange(s)}focus(e){this.rovingTabindexController.focus(e)}deselectSelectedButtons(){[...this.querySelectorAll("[selected]")].forEach(t=>{t.selected=!1,t.tabIndex=-1,t.setAttribute(this.selects?"aria-checked":"aria-pressed","false")})}handleActionButtonChange(e){e.stopPropagation(),e.preventDefault()}handleClick(e){const t=e.target;if(typeof t.value!="undefined")switch(this.selects){case"single":{this.deselectSelectedButtons(),t.selected=!0,t.tabIndex=0,t.setAttribute("aria-checked","true"),this.setSelected([t.value],!0);break}case"multiple":{const s=[...this.selected];t.selected=!t.selected,t.setAttribute("aria-checked",t.selected?"true":"false"),t.selected?s.push(t.value):s.splice(this.selected.indexOf(t.value),1),this.setSelected(s,!0),this.buttons.forEach(i=>{i.tabIndex=-1}),t.tabIndex=0;break}default:break}}async applySelects(){await this.manageSelects(!0)}async manageSelects(e){if(!this.buttons.length)return;const t=this.buttons;switch(this.selects){case"single":{this.setAttribute("role","radiogroup");const s=[],i=t.map(async a=>{await a.updateComplete,a.setAttribute("role","radio"),a.setAttribute("aria-checked",a.selected?"true":"false"),a.selected&&s.push(a)});if(e)break;await Promise.all(i);const l=s.map(a=>a.value);this.setSelected(l||d);break}case"multiple":{this.getAttribute("role")==="radiogroup"&&this.removeAttribute("role");const s=[],i=[],l=t.map(async o=>{await o.updateComplete,o.setAttribute("role","checkbox"),o.setAttribute("aria-checked",o.selected?"true":"false"),o.selected&&(s.push(o.value),i.push(o))});if(e)break;await Promise.all(l);const a=s.length?s:d;this.setSelected(a);break}default:if(this.selected.length){const s=[],i=t.map(async l=>{await l.updateComplete,l.setAttribute("role","button"),l.selected?(l.setAttribute("aria-pressed","true"),s.push(l)):l.removeAttribute("aria-pressed")});if(e)break;await Promise.all(i),this.setSelected(s.map(l=>l.value))}else{this.buttons.forEach(s=>{s.setAttribute("role","button")});break}}this.hasAttribute("role")||this.setAttribute("role","toolbar")}render(){return b`
1
+ "use strict";var h=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var r=(c,u,e,s)=>{for(var t=s>1?void 0:s?p(u,e):u,i=c.length-1,l;i>=0;i--)(l=c[i])&&(t=(s?l(u,e,t):l(t))||t);return s&&t&&h(u,e,t),t};import{html as b,SizedMixin as f,SpectrumElement as m}from"@spectrum-web-components/base";import{property as n,query as v}from"@spectrum-web-components/base/src/decorators.js";import{RovingTabindexController as g}from"@spectrum-web-components/reactive-controllers/src/RovingTabindex.js";import{MutationController as y}from"@lit-labs/observers/mutation-controller.js";import S from"./action-group.css.js";const d=[];export class ActionGroup extends f(m,{validSizes:["xs","s","m","l","xl"],noDefaultSize:!0}){constructor(){super();this._buttons=[];this._buttonSelector="sp-action-button";this.rovingTabindexController=new g(this,{focusInIndex:e=>{let s=-1;const t=e.findIndex((i,l)=>(!e[s]&&!i.disabled&&(s=l),i.selected&&!i.disabled));return e[t]?t:s},elements:()=>this.buttons,isFocusableElement:e=>!e.disabled});this.compact=!1;this.emphasized=!1;this.justified=!1;this.label="";this.quiet=!1;this.vertical=!1;this._selected=d;this.hasManaged=!1;this.manageButtons=()=>{const s=this.slotElement.assignedElements({flatten:!0}).reduce((t,i)=>{if(i.matches(this._buttonSelector))t.push(i);else{const l=Array.from(i.querySelectorAll(`:scope > ${this._buttonSelector}`));t.push(...l)}return t},[]);if(this.buttons=s,this.selects||!this.hasManaged){const t=[];this.buttons.forEach(i=>{i.selected&&t.push(i.value)}),this.setSelected(this.selected.concat(t))}this.manageChildren(),this.manageSelects(),this.hasManaged=!0};new y(this,{config:{childList:!0,subtree:!0},callback:()=>{this.manageButtons()},skipInitial:!0})}static get styles(){return[S]}set buttons(e){e!==this.buttons&&(this._buttons=e,this.rovingTabindexController.clearElementCache())}get buttons(){return this._buttons}set selected(e){this.requestUpdate("selected",this._selected),this._selected=e,this.updateComplete.then(()=>{this.applySelects(),this.manageChildren()})}get selected(){return this._selected}dispatchChange(e){this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0,cancelable:!0}))||(this.setSelected(e),this.buttons.map(t=>{t.selected=this.selected.includes(t.value)}))}setSelected(e,s){if(e===this.selected)return;const t=this.selected;this.requestUpdate("selected",t),this._selected=e,s&&this.dispatchChange(t)}focus(e){this.rovingTabindexController.focus(e)}deselectSelectedButtons(){this.buttons.forEach(e=>{e.selected&&(e.selected=!1,e.tabIndex=-1,e.setAttribute(this.selects?"aria-checked":"aria-pressed","false"))})}handleActionButtonChange(e){e.stopPropagation(),e.preventDefault()}handleClick(e){const s=e.target;if(typeof s.value!="undefined")switch(this.selects){case"single":{this.deselectSelectedButtons(),s.selected=!0,s.tabIndex=0,s.setAttribute("aria-checked","true"),this.setSelected([s.value],!0);break}case"multiple":{const t=[...this.selected];s.selected=!s.selected,s.setAttribute("aria-checked",s.selected?"true":"false"),s.selected?t.push(s.value):t.splice(this.selected.indexOf(s.value),1),this.setSelected(t,!0),this.buttons.forEach(i=>{i.tabIndex=-1}),s.tabIndex=0;break}default:break}}async applySelects(){await this.manageSelects(!0)}async manageSelects(e){if(!this.buttons.length)return;const s=this.buttons;switch(this.selects){case"single":{this.setAttribute("role","radiogroup");const t=[],i=s.map(async a=>{await a.updateComplete,a.setAttribute("role","radio"),a.setAttribute("aria-checked",a.selected?"true":"false"),a.selected&&t.push(a)});if(e)break;await Promise.all(i);const l=t.map(a=>a.value);this.setSelected(l||d);break}case"multiple":{this.getAttribute("role")==="radiogroup"&&this.removeAttribute("role");const t=[],i=[],l=s.map(async o=>{await o.updateComplete,o.setAttribute("role","checkbox"),o.setAttribute("aria-checked",o.selected?"true":"false"),o.selected&&(t.push(o.value),i.push(o))});if(e)break;await Promise.all(l);const a=t.length?t:d;this.setSelected(a);break}default:if(this.selected.length){const t=[],i=s.map(async l=>{await l.updateComplete,l.setAttribute("role","button"),l.selected?(l.setAttribute("aria-pressed","true"),t.push(l)):l.removeAttribute("aria-pressed")});if(e)break;await Promise.all(i),this.setSelected(t.map(l=>l.value))}else{this.buttons.forEach(t=>{t.setAttribute("role","button")});break}}this.hasAttribute("role")||this.setAttribute("role","toolbar")}render(){return b`
2
2
  <slot role="presentation" @slotchange=${this.manageButtons}></slot>
3
- `}firstUpdated(e){super.firstUpdated(e),this.addEventListener("click",this.handleClick)}updated(e){super.updated(e),e.has("selects")&&(this.manageSelects(),this.manageChildren(),this.selects?this.shadowRoot.addEventListener("change",this.handleActionButtonChange):this.shadowRoot.removeEventListener("change",this.handleActionButtonChange)),(e.has("quiet")||e.has("emphasized")||e.has("size")||e.has("static"))&&this.manageChildren(e),e.has("label")&&(this.label||typeof e.get("label")!="undefined")&&(this.label.length?this.setAttribute("aria-label",this.label):this.removeAttribute("aria-label"))}manageChildren(e){this.buttons.forEach(t=>{(this.quiet||e!=null&&e.get("quiet"))&&(t.quiet=this.quiet),(this.emphasized||e!=null&&e.get("emphasized"))&&(t.emphasized=this.emphasized),(this.static||e!=null&&e.get("static"))&&(t.static=this.static),(this.selects||!this.hasManaged)&&(t.selected=this.selected.includes(t.value)),this.size&&(this.size!=="m"||typeof(e==null?void 0:e.get("size"))!="undefined")&&(t.size=this.size)})}}r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"compact",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"emphasized",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"justified",2),r([n({type:String})],ActionGroup.prototype,"label",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"quiet",2),r([n({type:String})],ActionGroup.prototype,"selects",2),r([n({reflect:!0})],ActionGroup.prototype,"static",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"vertical",2),r([n({type:Array})],ActionGroup.prototype,"selected",1),r([v("slot")],ActionGroup.prototype,"slotElement",2);
3
+ `}firstUpdated(e){super.firstUpdated(e),this.addEventListener("click",this.handleClick)}updated(e){super.updated(e),e.has("selects")&&(this.manageSelects(),this.manageChildren(),this.selects?this.shadowRoot.addEventListener("change",this.handleActionButtonChange):this.shadowRoot.removeEventListener("change",this.handleActionButtonChange)),(e.has("quiet")||e.has("emphasized")||e.has("size")||e.has("static"))&&this.manageChildren(e),e.has("label")&&(this.label||typeof e.get("label")!="undefined")&&(this.label.length?this.setAttribute("aria-label",this.label):this.removeAttribute("aria-label"))}manageChildren(e){this.buttons.forEach(s=>{(this.quiet||e!=null&&e.get("quiet"))&&(s.quiet=this.quiet),(this.emphasized||e!=null&&e.get("emphasized"))&&(s.emphasized=this.emphasized),(this.static||e!=null&&e.get("static"))&&(s.static=this.static),(this.selects||!this.hasManaged)&&(s.selected=this.selected.includes(s.value)),this.size&&(this.size!=="m"||typeof(e==null?void 0:e.get("size"))!="undefined")&&(s.size=this.size)})}}r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"compact",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"emphasized",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"justified",2),r([n({type:String})],ActionGroup.prototype,"label",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"quiet",2),r([n({type:String})],ActionGroup.prototype,"selects",2),r([n({reflect:!0})],ActionGroup.prototype,"static",2),r([n({type:Boolean,reflect:!0})],ActionGroup.prototype,"vertical",2),r([n({type:Array})],ActionGroup.prototype,"selected",1),r([v("slot")],ActionGroup.prototype,"slotElement",2);
4
4
  //# sourceMappingURL=ActionGroup.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["ActionGroup.ts"],
4
- "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport type { ActionButton } from '@spectrum-web-components/action-button';\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\nimport { MutationController } from '@lit-labs/observers/mutation-controller.js';\n\nimport styles from './action-group.css.js';\n\nconst EMPTY_SELECTION: string[] = [];\n\n/**\n * @element sp-action-group\n * @slot - the sp-action-button elements that make up the group\n *\n * @fires change - Announces that selection state has been changed by user\n */\nexport class ActionGroup extends SizedMixin(SpectrumElement, {\n validSizes: ['xs', 's', 'm', 'l', 'xl'],\n noDefaultSize: true,\n}) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n public set buttons(buttons: ActionButton[]) {\n /* c8 ignore next 1 */\n if (buttons === this.buttons) return;\n this._buttons = buttons;\n this.rovingTabindexController.clearElementCache();\n }\n\n public get buttons(): ActionButton[] {\n return this._buttons;\n }\n\n public _buttons: ActionButton[] = [];\n\n protected _buttonSelector = 'sp-action-button';\n\n constructor() {\n super();\n\n new MutationController(this, {\n config: {\n childList: true,\n subtree: true,\n },\n callback: () => {\n this.manageButtons();\n },\n skipInitial: true,\n });\n }\n\n rovingTabindexController = new RovingTabindexController<ActionButton>(\n this,\n {\n focusInIndex: (elements: ActionButton[]) => {\n let firstEnabledIndex = -1;\n const firstSelectedIndex = elements.findIndex((el, index) => {\n if (!elements[firstEnabledIndex] && !el.disabled) {\n firstEnabledIndex = index;\n }\n return el.selected && !el.disabled;\n });\n return elements[firstSelectedIndex]\n ? firstSelectedIndex\n : firstEnabledIndex;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: ActionButton) => !el.disabled,\n }\n );\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public justified = false;\n\n @property({ type: String })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public quiet = false;\n\n @property({ type: String })\n public selects: undefined | 'single' | 'multiple';\n\n @property({ reflect: true })\n public static?: 'white' | 'black';\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n private _selected: string[] = EMPTY_SELECTION;\n\n set selected(selected: string[]) {\n this.requestUpdate('selected', this._selected);\n this._selected = selected;\n this.updateComplete.then(() => {\n this.applySelects();\n this.manageChildren();\n });\n }\n\n @property({ type: Array })\n get selected(): string[] {\n return this._selected;\n }\n\n @query('slot')\n slotElement!: HTMLSlotElement;\n\n private dispatchChange(old: string[]): void {\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n if (!applyDefault) {\n this.setSelected(old);\n this.buttons.map((button) => {\n button.selected = this.selected.includes(button.value);\n });\n }\n }\n\n private setSelected(selected: string[], announce?: boolean): void {\n /* c8 ignore next 1 */\n if (selected === this.selected) return;\n\n const old = this.selected;\n this.requestUpdate('selected', old);\n this._selected = selected;\n if (!announce) return;\n this.dispatchChange(old);\n }\n\n public override focus(options?: FocusOptions): void {\n this.rovingTabindexController.focus(options);\n }\n\n private deselectSelectedButtons(): void {\n const selected = [\n ...this.querySelectorAll('[selected]'),\n ] as ActionButton[];\n selected.forEach((el) => {\n el.selected = false;\n el.tabIndex = -1;\n el.setAttribute(\n this.selects ? 'aria-checked' : /* c8 ignore */ 'aria-pressed',\n 'false'\n );\n });\n }\n\n private handleActionButtonChange(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handleClick(event: Event): void {\n const target = event.target as ActionButton;\n if (typeof target.value === 'undefined') {\n return;\n }\n switch (this.selects) {\n case 'single': {\n this.deselectSelectedButtons();\n target.selected = true;\n target.tabIndex = 0;\n target.setAttribute('aria-checked', 'true');\n this.setSelected([target.value], true);\n break;\n }\n case 'multiple': {\n const selected = [...this.selected];\n target.selected = !target.selected;\n target.setAttribute(\n 'aria-checked',\n target.selected ? 'true' : 'false'\n );\n if (target.selected) {\n selected.push(target.value);\n } else {\n selected.splice(this.selected.indexOf(target.value), 1);\n }\n this.setSelected(selected, true);\n\n this.buttons.forEach((button) => {\n button.tabIndex = -1;\n });\n\n target.tabIndex = 0;\n\n break;\n }\n default:\n break;\n }\n }\n\n private async applySelects(): Promise<void> {\n await this.manageSelects(true);\n }\n\n private async manageSelects(applied?: boolean): Promise<void> {\n if (!this.buttons.length) {\n return;\n }\n\n const options = this.buttons;\n switch (this.selects) {\n case 'single': {\n // single behaves as a radio group\n this.setAttribute('role', 'radiogroup');\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'radio');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n const selected = selections.map((button) => {\n return button.value;\n });\n\n this.setSelected(selected || EMPTY_SELECTION);\n break;\n }\n case 'multiple': {\n // switching from single to multiple, remove role=\"radiogroup\"\n if (this.getAttribute('role') === 'radiogroup') {\n this.removeAttribute('role');\n }\n const selection: string[] = [];\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'checkbox');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selection.push(option.value);\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n const selected = !!selection.length\n ? selection\n : EMPTY_SELECTION;\n this.setSelected(selected);\n break;\n }\n default:\n // if user defines .selected\n if (this.selected.length) {\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'button');\n if (option.selected) {\n option.setAttribute('aria-pressed', 'true');\n selections.push(option);\n } else {\n option.removeAttribute('aria-pressed');\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n this.setSelected(\n selections.map((button) => {\n return button.value;\n })\n );\n } else {\n this.buttons.forEach((option) => {\n option.setAttribute('role', 'button');\n });\n break;\n }\n }\n\n // When no other role is defined, use role=\"toolbar\", which is appropriate with roving tabindex.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'toolbar');\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot role=\"presentation\" @slotchange=${this.manageButtons}></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('selects')) {\n this.manageSelects();\n this.manageChildren();\n if (!!this.selects) {\n this.shadowRoot.addEventListener(\n 'change',\n this.handleActionButtonChange\n );\n } else {\n this.shadowRoot.removeEventListener(\n 'change',\n this.handleActionButtonChange\n );\n }\n }\n if (\n changes.has('quiet') ||\n changes.has('emphasized') ||\n changes.has('size') ||\n changes.has('static')\n ) {\n this.manageChildren(changes);\n }\n // Update `aria-label` when `label` available or not first `updated`\n if (\n changes.has('label') &&\n (this.label || typeof changes.get('label') !== 'undefined')\n ) {\n if (this.label.length) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n private manageChildren(changes?: PropertyValues): void {\n this.buttons.forEach((button) => {\n if (this.quiet || changes?.get('quiet')) {\n button.quiet = this.quiet;\n }\n if (this.emphasized || changes?.get('emphasized')) {\n button.emphasized = this.emphasized;\n }\n if (this.static || changes?.get('static')) {\n button.static = this.static;\n }\n if (this.selects || !this.hasManaged) {\n button.selected = this.selected.includes(button.value);\n }\n if (\n this.size &&\n (this.size !== 'm' ||\n typeof changes?.get('size') !== 'undefined')\n ) {\n button.size = this.size;\n }\n });\n }\n\n private hasManaged = false;\n\n private manageButtons = (): void => {\n const assignedElements = this.slotElement.assignedElements({\n flatten: true,\n });\n const buttons = assignedElements.reduce((acc: unknown[], el) => {\n if (el.matches(this._buttonSelector)) {\n acc.push(el);\n } else {\n const buttonDescendents = Array.from(\n el.querySelectorAll(`:scope > ${this._buttonSelector}`)\n );\n acc.push(...buttonDescendents);\n }\n return acc;\n }, []);\n this.buttons = buttons as ActionButton[];\n if (this.selects || !this.hasManaged) {\n // <select> element merges selected so following paradigm here\n const currentlySelectedButtons: string[] = [];\n this.buttons.forEach((button: ActionButton) => {\n if (button.selected) {\n currentlySelectedButtons.push(button.value);\n }\n });\n this.setSelected(this.selected.concat(currentlySelectedButtons));\n }\n this.manageChildren();\n this.manageSelects();\n this.hasManaged = true;\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport type { ActionButton } from '@spectrum-web-components/action-button';\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\nimport { MutationController } from '@lit-labs/observers/mutation-controller.js';\n\nimport styles from './action-group.css.js';\n\nconst EMPTY_SELECTION: string[] = [];\n\n/**\n * @element sp-action-group\n * @slot - the sp-action-button elements that make up the group\n *\n * @fires change - Announces that selection state has been changed by user\n */\nexport class ActionGroup extends SizedMixin(SpectrumElement, {\n validSizes: ['xs', 's', 'm', 'l', 'xl'],\n noDefaultSize: true,\n}) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n public set buttons(buttons: ActionButton[]) {\n /* c8 ignore next 1 */\n if (buttons === this.buttons) return;\n this._buttons = buttons;\n this.rovingTabindexController.clearElementCache();\n }\n\n public get buttons(): ActionButton[] {\n return this._buttons;\n }\n\n public _buttons: ActionButton[] = [];\n\n protected _buttonSelector = 'sp-action-button';\n\n constructor() {\n super();\n\n new MutationController(this, {\n config: {\n childList: true,\n subtree: true,\n },\n callback: () => {\n this.manageButtons();\n },\n skipInitial: true,\n });\n }\n\n rovingTabindexController = new RovingTabindexController<ActionButton>(\n this,\n {\n focusInIndex: (elements: ActionButton[]) => {\n let firstEnabledIndex = -1;\n const firstSelectedIndex = elements.findIndex((el, index) => {\n if (!elements[firstEnabledIndex] && !el.disabled) {\n firstEnabledIndex = index;\n }\n return el.selected && !el.disabled;\n });\n return elements[firstSelectedIndex]\n ? firstSelectedIndex\n : firstEnabledIndex;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: ActionButton) => !el.disabled,\n }\n );\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public justified = false;\n\n @property({ type: String })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public quiet = false;\n\n @property({ type: String })\n public selects: undefined | 'single' | 'multiple';\n\n @property({ reflect: true })\n public static?: 'white' | 'black';\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n private _selected: string[] = EMPTY_SELECTION;\n\n set selected(selected: string[]) {\n this.requestUpdate('selected', this._selected);\n this._selected = selected;\n this.updateComplete.then(() => {\n this.applySelects();\n this.manageChildren();\n });\n }\n\n @property({ type: Array })\n get selected(): string[] {\n return this._selected;\n }\n\n @query('slot')\n slotElement!: HTMLSlotElement;\n\n private dispatchChange(old: string[]): void {\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n if (!applyDefault) {\n this.setSelected(old);\n this.buttons.map((button) => {\n button.selected = this.selected.includes(button.value);\n });\n }\n }\n\n private setSelected(selected: string[], announce?: boolean): void {\n /* c8 ignore next 1 */\n if (selected === this.selected) return;\n\n const old = this.selected;\n this.requestUpdate('selected', old);\n this._selected = selected;\n if (!announce) return;\n this.dispatchChange(old);\n }\n\n public override focus(options?: FocusOptions): void {\n this.rovingTabindexController.focus(options);\n }\n\n private deselectSelectedButtons(): void {\n this.buttons.forEach((button) => {\n if (!button.selected) return;\n\n button.selected = false;\n button.tabIndex = -1;\n button.setAttribute(\n this.selects ? 'aria-checked' : /* c8 ignore */ 'aria-pressed',\n 'false'\n );\n });\n }\n\n private handleActionButtonChange(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handleClick(event: Event): void {\n const target = event.target as ActionButton;\n if (typeof target.value === 'undefined') {\n return;\n }\n switch (this.selects) {\n case 'single': {\n this.deselectSelectedButtons();\n target.selected = true;\n target.tabIndex = 0;\n target.setAttribute('aria-checked', 'true');\n this.setSelected([target.value], true);\n break;\n }\n case 'multiple': {\n const selected = [...this.selected];\n target.selected = !target.selected;\n target.setAttribute(\n 'aria-checked',\n target.selected ? 'true' : 'false'\n );\n if (target.selected) {\n selected.push(target.value);\n } else {\n selected.splice(this.selected.indexOf(target.value), 1);\n }\n this.setSelected(selected, true);\n\n this.buttons.forEach((button) => {\n button.tabIndex = -1;\n });\n\n target.tabIndex = 0;\n\n break;\n }\n default:\n break;\n }\n }\n\n private async applySelects(): Promise<void> {\n await this.manageSelects(true);\n }\n\n private async manageSelects(applied?: boolean): Promise<void> {\n if (!this.buttons.length) {\n return;\n }\n\n const options = this.buttons;\n switch (this.selects) {\n case 'single': {\n // single behaves as a radio group\n this.setAttribute('role', 'radiogroup');\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'radio');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n const selected = selections.map((button) => {\n return button.value;\n });\n\n this.setSelected(selected || EMPTY_SELECTION);\n break;\n }\n case 'multiple': {\n // switching from single to multiple, remove role=\"radiogroup\"\n if (this.getAttribute('role') === 'radiogroup') {\n this.removeAttribute('role');\n }\n const selection: string[] = [];\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'checkbox');\n option.setAttribute(\n 'aria-checked',\n option.selected ? 'true' : 'false'\n );\n if (option.selected) {\n selection.push(option.value);\n selections.push(option);\n }\n });\n if (applied) break;\n await Promise.all(updates);\n const selected = !!selection.length\n ? selection\n : EMPTY_SELECTION;\n this.setSelected(selected);\n break;\n }\n default:\n // if user defines .selected\n if (this.selected.length) {\n const selections: ActionButton[] = [];\n const updates = options.map(async (option) => {\n await option.updateComplete;\n option.setAttribute('role', 'button');\n if (option.selected) {\n option.setAttribute('aria-pressed', 'true');\n selections.push(option);\n } else {\n option.removeAttribute('aria-pressed');\n }\n });\n if (applied) break;\n await Promise.all(updates);\n\n this.setSelected(\n selections.map((button) => {\n return button.value;\n })\n );\n } else {\n this.buttons.forEach((option) => {\n option.setAttribute('role', 'button');\n });\n break;\n }\n }\n\n // When no other role is defined, use role=\"toolbar\", which is appropriate with roving tabindex.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'toolbar');\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot role=\"presentation\" @slotchange=${this.manageButtons}></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('selects')) {\n this.manageSelects();\n this.manageChildren();\n if (!!this.selects) {\n this.shadowRoot.addEventListener(\n 'change',\n this.handleActionButtonChange\n );\n } else {\n this.shadowRoot.removeEventListener(\n 'change',\n this.handleActionButtonChange\n );\n }\n }\n if (\n changes.has('quiet') ||\n changes.has('emphasized') ||\n changes.has('size') ||\n changes.has('static')\n ) {\n this.manageChildren(changes);\n }\n // Update `aria-label` when `label` available or not first `updated`\n if (\n changes.has('label') &&\n (this.label || typeof changes.get('label') !== 'undefined')\n ) {\n if (this.label.length) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n private manageChildren(changes?: PropertyValues): void {\n this.buttons.forEach((button) => {\n if (this.quiet || changes?.get('quiet')) {\n button.quiet = this.quiet;\n }\n if (this.emphasized || changes?.get('emphasized')) {\n button.emphasized = this.emphasized;\n }\n if (this.static || changes?.get('static')) {\n button.static = this.static;\n }\n if (this.selects || !this.hasManaged) {\n button.selected = this.selected.includes(button.value);\n }\n if (\n this.size &&\n (this.size !== 'm' ||\n typeof changes?.get('size') !== 'undefined')\n ) {\n button.size = this.size;\n }\n });\n }\n\n private hasManaged = false;\n\n private manageButtons = (): void => {\n const assignedElements = this.slotElement.assignedElements({\n flatten: true,\n });\n const buttons = assignedElements.reduce((acc: unknown[], el) => {\n if (el.matches(this._buttonSelector)) {\n acc.push(el);\n } else {\n const buttonDescendents = Array.from(\n el.querySelectorAll(`:scope > ${this._buttonSelector}`)\n );\n acc.push(...buttonDescendents);\n }\n return acc;\n }, []);\n this.buttons = buttons as ActionButton[];\n if (this.selects || !this.hasManaged) {\n // <select> element merges selected so following paradigm here\n const currentlySelectedButtons: string[] = [];\n this.buttons.forEach((button: ActionButton) => {\n if (button.selected) {\n currentlySelectedButtons.push(button.value);\n }\n });\n this.setSelected(this.selected.concat(currentlySelectedButtons));\n }\n this.manageChildren();\n this.manageSelects();\n this.hasManaged = true;\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["html", "SizedMixin", "SpectrumElement", "property", "query", "RovingTabindexController", "MutationController", "styles", "EMPTY_SELECTION", "elements", "firstEnabledIndex", "firstSelectedIndex", "el", "index", "buttons", "acc", "buttonDescendents", "currentlySelectedButtons", "button", "selected", "old", "announce", "options", "event", "target", "applied", "selections", "updates", "option", "selection", "changes", "__decorateClass"]
7
7
  }
@@ -1,99 +1,7 @@
1
1
  "use strict";
2
2
  import { css } from "@spectrum-web-components/base";
3
3
  const styles = css`
4
- :host{--spectrum-actiongroup-button-spacing-reset:0;--spectrum-actiongroup-border-radius-reset:0;--spectrum-actiongroup-border-radius:var(--spectrum-corner-radius-100)}:host([size=s]),:host([size=xs]){--spectrum-actiongroup-horizontal-spacing-regular:var(
5
- --spectrum-spacing-75
6
- );--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host,:host([size=l]),:host([size=xl]){--spectrum-actiongroup-horizontal-spacing-regular:var(
7
- --spectrum-spacing-100
8
- );--spectrum-actiongroup-vertical-spacing-regular:var(
9
- --spectrum-spacing-100
10
- )}:host{display:flex;flex-wrap:wrap;gap:var(
11
- --mod-actiongroup-horizontal-spacing-regular,var(--spectrum-actiongroup-horizontal-spacing-regular)
12
- )}::slotted(*){flex-shrink:0}::slotted(.focus-visible){z-index:3}::slotted(:focus-visible){z-index:3}:host(:not([vertical]):not([compact])) ::slotted(*){flex-shrink:0}:host([vertical]){display:inline-flex;flex-direction:column;gap:var(
13
- --mod-actiongroup-vertical-spacing-regular,var(--spectrum-actiongroup-vertical-spacing-regular)
14
- )}:host([compact]){gap:var(
15
- --mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact)
16
- )}:host([compact]:not([quiet])){flex-wrap:nowrap}:host([compact]:not([quiet])) ::slotted(*){border-radius:var(
17
- --mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset)
18
- );position:relative;z-index:0}:host([compact]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(
19
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
20
- ) 0px 0px var(
21
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
22
- );border-end-start-radius:var(
23
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
24
- );border-start-start-radius:var(
25
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
26
- );margin-inline-start:var(
27
- --mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)
28
- )}:host([compact]:not([quiet])) ::slotted(:not(:first-child)){--mod-actionbutton-focus-indicator-border-radius:0px;margin-inline-end:var(
29
- --mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact)
30
- );margin-inline-start:var(
31
- --mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact)
32
- )}:host([compact]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px var(
33
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
34
- ) var(
35
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
36
- ) 0px;border-end-end-radius:var(
37
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
38
- );border-start-end-radius:var(
39
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
40
- );margin-inline-end:var(
41
- --mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset)
42
- );margin-inline-start:var(
43
- --mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact)
44
- )}:host([compact]:not([quiet])) ::slotted([selected]){z-index:1}@media (hover:hover){:host([compact]:not([quiet])) ::slotted(:hover){z-index:2}}:host([compact]:not([quiet])) ::slotted(.focus-visible){z-index:3}:host([compact]:not([quiet])) ::slotted(:focus-visible){z-index:3}:host([compact]:not([quiet])[vertical]){gap:var(
45
- --mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact)
46
- )}:host([compact]:not([quiet])[vertical]) ::slotted(*){border-radius:var(
47
- --mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset)
48
- )}:host([compact]:not([quiet])[vertical]) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(
49
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
50
- ) var(
51
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
52
- ) 0px 0px;border-start-end-radius:var(
53
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
54
- );border-start-start-radius:var(
55
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
56
- );margin-block-end:var(
57
- --mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)
58
- );margin-block-start:var(
59
- --mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)
60
- );margin-inline-end:var(
61
- --mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)
62
- )}:host([compact]:not([quiet])[vertical]) ::slotted(:not(:first-child)){margin-block-end:var(
63
- --mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)
64
- );margin-block-start:var(
65
- --mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)
66
- );margin-inline-end:var(
67
- --mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)
68
- );margin-inline-start:var(
69
- --mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)
70
- )}:host([compact]:not([quiet])[vertical]) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px 0px var(
71
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
72
- ) var(
73
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
74
- );border-end-end-radius:var(
75
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
76
- );border-end-start-radius:var(
77
- --mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)
78
- );margin-block-end:var(
79
- --mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)
80
- );margin-block-start:var(
81
- --mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)
82
- )}:host([justified]) ::slotted(*){flex:1}:host{--spectrum-actiongroup-gap-size-compact:var(
83
- --system-spectrum-actiongroup-gap-size-compact
84
- );--spectrum-actiongroup-horizontal-spacing-compact:var(
85
- --system-spectrum-actiongroup-horizontal-spacing-compact
86
- );--spectrum-actiongroup-vertical-spacing-compact:var(
87
- --system-spectrum-actiongroup-vertical-spacing-compact
88
- )}:host([size=xs]){--spectrum-actiongroup-horizontal-spacing-regular:var(
89
- --spectrum-spacing-75
90
- );--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host([dir][compact][vertical]) ::slotted(:nth-child(n)){margin-left:0;margin-right:0}:host([justified]) ::slotted(:not([role])),:host([vertical]) ::slotted(:not([role])){align-items:stretch;display:flex;flex-direction:column}:host([compact]:not([quiet])) ::slotted(:not([role])){--overriden-border-radius:0;--mod-actionbutton-border-radius:var(--overriden-border-radius)}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0 0}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius)}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--spectrum-alias-component-border-radius) 0 0 var(--spectrum-alias-component-border-radius)}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child){--overriden-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:var(--spectrum-alias-component-border-radius) 0 0 var(--spectrum-alias-component-border-radius)}:host([compact]:not([quiet])) ::slotted(*){--mod-actionbutton-focus-ring-border-radius:0}:host([compact][vertical]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(
91
- --spectrum-alias-component-border-radius
92
- ) var(--spectrum-alias-component-border-radius) 0 0}:host([compact][vertical]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius)}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(
93
- --spectrum-alias-component-border-radius
94
- ) 0 0 var(--spectrum-alias-component-border-radius)}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:var(
95
- --spectrum-alias-component-border-radius
96
- ) 0 0 var(--spectrum-alias-component-border-radius)}
4
+ :host{--spectrum-actiongroup-button-spacing-reset:0;--spectrum-actiongroup-border-radius-reset:0;--spectrum-actiongroup-border-radius:var(--spectrum-corner-radius-100)}:host([size=xs]),:host([size=s]){--spectrum-actiongroup-horizontal-spacing-regular:var(--spectrum-spacing-75);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host,:host([size=l]),:host([size=xl]){--spectrum-actiongroup-horizontal-spacing-regular:var(--spectrum-spacing-100);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-100)}:host{gap:var(--mod-actiongroup-horizontal-spacing-regular,var(--spectrum-actiongroup-horizontal-spacing-regular));flex-wrap:wrap;display:flex}::slotted(*){flex-shrink:0}::slotted(:focus-visible){z-index:3}:host(:not([vertical]):not([compact])) ::slotted(*){flex-shrink:0}:host([vertical]){gap:var(--mod-actiongroup-vertical-spacing-regular,var(--spectrum-actiongroup-vertical-spacing-regular));flex-direction:column;display:inline-flex}:host([compact]){gap:var(--mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact))}:host([compact]:not([quiet])){flex-wrap:nowrap}:host([compact]:not([quiet])) ::slotted(*){border-radius:var(--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset));z-index:0;position:relative}:host([compact]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0px 0px var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-start-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-inline-start:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([compact]:not([quiet])) ::slotted(:not(:first-child)){--mod-actionbutton-focus-indicator-border-radius:0px;margin-inline-start:var(--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact));margin-inline-end:var(--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact))}:host([compact]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0px;border-start-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-inline-start:var(--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact));margin-inline-end:var(--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset))}:host([compact]:not([quiet])) ::slotted([selected]){z-index:1}@media (hover:hover){:host([compact]:not([quiet])) ::slotted(:hover){z-index:2}}:host([compact]:not([quiet])) ::slotted(:focus-visible){z-index:3}:host([compact]:not([quiet])[vertical]){gap:var(--mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact))}:host([compact]:not([quiet])[vertical]) ::slotted(*){border-radius:var(--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset))}:host([compact]:not([quiet])[vertical]) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0px 0px;border-start-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-start-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-block-start:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-block-end:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-inline-end:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([compact]:not([quiet])[vertical]) ::slotted(:not(:first-child)){margin-block-start:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset));margin-block-end:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-inline-start:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset));margin-inline-end:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([compact]:not([quiet])[vertical]) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px 0px var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-block-start:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-block-end:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([justified]) ::slotted(*){flex:1}:host{--spectrum-actiongroup-gap-size-compact:var(--system-spectrum-actiongroup-gap-size-compact);--spectrum-actiongroup-horizontal-spacing-compact:var(--system-spectrum-actiongroup-horizontal-spacing-compact);--spectrum-actiongroup-vertical-spacing-compact:var(--system-spectrum-actiongroup-vertical-spacing-compact)}:host([size=xs]){--spectrum-actiongroup-horizontal-spacing-regular:var(--spectrum-spacing-75);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host([dir][compact][vertical]) ::slotted(:nth-child(n)){margin-left:0;margin-right:0}:host([justified]) ::slotted(:not([role])),:host([vertical]) ::slotted(:not([role])){flex-direction:column;align-items:stretch;display:flex}:host([compact]:not([quiet])) ::slotted(:not([role])){--overriden-border-radius:0;--mod-actionbutton-border-radius:var(--overriden-border-radius)}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child),:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([compact]:not([quiet])) ::slotted(*){--mod-actionbutton-focus-ring-border-radius:0}:host([compact][vertical]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(--spectrum-alias-component-border-radius)var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0}:host([compact][vertical]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(--spectrum-alias-component-border-radius)0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:first-child),:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:var(--spectrum-alias-component-border-radius)0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}
97
5
  `;
98
6
  export default styles;
99
7
  //# sourceMappingURL=action-group.css.dev.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["action-group.css.ts"],
4
- "sourcesContent": ["/*\nCopyright 2024 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--spectrum-actiongroup-button-spacing-reset:0;--spectrum-actiongroup-border-radius-reset:0;--spectrum-actiongroup-border-radius:var(--spectrum-corner-radius-100)}:host([size=s]),:host([size=xs]){--spectrum-actiongroup-horizontal-spacing-regular:var(\n--spectrum-spacing-75\n);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host,:host([size=l]),:host([size=xl]){--spectrum-actiongroup-horizontal-spacing-regular:var(\n--spectrum-spacing-100\n);--spectrum-actiongroup-vertical-spacing-regular:var(\n--spectrum-spacing-100\n)}:host{display:flex;flex-wrap:wrap;gap:var(\n--mod-actiongroup-horizontal-spacing-regular,var(--spectrum-actiongroup-horizontal-spacing-regular)\n)}::slotted(*){flex-shrink:0}::slotted(.focus-visible){z-index:3}::slotted(:focus-visible){z-index:3}:host(:not([vertical]):not([compact])) ::slotted(*){flex-shrink:0}:host([vertical]){display:inline-flex;flex-direction:column;gap:var(\n--mod-actiongroup-vertical-spacing-regular,var(--spectrum-actiongroup-vertical-spacing-regular)\n)}:host([compact]){gap:var(\n--mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact)\n)}:host([compact]:not([quiet])){flex-wrap:nowrap}:host([compact]:not([quiet])) ::slotted(*){border-radius:var(\n--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset)\n);position:relative;z-index:0}:host([compact]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n) 0px 0px var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);border-end-start-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);border-start-start-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);margin-inline-start:var(\n--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)\n)}:host([compact]:not([quiet])) ::slotted(:not(:first-child)){--mod-actionbutton-focus-indicator-border-radius:0px;margin-inline-end:var(\n--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact)\n);margin-inline-start:var(\n--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact)\n)}:host([compact]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n) var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n) 0px;border-end-end-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);border-start-end-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);margin-inline-end:var(\n--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset)\n);margin-inline-start:var(\n--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact)\n)}:host([compact]:not([quiet])) ::slotted([selected]){z-index:1}@media (hover:hover){:host([compact]:not([quiet])) ::slotted(:hover){z-index:2}}:host([compact]:not([quiet])) ::slotted(.focus-visible){z-index:3}:host([compact]:not([quiet])) ::slotted(:focus-visible){z-index:3}:host([compact]:not([quiet])[vertical]){gap:var(\n--mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact)\n)}:host([compact]:not([quiet])[vertical]) ::slotted(*){border-radius:var(\n--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset)\n)}:host([compact]:not([quiet])[vertical]) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n) var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n) 0px 0px;border-start-end-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);border-start-start-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);margin-block-end:var(\n--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)\n);margin-block-start:var(\n--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)\n);margin-inline-end:var(\n--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)\n)}:host([compact]:not([quiet])[vertical]) ::slotted(:not(:first-child)){margin-block-end:var(\n--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)\n);margin-block-start:var(\n--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)\n);margin-inline-end:var(\n--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)\n);margin-inline-start:var(\n--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)\n)}:host([compact]:not([quiet])[vertical]) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px 0px var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n) var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);border-end-end-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);border-end-start-radius:var(\n--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius)\n);margin-block-end:var(\n--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset)\n);margin-block-start:var(\n--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact)\n)}:host([justified]) ::slotted(*){flex:1}:host{--spectrum-actiongroup-gap-size-compact:var(\n--system-spectrum-actiongroup-gap-size-compact\n);--spectrum-actiongroup-horizontal-spacing-compact:var(\n--system-spectrum-actiongroup-horizontal-spacing-compact\n);--spectrum-actiongroup-vertical-spacing-compact:var(\n--system-spectrum-actiongroup-vertical-spacing-compact\n)}:host([size=xs]){--spectrum-actiongroup-horizontal-spacing-regular:var(\n--spectrum-spacing-75\n);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host([dir][compact][vertical]) ::slotted(:nth-child(n)){margin-left:0;margin-right:0}:host([justified]) ::slotted(:not([role])),:host([vertical]) ::slotted(:not([role])){align-items:stretch;display:flex;flex-direction:column}:host([compact]:not([quiet])) ::slotted(:not([role])){--overriden-border-radius:0;--mod-actionbutton-border-radius:var(--overriden-border-radius)}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0 0}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius)}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--spectrum-alias-component-border-radius) 0 0 var(--spectrum-alias-component-border-radius)}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child){--overriden-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:var(--spectrum-alias-component-border-radius) 0 0 var(--spectrum-alias-component-border-radius)}:host([compact]:not([quiet])) ::slotted(*){--mod-actionbutton-focus-ring-border-radius:0}:host([compact][vertical]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(\n--spectrum-alias-component-border-radius\n) var(--spectrum-alias-component-border-radius) 0 0}:host([compact][vertical]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius)}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(\n--spectrum-alias-component-border-radius\n) 0 0 var(--spectrum-alias-component-border-radius)}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 var(--spectrum-alias-component-border-radius) var(--spectrum-alias-component-border-radius) 0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:var(\n--spectrum-alias-component-border-radius\n) 0 0 var(--spectrum-alias-component-border-radius)}\n`;\nexport default styles;"],
5
- "mappings": ";AAWA,SAAS,WAAW;AACpB,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+Ff,eAAe;",
4
+ "sourcesContent": ["/*\nCopyright 2024 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n :host{--spectrum-actiongroup-button-spacing-reset:0;--spectrum-actiongroup-border-radius-reset:0;--spectrum-actiongroup-border-radius:var(--spectrum-corner-radius-100)}:host([size=xs]),:host([size=s]){--spectrum-actiongroup-horizontal-spacing-regular:var(--spectrum-spacing-75);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host,:host([size=l]),:host([size=xl]){--spectrum-actiongroup-horizontal-spacing-regular:var(--spectrum-spacing-100);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-100)}:host{gap:var(--mod-actiongroup-horizontal-spacing-regular,var(--spectrum-actiongroup-horizontal-spacing-regular));flex-wrap:wrap;display:flex}::slotted(*){flex-shrink:0}::slotted(:focus-visible){z-index:3}:host(:not([vertical]):not([compact])) ::slotted(*){flex-shrink:0}:host([vertical]){gap:var(--mod-actiongroup-vertical-spacing-regular,var(--spectrum-actiongroup-vertical-spacing-regular));flex-direction:column;display:inline-flex}:host([compact]){gap:var(--mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact))}:host([compact]:not([quiet])){flex-wrap:nowrap}:host([compact]:not([quiet])) ::slotted(*){border-radius:var(--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset));z-index:0;position:relative}:host([compact]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0px 0px var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-start-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-inline-start:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([compact]:not([quiet])) ::slotted(:not(:first-child)){--mod-actionbutton-focus-indicator-border-radius:0px;margin-inline-start:var(--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact));margin-inline-end:var(--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact))}:host([compact]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0px;border-start-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-inline-start:var(--mod-actiongroup-horizontal-spacing-compact,var(--spectrum-actiongroup-horizontal-spacing-compact));margin-inline-end:var(--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset))}:host([compact]:not([quiet])) ::slotted([selected]){z-index:1}@media (hover:hover){:host([compact]:not([quiet])) ::slotted(:hover){z-index:2}}:host([compact]:not([quiet])) ::slotted(:focus-visible){z-index:3}:host([compact]:not([quiet])[vertical]){gap:var(--mod-actiongroup-gap-size-compact,var(--spectrum-actiongroup-gap-size-compact))}:host([compact]:not([quiet])[vertical]) ::slotted(*){border-radius:var(--mod-actiongroup-border-radius-reset,var(--spectrum-actiongroup-border-radius-reset))}:host([compact]:not([quiet])[vertical]) ::slotted(:first-child){--mod-actionbutton-focus-indicator-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0px 0px;border-start-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-start-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-block-start:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-block-end:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-inline-end:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([compact]:not([quiet])[vertical]) ::slotted(:not(:first-child)){margin-block-start:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset));margin-block-end:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-inline-start:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset));margin-inline-end:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([compact]:not([quiet])[vertical]) ::slotted(:last-child){--mod-actionbutton-focus-indicator-border-radius:0px 0px var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-end-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));border-end-start-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius));margin-block-start:var(--mod-actiongroup-vertical-spacing-compact,var(--spectrum-actiongroup-vertical-spacing-compact));margin-block-end:var(--mod-actiongroup-button-spacing-reset,var(--spectrum-actiongroup-button-spacing-reset))}:host([justified]) ::slotted(*){flex:1}:host{--spectrum-actiongroup-gap-size-compact:var(--system-spectrum-actiongroup-gap-size-compact);--spectrum-actiongroup-horizontal-spacing-compact:var(--system-spectrum-actiongroup-horizontal-spacing-compact);--spectrum-actiongroup-vertical-spacing-compact:var(--system-spectrum-actiongroup-vertical-spacing-compact)}:host([size=xs]){--spectrum-actiongroup-horizontal-spacing-regular:var(--spectrum-spacing-75);--spectrum-actiongroup-vertical-spacing-regular:var(--spectrum-spacing-75)}:host([dir][compact][vertical]) ::slotted(:nth-child(n)){margin-left:0;margin-right:0}:host([justified]) ::slotted(:not([role])),:host([vertical]) ::slotted(:not([role])){flex-direction:column;align-items:stretch;display:flex}:host([compact]:not([quiet])) ::slotted(:not([role])){--overriden-border-radius:0;--mod-actionbutton-border-radius:var(--overriden-border-radius)}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0}:host([compact][vertical]:not([quiet])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child){--overriden-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):first-child),:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:not([role]):last-child){--overriden-border-radius:var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([compact]:not([quiet])) ::slotted(*){--mod-actionbutton-focus-ring-border-radius:0}:host([compact][vertical]:not([quiet])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(--spectrum-alias-component-border-radius)var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0 0}:host([compact][vertical]:not([quiet])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:first-child){--mod-actionbutton-focus-ring-border-radius:var(--spectrum-alias-component-border-radius)0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:first-child),:host([dir=ltr][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))0}:host([dir=rtl][compact]:not([quiet],[vertical])) ::slotted(:last-child){--mod-actionbutton-focus-ring-border-radius:var(--spectrum-alias-component-border-radius)0 0 var(--mod-actiongroup-border-radius,var(--spectrum-actiongroup-border-radius))}\n`;\nexport default styles;"],
5
+ "mappings": ";AAWA,SAAS,WAAW;AACpB,MAAM,SAAS;AAAA;AAAA;AAGf,eAAe;",
6
6
  "names": []
7
7
  }