@limetech/lime-elements 40.6.3 → 40.7.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 (40) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-file-viewer.cjs.entry.js +71 -30
  4. package/dist/cjs/limel-markdown.cjs.entry.js +2 -2
  5. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-tab-bar.cjs.entry.js +37 -14
  7. package/dist/cjs/limel-tab-panel.cjs.entry.js +7 -2
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/{markdown-exporter-C-UW43FF.js → markdown-exporter-VtX_2D1d.js} +40 -11
  10. package/dist/cjs/{markdown-parser-ssDij8_l.js → markdown-parser-BYtTHL4W.js} +11 -3
  11. package/dist/collection/components/tab-bar/tab-bar.css +79 -27
  12. package/dist/collection/components/tab-bar/tab-bar.js +60 -15
  13. package/dist/collection/components/tab-panel/tab-panel.css +9 -0
  14. package/dist/collection/components/tab-panel/tab-panel.js +27 -1
  15. package/dist/esm/lime-elements.js +1 -1
  16. package/dist/esm/limel-file-viewer.entry.js +71 -30
  17. package/dist/esm/limel-markdown.entry.js +2 -2
  18. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  19. package/dist/esm/limel-tab-bar.entry.js +37 -14
  20. package/dist/esm/limel-tab-panel.entry.js +7 -2
  21. package/dist/esm/loader.js +1 -1
  22. package/dist/esm/{markdown-exporter-DblYRMhY.js → markdown-exporter-tb8ft8Gq.js} +40 -11
  23. package/dist/esm/{markdown-parser-CAPDx7i8.js → markdown-parser-DFP65EFu.js} +11 -3
  24. package/dist/lime-elements/lime-elements.esm.js +1 -1
  25. package/dist/lime-elements/p-14a28a08.entry.js +1 -0
  26. package/dist/lime-elements/p-1740cb87.entry.js +1 -0
  27. package/dist/lime-elements/{p-22fd1c87.entry.js → p-21ab902a.entry.js} +1 -1
  28. package/dist/lime-elements/{p-05038bbb.entry.js → p-91a572c8.entry.js} +1 -1
  29. package/dist/lime-elements/p-Bgn2bikC.js +1 -0
  30. package/dist/lime-elements/p-C0wwdPYT.js +7 -0
  31. package/dist/lime-elements/p-aa897903.entry.js +1 -0
  32. package/dist/types/components/tab-bar/tab-bar.d.ts +17 -4
  33. package/dist/types/components/tab-panel/tab-panel.d.ts +6 -0
  34. package/dist/types/components.d.ts +48 -10
  35. package/package.json +4 -4
  36. package/dist/lime-elements/p-2e33d2a4.entry.js +0 -1
  37. package/dist/lime-elements/p-Bvyt2bmV.js +0 -1
  38. package/dist/lime-elements/p-I0PrvthC.js +0 -7
  39. package/dist/lime-elements/p-a550ba18.entry.js +0 -1
  40. package/dist/lime-elements/p-b35a912c.entry.js +0 -1
@@ -18,6 +18,7 @@ import { dispatchResizeEvent } from "../../util/dispatch-resize-event";
18
18
  * @slot - Content to put inside the `limel-tab-panel`. Each slotted element
19
19
  * must have the `id` attribute equal to the id of the tab it belongs to.
20
20
  * @exampleComponent limel-example-tab-panel-basic
21
+ * @exampleComponent limel-example-tab-panel-vertical
21
22
  */
22
23
  export class TabPanel {
23
24
  constructor() {
@@ -25,6 +26,11 @@ export class TabPanel {
25
26
  * The tabs to display in the panel
26
27
  */
27
28
  this.tabs = [];
29
+ /**
30
+ * Whether the tabs are laid out in a row, above the content, or in a
31
+ * column, to the left of it.
32
+ */
33
+ this.orientation = 'horizontal';
28
34
  this.slotElements = [];
29
35
  this.handleChangeTabs = this.handleChangeTabs.bind(this);
30
36
  this.setSlotElements = this.setSlotElements.bind(this);
@@ -58,7 +64,7 @@ export class TabPanel {
58
64
  }
59
65
  }
60
66
  render() {
61
- return (h(Host, { key: 'acb9f2f1081972fc45104cc357055af883ebad2d', onChangeTab: this.handleChangeTabs }, h("div", { key: '318df7ddc8d28f5952c7e67b154088ca13f4355a', class: "tab-panel" }, h("limel-tab-bar", { key: '2656eb61f4e815eba9636bf939e368651bbd8dcf', tabs: this.tabs }), h("div", { key: '41d1bf3149a19d28d7d9f1ace0744ffe26811080', class: "tab-content" }, h("slot", { key: 'ee234615e96536b40ce089978cba5bd21a1fb129' })))));
67
+ return (h(Host, { key: '130cd711926c119be1b3084dfb966afe6d280926', onChangeTab: this.handleChangeTabs }, h("div", { key: 'e76da7ba8c93a3d9d4c03a84a01a5358b39b17ed', class: "tab-panel" }, h("limel-tab-bar", { key: '0866cd6c59e5e4ea372678a969bc646db81ed285', tabs: this.tabs, orientation: this.orientation }), h("div", { key: 'c0ee8b9d6bffcb32fc4894bf0ba7409ac194577d', class: "tab-content" }, h("slot", { key: '46b6cd024188a04ba466d831051cf3628996d97e' })))));
62
68
  }
63
69
  setSlotElements() {
64
70
  const slot = this.getSlot();
@@ -139,6 +145,26 @@ export class TabPanel {
139
145
  "getter": false,
140
146
  "setter": false,
141
147
  "defaultValue": "[]"
148
+ },
149
+ "orientation": {
150
+ "type": "string",
151
+ "mutable": false,
152
+ "complexType": {
153
+ "original": "'horizontal' | 'vertical'",
154
+ "resolved": "\"horizontal\" | \"vertical\"",
155
+ "references": {}
156
+ },
157
+ "required": false,
158
+ "optional": false,
159
+ "docs": {
160
+ "tags": [],
161
+ "text": "Whether the tabs are laid out in a row, above the content, or in a\ncolumn, to the left of it."
162
+ },
163
+ "getter": false,
164
+ "setter": false,
165
+ "reflect": true,
166
+ "attribute": "orientation",
167
+ "defaultValue": "'horizontal'"
142
168
  }
143
169
  };
144
170
  }
@@ -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-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-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-pagination\",[[1,\"limel-pagination\",{\"page\":[2],\"pageSize\":[514,\"page-size\"],\"totalItems\":[514,\"total-items\"],\"loading\":[516],\"language\":[513],\"liveMessage\":[32],\"openGap\":[32]},null,{\"language\":[{\"handleLanguageChange\":0}]}]]],[\"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\"],\"displayItemPercentage\":[516,\"display-item-percentage\"],\"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}],\"type\":[{\"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},{\"updateHasRichOptions\":0},{\"resetTypeaheadOnItemsChange\":0}],\"required\":[{\"resetTypeaheadOnItemsChange\":0}],\"menuOpen\":[{\"watchOpen\":0}]}]]],[\"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],\"language\":[513],\"value\":[514],\"valuemax\":[514],\"valuemin\":[514],\"step\":[514],\"percentageClass\":[32],\"displayValue\":[32],\"isUnset\":[32]},null,{\"value\":[{\"watchValue\":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-pagination-jump\",[[1,\"limel-pagination-jump\",{\"open\":[516],\"page\":[2],\"pageCount\":[2,\"page-count\"],\"loading\":[4],\"language\":[1],\"value\":[32]},null,{\"language\":[{\"handleLanguageChange\":0}],\"open\":[{\"handleOpenChange\":0}]}]]],[\"limel-dock-button\",[[0,\"limel-dock-button\",{\"item\":[16],\"expanded\":[516],\"useMobileLayout\":[516,\"use-mobile-layout\"],\"isOpen\":[32]},null,{\"isOpen\":[{\"openWatcher\":0}]}]]],[\"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-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-tab-panel\",[[257,\"limel-tab-panel\",{\"tabs\":[1040]},null,{\"tabs\":[{\"tabsChanged\":0}]}]]],[\"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-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-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-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-tab-bar\",[[1,\"limel-tab-bar\",{\"tabs\":[1040]},null,{\"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-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-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-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-scroller\",[[257,\"limel-scroller\",{\"orientation\":[513],\"canScrollToStart\":[32],\"canScrollToEnd\":[32],\"reveal\":[64]}]]],[\"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-breadcrumbs_6\",[[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\"]}]]],[\"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-markdown\",[[1,\"limel-markdown\",{\"value\":[1],\"whitelist\":[16],\"lazyLoadImages\":[516,\"lazy-load-images\"],\"removeEmptyParagraphs\":[516,\"remove-empty-paragraphs\"],\"adaptColorContrast\":[516,\"adapt-color-contrast\"],\"toMarkdown\":[64]},null,{\"value\":[{\"textChanged\":0}],\"whitelist\":[{\"handleWhitelistChange\":0}],\"removeEmptyParagraphs\":[{\"handleRemoveEmptyParagraphsChange\":0}],\"adaptColorContrast\":[{\"handleAdaptColorContrastChange\":0}]}]]],[\"limel-badge\",[[1,\"limel-badge\",{\"label\":[520]}]]],[\"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-popover_2\",[[257,\"limel-popover\",{\"open\":[4],\"openDirection\":[513,\"open-direction\"]},null,{\"open\":[{\"watchOpen\":0}]}],[1,\"limel-popover-surface\",{\"contentCollection\":[16]}]]],[\"limel-helper-line_3\",[[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\"]}],[1,\"limel-helper-line\",{\"helperText\":[513,\"helper-text\"],\"length\":[514],\"maxLength\":[514,\"max-length\"],\"invalid\":[516],\"helperTextId\":[513,\"helper-text-id\"]}]]],[\"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-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-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-pagination\",[[1,\"limel-pagination\",{\"page\":[2],\"pageSize\":[514,\"page-size\"],\"totalItems\":[514,\"total-items\"],\"loading\":[516],\"language\":[513],\"liveMessage\":[32],\"openGap\":[32]},null,{\"language\":[{\"handleLanguageChange\":0}]}]]],[\"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\"],\"displayItemPercentage\":[516,\"display-item-percentage\"],\"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}],\"type\":[{\"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},{\"updateHasRichOptions\":0},{\"resetTypeaheadOnItemsChange\":0}],\"required\":[{\"resetTypeaheadOnItemsChange\":0}],\"menuOpen\":[{\"watchOpen\":0}]}]]],[\"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],\"language\":[513],\"value\":[514],\"valuemax\":[514],\"valuemin\":[514],\"step\":[514],\"percentageClass\":[32],\"displayValue\":[32],\"isUnset\":[32]},null,{\"value\":[{\"watchValue\":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-pagination-jump\",[[1,\"limel-pagination-jump\",{\"open\":[516],\"page\":[2],\"pageCount\":[2,\"page-count\"],\"loading\":[4],\"language\":[1],\"value\":[32]},null,{\"language\":[{\"handleLanguageChange\":0}],\"open\":[{\"handleOpenChange\":0}]}]]],[\"limel-dock-button\",[[0,\"limel-dock-button\",{\"item\":[16],\"expanded\":[516],\"useMobileLayout\":[516,\"use-mobile-layout\"],\"isOpen\":[32]},null,{\"isOpen\":[{\"openWatcher\":0}]}]]],[\"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-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-tab-panel\",[[257,\"limel-tab-panel\",{\"tabs\":[1040],\"orientation\":[513]},null,{\"tabs\":[{\"tabsChanged\":0}]}]]],[\"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-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-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-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-tab-bar\",[[1,\"limel-tab-bar\",{\"tabs\":[1040],\"orientation\":[513]},null,{\"tabs\":[{\"tabsChanged\":0}],\"orientation\":[{\"orientationChanged\":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-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-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-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-scroller\",[[257,\"limel-scroller\",{\"orientation\":[513],\"canScrollToStart\":[32],\"canScrollToEnd\":[32],\"reveal\":[64]}]]],[\"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-breadcrumbs_6\",[[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\"]}]]],[\"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-markdown\",[[1,\"limel-markdown\",{\"value\":[1],\"whitelist\":[16],\"lazyLoadImages\":[516,\"lazy-load-images\"],\"removeEmptyParagraphs\":[516,\"remove-empty-paragraphs\"],\"adaptColorContrast\":[516,\"adapt-color-contrast\"],\"toMarkdown\":[64]},null,{\"value\":[{\"textChanged\":0}],\"whitelist\":[{\"handleWhitelistChange\":0}],\"removeEmptyParagraphs\":[{\"handleRemoveEmptyParagraphsChange\":0}],\"adaptColorContrast\":[{\"handleAdaptColorContrastChange\":0}]}]]],[\"limel-badge\",[[1,\"limel-badge\",{\"label\":[520]}]]],[\"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-popover_2\",[[257,\"limel-popover\",{\"open\":[4],\"openDirection\":[513,\"open-direction\"]},null,{\"open\":[{\"watchOpen\":0}]}],[1,\"limel-popover-surface\",{\"contentCollection\":[16]}]]],[\"limel-helper-line_3\",[[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\"]}],[1,\"limel-helper-line\",{\"helperText\":[513,\"helper-text\"],\"length\":[514],\"maxLength\":[514,\"max-length\"],\"invalid\":[516],\"helperTextId\":[513,\"helper-text-id\"]}]]],[\"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
  });
@@ -626,6 +626,14 @@ function decodeParameterValueContinuations(header) {
626
626
  delete header.params[key];
627
627
  });
628
628
  paramKeys.forEach((paramVal, key) => {
629
+ if (Object.prototype.hasOwnProperty.call(header.params, key)) {
630
+ // The same name was also given as a plain parameter, which the starred keys were
631
+ // just deleted from around, so this write would be the only one here to override a
632
+ // name already taken. `filename="plain"; filename*0="cont"` resolves to the plain
633
+ // parameter either way round, so the reading does not come down to which of the
634
+ // two spellings the sender put first. See storeParam in mime-node.ts
635
+ return;
636
+ }
629
637
  let result = '';
630
638
  // Adjacent encoded sections are decoded together, because a single multi byte
631
639
  // character may be percent encoded across a section boundary.
@@ -651,12 +659,24 @@ function decodeParameterValueContinuations(header) {
651
659
  class PassThroughDecoder {
652
660
  constructor() {
653
661
  this.chunks = [];
662
+ this.pendingLineBreak = false;
654
663
  }
664
+ // The line break is written when the next line arrives, not after each line. The
665
+ // CRLF in front of a multipart boundary belongs to the boundary (RFC 2046 5.1.1), so
666
+ // the last line of a part ended by a boundary must not carry one.
655
667
  update(line) {
668
+ if (this.pendingLineBreak) {
669
+ this.chunks.push('\n');
670
+ }
656
671
  this.chunks.push(line);
657
- this.chunks.push('\n');
672
+ this.pendingLineBreak = true;
658
673
  }
659
- finalize() {
674
+ // A part ended by the end of the message has no boundary to own its final line
675
+ // break, so there it stays content
676
+ finalize(boundaryEnded = false) {
677
+ if (!boundaryEnded && this.pendingLineBreak) {
678
+ this.chunks.push('\n');
679
+ }
660
680
  // convert an array of arraybuffers into a blob and then back into a single arraybuffer
661
681
  return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));
662
682
  }
@@ -712,6 +732,7 @@ class QPDecoder {
712
732
  this.buffer = new Uint8Array(this.maxChunkSize);
713
733
  this.bufferPos = 0;
714
734
  this.chunks = [];
735
+ this.pendingLineBreak = false;
715
736
  }
716
737
  writeByte(byte) {
717
738
  if (this.bufferPos >= this.buffer.length) {
@@ -742,7 +763,13 @@ class QPDecoder {
742
763
  // the result is handed on as bytes. Running the body charset over the encoded source
743
764
  // instead corrupted every part whose charset was not ASCII compatible: the same
744
765
  // content that decoded correctly in base64 came out as mojibake in quoted-printable.
766
+ //
767
+ // As in PassThroughDecoder, a hard line break is only written once the next line
768
+ // arrives, so the CRLF that belongs to a following boundary is not decoded as content.
745
769
  update(line) {
770
+ if (this.pendingLineBreak) {
771
+ this.writeByte(CHR_LF);
772
+ }
746
773
  let len = line.length;
747
774
  // a line ending in '=' is a soft line break, the newline is not part of the content
748
775
  const softBreak = len > 0 && line[len - 1] === CHR_EQUALS;
@@ -766,11 +793,13 @@ class QPDecoder {
766
793
  literalStart = i + 1;
767
794
  }
768
795
  this.writeBytes(line, literalStart, len);
769
- if (!softBreak) {
796
+ this.pendingLineBreak = !softBreak;
797
+ }
798
+ // see PassThroughDecoder.finalize
799
+ finalize(boundaryEnded = false) {
800
+ if (!boundaryEnded && this.pendingLineBreak) {
770
801
  this.writeByte(CHR_LF);
771
802
  }
772
- }
773
- finalize() {
774
803
  this.flushBuffer();
775
804
  // convert an array of arraybuffers into a blob and then back into a single arraybuffer
776
805
  return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));
@@ -868,7 +897,9 @@ class MimeNode {
868
897
  this.contentDecoder = new PassThroughDecoder();
869
898
  }
870
899
  }
871
- async finalize() {
900
+ // `boundaryEnded` tells that the part was ended by a multipart boundary, which owns
901
+ // the line break after the last line of the part (RFC 2046 5.1.1)
902
+ async finalize(boundaryEnded = false) {
872
903
  if (this.state === 'finished') {
873
904
  return;
874
905
  }
@@ -884,19 +915,19 @@ class MimeNode {
884
915
  break;
885
916
  }
886
917
  }
887
- await this.finalizeChildNodes();
888
- this.content = this.contentDecoder ? await this.contentDecoder.finalize() : null;
918
+ await this.finalizeChildNodes(boundaryEnded);
919
+ this.content = this.contentDecoder ? await this.contentDecoder.finalize(boundaryEnded) : null;
889
920
  // The decoder buffers every body line it received, so keeping it around
890
921
  // retains a second copy of the content for the lifetime of the node.
891
922
  // Nothing reads it once the node is finished, so release it here.
892
923
  this.contentDecoder = null;
893
924
  this.state = 'finished';
894
925
  }
895
- async finalizeChildNodes() {
926
+ async finalizeChildNodes(boundaryEnded = false) {
896
927
  // Children are only ever appended, so everything before the cursor is already
897
928
  // finished and re-visiting it only costs time.
898
929
  while (this.finalizedChildCount < this.childNodes.length) {
899
- await this.childNodes[this.finalizedChildCount++].finalize();
930
+ await this.childNodes[this.finalizedChildCount++].finalize(boundaryEnded);
900
931
  }
901
932
  }
902
933
  // Strip RFC 822 comments (parenthesized text) from structured header values.
@@ -999,11 +1030,16 @@ class MimeNode {
999
1030
  let quote = false;
1000
1031
  let escaped = false;
1001
1032
  let chr;
1002
- const addChr = (c) => {
1033
+ // Whitespace ahead of the first character of a value is padding and is dropped, the
1034
+ // whitespace between two characters of it is content
1035
+ const flushSpace = () => {
1003
1036
  if (value.length) {
1004
1037
  value += pendingSpace;
1005
1038
  }
1006
1039
  pendingSpace = '';
1040
+ };
1041
+ const addChr = (c) => {
1042
+ flushSpace();
1007
1043
  value += c;
1008
1044
  };
1009
1045
  const takeValue = () => {
@@ -1017,9 +1053,10 @@ class MimeNode {
1017
1053
  // headers are resolved. Letting the last one win means `boundary="b"; boundary="c"`
1018
1054
  // registers a boundary that no delimiter in the message matches, which drops the
1019
1055
  // body without an error. hasOwnProperty, because a parameter may be named
1020
- // `constructor` or `toString`.
1056
+ // `constructor` or `toString`. A name is a token and a token is never empty, so the
1057
+ // nameless parameter of `text/plain; =v` names nothing and is dropped.
1021
1058
  const storeParam = (name, result) => {
1022
- if (!Object.prototype.hasOwnProperty.call(response.params, name)) {
1059
+ if (name && !Object.prototype.hasOwnProperty.call(response.params, name)) {
1023
1060
  response.params[name] = result;
1024
1061
  }
1025
1062
  };
@@ -1036,10 +1073,7 @@ class MimeNode {
1036
1073
  // next one. Without this the name would keep growing across the `;` and swallow
1037
1074
  // whatever followed, which is how `x=1; flag; boundary="AAA"` loses its boundary.
1038
1075
  const storeEmptyKey = () => {
1039
- const name = takeValue().trim();
1040
- if (name) {
1041
- storeParam(name.toLowerCase(), '');
1042
- }
1076
+ storeParam(takeValue().trim().toLowerCase(), '');
1043
1077
  };
1044
1078
  for (let i = 0, len = str.length; i < len; i++) {
1045
1079
  chr = str.charAt(i);
@@ -1057,6 +1091,22 @@ class MimeNode {
1057
1091
  value += chr;
1058
1092
  break;
1059
1093
  case 'value':
1094
+ if (quoteClosed && chr !== ';') {
1095
+ // Nothing behind a closed quoted string reaches the value. RFC 2045
1096
+ // says a parameter value is a token or a quoted string, not both, so
1097
+ // what follows one is junk and only the `;` that ends the parameter
1098
+ // still counts. Tested ahead of the branches rather than beside the
1099
+ // append at the foot of them, where each branch above was a way
1100
+ // around it. A second `"` reopened quoting, which both carried the
1101
+ // whitespace in front of it into the value and took the `;` along, so
1102
+ // `boundary="AAA" "; boundary=BBB"` registered a boundary of `AAA `
1103
+ // that no delimiter matches and the whole body was dropped without an
1104
+ // error; the escape branch appended arbitrary characters the same way.
1105
+ // quoteClosed is only ever set while no quote is open, and this is
1106
+ // what keeps one from being opened afterwards.
1107
+ escaped = false;
1108
+ break;
1109
+ }
1060
1110
  if (escaped) {
1061
1111
  addChr(chr);
1062
1112
  }
@@ -1073,12 +1123,7 @@ class MimeNode {
1073
1123
  }
1074
1124
  else if (!quote && chr === '"') {
1075
1125
  quote = chr;
1076
- // whitespace before a quote that opens the value is padding, but
1077
- // between a token and a quoted string it is content
1078
- if (value.length) {
1079
- value += pendingSpace;
1080
- }
1081
- pendingSpace = '';
1126
+ flushSpace();
1082
1127
  }
1083
1128
  else if (!quote && chr === ';') {
1084
1129
  storeValue();
@@ -1087,13 +1132,9 @@ class MimeNode {
1087
1132
  else if (!quote && (chr === ' ' || chr === '\t')) {
1088
1133
  pendingSpace += chr;
1089
1134
  }
1090
- else if (!quoteClosed) {
1135
+ else {
1091
1136
  addChr(chr);
1092
1137
  }
1093
- // Anything else is trailing junk after a closed quoted string. RFC 2045
1094
- // says a parameter value is a token or a quoted string, not both, and
1095
- // appending the junk is how `boundary="AAA" (unterminated comment`
1096
- // turned into a boundary that no delimiter in the message matches.
1097
1138
  escaped = false;
1098
1139
  break;
1099
1140
  }
@@ -4988,12 +5029,12 @@ class PostalMime {
4988
5029
  continue;
4989
5030
  }
4990
5031
  if (isTerminator) {
4991
- await boundary.node.finalize();
5032
+ await boundary.node.finalize(true);
4992
5033
  this.currentNode = boundary.node.parentNode || this.root;
4993
5034
  }
4994
5035
  else {
4995
5036
  // finalize any open child nodes (should be just one though)
4996
- await boundary.node.finalizeChildNodes();
5037
+ await boundary.node.finalizeChildNodes(true);
4997
5038
  this.currentNode = new MimeNode({
4998
5039
  postalMime: this,
4999
5040
  parentNode: boundary.node,
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-BU9IJqli.js';
2
- import { m as markdownToHTML } from './markdown-parser-CAPDx7i8.js';
2
+ import { m as markdownToHTML } from './markdown-parser-DFP65EFu.js';
3
3
  import { g as globalConfig } from './config-Dnt5w_Bp.js';
4
4
  import { d as defaultSchema } from './index-BN64nlbO.js';
5
5
  import { a as adaptColorContrast } from './adapt-color-contrast-BQoih_t0.js';
@@ -1136,7 +1136,7 @@ const Markdown = class {
1136
1136
  */
1137
1137
  async toMarkdown() {
1138
1138
  await this.rendering;
1139
- const { exportMarkdown } = await import('./markdown-exporter-DblYRMhY.js');
1139
+ const { exportMarkdown } = await import('./markdown-exporter-tb8ft8Gq.js');
1140
1140
  return exportMarkdown(this.rootElement, this.cachedCombinedWhitelist);
1141
1141
  }
1142
1142
  textChanged() {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BU9IJqli.js';
2
2
  import { L as LevelMapping, E as EditorMenuTypes, i as isInlineImageTag, M as MouseButtons, e as editorMenuTypesArray } from './types-C_Yu8dOg.js';
3
- import { g as getLinkAttributes, m as markdownToHTML, s as sanitizeHTML } from './markdown-parser-CAPDx7i8.js';
3
+ import { g as getLinkAttributes, m as markdownToHTML, s as sanitizeHTML } from './markdown-parser-DFP65EFu.js';
4
4
  import { c as cloneDeep } from './cloneDeep-DAbOtbs8.js';
5
5
  import { t as translations } from './translations-Y4i8PVc9.js';
6
6
  import { c as decodeHTML, e as decodeHTMLStrict } from './index-BN64nlbO.js';
@@ -257,12 +257,8 @@ function findReachable(count, start, step, wrap, canMoveTo) {
257
257
  return NO_NAVIGATION_TARGET;
258
258
  }
259
259
 
260
- const tabBarCss = () => `@charset "UTF-8";:host(limel-tab-bar){--limel-tab-background-color:var(--contrast-300);--limel-tab-border-radius:0.625rem;--limel-tab-content-inset:0.25rem;--limel-active-tab-background-color:var( --tab-panel-background-color, rgb(var(--contrast-100)) );--limel-active-tab-color:var( --lime-primary-color, var(--limel-theme-primary-color) );--limel-tab-active-outer-edge-curve-size:0.75rem;--limel-tab-separator-width:0.125rem;--limel-tab-separator-background-color:rgb(var(--contrast-600));isolation:isolate;display:block;position:relative}limel-scroller{--limel-scroller-fade-color:var(--limel-tab-background-color);--limel-scroller-content-padding:0.25rem var(--limel-tab-active-outer-edge-curve-size) 0;background-color:rgb(var(--limel-tab-background-color))}:host(.has-tabs-with-equal-width) button{flex:1 0 auto}button{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;position:relative;display:flex;box-sizing:border-box;border-radius:0;padding:var(--limel-tab-content-inset);min-width:2.5rem;background-color:transparent;flex:0 0 auto;height:2.5rem;outline:none;cursor:pointer;white-space:nowrap;font-size:var(--limel-theme-default-font-size)}button:not([aria-selected=true]):after{content:"";display:block;background-color:var(--limel-tab-separator-background-color);width:var(--limel-tab-separator-width);height:1rem;margin:auto;position:absolute;top:0;bottom:0;border-radius:1rem;right:calc(-1 * var(--limel-tab-separator-width))}button:not([aria-selected=true]):last-of-type:after{display:none}button limel-icon{transition:color 0.2s ease;color:rgb(var(--contrast-800));margin-left:-0.25rem}button span.text{transition:color 0.2s ease;line-height:1;color:var(--limel-theme-on-surface-color)}button:hover span.text{color:var(--limel-theme-text-primary-on-background-color)}button limel-badge{margin-right:-0.25rem;box-shadow:0 0 0 1px rgb(var(--contrast-600));pointer-events:none}button[aria-selected=true]{border-radius:var(--limel-tab-border-radius) var(--limel-tab-border-radius) 0 0;background-color:var(--limel-active-tab-background-color);z-index:2}button[aria-selected=true]:before,button[aria-selected=true]:after{content:"";display:block;width:var(--limel-tab-active-outer-edge-curve-size);height:var(--limel-tab-active-outer-edge-curve-size);position:absolute;bottom:0;background-color:var(--limel-active-tab-background-color);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2050%2050'%3E%3Cdefs/%3E%3Cpath%20d='M0%200c0%2027.594%2022.406%2050%2050%2050H0V0z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2050%2050'%3E%3Cdefs/%3E%3Cpath%20d='M0%200c0%2027.594%2022.406%2050%2050%2050H0V0z'/%3E%3C/svg%3E")}button[aria-selected=true]:before{left:calc(-1 * var(--limel-tab-active-outer-edge-curve-size));transform:rotateY(180deg)}button[aria-selected=true]:after{right:calc(-1 * var(--limel-tab-active-outer-edge-curve-size))}button[aria-selected=true] limel-icon{color:var(--limel-active-tab-color)}button[aria-selected=true] span.text{color:var(--limel-active-tab-color)}span.content{transition:box-shadow 0.2s ease;display:flex;flex-grow:1;align-items:center;justify-content:center;gap:0.375rem;padding:0 0.75rem;border-radius:calc(var(--limel-tab-border-radius) - var(--limel-tab-content-inset))}button:focus-visible span.content{transition-duration:0.3s;box-shadow:var(--shadow-depth-8-focused)}`;
260
+ const tabBarCss = () => `@charset "UTF-8";:host(limel-tab-bar){--limel-tab-background-color:var(--contrast-300);--limel-tab-border-radius:0.625rem;--limel-tab-content-inset:0.25rem;--limel-active-tab-background-color:var( --tab-panel-background-color, rgb(var(--contrast-100)) );--limel-active-tab-color:var( --lime-primary-color, var(--limel-theme-primary-color) );--limel-tab-active-outer-edge-curve-size:0.75rem;--limel-tab-separator-width:0.125rem;--limel-tab-separator-background-color:rgb(var(--contrast-600));isolation:isolate;display:block;position:relative}limel-scroller{--limel-scroller-fade-color:var(--limel-tab-background-color);--limel-scroller-content-padding:0.25rem var(--limel-tab-active-outer-edge-curve-size) 0;background-color:rgb(var(--limel-tab-background-color))}:host(.has-tabs-with-equal-width:not([orientation=vertical])) button{flex:1 0 auto;max-width:var(--tab-bar-horizontal-tab-max-width, none)}button{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;position:relative;display:flex;box-sizing:border-box;border-radius:0;padding:var(--limel-tab-content-inset);min-width:2.5rem;background-color:transparent;flex:0 0 auto;height:2.5rem;outline:none;cursor:pointer;white-space:nowrap;font-size:var(--limel-theme-default-font-size)}button limel-icon{transition:color 0.2s ease;color:rgb(var(--contrast-800));margin-left:-0.25rem;flex-shrink:0}button span.text{transition:color 0.2s ease;line-height:1.25;overflow:hidden;text-overflow:ellipsis;color:var(--limel-theme-on-surface-color)}button:hover span.text{color:var(--limel-theme-text-primary-on-background-color)}button limel-badge{margin-right:-0.25rem;box-shadow:0 0 0 1px rgb(var(--contrast-600));pointer-events:none;flex-shrink:0}button[aria-selected=true]{background-color:var(--limel-active-tab-background-color);z-index:2}button[aria-selected=true]:before,button[aria-selected=true]:after{content:"";display:block;width:var(--limel-tab-active-outer-edge-curve-size);height:var(--limel-tab-active-outer-edge-curve-size);position:absolute;background-color:var(--limel-active-tab-background-color);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2050%2050'%3E%3Cdefs/%3E%3Cpath%20d='M0%200c0%2027.594%2022.406%2050%2050%2050H0V0z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2050%2050'%3E%3Cdefs/%3E%3Cpath%20d='M0%200c0%2027.594%2022.406%2050%2050%2050H0V0z'/%3E%3C/svg%3E")}button[aria-selected=true] limel-icon{color:var(--limel-active-tab-color)}button[aria-selected=true] span.text{color:var(--limel-active-tab-color)}span.content{transition:box-shadow 0.2s ease;display:flex;flex-grow:1;min-width:0;align-items:center;justify-content:center;gap:0.375rem;padding:0 0.75rem;border-radius:calc(var(--limel-tab-border-radius) - var(--limel-tab-content-inset))}button:focus-visible span.content{transition-duration:0.3s;box-shadow:var(--shadow-depth-8-focused)}:host(limel-tab-bar:not([orientation=vertical])) button{max-width:var(--tab-bar-horizontal-tab-max-width, 16rem)}:host(limel-tab-bar:not([orientation=vertical])) button:not([aria-selected=true]):after{content:"";display:block;background-color:var(--limel-tab-separator-background-color);width:var(--limel-tab-separator-width);height:1rem;margin:auto;position:absolute;top:0;bottom:0;border-radius:1rem;right:calc(-1 * var(--limel-tab-separator-width))}:host(limel-tab-bar:not([orientation=vertical])) button:not([aria-selected=true]):last-of-type:after{display:none}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]{border-radius:var(--limel-tab-border-radius) var(--limel-tab-border-radius) 0 0}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:before,:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:after{bottom:0}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:before{left:calc(-1 * var(--limel-tab-active-outer-edge-curve-size));transform:rotateY(180deg)}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:after{right:calc(-1 * var(--limel-tab-active-outer-edge-curve-size))}:host(limel-tab-bar[orientation=vertical]){width:var(--tab-bar-vertical-width, 10rem)}:host(limel-tab-bar[orientation=vertical]) div[role=tablist]{height:100%}:host(limel-tab-bar[orientation=vertical]) limel-scroller{--limel-scroller-content-padding:var( --limel-tab-active-outer-edge-curve-size ) 0 var(--limel-tab-active-outer-edge-curve-size) 0.25rem;height:100%}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]{border-radius:var(--limel-tab-border-radius) 0 0 var(--limel-tab-border-radius)}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:before,:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:after{right:0}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:before{bottom:100%;transform:rotateY(180deg)}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:after{top:100%;transform:rotate(180deg)}:host(limel-tab-bar[orientation=vertical]) span.content{justify-content:flex-start}:host(limel-tab-bar[orientation=vertical]) span.text{flex-grow:1}`;
261
261
 
262
- const NAVIGATION = {
263
- orientation: 'horizontal',
264
- wrap: true,
265
- };
266
262
  const TabBar = class {
267
263
  constructor(hostRef) {
268
264
  registerInstance(this, hostRef);
@@ -271,7 +267,13 @@ const TabBar = class {
271
267
  * List of tabs to display
272
268
  */
273
269
  this.tabs = [];
270
+ /**
271
+ * Whether the tabs are laid out in a row, above the content they belong
272
+ * to, or in a column, next to it.
273
+ */
274
+ this.orientation = 'horizontal';
274
275
  this.hasLoaded = false;
276
+ this.isLaidOutAgain = false;
275
277
  this.handleKeyDown = this.handleKeyDown.bind(this);
276
278
  }
277
279
  async connectedCallback() {
@@ -288,11 +290,13 @@ const TabBar = class {
288
290
  this.triggerIconColorWarning();
289
291
  }
290
292
  async componentDidRender() {
291
- await this.revealActiveTab(this.hasLoaded ? undefined : 'auto');
293
+ const isLaidOutAgain = this.isLaidOutAgain;
294
+ this.isLaidOutAgain = false;
295
+ await this.revealActiveTab(!this.hasLoaded || isLaidOutAgain ? 'auto' : undefined, isLaidOutAgain);
292
296
  }
293
297
  render() {
294
- const tabStop = findTabStop(this.tabs, this.tabs.findIndex((tab) => tab.active), NAVIGATION);
295
- return (h("div", { key: '9998014061ef483531099bfe9b9b30904bb1090d', role: "tablist", onKeyDown: this.handleKeyDown }, h("limel-scroller", { key: 'e09578e9daaeef1a3d05b4f0258fdd40e97ec39b' }, this.tabs.map((tab, index) => this.renderTab(tab, index, index === tabStop)))));
298
+ const tabStop = findTabStop(this.tabs, this.tabs.findIndex((tab) => tab.active), this.getNavigationOptions());
299
+ return (h("div", { key: 'd9f9e2659c8199ddd8202f04ed08535a91da2948', role: "tablist", "aria-orientation": this.getOrientation(), onKeyDown: this.handleKeyDown }, h("limel-scroller", { key: 'fdc0e8389ddc7ac8d0d63e5c777de6b6bf337697', orientation: this.getOrientation() }, this.tabs.map((tab, index) => this.renderTab(tab, index, index === tabStop)))));
296
300
  }
297
301
  tabsChanged(newTabs = [], oldTabs = []) {
298
302
  const newIds = newTabs.map((tab) => tab.id);
@@ -302,19 +306,31 @@ const TabBar = class {
302
306
  }
303
307
  this.revealedTabId = undefined;
304
308
  }
309
+ orientationChanged() {
310
+ this.revealedTabId = undefined;
311
+ this.isLaidOutAgain = true;
312
+ }
313
+ getOrientation() {
314
+ return this.orientation === 'vertical' ? 'vertical' : 'horizontal';
315
+ }
316
+ getNavigationOptions() {
317
+ return { orientation: this.getOrientation(), wrap: true };
318
+ }
305
319
  getTabElements() {
306
320
  return [
307
321
  ...this.host.shadowRoot.querySelectorAll('button[role="tab"]'),
308
322
  ];
309
323
  }
310
324
  /**
311
- * A tab that is activated by the user has focus, and the scroller reveals
312
- * what has focus. This is for a tab that becomes active without it.
325
+ * A tab that is activated by the user receives focus, and the scroller
326
+ * reveals what receives focus. This is for a tab that becomes active
327
+ * without it, or that keeps it while the bar is laid out again.
313
328
  *
314
329
  * @param behavior - `auto` to jump to the tab. Leave it out to let the
315
330
  * scroller glide there.
331
+ * @param evenWithFocus - reveal the tab also when it has focus
316
332
  */
317
- async revealActiveTab(behavior) {
333
+ async revealActiveTab(behavior, evenWithFocus = false) {
318
334
  const index = this.tabs.findIndex((tab) => tab.active);
319
335
  if (index === -1) {
320
336
  this.revealedTabId = undefined;
@@ -326,19 +342,23 @@ const TabBar = class {
326
342
  this.revealedTabId = this.tabs[index].id;
327
343
  const element = this.getTabElements()[index];
328
344
  const scroller = this.host.shadowRoot.querySelector('limel-scroller');
329
- if (!element || !scroller || element.matches(':focus')) {
345
+ if (!element || !scroller) {
346
+ return;
347
+ }
348
+ if (element.matches(':focus') && !evenWithFocus) {
330
349
  return;
331
350
  }
332
351
  await scroller.componentOnReady();
333
352
  await scroller.reveal(element, behavior);
334
353
  }
335
354
  handleKeyDown(event) {
336
- if (!isNavigationKey(event, NAVIGATION)) {
355
+ const options = this.getNavigationOptions();
356
+ if (!isNavigationKey(event, options)) {
337
357
  return;
338
358
  }
339
359
  event.preventDefault();
340
360
  const current = this.getTabElements().indexOf(event.target);
341
- this.activateTab(findNavigationTarget(this.tabs, event.key, current, NAVIGATION));
361
+ this.activateTab(findNavigationTarget(this.tabs, event.key, current, options));
342
362
  }
343
363
  activateTab(index) {
344
364
  if (index === NO_NAVIGATION_TARGET) {
@@ -384,6 +404,9 @@ const TabBar = class {
384
404
  static get watchers() { return {
385
405
  "tabs": [{
386
406
  "tabsChanged": 0
407
+ }],
408
+ "orientation": [{
409
+ "orientationChanged": 0
387
410
  }]
388
411
  }; }
389
412
  };
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BU9IJqli.js';
2
2
  import { d as dispatchResizeEvent } from './dispatch-resize-event-z_E3sq3p.js';
3
3
 
4
- const tabPanelCss = () => `:host(limel-tab-panel){--tab-panel-background-color:rgb(var(--contrast-100));display:block;height:100%}.tab-panel{height:100%;position:relative;display:flex;flex-direction:column}.tab-content{height:100%;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;background-color:var(--tab-panel-background-color)}`;
4
+ const tabPanelCss = () => `:host(limel-tab-panel){--tab-panel-background-color:rgb(var(--contrast-100));display:block;height:100%}.tab-panel{height:100%;position:relative;display:flex;flex-direction:column}.tab-content{height:100%;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;background-color:var(--tab-panel-background-color)}:host(limel-tab-panel[orientation=vertical]) div.tab-panel{flex-direction:row}:host(limel-tab-panel[orientation=vertical]) div.tab-content{min-width:0}`;
5
5
 
6
6
  const TabPanel = class {
7
7
  constructor(hostRef) {
@@ -11,6 +11,11 @@ const TabPanel = class {
11
11
  * The tabs to display in the panel
12
12
  */
13
13
  this.tabs = [];
14
+ /**
15
+ * Whether the tabs are laid out in a row, above the content, or in a
16
+ * column, to the left of it.
17
+ */
18
+ this.orientation = 'horizontal';
14
19
  this.slotElements = [];
15
20
  this.handleChangeTabs = this.handleChangeTabs.bind(this);
16
21
  this.setSlotElements = this.setSlotElements.bind(this);
@@ -44,7 +49,7 @@ const TabPanel = class {
44
49
  }
45
50
  }
46
51
  render() {
47
- return (h(Host, { key: 'acb9f2f1081972fc45104cc357055af883ebad2d', onChangeTab: this.handleChangeTabs }, h("div", { key: '318df7ddc8d28f5952c7e67b154088ca13f4355a', class: "tab-panel" }, h("limel-tab-bar", { key: '2656eb61f4e815eba9636bf939e368651bbd8dcf', tabs: this.tabs }), h("div", { key: '41d1bf3149a19d28d7d9f1ace0744ffe26811080', class: "tab-content" }, h("slot", { key: 'ee234615e96536b40ce089978cba5bd21a1fb129' })))));
52
+ return (h(Host, { key: '130cd711926c119be1b3084dfb966afe6d280926', onChangeTab: this.handleChangeTabs }, h("div", { key: 'e76da7ba8c93a3d9d4c03a84a01a5358b39b17ed', class: "tab-panel" }, h("limel-tab-bar", { key: '0866cd6c59e5e4ea372678a969bc646db81ed285', tabs: this.tabs, orientation: this.orientation }), h("div", { key: 'c0ee8b9d6bffcb32fc4894bf0ba7409ac194577d', class: "tab-content" }, h("slot", { key: '46b6cd024188a04ba466d831051cf3628996d97e' })))));
48
53
  }
49
54
  setSlotElements() {
50
55
  const slot = this.getSlot();