@spectrum-web-components/radio 0.37.0 → 0.39.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/README.md CHANGED
@@ -91,6 +91,8 @@ import {
91
91
 
92
92
  Standard radio buttons are the default style for radio buttons. They are optimal for application panels where all visual elements are monochrome in order to direct focus to the content.
93
93
 
94
+ Invalid selections in radio groups are identified using the `negative-help-text` slot. Read more about using [help text](#help-text) below.
95
+
94
96
  ```html-live
95
97
  <div style="display: flex; justify-content: space-between;">
96
98
  <div style="display: flex; flex-direction: column;">
@@ -107,9 +109,12 @@ Standard radio buttons are the default style for radio buttons. They are optimal
107
109
  <sp-field-label for="example-2" size="l">
108
110
  <h4 class="spectrum-Heading--subtitle1">Invalid</h4>
109
111
  </sp-field-label>
110
- <sp-radio-group id="example-2" name="example" vertical>
112
+ <sp-radio-group invalid id="example-2" name="example" vertical>
111
113
  <sp-radio invalid value="kittens">Kittens</sp-radio>
112
114
  <sp-radio invalid value="puppies" checked>Puppies</sp-radio>
115
+ <sp-help-text slot="negative-help-text" icon>
116
+ This selection is invalid.
117
+ </sp-help-text>
113
118
  </sp-radio-group>
114
119
  </div>
115
120
 
@@ -129,6 +134,8 @@ Standard radio buttons are the default style for radio buttons. They are optimal
129
134
 
130
135
  Emphasized radio buttons are a secondary style for radio buttons. The blue color provides a visual prominence that is optimal for forms, settings, etc. where the radio buttons need to be noticed.
131
136
 
137
+ Invalid selections in radio groups are identified using the `negative-help-text` slot. Read more about using [help text](#help-text) below.
138
+
132
139
  ```html-live
133
140
  <div style="display: flex; justify-content: space-between;">
134
141
  <div style="display: flex; flex-direction: column;">
@@ -145,9 +152,12 @@ Emphasized radio buttons are a secondary style for radio buttons. The blue color
145
152
  <sp-field-label for="example-b" size="l">
146
153
  <h4 class="spectrum-Heading--subtitle1">Invalid</h4>
147
154
  </sp-field-label>
148
- <sp-radio-group id="example-b" name="example" vertical>
155
+ <sp-radio-group invalid id="example-b" name="example" vertical>
149
156
  <sp-radio emphasized invalid value="kittens">Kittens</sp-radio>
150
157
  <sp-radio emphasized invalid value="puppies" checked>Puppies</sp-radio>
158
+ <sp-help-text slot="negative-help-text" icon>
159
+ This selection is invalid.
160
+ </sp-help-text>
151
161
  </sp-radio-group>
152
162
  </div>
153
163
 
@@ -334,7 +334,7 @@
334
334
  {
335
335
  "kind": "field",
336
336
  "name": "rovingTabindexController",
337
- "default": "new RovingTabindexController<Radio>(this, {\n focusInIndex: (elements: Radio[]) => {\n return elements.findIndex((el) => {\n return this.selected\n ? !el.disabled && el.value === this.selected\n : !el.disabled;\n });\n },\n elementEnterAction: (el: Radio) => {\n this.selected = el.value;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: Radio) => !el.disabled,\n })"
337
+ "default": "new RovingTabindexController<Radio>(this, {\n focusInIndex: (elements: Radio[]) => {\n return elements.findIndex((el) => {\n return this.selected\n ? !el.disabled && el.value === this.selected\n : !el.disabled;\n });\n },\n elementEnterAction: (el: Radio) => {\n this._setSelected(el.value);\n },\n elements: () => this.buttons,\n isFocusableElement: (el: Radio) => !el.disabled,\n })"
338
338
  },
339
339
  {
340
340
  "kind": "method",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/radio",
3
- "version": "0.37.0",
3
+ "version": "0.39.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -65,14 +65,14 @@
65
65
  "lit-html"
66
66
  ],
67
67
  "dependencies": {
68
- "@spectrum-web-components/base": "^0.37.0",
69
- "@spectrum-web-components/field-group": "^0.37.0",
70
- "@spectrum-web-components/help-text": "^0.37.0",
71
- "@spectrum-web-components/reactive-controllers": "^0.37.0",
72
- "@spectrum-web-components/shared": "^0.37.0"
68
+ "@spectrum-web-components/base": "^0.39.0",
69
+ "@spectrum-web-components/field-group": "^0.39.0",
70
+ "@spectrum-web-components/help-text": "^0.39.0",
71
+ "@spectrum-web-components/reactive-controllers": "^0.39.0",
72
+ "@spectrum-web-components/shared": "^0.39.0"
73
73
  },
74
74
  "devDependencies": {
75
- "@spectrum-css/radio": "^7.0.46"
75
+ "@spectrum-css/radio": "^8.0.8"
76
76
  },
77
77
  "types": "./src/index.d.ts",
78
78
  "customElements": "custom-elements.json",
@@ -80,5 +80,5 @@
80
80
  "./sp-*.js",
81
81
  "./**/*.dev.js"
82
82
  ],
83
- "gitHead": "d771f62f0d8063070af43283bb0fd5e3400bad06"
83
+ "gitHead": "2acc8390ef0ac6cc940958d4da705c9859155c0d"
84
84
  }
package/src/Radio.dev.js CHANGED
@@ -19,7 +19,8 @@ import { property } from "@spectrum-web-components/base/src/decorators.js";
19
19
  import { FocusVisiblePolyfillMixin } from "@spectrum-web-components/shared/src/focus-visible.js";
20
20
  import radioStyles from "./radio.css.js";
21
21
  export class Radio extends SizedMixin(
22
- FocusVisiblePolyfillMixin(SpectrumElement)
22
+ FocusVisiblePolyfillMixin(SpectrumElement),
23
+ { noDefaultSize: true }
23
24
  ) {
24
25
  constructor() {
25
26
  super(...arguments);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["Radio.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 { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\n\nimport radioStyles from './radio.css.js';\n\n/**\n * @element sp-radio\n *\n * @slot - text label of the Radio button\n * @attr invalid - Uses the invalid style\n * @attr disabled - Uses the disabled style\n * @attr checked - Represents when the input is checked\n * @attr value - Identifies this radio button within its radio group\n *\n * @fires change - When the input is interacted with and its state is changed\n */\nexport class Radio extends SizedMixin(\n FocusVisiblePolyfillMixin(SpectrumElement)\n) {\n public static override get styles(): CSSResultArray {\n return [radioStyles];\n }\n\n /**\n * When this control is rendered, focus it automatically\n * @private\n */\n @property({ type: Boolean })\n public override autofocus = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n @property({ type: Boolean, reflect: true })\n public checked = false;\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n public override click(): void {\n if (this.disabled) {\n return;\n }\n this.activate();\n }\n\n protected manageAutoFocus(): void {\n if (this.autofocus) {\n /**\n * Trick :focus-visible polyfill into thinking keyboard based focus\n *\n * @private\n **/\n this.dispatchEvent(\n new KeyboardEvent('keydown', {\n code: 'Tab',\n })\n );\n this.focus();\n }\n }\n\n protected activate(): void {\n if (this.checked) {\n return;\n }\n this.checked = true;\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n if (event.code === 'Space') {\n this.activate();\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <div id=\"input\"></div>\n <span id=\"button\"></span>\n <span id=\"label\" role=\"presentation\"><slot></slot></span>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'radio');\n if (!this.hasAttribute('tabindex')) {\n this.tabIndex = 0;\n }\n this.manageAutoFocus();\n this.addEventListener('click', this.activate);\n this.addEventListener('keyup', this.handleKeyup);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('invalid')) {\n if (this.invalid) {\n this.setAttribute('aria-invalid', 'true');\n } else {\n this.removeAttribute('aria-invalid');\n }\n }\n if (changes.has('checked')) {\n if (this.checked) {\n this.setAttribute('aria-checked', 'true');\n } else {\n this.setAttribute('aria-checked', 'false');\n }\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\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 { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\n\nimport radioStyles from './radio.css.js';\n\n/**\n * @element sp-radio\n *\n * @slot - text label of the Radio button\n * @attr invalid - Uses the invalid style\n * @attr disabled - Uses the disabled style\n * @attr checked - Represents when the input is checked\n * @attr value - Identifies this radio button within its radio group\n *\n * @fires change - When the input is interacted with and its state is changed\n */\nexport class Radio extends SizedMixin(\n FocusVisiblePolyfillMixin(SpectrumElement),\n { noDefaultSize: true }\n) {\n public static override get styles(): CSSResultArray {\n return [radioStyles];\n }\n\n /**\n * When this control is rendered, focus it automatically\n * @private\n */\n @property({ type: Boolean })\n public override autofocus = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n @property({ type: Boolean, reflect: true })\n public checked = false;\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n public override click(): void {\n if (this.disabled) {\n return;\n }\n this.activate();\n }\n\n protected manageAutoFocus(): void {\n if (this.autofocus) {\n /**\n * Trick :focus-visible polyfill into thinking keyboard based focus\n *\n * @private\n **/\n this.dispatchEvent(\n new KeyboardEvent('keydown', {\n code: 'Tab',\n })\n );\n this.focus();\n }\n }\n\n protected activate(): void {\n if (this.checked) {\n return;\n }\n this.checked = true;\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n if (event.code === 'Space') {\n this.activate();\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <div id=\"input\"></div>\n <span id=\"button\"></span>\n <span id=\"label\" role=\"presentation\"><slot></slot></span>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'radio');\n if (!this.hasAttribute('tabindex')) {\n this.tabIndex = 0;\n }\n this.manageAutoFocus();\n this.addEventListener('click', this.activate);\n this.addEventListener('keyup', this.handleKeyup);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('invalid')) {\n if (this.invalid) {\n this.setAttribute('aria-invalid', 'true');\n } else {\n this.removeAttribute('aria-invalid');\n }\n }\n if (changes.has('checked')) {\n if (this.checked) {\n this.setAttribute('aria-checked', 'true');\n } else {\n this.setAttribute('aria-checked', 'false');\n }\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/src/Radio.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var u=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var t=(l,s,e,a)=>{for(var i=a>1?void 0:a?c(s,e):s,d=l.length-1,o;d>=0;d--)(o=l[d])&&(i=(a?o(s,e,i):o(i))||i);return a&&i&&u(s,e,i),i};import{html as p,SizedMixin as n,SpectrumElement as h}from"@spectrum-web-components/base";import{property as r}from"@spectrum-web-components/base/src/decorators.js";import{FocusVisiblePolyfillMixin as b}from"@spectrum-web-components/shared/src/focus-visible.js";import f from"./radio.css.js";export class Radio extends n(b(h)){constructor(){super(...arguments);this.autofocus=!1;this.value="";this.checked=!1;this.disabled=!1;this.emphasized=!1;this.invalid=!1;this.readonly=!1}static get styles(){return[f]}click(){this.disabled||this.activate()}manageAutoFocus(){this.autofocus&&(this.dispatchEvent(new KeyboardEvent("keydown",{code:"Tab"})),this.focus())}activate(){this.checked||(this.checked=!0,this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})))}handleKeyup(e){e.code==="Space"&&this.activate()}render(){return p`
1
+ "use strict";var u=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var t=(l,s,e,a)=>{for(var i=a>1?void 0:a?c(s,e):s,d=l.length-1,o;d>=0;d--)(o=l[d])&&(i=(a?o(s,e,i):o(i))||i);return a&&i&&u(s,e,i),i};import{html as p,SizedMixin as n,SpectrumElement as h}from"@spectrum-web-components/base";import{property as r}from"@spectrum-web-components/base/src/decorators.js";import{FocusVisiblePolyfillMixin as f}from"@spectrum-web-components/shared/src/focus-visible.js";import b from"./radio.css.js";export class Radio extends n(f(h),{noDefaultSize:!0}){constructor(){super(...arguments);this.autofocus=!1;this.value="";this.checked=!1;this.disabled=!1;this.emphasized=!1;this.invalid=!1;this.readonly=!1}static get styles(){return[b]}click(){this.disabled||this.activate()}manageAutoFocus(){this.autofocus&&(this.dispatchEvent(new KeyboardEvent("keydown",{code:"Tab"})),this.focus())}activate(){this.checked||(this.checked=!0,this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})))}handleKeyup(e){e.code==="Space"&&this.activate()}render(){return p`
2
2
  <div id="input"></div>
3
3
  <span id="button"></span>
4
4
  <span id="label" role="presentation"><slot></slot></span>
package/src/Radio.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["Radio.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 { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\n\nimport radioStyles from './radio.css.js';\n\n/**\n * @element sp-radio\n *\n * @slot - text label of the Radio button\n * @attr invalid - Uses the invalid style\n * @attr disabled - Uses the disabled style\n * @attr checked - Represents when the input is checked\n * @attr value - Identifies this radio button within its radio group\n *\n * @fires change - When the input is interacted with and its state is changed\n */\nexport class Radio extends SizedMixin(\n FocusVisiblePolyfillMixin(SpectrumElement)\n) {\n public static override get styles(): CSSResultArray {\n return [radioStyles];\n }\n\n /**\n * When this control is rendered, focus it automatically\n * @private\n */\n @property({ type: Boolean })\n public override autofocus = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n @property({ type: Boolean, reflect: true })\n public checked = false;\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n public override click(): void {\n if (this.disabled) {\n return;\n }\n this.activate();\n }\n\n protected manageAutoFocus(): void {\n if (this.autofocus) {\n /**\n * Trick :focus-visible polyfill into thinking keyboard based focus\n *\n * @private\n **/\n this.dispatchEvent(\n new KeyboardEvent('keydown', {\n code: 'Tab',\n })\n );\n this.focus();\n }\n }\n\n protected activate(): void {\n if (this.checked) {\n return;\n }\n this.checked = true;\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n if (event.code === 'Space') {\n this.activate();\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <div id=\"input\"></div>\n <span id=\"button\"></span>\n <span id=\"label\" role=\"presentation\"><slot></slot></span>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'radio');\n if (!this.hasAttribute('tabindex')) {\n this.tabIndex = 0;\n }\n this.manageAutoFocus();\n this.addEventListener('click', this.activate);\n this.addEventListener('keyup', this.handleKeyup);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('invalid')) {\n if (this.invalid) {\n this.setAttribute('aria-invalid', 'true');\n } else {\n this.removeAttribute('aria-invalid');\n }\n }\n if (changes.has('checked')) {\n if (this.checked) {\n this.setAttribute('aria-checked', 'true');\n } else {\n this.setAttribute('aria-checked', 'false');\n }\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n }\n}\n"],
5
- "mappings": "qNAYA,OAEI,QAAAA,EAEA,cAAAC,EACA,mBAAAC,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,OAAS,6BAAAC,MAAiC,uDAE1C,OAAOC,MAAiB,iBAajB,aAAM,cAAcJ,EACvBG,EAA0BF,CAAe,CAC7C,CAAE,CAFK,kCAYH,KAAgB,UAAY,GAG5B,KAAO,MAAQ,GAGf,KAAO,QAAU,GAGjB,KAAO,SAAW,GAGlB,KAAO,WAAa,GAGpB,KAAO,QAAU,GAGjB,KAAO,SAAW,GA3BlB,WAA2B,QAAyB,CAChD,MAAO,CAACG,CAAW,CACvB,CA2BgB,OAAc,CACtB,KAAK,UAGT,KAAK,SAAS,CAClB,CAEU,iBAAwB,CAC1B,KAAK,YAML,KAAK,cACD,IAAI,cAAc,UAAW,CACzB,KAAM,KACV,CAAC,CACL,EACA,KAAK,MAAM,EAEnB,CAEU,UAAiB,CACnB,KAAK,UAGT,KAAK,QAAU,GACf,KAAK,cACD,IAAI,MAAM,SAAU,CAChB,QAAS,GACT,SAAU,EACd,CAAC,CACL,EACJ,CAEU,YAAYC,EAA4B,CAC1CA,EAAM,OAAS,SACf,KAAK,SAAS,CAEtB,CAEmB,QAAyB,CACxC,OAAON;AAAA;AAAA;AAAA;AAAA,SAKX,CAEmB,aAAaO,EAA+B,CAC3D,MAAM,aAAaA,CAAO,EAC1B,KAAK,aAAa,OAAQ,OAAO,EAC5B,KAAK,aAAa,UAAU,IAC7B,KAAK,SAAW,GAEpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,QAAS,KAAK,QAAQ,EAC5C,KAAK,iBAAiB,QAAS,KAAK,WAAW,CACnD,CAEmB,QAAQA,EAA+B,CACtD,MAAM,QAAQA,CAAO,EACjBA,EAAQ,IAAI,SAAS,IACjB,KAAK,QACL,KAAK,aAAa,eAAgB,MAAM,EAExC,KAAK,gBAAgB,cAAc,GAGvCA,EAAQ,IAAI,SAAS,IACjB,KAAK,QACL,KAAK,aAAa,eAAgB,MAAM,EAExC,KAAK,aAAa,eAAgB,OAAO,GAG7CA,EAAQ,IAAI,UAAU,IAClB,KAAK,SACL,KAAK,aAAa,gBAAiB,MAAM,EAEzC,KAAK,gBAAgB,eAAe,EAGhD,CACJ,CAzGoBC,EAAA,CADfL,EAAS,CAAE,KAAM,OAAQ,CAAC,GAXlB,MAYO,yBAGTK,EAAA,CADNL,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,GAdhC,MAeF,qBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAjBjC,MAkBF,uBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GApBjC,MAqBF,wBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAvBjC,MAwBF,0BAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GA1BjC,MA2BF,uBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GA7BjC,MA8BF",
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 { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\n\nimport radioStyles from './radio.css.js';\n\n/**\n * @element sp-radio\n *\n * @slot - text label of the Radio button\n * @attr invalid - Uses the invalid style\n * @attr disabled - Uses the disabled style\n * @attr checked - Represents when the input is checked\n * @attr value - Identifies this radio button within its radio group\n *\n * @fires change - When the input is interacted with and its state is changed\n */\nexport class Radio extends SizedMixin(\n FocusVisiblePolyfillMixin(SpectrumElement),\n { noDefaultSize: true }\n) {\n public static override get styles(): CSSResultArray {\n return [radioStyles];\n }\n\n /**\n * When this control is rendered, focus it automatically\n * @private\n */\n @property({ type: Boolean })\n public override autofocus = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n @property({ type: Boolean, reflect: true })\n public checked = false;\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n public override click(): void {\n if (this.disabled) {\n return;\n }\n this.activate();\n }\n\n protected manageAutoFocus(): void {\n if (this.autofocus) {\n /**\n * Trick :focus-visible polyfill into thinking keyboard based focus\n *\n * @private\n **/\n this.dispatchEvent(\n new KeyboardEvent('keydown', {\n code: 'Tab',\n })\n );\n this.focus();\n }\n }\n\n protected activate(): void {\n if (this.checked) {\n return;\n }\n this.checked = true;\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n if (event.code === 'Space') {\n this.activate();\n }\n }\n\n protected override render(): TemplateResult {\n return html`\n <div id=\"input\"></div>\n <span id=\"button\"></span>\n <span id=\"label\" role=\"presentation\"><slot></slot></span>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'radio');\n if (!this.hasAttribute('tabindex')) {\n this.tabIndex = 0;\n }\n this.manageAutoFocus();\n this.addEventListener('click', this.activate);\n this.addEventListener('keyup', this.handleKeyup);\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('invalid')) {\n if (this.invalid) {\n this.setAttribute('aria-invalid', 'true');\n } else {\n this.removeAttribute('aria-invalid');\n }\n }\n if (changes.has('checked')) {\n if (this.checked) {\n this.setAttribute('aria-checked', 'true');\n } else {\n this.setAttribute('aria-checked', 'false');\n }\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n }\n}\n"],
5
+ "mappings": "qNAYA,OAEI,QAAAA,EAEA,cAAAC,EACA,mBAAAC,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,OAAS,6BAAAC,MAAiC,uDAE1C,OAAOC,MAAiB,iBAajB,aAAM,cAAcJ,EACvBG,EAA0BF,CAAe,EACzC,CAAE,cAAe,EAAK,CAC1B,CAAE,CAHK,kCAaH,KAAgB,UAAY,GAG5B,KAAO,MAAQ,GAGf,KAAO,QAAU,GAGjB,KAAO,SAAW,GAGlB,KAAO,WAAa,GAGpB,KAAO,QAAU,GAGjB,KAAO,SAAW,GA3BlB,WAA2B,QAAyB,CAChD,MAAO,CAACG,CAAW,CACvB,CA2BgB,OAAc,CACtB,KAAK,UAGT,KAAK,SAAS,CAClB,CAEU,iBAAwB,CAC1B,KAAK,YAML,KAAK,cACD,IAAI,cAAc,UAAW,CACzB,KAAM,KACV,CAAC,CACL,EACA,KAAK,MAAM,EAEnB,CAEU,UAAiB,CACnB,KAAK,UAGT,KAAK,QAAU,GACf,KAAK,cACD,IAAI,MAAM,SAAU,CAChB,QAAS,GACT,SAAU,EACd,CAAC,CACL,EACJ,CAEU,YAAYC,EAA4B,CAC1CA,EAAM,OAAS,SACf,KAAK,SAAS,CAEtB,CAEmB,QAAyB,CACxC,OAAON;AAAA;AAAA;AAAA;AAAA,SAKX,CAEmB,aAAaO,EAA+B,CAC3D,MAAM,aAAaA,CAAO,EAC1B,KAAK,aAAa,OAAQ,OAAO,EAC5B,KAAK,aAAa,UAAU,IAC7B,KAAK,SAAW,GAEpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,QAAS,KAAK,QAAQ,EAC5C,KAAK,iBAAiB,QAAS,KAAK,WAAW,CACnD,CAEmB,QAAQA,EAA+B,CACtD,MAAM,QAAQA,CAAO,EACjBA,EAAQ,IAAI,SAAS,IACjB,KAAK,QACL,KAAK,aAAa,eAAgB,MAAM,EAExC,KAAK,gBAAgB,cAAc,GAGvCA,EAAQ,IAAI,SAAS,IACjB,KAAK,QACL,KAAK,aAAa,eAAgB,MAAM,EAExC,KAAK,aAAa,eAAgB,OAAO,GAG7CA,EAAQ,IAAI,UAAU,IAClB,KAAK,SACL,KAAK,aAAa,gBAAiB,MAAM,EAEzC,KAAK,gBAAgB,eAAe,EAGhD,CACJ,CAzGoBC,EAAA,CADfL,EAAS,CAAE,KAAM,OAAQ,CAAC,GAZlB,MAaO,yBAGTK,EAAA,CADNL,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,GAfhC,MAgBF,qBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAlBjC,MAmBF,uBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GArBjC,MAsBF,wBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAxBjC,MAyBF,0BAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GA3BjC,MA4BF,uBAGAK,EAAA,CADNL,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GA9BjC,MA+BF",
6
6
  "names": ["html", "SizedMixin", "SpectrumElement", "property", "FocusVisiblePolyfillMixin", "radioStyles", "event", "changes", "__decorateClass"]
7
7
  }
@@ -29,7 +29,7 @@ export class RadioGroup extends FocusVisiblePolyfillMixin(FieldGroup) {
29
29
  });
30
30
  },
31
31
  elementEnterAction: (el) => {
32
- this.selected = el.value;
32
+ this._setSelected(el.value);
33
33
  },
34
34
  elements: () => this.buttons,
35
35
  isFocusableElement: (el) => !el.disabled
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["RadioGroup.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 { PropertyValues } from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedNodes,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\nimport { FieldGroup } from '@spectrum-web-components/field-group';\n\nimport { Radio } from './Radio.dev.js'\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\n\n/**\n * @element sp-radio-group\n *\n * @slot - The `sp-radio` elements to display/manage in the group.\n * @slot help-text - default or non-negative help text to associate to your form element\n * @slot negative-help-text - negative help text to associate to your form element when `invalid`\n *\n * @fires change - An alteration to the value of the element has been committed by the user.\n */\nexport class RadioGroup extends FocusVisiblePolyfillMixin(FieldGroup) {\n @property({ type: String })\n public name = '';\n\n @queryAssignedNodes()\n public defaultNodes!: Node[];\n\n public get buttons(): Radio[] {\n return this.defaultNodes.filter(\n (node) => (node as HTMLElement) instanceof Radio\n ) as Radio[];\n }\n\n rovingTabindexController = new RovingTabindexController<Radio>(this, {\n focusInIndex: (elements: Radio[]) => {\n return elements.findIndex((el) => {\n return this.selected\n ? !el.disabled && el.value === this.selected\n : !el.disabled;\n });\n },\n elementEnterAction: (el: Radio) => {\n this.selected = el.value;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: Radio) => !el.disabled,\n });\n\n public override focus(): void {\n this.rovingTabindexController.focus();\n }\n\n private _setSelected(value: string): void {\n if (value === this.selected) {\n return;\n }\n const oldValue = this.selected;\n const radio = value\n ? (this.querySelector(`sp-radio[value=\"${value}\"]`) as Radio)\n : undefined;\n\n // If no matching radio, selected is reset to empty string\n this.selected = radio ? value : '';\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n composed: true,\n })\n );\n if (!applyDefault) {\n this.selected = oldValue;\n return;\n }\n this.validateRadios();\n }\n\n @property({ reflect: true })\n public selected = '';\n\n protected override willUpdate(changes: PropertyValues<this>): void {\n if (!this.hasUpdated) {\n this.setAttribute('role', 'radiogroup');\n const checkedRadio = this.querySelector(\n 'sp-radio[checked]'\n ) as Radio;\n const checkedRadioValue = checkedRadio ? checkedRadio.value : '';\n // Prefer the checked item over the selected value\n this.selected = checkedRadioValue || this.selected;\n // Validate the selected value is actual a radio option\n if (this.selected && this.selected !== checkedRadioValue) {\n const selectedRadio = this.querySelector(\n `sp-radio[value=\"${this.selected}\"]`\n ) as Radio;\n if (selectedRadio) {\n selectedRadio.checked = true;\n }\n }\n\n this.shadowRoot.addEventListener('change', (event: Event) => {\n event.stopPropagation();\n const target = event.target as Radio;\n this._setSelected(target.value);\n });\n }\n\n if (changes.has('selected')) {\n this.validateRadios();\n }\n }\n\n private async validateRadios(): Promise<void> {\n let validSelection = false;\n if (!this.hasUpdated) {\n // Initial validation has to happen after the initial render to allow\n // the buttons to be queries from the rendered <slot> element\n await this.updateComplete;\n }\n this.buttons.map((button) => {\n button.checked = this.selected === button.value;\n validSelection = validSelection || button.checked;\n });\n if (!validSelection) {\n this.selected = '';\n }\n }\n\n protected override handleSlotchange(): void {\n this.rovingTabindexController.clearElementCache();\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;AAaA;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAE3B,SAAS,aAAa;AACtB,SAAS,gCAAgC;AAWlC,aAAM,mBAAmB,0BAA0B,UAAU,EAAE;AAAA,EAA/D;AAAA;AAEH,SAAO,OAAO;AAWd,oCAA2B,IAAI,yBAAgC,MAAM;AAAA,MACjE,cAAc,CAAC,aAAsB;AACjC,eAAO,SAAS,UAAU,CAAC,OAAO;AAC9B,iBAAO,KAAK,WACN,CAAC,GAAG,YAAY,GAAG,UAAU,KAAK,WAClC,CAAC,GAAG;AAAA,QACd,CAAC;AAAA,MACL;AAAA,MACA,oBAAoB,CAAC,OAAc;AAC/B,aAAK,WAAW,GAAG;AAAA,MACvB;AAAA,MACA,UAAU,MAAM,KAAK;AAAA,MACrB,oBAAoB,CAAC,OAAc,CAAC,GAAG;AAAA,IAC3C,CAAC;AAgCD,SAAO,WAAW;AAAA;AAAA,EAnDlB,IAAW,UAAmB;AAC1B,WAAO,KAAK,aAAa;AAAA,MACrB,CAAC,SAAU,gBAAgC;AAAA,IAC/C;AAAA,EACJ;AAAA,EAiBgB,QAAc;AAC1B,SAAK,yBAAyB,MAAM;AAAA,EACxC;AAAA,EAEQ,aAAa,OAAqB;AACtC,QAAI,UAAU,KAAK,UAAU;AACzB;AAAA,IACJ;AACA,UAAM,WAAW,KAAK;AACtB,UAAM,QAAQ,QACP,KAAK,cAAc,mBAAmB,KAAK,IAAI,IAChD;AAGN,SAAK,WAAW,QAAQ,QAAQ;AAChC,UAAM,eAAe,KAAK;AAAA,MACtB,IAAI,MAAM,UAAU;AAAA,QAChB,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,UAAU;AAAA,MACd,CAAC;AAAA,IACL;AACA,QAAI,CAAC,cAAc;AACf,WAAK,WAAW;AAChB;AAAA,IACJ;AACA,SAAK,eAAe;AAAA,EACxB;AAAA,EAKmB,WAAW,SAAqC;AAC/D,QAAI,CAAC,KAAK,YAAY;AAClB,WAAK,aAAa,QAAQ,YAAY;AACtC,YAAM,eAAe,KAAK;AAAA,QACtB;AAAA,MACJ;AACA,YAAM,oBAAoB,eAAe,aAAa,QAAQ;AAE9D,WAAK,WAAW,qBAAqB,KAAK;AAE1C,UAAI,KAAK,YAAY,KAAK,aAAa,mBAAmB;AACtD,cAAM,gBAAgB,KAAK;AAAA,UACvB,mBAAmB,KAAK,QAAQ;AAAA,QACpC;AACA,YAAI,eAAe;AACf,wBAAc,UAAU;AAAA,QAC5B;AAAA,MACJ;AAEA,WAAK,WAAW,iBAAiB,UAAU,CAAC,UAAiB;AACzD,cAAM,gBAAgB;AACtB,cAAM,SAAS,MAAM;AACrB,aAAK,aAAa,OAAO,KAAK;AAAA,MAClC,CAAC;AAAA,IACL;AAEA,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,WAAK,eAAe;AAAA,IACxB;AAAA,EACJ;AAAA,EAEA,MAAc,iBAAgC;AAC1C,QAAI,iBAAiB;AACrB,QAAI,CAAC,KAAK,YAAY;AAGlB,YAAM,KAAK;AAAA,IACf;AACA,SAAK,QAAQ,IAAI,CAAC,WAAW;AACzB,aAAO,UAAU,KAAK,aAAa,OAAO;AAC1C,uBAAiB,kBAAkB,OAAO;AAAA,IAC9C,CAAC;AACD,QAAI,CAAC,gBAAgB;AACjB,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA,EAEmB,mBAAyB;AACxC,SAAK,yBAAyB,kBAAkB;AAAA,EACpD;AACJ;AA5GW;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GADjB,WAEF;AAGA;AAAA,EADN,mBAAmB;AAAA,GAJX,WAKF;AAqDA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAzDlB,WA0DF;",
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 { PropertyValues } from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedNodes,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\nimport { FieldGroup } from '@spectrum-web-components/field-group';\n\nimport { Radio } from './Radio.dev.js'\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\n\n/**\n * @element sp-radio-group\n *\n * @slot - The `sp-radio` elements to display/manage in the group.\n * @slot help-text - default or non-negative help text to associate to your form element\n * @slot negative-help-text - negative help text to associate to your form element when `invalid`\n *\n * @fires change - An alteration to the value of the element has been committed by the user.\n */\nexport class RadioGroup extends FocusVisiblePolyfillMixin(FieldGroup) {\n @property({ type: String })\n public name = '';\n\n @queryAssignedNodes()\n public defaultNodes!: Node[];\n\n public get buttons(): Radio[] {\n return this.defaultNodes.filter(\n (node) => (node as HTMLElement) instanceof Radio\n ) as Radio[];\n }\n\n rovingTabindexController = new RovingTabindexController<Radio>(this, {\n focusInIndex: (elements: Radio[]) => {\n return elements.findIndex((el) => {\n return this.selected\n ? !el.disabled && el.value === this.selected\n : !el.disabled;\n });\n },\n elementEnterAction: (el: Radio) => {\n this._setSelected(el.value);\n },\n elements: () => this.buttons,\n isFocusableElement: (el: Radio) => !el.disabled,\n });\n\n public override focus(): void {\n this.rovingTabindexController.focus();\n }\n\n private _setSelected(value: string): void {\n if (value === this.selected) {\n return;\n }\n const oldValue = this.selected;\n const radio = value\n ? (this.querySelector(`sp-radio[value=\"${value}\"]`) as Radio)\n : undefined;\n\n // If no matching radio, selected is reset to empty string\n this.selected = radio ? value : '';\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n composed: true,\n })\n );\n if (!applyDefault) {\n this.selected = oldValue;\n return;\n }\n this.validateRadios();\n }\n\n @property({ reflect: true })\n public selected = '';\n\n protected override willUpdate(changes: PropertyValues<this>): void {\n if (!this.hasUpdated) {\n this.setAttribute('role', 'radiogroup');\n const checkedRadio = this.querySelector(\n 'sp-radio[checked]'\n ) as Radio;\n const checkedRadioValue = checkedRadio ? checkedRadio.value : '';\n // Prefer the checked item over the selected value\n this.selected = checkedRadioValue || this.selected;\n // Validate the selected value is actual a radio option\n if (this.selected && this.selected !== checkedRadioValue) {\n const selectedRadio = this.querySelector(\n `sp-radio[value=\"${this.selected}\"]`\n ) as Radio;\n if (selectedRadio) {\n selectedRadio.checked = true;\n }\n }\n\n this.shadowRoot.addEventListener('change', (event: Event) => {\n event.stopPropagation();\n const target = event.target as Radio;\n this._setSelected(target.value);\n });\n }\n\n if (changes.has('selected')) {\n this.validateRadios();\n }\n }\n\n private async validateRadios(): Promise<void> {\n let validSelection = false;\n if (!this.hasUpdated) {\n // Initial validation has to happen after the initial render to allow\n // the buttons to be queries from the rendered <slot> element\n await this.updateComplete;\n }\n this.buttons.map((button) => {\n button.checked = this.selected === button.value;\n validSelection = validSelection || button.checked;\n });\n if (!validSelection) {\n this.selected = '';\n }\n }\n\n protected override handleSlotchange(): void {\n this.rovingTabindexController.clearElementCache();\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/src/RadioGroup.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var a=(l,d,e,t)=>{for(var i=t>1?void 0:t?n(d,e):d,s=l.length-1,o;s>=0;s--)(o=l[s])&&(i=(t?o(d,e,i):o(i))||i);return t&&i&&c(d,e,i),i};import{property as r,queryAssignedNodes as h}from"@spectrum-web-components/base/src/decorators.js";import{FocusVisiblePolyfillMixin as u}from"@spectrum-web-components/shared/src/focus-visible.js";import{FieldGroup as p}from"@spectrum-web-components/field-group";import{Radio as f}from"./Radio.js";import{RovingTabindexController as v}from"@spectrum-web-components/reactive-controllers/src/RovingTabindex.js";export class RadioGroup extends u(p){constructor(){super(...arguments);this.name="";this.rovingTabindexController=new v(this,{focusInIndex:e=>e.findIndex(t=>this.selected?!t.disabled&&t.value===this.selected:!t.disabled),elementEnterAction:e=>{this.selected=e.value},elements:()=>this.buttons,isFocusableElement:e=>!e.disabled});this.selected=""}get buttons(){return this.defaultNodes.filter(e=>e instanceof f)}focus(){this.rovingTabindexController.focus()}_setSelected(e){if(e===this.selected)return;const t=this.selected,i=e?this.querySelector(`sp-radio[value="${e}"]`):void 0;if(this.selected=i?e:"",!this.dispatchEvent(new Event("change",{cancelable:!0,bubbles:!0,composed:!0}))){this.selected=t;return}this.validateRadios()}willUpdate(e){if(!this.hasUpdated){this.setAttribute("role","radiogroup");const t=this.querySelector("sp-radio[checked]"),i=t?t.value:"";if(this.selected=i||this.selected,this.selected&&this.selected!==i){const s=this.querySelector(`sp-radio[value="${this.selected}"]`);s&&(s.checked=!0)}this.shadowRoot.addEventListener("change",s=>{s.stopPropagation();const o=s.target;this._setSelected(o.value)})}e.has("selected")&&this.validateRadios()}async validateRadios(){let e=!1;this.hasUpdated||await this.updateComplete,this.buttons.map(t=>{t.checked=this.selected===t.value,e=e||t.checked}),e||(this.selected="")}handleSlotchange(){this.rovingTabindexController.clearElementCache()}}a([r({type:String})],RadioGroup.prototype,"name",2),a([h()],RadioGroup.prototype,"defaultNodes",2),a([r({reflect:!0})],RadioGroup.prototype,"selected",2);
1
+ "use strict";var c=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var a=(l,d,e,t)=>{for(var i=t>1?void 0:t?n(d,e):d,s=l.length-1,o;s>=0;s--)(o=l[s])&&(i=(t?o(d,e,i):o(i))||i);return t&&i&&c(d,e,i),i};import{property as r,queryAssignedNodes as h}from"@spectrum-web-components/base/src/decorators.js";import{FocusVisiblePolyfillMixin as u}from"@spectrum-web-components/shared/src/focus-visible.js";import{FieldGroup as p}from"@spectrum-web-components/field-group";import{Radio as f}from"./Radio.js";import{RovingTabindexController as v}from"@spectrum-web-components/reactive-controllers/src/RovingTabindex.js";export class RadioGroup extends u(p){constructor(){super(...arguments);this.name="";this.rovingTabindexController=new v(this,{focusInIndex:e=>e.findIndex(t=>this.selected?!t.disabled&&t.value===this.selected:!t.disabled),elementEnterAction:e=>{this._setSelected(e.value)},elements:()=>this.buttons,isFocusableElement:e=>!e.disabled});this.selected=""}get buttons(){return this.defaultNodes.filter(e=>e instanceof f)}focus(){this.rovingTabindexController.focus()}_setSelected(e){if(e===this.selected)return;const t=this.selected,i=e?this.querySelector(`sp-radio[value="${e}"]`):void 0;if(this.selected=i?e:"",!this.dispatchEvent(new Event("change",{cancelable:!0,bubbles:!0,composed:!0}))){this.selected=t;return}this.validateRadios()}willUpdate(e){if(!this.hasUpdated){this.setAttribute("role","radiogroup");const t=this.querySelector("sp-radio[checked]"),i=t?t.value:"";if(this.selected=i||this.selected,this.selected&&this.selected!==i){const s=this.querySelector(`sp-radio[value="${this.selected}"]`);s&&(s.checked=!0)}this.shadowRoot.addEventListener("change",s=>{s.stopPropagation();const o=s.target;this._setSelected(o.value)})}e.has("selected")&&this.validateRadios()}async validateRadios(){let e=!1;this.hasUpdated||await this.updateComplete,this.buttons.map(t=>{t.checked=this.selected===t.value,e=e||t.checked}),e||(this.selected="")}handleSlotchange(){this.rovingTabindexController.clearElementCache()}}a([r({type:String})],RadioGroup.prototype,"name",2),a([h()],RadioGroup.prototype,"defaultNodes",2),a([r({reflect:!0})],RadioGroup.prototype,"selected",2);
2
2
  //# sourceMappingURL=RadioGroup.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["RadioGroup.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 { PropertyValues } from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedNodes,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\nimport { FieldGroup } from '@spectrum-web-components/field-group';\n\nimport { Radio } from './Radio.js';\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\n\n/**\n * @element sp-radio-group\n *\n * @slot - The `sp-radio` elements to display/manage in the group.\n * @slot help-text - default or non-negative help text to associate to your form element\n * @slot negative-help-text - negative help text to associate to your form element when `invalid`\n *\n * @fires change - An alteration to the value of the element has been committed by the user.\n */\nexport class RadioGroup extends FocusVisiblePolyfillMixin(FieldGroup) {\n @property({ type: String })\n public name = '';\n\n @queryAssignedNodes()\n public defaultNodes!: Node[];\n\n public get buttons(): Radio[] {\n return this.defaultNodes.filter(\n (node) => (node as HTMLElement) instanceof Radio\n ) as Radio[];\n }\n\n rovingTabindexController = new RovingTabindexController<Radio>(this, {\n focusInIndex: (elements: Radio[]) => {\n return elements.findIndex((el) => {\n return this.selected\n ? !el.disabled && el.value === this.selected\n : !el.disabled;\n });\n },\n elementEnterAction: (el: Radio) => {\n this.selected = el.value;\n },\n elements: () => this.buttons,\n isFocusableElement: (el: Radio) => !el.disabled,\n });\n\n public override focus(): void {\n this.rovingTabindexController.focus();\n }\n\n private _setSelected(value: string): void {\n if (value === this.selected) {\n return;\n }\n const oldValue = this.selected;\n const radio = value\n ? (this.querySelector(`sp-radio[value=\"${value}\"]`) as Radio)\n : undefined;\n\n // If no matching radio, selected is reset to empty string\n this.selected = radio ? value : '';\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n composed: true,\n })\n );\n if (!applyDefault) {\n this.selected = oldValue;\n return;\n }\n this.validateRadios();\n }\n\n @property({ reflect: true })\n public selected = '';\n\n protected override willUpdate(changes: PropertyValues<this>): void {\n if (!this.hasUpdated) {\n this.setAttribute('role', 'radiogroup');\n const checkedRadio = this.querySelector(\n 'sp-radio[checked]'\n ) as Radio;\n const checkedRadioValue = checkedRadio ? checkedRadio.value : '';\n // Prefer the checked item over the selected value\n this.selected = checkedRadioValue || this.selected;\n // Validate the selected value is actual a radio option\n if (this.selected && this.selected !== checkedRadioValue) {\n const selectedRadio = this.querySelector(\n `sp-radio[value=\"${this.selected}\"]`\n ) as Radio;\n if (selectedRadio) {\n selectedRadio.checked = true;\n }\n }\n\n this.shadowRoot.addEventListener('change', (event: Event) => {\n event.stopPropagation();\n const target = event.target as Radio;\n this._setSelected(target.value);\n });\n }\n\n if (changes.has('selected')) {\n this.validateRadios();\n }\n }\n\n private async validateRadios(): Promise<void> {\n let validSelection = false;\n if (!this.hasUpdated) {\n // Initial validation has to happen after the initial render to allow\n // the buttons to be queries from the rendered <slot> element\n await this.updateComplete;\n }\n this.buttons.map((button) => {\n button.checked = this.selected === button.value;\n validSelection = validSelection || button.checked;\n });\n if (!validSelection) {\n this.selected = '';\n }\n }\n\n protected override handleSlotchange(): void {\n this.rovingTabindexController.clearElementCache();\n }\n}\n"],
5
- "mappings": "qNAaA,OACI,YAAAA,EACA,sBAAAC,MACG,kDACP,OAAS,6BAAAC,MAAiC,uDAC1C,OAAS,cAAAC,MAAkB,uCAE3B,OAAS,SAAAC,MAAa,aACtB,OAAS,4BAAAC,MAAgC,sEAWlC,aAAM,mBAAmBH,EAA0BC,CAAU,CAAE,CAA/D,kCAEH,KAAO,KAAO,GAWd,8BAA2B,IAAIE,EAAgC,KAAM,CACjE,aAAeC,GACJA,EAAS,UAAWC,GAChB,KAAK,SACN,CAACA,EAAG,UAAYA,EAAG,QAAU,KAAK,SAClC,CAACA,EAAG,QACb,EAEL,mBAAqBA,GAAc,CAC/B,KAAK,SAAWA,EAAG,KACvB,EACA,SAAU,IAAM,KAAK,QACrB,mBAAqBA,GAAc,CAACA,EAAG,QAC3C,CAAC,EAgCD,KAAO,SAAW,GAnDlB,IAAW,SAAmB,CAC1B,OAAO,KAAK,aAAa,OACpBC,GAAUA,aAAgCJ,CAC/C,CACJ,CAiBgB,OAAc,CAC1B,KAAK,yBAAyB,MAAM,CACxC,CAEQ,aAAaK,EAAqB,CACtC,GAAIA,IAAU,KAAK,SACf,OAEJ,MAAMC,EAAW,KAAK,SAChBC,EAAQF,EACP,KAAK,cAAc,mBAAmBA,CAAK,IAAI,EAChD,OAWN,GARA,KAAK,SAAWE,EAAQF,EAAQ,GAQ5B,CAPiB,KAAK,cACtB,IAAI,MAAM,SAAU,CAChB,WAAY,GACZ,QAAS,GACT,SAAU,EACd,CAAC,CACL,EACmB,CACf,KAAK,SAAWC,EAChB,MACJ,CACA,KAAK,eAAe,CACxB,CAKmB,WAAWE,EAAqC,CAC/D,GAAI,CAAC,KAAK,WAAY,CAClB,KAAK,aAAa,OAAQ,YAAY,EACtC,MAAMC,EAAe,KAAK,cACtB,mBACJ,EACMC,EAAoBD,EAAeA,EAAa,MAAQ,GAI9D,GAFA,KAAK,SAAWC,GAAqB,KAAK,SAEtC,KAAK,UAAY,KAAK,WAAaA,EAAmB,CACtD,MAAMC,EAAgB,KAAK,cACvB,mBAAmB,KAAK,QAAQ,IACpC,EACIA,IACAA,EAAc,QAAU,GAEhC,CAEA,KAAK,WAAW,iBAAiB,SAAWC,GAAiB,CACzDA,EAAM,gBAAgB,EACtB,MAAMC,EAASD,EAAM,OACrB,KAAK,aAAaC,EAAO,KAAK,CAClC,CAAC,CACL,CAEIL,EAAQ,IAAI,UAAU,GACtB,KAAK,eAAe,CAE5B,CAEA,MAAc,gBAAgC,CAC1C,IAAIM,EAAiB,GAChB,KAAK,YAGN,MAAM,KAAK,eAEf,KAAK,QAAQ,IAAKC,GAAW,CACzBA,EAAO,QAAU,KAAK,WAAaA,EAAO,MAC1CD,EAAiBA,GAAkBC,EAAO,OAC9C,CAAC,EACID,IACD,KAAK,SAAW,GAExB,CAEmB,kBAAyB,CACxC,KAAK,yBAAyB,kBAAkB,CACpD,CACJ,CA5GWE,EAAA,CADNpB,EAAS,CAAE,KAAM,MAAO,CAAC,GADjB,WAEF,oBAGAoB,EAAA,CADNnB,EAAmB,GAJX,WAKF,4BAqDAmB,EAAA,CADNpB,EAAS,CAAE,QAAS,EAAK,CAAC,GAzDlB,WA0DF",
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 { PropertyValues } from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedNodes,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\nimport { FieldGroup } from '@spectrum-web-components/field-group';\n\nimport { Radio } from './Radio.js';\nimport { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';\n\n/**\n * @element sp-radio-group\n *\n * @slot - The `sp-radio` elements to display/manage in the group.\n * @slot help-text - default or non-negative help text to associate to your form element\n * @slot negative-help-text - negative help text to associate to your form element when `invalid`\n *\n * @fires change - An alteration to the value of the element has been committed by the user.\n */\nexport class RadioGroup extends FocusVisiblePolyfillMixin(FieldGroup) {\n @property({ type: String })\n public name = '';\n\n @queryAssignedNodes()\n public defaultNodes!: Node[];\n\n public get buttons(): Radio[] {\n return this.defaultNodes.filter(\n (node) => (node as HTMLElement) instanceof Radio\n ) as Radio[];\n }\n\n rovingTabindexController = new RovingTabindexController<Radio>(this, {\n focusInIndex: (elements: Radio[]) => {\n return elements.findIndex((el) => {\n return this.selected\n ? !el.disabled && el.value === this.selected\n : !el.disabled;\n });\n },\n elementEnterAction: (el: Radio) => {\n this._setSelected(el.value);\n },\n elements: () => this.buttons,\n isFocusableElement: (el: Radio) => !el.disabled,\n });\n\n public override focus(): void {\n this.rovingTabindexController.focus();\n }\n\n private _setSelected(value: string): void {\n if (value === this.selected) {\n return;\n }\n const oldValue = this.selected;\n const radio = value\n ? (this.querySelector(`sp-radio[value=\"${value}\"]`) as Radio)\n : undefined;\n\n // If no matching radio, selected is reset to empty string\n this.selected = radio ? value : '';\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n composed: true,\n })\n );\n if (!applyDefault) {\n this.selected = oldValue;\n return;\n }\n this.validateRadios();\n }\n\n @property({ reflect: true })\n public selected = '';\n\n protected override willUpdate(changes: PropertyValues<this>): void {\n if (!this.hasUpdated) {\n this.setAttribute('role', 'radiogroup');\n const checkedRadio = this.querySelector(\n 'sp-radio[checked]'\n ) as Radio;\n const checkedRadioValue = checkedRadio ? checkedRadio.value : '';\n // Prefer the checked item over the selected value\n this.selected = checkedRadioValue || this.selected;\n // Validate the selected value is actual a radio option\n if (this.selected && this.selected !== checkedRadioValue) {\n const selectedRadio = this.querySelector(\n `sp-radio[value=\"${this.selected}\"]`\n ) as Radio;\n if (selectedRadio) {\n selectedRadio.checked = true;\n }\n }\n\n this.shadowRoot.addEventListener('change', (event: Event) => {\n event.stopPropagation();\n const target = event.target as Radio;\n this._setSelected(target.value);\n });\n }\n\n if (changes.has('selected')) {\n this.validateRadios();\n }\n }\n\n private async validateRadios(): Promise<void> {\n let validSelection = false;\n if (!this.hasUpdated) {\n // Initial validation has to happen after the initial render to allow\n // the buttons to be queries from the rendered <slot> element\n await this.updateComplete;\n }\n this.buttons.map((button) => {\n button.checked = this.selected === button.value;\n validSelection = validSelection || button.checked;\n });\n if (!validSelection) {\n this.selected = '';\n }\n }\n\n protected override handleSlotchange(): void {\n this.rovingTabindexController.clearElementCache();\n }\n}\n"],
5
+ "mappings": "qNAaA,OACI,YAAAA,EACA,sBAAAC,MACG,kDACP,OAAS,6BAAAC,MAAiC,uDAC1C,OAAS,cAAAC,MAAkB,uCAE3B,OAAS,SAAAC,MAAa,aACtB,OAAS,4BAAAC,MAAgC,sEAWlC,aAAM,mBAAmBH,EAA0BC,CAAU,CAAE,CAA/D,kCAEH,KAAO,KAAO,GAWd,8BAA2B,IAAIE,EAAgC,KAAM,CACjE,aAAeC,GACJA,EAAS,UAAWC,GAChB,KAAK,SACN,CAACA,EAAG,UAAYA,EAAG,QAAU,KAAK,SAClC,CAACA,EAAG,QACb,EAEL,mBAAqBA,GAAc,CAC/B,KAAK,aAAaA,EAAG,KAAK,CAC9B,EACA,SAAU,IAAM,KAAK,QACrB,mBAAqBA,GAAc,CAACA,EAAG,QAC3C,CAAC,EAgCD,KAAO,SAAW,GAnDlB,IAAW,SAAmB,CAC1B,OAAO,KAAK,aAAa,OACpBC,GAAUA,aAAgCJ,CAC/C,CACJ,CAiBgB,OAAc,CAC1B,KAAK,yBAAyB,MAAM,CACxC,CAEQ,aAAaK,EAAqB,CACtC,GAAIA,IAAU,KAAK,SACf,OAEJ,MAAMC,EAAW,KAAK,SAChBC,EAAQF,EACP,KAAK,cAAc,mBAAmBA,CAAK,IAAI,EAChD,OAWN,GARA,KAAK,SAAWE,EAAQF,EAAQ,GAQ5B,CAPiB,KAAK,cACtB,IAAI,MAAM,SAAU,CAChB,WAAY,GACZ,QAAS,GACT,SAAU,EACd,CAAC,CACL,EACmB,CACf,KAAK,SAAWC,EAChB,MACJ,CACA,KAAK,eAAe,CACxB,CAKmB,WAAWE,EAAqC,CAC/D,GAAI,CAAC,KAAK,WAAY,CAClB,KAAK,aAAa,OAAQ,YAAY,EACtC,MAAMC,EAAe,KAAK,cACtB,mBACJ,EACMC,EAAoBD,EAAeA,EAAa,MAAQ,GAI9D,GAFA,KAAK,SAAWC,GAAqB,KAAK,SAEtC,KAAK,UAAY,KAAK,WAAaA,EAAmB,CACtD,MAAMC,EAAgB,KAAK,cACvB,mBAAmB,KAAK,QAAQ,IACpC,EACIA,IACAA,EAAc,QAAU,GAEhC,CAEA,KAAK,WAAW,iBAAiB,SAAWC,GAAiB,CACzDA,EAAM,gBAAgB,EACtB,MAAMC,EAASD,EAAM,OACrB,KAAK,aAAaC,EAAO,KAAK,CAClC,CAAC,CACL,CAEIL,EAAQ,IAAI,UAAU,GACtB,KAAK,eAAe,CAE5B,CAEA,MAAc,gBAAgC,CAC1C,IAAIM,EAAiB,GAChB,KAAK,YAGN,MAAM,KAAK,eAEf,KAAK,QAAQ,IAAKC,GAAW,CACzBA,EAAO,QAAU,KAAK,WAAaA,EAAO,MAC1CD,EAAiBA,GAAkBC,EAAO,OAC9C,CAAC,EACID,IACD,KAAK,SAAW,GAExB,CAEmB,kBAAyB,CACxC,KAAK,yBAAyB,kBAAkB,CACpD,CACJ,CA5GWE,EAAA,CADNpB,EAAS,CAAE,KAAM,MAAO,CAAC,GADjB,WAEF,oBAGAoB,EAAA,CADNnB,EAAmB,GAJX,WAKF,4BAqDAmB,EAAA,CADNpB,EAAS,CAAE,QAAS,EAAK,CAAC,GAzDlB,WA0DF",
6
6
  "names": ["property", "queryAssignedNodes", "FocusVisiblePolyfillMixin", "FieldGroup", "Radio", "RovingTabindexController", "elements", "el", "node", "value", "oldValue", "radio", "changes", "checkedRadio", "checkedRadioValue", "selectedRadio", "event", "target", "validSelection", "button", "__decorateClass"]
7
7
  }
@@ -15,7 +15,9 @@ const styles = css`
15
15
  --spectrum-focus-indicator-color
16
16
  );--spectrum-radio-disabled-content-color:var(
17
17
  --spectrum-disabled-content-color
18
- );--spectrum-radio-disabled-border-color:var(--spectrum-gray-400);--spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);--spectrum-radio-emphasized-accent-color-hover:var(
18
+ );--spectrum-radio-disabled-border-color:var(
19
+ --spectrum-disabled-content-color
20
+ );--spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);--spectrum-radio-emphasized-accent-color-hover:var(
19
21
  --spectrum-accent-color-1000
20
22
  );--spectrum-radio-emphasized-accent-color-down:var(
21
23
  --spectrum-accent-color-1100
@@ -29,15 +31,7 @@ const styles = css`
29
31
  --spectrum-neutral-background-color-selected-down
30
32
  );--spectrum-radio-button-checked-border-color-focus:var(
31
33
  --spectrum-neutral-background-color-selected-focus
32
- );--spectrum-radio-line-height:var(--spectrum-line-height-100);--spectrum-radio-animation-duration:var(--spectrum-animation-duration-100);--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(
33
- --spectrum-radio-button-control-size-medium
34
- );--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(
35
- --spectrum-component-top-to-text-100
36
- );--spectrum-radio-label-bottom-to-text:var(
37
- --spectrum-component-bottom-to-text-100
38
- );--spectrum-radio-button-top-to-control:var(
39
- --spectrum-radio-button-top-to-control-medium
40
- );--spectrum-radio-font-size:var(--spectrum-font-size-100)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100)}:host([size=s]){--spectrum-radio-height:var(--spectrum-component-height-75);--spectrum-radio-button-control-size:var(
34
+ );--spectrum-radio-line-height:var(--spectrum-line-height-100);--spectrum-radio-animation-duration:var(--spectrum-animation-duration-100)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100)}:host([size=s]){--spectrum-radio-height:var(--spectrum-component-height-75);--spectrum-radio-button-control-size:var(
41
35
  --spectrum-radio-button-control-size-small
42
36
  );--spectrum-radio-text-to-control:var(--spectrum-text-to-control-75);--spectrum-radio-label-top-to-text:var(
43
37
  --spectrum-component-top-to-text-75
@@ -45,7 +39,7 @@ const styles = css`
45
39
  --spectrum-component-bottom-to-text-75
46
40
  );--spectrum-radio-button-top-to-control:var(
47
41
  --spectrum-radio-button-top-to-control-small
48
- );--spectrum-radio-font-size:var(--spectrum-font-size-75)}:host([size=m]){--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(
42
+ );--spectrum-radio-font-size:var(--spectrum-font-size-75)}:host{--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(
49
43
  --spectrum-radio-button-control-size-medium
50
44
  );--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(
51
45
  --spectrum-component-top-to-text-100
@@ -189,19 +183,19 @@ const styles = css`
189
183
  --highcontrast-radio-button-checked-border-color-default,var(
190
184
  --mod-radio-button-checked-border-color-default,var(--spectrum-radio-button-checked-border-color-default)
191
185
  )
192
- );border-width:calc(var(--spectrum-radio-button-control-size)/2 - var(--spectrum-radio-button-selection-indicator)/2)}#input.focus-visible+#button:after,:host(.focus-visible) #input+#button:after{border-color:var(
186
+ );border-width:calc(var(--spectrum-radio-button-control-size)/2 - var(--spectrum-radio-button-selection-indicator)/2)}#input.focus-visible+#button:after{border-color:var(
193
187
  --highcontrast-radio-focus-indicator-color,var(
194
188
  --mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)
195
189
  )
196
190
  );border-style:solid;border-width:var(
197
191
  --mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)
198
- );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input.focus-visible+#button:after,:host(.focus-visible) #input+#button:after{border-color:var(
192
+ );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input.focus-visible+#button:after{border-color:var(
199
193
  --highcontrast-radio-focus-indicator-color,var(
200
194
  --mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)
201
195
  )
202
196
  );border-style:solid;border-width:var(
203
197
  --mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)
204
- );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input:focus-visible+#button:after,:host(:focus-visible) #input+#button:after{border-color:var(
198
+ );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input:focus-visible+#button:after{border-color:var(
205
199
  --highcontrast-radio-focus-indicator-color,var(
206
200
  --mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)
207
201
  )
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["radio.css.ts"],
4
- "sourcesContent": ["/*\nCopyright 2023 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-radio-neutral-content-color:var(\n--spectrum-neutral-content-color-default\n);--spectrum-radio-neutral-content-color-hover:var(\n--spectrum-neutral-content-color-hover\n);--spectrum-radio-neutral-content-color-down:var(\n--spectrum-neutral-content-color-down\n);--spectrum-radio-neutral-content-color-focus:var(\n--spectrum-neutral-content-color-key-focus\n);--spectrum-radio-focus-indicator-thickness:var(\n--spectrum-focus-indicator-thickness\n);--spectrum-radio-focus-indicator-gap:var(--spectrum-focus-indicator-gap);--spectrum-radio-focus-indicator-color:var(\n--spectrum-focus-indicator-color\n);--spectrum-radio-disabled-content-color:var(\n--spectrum-disabled-content-color\n);--spectrum-radio-disabled-border-color:var(--spectrum-gray-400);--spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);--spectrum-radio-emphasized-accent-color-hover:var(\n--spectrum-accent-color-1000\n);--spectrum-radio-emphasized-accent-color-down:var(\n--spectrum-accent-color-1100\n);--spectrum-radio-emphasized-accent-color-focus:var(\n--spectrum-accent-color-1000\n);--spectrum-radio-border-width:var(--spectrum-border-width-200);--spectrum-radio-button-background-color:var(--spectrum-gray-75);--spectrum-radio-button-checked-border-color-default:var(\n--spectrum-neutral-background-color-selected-default\n);--spectrum-radio-button-checked-border-color-hover:var(\n--spectrum-neutral-background-color-selected-hover\n);--spectrum-radio-button-checked-border-color-down:var(\n--spectrum-neutral-background-color-selected-down\n);--spectrum-radio-button-checked-border-color-focus:var(\n--spectrum-neutral-background-color-selected-focus\n);--spectrum-radio-line-height:var(--spectrum-line-height-100);--spectrum-radio-animation-duration:var(--spectrum-animation-duration-100);--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-medium\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-100\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-100\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-medium\n);--spectrum-radio-font-size:var(--spectrum-font-size-100)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100)}:host([size=s]){--spectrum-radio-height:var(--spectrum-component-height-75);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-small\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-75);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-75\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-75\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-small\n);--spectrum-radio-font-size:var(--spectrum-font-size-75)}:host([size=m]){--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-medium\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-100\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-100\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-medium\n);--spectrum-radio-font-size:var(--spectrum-font-size-100)}:host([size=l]){--spectrum-radio-height:var(--spectrum-component-height-200);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-large\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-200);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-200\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-200\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-large\n);--spectrum-radio-font-size:var(--spectrum-font-size-200)}:host([size=xl]){--spectrum-radio-height:var(--spectrum-component-height-300);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-extra-large\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-300);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-300\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-300\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-extra-large\n);--spectrum-radio-font-size:var(--spectrum-font-size-300)}@media (forced-colors:active){:host{--highcontrast-radio-neutral-content-color:CanvasText;--highcontrast-radio-neutral-content-color-hover:CanvasText;--highcontrast-radio-neutral-content-color-down:CanvasText;--highcontrast-radio-neutral-content-color-focus:CanvasText;--highcontrast-radio-button-border-color-default:ButtonText;--highcontrast-radio-button-border-color-hover:Highlight;--highcontrast-radio-button-border-color-down:ButtonText;--highcontrast-radio-button-border-color-focus:Highlight;--highcontrast-radio-emphasized-accent-color:ButtonText;--highcontrast-radio-emphasized-accent-color-hover:Highlight;--highcontrast-radio-emphasized-accent-color-down:ButtonText;--highcontrast-radio-emphasized-accent-color-focus:Highlight;--highcontrast-radio-button-checked-border-color-default:Highlight;--highcontrast-radio-button-checked-border-color-hover:Highlight;--highcontrast-radio-button-checked-border-color-down:Highlight;--highcontrast-radio-button-checked-border-color-focus:Highlight;--highcontrast-radio-disabled-content-color:GrayText;--highcontrast-radio-disabled-border-color:GrayText;--highcontrast-radio-focus-indicator-color:CanvasText}#button:after{forced-color-adjust:none}}:host{align-items:flex-start;display:inline-flex;max-inline-size:100%;min-block-size:var(--mod-radio-height,var(--spectrum-radio-height));position:relative;vertical-align:top}:host(:hover) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-hover,var(\n--mod-radio-button-border-color-hover,var(--spectrum-radio-button-border-color-hover)\n)\n)}:host([checked]:hover) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-hover,var(\n--mod-radio-button-checked-border-color-hover,var(--spectrum-radio-button-checked-border-color-hover)\n)\n)}:host(:hover) #label{color:var(\n--highcontrast-radio-neutral-content-color-hover,var(\n--mod-radio-neutral-content-color-hover,var(--spectrum-radio-neutral-content-color-hover)\n)\n)}:host(:active) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-down,var(\n--mod-radio-button-border-color-down,var(--spectrum-radio-button-border-color-down)\n)\n)}:host(:active[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-down,var(\n--mod-radio-button-checked-border-color-down,var(--spectrum-radio-button-checked-border-color-down)\n)\n)}:host(:active) #label{color:var(\n--highcontrast-radio-neutral-content-color-down,var(\n--mod-radio-neutral-content-color-down,var(--spectrum-radio-neutral-content-color-down)\n)\n)}:host(.focus-visible) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-focus,var(\n--mod-radio-button-border-color-focus,var(--spectrum-radio-button-border-color-focus)\n)\n)}:host(.focus-visible) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-focus,var(\n--mod-radio-button-border-color-focus,var(--spectrum-radio-button-border-color-focus)\n)\n)}:host(:focus-visible) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-focus,var(\n--mod-radio-button-border-color-focus,var(--spectrum-radio-button-border-color-focus)\n)\n)}:host(.focus-visible) #button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}:host(.focus-visible) #button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}:host(:focus-visible) #button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}:host(.focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-focus,var(\n--mod-radio-button-checked-border-color-focus,var(--spectrum-radio-button-checked-border-color-focus)\n)\n)}:host(.focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-focus,var(\n--mod-radio-button-checked-border-color-focus,var(--spectrum-radio-button-checked-border-color-focus)\n)\n)}:host(:focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-focus,var(\n--mod-radio-button-checked-border-color-focus,var(--spectrum-radio-button-checked-border-color-focus)\n)\n)}:host(.focus-visible) #label{color:var(\n--highcontrast-radio-neutral-content-color-focus,var(\n--mod-radio-neutral-content-color-focus,var(--spectrum-radio-neutral-content-color-focus)\n)\n)}:host(.focus-visible) #label{color:var(\n--highcontrast-radio-neutral-content-color-focus,var(\n--mod-radio-neutral-content-color-focus,var(--spectrum-radio-neutral-content-color-focus)\n)\n)}:host(:focus-visible) #label{color:var(\n--highcontrast-radio-neutral-content-color-focus,var(\n--mod-radio-neutral-content-color-focus,var(--spectrum-radio-neutral-content-color-focus)\n)\n)}:host([invalid]) #label{color:var(\n--highcontrast-radio-neutral-content-color,var(\n--mod-radio-neutral-content-color,var(--spectrum-radio-neutral-content-color)\n)\n)}:host([readonly]) #input:read-only{cursor:auto}:host([readonly]) #button{clip:rect(1px,1px,1px,1px);bottom:100%;clip-path:inset(50%);position:fixed;right:100%}:host([readonly]),:host([readonly]) #label,:host([readonly][checked][disabled]) #input~#label,:host([readonly][disabled]) #input~#label{color:inherit;margin-inline-start:auto}:host([emphasized][checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color,var(\n--mod-radio-emphasized-accent-color,var(--spectrum-radio-emphasized-accent-color)\n)\n)}:host([emphasized][checked]:hover) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-hover,var(\n--mod-radio-emphasized-accent-color-hover,var(--spectrum-radio-emphasized-accent-color-hover)\n)\n)}:host([emphasized]:active[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-down,var(\n--mod-radio-emphasized-accent-color-down,var(--spectrum-radio-emphasized-accent-color-down)\n)\n)}:host([emphasized].focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-focus,var(\n--mod-radio-emphasized-accent-color-focus,var(--spectrum-radio-emphasized-accent-color-focus)\n)\n)}:host([emphasized].focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-focus,var(\n--mod-radio-emphasized-accent-color-focus,var(--spectrum-radio-emphasized-accent-color-focus)\n)\n)}:host([emphasized]:focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-focus,var(\n--mod-radio-emphasized-accent-color-focus,var(--spectrum-radio-emphasized-accent-color-focus)\n)\n)}:host([checked][disabled]) #input+#button:before,:host([disabled]) #input+#button:before{border-color:var(\n--highcontrast-radio-disabled-border-color,var(\n--mod-radio-disabled-border-color,var(--spectrum-radio-disabled-border-color)\n)\n)}:host([checked][disabled]) #input~#label,:host([disabled]) #input~#label{color:var(\n--highcontrast-radio-disabled-content-color,var(\n--mod-radio-disabled-content-color,var(--spectrum-radio-disabled-content-color)\n)\n)}#input{block-size:100%;box-sizing:border-box;cursor:pointer;font-family:inherit;font-size:100%;inline-size:100%;line-height:var(\n--mod-radio-line-height,var(--spectrum-radio-line-height)\n);margin:0;opacity:0;overflow:visible;padding:0;position:absolute;z-index:1}:host([disabled]) #input{cursor:default}:host([checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-default,var(\n--mod-radio-button-checked-border-color-default,var(--spectrum-radio-button-checked-border-color-default)\n)\n);border-width:calc(var(--spectrum-radio-button-control-size)/2 - var(--spectrum-radio-button-selection-indicator)/2)}#input.focus-visible+#button:after,:host(.focus-visible) #input+#button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input.focus-visible+#button:after,:host(.focus-visible) #input+#button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input:focus-visible+#button:after,:host(:focus-visible) #input+#button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#label{color:var(\n--highcontrast-radio-neutral-content-color,var(\n--mod-radio-neutral-content-color,var(--spectrum-radio-neutral-content-color)\n)\n);font-size:var(--mod-radio-font-size,var(--spectrum-radio-font-size));line-height:var(\n--mod-radio-line-height,var(--spectrum-radio-line-height)\n);margin-block-end:var(--spectrum-radio-label-bottom-to-text);margin-block-start:var(--spectrum-radio-label-top-to-text);margin-inline-start:var(\n--mod-radio-text-to-control,var(--spectrum-radio-text-to-control)\n);text-align:start;transition:color var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-in-out}#label:lang(ja),#label:lang(ko),#label:lang(zh){line-height:var(\n--mod-radio-line-height-cjk,var(--spectrum-radio-line-height-cjk)\n)}#button{block-size:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);box-sizing:border-box;flex-grow:0;flex-shrink:0;inline-size:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);margin-block-start:var(\n--mod-radio-button-top-to-control,var(--spectrum-radio-button-top-to-control)\n);position:relative}#button:before{background-color:var(\n--highcontrast-radio-button-background-color,var(\n--mod-radio-button-background-color,var(--spectrum-radio-button-background-color)\n)\n);border-color:var(\n--highcontrast-radio-button-border-color-default,var(\n--mod-radio-button-border-color-default,var(--spectrum-radio-button-border-color-default)\n)\n);border-radius:50%;border-style:solid;border-width:var(\n--mod-radio-border-width,var(--spectrum-radio-border-width)\n);box-sizing:border-box;content:\"\";display:block;height:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);position:absolute;transition:border var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-in-out,box-shadow var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-in-out;width:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);z-index:0}#button:after{border-radius:50%;content:\"\";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);transition:opacity var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-out,margin var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-out}:host{--spectrum-radio-button-border-color-default:var(\n--system-spectrum-radio-button-border-color-default\n);--spectrum-radio-button-border-color-hover:var(\n--system-spectrum-radio-button-border-color-hover\n);--spectrum-radio-button-border-color-down:var(\n--system-spectrum-radio-button-border-color-down\n);--spectrum-radio-button-border-color-focus:var(\n--system-spectrum-radio-button-border-color-focus\n)}:host([emphasized]){--spectrum-radio-button-checked-border-color-default:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-default\n);--spectrum-radio-button-checked-border-color-hover:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-hover\n);--spectrum-radio-button-checked-border-color-down:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-down\n);--spectrum-radio-button-checked-border-color-focus:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-focus\n)}:host{--spectrum-radio-label-margin-top:var(\n--spectrum-global-dimension-size-75,6px\n)}:host(:focus){outline:none}:host([disabled]){pointer-events:none}\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;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;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;AA2Qf,eAAe;",
4
+ "sourcesContent": ["/*\nCopyright 2023 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-radio-neutral-content-color:var(\n--spectrum-neutral-content-color-default\n);--spectrum-radio-neutral-content-color-hover:var(\n--spectrum-neutral-content-color-hover\n);--spectrum-radio-neutral-content-color-down:var(\n--spectrum-neutral-content-color-down\n);--spectrum-radio-neutral-content-color-focus:var(\n--spectrum-neutral-content-color-key-focus\n);--spectrum-radio-focus-indicator-thickness:var(\n--spectrum-focus-indicator-thickness\n);--spectrum-radio-focus-indicator-gap:var(--spectrum-focus-indicator-gap);--spectrum-radio-focus-indicator-color:var(\n--spectrum-focus-indicator-color\n);--spectrum-radio-disabled-content-color:var(\n--spectrum-disabled-content-color\n);--spectrum-radio-disabled-border-color:var(\n--spectrum-disabled-content-color\n);--spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);--spectrum-radio-emphasized-accent-color-hover:var(\n--spectrum-accent-color-1000\n);--spectrum-radio-emphasized-accent-color-down:var(\n--spectrum-accent-color-1100\n);--spectrum-radio-emphasized-accent-color-focus:var(\n--spectrum-accent-color-1000\n);--spectrum-radio-border-width:var(--spectrum-border-width-200);--spectrum-radio-button-background-color:var(--spectrum-gray-75);--spectrum-radio-button-checked-border-color-default:var(\n--spectrum-neutral-background-color-selected-default\n);--spectrum-radio-button-checked-border-color-hover:var(\n--spectrum-neutral-background-color-selected-hover\n);--spectrum-radio-button-checked-border-color-down:var(\n--spectrum-neutral-background-color-selected-down\n);--spectrum-radio-button-checked-border-color-focus:var(\n--spectrum-neutral-background-color-selected-focus\n);--spectrum-radio-line-height:var(--spectrum-line-height-100);--spectrum-radio-animation-duration:var(--spectrum-animation-duration-100)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100)}:host([size=s]){--spectrum-radio-height:var(--spectrum-component-height-75);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-small\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-75);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-75\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-75\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-small\n);--spectrum-radio-font-size:var(--spectrum-font-size-75)}:host{--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-medium\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-100\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-100\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-medium\n);--spectrum-radio-font-size:var(--spectrum-font-size-100)}:host([size=l]){--spectrum-radio-height:var(--spectrum-component-height-200);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-large\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-200);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-200\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-200\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-large\n);--spectrum-radio-font-size:var(--spectrum-font-size-200)}:host([size=xl]){--spectrum-radio-height:var(--spectrum-component-height-300);--spectrum-radio-button-control-size:var(\n--spectrum-radio-button-control-size-extra-large\n);--spectrum-radio-text-to-control:var(--spectrum-text-to-control-300);--spectrum-radio-label-top-to-text:var(\n--spectrum-component-top-to-text-300\n);--spectrum-radio-label-bottom-to-text:var(\n--spectrum-component-bottom-to-text-300\n);--spectrum-radio-button-top-to-control:var(\n--spectrum-radio-button-top-to-control-extra-large\n);--spectrum-radio-font-size:var(--spectrum-font-size-300)}@media (forced-colors:active){:host{--highcontrast-radio-neutral-content-color:CanvasText;--highcontrast-radio-neutral-content-color-hover:CanvasText;--highcontrast-radio-neutral-content-color-down:CanvasText;--highcontrast-radio-neutral-content-color-focus:CanvasText;--highcontrast-radio-button-border-color-default:ButtonText;--highcontrast-radio-button-border-color-hover:Highlight;--highcontrast-radio-button-border-color-down:ButtonText;--highcontrast-radio-button-border-color-focus:Highlight;--highcontrast-radio-emphasized-accent-color:ButtonText;--highcontrast-radio-emphasized-accent-color-hover:Highlight;--highcontrast-radio-emphasized-accent-color-down:ButtonText;--highcontrast-radio-emphasized-accent-color-focus:Highlight;--highcontrast-radio-button-checked-border-color-default:Highlight;--highcontrast-radio-button-checked-border-color-hover:Highlight;--highcontrast-radio-button-checked-border-color-down:Highlight;--highcontrast-radio-button-checked-border-color-focus:Highlight;--highcontrast-radio-disabled-content-color:GrayText;--highcontrast-radio-disabled-border-color:GrayText;--highcontrast-radio-focus-indicator-color:CanvasText}#button:after{forced-color-adjust:none}}:host{align-items:flex-start;display:inline-flex;max-inline-size:100%;min-block-size:var(--mod-radio-height,var(--spectrum-radio-height));position:relative;vertical-align:top}:host(:hover) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-hover,var(\n--mod-radio-button-border-color-hover,var(--spectrum-radio-button-border-color-hover)\n)\n)}:host([checked]:hover) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-hover,var(\n--mod-radio-button-checked-border-color-hover,var(--spectrum-radio-button-checked-border-color-hover)\n)\n)}:host(:hover) #label{color:var(\n--highcontrast-radio-neutral-content-color-hover,var(\n--mod-radio-neutral-content-color-hover,var(--spectrum-radio-neutral-content-color-hover)\n)\n)}:host(:active) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-down,var(\n--mod-radio-button-border-color-down,var(--spectrum-radio-button-border-color-down)\n)\n)}:host(:active[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-down,var(\n--mod-radio-button-checked-border-color-down,var(--spectrum-radio-button-checked-border-color-down)\n)\n)}:host(:active) #label{color:var(\n--highcontrast-radio-neutral-content-color-down,var(\n--mod-radio-neutral-content-color-down,var(--spectrum-radio-neutral-content-color-down)\n)\n)}:host(.focus-visible) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-focus,var(\n--mod-radio-button-border-color-focus,var(--spectrum-radio-button-border-color-focus)\n)\n)}:host(.focus-visible) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-focus,var(\n--mod-radio-button-border-color-focus,var(--spectrum-radio-button-border-color-focus)\n)\n)}:host(:focus-visible) #button:before{border-color:var(\n--highcontrast-radio-button-border-color-focus,var(\n--mod-radio-button-border-color-focus,var(--spectrum-radio-button-border-color-focus)\n)\n)}:host(.focus-visible) #button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}:host(.focus-visible) #button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}:host(:focus-visible) #button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}:host(.focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-focus,var(\n--mod-radio-button-checked-border-color-focus,var(--spectrum-radio-button-checked-border-color-focus)\n)\n)}:host(.focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-focus,var(\n--mod-radio-button-checked-border-color-focus,var(--spectrum-radio-button-checked-border-color-focus)\n)\n)}:host(:focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-focus,var(\n--mod-radio-button-checked-border-color-focus,var(--spectrum-radio-button-checked-border-color-focus)\n)\n)}:host(.focus-visible) #label{color:var(\n--highcontrast-radio-neutral-content-color-focus,var(\n--mod-radio-neutral-content-color-focus,var(--spectrum-radio-neutral-content-color-focus)\n)\n)}:host(.focus-visible) #label{color:var(\n--highcontrast-radio-neutral-content-color-focus,var(\n--mod-radio-neutral-content-color-focus,var(--spectrum-radio-neutral-content-color-focus)\n)\n)}:host(:focus-visible) #label{color:var(\n--highcontrast-radio-neutral-content-color-focus,var(\n--mod-radio-neutral-content-color-focus,var(--spectrum-radio-neutral-content-color-focus)\n)\n)}:host([invalid]) #label{color:var(\n--highcontrast-radio-neutral-content-color,var(\n--mod-radio-neutral-content-color,var(--spectrum-radio-neutral-content-color)\n)\n)}:host([readonly]) #input:read-only{cursor:auto}:host([readonly]) #button{clip:rect(1px,1px,1px,1px);bottom:100%;clip-path:inset(50%);position:fixed;right:100%}:host([readonly]),:host([readonly]) #label,:host([readonly][checked][disabled]) #input~#label,:host([readonly][disabled]) #input~#label{color:inherit;margin-inline-start:auto}:host([emphasized][checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color,var(\n--mod-radio-emphasized-accent-color,var(--spectrum-radio-emphasized-accent-color)\n)\n)}:host([emphasized][checked]:hover) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-hover,var(\n--mod-radio-emphasized-accent-color-hover,var(--spectrum-radio-emphasized-accent-color-hover)\n)\n)}:host([emphasized]:active[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-down,var(\n--mod-radio-emphasized-accent-color-down,var(--spectrum-radio-emphasized-accent-color-down)\n)\n)}:host([emphasized].focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-focus,var(\n--mod-radio-emphasized-accent-color-focus,var(--spectrum-radio-emphasized-accent-color-focus)\n)\n)}:host([emphasized].focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-focus,var(\n--mod-radio-emphasized-accent-color-focus,var(--spectrum-radio-emphasized-accent-color-focus)\n)\n)}:host([emphasized]:focus-visible[checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-emphasized-accent-color-focus,var(\n--mod-radio-emphasized-accent-color-focus,var(--spectrum-radio-emphasized-accent-color-focus)\n)\n)}:host([checked][disabled]) #input+#button:before,:host([disabled]) #input+#button:before{border-color:var(\n--highcontrast-radio-disabled-border-color,var(\n--mod-radio-disabled-border-color,var(--spectrum-radio-disabled-border-color)\n)\n)}:host([checked][disabled]) #input~#label,:host([disabled]) #input~#label{color:var(\n--highcontrast-radio-disabled-content-color,var(\n--mod-radio-disabled-content-color,var(--spectrum-radio-disabled-content-color)\n)\n)}#input{block-size:100%;box-sizing:border-box;cursor:pointer;font-family:inherit;font-size:100%;inline-size:100%;line-height:var(\n--mod-radio-line-height,var(--spectrum-radio-line-height)\n);margin:0;opacity:0;overflow:visible;padding:0;position:absolute;z-index:1}:host([disabled]) #input{cursor:default}:host([checked]) #input+#button:before{border-color:var(\n--highcontrast-radio-button-checked-border-color-default,var(\n--mod-radio-button-checked-border-color-default,var(--spectrum-radio-button-checked-border-color-default)\n)\n);border-width:calc(var(--spectrum-radio-button-control-size)/2 - var(--spectrum-radio-button-selection-indicator)/2)}#input.focus-visible+#button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input.focus-visible+#button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input:focus-visible+#button:after{border-color:var(\n--highcontrast-radio-focus-indicator-color,var(\n--mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)\n)\n);border-style:solid;border-width:var(\n--mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)\n);height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#label{color:var(\n--highcontrast-radio-neutral-content-color,var(\n--mod-radio-neutral-content-color,var(--spectrum-radio-neutral-content-color)\n)\n);font-size:var(--mod-radio-font-size,var(--spectrum-radio-font-size));line-height:var(\n--mod-radio-line-height,var(--spectrum-radio-line-height)\n);margin-block-end:var(--spectrum-radio-label-bottom-to-text);margin-block-start:var(--spectrum-radio-label-top-to-text);margin-inline-start:var(\n--mod-radio-text-to-control,var(--spectrum-radio-text-to-control)\n);text-align:start;transition:color var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-in-out}#label:lang(ja),#label:lang(ko),#label:lang(zh){line-height:var(\n--mod-radio-line-height-cjk,var(--spectrum-radio-line-height-cjk)\n)}#button{block-size:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);box-sizing:border-box;flex-grow:0;flex-shrink:0;inline-size:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);margin-block-start:var(\n--mod-radio-button-top-to-control,var(--spectrum-radio-button-top-to-control)\n);position:relative}#button:before{background-color:var(\n--highcontrast-radio-button-background-color,var(\n--mod-radio-button-background-color,var(--spectrum-radio-button-background-color)\n)\n);border-color:var(\n--highcontrast-radio-button-border-color-default,var(\n--mod-radio-button-border-color-default,var(--spectrum-radio-button-border-color-default)\n)\n);border-radius:50%;border-style:solid;border-width:var(\n--mod-radio-border-width,var(--spectrum-radio-border-width)\n);box-sizing:border-box;content:\"\";display:block;height:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);position:absolute;transition:border var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-in-out,box-shadow var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-in-out;width:var(\n--mod-radio-button-control-size,var(--spectrum-radio-button-control-size)\n);z-index:0}#button:after{border-radius:50%;content:\"\";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);transition:opacity var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-out,margin var(\n--mod-radio-animation-duration,var(--spectrum-radio-animation-duration)\n) ease-out}:host{--spectrum-radio-button-border-color-default:var(\n--system-spectrum-radio-button-border-color-default\n);--spectrum-radio-button-border-color-hover:var(\n--system-spectrum-radio-button-border-color-hover\n);--spectrum-radio-button-border-color-down:var(\n--system-spectrum-radio-button-border-color-down\n);--spectrum-radio-button-border-color-focus:var(\n--system-spectrum-radio-button-border-color-focus\n)}:host([emphasized]){--spectrum-radio-button-checked-border-color-default:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-default\n);--spectrum-radio-button-checked-border-color-hover:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-hover\n);--spectrum-radio-button-checked-border-color-down:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-down\n);--spectrum-radio-button-checked-border-color-focus:var(\n--system-spectrum-radio-emphasized-button-checked-border-color-focus\n)}:host{--spectrum-radio-label-margin-top:var(\n--spectrum-global-dimension-size-75,6px\n)}:host(:focus){outline:none}:host([disabled]){pointer-events:none}\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;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;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;AAqQf,eAAe;",
6
6
  "names": []
7
7
  }
package/src/radio.css.js CHANGED
@@ -13,7 +13,9 @@
13
13
  --spectrum-focus-indicator-color
14
14
  );--spectrum-radio-disabled-content-color:var(
15
15
  --spectrum-disabled-content-color
16
- );--spectrum-radio-disabled-border-color:var(--spectrum-gray-400);--spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);--spectrum-radio-emphasized-accent-color-hover:var(
16
+ );--spectrum-radio-disabled-border-color:var(
17
+ --spectrum-disabled-content-color
18
+ );--spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);--spectrum-radio-emphasized-accent-color-hover:var(
17
19
  --spectrum-accent-color-1000
18
20
  );--spectrum-radio-emphasized-accent-color-down:var(
19
21
  --spectrum-accent-color-1100
@@ -27,15 +29,7 @@
27
29
  --spectrum-neutral-background-color-selected-down
28
30
  );--spectrum-radio-button-checked-border-color-focus:var(
29
31
  --spectrum-neutral-background-color-selected-focus
30
- );--spectrum-radio-line-height:var(--spectrum-line-height-100);--spectrum-radio-animation-duration:var(--spectrum-animation-duration-100);--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(
31
- --spectrum-radio-button-control-size-medium
32
- );--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(
33
- --spectrum-component-top-to-text-100
34
- );--spectrum-radio-label-bottom-to-text:var(
35
- --spectrum-component-bottom-to-text-100
36
- );--spectrum-radio-button-top-to-control:var(
37
- --spectrum-radio-button-top-to-control-medium
38
- );--spectrum-radio-font-size:var(--spectrum-font-size-100)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100)}:host([size=s]){--spectrum-radio-height:var(--spectrum-component-height-75);--spectrum-radio-button-control-size:var(
32
+ );--spectrum-radio-line-height:var(--spectrum-line-height-100);--spectrum-radio-animation-duration:var(--spectrum-animation-duration-100)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100)}:host([size=s]){--spectrum-radio-height:var(--spectrum-component-height-75);--spectrum-radio-button-control-size:var(
39
33
  --spectrum-radio-button-control-size-small
40
34
  );--spectrum-radio-text-to-control:var(--spectrum-text-to-control-75);--spectrum-radio-label-top-to-text:var(
41
35
  --spectrum-component-top-to-text-75
@@ -43,7 +37,7 @@
43
37
  --spectrum-component-bottom-to-text-75
44
38
  );--spectrum-radio-button-top-to-control:var(
45
39
  --spectrum-radio-button-top-to-control-small
46
- );--spectrum-radio-font-size:var(--spectrum-font-size-75)}:host([size=m]){--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(
40
+ );--spectrum-radio-font-size:var(--spectrum-font-size-75)}:host{--spectrum-radio-height:var(--spectrum-component-height-100);--spectrum-radio-button-control-size:var(
47
41
  --spectrum-radio-button-control-size-medium
48
42
  );--spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);--spectrum-radio-label-top-to-text:var(
49
43
  --spectrum-component-top-to-text-100
@@ -187,19 +181,19 @@
187
181
  --highcontrast-radio-button-checked-border-color-default,var(
188
182
  --mod-radio-button-checked-border-color-default,var(--spectrum-radio-button-checked-border-color-default)
189
183
  )
190
- );border-width:calc(var(--spectrum-radio-button-control-size)/2 - var(--spectrum-radio-button-selection-indicator)/2)}#input.focus-visible+#button:after,:host(.focus-visible) #input+#button:after{border-color:var(
184
+ );border-width:calc(var(--spectrum-radio-button-control-size)/2 - var(--spectrum-radio-button-selection-indicator)/2)}#input.focus-visible+#button:after{border-color:var(
191
185
  --highcontrast-radio-focus-indicator-color,var(
192
186
  --mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)
193
187
  )
194
188
  );border-style:solid;border-width:var(
195
189
  --mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)
196
- );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input.focus-visible+#button:after,:host(.focus-visible) #input+#button:after{border-color:var(
190
+ );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input.focus-visible+#button:after{border-color:var(
197
191
  --highcontrast-radio-focus-indicator-color,var(
198
192
  --mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)
199
193
  )
200
194
  );border-style:solid;border-width:var(
201
195
  --mod-radio-focus-indicator-thickness,var(--spectrum-radio-focus-indicator-thickness)
202
- );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input:focus-visible+#button:after,:host(:focus-visible) #input+#button:after{border-color:var(
196
+ );height:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2);width:calc(var(--spectrum-radio-button-control-size) + var(--spectrum-radio-focus-indicator-gap)*2)}#input:focus-visible+#button:after{border-color:var(
203
197
  --highcontrast-radio-focus-indicator-color,var(
204
198
  --mod-radio-focus-indicator-color,var(--spectrum-radio-focus-indicator-color)
205
199
  )