@universal-material/web 3.0.135 → 3.0.137

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 (55) hide show
  1. package/button-field/button-field.d.ts +18 -0
  2. package/button-field/button-field.d.ts.map +1 -0
  3. package/button-field/button-field.js +59 -0
  4. package/button-field/button-field.js.map +1 -0
  5. package/button-field/button-field.styles.d.ts +2 -0
  6. package/button-field/button-field.styles.d.ts.map +1 -0
  7. package/button-field/button-field.styles.js +17 -0
  8. package/button-field/button-field.styles.js.map +1 -0
  9. package/checkbox/checkbox.d.ts +1 -1
  10. package/checkbox/checkbox.d.ts.map +1 -1
  11. package/checkbox/checkbox.js +4 -6
  12. package/checkbox/checkbox.js.map +1 -1
  13. package/checkbox/checkbox.styles.d.ts.map +1 -1
  14. package/checkbox/checkbox.styles.js +0 -65
  15. package/checkbox/checkbox.styles.js.map +1 -1
  16. package/custom-elements.json +4803 -3727
  17. package/field/field-base.styles.d.ts.map +1 -1
  18. package/field/field-base.styles.js +1 -0
  19. package/field/field-base.styles.js.map +1 -1
  20. package/index.d.ts +1 -0
  21. package/index.d.ts.map +1 -1
  22. package/index.js +1 -0
  23. package/index.js.map +1 -1
  24. package/package.json +1 -1
  25. package/radio/radio.d.ts +1 -1
  26. package/radio/radio.d.ts.map +1 -1
  27. package/radio/radio.js +1 -2
  28. package/radio/radio.js.map +1 -1
  29. package/radio/radio.styles.d.ts.map +1 -1
  30. package/radio/radio.styles.js +0 -65
  31. package/radio/radio.styles.js.map +1 -1
  32. package/shared/menu-field/menu-field-navigation-controller.d.ts.map +1 -1
  33. package/shared/menu-field/menu-field-navigation-controller.js +0 -1
  34. package/shared/menu-field/menu-field-navigation-controller.js.map +1 -1
  35. package/shared/selection-control/checkbox-base.d.ts +1 -0
  36. package/shared/selection-control/checkbox-base.d.ts.map +1 -0
  37. package/shared/selection-control/checkbox-base.js +7 -0
  38. package/shared/selection-control/checkbox-base.js.map +1 -0
  39. package/shared/selection-control/selection-control-list-item.d.ts.map +1 -1
  40. package/shared/selection-control/selection-control-list-item.js +9 -5
  41. package/shared/selection-control/selection-control-list-item.js.map +1 -1
  42. package/shared/selection-control/selection-control.d.ts +6 -0
  43. package/shared/selection-control/selection-control.d.ts.map +1 -1
  44. package/shared/selection-control/selection-control.js +67 -10
  45. package/shared/selection-control/selection-control.js.map +1 -1
  46. package/shared/selection-control/selection-control.styles.d.ts.map +1 -1
  47. package/shared/selection-control/selection-control.styles.js +0 -1
  48. package/shared/selection-control/selection-control.styles.js.map +1 -1
  49. package/switch/switch.d.ts +1 -1
  50. package/switch/switch.d.ts.map +1 -1
  51. package/switch/switch.js +7 -9
  52. package/switch/switch.js.map +1 -1
  53. package/switch/switch.styles.d.ts.map +1 -1
  54. package/switch/switch.styles.js +0 -65
  55. package/switch/switch.styles.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,wBAAwB,CAAC;AAEhC,MAAM,OAAgB,kBAAmB,SAAQ,UAAU;aACzC,mBAAc,GAAG,IAAI,AAAP,CAAQ;aAEtB,sBAAiB,GAAmB;QAClD,GAAG,UAAU,CAAC,iBAAiB;QAC/B,cAAc,EAAE,IAAI;KACrB,AAHgC,CAG/B;IAQF,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;IAEQ,KAAK,CAAC,OAAsB;QACnC,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAS;IAYjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAID;QACE,KAAK,EAAE,CAAC;QAxCmB,SAAI,GAAuB,EAAE,CAAC;QACf,aAAQ,GAAG,KAAK,CAAC;QAW7D,aAAQ,GAAG,KAAK,CAAC;QACP,cAAS,GAAyB,UAAU,CAAC;QAC7C,iBAAY,GAAG,IAAI,CAAC;QAI9B;;WAEG;QACS,UAAK,GAAG,IAAI,CAAC;QAgBkC,sBAAiB,GAAG,KAAK,CAAC;QAInF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAEQ,YAAY,CAAC,iBAAiC;QACrD,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrC,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAEkB,MAAM;QACvB,MAAM,MAAM,GAAG,IAAI,CAAA;4BACK,IAAI,CAAC,QAAQ;KACpC,CAAC;QAEF,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;iBAG7B,IAAI,CAAC,SAAS;;qBAEV,IAAI,CAAC,iBAAiB;sBACrB,IAAI,CAAC,QAAQ;2CACQ,IAAI,CAAC,eAAe,EAAE;;KAE5D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,CAAQ;QACnB,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;;AAxF4B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAA+B;AACf;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAAkB;AAC7C;IAAf,KAAK,CAAC,OAAO,CAAC;iDAA0B;AAmB7B;IAAX,QAAQ,EAAE;iDAAc;AAGzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDAG3B;AAW0D;IAA1D,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;6DAAmC","sourcesContent":["import { PropertyValues } from '@lit/reactive-element';\nimport { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport '../../ripple/ripple.js';\n\nexport abstract class UmSelectionControl extends LitElement {\n static readonly formAssociated = true;\n\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n protected readonly elementInternals: ElementInternals;\n\n @property({ reflect: true }) name: string | undefined = '';\n @property({ type: Boolean, reflect: true }) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\n }\n\n override focus(options?: FocusOptions) {\n this.input!.focus(options);\n }\n\n #checked = false;\n protected inputType: 'checkbox' | 'radio' = 'checkbox';\n protected renderRipple = true;\n\n protected abstract renderIndicator(): HTMLTemplateResult;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @property({ type: Boolean })\n get checked() {\n return this.input ? this.input.checked : this.#checked;\n }\n set checked(checked: boolean) {\n this.#checked = checked;\n\n if (this.input) {\n this.input.checked = checked;\n }\n\n this.elementInternals.setFormValue(checked ? this.value : null);\n }\n\n @property({ type: Boolean, attribute: 'checked' }) private _checkedAttribute = false;\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n\n this.input.checked = this.#checked;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener('click', this.#handleClick);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.#handleClick);\n }\n\n protected override render(): HTMLTemplateResult {\n const ripple = html`\n <u-ripple ?disabled=${this.disabled}></u-ripple>\n `;\n\n return html`\n <div class=\"container\">\n ${this.renderRipple ? ripple : nothing}\n <input\n id=\"input\"\n type=${this.inputType}\n class=\"focus-ring\"\n .checked=${this._checkedAttribute}\n .disabled=${this.disabled} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>\n `;\n }\n\n #handleClick(e: Event) {\n if (e.defaultPrevented) {\n return;\n }\n\n this.checked = this.inputType === 'radio' || !this.checked;\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }\n}\n"]}
1
+ {"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyValues } from '@lit/reactive-element';\nimport { CSSResultGroup } from '@lit/reactive-element/css-tag';\nimport { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../base.styles.js';\nimport { styles } from './selection-control.styles.js';\n\nimport { redispatchEvent } from '../events/redispatch-event.js';\n\nimport '../../ripple/ripple.js';\n\nexport function isActivationClick(event: Event) {\n // Event must start at the event target.\n if (event.currentTarget !== event.target) {\n return false;\n }\n\n // Event must not be retargeted from shadowRoot.\n if (event.composedPath()[0] !== event.target) {\n return false;\n }\n\n // Target must not be disabled; this should only occur for a synthetically\n // dispatched click.\n if ((event.target as EventTarget & { disabled: boolean }).disabled) {\n return false;\n }\n\n // This is an activation if the event should not be squelched.\n return !squelchEvent(event);\n}\n\n// TODO(https://bugzilla.mozilla.org/show_bug.cgi?id=1804576)\n// Remove when Firefox bug is addressed.\nfunction squelchEvent(event: Event) {\n const squelched = isSquelchingEvents;\n\n if (squelched) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n squelchEventsForMicrotask();\n return squelched;\n}\n\n// Ignore events for one microtask only.\nlet isSquelchingEvents = false;\n\nasync function squelchEventsForMicrotask() {\n isSquelchingEvents = true;\n // Need to pause for just one microtask.\n // tslint:disable-next-line\n await null;\n isSquelchingEvents = false;\n}\n\nexport abstract class UmSelectionControl extends LitElement {\n static override styles: CSSResultGroup = [baseStyles, styles];\n\n static readonly formAssociated = true;\n\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n protected readonly elementInternals: ElementInternals;\n\n @property({ reflect: true }) name: string | undefined = '';\n @property({ type: Boolean, reflect: true }) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\n }\n\n override focus(options?: FocusOptions) {\n this.input!.focus(options);\n }\n\n #checked = false;\n\n protected inputType: 'checkbox' | 'radio' = 'checkbox';\n protected renderRipple = true;\n protected inputDescribedById: string | undefined = undefined;\n protected inputLabelledById: string | undefined = undefined;\n\n protected abstract renderIndicator(): HTMLTemplateResult;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @property({ type: Boolean })\n get checked() {\n return this.input ? this.input.checked : this.#checked;\n }\n set checked(checked: boolean) {\n this.#checked = checked;\n\n if (this.input) {\n this.input.checked = checked;\n }\n\n this.elementInternals.setFormValue(checked ? this.value : null);\n }\n\n @property({ type: Boolean, attribute: 'checked' }) private _checkedAttribute = false;\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n\n this.input.checked = this.#checked;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener('click', this._handleClick);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this._handleClick);\n }\n\n protected override render(): HTMLTemplateResult {\n const ripple = html`\n <u-ripple ?disabled=${this.disabled} @click=${this.#handleRippleClick}></u-ripple>\n `;\n\n return html`\n <div class=\"container\">\n ${this.renderRipple ? ripple : nothing}\n <input\n id=\"input\"\n type=${this.inputType}\n class=\"focus-ring\"\n .checked=${this._checkedAttribute}\n .disabled=${this.disabled}\n aria-labelledby=\"${this.inputLabelledById || nothing}\"\n aria-describedby=\"${this.inputDescribedById || nothing}\"\n @input=${this.#handleInput}\n @change=${this.#handleChange} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>\n `;\n }\n\n #handleInput(event: Event) {\n const target = event.target as HTMLInputElement;\n this.checked = target.checked;\n // <input> 'input' event bubbles and is composed, don't re-dispatch it.\n }\n\n #handleChange(event: Event) {\n // <input> 'change' event is not composed, re-dispatch it.\n redispatchEvent(this, event);\n }\n\n #handleRippleClick(e: Event) {\n e.preventDefault();\n this.input!.click();\n }\n\n protected _handleClick(e: Event) {\n if (isActivationClick(e)) {\n this.input!.click();\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.styles.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAiElB,CAAC"}
1
+ {"version":3,"file":"selection-control.styles.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAgElB,CAAC"}
@@ -34,7 +34,6 @@ export const styles = css `
34
34
  margin: 0;
35
35
  border-radius: inherit;
36
36
  appearance: none;
37
- pointer-events: none;
38
37
  }
39
38
 
40
39
  u-ripple {
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.styles.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_state-layer-padding: var(--u--state-layer-padding, 4px);\n --_input-size: calc(var(--_width) - var(--_state-layer-padding) * 2);\n --_indicator-color: var(--u--indicator-unselected-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n display: inline-block;\n vertical-align: middle;\n }\n\n .container {\n cursor: pointer;\n position: relative;\n width: var(--_width);\n height: var(--_height);\n padding: var(--_state-layer-padding);\n border-radius: var(--u-shape-corner-full, 9999px);\n }\n\n :host([hide-state-layer]) .container {\n width: var(--_indicator-size);\n height: var(--_indicator-size);\n padding: 0;\n }\n :host([hide-state-layer]) u-ripple {\n display: none;\n }\n\n input {\n cursor: pointer;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border-radius: inherit;\n appearance: none;\n pointer-events: none;\n }\n\n u-ripple {\n padding: var(--_state-layer-padding);\n }\n\n .indicator-container {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n pointer-events: none;\n }\n\n input:checked ~ .indicator-container {\n --_indicator-color: var(--u--indicator-selected-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n :host([disabled]) {\n opacity: var(--u--disabled-state-opacity, 0.38);\n }\n :host([disabled]) input,\n :host([disabled]) .container {\n cursor: default;\n }\n :host([disabled]) .indicator-container {\n --_indicator-color: var(--u--indicator-disabled-color, var(--u-color-on-surface, rgb(29, 27, 32)));\n }\n`;\n"]}
1
+ {"version":3,"file":"selection-control.styles.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_state-layer-padding: var(--u--state-layer-padding, 4px);\n --_input-size: calc(var(--_width) - var(--_state-layer-padding) * 2);\n --_indicator-color: var(--u--indicator-unselected-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n display: inline-block;\n vertical-align: middle;\n }\n\n .container {\n cursor: pointer;\n position: relative;\n width: var(--_width);\n height: var(--_height);\n padding: var(--_state-layer-padding);\n border-radius: var(--u-shape-corner-full, 9999px);\n }\n\n :host([hide-state-layer]) .container {\n width: var(--_indicator-size);\n height: var(--_indicator-size);\n padding: 0;\n }\n :host([hide-state-layer]) u-ripple {\n display: none;\n }\n\n input {\n cursor: pointer;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border-radius: inherit;\n appearance: none;\n }\n\n u-ripple {\n padding: var(--_state-layer-padding);\n }\n\n .indicator-container {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n pointer-events: none;\n }\n\n input:checked ~ .indicator-container {\n --_indicator-color: var(--u--indicator-selected-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n :host([disabled]) {\n opacity: var(--u--disabled-state-opacity, 0.38);\n }\n :host([disabled]) input,\n :host([disabled]) .container {\n cursor: default;\n }\n :host([disabled]) .indicator-container {\n --_indicator-color: var(--u--indicator-disabled-color, var(--u-color-on-surface, rgb(29, 27, 32)));\n }\n`;\n"]}
@@ -1,7 +1,7 @@
1
1
  import { HTMLTemplateResult } from 'lit';
2
2
  import { UmSelectionControl } from '../shared/selection-control/selection-control.js';
3
3
  export declare class UmSwitch extends UmSelectionControl {
4
- static styles: import("lit").CSSResult[];
4
+ static styles: import("lit").CSSResultGroup[];
5
5
  constructor();
6
6
  protected renderRipple: boolean;
7
7
  protected renderIndicator(): HTMLTemplateResult;
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/switch/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAM/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAEtF,qBACa,QAAS,SAAQ,kBAAkB;IAC9C,OAAgB,MAAM,4BAGpB;;IAMF,UAAmB,YAAY,UAAS;cAErB,eAAe,IAAI,kBAAkB;CAOzD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,QAAQ,CAAC;KACtB;CACF"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/switch/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAK/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAEtF,qBACa,QAAS,SAAQ,kBAAkB;IAC9C,OAAgB,MAAM,iCAAuC;;IAM7D,UAAmB,YAAY,UAAS;cAErB,eAAe,IAAI,kBAAkB;CASzD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,QAAQ,CAAC;KACtB;CACF"}
package/switch/switch.js CHANGED
@@ -6,24 +6,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { html } from 'lit';
8
8
  import { customElement } from 'lit/decorators.js';
9
- import { styles as baseStyles } from '../shared/base.styles.js';
10
9
  import { styles } from './switch.styles.js';
11
10
  import { UmSelectionControl } from '../shared/selection-control/selection-control.js';
12
11
  let UmSwitch = class UmSwitch extends UmSelectionControl {
13
- static { this.styles = [
14
- baseStyles,
15
- styles
16
- ]; }
12
+ static { this.styles = [UmSelectionControl.styles, styles]; }
17
13
  constructor() {
18
14
  super();
19
15
  this.renderRipple = false;
20
16
  }
21
17
  renderIndicator() {
22
- return html `<div class="indicator">
23
- <div class="state-layer">
24
- <div class="handle"></div>
18
+ return html `
19
+ <div class="indicator">
20
+ <div class="state-layer">
21
+ <div class="handle"></div>
22
+ </div>
25
23
  </div>
26
- </div>`;
24
+ `;
27
25
  }
28
26
  };
29
27
  UmSwitch = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/switch/switch.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAG/E,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,kBAAkB;aAC9B,WAAM,GAAG;QACvB,UAAU;QACV,MAAM;KACP,AAHqB,CAGpB;IAEF;QACE,KAAK,EAAE,CAAC;QAGS,iBAAY,GAAG,KAAK,CAAC;IAFxC,CAAC;IAIkB,eAAe;QAChC,OAAO,IAAI,CAAA;;;;WAIJ,CAAC;IACV,CAAC;;AAlBU,QAAQ;IADpB,aAAa,CAAC,UAAU,CAAC;GACb,QAAQ,CAmBpB","sourcesContent":["import { html, HTMLTemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './switch.styles.js';\n\nimport { UmSelectionControl } from '../shared/selection-control/selection-control.js';\n\n@customElement('u-switch')\nexport class UmSwitch extends UmSelectionControl {\n static override styles = [\n baseStyles,\n styles\n ];\n\n constructor() {\n super();\n }\n\n protected override renderRipple = false;\n\n protected override renderIndicator(): HTMLTemplateResult {\n return html`<div class=\"indicator\">\n <div class=\"state-layer\">\n <div class=\"handle\"></div>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-switch': UmSwitch;\n }\n}\n"]}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/switch/switch.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAG/E,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,kBAAkB;aAC9B,WAAM,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,AAAtC,CAAuC;IAE7D;QACE,KAAK,EAAE,CAAC;QAGS,iBAAY,GAAG,KAAK,CAAC;IAFxC,CAAC;IAIkB,eAAe;QAChC,OAAO,IAAI,CAAA;;;;;;KAMV,CAAC;IACJ,CAAC;;AAjBU,QAAQ;IADpB,aAAa,CAAC,UAAU,CAAC;GACb,QAAQ,CAkBpB","sourcesContent":["import { html, HTMLTemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles } from './switch.styles.js';\n\nimport { UmSelectionControl } from '../shared/selection-control/selection-control.js';\n\n@customElement('u-switch')\nexport class UmSwitch extends UmSelectionControl {\n static override styles = [UmSelectionControl.styles, styles];\n\n constructor() {\n super();\n }\n\n protected override renderRipple = false;\n\n protected override renderIndicator(): HTMLTemplateResult {\n return html`\n <div class=\"indicator\">\n <div class=\"state-layer\">\n <div class=\"handle\"></div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-switch': UmSwitch;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"switch.styles.d.ts","sourceRoot":"","sources":["../../src/switch/switch.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA4IlB,CAAC"}
1
+ {"version":3,"file":"switch.styles.d.ts","sourceRoot":"","sources":["../../src/switch/switch.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA2ElB,CAAC"}
@@ -1,70 +1,5 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `
3
- :host {
4
- --_state-layer-padding: var(--u-switch-state-layer-padding, 4px);
5
- --_input-size: calc(var(--_width) - var(--_state-layer-padding) * 2);
6
- --_indicator-color: var(--u-switch-indicator-unselected-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
7
- display: inline-block;
8
- vertical-align: middle;
9
- }
10
-
11
- .container {
12
- cursor: pointer;
13
- position: relative;
14
- width: var(--_width);
15
- height: var(--_height);
16
- padding: var(--_state-layer-padding);
17
- border-radius: var(--u-shape-corner-full, 9999px);
18
- }
19
-
20
- :host([hide-state-layer]) .container {
21
- width: var(--_indicator-size);
22
- height: var(--_indicator-size);
23
- padding: 0;
24
- }
25
- :host([hide-state-layer]) u-ripple {
26
- display: none;
27
- }
28
-
29
- input {
30
- cursor: pointer;
31
- width: 100%;
32
- height: 100%;
33
- padding: 0;
34
- margin: 0;
35
- border-radius: inherit;
36
- appearance: none;
37
- pointer-events: none;
38
- }
39
-
40
- u-ripple {
41
- padding: var(--_state-layer-padding);
42
- }
43
-
44
- .indicator-container {
45
- position: absolute;
46
- display: flex;
47
- align-items: center;
48
- justify-content: center;
49
- inset: 0;
50
- pointer-events: none;
51
- }
52
-
53
- input:checked ~ .indicator-container {
54
- --_indicator-color: var(--u-switch-indicator-selected-color, var(--u-color-primary, rgb(103, 80, 164)));
55
- }
56
-
57
- :host([disabled]) {
58
- opacity: var(--u-switch-disabled-state-opacity, 0.38);
59
- }
60
- :host([disabled]) input,
61
- :host([disabled]) .container {
62
- cursor: default;
63
- }
64
- :host([disabled]) .indicator-container {
65
- --_indicator-color: var(--u-switch-indicator-disabled-color, var(--u-color-on-surface, rgb(29, 27, 32)));
66
- }
67
-
68
3
  :host {
69
4
  --_width: 3.25rem;
70
5
  --_height: 2rem;
@@ -1 +1 @@
1
- {"version":3,"file":"switch.styles.js","sourceRoot":"","sources":["../../src/switch/switch.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4IzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_state-layer-padding: var(--u-switch-state-layer-padding, 4px);\n --_input-size: calc(var(--_width) - var(--_state-layer-padding) * 2);\n --_indicator-color: var(--u-switch-indicator-unselected-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n display: inline-block;\n vertical-align: middle;\n }\n\n .container {\n cursor: pointer;\n position: relative;\n width: var(--_width);\n height: var(--_height);\n padding: var(--_state-layer-padding);\n border-radius: var(--u-shape-corner-full, 9999px);\n }\n\n :host([hide-state-layer]) .container {\n width: var(--_indicator-size);\n height: var(--_indicator-size);\n padding: 0;\n }\n :host([hide-state-layer]) u-ripple {\n display: none;\n }\n\n input {\n cursor: pointer;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border-radius: inherit;\n appearance: none;\n pointer-events: none;\n }\n\n u-ripple {\n padding: var(--_state-layer-padding);\n }\n\n .indicator-container {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n pointer-events: none;\n }\n\n input:checked ~ .indicator-container {\n --_indicator-color: var(--u-switch-indicator-selected-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n :host([disabled]) {\n opacity: var(--u-switch-disabled-state-opacity, 0.38);\n }\n :host([disabled]) input,\n :host([disabled]) .container {\n cursor: default;\n }\n :host([disabled]) .indicator-container {\n --_indicator-color: var(--u-switch-indicator-disabled-color, var(--u-color-on-surface, rgb(29, 27, 32)));\n }\n\n :host {\n --_width: 3.25rem;\n --_height: 2rem;\n --_state-layer-padding: 0;\n --_selected-track-background: var(--u-switch-track-bg-color, var(--u-color-primary, rgb(103, 80, 164)));\n --_state-layer-size: var(--u-switch-state-layer-size, 2.5rem);\n --_unselected-color: var(--u-switch-track-outline-color, var(--u-color-outline, rgb(121, 116, 126)));\n --_unselected-handle-size: var(--u-swich-unselected-handle-size, 1rem);\n --_selected-handle-size: var(--u-swich-unselected-handle-size, 1.5rem);\n --_active-handle-size: var(--u-swich-unselected-handle-size, 1.75rem);\n }\n\n .indicator-container {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: var(--_height);\n transition: width 200ms;\n }\n\n .state-layer,\n .indicator {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .indicator {\n width: var(--_height);\n height: var(--_height);\n }\n\n .state-layer {\n flex-shrink: 0;\n width: var(--_state-layer-size);\n height: var(--_state-layer-size);\n border-radius: var(--u-shape-corner-full, 9999px);\n }\n\n .handle {\n width: var(--_unselected-handle-size);\n height: var(--_unselected-handle-size);\n background-color: var(--u-switch-unselected-handle-color, var(--_unselected-color));\n border-radius: var(--u-switch-handle-shape-corner, var(--u-shape-corner-full, 9999px));\n transition: background 200ms, width 200ms, height 200ms;\n }\n\n input {\n border: var(--u-switch-track-width, 0.125rem) solid var(--u-switch-unselected-track-outline-color, var(--_unselected-color));\n background-color: var(--u-switch-unselected-track-bg-color, var(--u-color-surface-container-highest, rgb(230, 224, 233)));\n transition: background 200ms, border-color 200ms;\n }\n input:checked {\n background-color: var(--_selected-track-background);\n border-color: var(--_selected-track-background);\n }\n input:checked ~ .indicator-container {\n width: 100%;\n }\n input:checked ~ .indicator-container .handle {\n width: var(--_selected-handle-size);\n height: var(--_selected-handle-size);\n background-color: var(--u-switch-selected-handle-color, var(--u-color-on-primary, rgb(255, 255, 255)));\n }\n\n @media (hover: hover) {\n :host(:not([disabled]):hover) .state-layer {\n background-color: rgba(var(--u-color-on-surface-rgb, ), var(--u-switch-state-layer-hover-opacity, var(--u-state-hover-opacity, 0.08)));\n }\n }\n :host(:not([disabled]):active) .indicator-container .handle {\n width: var(--_active-handle-size);\n height: var(--_active-handle-size);\n }\n`;\n"]}
1
+ {"version":3,"file":"switch.styles.js","sourceRoot":"","sources":["../../src/switch/switch.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_width: 3.25rem;\n --_height: 2rem;\n --_state-layer-padding: 0;\n --_selected-track-background: var(--u-switch-track-bg-color, var(--u-color-primary, rgb(103, 80, 164)));\n --_state-layer-size: var(--u-switch-state-layer-size, 2.5rem);\n --_unselected-color: var(--u-switch-track-outline-color, var(--u-color-outline, rgb(121, 116, 126)));\n --_unselected-handle-size: var(--u-swich-unselected-handle-size, 1rem);\n --_selected-handle-size: var(--u-swich-unselected-handle-size, 1.5rem);\n --_active-handle-size: var(--u-swich-unselected-handle-size, 1.75rem);\n }\n\n .indicator-container {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: var(--_height);\n transition: width 200ms;\n }\n\n .state-layer,\n .indicator {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .indicator {\n width: var(--_height);\n height: var(--_height);\n }\n\n .state-layer {\n flex-shrink: 0;\n width: var(--_state-layer-size);\n height: var(--_state-layer-size);\n border-radius: var(--u-shape-corner-full, 9999px);\n }\n\n .handle {\n width: var(--_unselected-handle-size);\n height: var(--_unselected-handle-size);\n background-color: var(--u-switch-unselected-handle-color, var(--_unselected-color));\n border-radius: var(--u-switch-handle-shape-corner, var(--u-shape-corner-full, 9999px));\n transition: background 200ms, width 200ms, height 200ms;\n }\n\n input {\n border: var(--u-switch-track-width, 0.125rem) solid var(--u-switch-unselected-track-outline-color, var(--_unselected-color));\n background-color: var(--u-switch-unselected-track-bg-color, var(--u-color-surface-container-highest, rgb(230, 224, 233)));\n transition: background 200ms, border-color 200ms;\n }\n input:checked {\n background-color: var(--_selected-track-background);\n border-color: var(--_selected-track-background);\n }\n input:checked ~ .indicator-container {\n width: 100%;\n }\n input:checked ~ .indicator-container .handle {\n width: var(--_selected-handle-size);\n height: var(--_selected-handle-size);\n background-color: var(--u-switch-selected-handle-color, var(--u-color-on-primary, rgb(255, 255, 255)));\n }\n\n @media (hover: hover) {\n :host(:not([disabled]):hover) .state-layer {\n background-color: rgba(var(--u-color-on-surface-rgb, ), var(--u-switch-state-layer-hover-opacity, var(--u-state-hover-opacity, 0.08)));\n }\n }\n :host(:not([disabled]):active) .indicator-container .handle {\n width: var(--_active-handle-size);\n height: var(--_active-handle-size);\n }\n`;\n"]}