@limetech/lime-elements 39.40.0 → 39.42.0

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 (130) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/{image-resize-FAwzj92q.js → image-resize-BWRGvgkM.js} +42 -2
  3. package/dist/cjs/index.cjs.js +3 -2
  4. package/dist/cjs/lime-elements.cjs.js +1 -1
  5. package/dist/cjs/limel-action-bar_3.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
  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 +84 -18
  18. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-list-item.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  21. package/dist/cjs/limel-profile-picture.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +440 -212
  23. package/dist/cjs/limel-snackbar.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-text-editor.cjs.entry.js +2 -2
  27. package/dist/cjs/loader.cjs.js +1 -1
  28. package/dist/cjs/{translations-VEsa81QY.js → translations-Bnw00bkf.js} +8 -0
  29. package/dist/cjs/{types-Bu6wcdI0.js → types-C7gNcwzE.js} +12 -0
  30. package/dist/collection/components/file/file.js +119 -18
  31. package/dist/collection/components/profile-picture/profile-picture.js +1 -1
  32. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/inserter.js +101 -30
  33. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/node.js +160 -54
  34. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/view.js +6 -1
  35. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +51 -5
  36. package/dist/collection/components/text-editor/text-editor.js +33 -3
  37. package/dist/collection/components/text-editor/text-editor.types.js +10 -1
  38. package/dist/collection/components/text-editor/utils/content-type-converter.js +30 -1
  39. package/dist/collection/components/text-editor/utils/html-converter.js +4 -2
  40. package/dist/collection/components/text-editor/utils/markdown-converter.js +9 -5
  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/image-resize.js +42 -2
  50. package/dist/esm/{image-resize-DPcww8rE.js → image-resize-65ma7B85.js} +42 -2
  51. package/dist/esm/index.js +2 -2
  52. package/dist/esm/lime-elements.js +1 -1
  53. package/dist/esm/limel-action-bar_3.entry.js +1 -1
  54. package/dist/esm/limel-ai-avatar.entry.js +1 -1
  55. package/dist/esm/limel-callout.entry.js +1 -1
  56. package/dist/esm/limel-chart.entry.js +1 -1
  57. package/dist/esm/limel-chip-set.entry.js +1 -1
  58. package/dist/esm/limel-chip_2.entry.js +1 -1
  59. package/dist/esm/limel-code-diff.entry.js +1 -1
  60. package/dist/esm/limel-code-editor.entry.js +1 -1
  61. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  62. package/dist/esm/limel-drag-handle.entry.js +1 -1
  63. package/dist/esm/limel-email-viewer.entry.js +1 -1
  64. package/dist/esm/limel-file-viewer.entry.js +1 -1
  65. package/dist/esm/limel-file.entry.js +84 -18
  66. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  67. package/dist/esm/limel-list-item.entry.js +1 -1
  68. package/dist/esm/limel-picker.entry.js +1 -1
  69. package/dist/esm/limel-profile-picture.entry.js +2 -2
  70. package/dist/esm/limel-prosemirror-adapter.entry.js +440 -212
  71. package/dist/esm/limel-snackbar.entry.js +1 -1
  72. package/dist/esm/limel-table.entry.js +1 -1
  73. package/dist/esm/limel-text-editor-link-menu.entry.js +1 -1
  74. package/dist/esm/limel-text-editor.entry.js +2 -2
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/esm/{translations-EPnIW0K5.js → translations-Cb9R_zmF.js} +8 -0
  77. package/dist/esm/{types-BWYo6dLf.js → types-C_Yu8dOg.js} +12 -1
  78. package/dist/lime-elements/index.esm.js +1 -1
  79. package/dist/lime-elements/lime-elements.esm.js +1 -1
  80. package/dist/lime-elements/{p-068e7087.entry.js → p-19c81ded.entry.js} +2 -2
  81. package/dist/lime-elements/p-1cc3b516.entry.js +1 -0
  82. package/dist/lime-elements/{p-ca0a8a5a.entry.js → p-1e3cdfa1.entry.js} +1 -1
  83. package/dist/lime-elements/p-1f35fc44.entry.js +1 -0
  84. package/dist/lime-elements/{p-2531a103.entry.js → p-2284caa7.entry.js} +1 -1
  85. package/dist/lime-elements/{p-d8cb7d42.entry.js → p-2f223e46.entry.js} +1 -1
  86. package/dist/lime-elements/{p-a3a2aafe.entry.js → p-4a09fb2e.entry.js} +1 -1
  87. package/dist/lime-elements/{p-f197036b.entry.js → p-552d0733.entry.js} +1 -1
  88. package/dist/lime-elements/p-65ma7B85.js +1 -0
  89. package/dist/lime-elements/{p-fd78537c.entry.js → p-6fbf20c6.entry.js} +1 -1
  90. package/dist/lime-elements/{p-5571f0de.entry.js → p-758939be.entry.js} +1 -1
  91. package/dist/lime-elements/{p-19347686.entry.js → p-7f7e2180.entry.js} +1 -1
  92. package/dist/lime-elements/{p-2a871a95.entry.js → p-89f9bd6c.entry.js} +1 -1
  93. package/dist/lime-elements/{p-79caf3f6.entry.js → p-9ae7d11b.entry.js} +1 -1
  94. package/dist/lime-elements/p-C_Yu8dOg.js +1 -0
  95. package/dist/lime-elements/p-Cb9R_zmF.js +1 -0
  96. package/dist/lime-elements/{p-6edf13b1.entry.js → p-a089b580.entry.js} +1 -1
  97. package/dist/lime-elements/{p-04b4e903.entry.js → p-aa080a8f.entry.js} +1 -1
  98. package/dist/lime-elements/{p-54961e0e.entry.js → p-c1ceade7.entry.js} +1 -1
  99. package/dist/lime-elements/{p-e08f770e.entry.js → p-c8116a01.entry.js} +1 -1
  100. package/dist/lime-elements/{p-36ccc68e.entry.js → p-c8982eef.entry.js} +1 -1
  101. package/dist/lime-elements/{p-d98168a1.entry.js → p-ca0b86ee.entry.js} +1 -1
  102. package/dist/lime-elements/{p-1525274d.entry.js → p-d7bb4310.entry.js} +1 -1
  103. package/dist/lime-elements/p-d7f75a6d.entry.js +1 -0
  104. package/dist/lime-elements/{p-bb201b0d.entry.js → p-e545c9e8.entry.js} +1 -1
  105. package/dist/types/components/file/file.d.ts +20 -0
  106. package/dist/types/components/text-editor/prosemirror-adapter/plugins/image/inserter.d.ts +2 -2
  107. package/dist/types/components/text-editor/prosemirror-adapter/plugins/image/node.d.ts +41 -19
  108. package/dist/types/components/text-editor/prosemirror-adapter/prosemirror-adapter.d.ts +13 -1
  109. package/dist/types/components/text-editor/text-editor.d.ts +10 -2
  110. package/dist/types/components/text-editor/text-editor.types.d.ts +52 -0
  111. package/dist/types/components/text-editor/utils/content-type-converter.d.ts +12 -0
  112. package/dist/types/components/text-editor/utils/html-converter.d.ts +3 -1
  113. package/dist/types/components/text-editor/utils/markdown-converter.d.ts +3 -1
  114. package/dist/types/components.d.ts +50 -8
  115. package/dist/types/translations/da.d.ts +1 -0
  116. package/dist/types/translations/de.d.ts +1 -0
  117. package/dist/types/translations/en.d.ts +1 -0
  118. package/dist/types/translations/fi.d.ts +1 -0
  119. package/dist/types/translations/fr.d.ts +1 -0
  120. package/dist/types/translations/nl.d.ts +1 -0
  121. package/dist/types/translations/no.d.ts +1 -0
  122. package/dist/types/translations/sv.d.ts +1 -0
  123. package/dist/types/util/image-resize.d.ts +12 -4
  124. package/package.json +1 -1
  125. package/dist/lime-elements/p-366419ee.entry.js +0 -1
  126. package/dist/lime-elements/p-5cf7464f.entry.js +0 -1
  127. package/dist/lime-elements/p-BWYo6dLf.js +0 -1
  128. package/dist/lime-elements/p-DPcww8rE.js +0 -1
  129. package/dist/lime-elements/p-EPnIW0K5.js +0 -1
  130. package/dist/lime-elements/p-b7d734d2.entry.js +0 -1
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-DYg_7kkT.js');
4
- var translations = require('./translations-VEsa81QY.js');
4
+ var translations = require('./translations-Bnw00bkf.js');
5
5
  var fileMetadata = require('./file-metadata-BrhOssGG.js');
6
6
  var formatBytes = require('./format-bytes-CpUKKU86.js');
7
+ var imageResize = require('./image-resize-BWRGvgkM.js');
7
8
  require('./icons-isR5V1X0.js');
8
9
  require('./get-icon-props-CwpDdQDI.js');
9
10
 
@@ -54,14 +55,51 @@ const File = class {
54
55
  this.dropZoneTip = () => {
55
56
  return this.getTranslation('file.drag-and-drop-tips');
56
57
  };
57
- this.handleNewFiles = (event) => {
58
+ this.handleNewFiles = async (event) => {
58
59
  this.preventAndStop(event);
59
- this.change.emit(event.detail[0]);
60
+ const file = event.detail[0];
61
+ let out = file;
62
+ const content = file === null || file === void 0 ? void 0 : file.fileContent;
63
+ // `instanceof Blob` (not `File`) guards against a value with no real
64
+ // binary and narrows to the DOM file type; `File` here is the class.
65
+ if (this.resizeImage &&
66
+ content instanceof Blob &&
67
+ this.isResizableImage(content)) {
68
+ // Show the selected file with a loading badge while it resizes.
69
+ // This object doubles as the in-flight token: if it is cleared or
70
+ // replaced during the await (e.g. the file is removed), the resize
71
+ // result is stale and must be dropped.
72
+ const pending = Object.assign(Object.assign({}, file), { loading: true, statusText: this.getTranslation('file.optimizing') });
73
+ this.resizingFile = pending;
74
+ try {
75
+ const processed = await imageResize.resizeImage(content, this.resizeImage);
76
+ out = Object.assign(Object.assign({}, file), { filename: processed.name, size: processed.size, contentType: processed.type, fileContent: processed });
77
+ }
78
+ catch (_a) {
79
+ // Best-effort: on any decode or encode failure emit the
80
+ // original file unchanged.
81
+ }
82
+ // Bail if the selection changed while we were resizing, so a
83
+ // removed or superseded file is neither re-shown nor re-emitted.
84
+ if (this.resizingFile !== pending) {
85
+ return;
86
+ }
87
+ // Keep the result on the same chip until `value` catches up.
88
+ this.resizingFile = out;
89
+ }
90
+ this.change.emit(out);
60
91
  };
61
92
  this.handleChipSetChange = (event) => {
62
93
  event.stopPropagation();
63
94
  const file = event.detail.length === 0 ? event.detail[0] : null;
64
95
  if (!file) {
96
+ // Removing the chip cancels any in-flight resize: drop the
97
+ // transient so the chip disappears immediately, and the token
98
+ // guard in `handleNewFiles` discards the resize result instead of
99
+ // re-emitting the removed file once it finishes. Without this, a
100
+ // removal during resize is swallowed, because `value` is already
101
+ // `undefined` so the `@Watch('value')` clear never fires.
102
+ this.resizingFile = undefined;
65
103
  this.change.emit(file);
66
104
  }
67
105
  };
@@ -70,12 +108,23 @@ const File = class {
70
108
  this.interact.emit(event.detail.id);
71
109
  };
72
110
  }
111
+ /** The committed `value`, or the file currently being resized. */
112
+ get displayedFile() {
113
+ var _a;
114
+ return (_a = this.value) !== null && _a !== void 0 ? _a : this.resizingFile;
115
+ }
116
+ // Clear the transient file once `value` reflects the selection, keeping the
117
+ // same chip mounted across the hand-off (see file.spec.tsx) so only its
118
+ // badge changes instead of the field flashing empty.
119
+ handleValueChange() {
120
+ this.resizingFile = undefined;
121
+ }
73
122
  render() {
74
- return (index.h(index.Host, { key: 'efdeb4e071a7bf484780eb239a1117a0e0fd0472', "aria-busy": this.isBusy ? 'true' : 'false' }, index.h("limel-file-dropzone", { key: '88d3924f5db23d1f3b07321bc7dc35663feeac8f', disabled: this.disabled || this.readonly || !!this.value, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
123
+ return (index.h(index.Host, { key: '3f314e0a075c61a8b1e2b4a51451193abc53e12f', "aria-busy": this.isBusy ? 'true' : 'false' }, index.h("limel-file-dropzone", { key: '8374175635679e2082b4f80d431686f8fd76af61', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
75
124
  }
76
125
  get statusText() {
77
126
  var _a, _b, _c;
78
- return (_c = (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.statusText) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
127
+ return (_c = (_b = (_a = this.displayedFile) === null || _a === void 0 ? void 0 : _a.statusText) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
79
128
  }
80
129
  /**
81
130
  * The component is busy for any reason: its own `loading`, or a file that
@@ -86,8 +135,8 @@ const File = class {
86
135
  get isBusy() {
87
136
  var _a, _b;
88
137
  return (this.loading ||
89
- Boolean((_a = this.value) === null || _a === void 0 ? void 0 : _a.loading) ||
90
- ((_b = this.value) === null || _b === void 0 ? void 0 : _b.progress) !== undefined);
138
+ Boolean((_a = this.displayedFile) === null || _a === void 0 ? void 0 : _a.loading) ||
139
+ ((_b = this.displayedFile) === null || _b === void 0 ? void 0 : _b.progress) !== undefined);
91
140
  }
92
141
  renderSpinner() {
93
142
  if (!this.isBusy) {
@@ -96,35 +145,47 @@ const File = class {
96
145
  return index.h("limel-spinner", null);
97
146
  }
98
147
  renderDragAndDropTip() {
99
- if (this.value || this.disabled || this.readonly || this.isBusy) {
148
+ if (this.displayedFile ||
149
+ this.disabled ||
150
+ this.readonly ||
151
+ this.isBusy) {
100
152
  return;
101
153
  }
102
154
  return (index.h("div", { class: "drag-and-drop-tip" }, index.h("span", { class: "invisible-label-mock", role: "presentation" }, this.label), index.h("span", { class: "tip" }, this.dropZoneTip())));
103
155
  }
156
+ // Cheap pre-filter; the decode inside `resizeImage` is the authoritative
157
+ // check and throws (caught above) for anything that does not decode.
158
+ isResizableImage(file) {
159
+ var _a;
160
+ return (Boolean((_a = file.type) === null || _a === void 0 ? void 0 : _a.startsWith('image/')) &&
161
+ file.type !== 'image/svg+xml');
162
+ }
104
163
  getChipArray() {
105
- if (!this.value) {
164
+ const file = this.displayedFile;
165
+ if (!file) {
106
166
  return [];
107
167
  }
108
168
  return [
109
- Object.assign(Object.assign({}, DEFAULT_FILE_CHIP), { text: this.value.filename, id: this.value.id, icon: {
110
- name: fileMetadata.getFileIcon(this.value),
111
- title: fileMetadata.getFileExtensionTitle(this.value),
112
- color: fileMetadata.getFileColor(this.value),
113
- backgroundColor: fileMetadata.getFileBackgroundColor(this.value),
114
- }, badge: this.getBadge(), href: this.value.href, menuItems: this.value.menuItems, loading: this.value.loading, progress: this.value.progress, invalid: this.value.invalid }),
169
+ Object.assign(Object.assign({}, DEFAULT_FILE_CHIP), { text: file.filename, id: file.id, icon: {
170
+ name: fileMetadata.getFileIcon(file),
171
+ title: fileMetadata.getFileExtensionTitle(file),
172
+ color: fileMetadata.getFileColor(file),
173
+ backgroundColor: fileMetadata.getFileBackgroundColor(file),
174
+ }, badge: this.getBadge(), href: file.href, menuItems: file.menuItems, loading: file.loading, progress: file.progress, invalid: file.invalid }),
115
175
  ];
116
176
  }
117
177
  getBadge() {
178
+ var _a;
118
179
  if (this.statusText) {
119
180
  return this.statusText;
120
181
  }
121
- if (typeof this.value.size === 'number') {
122
- return formatBytes.formatBytes(this.value.size);
182
+ if (typeof ((_a = this.displayedFile) === null || _a === void 0 ? void 0 : _a.size) === 'number') {
183
+ return formatBytes.formatBytes(this.displayedFile.size);
123
184
  }
124
185
  return undefined;
125
186
  }
126
187
  renderChipset() {
127
- const chipset = (index.h("limel-chip-set", { disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, label: this.label, helperText: this.helperText, leadingIcon: "upload_to_cloud", language: this.language, onChange: this.handleChipSetChange, onInteract: this.handleChipInteract, required: this.required, type: "input", value: this.getChipArray() }));
188
+ const chipset = (index.h("limel-chip-set", { disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, clearAllButton: false, label: this.label, helperText: this.helperText, leadingIcon: "upload_to_cloud", language: this.language, onChange: this.handleChipSetChange, onInteract: this.handleChipInteract, required: this.required, type: "input", value: this.getChipArray() }));
128
189
  if (this.value) {
129
190
  return chipset;
130
191
  }
@@ -137,6 +198,11 @@ const File = class {
137
198
  getTranslation(key) {
138
199
  return translations.translate.get(key, this.language);
139
200
  }
201
+ static get watchers() { return {
202
+ "value": [{
203
+ "handleValueChange": 0
204
+ }]
205
+ }; }
140
206
  };
141
207
  File.style = fileCss();
142
208
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-DYg_7kkT.js');
4
- var translations = require('./translations-VEsa81QY.js');
4
+ var translations = require('./translations-Bnw00bkf.js');
5
5
  var _commonjsHelpers = require('./_commonjsHelpers-CFO10eej.js');
6
6
  require('./sv-BSR4W58y.js');
7
7
  var moment = require('./moment-CqRdiK10.js');
@@ -5,7 +5,7 @@ var getIconProps = require('./get-icon-props-CwpDdQDI.js');
5
5
  var randomString = require('./random-string-BTzDB2ee.js');
6
6
  var renderListComponent = require('./render-list-component-1GrRKk_R.js');
7
7
  var checkbox_template = require('./checkbox.template-BewtdTin.js');
8
- var translations = require('./translations-VEsa81QY.js');
8
+ var translations = require('./translations-Bnw00bkf.js');
9
9
  var image_template = require('./image.template-DZC6_5a4.js');
10
10
 
11
11
  const listItemCss = () => `@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}.boolean-input{--limel-boolean-input-box-size:1.25rem;--limel-boolean-input-gap-size:0.5rem;position:relative;isolation:isolate;display:flex;align-items:center;min-height:var(--limel-checkbox-min-height, 2.5rem);width:100%}.boolean-input input[type=checkbox],.boolean-input input[type=radio]{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;-webkit-appearance:none;-moz-appearance:none;appearance:none}label.boolean-input-label{min-width:var(--limel-boolean-input-box-size);min-height:var(--limel-boolean-input-box-size);padding-top:0.125rem;cursor:pointer;position:relative;width:100%;overflow-wrap:var(--limel-boolean-input-label-overflow-wrap, normal);font-size:var(--limel-theme-default-small-font-size);color:var(--limel-theme-text-primary-on-background-color);padding-left:calc(var(--limel-boolean-input-box-size) + var(--limel-boolean-input-gap-size))}.disabled:not([readonly]):not([readonly=true]) label.boolean-input-label{cursor:not-allowed;color:var(--limel-theme-text-disabled-color)}.required label.boolean-input-label:after{margin-left:0.0625rem;content:"*"}.invalid:not(.readonly) label.boolean-input-label{color:var(--limel-theme-error-text-color)}:host(limel-checkbox.hide-label) label.boolean-input-label,.hide-label label.boolean-input-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:0;width:var(--limel-boolean-input-box-size)}.box{position:absolute;pointer-events:none;transition:border-color 0.4s ease 0.2s, background-color 0.2s ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease;display:inline-block;vertical-align:middle;width:var(--limel-boolean-input-box-size);height:var(--limel-boolean-input-box-size);margin-right:var(--limel-boolean-input-gap-size);border-radius:var(--limel-boolean-input-box-border-radius);border:0.125rem solid;border-color:var(--checkbox-unchecked-border-color, rgb(var(--contrast-900)));background-color:var(--limel-checkbox-background-color, rgb(var(--contrast-300)));}.checked .box,.boolean-input>input[type=checkbox]:checked+.box,.boolean-input>input[type=radio]:checked+.box{background-color:var(--lime-primary-color, var(--limel-theme-primary-color));border-color:var(--lime-primary-color, var(--limel-theme-primary-color))}.disabled .box{opacity:0.4}.box{}.boolean-input:not(.disabled):hover .box{will-change:box-shadow;box-shadow:var(--button-shadow-hovered)}.boolean-input:not(.disabled):active .box{will-change:box-shadow;box-shadow:var(--button-shadow-pressed)}.box:before{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);content:"";position:absolute;inset:-0.1875rem;border-radius:inherit;}.boolean-input>input[type=checkbox]:focus-visible+.box:before,.boolean-input>input[type=radio]:focus-visible+.box:before{will-change:box-shadow;box-shadow:var(--shadow-depth-8-focused)}.box:after{transition:opacity 0.2s ease, width 0.4s ease, box-shadow 0.6s cubic-bezier(0.68, -0.55, 0, 1.87), transform 0.6s cubic-bezier(0.68, -0.55, 0, 1.87);content:"";position:absolute;inset:0;margin:auto;border-radius:1rem;opacity:0;background-color:rgb(var(--color-white));}.boolean-input:not(.disabled):hover .box:after{will-change:opacity, box-shadow, transform, width}:host(limel-checkbox){--limel-boolean-input-label-overflow-wrap:var( --checkbox-label-overflow-wrap, normal );min-height:var(--limel-checkbox-min-height, 2.5rem)}.box:after{height:0.125rem;width:0.25rem}.indeterminate .box:after{opacity:1;width:calc(var(--limel-boolean-input-box-size) - 0.5rem)}.checkbox{--limel-boolean-input-box-border-radius:0.25rem}.checkbox svg.check-mark{position:absolute;z-index:1;inset:0;transform:translate3d(-0.125rem, -0.125rem, 0);width:var(--limel-boolean-input-box-size);height:var(--limel-boolean-input-box-size);padding:0.25rem;color:rgb(var(--color-white));opacity:0;stroke-width:0.1875rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.checkbox svg.check-mark path{stroke-dashoffset:29.7833;stroke-dasharray:29.7833;transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1)}.checkbox{}.checkbox:not(.indeterminate)>input[type=checkbox]:checked+.box svg.check-mark{opacity:1}.checkbox:not(.indeterminate)>input[type=checkbox]:checked+.box svg.check-mark path{stroke-dashoffset:0}limel-dynamic-label{margin-top:0.375rem;margin-left:-0.25rem}:host(limel-checkbox:focus),:host(limel-checkbox:focus-visible),:host(limel-checkbox:focus-within){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limel-checkbox){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limel-checkbox:focus) limel-helper-line,:host(limel-checkbox:focus-visible) limel-helper-line,:host(limel-checkbox:focus-within) limel-helper-line,:host(limel-checkbox:hover) limel-helper-line{will-change:grid-template-rows}*,*:before,*:after{box-sizing:border-box}limel-list-item{min-height:2.5rem}limel-list-item:focus{outline:none}limel-list-item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}limel-list-item{transition:background-color 0.6s ease;position:relative;isolation:isolate;display:flex;align-items:center;gap:0.5rem;padding:0 1rem;background-color:rgb(var(--contrast-100))}limel-list-item:hover{z-index:1;transition:background-color 0.2s ease;border-radius:0.5rem}limel-list-item:focus,limel-list-item:focus-visible,limel-list-item:active{z-index:1;border-radius:0.5rem}limel-list-item:first-of-type{border-top-left-radius:0.5rem;border-top-right-radius:0.5rem}limel-list-item:last-of-type{border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem}limel-list-item:not([disabled]):not([disabled=true]){cursor:pointer}limel-list-item[disabled]:not([disabled=false]){cursor:not-allowed}limel-list-item[disabled]:not([disabled=false]){cursor:not-allowed}limel-list-item[disabled]:not([disabled=false]) .text,limel-list-item[disabled]:not([disabled=false]) limel-icon,limel-list-item[disabled]:not([disabled=false]) img,limel-list-item[disabled]:not([disabled=false]) .boolean-input{opacity:0.4}limel-list-item:not([disabled]):not([disabled=true]):hover,limel-list-item:not([disabled]):not([disabled=true]):focus-visible{background-color:rgb(var(--contrast-400))}limel-list-item[type=option]:before{transition:background-color 0.6s ease;content:"";position:absolute;inset:0;opacity:0.2;border-radius:0.5rem}limel-list-item[type=option][selected]:not([selected=false]):before{transition:background-color 0.2s ease;background-color:var(--mdc-theme-primary)}limel-list-item .text{flex-grow:1;min-width:0;display:flex;flex-direction:column;padding:0.5rem 0;color:var(--limel-theme-text-primary-on-background-color)}limel-list-item .label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--limel-theme-default-font-size);line-height:1rem}limel-list-item .description{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:var(--maxLinesSecondaryText);line-height:1rem;font-size:var(--limel-theme-default-small-font-size);opacity:0.6}limel-list-item limel-icon{color:var(--limel-theme-text-secondary-on-background-color);flex-shrink:0;margin-left:-0.5rem}limel-list-item limel-icon:has(+img){margin-left:0;position:absolute;top:0.125rem;left:0.125rem;padding:0.1875rem;width:1.25rem;background-color:rgb(var(--contrast-200), 0.8)}limel-list-item img{flex-shrink:0;object-fit:var(--list-item-image-object-fit, cover);border-radius:var(--list-item-image-border-radius, 50%);width:2rem;height:2rem;box-shadow:0 0 0 1px rgb(var(--contrast-800), 0.5)}limel-list-item limel-menu{margin-right:-0.5rem;order:var(--limel-list-item-menu-order, 3)}limel-list-item[role=menuitem] limel-list-item .label{font-size:var(--limel-theme-default-small-font-size)}.boolean-input,limel-radio-button{width:var(--limel-boolean-input-box-size) !important;margin-left:-0.25rem !important}.boolean-input.checkbox{margin-right:0.25rem}limel-list-item:has(limel-icon) .boolean-input,limel-list-item:has(img) .boolean-input{margin-right:-0.25rem;margin-left:0;order:2}.boolean-input .boolean-input-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:0;width:var(--limel-boolean-input-box-size)}`;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-DYg_7kkT.js');
4
- var translations = require('./translations-VEsa81QY.js');
4
+ var translations = require('./translations-Bnw00bkf.js');
5
5
  var dom = require('./dom-BWMDM6En.js');
6
6
  var keycodes = require('./keycodes-B75-uKOK.js');
7
7
  var randomString = require('./random-string-BTzDB2ee.js');
@@ -3,9 +3,9 @@
3
3
  var index = require('./index-DYg_7kkT.js');
4
4
  var files = require('./files-Bt11HLi4.js');
5
5
  var getIconProps = require('./get-icon-props-CwpDdQDI.js');
6
- var translations = require('./translations-VEsa81QY.js');
6
+ var translations = require('./translations-Bnw00bkf.js');
7
7
  var randomString = require('./random-string-BTzDB2ee.js');
8
- var imageResize = require('./image-resize-FAwzj92q.js');
8
+ var imageResize = require('./image-resize-BWRGvgkM.js');
9
9
  var image_template = require('./image.template-DZC6_5a4.js');
10
10
  require('./file-metadata-BrhOssGG.js');
11
11
  require('./icons-isR5V1X0.js');