@limetech/lime-elements 40.4.2 → 40.5.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 (131) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/component-UyqdiWGc.js +1576 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-action-bar_3.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/{limel-breadcrumbs_8.cjs.entry.js → limel-breadcrumbs_6.cjs.entry.js} +188 -2164
  7. package/dist/cjs/limel-callout.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-chip-set.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-code-diff.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-drag-handle.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-email-viewer.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  18. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-helper-line_3.cjs.entry.js +454 -0
  20. package/dist/cjs/limel-hotkey_4.cjs.entry.js +26 -5
  21. package/dist/cjs/limel-list-item.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-pagination-jump.cjs.entry.js +182 -0
  23. package/dist/cjs/limel-pagination.cjs.entry.js +165 -126
  24. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  27. package/dist/cjs/limel-slider.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-snackbar.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  30. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +1 -1
  31. package/dist/cjs/loader.cjs.js +1 -1
  32. package/dist/cjs/pagination.util-B5zzH8vg.js +135 -0
  33. package/dist/cjs/{translations-C5T2-_rH.js → translations-DFFpR6AZ.js} +32 -0
  34. package/dist/collection/collection-manifest.json +1 -0
  35. package/dist/collection/components/pagination/jump/pagination-jump.css +11 -0
  36. package/dist/collection/components/pagination/jump/pagination-jump.js +331 -0
  37. package/dist/collection/components/pagination/pagination.css +8 -4
  38. package/dist/collection/components/pagination/pagination.js +167 -10
  39. package/dist/collection/components/pagination/pagination.util.js +25 -8
  40. package/dist/collection/components/portal/portal.js +26 -5
  41. package/dist/collection/translations/da.js +4 -0
  42. package/dist/collection/translations/de.js +4 -0
  43. package/dist/collection/translations/en.js +4 -0
  44. package/dist/collection/translations/fi.js +4 -0
  45. package/dist/collection/translations/fr.js +4 -0
  46. package/dist/collection/translations/nl.js +4 -0
  47. package/dist/collection/translations/no.js +4 -0
  48. package/dist/collection/translations/sv.js +4 -0
  49. package/dist/esm/component-B2Vy44Z3.js +1570 -0
  50. package/dist/esm/lime-elements.js +1 -1
  51. package/dist/esm/limel-action-bar_3.entry.js +1 -1
  52. package/dist/esm/limel-ai-avatar.entry.js +1 -1
  53. package/dist/esm/{limel-breadcrumbs_8.entry.js → limel-breadcrumbs_6.entry.js} +3 -1977
  54. package/dist/esm/limel-callout.entry.js +1 -1
  55. package/dist/esm/limel-chart.entry.js +1 -1
  56. package/dist/esm/limel-chip-set.entry.js +1 -1
  57. package/dist/esm/limel-chip_2.entry.js +1 -1
  58. package/dist/esm/limel-code-diff.entry.js +1 -1
  59. package/dist/esm/limel-code-editor.entry.js +1 -1
  60. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  61. package/dist/esm/limel-drag-handle.entry.js +1 -1
  62. package/dist/esm/limel-email-viewer.entry.js +1 -1
  63. package/dist/esm/limel-file-viewer.entry.js +1 -1
  64. package/dist/esm/limel-file.entry.js +1 -1
  65. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  66. package/dist/esm/limel-helper-line_3.entry.js +450 -0
  67. package/dist/esm/limel-hotkey_4.entry.js +26 -5
  68. package/dist/esm/limel-list-item.entry.js +1 -1
  69. package/dist/esm/limel-pagination-jump.entry.js +180 -0
  70. package/dist/esm/limel-pagination.entry.js +165 -126
  71. package/dist/esm/limel-picker.entry.js +1 -1
  72. package/dist/esm/limel-profile-picture.entry.js +1 -1
  73. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  74. package/dist/esm/limel-slider.entry.js +1 -1
  75. package/dist/esm/limel-snackbar.entry.js +1 -1
  76. package/dist/esm/limel-table.entry.js +1 -1
  77. package/dist/esm/limel-text-editor-link-menu.entry.js +1 -1
  78. package/dist/esm/loader.js +1 -1
  79. package/dist/esm/pagination.util-CSC2LJ7P.js +132 -0
  80. package/dist/esm/{translations-Bwm2y2E4.js → translations-DMtX4tTX.js} +32 -0
  81. package/dist/lime-elements/lime-elements.esm.js +1 -1
  82. package/dist/lime-elements/{p-2bbdac10.entry.js → p-11a96a8c.entry.js} +1 -1
  83. package/dist/lime-elements/p-1e93473a.entry.js +1 -0
  84. package/dist/lime-elements/{p-6b7ff8e0.entry.js → p-2daf0482.entry.js} +1 -1
  85. package/dist/lime-elements/{p-a41b5ff3.entry.js → p-2e568c56.entry.js} +1 -1
  86. package/dist/lime-elements/{p-de631fc3.entry.js → p-2f57c3fa.entry.js} +1 -1
  87. package/dist/lime-elements/p-3735111e.entry.js +1 -0
  88. package/dist/lime-elements/{p-c823054d.entry.js → p-452b9b01.entry.js} +1 -1
  89. package/dist/lime-elements/{p-f333f12d.entry.js → p-4855dc9b.entry.js} +1 -1
  90. package/dist/lime-elements/{p-a462aeb7.entry.js → p-4902fb3f.entry.js} +1 -1
  91. package/dist/lime-elements/p-507cc8a1.entry.js +159 -0
  92. package/dist/lime-elements/{p-dadd2e17.entry.js → p-531b6a64.entry.js} +1 -1
  93. package/dist/lime-elements/{p-b194a212.entry.js → p-5698e493.entry.js} +1 -1
  94. package/dist/lime-elements/{p-65a9adfc.entry.js → p-67f02b69.entry.js} +1 -1
  95. package/dist/lime-elements/{p-1162dd39.entry.js → p-867681aa.entry.js} +1 -1
  96. package/dist/lime-elements/{p-f72ee01b.entry.js → p-90df3e1b.entry.js} +1 -1
  97. package/dist/lime-elements/{p-22f85b99.entry.js → p-955292eb.entry.js} +1 -1
  98. package/dist/lime-elements/{p-c2ff132c.entry.js → p-9b631363.entry.js} +1 -1
  99. package/dist/lime-elements/{p-8af3e4a1.entry.js → p-9d3437ac.entry.js} +1 -1
  100. package/dist/lime-elements/p-B8hoCfhT.js +1 -0
  101. package/dist/lime-elements/p-BwJGg-WI.js +89 -0
  102. package/dist/lime-elements/p-CSC2LJ7P.js +1 -0
  103. package/dist/lime-elements/p-a1de9bbe.entry.js +1 -0
  104. package/dist/lime-elements/{p-b5484494.entry.js → p-acba5700.entry.js} +1 -1
  105. package/dist/lime-elements/{p-f6361b03.entry.js → p-b8c76487.entry.js} +1 -1
  106. package/dist/lime-elements/{p-ac9c5c88.entry.js → p-cafec335.entry.js} +1 -1
  107. package/dist/lime-elements/{p-48928b4f.entry.js → p-d146feda.entry.js} +1 -1
  108. package/dist/lime-elements/{p-532ea234.entry.js → p-deceda00.entry.js} +1 -1
  109. package/dist/lime-elements/{p-e508771f.entry.js → p-f04f7c8e.entry.js} +1 -1
  110. package/dist/lime-elements/{p-51dc5f0b.entry.js → p-f3c108c9.entry.js} +1 -1
  111. package/dist/lime-elements/{p-24041bbb.entry.js → p-fbcd99a3.entry.js} +1 -1
  112. package/dist/types/components/pagination/jump/pagination-jump.d.ts +102 -0
  113. package/dist/types/components/pagination/pagination.d.ts +81 -0
  114. package/dist/types/components/pagination/pagination.util.d.ts +12 -2
  115. package/dist/types/components/portal/portal.d.ts +3 -0
  116. package/dist/types/components.d.ts +145 -0
  117. package/dist/types/translations/da.d.ts +4 -0
  118. package/dist/types/translations/de.d.ts +4 -0
  119. package/dist/types/translations/en.d.ts +4 -0
  120. package/dist/types/translations/fi.d.ts +4 -0
  121. package/dist/types/translations/fr.d.ts +4 -0
  122. package/dist/types/translations/nl.d.ts +4 -0
  123. package/dist/types/translations/no.d.ts +4 -0
  124. package/dist/types/translations/sv.d.ts +4 -0
  125. package/package.json +1 -1
  126. package/dist/cjs/limel-helper-line.cjs.entry.js +0 -42
  127. package/dist/esm/limel-helper-line.entry.js +0 -40
  128. package/dist/lime-elements/p-497b7be1.entry.js +0 -248
  129. package/dist/lime-elements/p-DAFuhe5e.js +0 -1
  130. package/dist/lime-elements/p-b4988a9b.entry.js +0 -1
  131. package/dist/lime-elements/p-f81dc23a.entry.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import './language-C3hECvXE.js';
4
4
 
5
5
  const calloutIcons = {
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
4
4
  import './language-C3hECvXE.js';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Bnc9lzk2.js';
2
2
  import { c as ARROW_LEFT, d as ARROW_RIGHT, a as ENTER, D as DELETE, B as BACKSPACE, E as ESCAPE } from './keycodes-C4_9qUMP.js';
3
- import { t as translate } from './translations-Bwm2y2E4.js';
3
+ import { t as translate } from './translations-DMtX4tTX.js';
4
4
  import { a as getTarget, b as getHref } from './link-helper-5KsJICvh.js';
5
5
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
6
6
  import { i as isEqual } from './isEqual-4tbMaaf_.js';
@@ -3,7 +3,7 @@ import { I as ImageTemplate } from './image.template-wqMwmOF-.js';
3
3
  import { g as getRel } from './link-helper-5KsJICvh.js';
4
4
  import { g as getIconName } from './get-icon-props-CgNJbSP4.js';
5
5
  import { m as makeEnterClickable, r as removeEnterClickable } from './make-enter-clickable-BgTwPGeH.js';
6
- import { t as translate } from './translations-Bwm2y2E4.js';
6
+ import { t as translate } from './translations-DMtX4tTX.js';
7
7
  import { D as DELETE, B as BACKSPACE } from './keycodes-C4_9qUMP.js';
8
8
  import { i as isEmpty } from './isEmpty-DHgukT5k.js';
9
9
  import './language-C3hECvXE.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host, a as getElement } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import './language-C3hECvXE.js';
4
4
 
5
5
  class Diff {
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Bnc9lzk2.js';
2
2
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
3
3
  import { g as getDefaultExportFromCjs } from './_commonjsHelpers-B85MJLTf.js';
4
- import { t as translate } from './translations-Bwm2y2E4.js';
4
+ import { t as translate } from './translations-DMtX4tTX.js';
5
5
  import './language-C3hECvXE.js';
6
6
 
7
7
  var codemirror$1 = {exports: {}};
@@ -3,7 +3,7 @@ import { d as dispatchResizeEvent } from './dispatch-resize-event-z_E3sq3p.js';
3
3
  import { m as makeEnterClickable, r as removeEnterClickable } from './make-enter-clickable-BgTwPGeH.js';
4
4
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
5
5
  import { b as getIconColor, d as getIconTitle, g as getIconName } from './get-icon-props-CgNJbSP4.js';
6
- import { t as translate } from './translations-Bwm2y2E4.js';
6
+ import { t as translate } from './translations-DMtX4tTX.js';
7
7
  import './language-C3hECvXE.js';
8
8
 
9
9
  const collapsibleSectionCss = () => `@charset "UTF-8";.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}:host(limel-collapsible-section){--border-radius-of-header:0.75rem;display:block}:host([hidden]){display:none}button.open-close-toggle{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;position:absolute;inset:0;width:100%}button.open-close-toggle:focus{outline:none}button.open-close-toggle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.open-close-toggle{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)}button.open-close-toggle:hover,button.open-close-toggle:focus-visible{background-color:var(--open-header-background-color, rgb(var(--contrast-300)))}section.open button.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) var(--limel-cs-open-header-bottom-border-radius, 0) var(--limel-cs-open-header-bottom-border-radius, 0)}section.open button.open-close-toggle:hover,section.open button.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;flex-shrink:0}.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{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:var(--limel-cs-grid-template-rows)}.body slot{transition:opacity var(--limel-cs-opacity-transition-speed) ease var(--limel-cs-opacity-transition-delay);display:block;overflow:hidden}:host(limel-collapsible-section:not([is-open])){--limel-cs-opacity-transition-speed:0.1s;--limel-cs-opacity-transition-delay:0s;--limel-cs-grid-template-rows-transition-speed:0.3s;--limel-cs-grid-template-rows:0fr}:host(limel-collapsible-section:not([is-open])) slot{opacity:0}:host(limel-collapsible-section[is-open]){--limel-cs-opacity-transition-speed:0.4s;--limel-cs-opacity-transition-delay:0.3s;--limel-cs-grid-template-rows-transition-speed:0.46s;--limel-cs-grid-template-rows:1fr}:host(limel-collapsible-section[is-open]) 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}`;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import './language-C3hECvXE.js';
4
4
 
5
5
  const dragHandleCss = () => `@charset "UTF-8";limel-drag-handle{display:inline-flex;align-items:center;justify-content:center}button.limel-drag-handle{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit}button.limel-drag-handle:focus{outline:none}button.limel-drag-handle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.limel-drag-handle{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}button.limel-drag-handle:hover,button.limel-drag-handle:focus,button.limel-drag-handle:focus-visible{will-change:color, background-color, box-shadow, transform}button.limel-drag-handle:hover,button.limel-drag-handle:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--mdc-theme-primary);background-color:transparent}button.limel-drag-handle:hover{box-shadow:var(--button-shadow-hovered)}button.limel-drag-handle:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}button.limel-drag-handle:hover,button.limel-drag-handle:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button.limel-drag-handle{touch-action:none;cursor:grab}button.limel-drag-handle:active{cursor:grabbing}button.limel-drag-handle:active,button.limel-drag-handle:hover{box-shadow:none !important}button.limel-drag-handle{display:inline-flex;align-items:center;justify-content:center;border-radius:0.4rem;padding:0.5rem;max-height:2.25rem;max-width:2.25rem;color:rgb(var(--contrast-900))}button.limel-drag-handle .drag-icon{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.2rem}limel-drag-handle[drag-direction=horizontal] button.limel-drag-handle .drag-icon{grid-template-columns:1fr 1fr}button.limel-drag-handle .drag-icon div{transition:transform 0.2s ease, background-color 0.2s ease;height:0.125rem;width:0.125rem;border-radius:1rem;background-color:currentColor;transform:scale(1)}.is-being-dragged button.limel-drag-handle .drag-icon div,button.limel-drag-handle:active .drag-icon div,button.limel-drag-handle:focus .drag-icon div,button.limel-drag-handle:hover .drag-icon div,button.limel-drag-handle:focus-visible .drag-icon div{background-color:var(--mdc-theme-primary);transform:scale(1.5)}`;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import { f as formatBytes } from './format-bytes-u_sd2HMb.js';
4
4
  import { a as adaptColorContrast } from './adapt-color-contrast-Dgcw_h7C.js';
5
5
  import { g as getIconBackgroundColorForFile, a as getIconFillColorForFile, b as getIconForFile } from './icons-Bu_YRgCL.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, a as getElement } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import { d as defaultSchema, u as unified, r as rehypeParse, a as rehypeSanitize, v as visit, b as rehypeStringify } from './index-CbciMfiU.js';
4
4
  import { I as ImageTemplate } from './image.template-wqMwmOF-.js';
5
5
  import './language-C3hECvXE.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import { g as getFileBackgroundColor, a as getFileColor, b as getFileExtensionTitle, c as getFileIcon } from './file-metadata-BHzkIH4g.js';
4
4
  import { f as formatBytes } from './format-bytes-u_sd2HMb.js';
5
5
  import { r as resizeImage } from './image-resize-BTSG--2-.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-Bnc9lzk2.js';
2
- import { t as translate } from './translations-Bwm2y2E4.js';
2
+ import { t as translate } from './translations-DMtX4tTX.js';
3
3
  import { g as getDefaultExportFromCjs } from './_commonjsHelpers-B85MJLTf.js';
4
4
  import './sv-CY-6-yEp.js';
5
5
  import { m as moment } from './moment-DQRNe8qq.js';
@@ -0,0 +1,450 @@
1
+ import { r as registerInstance, h, H as Host, c as createEvent, a as getElement } from './index-Bnc9lzk2.js';
2
+ import { a as MDCList, s as strings } from './component-B2Vy44Z3.js';
3
+ import './ponyfill-ChRGk668.js';
4
+
5
+ const helperLineCss = () => `:host(limel-helper-line){transition:opacity 0.2s ease;box-sizing:border-box;display:grid;min-width:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:0.6875rem;line-height:normal;color:rgb(var(--contrast-1200))}div{display:flex;justify-content:space-between;gap:0.75rem;overflow:hidden;padding:0 1rem}:host(limel-helper-line.invalid){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limel-helper-line.invalid) .helper-text{color:var(--limel-theme-error-color)}.counter{flex-shrink:0;margin-left:auto}.helper-text,.counter{padding-top:0.125rem}:host(limel-helper-line){transition:grid-template-rows var(--limel-h-l-grid-template-rows-transition-speed, 0.46s) cubic-bezier(1, 0.09, 0, 0.89);grid-template-rows:var(--limel-h-l-grid-template-rows, 1fr)}:host(limel-helper-line.hide){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}`;
6
+
7
+ const HelperLine = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ /**
11
+ * Turns `true`, when the parent component is invalid.
12
+ * For example, when the parent component is `required` but is left empty.
13
+ * Or when the input format is invalid.
14
+ */
15
+ this.invalid = false;
16
+ this.hasContent = () => {
17
+ return !!(this.maxLength > 0 ||
18
+ (this.helperText && this.helperText.length > 0));
19
+ };
20
+ this.renderHelperText = () => {
21
+ if (!this.helperText) {
22
+ return;
23
+ }
24
+ return (h("span", { class: "helper-text", id: this.helperTextId }, this.helperText));
25
+ };
26
+ this.renderCharacterCounter = () => {
27
+ const counter = `${this.length} / ${this.maxLength}`;
28
+ if (!this.maxLength) {
29
+ return;
30
+ }
31
+ return h("span", { class: "counter" }, counter);
32
+ };
33
+ }
34
+ render() {
35
+ return (h(Host, { key: '5ecd83d58e8412274b36def796d0a9c24b67e582', tabIndex: -1, class: {
36
+ invalid: this.invalid,
37
+ }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, h("div", { key: 'f10706f6e5f7be45da53a58a13b44a936eb091b4' }, this.renderHelperText(), this.renderCharacterCounter())));
38
+ }
39
+ };
40
+ HelperLine.style = helperLineCss();
41
+
42
+ class ListRenderer {
43
+ constructor() {
44
+ this.defaultConfig = {
45
+ isOpen: true,
46
+ badgeIcons: false,
47
+ };
48
+ /**
49
+ * `aria-orientation` is valid for `listbox` and `radiogroup`,
50
+ * but not for group (used for checkboxes).
51
+ * @param role
52
+ */
53
+ this.getAriaOrientation = (role) => {
54
+ if (role === 'listbox' || role === 'radiogroup') {
55
+ return 'vertical';
56
+ }
57
+ else {
58
+ return null;
59
+ }
60
+ };
61
+ /**
62
+ * Determine which ListItem should have the `tab-index` attribute set,
63
+ * and return the index at which that ListItem is located in `items`.
64
+ * Returns `undefined` if no item should have the attribute set.
65
+ * See https://github.com/material-components/material-components-web/tree/e66a43a75fef4f9179e24856649518e15e279a04/packages/mdc-list#accessibility
66
+ *
67
+ * @param items - the items of the list, including any `ListSeparator`:s
68
+ * @returns the index as per the description
69
+ */
70
+ this.getIndexForWhichToApplyTabIndex = (items) => {
71
+ let result;
72
+ for (let i = 0, max = items.length; i < max; i += 1) {
73
+ if ('separator' in items[i]) ;
74
+ else {
75
+ const item = items[i];
76
+ if (item.disabled) {
77
+ // Skip disabled items - they should never get tabindex
78
+ continue;
79
+ }
80
+ if (item.selected) {
81
+ result = i;
82
+ break;
83
+ }
84
+ if (result === undefined) {
85
+ result = i;
86
+ // Do NOT break, as any later item with
87
+ // `selected=true` should get the tab-index instead!
88
+ }
89
+ }
90
+ }
91
+ return result;
92
+ };
93
+ /**
94
+ * Render a single list item
95
+ *
96
+ * @param item - the item to render
97
+ * @param index - the index the item had in the `items` array
98
+ * @returns the list item
99
+ */
100
+ this.renderListItem = (item, index) => {
101
+ var _a;
102
+ if ('separator' in item) {
103
+ return (h("li", { class: "mdc-deprecated-list-divider", role: "separator", key: `sep-${index}` }, this.renderTextForSeparator(item), h("div", { class: "limel-list-divider-line" })));
104
+ }
105
+ const attributes = {};
106
+ if (index === this.applyTabIndexToItemAtIndex) {
107
+ attributes.tabindex = '0';
108
+ }
109
+ let itemType;
110
+ if (this.config.type === 'radio' || this.config.type === 'checkbox') {
111
+ itemType = this.config.type;
112
+ }
113
+ else if (this.config.type === 'selectable') {
114
+ itemType = 'option';
115
+ }
116
+ else {
117
+ itemType = 'listitem';
118
+ }
119
+ const key = (_a = item.id) !== null && _a !== void 0 ? _a : `item-${index}`;
120
+ const classNames = {
121
+ 'mdc-deprecated-list-item': true, // required for keyboard navigation with arrow keys
122
+ 'mdc-deprecated-list-item--disabled': !!item.disabled, // MDC’s foundation checks for the disabled class before toggling selected state
123
+ };
124
+ return (h("limel-list-item", Object.assign({ key: key, class: classNames }, attributes, { "data-index": index, type: itemType, text: item.text, secondaryText: item.secondaryText, icon: item.icon, image: item.image, primaryComponent: item.primaryComponent, badgeIcon: this.config.badgeIcons, iconSize: this.config.iconSize, selected: item.selected, disabled: item.disabled, actions: item.actions })));
125
+ };
126
+ this.renderTextForSeparator = (item) => {
127
+ if ('text' in item) {
128
+ return h("h2", { class: "limel-list-divider-title" }, item.text);
129
+ }
130
+ };
131
+ }
132
+ render(items, config = {}) {
133
+ items = items || [];
134
+ this.config = Object.assign(Object.assign({}, this.defaultConfig), config);
135
+ let role;
136
+ switch (this.config.type) {
137
+ case 'checkbox': {
138
+ role = 'group';
139
+ break;
140
+ }
141
+ case 'radio': {
142
+ role = 'radiogroup';
143
+ break;
144
+ }
145
+ default: {
146
+ role = 'listbox';
147
+ }
148
+ }
149
+ this.applyTabIndexToItemAtIndex =
150
+ this.getIndexForWhichToApplyTabIndex(items);
151
+ return (h("ul", { class: "mdc-deprecated-list", role: role, "aria-orientation": this.getAriaOrientation(role) }, items.map(this.renderListItem)));
152
+ }
153
+ }
154
+
155
+ const listCss = () => `@charset "UTF-8";:host(.has-striped-rows) .mdc-deprecated-list{border:1px solid rgb(var(--contrast-400))}:host(.has-striped-rows) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(even),:host(.has-striped-rows.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(even){background-color:var(--list-background-color-of-odd-interactive-items, rgb(var(--contrast-200)))}:host(.has-striped-rows) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(odd),:host(.has-striped-rows.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(odd){background-color:var(--list-background-color-of-even-interactive-items, rgb(var(--contrast-100)))}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]){transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus-visible{will-change:color, background-color, box-shadow, transform}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover{box-shadow:var(--button-shadow-hovered)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}:host(.has-grid-layout){--gap:var(--list-grid-gap, 0.5rem);padding:var(--gap);}:host(.has-grid-layout) .mdc-deprecated-list{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--list-grid-item-max-width, 10rem) - var(--gap), var(--list-grid-item-min-width, 7.5rem))), 1fr));max-width:var(--list-grid-max-width, 100%)}:host(.has-grid-layout) .mdc-deprecated-list limel-list-item{border-radius:var(--limel-list-border-radius) !important}:host(.has-grid-layout) .mdc-deprecated-list-divider{grid-column:1/-1}:host(.static-actions-list){z-index:1;background-color:var(--limel-theme-surface-background-color)}:host(.has-position-sticky){position:sticky;box-shadow:0 0 0.75rem 0.5rem var(--limel-theme-surface-background-color)}:host(.has-position-sticky.is-on-top){top:0}:host(.has-position-sticky.is-at-bottom){bottom:0}:host(.is-on-top){border-bottom:1px solid rgb(var(--contrast-400));margin-bottom:0.5rem;padding-bottom:0.25rem}:host(.is-at-bottom){border-top:1px solid rgb(var(--contrast-400));margin-top:0.5rem;padding-top:0.25rem}:host(limel-list){--limel-list-border-radius:0.5rem;display:block;isolation:isolate}:host([hidden]){display:none}ul{--mdc-theme-text-icon-on-background:var( --icon-color, rgb(var(--contrast-900)) );margin:var(--list-margin, 0.25rem);border-radius:var(--limel-list-border-radius);padding:0;list-style:none}.mdc-deprecated-list-divider{border-bottom-color:transparent;display:flex;align-items:center;gap:0.75rem;height:auto;padding:0 0.25rem;margin-bottom:0.5rem}.mdc-deprecated-list-divider:not(:first-child){margin-top:0.75rem}:host(.has-striped-rows) .mdc-deprecated-list-divider{margin-top:0.5rem}.limel-list-divider-line{background-color:rgb(var(--contrast-400));height:0.125rem;border-radius:1rem;min-width:1rem;flex-grow:1}.limel-list-divider-title{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:rgb(var(--contrast-900));font-size:var(--limel-theme-default-small-font-size)}`;
156
+
157
+ const { ACTION_EVENT } = strings;
158
+ const List = class {
159
+ constructor(hostRef) {
160
+ registerInstance(this, hostRef);
161
+ this.change = createEvent(this, "change", 7);
162
+ this.select = createEvent(this, "select", 7);
163
+ this.interact = createEvent(this, "interact", 7);
164
+ /**
165
+ * Size of the icons in the list
166
+ */
167
+ this.iconSize = 'small';
168
+ /**
169
+ * By default, lists will display 3 lines of text, and then truncate the rest.
170
+ * Consumers can increase or decrease this number by specifying
171
+ * `maxLinesSecondaryText`. If consumer enters zero or negative
172
+ * numbers we default to 1; and if they type decimals we round up.
173
+ */
174
+ this.maxLinesSecondaryText = 3;
175
+ this.listRenderer = new ListRenderer();
176
+ this.setup = () => {
177
+ this.setupList();
178
+ this.setupListeners();
179
+ };
180
+ this.setupList = () => {
181
+ if (this.mdcList) {
182
+ this.teardown();
183
+ this.mdcList = null;
184
+ }
185
+ const element = this.element.shadowRoot.querySelector('.mdc-deprecated-list');
186
+ if (!element) {
187
+ return;
188
+ }
189
+ this.listElement = element;
190
+ this.listElement.removeEventListener('mousedown', this.handleItemMouseDown);
191
+ this.listElement.addEventListener('mousedown', this.handleItemMouseDown);
192
+ this.mdcList = new MDCList(element);
193
+ // NOTE: This has no effect. It is kept as a marker rather than
194
+ // removed, so that its absence isn't mistaken for an oversight.
195
+ //
196
+ // MDC indexes each row for typeahead by looking for
197
+ // `.mdc-deprecated-list-item__primary-text` inside it, while
198
+ // `limel-list-item` renders its label as `<span class="label">`. MDC
199
+ // therefore builds an empty index, and typing does nothing.
200
+ //
201
+ // Do not "fix" this by adding MDC's class name to `limel-list-item`.
202
+ // That revives MDC's typeahead along with three behaviors that cannot
203
+ // be configured from the outside: a hard coded 300ms buffer, `Enter`
204
+ // being ignored for as long as that buffer lives (its `notifyAction`
205
+ // is guarded by `isTypeaheadInProgress`), and the space bar being
206
+ // excluded from matches. It would also collide with `limel-menu`,
207
+ // where single characters are used as item hotkeys.
208
+ //
209
+ // `limel-select` implements its own typeahead instead, see
210
+ // `src/util/typeahead.ts`. It intercepts typed characters in the
211
+ // capture phase on this very element, so they never reach MDC.
212
+ this.mdcList.hasTypeahead = true;
213
+ };
214
+ /**
215
+ * Focus the pressed list item directly, without scrolling.
216
+ *
217
+ * Since the list uses `delegatesFocus`, pressing a non-focusable part of
218
+ * a list item (e.g. its text) would otherwise delegate focus to the first
219
+ * focusable row, scrolling it into view. In a scrolled list that moves the
220
+ * pressed row out from under the pointer before the click completes, so the
221
+ * click lands on empty space and no item gets selected.
222
+ *
223
+ * Bound to `mousedown` only (not `pointerdown`) so a touch-drag to scroll
224
+ * that starts on a row is not blocked by `preventDefault`.
225
+ *
226
+ * @param event - the mousedown event
227
+ */
228
+ this.handleItemMouseDown = (event) => {
229
+ var _a;
230
+ const target = event.target;
231
+ const itemElement = (_a = target === null || target === void 0 ? void 0 : target.closest) === null || _a === void 0 ? void 0 : _a.call(target, '.mdc-deprecated-list-item');
232
+ if (!itemElement) {
233
+ return;
234
+ }
235
+ // Suppress the default focus delegation (and its scroll) for any row,
236
+ // but only move focus to interactive (non-disabled) rows.
237
+ event.preventDefault();
238
+ if (!itemElement.classList.contains('mdc-deprecated-list-item--disabled')) {
239
+ itemElement.focus({ preventScroll: true });
240
+ }
241
+ };
242
+ this.setupListeners = () => {
243
+ if (!this.mdcList) {
244
+ return;
245
+ }
246
+ this.mdcList.unlisten(ACTION_EVENT, this.handleAction);
247
+ this.selectable = ['selectable', 'radio', 'checkbox'].includes(this.type);
248
+ this.multiple = this.type === 'checkbox';
249
+ if (!this.selectable) {
250
+ return;
251
+ }
252
+ this.mdcList.listen(ACTION_EVENT, this.handleAction);
253
+ this.mdcList.singleSelection = !this.multiple;
254
+ };
255
+ this.teardown = () => {
256
+ var _a, _b, _c;
257
+ (_a = this.listElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('mousedown', this.handleItemMouseDown);
258
+ (_b = this.mdcList) === null || _b === void 0 ? void 0 : _b.unlisten(ACTION_EVENT, this.handleAction);
259
+ (_c = this.mdcList) === null || _c === void 0 ? void 0 : _c.destroy();
260
+ };
261
+ this.handleAction = (event) => {
262
+ if (!this.multiple) {
263
+ this.handleSingleSelect(event.detail.index);
264
+ return;
265
+ }
266
+ this.handleMultiSelect(event.detail.index);
267
+ };
268
+ this.handleSingleSelect = (index) => {
269
+ const listItems = this.items.filter(this.isListItem);
270
+ if (listItems[index].disabled) {
271
+ return;
272
+ }
273
+ const selectedItem = listItems.find((item) => {
274
+ return !!item.selected;
275
+ });
276
+ let interactedItem;
277
+ if (selectedItem) {
278
+ if (this.type !== 'radio') {
279
+ this.mdcList.selectedIndex = -1;
280
+ }
281
+ interactedItem = Object.assign(Object.assign({}, selectedItem), { selected: false });
282
+ this.change.emit(interactedItem);
283
+ }
284
+ if (listItems[index] !== selectedItem) {
285
+ interactedItem = Object.assign(Object.assign({}, listItems[index]), { selected: true });
286
+ this.change.emit(interactedItem);
287
+ }
288
+ this.interact.emit(interactedItem);
289
+ };
290
+ this.handleMultiSelect = (index) => {
291
+ const listItems = this.items.filter(this.isListItem);
292
+ if (listItems[index].disabled) {
293
+ return;
294
+ }
295
+ const selectedItems = listItems
296
+ .filter((item, listIndex) => {
297
+ if (listIndex === index) {
298
+ // This is the item that was selected or deselected,
299
+ // so we negate its previous selection status.
300
+ return !item.selected;
301
+ }
302
+ // This is an item that didn't change, so we keep its selection status.
303
+ return item.selected;
304
+ })
305
+ .map((item) => {
306
+ return Object.assign(Object.assign({}, item), { selected: true });
307
+ });
308
+ this.change.emit(selectedItems);
309
+ this.interact.emit(Object.assign({}, selectedItems[index]));
310
+ };
311
+ this.isListItem = (item) => {
312
+ return !('separator' in item);
313
+ };
314
+ }
315
+ connectedCallback() {
316
+ this.setup();
317
+ }
318
+ disconnectedCallback() {
319
+ this.teardown();
320
+ }
321
+ componentDidLoad() {
322
+ this.setup();
323
+ this.triggerIconColorWarning();
324
+ }
325
+ render() {
326
+ var _a;
327
+ this.config = {
328
+ badgeIcons: this.badgeIcons,
329
+ type: this.type,
330
+ iconSize: this.iconSize,
331
+ };
332
+ let maxLinesSecondaryText = +((_a = this.maxLinesSecondaryText) === null || _a === void 0 ? void 0 : _a.toFixed());
333
+ if (this.maxLinesSecondaryText < 1) {
334
+ maxLinesSecondaryText = 1;
335
+ }
336
+ const html = this.listRenderer.render(this.items, this.config);
337
+ return (h(Host, { key: 'f15badb0936caf891cd8bd272ef5d3224645c3c7', style: {
338
+ '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,
339
+ } }, html));
340
+ }
341
+ handleType() {
342
+ this.setupListeners();
343
+ }
344
+ itemsChanged() {
345
+ if (!this.mdcList) {
346
+ return;
347
+ }
348
+ setTimeout(() => {
349
+ this.setup();
350
+ const listItems = this.items.filter(this.isListItem);
351
+ if (this.multiple) {
352
+ this.mdcList.selectedIndex = listItems
353
+ .filter((item) => item.selected)
354
+ .map((item) => listItems.indexOf(item));
355
+ }
356
+ else {
357
+ const selectedIndex = listItems.findIndex((item) => item.selected);
358
+ if (selectedIndex === -1) {
359
+ this.mdcList.initializeListType();
360
+ }
361
+ else {
362
+ this.mdcList.selectedIndex = selectedIndex;
363
+ }
364
+ }
365
+ }, 0);
366
+ }
367
+ triggerIconColorWarning() {
368
+ var _a;
369
+ if ((_a = this.items) === null || _a === void 0 ? void 0 : _a.some((item) => 'iconColor' in item)) {
370
+ console.warn("The `iconColor` prop is deprecated, has no visual effect anymore, and will soon be removed! Use the new `Icon` interface, and instead of `iconColor: 'color-name'` write `icon: { name: 'icon-name', color: 'color-name' }`.");
371
+ }
372
+ }
373
+ static get delegatesFocus() { return true; }
374
+ get element() { return getElement(this); }
375
+ static get watchers() { return {
376
+ "type": [{
377
+ "handleType": 0
378
+ }],
379
+ "items": [{
380
+ "itemsChanged": 0
381
+ }]
382
+ }; }
383
+ };
384
+ List.style = listCss();
385
+
386
+ const notchedOutlineCss = () => `@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}limel-notched-outline{--limel-notched-outline-border-color:rgba(var(--contrast-700), 0.65);--limel-notched-outline-background-color:rgba(var(--contrast-200), 0.5);display:block;width:100%;height:fit-content}.limel-notched-outline{position:relative;width:100%;height:100%}.limel-notched-outline [slot=content]{background-color:var(--limel-notched-outline-background-color);border-radius:var(--limel-notched-outline-border-radius, 0.25rem)}.limel-notched-outline--outlines{pointer-events:none;position:absolute;inset:0;z-index:var(--limel-notched-outline-z-index, 0);display:flex}.limel-notched-outline--leading-outline,.limel-notched-outline--notch,.limel-notched-outline--trailing-outline{transition:border-color 0.2s ease;border-width:1px;border-style:solid;border-color:var(--limel-notched-outline-border-color)}.limel-notched-outline--leading-outline{flex-shrink:0;width:0.75rem;border-right-width:0;border-top-left-radius:var(--limel-notched-outline-border-radius, 0.25rem);border-bottom-left-radius:var(--limel-notched-outline-border-radius, 0.25rem)}.limel-notched-outline--notch{flex-shrink:0;position:relative;z-index:2;border-top-color:var(--limel-notched-outline-notch-border-top-color, var(--limel-notched-outline-border-color));border-right-width:0;border-left-width:0;max-width:calc(100% - 1.5rem)}.limel-notched-outline--notch label{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;transition:color 0.2s ease, font-size 0.2s ease, transform 0.12s cubic-bezier(0.4, 0, 0.2, 1);transform:translate3d(var(--limel-notched-outline-label-transform-x, 0), var(--limel-notched-outline-label-transform-y, 0.62rem), 0);display:block;padding:0 0.25rem;color:var(--limel-notched-outline-label-color, rgba(var(--contrast-1200), 1));font-size:var(--limel-notched-outline-label-font-size, var(--limel-theme-default-font-size));letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);line-height:normal}.limel-notched-outline--notch label:after{position:absolute;right:0;padding:0 0.25rem}.limel-notched-outline--trailing-outline{flex-grow:1;border-left-width:0;border-top-right-radius:var(--limel-notched-outline-border-radius, 0.25rem);border-bottom-right-radius:var(--limel-notched-outline-border-radius, 0.25rem)}.limel-notched-outline--empty-readonly-value .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:var(--limel-theme-default-font-size);font-weight:400;font-family:inherit;letter-spacing:0.009375em}.mdc-text-field--disabled .limel-notched-outline--empty-readonly-value .lime-looks-like-input-value{cursor:not-allowed;opacity:0.4}.limel-notched-outline--empty-readonly-value{position:absolute;top:0.62rem;left:1rem}limel-notched-outline:not([disabled]:not([disabled=false])):hover{--limel-notched-outline-border-color:rgba(var(--contrast-700), 1);--limel-notched-outline-background-color:rgba(var(--contrast-200), 1)}limel-notched-outline:not([disabled]:not([disabled=false])):has([slot=content]:focus-visible),limel-notched-outline:not([disabled]:not([disabled=false])):has([slot=content]:focus-within){--limel-notched-outline-border-color:var(--lime-primary-color, var(--limel-theme-primary-color));--limel-notched-outline-background-color:rgba(var(--contrast-100), 0.8)}limel-notched-outline[disabled]:not([disabled=false]){--limel-notched-outline-label-color:rgba(var(--contrast-1200), 0.5)}limel-notched-outline[required]:not([required=false]) .limel-notched-outline--notch label{padding-right:0.75rem}limel-notched-outline[required]:not([required=false]) .limel-notched-outline--notch label:after{content:"*";scale:1.3}limel-notched-outline[invalid]:not([invalid=false]):not([disabled]:not([disabled=false])){--limel-notched-outline-border-color:var( --limel-theme-error-text-color )}limel-notched-outline[invalid]:not([invalid=false]):not([disabled]:not([disabled=false])):hover{--limel-notched-outline-border-color:var( --limel-theme-error-color )}limel-notched-outline[invalid]:not([invalid=false]) .limel-notched-outline--notch label:after{color:var(--limel-theme-error-text-color)}limel-notched-outline[readonly]:not([readonly=false]){--limel-notched-outline-border-color:transparent !important;--limel-notched-outline-background-color:transparent !important}limel-notched-outline[readonly]:not([readonly=false]) .limel-notched-outline--notch label{transition-duration:0s}limel-notched-outline[has-leading-icon]:not([has-leading-icon=false]):not([has-floating-label]):not([has-value]){--limel-notched-outline-label-transform-x:1.25rem}limel-notched-outline[has-leading-icon] .limel-notched-outline--empty-readonly-value{left:2.25rem}limel-notched-outline:not([disabled]:not([disabled=false])):hover label,limel-notched-outline:not([disabled]:not([disabled=false])):focus label,limel-notched-outline:not([disabled]:not([disabled=false])):focus-within label{will-change:color, transform, font-size}limel-notched-outline:not([disabled]:not([disabled=false])):has([slot=content]:focus-visible),limel-notched-outline:not([disabled]:not([disabled=false])):has([slot=content]:focus-within){--limel-notched-outline-label-font-size:0.65rem;--limel-notched-outline-label-transform-x:0;--limel-notched-outline-label-transform-y:calc(-50% - 0.09375rem);--limel-notched-outline-notch-border-top-color:transparent}limel-notched-outline[has-floating-label],limel-notched-outline[has-value]:not([has-value=false]),limel-notched-outline[readonly]:not([has-value]:not([has-value=true])){--limel-notched-outline-label-font-size:0.65rem;--limel-notched-outline-label-transform-x:0;--limel-notched-outline-label-transform-y:calc(-50% - 0.09375rem);--limel-notched-outline-notch-border-top-color:transparent}`;
387
+
388
+ const NotchedOutline = class {
389
+ constructor(hostRef) {
390
+ registerInstance(this, hostRef);
391
+ /**
392
+ * Set to `true` when the input element is required.
393
+ * This applies proper visual styles, such as inclusion of an asterisk
394
+ * beside the label.
395
+ */
396
+ this.required = false;
397
+ /**
398
+ * Set to `true` when the input element is readonly.
399
+ * This applies proper visual styles, such as making the outline transparent.
400
+ */
401
+ this.readonly = false;
402
+ /**
403
+ * Set to `true` to indicate that the current value of the input element is
404
+ * invalid. This applies proper visual styles, such as making the outlines red.
405
+ */
406
+ this.invalid = false;
407
+ /**
408
+ * Set to `true` to indicate that the input element is
409
+ * disabled. This applies proper visual styles, such as making the outlines
410
+ * and the label transparent.
411
+ */
412
+ this.disabled = false;
413
+ /**
414
+ * Set to `true` when the user has entered a value for the input element,
415
+ * shrinking the label in size, and visually rendering it above the entered value.
416
+ */
417
+ this.hasValue = false;
418
+ /**
419
+ * Set to `true` when the consumer element displays a leading icon.
420
+ * This applies proper visual styles, such as rendering the label
421
+ * correctly placed beside the leading icon.
422
+ */
423
+ this.hasLeadingIcon = false;
424
+ /**
425
+ * Set to `true` when the consumer element needs to render the
426
+ * label above the input element, despite existence of a `value`.
427
+ * For example in the `text-editor` or `limel-select`,
428
+ * where the default layout requires a floating label.
429
+ */
430
+ this.hasFloatingLabel = false;
431
+ }
432
+ render() {
433
+ return (h("div", { key: '928b12e7565dd3a827b29e57dfb94cbd668feb91', class: "limel-notched-outline" }, h("slot", { key: 'ae0a6205b1e8aeed3edea040a198ba7faebecc85', name: "content" }), h("span", { key: '84b1fd4feb65005eea9280717dd2cb6d74fc513c', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, h("span", { key: '4ae9c02d23197109c5ea0721a4f1abfab802822e', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), h("span", { key: 'd7b70aa632b22b7b639bf208ea57fd39a82884e3', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
434
+ }
435
+ renderLabel() {
436
+ if (!this.label) {
437
+ return;
438
+ }
439
+ return (h("span", { class: "limel-notched-outline--notch" }, h("label", { htmlFor: this.labelId }, this.label)));
440
+ }
441
+ renderEmptyReadonlyValue() {
442
+ if (!this.readonly || this.hasValue) {
443
+ return;
444
+ }
445
+ return (h("span", { class: "limel-notched-outline--empty-readonly-value", "aria-hidden": "true" }, "\u2013"));
446
+ }
447
+ };
448
+ NotchedOutline.style = notchedOutlineCss();
449
+
450
+ export { HelperLine as limel_helper_line, List as limel_list, NotchedOutline as limel_notched_outline };
@@ -1955,6 +1955,7 @@ const Portal = class {
1955
1955
  this.anchor = null;
1956
1956
  this.loaded = false;
1957
1957
  this.writtenStyles = {};
1958
+ this.scheduledRestyle = null;
1958
1959
  this.parents = new WeakMap();
1959
1960
  }
1960
1961
  disconnectedCallback() {
@@ -1989,7 +1990,7 @@ const Portal = class {
1989
1990
  }
1990
1991
  }
1991
1992
  render() {
1992
- return h("slot", { key: '32f6da268363dd30db38fb8189ee2d6414890959' });
1993
+ return h("slot", { key: 'ce5bfa7d65680773e1917e0a6d54256f5852bd65' });
1993
1994
  }
1994
1995
  onVisible() {
1995
1996
  if (!this.container && this.visible) {
@@ -2115,6 +2116,7 @@ const Portal = class {
2115
2116
  destroyPopper() {
2116
2117
  var _a, _b;
2117
2118
  (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
2119
+ this.cancelScheduledRestyle();
2118
2120
  (_b = this.popperInstance) === null || _b === void 0 ? void 0 : _b.destroy();
2119
2121
  this.popperInstance = null;
2120
2122
  }
@@ -2124,14 +2126,33 @@ const Portal = class {
2124
2126
  return;
2125
2127
  }
2126
2128
  (_a = this.observer) !== null && _a !== void 0 ? _a : (this.observer = new ResizeObserver(() => {
2127
- if (this.popperInstance) {
2128
- this.styleContainer();
2129
- this.popperInstance.update();
2130
- }
2129
+ this.scheduleRestyle();
2131
2130
  }));
2132
2131
  this.observer.observe(this.container);
2133
2132
  this.observer.observe(this.anchorElement);
2134
2133
  }
2134
+ // Restyling can resize the container this observer watches, so writing from
2135
+ // inside the callback re-enters it as a `ResizeObserver loop`.
2136
+ scheduleRestyle() {
2137
+ if (this.scheduledRestyle !== null) {
2138
+ return;
2139
+ }
2140
+ this.scheduledRestyle = requestAnimationFrame(() => {
2141
+ this.scheduledRestyle = null;
2142
+ if (!this.popperInstance) {
2143
+ return;
2144
+ }
2145
+ this.styleContainer();
2146
+ this.popperInstance.update();
2147
+ });
2148
+ }
2149
+ cancelScheduledRestyle() {
2150
+ if (this.scheduledRestyle === null) {
2151
+ return;
2152
+ }
2153
+ cancelAnimationFrame(this.scheduledRestyle);
2154
+ this.scheduledRestyle = null;
2155
+ }
2135
2156
  createPopperConfig() {
2136
2157
  const placement = this.getPlacement(this.openDirection);
2137
2158
  const flipPlacement = this.getFlipPlacement(this.openDirection);