@limetech/lime-elements 38.31.0 → 38.31.2

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 (193) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-action-bar_2.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-callout.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  9. package/dist/cjs/limel-collapsible-section.cjs.entry.js.map +1 -1
  10. package/dist/cjs/limel-drag-handle.cjs.entry.js +34 -0
  11. package/dist/cjs/limel-drag-handle.cjs.entry.js.map +1 -0
  12. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-form.cjs.entry.js +3220 -305
  16. package/dist/cjs/limel-form.cjs.entry.js.map +1 -1
  17. package/dist/cjs/limel-info-tile.cjs.entry.js +1 -1
  18. package/dist/cjs/limel-info-tile.cjs.entry.js.map +1 -1
  19. package/dist/cjs/limel-linear-progress.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-list-item.cjs.entry.js +1 -1
  21. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  23. package/dist/cjs/limel-snackbar.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/cjs/{translations-d2be6dd7.js → translations-a42886f2.js} +17 -1
  27. package/dist/cjs/translations-a42886f2.js.map +1 -0
  28. package/dist/collection/collection-manifest.json +1 -0
  29. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.css +3 -0
  30. package/dist/collection/components/action-bar/action-bar.css +3 -0
  31. package/dist/collection/components/badge/badge.css +3 -0
  32. package/dist/collection/components/breadcrumbs/breadcrumbs.css +3 -0
  33. package/dist/collection/components/button/button.css +3 -0
  34. package/dist/collection/components/button-group/button-group.css +3 -0
  35. package/dist/collection/components/card/card.css +3 -0
  36. package/dist/collection/components/chart/chart.css +6 -0
  37. package/dist/collection/components/checkbox/checkbox.css +3 -0
  38. package/dist/collection/components/chip/chip.css +3 -0
  39. package/dist/collection/components/chip-set/chip-set.css +6 -0
  40. package/dist/collection/components/circular-progress/circular-progress.css +3 -0
  41. package/dist/collection/components/code-editor/code-editor.css +3 -0
  42. package/dist/collection/components/collapsible-section/collapsible-section.css +17 -8
  43. package/dist/collection/components/color-picker/color-picker-palette.css +3 -0
  44. package/dist/collection/components/color-picker/color-picker.css +3 -0
  45. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +3 -0
  46. package/dist/collection/components/dialog/dialog.css +3 -0
  47. package/dist/collection/components/dock/dock-button/dock-button.css +3 -0
  48. package/dist/collection/components/dock/dock.css +3 -0
  49. package/dist/collection/components/drag-handle/drag-handle.css +174 -0
  50. package/dist/collection/components/drag-handle/drag-handle.js +125 -0
  51. package/dist/collection/components/drag-handle/drag-handle.js.map +1 -0
  52. package/dist/collection/components/file/file.css +3 -0
  53. package/dist/collection/components/file-viewer/file-viewer.css +3 -0
  54. package/dist/collection/components/form/form.css +143 -14
  55. package/dist/collection/components/form/templates/array-field-collapsible-item.js +13 -16
  56. package/dist/collection/components/form/templates/array-field-collapsible-item.js.map +1 -1
  57. package/dist/collection/components/form/templates/array-field-simple-item.js +16 -49
  58. package/dist/collection/components/form/templates/array-field-simple-item.js.map +1 -1
  59. package/dist/collection/components/form/templates/array-field.js +306 -19
  60. package/dist/collection/components/form/templates/array-field.js.map +1 -1
  61. package/dist/collection/components/header/header.css +3 -0
  62. package/dist/collection/components/help/help.css +3 -0
  63. package/dist/collection/components/help/limel-help-content.css +3 -0
  64. package/dist/collection/components/icon-button/icon-button.css +3 -0
  65. package/dist/collection/components/info-tile/info-tile.css +3 -0
  66. package/dist/collection/components/input-field/input-field.css +3 -0
  67. package/dist/collection/components/list/list.css +6 -0
  68. package/dist/collection/components/list-item/list-item.css +3 -0
  69. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.css +3 -0
  70. package/dist/collection/components/markdown/markdown.css +3 -0
  71. package/dist/collection/components/menu-list/menu-list.css +6 -0
  72. package/dist/collection/components/notched-outline/notched-outline.css +3 -0
  73. package/dist/collection/components/popover-surface/popover-surface.css +3 -0
  74. package/dist/collection/components/profile-picture/profile-picture.css +3 -0
  75. package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.css +3 -0
  76. package/dist/collection/components/radio-button-group/radio-button.css +3 -0
  77. package/dist/collection/components/select/select.css +6 -0
  78. package/dist/collection/components/shortcut/shortcut.css +3 -0
  79. package/dist/collection/components/slider/slider.css +3 -0
  80. package/dist/collection/components/split-button/split-button.css +3 -0
  81. package/dist/collection/components/switch/switch.css +3 -0
  82. package/dist/collection/components/tab-bar/tab-bar.css +3 -0
  83. package/dist/collection/components/table/table.css +12 -0
  84. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.css +3 -0
  85. package/dist/collection/components/text-editor/text-editor.css +3 -0
  86. package/dist/collection/style/mixins.scss +53 -0
  87. package/dist/collection/translations/da.js +2 -0
  88. package/dist/collection/translations/da.js.map +1 -1
  89. package/dist/collection/translations/de.js +2 -0
  90. package/dist/collection/translations/de.js.map +1 -1
  91. package/dist/collection/translations/en.js +2 -0
  92. package/dist/collection/translations/en.js.map +1 -1
  93. package/dist/collection/translations/fi.js +2 -0
  94. package/dist/collection/translations/fi.js.map +1 -1
  95. package/dist/collection/translations/fr.js +2 -0
  96. package/dist/collection/translations/fr.js.map +1 -1
  97. package/dist/collection/translations/nl.js +2 -0
  98. package/dist/collection/translations/nl.js.map +1 -1
  99. package/dist/collection/translations/no.js +2 -0
  100. package/dist/collection/translations/no.js.map +1 -1
  101. package/dist/collection/translations/sv.js +2 -0
  102. package/dist/collection/translations/sv.js.map +1 -1
  103. package/dist/esm/lime-elements.js +1 -1
  104. package/dist/esm/limel-action-bar_2.entry.js +1 -1
  105. package/dist/esm/limel-ai-avatar.entry.js +1 -1
  106. package/dist/esm/limel-callout.entry.js +1 -1
  107. package/dist/esm/limel-chart.entry.js +1 -1
  108. package/dist/esm/limel-chip_2.entry.js +1 -1
  109. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  110. package/dist/esm/limel-collapsible-section.entry.js.map +1 -1
  111. package/dist/esm/limel-drag-handle.entry.js +30 -0
  112. package/dist/esm/limel-drag-handle.entry.js.map +1 -0
  113. package/dist/esm/limel-file-viewer.entry.js +1 -1
  114. package/dist/esm/limel-file.entry.js +1 -1
  115. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  116. package/dist/esm/limel-form.entry.js +3214 -299
  117. package/dist/esm/limel-form.entry.js.map +1 -1
  118. package/dist/esm/limel-info-tile.entry.js +1 -1
  119. package/dist/esm/limel-info-tile.entry.js.map +1 -1
  120. package/dist/esm/limel-linear-progress.entry.js +1 -1
  121. package/dist/esm/limel-list-item.entry.js +1 -1
  122. package/dist/esm/limel-profile-picture.entry.js +1 -1
  123. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  124. package/dist/esm/limel-snackbar.entry.js +1 -1
  125. package/dist/esm/limel-table.entry.js +1 -1
  126. package/dist/esm/loader.js +1 -1
  127. package/dist/esm/{translations-91c611da.js → translations-9bfde9f4.js} +17 -1
  128. package/dist/esm/translations-9bfde9f4.js.map +1 -0
  129. package/dist/lime-elements/lime-elements.esm.js +1 -1
  130. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  131. package/dist/lime-elements/p-309d0652.entry.js +2 -0
  132. package/dist/lime-elements/{p-e6245ef7.entry.js.map → p-309d0652.entry.js.map} +1 -1
  133. package/dist/lime-elements/p-31f1cb08.entry.js +2 -0
  134. package/dist/lime-elements/p-31f1cb08.entry.js.map +1 -0
  135. package/dist/lime-elements/{p-cc7f4c81.entry.js → p-3311eaf3.entry.js} +2 -2
  136. package/dist/lime-elements/{p-aeba4aa4.entry.js → p-40542ccc.entry.js} +2 -2
  137. package/dist/lime-elements/{p-d349e355.entry.js → p-42e889d8.entry.js} +2 -2
  138. package/dist/lime-elements/p-5df2361b.js +2 -0
  139. package/dist/lime-elements/p-5df2361b.js.map +1 -0
  140. package/dist/lime-elements/{p-b5abf284.entry.js → p-5e976a59.entry.js} +2 -2
  141. package/dist/lime-elements/{p-6c60172e.entry.js → p-787be044.entry.js} +2 -2
  142. package/dist/lime-elements/p-8ea3b80a.entry.js +2 -0
  143. package/dist/lime-elements/p-8ea3b80a.entry.js.map +1 -0
  144. package/dist/lime-elements/{p-d1aa44e1.entry.js → p-92aa9610.entry.js} +2 -2
  145. package/dist/lime-elements/{p-8e3c4418.entry.js → p-aa1e7319.entry.js} +2 -2
  146. package/dist/lime-elements/p-ae267255.entry.js +27 -0
  147. package/dist/lime-elements/p-ae267255.entry.js.map +1 -0
  148. package/dist/lime-elements/{p-ed04acfc.entry.js → p-b0acf522.entry.js} +2 -2
  149. package/dist/lime-elements/{p-f83ebd28.entry.js → p-b7bbb6a5.entry.js} +2 -2
  150. package/dist/lime-elements/{p-eb396630.entry.js → p-cd2f780a.entry.js} +2 -2
  151. package/dist/lime-elements/{p-aae161ef.entry.js → p-d79c85e2.entry.js} +2 -2
  152. package/dist/lime-elements/{p-1b036add.entry.js → p-e00465fa.entry.js} +2 -2
  153. package/dist/lime-elements/{p-29c2cdc6.entry.js → p-ee5c4112.entry.js} +2 -2
  154. package/dist/lime-elements/{p-e6bb4d1a.entry.js → p-fbac230b.entry.js} +2 -2
  155. package/dist/lime-elements/style/mixins.scss +53 -0
  156. package/dist/scss/mixins.scss +53 -0
  157. package/dist/types/components/drag-handle/drag-handle.d.ts +46 -0
  158. package/dist/types/components/form/templates/array-field-collapsible-item.d.ts +3 -1
  159. package/dist/types/components/form/templates/array-field-simple-item.d.ts +5 -9
  160. package/dist/types/components/form/templates/array-field.d.ts +35 -4
  161. package/dist/types/components.d.ts +113 -0
  162. package/dist/types/translations/da.d.ts +2 -0
  163. package/dist/types/translations/de.d.ts +2 -0
  164. package/dist/types/translations/en.d.ts +2 -0
  165. package/dist/types/translations/fi.d.ts +2 -0
  166. package/dist/types/translations/fr.d.ts +2 -0
  167. package/dist/types/translations/nl.d.ts +2 -0
  168. package/dist/types/translations/no.d.ts +2 -0
  169. package/dist/types/translations/sv.d.ts +2 -0
  170. package/package.json +5 -2
  171. package/dist/cjs/translations-d2be6dd7.js.map +0 -1
  172. package/dist/esm/translations-91c611da.js.map +0 -1
  173. package/dist/lime-elements/p-4c88e5d3.js +0 -2
  174. package/dist/lime-elements/p-4c88e5d3.js.map +0 -1
  175. package/dist/lime-elements/p-d6d66daa.entry.js +0 -21
  176. package/dist/lime-elements/p-d6d66daa.entry.js.map +0 -1
  177. package/dist/lime-elements/p-e6245ef7.entry.js +0 -2
  178. package/dist/lime-elements/p-ed8aa16c.entry.js +0 -2
  179. package/dist/lime-elements/p-ed8aa16c.entry.js.map +0 -1
  180. /package/dist/lime-elements/{p-cc7f4c81.entry.js.map → p-3311eaf3.entry.js.map} +0 -0
  181. /package/dist/lime-elements/{p-aeba4aa4.entry.js.map → p-40542ccc.entry.js.map} +0 -0
  182. /package/dist/lime-elements/{p-d349e355.entry.js.map → p-42e889d8.entry.js.map} +0 -0
  183. /package/dist/lime-elements/{p-b5abf284.entry.js.map → p-5e976a59.entry.js.map} +0 -0
  184. /package/dist/lime-elements/{p-6c60172e.entry.js.map → p-787be044.entry.js.map} +0 -0
  185. /package/dist/lime-elements/{p-d1aa44e1.entry.js.map → p-92aa9610.entry.js.map} +0 -0
  186. /package/dist/lime-elements/{p-8e3c4418.entry.js.map → p-aa1e7319.entry.js.map} +0 -0
  187. /package/dist/lime-elements/{p-ed04acfc.entry.js.map → p-b0acf522.entry.js.map} +0 -0
  188. /package/dist/lime-elements/{p-f83ebd28.entry.js.map → p-b7bbb6a5.entry.js.map} +0 -0
  189. /package/dist/lime-elements/{p-eb396630.entry.js.map → p-cd2f780a.entry.js.map} +0 -0
  190. /package/dist/lime-elements/{p-aae161ef.entry.js.map → p-d79c85e2.entry.js.map} +0 -0
  191. /package/dist/lime-elements/{p-1b036add.entry.js.map → p-e00465fa.entry.js.map} +0 -0
  192. /package/dist/lime-elements/{p-29c2cdc6.entry.js.map → p-ee5c4112.entry.js.map} +0 -0
  193. /package/dist/lime-elements/{p-e6bb4d1a.entry.js.map → p-fbac230b.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as e,h as n,H as i,g as o}from"./p-288f0842.js";import{g as t}from"./p-d1947575.js";import{g as r}from"./p-cea519d5.js";const s="@charset \"UTF-8\";\n/**\n * Note! This file is exported to `dist/scss/` in the published\n * node module, for consumer projects to import.\n * That means this file cannot import from any file that isn't\n * also exported, keeping the same relative path.\n *\n * Or, just don't import anything, that works too.\n */\n/**\n* This can be used on a trigger element that opens a dropdown menu or a popover.\n*/\n/**\n * This mixin will mask out the content that is close to\n * the edges of a scrollable area.\n * - If the scrollable content has `overflow-y`, use `vertically`\n * as an argument for `$direction`.\n - If the scrollable content has `overflow-x`, use `horizontally`\n * as an argument for `$direction`.\n *\n * For the visual effect to work smoothly, we need to make sure that\n * the size of the fade-out edge effect is the same as the\n * internal paddings of the scrollable area. Otherwise, content of a\n * scrollable area that does not have a padding will fade out before\n * any scrolling has been done.\n * This is why this mixin already adds paddings, which automatically\n * default to the size of the fade-out effect.\n * This size defaults to `1rem`, but to override the size use\n * `--limel-top-edge-fade-height` & `--limel-bottom-edge-fade-height`\n * when `vertically` argument is set, and use\n * `--limel-left-edge-fade-width` & `--limel-right-edge-fade-width`\n * when `horizontally` argument is set.\n * Of course you can also programmatically increase and decrease the\n * size of these variables for each edge, based on the amount of\n * scrolling that has been done by the user. In this case, make sure\n * to add a custom padding where the mixin is used, to override\n * the paddings that are automatically added by the mixin in the\n * compiled CSS code.\n */\n/**\n* This mixin will add an animated underline to the bottom of an `a` elements.\n* Note that you may need to add `all: unset;` –depending on your use case–\n* before using this mixin.\n*/\n/**\n* This mixin creates a cross-browser font stack.\n* - `sans-serif` can be used for the UI of the components.\n* - `monospace` can be used for code.\n*\n* ⚠️ If we change the font stacks, we need to update\n* 1. the consumer documentation in `README.md`, and\n* 2. the CSS variables of `--kompendium-example-font-family`\n* in the `<style>` tag of `index.html`.\n*/\n/**\n* This mixin is a hack, using old CSS syntax\n* to enable you to truncate a piece of text,\n* after a certain number of lines.\n*/\n/**\n* This mixin will add a chessboard background pattern,\n* typically used to visualize transparency.\n*/\n/**\n* Make a container resizable by the user.\n* This is used in the documentations and examples\n* of some components, to demonstrate how the component\n* behaves in a resizable container.\n*/\n/**\n * The breakpoints below are used to create responsive designs\n * in Lime's products. Therefore, they are here to get distributed\n * to all components in other private repos, which rely on this `mixins`\n * file, to create consistent styles.\n *\n * :::important\n * In very rare cases you should used media queries!\n * Nowadays, there are many better ways of achieving responsive design\n * without media queries. For example, using CSS Grid, Flexbox, and their features.\n * :::\n */\n/**\n * Media query mixins for responsive design based on screen width.\n * Note that these mixins do not detect the device type!\n */\n/**\n* @prop --info-tile-border-radius: defines the radius of corners of the info-tile. Defaults to `1rem`\n* @prop --info-tile-icon-color: defines the fill color of the info-tile icon. Defaults to `--contrast-1000`\n* @prop --info-tile-text-color: defines the color of the info-tile label. Defaults to `--contrast-1100`\n* @prop --info-tile-background-color: defines the backgrounds color of the info-tile icon. Defaults to `--contrast-100`\n* @prop --info-tile-badge-text-color: Text color of the notification badge. Defaults to `--color-white`\n* @prop --info-tile-badge-background-color: Background color of the notification badge. Defaults to `--color-red-default`\n* @prop --info-tile-progress-fill-color: Determines the color of the progressed section. Defaults to `--lime-primary-color`.\n* @prop --info-tile-progress-background-color: Determines the background color of the central section of the progress bar. Defaults to `--info-tile-background-color`.\n* @prop --info-tile-progress-suffix-color: Determines the color of the progress prefix. Defaults to `--contrast-1000`.\n * @prop --info-tile-progress-text-color: Determines the color of the progress value. Defaults to `--info-tile-text-color`.\n * @prop --info-tile-progress-prefix-color: Determines the color of the progress suffix. Defaults to `--contrast-1000`.\n*/\n:host(limel-info-tile) {\n --badge-text-color: var(\n --info-tile-badge-text-color,\n rgb(var(--color-white))\n );\n --badge-background-color: var(\n --info-tile-badge-background-color,\n rgb(var(--color-red-default))\n );\n --circular-progress-text-color: var(\n --info-tile-progress-text-color,\n var(--info-tile-text-color)\n );\n --circular-progress-suffix-color: var(--info-tile-progress-suffix-color);\n --circular-progress-prefix-color: var(--info-tile-progress-prefix-color);\n --circular-progress-track-color: rgb(var(--contrast-800), 0.3);\n --circular-progress-fill-color: var(--info-tile-progress-fill-color);\n --circular-progress-background-color: var(\n --info-tile-progress-background-color,\n var(--info-tile-background-color)\n );\n --label-min-size: 0.75rem;\n --label-preferred-size: 6cqw;\n --label-max-size: 1rem;\n --value-min-size: 1rem;\n --value-preferred-size: 20cqw;\n --value-max-size: 4rem;\n --suffix-prefix-min-size: 0.75rem;\n --suffix-prefix-preferred-size: 8cqw;\n --suffix-prefix-max-size: 1.5rem;\n --icon-min-size: 2rem;\n --icon-preferred-size: 60cqh;\n --icon-max-size: calc(100cqw - 0.5rem);\n container-type: size;\n position: relative;\n display: flex;\n width: 100%;\n height: 100%;\n}\n:host(limel-info-tile) * {\n box-sizing: border-box;\n}\n\n:host(limel-info-tile[disabled]) a {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\na {\n all: unset;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: flex-start;\n height: 100%;\n width: 100%;\n flex-grow: 1;\n padding: 0.25rem 1rem 0.5rem 1rem;\n border-radius: var(--info-tile-border-radius, 1rem);\n background-color: var(--info-tile-background-color, var(--lime-elevated-surface-background-color));\n}\n\n:host ::slotted([slot=primary]) {\n width: 100%;\n height: 100%;\n}\n\n.icon {\n z-index: 1;\n position: absolute;\n top: 0.5rem;\n right: 0.75rem;\n padding: 0.25rem;\n aspect-ratio: 1/1;\n color: var(--info-tile-icon-color, rgb(var(--contrast-1000)));\n border-radius: 0;\n height: clamp(var(--icon-min-size), var(--icon-preferred-size), var(--icon-max-size));\n}\n@supports not (container-type: size) {\n .icon {\n width: max(10%, 3rem);\n }\n}\n:host(.has-primary-slot-content) .icon, a:has(limel-circular-progress) .icon {\n top: unset;\n bottom: 0.5rem;\n --icon-min-size: 1.5rem;\n --icon-preferred-size: 20cqh;\n}\n\nslot[name=primary] {\n display: block;\n aspect-ratio: 1;\n width: min(var(--icon-preferred-size), var(--icon-max-size));\n}\n\n.progress,\nslot[name=primary] {\n position: absolute;\n top: 0.75rem;\n right: 0.75rem;\n}\n\n.progress {\n --circular-progress-size: min(\n var(--icon-preferred-size),\n var(--icon-max-size)\n );\n}\n@supports not (container-type: size) {\n .progress {\n --circular-progress-size: initial;\n }\n}\n\n.label {\n z-index: 1;\n color: var(--info-tile-text-color, rgb(var(--contrast-1100)));\n line-height: 1.2;\n font-size: clamp(var(--label-min-size), var(--label-preferred-size), var(--label-max-size));\n}\n@supports not (container-type: size) {\n .label {\n font-size: var(--limel-theme-default-font-size);\n }\n}\n\nlimel-badge {\n position: absolute;\n top: -0.25rem;\n right: -0.25rem;\n}\n\nlimel-linear-progress {\n --lime-primary-color: var(--info-tile-text-color);\n position: absolute;\n inset: auto 0 0 0;\n}\n\n.value-group {\n position: relative;\n z-index: 1;\n display: flex;\n flex-direction: column;\n color: var(--info-tile-text-color, rgb(var(--contrast-1100)));\n}\n\n.value-and-suffix,\n.label {\n text-shadow: 0 0 0.5rem var(--info-tile-background-color, rgb(var(--contrast-100))), 0 0 0.25rem var(--info-tile-background-color, rgb(var(--contrast-100)));\n}\n\n.value-and-suffix {\n display: flex;\n}\n\n.prefix,\n.suffix {\n font-size: clamp(var(--suffix-prefix-min-size), var(--suffix-prefix-preferred-size), var(--suffix-prefix-max-size));\n opacity: 0.7;\n}\n@supports not (container-type: size) {\n .prefix,\n .suffix {\n font-size: 0.75rem;\n }\n}\n\n.prefix {\n align-self: flex-start;\n line-height: normal;\n transform: translateY(40%);\n}\n\n.value {\n transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.95);\n transform-origin: left;\n transform: translate3d(0, 0, 0) scale(1);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-weight: bold;\n line-height: normal;\n font-size: clamp(var(--value-min-size), var(--value-preferred-size), var(--value-max-size));\n}\n@supports not (container-type: size) {\n .value {\n font-size: 1.5rem;\n }\n}\n:host(limel-info-tile[loading]) .value {\n opacity: 0.3;\n transform: translate3d(0, 0, 0) scale(0.9);\n}\n\n.suffix {\n transform: translateY(10%);\n}\n\n@container (width < 8rem) {\n .progress,\n slot[name=primary] {\n top: 0.25rem;\n right: 0.25rem;\n }\n a {\n padding: 0.375rem;\n gap: 0.125rem;\n }\n}\n@container (width < 18.75rem) {\n .progress,\n slot[name=primary] {\n top: 0.5rem;\n right: 0.5rem;\n }\n .icon {\n top: 0.25rem;\n right: 0.5rem;\n }\n :host(.has-primary-slot-content) .icon, a:has(limel-circular-progress) .icon {\n right: 0.25rem;\n bottom: 0.25rem;\n }\n}\n@container (width < 40.5rem) {\n .value {\n --value-preferred-size: 13cqw;\n }\n .value.ch-1, .value.ch-2, .value.ch-3, .value.ch-4 {\n --value-preferred-size: 20cqw;\n }\n .value.ch-5 {\n --value-preferred-size: 18cqw;\n }\n .value.ch-6 {\n --value-preferred-size: 17cqw;\n }\n .value.ch-7 {\n --value-preferred-size: 16cqw;\n }\n .value.ch-8 {\n --value-preferred-size: 15cqw;\n }\n .value.ch-9 {\n --value-preferred-size: 14cqw;\n }\n}\n@container (height > 8rem) {\n a {\n padding-top: 0.75rem;\n padding-bottom: 1rem;\n }\n}\n@container (height < 8rem) and (width > 8rem) {\n .value {\n --value-preferred-size: 32cqh !important;\n }\n .suffix,\n .prefix {\n --suffix-prefix-preferred-size: 16cqh !important;\n }\n}\n@container (height > 18.75rem) {\n .progress,\n slot[name=primary],\n .icon {\n position: relative;\n top: unset;\n right: unset;\n }\n a {\n align-items: center;\n justify-content: center;\n }\n .label {\n text-align: center;\n }\n :host(.has-primary-slot-content) .icon,\n a:has(limel-circular-progress) .icon {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n --icon-max-size: 3rem;\n }\n}\nlimel-3d-hover-effect-glow {\n border-radius: var(--info-tile-border-radius, 1rem);\n}\n\n:host(limel-info-tile) {\n isolation: isolate;\n transform-style: preserve-3d;\n perspective: 1000px;\n}\n@media (prefers-reduced-motion) {\n :host(limel-info-tile) {\n perspective: 2000px;\n }\n}\n\na {\n position: relative;\n transition-duration: 0.8s;\n transition-property: transform, box-shadow, background-color;\n transition-timing-function: ease-out;\n transform: scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg);\n}\na:focus {\n outline: none;\n}\na:hover, a:focus, a:focus-visible, a:focus-within {\n will-change: background-color, box-shadow, transform;\n}\na:hover, a:focus, a:focus-visible, a:active {\n transition-duration: 0.2s;\n}\na:hover, a:focus-visible {\n box-shadow: var(--button-shadow-hovered), var(--shadow-depth-16);\n}\na:hover {\n transform: scale3d(1.01, 1.01, 1.01) rotate3d(var(--limel-3d-hover-effect-rotate3d));\n}\na:focus-visible {\n outline: none;\n transform: scale3d(1.01, 1.01, 1.01);\n}\na:hover limel-3d-hover-effect-glow {\n --limel-3d-hover-effect-glow-opacity: 0.5;\n}\n@media (prefers-reduced-motion) {\n a:hover limel-3d-hover-effect-glow {\n --limel-3d-hover-effect-glow-opacity: 0.2;\n }\n}\na.is-clickable {\n cursor: pointer;\n box-shadow: var(--button-shadow-normal);\n}\na.is-clickable:hover, a.is-clickable:focus-visible {\n box-shadow: var(--button-shadow-hovered), var(--shadow-depth-16);\n}\na.is-clickable:active {\n transform: scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg);\n box-shadow: var(--button-shadow-pressed);\n}\na.is-clickable:focus-visible {\n box-shadow: var(--shadow-depth-8-focused), var(--button-shadow-hovered);\n}\na.is-clickable:focus-visible:active {\n box-shadow: var(--shadow-depth-8-focused), var(--button-shadow-pressed);\n}";const a=class{constructor(i){e(this,i);this.renderPrefix=()=>{if(this.prefix){return n("span",{class:"prefix"},this.prefix)}};this.renderValue=()=>{var e;const i=((e=this.value)!==null&&e!==void 0?e:"").toString().length;if(!this.value&&this.loading){return n("span",{class:"value"},"···")}if(this.value){return n("span",{class:{value:true,[`ch-${i}`]:true}},this.value)}};this.renderSuffix=()=>{if(this.suffix){return n("span",{class:"suffix"},this.suffix)}};this.renderIcon=()=>{if(this.icon){return n("limel-icon",{class:"icon",name:this.icon})}};this.updateHasPrimarySlotContent=e=>{var n;const i=(n=e===null||e===void 0?void 0:e.target)!==null&&n!==void 0?n:this.host.shadowRoot.querySelector('slot[name="primary"]');this.hasPrimarySlot=i&&i.assignedElements().length>0};this.renderProgress=()=>{var e,i;if(this.hasPrimarySlot){return}if(!((e=this.progress)===null||e===void 0?void 0:e.value)&&((i=this.progress)===null||i===void 0?void 0:i.value)!==0){return}return n("limel-circular-progress",{class:"progress",prefix:this.progress.prefix,value:this.progress.value,suffix:this.progress.suffix,maxValue:this.progress.maxValue,displayPercentageColors:this.progress.displayPercentageColors})};this.renderLabel=()=>{if(this.label){return n("span",{class:"label"},this.label)}};this.renderNotification=()=>{if(this.badge){return n("limel-badge",{label:this.badge})}};this.renderSpinner=()=>{if(this.loading){return n("limel-linear-progress",{indeterminate:true})}};this.value=undefined;this.icon=undefined;this.label=null;this.prefix=undefined;this.suffix=undefined;this.disabled=false;this.badge=undefined;this.loading=false;this.link=undefined;this.progress=undefined;this.hasPrimarySlot=false}componentWillLoad(){const{handleMouseEnter:e,handleMouseLeave:n}=t(this.host);this.handleMouseEnter=e;this.handleMouseLeave=n;this.updateHasPrimarySlotContent()}render(){var e,o,t,s,a,l,c,d,h,f;const u=this.checkProps(this===null||this===void 0?void 0:this.prefix)+this.value+" "+this.checkProps(this===null||this===void 0?void 0:this.suffix)+this.checkProps(this===null||this===void 0?void 0:this.label)+". "+this.checkProps((e=this===null||this===void 0?void 0:this.progress)===null||e===void 0?void 0:e.prefix)+this.checkProps((o=this===null||this===void 0?void 0:this.progress)===null||o===void 0?void 0:o.value)+this.checkProps((t=this===null||this===void 0?void 0:this.progress)===null||t===void 0?void 0:t.suffix)+this.checkProps((s=this===null||this===void 0?void 0:this.link)===null||s===void 0?void 0:s.title);const p=this.disabled?"#":(a=this.link)===null||a===void 0?void 0:a.href;const m=r((l=this.link)===null||l===void 0?void 0:l.target,(c=this.link)===null||c===void 0?void 0:c.rel);return n(i,{onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,class:{"has-primary-slot-content":this.hasPrimarySlot}},n("a",{title:(d=this.link)===null||d===void 0?void 0:d.title,href:p,target:(h=this.link)===null||h===void 0?void 0:h.target,rel:m,tabindex:"0","aria-label":u,"aria-disabled":this.disabled,"aria-busy":this.loading?"true":"false","aria-live":"polite",class:{"is-clickable":!!((f=this.link)===null||f===void 0?void 0:f.href)&&!this.disabled}},this.renderIcon(),this.renderProgress(),n("slot",{name:"primary",onSlotchange:this.updateHasPrimarySlotContent}),n("div",{class:"value-group"},this.renderPrefix(),n("div",{class:"value-and-suffix"},this.renderValue(),this.renderSuffix()),this.renderSpinner()),this.renderLabel(),n("limel-3d-hover-effect-glow",null)),this.renderNotification())}checkProps(e){return e?e+" ":""}get host(){return o(this)}};a.style=s;export{a as limel_info_tile};
2
- //# sourceMappingURL=p-e6245ef7.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as o,h as t,g as i}from"./p-288f0842.js";import{d as n}from"./p-c70b1ea3.js";import{m as s,r}from"./p-e127eaaa.js";import{c as a}from"./p-ad52787a.js";import{g as l,a as c,b as d}from"./p-d251f404.js";import{t as p}from"./p-4c88e5d3.js";const h='@charset "UTF-8";:host(limel-collapsible-section){--border-radius-of-header:0.75rem;display:block}:host([hidden]){display:none}.open-close-toggle{all:unset;position:absolute;inset:0;width:100%;transition:background-color 0.4s ease, border-radius 0.1s ease;cursor:pointer;z-index:-1;background-color:var(--closed-header-background-color, rgb(var(--contrast-200)));border-radius:var(--border-radius-of-header)}.open-close-toggle:focus{outline:none}.open-close-toggle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.open-close-toggle:hover,.open-close-toggle:focus-visible{background-color:var(--open-header-background-color, rgb(var(--contrast-300)))}section.open .open-close-toggle{background-color:var(--open-header-background-color, rgb(var(--contrast-100)));border-radius:var(--border-radius-of-header) var(--border-radius-of-header) 0 0}section.open .open-close-toggle:hover,section.open .open-close-toggle:focus-visible{background-color:var(--open-header-background-color, rgb(var(--contrast-300)))}.title,.divider-line,.expand-icon{pointer-events:none}section{transition:box-shadow 0.4s ease;border-radius:var(--border-radius-of-header)}section[aria-invalid]:not([aria-invalid=false]){--header-stroke-color:rgb(var(--color-red-default)) !important}section[aria-invalid]:not([aria-invalid=false]):not(.open){box-shadow:0 0 0 1px rgb(var(--color-red-default))}header{isolation:isolate;position:relative;align-items:center;display:flex;justify-content:space-between;gap:0.5rem;padding-left:0.5rem;height:2.5rem}limel-icon{width:1.5rem}.title{font-size:1rem;font-weight:300;color:var(--limel-theme-on-surface-color);justify-self:flex-start;user-select:none;height:auto;max-height:3rem;line-height:1.2rem;display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.divider-line{transition:opacity 0.3s ease 0.3s;flex-grow:1;height:0.125rem;border-radius:1rem;background-color:var(--header-stroke-color, rgb(var(--contrast-900)));opacity:0;margin-right:0.5rem}section.open .divider-line{opacity:0.16}.actions{justify-self:flex-end;flex-shrink:0}::slotted([slot=header]){margin-right:0.5rem}.body{background-color:var(--body-background-color, var(--contrast-100));padding-left:var(--body-padding, 1.25rem);padding-right:var(--body-padding, 1.25rem);border-radius:0 0 var(--border-radius-of-header) var(--border-radius-of-header)}.body{--limel-cs-opacity-transition-speed:0.1s;--limel-cs-opacity-transition-delay:0s;--limel-cs-grid-template-rows-transition-speed:0.3s;transition:grid-template-rows var(--limel-cs-grid-template-rows-transition-speed) cubic-bezier(1, 0.09, 0, 0.89);display:grid;grid-template-rows:0fr}.body slot{transition:opacity var(--limel-cs-opacity-transition-speed) ease var(--limel-cs-opacity-transition-delay);display:block;overflow:hidden;opacity:0}section.open .body{--limel-cs-opacity-transition-speed:0.4s;--limel-cs-opacity-transition-delay:0.3s;--limel-cs-grid-template-rows-transition-speed:0.46s;grid-template-rows:1fr}section.open .body slot{opacity:1}header:hover+.body,header:has(.open-close-toggle:hover)+.body,header:has(.open-close-toggle:focus-visible)+.body{will-change:grid-template-rows}header:hover+.body slot,header:has(.open-close-toggle:hover)+.body slot,header:has(.open-close-toggle:focus-visible)+.body slot{will-change:opacity}.expand-icon{position:relative;display:flex;align-items:center;justify-content:center;height:1.875rem;margin:0 0 0 0.5rem;width:0.75rem;flex-shrink:0}.line{position:absolute;inset:auto;margin:auto;width:100%;border-radius:1rem;height:0.125rem}.line:first-of-type,.line:last-of-type{transition:opacity 0.2s ease 0.1s, transform 0.4s ease 0.3s;opacity:0;background-color:var(--header-stroke-color, rgb(var(--contrast-900)))}.line:nth-of-type(2){transform:translate3d(0, 0.25rem, 0) rotate(90deg)}.line:nth-of-type(3){transform:translate3d(0, -0.25rem, 0) rotate(-90deg)}.line:nth-of-type(2),.line:nth-of-type(3){transition:opacity 0.2s ease, transform 0.18s ease}.line:nth-of-type(2):before,.line:nth-of-type(2):after,.line:nth-of-type(3):before,.line:nth-of-type(3):after{content:"";position:absolute;inset:0;margin:auto;width:50%;height:100%;border-radius:inherit;background-color:var(--header-stroke-color, rgb(var(--contrast-900)))}.line:nth-of-type(2):before,.line:nth-of-type(3):before{transform:translate3d(0, -0.1rem, 0) rotate(45deg)}.line:nth-of-type(2):after,.line:nth-of-type(3):after{transform:translate3d(0, 0.1rem, 0) rotate(-45deg)}.open-close-toggle:hover+.expand-icon .line:first-of-type,.open-close-toggle:hover+.expand-icon .line:last-of-type,.open-close-toggle:focus-visible+.expand-icon .line:first-of-type,.open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transition:opacity 0.8s ease 0.4s, transform 0.4s ease 0.3s;opacity:1}.open-close-toggle:hover+.expand-icon .line:first-of-type,.open-close-toggle:focus-visible+.expand-icon .line:first-of-type{transform:rotate3d(0, 0, 1, 0deg)}.open-close-toggle:hover+.expand-icon .line:last-of-type,.open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transform:rotate3d(0, 0, 1, 0deg)}.open-close-toggle:hover+.expand-icon .line:nth-of-type(2),.open-close-toggle:hover+.expand-icon .line:nth-of-type(3),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(2),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(3){transition:opacity 0.5s ease 0.4s, transform 0.7s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s}.open-close-toggle:hover+.expand-icon .line:nth-of-type(2),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(2){transform:translate3d(0, 0.5rem, 0) rotate(90deg);opacity:0.4}.open-close-toggle:hover+.expand-icon .line:nth-of-type(3),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(3){transform:translate3d(0, -0.5rem, 0) rotate(-90deg);opacity:0.4}section.open .line:first-of-type,section.open .line:last-of-type{transition:opacity 0.2s ease 0.1s, transform 0.4s ease 0.3s;opacity:1}section.open .line:first-of-type{transform:rotate3d(0, 0, 1, 0deg)}section.open .line:last-of-type{transform:rotate3d(0, 0, 1, 0deg)}section.open .line:nth-of-type(2),section.open .line:nth-of-type(3){transition:opacity 1s ease, transform 0.4s ease}section.open .line:nth-of-type(2){transform:translate3d(0, 1rem, 0) rotate(90deg);opacity:0}section.open .line:nth-of-type(3){transform:translate3d(0, -1rem, 0) rotate(-90deg);opacity:0}section.open .open-close-toggle:hover+.expand-icon .line:first-of-type,section.open .open-close-toggle:hover+.expand-icon .line:last-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:first-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transition:opacity 0.2s ease 0.4s, transform 0.4s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s}section.open .open-close-toggle:hover+.expand-icon .line:first-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:first-of-type{transform:rotate3d(0, 0, 1, 45deg)}section.open .open-close-toggle:hover+.expand-icon .line:last-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transform:rotate3d(0, 0, 1, -45deg)}section.open .open-close-toggle:hover+.expand-icon .line:nth-of-type(2),section.open .open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(2){transform:translate3d(0, 1rem, 0) rotate(90deg);opacity:0}section.open .open-close-toggle:hover+.expand-icon .line:nth-of-type(3),section.open .open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(3){transform:translate3d(0, -1rem, 0) rotate(-90deg);opacity:0}';const g=class{constructor(i){e(this,i);this.open=o(this,"open",7);this.close=o(this,"close",7);this.action=o(this,"action",7);this.bodyId=a();this.headingId=a();this.onClick=()=>{this.handleInteraction()};this.handleInteraction=()=>{this.isOpen=!this.isOpen;if(this.isOpen){this.open.emit();const e=100;setTimeout(n,e)}else{this.close.emit()}};this.renderExpandCollapseSign=()=>t("div",{class:"expand-icon",role:"presentation","aria-hidden":"true"},t("div",{class:"line"}),t("div",{class:"line"}),t("div",{class:"line"}),t("div",{class:"line"}));this.renderIcon=()=>{if(!this.icon){return}const e=l(this.icon);const o=c(this.icon);const i=d(this.icon);return t("limel-icon",{name:e,"aria-label":i,"aria-hidden":i?null:"true",style:{color:`${o}`}})};this.renderHeading=()=>{if(!this.header){return}return t("h2",{class:"title mdc-typography mdc-typography--headline2",id:this.headingId},this.header)};this.renderActions=()=>{if(!this.actions){return}return t("div",{class:"actions"},this.actions.map(this.renderActionButton))};this.renderActionButton=e=>t("limel-icon-button",{icon:e.icon,label:e.label,disabled:e.disabled,onClick:this.handleActionClick(e)});this.handleActionClick=e=>o=>{o.stopPropagation();this.action.emit(e)};this.getCollapsibleSectionAriaLabel=()=>{const e=this.header?`"${this.header}"`:" ";if(!this.isOpen){return p.get("collapsible-section.open",this.language,{header:e})}return p.get("collapsible-section.close",this.language,{header:e})};this.isOpen=false;this.header=undefined;this.icon=undefined;this.invalid=false;this.actions=undefined;this.language="en"}componentDidRender(){const e=this.host.shadowRoot.querySelector(".open-close-toggle");s(e)}disconnectedCallback(){const e=this.host.shadowRoot.querySelector(".open-close-toggle");r(e)}render(){return t("section",{class:`${this.isOpen?"open":""}`,"aria-invalid":this.invalid,"aria-labelledby":this.header?this.headingId:null},t("header",null,t("button",{class:"open-close-toggle",onClick:this.onClick,"aria-controls":this.bodyId,"aria-expanded":this.isOpen?"true":"false","aria-label":this.getCollapsibleSectionAriaLabel(),type:"button"}),this.renderExpandCollapseSign(),this.renderIcon(),this.renderHeading(),t("div",{class:"divider-line",role:"presentation"}),this.renderHeaderSlot(),this.renderActions()),t("div",{class:"body","aria-hidden":String(!this.isOpen),id:this.bodyId,role:"region"},t("slot",null)))}renderHeaderSlot(){return t("slot",{name:"header"})}get host(){return i(this)}};g.style=h;export{g as limel_collapsible_section};
2
- //# sourceMappingURL=p-ed8aa16c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["collapsibleSectionCss","CollapsibleSection","this","bodyId","createRandomString","headingId","onClick","handleInteraction","isOpen","open","emit","waitForUiToRender","setTimeout","dispatchResizeEvent","close","renderExpandCollapseSign","h","class","role","renderIcon","icon","name","getIconName","color","getIconColor","title","getIconTitle","style","renderHeading","header","id","renderActions","actions","map","renderActionButton","action","label","disabled","handleActionClick","event","stopPropagation","getCollapsibleSectionAriaLabel","heading","translate","get","language","componentDidRender","button","host","shadowRoot","querySelector","makeEnterClickable","disconnectedCallback","removeEnterClickable","render","invalid","type","renderHeaderSlot","String"],"sources":["./src/components/collapsible-section/collapsible-section.scss?tag=limel-collapsible-section&encapsulation=shadow","./src/components/collapsible-section/collapsible-section.tsx"],"sourcesContent":["@use '../../style/mixins';\n@use '../../style/internal/shared_input-select-picker';\n\n/**\n * @prop --closed-header-background-color: background color for header when closed\n * @prop --open-header-background-color: background color for header when open\n * @prop --header-stroke-color: color of the animated icons that visualize collapsed or normal states of the headers, as well as the divider line on headers\n * @prop --body-background-color: background color for body\n * @prop --body-padding: space around content of the body\n */\n\n:host(limel-collapsible-section) {\n --border-radius-of-header: 0.75rem;\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.open-close-toggle {\n all: unset;\n position: absolute;\n inset: 0;\n width: 100%; // for Firefox\n @include mixins.visualize-keyboard-focus;\n transition:\n background-color 0.4s ease,\n border-radius 0.1s ease;\n cursor: pointer;\n z-index: -1;\n\n background-color: var(\n --closed-header-background-color,\n rgb(var(--contrast-200))\n );\n border-radius: var(--border-radius-of-header);\n\n &:hover,\n &:focus-visible {\n background-color: var(\n --open-header-background-color,\n rgb(var(--contrast-300))\n );\n }\n\n section.open & {\n background-color: var(\n --open-header-background-color,\n rgb(var(--contrast-100))\n );\n border-radius: var(--border-radius-of-header)\n var(--border-radius-of-header) 0 0;\n &:hover,\n &:focus-visible {\n background-color: var(\n --open-header-background-color,\n rgb(var(--contrast-300))\n );\n }\n }\n}\n\n.title,\n.divider-line,\n.expand-icon {\n pointer-events: none;\n}\n\nsection {\n transition: box-shadow 0.4s ease;\n border-radius: var(--border-radius-of-header);\n\n &[aria-invalid]:not([aria-invalid='false']) {\n --header-stroke-color: rgb(var(--color-red-default)) !important;\n\n &:not(.open) {\n box-shadow: 0 0 0 1px rgb(var(--color-red-default));\n }\n }\n}\n\nheader {\n isolation: isolate;\n position: relative;\n\n align-items: center;\n display: flex;\n justify-content: space-between;\n gap: 0.5rem;\n\n padding-left: 0.5rem;\n height: shared_input-select-picker.$height-of-mdc-text-field;\n}\n\nlimel-icon {\n width: 1.5rem;\n}\n\n.title {\n font-size: 1rem;\n font-weight: 300;\n color: var(--limel-theme-on-surface-color);\n\n justify-self: flex-start;\n\n user-select: none; // mostly to improve experience on Android, where tapping on sections selects the text too\n\n // Below tries to render text in two lines,\n // and then truncate if there is no more space\n height: auto;\n max-height: 3rem;\n line-height: 1.2rem;\n @include mixins.truncate-text-on-line(2);\n}\n\n.divider-line {\n transition: opacity 0.3s ease 0.3s;\n flex-grow: 1;\n height: 0.125rem;\n border-radius: 1rem;\n background-color: var(--header-stroke-color, rgb(var(--contrast-900)));\n\n opacity: 0;\n margin-right: 0.5rem;\n\n section.open & {\n opacity: 0.16;\n }\n}\n\n.actions {\n justify-self: flex-end;\n flex-shrink: 0;\n}\n\n::slotted([slot='header']) {\n margin-right: 0.5rem;\n}\n\n.body {\n background-color: var(--body-background-color, var(--contrast-100));\n padding-left: var(--body-padding, 1.25rem);\n padding-right: var(--body-padding, 1.25rem);\n border-radius: 0 0 var(--border-radius-of-header)\n var(--border-radius-of-header);\n}\n\n// This animates height of the body,\n// from `0` to `auto`\n.body {\n // All below vars are for internal use only!\n --limel-cs-opacity-transition-speed: 0.1s;\n --limel-cs-opacity-transition-delay: 0s;\n --limel-cs-grid-template-rows-transition-speed: 0.3s;\n transition: grid-template-rows\n var(--limel-cs-grid-template-rows-transition-speed)\n cubic-bezier(1, 0.09, 0, 0.89);\n display: grid;\n grid-template-rows: 0fr;\n\n slot {\n transition: opacity var(--limel-cs-opacity-transition-speed) ease\n var(--limel-cs-opacity-transition-delay);\n display: block;\n overflow: hidden;\n opacity: 0;\n }\n}\n\nsection.open {\n .body {\n --limel-cs-opacity-transition-speed: 0.4s;\n --limel-cs-opacity-transition-delay: 0.3s;\n --limel-cs-grid-template-rows-transition-speed: 0.46s;\n grid-template-rows: 1fr;\n\n slot {\n opacity: 1;\n }\n }\n}\n\nheader:hover,\nheader:has(.open-close-toggle:hover),\nheader:has(.open-close-toggle:focus-visible) {\n + .body {\n will-change: grid-template-rows;\n\n slot {\n will-change: opacity;\n }\n }\n}\n\n// End: animating height\n\n@import './partial-styles/expand-icon.scss';\n","import {\n Component,\n Event,\n Element,\n EventEmitter,\n h,\n Prop,\n} from '@stencil/core';\nimport { dispatchResizeEvent } from '../../util/dispatch-resize-event';\nimport { Action } from './action';\nimport {\n makeEnterClickable,\n removeEnterClickable,\n} from '../../util/make-enter-clickable';\nimport { createRandomString } from '../../util/random-string';\nimport { Icon } from '../../global/shared-types/icon.types';\nimport {\n getIconColor,\n getIconName,\n getIconTitle,\n} from '../icon/get-icon-props';\nimport translate from '../../global/translations';\nimport { Languages } from '../date-picker/date.types';\n\n/**\n * A collapsible section can be used to group related content together\n * and hide the group when not needed.\n * Using this component can help to:\n * - Save vertical space by hiding non-essential content\n * - Improve content organization and scannability of the user interface\n * - Reduce cognitive load by displaying only a set of relevant information at a time\n * - Or disclose complex information, progressively to the user\n *\n * @slot - Content to put inside the collapsible section\n * @slot header - Optional slot for custom header content\n *\n * @exampleComponent limel-example-collapsible-section-basic\n * @exampleComponent limel-example-collapsible-section-actions\n * @exampleComponent limel-example-collapsible-section-with-custom-header-component\n * @exampleComponent limel-example-collapsible-section-external-control\n * @exampleComponent limel-example-collapsible-section-with-slider\n * @exampleComponent limel-example-collapsible-section-invalid\n * @exampleComponent limel-example-collapsible-section-icon\n * @exampleComponent limel-example-collapsible-section-css-props\n */\n@Component({\n tag: 'limel-collapsible-section',\n shadow: true,\n styleUrl: 'collapsible-section.scss',\n})\nexport class CollapsibleSection {\n /**\n * `true` if the section is expanded, `false` if collapsed.\n */\n @Prop({ mutable: true, reflect: true })\n public isOpen: boolean = false;\n\n /**\n * Text to display in the header of the section\n */\n @Prop({ reflect: true })\n public header: string;\n\n /**\n * Icon to display in the header of the section\n */\n @Prop()\n public icon?: string | Icon;\n\n /**\n * `true` if the section is invalid, `false` if valid.\n * This can be used to indicate that the content inside the section is invalid.\n */\n @Prop({ reflect: true })\n public invalid = false;\n\n /**\n * Actions to place to the far right inside the header\n */\n @Prop()\n public actions: Action[];\n\n /**\n * Defines the language for translations.\n * Will translate the translatable strings on the components.\n */\n @Prop({ reflect: true })\n public language: Languages = 'en';\n\n /**\n * Emitted when the section is expanded\n */\n @Event()\n private open: EventEmitter<void>;\n\n /**\n * Emitted when the section is collapsed\n */\n @Event()\n private close: EventEmitter<void>;\n\n /**\n * Emitted when an action is clicked inside the header\n */\n @Event()\n private action: EventEmitter<Action>;\n\n @Element()\n private host: HTMLElement;\n\n private bodyId = createRandomString();\n private headingId = createRandomString();\n\n public componentDidRender() {\n const button = this.host.shadowRoot.querySelector(\n '.open-close-toggle'\n ) as HTMLElement;\n\n makeEnterClickable(button);\n }\n\n public disconnectedCallback() {\n const button = this.host.shadowRoot.querySelector(\n '.open-close-toggle'\n ) as HTMLElement;\n\n removeEnterClickable(button);\n }\n\n public render() {\n return (\n <section\n class={`${this.isOpen ? 'open' : ''}`}\n aria-invalid={this.invalid}\n aria-labelledby={this.header ? this.headingId : null}\n >\n <header>\n <button\n class=\"open-close-toggle\"\n onClick={this.onClick}\n aria-controls={this.bodyId}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-label={this.getCollapsibleSectionAriaLabel()}\n type=\"button\"\n />\n {this.renderExpandCollapseSign()}\n {this.renderIcon()}\n {this.renderHeading()}\n <div class=\"divider-line\" role=\"presentation\" />\n {this.renderHeaderSlot()}\n {this.renderActions()}\n </header>\n <div\n class=\"body\"\n aria-hidden={String(!this.isOpen)}\n id={this.bodyId}\n role=\"region\"\n >\n <slot />\n </div>\n </section>\n );\n }\n\n private onClick = () => {\n this.handleInteraction();\n };\n\n private handleInteraction = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.open.emit();\n const waitForUiToRender = 100;\n setTimeout(dispatchResizeEvent, waitForUiToRender);\n } else {\n this.close.emit();\n }\n };\n\n private renderExpandCollapseSign = () => {\n return (\n <div class=\"expand-icon\" role=\"presentation\" aria-hidden=\"true\">\n <div class=\"line\" />\n <div class=\"line\" />\n <div class=\"line\" />\n <div class=\"line\" />\n </div>\n );\n };\n\n private renderIcon = () => {\n if (!this.icon) {\n return;\n }\n\n const name = getIconName(this.icon);\n const color = getIconColor(this.icon);\n const title = getIconTitle(this.icon);\n\n return (\n <limel-icon\n name={name}\n aria-label={title}\n aria-hidden={title ? null : 'true'}\n style={{\n color: `${color}`,\n }}\n />\n );\n };\n\n private renderHeading = () => {\n if (!this.header) {\n return;\n }\n\n return (\n <h2\n class=\"title mdc-typography mdc-typography--headline2\"\n id={this.headingId}\n >\n {this.header}\n </h2>\n );\n };\n\n private renderActions = () => {\n if (!this.actions) {\n return;\n }\n\n return (\n <div class=\"actions\">\n {this.actions.map(this.renderActionButton)}\n </div>\n );\n };\n\n private renderHeaderSlot() {\n return <slot name=\"header\" />;\n }\n\n private renderActionButton = (action: Action) => {\n return (\n <limel-icon-button\n icon={action.icon}\n label={action.label}\n disabled={action.disabled}\n onClick={this.handleActionClick(action)}\n />\n );\n };\n\n private handleActionClick = (action: Action) => (event: MouseEvent) => {\n event.stopPropagation();\n this.action.emit(action);\n };\n\n private getCollapsibleSectionAriaLabel = (): string => {\n const heading = this.header ? `\"${this.header}\"` : ' ';\n\n if (!this.isOpen) {\n return translate.get('collapsible-section.open', this.language, {\n header: heading,\n });\n }\n\n return translate.get('collapsible-section.close', this.language, {\n header: heading,\n });\n };\n}\n"],"mappings":"6PAAA,MAAMA,EAAwB,w6O,MCkDjBC,EAAkB,M,gHA4DnBC,KAAAC,OAASC,IACTF,KAAAG,UAAYD,IAqDZF,KAAAI,QAAU,KACdJ,KAAKK,mBAAmB,EAGpBL,KAAAK,kBAAoB,KACxBL,KAAKM,QAAUN,KAAKM,OAEpB,GAAIN,KAAKM,OAAQ,CACbN,KAAKO,KAAKC,OACV,MAAMC,EAAoB,IAC1BC,WAAWC,EAAqBF,E,KAC7B,CACHT,KAAKY,MAAMJ,M,GAIXR,KAAAa,yBAA2B,IAE3BC,EAAA,OAAKC,MAAM,cAAcC,KAAK,eAAc,cAAa,QACrDF,EAAA,OAAKC,MAAM,SACXD,EAAA,OAAKC,MAAM,SACXD,EAAA,OAAKC,MAAM,SACXD,EAAA,OAAKC,MAAM,UAKff,KAAAiB,WAAa,KACjB,IAAKjB,KAAKkB,KAAM,CACZ,M,CAGJ,MAAMC,EAAOC,EAAYpB,KAAKkB,MAC9B,MAAMG,EAAQC,EAAatB,KAAKkB,MAChC,MAAMK,EAAQC,EAAaxB,KAAKkB,MAEhC,OACIJ,EAAA,cACIK,KAAMA,EAAI,aACEI,EAAK,cACJA,EAAQ,KAAO,OAC5BE,MAAO,CACHJ,MAAO,GAAGA,MAEhB,EAIFrB,KAAA0B,cAAgB,KACpB,IAAK1B,KAAK2B,OAAQ,CACd,M,CAGJ,OACIb,EAAA,MACIC,MAAM,iDACNa,GAAI5B,KAAKG,WAERH,KAAK2B,OACL,EAIL3B,KAAA6B,cAAgB,KACpB,IAAK7B,KAAK8B,QAAS,CACf,M,CAGJ,OACIhB,EAAA,OAAKC,MAAM,WACNf,KAAK8B,QAAQC,IAAI/B,KAAKgC,oBACrB,EAQNhC,KAAAgC,mBAAsBC,GAEtBnB,EAAA,qBACII,KAAMe,EAAOf,KACbgB,MAAOD,EAAOC,MACdC,SAAUF,EAAOE,SACjB/B,QAASJ,KAAKoC,kBAAkBH,KAKpCjC,KAAAoC,kBAAqBH,GAAoBI,IAC7CA,EAAMC,kBACNtC,KAAKiC,OAAOzB,KAAKyB,EAAO,EAGpBjC,KAAAuC,+BAAiC,KACrC,MAAMC,EAAUxC,KAAK2B,OAAS,IAAI3B,KAAK2B,UAAY,IAEnD,IAAK3B,KAAKM,OAAQ,CACd,OAAOmC,EAAUC,IAAI,2BAA4B1C,KAAK2C,SAAU,CAC5DhB,OAAQa,G,CAIhB,OAAOC,EAAUC,IAAI,4BAA6B1C,KAAK2C,SAAU,CAC7DhB,OAAQa,GACV,E,YAvNmB,M,uDAmBR,M,qCAaY,I,CA0BtBI,qBACH,MAAMC,EAAS7C,KAAK8C,KAAKC,WAAWC,cAChC,sBAGJC,EAAmBJ,E,CAGhBK,uBACH,MAAML,EAAS7C,KAAK8C,KAAKC,WAAWC,cAChC,sBAGJG,EAAqBN,E,CAGlBO,SACH,OACItC,EAAA,WACIC,MAAO,GAAGf,KAAKM,OAAS,OAAS,KAAI,eACvBN,KAAKqD,QAAO,kBACTrD,KAAK2B,OAAS3B,KAAKG,UAAY,MAEhDW,EAAA,cACIA,EAAA,UACIC,MAAM,oBACNX,QAASJ,KAAKI,QAAO,gBACNJ,KAAKC,OAAM,gBACXD,KAAKM,OAAS,OAAS,QAAO,aACjCN,KAAKuC,iCACjBe,KAAK,WAERtD,KAAKa,2BACLb,KAAKiB,aACLjB,KAAK0B,gBACNZ,EAAA,OAAKC,MAAM,eAAeC,KAAK,iBAC9BhB,KAAKuD,mBACLvD,KAAK6B,iBAEVf,EAAA,OACIC,MAAM,OAAM,cACCyC,QAAQxD,KAAKM,QAC1BsB,GAAI5B,KAAKC,OACTe,KAAK,UAELF,EAAA,c,CAiFRyC,mBACJ,OAAOzC,EAAA,QAAMK,KAAK,U"}