@limetech/lime-elements 39.44.5 → 39.45.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 (69) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/{keycodes-B75-uKOK.js → keycodes-k-EdzcMX.js} +4 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-breadcrumbs_8.cjs.entry.js +20 -1
  5. package/dist/cjs/limel-chip-set.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-file-viewer.cjs.entry.js +84 -8
  8. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-popover_2.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +778 -395
  12. package/dist/cjs/limel-select.cjs.entry.js +377 -13
  13. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/{markdown-parser-ChnRAxpZ.js → markdown-parser-YH5HSSgF.js} +36 -56
  16. package/dist/collection/components/list/list.js +19 -0
  17. package/dist/collection/components/select/select.js +215 -12
  18. package/dist/collection/components/select/select.template.js +17 -3
  19. package/dist/collection/components/text-editor/prosemirror-adapter/editor-config.js +12 -1
  20. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-command-utils/active-state-utils.js +36 -0
  21. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-command-utils/list-utils.js +270 -0
  22. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-command-utils/node-utils.js +15 -0
  23. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-commands.js +81 -69
  24. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/list-key-handler.js +44 -0
  25. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +4 -3
  26. package/dist/collection/util/keycodes.js +3 -0
  27. package/dist/collection/util/typeahead.js +159 -0
  28. package/dist/esm/{keycodes-rI0IeKpx.js → keycodes-C4_9qUMP.js} +4 -1
  29. package/dist/esm/lime-elements.js +1 -1
  30. package/dist/esm/limel-breadcrumbs_8.entry.js +20 -1
  31. package/dist/esm/limel-chip-set.entry.js +1 -1
  32. package/dist/esm/limel-chip_2.entry.js +1 -1
  33. package/dist/esm/limel-file-viewer.entry.js +84 -8
  34. package/dist/esm/limel-markdown.entry.js +1 -1
  35. package/dist/esm/limel-picker.entry.js +1 -1
  36. package/dist/esm/limel-popover_2.entry.js +1 -1
  37. package/dist/esm/limel-prosemirror-adapter.entry.js +779 -396
  38. package/dist/esm/limel-select.entry.js +378 -14
  39. package/dist/esm/limel-text-editor-link-menu.entry.js +1 -1
  40. package/dist/esm/loader.js +1 -1
  41. package/dist/esm/{markdown-parser-BSQKleVw.js → markdown-parser-DrxxGLF5.js} +36 -56
  42. package/dist/lime-elements/lime-elements.esm.js +1 -1
  43. package/dist/lime-elements/{p-a089b580.entry.js → p-03fd2181.entry.js} +1 -1
  44. package/dist/lime-elements/{p-fc43fb46.entry.js → p-12fe8fe1.entry.js} +6 -6
  45. package/dist/lime-elements/p-1f29f482.entry.js +1 -0
  46. package/dist/lime-elements/{p-bf3c78a8.entry.js → p-2b01c1f2.entry.js} +1 -1
  47. package/dist/lime-elements/{p-758939be.entry.js → p-2e5d5e79.entry.js} +1 -1
  48. package/dist/lime-elements/{p-3ea159fd.entry.js → p-38393fb4.entry.js} +1 -1
  49. package/dist/lime-elements/p-9152d7e1.entry.js +23 -0
  50. package/dist/lime-elements/{p-1e3cdfa1.entry.js → p-9a04a686.entry.js} +1 -1
  51. package/dist/lime-elements/p-C4_9qUMP.js +1 -0
  52. package/dist/lime-elements/{p-B0qhUema.js → p-C9xHOCE_.js} +2 -2
  53. package/dist/lime-elements/{p-6fbf20c6.entry.js → p-e8df7a2e.entry.js} +1 -1
  54. package/dist/lime-elements/p-f51b5651.entry.js +1 -0
  55. package/dist/types/components/select/select.d.ts +76 -1
  56. package/dist/types/components/select/select.template.d.ts +21 -1
  57. package/dist/types/components/text-editor/prosemirror-adapter/menu/menu-command-utils/active-state-utils.d.ts +6 -0
  58. package/dist/types/components/text-editor/prosemirror-adapter/menu/menu-command-utils/list-utils.d.ts +68 -0
  59. package/dist/types/components/text-editor/prosemirror-adapter/menu/menu-command-utils/node-utils.d.ts +10 -0
  60. package/dist/types/components/text-editor/prosemirror-adapter/menu/menu-commands.d.ts +10 -0
  61. package/dist/types/components/text-editor/prosemirror-adapter/plugins/list-key-handler.d.ts +14 -0
  62. package/dist/types/components.d.ts +36 -0
  63. package/dist/types/util/keycodes.d.ts +3 -0
  64. package/dist/types/util/typeahead.d.ts +101 -0
  65. package/package.json +3 -3
  66. package/dist/lime-elements/p-552d0733.entry.js +0 -1
  67. package/dist/lime-elements/p-845cfda7.entry.js +0 -1
  68. package/dist/lime-elements/p-8f4273e4.entry.js +0 -23
  69. package/dist/lime-elements/p-rI0IeKpx.js +0 -1
@@ -0,0 +1,159 @@
1
+ /**
2
+ * These helpers implement "type to jump", the behavior a native `<select>` has:
3
+ * typing characters moves to the option whose text starts with those
4
+ * characters. Characters accumulate into a short-lived buffer, so typing
5
+ * `n`, `e` finds "Netherlands" instead of re-matching on `n` every time.
6
+ *
7
+ * The matching itself is pure and stateless — all the state lives in a
8
+ * `TypeaheadBuffer`, which owns the timer that discards the buffer once the
9
+ * user stops typing.
10
+ */
11
+ /**
12
+ * How long a buffer of typed characters is kept before it is discarded, in
13
+ * milliseconds. Roughly matches a native `<select>`.
14
+ */
15
+ export const TYPEAHEAD_BUFFER_TIMEOUT = 1000;
16
+ /**
17
+ * Returned by `findTypeaheadMatch` when nothing matched.
18
+ */
19
+ export const NO_TYPEAHEAD_MATCH = -1;
20
+ /**
21
+ * Whether a keyboard event should be treated as a typed character.
22
+ *
23
+ * The space bar counts as a character here. Whether a *bare* space should
24
+ * start a buffer, or keep whatever meaning it has in the consuming component,
25
+ * is the consumer's decision.
26
+ *
27
+ * `shiftKey` is allowed, since capital letters are typed with it, and
28
+ * `event.repeat` is allowed, since holding a key down cycles through matches
29
+ * in a native `<select>` too.
30
+ *
31
+ * @param event - the keyboard event to inspect
32
+ * @returns `true` when the event represents a typed character
33
+ */
34
+ export function isTypeaheadKey(event) {
35
+ return (event.key.length === 1 &&
36
+ !event.altKey &&
37
+ !event.ctrlKey &&
38
+ !event.metaKey &&
39
+ !event.isComposing);
40
+ }
41
+ /**
42
+ * Find the candidate to move to for a given buffer of typed characters.
43
+ *
44
+ * Two different searches are used, mirroring a native `<select>`:
45
+ * - When the buffer is a single character, possibly repeated (`b`, `bb`,
46
+ * `bbb`), only that character is matched and the search starts *after*
47
+ * `currentIndex`. Pressing the same key repeatedly therefore cycles through
48
+ * all candidates starting with it.
49
+ * - Otherwise the whole buffer is matched and the search starts *at*
50
+ * `currentIndex`, so continuing to type on an already-matching candidate
51
+ * keeps it rather than jumping to the next one.
52
+ *
53
+ * Both searches wrap around the end of the list.
54
+ *
55
+ * @param candidates - the candidates to search, index-aligned with the rows
56
+ * they are rendered as. Use `null` for rows that can never match, such as
57
+ * separators, so that they still occupy their index.
58
+ * @param buffer - the characters typed so far
59
+ * @param currentIndex - the index to search from. Anything outside
60
+ * `candidates` is treated as "no current candidate", and the search starts
61
+ * from the beginning.
62
+ * @returns the index of the matching candidate, or `NO_TYPEAHEAD_MATCH`
63
+ */
64
+ export function findTypeaheadMatch(candidates, buffer, currentIndex) {
65
+ const count = candidates.length;
66
+ const query = buffer.toLowerCase();
67
+ if (!query || count === 0) {
68
+ return NO_TYPEAHEAD_MATCH;
69
+ }
70
+ const characters = [...query];
71
+ const cycles = isSingleDistinctCharacter(characters);
72
+ const needle = cycles ? characters[0] : query;
73
+ // Cycling starts one past the current candidate, so that pressing the same
74
+ // key again advances. Matching several characters starts at it, so that
75
+ // continuing to type keeps a candidate that already matches.
76
+ const offset = cycles ? 1 : 0;
77
+ const hasCurrent = currentIndex >= 0 && currentIndex < count;
78
+ const start = hasCurrent ? (currentIndex + offset) % count : 0;
79
+ for (let step = 0; step < count; step += 1) {
80
+ const index = (start + step) % count;
81
+ if (candidateMatches(candidates[index], needle)) {
82
+ return index;
83
+ }
84
+ }
85
+ return NO_TYPEAHEAD_MATCH;
86
+ }
87
+ /**
88
+ * Whether a string consists of a single character, possibly repeated. Also
89
+ * `true` for one character on its own, which is what makes a single key press
90
+ * advance past the current candidate rather than re-matching it.
91
+ *
92
+ * Takes the characters already split apart, so that the caller and this
93
+ * function agree on what "a character" is for anything outside the basic
94
+ * multilingual plane.
95
+ *
96
+ * @param characters - the characters of the string
97
+ * @returns `true` when every character is the same
98
+ */
99
+ function isSingleDistinctCharacter(characters) {
100
+ return characters.every((character) => character === characters[0]);
101
+ }
102
+ /**
103
+ * @param candidate - the candidate to test, or `null` for a row that can
104
+ * never match
105
+ * @param needle - the lower cased characters to match
106
+ * @returns `true` when the candidate starts with the given characters
107
+ */
108
+ function candidateMatches(candidate, needle) {
109
+ var _a;
110
+ if (!candidate || candidate.disabled) {
111
+ return false;
112
+ }
113
+ const text = (_a = candidate.text) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
114
+ return !!text && text.startsWith(needle);
115
+ }
116
+ /**
117
+ * Accumulates typed characters, and discards them again once the user stops
118
+ * typing for `TYPEAHEAD_BUFFER_TIMEOUT`.
119
+ */
120
+ export class TypeaheadBuffer {
121
+ constructor(timeout = TYPEAHEAD_BUFFER_TIMEOUT) {
122
+ this.buffer = '';
123
+ this.timeout = timeout;
124
+ }
125
+ /**
126
+ * The characters typed so far.
127
+ */
128
+ get value() {
129
+ return this.buffer;
130
+ }
131
+ /**
132
+ * Whether nothing has been typed, or the buffer has been discarded.
133
+ */
134
+ get isEmpty() {
135
+ return this.buffer === '';
136
+ }
137
+ /**
138
+ * Append a character, and restart the timer that discards the buffer.
139
+ *
140
+ * @param character - the character to append
141
+ * @returns the buffer, including the appended character
142
+ */
143
+ append(character) {
144
+ this.buffer += character;
145
+ clearTimeout(this.resetTimeoutId);
146
+ this.resetTimeoutId = setTimeout(() => {
147
+ this.clear();
148
+ }, this.timeout);
149
+ return this.buffer;
150
+ }
151
+ /**
152
+ * Discard the buffer, and cancel the timer that would have discarded it.
153
+ */
154
+ clear() {
155
+ this.buffer = '';
156
+ clearTimeout(this.resetTimeoutId);
157
+ this.resetTimeoutId = undefined;
158
+ }
159
+ }
@@ -3,7 +3,10 @@
3
3
  const TAB = 'Tab';
4
4
  const ENTER = 'Enter';
5
5
  const ESCAPE = 'Escape';
6
+ /** `KeyboardEvent.code` for the space bar. NOT a `KeyboardEvent.key`. */
6
7
  const SPACE = 'Space';
8
+ /** `KeyboardEvent.key` for the space bar. */
9
+ const SPACEBAR = ' ';
7
10
  const BACKSPACE = 'Backspace';
8
11
  const DELETE = 'Delete';
9
12
  const ARROW_UP = 'ArrowUp';
@@ -11,4 +14,4 @@ const ARROW_DOWN = 'ArrowDown';
11
14
  const ARROW_LEFT = 'ArrowLeft';
12
15
  const ARROW_RIGHT = 'ArrowRight';
13
16
 
14
- export { ARROW_UP as A, BACKSPACE as B, DELETE as D, ESCAPE as E, SPACE as S, TAB as T, ENTER as a, ARROW_DOWN as b, ARROW_LEFT as c, ARROW_RIGHT as d };
17
+ export { ARROW_UP as A, BACKSPACE as B, DELETE as D, ESCAPE as E, SPACEBAR as S, TAB as T, ENTER as a, ARROW_DOWN as b, ARROW_LEFT as c, ARROW_RIGHT as d, SPACE as e };
@@ -16,5 +16,5 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy(JSON.parse("[[\"limel-icon\",[[1,\"limel-icon\",{\"size\":[513],\"name\":[513],\"badge\":[516],\"svgClass\":[513,\"svg-class\"]},null,{\"name\":[{\"loadIcon\":0}],\"svgClass\":[{\"applySvgClass\":0}]}]]],[\"limel-text-editor\",[[17,\"limel-text-editor\",{\"contentType\":[1,\"content-type\"],\"language\":[513],\"disabled\":[516],\"readonly\":[516],\"helperText\":[513,\"helper-text\"],\"placeholder\":[513],\"label\":[513],\"invalid\":[516],\"value\":[513],\"customElements\":[16],\"inlineImages\":[16],\"triggers\":[16],\"required\":[516],\"allowResize\":[516,\"allow-resize\"],\"ui\":[513],\"flushPendingChanges\":[64],\"clear\":[64]}]]],[\"limel-file-viewer\",[[1,\"limel-file-viewer\",{\"url\":[513],\"filename\":[513],\"alt\":[513],\"allowFullscreen\":[516,\"allow-fullscreen\"],\"allowOpenInNewTab\":[516,\"allow-open-in-new-tab\"],\"allowDownload\":[516,\"allow-download\"],\"language\":[1],\"officeViewer\":[513,\"office-viewer\"],\"actions\":[16],\"isFullscreen\":[32],\"fileType\":[32],\"loading\":[32],\"fileUrl\":[32],\"email\":[32]},null,{\"url\":[{\"watchUrl\":0}]}]]],[\"limel-card\",[[257,\"limel-card\",{\"heading\":[513],\"subheading\":[513],\"image\":[16],\"icon\":[513],\"value\":[1],\"actions\":[16],\"clickable\":[516],\"orientation\":[513],\"selected\":[516],\"show3dEffect\":[516,\"show-3d-effect\"],\"canScrollUp\":[32],\"canScrollDown\":[32]}]]],[\"limel-file\",[[1,\"limel-file\",{\"value\":[16],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"loading\":[516],\"accept\":[513],\"resizeImage\":[16],\"language\":[1],\"resizingFile\":[32]},null,{\"value\":[{\"handleValueChange\":0}]}]]],[\"limel-code-diff\",[[1,\"limel-code-diff\",{\"oldValue\":[1,\"old-value\"],\"newValue\":[1,\"new-value\"],\"oldHeading\":[513,\"old-heading\"],\"newHeading\":[513,\"new-heading\"],\"layout\":[513],\"contextLines\":[514,\"context-lines\"],\"lineWrapping\":[516,\"line-wrapping\"],\"language\":[513],\"reformatJson\":[516,\"reformat-json\"],\"translationLanguage\":[513,\"translation-language\"],\"diffResult\":[32],\"liveAnnouncement\":[32],\"copyState\":[32],\"searchVisible\":[32],\"searchTerm\":[32],\"currentMatchIndex\":[32]},null,{\"oldValue\":[{\"watchInputs\":0}],\"newValue\":[{\"watchInputs\":0}],\"contextLines\":[{\"watchInputs\":0}],\"reformatJson\":[{\"watchInputs\":0}],\"layout\":[{\"watchInputs\":0}]}]]],[\"limel-list-item\",[[0,\"limel-list-item\",{\"language\":[513],\"value\":[8],\"text\":[513],\"secondaryText\":[513,\"secondary-text\"],\"disabled\":[516],\"icon\":[1],\"iconSize\":[513,\"icon-size\"],\"badgeIcon\":[516,\"badge-icon\"],\"selected\":[516],\"actions\":[16],\"primaryComponent\":[16],\"image\":[16],\"type\":[513]}]]],[\"limel-picker\",[[17,\"limel-picker\",{\"disabled\":[4],\"readonly\":[516],\"label\":[1],\"searchLabel\":[1,\"search-label\"],\"helperText\":[513,\"helper-text\"],\"leadingIcon\":[1,\"leading-icon\"],\"emptyResultMessage\":[1,\"empty-result-message\"],\"language\":[1],\"required\":[4],\"invalid\":[516],\"value\":[16],\"searcher\":[16],\"allItems\":[16],\"multiple\":[4],\"delimiter\":[513],\"actions\":[16],\"actionPosition\":[1,\"action-position\"],\"actionScrollBehavior\":[1,\"action-scroll-behavior\"],\"badgeIcons\":[516,\"badge-icons\"],\"items\":[32],\"textValue\":[32],\"loading\":[32],\"chips\":[32]},null,{\"disabled\":[{\"onDisabledChange\":0}],\"value\":[{\"onChangeValue\":0}]}]]],[\"limel-split-button\",[[17,\"limel-split-button\",{\"label\":[513],\"primary\":[516],\"icon\":[513],\"disabled\":[516],\"loading\":[516],\"loadingFailed\":[516,\"loading-failed\"],\"items\":[16]}]]],[\"limel-color-picker\",[[1,\"limel-color-picker\",{\"value\":[513],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"tooltipLabel\":[513,\"tooltip-label\"],\"required\":[516],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"placeholder\":[513],\"manualInput\":[516,\"manual-input\"],\"palette\":[16],\"paletteColumnCount\":[514,\"palette-column-count\"],\"isOpen\":[32]}]]],[\"limel-profile-picture\",[[1,\"limel-profile-picture\",{\"language\":[513],\"label\":[513],\"icon\":[1],\"helperText\":[1,\"helper-text\"],\"disabled\":[516],\"readonly\":[516],\"required\":[516],\"invalid\":[516],\"loading\":[516],\"value\":[1],\"imageFit\":[513,\"image-fit\"],\"accept\":[513],\"resize\":[16],\"objectUrl\":[32],\"imageError\":[32],\"isErrorMessagePopoverOpen\":[32]},null,{\"value\":[{\"handleValueChange\":0}]}]]],[\"limel-dock\",[[1,\"limel-dock\",{\"dockItems\":[16],\"dockFooterItems\":[16],\"accessibleLabel\":[513,\"accessible-label\"],\"expanded\":[516],\"allowResize\":[516,\"allow-resize\"],\"mobileBreakPoint\":[514,\"mobile-break-point\"],\"useMobileLayout\":[32]}]]],[\"limel-snackbar\",[[1,\"limel-snackbar\",{\"open\":[516],\"message\":[1],\"timeout\":[514],\"actionText\":[1,\"action-text\"],\"dismissible\":[4],\"multiline\":[4],\"language\":[1],\"offset\":[32],\"isOpen\":[32],\"closing\":[32],\"show\":[64]},[[0,\"changeOffset\",\"onChangeIndex\"]],{\"open\":[{\"watchOpen\":0}]}]]],[\"limel-date-picker\",[[1,\"limel-date-picker\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"placeholder\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"value\":[16],\"type\":[513],\"format\":[513],\"language\":[513],\"formatter\":[16],\"internalFormat\":[32],\"showPortal\":[32]}]]],[\"limel-button-group\",[[1,\"limel-button-group\",{\"value\":[16],\"disabled\":[516],\"selectedButtonId\":[32]},null,{\"value\":[{\"valueChanged\":0}]}]]],[\"limel-chart\",[[1,\"limel-chart\",{\"language\":[513],\"accessibleLabel\":[513,\"accessible-label\"],\"accessibleItemsLabel\":[513,\"accessible-items-label\"],\"accessibleValuesLabel\":[513,\"accessible-values-label\"],\"displayAxisLabels\":[516,\"display-axis-labels\"],\"displayItemText\":[516,\"display-item-text\"],\"displayItemValue\":[516,\"display-item-value\"],\"items\":[16],\"type\":[513],\"orientation\":[513],\"maxValue\":[514,\"max-value\"],\"axisIncrement\":[514,\"axis-increment\"],\"loading\":[516]},null,{\"items\":[{\"handleChange\":0}],\"axisIncrement\":[{\"handleChange\":0}],\"maxValue\":[{\"handleChange\":0}]}]]],[\"limel-select\",[[1,\"limel-select\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"required\":[516],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"value\":[16],\"options\":[16],\"multiple\":[4],\"menuOpen\":[32]},null,{\"value\":[{\"resetHasChanged\":0}],\"options\":[{\"resetHasChanged\":0},{\"updateHasPrimaryComponent\":0}],\"menuOpen\":[{\"watchOpen\":0}]}]]],[\"limel-help\",[[1,\"limel-help\",{\"value\":[1],\"trigger\":[1],\"readMoreLink\":[16],\"openDirection\":[513,\"open-direction\"],\"isOpen\":[32]}]]],[\"limel-info-tile\",[[257,\"limel-info-tile\",{\"value\":[520],\"icon\":[1],\"label\":[513],\"prefix\":[513],\"suffix\":[513],\"disabled\":[516],\"reducedPresence\":[516,\"reduced-presence\"],\"badge\":[520],\"loading\":[516],\"link\":[16],\"progress\":[16],\"hasPrimarySlot\":[32]}]]],[\"limel-table\",[[1,\"limel-table\",{\"data\":[16],\"columns\":[16],\"mode\":[513],\"layout\":[513],\"pageSize\":[514,\"page-size\"],\"totalRows\":[514,\"total-rows\"],\"sorting\":[16],\"activeRow\":[1040],\"movableColumns\":[516,\"movable-columns\"],\"movableRows\":[516,\"movable-rows\"],\"sortableColumns\":[516,\"sortable-columns\"],\"loading\":[516],\"page\":[514],\"emptyMessage\":[1,\"empty-message\"],\"aggregates\":[16],\"selectable\":[516],\"selection\":[16],\"language\":[513],\"paginationLocation\":[513,\"pagination-location\"]},null,{\"totalRows\":[{\"totalRowsChanged\":0}],\"pageSize\":[{\"pageSizeChanged\":0}],\"page\":[{\"pageChanged\":0}],\"activeRow\":[{\"activeRowChanged\":0}],\"data\":[{\"updateData\":0}],\"columns\":[{\"updateColumns\":0}],\"aggregates\":[{\"updateAggregates\":0}],\"selection\":[{\"updateSelection\":0}],\"selectable\":[{\"updateSelectable\":0}],\"movableRows\":[{\"updateMovableRows\":0}],\"sortableColumns\":[{\"updateSortableColumns\":0}],\"sorting\":[{\"updateSorting\":0}]}]]],[\"limel-drag-handle\",[[0,\"limel-drag-handle\",{\"dragDirection\":[513,\"drag-direction\"],\"tooltipOpenDirection\":[513,\"tooltip-open-direction\"],\"language\":[513]}]]],[\"limel-shortcut\",[[1,\"limel-shortcut\",{\"icon\":[513],\"label\":[513],\"disabled\":[516],\"badge\":[520],\"link\":[16]}]]],[\"limel-switch\",[[1,\"limel-switch\",{\"label\":[513],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"value\":[516],\"helperText\":[513,\"helper-text\"],\"readonlyLabels\":[16],\"fieldId\":[32]}]]],[\"limel-tab-panel\",[[257,\"limel-tab-panel\",{\"tabs\":[1040]},null,{\"tabs\":[{\"tabsChanged\":0}]}]]],[\"limel-code-editor\",[[1,\"limel-code-editor\",{\"value\":[1],\"language\":[1],\"readonly\":[516],\"disabled\":[516],\"invalid\":[516],\"required\":[516],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"lineNumbers\":[516,\"line-numbers\"],\"lineWrapping\":[516,\"line-wrapping\"],\"fold\":[516],\"lint\":[516],\"colorScheme\":[513,\"color-scheme\"],\"translationLanguage\":[513,\"translation-language\"],\"showCopyButton\":[516,\"show-copy-button\"],\"random\":[32],\"wasCopied\":[32]},null,{\"value\":[{\"watchValue\":0}],\"disabled\":[{\"watchDisabled\":0}],\"readonly\":[{\"watchReadonly\":0}],\"invalid\":[{\"watchInvalid\":0}],\"required\":[{\"watchRequired\":0}],\"helperText\":[{\"watchHelperText\":0}]}]]],[\"limel-dialog\",[[257,\"limel-dialog\",{\"heading\":[1],\"fullscreen\":[516],\"open\":[1540],\"closingActions\":[16]},null,{\"open\":[{\"watchHandler\":0}],\"closingActions\":[{\"closingActionsChanged\":0}]}]]],[\"limel-menu-item-meta\",[[1,\"limel-menu-item-meta\",{\"commandText\":[513,\"command-text\"],\"hotkey\":[513],\"disabled\":[516],\"badge\":[8],\"showChevron\":[4,\"show-chevron\"]}]]],[\"limel-progress-flow\",[[1,\"limel-progress-flow\",{\"flowItems\":[16],\"disabled\":[4],\"readonly\":[4]}]]],[\"limel-slider\",[[1,\"limel-slider\",{\"disabled\":[516],\"readonly\":[516],\"factor\":[514],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"invalid\":[516],\"displaysPercentageColors\":[516,\"displays-percentage-colors\"],\"unit\":[513],\"value\":[514],\"valuemax\":[514],\"valuemin\":[514],\"step\":[514],\"percentageClass\":[32],\"displayValue\":[32]},null,{\"value\":[{\"watchValue\":0}]}]]],[\"limel-banner\",[[257,\"limel-banner\",{\"message\":[513],\"icon\":[513],\"isOpen\":[32],\"open\":[64],\"close\":[64]}]]],[\"limel-form\",[[1,\"limel-form\",{\"schema\":[16],\"value\":[16],\"disabled\":[4],\"propsFactory\":[16],\"transformErrors\":[16],\"errors\":[16],\"revealErrors\":[4,\"reveal-errors\"]}]]],[\"limel-radio-button-group\",[[0,\"limel-radio-button-group\",{\"items\":[16],\"selectedItem\":[16],\"disabled\":[516],\"badgeIcons\":[516,\"badge-icons\"],\"maxLinesSecondaryText\":[514,\"max-lines-secondary-text\"]}]]],[\"limel-ai-avatar\",[[1,\"limel-ai-avatar\",{\"isThinking\":[516,\"is-thinking\"],\"mode\":[513],\"variant\":[513],\"language\":[513]},null,{\"isThinking\":[{\"onIsThinkingChange\":0}]}]]],[\"limel-config\",[[1,\"limel-config\",{\"config\":[16]}]]],[\"limel-flex-container\",[[257,\"limel-flex-container\",{\"direction\":[513],\"justify\":[513],\"align\":[513],\"reverse\":[516]}]]],[\"limel-grid\",[[257,\"limel-grid\"]]],[\"limel-masonry-layout\",[[257,\"limel-masonry-layout\",{\"ordered\":[516],\"containerHeight\":[32]},null,{\"ordered\":[{\"onOrderedChange\":0}]}]]],[\"limel-email-viewer\",[[257,\"limel-email-viewer\",{\"email\":[16],\"fallbackUrl\":[513,\"fallback-url\"],\"language\":[513],\"allowRemoteImages\":[4,\"allow-remote-images\"],\"allowRemoteImagesState\":[32]},null,{\"email\":[{\"resetAllowRemoteImages\":0}]}]]],[\"limel-prosemirror-adapter\",[[17,\"limel-prosemirror-adapter\",{\"contentType\":[1,\"content-type\"],\"value\":[1],\"language\":[513],\"disabled\":[516],\"customElements\":[16],\"inlineImages\":[16],\"triggerCharacters\":[16],\"ui\":[1],\"view\":[32],\"actionBarItems\":[32],\"link\":[32],\"isLinkMenuOpen\":[32],\"flushPendingChanges\":[64],\"clear\":[64]},null,{\"value\":[{\"watchValue\":0}]}]]],[\"limel-dock-button\",[[0,\"limel-dock-button\",{\"item\":[16],\"expanded\":[516],\"useMobileLayout\":[516,\"use-mobile-layout\"],\"isOpen\":[32]},null,{\"isOpen\":[{\"openWatcher\":0}]}]]],[\"limel-color-picker-palette\",[[17,\"limel-color-picker-palette\",{\"value\":[513],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"placeholder\":[513],\"required\":[516],\"invalid\":[516],\"manualInput\":[516,\"manual-input\"],\"columnCount\":[514,\"column-count\"],\"palette\":[16]}]]],[\"limel-checkbox\",[[1,\"limel-checkbox\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"checked\":[516],\"indeterminate\":[516],\"required\":[516],\"readonlyLabels\":[16],\"modified\":[32]},null,{\"checked\":[{\"handleCheckedChange\":0}],\"indeterminate\":[{\"handleIndeterminateChange\":0}],\"readonly\":[{\"handleReadonlyChange\":0}]}]]],[\"limel-tab-bar\",[[1,\"limel-tab-bar\",{\"tabs\":[1040],\"canScrollLeft\":[32],\"canScrollRight\":[32]},[[9,\"resize\",\"handleWindowResize\"]],{\"tabs\":[{\"tabsChanged\":0}]}]]],[\"limel-callout\",[[257,\"limel-callout\",{\"heading\":[513],\"icon\":[513],\"type\":[513],\"language\":[1]}]]],[\"limel-header\",[[257,\"limel-header\",{\"icon\":[1],\"heading\":[1],\"subheading\":[1],\"supportingText\":[1,\"supporting-text\"],\"subheadingDivider\":[1,\"subheading-divider\"]}]]],[\"limel-help-content\",[[1,\"limel-help-content\",{\"value\":[1],\"readMoreLink\":[16]}]]],[\"limel-progress-flow-item\",[[0,\"limel-progress-flow-item\",{\"item\":[16],\"disabled\":[4],\"readonly\":[4],\"currentStep\":[4,\"current-step\"]}]]],[\"limel-circular-progress\",[[1,\"limel-circular-progress\",{\"value\":[2],\"maxValue\":[2,\"max-value\"],\"prefix\":[513],\"suffix\":[1],\"displayPercentageColors\":[4,\"display-percentage-colors\"],\"size\":[513]}]]],[\"limel-flatpickr-adapter\",[[1,\"limel-flatpickr-adapter\",{\"value\":[16],\"type\":[1],\"format\":[1],\"isOpen\":[4,\"is-open\"],\"inputElement\":[16],\"language\":[1],\"formatter\":[16]}]]],[\"limel-radio-button\",[[0,\"limel-radio-button\",{\"checked\":[516],\"disabled\":[516],\"id\":[1],\"label\":[1],\"onChange\":[16]}]]],[\"limel-chip-set\",[[17,\"limel-chip-set\",{\"value\":[16],\"type\":[513],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"inputType\":[513,\"input-type\"],\"maxItems\":[514,\"max-items\"],\"required\":[516],\"searchLabel\":[513,\"search-label\"],\"emptyInputOnBlur\":[516,\"empty-input-on-blur\"],\"emptyInputOnChange\":[516,\"empty-input-on-change\"],\"clearAllButton\":[4,\"clear-all-button\"],\"leadingIcon\":[513,\"leading-icon\"],\"delimiter\":[513],\"autocomplete\":[513],\"language\":[1],\"editMode\":[32],\"textValue\":[32],\"blurred\":[32],\"inputChipIndexSelected\":[32],\"selectedChipIds\":[32],\"getEditMode\":[64],\"setFocus\":[64],\"emptyInput\":[64]},null,{\"value\":[{\"handleChangeChips\":0}]}]]],[\"limel-button\",[[17,\"limel-button\",{\"label\":[513],\"primary\":[516],\"outlined\":[516],\"icon\":[513],\"disabled\":[516],\"loading\":[516],\"loadingFailed\":[516,\"loading-failed\"],\"justLoaded\":[32]},null,{\"loading\":[{\"loadingWatcher\":0}]}]]],[\"limel-hotkey_4\",[[1,\"limel-tooltip\",{\"elementId\":[513,\"element-id\"],\"label\":[513],\"helperLabel\":[513,\"helper-label\"],\"hotkey\":[513],\"maxlength\":[514],\"openDirection\":[513,\"open-direction\"],\"open\":[32]}],[1,\"limel-tooltip-content\",{\"label\":[513],\"helperLabel\":[513,\"helper-label\"],\"maxlength\":[514],\"hotkey\":[513]}],[1,\"limel-hotkey\",{\"value\":[513],\"disabled\":[516]}],[257,\"limel-portal\",{\"openDirection\":[513,\"open-direction\"],\"position\":[513],\"containerId\":[513,\"container-id\"],\"containerStyle\":[16],\"inheritParentWidth\":[516,\"inherit-parent-width\"],\"visible\":[516],\"anchor\":[16]},null,{\"visible\":[{\"onVisible\":0}]}]]],[\"limel-text-editor-link-menu\",[[1,\"limel-text-editor-link-menu\",{\"link\":[16],\"language\":[513],\"isOpen\":[516,\"is-open\"]}]]],[\"limel-collapsible-section\",[[257,\"limel-collapsible-section\",{\"isOpen\":[1540,\"is-open\"],\"header\":[513],\"icon\":[1],\"invalid\":[516],\"actions\":[16],\"language\":[513]}]]],[\"limel-3d-hover-effect-glow\",[[1,\"limel-3d-hover-effect-glow\"]]],[\"limel-file-dropzone_2\",[[257,\"limel-file-dropzone\",{\"accept\":[513],\"disabled\":[4],\"text\":[1],\"helperText\":[1,\"helper-text\"],\"hasFileToDrop\":[32]}],[257,\"limel-file-input\",{\"accept\":[513],\"disabled\":[516],\"multiple\":[516]}]]],[\"limel-dynamic-label\",[[1,\"limel-dynamic-label\",{\"value\":[8],\"defaultLabel\":[16],\"labels\":[16]}]]],[\"limel-icon-button\",[[17,\"limel-icon-button\",{\"icon\":[1],\"elevated\":[516],\"label\":[513],\"helperLabel\":[513,\"helper-label\"],\"disabled\":[516]}]]],[\"limel-markdown\",[[1,\"limel-markdown\",{\"value\":[1],\"whitelist\":[16],\"lazyLoadImages\":[516,\"lazy-load-images\"],\"removeEmptyParagraphs\":[516,\"remove-empty-paragraphs\"],\"adaptColorContrast\":[516,\"adapt-color-contrast\"]},null,{\"value\":[{\"textChanged\":0}],\"whitelist\":[{\"handleWhitelistChange\":0}],\"removeEmptyParagraphs\":[{\"handleRemoveEmptyParagraphsChange\":0}],\"adaptColorContrast\":[{\"handleAdaptColorContrastChange\":0}]}]]],[\"limel-popover_2\",[[257,\"limel-popover\",{\"open\":[4],\"openDirection\":[513,\"open-direction\"]},null,{\"open\":[{\"watchOpen\":0}]}],[1,\"limel-popover-surface\",{\"contentCollection\":[16]}]]],[\"limel-badge\",[[1,\"limel-badge\",{\"label\":[520]}]]],[\"limel-helper-line\",[[1,\"limel-helper-line\",{\"helperText\":[513,\"helper-text\"],\"length\":[514],\"maxLength\":[514,\"max-length\"],\"invalid\":[516],\"helperTextId\":[513,\"helper-text-id\"]}]]],[\"limel-breadcrumbs_8\",[[257,\"limel-menu\",{\"items\":[16],\"disabled\":[516],\"openDirection\":[513,\"open-direction\"],\"surfaceWidth\":[513,\"surface-width\"],\"open\":[1540],\"badgeIcons\":[516,\"badge-icons\"],\"gridLayout\":[516,\"grid-layout\"],\"loading\":[516],\"currentSubMenu\":[1040],\"rootItem\":[16],\"searcher\":[16],\"searchPlaceholder\":[1,\"search-placeholder\"],\"emptyResultMessage\":[1,\"empty-result-message\"],\"keepOpenOnSelect\":[516,\"keep-open-on-select\"],\"loadingSubItems\":[32],\"searchValue\":[32],\"searchResults\":[32]},null,{\"items\":[{\"itemsWatcher\":0}],\"open\":[{\"openWatcher\":0}]}],[1,\"limel-breadcrumbs\",{\"items\":[16],\"divider\":[1]}],[17,\"limel-menu-list\",{\"items\":[16],\"badgeIcons\":[4,\"badge-icons\"],\"iconSize\":[1,\"icon-size\"]},null,{\"items\":[{\"itemsChanged\":0}]}],[17,\"limel-input-field\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"placeholder\":[513],\"helperText\":[513,\"helper-text\"],\"prefix\":[513],\"suffix\":[513],\"required\":[516],\"value\":[513],\"trailingIcon\":[513,\"trailing-icon\"],\"leadingIcon\":[513,\"leading-icon\"],\"pattern\":[513],\"type\":[513],\"formatNumber\":[516,\"format-number\"],\"step\":[520],\"max\":[514],\"min\":[514],\"maxlength\":[514],\"minlength\":[514],\"completions\":[16],\"showLink\":[516,\"show-link\"],\"locale\":[513],\"isFocused\":[32],\"wasInvalid\":[32],\"showCompletions\":[32],\"getSelectionStart\":[64],\"getSelectionEnd\":[64],\"getSelectionDirection\":[64]},null,{\"value\":[{\"valueWatcher\":0}],\"completions\":[{\"completionsWatcher\":0}]}],[257,\"limel-menu-surface\",{\"open\":[4],\"allowClicksElement\":[16]}],[1,\"limel-spinner\",{\"size\":[513],\"limeBranded\":[4,\"lime-branded\"]}],[17,\"limel-list\",{\"items\":[16],\"badgeIcons\":[4,\"badge-icons\"],\"iconSize\":[1,\"icon-size\"],\"type\":[1],\"maxLinesSecondaryText\":[2,\"max-lines-secondary-text\"]},null,{\"type\":[{\"handleType\":0}],\"items\":[{\"itemsChanged\":0}]}],[260,\"limel-notched-outline\",{\"required\":[516],\"readonly\":[516],\"invalid\":[516],\"disabled\":[516],\"label\":[513],\"labelId\":[513,\"label-id\"],\"hasValue\":[516,\"has-value\"],\"hasLeadingIcon\":[516,\"has-leading-icon\"],\"hasFloatingLabel\":[516,\"has-floating-label\"]}]]],[\"limel-chip_2\",[[17,\"limel-chip\",{\"language\":[513],\"text\":[513],\"icon\":[1],\"image\":[16],\"link\":[16],\"badge\":[520],\"disabled\":[516],\"readonly\":[516],\"selected\":[516],\"invalid\":[516],\"removable\":[516],\"type\":[513],\"loading\":[516],\"progress\":[514],\"identifier\":[520],\"size\":[513],\"menuItems\":[16]}],[1,\"limel-linear-progress\",{\"language\":[513],\"value\":[514],\"indeterminate\":[516],\"accessibleLabel\":[513,\"accessible-label\"]},null,{\"value\":[{\"watchValue\":0}]}]]],[\"limel-action-bar_3\",[[1,\"limel-action-bar\",{\"actions\":[16],\"accessibleLabel\":[513,\"accessible-label\"],\"language\":[1],\"layout\":[513],\"collapsible\":[516],\"openDirection\":[513,\"open-direction\"],\"overflowCutoff\":[32]}],[0,\"limel-action-bar-overflow-menu\",{\"items\":[16],\"openDirection\":[513,\"open-direction\"]}],[0,\"limel-action-bar-item\",{\"item\":[16],\"isVisible\":[516,\"is-visible\"],\"selected\":[516]}]]]]"), options);
19
+ return bootstrapLazy(JSON.parse("[[\"limel-icon\",[[1,\"limel-icon\",{\"size\":[513],\"name\":[513],\"badge\":[516],\"svgClass\":[513,\"svg-class\"]},null,{\"name\":[{\"loadIcon\":0}],\"svgClass\":[{\"applySvgClass\":0}]}]]],[\"limel-text-editor\",[[17,\"limel-text-editor\",{\"contentType\":[1,\"content-type\"],\"language\":[513],\"disabled\":[516],\"readonly\":[516],\"helperText\":[513,\"helper-text\"],\"placeholder\":[513],\"label\":[513],\"invalid\":[516],\"value\":[513],\"customElements\":[16],\"inlineImages\":[16],\"triggers\":[16],\"required\":[516],\"allowResize\":[516,\"allow-resize\"],\"ui\":[513],\"flushPendingChanges\":[64],\"clear\":[64]}]]],[\"limel-file-viewer\",[[1,\"limel-file-viewer\",{\"url\":[513],\"filename\":[513],\"alt\":[513],\"allowFullscreen\":[516,\"allow-fullscreen\"],\"allowOpenInNewTab\":[516,\"allow-open-in-new-tab\"],\"allowDownload\":[516,\"allow-download\"],\"language\":[1],\"officeViewer\":[513,\"office-viewer\"],\"actions\":[16],\"isFullscreen\":[32],\"fileType\":[32],\"loading\":[32],\"fileUrl\":[32],\"email\":[32]},null,{\"url\":[{\"watchUrl\":0}]}]]],[\"limel-card\",[[257,\"limel-card\",{\"heading\":[513],\"subheading\":[513],\"image\":[16],\"icon\":[513],\"value\":[1],\"actions\":[16],\"clickable\":[516],\"orientation\":[513],\"selected\":[516],\"show3dEffect\":[516,\"show-3d-effect\"],\"canScrollUp\":[32],\"canScrollDown\":[32]}]]],[\"limel-file\",[[1,\"limel-file\",{\"value\":[16],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"loading\":[516],\"accept\":[513],\"resizeImage\":[16],\"language\":[1],\"resizingFile\":[32]},null,{\"value\":[{\"handleValueChange\":0}]}]]],[\"limel-code-diff\",[[1,\"limel-code-diff\",{\"oldValue\":[1,\"old-value\"],\"newValue\":[1,\"new-value\"],\"oldHeading\":[513,\"old-heading\"],\"newHeading\":[513,\"new-heading\"],\"layout\":[513],\"contextLines\":[514,\"context-lines\"],\"lineWrapping\":[516,\"line-wrapping\"],\"language\":[513],\"reformatJson\":[516,\"reformat-json\"],\"translationLanguage\":[513,\"translation-language\"],\"diffResult\":[32],\"liveAnnouncement\":[32],\"copyState\":[32],\"searchVisible\":[32],\"searchTerm\":[32],\"currentMatchIndex\":[32]},null,{\"oldValue\":[{\"watchInputs\":0}],\"newValue\":[{\"watchInputs\":0}],\"contextLines\":[{\"watchInputs\":0}],\"reformatJson\":[{\"watchInputs\":0}],\"layout\":[{\"watchInputs\":0}]}]]],[\"limel-list-item\",[[0,\"limel-list-item\",{\"language\":[513],\"value\":[8],\"text\":[513],\"secondaryText\":[513,\"secondary-text\"],\"disabled\":[516],\"icon\":[1],\"iconSize\":[513,\"icon-size\"],\"badgeIcon\":[516,\"badge-icon\"],\"selected\":[516],\"actions\":[16],\"primaryComponent\":[16],\"image\":[16],\"type\":[513]}]]],[\"limel-picker\",[[17,\"limel-picker\",{\"disabled\":[4],\"readonly\":[516],\"label\":[1],\"searchLabel\":[1,\"search-label\"],\"helperText\":[513,\"helper-text\"],\"leadingIcon\":[1,\"leading-icon\"],\"emptyResultMessage\":[1,\"empty-result-message\"],\"language\":[1],\"required\":[4],\"invalid\":[516],\"value\":[16],\"searcher\":[16],\"allItems\":[16],\"multiple\":[4],\"delimiter\":[513],\"actions\":[16],\"actionPosition\":[1,\"action-position\"],\"actionScrollBehavior\":[1,\"action-scroll-behavior\"],\"badgeIcons\":[516,\"badge-icons\"],\"items\":[32],\"textValue\":[32],\"loading\":[32],\"chips\":[32]},null,{\"disabled\":[{\"onDisabledChange\":0}],\"value\":[{\"onChangeValue\":0}]}]]],[\"limel-split-button\",[[17,\"limel-split-button\",{\"label\":[513],\"primary\":[516],\"icon\":[513],\"disabled\":[516],\"loading\":[516],\"loadingFailed\":[516,\"loading-failed\"],\"items\":[16]}]]],[\"limel-color-picker\",[[1,\"limel-color-picker\",{\"value\":[513],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"tooltipLabel\":[513,\"tooltip-label\"],\"required\":[516],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"placeholder\":[513],\"manualInput\":[516,\"manual-input\"],\"palette\":[16],\"paletteColumnCount\":[514,\"palette-column-count\"],\"isOpen\":[32]}]]],[\"limel-profile-picture\",[[1,\"limel-profile-picture\",{\"language\":[513],\"label\":[513],\"icon\":[1],\"helperText\":[1,\"helper-text\"],\"disabled\":[516],\"readonly\":[516],\"required\":[516],\"invalid\":[516],\"loading\":[516],\"value\":[1],\"imageFit\":[513,\"image-fit\"],\"accept\":[513],\"resize\":[16],\"objectUrl\":[32],\"imageError\":[32],\"isErrorMessagePopoverOpen\":[32]},null,{\"value\":[{\"handleValueChange\":0}]}]]],[\"limel-dock\",[[1,\"limel-dock\",{\"dockItems\":[16],\"dockFooterItems\":[16],\"accessibleLabel\":[513,\"accessible-label\"],\"expanded\":[516],\"allowResize\":[516,\"allow-resize\"],\"mobileBreakPoint\":[514,\"mobile-break-point\"],\"useMobileLayout\":[32]}]]],[\"limel-snackbar\",[[1,\"limel-snackbar\",{\"open\":[516],\"message\":[1],\"timeout\":[514],\"actionText\":[1,\"action-text\"],\"dismissible\":[4],\"multiline\":[4],\"language\":[1],\"offset\":[32],\"isOpen\":[32],\"closing\":[32],\"show\":[64]},[[0,\"changeOffset\",\"onChangeIndex\"]],{\"open\":[{\"watchOpen\":0}]}]]],[\"limel-date-picker\",[[1,\"limel-date-picker\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"placeholder\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"value\":[16],\"type\":[513],\"format\":[513],\"language\":[513],\"formatter\":[16],\"internalFormat\":[32],\"showPortal\":[32]}]]],[\"limel-button-group\",[[1,\"limel-button-group\",{\"value\":[16],\"disabled\":[516],\"selectedButtonId\":[32]},null,{\"value\":[{\"valueChanged\":0}]}]]],[\"limel-chart\",[[1,\"limel-chart\",{\"language\":[513],\"accessibleLabel\":[513,\"accessible-label\"],\"accessibleItemsLabel\":[513,\"accessible-items-label\"],\"accessibleValuesLabel\":[513,\"accessible-values-label\"],\"displayAxisLabels\":[516,\"display-axis-labels\"],\"displayItemText\":[516,\"display-item-text\"],\"displayItemValue\":[516,\"display-item-value\"],\"items\":[16],\"type\":[513],\"orientation\":[513],\"maxValue\":[514,\"max-value\"],\"axisIncrement\":[514,\"axis-increment\"],\"loading\":[516]},null,{\"items\":[{\"handleChange\":0}],\"axisIncrement\":[{\"handleChange\":0}],\"maxValue\":[{\"handleChange\":0}]}]]],[\"limel-select\",[[1,\"limel-select\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"required\":[516],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"value\":[16],\"options\":[16],\"multiple\":[4],\"menuOpen\":[32]},null,{\"value\":[{\"resetHasChanged\":0}],\"options\":[{\"resetHasChanged\":0},{\"updateHasPrimaryComponent\":0},{\"resetTypeaheadOnItemsChange\":0}],\"required\":[{\"resetTypeaheadOnItemsChange\":0}],\"menuOpen\":[{\"watchOpen\":0}]}]]],[\"limel-help\",[[1,\"limel-help\",{\"value\":[1],\"trigger\":[1],\"readMoreLink\":[16],\"openDirection\":[513,\"open-direction\"],\"isOpen\":[32]}]]],[\"limel-info-tile\",[[257,\"limel-info-tile\",{\"value\":[520],\"icon\":[1],\"label\":[513],\"prefix\":[513],\"suffix\":[513],\"disabled\":[516],\"reducedPresence\":[516,\"reduced-presence\"],\"badge\":[520],\"loading\":[516],\"link\":[16],\"progress\":[16],\"hasPrimarySlot\":[32]}]]],[\"limel-table\",[[1,\"limel-table\",{\"data\":[16],\"columns\":[16],\"mode\":[513],\"layout\":[513],\"pageSize\":[514,\"page-size\"],\"totalRows\":[514,\"total-rows\"],\"sorting\":[16],\"activeRow\":[1040],\"movableColumns\":[516,\"movable-columns\"],\"movableRows\":[516,\"movable-rows\"],\"sortableColumns\":[516,\"sortable-columns\"],\"loading\":[516],\"page\":[514],\"emptyMessage\":[1,\"empty-message\"],\"aggregates\":[16],\"selectable\":[516],\"selection\":[16],\"language\":[513],\"paginationLocation\":[513,\"pagination-location\"]},null,{\"totalRows\":[{\"totalRowsChanged\":0}],\"pageSize\":[{\"pageSizeChanged\":0}],\"page\":[{\"pageChanged\":0}],\"activeRow\":[{\"activeRowChanged\":0}],\"data\":[{\"updateData\":0}],\"columns\":[{\"updateColumns\":0}],\"aggregates\":[{\"updateAggregates\":0}],\"selection\":[{\"updateSelection\":0}],\"selectable\":[{\"updateSelectable\":0}],\"movableRows\":[{\"updateMovableRows\":0}],\"sortableColumns\":[{\"updateSortableColumns\":0}],\"sorting\":[{\"updateSorting\":0}]}]]],[\"limel-drag-handle\",[[0,\"limel-drag-handle\",{\"dragDirection\":[513,\"drag-direction\"],\"tooltipOpenDirection\":[513,\"tooltip-open-direction\"],\"language\":[513]}]]],[\"limel-shortcut\",[[1,\"limel-shortcut\",{\"icon\":[513],\"label\":[513],\"disabled\":[516],\"badge\":[520],\"link\":[16]}]]],[\"limel-switch\",[[1,\"limel-switch\",{\"label\":[513],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"value\":[516],\"helperText\":[513,\"helper-text\"],\"readonlyLabels\":[16],\"fieldId\":[32]}]]],[\"limel-tab-panel\",[[257,\"limel-tab-panel\",{\"tabs\":[1040]},null,{\"tabs\":[{\"tabsChanged\":0}]}]]],[\"limel-code-editor\",[[1,\"limel-code-editor\",{\"value\":[1],\"language\":[1],\"readonly\":[516],\"disabled\":[516],\"invalid\":[516],\"required\":[516],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"lineNumbers\":[516,\"line-numbers\"],\"lineWrapping\":[516,\"line-wrapping\"],\"fold\":[516],\"lint\":[516],\"colorScheme\":[513,\"color-scheme\"],\"translationLanguage\":[513,\"translation-language\"],\"showCopyButton\":[516,\"show-copy-button\"],\"random\":[32],\"wasCopied\":[32]},null,{\"value\":[{\"watchValue\":0}],\"disabled\":[{\"watchDisabled\":0}],\"readonly\":[{\"watchReadonly\":0}],\"invalid\":[{\"watchInvalid\":0}],\"required\":[{\"watchRequired\":0}],\"helperText\":[{\"watchHelperText\":0}]}]]],[\"limel-dialog\",[[257,\"limel-dialog\",{\"heading\":[1],\"fullscreen\":[516],\"open\":[1540],\"closingActions\":[16]},null,{\"open\":[{\"watchHandler\":0}],\"closingActions\":[{\"closingActionsChanged\":0}]}]]],[\"limel-menu-item-meta\",[[1,\"limel-menu-item-meta\",{\"commandText\":[513,\"command-text\"],\"hotkey\":[513],\"disabled\":[516],\"badge\":[8],\"showChevron\":[4,\"show-chevron\"]}]]],[\"limel-progress-flow\",[[1,\"limel-progress-flow\",{\"flowItems\":[16],\"disabled\":[4],\"readonly\":[4]}]]],[\"limel-slider\",[[1,\"limel-slider\",{\"disabled\":[516],\"readonly\":[516],\"factor\":[514],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"invalid\":[516],\"displaysPercentageColors\":[516,\"displays-percentage-colors\"],\"unit\":[513],\"value\":[514],\"valuemax\":[514],\"valuemin\":[514],\"step\":[514],\"percentageClass\":[32],\"displayValue\":[32]},null,{\"value\":[{\"watchValue\":0}]}]]],[\"limel-banner\",[[257,\"limel-banner\",{\"message\":[513],\"icon\":[513],\"isOpen\":[32],\"open\":[64],\"close\":[64]}]]],[\"limel-form\",[[1,\"limel-form\",{\"schema\":[16],\"value\":[16],\"disabled\":[4],\"propsFactory\":[16],\"transformErrors\":[16],\"errors\":[16],\"revealErrors\":[4,\"reveal-errors\"]}]]],[\"limel-radio-button-group\",[[0,\"limel-radio-button-group\",{\"items\":[16],\"selectedItem\":[16],\"disabled\":[516],\"badgeIcons\":[516,\"badge-icons\"],\"maxLinesSecondaryText\":[514,\"max-lines-secondary-text\"]}]]],[\"limel-ai-avatar\",[[1,\"limel-ai-avatar\",{\"isThinking\":[516,\"is-thinking\"],\"mode\":[513],\"variant\":[513],\"language\":[513]},null,{\"isThinking\":[{\"onIsThinkingChange\":0}]}]]],[\"limel-config\",[[1,\"limel-config\",{\"config\":[16]}]]],[\"limel-flex-container\",[[257,\"limel-flex-container\",{\"direction\":[513],\"justify\":[513],\"align\":[513],\"reverse\":[516]}]]],[\"limel-grid\",[[257,\"limel-grid\"]]],[\"limel-masonry-layout\",[[257,\"limel-masonry-layout\",{\"ordered\":[516],\"containerHeight\":[32]},null,{\"ordered\":[{\"onOrderedChange\":0}]}]]],[\"limel-email-viewer\",[[257,\"limel-email-viewer\",{\"email\":[16],\"fallbackUrl\":[513,\"fallback-url\"],\"language\":[513],\"allowRemoteImages\":[4,\"allow-remote-images\"],\"allowRemoteImagesState\":[32]},null,{\"email\":[{\"resetAllowRemoteImages\":0}]}]]],[\"limel-prosemirror-adapter\",[[17,\"limel-prosemirror-adapter\",{\"contentType\":[1,\"content-type\"],\"value\":[1],\"language\":[513],\"disabled\":[516],\"customElements\":[16],\"inlineImages\":[16],\"triggerCharacters\":[16],\"ui\":[1],\"view\":[32],\"actionBarItems\":[32],\"link\":[32],\"isLinkMenuOpen\":[32],\"flushPendingChanges\":[64],\"clear\":[64]},null,{\"value\":[{\"watchValue\":0}]}]]],[\"limel-dock-button\",[[0,\"limel-dock-button\",{\"item\":[16],\"expanded\":[516],\"useMobileLayout\":[516,\"use-mobile-layout\"],\"isOpen\":[32]},null,{\"isOpen\":[{\"openWatcher\":0}]}]]],[\"limel-color-picker-palette\",[[17,\"limel-color-picker-palette\",{\"value\":[513],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"placeholder\":[513],\"required\":[516],\"invalid\":[516],\"manualInput\":[516,\"manual-input\"],\"columnCount\":[514,\"column-count\"],\"palette\":[16]}]]],[\"limel-checkbox\",[[1,\"limel-checkbox\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"checked\":[516],\"indeterminate\":[516],\"required\":[516],\"readonlyLabels\":[16],\"modified\":[32]},null,{\"checked\":[{\"handleCheckedChange\":0}],\"indeterminate\":[{\"handleIndeterminateChange\":0}],\"readonly\":[{\"handleReadonlyChange\":0}]}]]],[\"limel-tab-bar\",[[1,\"limel-tab-bar\",{\"tabs\":[1040],\"canScrollLeft\":[32],\"canScrollRight\":[32]},[[9,\"resize\",\"handleWindowResize\"]],{\"tabs\":[{\"tabsChanged\":0}]}]]],[\"limel-callout\",[[257,\"limel-callout\",{\"heading\":[513],\"icon\":[513],\"type\":[513],\"language\":[1]}]]],[\"limel-header\",[[257,\"limel-header\",{\"icon\":[1],\"heading\":[1],\"subheading\":[1],\"supportingText\":[1,\"supporting-text\"],\"subheadingDivider\":[1,\"subheading-divider\"]}]]],[\"limel-help-content\",[[1,\"limel-help-content\",{\"value\":[1],\"readMoreLink\":[16]}]]],[\"limel-progress-flow-item\",[[0,\"limel-progress-flow-item\",{\"item\":[16],\"disabled\":[4],\"readonly\":[4],\"currentStep\":[4,\"current-step\"]}]]],[\"limel-circular-progress\",[[1,\"limel-circular-progress\",{\"value\":[2],\"maxValue\":[2,\"max-value\"],\"prefix\":[513],\"suffix\":[1],\"displayPercentageColors\":[4,\"display-percentage-colors\"],\"size\":[513]}]]],[\"limel-flatpickr-adapter\",[[1,\"limel-flatpickr-adapter\",{\"value\":[16],\"type\":[1],\"format\":[1],\"isOpen\":[4,\"is-open\"],\"inputElement\":[16],\"language\":[1],\"formatter\":[16]}]]],[\"limel-radio-button\",[[0,\"limel-radio-button\",{\"checked\":[516],\"disabled\":[516],\"id\":[1],\"label\":[1],\"onChange\":[16]}]]],[\"limel-chip-set\",[[17,\"limel-chip-set\",{\"value\":[16],\"type\":[513],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"inputType\":[513,\"input-type\"],\"maxItems\":[514,\"max-items\"],\"required\":[516],\"searchLabel\":[513,\"search-label\"],\"emptyInputOnBlur\":[516,\"empty-input-on-blur\"],\"emptyInputOnChange\":[516,\"empty-input-on-change\"],\"clearAllButton\":[4,\"clear-all-button\"],\"leadingIcon\":[513,\"leading-icon\"],\"delimiter\":[513],\"autocomplete\":[513],\"language\":[1],\"editMode\":[32],\"textValue\":[32],\"blurred\":[32],\"inputChipIndexSelected\":[32],\"selectedChipIds\":[32],\"getEditMode\":[64],\"setFocus\":[64],\"emptyInput\":[64]},null,{\"value\":[{\"handleChangeChips\":0}]}]]],[\"limel-button\",[[17,\"limel-button\",{\"label\":[513],\"primary\":[516],\"outlined\":[516],\"icon\":[513],\"disabled\":[516],\"loading\":[516],\"loadingFailed\":[516,\"loading-failed\"],\"justLoaded\":[32]},null,{\"loading\":[{\"loadingWatcher\":0}]}]]],[\"limel-hotkey_4\",[[1,\"limel-tooltip\",{\"elementId\":[513,\"element-id\"],\"label\":[513],\"helperLabel\":[513,\"helper-label\"],\"hotkey\":[513],\"maxlength\":[514],\"openDirection\":[513,\"open-direction\"],\"open\":[32]}],[1,\"limel-tooltip-content\",{\"label\":[513],\"helperLabel\":[513,\"helper-label\"],\"maxlength\":[514],\"hotkey\":[513]}],[1,\"limel-hotkey\",{\"value\":[513],\"disabled\":[516]}],[257,\"limel-portal\",{\"openDirection\":[513,\"open-direction\"],\"position\":[513],\"containerId\":[513,\"container-id\"],\"containerStyle\":[16],\"inheritParentWidth\":[516,\"inherit-parent-width\"],\"visible\":[516],\"anchor\":[16]},null,{\"visible\":[{\"onVisible\":0}]}]]],[\"limel-text-editor-link-menu\",[[1,\"limel-text-editor-link-menu\",{\"link\":[16],\"language\":[513],\"isOpen\":[516,\"is-open\"]}]]],[\"limel-collapsible-section\",[[257,\"limel-collapsible-section\",{\"isOpen\":[1540,\"is-open\"],\"header\":[513],\"icon\":[1],\"invalid\":[516],\"actions\":[16],\"language\":[513]}]]],[\"limel-3d-hover-effect-glow\",[[1,\"limel-3d-hover-effect-glow\"]]],[\"limel-file-dropzone_2\",[[257,\"limel-file-dropzone\",{\"accept\":[513],\"disabled\":[4],\"text\":[1],\"helperText\":[1,\"helper-text\"],\"hasFileToDrop\":[32]}],[257,\"limel-file-input\",{\"accept\":[513],\"disabled\":[516],\"multiple\":[516]}]]],[\"limel-dynamic-label\",[[1,\"limel-dynamic-label\",{\"value\":[8],\"defaultLabel\":[16],\"labels\":[16]}]]],[\"limel-icon-button\",[[17,\"limel-icon-button\",{\"icon\":[1],\"elevated\":[516],\"label\":[513],\"helperLabel\":[513,\"helper-label\"],\"disabled\":[516]}]]],[\"limel-markdown\",[[1,\"limel-markdown\",{\"value\":[1],\"whitelist\":[16],\"lazyLoadImages\":[516,\"lazy-load-images\"],\"removeEmptyParagraphs\":[516,\"remove-empty-paragraphs\"],\"adaptColorContrast\":[516,\"adapt-color-contrast\"]},null,{\"value\":[{\"textChanged\":0}],\"whitelist\":[{\"handleWhitelistChange\":0}],\"removeEmptyParagraphs\":[{\"handleRemoveEmptyParagraphsChange\":0}],\"adaptColorContrast\":[{\"handleAdaptColorContrastChange\":0}]}]]],[\"limel-popover_2\",[[257,\"limel-popover\",{\"open\":[4],\"openDirection\":[513,\"open-direction\"]},null,{\"open\":[{\"watchOpen\":0}]}],[1,\"limel-popover-surface\",{\"contentCollection\":[16]}]]],[\"limel-badge\",[[1,\"limel-badge\",{\"label\":[520]}]]],[\"limel-helper-line\",[[1,\"limel-helper-line\",{\"helperText\":[513,\"helper-text\"],\"length\":[514],\"maxLength\":[514,\"max-length\"],\"invalid\":[516],\"helperTextId\":[513,\"helper-text-id\"]}]]],[\"limel-breadcrumbs_8\",[[257,\"limel-menu\",{\"items\":[16],\"disabled\":[516],\"openDirection\":[513,\"open-direction\"],\"surfaceWidth\":[513,\"surface-width\"],\"open\":[1540],\"badgeIcons\":[516,\"badge-icons\"],\"gridLayout\":[516,\"grid-layout\"],\"loading\":[516],\"currentSubMenu\":[1040],\"rootItem\":[16],\"searcher\":[16],\"searchPlaceholder\":[1,\"search-placeholder\"],\"emptyResultMessage\":[1,\"empty-result-message\"],\"keepOpenOnSelect\":[516,\"keep-open-on-select\"],\"loadingSubItems\":[32],\"searchValue\":[32],\"searchResults\":[32]},null,{\"items\":[{\"itemsWatcher\":0}],\"open\":[{\"openWatcher\":0}]}],[1,\"limel-breadcrumbs\",{\"items\":[16],\"divider\":[1]}],[17,\"limel-menu-list\",{\"items\":[16],\"badgeIcons\":[4,\"badge-icons\"],\"iconSize\":[1,\"icon-size\"]},null,{\"items\":[{\"itemsChanged\":0}]}],[17,\"limel-input-field\",{\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"placeholder\":[513],\"helperText\":[513,\"helper-text\"],\"prefix\":[513],\"suffix\":[513],\"required\":[516],\"value\":[513],\"trailingIcon\":[513,\"trailing-icon\"],\"leadingIcon\":[513,\"leading-icon\"],\"pattern\":[513],\"type\":[513],\"formatNumber\":[516,\"format-number\"],\"step\":[520],\"max\":[514],\"min\":[514],\"maxlength\":[514],\"minlength\":[514],\"completions\":[16],\"showLink\":[516,\"show-link\"],\"locale\":[513],\"isFocused\":[32],\"wasInvalid\":[32],\"showCompletions\":[32],\"getSelectionStart\":[64],\"getSelectionEnd\":[64],\"getSelectionDirection\":[64]},null,{\"value\":[{\"valueWatcher\":0}],\"completions\":[{\"completionsWatcher\":0}]}],[257,\"limel-menu-surface\",{\"open\":[4],\"allowClicksElement\":[16]}],[1,\"limel-spinner\",{\"size\":[513],\"limeBranded\":[4,\"lime-branded\"]}],[17,\"limel-list\",{\"items\":[16],\"badgeIcons\":[4,\"badge-icons\"],\"iconSize\":[1,\"icon-size\"],\"type\":[1],\"maxLinesSecondaryText\":[2,\"max-lines-secondary-text\"]},null,{\"type\":[{\"handleType\":0}],\"items\":[{\"itemsChanged\":0}]}],[260,\"limel-notched-outline\",{\"required\":[516],\"readonly\":[516],\"invalid\":[516],\"disabled\":[516],\"label\":[513],\"labelId\":[513,\"label-id\"],\"hasValue\":[516,\"has-value\"],\"hasLeadingIcon\":[516,\"has-leading-icon\"],\"hasFloatingLabel\":[516,\"has-floating-label\"]}]]],[\"limel-chip_2\",[[17,\"limel-chip\",{\"language\":[513],\"text\":[513],\"icon\":[1],\"image\":[16],\"link\":[16],\"badge\":[520],\"disabled\":[516],\"readonly\":[516],\"selected\":[516],\"invalid\":[516],\"removable\":[516],\"type\":[513],\"loading\":[516],\"progress\":[514],\"identifier\":[520],\"size\":[513],\"menuItems\":[16]}],[1,\"limel-linear-progress\",{\"language\":[513],\"value\":[514],\"indeterminate\":[516],\"accessibleLabel\":[513,\"accessible-label\"]},null,{\"value\":[{\"watchValue\":0}]}]]],[\"limel-action-bar_3\",[[1,\"limel-action-bar\",{\"actions\":[16],\"accessibleLabel\":[513,\"accessible-label\"],\"language\":[1],\"layout\":[513],\"collapsible\":[516],\"openDirection\":[513,\"open-direction\"],\"overflowCutoff\":[32]}],[0,\"limel-action-bar-overflow-menu\",{\"items\":[16],\"openDirection\":[513,\"open-direction\"]}],[0,\"limel-action-bar-item\",{\"item\":[16],\"isVisible\":[516,\"is-visible\"],\"selected\":[516]}]]]]"), options);
20
20
  });
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, a as getElement, H as Host
2
2
  import { m as makeEnterClickable, r as removeEnterClickable } from './make-enter-clickable-BgTwPGeH.js';
3
3
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
4
4
  import { g as getIconName, b as getIconColor } from './get-icon-props-CgNJbSP4.js';
5
- import { T as TAB, A as ARROW_UP, b as ARROW_DOWN, E as ESCAPE, a as ENTER, S as SPACE, c as ARROW_LEFT, d as ARROW_RIGHT } from './keycodes-rI0IeKpx.js';
5
+ import { T as TAB, A as ARROW_UP, b as ARROW_DOWN, E as ESCAPE, a as ENTER, e as SPACE, c as ARROW_LEFT, d as ARROW_RIGHT } from './keycodes-C4_9qUMP.js';
6
6
  import { b as getHref, a as getTarget, g as getRel } from './link-helper-5KsJICvh.js';
7
7
  import { g as globalConfig } from './config-Dnt5w_Bp.js';
8
8
  import { d as debounce } from './debounce-B67JMchz.js';
@@ -2438,6 +2438,25 @@ const List = class {
2438
2438
  this.listElement.removeEventListener('mousedown', this.handleItemMouseDown);
2439
2439
  this.listElement.addEventListener('mousedown', this.handleItemMouseDown);
2440
2440
  this.mdcList = new MDCList(element);
2441
+ // NOTE: This has no effect. It is kept as a marker rather than
2442
+ // removed, so that its absence isn't mistaken for an oversight.
2443
+ //
2444
+ // MDC indexes each row for typeahead by looking for
2445
+ // `.mdc-deprecated-list-item__primary-text` inside it, while
2446
+ // `limel-list-item` renders its label as `<span class="label">`. MDC
2447
+ // therefore builds an empty index, and typing does nothing.
2448
+ //
2449
+ // Do not "fix" this by adding MDC's class name to `limel-list-item`.
2450
+ // That revives MDC's typeahead along with three behaviors that cannot
2451
+ // be configured from the outside: a hard coded 300ms buffer, `Enter`
2452
+ // being ignored for as long as that buffer lives (its `notifyAction`
2453
+ // is guarded by `isTypeaheadInProgress`), and the space bar being
2454
+ // excluded from matches. It would also collide with `limel-menu`,
2455
+ // where single characters are used as item hotkeys.
2456
+ //
2457
+ // `limel-select` implements its own typeahead instead, see
2458
+ // `src/util/typeahead.ts`. It intercepts typed characters in the
2459
+ // capture phase on this very element, so they never reach MDC.
2441
2460
  this.mdcList.hasTypeahead = true;
2442
2461
  };
2443
2462
  /**
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BGxJfR2f.js';
2
- import { c as ARROW_LEFT, d as ARROW_RIGHT, a as ENTER, D as DELETE, B as BACKSPACE, E as ESCAPE } from './keycodes-rI0IeKpx.js';
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
3
  import { t as translate } from './translations-Cb9R_zmF.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';
@@ -4,7 +4,7 @@ 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
6
  import { t as translate } from './translations-Cb9R_zmF.js';
7
- import { D as DELETE, B as BACKSPACE } from './keycodes-rI0IeKpx.js';
7
+ import { D as DELETE, B as BACKSPACE } from './keycodes-C4_9qUMP.js';
8
8
  import { i as isEmpty } from './isEmpty-DHgukT5k.js';
9
9
  import './_getTag-CMJL-6hk.js';
10
10
  import './isObject-BJQylLSL.js';
@@ -165,8 +165,21 @@ function decodeBase64(base64) {
165
165
  return arrayBuffer;
166
166
  }
167
167
 
168
+ // Charset aliases that the WHATWG Encoding Standard (and thus TextDecoder in
169
+ // browsers and Workers) does not recognize, but that map cleanly to a supported
170
+ // encoding. Node's ICU-backed TextDecoder resolves these natively; strict WHATWG
171
+ // runtimes would otherwise throw and fall back to windows-1252, emitting mojibake.
172
+ // eg. Hebrew bodies declared as the logical (iso-8859-8-i) or explicit (iso-8859-8-e)
173
+ // variants decode to the same code points as iso-8859-8.
174
+ const charsetAliases = new Map([
175
+ ['iso-8859-8-i', 'iso-8859-8'],
176
+ ['iso-8859-8-e', 'iso-8859-8']
177
+ ]);
178
+
168
179
  function getDecoder(charset) {
169
- charset = charset || 'utf8';
180
+ charset = (charset || 'utf8').trim().toLowerCase();
181
+ charset = charsetAliases.get(charset) || charset;
182
+
170
183
  let decoder;
171
184
 
172
185
  try {
@@ -676,6 +689,11 @@ class MimeNode {
676
689
 
677
690
  this.content = this.contentDecoder ? await this.contentDecoder.finalize() : null;
678
691
 
692
+ // The decoder buffers every body line it received, so keeping it around
693
+ // retains a second copy of the content for the lifetime of the node.
694
+ // Nothing reads it once the node is finished, so release it here.
695
+ this.contentDecoder = false;
696
+
679
697
  this.state = 'finished';
680
698
  }
681
699
 
@@ -4007,24 +4025,60 @@ function base64ArrayBuffer(arrayBuffer) {
4007
4025
 
4008
4026
  const MAX_NESTING_DEPTH = 256;
4009
4027
  const MAX_HEADERS_SIZE = 2 * 1024 * 1024;
4028
+ // Inline message/rfc822 parts are parsed recursively. Without a dedicated limit
4029
+ // each nesting level spawns a new parser that retains the full nested message,
4030
+ // so a small crafted email can exhaust memory (OOM crash). Cap the recursion and
4031
+ // treat deeper nested messages as regular attachments instead.
4032
+ const MAX_RFC822_NESTING_DEPTH = 10;
4010
4033
 
4011
4034
  function toCamelCase(key) {
4012
4035
  return key.replace(/-(.)/g, (o, c) => c.toUpperCase());
4013
4036
  }
4014
4037
 
4038
+ // Limit options must be validated rather than falsy-coalesced. `0` would silently
4039
+ // restore the default, and a string or NaN disables the limit altogether, because
4040
+ // every `size > limit` comparison against such a value is false. Callers that
4041
+ // forward a request supplied options object would otherwise hand an attacker a way
4042
+ // to turn the limits off.
4043
+ function parseLimitOption(value, defaultValue, name) {
4044
+ if (value === undefined || value === null) {
4045
+ return defaultValue;
4046
+ }
4047
+
4048
+ if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {
4049
+ throw new TypeError(`${name} must be a non-negative integer`);
4050
+ }
4051
+
4052
+ return value;
4053
+ }
4054
+
4015
4055
  class PostalMime {
4016
- static parse(buf, options) {
4056
+ // async so that an invalid option rejects the returned promise instead of throwing
4057
+ // synchronously, which would escape a `.catch()` chain
4058
+ static async parse(buf, options) {
4017
4059
  const parser = new PostalMime(options);
4018
4060
  return parser.parse(buf);
4019
4061
  }
4020
4062
 
4021
- constructor(options) {
4063
+ // rfc822NestingDepth is internal state that nested parsers receive from their parent.
4064
+ // It is deliberately a separate argument rather than an option, so that forwarding a
4065
+ // caller supplied options object can not seed it and switch the recursion limit off.
4066
+ constructor(options, rfc822NestingDepth = 0) {
4022
4067
  this.options = options || {};
4023
4068
  this.mimeOptions = {
4024
- maxNestingDepth: this.options.maxNestingDepth || MAX_NESTING_DEPTH,
4025
- maxHeadersSize: this.options.maxHeadersSize || MAX_HEADERS_SIZE
4069
+ maxNestingDepth: parseLimitOption(this.options.maxNestingDepth, MAX_NESTING_DEPTH, 'maxNestingDepth'),
4070
+ maxHeadersSize: parseLimitOption(this.options.maxHeadersSize, MAX_HEADERS_SIZE, 'maxHeadersSize')
4026
4071
  };
4027
4072
 
4073
+ // A limit of 0 disables inline parsing entirely, so every message/rfc822 part
4074
+ // becomes an attachment.
4075
+ this.maxRfc822NestingDepth = parseLimitOption(
4076
+ this.options.maxRfc822NestingDepth,
4077
+ MAX_RFC822_NESTING_DEPTH,
4078
+ 'maxRfc822NestingDepth'
4079
+ );
4080
+ this.rfc822NestingDepth = rfc822NestingDepth;
4081
+
4028
4082
  this.root = this.currentNode = new MimeNode({
4029
4083
  postalMime: this,
4030
4084
  ...this.mimeOptions
@@ -4171,9 +4225,22 @@ class PostalMime {
4171
4225
  related = related || false;
4172
4226
 
4173
4227
  if (!node.contentType.multipart) {
4228
+ const inlineRfc822 = this.isInlineMessageRfc822(node) && !forceRfc822Attachments;
4229
+ const rfc822DepthExceeded = inlineRfc822 && this.rfc822NestingDepth >= this.maxRfc822NestingDepth;
4230
+
4174
4231
  // is it inline message/rfc822
4175
- if (this.isInlineMessageRfc822(node) && !forceRfc822Attachments) {
4176
- const subParser = new PostalMime();
4232
+ if (inlineRfc822 && !rfc822DepthExceeded) {
4233
+ const subParser = new PostalMime(
4234
+ {
4235
+ // Only the limits are inherited. Options that decide how a part
4236
+ // is classified stay with the parser that was configured.
4237
+ ...this.mimeOptions,
4238
+ maxRfc822NestingDepth: this.maxRfc822NestingDepth,
4239
+ // attachments are encoded by the parent parser, keep raw buffers here
4240
+ attachmentEncoding: 'arraybuffer'
4241
+ },
4242
+ this.rfc822NestingDepth + 1
4243
+ );
4177
4244
  node.subMessage = await subParser.parse(node.content);
4178
4245
 
4179
4246
  if (!textMap.has(node)) {
@@ -4233,10 +4300,19 @@ class PostalMime {
4233
4300
  disposition: node.contentDisposition?.parsed?.value || null
4234
4301
  };
4235
4302
 
4236
- if (related && node.contentId) {
4303
+ // A nested message that was not parsed is not a renderable inline
4304
+ // resource, so it must not join the cid map behind an <img src>.
4305
+ if (related && node.contentId && !rfc822DepthExceeded) {
4237
4306
  attachment.related = true;
4238
4307
  }
4239
4308
 
4309
+ if (rfc822DepthExceeded) {
4310
+ // Tell the caller this part would have been parsed inline but hit
4311
+ // maxRfc822NestingDepth, so anything inside it is not reflected in
4312
+ // email.text, email.html or email.attachments.
4313
+ attachment.rfc822DepthExceeded = true;
4314
+ }
4315
+
4240
4316
  if (node.contentDescription) {
4241
4317
  attachment.description = node.contentDescription;
4242
4318
  }
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-BGxJfR2f.js';
2
- import { m as markdownToHTML } from './markdown-parser-BSQKleVw.js';
2
+ import { m as markdownToHTML } from './markdown-parser-DrxxGLF5.js';
3
3
  import { g as globalConfig } from './config-Dnt5w_Bp.js';
4
4
  import { d as defaultSchema } from './index-CbciMfiU.js';
5
5
  import { a as adaptColorContrast } from './adapt-color-contrast-Dgcw_h7C.js';
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as getElement } from './index-BGxJfR2f.js';
2
2
  import { t as translate } from './translations-Cb9R_zmF.js';
3
3
  import { i as isDescendant } from './dom-B9Ofc5RB.js';
4
- import { E as ESCAPE, T as TAB, a as ENTER, A as ARROW_UP, b as ARROW_DOWN } from './keycodes-rI0IeKpx.js';
4
+ import { E as ESCAPE, T as TAB, a as ENTER, A as ARROW_UP, b as ARROW_DOWN } from './keycodes-C4_9qUMP.js';
5
5
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
6
6
  import { a as getIconFillColor, g as getIconName } from './get-icon-props-CgNJbSP4.js';
7
7
  import { d as debounce } from './debounce-B67JMchz.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as getElement } from './index-BGxJfR2f.js';
2
2
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
3
- import { E as ESCAPE } from './keycodes-rI0IeKpx.js';
3
+ import { E as ESCAPE } from './keycodes-C4_9qUMP.js';
4
4
  import { f as focusTriggerElement, z as zipObject } from './focus-trigger-element-BOFcjLq3.js';
5
5
  import './_assignValue-CEFvyZxO.js';
6
6
  import './_defineProperty-C69Btzid.js';