@limetech/lime-elements 37.59.1 → 37.60.1

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 (204) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/{component-55b926ef.js → component-3f00c197.js} +7 -8
  3. package/dist/cjs/component-3f00c197.js.map +1 -0
  4. package/dist/cjs/{component-37425b99.js → component-44f52caf.js} +50 -51
  5. package/dist/cjs/component-44f52caf.js.map +1 -0
  6. package/dist/cjs/{component-cba208a8.js → component-864afce0.js} +13 -14
  7. package/dist/cjs/component-864afce0.js.map +1 -0
  8. package/dist/cjs/{component-a4eb183b.js → component-a8e11c4c.js} +12 -13
  9. package/dist/cjs/component-a8e11c4c.js.map +1 -0
  10. package/dist/cjs/lime-elements.cjs.js +1 -1
  11. package/dist/cjs/limel-action-bar_4.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-breadcrumbs_5.cjs.entry.js +21 -22
  13. package/dist/cjs/limel-breadcrumbs_5.cjs.entry.js.map +1 -1
  14. package/dist/cjs/limel-callout.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-checkbox.cjs.entry.js +18 -19
  16. package/dist/cjs/limel-checkbox.cjs.entry.js.map +1 -1
  17. package/dist/cjs/limel-chip_2.cjs.entry.js +6 -7
  18. package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/limel-date-picker.cjs.entry.js +4 -5
  20. package/dist/cjs/limel-date-picker.cjs.entry.js.map +1 -1
  21. package/dist/cjs/limel-dialog.cjs.entry.js +9 -10
  22. package/dist/cjs/limel-dialog.cjs.entry.js.map +1 -1
  23. package/dist/cjs/limel-dynamic-label_4.cjs.entry.js +2 -3
  24. package/dist/cjs/limel-dynamic-label_4.cjs.entry.js.map +1 -1
  25. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  27. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-info-tile.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-info-tile.cjs.entry.js.map +1 -1
  30. package/dist/cjs/limel-linear-progress.cjs.entry.js +17 -396
  31. package/dist/cjs/limel-linear-progress.cjs.entry.js.map +1 -1
  32. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-select.cjs.entry.js +8 -9
  34. package/dist/cjs/limel-select.cjs.entry.js.map +1 -1
  35. package/dist/cjs/limel-slider.cjs.entry.js +10 -11
  36. package/dist/cjs/limel-slider.cjs.entry.js.map +1 -1
  37. package/dist/cjs/limel-snackbar.cjs.entry.js +1 -1
  38. package/dist/cjs/limel-switch.cjs.entry.js +16 -17
  39. package/dist/cjs/limel-switch.cjs.entry.js.map +1 -1
  40. package/dist/cjs/limel-tab-bar.cjs.entry.js +42 -43
  41. package/dist/cjs/limel-tab-bar.cjs.entry.js.map +1 -1
  42. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-table.cjs.entry.js.map +1 -1
  44. package/dist/cjs/loader.cjs.js +1 -1
  45. package/dist/cjs/{component-b37fd9bc.js → ponyfill-63966294.js} +75 -1
  46. package/dist/cjs/ponyfill-63966294.js.map +1 -0
  47. package/dist/cjs/{translations-6d759b59.js → translations-e12a6869.js} +13 -1
  48. package/dist/cjs/translations-e12a6869.js.map +1 -0
  49. package/dist/collection/components/chip/chip.css +0 -2
  50. package/dist/collection/components/info-tile/info-tile.css +0 -2
  51. package/dist/collection/components/linear-progress/linear-progress.css +58 -250
  52. package/dist/collection/components/linear-progress/linear-progress.js +62 -29
  53. package/dist/collection/components/linear-progress/linear-progress.js.map +1 -1
  54. package/dist/collection/components/table/table.js +1 -1
  55. package/dist/collection/components/table/table.js.map +1 -1
  56. package/dist/collection/translations/da.js +2 -0
  57. package/dist/collection/translations/da.js.map +1 -1
  58. package/dist/collection/translations/en.js +2 -0
  59. package/dist/collection/translations/en.js.map +1 -1
  60. package/dist/collection/translations/fi.js +2 -0
  61. package/dist/collection/translations/fi.js.map +1 -1
  62. package/dist/collection/translations/nl.js +2 -0
  63. package/dist/collection/translations/nl.js.map +1 -1
  64. package/dist/collection/translations/no.js +2 -0
  65. package/dist/collection/translations/no.js.map +1 -1
  66. package/dist/collection/translations/sv.js +2 -0
  67. package/dist/collection/translations/sv.js.map +1 -1
  68. package/dist/esm/{component-db286494.js → component-5e233629.js} +2 -3
  69. package/dist/esm/component-5e233629.js.map +1 -0
  70. package/dist/esm/{component-f972b8db.js → component-a531729c.js} +2 -3
  71. package/dist/esm/component-a531729c.js.map +1 -0
  72. package/dist/esm/{component-fc0a08f6.js → component-b934161d.js} +2 -3
  73. package/dist/esm/component-b934161d.js.map +1 -0
  74. package/dist/esm/{component-58f68f3e.js → component-e6eb55fa.js} +4 -5
  75. package/dist/esm/component-e6eb55fa.js.map +1 -0
  76. package/dist/esm/lime-elements.js +1 -1
  77. package/dist/esm/limel-action-bar_4.entry.js +1 -1
  78. package/dist/esm/limel-breadcrumbs_5.entry.js +5 -6
  79. package/dist/esm/limel-breadcrumbs_5.entry.js.map +1 -1
  80. package/dist/esm/limel-callout.entry.js +1 -1
  81. package/dist/esm/limel-checkbox.entry.js +2 -3
  82. package/dist/esm/limel-checkbox.entry.js.map +1 -1
  83. package/dist/esm/limel-chip_2.entry.js +6 -7
  84. package/dist/esm/limel-chip_2.entry.js.map +1 -1
  85. package/dist/esm/limel-date-picker.entry.js +4 -5
  86. package/dist/esm/limel-date-picker.entry.js.map +1 -1
  87. package/dist/esm/limel-dialog.entry.js +2 -3
  88. package/dist/esm/limel-dialog.entry.js.map +1 -1
  89. package/dist/esm/limel-dynamic-label_4.entry.js +2 -3
  90. package/dist/esm/limel-dynamic-label_4.entry.js.map +1 -1
  91. package/dist/esm/limel-file-viewer.entry.js +1 -1
  92. package/dist/esm/limel-file.entry.js +1 -1
  93. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  94. package/dist/esm/limel-info-tile.entry.js +1 -1
  95. package/dist/esm/limel-info-tile.entry.js.map +1 -1
  96. package/dist/esm/limel-linear-progress.entry.js +18 -397
  97. package/dist/esm/limel-linear-progress.entry.js.map +1 -1
  98. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  99. package/dist/esm/limel-select.entry.js +2 -3
  100. package/dist/esm/limel-select.entry.js.map +1 -1
  101. package/dist/esm/limel-slider.entry.js +2 -3
  102. package/dist/esm/limel-slider.entry.js.map +1 -1
  103. package/dist/esm/limel-snackbar.entry.js +1 -1
  104. package/dist/esm/limel-switch.entry.js +2 -3
  105. package/dist/esm/limel-switch.entry.js.map +1 -1
  106. package/dist/esm/limel-tab-bar.entry.js +2 -3
  107. package/dist/esm/limel-tab-bar.entry.js.map +1 -1
  108. package/dist/esm/limel-table.entry.js +1 -1
  109. package/dist/esm/limel-table.entry.js.map +1 -1
  110. package/dist/esm/loader.js +1 -1
  111. package/dist/esm/{component-8b6ce3e9.js → ponyfill-9f1f6cd2.js} +73 -2
  112. package/dist/esm/ponyfill-9f1f6cd2.js.map +1 -0
  113. package/dist/esm/{translations-aee148ca.js → translations-d6a1fb0b.js} +13 -1
  114. package/dist/esm/translations-d6a1fb0b.js.map +1 -0
  115. package/dist/lime-elements/lime-elements.esm.js +1 -1
  116. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  117. package/dist/lime-elements/{p-d2077011.entry.js → p-02e9b8ce.entry.js} +2 -2
  118. package/dist/lime-elements/{p-9b437537.entry.js → p-20440a35.entry.js} +2 -2
  119. package/dist/lime-elements/{p-83648c76.entry.js → p-216eb1cf.entry.js} +2 -2
  120. package/dist/lime-elements/{p-c36a9afa.entry.js → p-2512011c.entry.js} +4 -4
  121. package/dist/lime-elements/{p-f1d08f33.entry.js → p-30ca30ec.entry.js} +5 -5
  122. package/dist/lime-elements/{p-f1d08f33.entry.js.map → p-30ca30ec.entry.js.map} +1 -1
  123. package/dist/lime-elements/{p-ef5539b0.entry.js → p-3e1e3fe6.entry.js} +2 -2
  124. package/dist/lime-elements/{p-11d5d44e.js → p-5a478c15.js} +3 -3
  125. package/dist/lime-elements/{p-9375145d.entry.js → p-6b0ef5ee.entry.js} +3 -3
  126. package/dist/lime-elements/p-6c74fcaa.entry.js +2 -0
  127. package/dist/lime-elements/{p-c66da652.entry.js.map → p-6c74fcaa.entry.js.map} +1 -1
  128. package/dist/lime-elements/{p-48c62d9d.entry.js → p-715d4a78.entry.js} +2 -2
  129. package/dist/lime-elements/p-78889be5.entry.js +2 -0
  130. package/dist/lime-elements/{p-2367b082.entry.js.map → p-78889be5.entry.js.map} +1 -1
  131. package/dist/lime-elements/{p-9ab3a908.js → p-85a982f9.js} +3 -3
  132. package/dist/lime-elements/{p-cb63f2d7.entry.js → p-9452ff1b.entry.js} +2 -2
  133. package/dist/lime-elements/{p-5e0ee0be.entry.js → p-9bb104b1.entry.js} +2 -2
  134. package/dist/lime-elements/p-9bb104b1.entry.js.map +1 -0
  135. package/dist/lime-elements/p-9f722992.js +68 -0
  136. package/dist/{cjs/component-b37fd9bc.js.map → lime-elements/p-9f722992.js.map} +1 -1
  137. package/dist/lime-elements/{p-fe1decdc.entry.js → p-a80507e5.entry.js} +2 -2
  138. package/dist/lime-elements/p-afefcd43.entry.js +2 -0
  139. package/dist/lime-elements/p-afefcd43.entry.js.map +1 -0
  140. package/dist/lime-elements/{p-16ad4500.entry.js → p-c4760e4a.entry.js} +2 -2
  141. package/dist/lime-elements/{p-16ad4500.entry.js.map → p-c4760e4a.entry.js.map} +1 -1
  142. package/dist/lime-elements/{p-6fc349f0.entry.js → p-c544c575.entry.js} +2 -2
  143. package/dist/lime-elements/p-c85589d6.entry.js +2 -0
  144. package/dist/lime-elements/{p-7603dc0d.entry.js.map → p-c85589d6.entry.js.map} +1 -1
  145. package/dist/lime-elements/{p-8da06871.entry.js → p-cd04c508.entry.js} +2 -2
  146. package/dist/lime-elements/{p-f764b655.js → p-d528606a.js} +8 -8
  147. package/dist/lime-elements/{p-178bbeb4.entry.js → p-dab818a1.entry.js} +2 -2
  148. package/dist/lime-elements/{p-178bbeb4.entry.js.map → p-dab818a1.entry.js.map} +1 -1
  149. package/dist/lime-elements/{p-43c83a69.entry.js → p-dd85a0b2.entry.js} +2 -2
  150. package/dist/lime-elements/{p-083d1db4.js → p-e7281e6a.js} +3 -3
  151. package/dist/lime-elements/p-f63f1114.js +2 -0
  152. package/dist/lime-elements/p-f63f1114.js.map +1 -0
  153. package/dist/types/components/linear-progress/linear-progress.d.ts +19 -7
  154. package/dist/types/components.d.ts +32 -4
  155. package/dist/types/translations/da.d.ts +2 -0
  156. package/dist/types/translations/en.d.ts +2 -0
  157. package/dist/types/translations/fi.d.ts +2 -0
  158. package/dist/types/translations/nl.d.ts +2 -0
  159. package/dist/types/translations/no.d.ts +2 -0
  160. package/dist/types/translations/sv.d.ts +2 -0
  161. package/package.json +2 -2
  162. package/dist/cjs/component-37425b99.js.map +0 -1
  163. package/dist/cjs/component-55b926ef.js.map +0 -1
  164. package/dist/cjs/component-a4eb183b.js.map +0 -1
  165. package/dist/cjs/component-cba208a8.js.map +0 -1
  166. package/dist/cjs/ponyfill-98ca4766.js +0 -78
  167. package/dist/cjs/ponyfill-98ca4766.js.map +0 -1
  168. package/dist/cjs/translations-6d759b59.js.map +0 -1
  169. package/dist/esm/component-58f68f3e.js.map +0 -1
  170. package/dist/esm/component-8b6ce3e9.js.map +0 -1
  171. package/dist/esm/component-db286494.js.map +0 -1
  172. package/dist/esm/component-f972b8db.js.map +0 -1
  173. package/dist/esm/component-fc0a08f6.js.map +0 -1
  174. package/dist/esm/ponyfill-30263d5e.js +0 -74
  175. package/dist/esm/ponyfill-30263d5e.js.map +0 -1
  176. package/dist/esm/translations-aee148ca.js.map +0 -1
  177. package/dist/lime-elements/p-2367b082.entry.js +0 -2
  178. package/dist/lime-elements/p-2ff3f85e.js +0 -46
  179. package/dist/lime-elements/p-2ff3f85e.js.map +0 -1
  180. package/dist/lime-elements/p-4d503318.js +0 -2
  181. package/dist/lime-elements/p-4d503318.js.map +0 -1
  182. package/dist/lime-elements/p-5e0ee0be.entry.js.map +0 -1
  183. package/dist/lime-elements/p-7603dc0d.entry.js +0 -2
  184. package/dist/lime-elements/p-9605854b.entry.js +0 -68
  185. package/dist/lime-elements/p-9605854b.entry.js.map +0 -1
  186. package/dist/lime-elements/p-c66da652.entry.js +0 -2
  187. package/dist/lime-elements/p-dcc97cc2.js +0 -24
  188. package/dist/lime-elements/p-dcc97cc2.js.map +0 -1
  189. /package/dist/lime-elements/{p-d2077011.entry.js.map → p-02e9b8ce.entry.js.map} +0 -0
  190. /package/dist/lime-elements/{p-9b437537.entry.js.map → p-20440a35.entry.js.map} +0 -0
  191. /package/dist/lime-elements/{p-83648c76.entry.js.map → p-216eb1cf.entry.js.map} +0 -0
  192. /package/dist/lime-elements/{p-c36a9afa.entry.js.map → p-2512011c.entry.js.map} +0 -0
  193. /package/dist/lime-elements/{p-ef5539b0.entry.js.map → p-3e1e3fe6.entry.js.map} +0 -0
  194. /package/dist/lime-elements/{p-11d5d44e.js.map → p-5a478c15.js.map} +0 -0
  195. /package/dist/lime-elements/{p-9375145d.entry.js.map → p-6b0ef5ee.entry.js.map} +0 -0
  196. /package/dist/lime-elements/{p-48c62d9d.entry.js.map → p-715d4a78.entry.js.map} +0 -0
  197. /package/dist/lime-elements/{p-9ab3a908.js.map → p-85a982f9.js.map} +0 -0
  198. /package/dist/lime-elements/{p-cb63f2d7.entry.js.map → p-9452ff1b.entry.js.map} +0 -0
  199. /package/dist/lime-elements/{p-fe1decdc.entry.js.map → p-a80507e5.entry.js.map} +0 -0
  200. /package/dist/lime-elements/{p-6fc349f0.entry.js.map → p-c544c575.entry.js.map} +0 -0
  201. /package/dist/lime-elements/{p-8da06871.entry.js.map → p-cd04c508.entry.js.map} +0 -0
  202. /package/dist/lime-elements/{p-f764b655.js.map → p-d528606a.js.map} +0 -0
  203. /package/dist/lime-elements/{p-43c83a69.entry.js.map → p-dd85a0b2.entry.js.map} +0 -0
  204. /package/dist/lime-elements/{p-083d1db4.js.map → p-e7281e6a.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["dynamicLabelCss","DynamicLabel","render","label","this","labels","find","l","value","renderIcon","_a","icon","defaultLabel","renderLabel","_b","text","iconName","getIconName","iconColor","iconBackgroundColor","color","backgroundColor","iconProps","role","name","style","h","Object","assign","helperLineCss","HelperLine","hasContent","maxLength","helperText","length","renderHelperText","class","id","helperTextId","renderCharacterCounter","counter","Host","tabIndex","invalid","display","RadioButtonTemplate","props","disabled","type","checked","onChange","htmlFor","ListRenderer","constructor","defaultConfig","isOpen","badgeIcons","getIndexForWhichToApplyTabIndex","items","result","i","max","item","selected","undefined","renderListItem","index","renderTextForSeparator","includes","config","renderVariantListItem","classNames","hasPrimaryComponent","attributes","applyTabIndexToItemAtIndex","tabindex","getPrimaryComponent","renderText","twoLines","avatarList","renderDivider","renderActionMenu","actions","primaryComponent","isSimpleItem","secondaryText","getIconColor","badge","size","iconSize","classes","openDirection","slot","itemTemplate","CheckboxTemplate","renderVariantListItemContent","hasIcons","some","selectableListTypes","selectable","commandKey","map","PrimaryComponent","listCss","ACTION_EVENT","listStrings","List","listRenderer","setup","setupList","setupListeners","mdcList","teardown","element","shadowRoot","querySelector","MDCList","hasTypeahead","unlisten","handleAction","multiple","listen","singleSelection","destroy","event","handleSingleSelect","detail","handleMultiSelect","listItems","filter","isListItem","selectedItem","selectedIndex","change","emit","selectedItems","listIndex","connectedCallback","disconnectedCallback","componentDidLoad","triggerIconColorWarning","maxLinesSecondaryText","toFixed","html","handleType","itemsChanged","setTimeout","indexOf","findIndex","initializeListType","console","warn","menuSurfaceCss","MenuSurface","menuElement","host","menuSurface","MDCMenuSurface","setAnchorCorner","Corner","TOP_START","document","addEventListener","handleDocumentClick","capture","handleKeyDown","window","handleResize","passive","removeEventListener","elementPath","composedPath","open","isDescendant","target","allowClicksElement","clickedInAllowedElement","dismiss","preventClickEventPropagation","stopEvent","once","stopPropagation","preventDefault","isEscape","key","ESCAPE","keyCode","ESCAPE_KEY_CODE","isTab","TAB","TAB_KEY_CODE","classList"],"sources":["./src/components/dynamic-label/dynamic-label.scss?tag=limel-dynamic-label&encapsulation=shadow","./src/components/dynamic-label/dynamic-label.tsx","./src/components/helper-line/helper-line.scss?tag=limel-helper-line&encapsulation=shadow","./src/components/helper-line/helper-line.tsx","./src/components/list/radio-button/radio-button.template.tsx","./src/components/list/list-renderer.tsx","./src/components/list/list.scss?tag=limel-list&encapsulation=shadow","./src/components/list/list.tsx","./src/components/menu-surface/menu-surface.scss?tag=limel-menu-surface&encapsulation=shadow","./src/components/menu-surface/menu-surface.tsx"],"sourcesContent":["@use '../../style/mixins.scss';\n\n* {\n box-sizing: border-box;\n min-width: 0;\n}\n\n:host(limel-dynamic-label) {\n --limel-dynamic-label-min-height: 1.75rem;\n display: flex;\n gap: 0.5rem;\n align-items: center;\n border-radius: 0.5rem;\n min-width: 0;\n}\n\nlimel-icon {\n --limel-icon-svg-margin: 0.125rem;\n border-radius: 0.25rem;\n flex-shrink: 0;\n width: var(--limel-dynamic-label-min-height);\n color: rgb(\n var(--contrast-900)\n ); // The default `false` color. Will be overwritten by `Icon`\n}\n\nspan {\n @include mixins.truncate-text;\n flex-grow: 1;\n font-size: 0.8125rem; // `13px`, Like Checkbox & Switch\n color: var(--mdc-theme-on-surface);\n}\n","import { getIconName } from '../icon/get-icon-props';\nimport { Component, Prop, h } from '@stencil/core';\nimport { Label, LabelValue } from './label.types';\nimport { Icon } from '../../interface';\n\n/**\n * This components displays a different label depending on the current given\n * value. A label can consist of a text and an optional icon. If no matching\n * label is found among the given `labels`, the `defaultLabel` will be displayed.\n *\n * One use case of the component is to enhance the visualization of a `boolean`\n * field like a checkbox or switch in a `readonly` state.\n *\n * The reason we offer this component is that the default styling\n * of the Checkbox or Toggle switch in the `readonly` state may not always\n * provide the best way of _visualizing information_, potentially leading to\n * confusion and negatively affecting the end-users' experience.\n *\n * @exampleComponent limel-example-dynamic-label\n * @exampleComponent limel-example-dynamic-label-readonly-boolean\n * @beta\n */\n@Component({\n tag: 'limel-dynamic-label',\n shadow: true,\n styleUrl: 'dynamic-label.scss',\n})\nexport class DynamicLabel {\n /**\n * The current value of the component which is used to match with the given\n * `labels` to determine what label to display.\n *\n * If not matching label is found, the `defaultLabel` is displayed.\n */\n @Prop()\n public value: LabelValue;\n\n /**\n * The label to display when no matching value is found in the `labels`\n * array. This is a fallback label that ensures there's always a label\n * displayed for the component.\n */\n @Prop({ reflect: true })\n public defaultLabel: Omit<Label, 'value'> = {};\n\n /**\n * A list of available labels. Each label has a corresponding value that\n * will be matched with the current `value` of the component to determine\n * what label to display.\n */\n @Prop()\n public labels: Label[] = [];\n\n public render() {\n const label = this.labels.find((l) => l.value === this.value);\n\n return [\n this.renderIcon(label?.icon ?? this.defaultLabel.icon),\n this.renderLabel(label?.text ?? this.defaultLabel.text),\n ];\n }\n\n private renderIcon(icon?: string | Icon) {\n const iconName = getIconName(icon);\n if (!iconName) {\n return;\n }\n\n let iconColor: string | undefined;\n let iconBackgroundColor: string | undefined;\n\n if (typeof icon === 'object') {\n iconColor = icon.color;\n iconBackgroundColor = icon.backgroundColor;\n }\n\n const iconProps = {\n role: 'presentation',\n name: iconName,\n style: {\n color: iconColor,\n 'background-color': iconBackgroundColor,\n },\n };\n\n return <limel-icon {...iconProps} />;\n }\n\n private renderLabel(label: string = '') {\n return <span>{label}</span>;\n }\n}\n",":host(limel-helper-line) {\n transition: opacity 0.2s ease;\n\n box-sizing: border-box;\n display: grid;\n\n min-width: 0; // prevents overflowing, if component is placed in flex containers\n\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.6875rem;\n line-height: normal;\n\n color: rgb(var(--contrast-1200));\n}\n\ndiv {\n display: flex;\n justify-content: space-between;\n gap: 0.75rem;\n overflow: hidden;\n padding: 0 1rem;\n}\n\n:host(limel-helper-line.invalid) {\n .helper-text {\n color: var(--mdc-theme-error);\n }\n}\n\n.counter {\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.helper-text,\n.counter {\n padding-top: 0.125rem;\n}\n\n// This animates height of the helper line, from `0` to `auto`.\n// To get this animation effect, the consumer component should\n// add `hide` classed accordingly.\n:host(limel-helper-line) {\n transition: grid-template-rows\n var(--limel-h-l-grid-template-rows-transition-speed, 0.46s)\n cubic-bezier(1, 0.09, 0, 0.89);\n grid-template-rows: var(--limel-h-l-grid-template-rows, 1fr);\n}\n\n:host(limel-helper-line.hide) {\n --limel-h-l-grid-template-rows-transition-speed: 0.3s;\n --limel-h-l-grid-template-rows: 0fr;\n}\n// End: animating height\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n/**\n * This is an internal and private component that many input fields\n * use to display a helper text, along with a character counter below the\n * input field.\n *\n * We created this to keep the visual styles the same everywhere\n * and to avoid importing styles separately.\n *\n * Also this enables us to open the helper line in limel-portal,\n * more easily without having to send the styles to the portal.\n *\n * @exampleComponent limel-example-helper-line\n * @exampleComponent limel-example-helper-line-invalid\n * @exampleComponent limel-example-helper-line-long-text\n * @exampleComponent limel-example-helper-line-long-text-no-counter\n * @exampleComponent limel-example-helper-line-character-counter\n * @exampleComponent limel-example-helper-line-empty\n * @exampleComponent limel-example-helper-line-animation\n * @private\n */\n@Component({\n tag: 'limel-helper-line',\n shadow: true,\n styleUrl: 'helper-line.scss',\n})\nexport class HelperLine {\n /**\n * The helper text that is displayed on the left side.\n */\n @Prop({ reflect: true })\n public helperText?: string;\n\n /**\n * Length of the current input value, coming from the parent component.\n * Used in the character counter section on the right side.\n */\n @Prop({ reflect: true })\n public length?: number;\n\n /**\n * Maximum length of the characters, defined on the parent component.\n * Used in the character counter section on the right side.\n */\n @Prop({ reflect: true })\n public maxLength?: number;\n\n /**\n * Turns `true`, when the parent component is invalid.\n * For example, when the parent component is `required` but is left empty.\n * Or when the input format is invalid.\n */\n @Prop({ reflect: true })\n public invalid?: boolean = false;\n\n /**\n * Used by `aria-controls` and `aria-describedby` in the parent component.\n */\n @Prop({ reflect: true })\n public helperTextId?: string;\n\n public render() {\n return (\n <Host\n tabIndex={-1}\n class={{\n invalid: this.invalid,\n }}\n style={!this.hasContent() ? { display: 'none' } : {}}\n aria-hidden={!this.hasContent()}\n >\n <div>\n {this.renderHelperText()}\n {this.renderCharacterCounter()}\n </div>\n </Host>\n );\n }\n\n private hasContent = () => {\n return !!(\n this.maxLength > 0 ||\n (this.helperText && this.helperText.length > 0)\n );\n };\n\n private renderHelperText = () => {\n if (!this.helperText) {\n return;\n }\n\n return (\n <span class=\"helper-text\" id={this.helperTextId}>\n {this.helperText}\n </span>\n );\n };\n\n private renderCharacterCounter = () => {\n const counter = `${this.length} / ${this.maxLength}`;\n\n if (!this.maxLength) {\n return;\n }\n\n return <span class=\"counter\">{counter}</span>;\n };\n}\n","import { FunctionalComponent, h } from '@stencil/core';\n\ninterface RadioButtonTemplateProps {\n disabled?: boolean;\n id: string;\n checked?: boolean;\n onChange?: (event: Event) => void;\n label?: string;\n}\n\nexport const RadioButtonTemplate: FunctionalComponent<\n RadioButtonTemplateProps\n> = (props) => {\n return (\n <div class=\"mdc-form-field\">\n <div\n class={`\n mdc-radio\n ${props.disabled ? 'mdc-radio--disabled' : ''}\n `}\n >\n <input\n class=\"mdc-radio__native-control\"\n type=\"radio\"\n id={props.id}\n checked={props.checked}\n disabled={props.disabled}\n onChange={props.onChange}\n />\n <div class=\"mdc-radio__background\">\n <div class=\"mdc-radio__outer-circle\" />\n <div class=\"mdc-radio__inner-circle\" />\n </div>\n </div>\n <label\n class={`${props.disabled ? 'disabled' : ''}`}\n htmlFor={props.id}\n >\n {props.label}\n </label>\n </div>\n );\n};\n","import { ListItem } from './list-item.types';\nimport { ListSeparator } from '../../global/shared-types/separator.types';\nimport { MenuItem } from '../menu/menu.types';\nimport { h } from '@stencil/core';\nimport { CheckboxTemplate } from '../checkbox/checkbox.template';\nimport { ListRendererConfig } from './list-renderer-config';\nimport { RadioButtonTemplate } from './radio-button/radio-button.template';\nimport { getIconColor, getIconName } from '../icon/get-icon-props';\n\nexport class ListRenderer {\n private defaultConfig: ListRendererConfig = {\n isOpen: true,\n badgeIcons: false,\n };\n\n private config: ListRendererConfig;\n\n private hasIcons: boolean;\n private twoLines: boolean;\n private avatarList: boolean;\n private commandKey: boolean;\n\n private applyTabIndexToItemAtIndex: number;\n\n public render(\n items: Array<ListItem | ListSeparator>,\n config: ListRendererConfig = {},\n ) {\n items = items || [];\n this.config = { ...this.defaultConfig, ...config };\n\n this.twoLines = items.some((item) => {\n return 'secondaryText' in item && !!item.secondaryText;\n });\n\n this.hasIcons = items.some((item) => {\n return 'icon' in item && !!item.icon;\n });\n\n this.avatarList = this.config.badgeIcons && this.hasIcons;\n const selectableListTypes = ['selectable', 'radio', 'checkbox'];\n\n let role;\n switch (this.config.type) {\n case 'checkbox':\n role = 'group';\n break;\n case 'radio':\n role = 'radiogroup';\n break;\n default:\n role = 'listbox';\n }\n\n this.applyTabIndexToItemAtIndex =\n this.getIndexForWhichToApplyTabIndex(items);\n\n const classNames = {\n 'mdc-deprecated-list': true,\n 'mdc-deprecated-list--two-line': this.twoLines,\n selectable: selectableListTypes.includes(this.config.type),\n 'mdc-deprecated-list--avatar-list': this.avatarList,\n 'list--compact':\n this.twoLines &&\n this.commandKey &&\n ['small', 'x-small'].includes(this.config.iconSize),\n };\n\n return (\n <ul class={classNames} role={role} aria-orientation=\"vertical\">\n {items.map(this.renderListItem)}\n </ul>\n );\n }\n\n /**\n * Determine which ListItem should have the `tab-index` attribute set,\n * and return the index at which that ListItem is located in `items`.\n * Returns `undefined` if no item should have the attribute set.\n * See https://github.com/material-components/material-components-web/tree/e66a43a75fef4f9179e24856649518e15e279a04/packages/mdc-list#accessibility\n *\n * @param items - the items of the list, including any `ListSeparator`:s\n * @returns the index as per the description\n */\n private getIndexForWhichToApplyTabIndex = (\n items: Array<ListItem | ListSeparator>,\n ) => {\n let result;\n for (let i = 0, max = items.length; i < max; i += 1) {\n if ('separator' in items[i]) {\n // Ignore ListSeparator\n } else {\n const item = items[i] as ListItem<any>;\n if (item.selected) {\n result = i;\n break;\n }\n\n if (result === undefined && !item.disabled) {\n result = i;\n // Do NOT break, as any later item with\n // `selected=true` should get the tab-index instead!\n }\n }\n }\n\n return result;\n };\n\n /**\n * Render a single list item\n *\n * @param item - the item to render\n * @param index - the index the item had in the `items` array\n * @returns the list item\n */\n private renderListItem = (\n item: ListItem | ListSeparator,\n index: number,\n ) => {\n if ('separator' in item) {\n return (\n <li class=\"mdc-deprecated-list-divider\" role=\"separator\">\n {this.renderTextForSeparator(item)}\n <div class=\"limel-list-divider-line\" />\n </li>\n );\n }\n\n if (['radio', 'checkbox'].includes(this.config.type)) {\n return this.renderVariantListItem(this.config, item, index);\n }\n\n const classNames = {\n 'mdc-deprecated-list-item': true,\n 'mdc-deprecated-list-item--disabled': item.disabled,\n 'mdc-deprecated-list-item--selected': item.selected,\n 'has-primary-component': this.hasPrimaryComponent(item),\n };\n\n const attributes: { tabindex?: string } = {};\n if (index === this.applyTabIndexToItemAtIndex) {\n attributes.tabindex = '0';\n }\n\n return (\n <li\n class={classNames}\n aria-disabled={item.disabled ? 'true' : 'false'}\n aria-selected={item.selected ? 'true' : 'false'}\n data-index={index}\n {...attributes}\n >\n {this.renderIcon(this.config, item)}\n {this.getPrimaryComponent(item)}\n {this.renderText(item)}\n {this.twoLines && this.avatarList ? this.renderDivider() : null}\n {this.renderActionMenu(item.actions)}\n </li>\n );\n };\n\n private renderTextForSeparator = (item: ListSeparator) => {\n if ('text' in item) {\n return <h2 class=\"limel-list-divider-title\">{item.text}</h2>;\n }\n };\n\n private getPrimaryComponent(item: ListItem): Element {\n if (!this.hasPrimaryComponent(item)) {\n return;\n }\n\n const PrimaryComponent = item.primaryComponent.name;\n const props = item.primaryComponent.props;\n\n return <PrimaryComponent {...props} />;\n }\n\n private hasPrimaryComponent = (item: ListItem) => {\n return !!item?.primaryComponent?.name;\n };\n\n /**\n * Render the text of the list item\n *\n * @param item - the list item\n * @returns the text for the list item\n */\n private renderText = (item: ListItem) => {\n if (this.isSimpleItem(item)) {\n return (\n <span class=\"mdc-deprecated-list-item__text\">{item.text}</span>\n );\n }\n\n return (\n <div class=\"mdc-deprecated-list-item__text\">\n <div class=\"mdc-deprecated-list-item__primary-command-text\">\n <div class=\"mdc-deprecated-list-item__primary-text\">\n {item.text}\n </div>\n </div>\n <div class=\"mdc-deprecated-list-item__secondary-text\">\n {item.secondaryText}\n </div>\n </div>\n );\n };\n\n private isSimpleItem = (item: ListItem): boolean => {\n return !('secondaryText' in item);\n };\n\n /**\n * Render an icon for a list item\n *\n * @param config - the config object, passed on from the `renderListItem` function\n * @param item - the list item\n * @returns the icon element\n */\n private renderIcon = (config: ListRendererConfig, item: ListItem) => {\n const style: any = {};\n const name = getIconName(item.icon);\n if (!name) {\n return;\n }\n\n const color = getIconColor(item.icon, item.iconColor);\n\n if (color) {\n if (config.badgeIcons) {\n style['--icon-background-color'] = color;\n } else {\n style.color = color;\n }\n }\n\n return (\n <limel-icon\n badge={config.badgeIcons}\n class=\"mdc-deprecated-list-item__graphic\"\n name={name}\n style={style}\n size={config.iconSize}\n />\n );\n };\n\n private renderDivider = () => {\n const classes = {\n 'mdc-deprecated-list-divider': true,\n 'mdc-deprecated-list-divider--inset': true,\n };\n if (this.config.iconSize) {\n classes[this.config.iconSize] = true;\n }\n\n return <hr class={classes} />;\n };\n\n private renderActionMenu = (actions: Array<MenuItem | ListSeparator>) => {\n if (!actions || actions.length === 0) {\n return;\n }\n\n return (\n <limel-menu\n class=\"mdc-deprecated-list-item__meta\"\n items={actions}\n openDirection=\"left-start\"\n >\n <limel-icon-button\n class=\"action-menu-trigger\"\n slot=\"trigger\"\n icon=\"menu_2\"\n />\n </limel-menu>\n );\n };\n\n private renderVariantListItem = (\n config: ListRendererConfig,\n item: ListItem,\n index: number,\n ) => {\n let itemTemplate;\n if (config.type === 'radio') {\n itemTemplate = (\n <RadioButtonTemplate\n id={`c_${index}`}\n checked={item.selected}\n disabled={item.disabled}\n />\n );\n } else if (config.type === 'checkbox') {\n itemTemplate = (\n <CheckboxTemplate\n id={`c_${index}`}\n checked={item.selected}\n disabled={item.disabled}\n />\n );\n }\n\n const classNames = {\n 'mdc-deprecated-list-item': true,\n 'mdc-deprecated-list-item--disabled': item.disabled,\n 'mdc-deprecated-list-item__text': !item.secondaryText,\n 'has-primary-component': this.hasPrimaryComponent(item),\n };\n\n const attributes: { tabindex?: string } = {};\n if (index === this.applyTabIndexToItemAtIndex) {\n attributes.tabindex = '0';\n }\n\n return (\n <li\n class={classNames}\n role={config.type}\n aria-checked={item.selected ? 'true' : 'false'}\n aria-disabled={item.disabled ? 'true' : 'false'}\n data-index={index}\n {...attributes}\n >\n {this.renderVariantListItemContent(config, item, itemTemplate)}\n </li>\n );\n };\n\n private renderVariantListItemContent = (\n config: ListRendererConfig,\n item: ListItem,\n itemTemplate: any,\n ) => {\n if (this.hasIcons) {\n return [\n item.icon ? this.renderIcon(config, item) : null,\n this.getPrimaryComponent(item),\n this.renderText(item),\n <div class=\"mdc-deprecated-list-item__meta\">\n {itemTemplate}\n </div>,\n ];\n }\n\n return [\n <div class=\"mdc-deprecated-list-item__graphic\">{itemTemplate}</div>,\n this.getPrimaryComponent(item),\n this.renderText(item),\n ];\n };\n}\n","@use '../../style/functions';\n@use '../../style/mixins';\n\n@use '../../style/internal/lime-theme';\n@use '../checkbox/checkbox.scss';\n\n@use '@material/list';\n\n$list-border-radius: 0.375rem; // 6px\n$list--has-interactive-items--mdc-list-item--hover: 1;\n$list-static-actions-list: 1;\n$list-mdc-list-item: 0;\n\n/**\n * @prop --icon-background-color: Color to use for icon background when `badgeIcons=true`.\n * @prop --icon-color: Color to use for icon. Defaults to grey when `badgeIcons=false`. Defaults to white when `badgeIcons=true`.\n * @prop --list-grid-max-width: Maximum width of a list that has `has-grid-layout` class. Defaults to `100%`.\n * @prop --list-grid-item-max-width: Maximum width of items in a list that has `has-grid-layout` class. Defaults to `10rem`.\n * @prop --list-grid-item-min-width: Minimum width of items in a list that has `has-grid-layout` class. Defaults to `7.5rem`.\n * @prop --list-grid-gap: Distance between items in a list that has `has-grid-layout` class. Defaults to `0.75rem`.\n * @prop --list-background-color-of-odd-interactive-items: Background color of odd list items, when `has-striped-rows` class is applied to the component. Defaults to `--contrast-200`.\n * @prop --list-background-color-of-even-interactive-items: Background color of even list items, when `has-striped-rows` class is applied to the component. Defaults to `transparent`.\n * @prop --list-margin: Space around the list. Defaults to `0.25rem`, which visualizes keyboard-focused items in a better way, as it adds some space for the outline effect;\n */\n\n:host(limel-list) {\n display: block;\n isolation: isolate;\n @include checkbox.custom-checkbox-styles;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n@include list.deprecated-core-styles;\n\n.mdc-deprecated-list,\n.mdc-deprecated-list-item__secondary-text {\n // As long as this component is depended on MDC,\n // we need to force it to be font-agnostic.\n // When MDC-dependency is removed, this block can also be removed.\n // However, on removal of MDC-dependency, we should also make sure to check\n // other font-related styles that might be set by MDC,\n // such as `letter-spacing` or `font-size`.\n font-family: inherit;\n}\n\n.mdc-deprecated-list {\n --mdc-theme-text-icon-on-background: var(\n --icon-color,\n rgb(var(--contrast-900))\n );\n margin: var(\n --list-margin,\n 0.25rem\n ); // added space to visualize keyboard-focused items\n padding: 0;\n border-radius: $list-border-radius;\n\n .mdc-deprecated-list-divider {\n border-bottom-color: transparent;\n display: flex;\n align-items: center;\n gap: 0.75rem;\n height: auto;\n padding: 0 0.5rem;\n }\n\n .limel-list-divider-line {\n background-color: rgb(var(--contrast-400));\n height: 0.125rem;\n border-radius: 1rem;\n min-width: 1rem;\n flex-grow: 1;\n }\n\n .limel-list-divider-title {\n all: unset;\n @include mixins.truncate-text;\n color: rgb(var(--contrast-900));\n font-size: 0.8125rem; // 13px\n }\n\n .mdc-deprecated-list-item {\n gap: 0.5rem;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n z-index: $list-mdc-list-item; // in Chrome on Windows, menus flicker when they have a scroll bar and user hovers on them. We may be able to remove this in future versions of Chrome. Kia 2021-May-12\n min-height: 2.5rem;\n\n &:not(.mdc-deprecated-list-item--disabled) {\n &:hover {\n background-color: rgb(var(--contrast-300));\n z-index: 1;\n }\n }\n\n &.mdc-deprecated-list-item--disabled {\n cursor: not-allowed;\n\n limel-icon {\n opacity: 0.38; // similar to `mdc-deprecated-list-item__text` when disabled\n }\n }\n\n &:first-child {\n border-top-left-radius: $list-border-radius;\n border-top-right-radius: $list-border-radius;\n }\n &:last-child {\n border-bottom-right-radius: $list-border-radius;\n border-bottom-left-radius: $list-border-radius;\n }\n }\n\n &.selectable\n .mdc-deprecated-list-item:not(.mdc-deprecated-list-item--disabled) {\n cursor: pointer;\n }\n\n .mdc-deprecated-list-item__meta {\n // the action menu on the right side a list item\n line-height: 100%;\n margin-right: -0.5rem;\n order: var(--limel-list-meta-order, 3);\n }\n\n .mdc-deprecated-list-item__graphic {\n margin-right: 0;\n }\n\n &.mdc-deprecated-list--avatar-list {\n position: relative;\n\n limel-icon.mdc-deprecated-list-item__graphic {\n background-color: var(\n --icon-background-color,\n rgb(var(--contrast-900))\n );\n color: var(--icon-color, rgba(var(--color-white), 0.88));\n margin-left: functions.pxToRem(-4);\n }\n\n hr.mdc-deprecated-list-divider {\n position: absolute;\n bottom: 0;\n\n &.mdc-deprecated-list-divider--inset {\n --icon-width: #{functions.pxToRem(40)};\n --icon-right-padding: #{functions.pxToRem(12)};\n --list-right-padding: #{functions.pxToRem(12)};\n right: 0;\n width: calc(\n 100% - var(--icon-width) - var(--icon-right-padding) - var(\n --list-right-padding\n )\n );\n\n &.x-small {\n --icon-width: #{functions.pxToRem(24)};\n }\n\n &.small {\n --icon-width: #{functions.pxToRem(32)};\n }\n\n &.medium {\n --icon-width: #{functions.pxToRem(40)};\n }\n\n &.large {\n --icon-width: #{functions.pxToRem(48)};\n }\n }\n }\n\n .mdc-deprecated-list-item:last-child hr.mdc-deprecated-list-divider {\n display: none;\n }\n }\n\n &.mdc-deprecated-list--two-line {\n .mdc-deprecated-list-item__text {\n padding-top: functions.pxToRem(8);\n padding-bottom: functions.pxToRem(8);\n }\n }\n\n .mdc-deprecated-list-item__secondary-text,\n .mdc-deprecated-list-item__primary-text,\n .mdc-deprecated-list-item__command-text {\n margin: 0;\n &:before,\n &:after {\n display: none;\n }\n }\n\n .mdc-deprecated-list-item__command-text {\n color: rgb(var(--contrast-800));\n margin-left: 0.7rem;\n }\n\n .mdc-deprecated-list-item__text {\n align-self: center;\n width: 100%;\n }\n\n .mdc-deprecated-list-item__primary-command-text {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n }\n\n // Tweaks to display the icon correctly in Edge\n limel-icon.mdc-deprecated-list-item__graphic {\n display: block;\n }\n}\n\n.mdc-deprecated-list:not(.mdc-deprecated-list--avatar-list) {\n limel-icon.mdc-deprecated-list-item__graphic {\n // Tweaks to make icon lists align nicely with badge-icon lists.\n &[size='x-small'] {\n margin-right: 0;\n }\n &[size='small'] {\n margin-right: 0;\n }\n &[size='medium'] {\n margin-right: 0.25rem;\n }\n &[size='large'] {\n margin-right: 0.5rem;\n }\n }\n}\n\n.mdc-deprecated-list-item.mdc-deprecated-list-item--selected {\n &:before {\n background-color: var(--mdc-theme-primary);\n opacity: 0.15;\n }\n}\n\n:not(.mdc-deprecated-list--non-interactive) {\n > {\n :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item {\n @include mixins.visualize-keyboard-focus;\n\n &:focus-visible {\n border-radius: $list-border-radius;\n z-index: $list--has-interactive-items--mdc-list-item--hover;\n }\n }\n }\n}\n\n@import '../checkbox/checkbox.scss';\n\n@import './radio-button/radio-button.scss';\n\n@import './partial-styles/custom-styles.scss';\n@import './partial-styles/enable-multiline-text.scss';\n@import './partial-styles/_has-grid-layout.scss';\n@import './partial-styles/_static-actions.scss';\n","import { IconSize } from '../icon/icon.types';\nimport { ListItem, ListSeparator } from './list-item.types';\nimport { ListType } from './list.types';\nimport { MDCList, MDCListActionEvent } from '@material/list';\nimport { strings as listStrings } from '@material/list/constants';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { ListRenderer } from './list-renderer';\nimport { ListRendererConfig } from './list-renderer-config';\n\nconst { ACTION_EVENT } = listStrings;\n\n/**\n * @exampleComponent limel-example-list\n * @exampleComponent limel-example-list-secondary\n * @exampleComponent limel-example-list-separator\n * @exampleComponent limel-example-list-selectable\n * @exampleComponent limel-example-list-icons\n * @exampleComponent limel-example-list-badge-icons\n * @exampleComponent limel-example-list-checkbox\n * @exampleComponent limel-example-list-checkbox-icons\n * @exampleComponent limel-example-list-radio-button\n * @exampleComponent limel-example-list-radio-button-icons\n * @exampleComponent limel-example-list-action\n * @exampleComponent limel-example-list-striped\n * @exampleComponent limel-example-list-badge-icons-with-multiple-lines\n * @exampleComponent limel-example-list-grid\n * @exampleComponent limel-example-list-primary-component\n */\n@Component({\n tag: 'limel-list',\n shadow: { delegatesFocus: true },\n styleUrl: 'list.scss',\n})\nexport class List {\n /**\n * List of items to display\n */\n @Prop()\n public items: Array<ListItem | ListSeparator>;\n\n /**\n * Set to `true` if the list should display larger icons with a background\n */\n @Prop()\n public badgeIcons: boolean;\n\n /**\n * Size of the icons in the list\n */\n @Prop()\n public iconSize: IconSize = 'small';\n\n /**\n * The type of the list, omit to get a regular list. Available types are:\n * `selectable`: regular list with single selection.\n * `radio`: radio button list with single selection.\n * `checkbox`: checkbox list with multiple selection.\n */\n @Prop()\n public type: ListType;\n\n /**\n * By default, lists will display 3 lines of text, and then truncate the rest.\n * Consumers can increase or decrease this number by specifying\n * `maxLinesSecondaryText`. If consumer enters zero or negative\n * numbers we default to 1; and if they type decimals we round up.\n */\n // eslint-disable-next-line no-magic-numbers\n @Prop() maxLinesSecondaryText: number = 3;\n\n @Element()\n private element: HTMLLimelListElement;\n\n private config: ListRendererConfig;\n private listRenderer = new ListRenderer();\n private mdcList: MDCList;\n private multiple: boolean;\n private selectable: boolean;\n\n /**\n * Fired when a new value has been selected from the list.\n * Only fired if `type` is set to `selectable`, `radio` or `checkbox`.\n */\n @Event()\n private change: EventEmitter<ListItem | ListItem[]>;\n\n /**\n * Fired when an action has been selected from the action menu of a list item\n */\n @Event()\n protected select: EventEmitter<ListItem | ListItem[]>;\n\n public connectedCallback() {\n this.setup();\n }\n\n public disconnectedCallback() {\n this.teardown();\n }\n\n public componentDidLoad() {\n this.setup();\n this.triggerIconColorWarning();\n }\n\n public render() {\n this.config = {\n badgeIcons: this.badgeIcons,\n type: this.type,\n iconSize: this.iconSize,\n };\n let maxLinesSecondaryText = +this.maxLinesSecondaryText?.toFixed();\n if (this.maxLinesSecondaryText < 1) {\n maxLinesSecondaryText = 1;\n }\n\n const html = this.listRenderer.render(this.items, this.config);\n\n return (\n <Host\n style={{\n '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,\n }}\n >\n {html}\n </Host>\n );\n }\n\n @Watch('type')\n protected handleType() {\n this.setupListeners();\n }\n\n @Watch('items')\n protected itemsChanged() {\n if (!this.mdcList) {\n return;\n }\n\n setTimeout(() => {\n this.setup();\n\n const listItems = this.items.filter(this.isListItem);\n\n if (this.multiple) {\n this.mdcList.selectedIndex = listItems\n .filter((item: ListItem) => item.selected)\n .map((item: ListItem) => listItems.indexOf(item));\n } else {\n const selectedIndex = listItems.findIndex(\n (item: ListItem) => item.selected,\n );\n\n if (selectedIndex === -1) {\n this.mdcList.initializeListType();\n } else {\n this.mdcList.selectedIndex = selectedIndex;\n }\n }\n }, 0);\n }\n\n private setup = () => {\n this.setupList();\n\n this.setupListeners();\n };\n\n private setupList = () => {\n if (this.mdcList) {\n this.teardown();\n this.mdcList = null;\n }\n\n const element = this.element.shadowRoot.querySelector(\n '.mdc-deprecated-list',\n );\n if (!element) {\n return;\n }\n\n this.mdcList = new MDCList(element);\n this.mdcList.hasTypeahead = true;\n };\n\n private setupListeners = () => {\n if (!this.mdcList) {\n return;\n }\n\n this.mdcList.unlisten(ACTION_EVENT, this.handleAction);\n\n this.selectable = ['selectable', 'radio', 'checkbox'].includes(\n this.type,\n );\n this.multiple = this.type === 'checkbox';\n\n if (!this.selectable) {\n return;\n }\n\n this.mdcList.listen(ACTION_EVENT, this.handleAction);\n this.mdcList.singleSelection = !this.multiple;\n };\n\n private teardown = () => {\n this.mdcList?.unlisten(ACTION_EVENT, this.handleAction);\n this.mdcList?.destroy();\n };\n\n private handleAction = (event: MDCListActionEvent) => {\n if (!this.multiple) {\n this.handleSingleSelect(event.detail.index);\n\n return;\n }\n\n this.handleMultiSelect(event.detail.index);\n };\n\n private handleSingleSelect = (index: number) => {\n const listItems = this.items.filter(this.isListItem) as ListItem[];\n if (listItems[index].disabled) {\n return;\n }\n\n const selectedItem: ListItem = listItems.find((item: ListItem) => {\n return !!item.selected;\n });\n\n if (selectedItem) {\n if (this.type !== 'radio') {\n this.mdcList.selectedIndex = -1;\n }\n\n this.change.emit({ ...selectedItem, selected: false });\n }\n\n if (listItems[index] !== selectedItem) {\n this.change.emit({ ...listItems[index], selected: true });\n }\n };\n\n private handleMultiSelect = (index: number) => {\n const listItems = this.items.filter(this.isListItem) as ListItem[];\n if (listItems[index].disabled) {\n return;\n }\n\n const selectedItems: ListItem[] = listItems\n .filter((item: ListItem, listIndex: number) => {\n if (listIndex === index) {\n // This is the item that was selected or deselected,\n // so we negate its previous selection status.\n return !item.selected;\n }\n\n // This is an item that didn't change, so we keep its selection status.\n return item.selected;\n })\n .map((item: ListItem) => {\n return { ...item, selected: true };\n });\n\n this.change.emit(selectedItems);\n };\n\n private isListItem = (item: ListItem): boolean => {\n return !('separator' in item);\n };\n\n private triggerIconColorWarning() {\n if (this.items?.some((item) => 'iconColor' in item)) {\n /* eslint-disable-next-line no-console */\n console.warn(\n \"The `iconColor` prop is deprecated now! Use the new `Icon` interface and instead of `iconColor: 'color-name'` write `icon {name: 'icon-name', color: 'color-name'}`.\",\n );\n }\n }\n}\n","@use '@material/menu-surface';\n@use '@material/elevation';\n@use '@material/menu';\n\n/**\n* @prop --limel-menu-surface-display: defines whether the surface is treated as a block, flex or grid. It affects layout used to display its children. Defaults to `block`.\n* @prop --limel-menu-surface-flex-direction: defines the direction of menu-surface layout.\n*/\n\n:host(limel-menu-surface) {\n display: block;\n max-height: inherit;\n}\n\n@include menu-surface.core-styles;\n@include menu.core-styles;\n\n.mdc-menu-surface {\n display: var(--limel-menu-surface-display, block);\n flex-direction: var(--limel-menu-surface-flex-direction, row);\n max-height: inherit;\n position: relative;\n --mdc-menu-max-width: var(\n --menu-surface-width,\n min(calc(100vw - 2rem), 20rem)\n );\n background-color: var(--lime-elevated-surface-background-color);\n}\n\n:host(limel-menu-surface.has-grid-layout) {\n .mdc-menu-surface {\n width: var(--menu-surface-width, min(calc(100vw - 2rem), 40rem));\n max-width: unset;\n }\n}\n","import { Corner, MDCMenuSurface } from '@material/menu-surface';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n} from '@stencil/core';\nimport { isDescendant } from '../../util/dom';\nimport {\n ESCAPE,\n ESCAPE_KEY_CODE,\n TAB,\n TAB_KEY_CODE,\n} from '../../util/keycodes';\n\n/**\n * @slot - Content to put inside the surface\n * @private\n */\n@Component({\n tag: 'limel-menu-surface',\n shadow: true,\n styleUrl: 'menu-surface.scss',\n})\nexport class MenuSurface {\n /**\n * True if the menu surface is open, false otherwise\n */\n @Prop()\n public open = false;\n\n /**\n * Clicks in this element should not be prevented when the menu surface is open\n */\n @Prop()\n public allowClicksElement: HTMLElement;\n\n /**\n * Emitted when the menu surface is dismissed and should be closed\n */\n @Event()\n public dismiss: EventEmitter<void>;\n\n @Element()\n private host: HTMLLimelMenuSurfaceElement;\n\n private menuSurface: MDCMenuSurface;\n\n public connectedCallback() {\n this.setup();\n }\n\n public disconnectedCallback() {\n this.teardown();\n }\n\n public componentDidLoad() {\n this.setup();\n }\n\n public render() {\n const classList = {\n 'mdc-menu': true,\n 'mdc-menu-surface': true,\n 'mdc-menu-surface--open': this.open,\n 'mdc-elevation-transition': true,\n 'mdc-elevation--z4': true,\n };\n\n return (\n <div class={classList} tabindex=\"-1\">\n <slot />\n </div>\n );\n }\n\n private setup = () => {\n const menuElement: HTMLElement =\n this.host.shadowRoot.querySelector('.mdc-menu-surface');\n if (!menuElement) {\n return;\n }\n\n this.menuSurface = new MDCMenuSurface(menuElement);\n this.menuSurface.setAnchorCorner(Corner.TOP_START);\n\n document.addEventListener('mousedown', this.handleDocumentClick, {\n capture: true,\n });\n this.host.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('resize', this.handleResize, {\n passive: true,\n });\n };\n\n private teardown = () => {\n this.menuSurface?.destroy();\n document.removeEventListener('mousedown', this.handleDocumentClick, {\n capture: true,\n });\n this.host.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('resize', this.handleResize);\n };\n\n private handleDocumentClick = (event) => {\n const elementPath = event.composedPath ? event.composedPath() : [];\n\n if (!this.open) {\n return;\n }\n\n if (isDescendant(event.target, this.host)) {\n return;\n }\n\n if (this.allowClicksElement) {\n const clickedInAllowedElement = elementPath.includes(\n this.allowClicksElement,\n );\n\n if (clickedInAllowedElement) {\n return;\n }\n }\n\n this.dismiss.emit();\n this.preventClickEventPropagation();\n };\n\n private handleResize = () => {\n if (this.open) {\n this.dismiss.emit();\n }\n };\n\n private preventClickEventPropagation = () => {\n // When the menu surface is open, we want to stop the `click` event from propagating\n // when clicking outside the surface itself. This is to prevent any dialog that might\n // be open from closing, etc. However, when dragging a scrollbar no `click` event is emitted,\n // only mousedown and mouseup. So we listen for `mousedown` and attach a one-time listener\n // for `click`, so we can capture and \"kill\" it.\n document.addEventListener('click', this.stopEvent, {\n capture: true,\n once: true,\n });\n // We also capture and \"kill\" the next `mouseup` event.\n document.addEventListener('mouseup', this.stopEvent, {\n capture: true,\n once: true,\n });\n // If the user dragged the scrollbar, no `click` event happens. So when we get the\n // `mouseup` event, remove the handler for `click` if it's still there.\n // Otherwise, we would catch the next click even though the menu is no longer open.\n document.addEventListener(\n 'mouseup',\n () => {\n document.removeEventListener('click', this.stopEvent, {\n capture: true,\n });\n },\n {\n once: true,\n },\n );\n };\n\n private stopEvent = (event) => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const isEscape =\n event.key === ESCAPE || event.keyCode === ESCAPE_KEY_CODE;\n const isTab = event.key === TAB || event.keyCode === TAB_KEY_CODE;\n\n if (this.open && (isEscape || isTab)) {\n event.stopPropagation();\n this.dismiss.emit();\n }\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["dynamicLabelCss","DynamicLabel","render","label","this","labels","find","l","value","renderIcon","_a","icon","defaultLabel","renderLabel","_b","text","iconName","getIconName","iconColor","iconBackgroundColor","color","backgroundColor","iconProps","role","name","style","h","Object","assign","helperLineCss","HelperLine","hasContent","maxLength","helperText","length","renderHelperText","class","id","helperTextId","renderCharacterCounter","counter","Host","tabIndex","invalid","display","RadioButtonTemplate","props","disabled","type","checked","onChange","htmlFor","ListRenderer","constructor","defaultConfig","isOpen","badgeIcons","getIndexForWhichToApplyTabIndex","items","result","i","max","item","selected","undefined","renderListItem","index","renderTextForSeparator","includes","config","renderVariantListItem","classNames","hasPrimaryComponent","attributes","applyTabIndexToItemAtIndex","tabindex","getPrimaryComponent","renderText","twoLines","avatarList","renderDivider","renderActionMenu","actions","primaryComponent","isSimpleItem","secondaryText","getIconColor","badge","size","iconSize","classes","openDirection","slot","itemTemplate","CheckboxTemplate","renderVariantListItemContent","hasIcons","some","selectableListTypes","selectable","commandKey","map","PrimaryComponent","listCss","ACTION_EVENT","listStrings","List","listRenderer","setup","setupList","setupListeners","mdcList","teardown","element","shadowRoot","querySelector","MDCList","hasTypeahead","unlisten","handleAction","multiple","listen","singleSelection","destroy","event","handleSingleSelect","detail","handleMultiSelect","listItems","filter","isListItem","selectedItem","selectedIndex","change","emit","selectedItems","listIndex","connectedCallback","disconnectedCallback","componentDidLoad","triggerIconColorWarning","maxLinesSecondaryText","toFixed","html","handleType","itemsChanged","setTimeout","indexOf","findIndex","initializeListType","console","warn","menuSurfaceCss","MenuSurface","menuElement","host","menuSurface","MDCMenuSurface","setAnchorCorner","Corner","TOP_START","document","addEventListener","handleDocumentClick","capture","handleKeyDown","window","handleResize","passive","removeEventListener","elementPath","composedPath","open","isDescendant","target","allowClicksElement","clickedInAllowedElement","dismiss","preventClickEventPropagation","stopEvent","once","stopPropagation","preventDefault","isEscape","key","ESCAPE","keyCode","ESCAPE_KEY_CODE","isTab","TAB","TAB_KEY_CODE","classList"],"sources":["./src/components/dynamic-label/dynamic-label.scss?tag=limel-dynamic-label&encapsulation=shadow","./src/components/dynamic-label/dynamic-label.tsx","./src/components/helper-line/helper-line.scss?tag=limel-helper-line&encapsulation=shadow","./src/components/helper-line/helper-line.tsx","./src/components/list/radio-button/radio-button.template.tsx","./src/components/list/list-renderer.tsx","./src/components/list/list.scss?tag=limel-list&encapsulation=shadow","./src/components/list/list.tsx","./src/components/menu-surface/menu-surface.scss?tag=limel-menu-surface&encapsulation=shadow","./src/components/menu-surface/menu-surface.tsx"],"sourcesContent":["@use '../../style/mixins.scss';\n\n* {\n box-sizing: border-box;\n min-width: 0;\n}\n\n:host(limel-dynamic-label) {\n --limel-dynamic-label-min-height: 1.75rem;\n display: flex;\n gap: 0.5rem;\n align-items: center;\n border-radius: 0.5rem;\n min-width: 0;\n}\n\nlimel-icon {\n --limel-icon-svg-margin: 0.125rem;\n border-radius: 0.25rem;\n flex-shrink: 0;\n width: var(--limel-dynamic-label-min-height);\n color: rgb(\n var(--contrast-900)\n ); // The default `false` color. Will be overwritten by `Icon`\n}\n\nspan {\n @include mixins.truncate-text;\n flex-grow: 1;\n font-size: 0.8125rem; // `13px`, Like Checkbox & Switch\n color: var(--mdc-theme-on-surface);\n}\n","import { getIconName } from '../icon/get-icon-props';\nimport { Component, Prop, h } from '@stencil/core';\nimport { Label, LabelValue } from './label.types';\nimport { Icon } from '../../interface';\n\n/**\n * This components displays a different label depending on the current given\n * value. A label can consist of a text and an optional icon. If no matching\n * label is found among the given `labels`, the `defaultLabel` will be displayed.\n *\n * One use case of the component is to enhance the visualization of a `boolean`\n * field like a checkbox or switch in a `readonly` state.\n *\n * The reason we offer this component is that the default styling\n * of the Checkbox or Toggle switch in the `readonly` state may not always\n * provide the best way of _visualizing information_, potentially leading to\n * confusion and negatively affecting the end-users' experience.\n *\n * @exampleComponent limel-example-dynamic-label\n * @exampleComponent limel-example-dynamic-label-readonly-boolean\n * @beta\n */\n@Component({\n tag: 'limel-dynamic-label',\n shadow: true,\n styleUrl: 'dynamic-label.scss',\n})\nexport class DynamicLabel {\n /**\n * The current value of the component which is used to match with the given\n * `labels` to determine what label to display.\n *\n * If not matching label is found, the `defaultLabel` is displayed.\n */\n @Prop()\n public value: LabelValue;\n\n /**\n * The label to display when no matching value is found in the `labels`\n * array. This is a fallback label that ensures there's always a label\n * displayed for the component.\n */\n @Prop({ reflect: true })\n public defaultLabel: Omit<Label, 'value'> = {};\n\n /**\n * A list of available labels. Each label has a corresponding value that\n * will be matched with the current `value` of the component to determine\n * what label to display.\n */\n @Prop()\n public labels: Label[] = [];\n\n public render() {\n const label = this.labels.find((l) => l.value === this.value);\n\n return [\n this.renderIcon(label?.icon ?? this.defaultLabel.icon),\n this.renderLabel(label?.text ?? this.defaultLabel.text),\n ];\n }\n\n private renderIcon(icon?: string | Icon) {\n const iconName = getIconName(icon);\n if (!iconName) {\n return;\n }\n\n let iconColor: string | undefined;\n let iconBackgroundColor: string | undefined;\n\n if (typeof icon === 'object') {\n iconColor = icon.color;\n iconBackgroundColor = icon.backgroundColor;\n }\n\n const iconProps = {\n role: 'presentation',\n name: iconName,\n style: {\n color: iconColor,\n 'background-color': iconBackgroundColor,\n },\n };\n\n return <limel-icon {...iconProps} />;\n }\n\n private renderLabel(label: string = '') {\n return <span>{label}</span>;\n }\n}\n",":host(limel-helper-line) {\n transition: opacity 0.2s ease;\n\n box-sizing: border-box;\n display: grid;\n\n min-width: 0; // prevents overflowing, if component is placed in flex containers\n\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.6875rem;\n line-height: normal;\n\n color: rgb(var(--contrast-1200));\n}\n\ndiv {\n display: flex;\n justify-content: space-between;\n gap: 0.75rem;\n overflow: hidden;\n padding: 0 1rem;\n}\n\n:host(limel-helper-line.invalid) {\n .helper-text {\n color: var(--mdc-theme-error);\n }\n}\n\n.counter {\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.helper-text,\n.counter {\n padding-top: 0.125rem;\n}\n\n// This animates height of the helper line, from `0` to `auto`.\n// To get this animation effect, the consumer component should\n// add `hide` classed accordingly.\n:host(limel-helper-line) {\n transition: grid-template-rows\n var(--limel-h-l-grid-template-rows-transition-speed, 0.46s)\n cubic-bezier(1, 0.09, 0, 0.89);\n grid-template-rows: var(--limel-h-l-grid-template-rows, 1fr);\n}\n\n:host(limel-helper-line.hide) {\n --limel-h-l-grid-template-rows-transition-speed: 0.3s;\n --limel-h-l-grid-template-rows: 0fr;\n}\n// End: animating height\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n/**\n * This is an internal and private component that many input fields\n * use to display a helper text, along with a character counter below the\n * input field.\n *\n * We created this to keep the visual styles the same everywhere\n * and to avoid importing styles separately.\n *\n * Also this enables us to open the helper line in limel-portal,\n * more easily without having to send the styles to the portal.\n *\n * @exampleComponent limel-example-helper-line\n * @exampleComponent limel-example-helper-line-invalid\n * @exampleComponent limel-example-helper-line-long-text\n * @exampleComponent limel-example-helper-line-long-text-no-counter\n * @exampleComponent limel-example-helper-line-character-counter\n * @exampleComponent limel-example-helper-line-empty\n * @exampleComponent limel-example-helper-line-animation\n * @private\n */\n@Component({\n tag: 'limel-helper-line',\n shadow: true,\n styleUrl: 'helper-line.scss',\n})\nexport class HelperLine {\n /**\n * The helper text that is displayed on the left side.\n */\n @Prop({ reflect: true })\n public helperText?: string;\n\n /**\n * Length of the current input value, coming from the parent component.\n * Used in the character counter section on the right side.\n */\n @Prop({ reflect: true })\n public length?: number;\n\n /**\n * Maximum length of the characters, defined on the parent component.\n * Used in the character counter section on the right side.\n */\n @Prop({ reflect: true })\n public maxLength?: number;\n\n /**\n * Turns `true`, when the parent component is invalid.\n * For example, when the parent component is `required` but is left empty.\n * Or when the input format is invalid.\n */\n @Prop({ reflect: true })\n public invalid?: boolean = false;\n\n /**\n * Used by `aria-controls` and `aria-describedby` in the parent component.\n */\n @Prop({ reflect: true })\n public helperTextId?: string;\n\n public render() {\n return (\n <Host\n tabIndex={-1}\n class={{\n invalid: this.invalid,\n }}\n style={!this.hasContent() ? { display: 'none' } : {}}\n aria-hidden={!this.hasContent()}\n >\n <div>\n {this.renderHelperText()}\n {this.renderCharacterCounter()}\n </div>\n </Host>\n );\n }\n\n private hasContent = () => {\n return !!(\n this.maxLength > 0 ||\n (this.helperText && this.helperText.length > 0)\n );\n };\n\n private renderHelperText = () => {\n if (!this.helperText) {\n return;\n }\n\n return (\n <span class=\"helper-text\" id={this.helperTextId}>\n {this.helperText}\n </span>\n );\n };\n\n private renderCharacterCounter = () => {\n const counter = `${this.length} / ${this.maxLength}`;\n\n if (!this.maxLength) {\n return;\n }\n\n return <span class=\"counter\">{counter}</span>;\n };\n}\n","import { FunctionalComponent, h } from '@stencil/core';\n\ninterface RadioButtonTemplateProps {\n disabled?: boolean;\n id: string;\n checked?: boolean;\n onChange?: (event: Event) => void;\n label?: string;\n}\n\nexport const RadioButtonTemplate: FunctionalComponent<\n RadioButtonTemplateProps\n> = (props) => {\n return (\n <div class=\"mdc-form-field\">\n <div\n class={`\n mdc-radio\n ${props.disabled ? 'mdc-radio--disabled' : ''}\n `}\n >\n <input\n class=\"mdc-radio__native-control\"\n type=\"radio\"\n id={props.id}\n checked={props.checked}\n disabled={props.disabled}\n onChange={props.onChange}\n />\n <div class=\"mdc-radio__background\">\n <div class=\"mdc-radio__outer-circle\" />\n <div class=\"mdc-radio__inner-circle\" />\n </div>\n </div>\n <label\n class={`${props.disabled ? 'disabled' : ''}`}\n htmlFor={props.id}\n >\n {props.label}\n </label>\n </div>\n );\n};\n","import { ListItem } from './list-item.types';\nimport { ListSeparator } from '../../global/shared-types/separator.types';\nimport { MenuItem } from '../menu/menu.types';\nimport { h } from '@stencil/core';\nimport { CheckboxTemplate } from '../checkbox/checkbox.template';\nimport { ListRendererConfig } from './list-renderer-config';\nimport { RadioButtonTemplate } from './radio-button/radio-button.template';\nimport { getIconColor, getIconName } from '../icon/get-icon-props';\n\nexport class ListRenderer {\n private defaultConfig: ListRendererConfig = {\n isOpen: true,\n badgeIcons: false,\n };\n\n private config: ListRendererConfig;\n\n private hasIcons: boolean;\n private twoLines: boolean;\n private avatarList: boolean;\n private commandKey: boolean;\n\n private applyTabIndexToItemAtIndex: number;\n\n public render(\n items: Array<ListItem | ListSeparator>,\n config: ListRendererConfig = {},\n ) {\n items = items || [];\n this.config = { ...this.defaultConfig, ...config };\n\n this.twoLines = items.some((item) => {\n return 'secondaryText' in item && !!item.secondaryText;\n });\n\n this.hasIcons = items.some((item) => {\n return 'icon' in item && !!item.icon;\n });\n\n this.avatarList = this.config.badgeIcons && this.hasIcons;\n const selectableListTypes = ['selectable', 'radio', 'checkbox'];\n\n let role;\n switch (this.config.type) {\n case 'checkbox':\n role = 'group';\n break;\n case 'radio':\n role = 'radiogroup';\n break;\n default:\n role = 'listbox';\n }\n\n this.applyTabIndexToItemAtIndex =\n this.getIndexForWhichToApplyTabIndex(items);\n\n const classNames = {\n 'mdc-deprecated-list': true,\n 'mdc-deprecated-list--two-line': this.twoLines,\n selectable: selectableListTypes.includes(this.config.type),\n 'mdc-deprecated-list--avatar-list': this.avatarList,\n 'list--compact':\n this.twoLines &&\n this.commandKey &&\n ['small', 'x-small'].includes(this.config.iconSize),\n };\n\n return (\n <ul class={classNames} role={role} aria-orientation=\"vertical\">\n {items.map(this.renderListItem)}\n </ul>\n );\n }\n\n /**\n * Determine which ListItem should have the `tab-index` attribute set,\n * and return the index at which that ListItem is located in `items`.\n * Returns `undefined` if no item should have the attribute set.\n * See https://github.com/material-components/material-components-web/tree/e66a43a75fef4f9179e24856649518e15e279a04/packages/mdc-list#accessibility\n *\n * @param items - the items of the list, including any `ListSeparator`:s\n * @returns the index as per the description\n */\n private getIndexForWhichToApplyTabIndex = (\n items: Array<ListItem | ListSeparator>,\n ) => {\n let result;\n for (let i = 0, max = items.length; i < max; i += 1) {\n if ('separator' in items[i]) {\n // Ignore ListSeparator\n } else {\n const item = items[i] as ListItem<any>;\n if (item.selected) {\n result = i;\n break;\n }\n\n if (result === undefined && !item.disabled) {\n result = i;\n // Do NOT break, as any later item with\n // `selected=true` should get the tab-index instead!\n }\n }\n }\n\n return result;\n };\n\n /**\n * Render a single list item\n *\n * @param item - the item to render\n * @param index - the index the item had in the `items` array\n * @returns the list item\n */\n private renderListItem = (\n item: ListItem | ListSeparator,\n index: number,\n ) => {\n if ('separator' in item) {\n return (\n <li class=\"mdc-deprecated-list-divider\" role=\"separator\">\n {this.renderTextForSeparator(item)}\n <div class=\"limel-list-divider-line\" />\n </li>\n );\n }\n\n if (['radio', 'checkbox'].includes(this.config.type)) {\n return this.renderVariantListItem(this.config, item, index);\n }\n\n const classNames = {\n 'mdc-deprecated-list-item': true,\n 'mdc-deprecated-list-item--disabled': item.disabled,\n 'mdc-deprecated-list-item--selected': item.selected,\n 'has-primary-component': this.hasPrimaryComponent(item),\n };\n\n const attributes: { tabindex?: string } = {};\n if (index === this.applyTabIndexToItemAtIndex) {\n attributes.tabindex = '0';\n }\n\n return (\n <li\n class={classNames}\n aria-disabled={item.disabled ? 'true' : 'false'}\n aria-selected={item.selected ? 'true' : 'false'}\n data-index={index}\n {...attributes}\n >\n {this.renderIcon(this.config, item)}\n {this.getPrimaryComponent(item)}\n {this.renderText(item)}\n {this.twoLines && this.avatarList ? this.renderDivider() : null}\n {this.renderActionMenu(item.actions)}\n </li>\n );\n };\n\n private renderTextForSeparator = (item: ListSeparator) => {\n if ('text' in item) {\n return <h2 class=\"limel-list-divider-title\">{item.text}</h2>;\n }\n };\n\n private getPrimaryComponent(item: ListItem): Element {\n if (!this.hasPrimaryComponent(item)) {\n return;\n }\n\n const PrimaryComponent = item.primaryComponent.name;\n const props = item.primaryComponent.props;\n\n return <PrimaryComponent {...props} />;\n }\n\n private hasPrimaryComponent = (item: ListItem) => {\n return !!item?.primaryComponent?.name;\n };\n\n /**\n * Render the text of the list item\n *\n * @param item - the list item\n * @returns the text for the list item\n */\n private renderText = (item: ListItem) => {\n if (this.isSimpleItem(item)) {\n return (\n <span class=\"mdc-deprecated-list-item__text\">{item.text}</span>\n );\n }\n\n return (\n <div class=\"mdc-deprecated-list-item__text\">\n <div class=\"mdc-deprecated-list-item__primary-command-text\">\n <div class=\"mdc-deprecated-list-item__primary-text\">\n {item.text}\n </div>\n </div>\n <div class=\"mdc-deprecated-list-item__secondary-text\">\n {item.secondaryText}\n </div>\n </div>\n );\n };\n\n private isSimpleItem = (item: ListItem): boolean => {\n return !('secondaryText' in item);\n };\n\n /**\n * Render an icon for a list item\n *\n * @param config - the config object, passed on from the `renderListItem` function\n * @param item - the list item\n * @returns the icon element\n */\n private renderIcon = (config: ListRendererConfig, item: ListItem) => {\n const style: any = {};\n const name = getIconName(item.icon);\n if (!name) {\n return;\n }\n\n const color = getIconColor(item.icon, item.iconColor);\n\n if (color) {\n if (config.badgeIcons) {\n style['--icon-background-color'] = color;\n } else {\n style.color = color;\n }\n }\n\n return (\n <limel-icon\n badge={config.badgeIcons}\n class=\"mdc-deprecated-list-item__graphic\"\n name={name}\n style={style}\n size={config.iconSize}\n />\n );\n };\n\n private renderDivider = () => {\n const classes = {\n 'mdc-deprecated-list-divider': true,\n 'mdc-deprecated-list-divider--inset': true,\n };\n if (this.config.iconSize) {\n classes[this.config.iconSize] = true;\n }\n\n return <hr class={classes} />;\n };\n\n private renderActionMenu = (actions: Array<MenuItem | ListSeparator>) => {\n if (!actions || actions.length === 0) {\n return;\n }\n\n return (\n <limel-menu\n class=\"mdc-deprecated-list-item__meta\"\n items={actions}\n openDirection=\"left-start\"\n >\n <limel-icon-button\n class=\"action-menu-trigger\"\n slot=\"trigger\"\n icon=\"menu_2\"\n />\n </limel-menu>\n );\n };\n\n private renderVariantListItem = (\n config: ListRendererConfig,\n item: ListItem,\n index: number,\n ) => {\n let itemTemplate;\n if (config.type === 'radio') {\n itemTemplate = (\n <RadioButtonTemplate\n id={`c_${index}`}\n checked={item.selected}\n disabled={item.disabled}\n />\n );\n } else if (config.type === 'checkbox') {\n itemTemplate = (\n <CheckboxTemplate\n id={`c_${index}`}\n checked={item.selected}\n disabled={item.disabled}\n />\n );\n }\n\n const classNames = {\n 'mdc-deprecated-list-item': true,\n 'mdc-deprecated-list-item--disabled': item.disabled,\n 'mdc-deprecated-list-item__text': !item.secondaryText,\n 'has-primary-component': this.hasPrimaryComponent(item),\n };\n\n const attributes: { tabindex?: string } = {};\n if (index === this.applyTabIndexToItemAtIndex) {\n attributes.tabindex = '0';\n }\n\n return (\n <li\n class={classNames}\n role={config.type}\n aria-checked={item.selected ? 'true' : 'false'}\n aria-disabled={item.disabled ? 'true' : 'false'}\n data-index={index}\n {...attributes}\n >\n {this.renderVariantListItemContent(config, item, itemTemplate)}\n </li>\n );\n };\n\n private renderVariantListItemContent = (\n config: ListRendererConfig,\n item: ListItem,\n itemTemplate: any,\n ) => {\n if (this.hasIcons) {\n return [\n item.icon ? this.renderIcon(config, item) : null,\n this.getPrimaryComponent(item),\n this.renderText(item),\n <div class=\"mdc-deprecated-list-item__meta\">\n {itemTemplate}\n </div>,\n ];\n }\n\n return [\n <div class=\"mdc-deprecated-list-item__graphic\">{itemTemplate}</div>,\n this.getPrimaryComponent(item),\n this.renderText(item),\n ];\n };\n}\n","@use '../../style/functions';\n@use '../../style/mixins';\n\n@use '../../style/internal/lime-theme';\n@use '../checkbox/checkbox.scss';\n\n@use '@material/list';\n\n$list-border-radius: 0.375rem; // 6px\n$list--has-interactive-items--mdc-list-item--hover: 1;\n$list-static-actions-list: 1;\n$list-mdc-list-item: 0;\n\n/**\n * @prop --icon-background-color: Color to use for icon background when `badgeIcons=true`.\n * @prop --icon-color: Color to use for icon. Defaults to grey when `badgeIcons=false`. Defaults to white when `badgeIcons=true`.\n * @prop --list-grid-max-width: Maximum width of a list that has `has-grid-layout` class. Defaults to `100%`.\n * @prop --list-grid-item-max-width: Maximum width of items in a list that has `has-grid-layout` class. Defaults to `10rem`.\n * @prop --list-grid-item-min-width: Minimum width of items in a list that has `has-grid-layout` class. Defaults to `7.5rem`.\n * @prop --list-grid-gap: Distance between items in a list that has `has-grid-layout` class. Defaults to `0.75rem`.\n * @prop --list-background-color-of-odd-interactive-items: Background color of odd list items, when `has-striped-rows` class is applied to the component. Defaults to `--contrast-200`.\n * @prop --list-background-color-of-even-interactive-items: Background color of even list items, when `has-striped-rows` class is applied to the component. Defaults to `transparent`.\n * @prop --list-margin: Space around the list. Defaults to `0.25rem`, which visualizes keyboard-focused items in a better way, as it adds some space for the outline effect;\n */\n\n:host(limel-list) {\n display: block;\n isolation: isolate;\n @include checkbox.custom-checkbox-styles;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n@include list.deprecated-core-styles;\n\n.mdc-deprecated-list,\n.mdc-deprecated-list-item__secondary-text {\n // As long as this component is depended on MDC,\n // we need to force it to be font-agnostic.\n // When MDC-dependency is removed, this block can also be removed.\n // However, on removal of MDC-dependency, we should also make sure to check\n // other font-related styles that might be set by MDC,\n // such as `letter-spacing` or `font-size`.\n font-family: inherit;\n}\n\n.mdc-deprecated-list {\n --mdc-theme-text-icon-on-background: var(\n --icon-color,\n rgb(var(--contrast-900))\n );\n margin: var(\n --list-margin,\n 0.25rem\n ); // added space to visualize keyboard-focused items\n padding: 0;\n border-radius: $list-border-radius;\n\n .mdc-deprecated-list-divider {\n border-bottom-color: transparent;\n display: flex;\n align-items: center;\n gap: 0.75rem;\n height: auto;\n padding: 0 0.5rem;\n }\n\n .limel-list-divider-line {\n background-color: rgb(var(--contrast-400));\n height: 0.125rem;\n border-radius: 1rem;\n min-width: 1rem;\n flex-grow: 1;\n }\n\n .limel-list-divider-title {\n all: unset;\n @include mixins.truncate-text;\n color: rgb(var(--contrast-900));\n font-size: 0.8125rem; // 13px\n }\n\n .mdc-deprecated-list-item {\n gap: 0.5rem;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n z-index: $list-mdc-list-item; // in Chrome on Windows, menus flicker when they have a scroll bar and user hovers on them. We may be able to remove this in future versions of Chrome. Kia 2021-May-12\n min-height: 2.5rem;\n\n &:not(.mdc-deprecated-list-item--disabled) {\n &:hover {\n background-color: rgb(var(--contrast-300));\n z-index: 1;\n }\n }\n\n &.mdc-deprecated-list-item--disabled {\n cursor: not-allowed;\n\n limel-icon {\n opacity: 0.38; // similar to `mdc-deprecated-list-item__text` when disabled\n }\n }\n\n &:first-child {\n border-top-left-radius: $list-border-radius;\n border-top-right-radius: $list-border-radius;\n }\n &:last-child {\n border-bottom-right-radius: $list-border-radius;\n border-bottom-left-radius: $list-border-radius;\n }\n }\n\n &.selectable\n .mdc-deprecated-list-item:not(.mdc-deprecated-list-item--disabled) {\n cursor: pointer;\n }\n\n .mdc-deprecated-list-item__meta {\n // the action menu on the right side a list item\n line-height: 100%;\n margin-right: -0.5rem;\n order: var(--limel-list-meta-order, 3);\n }\n\n .mdc-deprecated-list-item__graphic {\n margin-right: 0;\n }\n\n &.mdc-deprecated-list--avatar-list {\n position: relative;\n\n limel-icon.mdc-deprecated-list-item__graphic {\n background-color: var(\n --icon-background-color,\n rgb(var(--contrast-900))\n );\n color: var(--icon-color, rgba(var(--color-white), 0.88));\n margin-left: functions.pxToRem(-4);\n }\n\n hr.mdc-deprecated-list-divider {\n position: absolute;\n bottom: 0;\n\n &.mdc-deprecated-list-divider--inset {\n --icon-width: #{functions.pxToRem(40)};\n --icon-right-padding: #{functions.pxToRem(12)};\n --list-right-padding: #{functions.pxToRem(12)};\n right: 0;\n width: calc(\n 100% - var(--icon-width) - var(--icon-right-padding) - var(\n --list-right-padding\n )\n );\n\n &.x-small {\n --icon-width: #{functions.pxToRem(24)};\n }\n\n &.small {\n --icon-width: #{functions.pxToRem(32)};\n }\n\n &.medium {\n --icon-width: #{functions.pxToRem(40)};\n }\n\n &.large {\n --icon-width: #{functions.pxToRem(48)};\n }\n }\n }\n\n .mdc-deprecated-list-item:last-child hr.mdc-deprecated-list-divider {\n display: none;\n }\n }\n\n &.mdc-deprecated-list--two-line {\n .mdc-deprecated-list-item__text {\n padding-top: functions.pxToRem(8);\n padding-bottom: functions.pxToRem(8);\n }\n }\n\n .mdc-deprecated-list-item__secondary-text,\n .mdc-deprecated-list-item__primary-text,\n .mdc-deprecated-list-item__command-text {\n margin: 0;\n &:before,\n &:after {\n display: none;\n }\n }\n\n .mdc-deprecated-list-item__command-text {\n color: rgb(var(--contrast-800));\n margin-left: 0.7rem;\n }\n\n .mdc-deprecated-list-item__text {\n align-self: center;\n width: 100%;\n }\n\n .mdc-deprecated-list-item__primary-command-text {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n }\n\n // Tweaks to display the icon correctly in Edge\n limel-icon.mdc-deprecated-list-item__graphic {\n display: block;\n }\n}\n\n.mdc-deprecated-list:not(.mdc-deprecated-list--avatar-list) {\n limel-icon.mdc-deprecated-list-item__graphic {\n // Tweaks to make icon lists align nicely with badge-icon lists.\n &[size='x-small'] {\n margin-right: 0;\n }\n &[size='small'] {\n margin-right: 0;\n }\n &[size='medium'] {\n margin-right: 0.25rem;\n }\n &[size='large'] {\n margin-right: 0.5rem;\n }\n }\n}\n\n.mdc-deprecated-list-item.mdc-deprecated-list-item--selected {\n &:before {\n background-color: var(--mdc-theme-primary);\n opacity: 0.15;\n }\n}\n\n:not(.mdc-deprecated-list--non-interactive) {\n > {\n :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item {\n @include mixins.visualize-keyboard-focus;\n\n &:focus-visible {\n border-radius: $list-border-radius;\n z-index: $list--has-interactive-items--mdc-list-item--hover;\n }\n }\n }\n}\n\n@import '../checkbox/checkbox.scss';\n\n@import './radio-button/radio-button.scss';\n\n@import './partial-styles/custom-styles.scss';\n@import './partial-styles/enable-multiline-text.scss';\n@import './partial-styles/_has-grid-layout.scss';\n@import './partial-styles/_static-actions.scss';\n","import { IconSize } from '../icon/icon.types';\nimport { ListItem, ListSeparator } from './list-item.types';\nimport { ListType } from './list.types';\nimport { MDCList, MDCListActionEvent } from '@material/list';\nimport { strings as listStrings } from '@material/list/constants';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { ListRenderer } from './list-renderer';\nimport { ListRendererConfig } from './list-renderer-config';\n\nconst { ACTION_EVENT } = listStrings;\n\n/**\n * @exampleComponent limel-example-list\n * @exampleComponent limel-example-list-secondary\n * @exampleComponent limel-example-list-separator\n * @exampleComponent limel-example-list-selectable\n * @exampleComponent limel-example-list-icons\n * @exampleComponent limel-example-list-badge-icons\n * @exampleComponent limel-example-list-checkbox\n * @exampleComponent limel-example-list-checkbox-icons\n * @exampleComponent limel-example-list-radio-button\n * @exampleComponent limel-example-list-radio-button-icons\n * @exampleComponent limel-example-list-action\n * @exampleComponent limel-example-list-striped\n * @exampleComponent limel-example-list-badge-icons-with-multiple-lines\n * @exampleComponent limel-example-list-grid\n * @exampleComponent limel-example-list-primary-component\n */\n@Component({\n tag: 'limel-list',\n shadow: { delegatesFocus: true },\n styleUrl: 'list.scss',\n})\nexport class List {\n /**\n * List of items to display\n */\n @Prop()\n public items: Array<ListItem | ListSeparator>;\n\n /**\n * Set to `true` if the list should display larger icons with a background\n */\n @Prop()\n public badgeIcons: boolean;\n\n /**\n * Size of the icons in the list\n */\n @Prop()\n public iconSize: IconSize = 'small';\n\n /**\n * The type of the list, omit to get a regular list. Available types are:\n * `selectable`: regular list with single selection.\n * `radio`: radio button list with single selection.\n * `checkbox`: checkbox list with multiple selection.\n */\n @Prop()\n public type: ListType;\n\n /**\n * By default, lists will display 3 lines of text, and then truncate the rest.\n * Consumers can increase or decrease this number by specifying\n * `maxLinesSecondaryText`. If consumer enters zero or negative\n * numbers we default to 1; and if they type decimals we round up.\n */\n // eslint-disable-next-line no-magic-numbers\n @Prop() maxLinesSecondaryText: number = 3;\n\n @Element()\n private element: HTMLLimelListElement;\n\n private config: ListRendererConfig;\n private listRenderer = new ListRenderer();\n private mdcList: MDCList;\n private multiple: boolean;\n private selectable: boolean;\n\n /**\n * Fired when a new value has been selected from the list.\n * Only fired if `type` is set to `selectable`, `radio` or `checkbox`.\n */\n @Event()\n private change: EventEmitter<ListItem | ListItem[]>;\n\n /**\n * Fired when an action has been selected from the action menu of a list item\n */\n @Event()\n protected select: EventEmitter<ListItem | ListItem[]>;\n\n public connectedCallback() {\n this.setup();\n }\n\n public disconnectedCallback() {\n this.teardown();\n }\n\n public componentDidLoad() {\n this.setup();\n this.triggerIconColorWarning();\n }\n\n public render() {\n this.config = {\n badgeIcons: this.badgeIcons,\n type: this.type,\n iconSize: this.iconSize,\n };\n let maxLinesSecondaryText = +this.maxLinesSecondaryText?.toFixed();\n if (this.maxLinesSecondaryText < 1) {\n maxLinesSecondaryText = 1;\n }\n\n const html = this.listRenderer.render(this.items, this.config);\n\n return (\n <Host\n style={{\n '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,\n }}\n >\n {html}\n </Host>\n );\n }\n\n @Watch('type')\n protected handleType() {\n this.setupListeners();\n }\n\n @Watch('items')\n protected itemsChanged() {\n if (!this.mdcList) {\n return;\n }\n\n setTimeout(() => {\n this.setup();\n\n const listItems = this.items.filter(this.isListItem);\n\n if (this.multiple) {\n this.mdcList.selectedIndex = listItems\n .filter((item: ListItem) => item.selected)\n .map((item: ListItem) => listItems.indexOf(item));\n } else {\n const selectedIndex = listItems.findIndex(\n (item: ListItem) => item.selected,\n );\n\n if (selectedIndex === -1) {\n this.mdcList.initializeListType();\n } else {\n this.mdcList.selectedIndex = selectedIndex;\n }\n }\n }, 0);\n }\n\n private setup = () => {\n this.setupList();\n\n this.setupListeners();\n };\n\n private setupList = () => {\n if (this.mdcList) {\n this.teardown();\n this.mdcList = null;\n }\n\n const element = this.element.shadowRoot.querySelector(\n '.mdc-deprecated-list',\n );\n if (!element) {\n return;\n }\n\n this.mdcList = new MDCList(element);\n this.mdcList.hasTypeahead = true;\n };\n\n private setupListeners = () => {\n if (!this.mdcList) {\n return;\n }\n\n this.mdcList.unlisten(ACTION_EVENT, this.handleAction);\n\n this.selectable = ['selectable', 'radio', 'checkbox'].includes(\n this.type,\n );\n this.multiple = this.type === 'checkbox';\n\n if (!this.selectable) {\n return;\n }\n\n this.mdcList.listen(ACTION_EVENT, this.handleAction);\n this.mdcList.singleSelection = !this.multiple;\n };\n\n private teardown = () => {\n this.mdcList?.unlisten(ACTION_EVENT, this.handleAction);\n this.mdcList?.destroy();\n };\n\n private handleAction = (event: MDCListActionEvent) => {\n if (!this.multiple) {\n this.handleSingleSelect(event.detail.index);\n\n return;\n }\n\n this.handleMultiSelect(event.detail.index);\n };\n\n private handleSingleSelect = (index: number) => {\n const listItems = this.items.filter(this.isListItem) as ListItem[];\n if (listItems[index].disabled) {\n return;\n }\n\n const selectedItem: ListItem = listItems.find((item: ListItem) => {\n return !!item.selected;\n });\n\n if (selectedItem) {\n if (this.type !== 'radio') {\n this.mdcList.selectedIndex = -1;\n }\n\n this.change.emit({ ...selectedItem, selected: false });\n }\n\n if (listItems[index] !== selectedItem) {\n this.change.emit({ ...listItems[index], selected: true });\n }\n };\n\n private handleMultiSelect = (index: number) => {\n const listItems = this.items.filter(this.isListItem) as ListItem[];\n if (listItems[index].disabled) {\n return;\n }\n\n const selectedItems: ListItem[] = listItems\n .filter((item: ListItem, listIndex: number) => {\n if (listIndex === index) {\n // This is the item that was selected or deselected,\n // so we negate its previous selection status.\n return !item.selected;\n }\n\n // This is an item that didn't change, so we keep its selection status.\n return item.selected;\n })\n .map((item: ListItem) => {\n return { ...item, selected: true };\n });\n\n this.change.emit(selectedItems);\n };\n\n private isListItem = (item: ListItem): boolean => {\n return !('separator' in item);\n };\n\n private triggerIconColorWarning() {\n if (this.items?.some((item) => 'iconColor' in item)) {\n /* eslint-disable-next-line no-console */\n console.warn(\n \"The `iconColor` prop is deprecated now! Use the new `Icon` interface and instead of `iconColor: 'color-name'` write `icon {name: 'icon-name', color: 'color-name'}`.\",\n );\n }\n }\n}\n","@use '@material/menu-surface';\n@use '@material/elevation';\n@use '@material/menu';\n\n/**\n* @prop --limel-menu-surface-display: defines whether the surface is treated as a block, flex or grid. It affects layout used to display its children. Defaults to `block`.\n* @prop --limel-menu-surface-flex-direction: defines the direction of menu-surface layout.\n*/\n\n:host(limel-menu-surface) {\n display: block;\n max-height: inherit;\n}\n\n@include menu-surface.core-styles;\n@include menu.core-styles;\n\n.mdc-menu-surface {\n display: var(--limel-menu-surface-display, block);\n flex-direction: var(--limel-menu-surface-flex-direction, row);\n max-height: inherit;\n position: relative;\n --mdc-menu-max-width: var(\n --menu-surface-width,\n min(calc(100vw - 2rem), 20rem)\n );\n background-color: var(--lime-elevated-surface-background-color);\n}\n\n:host(limel-menu-surface.has-grid-layout) {\n .mdc-menu-surface {\n width: var(--menu-surface-width, min(calc(100vw - 2rem), 40rem));\n max-width: unset;\n }\n}\n","import { Corner, MDCMenuSurface } from '@material/menu-surface';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n} from '@stencil/core';\nimport { isDescendant } from '../../util/dom';\nimport {\n ESCAPE,\n ESCAPE_KEY_CODE,\n TAB,\n TAB_KEY_CODE,\n} from '../../util/keycodes';\n\n/**\n * @slot - Content to put inside the surface\n * @private\n */\n@Component({\n tag: 'limel-menu-surface',\n shadow: true,\n styleUrl: 'menu-surface.scss',\n})\nexport class MenuSurface {\n /**\n * True if the menu surface is open, false otherwise\n */\n @Prop()\n public open = false;\n\n /**\n * Clicks in this element should not be prevented when the menu surface is open\n */\n @Prop()\n public allowClicksElement: HTMLElement;\n\n /**\n * Emitted when the menu surface is dismissed and should be closed\n */\n @Event()\n public dismiss: EventEmitter<void>;\n\n @Element()\n private host: HTMLLimelMenuSurfaceElement;\n\n private menuSurface: MDCMenuSurface;\n\n public connectedCallback() {\n this.setup();\n }\n\n public disconnectedCallback() {\n this.teardown();\n }\n\n public componentDidLoad() {\n this.setup();\n }\n\n public render() {\n const classList = {\n 'mdc-menu': true,\n 'mdc-menu-surface': true,\n 'mdc-menu-surface--open': this.open,\n 'mdc-elevation-transition': true,\n 'mdc-elevation--z4': true,\n };\n\n return (\n <div class={classList} tabindex=\"-1\">\n <slot />\n </div>\n );\n }\n\n private setup = () => {\n const menuElement: HTMLElement =\n this.host.shadowRoot.querySelector('.mdc-menu-surface');\n if (!menuElement) {\n return;\n }\n\n this.menuSurface = new MDCMenuSurface(menuElement);\n this.menuSurface.setAnchorCorner(Corner.TOP_START);\n\n document.addEventListener('mousedown', this.handleDocumentClick, {\n capture: true,\n });\n this.host.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('resize', this.handleResize, {\n passive: true,\n });\n };\n\n private teardown = () => {\n this.menuSurface?.destroy();\n document.removeEventListener('mousedown', this.handleDocumentClick, {\n capture: true,\n });\n this.host.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('resize', this.handleResize);\n };\n\n private handleDocumentClick = (event) => {\n const elementPath = event.composedPath ? event.composedPath() : [];\n\n if (!this.open) {\n return;\n }\n\n if (isDescendant(event.target, this.host)) {\n return;\n }\n\n if (this.allowClicksElement) {\n const clickedInAllowedElement = elementPath.includes(\n this.allowClicksElement,\n );\n\n if (clickedInAllowedElement) {\n return;\n }\n }\n\n this.dismiss.emit();\n this.preventClickEventPropagation();\n };\n\n private handleResize = () => {\n if (this.open) {\n this.dismiss.emit();\n }\n };\n\n private preventClickEventPropagation = () => {\n // When the menu surface is open, we want to stop the `click` event from propagating\n // when clicking outside the surface itself. This is to prevent any dialog that might\n // be open from closing, etc. However, when dragging a scrollbar no `click` event is emitted,\n // only mousedown and mouseup. So we listen for `mousedown` and attach a one-time listener\n // for `click`, so we can capture and \"kill\" it.\n document.addEventListener('click', this.stopEvent, {\n capture: true,\n once: true,\n });\n // We also capture and \"kill\" the next `mouseup` event.\n document.addEventListener('mouseup', this.stopEvent, {\n capture: true,\n once: true,\n });\n // If the user dragged the scrollbar, no `click` event happens. So when we get the\n // `mouseup` event, remove the handler for `click` if it's still there.\n // Otherwise, we would catch the next click even though the menu is no longer open.\n document.addEventListener(\n 'mouseup',\n () => {\n document.removeEventListener('click', this.stopEvent, {\n capture: true,\n });\n },\n {\n once: true,\n },\n );\n };\n\n private stopEvent = (event) => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const isEscape =\n event.key === ESCAPE || event.keyCode === ESCAPE_KEY_CODE;\n const isTab = event.key === TAB || event.keyCode === TAB_KEY_CODE;\n\n if (this.open && (isEscape || isTab)) {\n event.stopPropagation();\n this.dismiss.emit();\n }\n };\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as t,c as s,h as i,g as e}from"./p-443111b3.js";import{t as r}from"./p-4d503318.js";import{c as a}from"./p-3ccdc4a3.js";class o{constructor(){this.snackbarElements=[]}add(t){const s=this.getPopover(t);s===null||s===void 0?void 0:s.showPopover();this.snackbarElements=[t,...this.snackbarElements];this.emitOffsets()}remove(t){const s=this.getPopover(t);s===null||s===void 0?void 0:s.hidePopover();this.snackbarElements=this.snackbarElements.filter((s=>s!==t));this.emitOffsets()}emitOffsets(){let t=0;this.snackbarElements.forEach((s=>{s.dispatchEvent(new CustomEvent("changeOffset",{detail:t}));t+=this.getPopover(s).getBoundingClientRect().height}))}getPopover(t){return t.shadowRoot.querySelector("[popover]")}}const n="*{box-sizing:border-box}aside{background:none;border:none;inset:unset;overflow:visible;padding:0.5rem 0.5rem 0 0.5rem;right:0;width:var(--limel-snackbar-width, 21rem);top:calc(var(--snackbar-distance-to-top-edge) + env(safe-area-inset-top, 0));transition:opacity var(--limel-snackbar-opacity-transition-speed, 0.2s) ease, top var(--limel-snackbar-top-transition-speed, 0.46s) cubic-bezier(1, 0.09, 0, 0.89), transform var(--limel-snackbar-top-transition-speed, 0.46s) ease;transform:translate3d(0, 0, 0);opacity:1}aside.is-closing{transform:translate3d(2rem, 0, 0);opacity:0;--limel-snackbar-top-transition-speed:0.2s;--limel-snackbar-opacity-transition-speed:0.2s}.surface{overflow:hidden;padding:0.5rem;display:flex;align-items:center;justify-content:flex-start;gap:0.25rem;min-height:3.25rem;border-radius:0.75rem;background-color:rgb(var(--contrast-1400));box-shadow:var(--shadow-depth-8), var(--shadow-depth-16)}.label{color:rgb(var(--contrast-100));-webkit-font-smoothing:antialiased;font-size:0.8125rem;font-weight:400;padding:0 0.25rem;width:100%;flex-grow:1}.actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;gap:0.5rem}.dismiss,.actions{--lime-elevated-surface-background-color:rgb(\n var(--contrast-1300)\n )}.dismiss{--mdc-theme-on-surface:rgb(var(--contrast-100));--icon-background-color:var(--lime-elevated-surface-background-color);--fill-color:var(--mdc-theme-primary);--track-color:rgb(var(--contrast-800), 0.2);transition:opacity 0.1s ease, transform 0.1s ease;position:absolute;top:-0.375rem;left:-0.375rem;transform:scale(0.7);display:flex;align-items:center;justify-content:center}.dismiss svg{position:absolute;transform:rotate(90deg);fill:transparent;stroke-dasharray:100;stroke-linecap:round}aside:popover-open .dismiss svg{animation:timeout var(--snackbar-timeout) linear forwards}.dismiss .is-closing{transform:scale(0.5);opacity:0}.dismiss-button{transform:scale(0.8);margin:0;padding:0}@keyframes timeout{0%{stroke-width:4;stroke-dashoffset:0;opacity:1}100%{stroke-width:1;stroke-dashoffset:-100;opacity:0.7}}";const c=new o;const h=300;const l=class{constructor(i){t(this,i);this.action=s(this,"action",7);this.hide=s(this,"hide",7);this.handleOpen=()=>{if(this.isOpen){return}this.isOpen=true;this.closing=false;c.add(this.host);if(this.timeout){this.timeoutId=window.setTimeout(this.handleClose,Math.max(this.timeout-h,0))}};this.handleClose=()=>{if(!this.isOpen){return}this.closing=true;if(this.timeoutId){clearTimeout(this.timeoutId);this.timeoutId=undefined}setTimeout((()=>{this.isOpen=false;c.remove(this.host);this.hide.emit();this.offset=0}),h)};this.handleClickAction=()=>{this.action.emit()};this.open=false;this.message=undefined;this.timeout=5e3;this.actionText=undefined;this.dismissible=true;this.multiline=undefined;this.language="en";this.offset=0;this.isOpen=false;this.closing=true;this.snackbarId=a()}componentDidLoad(){if(this.open){requestAnimationFrame(this.handleOpen)}}onChangeIndex(t){t.stopPropagation();this.offset=t.detail}watchOpen(){if(this.open){this.handleOpen()}else{this.handleClose()}this.isOpen=this.open}async show(){console.warn("The `show` method in `limel-snackbar` is deprecated. Please use the `open` property instead.");if(!this.open){this.handleOpen()}}render(){return i("aside",{popover:"manual",style:{"--snackbar-timeout":`${this.timeout}ms`,"--snackbar-distance-to-top-edge":`${this.offset}px`},class:{open:this.open,"is-closing":this.closing},id:this.snackbarId,role:this.setAriaRoles(),"aria-relevant":this.open?"additions":undefined},i("div",{class:"surface","aria-atomic":"false"},i("div",{class:"label"},this.message),this.renderActions(this.actionText),this.renderDismissButton(this.dismissible)))}setAriaRoles(){if(!this.open){return undefined}if(!this.timeout){return"alertdialog"}return"status"}renderActions(t){if(!t){return}return i("div",{class:"actions","aria-atomic":"true"},this.renderActionButton(t))}renderActionButton(t){if(!t){return}return i("limel-button",{label:t,onClick:this.handleClickAction})}renderDismissButton(t){if(!t){return}const s=r.get("snackbar.dismiss",this.language);return i("div",{class:"dismiss"},this.renderTimeoutVisualization(),i("limel-icon-button",{class:"dismiss-button",icon:"multiply",label:s,onClick:this.handleClose,"aria-controls":this.snackbarId}))}renderTimeoutVisualization(){if(!this.timeout){return}return i("svg",{width:"36",height:"36",viewBox:"0 0 36 36"},i("circle",{r:"18",cx:"18",cy:"18",fill:"var(--track-color)"}),i("path",{class:"track",d:"M 18,18 m -16,0 a 16,16 0 1,0 32,0 a 16,16 0 1,0 -32,0",stroke:"var(--fill-color)"}))}get host(){return e(this)}static get watchers(){return{open:["watchOpen"]}}};l.style=n;export{l as limel_snackbar};
2
- //# sourceMappingURL=p-48c62d9d.entry.js.map
1
+ import{r as t,c as s,h as i,g as e}from"./p-443111b3.js";import{t as r}from"./p-f63f1114.js";import{c as a}from"./p-3ccdc4a3.js";class o{constructor(){this.snackbarElements=[]}add(t){const s=this.getPopover(t);s===null||s===void 0?void 0:s.showPopover();this.snackbarElements=[t,...this.snackbarElements];this.emitOffsets()}remove(t){const s=this.getPopover(t);s===null||s===void 0?void 0:s.hidePopover();this.snackbarElements=this.snackbarElements.filter((s=>s!==t));this.emitOffsets()}emitOffsets(){let t=0;this.snackbarElements.forEach((s=>{s.dispatchEvent(new CustomEvent("changeOffset",{detail:t}));t+=this.getPopover(s).getBoundingClientRect().height}))}getPopover(t){return t.shadowRoot.querySelector("[popover]")}}const n="*{box-sizing:border-box}aside{background:none;border:none;inset:unset;overflow:visible;padding:0.5rem 0.5rem 0 0.5rem;right:0;width:var(--limel-snackbar-width, 21rem);top:calc(var(--snackbar-distance-to-top-edge) + env(safe-area-inset-top, 0));transition:opacity var(--limel-snackbar-opacity-transition-speed, 0.2s) ease, top var(--limel-snackbar-top-transition-speed, 0.46s) cubic-bezier(1, 0.09, 0, 0.89), transform var(--limel-snackbar-top-transition-speed, 0.46s) ease;transform:translate3d(0, 0, 0);opacity:1}aside.is-closing{transform:translate3d(2rem, 0, 0);opacity:0;--limel-snackbar-top-transition-speed:0.2s;--limel-snackbar-opacity-transition-speed:0.2s}.surface{overflow:hidden;padding:0.5rem;display:flex;align-items:center;justify-content:flex-start;gap:0.25rem;min-height:3.25rem;border-radius:0.75rem;background-color:rgb(var(--contrast-1400));box-shadow:var(--shadow-depth-8), var(--shadow-depth-16)}.label{color:rgb(var(--contrast-100));-webkit-font-smoothing:antialiased;font-size:0.8125rem;font-weight:400;padding:0 0.25rem;width:100%;flex-grow:1}.actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;gap:0.5rem}.dismiss,.actions{--lime-elevated-surface-background-color:rgb(\n var(--contrast-1300)\n )}.dismiss{--mdc-theme-on-surface:rgb(var(--contrast-100));--icon-background-color:var(--lime-elevated-surface-background-color);--fill-color:var(--mdc-theme-primary);--track-color:rgb(var(--contrast-800), 0.2);transition:opacity 0.1s ease, transform 0.1s ease;position:absolute;top:-0.375rem;left:-0.375rem;transform:scale(0.7);display:flex;align-items:center;justify-content:center}.dismiss svg{position:absolute;transform:rotate(90deg);fill:transparent;stroke-dasharray:100;stroke-linecap:round}aside:popover-open .dismiss svg{animation:timeout var(--snackbar-timeout) linear forwards}.dismiss .is-closing{transform:scale(0.5);opacity:0}.dismiss-button{transform:scale(0.8);margin:0;padding:0}@keyframes timeout{0%{stroke-width:4;stroke-dashoffset:0;opacity:1}100%{stroke-width:1;stroke-dashoffset:-100;opacity:0.7}}";const c=new o;const h=300;const l=class{constructor(i){t(this,i);this.action=s(this,"action",7);this.hide=s(this,"hide",7);this.handleOpen=()=>{if(this.isOpen){return}this.isOpen=true;this.closing=false;c.add(this.host);if(this.timeout){this.timeoutId=window.setTimeout(this.handleClose,Math.max(this.timeout-h,0))}};this.handleClose=()=>{if(!this.isOpen){return}this.closing=true;if(this.timeoutId){clearTimeout(this.timeoutId);this.timeoutId=undefined}setTimeout((()=>{this.isOpen=false;c.remove(this.host);this.hide.emit();this.offset=0}),h)};this.handleClickAction=()=>{this.action.emit()};this.open=false;this.message=undefined;this.timeout=5e3;this.actionText=undefined;this.dismissible=true;this.multiline=undefined;this.language="en";this.offset=0;this.isOpen=false;this.closing=true;this.snackbarId=a()}componentDidLoad(){if(this.open){requestAnimationFrame(this.handleOpen)}}onChangeIndex(t){t.stopPropagation();this.offset=t.detail}watchOpen(){if(this.open){this.handleOpen()}else{this.handleClose()}this.isOpen=this.open}async show(){console.warn("The `show` method in `limel-snackbar` is deprecated. Please use the `open` property instead.");if(!this.open){this.handleOpen()}}render(){return i("aside",{popover:"manual",style:{"--snackbar-timeout":`${this.timeout}ms`,"--snackbar-distance-to-top-edge":`${this.offset}px`},class:{open:this.open,"is-closing":this.closing},id:this.snackbarId,role:this.setAriaRoles(),"aria-relevant":this.open?"additions":undefined},i("div",{class:"surface","aria-atomic":"false"},i("div",{class:"label"},this.message),this.renderActions(this.actionText),this.renderDismissButton(this.dismissible)))}setAriaRoles(){if(!this.open){return undefined}if(!this.timeout){return"alertdialog"}return"status"}renderActions(t){if(!t){return}return i("div",{class:"actions","aria-atomic":"true"},this.renderActionButton(t))}renderActionButton(t){if(!t){return}return i("limel-button",{label:t,onClick:this.handleClickAction})}renderDismissButton(t){if(!t){return}const s=r.get("snackbar.dismiss",this.language);return i("div",{class:"dismiss"},this.renderTimeoutVisualization(),i("limel-icon-button",{class:"dismiss-button",icon:"multiply",label:s,onClick:this.handleClose,"aria-controls":this.snackbarId}))}renderTimeoutVisualization(){if(!this.timeout){return}return i("svg",{width:"36",height:"36",viewBox:"0 0 36 36"},i("circle",{r:"18",cx:"18",cy:"18",fill:"var(--track-color)"}),i("path",{class:"track",d:"M 18,18 m -16,0 a 16,16 0 1,0 32,0 a 16,16 0 1,0 -32,0",stroke:"var(--fill-color)"}))}get host(){return e(this)}static get watchers(){return{open:["watchOpen"]}}};l.style=n;export{l as limel_snackbar};
2
+ //# sourceMappingURL=p-715d4a78.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,c as e,h as i,H as d,g as l}from"./p-443111b3.js";import{g as o}from"./p-2f777fdb.js";import{m as r,r as a}from"./p-869d6d77.js";import{t as n}from"./p-f63f1114.js";import{D as c,B as m,i as s,j as f,k as h,l as x,m as p,n as g,a as u,d as b,E as v,c as _}from"./p-e03dfe70.js";import{i as w}from"./p-0ec8eec7.js";import{g as y,a as k}from"./p-6465625e.js";import{M as z}from"./p-85a982f9.js";import{i as Y}from"./p-d0bdb2e3.js";import"./p-1b9d3851.js";import"./p-eda23c05.js";import"./p-c93050d6.js";import"./p-4c3358cb.js";import"./p-0b1af919.js";import"./p-858c6b82.js";import"./p-9acf7b5d.js";import"./p-9f722992.js";import"./p-5a478c15.js";import"./p-e7281e6a.js";const C="@charset \"UTF-8\";:host(limel-chip){--limel-chip-height:1.75rem;--limel-chip-gap:0.5rem;isolation:isolate;display:inline-flex;align-items:center;min-width:0}*{box-sizing:border-box}.chip{all:unset;position:relative;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:0.25rem;max-width:min(var(--chip-max-width, 100%), 25rem);height:var(--limel-chip-height);border-radius:var(--limel-chip-height);font-size:0.875rem;padding:0 0.125rem}.chip:has(limel-icon) .text,.chip:has(img) .text{padding-left:0}.chip:not([disabled]){transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal)}.chip:not([disabled]):focus{outline:none}.chip:not([disabled]):focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.chip:not([disabled]):hover{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}.chip:not([disabled]):active{background-color:var(--mdc-theme-surface);box-shadow:var(--button-shadow-inset-pressed);transform:translate3d(0, 0.05rem, 0)}.chip:has(limel-badge){padding-right:0.375rem}.chip:has(limel-badge) .text{padding-right:0}.chip:has(+.remove-button:hover){box-shadow:var(--shadow-depth-8-error)}.chip:has(+limel-menu),.chip:has(+.trailing-button){padding-right:calc(var(--limel-chip-height) + 0.125rem)}.chip:has(+limel-menu) .text,.chip:has(+.trailing-button) .text{padding-right:0}:host(limel-chip[disabled]:not([disabled=false])) .chip{color:rgba(var(--contrast-1600), 0.37);background-color:rgba(var(--contrast-1600), 0.1);box-shadow:none}:host(limel-chip[readonly]:not([readonly=false])) .chip{box-shadow:0 0 0 1px rgba(var(--contrast-800), 0.5)}:host(limel-chip[selected]:not([selected=false])) .chip{box-shadow:var(--button-shadow-inset)}:host(limel-chip[selected]:not([selected=false])) .chip:focus-visible{box-shadow:var(--button-shadow-inset), var(--shadow-depth-8-focused)}:host(limel-chip[selected]:not([selected=false])) .chip:active{box-shadow:var(--button-shadow-inset-pressed)}:host(limel-chip[selected]:not([selected=false])) .text{color:var(--mdc-theme-primary)}:host(limel-chip[type=filter]) .chip{border-top-left-radius:0.5rem;border-bottom-left-radius:0.5rem}:host(limel-chip[type=filter]) .chip:after{content:\"\";transition:background-color 0.4s ease 0.2s, box-shadow 0.6s ease 0.2s;box-sizing:border-box;position:absolute;bottom:0.125rem;left:0.125rem;width:0.5rem;height:0.5rem;border-radius:50%;background-color:rgb(var(--contrast-800), 0.8);box-shadow:0 0 0 1px rgb(var(--color-white)) inset}:host(limel-chip[type=filter][selected]) .chip:after{background-color:rgb(var(--color-green-default));box-shadow:0 0 0.375rem 0 rgb(var(--color-green-light)), 0 0 0 1px rgb(var(--color-white)) inset}:host(limel-chip[invalid]) .chip{background:url(\"data:image/svg+xml;charset=utf-8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' style='fill-rule:evenodd;'><path fill='rgba(186,186,192,0.16)' d='M0 0h4v4H0zM4 4h4v4H4z'/></svg>\");background-size:0.5rem;background-color:rgb(var(--color-red-default))}:host(limel-chip[invalid]) .text{color:rgb(var(--color-white))}img,limel-icon{flex-shrink:0;width:calc(var(--limel-chip-height) - 0.25rem);height:calc(var(--limel-chip-height) - 0.25rem)}img{border-radius:50%}limel-icon{padding:0.0625rem}limel-badge{pointer-events:none}.text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2;padding:0 0.5rem}.trailing-button{all:unset;transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);background-color:transparent;z-index:1;flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-left:calc(var(--limel-chip-height) * -1 + 0.125rem);margin-right:0.125rem;width:calc(var(--limel-chip-height) - 0.25rem);height:calc(var(--limel-chip-height) - 0.25rem);border-radius:50%}.trailing-button:hover{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}.trailing-button:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}.trailing-button svg{transition:color 0.2s ease, transform 0.2s ease;width:1.25rem}.trailing-button.remove-button:hover{color:rgb(var(--color-red-dark))}.trailing-button.remove-button:hover svg{transform:scale(0.8)}limel-menu button[slot=trigger]:focus{outline:none}limel-menu button[slot=trigger]:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}limel-menu[open] button[slot=trigger]{box-shadow:var(--button-shadow-inset)}.text{transition:padding-left 0.4s ease}limel-linear-progress{position:absolute;z-index:1;margin:auto;left:0.25rem;width:1.25rem}:host(limel-chip[loading]) .chip:before{content:\"\";position:absolute;left:0;width:var(--limel-chip-height);height:var(--limel-chip-height);border-radius:50%;scale:0.9;background-color:rgba(var(--contrast-600), 0.8)}:host(limel-chip[loading]) .chip:not(:has(limel-icon)) .text{padding-left:calc(var(--limel-chip-height) + 0.25rem)}div[role=progressbar]{--limel-chip-progressbar-offset:0.1875rem;--limel-chip-progressbar-stripe-color:rgb(var(--contrast-100), 0.3);--limel-chip-progressbar-stripe-size:1.5rem;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:end;inset:var(--limel-chip-progressbar-offset);max-width:calc(100% - var(--limel-chip-progressbar-offset) * 2);border-radius:inherit;background-color:var(--chip-progress-color, rgb(var(--contrast-700)));width:var(--limel-chip-progress-percentage);opacity:0.8;mix-blend-mode:var(--limel-chip-progress-mix-blend-mode)}div[role=progressbar]:after{content:\"\";transform:translate3d(0, 0, 0);position:absolute;inset:1px;background-image:linear-gradient(-45deg, var(--limel-chip-progressbar-stripe-color) 25%, transparent 25%, transparent 50%, var(--limel-chip-progressbar-stripe-color) 50%, var(--limel-chip-progressbar-stripe-color) 75%, transparent 75%, transparent);z-index:1;background-size:var(--limel-chip-progressbar-stripe-size) var(--limel-chip-progressbar-stripe-size);animation:move 2.5s linear infinite;border-radius:inherit}@media (prefers-reduced-motion){div[role=progressbar]:after{animation:none}}@keyframes move{0%{background-position:0 0}100%{background-position:calc(var(--limel-chip-progressbar-stripe-size) * -1) calc(var(--limel-chip-progressbar-stripe-size) * -1)}}";const X=class{constructor(d){t(this,d);this.remove=e(this,"remove",7);this.menuItemSelected=e(this,"menuItemSelected",7);this.renderAsButton=()=>[i("button",{id:"chip-"+this.identifier,class:"chip",role:"button",disabled:this.disabled||this.readonly,onKeyDown:this.handleDeleteKeyDown},this.renderSpinner(),this.renderPicture(),this.renderLabel(),this.renderBadge(),this.renderProgressBar()),this.renderRemoveButton(),this.renderActionsMenu()];this.renderAsLink=()=>[i("a",{id:"chip-"+this.identifier,class:"chip",href:this.link.href,title:this.link.title,target:this.link.target,"aria-disabled":this.disabled||this.readonly,tabindex:this.disabled||this.readonly?-1:0,onKeyDown:this.handleDeleteKeyDown},this.renderSpinner(),this.renderPicture(),this.renderLabel(),this.renderBadge(),this.renderProgressBar()),this.renderRemoveButton(),this.renderActionsMenu()];this.renderLabel=()=>i("span",{class:"text"},this.text);this.filterClickWhenDisabled=t=>{if(this.disabled||this.readonly){t.preventDefault()}};this.handleRemoveClick=t=>{t.stopPropagation();this.remove.emit(this.identifier)};this.handleDeleteKeyDown=t=>{if(!this.removable){return}const e=[c,m];const i=[s,f];if(e.includes(t.key)||i.includes(t.keyCode)){this.handleRemoveClick(t)}};this.removeChipLabel=()=>n.get("remove",this.language)+" "+this.text;this.actionMenuLabel=()=>n.get("file-viewer.more-actions",this.language);this.handleActionMenuSelect=t=>{const e=t.detail;if(!e){return}if(e.value==="_remove"){this.remove.emit(this.identifier);return}this.menuItemSelected.emit(e)};this.language="en";this.text=undefined;this.icon=undefined;this.image=undefined;this.link=undefined;this.badge=undefined;this.disabled=false;this.readonly=false;this.selected=false;this.invalid=false;this.removable=false;this.type="default";this.loading=false;this.progress=undefined;this.identifier=crypto.randomUUID();this.menuItems=[]}componentWillLoad(){r(this.host)}disconnectedCallback(){a(this.host)}render(){return i(d,{onClick:this.filterClickWhenDisabled},this.link?this.renderAsLink():this.renderAsButton())}renderPicture(){var t,e;const d=o(this.icon);if(!d&&!this.image){return}if(!w(this.image)){return i("img",{src:this.image.src,alt:this.image.alt,loading:"lazy"})}return i("limel-icon",{badge:true,name:d,style:{color:`${(t=this.icon)===null||t===void 0?void 0:t.color}`,"background-color":`${(e=this.icon)===null||e===void 0?void 0:e.backgroundColor}`}})}renderBadge(){if(!this.badge){return}return i("limel-badge",{label:this.badge})}renderRemoveButton(){var t;if(!this.removable||this.readonly||this.disabled||!!((t=this.menuItems)===null||t===void 0?void 0:t.length)){return}const e='<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="currentColor" stroke-width="2" d="m8 8 16 16M24 8 8 24"/></svg>';return i("button",{class:"trailing-button remove-button",tabIndex:-1,"aria-label":this.removeChipLabel,"aria-controls":"chip-"+this.identifier,innerHTML:e,onClick:this.handleRemoveClick})}renderActionsMenu(){var t;if(!((t=this.menuItems)===null||t===void 0?void 0:t.length)){return}const e='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" xml:space="preserve"><circle fill="currentColor" cx="16" cy="16" r="2"/><circle fill="currentColor" cx="16" cy="24" r="2"/><circle fill="currentColor" cx="16" cy="8" r="2"/></svg>';const d=this.getMenuItems();return i("limel-menu",{items:d,onSelect:this.handleActionMenuSelect,openDirection:"bottom-end"},i("button",{slot:"trigger",disabled:this.disabled,class:"trailing-button","aria-label":this.actionMenuLabel,innerHTML:e}))}getMenuItems(){let t=[...this.menuItems];if(this.removable){t=[...t,{separator:true},{text:this.removeChipLabel(),icon:{name:"delete_sign",color:"rgb(var(--color-red-default))"},value:"_remove"}]}return t}renderSpinner(){if(!this.loading){return}return i("limel-linear-progress",{indeterminate:true})}renderProgressBar(){if(!this.progress){return}const t=this.progress+"%";return i("div",{role:"progressbar","aria-label":"%","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":this.progress,style:{"--limel-chip-progress-percentage":t}})}static get delegatesFocus(){return true}get host(){return l(this)}};X.style=C;function j(t){if(this.textValue.length){return}if(!this.value||!this.value.length){return}const e=t.key===h||t.keyCode===x;const i=t.key===p||t.keyCode===g;const d=t.key===u||t.keyCode===b;const l=t.key===c||t.keyCode===s;const o=t.key===m||t.keyCode===f;const r=t.key===v||t.keyCode===_;if(e){return I(this,t)}if(i){return T(this,t)}if(d){return B(this,t)}if(l){return G(this,t)}if(o){return L(this,t)}if(r){return F(this,t)}}function I(t,e){e.preventDefault();if(t.inputChipIndexSelected===null){t.inputChipIndexSelected=t.value.length-1;return}if(t.inputChipIndexSelected<=0){return}t.inputChipIndexSelected-=1}function T(t,e){e.preventDefault();if(t.inputChipIndexSelected===null){t.inputChipIndexSelected=0;return}if(t.inputChipIndexSelected>=t.value.length-1){return}t.inputChipIndexSelected+=1}function B(t,e){if(t.inputChipIndexSelected!==null){e.preventDefault();t.emitInteraction(t.value[t.inputChipIndexSelected])}}function F(t,e){if(t.inputChipIndexSelected!==null){e.preventDefault();t.inputChipIndexSelected=null}}function G(t,e){if(t.inputChipIndexSelected!==null){e.preventDefault();S(t)}}function L(t,e){if(t.inputChipIndexSelected!==null){e.preventDefault();S(t)}else if(!e.repeat){t.inputChipIndexSelected=t.value.length-1}}function S(t){if(t.inputChipIndexSelected!==null){t.removeChip(t.value[t.inputChipIndexSelected].id);t.inputChipIndexSelected=null}}const M='@charset "UTF-8";:host{--mdc-theme-primary:var(\n --lime-primary-color,\n rgb(var(--color-teal-default))\n );--mdc-theme-secondary:var(\n --lime-secondary-color,\n rgb(var(--contrast-1100))\n );--mdc-theme-on-primary:var(\n --lime-on-primary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-secondary:var(\n --lime-on-secondary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-text-disabled-on-background:var(\n --lime-text-disabled-on-background-color,\n rgba(var(--contrast-1700), 0.38)\n );--mdc-theme-text-primary-on-background:var(\n --lime-text-primary-on-background-color,\n rgba(var(--contrast-1700), 0.87)\n );--mdc-theme-text-secondary-on-background:var(\n --lime-text-secondary-on-background-color,\n rgba(var(--contrast-1700), 0.54)\n );--mdc-theme-error:var(\n --lime-error-background-color,\n rgb(var(--color-red-dark))\n );--lime-error-text-color:rgb(var(--color-red-darker));--mdc-theme-surface:var(\n --lime-surface-background-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-surface:var(\n --lime-on-surface-color,\n rgb(var(--contrast-1500))\n )}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right;}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;border-top:1px solid;border-bottom:1px solid;pointer-events:none}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid;}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid;flex-grow:1}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none;}.mdc-notched-outline__notch{flex:0 0 auto;width:auto;max-width:calc(100% - 12px * 2)}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0;}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:inherit;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, inherit));font-size:0.875rem;font-size:var(--mdc-typography-subtitle1-font-size, 0.875rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:0.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);text-decoration:inherit;text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform, inherit);position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform;transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1)}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right;}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required,.mdc-floating-label--required[dir=rtl]{}[dir=rtl] .mdc-floating-label--required::after,.mdc-floating-label--required[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-106%) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-106%) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}}@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-text-field--filled{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);will-change:transform, opacity}.mdc-text-field--filled .mdc-text-field__ripple::before,.mdc-text-field--filled .mdc-text-field__ripple::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.mdc-text-field--filled .mdc-text-field__ripple::before{transition:opacity 15ms linear, background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index, 1)}.mdc-text-field--filled .mdc-text-field__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index, 0)}.mdc-text-field--filled.mdc-ripple-upgraded .mdc-text-field__ripple::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-text-field--filled.mdc-ripple-upgraded .mdc-text-field__ripple::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-text-field--filled.mdc-ripple-upgraded--unbounded .mdc-text-field__ripple::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-text-field--filled.mdc-ripple-upgraded--foreground-activation .mdc-text-field__ripple::after{animation:mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards}.mdc-text-field--filled.mdc-ripple-upgraded--foreground-deactivation .mdc-text-field__ripple::after{animation:mdc-ripple-fg-opacity-out 150ms;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-text-field--filled .mdc-text-field__ripple::before,.mdc-text-field--filled .mdc-text-field__ripple::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-text-field--filled.mdc-ripple-upgraded .mdc-text-field__ripple::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-text-field__ripple{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity, transform, color}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label{color:rgba(0, 0, 0, 0.6)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input{color:rgba(0, 0, 0, 0.87)}@media all{.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:rgba(0, 0, 0, 0.54)}}@media all{.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:rgba(0, 0, 0, 0.54)}}.mdc-text-field .mdc-text-field__input{caret-color:#26a69a;caret-color:var(--mdc-theme-primary, #26a69a)}.mdc-text-field:not(.mdc-text-field--disabled)+.mdc-text-field-helper-line .mdc-text-field-helper-text{color:rgba(0, 0, 0, 0.6)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field-character-counter,.mdc-text-field:not(.mdc-text-field--disabled)+.mdc-text-field-helper-line .mdc-text-field-character-counter{color:rgba(0, 0, 0, 0.6)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon--leading{color:rgba(0, 0, 0, 0.54)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon--trailing{color:rgba(0, 0, 0, 0.54)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__affix--prefix{color:rgba(0, 0, 0, 0.6)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__affix--suffix{color:rgba(0, 0, 0, 0.6)}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:inherit;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, inherit));font-size:0.875rem;font-size:var(--mdc-typography-subtitle1-font-size, 0.875rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:0.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);text-decoration:inherit;text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform, inherit);height:28px;transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1);opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1);opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}}.mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:inherit;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, inherit));font-size:0.875rem;font-size:var(--mdc-typography-subtitle1-font-size, 0.875rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:0.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);text-decoration:inherit;text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform, inherit);height:28px;transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports (-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0;}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0;}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px;}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px;}.mdc-text-field--filled{height:56px}.mdc-text-field--filled .mdc-text-field__ripple::before,.mdc-text-field--filled .mdc-text-field__ripple::after{background-color:rgba(0, 0, 0, 0.87);background-color:var(--mdc-ripple-color, rgba(0, 0, 0, 0.87))}.mdc-text-field--filled:hover .mdc-text-field__ripple::before,.mdc-text-field--filled.mdc-ripple-surface--hover .mdc-text-field__ripple::before{opacity:0.04;opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:whitesmoke}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:rgba(0, 0, 0, 0.42)}.mdc-text-field--filled:not(.mdc-text-field--disabled):hover .mdc-line-ripple::before{border-bottom-color:rgba(0, 0, 0, 0.87)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-color:#26a69a;border-bottom-color:var(--mdc-theme-primary, #26a69a)}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px;}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports (-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:0.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:rgba(0, 0, 0, 0.38)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:rgba(0, 0, 0, 0.87)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:#26a69a;border-color:var(--mdc-theme-primary, #26a69a)}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0;}@supports (top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports (top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px);}@supports (top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports (top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports (top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports (top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports (top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0;}@supports (top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports (top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;}@supports (top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-text-field__ripple::before,.mdc-text-field--outlined .mdc-text-field__ripple::after{content:none}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px;}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:transparent}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0;transition:none}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px;line-height:1.5rem}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-10.25px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-10.25px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:0.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-24.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-24.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px);}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px);}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0;}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px;}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px;}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1);}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:0.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75);}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined,.mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl]{}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px;}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label{color:rgba(38, 166, 154, 0.87)}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-line-ripple::before,.force-invalid:not(.mdc-text-field--disabled):hover .mdc-line-ripple::before{border-bottom-color:#b00020;border-bottom-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after,.force-invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:#b00020;border-bottom-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.force-invalid:not(.mdc-text-field--disabled) .mdc-floating-label{color:#b00020;color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg,.force-invalid:not(.mdc-text-field--disabled)+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{color:#b00020;color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid .mdc-text-field__input,.force-invalid .mdc-text-field__input{caret-color:#b00020;caret-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__icon--trailing,.force-invalid:not(.mdc-text-field--disabled) .mdc-text-field__icon--trailing{color:#b00020;color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before,.force-invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:#b00020;border-bottom-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.force-invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.force-invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing,.force-invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:#b00020;border-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.force-invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.force-invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing,.force-invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#b00020;border-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.force-invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.force-invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing,.force-invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:#b00020;border-color:var(--mdc-theme-error, #b00020)}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg,.force-invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}.mdc-text-field--disabled .mdc-text-field__input{color:rgba(0, 0, 0, 0.38)}@media all{.mdc-text-field--disabled .mdc-text-field__input::placeholder{color:rgba(0, 0, 0, 0.38)}}@media all{.mdc-text-field--disabled .mdc-text-field__input:-ms-input-placeholder{color:rgba(0, 0, 0, 0.38)}}.mdc-text-field--disabled .mdc-floating-label{color:rgba(0, 0, 0, 0.38)}.mdc-text-field--disabled+.mdc-text-field-helper-line .mdc-text-field-helper-text{color:rgba(0, 0, 0, 0.38)}.mdc-text-field--disabled .mdc-text-field-character-counter,.mdc-text-field--disabled+.mdc-text-field-helper-line .mdc-text-field-character-counter{color:rgba(0, 0, 0, 0.38)}.mdc-text-field--disabled .mdc-text-field__icon--leading{color:rgba(0, 0, 0, 0.3)}.mdc-text-field--disabled .mdc-text-field__icon--trailing{color:rgba(0, 0, 0, 0.3)}.mdc-text-field--disabled .mdc-text-field__affix--prefix{color:rgba(0, 0, 0, 0.38)}.mdc-text-field--disabled .mdc-text-field__affix--suffix{color:rgba(0, 0, 0, 0.38)}.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:rgba(0, 0, 0, 0.06)}.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:rgba(0, 0, 0, 0.06)}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field__input::placeholder{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field__input:-ms-input-placeholder{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-floating-label{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled+.mdc-text-field-helper-line .mdc-text-field-helper-text{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field-character-counter,.mdc-text-field--disabled+.mdc-text-field-helper-line .mdc-text-field-character-counter{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field__icon--leading{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field__icon--trailing{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field__affix--prefix{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-text-field__affix--suffix{color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:GrayText}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:GrayText}}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled{background-color:#fafafa}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left;}[dir=rtl] .mdc-text-field--ltr-text,.mdc-text-field--ltr-text[dir=rtl]{}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl]{}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-text-field-helper-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:inherit;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, inherit));font-size:0.6875rem;font-size:var(--mdc-typography-caption-font-size, 0.6875rem);line-height:0.875rem;line-height:var(--mdc-typography-caption-line-height, 0.875rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:0.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, 0.0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform, inherit);display:block;margin-top:0;line-height:normal;margin:0;opacity:0;will-change:opacity;transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-text-field-helper-text::before{display:inline-block;width:0;height:16px;content:"";vertical-align:0}.mdc-text-field-helper-text--persistent{transition:none;opacity:1;will-change:initial}.mdc-text-field-character-counter{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:inherit;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, inherit));font-size:0.6875rem;font-size:var(--mdc-typography-caption-font-size, 0.6875rem);line-height:0.875rem;line-height:var(--mdc-typography-caption-line-height, 0.875rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:0.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, 0.0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform, inherit);display:block;margin-top:0;line-height:normal;margin-left:auto;margin-right:0;padding-left:16px;padding-right:0;white-space:nowrap}.mdc-text-field-character-counter::before{display:inline-block;width:0;height:16px;content:"";vertical-align:0}[dir=rtl] .mdc-text-field-character-counter,.mdc-text-field-character-counter[dir=rtl]{margin-left:0;margin-right:auto;}[dir=rtl] .mdc-text-field-character-counter,.mdc-text-field-character-counter[dir=rtl]{padding-left:0;padding-right:16px;}.mdc-text-field__icon{align-self:center;cursor:pointer}.mdc-text-field__icon:not([tabindex]),.mdc-text-field__icon[tabindex="-1"]{cursor:default;pointer-events:none}.mdc-text-field__icon svg{display:block}.mdc-text-field__icon--leading{margin-left:16px;margin-right:8px}[dir=rtl] .mdc-text-field__icon--leading,.mdc-text-field__icon--leading[dir=rtl]{margin-left:8px;margin-right:16px;}.mdc-text-field__icon--trailing{padding:12px;margin-left:0px;margin-right:0px}[dir=rtl] .mdc-text-field__icon--trailing,.mdc-text-field__icon--trailing[dir=rtl]{margin-left:0px;margin-right:0px;}.mdc-text-field__icon{align-self:center;cursor:pointer}.mdc-text-field__icon:not([tabindex]),.mdc-text-field__icon[tabindex="-1"]{cursor:default;pointer-events:none}.mdc-text-field__icon svg{display:block}.mdc-text-field__icon--leading{margin-left:16px;margin-right:8px}[dir=rtl] .mdc-text-field__icon--leading,.mdc-text-field__icon--leading[dir=rtl]{margin-left:8px;margin-right:16px;}.mdc-text-field__icon--trailing{padding:12px;margin-left:0px;margin-right:0px}[dir=rtl] .mdc-text-field__icon--trailing,.mdc-text-field__icon--trailing[dir=rtl]{margin-left:0px;margin-right:0px;}.mdc-text-field.mdc-text-field--outlined{transition:background-color 0.2s ease;border-radius:0.25rem}.mdc-text-field.mdc-text-field--outlined .mdc-notched-outline__leading,.mdc-text-field.mdc-text-field--outlined .mdc-notched-outline__notch,.mdc-text-field.mdc-text-field--outlined .mdc-notched-outline__trailing{transition:border-color 0.2s ease}.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled){background-color:rgba(var(--contrast-200), 0.5)}.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):hover{background-color:rgba(var(--contrast-200), 1)}.mdc-text-field.mdc-text-field--outlined.mdc-text-field--focused{background-color:rgba(var(--contrast-100), 0.8)}.mdc-text-field.mdc-text-field--outlined.mdc-text-field--disabled{background-color:transparent}.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid) .mdc-notched-outline__leading,.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid) .mdc-notched-outline__notch,.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid) .mdc-notched-outline__trailing{border-color:rgba(var(--contrast-700), 0.65)}.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid):not(.mdc-text-field--focused):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid):not(.mdc-text-field--focused):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid):not(.mdc-text-field--focused):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:rgba(var(--contrast-700), 1)}.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid):not(.force-invalid):not(.force-invalid).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-theme-primary)}.mdc-text-field .mdc-notched-outline__leading,.mdc-text-field .mdc-notched-outline__notch,.mdc-text-field .mdc-notched-outline__trailing,.mdc-text-field.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:1px}.mdc-text-field.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field__icon{color:rgb(var(--contrast-900));flex-shrink:0}.mdc-text-field__input,.mdc-floating-label{font-family:inherit}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label{color:rgba(var(--contrast-1200), 1)}.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input{color:rgba(var(--contrast-1400), 1)}.mdc-text-field.mdc-text-field--disabled .mdc-floating-label{color:rgba(var(--contrast-1200), 0.5)}.mdc-text-field.mdc-text-field--disabled .mdc-text-field__input{color:rgba(var(--contrast-1400), 0.5)}.mdc-floating-label--float-above{transform:translateY(-1.6875rem) scale(0.75) !important}.mdc-text-field--with-leading-icon .mdc-floating-label--float-above{transform:translateY(-1.5625rem) translateX(-1.25rem) scale(0.75) !important}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--with-leading-icon .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:0.875rem}.mdc-text-field--disabled{background-color:transparent}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly .mdc-text-field__input{background-color:transparent;color:rgba(var(--contrast-1400), 1)}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-leading-icon .lime-looks-like-input-value,.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.has-leading-icon .lime-looks-like-input-value{padding-left:1rem}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly .lime-looks-like-input-value{color:rgba(var(--contrast-1400), 1);opacity:1}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly .mdc-floating-label{color:rgba(var(--contrast-1200), 1)}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly .mdc-notched-outline__leading,.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly .mdc-notched-outline__notch,.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly .mdc-notched-outline__trailing{border-color:transparent}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg,.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.force-invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{color:var(--lime-error-text-color)}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon input.mdc-text-field__input{pointer-events:none}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing{width:calc(100% - 1rem);position:absolute;left:0;display:flex;justify-content:flex-end;align-items:center;pointer-events:auto;color:rgba(var(--contrast-1200), 1);border-radius:0.25rem}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing limel-icon{width:1.5rem;margin-right:0.25rem}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover .mdc-text-field__icon--trailing:hover{box-shadow:var(--button-shadow-hovered)}.mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover .mdc-text-field__icon--trailing:active{box-shadow:var(--button-shadow-pressed)}.mdc-text-field__icon{color:rgb(var(--contrast-900));width:1.5rem;height:1.5rem}.lime-empty-value-for-readonly{z-index:1;position:absolute;top:0.875rem;left:1rem}.lime-looks-like-input-value{line-height:1.75rem;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:rgba(var(--contrast-1400), 1);font-size:0.875rem;font-weight:400;letter-spacing:0.009375em}.mdc-text-field--disabled .lime-looks-like-input-value{cursor:not-allowed;opacity:0.4}:host(limel-chip-set){isolation:isolate}.mdc-chip-set{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;min-height:2.5rem;position:relative}.mdc-chip-set.chip-set--with-label .lime-floating-label--float-above{padding-left:0.25rem}.mdc-chip-set.mdc-chip-set--input{padding:0.4rem 0.5rem;width:100%}.mdc-chip-set.has-clear-all-button.mdc-chip-set--input{padding-right:2rem}.mdc-text-field{height:auto;cursor:text;flex-wrap:wrap;row-gap:0.5rem}.mdc-text-field .mdc-text-field__input{width:auto;padding:0 0.75rem;flex-grow:1;flex-shrink:0}.mdc-text-field .mdc-text-field__input::placeholder{color:rgb(var(--contrast-900)) !important}.mdc-text-field .mdc-text-field__input.hidden{transition:all 0s;opacity:0;position:absolute;z-index:-100}.mdc-text-field .mdc-text-field__input[type=search]{-webkit-appearance:textfield;background-color:transparent}.mdc-text-field .mdc-text-field__input[type=search]::-webkit-search-cancel-button{display:none}.chip-set__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:120%;top:0.8125rem;padding-left:1.25rem}.lime-notched-outline--notched .mdc-notched-outline__notch{border-top:1px solid transparent !important}.lime-notched-outline--notched .mdc-notched-outline__notch .lime-floating-label--float-above{top:1.6875rem;transform:translateY(-34.75px) scale(0.75) !important;font-size:0.875rem}.clear-all-button{transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);background-color:rgb(var(--contrast-900));cursor:pointer;height:1.25rem;width:1.25rem;border-radius:50%;background-repeat:no-repeat;background-position:center;background-size:0.75rem;background-image:url("data:image/svg+xml; utf8, <svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 32 32\'><defs/><path fill=\'rgb(255,255,255)\' d=\'M7.219 5.781L5.78 7.22 14.563 16 5.78 24.781 7.22 26.22 16 17.437l8.781 8.782 1.438-1.438L17.437 16l8.782-8.781L24.78 5.78 16 14.563z\'/></svg>");position:absolute;right:0.5rem;top:calc(2.5rem / 4);opacity:0}.clear-all-button:hover{color:var(--mdc-theme-on-surface);background-color:rgb(var(--contrast-1100));box-shadow:var(--button-shadow-hovered)}.clear-all-button:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}.clear-all-button:focus{outline:none}.clear-all-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.clear-all-button:focus,.has-chips:not(.mdc-text-field--disabled):hover .clear-all-button,.has-chips:not(.mdc-text-field--disabled).mdc-text-field--focused .clear-all-button{opacity:1;outline:none}.mdc-chip-set:not(.has-chips) .clear-all-button,.has-chips.mdc-text-field--disabled .clear-all-button{display:none}.has-leading-icon:not(.has-chips) .mdc-text-field__input{padding-left:1.5rem}.has-leading-icon:not(.has-chips) .mdc-floating-label:not(.lime-floating-label--float-above){left:1.5rem}.has-leading-icon:not(.has-chips) .mdc-floating-label.mdc-floating-label--float-above{left:0.25rem}.has-leading-icon limel-chip:first-of-type{margin-left:1.5rem}.has-leading-icon .search-icon{transition:transform 0.2s ease;position:absolute;top:0.5625rem;left:0.25rem}.has-leading-icon limel-icon{background-color:transparent}.delimiter{opacity:0.5;padding:0 0.125rem;color:var(--mdc-theme-on-surface)}limel-chip{border-radius:2rem}limel-chip.can-be-removed{box-shadow:var(--shadow-depth-8-error)}:host(limel-chip-set[readonly]) .mdc-text-field.mdc-text-field--disabled{pointer-events:auto}:host(limel-chip-set:focus),:host(limel-chip-set:focus-visible),:host(limel-chip-set:focus-within),:host(limel-chip-set[invalid]:not([invalid=false])),:host(limel-chip-set[invalid=true]){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limel-chip-set){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limel-chip-set:focus) limel-helper-line,:host(limel-chip-set:focus-visible) limel-helper-line,:host(limel-chip-set:focus-within) limel-helper-line,:host(limel-chip-set:hover) limel-helper-line{will-change:grid-template-rows}.mdc-text-field.mdc-text-field--outlined{min-height:2.5rem}';const D=1;const q=class{constructor(d){t(this,d);this.interact=e(this,"interact",7);this.change=e(this,"change",7);this.startEdit=e(this,"startEdit",7);this.stopEdit=e(this,"stopEdit",7);this.input=e(this,"input",7);this.handleKeyDown=j;this.getValue=()=>this.value.map((t=>Object.assign(Object.assign({},t),this.type&&{selected:this.selectedChipIds.includes(t.id)})));this.renderEmptyValueForReadonly=()=>{if(this.readonly&&this.value.length===0){return i("span",{class:"lime-empty-value-for-readonly lime-looks-like-input-value"},"–")}};this.floatLabelAbove=()=>{if(!!this.value.length||this.editMode||this.readonly){return true}};this.dropZoneTip=()=>n.get("file.drag-and-drop-tips",this.language);this.hasHelperText=()=>this.helperText!==null&&this.helperText!==undefined;this.renderHelperLine=()=>{const t=this.maxItems===1?undefined:this.maxItems;if(!t&&!this.hasHelperText()){return}return i("limel-helper-line",{length:this.value.length,maxLength:t,helperText:this.helperText,invalid:this.isInvalid()})};this.catchInputChipClicks=t=>e=>{e.Lime={chip:t};if(this.isSelectableChip(t)){this.updateSelectedChipIds(t);this.change.emit(t)}this.emitInteraction(t)};this.handleRemoveChip=t=>{this.removeChip(t.detail)};this.removeChip=t=>{const e=this.value.filter((e=>e.id!==t));this.change.emit(e)};this.clearAllChipsLabel=()=>n.get("chip-set.clear-all",this.language);this.value=[];this.type=undefined;this.label=undefined;this.helperText=undefined;this.disabled=false;this.readonly=false;this.invalid=false;this.inputType="text";this.maxItems=undefined;this.required=false;this.searchLabel=undefined;this.emptyInputOnBlur=true;this.clearAllButton=true;this.leadingIcon=null;this.delimiter=null;this.language="en";this.editMode=false;this.textValue="";this.blurred=false;this.inputChipIndexSelected=null;this.selectedChipIds=undefined;this.renderChip=this.renderChip.bind(this);this.renderInputChip=this.renderInputChip.bind(this);this.isFull=this.isFull.bind(this);this.handleTextFieldFocus=this.handleTextFieldFocus.bind(this);this.handleInputBlur=this.handleInputBlur.bind(this);this.handleTextInput=this.handleTextInput.bind(this);this.inputFieldOnChange=this.inputFieldOnChange.bind(this);this.handleKeyDown=this.handleKeyDown.bind(this);this.inputHidden=this.inputHidden.bind(this);this.handleDeleteAllIconClick=this.handleDeleteAllIconClick.bind(this);this.renderDelimiter=this.renderDelimiter.bind(this)}connectedCallback(){this.initialize()}initialize(){if(this.value.length){this.selectedChipIds=this.value.filter((t=>t.selected)).map((t=>t.id))}}async getEditMode(){return this.editMode}async setFocus(t=false){if(this.disabled||this.readonly){return}this.editMode=true;if(t){this.textValue=""}this.host.shadowRoot.querySelector("input").focus();this.startEdit.emit()}async emptyInput(){this.syncEmptyInput()}componentDidLoad(){this.triggerIconColorWarning(this.value);if(this.type==="input"){this.mdcTextField=new z(this.host.shadowRoot.querySelector(".mdc-text-field"))}}componentDidUpdate(){const t=this.host.shadowRoot.querySelector("input");if(t&&this.editMode){t.focus()}}disconnectedCallback(){if(this.mdcTextField){this.mdcTextField.destroy()}}render(){if(this.type==="input"){return this.renderInputChips()}const t={"mdc-chip-set":true,disabled:this.disabled||this.readonly,"mdc-text-field--with-trailing-icon":true};if(this.type){t[`mdc-chip-set--${this.type}`]=true}const e=this.renderChipSetLabel();if(e){t["chip-set--with-label"]=true}const d=this.getValue();return i("div",{class:t,role:"grid"},e,d.map(this.renderChip),this.renderHelperLine())}handleChangeChips(t,e){if(Y(t,e)){return}this.syncEmptyInput();this.initialize()}renderChipSetLabel(){if(!this.label){return}return i("label",{class:"chip-set__label mdc-floating-label mdc-floating-label--float-above"},this.label)}renderInputChips(){return[i("div",{class:{"mdc-text-field mdc-text-field--outlined":true,"mdc-chip-set mdc-chip-set--input":true,"force-invalid":this.isInvalid(),"mdc-text-field--disabled":this.readonly||this.disabled,"lime-text-field--readonly":this.readonly,"has-chips mdc-text-field--label-floating":this.value.length!==0,"has-leading-icon":this.leadingIcon!==null,"has-clear-all-button":this.clearAllButton},onClick:this.handleTextFieldFocus},this.value.map(this.renderInputChip),i("input",{tabIndex:D,type:this.inputType,id:"input-element",disabled:this.readonly||this.disabled,class:{"mdc-text-field__input":true,hidden:this.inputHidden()},value:this.textValue,onBlur:this.handleInputBlur,onFocus:this.handleTextFieldFocus,onKeyDown:this.handleKeyDown,onInput:this.handleTextInput,onChange:this.inputFieldOnChange,placeholder:this.isFull()?"":this.searchLabel,readonly:this.isFull()}),i("div",{class:{"mdc-notched-outline":true,"mdc-notched-outline--upgraded":true,"mdc-text-field--required":this.required,"lime-notched-outline--notched":this.floatLabelAbove()},"dropzone-tip":this.dropZoneTip()},i("div",{class:"mdc-notched-outline__leading"}),this.renderLabel(),i("div",{class:"mdc-notched-outline__trailing"})),this.renderLeadingIcon(),this.renderEmptyValueForReadonly(),this.renderClearAllChipsButton()),this.renderHelperLine()]}renderLabel(){const t={"mdc-floating-label":true,"mdc-text-field--disabled":this.readonly||this.disabled,"mdc-floating-label--required":this.required,"lime-floating-label--float-above":this.floatLabelAbove()};if(!this.label){return}return i("div",{class:"mdc-notched-outline__notch"},i("label",{class:t,htmlFor:"input-element"},this.label))}isFull(){return!!this.maxItems&&this.value.length>=this.maxItems}isInvalid(){if(this.readonly){return false}if(this.invalid){return true}if(!this.required){return false}if(!this.blurred){return false}return!this.value||!this.value.length}inputFieldOnChange(t){t.stopPropagation()}handleTextFieldFocus(){if(this.disabled||this.readonly){return}if(this.editMode){return}this.editMode=true;this.startEdit.emit()}handleInputBlur(){if(this.emptyInputOnBlur){this.syncEmptyInput()}this.editMode=false;this.blurred=true;this.inputChipIndexSelected=null;setTimeout((()=>{this.stopEdit.emit()}),0)}syncEmptyInput(){this.textValue=""}inputHidden(){if(this.editMode){return this.isFull()}return!!(this.value&&this.value.length)}handleTextInput(t){t.stopPropagation();this.inputChipIndexSelected=null;this.textValue=t.target.value;this.input.emit(t.target.value&&t.target.value.trim())}emitInteraction(t){this.interact.emit(t)}renderChip(t){const e=this.type==="filter"?"filter":"default";const d=this.getChipProps(t,e);return i("limel-chip",Object.assign({},d))}renderInputChip(t,e,d){const l=this.getChipProps(t,"default");const o=e===d.length-1;return[i("limel-chip",Object.assign({key:t.id,class:{"can-be-removed":this.inputChipIndexSelected===e}},l)),!(o&&this.inputHidden())&&this.renderDelimiter()]}getChipProps(t,e){const i=this.type==="input"&&t.removable&&!this.readonly;const d=this.readonly&&this.type!=="input";return Object.assign({role:"row",identifier:t.id,text:t.text,icon:t.icon,image:t.image,badge:t.badge,selected:t.selected,disabled:this.disabled,readonly:d,type:e,removable:i,menuItems:t.menuItems,onClick:this.catchInputChipClicks(t),onRemove:this.handleRemoveChip},t.href&&{link:{href:y(t.href),target:k(t.href)}})}isSelectableChip(t){return this.type!=="input"&&"selected"in t}updateSelectedChipIds(t){t.selected=!t.selected;const e=t.id;if(this.type==="choice"){this.updateChoiceTypeSelectedIds(e)}else{this.updateFilterTypeSelectedIds(e)}}updateChoiceTypeSelectedIds(t){this.selectedChipIds=this.isChipSelected(t)?[]:[t]}isChipSelected(t){return!!this.selectedChipIds.find((e=>e===t))}updateFilterTypeSelectedIds(t){if(this.isChipSelected(t)){this.removeChipIdFromSelectedChipIds(t)}else{this.addChipIdToSelectedChipIds(t)}}removeChipIdFromSelectedChipIds(t){this.selectedChipIds=this.selectedChipIds.filter((e=>e!==t))}addChipIdToSelectedChipIds(t){this.selectedChipIds=[...this.selectedChipIds,t]}renderLeadingIcon(){if(!this.leadingIcon){return}return i("i",{class:"mdc-text-field__icon search-icon"},i("limel-icon",{name:this.leadingIcon}))}renderClearAllChipsButton(){if(this.disabled||this.readonly||!this.clearAllButton){return}return i("a",{href:"",onClick:this.handleDeleteAllIconClick,class:"mdc-text-field__icon clear-all-button",tabindex:"0",role:"button",title:this.clearAllChipsLabel(),"aria-label":this.clearAllChipsLabel()})}handleDeleteAllIconClick(t){t.preventDefault();this.change.emit([])}renderDelimiter(){if(!this.delimiter){return}return i("div",{class:"delimiter"},this.delimiter)}triggerIconColorWarning(t){for(const e of t){if(e.icon&&(e.iconFillColor||e.iconBackgroundColor||e.iconTitle)){console.warn("The `iconFillColor`, `iconBackgroundColor`, and `iconTitle` props are deprecated now! Use the new `Icon` interface and instead of `iconColor: 'color-name', `iconBackgroundColor: 'color-name', and `iconTitle: 'title'`, write `icon { name: 'icon-name', color: 'color-name', backgroundColor: 'color-name', title: 'title' }`.")}}}get host(){return l(this)}static get watchers(){return{value:["handleChangeChips"]}}};q.style=M;export{X as limel_chip,q as limel_chip_set};
2
+ //# sourceMappingURL=p-78889be5.entry.js.map