@limetech/lime-elements 40.2.3 → 40.2.5

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 (142) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cjs/language-CaqPKPyW.js +28 -0
  3. package/dist/cjs/limel-action-bar_3.cjs.entry.js +2 -1
  4. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -1
  5. package/dist/cjs/limel-callout.cjs.entry.js +2 -1
  6. package/dist/cjs/limel-chart.cjs.entry.js +2 -1
  7. package/dist/cjs/limel-chip-set.cjs.entry.js +3 -2
  8. package/dist/cjs/limel-chip_2.cjs.entry.js +3 -2
  9. package/dist/cjs/limel-code-diff.cjs.entry.js +3 -2
  10. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -1
  11. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -1
  12. package/dist/cjs/limel-date-picker.cjs.entry.js +4 -2
  13. package/dist/cjs/limel-drag-handle.cjs.entry.js +2 -1
  14. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -1
  15. package/dist/cjs/limel-file-viewer.cjs.entry.js +2 -1
  16. package/dist/cjs/limel-file.cjs.entry.js +2 -1
  17. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +10 -7
  18. package/dist/cjs/limel-hotkey_4.cjs.entry.js +54 -35
  19. package/dist/cjs/limel-list-item.cjs.entry.js +2 -1
  20. package/dist/cjs/limel-picker.cjs.entry.js +2 -1
  21. package/dist/cjs/limel-profile-picture.cjs.entry.js +2 -1
  22. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +4 -3
  23. package/dist/cjs/limel-select.cjs.entry.js +8 -5
  24. package/dist/cjs/limel-slider.cjs.entry.js +2 -1
  25. package/dist/cjs/limel-snackbar.cjs.entry.js +2 -1
  26. package/dist/cjs/limel-table.cjs.entry.js +2 -1
  27. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +2 -1
  28. package/dist/cjs/{translations-Do_D3pxu.js → translations-ZgjCRtut.js} +19 -7
  29. package/dist/collection/components/chip/chip.js +1 -1
  30. package/dist/collection/components/chip-set/chip-set.js +1 -1
  31. package/dist/collection/components/code-diff/code-diff.js +1 -1
  32. package/dist/collection/components/date-picker/date-formatter.js +4 -2
  33. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +2 -2
  34. package/dist/collection/components/date-picker/pickers/picker.js +7 -4
  35. package/dist/collection/components/portal/portal.js +54 -35
  36. package/dist/collection/components/select/select.css +1 -2
  37. package/dist/collection/components/select/select.js +2 -2
  38. package/dist/collection/components/select/select.template.js +5 -2
  39. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +2 -2
  40. package/dist/collection/global/translations.js +10 -7
  41. package/dist/collection/translations/da.js +1 -0
  42. package/dist/collection/translations/de.js +1 -0
  43. package/dist/collection/translations/en.js +1 -0
  44. package/dist/collection/translations/fi.js +1 -0
  45. package/dist/collection/translations/fr.js +1 -0
  46. package/dist/collection/translations/nl.js +1 -0
  47. package/dist/collection/translations/no.js +1 -0
  48. package/dist/collection/translations/sv.js +1 -0
  49. package/dist/collection/util/language.js +24 -0
  50. package/dist/esm/language-C3hECvXE.js +26 -0
  51. package/dist/esm/limel-action-bar_3.entry.js +2 -1
  52. package/dist/esm/limel-ai-avatar.entry.js +2 -1
  53. package/dist/esm/limel-callout.entry.js +2 -1
  54. package/dist/esm/limel-chart.entry.js +2 -1
  55. package/dist/esm/limel-chip-set.entry.js +3 -2
  56. package/dist/esm/limel-chip_2.entry.js +3 -2
  57. package/dist/esm/limel-code-diff.entry.js +3 -2
  58. package/dist/esm/limel-code-editor.entry.js +2 -1
  59. package/dist/esm/limel-collapsible-section.entry.js +2 -1
  60. package/dist/esm/limel-date-picker.entry.js +4 -2
  61. package/dist/esm/limel-drag-handle.entry.js +2 -1
  62. package/dist/esm/limel-email-viewer.entry.js +2 -1
  63. package/dist/esm/limel-file-viewer.entry.js +2 -1
  64. package/dist/esm/limel-file.entry.js +2 -1
  65. package/dist/esm/limel-flatpickr-adapter.entry.js +10 -7
  66. package/dist/esm/limel-hotkey_4.entry.js +54 -35
  67. package/dist/esm/limel-list-item.entry.js +2 -1
  68. package/dist/esm/limel-picker.entry.js +2 -1
  69. package/dist/esm/limel-profile-picture.entry.js +2 -1
  70. package/dist/esm/limel-prosemirror-adapter.entry.js +4 -3
  71. package/dist/esm/limel-select.entry.js +8 -5
  72. package/dist/esm/limel-slider.entry.js +2 -1
  73. package/dist/esm/limel-snackbar.entry.js +2 -1
  74. package/dist/esm/limel-table.entry.js +2 -1
  75. package/dist/esm/limel-text-editor-link-menu.entry.js +2 -1
  76. package/dist/esm/{translations-DgqE77nk.js → translations-CPFNSfWw.js} +19 -7
  77. package/dist/lime-elements/lime-elements.esm.js +1 -1
  78. package/dist/lime-elements/p-057356b0.entry.js +1 -0
  79. package/dist/lime-elements/p-09036073.entry.js +1 -0
  80. package/dist/lime-elements/p-0a46959b.entry.js +1 -0
  81. package/dist/lime-elements/p-15bedc64.entry.js +1 -0
  82. package/dist/lime-elements/p-20297168.entry.js +1 -0
  83. package/dist/lime-elements/p-24354198.entry.js +1 -0
  84. package/dist/lime-elements/p-2ad8eed9.entry.js +1 -0
  85. package/dist/lime-elements/{p-d521d599.entry.js → p-33ccc617.entry.js} +1 -1
  86. package/dist/lime-elements/p-3b052fff.entry.js +1 -0
  87. package/dist/lime-elements/p-4682ddb0.entry.js +1 -0
  88. package/dist/lime-elements/p-46bcdf3c.entry.js +1 -0
  89. package/dist/lime-elements/p-4b91d2c3.entry.js +1 -0
  90. package/dist/lime-elements/p-715cc741.entry.js +1 -0
  91. package/dist/lime-elements/p-88e40db2.entry.js +1 -0
  92. package/dist/lime-elements/p-93df903a.entry.js +1 -0
  93. package/dist/lime-elements/p-94191814.entry.js +16 -0
  94. package/dist/lime-elements/p-943e708f.entry.js +1 -0
  95. package/dist/lime-elements/p-9c2b3cf4.entry.js +1 -0
  96. package/dist/lime-elements/p-C3hECvXE.js +1 -0
  97. package/dist/lime-elements/p-Dhnynzqz.js +1 -0
  98. package/dist/lime-elements/p-ab0c7eeb.entry.js +1 -0
  99. package/dist/lime-elements/p-abf3dce5.entry.js +1 -0
  100. package/dist/lime-elements/p-b1fb33a2.entry.js +23 -0
  101. package/dist/lime-elements/p-ccb77bcf.entry.js +1 -0
  102. package/dist/lime-elements/p-d70c53ae.entry.js +1 -0
  103. package/dist/lime-elements/p-d79ee300.entry.js +1 -0
  104. package/dist/lime-elements/p-d873e490.entry.js +1 -0
  105. package/dist/types/components/date-picker/date.types.d.ts +5 -0
  106. package/dist/types/components/portal/portal.d.ts +4 -0
  107. package/dist/types/global/translations.d.ts +1 -0
  108. package/dist/types/translations/da.d.ts +1 -0
  109. package/dist/types/translations/de.d.ts +1 -0
  110. package/dist/types/translations/en.d.ts +1 -0
  111. package/dist/types/translations/fi.d.ts +1 -0
  112. package/dist/types/translations/fr.d.ts +1 -0
  113. package/dist/types/translations/nl.d.ts +1 -0
  114. package/dist/types/translations/no.d.ts +1 -0
  115. package/dist/types/translations/sv.d.ts +1 -0
  116. package/dist/types/util/language.d.ts +20 -0
  117. package/package.json +1 -1
  118. package/dist/lime-elements/p-056ba5c5.entry.js +0 -1
  119. package/dist/lime-elements/p-3ac35da4.entry.js +0 -1
  120. package/dist/lime-elements/p-3e316685.entry.js +0 -1
  121. package/dist/lime-elements/p-565f688a.entry.js +0 -1
  122. package/dist/lime-elements/p-5dde5d72.entry.js +0 -1
  123. package/dist/lime-elements/p-62a25deb.entry.js +0 -1
  124. package/dist/lime-elements/p-6c826c25.entry.js +0 -1
  125. package/dist/lime-elements/p-73d9f0f6.entry.js +0 -1
  126. package/dist/lime-elements/p-83bdbaf7.entry.js +0 -1
  127. package/dist/lime-elements/p-8b3b7505.entry.js +0 -1
  128. package/dist/lime-elements/p-8c3798ee.entry.js +0 -1
  129. package/dist/lime-elements/p-8cf79fa1.entry.js +0 -1
  130. package/dist/lime-elements/p-9152d7e1.entry.js +0 -23
  131. package/dist/lime-elements/p-DgqE77nk.js +0 -1
  132. package/dist/lime-elements/p-a6500046.entry.js +0 -1
  133. package/dist/lime-elements/p-b04c6602.entry.js +0 -1
  134. package/dist/lime-elements/p-b4b43404.entry.js +0 -1
  135. package/dist/lime-elements/p-b6528083.entry.js +0 -1
  136. package/dist/lime-elements/p-cafebc7d.entry.js +0 -1
  137. package/dist/lime-elements/p-dda63b8b.entry.js +0 -1
  138. package/dist/lime-elements/p-e8783848.entry.js +0 -1
  139. package/dist/lime-elements/p-ed53466d.entry.js +0 -1
  140. package/dist/lime-elements/p-eeddce38.entry.js +0 -16
  141. package/dist/lime-elements/p-f2294e26.entry.js +0 -1
  142. package/dist/lime-elements/p-f53d8bda.entry.js +0 -1
@@ -44,6 +44,9 @@ const hideAnimationDuration = 300;
44
44
  * @exampleComponent limel-example-portal-basic
45
45
  */
46
46
  export class Portal {
47
+ get anchorElement() {
48
+ return this.anchor || this.host;
49
+ }
47
50
  constructor() {
48
51
  /**
49
52
  * Decides which direction the portal content should open.
@@ -75,14 +78,13 @@ export class Portal {
75
78
  */
76
79
  this.anchor = null;
77
80
  this.loaded = false;
81
+ this.writtenStyles = {};
78
82
  this.parents = new WeakMap();
79
83
  }
80
84
  disconnectedCallback() {
81
85
  this.removeContainer();
82
86
  this.destroyPopper();
83
- if (this.observer && this.container) {
84
- this.observer.unobserve(this.container);
85
- }
87
+ this.observer = null;
86
88
  this.container = null;
87
89
  }
88
90
  connectedCallback() {
@@ -109,18 +111,9 @@ export class Portal {
109
111
  this.createPopper();
110
112
  this.showContainer();
111
113
  }
112
- if ('ResizeObserver' in window) {
113
- this.observer = new ResizeObserver(() => {
114
- if (this.popperInstance) {
115
- this.styleContainer();
116
- this.popperInstance.update();
117
- }
118
- });
119
- this.observer.observe(this.container);
120
- }
121
114
  }
122
115
  render() {
123
- return h("slot", { key: '7a76d96c24d8404f46205dc00cc2351be9fe1c19' });
116
+ return h("slot", { key: '18852003d1bf5f0aeb7c18f73eb26f37e8c75294' });
124
117
  }
125
118
  onVisible() {
126
119
  if (!this.container && this.visible) {
@@ -140,6 +133,7 @@ export class Portal {
140
133
  createContainer() {
141
134
  const slot = this.host.shadowRoot.querySelector('slot');
142
135
  const content = (slot.assignedElements && slot.assignedElements()) || [];
136
+ this.writtenStyles = {};
143
137
  this.container = document.createElement('div');
144
138
  this.container.setAttribute('id', this.containerId);
145
139
  this.container.setAttribute('class', 'limel-portal--container');
@@ -196,20 +190,19 @@ export class Portal {
196
190
  }, hideAnimationDuration);
197
191
  }
198
192
  styleContainer() {
199
- this.setContainerWidth();
200
- this.setContainerHeight();
193
+ const hostRect = this.host.getBoundingClientRect();
194
+ this.setContainerWidth(hostRect);
195
+ this.setContainerHeight(hostRect);
201
196
  this.setContainerStyles();
202
197
  }
203
- setContainerWidth() {
204
- const hostWidth = this.host.getBoundingClientRect().width;
205
- if (this.inheritParentWidth) {
206
- const containerWidth = this.getContentWidth(this.container);
207
- let width = containerWidth;
208
- if (hostWidth > 0) {
209
- width = hostWidth;
210
- }
211
- this.container.style.width = `${width}px`;
198
+ setContainerWidth(hostRect) {
199
+ if (!this.inheritParentWidth) {
200
+ return;
212
201
  }
202
+ const width = hostRect.width > 0
203
+ ? hostRect.width
204
+ : this.getContentWidth(this.container);
205
+ this.setContainerStyle('width', `${width}px`);
213
206
  }
214
207
  getContentWidth(element) {
215
208
  if (!element) {
@@ -227,15 +220,42 @@ export class Portal {
227
220
  this.container.style[property] = this.containerStyle[property];
228
221
  }
229
222
  }
223
+ // Compared against what was last written rather than against
224
+ // `container.style`, which serializes lengths to six significant digits
225
+ // and so never reads back a fractional width verbatim.
226
+ setContainerStyle(property, value) {
227
+ if (this.writtenStyles[property] === value) {
228
+ return;
229
+ }
230
+ this.writtenStyles[property] = value;
231
+ this.container.style[property] = value;
232
+ }
230
233
  createPopper() {
234
+ this.destroyPopper();
231
235
  const config = this.createPopperConfig();
232
- this.popperInstance = createPopper(this.anchor || this.host, this.container, config);
236
+ this.popperInstance = createPopper(this.anchorElement, this.container, config);
237
+ this.observeResize();
233
238
  }
234
239
  destroyPopper() {
235
- var _a;
236
- (_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.destroy();
240
+ var _a, _b;
241
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
242
+ (_b = this.popperInstance) === null || _b === void 0 ? void 0 : _b.destroy();
237
243
  this.popperInstance = null;
238
244
  }
245
+ observeResize() {
246
+ var _a;
247
+ if (!('ResizeObserver' in window)) {
248
+ return;
249
+ }
250
+ (_a = this.observer) !== null && _a !== void 0 ? _a : (this.observer = new ResizeObserver(() => {
251
+ if (this.popperInstance) {
252
+ this.styleContainer();
253
+ this.popperInstance.update();
254
+ }
255
+ }));
256
+ this.observer.observe(this.container);
257
+ this.observer.observe(this.anchorElement);
258
+ }
239
259
  createPopperConfig() {
240
260
  const placement = this.getPlacement(this.openDirection);
241
261
  const flipPlacement = this.getFlipPlacement(this.openDirection);
@@ -286,20 +306,19 @@ export class Portal {
286
306
  };
287
307
  return flipPlacements[direction];
288
308
  }
289
- setContainerHeight() {
309
+ setContainerHeight(hostRect) {
290
310
  const viewHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
291
- const { top, bottom } = this.host.getBoundingClientRect();
292
- const spaceAboveTopOfSurface = Math.max(top, 0);
293
- const spaceBelowTopOfSurface = Math.max(viewHeight - bottom, 0);
311
+ const spaceAboveTopOfSurface = Math.max(hostRect.top, 0);
312
+ const spaceBelowTopOfSurface = Math.max(viewHeight - hostRect.bottom, 0);
294
313
  const extraCosmeticSpace = 16;
295
- const maxHeight = Math.max(spaceAboveTopOfSurface, spaceBelowTopOfSurface) -
296
- extraCosmeticSpace;
297
- this.container.style.maxHeight = `${maxHeight}px`;
314
+ const maxHeight = Math.max(0, Math.round(Math.max(spaceAboveTopOfSurface, spaceBelowTopOfSurface) -
315
+ extraCosmeticSpace));
316
+ this.setContainerStyle('maxHeight', `${maxHeight}px`);
298
317
  }
299
318
  // Returns the parent element where the content of the portal will be moved to.
300
319
  // It needs to have styling of the portal container.
301
320
  getParent() {
302
- let element = this.anchor || this.host;
321
+ let element = this.anchorElement;
303
322
  while (element) {
304
323
  const parent = element.closest('.limel-portal--parent');
305
324
  if (parent) {
@@ -136,8 +136,7 @@
136
136
  will-change: grid-template-rows;
137
137
  }
138
138
 
139
- .limel-select--focused + limel-helper-line,
140
- .limel-select--invalid limel-helper-line {
139
+ div.limel-select__field--open limel-helper-line {
141
140
  --limel-h-l-grid-template-rows-transition-speed: 0.46s;
142
141
  --limel-h-l-grid-template-rows: 1fr;
143
142
  }
@@ -274,12 +274,12 @@ export class Select {
274
274
  trigger.focus();
275
275
  }
276
276
  // During the first render(), the shadow DOM isn't populated yet, so
277
- // querySelector('.limel-select-trigger') returns null and we fall back
277
+ // querySelector('.limel-select__field') returns null and we fall back
278
278
  // to this.host. componentDidLoad() calls updatePortalAnchor() to
279
279
  // imperatively refresh the anchor once the shadow DOM is available.
280
280
  getAnchorElement() {
281
281
  var _a;
282
- return ((_a = this.host.shadowRoot.querySelector('.limel-select-trigger')) !== null && _a !== void 0 ? _a : this.host);
282
+ return ((_a = this.host.shadowRoot.querySelector('.limel-select__field')) !== null && _a !== void 0 ? _a : this.host);
283
283
  }
284
284
  updatePortalAnchor() {
285
285
  const portal = this.host.shadowRoot.querySelector('limel-portal');
@@ -25,9 +25,12 @@ export const SelectTemplate = (props) => {
25
25
  'limel-select--invalid': !isValid,
26
26
  'limel-select--with-helper-text': typeof props.helperText === 'string',
27
27
  };
28
+ const fieldClassList = {
29
+ 'limel-select__field': true,
30
+ 'limel-select__field--open': props.isOpen,
31
+ };
28
32
  return [
29
- h("limel-notched-outline", { class: classList, labelId: "s-label", label: props.label, required: props.required, invalid: !isValid, disabled: props.disabled, readonly: props.readonly, hasValue: hasValue, hasFloatingLabel: floatLabelAbove(props) }, h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid, hasEmptyText: hasEmptyText }))),
30
- h(HelperText, { text: props.helperText, isValid: !props.invalid }),
33
+ h("div", { class: fieldClassList }, h("limel-notched-outline", { class: classList, labelId: "s-label", label: props.label, required: props.required, invalid: !isValid, disabled: props.disabled, readonly: props.readonly, hasValue: hasValue, hasFloatingLabel: floatLabelAbove(props) }, h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid, hasEmptyText: hasEmptyText }))), h(HelperText, { text: props.helperText, isValid: isValid })),
31
34
  h(SelectDropdown, Object.assign({}, props)),
32
35
  ];
33
36
  };
@@ -309,13 +309,13 @@ export class ProsemirrorAdapter {
309
309
  if (this.actionBarItems.length === 0 || this.ui === 'no-toolbar') {
310
310
  return;
311
311
  }
312
- return (h("div", { class: "toolbar" }, h("limel-action-bar", { ref: (el) => (this.actionBarElement = el), accessibleLabel: "Toolbar", actions: this.actionBarItems, onItemSelected: this.handleActionBarItem })));
312
+ return (h("div", { class: "toolbar" }, h("limel-action-bar", { ref: (el) => (this.actionBarElement = el), accessibleLabel: translate.get('editor-menu.toolbar', this.language), actions: this.actionBarItems, onItemSelected: this.handleActionBarItem })));
313
313
  }
314
314
  renderLinkMenu() {
315
315
  if (!this.isLinkMenuOpen) {
316
316
  return;
317
317
  }
318
- return (h("limel-portal", { containerId: this.portalId, visible: this.isLinkMenuOpen, openDirection: "top", inheritParentWidth: true, anchor: this.actionBarElement }, h("limel-text-editor-link-menu", { link: this.link, isOpen: this.isLinkMenuOpen, onLinkChange: this.handleLinkChange, onCancel: this.handleCancelLinkMenu, onSave: this.handleSaveLinkMenu })));
318
+ return (h("limel-portal", { containerId: this.portalId, visible: this.isLinkMenuOpen, openDirection: "top", inheritParentWidth: true, anchor: this.actionBarElement }, h("limel-text-editor-link-menu", { language: this.language, link: this.link, isOpen: this.isLinkMenuOpen, onLinkChange: this.handleLinkChange, onCancel: this.handleCancelLinkMenu, onSave: this.handleSaveLinkMenu })));
319
319
  }
320
320
  validateInlineImages() {
321
321
  const config = this.inlineImages;
@@ -1,3 +1,4 @@
1
+ import { getPrimarySubtag } from "../util/language";
1
2
  import da from "../translations/da";
2
3
  import de from "../translations/de";
3
4
  import en from "../translations/en";
@@ -20,15 +21,11 @@ const allTranslations = {
20
21
  const REGEX = /\{\s*(\w+)\s*\}/g;
21
22
  export class Translations {
22
23
  get(key, language = 'en', params) {
23
- var _a, _b;
24
- // Fall back to English when the requested language has no translations.
25
- // The `language` props are typed, but a custom element takes whatever
26
- // string an attribute carries, so an unknown language must never make a
27
- // component throw.
28
- const languageTranslations = (_a = allTranslations[language]) !== null && _a !== void 0 ? _a : allTranslations.en;
24
+ var _a;
25
+ const languageTranslations = this.getTranslationsFor(language);
29
26
  // Fall back per key as well: a mapped language whose file is missing
30
27
  // this one key would otherwise render the key itself as UI text.
31
- const translation = (_b = languageTranslations[key]) !== null && _b !== void 0 ? _b : allTranslations.en[key];
28
+ const translation = (_a = languageTranslations[key]) !== null && _a !== void 0 ? _a : allTranslations.en[key];
32
29
  if (!translation) {
33
30
  return key;
34
31
  }
@@ -40,6 +37,12 @@ export class Translations {
40
37
  return String((_a = params === null || params === void 0 ? void 0 : params[mergeCodeKey]) !== null && _a !== void 0 ? _a : match);
41
38
  });
42
39
  }
40
+ getTranslationsFor(language) {
41
+ var _a, _b;
42
+ // Retry on the primary subtag, so that a full BCP 47 tag resolves.
43
+ // An unknown language must never make a component throw.
44
+ return ((_b = (_a = allTranslations[language]) !== null && _a !== void 0 ? _a : allTranslations[getPrimarySubtag(language)]) !== null && _b !== void 0 ? _b : allTranslations.en);
45
+ }
43
46
  }
44
47
  const translations = new Translations();
45
48
  export default (() => {
@@ -69,6 +69,7 @@ Du kan fortsætte med at blokere billeder (e-mailen kan se ufuldstændig ud) ell
69
69
  'editor-link-menu.link': 'Link',
70
70
  'editor-menu.code-block': 'Kodeblok',
71
71
  'editor-menu.code': 'Kode',
72
+ 'editor-menu.toolbar': 'Værktøjslinje',
72
73
  'editor-image-view.loading': 'Indlæser billede: { filename }...',
73
74
  'editor-image-view.failed': 'Noget gik galt med billede: { filename }',
74
75
  'editor-image-view.success': 'Billede: { filename } er klar',
@@ -69,6 +69,7 @@ Sie können Bilder weiterhin blockieren (die E-Mail kann unvollständig aussehen
69
69
  'editor-link-menu.link': 'Link',
70
70
  'editor-menu.code-block': 'Codeblock',
71
71
  'editor-menu.code': 'Code',
72
+ 'editor-menu.toolbar': 'Symbolleiste',
72
73
  'editor-image-view.loading': 'Lade Bild: { filename }...',
73
74
  'editor-image-view.failed': 'Beim Laden des Bildes ist etwas schief gelaufen: { filename }',
74
75
  'editor-image-view.success': 'Bild: { filename } ist bereit',
@@ -69,6 +69,7 @@ You can keep images blocked (the email may look incomplete), or load them if you
69
69
  'editor-link-menu.link': 'Link',
70
70
  'editor-menu.code-block': 'Code block',
71
71
  'editor-menu.code': 'Code',
72
+ 'editor-menu.toolbar': 'Toolbar',
72
73
  'editor-image-view.loading': 'Loading image: { filename }...',
73
74
  'editor-image-view.failed': 'Something went wrong with image: { filename }',
74
75
  'editor-image-view.success': 'Image: { filename } is ready',
@@ -69,6 +69,7 @@ Voit pitää kuvat estettyinä (sähköposti voi näyttää puutteelliselta) tai
69
69
  'editor-link-menu.link': 'Linkki',
70
70
  'editor-menu.code-block': 'Koodilohko',
71
71
  'editor-menu.code': 'Koodi',
72
+ 'editor-menu.toolbar': 'Työkalurivi',
72
73
  'editor-image-view.loading': 'Ladataan kuvaa: { filename }...',
73
74
  'editor-image-view.failed': 'Jokin meni pieleen kuvan kanssa: { filename }',
74
75
  'editor-image-view.success': 'Kuva: { filename } on valmis',
@@ -69,6 +69,7 @@ Vous pouvez laisser les images bloquées (l'e-mail peut sembler incomplet) ou le
69
69
  'editor-link-menu.link': 'Lien',
70
70
  'editor-menu.code-block': 'Bloc de code',
71
71
  'editor-menu.code': 'Code',
72
+ 'editor-menu.toolbar': "Barre d'outils",
72
73
  'editor-image-view.loading': "Chargement de l'image: { filename }...",
73
74
  'editor-image-view.failed': "Un problème est survenu avec l'image: { filename }",
74
75
  'editor-image-view.success': 'Image: { filename } est prête',
@@ -69,6 +69,7 @@ Je kunt afbeeldingen geblokkeerd houden (de e-mail kan er onvolledig uitzien) of
69
69
  'editor-link-menu.link': 'Link',
70
70
  'editor-menu.code-block': 'Codeblok',
71
71
  'editor-menu.code': 'Code',
72
+ 'editor-menu.toolbar': 'Werkbalk',
72
73
  'editor-image-view.loading': 'Afbeelding wordt geladen: { filename }...',
73
74
  'editor-image-view.failed': 'Er is iets misgegaan met de afbeelding: { filename }',
74
75
  'editor-image-view.success': 'Afbeelding: { filename } is klaar',
@@ -68,6 +68,7 @@ Du kan fortsette å blokkere bilder (e-posten kan se ufullstendig ut), eller las
68
68
  'editor-link-menu.link': 'Lenke',
69
69
  'editor-menu.code-block': 'Kodeblokk',
70
70
  'editor-menu.code': 'Kode',
71
+ 'editor-menu.toolbar': 'Verktøylinje',
71
72
  'editor-image-view.loading': 'Laster bilde: { filename }...',
72
73
  'editor-image-view.failed': 'Noe gikk galt med bildet: { filename }',
73
74
  'editor-image-view.success': 'Bilde: { filename } er klart',
@@ -69,6 +69,7 @@ Du kan fortsätta blockera bilder (e-posten kan se ofullständig ut) eller ladda
69
69
  'editor-link-menu.link': 'Länk',
70
70
  'editor-menu.code-block': 'Kodblock',
71
71
  'editor-menu.code': 'Kod',
72
+ 'editor-menu.toolbar': 'Verktygsfält',
72
73
  'editor-image-view.loading': 'Laddar bilden: { filename }...',
73
74
  'editor-image-view.failed': 'Något gick fel med bilden: { filename }',
74
75
  'editor-image-view.success': 'Bilden: { filename } är redo',
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Reduce a language to the primary subtag that our language maps are keyed by.
3
+ *
4
+ * A `language` prop is typed, but a custom element takes whatever string an
5
+ * attribute carries — commonly a full BCP 47 tag such as `nb-NO`, since a host
6
+ * application often derives the language from `document.documentElement.lang`.
7
+ * Anything that is not a string must resolve rather than throw, so that an
8
+ * unexpected value can never break a component's render.
9
+ *
10
+ * Examples:
11
+ * - "nb" => "nb"
12
+ * - "nb-NO" => "nb"
13
+ * - "SV-SE" => "sv"
14
+ * - undefined => ""
15
+ *
16
+ * @param language - the language to reduce
17
+ * @returns the lower-cased primary subtag, or an empty string
18
+ */
19
+ export function getPrimarySubtag(language) {
20
+ if (typeof language !== 'string') {
21
+ return '';
22
+ }
23
+ return language.toLowerCase().split('-')[0];
24
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Reduce a language to the primary subtag that our language maps are keyed by.
3
+ *
4
+ * A `language` prop is typed, but a custom element takes whatever string an
5
+ * attribute carries — commonly a full BCP 47 tag such as `nb-NO`, since a host
6
+ * application often derives the language from `document.documentElement.lang`.
7
+ * Anything that is not a string must resolve rather than throw, so that an
8
+ * unexpected value can never break a component's render.
9
+ *
10
+ * Examples:
11
+ * - "nb" => "nb"
12
+ * - "nb-NO" => "nb"
13
+ * - "SV-SE" => "sv"
14
+ * - undefined => ""
15
+ *
16
+ * @param language - the language to reduce
17
+ * @returns the lower-cased primary subtag, or an empty string
18
+ */
19
+ function getPrimarySubtag(language) {
20
+ if (typeof language !== 'string') {
21
+ return '';
22
+ }
23
+ return language.toLowerCase().split('-')[0];
24
+ }
25
+
26
+ export { getPrimarySubtag as g };
@@ -1,9 +1,10 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BGxJfR2f.js';
2
- import { t as translate } from './translations-DgqE77nk.js';
2
+ import { t as translate } from './translations-CPFNSfWw.js';
3
3
  import { i as isItem } from './is-item-CrvUOVvg.js';
4
4
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
5
5
  import { m as makeEnterClickable, r as removeEnterClickable } from './make-enter-clickable-BgTwPGeH.js';
6
6
  import { b as getIconColor, d as getIconTitle, g as getIconName } from './get-icon-props-CgNJbSP4.js';
7
+ import './language-C3hECvXE.js';
7
8
 
8
9
  const actionBarCss = () => `:host(limel-action-bar){--action-bar-item-height:2rem;--limel-action-bar-item-text-color:var( --action-bar-item-text-color, rgb(var(--contrast-1100)) );--limel-action-bar-background-color:var( --action-bar-background-color, rgb(var(--contrast-100)) );box-sizing:border-box;display:inline-flex;align-items:center;padding:0.125rem 0.25rem;max-width:100%;border-radius:var(--action-bar-border-radius);background-color:var(--limel-action-bar-background-color)}:host(limel-action-bar),.items{gap:0.25rem}@media (pointer: coarse){:host(limel-action-bar),.items{gap:0.5rem}}.items{display:inline-flex;max-width:100%;min-width:0}:host(limel-action-bar.is-full-width){width:100%}:host(limel-action-bar.is-floating){--action-bar-border-radius:100vw;padding-right:0.125rem;padding-left:0.125rem;max-width:calc(100% - 2rem);box-shadow:var(--shadow-brighten-edges-inside), var(--shadow-depth-16), var(--shadow-depth-8)}`;
9
10
 
@@ -1,5 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-BGxJfR2f.js';
2
- import { t as translate } from './translations-DgqE77nk.js';
2
+ import { t as translate } from './translations-CPFNSfWw.js';
3
+ import './language-C3hECvXE.js';
3
4
 
4
5
  const aiAvatarCss = () => `@charset "UTF-8";:host(limel-ai-avatar){display:inline-flex;justify-content:center;align-items:center;position:relative;aspect-ratio:1;max-width:20rem;max-height:20rem;min-width:1.75rem;min-height:1.75rem;content-visibility:auto;contain-intrinsic-size:auto 5rem}*{box-sizing:border-box}svg{display:block;width:100%;height:100%;overflow:visible}svg.variant-minimal{--limel-ai-avatar-stars-eyes-mouth-color:rgb(var(--contrast-100))}svg.variant-outlined{--limel-ai-avatar-stars-eyes-mouth-color:currentColor}svg.variant-detailed .dark-ball,svg.variant-detailed .light-ball{opacity:0.8}.variant-detailed .variant-minimal-body,.variant-detailed .variant-solid-body{display:none}.variant-minimal .ring-group{display:none}.variant-minimal .variant-detailed-body,.variant-minimal .variant-solid-body{display:none}.variant-solid .ring-group,.variant-outlined .ring-group{display:none}.variant-solid .variant-detailed-body,.variant-solid .variant-minimal-body,.variant-outlined .variant-detailed-body,.variant-outlined .variant-minimal-body{display:none}.variant-solid .outer-ring,.variant-outlined .outer-ring{fill:none;stroke:currentColor;stroke-width:31}.variant-solid .typing-ellipsis .circle,.variant-outlined .typing-ellipsis .circle{fill:currentColor;--limel-ai-avatar-typing-dot-flash-color:currentColor}.variant-solid .dark-ball{fill:currentColor}.variant-outlined .dark-ball{fill:none;stroke:currentColor;stroke-width:15}.variant-minimal .glow-minimal{opacity:0;transform:scale(0.9)}.variant-minimal .light-ball{opacity:0}.eye{transform-origin:298px 360px;transition:transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);will-change:transform, rotate}.mouth{transform-origin:379px 457px;opacity:0;transform:scale(0.2);transition:transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 300ms ease;will-change:transform, opacity}.eye-left{transform:translate(48px, 34px) scale(1.48)}.eye-right{transform:translate(152px, -74px) scale(0.66)}.glow-minimal,.light-ball{transition:transform 1s ease, opacity 300ms ease;will-change:transform, opacity;transform-origin:370px 370px;transform-box:view-box}.outer-ring,.ring,.glow,.glow-minimal{transform-origin:370px 370px;transform-box:view-box}.outer-ring{transform:scale(0.9);opacity:0;transition:opacity 600ms ease, transform 700ms cubic-bezier(0.55, 0.3, 0.22, 1.54)}.ring,.glow{scale:0.95;opacity:0;transition:opacity 600ms ease}svg:hover .outer-ring{opacity:0.9;transform:scale(1)}svg:hover .ring,svg:hover .glow{opacity:0.5}.mode-active .eye-left,.mode-thinking .eye-left,.mode-typing .eye-left,.mode-waiting .eye-left{transform:translate(0) scale(0.96)}.mode-active .eye-right,.mode-thinking .eye-right,.mode-typing .eye-right,.mode-waiting .eye-right{transform:translate(156px, -20px) scale(0.8)}.mode-active .mouth,.mode-thinking .mouth,.mode-typing .mouth,.mode-waiting .mouth{opacity:1;transform:scale(1)}.mode-active.variant-minimal .light-ball,.mode-thinking.variant-minimal .light-ball,.mode-typing.variant-minimal .light-ball,.mode-waiting.variant-minimal .light-ball{opacity:0.16}.mode-active .eye,.mode-thinking .eye,.mode-waiting .eye{animation:ai-avatar-blink 4.5s ease-in-out infinite}.mode-thinking .eye-left{animation:ai-avatar-blink 4.5s ease-in-out infinite, ai-avatar-look-around-left-eye 9s ease-in-out infinite}.mode-thinking .eye-right{animation:ai-avatar-blink 4.5s ease-in-out infinite, ai-avatar-look-around-right-eye 9s ease-in-out infinite}.mode-thinking .mouth{animation:ai-avatar-mouth-look-around 9s ease-in-out infinite}.mode-thinking .light-ball{animation:ai-avatar-light-ball-swirl 3s linear infinite}.mode-thinking .glow-minimal{opacity:0.3;animation:ai-avatar-breathing 5s ease-in-out infinite}.mode-waiting .glow,.mode-waiting .glow-minimal{animation:ai-avatar-breathing 5s ease-in-out infinite}.mode-waiting .glow-minimal{opacity:0.3}.mode-waiting .outer-ring{animation:ai-avatar-mode-active-ring 2s ease-out infinite}.mode-waiting.variant-minimal .outer-ring,.mode-waiting.variant-solid .outer-ring,.mode-waiting.variant-outlined .outer-ring{scale:1.1}.mode-active .glow-minimal{opacity:0.3;transform:scale(1)}.mode-typing .eye-left{animation:ai-avatar-typing-left-eye 2.5s ease-in-out infinite}.mode-typing .eye-right{animation:ai-avatar-typing-right-eye 2.5s ease-in-out infinite}.mode-typing .mouth{animation:ai-avatar-typing-mouth 2.5s ease-in-out infinite}.mode-typing .typing-ellipsis{opacity:1;transform:scale(1)}.mode-typing .typing-ellipsis .circle{animation:ai-avatar-typing-dot 1.2s infinite}.mode-typing .typing-ellipsis .circle:nth-of-type(2){animation-delay:0.2s}.mode-typing .typing-ellipsis .circle:nth-of-type(3){animation-delay:0.4s}.mode-typing.variant-minimal .light-ball{animation:ai-avatar-breathing 5s ease-in-out infinite}.mode-working .eye-left{animation:ai-avatar-working-left-star 12s steps(50, end) infinite}.mode-working .eye-right{animation:ai-avatar-working-right-star 4s steps(30, end) infinite reverse}.mode-working .light-ball{animation:ai-avatar-light-ball-swirl 6s linear infinite}.mode-working .outer-ring{opacity:0.8;animation:ai-avatar-breathing 5s ease-in-out infinite}.mode-working.variant-minimal .outer-ring,.mode-working.variant-solid .outer-ring,.mode-working.variant-outlined .outer-ring{scale:1.1}.mode-working.variant-minimal .light-ball{opacity:0.16}.typing-ellipsis{opacity:0;transform-origin:370px 620px;transform-box:view-box;scale:2.2;transition:opacity 300ms ease, transform 300ms ease}.typing-ellipsis .circle{fill:var(--ai-avatar-primary-color, rgb(var(--lime-brand-color-ocean-teal, 111, 205, 182)))}@keyframes ai-avatar-typing-dot{0%{transform:translateY(0)}6.25%{transform:translateY(-3px)}12.5%{transform:translateY(0);fill:var(--limel-ai-avatar-typing-dot-flash-color, var(--ai-avatar-accent-color, rgb(var(--lime-brand-color-aqua, 166, 239, 255))))}18.75%{transform:translateY(3px)}25%{transform:translateY(0)}}@keyframes ai-avatar-blink{0%,93%,99%,100%{rotate:x 0deg}96%{rotate:x 85deg}}@keyframes ai-avatar-light-ball-swirl{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes ai-avatar-look-around-left-eye{0%,15%,95%,100%{transform:translate(0) scale(0.96)}25%,40%{transform:translate(65px, -40px) scale(1.004) rotate(-13deg)}55%,70%{transform:translate(-67px, -91px) scale(0.72) rotate(29deg)}}@keyframes ai-avatar-look-around-right-eye{0%,15%,95%,100%{transform:translate(156px, -20px) scale(0.8)}25%,40%{transform:translate(203px, -92px) scale(0.76) rotate(-24deg)}55%,70%{transform:translate(80px, -45px) scale(1) rotate(12deg)}}@keyframes ai-avatar-mouth-look-around{0%,15%,95%,100%{transform:scale(1)}25%,40%{transform:translate(75px, -40px) scale(1.004) rotate(-9deg)}55%,70%{transform:translate(-99px, -45px) scale(1) rotate(9deg)}}@keyframes ai-avatar-typing-left-eye{0%,100%{transform:translate(0, 80px) scale(0.94)}25%{transform:translate(12px, 80px) scale(0.94) rotate(-4deg)}75%{transform:translate(-12px, 80px) scale(0.94) rotate(4deg)}}@keyframes ai-avatar-typing-right-eye{0%,100%{transform:translate(156px, 60px) scale(0.78)}25%{transform:translate(168px, 60px) scale(0.78) rotate(-5deg)}75%{transform:translate(144px, 60px) scale(0.78) rotate(5deg)}}@keyframes ai-avatar-typing-mouth{0%,100%{transform:translate(0, 70px) scale(1)}25%{transform:translate(6px, 70px) scale(1)}75%{transform:translate(-6px, 70px) scale(1)}}@keyframes ai-avatar-working-left-star{0%{transform:translate(48px, 34px) scale(1.48) rotate(0deg)}100%{transform:translate(48px, 34px) scale(1.48) rotate(360deg)}}@keyframes ai-avatar-working-right-star{0%{transform:translate(152px, -74px) scale(0.66) rotate(0deg)}100%{transform:translate(152px, -74px) scale(0.66) rotate(360deg)}}@keyframes ai-avatar-mode-active-ring{0%{transform:scale(0.9);opacity:0}30%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}@keyframes ai-avatar-breathing{0%,60%,100%{transform:scale(0.9)}25%{transform:scale(1)}}`;
5
6
 
@@ -1,5 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-BGxJfR2f.js';
2
- import { t as translate } from './translations-DgqE77nk.js';
2
+ import { t as translate } from './translations-CPFNSfWw.js';
3
+ import './language-C3hECvXE.js';
3
4
 
4
5
  const calloutIcons = {
5
6
  note: 'info',
@@ -1,6 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-BGxJfR2f.js';
2
- import { t as translate } from './translations-DgqE77nk.js';
2
+ import { t as translate } from './translations-CPFNSfWw.js';
3
3
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
4
+ import './language-C3hECvXE.js';
4
5
 
5
6
  const chartCss = () => `@charset "UTF-8";:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart,:host(limel-chart[type=line]) .chart,:host(limel-chart[type=area]) .chart{display:flex;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item,:host(limel-chart[type=line]) .item,:host(limel-chart[type=area]) .item{position:relative;mix-blend-mode:hard-light}:host(limel-chart[type=bar][orientation=landscape]),:host(limel-chart[type=dot][orientation=landscape]),:host(limel-chart[type=line][orientation=landscape]),:host(limel-chart[type=area][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 0.5rem 2rem}:host(limel-chart[type=bar][orientation=landscape]) .chart,:host(limel-chart[type=dot][orientation=landscape]) .chart,:host(limel-chart[type=line][orientation=landscape]) .chart,:host(limel-chart[type=area][orientation=landscape]) .chart{flex-direction:row;align-items:flex-end;overflow:auto hidden;padding:0 0.125rem}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item,:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{min-width:var(--limel-chart-min-item-size);width:inherit}:host(limel-chart[type=bar][orientation=portrait]),:host(limel-chart[type=dot][orientation=portrait]),:host(limel-chart[type=line][orientation=portrait]),:host(limel-chart[type=area][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 1rem 0.5rem}:host(limel-chart[type=bar][orientation=portrait]) .chart,:host(limel-chart[type=dot][orientation=portrait]) .chart,:host(limel-chart[type=line][orientation=portrait]) .chart,:host(limel-chart[type=area][orientation=portrait]) .chart{flex-direction:column;overflow:hidden auto;padding:0.125rem 0}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item,:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{min-height:var(--limel-chart-min-item-size);height:inherit}:host(limel-chart[display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 1.25rem}:host(limel-chart[display-axis-labels][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 1.25rem 3rem}:host(limel-chart[display-axis-labels][type=scatter]) table thead,:host(limel-chart[display-axis-labels][type=scatter]) table th,:host(limel-chart[display-axis-labels][type=line]) table thead,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table thead,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table thead,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table thead,:host(limel-chart[display-axis-labels][type=bar]) table th{all:unset}:host(limel-chart[display-axis-labels][type=scatter]) table th,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table th{position:absolute;font-size:var(--limel-theme-default-small-font-size);max-width:100%;max-height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-1.25rem;writing-mode:sideways-lr}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-1.25rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[display-item-text][type=scatter]) td.text,:host(limel-chart[display-item-text][type=line]) td.text,:host(limel-chart[display-item-text][type=area]) td.text,:host(limel-chart[display-item-text][type=dot]) td.text,:host(limel-chart[display-item-text][type=bar]) td.text{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);mix-blend-mode:difference}:host(limel-chart[display-item-value][type=scatter]) td.value,:host(limel-chart[display-item-value][type=line]) td.value,:host(limel-chart[display-item-value][type=area]) td.value,:host(limel-chart[display-item-value][type=dot]) td.value,:host(limel-chart[display-item-value][type=bar]) td.value{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);border-radius:9rem;padding:0 0.25rem;background-color:rgb(var(--contrast-100), 0.7);box-shadow:var(--shadow-brighten-edges-outside)}:host(limel-chart[display-item-value][type=scatter]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=bar]) .item.has-value-zero td.value{opacity:0}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-value-zero td.text{transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.value{transform:rotateY(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) td.value{top:0;transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) .item.has-negative-value-only td.value{transform:rotateX(180deg) translateY(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) td.value{right:0;transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-value-zero td.text{transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.value{top:1rem}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.text{top:0}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-value-zero td.text{transform:translateY(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.value{right:-0.25rem;transform:translateX(100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.text{right:0.5rem}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-100%)}:host(limel-chart[display-item-text][type=scatter]) td.text{bottom:calc(100% + 0.25rem);left:50%;transform:translateX(-50%)}:host(limel-chart[display-item-value][type=scatter]) td.value{top:calc(100% + 0.25rem);left:50%;transform:translateX(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{left:0.5rem;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.text{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.value{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text{transform:translateX(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.text{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.value{transform:translateX(-100%)}:host(limel-chart[type=pie]) table,:host(limel-chart[type=doughnut]) table,:host(limel-chart[type=ring]) table{min-height:2rem;min-width:2rem}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .chart,:host(limel-chart[type=ring]) .item{aspect-ratio:1;display:flex;margin:auto}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=ring]) .chart{justify-content:center;align-items:center}:host(limel-chart[type=pie]) .chart:before,:host(limel-chart[type=doughnut]) .chart:before,:host(limel-chart[type=ring]) .chart:before{aspect-ratio:1;content:"";position:absolute;z-index:0;inset:0;margin:auto;border-radius:50%;max-width:100%;max-height:100%;background-color:var(--chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .item{max-width:100%;max-height:100%;border-radius:50%;position:absolute;inset:0}:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart{gap:0.5rem}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item{display:flex;align-items:center;justify-content:center;border-radius:var(--chart-item-border-radius, 0.125rem)}:host(limel-chart[type=bar]) .item{background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item:before,:host(limel-chart[type=dot]) .item:after{content:"";position:absolute;margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%}:host(limel-chart[type=dot]) .item::after{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item.has-start-value:before{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item{height:calc(var(--limel-chart-item-size) * 1%);bottom:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=landscape]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=landscape]) .item.has-negative-value-only{height:calc(var(--limel-chart-item-size) * -1%);transform-origin:bottom;transform:rotateX(180deg)}:host(limel-chart[type=dot][orientation=landscape]) .item.has-start-value,:host(limel-chart[type=dot][orientation=landscape]) .item:hover,:host(limel-chart[type=dot][orientation=landscape]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=dot][orientation=landscape]) .item:before{inset:auto 0 0 0;transform:translateY(50%)}:host(limel-chart[type=dot][orientation=landscape]) .item::after{inset:0 0 auto 0;transform:translateY(-50%)}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item{width:calc(var(--limel-chart-item-size) * 1%);left:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=portrait]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=portrait]) .item.has-negative-value-only{width:calc(var(--limel-chart-item-size) * -1%);transform-origin:left;transform:rotateY(180deg)}:host(limel-chart[type=dot][orientation=portrait]) .item.has-start-value,:host(limel-chart[type=dot][orientation=portrait]) .item:hover,:host(limel-chart[type=dot][orientation=portrait]) .item:focus-visible{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/100% 1px no-repeat}:host(limel-chart[type=dot][orientation=portrait]) .item:before{inset:0 auto 0 0;transform:translateX(-50%)}:host(limel-chart[type=dot][orientation=portrait]) .item:after{inset:0 0 0 auto;transform:translateX(50%)}:host(limel-chart[type=area]) .item,:host(limel-chart[type=line]) .item{position:relative}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=line]) .item:after{margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%;border:1px solid rgb(var(--contrast-100))}:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:before{inset:0}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:after,:host(limel-chart[type=line]) .item:before{transition:border-color 0.2s ease, opacity 0.4s ease;content:"";position:absolute;background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after,:host(limel-chart[type=line]) .item:hover:after,:host(limel-chart[type=line]) .item:focus-visible:after{border-color:transparent}:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{height:100%}:host(limel-chart[type=line][orientation=landscape]) .item:after,:host(limel-chart[type=area][orientation=landscape]) .item:after{transform:translateX(-50%) translateY(50%);left:0;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=line][orientation=landscape]) .item:last-of-type:before,:host(limel-chart[type=area][orientation=landscape]) .item:last-of-type:before{display:none}:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{width:100%}:host(limel-chart[type=line][orientation=portrait]) .item:after,:host(limel-chart[type=area][orientation=portrait]) .item:after{transform:translateX(-50%) translateY(-50%);left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=area]) .item:after{opacity:0}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after{opacity:1}:host(limel-chart[type=area]) .item:hover:before,:host(limel-chart[type=area]) .item:focus-visible:before{opacity:0.7}:host(limel-chart[type=area][orientation=landscape]){}:host(limel-chart[type=area][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - var(--limel-chart-item-offset)) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%), 100% calc((100 - var(--limel-chart-next-item-offset)) * 1%))}:host(limel-chart[type=area][orientation=portrait]){}:host(limel-chart[type=area][orientation=portrait]) .item:before{clip-path:polygon(calc(var(--limel-chart-item-offset) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%, calc(var(--limel-chart-next-item-offset) * 1%) 100%)}:host(limel-chart[type=line]){--limel-chart-line-thickness:0.125rem}:host(limel-chart[type=line]) .item:hover:before{opacity:0.4}:host(limel-chart[type=line][orientation=landscape]){}:host(limel-chart[type=line][orientation=landscape]) .item:hover{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) left/1px 100% no-repeat}:host(limel-chart[type=line][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%))}:host(limel-chart[type=line][orientation=portrait]){}:host(limel-chart[type=line][orientation=portrait]) .item:hover{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) top/100% 1px no-repeat}:host(limel-chart[type=line][orientation=portrait]) .item:before{clip-path:polygon(calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1% + var(--limel-chart-line-thickness)) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1% + var(--limel-chart-line-thickness)) 100%, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%)}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{background:conic-gradient(transparent 0 calc(var(--limel-chart-item-offset) * 1%), var(--limel-chart-item-color, var(--limel-chart-default-item-color)) calc(var(--limel-chart-item-offset) * 1%) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), transparent calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%))}:host(limel-chart[type=pie]) .item:focus,:host(limel-chart[type=pie]) .item:focus-visible,:host(limel-chart[type=doughnut]) .item:focus,:host(limel-chart[type=doughnut]) .item:focus-visible{outline:none}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{pointer-events:none}:host(limel-chart[type=doughnut]) .chart:after{aspect-ratio:1;content:"";position:absolute;inset:0;margin:auto;max-width:60%;max-height:60%;border-radius:50%;background-color:rgb(var(--contrast-100))}:host(limel-chart[type=ring]) .chart:after{content:"";position:absolute;inset:0;aspect-ratio:1;border-radius:50%;max-height:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));max-width:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));background-color:var(--limel-chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=ring]) .chart:has(.item:hover) .item,:host(limel-chart[type=ring]) .chart:has(.item:focus-visible) .item{opacity:1;filter:grayscale(1)}:host(limel-chart[type=ring]) .chart:after,:host(limel-chart[type=ring]) .item{margin:auto;border:1px solid var(--limel-chart-background-color, rgb(var(--contrast-400)))}:host(limel-chart[type=ring]) .item{background:conic-gradient(var(--limel-chart-item-color, var(--limel-chart-default-item-color)) 0 calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), var(--chart-background-color, rgb(var(--contrast-200))) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%));max-width:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1));max-height:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1))}:host(limel-chart[type=ring]) .item:focus-visible,:host(limel-chart[type=ring]) .item:hover{filter:grayscale(0) !important}:host(limel-chart[type=stacked-bar]) .chart{display:flex;border-radius:0.25rem;overflow:hidden;background-color:var(--chart-background-color, rgb(var(--contrast-800), 0.2))}:host(limel-chart[type=stacked-bar]) .item{display:flex;border-radius:var(--chart-item-border-radius, 0);background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=stacked-bar]) .item:last-of-type:not(:focus-visible){box-shadow:none !important}:host(limel-chart[type=stacked-bar][orientation=landscape]) .chart{flex-direction:row}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item{min-height:0.5rem;width:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item:not(:focus-visible){box-shadow:-1px 0 0 0 var(--chart-item-divider-color, rgb(var(--color-white), 0.6)) inset}:host(limel-chart[type=stacked-bar][orientation=portrait]) .chart{flex-direction:column-reverse}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item{min-width:0.5rem;height:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item:not(:focus-visible){box-shadow:0 -1px 0 0 rgb(var(--color-white), 0.6) inset}:host(limel-chart[type=nps]){--limel-chart-nps-gauge-angel:220deg}:host(limel-chart[type=nps]) table{min-height:4rem;min-width:4rem}:host(limel-chart[type=nps]) .chart{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;margin:auto;width:unset;height:unset;max-width:100%;max-height:100%;rotate:calc(var(--limel-chart-nps-gauge-angel) / 2 * -1);transform:translate(-15%, -5%)}:host(limel-chart[type=nps]) .chart:before,:host(limel-chart[type=nps]) .chart:after{content:"";aspect-ratio:1;position:absolute;border-radius:50%;z-index:-1;min-height:0;min-width:0}:host(limel-chart[type=nps]) .chart:before{height:100%;max-height:100%;background:conic-gradient(rgb(var(--color-coral-default)) 0deg calc(var(--limel-chart-nps-gauge-angel) / 2), rgb(var(--color-amber-light)) calc(var(--limel-chart-nps-gauge-angel) / 2) calc(var(--limel-chart-nps-gauge-angel) * 0.65), rgb(var(--color-lime-light)) calc(var(--limel-chart-nps-gauge-angel) * 0.65) calc(var(--limel-chart-nps-gauge-angel) * 0.85), rgb(var(--color-lime-default)) calc(var(--limel-chart-nps-gauge-angel) * 0.85) var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .chart:after{height:calc(100% - min(3rem, 20%) * 2);max-height:calc(100% - min(3rem, 20%) * 2);background:conic-gradient(var(--chart-background-color, rgb(var(--contrast-100))) 0deg var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .item{display:flex;align-items:flex-start;justify-content:center;border-radius:0.5rem;position:absolute;height:calc(50% - min(3rem, 20%) + 0.5rem);width:0.5rem;transform:translateY(-50%) rotate(calc((var(--limel-chart-item-value) + 100) / 200 * var(--limel-chart-nps-gauge-angel)));transform-origin:bottom}:host(limel-chart[type=nps]) .item:hover,:host(limel-chart[type=nps]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=nps]) .item:before,:host(limel-chart[type=nps]) .item:after{content:"";position:absolute}:host(limel-chart[type=nps]) .item:before{transform:translateY(-60%);width:0.4rem;border-radius:1rem;border-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));border-style:solid;border-bottom-width:1.75rem;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent}:host(limel-chart[type=nps]) .item:after{border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));aspect-ratio:1;height:clamp(0.75rem, 10%, 1.25rem);border:0.125rem solid rgb(var(--contrast-100), 0.8);box-shadow:var(--shadow-depth-8)}:host(limel-chart[type=scatter]){--limel-chart-padding:0.5rem 0.5rem 1rem 2rem}:host(limel-chart[type=scatter]) .chart{display:block;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=scatter]) .item{position:absolute;transform-origin:center;width:var(--chart-scatter-item-size, 0.5rem);height:var(--chart-scatter-item-size, 0.5rem);border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));mix-blend-mode:hard-light}:host(limel-chart[type=scatter][orientation=landscape]) .item{left:calc(var(--limel-chart-item-offset-x) * 1%);bottom:calc(var(--limel-chart-item-offset-y) * 1%);transform:translate(-50%, 50%)}:host(limel-chart[type=scatter][orientation=portrait]) .item{left:calc(var(--limel-chart-item-offset-y) * 1%);top:calc(var(--limel-chart-item-offset-x) * 1%);transform:translate(-50%, -50%)}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]),:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 3rem}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}.axises{position:absolute;display:flex;justify-content:space-between;min-height:100%;min-width:100%;height:100%;width:100%}.axis-line{transition:opacity 0.4s ease;position:relative;opacity:0.2;font-size:0.625rem;border-color:var(--limel-chart-axis-line-color)}.axis-line:hover{opacity:0.6;transition-duration:0.2s}.axis-line.zero-line{opacity:0.6;z-index:1}.axis-line limel-badge{--badge-background-color:transparent;--badge-text-color:currentColor;position:absolute;text-align:right;min-width:2rem}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axises{flex-direction:column-reverse}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line{border-bottom:1px solid;transform:translateY(50%)}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axises{flex-direction:row}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line{border-left:1px solid;transform:translateX(-50%)}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line limel-badge{bottom:-1rem;right:-1rem}.axises.horizontal-lines .axis-line{border-bottom:1px solid;transform:translateY(50%)}.axises.horizontal-lines .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=landscape]) .axises.horizontal-lines{flex-direction:column-reverse}:host(limel-chart[orientation=portrait]) .axises.horizontal-lines{flex-direction:column}.axises.vertical-lines{flex-direction:row}.axises.vertical-lines .axis-line{border-left:1px solid;transform:translateX(-50%)}.axises.vertical-lines .axis-line limel-badge{bottom:-1rem;right:-1rem}:host(limel-chart){--limel-chart-min-item-size:0.5rem;--limel-chart-default-item-color:var( --chart-item-color, rgb(var(--contrast-1100), 0.8) );--chart-axis-line-color:var( --limel-chart-axis-line-color, rgb(var(--contrast-900)) );box-sizing:border-box;isolation:isolate;display:flex;width:100%;height:100%;min-width:0;min-height:0;padding:var(--limel-chart-padding)}table{all:unset;border-collapse:collapse;border-spacing:0;empty-cells:show;position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0}table colgroup,table thead,table tbody,table tr,table th,table td{all:unset}table caption,table colgroup,table thead,table tfoot,table th,table td{position:absolute;width:0;height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap}*,*:before,*:after{box-sizing:border-box}.chart{position:relative;flex-grow:1;width:100%;height:100%;min-height:0;min-width:0}.chart:has(.item:hover) .item,.chart:has(.item:focus-visible) .item{opacity:0.4}.item:focus{outline:none}.item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.item{transition:background-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, opacity 0.4s ease;cursor:help}.item:focus-visible,.item:hover{opacity:1 !important}.item[role=button]{cursor:pointer}limel-spinner{margin:auto}`;
6
7
 
@@ -1,10 +1,11 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BGxJfR2f.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-DgqE77nk.js';
3
+ import { t as translate } from './translations-CPFNSfWw.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';
7
7
  import { M as MDCTextField } from './component-wGVqvUmL.js';
8
+ import './language-C3hECvXE.js';
8
9
  import './_baseIsEqual-B6bIeexY.js';
9
10
  import './eq-CZ30nDJE.js';
10
11
  import './_getTag-CMJL-6hk.js';
@@ -514,7 +515,7 @@ const ChipSet = class {
514
515
  getChipProps(chip, chipType) {
515
516
  const removable = this.type === 'input' && chip.removable !== false && !this.readonly;
516
517
  const readonly = this.readonly && this.type !== 'input';
517
- return Object.assign({ role: 'row', identifier: chip.id, text: chip.text, icon: chip.icon, image: chip.image, badge: chip.badge, selected: chip.selected, disabled: this.disabled, loading: chip.loading, progress: chip.progress, invalid: chip.invalid, readonly: readonly, type: chipType, removable: removable, menuItems: chip.menuItems, onClick: this.catchInputChipClicks(chip), onRemove: this.handleRemoveChip }, (chip.href && {
518
+ return Object.assign({ role: 'row', identifier: chip.id, text: chip.text, icon: chip.icon, image: chip.image, badge: chip.badge, selected: chip.selected, disabled: this.disabled, loading: chip.loading, progress: chip.progress, invalid: chip.invalid, readonly: readonly, type: chipType, removable: removable, menuItems: chip.menuItems, language: this.language, onClick: this.catchInputChipClicks(chip), onRemove: this.handleRemoveChip }, (chip.href && {
518
519
  link: {
519
520
  href: getHref(chip.href),
520
521
  target: getTarget(chip.href),
@@ -3,9 +3,10 @@ import { I as ImageTemplate } from './image.template-BXDvrqGw.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-DgqE77nk.js';
6
+ import { t as translate } from './translations-CPFNSfWw.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
+ import './language-C3hECvXE.js';
9
10
  import './_getTag-CMJL-6hk.js';
10
11
  import './isObject-BJQylLSL.js';
11
12
  import './isObjectLike-oiMYqRQ0.js';
@@ -207,7 +208,7 @@ const Chip = class {
207
208
  if (!this.loading) {
208
209
  return;
209
210
  }
210
- return h("limel-linear-progress", { indeterminate: true });
211
+ return (h("limel-linear-progress", { indeterminate: true, language: this.language }));
211
212
  }
212
213
  renderProgressBar() {
213
214
  if (!this.progress) {
@@ -1,5 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host, a as getElement } from './index-BGxJfR2f.js';
2
- import { t as translate } from './translations-DgqE77nk.js';
2
+ import { t as translate } from './translations-CPFNSfWw.js';
3
+ import './language-C3hECvXE.js';
3
4
 
4
5
  class Diff {
5
6
  diff(oldStr, newStr,
@@ -1428,7 +1429,7 @@ const CodeDiff = class {
1428
1429
  current: this.currentMatchIndex + 1,
1429
1430
  total: this.totalSearchMatches,
1430
1431
  });
1431
- return (h("div", { class: "search-bar" }, h("limel-input-field", { class: "search-bar__input", type: "search", placeholder: this.getTranslation('code-diff.search') + '…', value: this.searchTerm, onChange: (e) => this.onSearchInput(e), onKeyDown: (e) => this.onSearchKeyDown(e), ref: (el) => (this.searchInputEl = el) }), h("span", { class: "search-bar__count" }, matchInfo), h("limel-action-bar", { actions: this.getSearchActions(), onItemSelected: (e) => this.onSearchAction(e) })));
1432
+ return (h("div", { class: "search-bar" }, h("limel-input-field", { class: "search-bar__input", type: "search", placeholder: this.getTranslation('code-diff.search') + '…', value: this.searchTerm, onChange: (e) => this.onSearchInput(e), onKeyDown: (e) => this.onSearchKeyDown(e), ref: (el) => (this.searchInputEl = el) }), h("span", { class: "search-bar__count" }, matchInfo), h("limel-action-bar", { actions: this.getSearchActions(), language: this.translationLanguage, onItemSelected: (e) => this.onSearchAction(e) })));
1432
1433
  }
1433
1434
  toggleSearch() {
1434
1435
  this.searchVisible = !this.searchVisible;
@@ -1,7 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BGxJfR2f.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-DgqE77nk.js';
4
+ import { t as translate } from './translations-CPFNSfWw.js';
5
+ import './language-C3hECvXE.js';
5
6
 
6
7
  var codemirror$1 = {exports: {}};
7
8
 
@@ -3,7 +3,8 @@ 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-DgqE77nk.js';
6
+ import { t as translate } from './translations-CPFNSfWw.js';
7
+ import './language-C3hECvXE.js';
7
8
 
8
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}`;
9
10