@warp-ds/elements 2.5.0-next.1 → 2.5.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.
Files changed (186) hide show
  1. package/dist/custom-elements.json +80 -2535
  2. package/dist/index.d.ts +51 -1279
  3. package/dist/packages/icon/icon.d.ts +0 -5
  4. package/dist/packages/icon/icon.js +24 -98
  5. package/dist/packages/icon/icon.js.map +7 -0
  6. package/dist/web-types.json +36 -683
  7. package/package.json +12 -60
  8. package/dist/packages/checkbox/checkbox.d.ts +0 -66
  9. package/dist/packages/checkbox/checkbox.js +0 -2591
  10. package/dist/packages/checkbox/checkbox.js.map +0 -7
  11. package/dist/packages/checkbox/checkbox.react.stories.d.ts +0 -12
  12. package/dist/packages/checkbox/checkbox.react.stories.js +0 -10
  13. package/dist/packages/checkbox/checkbox.stories.d.ts +0 -12
  14. package/dist/packages/checkbox/checkbox.stories.js +0 -26
  15. package/dist/packages/checkbox/react.d.ts +0 -5
  16. package/dist/packages/checkbox/react.js +0 -15
  17. package/dist/packages/checkbox/styles.d.ts +0 -0
  18. package/dist/packages/checkbox/styles.js +0 -0
  19. package/dist/packages/checkbox-group/checkbox-group.d.ts +0 -10
  20. package/dist/packages/checkbox-group/checkbox-group.js +0 -7
  21. package/dist/packages/checkbox-group/checkbox-group.js.map +0 -7
  22. package/dist/packages/checkbox-group/react.d.ts +0 -2
  23. package/dist/packages/checkbox-group/react.js +0 -11
  24. package/dist/packages/dead-toggle/dead-toggle.d.ts +0 -17
  25. package/dist/packages/dead-toggle/dead-toggle.js +0 -2547
  26. package/dist/packages/dead-toggle/dead-toggle.js.map +0 -7
  27. package/dist/packages/dead-toggle/dead-toggle.react.stories.d.ts +0 -15
  28. package/dist/packages/dead-toggle/dead-toggle.react.stories.js +0 -34
  29. package/dist/packages/dead-toggle/dead-toggle.stories.d.ts +0 -14
  30. package/dist/packages/dead-toggle/dead-toggle.stories.js +0 -45
  31. package/dist/packages/dead-toggle/dead-toggle.test.d.ts +0 -1
  32. package/dist/packages/dead-toggle/dead-toggle.test.js +0 -9
  33. package/dist/packages/dead-toggle/react.d.ts +0 -2
  34. package/dist/packages/dead-toggle/react.js +0 -11
  35. package/dist/packages/pagination/locales/da/messages.d.mts +0 -1
  36. package/dist/packages/pagination/locales/da/messages.mjs +0 -1
  37. package/dist/packages/pagination/locales/en/messages.d.mts +0 -1
  38. package/dist/packages/pagination/locales/en/messages.mjs +0 -1
  39. package/dist/packages/pagination/locales/fi/messages.d.mts +0 -1
  40. package/dist/packages/pagination/locales/fi/messages.mjs +0 -1
  41. package/dist/packages/pagination/locales/nb/messages.d.mts +0 -1
  42. package/dist/packages/pagination/locales/nb/messages.mjs +0 -1
  43. package/dist/packages/pagination/locales/sv/messages.d.mts +0 -1
  44. package/dist/packages/pagination/locales/sv/messages.mjs +0 -1
  45. package/dist/packages/pagination/pagination.d.ts +0 -32
  46. package/dist/packages/pagination/pagination.js +0 -2500
  47. package/dist/packages/pagination/pagination.js.map +0 -7
  48. package/dist/packages/pagination/pagination.react.stories.d.ts +0 -21
  49. package/dist/packages/pagination/pagination.react.stories.js +0 -45
  50. package/dist/packages/pagination/pagination.stories.d.ts +0 -14
  51. package/dist/packages/pagination/pagination.stories.js +0 -56
  52. package/dist/packages/pagination/pagination.test.d.ts +0 -1
  53. package/dist/packages/pagination/pagination.test.js +0 -76
  54. package/dist/packages/pagination/react.d.ts +0 -5
  55. package/dist/packages/pagination/react.js +0 -15
  56. package/dist/packages/pagination/styles.d.ts +0 -1
  57. package/dist/packages/pagination/styles.js +0 -2
  58. package/dist/packages/radio/base-element.d.ts +0 -46
  59. package/dist/packages/radio/base-element.js +0 -100
  60. package/dist/packages/radio/custom-error-validator.d.ts +0 -6
  61. package/dist/packages/radio/custom-error-validator.js +0 -22
  62. package/dist/packages/radio/form-associated-element.d.ts +0 -103
  63. package/dist/packages/radio/form-associated-element.js +0 -282
  64. package/dist/packages/radio/host-styles.d.ts +0 -1
  65. package/dist/packages/radio/host-styles.js +0 -12
  66. package/dist/packages/radio/invalid.d.ts +0 -8
  67. package/dist/packages/radio/invalid.js +0 -5
  68. package/dist/packages/radio/math.d.ts +0 -1
  69. package/dist/packages/radio/math.js +0 -4
  70. package/dist/packages/radio/radio-styles.d.ts +0 -0
  71. package/dist/packages/radio/radio-styles.js +0 -0
  72. package/dist/packages/radio/radio.d.ts +0 -38
  73. package/dist/packages/radio/radio.js +0 -2562
  74. package/dist/packages/radio/radio.js.map +0 -7
  75. package/dist/packages/radio/radio.react.stories.d.ts +0 -9
  76. package/dist/packages/radio/radio.react.stories.js +0 -10
  77. package/dist/packages/radio/radio.stories.d.ts +0 -15
  78. package/dist/packages/radio/radio.stories.js +0 -61
  79. package/dist/packages/radio/react.d.ts +0 -2
  80. package/dist/packages/radio/react.js +0 -11
  81. package/dist/packages/radio/required-validator.d.ts +0 -11
  82. package/dist/packages/radio/required-validator.js +0 -34
  83. package/dist/packages/radio/slot.d.ts +0 -20
  84. package/dist/packages/radio/slot.js +0 -71
  85. package/dist/packages/radio/watch.d.ts +0 -26
  86. package/dist/packages/radio/watch.js +0 -39
  87. package/dist/packages/radio-group/radio-group-styles.d.ts +0 -1
  88. package/dist/packages/radio-group/radio-group-styles.js +0 -59
  89. package/dist/packages/radio-group/radio-group.d.ts +0 -72
  90. package/dist/packages/radio-group/radio-group.js +0 -2648
  91. package/dist/packages/radio-group/radio-group.js.map +0 -7
  92. package/dist/packages/radio-group/react.d.ts +0 -7
  93. package/dist/packages/radio-group/react.js +0 -17
  94. package/dist/packages/slider/Slider.d.ts +0 -2
  95. package/dist/packages/slider/Slider.js +0 -8
  96. package/dist/packages/slider/index.d.ts +0 -2
  97. package/dist/packages/slider/index.js +0 -2
  98. package/dist/packages/slider/locales/da/messages.d.mts +0 -1
  99. package/dist/packages/slider/locales/da/messages.mjs +0 -1
  100. package/dist/packages/slider/locales/en/messages.d.mts +0 -1
  101. package/dist/packages/slider/locales/en/messages.mjs +0 -1
  102. package/dist/packages/slider/locales/fi/messages.d.mts +0 -1
  103. package/dist/packages/slider/locales/fi/messages.mjs +0 -1
  104. package/dist/packages/slider/locales/nb/messages.d.mts +0 -1
  105. package/dist/packages/slider/locales/nb/messages.mjs +0 -1
  106. package/dist/packages/slider/locales/sv/messages.d.mts +0 -1
  107. package/dist/packages/slider/locales/sv/messages.mjs +0 -1
  108. package/dist/packages/slider/react.d.ts +0 -3
  109. package/dist/packages/slider/react.js +0 -13
  110. package/dist/packages/slider/slider.d.ts +0 -55
  111. package/dist/packages/slider/slider.js +0 -2632
  112. package/dist/packages/slider/slider.js.map +0 -7
  113. package/dist/packages/slider/slider.react.stories.d.ts +0 -19
  114. package/dist/packages/slider/slider.react.stories.js +0 -140
  115. package/dist/packages/slider/slider.stories.d.ts +0 -22
  116. package/dist/packages/slider/slider.stories.js +0 -405
  117. package/dist/packages/slider/slider.test.d.ts +0 -5
  118. package/dist/packages/slider/slider.test.js +0 -112
  119. package/dist/packages/slider/styles/w-slider.styles.d.ts +0 -1
  120. package/dist/packages/slider/styles/w-slider.styles.js +0 -148
  121. package/dist/packages/slider/styles.d.ts +0 -1
  122. package/dist/packages/slider/styles.js +0 -2
  123. package/dist/packages/slider-thumb/SliderThumb.d.ts +0 -2
  124. package/dist/packages/slider-thumb/SliderThumb.js +0 -8
  125. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +0 -2
  126. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +0 -3
  127. package/dist/packages/slider-thumb/react.d.ts +0 -6
  128. package/dist/packages/slider-thumb/react.js +0 -15
  129. package/dist/packages/slider-thumb/slider-thumb.d.ts +0 -63
  130. package/dist/packages/slider-thumb/slider-thumb.js +0 -2748
  131. package/dist/packages/slider-thumb/slider-thumb.js.map +0 -7
  132. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.d.ts +0 -1
  133. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +0 -175
  134. package/dist/packages/step/locales/da/messages.d.mts +0 -1
  135. package/dist/packages/step/locales/da/messages.mjs +0 -1
  136. package/dist/packages/step/locales/en/messages.d.mts +0 -1
  137. package/dist/packages/step/locales/en/messages.mjs +0 -1
  138. package/dist/packages/step/locales/fi/messages.d.mts +0 -1
  139. package/dist/packages/step/locales/fi/messages.mjs +0 -1
  140. package/dist/packages/step/locales/nb/messages.d.mts +0 -1
  141. package/dist/packages/step/locales/nb/messages.mjs +0 -1
  142. package/dist/packages/step/locales/sv/messages.d.mts +0 -1
  143. package/dist/packages/step/locales/sv/messages.mjs +0 -1
  144. package/dist/packages/step/react.d.ts +0 -2
  145. package/dist/packages/step/react.js +0 -11
  146. package/dist/packages/step/step.d.ts +0 -22
  147. package/dist/packages/step/step.js +0 -2461
  148. package/dist/packages/step/step.js.map +0 -7
  149. package/dist/packages/step-indicator/index.d.ts +0 -2
  150. package/dist/packages/step-indicator/index.js +0 -2
  151. package/dist/packages/step-indicator/react.d.ts +0 -3
  152. package/dist/packages/step-indicator/react.js +0 -13
  153. package/dist/packages/step-indicator/step-indicator.d.ts +0 -14
  154. package/dist/packages/step-indicator/step-indicator.js +0 -2445
  155. package/dist/packages/step-indicator/step-indicator.js.map +0 -7
  156. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +0 -15
  157. package/dist/packages/step-indicator/stepindicator.react.stories.js +0 -112
  158. package/dist/packages/step-indicator/stepindicator.stories.d.ts +0 -13
  159. package/dist/packages/step-indicator/stepindicator.stories.js +0 -173
  160. package/dist/packages/step-indicator/styles.d.ts +0 -1
  161. package/dist/packages/step-indicator/styles.js +0 -2
  162. package/dist/packages/textarea/locales/da/messages.d.mts +0 -1
  163. package/dist/packages/textarea/locales/da/messages.mjs +0 -1
  164. package/dist/packages/textarea/locales/en/messages.d.mts +0 -1
  165. package/dist/packages/textarea/locales/en/messages.mjs +0 -1
  166. package/dist/packages/textarea/locales/fi/messages.d.mts +0 -1
  167. package/dist/packages/textarea/locales/fi/messages.mjs +0 -1
  168. package/dist/packages/textarea/locales/nb/messages.d.mts +0 -1
  169. package/dist/packages/textarea/locales/nb/messages.mjs +0 -1
  170. package/dist/packages/textarea/locales/sv/messages.d.mts +0 -1
  171. package/dist/packages/textarea/locales/sv/messages.mjs +0 -1
  172. package/dist/packages/textarea/react.d.ts +0 -11
  173. package/dist/packages/textarea/react.js +0 -21
  174. package/dist/packages/textarea/styles.d.ts +0 -1
  175. package/dist/packages/textarea/styles.js +0 -2
  176. package/dist/packages/textarea/textarea.d.ts +0 -49
  177. package/dist/packages/textarea/textarea.js +0 -2475
  178. package/dist/packages/textarea/textarea.js.map +0 -7
  179. package/dist/packages/textarea/textarea.react.stories.d.ts +0 -33
  180. package/dist/packages/textarea/textarea.react.stories.js +0 -41
  181. package/dist/packages/textarea/textarea.stories.d.ts +0 -19
  182. package/dist/packages/textarea/textarea.stories.js +0 -85
  183. package/dist/packages/textarea/textarea.test.d.ts +0 -1
  184. package/dist/packages/textarea/textarea.test.js +0 -68
  185. package/dist/packages/toggle-styles.d.ts +0 -1
  186. package/dist/packages/toggle-styles.js +0 -108
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/radio-group/radio-group.ts", "../../../packages/radio/form-associated-element.ts", "../../../packages/radio/base-element.ts", "../../../packages/radio/host-styles.ts", "../../../packages/radio/custom-error-validator.ts", "../../../packages/radio/invalid.ts", "../../../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js", "../../../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js", "../../../packages/radio/math.ts", "../../../packages/radio/radio.ts", "../../../packages/styles.ts", "../../../packages/toggle-styles.ts", "../../../packages/radio/required-validator.ts", "../../../packages/radio/slot.ts", "../../../packages/radio-group/radio-group-styles.ts"],
4
- "sourcesContent": ["import type { PropertyValues } from 'lit';\nimport { html } from 'lit';\n\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { BaseFormAssociatedElement } from '../radio/form-associated-element.js';\nimport { uniqueId } from '../radio/math.js';\nimport '../radio/radio.js';\nimport type { WRadio } from '../radio/radio.js';\nimport { RequiredValidator } from '../radio/required-validator.js';\nimport { HasSlotController } from '../radio/slot.js';\n// eslint-disable-next-line\n// @ts-ignore\nimport { styles } from './radio-group-styles.js';\n\n/**\n * @slot label - Alternative to the `label` attribute should you need custom HTML.\n */\nexport class WRadioGroup extends BaseFormAssociatedElement {\n static css = [styles];\n\n static get validators() {\n const validators = [\n RequiredValidator({\n validationElement: Object.assign(document.createElement('input'), {\n required: true,\n type: 'radio',\n // we need an id that's guaranteed to be unique; users will never see this\n name: uniqueId('__w-radio'),\n }),\n }),\n ];\n return [...super.validators, ...validators];\n }\n\n private readonly hasSlotController = new HasSlotController(this, 'hint', 'label');\n\n @state() hasRadioButtons = false;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n /**\n * The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\n * instead.\n */\n @property() label = '';\n\n /** The radio groups's hint. If you need to display HTML, use the `hint` slot instead. */\n @property({ attribute: 'hint' }) hint = '';\n\n /** The name of the radio group, submitted as a name/value pair with form data. */\n @property({ reflect: true }) name: string | null = null;\n\n /** Disables the radio group and all child radios. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The orientation in which to show radio items. */\n @property({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'vertical';\n\n private _value: string | null = null;\n\n get value() {\n if (this.valueHasChanged) {\n return this._value;\n }\n\n return this._value ?? this.defaultValue;\n }\n\n /** The current value of the radio group, submitted as a name/value pair with form data. */\n @state()\n set value(val: string | number | null) {\n if (typeof val === 'number') val = String(val);\n this.valueHasChanged = true;\n this._value = val;\n }\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @property({ attribute: 'value', reflect: true }) defaultValue: string | null = this.getAttribute('value') || null;\n\n /** The radio group's size. This size will be applied to all child radios and radio buttons, except when explicitly overridden. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Ensures a child radio is checked before allowing the containing form to submit. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /**\n * Used for SSR. if true, will show slotted label on initial render.\n */\n @property({ type: Boolean, attribute: 'with-label' }) withLabel = false;\n\n /**\n * Used for SSR. if true, will show slotted hint on initial render.\n */\n @property({ type: Boolean, attribute: 'with-hint' }) withHint = false;\n\n //\n // We need this because if we don't have it, FormValidation yells at us that it's \"not focusable\".\n // If we use `this.tabIndex = -1` we can't focus the radio inside.\n //\n static shadowRootOptions = { ...BaseFormAssociatedElement.shadowRootOptions, delegatesFocus: true };\n\n constructor() {\n super();\n this.addEventListener('keydown', this.handleKeyDown);\n this.addEventListener('click', this.handleRadioClick);\n }\n\n /**\n * We use the first available radio as the validationTarget similar to native HTML that shows the validation popup on\n * the first radio element.\n */\n get validationTarget() {\n const radio = this.querySelector<WRadio>(':is(w-radio):not([disabled])');\n if (!radio) return undefined;\n\n return radio;\n }\n\n updated(changedProperties: PropertyValues<this>) {\n if (changedProperties.has('disabled') || changedProperties.has('value')) {\n this.syncRadioElements();\n }\n }\n\n formResetCallback(...args: Parameters<BaseFormAssociatedElement['formResetCallback']>) {\n this.value = this.defaultValue;\n\n super.formResetCallback(...args);\n\n this.syncRadioElements();\n }\n\n private handleRadioClick = (e: Event) => {\n const clickedRadio = (e.target as HTMLElement).closest<WRadio>('w-radio');\n /* eslint-disable */\n if (!clickedRadio || clickedRadio.disabled || (clickedRadio as any).forceDisabled || this.disabled) {\n return;\n }\n\n const oldValue = this.value;\n this.value = clickedRadio.value;\n clickedRadio.checked = true;\n\n const radios = this.getAllRadios();\n for (const radio of radios) {\n if (clickedRadio === radio) {\n continue;\n }\n\n radio.checked = false;\n radio.setAttribute('tabindex', '-1');\n }\n\n if (this.value !== oldValue) {\n this.updateComplete.then(() => {\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n });\n }\n };\n\n private getAllRadios() {\n return [...this.querySelectorAll<WRadio>('w-radio')];\n }\n\n private handleLabelClick() {\n this.focus();\n }\n\n private async syncRadioElements() {\n const radios = this.getAllRadios();\n let hasRadioButtons = false;\n\n // Add data attributes to support styling\n radios.forEach((radio, index) => {\n if (radio.appearance === 'button') hasRadioButtons = true;\n radio.setAttribute('size', this.size);\n radio.toggleAttribute('data-w-radio-horizontal', this.orientation !== 'vertical');\n radio.toggleAttribute('data-w-radio-vertical', this.orientation === 'vertical');\n radio.toggleAttribute('data-w-radio-first', index === 0);\n radio.toggleAttribute('data-w-radio-inner', index !== 0 && index !== radios.length - 1);\n radio.toggleAttribute('data-w-radio-last', index === radios.length - 1);\n\n // Set forceDisabled state based on radio group's disabled state\n (radio as WRadio).forceDisabled = this.disabled;\n });\n\n // If at least one radio button exists, we assume it's a radio button group\n this.hasRadioButtons = hasRadioButtons;\n\n await Promise.all(\n radios.map(async (radio) => {\n await radio.updateComplete;\n\n if (!radio.disabled && radio.value === this.value) {\n radio.checked = true;\n } else {\n radio.checked = false;\n }\n }),\n );\n\n // Manage tabIndex based on disabled state and checked status\n if (this.disabled) {\n // If radio group is disabled, all radios should not be tabbable\n radios.forEach((radio) => {\n radio.tabIndex = -1;\n });\n } else {\n // Normal tabbing behavior\n const enabledRadios = radios.filter((radio) => !radio.disabled);\n const checkedRadio = enabledRadios.find((radio) => radio.checked);\n\n if (enabledRadios.length > 0) {\n if (checkedRadio) {\n // If there's a checked radio, it should be tabbable\n enabledRadios.forEach((radio) => {\n radio.tabIndex = radio.checked ? 0 : -1;\n });\n } else {\n // If no radio is checked, first enabled radio should be tabbable\n enabledRadios.forEach((radio, index) => {\n radio.tabIndex = index === 0 ? 0 : -1;\n });\n }\n }\n\n // Disabled radios should never be tabbable\n radios\n .filter((radio) => radio.disabled)\n .forEach((radio) => {\n radio.tabIndex = -1;\n });\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' '].includes(event.key) || this.disabled) {\n return;\n }\n\n const radios = this.getAllRadios().filter((radio) => !radio.disabled);\n\n if (radios.length <= 0) {\n return;\n }\n\n event.preventDefault();\n\n const oldValue = this.value;\n\n const checkedRadio = radios.find((radio) => radio.checked) ?? radios[0];\n const incr = event.key === ' ' ? 0 : ['ArrowUp', 'ArrowLeft'].includes(event.key) ? -1 : 1;\n let index = radios.indexOf(checkedRadio) + incr;\n\n if (!index) index = 0;\n\n if (index < 0) {\n index = radios.length - 1;\n }\n\n if (index > radios.length - 1) {\n index = 0;\n }\n\n const hasRadioButtons = radios.some((radio) => radio.tagName.toLowerCase() === 'w-radio-button');\n\n this.getAllRadios().forEach((radio) => {\n radio.checked = false;\n\n if (!hasRadioButtons) {\n radio.setAttribute('tabindex', '-1');\n }\n });\n\n this.value = radios[index].value;\n radios[index].checked = true;\n\n if (!hasRadioButtons) {\n radios[index].setAttribute('tabindex', '0');\n radios[index].focus();\n } else {\n radios[index].shadowRoot?.querySelector('button')?.focus();\n }\n\n if (this.value !== oldValue) {\n this.updateComplete.then(() => {\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n });\n }\n\n event.preventDefault();\n }\n\n /** Sets focus on the radio group. */\n public focus(options?: FocusOptions) {\n if (this.disabled) return;\n\n const radios = this.getAllRadios();\n const checked = radios.find((radio) => radio.checked);\n const firstEnabledRadio = radios.find((radio) => !radio.disabled);\n const radioToFocus = checked || firstEnabledRadio;\n\n // Call focus for the checked radio. If no radio is checked, focus the first one that isn't disabled.\n if (radioToFocus) {\n radioToFocus.focus(options);\n }\n }\n\n render() {\n const hasLabelSlot = this.hasUpdated ? this.hasSlotController.test('label') : this.withLabel;\n const hasHintSlot = this.hasUpdated ? this.hasSlotController.test('hint') : this.withHint;\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasHint = this.hint ? true : !!hasHintSlot;\n\n return html`\n <fieldset\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control-radio-group': true,\n 'form-control-has-label': hasLabel,\n 'has-radio-buttons': this.hasRadioButtons,\n })}\n role=\"radiogroup\"\n aria-labelledby=\"label\"\n aria-describedby=\"hint\"\n aria-errormessage=\"error-message\"\n aria-orientation=${this.orientation}>\n <label\n part=\"form-control-label\"\n id=\"label\"\n class=\"label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}>\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n <slot part=\"form-control-input\" @slotchange=${this.syncRadioElements}></slot>\n\n <slot\n id=\"hint\"\n name=\"hint\"\n part=\"hint\"\n class=${classMap({\n 'has-slotted': hasHint,\n })}\n aria-hidden=${hasHint ? 'false' : 'true'}\n >${this.hint}</slot\n >\n </fieldset>\n `;\n }\n}\n\nif (!customElements.get('w-radio-group')) {\n customElements.define('w-radio-group', WRadioGroup);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'w-radio-group': WRadioGroup;\n }\n}\n", "import { isServer, LitElement } from 'lit';\n\nimport { property } from 'lit/decorators.js';\n\nimport BaseElement from './base-element.js';\nimport { CustomErrorValidator } from './custom-error-validator.js';\nimport { WInvalidEvent } from './invalid';\n\nexport interface Validator<T extends BaseFormAssociatedElement = BaseFormAssociatedElement> {\n observedAttributes?: string[];\n checkValidity: (element: T) => {\n message: string;\n isValid: boolean;\n invalidKeys: Exclude<keyof ValidityState, 'valid'>[];\n };\n message?: string | ((element: T) => string);\n}\n\nexport interface BaseFormControl extends BaseElement {\n // Form attributes\n name: null | string;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n checked?: boolean;\n defaultSelected?: boolean;\n selected?: boolean;\n form?: string | null;\n\n value?: unknown;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n\n // Form properties\n hasInteracted: boolean;\n valueHasChanged?: boolean;\n\n /** Convenience API for `setCustomValidity()` */\n customError: null | string;\n}\n\n// setFormValue omitted so that we can use `setValue`\nexport class BaseFormAssociatedElement\n extends BaseElement\n implements Omit<ElementInternals, 'form' | 'setFormValue'>, BaseFormControl\n{\n static formAssociated = true;\n\n /**\n * Validators are static because they have `observedAttributes`, essentially attributes to \"watch\"\n * for changes. Whenever these attributes change, we want to be notified and update the validator.\n */\n static get validators(): Validator[] {\n return [CustomErrorValidator()];\n }\n\n // Append all Validator \"observedAttributes\" into the \"observedAttributes\" so they can run.\n static get observedAttributes() {\n const parentAttrs = new Set(super.observedAttributes || []);\n\n for (const validator of this.validators) {\n if (!validator.observedAttributes) {\n continue;\n }\n\n for (const attr of validator.observedAttributes) {\n parentAttrs.add(attr);\n }\n }\n\n return [...parentAttrs];\n }\n\n // Form attributes\n /** The name of the input, submitted as a name/value pair with form data. */\n @property({ reflect: true }) name: string | null = null;\n\n /** Disables the form control. */\n @property({ type: Boolean }) disabled = false;\n\n required = false;\n\n assumeInteractionOn: string[] = ['input'];\n\n // Additional\n input?: (HTMLElement & { value: unknown }) | HTMLInputElement | HTMLTextAreaElement;\n\n validators: Validator[] = [];\n\n // Should these be private?\n @property({ state: true, attribute: false }) valueHasChanged = false;\n @property({ state: true, attribute: false }) hasInteracted = false;\n\n // This works around a limitation in Safari. It is a hacky way for us to preserve custom errors generated by the user.\n @property({ attribute: 'custom-error', reflect: true }) customError: string | null = null;\n\n private emittedEvents: string[] = [];\n\n constructor() {\n super();\n\n if (!isServer) {\n this.addEventListener('invalid', this.emitInvalid);\n }\n }\n // this bullshit makes no sense but tsc is angry about it\n // this needs both 'private' and 'typeof' or it will be angry and we don't know why\n // eslint-disable-next-line\n // @ts-ignore\n private states: typeof CustomStateSet;\n\n connectedCallback() {\n super.connectedCallback();\n this.updateValidity();\n\n // Lazily evaluate after the constructor to allow people to override the `assumeInteractionOn`\n this.assumeInteractionOn.forEach((event) => {\n this.addEventListener(event, this.handleInteraction);\n });\n }\n\n firstUpdated(...args: Parameters<LitElement['firstUpdated']>) {\n super.firstUpdated(...args);\n this.updateValidity();\n }\n\n emitInvalid = (e: Event) => {\n if (e.target !== this) return;\n\n // An \"invalid\" event counts as interacted, this is usually triggered by a button \"submitting\"\n this.hasInteracted = true;\n this.dispatchEvent(new WInvalidEvent());\n };\n\n protected willUpdate(changedProperties: Parameters<LitElement['willUpdate']>[0]) {\n if (!isServer && changedProperties.has('customError')) {\n // We use null because it we really don't want it to show up in the attributes because `custom-error` does reflect\n if (!this.customError) {\n this.customError = null;\n }\n this.setCustomValidity(this.customError || '');\n }\n\n if (changedProperties.has('value') || changedProperties.has('disabled')) {\n // @ts-expect-error Some components will use an accessors, other use a property, so we don't want to limit them.\n const value = this.value as unknown;\n\n // Accounts for the snowflake case on `<wa-select>`\n if (Array.isArray(value)) {\n if (this.name) {\n const formData = new FormData();\n for (const val of value) {\n formData.append(this.name, val as string);\n }\n this.setValue(formData, formData);\n }\n } else {\n this.setValue(value as FormData | string | File | null, value as FormData | string | File | null);\n }\n }\n\n if (changedProperties.has('disabled')) {\n this.customStates.set('disabled', this.disabled);\n\n if (this.hasAttribute('disabled') || (!isServer && !this.matches(':disabled'))) {\n this.toggleAttribute('disabled', this.disabled);\n }\n }\n\n this.updateValidity();\n super.willUpdate(changedProperties);\n }\n\n private handleInteraction = (event: Event) => {\n const emittedEvents = this.emittedEvents;\n if (!emittedEvents.includes(event.type)) {\n emittedEvents.push(event.type);\n }\n\n // Mark it as user-interacted as soon as all associated events have been emitted\n if (emittedEvents.length === this.assumeInteractionOn?.length) {\n this.hasInteracted = true;\n }\n };\n\n get labels() {\n return this.internals.labels;\n }\n\n getForm() {\n return this.internals.form;\n }\n\n @property({ attribute: false, state: true, type: Object })\n get validity() {\n return this.internals.validity;\n }\n\n // Not sure if this supports `novalidate`. Will need to test.\n get willValidate() {\n return this.internals.willValidate;\n }\n\n get validationMessage() {\n return this.internals.validationMessage;\n }\n\n checkValidity() {\n this.updateValidity();\n return this.internals.checkValidity();\n }\n\n reportValidity() {\n this.updateValidity();\n // This seems reasonable. `reportValidity()` is kind of like \"we expect you to have interacted\"\n this.hasInteracted = true;\n return this.internals.reportValidity();\n }\n\n /**\n * Override this to change where constraint validation popups are anchored.\n */\n get validationTarget(): undefined | HTMLElement {\n return (this.input || undefined) as undefined | HTMLElement;\n }\n\n setValidity(...args: Parameters<typeof this.internals.setValidity>) {\n const flags = args[0];\n const message = args[1];\n let anchor = args[2];\n\n if (!anchor) {\n anchor = this.validationTarget;\n }\n\n this.internals.setValidity(flags, message, anchor || undefined);\n this.requestUpdate('validity');\n this.setCustomStates();\n }\n\n setCustomStates() {\n const required = Boolean(this.required);\n const isValid = this.internals.validity.valid;\n const hasInteracted = this.hasInteracted;\n\n this.customStates.set('required', required);\n this.customStates.set('optional', !required);\n this.customStates.set('invalid', !isValid);\n this.customStates.set('valid', isValid);\n this.customStates.set('user-invalid', !isValid && hasInteracted);\n this.customStates.set('user-valid', isValid && hasInteracted);\n }\n\n /**\n * Do not use this when creating a \"Validator\". This is intended for end users of components.\n * We track manually defined custom errors so we don't clear them on accident in our validators.\n *\n */\n setCustomValidity(message: string) {\n if (!message) {\n // We use null because it we really don't want it to show up in the attributes because `custom-error` does reflect\n this.customError = null;\n this.setValidity({});\n return;\n }\n\n this.customError = message;\n this.setValidity({ customError: true }, message, this.validationTarget);\n }\n\n formResetCallback() {\n this.resetValidity();\n this.hasInteracted = false;\n this.valueHasChanged = false;\n this.emittedEvents = [];\n this.updateValidity();\n }\n\n formDisabledCallback(isDisabled: boolean) {\n this.disabled = isDisabled;\n\n this.updateValidity();\n }\n\n /**\n * Called when the browser is trying to restore element\u2019s state to state in which case reason is \"restore\", or when\n * the browser is trying to fulfill autofill on behalf of user in which case reason is \"autocomplete\". In the case of\n * \"restore\", state is a string, File, or FormData object previously set as the second argument to setFormValue.\n */\n formStateRestoreCallback(state: string | File | FormData | null, reason: 'autocomplete' | 'restore') {\n // @ts-expect-error We purposely do not have a value property. It makes things hard to extend.\n this.value = state;\n\n if (reason === 'restore') {\n this.resetValidity();\n }\n\n this.updateValidity();\n }\n\n setValue(...args: Parameters<typeof this.internals.setFormValue>) {\n const [value, state] = args;\n\n this.internals.setFormValue(value, state);\n }\n\n get allValidators() {\n const staticValidators = (this.constructor as typeof BaseFormAssociatedElement).validators || [];\n\n const validators = this.validators || [];\n return [...staticValidators, ...validators];\n }\n\n /**\n * Reset validity is a way of removing manual custom errors and native validation.\n */\n resetValidity() {\n this.setCustomValidity('');\n this.setValidity({});\n }\n\n updateValidity() {\n if (\n this.disabled ||\n this.hasAttribute('disabled') ||\n !this.willValidate //\n ) {\n this.resetValidity();\n\n return;\n }\n\n const validators = this.allValidators;\n\n if (!validators?.length) {\n // If there's no validators, we do nothing. We also don't want to mess with custom errors, so we just stop here.\n return;\n }\n\n type ValidityKey = { -readonly [P in keyof ValidityState]: ValidityState[P] };\n\n const flags: Partial<ValidityKey> = {\n // Don't trust custom errors from the Browser. Safari breaks the spec.\n customError: Boolean(this.customError),\n };\n\n const formControl = this.validationTarget || this.input || undefined;\n\n let finalMessage = '';\n\n for (const validator of validators) {\n const { isValid, message, invalidKeys } = validator.checkValidity(this);\n\n if (isValid) {\n continue;\n }\n\n if (!finalMessage) {\n finalMessage = message;\n }\n\n if (invalidKeys?.length >= 0) {\n (invalidKeys as (keyof ValidityState)[]).forEach((str) => (flags[str] = true));\n }\n }\n\n // This is a workaround for preserving custom errors\n if (!finalMessage) {\n finalMessage = this.validationMessage;\n }\n\n this.setValidity(flags, finalMessage, formControl);\n }\n}\n", "// eslint-disable-next-line\n// @ts-nocheck\nimport type { CSSResult, CSSResultGroup } from 'lit';\nimport { LitElement, unsafeCSS } from 'lit';\n\nimport { property } from 'lit/decorators.js';\n\nimport { styles as hostStyles } from './host-styles';\n\n// Augment Lit's module\ndeclare module 'lit' {\n interface PropertyDeclaration {\n /**\n * Specifies the property\u2019s default value\n */\n /* eslint-disable */\n default?: any;\n /* eslint-disable */\n initial?: any;\n }\n}\n\nexport default class BaseElement extends LitElement {\n /**\n * One or more CSS files to include in the component's shadow root. Host styles are automatically prepended. We use\n * this instead of Lit's styles property because we're importing CSS files as strings and need to convert them using\n * unsafeCSS.\n */\n static css?: CSSResultGroup | CSSResult | string | (CSSResult | string)[];\n\n /**\n * Override the default styles property to fetch and convert string CSS files. Components can override this behavior\n * by setting their own `static styles = []` property.\n */\n static get styles(): CSSResultGroup {\n const styles = Array.isArray(this.css) ? this.css : this.css ? [this.css] : [];\n return [hostStyles, ...styles].map((style) => (typeof style === 'string' ? unsafeCSS(style) : style));\n }\n\n #hasRecordedInitialProperties = false;\n initialReflectedProperties: Map<string, unknown> = new Map();\n internals: ElementInternals;\n\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n constructor() {\n super();\n\n try {\n this.internals = this.attachInternals();\n } catch {\n /* Need to tell people if they need a polyfill. */\n\n console.error('Element internals are not supported in your browser. Consider using a polyfill');\n }\n\n this.customStates.set('wa-defined', true);\n\n const Self = this.constructor as typeof BaseElement;\n for (const [property, spec] of Self.elementProperties) {\n if (spec.default === 'inherit' && spec.initial !== undefined && typeof property === 'string') {\n this.customStates.set(`initial-${property}-${spec.initial}`, true);\n }\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (!this.#hasRecordedInitialProperties) {\n (this.constructor as typeof BaseElement).elementProperties.forEach((obj, prop: keyof typeof this & string) => {\n if (obj.reflect && this[prop] != null) {\n this.initialReflectedProperties.set(prop, this[prop]);\n }\n });\n\n this.#hasRecordedInitialProperties = true;\n }\n\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n protected willUpdate(changedProperties: Parameters<LitElement['willUpdate']>[0]): void {\n super.willUpdate(changedProperties);\n\n // Run the morph fixing *after* willUpdate.\n this.initialReflectedProperties.forEach((value, prop: string & keyof typeof this) => {\n // If a prop changes to `null`, we assume this happens via an attribute changing to `null`.\n\n if (changedProperties.has(prop) && this[prop] == null) {\n // Silly type gymnastics to appease the compiler.\n (this as Record<string, unknown>)[prop] = value;\n }\n });\n }\n\n /**\n * Methods for setting and checking custom states.\n */\n public customStates = {\n /** Adds or removes the specified custom state. */\n set: (customState: string, active: boolean) => {\n if (!this.internals?.states) return;\n if (active) {\n this.internals.states.add(customState);\n } else {\n this.internals.states.delete(customState);\n }\n },\n\n /** Determines whether or not the element currently has the specified state. */\n has: (customState: string) => {\n if (!this.internals?.states) return false;\n return this.internals.states.has(customState);\n },\n };\n\n /**\n * Given a native event, this function cancels it and dispatches it again from the host element using the desired\n * event options.\n */\n relayNativeEvent(event: Event, eventOptions?: EventInit) {\n event.stopImmediatePropagation();\n\n this.dispatchEvent(\n new (event.constructor as typeof Event)(event.type, {\n ...event,\n ...eventOptions,\n }),\n );\n }\n}\n", "import { css } from 'lit';\n\nexport const styles = css`\n :host {\n box-sizing: border-box !important;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit !important;\n }\n`;\n", "import type { Validator } from './form-associated-element';\n\n/**\n * This validator is for if you have an exact copy of your element in the shadow DOM. Rather than needing\n * custom translations and error messages, you can simply rely on the element \"formControl\" in your shadow dom.\n */\nexport const CustomErrorValidator = (): Validator => {\n return {\n observedAttributes: ['custom-error'],\n checkValidity(element) {\n const validity: ReturnType<Validator['checkValidity']> = {\n message: '',\n isValid: true,\n invalidKeys: [],\n };\n\n if (element.customError) {\n validity.message = element.customError;\n validity.isValid = false;\n validity.invalidKeys = ['customError'];\n }\n\n return validity;\n },\n };\n};\n", "export class WInvalidEvent extends Event {\n constructor() {\n super('w-invalid', { bubbles: true, cancelable: false, composed: true });\n }\n}\n\ndeclare global {\n interface GlobalEventHandlersEventMap {\n 'wa-invalid': WInvalidEvent;\n }\n}\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n", "import { nanoid } from 'nanoid';\n\nexport function uniqueId(prefix = '') {\n return `${prefix}${nanoid()}`;\n}\n", "import type { PropertyValues } from 'lit';\nimport { html } from 'lit';\n\nimport { property, state } from 'lit/decorators.js';\nimport { reset } from '../styles';\n// eslint-disable-next-line\n// @ts-ignore\nimport { toggleStyles } from '../toggle-styles';\nimport { BaseFormAssociatedElement } from './form-associated-element';\n\nexport class WRadio extends BaseFormAssociatedElement {\n static css = [reset, toggleStyles];\n\n @state() checked = false;\n\n /** @internal Used by radio group to force disable radios while preserving their original disabled state. */\n @state() forceDisabled = false;\n\n /**\n * The string pointing to a form's id.\n */\n @property({ reflect: true }) form: string | null = null;\n\n /** The radio's value. When selected, the radio group will receive this value. */\n @property({ reflect: true }) value: string;\n\n /** The radio's value. When selected, the radio group will receive this value. */\n @property({ reflect: true }) appearance: 'default' | 'button' | 'clickable' = 'default';\n\n /**\n * The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\n * attribute can typically be omitted.\n */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Disables the radio. */\n @property({ type: Boolean }) disabled = false;\n\n constructor() {\n super();\n this.addEventListener('click', this.handleClick);\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.setInitialAttributes();\n }\n\n private setInitialAttributes() {\n this.setAttribute('role', 'radio');\n this.tabIndex = 0;\n this.setAttribute('aria-disabled', this.disabled || this.forceDisabled ? 'true' : 'false');\n }\n\n updated(changedProperties: PropertyValues<this>) {\n super.updated(changedProperties);\n\n if (changedProperties.has('checked')) {\n this.customStates.set('checked', this.checked);\n this[this.checked ? 'setAttribute' : 'removeAttribute']('checked-ui', '');\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n // Only set tabIndex if not disabled\n if (!this.disabled && !this.forceDisabled) {\n this.tabIndex = this.checked ? 0 : -1;\n }\n }\n\n if (changedProperties.has('disabled') || changedProperties.has('forceDisabled')) {\n const effectivelyDisabled = this.disabled || this.forceDisabled;\n this.customStates.set('disabled', effectivelyDisabled);\n this[effectivelyDisabled ? 'setAttribute' : 'removeAttribute']('disabled-ui', '');\n this.setAttribute('aria-disabled', effectivelyDisabled ? 'true' : 'false');\n\n // Set tabIndex based on disabled state\n if (effectivelyDisabled) {\n this.tabIndex = -1;\n } else {\n // Restore proper tabIndex - this will be managed by the radio group\n this.tabIndex = this.checked ? 0 : -1;\n }\n }\n }\n\n /**\n * @override\n */\n setValue(): void {\n // We override `setValue` because we don't want to set form values from here. We want to do that in \"RadioGroup\" itself.\n }\n\n // Update the handleClick method (around line 75)\n private handleClick = () => {\n if (!this.disabled && !this.forceDisabled) {\n this.checked = true;\n }\n };\n\n render() {\n return html`\n <div class=\"wrapper\">\n <div part=\"control\" class=\"control\"></div>\n <slot part=\"label\" class=\"label\"></slot>\n </div>\n `;\n }\n}\n\nif (!customElements.get('w-radio')) {\n customElements.define('w-radio', WRadio);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'w-radio': WRadio;\n }\n}\n", "import { css } from 'lit';\n\nexport const reset = css`\n *,\n :before,\n :after {\n box-sizing: border-box;\n border-style: solid;\n border-width: 0;\n border-color: var(--w-s-color-border);\n }\n html {\n font-size: 62.5%;\n }\n body {\n background-color: var(--w-s-color-background);\n min-height: 100%;\n margin: 0;\n overflow-y: scroll;\n }\n body,\n :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n -webkit-tap-highlight-color: transparent;\n font-family: var(--w-font-family);\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n color: var(--w-s-color-text);\n }\n hr {\n color: inherit;\n border-top-width: 1px;\n height: 0;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: 700;\n }\n a {\n cursor: pointer;\n color: var(--w-s-color-text-link);\n text-decoration: none;\n }\n a:hover,\n a:focus,\n a:active {\n text-decoration: underline;\n }\n a:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: 1px;\n }\n b,\n strong {\n font-weight: 700;\n }\n code,\n kbd,\n samp,\n pre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n Liberation Mono,\n Courier New,\n monospace;\n font-size: 1em;\n }\n sub,\n sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n }\n button,\n select {\n text-transform: none;\n }\n button,\n [type='button'],\n [type='reset'],\n [type='submit'] {\n -webkit-appearance: button;\n }\n :-moz-focusring {\n outline: auto;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n progress {\n vertical-align: baseline;\n }\n ::-webkit-inner-spin-button {\n height: auto;\n }\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n }\n summary {\n display: list-item;\n }\n blockquote,\n dl,\n dd,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hr,\n figure,\n p,\n pre {\n margin: 0;\n }\n fieldset {\n margin: 0;\n padding: 0;\n }\n legend {\n padding: 0;\n }\n ol,\n ul,\n menu {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n textarea {\n resize: vertical;\n }\n input::placeholder,\n textarea::placeholder {\n opacity: 1;\n color: var(--w-s-color-text-placeholder);\n }\n button,\n [role='button'] {\n cursor: pointer;\n }\n :disabled {\n cursor: default;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n vertical-align: middle;\n display: block;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n h1 {\n font-size: var(--w-font-size-xxl);\n line-height: var(--w-line-height-xxl);\n }\n h2 {\n font-size: var(--w-font-size-xl);\n line-height: var(--w-line-height-xl);\n }\n h3 {\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l);\n }\n h4 {\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n }\n h5 {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n }\n dt,\n dd {\n margin: 0 16px;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n ul,\n ol,\n dl,\n p,\n blockquote {\n margin: 0 0 8px;\n }\n [hidden] {\n display: none !important;\n }\n [tabindex='-1']:focus:not(:focus-visible) {\n outline: none;\n }\n legend {\n float: left;\n width: 100%;\n margin: 0;\n padding: 0;\n display: table;\n }\n legend + * {\n clear: both;\n }\n fieldset {\n border: 0;\n min-width: 0;\n margin: 0;\n padding: 0.01em 0 0;\n }\n body:not(:-moz-handler-blocked) fieldset {\n display: table-cell;\n }\n svg {\n pointer-events: none;\n }\n`;\nexport const components = css`*, :before, :after {\n --w-rotate: 0;\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-scale-x: 1;\n --w-scale-y: 1;\n --w-scale-z: 1;\n --w-skew-x: 0;\n --w-skew-y: 0;\n --w-translate-x: 0;\n --w-translate-y: 0;\n --w-translate-z: 0\n }\n\n .h4, .t4 {\n font-weight: 700;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m)\n }\n\n .t3 {\n font-weight: 700;\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l)\n }\n\n @media (min-width: 480px) {\n .sm\\\\:h3 {\n font-weight: 700;\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l)\n }\n }\n\n .text-center {\n text-align: center\n }\n\n .before\\\\:text-center:before {\n text-align: center\n }\n\n .text-left {\n text-align: left\n }\n\n .text-right {\n text-align: right\n }\n\n .align-middle {\n vertical-align: middle\n }\n\n .animate-inprogress {\n background-image: linear-gradient(135deg, rgba(0, 0, 0, .05) 25%, transparent 0, transparent 50%, rgba(0, 0, 0, .05) 0, rgba(0, 0, 0, .05) 75%, transparent 0, transparent) !important;\n background-size: 30px 30px;\n animation: animate-inprogress 3s linear infinite\n }\n\n @keyframes animate-inprogress {\n 0% {\n background-position: 0 0\n }\n to {\n background-position: 60px 0\n }\n }\n\n .\\\\[--w-modal-max-height\\\\:80\\\\%\\\\] {\n --w-modal-max-height: 80%\n }\n\n .\\\\[--w-modal-width\\\\:640px\\\\] {\n --w-modal-width: 640px\n }\n\n .focus\\\\:\\\\[--w-outline-offset\\\\:-2px\\\\]:focus {\n --w-outline-offset: -2px\n }\n\n .backdrop-blur {\n -webkit-backdrop-filter: blur(4px);\n backdrop-filter: blur(4px)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:bg-center:before {\n background-position: center\n }\n\n .hover\\\\:bg-clip-padding:hover {\n -webkit-background-clip: padding-box;\n background-clip: padding-box\n }\n\n .bg-transparent, .group\\\\/steph:first-child .group-first\\\\/steph\\\\:bg-transparent, .group\\\\/steph:last-child .group-last\\\\/steph\\\\:bg-transparent {\n background-color: transparent\n }\n\n .bg-\\\\[--w-black\\\\/25\\\\] {\n background-color: rgba(var(--w-rgb-black), .25)\n }\n\n .bg-\\\\[--w-black\\\\/70\\\\], .bg-\\\\[var\\\\(--w-black\\\\)\\\\/70\\\\] {\n background-color: rgba(var(--w-rgb-black), .7)\n }\n\n .bg-\\\\[--w-color-badge-info-background\\\\] {\n background-color: var(--w-color-badge-info-background)\n }\n\n .bg-\\\\[--w-color-badge-negative-background\\\\] {\n background-color: var(--w-color-badge-negative-background)\n }\n\n .bg-\\\\[--w-color-badge-neutral-background\\\\] {\n background-color: var(--w-color-badge-neutral-background)\n }\n\n .bg-\\\\[--w-color-badge-positive-background\\\\] {\n background-color: var(--w-color-badge-positive-background)\n }\n\n .bg-\\\\[--w-color-badge-sponsored-background\\\\] {\n background-color: var(--w-color-badge-sponsored-background)\n }\n\n .bg-\\\\[--w-color-badge-warning-background\\\\] {\n background-color: var(--w-color-badge-warning-background)\n }\n\n .bg-\\\\[--w-color-button-primary-background\\\\] {\n background-color: var(--w-color-button-primary-background)\n }\n\n .bg-\\\\[--w-color-buttongroup-utility-background-selected\\\\] {\n background-color: var(--w-color-buttongroup-utility-background-selected)\n }\n\n .bg-\\\\[--w-color-callout-background\\\\] {\n background-color: var(--w-color-callout-background)\n }\n\n .bg-\\\\[--w-color-pill-suggestion-background\\\\] {\n background-color: var(--w-color-pill-suggestion-background)\n }\n\n .bg-\\\\[--w-color-switch-track-background\\\\] {\n background-color: var(--w-color-switch-track-background)\n }\n\n .bg-\\\\[--w-s-color-surface-elevated-100\\\\] {\n background-color: var(--w-s-color-surface-elevated-100)\n }\n\n .bg-\\\\[--w-s-color-surface-elevated-300\\\\] {\n background-color: var(--w-s-color-surface-elevated-300)\n }\n\n .bg-\\\\[--w-s-icon-selected\\\\] {\n background-color: var(--w-s-icon-selected)\n }\n\n .group:hover .group-hover\\\\:bg-\\\\[--w-color-switch-track-background-hover\\\\] {\n background-color: var(--w-color-switch-track-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-button-pill-background-hover\\\\]:hover {\n background-color: var(--w-color-button-pill-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-button-primary-background-hover\\\\]:hover {\n background-color: var(--w-color-button-primary-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-buttongroup-utility-background-hover\\\\]:hover {\n background-color: var(--w-color-buttongroup-utility-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-pill-suggestion-background-hover\\\\]:hover {\n background-color: var(--w-color-pill-suggestion-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-s-icon-subtle\\\\]:hover {\n background-color: var(--w-s-icon-subtle)\n }\n\n .hover\\\\:bg-\\\\[var\\\\(--w-black\\\\)\\\\/85\\\\]:hover {\n background-color: rgba(var(--w-rgb-black), .85)\n }\n\n .active\\\\:bg-\\\\[--w-color-button-pill-background-active\\\\]:active {\n background-color: var(--w-color-button-pill-background-active)\n }\n\n .active\\\\:bg-\\\\[--w-color-button-primary-background-active\\\\]:active {\n background-color: var(--w-color-button-primary-background-active)\n }\n\n .active\\\\:bg-\\\\[--w-color-buttongroup-utility-background-selected\\\\]:active {\n background-color: var(--w-color-buttongroup-utility-background-selected)\n }\n\n .active\\\\:bg-\\\\[--w-color-pill-suggestion-background-active\\\\]:active {\n background-color: var(--w-color-pill-suggestion-background-active)\n }\n\n .active\\\\:bg-\\\\[var\\\\(--w-black\\\\)\\\\]:active {\n background-color: var(--w-black)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:bg-\\\\[url\\\\(var\\\\(--w-icon-toggle-checked\\\\)\\\\)\\\\]:before {\n background-image: var(--w-icon-toggle-checked)\n }\n\n .appearance-none {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none\n }\n\n .will-change-height {\n will-change: height\n }\n\n .border, .border-1 {\n border-width: 1px\n }\n\n .border-b {\n border-bottom-width: 1px\n }\n\n .before\\\\:border:before {\n border-width: 1px\n }\n\n .border-0 {\n border-width: 0\n }\n\n .border-2 {\n border-width: 2px\n }\n\n .border-b-0 {\n border-bottom-width: 0\n }\n\n .border-b-4 {\n border-bottom-width: 4px\n }\n\n .border-l-4 {\n border-left-width: 4px\n }\n\n .border-r-0, .group:not(:last-of-type) .group-not-last-of-type\\\\:border-r-0 {\n border-right-width: 0\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:border-\\\\[6\\\\]:before {\n border-width: .6rem\n }\n\n .border-transparent {\n border-color: transparent\n }\n\n .border-\\\\[--w-color-buttongroup-utility-border\\\\] {\n border-color: var(--w-color-buttongroup-utility-border)\n }\n\n .border-\\\\[--w-color-callout-border\\\\] {\n border-color: var(--w-color-callout-border)\n }\n\n .border-\\\\[--w-s-color-background-inverted\\\\] {\n border-color: var(--w-s-color-background-inverted)\n }\n\n .border-\\\\[--w-s-color-surface-elevated-300\\\\] {\n border-color: var(--w-s-color-surface-elevated-300)\n }\n\n .active\\\\:border-\\\\[--w-color-buttongroup-utility-border-selected\\\\]:active {\n border-color: var(--w-color-buttongroup-utility-border-selected)\n }\n\n .divide-x > * + * {\n --w-divide-x-reverse: 0;\n border-left-width: calc(1px * calc(1 - var(--w-divide-x-reverse)));\n border-right-width: calc(1px * var(--w-divide-x-reverse))\n }\n\n .divide-y > * + * {\n --w-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--w-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--w-divide-y-reverse))\n }\n\n .rounded-4 {\n border-radius: 4px\n }\n\n .rounded-8 {\n border-radius: 8px\n }\n\n .rounded-full {\n border-radius: 9999px\n }\n\n .before\\\\:rounded-2:before {\n border-radius: 2px\n }\n\n .before\\\\:rounded-full:before {\n border-radius: 9999px\n }\n\n .rounded-b-0 {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n }\n\n .rounded-bl-0 {\n border-bottom-left-radius: 0\n }\n\n .rounded-br-0 {\n border-bottom-right-radius: 0\n }\n\n .rounded-l-0 {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0\n }\n\n .rounded-l-full {\n border-top-left-radius: 9999px;\n border-bottom-left-radius: 9999px\n }\n\n .rounded-r-0 {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0\n }\n\n .rounded-r-full {\n border-top-right-radius: 9999px;\n border-bottom-right-radius: 9999px\n }\n\n .rounded-tl-0 {\n border-top-left-radius: 0\n }\n\n .rounded-tl-4 {\n border-top-left-radius: 4px\n }\n\n .rounded-tr-0 {\n border-top-right-radius: 0\n }\n\n .group:first-of-type .group-first-of-type\\\\:rounded-bl-8 {\n border-bottom-left-radius: 8px\n }\n\n .group:first-of-type .group-first-of-type\\\\:rounded-tl-8 {\n border-top-left-radius: 8px\n }\n\n .first\\\\:rounded-lb-4:first-child {\n border-bottom-left-radius: 4px\n }\n\n .first\\\\:rounded-lt-4:first-child {\n border-top-left-radius: 4px\n }\n\n .first\\\\:rounded-rt-4:first-child {\n border-top-right-radius: 4px\n }\n\n .group:last-of-type .group-last-of-type\\\\:rounded-br-8 {\n border-bottom-right-radius: 8px\n }\n\n .group:last-of-type .group-last-of-type\\\\:rounded-tr-8 {\n border-top-right-radius: 8px\n }\n\n .last\\\\:rounded-lb-4:last-child {\n border-bottom-left-radius: 4px\n }\n\n .last\\\\:rounded-rb-4:last-child {\n border-bottom-right-radius: 4px\n }\n\n .last\\\\:rounded-rt-4:last-child {\n border-top-right-radius: 4px\n }\n\n .caret-current {\n caret-color: currentColor\n }\n\n .opacity-25 {\n opacity: 25%\n }\n\n .block {\n display: block\n }\n\n .before\\\\:block:before {\n display: block\n }\n\n .inline-block {\n display: inline-block\n }\n\n .inline {\n display: inline\n }\n\n .flex, .open\\\\:flex[open] {\n display: flex\n }\n\n .inline-flex {\n display: inline-flex\n }\n\n .grid {\n display: grid\n }\n\n .inline-grid {\n display: inline-grid\n }\n\n .hidden, .group\\\\/stepv:last-child .group-last\\\\/stepv\\\\:hidden {\n display: none\n }\n\n .before\\\\:hidden:before {\n display: none\n }\n\n .hover\\\\:underline:hover {\n text-decoration-line: underline\n }\n\n .focus\\\\:underline:focus {\n text-decoration-line: underline\n }\n\n .focus-visible\\\\:underline:focus-visible {\n text-decoration-line: underline\n }\n\n .active\\\\:underline:active {\n text-decoration-line: underline\n }\n\n .hover\\\\:no-underline:hover {\n text-decoration: none\n }\n\n .focus\\\\:no-underline:focus {\n text-decoration: none\n }\n\n .active\\\\:no-underline:active {\n text-decoration: none\n }\n\n .flex-1 {\n flex: 1 1 0%\n }\n\n .shrink {\n flex-shrink: 1\n }\n\n .shrink-0 {\n flex-shrink: 0\n }\n\n .shrink-0\\\\! {\n flex-shrink: 0 !important\n }\n\n .grow, .grow-1 {\n flex-grow: 1\n }\n\n .basis-auto {\n flex-basis: auto\n }\n\n .flex-col {\n flex-direction: column\n }\n\n .focus-within\\\\:focusable:focus-within {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .focusable:focus, .focusable:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .focusable:not(:focus-visible) {\n outline: none\n }\n\n .peer:focus ~ .peer-focus\\\\:focusable, .peer:focus-visible ~ .peer-focus\\\\:focusable {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .peer:not(:focus-visible) ~ .peer-focus\\\\:focusable {\n outline: none\n }\n\n .focusable-inset {\n --w-outline-offset: -3px\n }\n\n .gap-12 {\n gap: 1.2rem\n }\n\n .gap-8 {\n gap: .8rem\n }\n\n .gap-x-16 {\n column-gap: 1.6rem\n }\n\n .gap-y-16 {\n row-gap: 1.6rem\n }\n\n .row-span-2 {\n grid-row: span 2/span 2\n }\n\n .col-span-2 {\n grid-column: span 2/span 2\n }\n\n .col-span-3 {\n grid-column: span 3/span 3\n }\n\n .row-start-1 {\n grid-row-start: 1\n }\n\n .row-start-2 {\n grid-row-start: 2\n }\n\n .col-start-2 {\n grid-column-start: 2\n }\n\n .auto-rows-auto {\n grid-auto-rows: auto\n }\n\n .grid-flow-col {\n grid-auto-flow: column\n }\n\n .grid-rows-\\\\[20px_auto\\\\] {\n grid-template-rows:20px auto\n }\n\n .grid-rows-\\\\[auto_20px\\\\] {\n grid-template-rows:auto 20px\n }\n\n .grid-cols-\\\\[1fr_20px_1fr\\\\] {\n grid-template-columns:1fr 20px 1fr\n }\n\n .grid-cols-\\\\[1fr_20px\\\\] {\n grid-template-columns:1fr 20px\n }\n\n .grid-cols-\\\\[20px_1fr\\\\] {\n grid-template-columns:20px 1fr\n }\n\n .grid-cols-\\\\[auto_1fr_auto\\\\] {\n grid-template-columns:auto 1fr auto\n }\n\n .grid-cols-1 {\n grid-template-columns:repeat(1, minmax(0, 1fr))\n }\n\n .grid-cols-2 {\n grid-template-columns:repeat(2, minmax(0, 1fr))\n }\n\n .grid-cols-3 {\n grid-template-columns:repeat(3, minmax(0, 1fr))\n }\n\n .grid-cols-4 {\n grid-template-columns:repeat(4, minmax(0, 1fr))\n }\n\n .grid-cols-5 {\n grid-template-columns:repeat(5, minmax(0, 1fr))\n }\n\n .grid-cols-6 {\n grid-template-columns:repeat(6, minmax(0, 1fr))\n }\n\n .grid-cols-7 {\n grid-template-columns:repeat(7, minmax(0, 1fr))\n }\n\n .grid-cols-8 {\n grid-template-columns:repeat(8, minmax(0, 1fr))\n }\n\n .grid-cols-9 {\n grid-template-columns:repeat(9, minmax(0, 1fr))\n }\n\n .overflow-hidden {\n overflow: hidden\n }\n\n .overflow-x-hidden {\n overflow-x: hidden\n }\n\n .overflow-y-auto {\n overflow-y: auto\n }\n\n .list-none {\n list-style-type: none\n }\n\n .outline-\\\\[--w-s-color-border-negative\\\\]\\\\! {\n outline-color: var(--w-s-color-border-negative) !important\n }\n\n .outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n\n .focus\\\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n\n .items-start {\n align-items: flex-start\n }\n\n .items-end {\n align-items: flex-end\n }\n\n .items-center {\n align-items: center\n }\n\n .self-center {\n align-self: center\n }\n\n .inset-0 {\n top: 0rem;\n right: 0rem;\n bottom: 0rem;\n left: 0rem\n }\n\n .-bottom-0 {\n bottom: -0rem\n }\n\n .bottom-0 {\n bottom: 0rem\n }\n\n .bottom-10 {\n bottom: 1rem\n }\n\n .bottom-16 {\n bottom: 1.6rem\n }\n\n .left-0 {\n left: 0rem\n }\n\n .left-4 {\n left: .4rem\n }\n\n .right-0 {\n right: 0rem\n }\n\n .right-8 {\n right: .8rem\n }\n\n .top-\\\\[1\\\\.92rem\\\\] {\n top: 1.92rem\n }\n\n .top-0 {\n top: 0rem\n }\n\n .top-20 {\n top: 2rem\n }\n\n .top-4 {\n top: .4rem\n }\n\n .top-8 {\n top: .8rem\n }\n\n .before\\\\:bottom-0:before {\n bottom: 0rem\n }\n\n .before\\\\:left-0:before {\n left: 0rem\n }\n\n .before\\\\:right-0:before {\n right: 0rem\n }\n\n .before\\\\:top-2:before {\n top: .2rem\n }\n\n .-bottom-\\\\[8px\\\\] {\n bottom: -8px\n }\n\n .-left-\\\\[8px\\\\] {\n left: -8px\n }\n\n .-right-\\\\[8px\\\\] {\n right: -8px\n }\n\n .-top-\\\\[8px\\\\] {\n top: -8px\n }\n\n .top-\\\\[19px\\\\] {\n top: 19px\n }\n\n .top-\\\\[30\\\\%\\\\] {\n top: 30%\n }\n\n .justify-end {\n justify-content: flex-end\n }\n\n .justify-center {\n justify-content: center\n }\n\n .justify-between {\n justify-content: space-between\n }\n\n .justify-items-center {\n justify-items: center\n }\n\n .justify-self-start {\n justify-self: start\n }\n\n .justify-self-end {\n justify-self: end\n }\n\n .justify-self-center {\n justify-self: center\n }\n\n .absolute {\n position: absolute\n }\n\n .fixed {\n position: fixed\n }\n\n .relative {\n position: relative\n }\n\n .open\\\\:fixed[open] {\n position: fixed\n }\n\n .before\\\\:absolute:before {\n position: absolute\n }\n\n .z-10, .peer:checked ~ .peer-checked\\\\:z-10 {\n z-index: 10\n }\n\n .z-30 {\n z-index: 30\n }\n\n .z-50 {\n z-index: 50\n }\n\n .hover\\\\:z-30:hover {\n z-index: 30\n }\n\n .\\\\!s-bg-selected {\n background-color: var(--w-s-color-background-selected) !important\n }\n\n .s-bg {\n background-color: var(--w-s-color-background)\n }\n\n .s-bg-disabled {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .s-bg-disabled-subtle {\n background-color: var(--w-s-color-background-disabled-subtle)\n }\n\n .s-bg-info-subtle {\n background-color: var(--w-s-color-background-info-subtle)\n }\n\n .s-bg-inverted {\n background-color: var(--w-s-color-background-inverted)\n }\n\n .s-bg-negative {\n background-color: var(--w-s-color-background-negative)\n }\n\n .s-bg-negative-subtle {\n background-color: var(--w-s-color-background-negative-subtle)\n }\n\n .s-bg-positive-subtle {\n background-color: var(--w-s-color-background-positive-subtle)\n }\n\n .s-bg-primary, .peer:checked ~ .peer-checked\\\\:s-bg-primary {\n background-color: var(--w-s-color-background-primary)\n }\n\n .s-bg-selected {\n background-color: var(--w-s-color-background-selected)\n }\n\n .s-bg-subtle {\n background-color: var(--w-s-color-background-subtle)\n }\n\n .s-bg-warning-subtle {\n background-color: var(--w-s-color-background-warning-subtle)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-bg-negative-hover:before {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-bg-primary-hover:before {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-disabled:before {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-negative:before {\n background-color: var(--w-s-color-background-negative)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-primary:before {\n background-color: var(--w-s-color-background-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-disabled:before {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-negative:before {\n background-color: var(--w-s-color-background-negative)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-primary:before {\n background-color: var(--w-s-color-background-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-bg-negative-hover:hover:before {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-bg-primary-hover:hover:before {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .\\\\!hover\\\\:s-bg-selected-hover:hover {\n background-color: var(--w-s-color-background-selected-hover) !important\n }\n\n .group:hover .group-hover\\\\:s-bg-primary-hover {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .hover\\\\:before\\\\:s-bg-hover:hover:before {\n background-color: var(--w-s-color-background-hover)\n }\n\n .hover\\\\:before\\\\:s-bg-negative-subtle-hover:hover:before {\n background-color: var(--w-s-color-background-negative-subtle-hover)\n }\n\n .hover\\\\:s-bg-hover:hover {\n background-color: var(--w-s-color-background-hover)\n }\n\n .hover\\\\:s-bg-negative-hover:hover {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .hover\\\\:s-bg-negative-subtle-hover:hover {\n background-color: var(--w-s-color-background-negative-subtle-hover)\n }\n\n .hover\\\\:s-bg-primary-hover:hover {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .hover\\\\:s-bg-selected-hover:hover {\n background-color: var(--w-s-color-background-selected-hover)\n }\n\n .peer:hover:not(:checked) ~ .peer-hover\\\\:peer-not-checked\\\\:s-bg-hover {\n background-color: var(--w-s-color-background-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-bg-hover:before {\n background-color: var(--w-s-color-background-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-bg-negative-subtle:before {\n background-color: var(--w-s-color-background-negative-subtle)\n }\n\n .focus\\\\:s-bg-primary-hover:focus {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .\\\\!active\\\\:s-bg-selected-active:active {\n background-color: var(--w-s-color-background-selected-active) !important\n }\n\n .active\\\\:s-bg-active:active {\n background-color: var(--w-s-color-background-active)\n }\n\n .active\\\\:s-bg-negative-active:active {\n background-color: var(--w-s-color-background-negative-active)\n }\n\n .active\\\\:s-bg-negative-subtle-active:active {\n background-color: var(--w-s-color-background-negative-subtle-active)\n }\n\n .active\\\\:s-bg-primary-active:active {\n background-color: var(--w-s-color-background-primary-active)\n }\n\n .active\\\\:s-bg-selected-active:active {\n background-color: var(--w-s-color-background-selected-active)\n }\n\n .before\\\\:s-bg-disabled-subtle:before {\n background-color: var(--w-s-color-background-disabled-subtle)\n }\n\n .before\\\\:s-bg:before {\n background-color: var(--w-s-color-background)\n }\n\n .s-text {\n color: var(--w-s-color-text)\n }\n\n .s-text-disabled {\n color: var(--w-s-color-text-disabled)\n }\n\n .s-text-inverted, .peer:checked ~ .peer-checked\\\\:s-text-inverted {\n color: var(--w-s-color-text-inverted)\n }\n\n .s-text-inverted-static {\n color: var(--w-s-color-text-inverted-static)\n }\n\n .s-text-link {\n color: var(--w-s-color-text-link)\n }\n\n .s-text-negative {\n color: var(--w-s-color-text-negative)\n }\n\n .s-text-subtle {\n color: var(--w-s-color-text-subtle)\n }\n\n .hover\\\\:s-text-link:hover {\n color: var(--w-s-color-text-link)\n }\n\n .active\\\\:s-text:active {\n color: var(--w-s-color-text)\n }\n\n .placeholder\\\\:s-text-placeholder::placeholder {\n color: var(--w-s-color-text-placeholder)\n }\n\n .s-icon {\n color: var(--w-s-color-icon)\n }\n\n .s-icon-info {\n color: var(--w-s-color-icon-info)\n }\n\n .s-icon-inverted {\n color: var(--w-s-color-icon-inverted)\n }\n\n .s-icon-negative {\n color: var(--w-s-color-icon-negative)\n }\n\n .s-icon-positive {\n color: var(--w-s-color-icon-positive)\n }\n\n .s-icon-warning {\n color: var(--w-s-color-icon-warning)\n }\n\n .hover\\\\:s-icon-hover:hover {\n color: var(--w-s-color-icon-hover)\n }\n\n .active\\\\:s-icon-active:active {\n color: var(--w-s-color-icon-active)\n }\n\n .before\\\\:s-icon-inverted:before {\n color: var(--w-s-color-icon-inverted)\n }\n\n .s-border {\n border-color: var(--w-s-color-border)\n }\n\n .s-border-disabled {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .s-border-info-subtle {\n border-color: var(--w-s-color-border-info-subtle)\n }\n\n .s-border-l-info {\n border-left-color: var(--w-s-color-border-info)\n }\n\n .s-border-l-negative {\n border-left-color: var(--w-s-color-border-negative)\n }\n\n .s-border-l-positive {\n border-left-color: var(--w-s-color-border-positive)\n }\n\n .s-border-l-warning {\n border-left-color: var(--w-s-color-border-warning)\n }\n\n .s-border-negative {\n border-color: var(--w-s-color-border-negative)\n }\n\n .s-border-negative-subtle {\n border-color: var(--w-s-color-border-negative-subtle)\n }\n\n .s-border-positive-subtle {\n border-color: var(--w-s-color-border-positive-subtle)\n }\n\n .s-border-primary, .peer:checked ~ .peer-checked\\\\:s-border-primary {\n border-color: var(--w-s-color-border-primary)\n }\n\n .s-border-selected {\n border-color: var(--w-s-color-border-selected)\n }\n\n .s-border-warning-subtle {\n border-color: var(--w-s-color-border-warning-subtle)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-negative-hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-primary-hover:before {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-selected-hover:before {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-selected:before {\n border-color: var(--w-s-color-border-selected)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-border-negative-hover:hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-border-primary-hover:hover:before {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .group:hover .group-hover\\\\:s-border-selected-hover {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .hover\\\\:before\\\\:s-border-negative-hover:hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .hover\\\\:before\\\\:s-border-primary:hover:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .hover\\\\:s-border-disabled:hover {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .hover\\\\:s-border-hover:hover {\n border-color: var(--w-s-color-border-hover)\n }\n\n .hover\\\\:s-border-negative-hover:hover {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .hover\\\\:s-border-primary-hover:hover {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .hover\\\\:s-border-primary:hover {\n border-color: var(--w-s-color-border-primary)\n }\n\n .hover\\\\:s-border-selected-hover:hover {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-border-negative-hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .focus\\\\:s-border-primary-hover:focus {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .active\\\\:s-border-active:active {\n border-color: var(--w-s-color-border-active)\n }\n\n .active\\\\:s-border-disabled:active {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .active\\\\:s-border-primary-active:active {\n border-color: var(--w-s-color-border-primary-active)\n }\n\n .active\\\\:s-border-selected-active:active {\n border-color: var(--w-s-color-border-selected-active)\n }\n\n .active\\\\:s-border-selected:active {\n border-color: var(--w-s-color-border-selected)\n }\n\n .group:active .group-active\\\\:s-border-active {\n border-color: var(--w-s-color-border-active)\n }\n\n .group:active .group-active\\\\:s-border-selected-active {\n border-color: var(--w-s-color-border-selected-active)\n }\n\n .before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .s-surface-sunken {\n background-color: var(--w-s-color-surface-sunken)\n }\n\n .s-surface-elevated-200 {\n background-color: var(--w-s-color-surface-elevated-200);\n box-shadow: var(--w-s-shadow-surface-elevated-200)\n }\n\n .hover\\\\:s-surface-elevated-200-hover:hover {\n background-color: var(--w-s-color-surface-elevated-200-hover);\n box-shadow: var(--w-s-shadow-surface-elevated-200-hover)\n }\n\n .active\\\\:s-surface-elevated-200-active:active {\n background-color: var(--w-s-color-surface-elevated-200-active);\n box-shadow: var(--w-s-shadow-surface-elevated-200-active)\n }\n\n .drop-shadow-m {\n filter: drop-shadow(rgba(64, 64, 64, .24) 0 3px 8px) drop-shadow(rgba(64, 64, 64, .16) 0 3px 6px)\n }\n\n .shadow-m {\n box-shadow: var(--w-shadow-m)\n }\n\n .shadow-s {\n box-shadow: var(--w-shadow-s)\n }\n\n .shadow-\\\\[--w-shadow-slider\\\\] {\n box-shadow: var(--w-shadow-slider)\n }\n\n .hover\\\\:shadow-\\\\[--w-shadow-slider-handle-hover\\\\]:hover {\n box-shadow: var(--w-shadow-slider-handle-hover)\n }\n\n .focus\\\\:shadow-\\\\[--w-shadow-slider-handle-hover\\\\]:focus {\n box-shadow: var(--w-shadow-slider-handle-hover)\n }\n\n .active\\\\:shadow-\\\\[--w-shadow-slider-handle-active\\\\]:active {\n box-shadow: var(--w-shadow-slider-handle-active)\n }\n\n .h-0 {\n height: 0rem\n }\n\n .h-16 {\n height: 1.6rem\n }\n\n .h-2 {\n height: .2rem\n }\n\n .h-20 {\n height: 2rem\n }\n\n .h-24 {\n height: 2.4rem\n }\n\n .h-4 {\n height: .4rem\n }\n\n .h-44 {\n height: 4.4rem\n }\n\n .h-6 {\n height: .6rem\n }\n\n .h-8 {\n height: .8rem\n }\n\n .h-full {\n height: 100%\n }\n\n .h-unset {\n height: unset\n }\n\n .max-h-unset {\n max-height: unset\n }\n\n .max-w-full {\n max-width: 100%\n }\n\n .max-w-max {\n max-width: max-content\n }\n\n .max-w-unset {\n max-width: unset\n }\n\n .min-h-32 {\n min-height: 3.2rem\n }\n\n .min-h-40 {\n min-height: 4rem\n }\n\n .min-w-16 {\n min-width: 1.6rem\n }\n\n .min-w-32 {\n min-width: 3.2rem\n }\n\n .w-16 {\n width: 1.6rem\n }\n\n .w-2 {\n width: .2rem\n }\n\n .w-20 {\n width: 2rem\n }\n\n .w-24 {\n width: 2.4rem\n }\n\n .w-32 {\n width: 3.2rem\n }\n\n .w-40 {\n width: 4rem\n }\n\n .w-44 {\n width: 4.4rem\n }\n\n .w-8 {\n width: .8rem\n }\n\n .w-full {\n width: 100%\n }\n\n .w-max {\n width: max-content\n }\n\n .w-unset {\n width: unset\n }\n\n .before\\\\:h-20:before {\n height: 2rem\n }\n\n .before\\\\:h-full:before {\n height: 100%\n }\n\n .before\\\\:w-20:before {\n width: 2rem\n }\n\n .before\\\\:w-32:before {\n width: 3.2rem\n }\n\n .h-\\\\[--w-modal-height\\\\] {\n height: var(--w-modal-height)\n }\n\n .h-\\\\[14px\\\\] {\n height: 14px\n }\n\n .h-\\\\[16px\\\\] {\n height: 16px\n }\n\n .max-h-\\\\[--w-modal-max-height\\\\] {\n max-height: var(--w-modal-max-height)\n }\n\n .min-h-\\\\[--w-modal-min-height\\\\] {\n min-height: var(--w-modal-min-height)\n }\n\n .min-h-\\\\[32px\\\\] {\n min-height: 32px\n }\n\n .min-h-\\\\[40px\\\\] {\n min-height: 40px\n }\n\n .min-h-\\\\[42\\\\] {\n min-height: 4.2rem\n }\n\n .min-h-\\\\[44px\\\\] {\n min-height: 44px\n }\n\n .min-w-\\\\[32px\\\\] {\n min-width: 32px\n }\n\n .min-w-\\\\[40px\\\\] {\n min-width: 40px\n }\n\n .min-w-\\\\[44px\\\\] {\n min-width: 44px\n }\n\n .w-\\\\[--w-modal-width\\\\] {\n width: var(--w-modal-width)\n }\n\n .w-\\\\[14px\\\\] {\n width: 14px\n }\n\n .w-\\\\[16px\\\\] {\n width: 16px\n }\n\n .space-x-8 > :not([hidden]) ~ :not([hidden]) {\n --w-space-x-reverse: 0;\n margin-left: calc(.8rem * calc(1 - var(--w-space-x-reverse)));\n margin-right: calc(.8rem * var(--w-space-x-reverse))\n }\n\n .space-y-16 > :not([hidden]) ~ :not([hidden]) {\n --w-space-y-reverse: 0;\n margin-top: calc(1.6rem * calc(1 - var(--w-space-y-reverse)));\n margin-bottom: calc(1.6rem * var(--w-space-y-reverse))\n }\n\n .m-0 {\n margin: 0rem\n }\n\n .m-auto {\n margin: auto\n }\n\n .-mx-16 {\n margin-left: -1.6rem;\n margin-right: -1.6rem\n }\n\n .mx-0 {\n margin-left: 0rem;\n margin-right: 0rem\n }\n\n .mx-8 {\n margin-left: .8rem;\n margin-right: .8rem\n }\n\n .mx-auto {\n margin-left: auto;\n margin-right: auto\n }\n\n .-mb-1 {\n margin-bottom: -.1rem\n }\n\n .-ml-8 {\n margin-left: -.8rem\n }\n\n .-mr-1 {\n margin-right: -.1rem\n }\n\n .-mr-8 {\n margin-right: -.8rem\n }\n\n .-mt-2 {\n margin-top: -.2rem\n }\n\n .-mt-4 {\n margin-top: -.4rem\n }\n\n .last-child\\\\:mb-0 > :last-child, .mb-0 {\n margin-bottom: 0rem\n }\n\n .mb-32 {\n margin-bottom: 3.2rem\n }\n\n .ml-8 {\n margin-left: .8rem\n }\n\n .ml-auto {\n margin-left: auto\n }\n\n .mr-8 {\n margin-right: .8rem\n }\n\n .mt-16 {\n margin-top: 1.6rem\n }\n\n .mt-4 {\n margin-top: .4rem\n }\n\n .group:not(:first-child) .group-not-first\\\\:-ml-2 {\n margin-left: -.2rem\n }\n\n .last\\\\:mb-0:last-child {\n margin-bottom: 0rem\n }\n\n .last\\\\:mr-0:last-child {\n margin-right: 0rem\n }\n\n .m-\\\\[8px\\\\] {\n margin: 8px\n }\n\n .p-0 {\n padding: 0rem\n }\n\n .p-16 {\n padding: 1.6rem\n }\n\n .p-4 {\n padding: .4rem\n }\n\n .p-8 {\n padding: .8rem\n }\n\n .px-0 {\n padding-left: 0rem;\n padding-right: 0rem\n }\n\n .px-1 {\n padding-left: .1rem;\n padding-right: .1rem\n }\n\n .px-12 {\n padding-left: 1.2rem;\n padding-right: 1.2rem\n }\n\n .px-14 {\n padding-left: 1.4rem;\n padding-right: 1.4rem\n }\n\n .px-16 {\n padding-left: 1.6rem;\n padding-right: 1.6rem\n }\n\n .px-8 {\n padding-left: .8rem;\n padding-right: .8rem\n }\n\n .py-0 {\n padding-top: 0rem;\n padding-bottom: 0rem\n }\n\n .py-1 {\n padding-top: .1rem;\n padding-bottom: .1rem\n }\n\n .py-10 {\n padding-top: 1rem;\n padding-bottom: 1rem\n }\n\n .py-12 {\n padding-top: 1.2rem;\n padding-bottom: 1.2rem\n }\n\n .py-2 {\n padding-top: .2rem;\n padding-bottom: .2rem\n }\n\n .py-4 {\n padding-top: .4rem;\n padding-bottom: .4rem\n }\n\n .py-6 {\n padding-top: .6rem;\n padding-bottom: .6rem\n }\n\n .py-8 {\n padding-top: .8rem;\n padding-bottom: .8rem\n }\n\n .pb-0 {\n padding-bottom: 0rem\n }\n\n .pb-32 {\n padding-bottom: 3.2rem\n }\n\n .pb-4 {\n padding-bottom: .4rem\n }\n\n .pb-8 {\n padding-bottom: .8rem\n }\n\n .pl-0 {\n padding-left: 0rem\n }\n\n .pl-1 {\n padding-left: .1rem\n }\n\n .pl-12 {\n padding-left: 1.2rem\n }\n\n .pl-28 {\n padding-left: 2.8rem\n }\n\n .pl-4 {\n padding-left: .4rem\n }\n\n .pl-8 {\n padding-left: .8rem\n }\n\n .pr-12 {\n padding-right: 1.2rem\n }\n\n .pr-14 {\n padding-right: 1.4rem\n }\n\n .pr-2 {\n padding-right: .2rem\n }\n\n .pr-32 {\n padding-right: 3.2rem\n }\n\n .pr-40 {\n padding-right: 4rem\n }\n\n .pt-0 {\n padding-top: 0rem\n }\n\n .pt-1 {\n padding-top: .1rem\n }\n\n .pt-16 {\n padding-top: 1.6rem\n }\n\n .pt-24 {\n padding-top: 2.4rem\n }\n\n .pt-8 {\n padding-top: .8rem\n }\n\n .group\\\\/step:last-child .group-last\\\\/step\\\\:last\\\\:pb-0:last-child {\n padding-bottom: 0rem\n }\n\n .last\\\\:pb-1:last-child {\n padding-bottom: .1rem\n }\n\n .last\\\\:pr-1:last-child {\n padding-right: .1rem\n }\n\n .p-\\\\[8px\\\\] {\n padding: 8px\n }\n\n .px-\\\\[15px\\\\] {\n padding-left: 15px;\n padding-right: 15px\n }\n\n .px-\\\\[8px\\\\] {\n padding-left: 8px;\n padding-right: 8px\n }\n\n .py-\\\\[11px\\\\] {\n padding-top: 11px;\n padding-bottom: 11px\n }\n\n .py-\\\\[5px\\\\] {\n padding-top: 5px;\n padding-bottom: 5px\n }\n\n .py-\\\\[7px\\\\] {\n padding-top: 7px;\n padding-bottom: 7px\n }\n\n .pl-\\\\[var\\\\(--w-prefix-width\\\\,_40px\\\\)\\\\] {\n padding-left: var(--w-prefix-width, 40px)\n }\n\n .invisible {\n visibility: hidden\n }\n\n .backface-hidden {\n backface-visibility: hidden\n }\n\n .break-words {\n overflow-wrap: break-word\n }\n\n .before\\\\:content-\\\\[\\\\\"\u00E2\u20AC\u201C\\\\\"\\\\]:before {\n content: \"\u00E2\u20AC\u201C\"\n }\n\n .before\\\\:content-\\\\[\\\\\"\\\\\"\\\\]:before {\n content: \"\"\n }\n\n .cursor-default {\n cursor: default\n }\n\n .cursor-pointer {\n cursor: pointer\n }\n\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-smoothing: grayscale\n }\n\n .font-bold {\n font-weight: 700\n }\n\n .before\\\\:font-bold:before {\n font-weight: 700\n }\n\n .font-normal {\n font-weight: 400\n }\n\n .pointer-events-auto {\n pointer-events: auto\n }\n\n .pointer-events-none {\n pointer-events: none\n }\n\n .before\\\\:pointer-events-none:before {\n pointer-events: none\n }\n\n .pb-safe-\\\\[32\\\\] {\n padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px))\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0\n }\n\n .touch-pan-y {\n touch-action: pan-y\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none\n }\n\n .translate-x-20 {\n --w-translate-x: 2rem;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .translate-z-0 {\n --w-translate-z: 0rem;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .-rotate-180, .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:-rotate-180::part(w-icon-chevron-down-16-part) {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: -180deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:rotate-180::part(w-icon-chevron-up-16-part), .rotate-180 {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: 180deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .rotate-90 {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: 90deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transform::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transform::part(w-icon-chevron-up-16-part), .transform {\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transform-gpu::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transform-gpu::part(w-icon-chevron-up-16-part), .transform-gpu {\n transform: translate3d(var(--w-translate-x), var(--w-translate-y), var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transition-transform::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transition-transform::part(w-icon-chevron-up-16-part), .transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-300 {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .3s\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .before\\\\:transition-all:before {\n transition-property: all;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .duration-300 {\n transition-duration: .3s\n }\n\n .ease-in-out, .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:ease-in-out::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:ease-in-out::part(w-icon-chevron-up-16-part) {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1)\n }\n\n .text-m {\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m)\n }\n\n .text-s {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s)\n }\n\n .text-xs {\n font-size: var(--w-font-size-xs);\n line-height: var(--w-line-height-xs)\n }\n\n .leading-m {\n line-height: var(--w-line-height-m)\n }\n\n .before\\\\:leading-xs:before {\n line-height: var(--w-line-height-xs)\n }\n\n .leading-\\\\[24\\\\] {\n line-height: 2.4rem\n }\n\n @media (max-width: 479.9px) {\n .lt-sm\\\\:rounded-b-0 {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n }\n }\n @media (min-width: 480px) {\n .sm\\\\:border-b-0 {\n border-bottom-width: 0\n }\n\n .sm\\\\:rounded-8 {\n border-radius: 8px\n }\n\n .sm\\\\:rounded-b-8 {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px\n }\n\n .sm\\\\:gap-16 {\n gap: 1.6rem\n }\n\n .sm\\\\:place-content-center {\n place-content: center\n }\n\n .sm\\\\:place-items-center {\n place-items: center\n }\n\n .sm\\\\:h-24 {\n height: 2.4rem\n }\n\n .sm\\\\:min-h-48 {\n min-height: 4.8rem\n }\n\n .sm\\\\:w-24 {\n width: 2.4rem\n }\n\n .sm\\\\:min-h-\\\\[32px\\\\] {\n min-height: 32px\n }\n\n .sm\\\\:min-h-\\\\[44px\\\\] {\n min-height: 44px\n }\n\n .sm\\\\:min-h-\\\\[45\\\\] {\n min-height: 4.5rem\n }\n\n .sm\\\\:min-w-\\\\[32px\\\\] {\n min-width: 32px\n }\n\n .sm\\\\:min-w-\\\\[44px\\\\] {\n min-width: 44px\n }\n\n .sm\\\\:mx-0 {\n margin-left: 0rem;\n margin-right: 0rem\n }\n\n .sm\\\\:mx-16 {\n margin-left: 1.6rem;\n margin-right: 1.6rem\n }\n\n .sm\\\\:-ml-12 {\n margin-left: -1.2rem\n }\n\n .sm\\\\:-mr-12 {\n margin-right: -1.2rem\n }\n\n .sm\\\\:-mt-8 {\n margin-top: -.8rem\n }\n\n .sm\\\\:px-32 {\n padding-left: 3.2rem;\n padding-right: 3.2rem\n }\n\n .sm\\\\:py-0 {\n padding-top: 0rem;\n padding-bottom: 0rem\n }\n\n .sm\\\\:pb-32 {\n padding-bottom: 3.2rem\n }\n\n .sm\\\\:pt-24 {\n padding-top: 2.4rem\n }\n\n .sm\\\\:pt-32 {\n padding-top: 3.2rem\n }\n }\n @media (min-width: 768px) {\n .md\\\\:block {\n display: block\n }\n\n .md\\\\:hidden {\n display: none\n }\n }\n `;\n", "import { css } from 'lit';\n\nexport const toggleStyles = css`\n [part~='label'] {\n display: block;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n user-select: none;\n cursor: pointer;\n }\n .wrapper {\n display: grid;\n grid-template-columns: 2rem max-content;\n gap: 8px;\n }\n .hide-toggle {\n position: absolute;\n padding: 0;\n margin: 0;\n opacity: 0;\n pointer-events: none;\n inset: 0;\n }\n .control {\n display: block;\n border-width: 1px;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n cursor: pointer;\n appearance: none;\n user-select: none;\n flex-shrink: 0;\n height: 2rem;\n width: 2rem;\n background-color: var(--w-s-color-background);\n border-color: var(--w-s-color-border-strong);\n color: var(--w-s-color-icon-inverted);\n font-weight: 700;\n text-align: center;\n line-height: var(--w-line-height-xs);\n font-size: var(--w-font-size-m);\n }\n .checkbox {\n position: relative;\n }\n :host([type='checkbox']) .control {\n border-radius: 4px;\n }\n .checkbox:has(:checked, :indeterminate),\n :host([type='checkbox'][checked]) .control,\n :host([type='checkbox'][indeterminate]) .control {\n background-color: var(--w-s-color-background-primary);\n border-color: var(--w-s-color-border-primary);\n }\n .checkbox:has(:checked),\n :host([type='checkbox'][checked]) .control {\n background-image: var(--w-icon-toggle-checked);\n background-position: center;\n }\n :host([type='radio']) .control,\n :host([role='radio']) .control {\n border-radius: 50%;\n }\n :host([type='radio'][checked]) .control,\n /* :state is newly available, so we set an attribute in radio for compat */\n :host([role='radio'][checked-ui]) .control,\n :host([role='radio']:state(checked)) .control {\n border-color: var(--w-s-color-border-selected);\n border-width: 0.6rem;\n }\n .checkbox:has(:invalid),\n :host([invalid]) .control {\n border-color: var(--w-s-color-border-negative) !important;\n }\n /* handles invalid checkbox state inside w-checkbox */\n .checkbox:has(:checked, :indeterminate):has(:invalid),\n /* allows invalid to be set on the w-checkbox element */\n :host([invalid]) .checkbox:has(:checked, :indeterminate),\n :host([type='checkbox'][invalid][checked]) .control,\n :host([type='checkbox'][invalid][indeterminate]) .control {\n background-color: var(--w-s-color-background-negative);\n }\n\n :host(:focus-visible) {\n outline: none;\n }\n .checkbox:has(> input:focus-visible:not(:disabled)),\n :host(:focus-visible) .control {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px);\n }\n\n :host([type='radio'][disabled]) .control,\n /* :state is newly available, so we set an attribute in radio for compat */\n :host([role='radio'][disabled-ui]) .control,\n :host([role='radio']:state(disabled)) .control,\n :host([type='checkbox'][disabled]) .control,\n .checkbox:has(> input:disabled) {\n border-color: var(--w-s-color-border-disabled);\n background-color: var(--w-s-color-background-disabled-subtle);\n }\n\n :host([type='checkbox'][disabled][checked]) .control,\n :host([type='checkbox'][disabled][indeterminate]) .control,\n .checkbox:has(:checked, :indeterminate):has(> input:disabled) {\n background-color: var(--w-s-color-background-disabled);\n }\n`;\n", "import type { Validator } from './form-associated-element';\n\nexport interface RequiredValidatorOptions {\n /** This is a cheap way for us to get translation strings for the user without having proper translations. */\n validationElement?: HTMLSelectElement | HTMLInputElement;\n\n /**\n * The property to check if its not null-ish. For most elements this will be \"value\".\n * For \"checkbox\" for example it will be \"checked\"\n */\n validationProperty?: string;\n}\n\nexport const RequiredValidator = (options: RequiredValidatorOptions = {}): Validator => {\n let { validationElement, validationProperty } = options;\n\n if (!validationElement) {\n validationElement = Object.assign(document.createElement('input'), { required: true });\n }\n\n if (!validationProperty) {\n validationProperty = 'value';\n }\n\n const obj: Validator = {\n observedAttributes: ['required'],\n message: validationElement.validationMessage, // @TODO: Add a translation.\n checkValidity(element) {\n const validity: ReturnType<Validator['checkValidity']> = {\n message: '',\n isValid: true,\n invalidKeys: [],\n };\n\n const isRequired = element.required ?? element.hasAttribute('required');\n\n // Always true if the element isn't required.\n if (!isRequired) {\n return validity;\n }\n\n const value = element[validationProperty as keyof typeof element];\n\n const isEmpty = !value;\n\n if (isEmpty) {\n validity.message = typeof obj.message === 'function' ? obj.message(element) : obj.message || '';\n validity.isValid = false;\n validity.invalidKeys.push('valueMissing');\n }\n\n return validity;\n },\n };\n\n return obj;\n};\n", "import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\n/** A reactive controller that determines when slots exist. */\nexport class HasSlotController implements ReactiveController {\n host: ReactiveControllerHost & Element;\n slotNames: string[] = [];\n\n constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]) {\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n }\n\n private hasDefaultSlot() {\n return [...this.host.childNodes].some((node) => {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {\n return true;\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const tagName = el.tagName.toLowerCase();\n\n // Ignore visually hidden elements since they aren't rendered\n if (tagName === 'w-visually-hidden') {\n return false;\n }\n\n // If it doesn't have a slot attribute, it's part of the default slot\n if (!el.hasAttribute('slot')) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n private hasNamedSlot(name: string) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n\n test(slotName: string) {\n return slotName === '[default]' ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n\n hostConnected() {\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n }\n\n hostDisconnected() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n }\n\n private handleSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n\n if ((this.slotNames.includes('[default]') && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {\n this.host.requestUpdate();\n }\n };\n}\n\n/**\n * Given a list of nodes, this function iterates over all of them and returns the concatenated\n * HTML as a string. This is useful for getting the HTML that corresponds to a slot\u2019s assigned nodes (since we can't use slot.innerHTML as an alternative).\n * @param nodes - The list of nodes to iterate over.\n * @param callback - A function that can be used to customize the HTML output for specific types of nodes. If the function returns undefined, the default HTML output will be used.\n */\nexport function getInnerHTML(nodes: Iterable<Node>, callback?: (node: Node) => string | undefined): string {\n let html = '';\n\n for (const node of nodes) {\n if (callback) {\n const customHTML = callback(node);\n\n if (customHTML !== undefined) {\n html += customHTML;\n continue;\n }\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n html += (node as HTMLElement).outerHTML;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n html += node.textContent;\n }\n }\n\n return html;\n}\n", "import { css } from 'lit';\n\nexport const styles = css`\n :host {\n display: block;\n }\n\n .form-control {\n position: relative;\n border: none;\n padding: 0;\n margin: 0;\n }\n\n .label {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n font-weight: 700;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-smoothing: grayscale;\n cursor: pointer;\n padding-bottom: 0.4rem;\n color: var(--w-s-color-text);\n display: block;\n }\n\n .radio-group-required .label::after {\n content: var(--wa-form-control-required-content);\n margin-inline-start: var(--wa-form-control-required-content-offset);\n }\n\n .button-group {\n display: flex;\n }\n\n [part~='form-control-input'] {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n }\n\n /* Horizontal */\n :host([orientation='horizontal']) [part~='form-control-input'] {\n flex-direction: row;\n gap: 1em;\n }\n\n /* Help text */\n [part~='hint'] {\n margin-block-start: 0.5em;\n }\n\n /* Radios have the \"button\" appearance */\n :host fieldset.has-radio-buttons {\n [part~='form-control-input'] {\n gap: 0;\n }\n }\n`;\n"],
5
- "mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkRRE,GAAaF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;UCpR1B,OAAS,OAAAG,MAAW,MAEb,IAAMC,EAAeD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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",
6
- "names": ["html", "property", "query", "state", "classMap", "isServer", "property", "LitElement", "unsafeCSS", "property", "css", "styles", "_hasRecordedInitialProperties", "BaseElement", "LitElement", "__privateAdd", "customState", "active", "_a", "e", "Self", "property", "spec", "styles", "style", "unsafeCSS", "name", "oldValue", "newValue", "__privateGet", "obj", "prop", "__privateSet", "changedProperties", "value", "event", "eventOptions", "__decorateClass", "CustomErrorValidator", "element", "validity", "WInvalidEvent", "BaseFormAssociatedElement", "BaseElement", "WInvalidEvent", "event", "_a", "emittedEvents", "isServer", "CustomErrorValidator", "parentAttrs", "validator", "attr", "args", "changedProperties", "value", "formData", "val", "flags", "message", "anchor", "required", "isValid", "hasInteracted", "isDisabled", "state", "reason", "staticValidators", "validators", "formControl", "finalMessage", "invalidKeys", "str", "__decorateClass", "property", "urlAlphabet", "nanoid", "size", "id", "bytes", "urlAlphabet", "uniqueId", "prefix", "nanoid", "html", "property", "state", "css", "reset", "components", "css", "toggleStyles", "WRadio", "BaseFormAssociatedElement", "changedProperties", "effectivelyDisabled", "html", "reset", "toggleStyles", "__decorateClass", "state", "property", "RequiredValidator", "options", "validationElement", "validationProperty", "obj", "element", "_a", "validity", "HasSlotController", "host", "slotNames", "event", "slot", "node", "_a", "el", "name", "slotName", "css", "styles", "WRadioGroup", "BaseFormAssociatedElement", "HasSlotController", "clickedRadio", "oldValue", "radios", "radio", "validators", "RequiredValidator", "uniqueId", "_a", "val", "changedProperties", "args", "hasRadioButtons", "index", "enabledRadios", "checkedRadio", "event", "_b", "_c", "incr", "options", "checked", "firstEnabledRadio", "radioToFocus", "hasLabelSlot", "hasHintSlot", "hasLabel", "hasHint", "html", "classMap", "styles", "__decorateClass", "state", "query", "property"]
7
- }
@@ -1,7 +0,0 @@
1
- import { WRadioGroup } from './radio-group.js';
2
- export declare const RadioGroup: import("@lit/react").ReactWebComponent<WRadioGroup, {
3
- onInput: string;
4
- oninput: string;
5
- onChange: string;
6
- onchange: string;
7
- }>;
@@ -1,17 +0,0 @@
1
- import { createComponent } from '@lit/react';
2
- import { LitElement } from 'lit';
3
- import React from 'react';
4
- // decouple from CDN by providing a dummy class
5
- class Component extends LitElement {
6
- }
7
- export const RadioGroup = createComponent({
8
- tagName: 'w-radio-group',
9
- elementClass: Component,
10
- react: React,
11
- events: {
12
- onInput: 'input',
13
- oninput: 'input',
14
- onChange: 'change',
15
- onchange: 'change',
16
- },
17
- });
@@ -1,2 +0,0 @@
1
- import { WarpSlider } from './slider.js';
2
- export declare const Slider: import("@lit/react").ReactWebComponent<WarpSlider, {}>;
@@ -1,8 +0,0 @@
1
- import { createComponent } from '@lit/react';
2
- import React from 'react';
3
- import { WarpSlider } from './slider.js';
4
- export const Slider = createComponent({
5
- tagName: 'w-slider',
6
- elementClass: WarpSlider,
7
- react: React,
8
- });
@@ -1,2 +0,0 @@
1
- export * from '../slider-thumb/slider-thumb.js';
2
- export * from './slider.js';
@@ -1,2 +0,0 @@
1
- export * from '../slider-thumb/slider-thumb.js';
2
- export * from './slider.js';
@@ -1 +0,0 @@
1
- export const messages: any;
@@ -1 +0,0 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maksimumværdien må ikke være mindre end minimumværdien\"],\"slider.error.required\":[\"Dette felt er påkrævet\"],\"slider.error.out_of_bounds\":[\"Værdien skal være mellem \",[\"min\"],\" og \",[\"max\"]]}");
@@ -1 +0,0 @@
1
- export const messages: any;
@@ -1 +0,0 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"The maximum value cannot be less than the minimum\"],\"slider.error.required\":[\"This field is required\"],\"slider.error.out_of_bounds\":[\"Value must be between \",[\"min\"],\" and \",[\"max\"]]}");
@@ -1 +0,0 @@
1
- export const messages: any;
@@ -1 +0,0 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maksimiarvo ei voi olla pienempi kuin minimiarvo\"],\"slider.error.required\":[\"Tämä kenttä on pakollinen\"],\"slider.error.out_of_bounds\":[\"Arvon on oltava välillä \",[\"min\"],\" - \",[\"max\"]]}");
@@ -1 +0,0 @@
1
- export const messages: any;
@@ -1 +0,0 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maksimumsverdien kan ikke være mindre enn minimumsverdien\"],\"slider.error.required\":[\"Dette feltet er påkrevd\"],\"slider.error.out_of_bounds\":[\"Verdien må være mellom \",[\"min\"],\" og \",[\"max\"]]}");
@@ -1 +0,0 @@
1
- export const messages: any;
@@ -1 +0,0 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maxvärdet kan inte vara mindre än minimivärdet\"],\"slider.error.required\":[\"Detta fält är obligatoriskt\"],\"slider.error.out_of_bounds\":[\"Värdet måste vara mellan \",[\"min\"],\" och \",[\"max\"]]}");
@@ -1,3 +0,0 @@
1
- import { WarpSlider } from './slider.js';
2
- export { SliderThumb } from '../slider-thumb/react.js';
3
- export declare const Slider: import("@lit/react").ReactWebComponent<WarpSlider, {}>;
@@ -1,13 +0,0 @@
1
- import { createComponent } from '@lit/react';
2
- import { LitElement } from 'lit';
3
- import React from 'react';
4
- // Re-export from split packages
5
- export { SliderThumb } from '../slider-thumb/react.js';
6
- // decouple from CDN by providing a dummy class
7
- class Component extends LitElement {
8
- }
9
- export const Slider = createComponent({
10
- tagName: 'w-slider',
11
- elementClass: Component,
12
- react: React,
13
- });
@@ -1,55 +0,0 @@
1
- import { LitElement, PropertyValues } from 'lit';
2
- /**
3
- * Parent component for sliders (both single and range sliders). Used in combination with a `<w-slider-thumb>`.
4
- *
5
- * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-slider-and-range-slider--docs)
6
- *
7
- * @slot - For single sliders place a `<w-slider-thumb>` in the default slot.
8
- * @slot label - Label for the slider or range slider as a whole.
9
- * @slot description - Optional description between the label and slider.
10
- * @slot from - Range sliders need to place a `<w-slider-thumb>` in the from and to slots.
11
- * @slot to - Range sliders need to place a `<w-slider-thumb>` in the from and to slots.
12
- */
13
- declare class WarpSlider extends LitElement {
14
- #private;
15
- static shadowRootOptions: {
16
- delegatesFocus: boolean;
17
- mode: ShadowRootMode;
18
- serializable?: boolean;
19
- slotAssignment?: SlotAssignmentMode;
20
- };
21
- static styles: import("lit").CSSResult[];
22
- /**
23
- * The slider fieldset label. Required for proper accessibility.
24
- *
25
- * If you need to display HTML, use the `label` slot instead.
26
- */
27
- label: string;
28
- disabled: boolean;
29
- allowValuesOutsideRange: boolean;
30
- error: string;
31
- helpText: string;
32
- invalid: boolean;
33
- /** Ensures a child slider thumb has a value before allowing the containing form to submit. */
34
- required: boolean;
35
- min: string;
36
- max: string;
37
- /** Pass a value similar to step to create visual markers at that interval */
38
- markers: number;
39
- step: number;
40
- /** Suffix used in text input fields and for the min and max values of the slider. */
41
- suffix: string;
42
- /** Function to format the to- and from labels and value in the slider thumb tooltip. */
43
- formatter: (value: string, type: 'to' | 'from') => string;
44
- _invalidMessage: string;
45
- _hasInternalError: boolean;
46
- constructor();
47
- get edgeMin(): string;
48
- get edgeMax(): string;
49
- connectedCallback(): Promise<void>;
50
- updated(changedProperties: PropertyValues<this>): void;
51
- get componentHasError(): boolean;
52
- get errorText(): string;
53
- render(): import("lit").TemplateResult<1>;
54
- }
55
- export { WarpSlider };