@universal-material/web 3.0.35 → 3.0.37

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 (141) hide show
  1. package/button/button-base.d.ts.map +1 -1
  2. package/button/button-base.js.map +1 -1
  3. package/button/button-set.d.ts +3 -8
  4. package/button/button-set.d.ts.map +1 -1
  5. package/button/button-set.js +3 -13
  6. package/button/button-set.js.map +1 -1
  7. package/button/button.d.ts.map +1 -1
  8. package/button/button.js +2 -3
  9. package/button/button.js.map +1 -1
  10. package/button/button.styles.d.ts.map +1 -1
  11. package/button/button.styles.js +98 -0
  12. package/button/button.styles.js.map +1 -1
  13. package/button/fab.d.ts.map +1 -1
  14. package/button/fab.js +2 -3
  15. package/button/fab.js.map +1 -1
  16. package/button/fab.styles.d.ts.map +1 -1
  17. package/button/fab.styles.js +98 -0
  18. package/button/fab.styles.js.map +1 -1
  19. package/button/icon-button.d.ts +2 -3
  20. package/button/icon-button.d.ts.map +1 -1
  21. package/button/icon-button.js +6 -6
  22. package/button/icon-button.js.map +1 -1
  23. package/button/icon-button.styles.d.ts.map +1 -1
  24. package/button/icon-button.styles.js +98 -0
  25. package/button/icon-button.styles.js.map +1 -1
  26. package/checkbox/checkbox-list-item.d.ts +1 -1
  27. package/checkbox/checkbox.d.ts.map +1 -1
  28. package/checkbox/checkbox.js +1 -1
  29. package/checkbox/checkbox.js.map +1 -1
  30. package/chip/chip-set.d.ts +10 -0
  31. package/chip/chip-set.d.ts.map +1 -0
  32. package/chip/chip-set.js +17 -0
  33. package/chip/chip-set.js.map +1 -0
  34. package/{shared/button-wrapper.styles.d.ts → chip/chip-set.styles.d.ts} +1 -1
  35. package/chip/chip-set.styles.d.ts.map +1 -0
  36. package/chip/chip-set.styles.js +26 -0
  37. package/chip/chip-set.styles.js.map +1 -0
  38. package/chip/chip.d.ts +56 -0
  39. package/chip/chip.d.ts.map +1 -0
  40. package/chip/chip.js +158 -0
  41. package/chip/chip.js.map +1 -0
  42. package/chip/chip.styles.d.ts +2 -0
  43. package/chip/chip.styles.d.ts.map +1 -0
  44. package/chip/chip.styles.js +216 -0
  45. package/chip/chip.styles.js.map +1 -0
  46. package/custom-elements.json +5516 -3955
  47. package/field/field.d.ts.map +1 -1
  48. package/field/field.js +6 -2
  49. package/field/field.js.map +1 -1
  50. package/field/field.styles.d.ts.map +1 -1
  51. package/field/field.styles.js +32 -19
  52. package/field/field.styles.js.map +1 -1
  53. package/index.d.ts +8 -0
  54. package/index.d.ts.map +1 -1
  55. package/index.js +8 -0
  56. package/index.js.map +1 -1
  57. package/menu/menu-item.d.ts.map +1 -1
  58. package/menu/menu-item.js +1 -3
  59. package/menu/menu-item.js.map +1 -1
  60. package/menu/menu-item.styles.d.ts.map +1 -1
  61. package/menu/menu-item.styles.js +85 -0
  62. package/menu/menu-item.styles.js.map +1 -1
  63. package/menu/menu.d.ts +1 -0
  64. package/menu/menu.d.ts.map +1 -1
  65. package/menu/menu.js +12 -1
  66. package/menu/menu.js.map +1 -1
  67. package/navigation/drawer-item.d.ts.map +1 -1
  68. package/navigation/drawer-item.js +1 -3
  69. package/navigation/drawer-item.js.map +1 -1
  70. package/navigation/drawer-item.styles.d.ts.map +1 -1
  71. package/navigation/drawer-item.styles.js +85 -0
  72. package/navigation/drawer-item.styles.js.map +1 -1
  73. package/navigation/side-navigation.d.ts.map +1 -1
  74. package/navigation/side-navigation.js +1 -1
  75. package/navigation/side-navigation.js.map +1 -1
  76. package/package.json +1 -1
  77. package/radio/radio-list-item.d.ts +1 -1
  78. package/radio/radio.d.ts.map +1 -1
  79. package/radio/radio.js +1 -1
  80. package/radio/radio.js.map +1 -1
  81. package/shared/button-wrapper.d.ts +4 -4
  82. package/shared/button-wrapper.d.ts.map +1 -1
  83. package/shared/button-wrapper.js +29 -17
  84. package/shared/button-wrapper.js.map +1 -1
  85. package/shared/mixin-attribute-properties.d.ts +4 -0
  86. package/shared/mixin-attribute-properties.d.ts.map +1 -0
  87. package/shared/mixin-attribute-properties.js +27 -0
  88. package/shared/mixin-attribute-properties.js.map +1 -0
  89. package/shared/mixin.d.ts +3 -0
  90. package/shared/mixin.d.ts.map +1 -0
  91. package/shared/mixin.js +2 -0
  92. package/shared/mixin.js.map +1 -0
  93. package/shared/normalize-text.d.ts +2 -0
  94. package/shared/normalize-text.d.ts.map +1 -0
  95. package/shared/normalize-text.js +9 -0
  96. package/shared/normalize-text.js.map +1 -0
  97. package/shared/redispatch-event.d.ts +2 -0
  98. package/shared/redispatch-event.d.ts.map +1 -0
  99. package/shared/redispatch-event.js +14 -0
  100. package/shared/redispatch-event.js.map +1 -0
  101. package/shared/selection-control/selection-control-list-item.d.ts +2 -3
  102. package/shared/selection-control/selection-control-list-item.d.ts.map +1 -1
  103. package/shared/selection-control/selection-control-list-item.js +6 -6
  104. package/shared/selection-control/selection-control-list-item.js.map +1 -1
  105. package/shared/selection-control/selection-control.d.ts.map +1 -1
  106. package/shared/selection-control/selection-control.js +7 -2
  107. package/shared/selection-control/selection-control.js.map +1 -1
  108. package/shared/sets/set-base.d.ts +9 -0
  109. package/shared/sets/set-base.d.ts.map +1 -0
  110. package/shared/sets/set-base.js +25 -0
  111. package/shared/sets/set-base.js.map +1 -0
  112. package/switch/switch-list-item.d.ts +1 -1
  113. package/switch/switch.d.ts.map +1 -1
  114. package/switch/switch.js +1 -1
  115. package/switch/switch.js.map +1 -1
  116. package/text-field/text-field.d.ts +14 -1
  117. package/text-field/text-field.d.ts.map +1 -1
  118. package/text-field/text-field.js +67 -7
  119. package/text-field/text-field.js.map +1 -1
  120. package/text-field/text-field.styles.d.ts.map +1 -1
  121. package/text-field/text-field.styles.js +19 -0
  122. package/text-field/text-field.styles.js.map +1 -1
  123. package/typeahead/highlight.d.ts +24 -0
  124. package/typeahead/highlight.d.ts.map +1 -0
  125. package/typeahead/highlight.js +95 -0
  126. package/typeahead/highlight.js.map +1 -0
  127. package/typeahead/highlight.styles.d.ts +2 -0
  128. package/typeahead/highlight.styles.d.ts.map +1 -0
  129. package/typeahead/highlight.styles.js +5 -0
  130. package/typeahead/highlight.styles.js.map +1 -0
  131. package/typeahead/typeahead.d.ts +37 -0
  132. package/typeahead/typeahead.d.ts.map +1 -0
  133. package/typeahead/typeahead.js +241 -0
  134. package/typeahead/typeahead.js.map +1 -0
  135. package/typeahead/typeahead.styles.d.ts +2 -0
  136. package/typeahead/typeahead.styles.d.ts.map +1 -0
  137. package/typeahead/typeahead.styles.js +7 -0
  138. package/typeahead/typeahead.styles.js.map +1 -0
  139. package/shared/button-wrapper.styles.d.ts.map +0 -1
  140. package/shared/button-wrapper.styles.js +0 -93
  141. package/shared/button-wrapper.styles.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-text.d.ts","sourceRoot":"","sources":["../../src/shared/normalize-text.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD"}
@@ -0,0 +1,9 @@
1
+ export function normalizeText(text) {
2
+ if (!text) {
3
+ return text;
4
+ }
5
+ return text
6
+ .normalize('NFD')
7
+ .replace(/[\u0300-\u036f]/g, '');
8
+ }
9
+ //# sourceMappingURL=normalize-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-text.js","sourceRoot":"","sources":["../../src/shared/normalize-text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI;SACR,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC","sourcesContent":["export function normalizeText(text: string): string {\n if (!text) {\n return text;\n }\n\n return text\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function redispatchEvent(element: Element, event: Event): boolean;
2
+ //# sourceMappingURL=redispatch-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redispatch-event.d.ts","sourceRoot":"","sources":["../../src/shared/redispatch-event.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,WAe7D"}
@@ -0,0 +1,14 @@
1
+ export function redispatchEvent(element, event) {
2
+ // For bubbling events in SSR light DOM (or composed), stop their propagation
3
+ // and dispatch the copy.
4
+ if (event.bubbles && (!element.shadowRoot || event.composed)) {
5
+ event.stopPropagation();
6
+ }
7
+ const copy = Reflect.construct(event.constructor, [event.type, event]);
8
+ const dispatched = element.dispatchEvent(copy);
9
+ if (!dispatched) {
10
+ event.preventDefault();
11
+ }
12
+ return dispatched;
13
+ }
14
+ //# sourceMappingURL=redispatch-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redispatch-event.js","sourceRoot":"","sources":["../../src/shared/redispatch-event.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAY;IAC5D,6EAA6E;IAC7E,yBAAyB;IACzB,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["export function redispatchEvent(element: Element, event: Event) {\n // For bubbling events in SSR light DOM (or composed), stop their propagation\n // and dispatch the copy.\n if (event.bubbles && (!element.shadowRoot || event.composed)) {\n event.stopPropagation();\n }\n\n const copy = Reflect.construct(event.constructor, [event.type, event]);\n const dispatched = element.dispatchEvent(copy);\n\n if (!dispatched) {\n event.preventDefault();\n }\n\n return dispatched;\n}\n"]}
@@ -1,5 +1,4 @@
1
+ import { MixinBase, MixinReturn } from '../mixin.js';
1
2
  import { UmSelectionControl } from './selection-control.js';
2
- export type MixinBase<ExpectedBase = object> = abstract new (...args: any[]) => ExpectedBase;
3
- export type MixinReturn<MixinBase, MixinClass = object> = (abstract new (...args: any[]) => MixinClass) & MixinBase;
4
- export declare const mixinSelectionControlListItem: <T extends MixinBase<UmSelectionControl>>(base: T) => MixinReturn<T, object>;
3
+ export declare const mixinSelectionControlListItem: <T extends MixinBase<UmSelectionControl>>(base: T) => MixinReturn<T>;
5
4
  //# sourceMappingURL=selection-control-list-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control-list-item.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,MAAM,SAAS,CAAC,YAAY,GAAG,MAAM,IAAI,QAAQ,MAGrD,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,YAAY,CAAC;AAElB,MAAM,MAAM,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,IAGpD,CAAC,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,CAAC,GAAG,SAAS,CAAC;AAG5D,eAAO,MAAM,6BAA6B,8EAuBzC,CAAA"}
1
+ {"version":3,"file":"selection-control-list-item.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,eAAO,MAAM,6BAA6B,sEAuBzC,CAAA"}
@@ -5,12 +5,12 @@ export const mixinSelectionControlListItem = (base) => {
5
5
  class SelectionControlListItem extends base {
6
6
  render() {
7
7
  return html `
8
- <u-list-item ?selectable=${!this.disabled}>
9
- <slot></slot>
10
- <div slot="trailing">
11
- ${super.render()}
12
- </div>
13
- </u-list-item>`;
8
+ <u-list-item ?selectable=${!this.disabled}>
9
+ <label for="input"><slot></slot></label>
10
+ <div slot="trailing">
11
+ ${super.render()}
12
+ </div>
13
+ </u-list-item>`;
14
14
  }
15
15
  }
16
16
  SelectionControlListItem.styles = [
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control-list-item.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAehE,aAAa;AACb,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAA0C,IAAO,EAAkB,EAAE;IAChH,aAAa;IACb,MAAe,wBAAyB,SAAQ,IAAI;QASzC,MAAM;YACb,OAAO,IAAI,CAAA;mCACkB,CAAC,IAAI,CAAC,QAAQ;;;cAGnC,KAAK,CAAC,MAAM,EAAE;;uBAEL,CAAC;QACpB,CAAC;;IAhBM,+BAAM,GAAG;QACb,IAAqC,CAAC,MAAM,IAAI,EAAE;QACnD,GAAG,CAAA;;;QAGD;KACH,CAAC;IAaJ,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAA","sourcesContent":["import { css, html, HTMLTemplateResult, LitElement } from 'lit';\n\nimport { UmSelectionControl } from './selection-control.js';\n\nexport type MixinBase<ExpectedBase = object> = abstract new (\n // Mixins must have a constructor with `...args: any[]`\n // @ts-ignore\n ...args: any[]\n) => ExpectedBase;\n\nexport type MixinReturn<MixinBase, MixinClass = object> =\n// Mixins must have a constructor with `...args: any[]`\n// tslint:disable-next-line:no-any\n (abstract new (...args: any[]) => MixinClass) & MixinBase;\n\n// @ts-ignore\nexport const mixinSelectionControlListItem = <T extends MixinBase<UmSelectionControl>>(base: T): MixinReturn<T> => {\n // @ts-ignore\n abstract class SelectionControlListItem extends base {\n static styles = [\n (base as unknown as typeof LitElement).styles ?? [],\n css`:host {\n --u-list-item-block-padding: 0;\n display: block;\n }`\n ];\n\n override render(): HTMLTemplateResult {\n return html`\n <u-list-item ?selectable=${!this.disabled}>\n <slot></slot>\n <div slot=\"trailing\">\n ${super.render()}\n </div>\n </u-list-item>`;\n }\n }\n\n return SelectionControlListItem;\n}\n"]}
1
+ {"version":3,"file":"selection-control-list-item.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAKhE,aAAa;AACb,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAA0C,IAAO,EAAkB,EAAE;IAChH,aAAa;IACb,MAAe,wBAAyB,SAAQ,IAAI;QASzC,MAAM;YACb,OAAO,IAAI,CAAA;qCACoB,CAAC,IAAI,CAAC,QAAQ;;;gBAGnC,KAAK,CAAC,MAAM,EAAE;;yBAEL,CAAC;QACtB,CAAC;;IAhBM,+BAAM,GAAG;QACb,IAAqC,CAAC,MAAM,IAAI,EAAE;QACnD,GAAG,CAAA;;;QAGD;KACH,CAAC;IAaJ,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAA","sourcesContent":["import { css, html, HTMLTemplateResult, LitElement } from 'lit';\n\nimport { MixinBase, MixinReturn } from '../mixin.js';\nimport { UmSelectionControl } from './selection-control.js';\n\n// @ts-ignore\nexport const mixinSelectionControlListItem = <T extends MixinBase<UmSelectionControl>>(base: T): MixinReturn<T> => {\n // @ts-ignore\n abstract class SelectionControlListItem extends base {\n static styles = [\n (base as unknown as typeof LitElement).styles ?? [],\n css`:host {\n --u-list-item-block-padding: 0;\n display: block;\n }`\n ];\n\n override render(): HTMLTemplateResult {\n return html`\n <u-list-item ?selectable=${!this.disabled}>\n <label for=\"input\"><slot></slot></label>\n <div slot=\"trailing\">\n ${super.render()}\n </div>\n </u-list-item>`;\n }\n }\n\n return SelectionControlListItem;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAGpE,OAAO,wBAAwB,CAAC;AAEhC,8BAAsB,kBAAmB,SAAQ,UAAU;;IACzD,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAM;IACA,QAAQ,UAAS;IAC3C,KAAK,EAAG,gBAAgB,CAAC;IAKzC,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAGD,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAc;IACvD,SAAS,CAAC,YAAY,UAAQ;IAE9B,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAExD;;OAEG;IACS,KAAK,SAAQ;IAEzB,IACI,OAAO,IAGQ,OAAO,CADzB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAGzB;IAED,SAAS;IAKA,iBAAiB;IAKjB,oBAAoB;cAKV,MAAM,IAAI,kBAAkB;CAoBhD"}
1
+ {"version":3,"file":"selection-control.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAGpE,OAAO,wBAAwB,CAAC;AAEhC,8BAAsB,kBAAmB,SAAQ,UAAU;;IACzD,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAM;IACA,QAAQ,UAAS;IAC3C,KAAK,EAAG,gBAAgB,CAAC;IAKzC,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAGD,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAc;IACvD,SAAS,CAAC,YAAY,UAAQ;IAE9B,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAExD;;OAEG;IACS,KAAK,SAAQ;IAEzB,IACI,OAAO,IAGQ,OAAO,CADzB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAGzB;IAED,SAAS;IAKA,iBAAiB;IAKjB,oBAAoB;cAKV,MAAM,IAAI,kBAAkB;CA0BhD"}
@@ -60,17 +60,22 @@ export class UmSelectionControl extends LitElement {
60
60
  <div class="container">
61
61
  ${this.renderRipple ? ripple : nothing}
62
62
  <input
63
+ id="input"
63
64
  type=${this.inputType}
64
65
  class="focus-ring"
65
- ?name=${this.name}
66
+ .name=${this.name}
66
67
  .checked=${__classPrivateFieldGet(this, _UmSelectionControl_checked, "f")}
67
68
  .disabled=${this.disabled} />
68
69
  <div class="indicator-container">${this.renderIndicator()}</div>
69
70
  </div>`;
70
71
  }
71
72
  }
72
- _UmSelectionControl_checked = new WeakMap(), _UmSelectionControl_instances = new WeakSet(), _UmSelectionControl_handleClick = function _UmSelectionControl_handleClick() {
73
+ _UmSelectionControl_checked = new WeakMap(), _UmSelectionControl_instances = new WeakSet(), _UmSelectionControl_handleClick = function _UmSelectionControl_handleClick(e) {
74
+ if (e.defaultPrevented) {
75
+ return;
76
+ }
73
77
  this.checked = this.inputType === 'radio' || !this.checked;
78
+ this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
74
79
  this.dispatchEvent(new Event('change', { bubbles: true }));
75
80
  };
76
81
  UmSelectionControl.formAssociated = true;
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,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;IASzD,2BAA2B;IAC3B,oBAAoB;IAEpB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;IAcD,IAAI,OAAO;QACT,OAAO,uBAAA,IAAI,mCAAS,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,KAAc;QACxB,uBAAA,IAAI,+BAAY,KAAK,MAAA,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;QACE,KAAK,EAAE,CAAC;;QAhCE,SAAI,GAAuB,EAAE,CAAC;QACA,aAAQ,GAAG,KAAK,CAAC;QAU3D,sCAAW,KAAK,EAAC;QACP,cAAS,GAAyB,UAAU,CAAC;QAC7C,iBAAY,GAAG,IAAI,CAAC;QAI9B;;WAEG;QACS,UAAK,GAAG,IAAI,CAAC;QAavB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,uBAAA,IAAI,sEAAa,CAAC,CAAC;IACpD,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,uBAAA,IAAI,sEAAa,CAAC,CAAA;IACtD,CAAC;IAEkB,MAAM;QACvB,MAAM,MAAM,GAAG,IAAI,CAAA,uBAAuB,IAAI,CAAC,QAAQ,cAAc,CAAC;QAEtE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;iBAE7B,IAAI,CAAC,SAAS;;kBAEb,IAAI,CAAC,IAAI;qBACN,uBAAA,IAAI,mCAAS;sBACZ,IAAI,CAAC,QAAQ;2CACQ,IAAI,CAAC,eAAe,EAAE;aACpD,CAAC;IACZ,CAAC;;;IAGC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AArEe,iCAAc,GAAG,IAAI,AAAP,CAAQ;AAI1B;IAAX,QAAQ,EAAE;gDAA+B;AACA;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;oDAAkB;AAC3C;IAAf,KAAK,CAAC,OAAO,CAAC;iDAA0B;AAkB7B;IAAX,QAAQ,EAAE;iDAAc;AAGzB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDAGzB","sourcesContent":["import { 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 protected readonly elementInternals: ElementInternals;\n\n @property() name: string | undefined = '';\n @property({type: Boolean, reflect: true}) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n // eslint-disable-next-line\n // #value: any = '';\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\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.#checked;\n }\n set checked(value: boolean) {\n this.#checked = value;\n this.elementInternals.setFormValue(value ? this.value : null);\n }\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override connectedCallback() {\n super.connectedCallback();\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`<u-ripple ?disabled=${this.disabled}></u-ripple>`;\n\n return html`\n <div class=\"container\">\n ${this.renderRipple ? ripple : nothing}\n <input\n type=${this.inputType}\n class=\"focus-ring\"\n ?name=${this.name}\n .checked=${this.#checked}\n .disabled=${this.disabled} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>`;\n }\n\n #handleClick() {\n this.checked = this.inputType === 'radio' || !this.checked;\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":";;;;;;;;;;;;;;;;;;AAAA,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;IASzD,2BAA2B;IAC3B,oBAAoB;IAEpB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;IAcD,IAAI,OAAO;QACT,OAAO,uBAAA,IAAI,mCAAS,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,KAAc;QACxB,uBAAA,IAAI,+BAAY,KAAK,MAAA,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;QACE,KAAK,EAAE,CAAC;;QAhCE,SAAI,GAAuB,EAAE,CAAC;QACA,aAAQ,GAAG,KAAK,CAAC;QAU3D,sCAAW,KAAK,EAAC;QACP,cAAS,GAAyB,UAAU,CAAC;QAC7C,iBAAY,GAAG,IAAI,CAAC;QAI9B;;WAEG;QACS,UAAK,GAAG,IAAI,CAAC;QAavB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,uBAAA,IAAI,sEAAa,CAAC,CAAC;IACpD,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,uBAAA,IAAI,sEAAa,CAAC,CAAA;IACtD,CAAC;IAEkB,MAAM;QACvB,MAAM,MAAM,GAAG,IAAI,CAAA,uBAAuB,IAAI,CAAC,QAAQ,cAAc,CAAC;QAEtE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;iBAG7B,IAAI,CAAC,SAAS;;kBAEb,IAAI,CAAC,IAAI;qBACN,uBAAA,IAAI,mCAAS;sBACZ,IAAI,CAAC,QAAQ;2CACQ,IAAI,CAAC,eAAe,EAAE;aACpD,CAAC;IACZ,CAAC;;uKAEY,CAAQ;IACnB,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AA3Ee,iCAAc,GAAG,IAAI,AAAP,CAAQ;AAI1B;IAAX,QAAQ,EAAE;gDAA+B;AACA;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;oDAAkB;AAC3C;IAAf,KAAK,CAAC,OAAO,CAAC;iDAA0B;AAkB7B;IAAX,QAAQ,EAAE;iDAAc;AAGzB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDAGzB","sourcesContent":["import { 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 protected readonly elementInternals: ElementInternals;\n\n @property() name: string | undefined = '';\n @property({type: Boolean, reflect: true}) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n // eslint-disable-next-line\n // #value: any = '';\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\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.#checked;\n }\n set checked(value: boolean) {\n this.#checked = value;\n this.elementInternals.setFormValue(value ? this.value : null);\n }\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override connectedCallback() {\n super.connectedCallback();\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`<u-ripple ?disabled=${this.disabled}></u-ripple>`;\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 .name=${this.name}\n .checked=${this.#checked}\n .disabled=${this.disabled} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>`;\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"]}
@@ -0,0 +1,9 @@
1
+ import { HTMLTemplateResult, LitElement } from 'lit';
2
+ export declare abstract class UmSetBase extends LitElement {
3
+ /**
4
+ * Set the alignment of the set at the `start`, `center` or at the `end`.
5
+ */
6
+ alignment: 'start' | 'center' | 'end';
7
+ render(): HTMLTemplateResult;
8
+ }
9
+ //# sourceMappingURL=set-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-base.d.ts","sourceRoot":"","sources":["../../../src/shared/sets/set-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAG3D,8BAAsB,SAAU,SAAQ,UAAU;IAEhD;;OAEG;IACwB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAW;IAElE,MAAM,IAAI,kBAAkB;CAItC"}
@@ -0,0 +1,25 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement } from 'lit';
8
+ import { property } from 'lit/decorators.js';
9
+ export class UmSetBase extends LitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ /**
13
+ * Set the alignment of the set at the `start`, `center` or at the `end`.
14
+ */
15
+ this.alignment = 'start';
16
+ }
17
+ render() {
18
+ return html `
19
+ <slot></slot>`;
20
+ }
21
+ }
22
+ __decorate([
23
+ property({ reflect: true })
24
+ ], UmSetBase.prototype, "alignment", void 0);
25
+ //# sourceMappingURL=set-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-base.js","sourceRoot":"","sources":["../../../src/shared/sets/set-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,OAAgB,SAAU,SAAQ,UAAU;IAAlD;;QAEE;;WAEG;QACwB,cAAS,GAA+B,OAAO,CAAC;IAM7E,CAAC;IAJU,MAAM;QACb,OAAO,IAAI,CAAA;oBACK,CAAC;IACnB,CAAC;CACF;AAN4B;IAA1B,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;4CAAiD","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nexport abstract class UmSetBase extends LitElement {\n\n /**\n * Set the alignment of the set at the `start`, `center` or at the `end`.\n */\n @property({reflect: true}) alignment: 'start' | 'center' | 'end' = 'start';\n\n override render(): HTMLTemplateResult {\n return html`\n <slot></slot>`;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { UmSwitch } from './switch.js';
2
- declare const UmSwitchListItem_base: import("../shared/selection-control/selection-control-list-item.js").MixinReturn<typeof UmSwitch, object>;
2
+ declare const UmSwitchListItem_base: import("../shared/mixin.js").MixinReturn<typeof UmSwitch>;
3
3
  export declare class UmSwitchListItem extends UmSwitchListItem_base {
4
4
  }
5
5
  declare global {
@@ -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;AAI/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAGtF,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;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"}
package/switch/switch.js CHANGED
@@ -7,8 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { html } from 'lit';
8
8
  import { customElement } from 'lit/decorators.js';
9
9
  import { styles as baseStyles } from '../shared/base.styles.js';
10
- import { UmSelectionControl } from '../shared/selection-control/selection-control.js';
11
10
  import { styles } from './switch.styles.js';
11
+ import { UmSelectionControl } from '../shared/selection-control/selection-control.js';
12
12
  let UmSwitch = class UmSwitch extends UmSelectionControl {
13
13
  constructor() {
14
14
  super();
@@ -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,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGrC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,kBAAkB;IAM9C;QACE,KAAK,EAAE,CAAC;QAGS,iBAAY,GAAG,KAAK,CAAC;IAFxC,CAAC;IAIkB,eAAe;QAChC,OAAO,IAAI,CAAA;;;;WAIJ,CAAC;IACV,CAAC;;AAjBe,eAAM,GAAG;IACvB,UAAU;IACV,MAAM;CACP,AAHqB,CAGpB;AAJS,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 { UmSelectionControl } from '../shared/selection-control/selection-control.js';\nimport { styles } from './switch.styles.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,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;IAM9C;QACE,KAAK,EAAE,CAAC;QAGS,iBAAY,GAAG,KAAK,CAAC;IAFxC,CAAC;IAIkB,eAAe;QAChC,OAAO,IAAI,CAAA;;;;WAIJ,CAAC;IACV,CAAC;;AAjBe,eAAM,GAAG;IACvB,UAAU;IACV,MAAM;CACP,AAHqB,CAGpB;AAJS,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,18 +1,30 @@
1
1
  import { HTMLTemplateResult, LitElement } from 'lit';
2
2
  import '../field/field.js';
3
- export declare class UmTextField extends LitElement {
3
+ declare const supportingTextAttribute = "supporting-text";
4
+ declare const textFieldBase: import("../shared/mixin.js").MixinReturn<typeof LitElement>;
5
+ export declare class UmTextField extends textFieldBase {
4
6
  #private;
5
7
  static readonly formAssociated = true;
6
8
  static styles: import("lit").CSSResult[];
9
+ static shadowRootOptions: ShadowRootInit;
7
10
  variant: "filled" | "outlined";
8
11
  label: string | undefined;
12
+ counter: string | undefined;
13
+ placeholder: string | undefined;
14
+ supportingText: string | undefined;
15
+ errorText: string | undefined;
16
+ prefixText: string | undefined;
17
+ suffixText: string | undefined;
9
18
  disabled: boolean;
10
19
  invalid: boolean;
11
20
  get form(): HTMLFormElement | null;
21
+ get [supportingTextAttribute](): string | undefined;
22
+ set [supportingTextAttribute](value: string | undefined);
12
23
  get value(): string;
13
24
  set value(value: string);
14
25
  input: HTMLInputElement;
15
26
  constructor();
27
+ focus(): void;
16
28
  protected render(): HTMLTemplateResult;
17
29
  }
18
30
  declare global {
@@ -20,4 +32,5 @@ declare global {
20
32
  'u-text-field': UmTextField;
21
33
  }
22
34
  }
35
+ export {};
23
36
  //# sourceMappingURL=text-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/text-field/text-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAQpE,OAAO,mBAAmB,CAAC;AAE3B,qBACa,WAAY,SAAQ,UAAU;;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC,OAAgB,MAAM,4BAAwB;IAElC,OAAO,wBAAmC;IAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAEI,QAAQ,UAAS;IACjB,OAAO,UAAS;IAI1D,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,IACI,KAAK,IAGQ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAGtB;IAGe,KAAK,EAAG,gBAAgB,CAAC;;cAOtB,MAAM,IAAI,kBAAkB;CAkBhD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/text-field/text-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAUpE,OAAO,mBAAmB,CAAC;AAE3B,QAAA,MAAM,uBAAuB,oBAAoB,CAAC;AAKlD,QAAA,MAAM,aAAa,6DAKG,CAAC;AAEvB,qBACa,WAAY,SAAQ,aAAa;;IAC5C,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC,OAAgB,MAAM,4BAAwB;IAE9C,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEU,OAAO,wBAAmC;IAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACX,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,QAAQ,UAAS;IACjB,OAAO,UAAS;IAI1D,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,MAAM,GAAG,SAAS,CAElD;IACD,IAAI,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEtD;IAED,IACI,KAAK,IAGQ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAGtB;IAGe,KAAK,EAAG,gBAAgB,CAAC;;IAOhC,KAAK;cAIK,MAAM,IAAI,kBAAkB;CA8ChD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -19,14 +19,26 @@ var _UmTextField_instances, _UmTextField_value, _UmTextField_elementInternals, _
19
19
  import { html, LitElement, nothing } from 'lit';
20
20
  import { customElement, property, query } from 'lit/decorators.js';
21
21
  import { live } from 'lit/directives/live.js';
22
- import { config } from '../config.js';
23
22
  import { styles as baseStyles } from '../shared/base.styles.js';
24
23
  import { styles } from './text-field.styles.js';
24
+ import { config } from '../config.js';
25
+ import { mixinAttributeProperties } from '../shared/mixin-attribute-properties.js';
25
26
  import '../field/field.js';
26
- let UmTextField = class UmTextField extends LitElement {
27
+ const supportingTextAttribute = 'supporting-text';
28
+ const errorTextAttribute = 'error-text';
29
+ const prefixTextAttribute = 'prefix-text';
30
+ const suffixTextAttribute = 'suffix-text';
31
+ const textFieldBase = mixinAttributeProperties(LitElement, supportingTextAttribute, errorTextAttribute, prefixTextAttribute, suffixTextAttribute);
32
+ let UmTextField = class UmTextField extends textFieldBase {
27
33
  get form() {
28
34
  return __classPrivateFieldGet(this, _UmTextField_elementInternals, "f").form;
29
35
  }
36
+ get [(_UmTextField_value = new WeakMap(), _UmTextField_elementInternals = new WeakMap(), _UmTextField_instances = new WeakSet(), supportingTextAttribute)]() {
37
+ return this.supportingText;
38
+ }
39
+ set [supportingTextAttribute](value) {
40
+ this.supportingText = value;
41
+ }
30
42
  get value() {
31
43
  return __classPrivateFieldGet(this, _UmTextField_value, "f");
32
44
  }
@@ -44,34 +56,82 @@ let UmTextField = class UmTextField extends LitElement {
44
56
  _UmTextField_elementInternals.set(this, void 0);
45
57
  __classPrivateFieldSet(this, _UmTextField_elementInternals, this.attachInternals(), "f");
46
58
  }
59
+ focus() {
60
+ this.input.focus();
61
+ }
47
62
  render() {
48
- const label = html `<label slot="label" id="label">${this.label}</label>`;
63
+ const label = this.label
64
+ ? html `<label slot="label" id="label">${this.label}</label>`
65
+ : html `<slot slot="label" name="label"></slot>`;
66
+ const supportingText = this.supportingText
67
+ ? html `<span slot="supporting-text">${this.supportingText}</span>`
68
+ : html `<slot slot="supporting-text" name="supporting-text"></slot>`;
69
+ const errorText = this.errorText
70
+ ? html `<span slot="error-text">${this.errorText}</span>`
71
+ : html `<slot slot="error-text" name="error-text"></slot>`;
72
+ const prefix = html `<span class="prefix" slot="prefix">${this.prefixText || html `<slot name="prefix"></slot>`}</span>`;
73
+ const suffix = html `<span class="suffix" slot="suffix">${this.suffixText || html `<slot name="suffix"></slot>`}</span>`;
74
+ const counter = this.counter
75
+ ? html `<span slot="counter">${this.counter}</span>`
76
+ : html `<slot slot="counter" name="counter"></slot>`;
49
77
  return html `
50
78
  <u-field
79
+ .variant=${this.variant}
80
+ ?invalid=${this.invalid}
81
+ ?disabled=${this.disabled}
51
82
  ?empty=${!__classPrivateFieldGet(this, _UmTextField_value, "f")}>
52
- ${this.label ? label : nothing}
83
+ ${label}
84
+ <slot slot="leading-icon" name="leading-icon"></slot>
85
+ ${prefix}
53
86
  <input
87
+ part="input"
54
88
  id=${this.id || nothing}
55
89
  aria-labelledby="label"
90
+ ?disabled=${this.disabled}
91
+ placeholder=${this.placeholder || nothing}
56
92
  .value=${live(__classPrivateFieldGet(this, _UmTextField_value, "f"))}
57
93
  @input=${__classPrivateFieldGet(this, _UmTextField_instances, "m", _UmTextField_handleInput)} />
94
+ ${suffix}
95
+ <slot slot="trailing-icon" name="trailing-icon"></slot>
96
+ ${supportingText}
97
+ ${errorText}
98
+ ${counter}
58
99
  </u-field>`;
59
100
  }
60
101
  };
61
- _UmTextField_value = new WeakMap();
62
- _UmTextField_elementInternals = new WeakMap();
63
- _UmTextField_instances = new WeakSet();
64
102
  _UmTextField_handleInput = function _UmTextField_handleInput() {
65
103
  this.value = this.input.value;
66
104
  };
67
105
  UmTextField.formAssociated = true;
68
106
  UmTextField.styles = [baseStyles, styles];
107
+ UmTextField.shadowRootOptions = {
108
+ ...LitElement.shadowRootOptions,
109
+ delegatesFocus: true,
110
+ };
69
111
  __decorate([
70
112
  property()
71
113
  ], UmTextField.prototype, "variant", void 0);
72
114
  __decorate([
73
115
  property()
74
116
  ], UmTextField.prototype, "label", void 0);
117
+ __decorate([
118
+ property()
119
+ ], UmTextField.prototype, "counter", void 0);
120
+ __decorate([
121
+ property({ reflect: true })
122
+ ], UmTextField.prototype, "placeholder", void 0);
123
+ __decorate([
124
+ property({ attribute: supportingTextAttribute })
125
+ ], UmTextField.prototype, "supportingText", void 0);
126
+ __decorate([
127
+ property({ attribute: errorTextAttribute })
128
+ ], UmTextField.prototype, "errorText", void 0);
129
+ __decorate([
130
+ property({ attribute: 'prefix-text' })
131
+ ], UmTextField.prototype, "prefixText", void 0);
132
+ __decorate([
133
+ property({ attribute: 'suffix-text' })
134
+ ], UmTextField.prototype, "suffixText", void 0);
75
135
  __decorate([
76
136
  property({ type: Boolean, reflect: true })
77
137
  ], UmTextField.prototype, "disabled", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/text-field/text-field.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,mBAAmB,CAAC;AAGpB,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAazC,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,qCAAkB,CAAC,IAAI,CAAC;IACrC,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,0BAAO,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,uBAAA,IAAI,sBAAU,KAAK,MAAA,CAAC;QACpB,uBAAA,IAAI,qCAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAKD;QACE,KAAK,EAAE,CAAC;;QAzBE,YAAO,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAGZ,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,KAAK,CAAC;QAE1D,6BAAiB,EAAE,EAAC;QAeX,gDAAoC;QAK3C,uBAAA,IAAI,iCAAqB,IAAI,CAAC,eAAe,EAAE,MAAA,CAAC;IAClD,CAAC;IAEkB,MAAM;QACvB,MAAM,KAAK,GAAG,IAAI,CAAA,kCAAkC,IAAI,CAAC,KAAK,UAAU,CAAC;QAEzE,OAAO,IAAI,CAAA;;iBAEE,CAAC,uBAAA,IAAI,0BAAO;UACnB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;;eAEvB,IAAI,CAAC,EAAE,IAAI,OAAO;;mBAEd,IAAI,CAAC,uBAAA,IAAI,0BAAO,CAAC;mBACjB,uBAAA,IAAI,wDAAa;iBACnB,CAAC;IAChB,CAAC;;;;;;IAGC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAChC,CAAC;AAlDe,0BAAc,GAAG,IAAI,AAAP,CAAQ;AAEtB,kBAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,AAAvB,CAAwB;AAElC;IAAX,QAAQ,EAAE;4CAA2C;AAC1C;IAAX,QAAQ,EAAE;0CAA2B;AAEI;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;6CAAkB;AACjB;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;4CAAiB;AAS1D;IADC,QAAQ,EAAE;wCAGV;AAOe;IAAf,KAAK,CAAC,OAAO,CAAC;0CAA0B;AA3B9B,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAoDvB","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { config } from '../config.js';\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './text-field.styles.js';\n\nimport '../field/field.js';\n\n@customElement('u-text-field')\nexport class UmTextField extends LitElement {\n static readonly formAssociated = true;\n\n static override styles = [baseStyles, styles];\n\n @property() variant = config.fields.defaultAppearance;\n @property() label: string | undefined;\n\n @property({type: Boolean, reflect: true}) disabled = false;\n @property({type: Boolean, reflect: true}) invalid = false;\n\n #value: string = '';\n\n get form(): HTMLFormElement | null {\n return this.#elementInternals.form;\n }\n\n @property()\n get value() {\n return this.#value;\n }\n set value(value: string) {\n this.#value = value;\n this.#elementInternals.setFormValue(value);\n }\n\n readonly #elementInternals: ElementInternals;\n @query('input') input!: HTMLInputElement;\n\n constructor() {\n super();\n this.#elementInternals = this.attachInternals();\n }\n\n protected override render(): HTMLTemplateResult {\n const label = html`<label slot=\"label\" id=\"label\">${this.label}</label>`;\n\n return html`\n <u-field\n ?empty=${!this.#value}>\n ${this.label ? label : nothing}\n <input\n id=${this.id || nothing}\n aria-labelledby=\"label\"\n .value=${live(this.#value)}\n @input=${this.#handleInput} />\n </u-field>`;\n }\n\n #handleInput() {\n this.value = this.input.value;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-text-field': UmTextField;\n }\n}\n"]}
1
+ {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/text-field/text-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './text-field.styles.js';\n\nimport { config } from '../config.js';\nimport { mixinAttributeProperties } from '../shared/mixin-attribute-properties.js';\n\nimport '../field/field.js';\n\nconst supportingTextAttribute = 'supporting-text';\nconst errorTextAttribute = 'error-text';\nconst prefixTextAttribute = 'prefix-text';\nconst suffixTextAttribute = 'suffix-text';\n\nconst textFieldBase = mixinAttributeProperties(\n LitElement,\n supportingTextAttribute,\n errorTextAttribute,\n prefixTextAttribute,\n suffixTextAttribute);\n\n@customElement('u-text-field')\nexport class UmTextField extends textFieldBase {\n static readonly formAssociated = true;\n\n static override styles = [baseStyles, styles];\n\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n @property() variant = config.fields.defaultAppearance;\n @property() label: string | undefined;\n @property() counter: string | undefined;\n @property({reflect: true}) placeholder: string | undefined;\n @property({attribute: supportingTextAttribute}) supportingText: string | undefined;\n @property({attribute: errorTextAttribute}) errorText: string | undefined;\n @property({attribute: 'prefix-text'}) prefixText: string | undefined;\n @property({attribute: 'suffix-text'}) suffixText: string | undefined;\n\n @property({type: Boolean, reflect: true}) disabled = false;\n @property({type: Boolean, reflect: true}) invalid = false;\n\n #value: string = '';\n\n get form(): HTMLFormElement | null {\n return this.#elementInternals.form;\n }\n\n get [supportingTextAttribute](): string | undefined {\n return this.supportingText;\n }\n set [supportingTextAttribute](value: string | undefined) {\n this.supportingText = value;\n }\n\n @property()\n get value() {\n return this.#value;\n }\n set value(value: string) {\n this.#value = value;\n this.#elementInternals.setFormValue(value);\n }\n\n readonly #elementInternals: ElementInternals;\n @query('input') input!: HTMLInputElement;\n\n constructor() {\n super();\n this.#elementInternals = this.attachInternals();\n }\n\n override focus() {\n this.input.focus();\n }\n\n protected override render(): HTMLTemplateResult {\n const label = this.label\n ? html`<label slot=\"label\" id=\"label\">${this.label}</label>`\n : html`<slot slot=\"label\" name=\"label\"></slot>`;\n\n const supportingText = this.supportingText\n ? html`<span slot=\"supporting-text\">${this.supportingText}</span>`\n : html`<slot slot=\"supporting-text\" name=\"supporting-text\"></slot>`;\n\n const errorText = this.errorText\n ? html`<span slot=\"error-text\">${this.errorText}</span>`\n : html`<slot slot=\"error-text\" name=\"error-text\"></slot>`;\n const prefix = html`<span class=\"prefix\" slot=\"prefix\">${this.prefixText || html`<slot name=\"prefix\"></slot>`}</span>`;\n const suffix = html`<span class=\"suffix\" slot=\"suffix\">${this.suffixText || html`<slot name=\"suffix\"></slot>`}</span>`;\n const counter = this.counter\n ? html`<span slot=\"counter\">${this.counter}</span>`\n : html`<slot slot=\"counter\" name=\"counter\"></slot>`;\n\n return html`\n <u-field\n .variant=${this.variant}\n ?invalid=${this.invalid}\n ?disabled=${this.disabled}\n ?empty=${!this.#value}>\n ${label}\n <slot slot=\"leading-icon\" name=\"leading-icon\"></slot>\n ${prefix}\n <input\n part=\"input\"\n id=${this.id || nothing}\n aria-labelledby=\"label\"\n ?disabled=${this.disabled}\n placeholder=${this.placeholder || nothing}\n .value=${live(this.#value)}\n @input=${this.#handleInput} />\n ${suffix}\n <slot slot=\"trailing-icon\" name=\"trailing-icon\"></slot>\n ${supportingText}\n ${errorText}\n ${counter}\n </u-field>`;\n }\n\n #handleInput() {\n this.value = this.input.value;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-text-field': UmTextField;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.styles.d.ts","sourceRoot":"","sources":["../../src/text-field/text-field.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAElB,CAAC"}
1
+ {"version":3,"file":"text-field.styles.d.ts","sourceRoot":"","sources":["../../src/text-field/text-field.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAqBlB,CAAC"}
@@ -1,5 +1,24 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `
3
+ :host {
4
+ cursor: text;
5
+ }
3
6
 
7
+ .prefix {
8
+ color: var(--u-field-prefix-color, var(--u-field-affix-color, var(--u-color-on-surface-variant, rgb(73, 69, 79))));
9
+ margin-inline-end: var(--u-prefix-margin, var(--u-affix-margin, 2px));
10
+ }
11
+
12
+ .suffix {
13
+ color: var(--u-field-suffix-color, var(--u-field-affix-color, var(--u-color-on-surface-variant, rgb(73, 69, 79))));
14
+ margin-inline-start: var(--u-suffix-margin, var(--u-affix-margin, 2px));
15
+ }
16
+
17
+ :host([disabled]) .prefix {
18
+ color: var(--u-text-field-prefix-color, var(--u-text-field-affix-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), var(--u-field-disabled-opacity, 0.38))));
19
+ }
20
+ :host([disabled]) .suffix {
21
+ color: var(--u-text-field-suffix-color, var(--u-text-field-affix-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), var(--u-field-disabled-opacity, 0.38))));
22
+ }
4
23
  `;
5
24
  //# sourceMappingURL=text-field.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.styles.js","sourceRoot":"","sources":["../../src/text-field/text-field.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;CAEzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n\n`;\n"]}
1
+ {"version":3,"file":"text-field.styles.js","sourceRoot":"","sources":["../../src/text-field/text-field.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n cursor: text;\n }\n\n .prefix {\n color: var(--u-field-prefix-color, var(--u-field-affix-color, var(--u-color-on-surface-variant, rgb(73, 69, 79))));\n margin-inline-end: var(--u-prefix-margin, var(--u-affix-margin, 2px));\n }\n\n .suffix {\n color: var(--u-field-suffix-color, var(--u-field-affix-color, var(--u-color-on-surface-variant, rgb(73, 69, 79))));\n margin-inline-start: var(--u-suffix-margin, var(--u-affix-margin, 2px));\n }\n\n :host([disabled]) .prefix {\n color: var(--u-text-field-prefix-color, var(--u-text-field-affix-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), var(--u-field-disabled-opacity, 0.38))));\n }\n :host([disabled]) .suffix {\n color: var(--u-text-field-suffix-color, var(--u-text-field-affix-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), var(--u-field-disabled-opacity, 0.38))));\n }\n`;\n"]}
@@ -0,0 +1,24 @@
1
+ import { HTMLTemplateResult, LitElement } from 'lit';
2
+ export declare class UmHighlight extends LitElement {
3
+ #private;
4
+ static styles: import("lit").CSSResult;
5
+ private parts;
6
+ /**
7
+ * The result text to display. If the term is found inside this text, it's highlighted
8
+ */
9
+ get result(): string | undefined;
10
+ set result(value: string | undefined);
11
+ /**
12
+ * The searched term
13
+ */
14
+ get term(): string | undefined;
15
+ set term(value: string | undefined);
16
+ protected render(): HTMLTemplateResult | HTMLTemplateResult[];
17
+ private setParts;
18
+ }
19
+ declare global {
20
+ interface HTMLElementTagNameMap {
21
+ 'u-highlight': UmHighlight;
22
+ }
23
+ }
24
+ //# sourceMappingURL=highlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../src/typeahead/highlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAW3D,qBACa,WAAY,SAAQ,UAAU;;IACzC,OAAgB,MAAM,0BAAU;IAIvB,OAAO,CAAC,KAAK,CAAuB;IAE7C;;OAEG;IACH,IACI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAInC;IAED;;OAEG;IACH,IACI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAIjC;cAEkB,MAAM,IAAI,kBAAkB,GAAG,kBAAkB,EAAE;IAUtE,OAAO,CAAC,QAAQ;CAmBjB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,WAAW,CAAC;KAC5B;CACF"}
@@ -0,0 +1,95 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
13
+ if (kind === "m") throw new TypeError("Private method is not writable");
14
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
15
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
16
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
+ };
18
+ var _UmHighlight_result, _UmHighlight_term;
19
+ import { html, LitElement } from 'lit';
20
+ import { customElement, property, state } from 'lit/decorators.js';
21
+ import { styles } from './highlight.styles.js';
22
+ import { normalizeText } from '../shared/normalize-text.js';
23
+ function regExpEscape(text) {
24
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
25
+ }
26
+ let UmHighlight = class UmHighlight extends LitElement {
27
+ constructor() {
28
+ super(...arguments);
29
+ _UmHighlight_result.set(this, void 0);
30
+ _UmHighlight_term.set(this, void 0);
31
+ }
32
+ /**
33
+ * The result text to display. If the term is found inside this text, it's highlighted
34
+ */
35
+ get result() {
36
+ return __classPrivateFieldGet(this, _UmHighlight_result, "f");
37
+ }
38
+ set result(value) {
39
+ __classPrivateFieldSet(this, _UmHighlight_result, value, "f");
40
+ this.setParts();
41
+ }
42
+ /**
43
+ * The searched term
44
+ */
45
+ get term() {
46
+ return __classPrivateFieldGet(this, _UmHighlight_term, "f");
47
+ }
48
+ set term(value) {
49
+ __classPrivateFieldSet(this, _UmHighlight_term, value, "f");
50
+ this.setParts();
51
+ }
52
+ render() {
53
+ return this.parts
54
+ ? this.parts.map((part, index) => {
55
+ return index % 2
56
+ ? html `<strong>${part}</strong>`
57
+ : html `<span>${part}</span>`;
58
+ })
59
+ : html `<span></span>`;
60
+ }
61
+ setParts() {
62
+ const resultStr = this.result || '';
63
+ const resultNormalized = normalizeText(resultStr).toLowerCase();
64
+ const termLC = normalizeText(this.term || '').toLowerCase();
65
+ let currentIdx = 0;
66
+ if (termLC.length <= 0) {
67
+ this.parts = [resultStr];
68
+ return;
69
+ }
70
+ this.parts = resultNormalized
71
+ .split(new RegExp(`(${regExpEscape(termLC)})`))
72
+ .map(part => {
73
+ const originalPart = resultStr.substring(currentIdx, currentIdx + part.length);
74
+ currentIdx += part.length;
75
+ return originalPart;
76
+ });
77
+ }
78
+ };
79
+ _UmHighlight_result = new WeakMap();
80
+ _UmHighlight_term = new WeakMap();
81
+ UmHighlight.styles = styles;
82
+ __decorate([
83
+ state()
84
+ ], UmHighlight.prototype, "parts", void 0);
85
+ __decorate([
86
+ property()
87
+ ], UmHighlight.prototype, "result", null);
88
+ __decorate([
89
+ property()
90
+ ], UmHighlight.prototype, "term", null);
91
+ UmHighlight = __decorate([
92
+ customElement('u-highlight')
93
+ ], UmHighlight);
94
+ export { UmHighlight };
95
+ //# sourceMappingURL=highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../src/typeahead/highlight.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAGL,sCAA4B;QAC5B,oCAA0B;IA0D5B,CAAC;IAvDC;;OAEG;IAEH,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,2BAAQ,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,KAAyB;QAClC,uBAAA,IAAI,uBAAW,KAAK,MAAA,CAAC;QAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IAEH,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,CAAC,KAAyB;QAChC,uBAAA,IAAI,qBAAS,KAAK,MAAA,CAAC;QAEnB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAC,KAAK;YACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC/B,OAAO,KAAK,GAAG,CAAC;oBACd,CAAC,CAAC,IAAI,CAAA,WAAW,IAAI,WAAW;oBAChC,CAAC,CAAC,IAAI,CAAA,SAAS,IAAI,SAAS,CAAC;YACjC,CAAC,CAAC;YACF,CAAC,CAAC,IAAI,CAAA,eAAe,CAAC;IAC1B,CAAC;IAEO,QAAQ;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,gBAAgB;aAC1B,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9C,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/E,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;YAC1B,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;;;;AA5De,kBAAM,GAAG,MAAM,AAAT,CAAU;AAIf;IAAhB,KAAK,EAAE;0CAAqC;AAM7C;IADC,QAAQ,EAAE;yCAGV;AAWD;IADC,QAAQ,EAAE;uCAGV;AA1BU,WAAW;IADvB,aAAa,CAAC,aAAa,CAAC;GAChB,WAAW,CA8DvB","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { styles } from './highlight.styles.js';\n\nimport { normalizeText } from '../shared/normalize-text.js';\n\nfunction regExpEscape(text: string) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n@customElement('u-highlight')\nexport class UmHighlight extends LitElement {\n static override styles = styles;\n\n #result: string | undefined;\n #term: string | undefined;\n @state() private parts: string[] | undefined;\n\n /**\n * The result text to display. If the term is found inside this text, it's highlighted\n */\n @property()\n get result(): string | undefined {\n return this.#result;\n }\n set result(value: string | undefined) {\n this.#result = value;\n\n this.setParts();\n }\n\n /**\n * The searched term\n */\n @property()\n get term(): string | undefined {\n return this.#term;\n }\n set term(value: string | undefined) {\n this.#term = value;\n\n this.setParts();\n }\n\n protected override render(): HTMLTemplateResult | HTMLTemplateResult[] {\n return this.parts\n ? this.parts.map((part, index) => {\n return index % 2\n ? html`<strong>${part}</strong>`\n : html`<span>${part}</span>`;\n })\n : html`<span></span>`;\n }\n\n private setParts() {\n const resultStr = this.result || '';\n const resultNormalized = normalizeText(resultStr).toLowerCase();\n const termLC = normalizeText(this.term || '').toLowerCase();\n let currentIdx = 0;\n\n if (termLC.length <= 0) {\n this.parts = [resultStr];\n return;\n }\n\n this.parts = resultNormalized\n .split(new RegExp(`(${regExpEscape(termLC)})`))\n .map(part => {\n const originalPart = resultStr.substring(currentIdx, currentIdx + part.length);\n currentIdx += part.length;\n return originalPart;\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-highlight': UmHighlight;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=highlight.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.styles.d.ts","sourceRoot":"","sources":["../../src/typeahead/highlight.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAElB,CAAC"}