@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
@@ -1,10 +1,10 @@
1
1
  import { h, r as registerInstance, c as createEvent, a as getElement } from './index-BGxJfR2f.js';
2
2
  import { b as isMobileDevice } from './device-B-tmXAXV.js';
3
- import { a as ENTER, S as SPACE } from './keycodes-rI0IeKpx.js';
3
+ import { S as SPACEBAR, a as ENTER } from './keycodes-C4_9qUMP.js';
4
4
  import { i as isMultiple } from './multiple-BylwpiM6.js';
5
5
  import { c as createRandomString } from './random-string-JbKhhoXs.js';
6
6
  import { r as renderListComponent } from './render-list-component-CUJ2wdo4.js';
7
- import { g as getIconName, b as getIconColor } from './get-icon-props-CgNJbSP4.js';
7
+ import { b as getIconColor, g as getIconName } from './get-icon-props-CgNJbSP4.js';
8
8
  import { M as MDCFloatingLabel } from './component-D4qgwaTf.js';
9
9
  import { _ as __extends, a as __assign, M as MDCFoundation, c as MDCComponent } from './ponyfill-ChRGk668.js';
10
10
  import './isArray-B8VKuhvH.js';
@@ -254,6 +254,166 @@ var MDCSelectHelperText = /** @class */ (function (_super) {
254
254
  return MDCSelectHelperText;
255
255
  }(MDCComponent));
256
256
 
257
+ /**
258
+ * These helpers implement "type to jump", the behavior a native `<select>` has:
259
+ * typing characters moves to the option whose text starts with those
260
+ * characters. Characters accumulate into a short-lived buffer, so typing
261
+ * `n`, `e` finds "Netherlands" instead of re-matching on `n` every time.
262
+ *
263
+ * The matching itself is pure and stateless — all the state lives in a
264
+ * `TypeaheadBuffer`, which owns the timer that discards the buffer once the
265
+ * user stops typing.
266
+ */
267
+ /**
268
+ * How long a buffer of typed characters is kept before it is discarded, in
269
+ * milliseconds. Roughly matches a native `<select>`.
270
+ */
271
+ const TYPEAHEAD_BUFFER_TIMEOUT = 1000;
272
+ /**
273
+ * Returned by `findTypeaheadMatch` when nothing matched.
274
+ */
275
+ const NO_TYPEAHEAD_MATCH = -1;
276
+ /**
277
+ * Whether a keyboard event should be treated as a typed character.
278
+ *
279
+ * The space bar counts as a character here. Whether a *bare* space should
280
+ * start a buffer, or keep whatever meaning it has in the consuming component,
281
+ * is the consumer's decision.
282
+ *
283
+ * `shiftKey` is allowed, since capital letters are typed with it, and
284
+ * `event.repeat` is allowed, since holding a key down cycles through matches
285
+ * in a native `<select>` too.
286
+ *
287
+ * @param event - the keyboard event to inspect
288
+ * @returns `true` when the event represents a typed character
289
+ */
290
+ function isTypeaheadKey(event) {
291
+ return (event.key.length === 1 &&
292
+ !event.altKey &&
293
+ !event.ctrlKey &&
294
+ !event.metaKey &&
295
+ !event.isComposing);
296
+ }
297
+ /**
298
+ * Find the candidate to move to for a given buffer of typed characters.
299
+ *
300
+ * Two different searches are used, mirroring a native `<select>`:
301
+ * - When the buffer is a single character, possibly repeated (`b`, `bb`,
302
+ * `bbb`), only that character is matched and the search starts *after*
303
+ * `currentIndex`. Pressing the same key repeatedly therefore cycles through
304
+ * all candidates starting with it.
305
+ * - Otherwise the whole buffer is matched and the search starts *at*
306
+ * `currentIndex`, so continuing to type on an already-matching candidate
307
+ * keeps it rather than jumping to the next one.
308
+ *
309
+ * Both searches wrap around the end of the list.
310
+ *
311
+ * @param candidates - the candidates to search, index-aligned with the rows
312
+ * they are rendered as. Use `null` for rows that can never match, such as
313
+ * separators, so that they still occupy their index.
314
+ * @param buffer - the characters typed so far
315
+ * @param currentIndex - the index to search from. Anything outside
316
+ * `candidates` is treated as "no current candidate", and the search starts
317
+ * from the beginning.
318
+ * @returns the index of the matching candidate, or `NO_TYPEAHEAD_MATCH`
319
+ */
320
+ function findTypeaheadMatch(candidates, buffer, currentIndex) {
321
+ const count = candidates.length;
322
+ const query = buffer.toLowerCase();
323
+ if (!query || count === 0) {
324
+ return NO_TYPEAHEAD_MATCH;
325
+ }
326
+ const characters = [...query];
327
+ const cycles = isSingleDistinctCharacter(characters);
328
+ const needle = cycles ? characters[0] : query;
329
+ // Cycling starts one past the current candidate, so that pressing the same
330
+ // key again advances. Matching several characters starts at it, so that
331
+ // continuing to type keeps a candidate that already matches.
332
+ const offset = cycles ? 1 : 0;
333
+ const hasCurrent = currentIndex >= 0 && currentIndex < count;
334
+ const start = hasCurrent ? (currentIndex + offset) % count : 0;
335
+ for (let step = 0; step < count; step += 1) {
336
+ const index = (start + step) % count;
337
+ if (candidateMatches(candidates[index], needle)) {
338
+ return index;
339
+ }
340
+ }
341
+ return NO_TYPEAHEAD_MATCH;
342
+ }
343
+ /**
344
+ * Whether a string consists of a single character, possibly repeated. Also
345
+ * `true` for one character on its own, which is what makes a single key press
346
+ * advance past the current candidate rather than re-matching it.
347
+ *
348
+ * Takes the characters already split apart, so that the caller and this
349
+ * function agree on what "a character" is for anything outside the basic
350
+ * multilingual plane.
351
+ *
352
+ * @param characters - the characters of the string
353
+ * @returns `true` when every character is the same
354
+ */
355
+ function isSingleDistinctCharacter(characters) {
356
+ return characters.every((character) => character === characters[0]);
357
+ }
358
+ /**
359
+ * @param candidate - the candidate to test, or `null` for a row that can
360
+ * never match
361
+ * @param needle - the lower cased characters to match
362
+ * @returns `true` when the candidate starts with the given characters
363
+ */
364
+ function candidateMatches(candidate, needle) {
365
+ var _a;
366
+ if (!candidate || candidate.disabled) {
367
+ return false;
368
+ }
369
+ const text = (_a = candidate.text) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
370
+ return !!text && text.startsWith(needle);
371
+ }
372
+ /**
373
+ * Accumulates typed characters, and discards them again once the user stops
374
+ * typing for `TYPEAHEAD_BUFFER_TIMEOUT`.
375
+ */
376
+ class TypeaheadBuffer {
377
+ constructor(timeout = TYPEAHEAD_BUFFER_TIMEOUT) {
378
+ this.buffer = '';
379
+ this.timeout = timeout;
380
+ }
381
+ /**
382
+ * The characters typed so far.
383
+ */
384
+ get value() {
385
+ return this.buffer;
386
+ }
387
+ /**
388
+ * Whether nothing has been typed, or the buffer has been discarded.
389
+ */
390
+ get isEmpty() {
391
+ return this.buffer === '';
392
+ }
393
+ /**
394
+ * Append a character, and restart the timer that discards the buffer.
395
+ *
396
+ * @param character - the character to append
397
+ * @returns the buffer, including the appended character
398
+ */
399
+ append(character) {
400
+ this.buffer += character;
401
+ clearTimeout(this.resetTimeoutId);
402
+ this.resetTimeoutId = setTimeout(() => {
403
+ this.clear();
404
+ }, this.timeout);
405
+ return this.buffer;
406
+ }
407
+ /**
408
+ * Discard the buffer, and cancel the timer that would have discarded it.
409
+ */
410
+ clear() {
411
+ this.buffer = '';
412
+ clearTimeout(this.resetTimeoutId);
413
+ this.resetTimeoutId = undefined;
414
+ }
415
+ }
416
+
257
417
  const SelectTemplate = (props) => {
258
418
  const value = props.value;
259
419
  let hasValue = !!props.value;
@@ -304,7 +464,7 @@ const SelectValue = (props) => {
304
464
  'limel-select-trigger': true,
305
465
  'limel-select--focused': props.isOpen,
306
466
  };
307
- return (h("button", { slot: "content", class: anchorClassList, onClick: props.open, onKeyPress: props.onTriggerPress, "aria-haspopup": "listbox", "aria-expanded": props.isOpen, "aria-controls": props.id, "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, disabled: props.disabled || props.readonly }, h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), getSelectedPrimaryComponent(props.value), h("span", { id: "s-selected-text", class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
467
+ return (h("button", { slot: "content", class: anchorClassList, onClick: props.open, onKeyDown: props.onTriggerKeyDown, "aria-haspopup": "listbox", "aria-expanded": props.isOpen, "aria-controls": props.id, "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, disabled: props.disabled || props.readonly }, h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), getSelectedPrimaryComponent(props.value), h("span", { id: "s-selected-text", class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
308
468
  };
309
469
  const ShowIcon = (props) => {
310
470
  if (props.isValid) {
@@ -332,7 +492,7 @@ const MenuDropdown = (props) => {
332
492
  display: 'flex',
333
493
  'min-width': '100%',
334
494
  width: 'fit-content',
335
- } }, h("limel-list", { items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
495
+ } }, h("limel-list", { ref: props.listRef, items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
336
496
  };
337
497
  const NativeDropdown = (props) => {
338
498
  const options = props.options
@@ -355,6 +515,20 @@ function isSelected(option, value) {
355
515
  }
356
516
  return option.value === value.value;
357
517
  }
518
+ /**
519
+ * Create the items for the dropdown.
520
+ *
521
+ * The returned array is index-aligned with the `data-index` attribute that
522
+ * `limel-list` renders on each row. Separators are included, and occupy an
523
+ * index. Anything that needs to address a row by index — such as the
524
+ * typeahead in `select.tsx` — must derive its indices from this same array.
525
+ *
526
+ * @param options - the options of the select
527
+ * @param value - the currently selected option or options
528
+ * @param selectIsRequired - whether the select requires a value, in which
529
+ * case the "empty" option is left out
530
+ * @returns the items to render in the dropdown
531
+ */
358
532
  function createMenuItems(options, value, selectIsRequired = false) {
359
533
  const menuOptionFilter = getMenuOptionFilter(selectIsRequired);
360
534
  return options.filter(menuOptionFilter).map((option) => {
@@ -485,6 +659,15 @@ const Select = class {
485
659
  updateHasPrimaryComponent() {
486
660
  this.hasPrimaryComponentMemo = this.computeHasPrimaryComponent();
487
661
  }
662
+ /**
663
+ * `options` and `required` are the inputs that decide which rows the
664
+ * dropdown renders, and therefore which row an index refers to. When
665
+ * either changes, a buffered typeahead match no longer points at what the
666
+ * user was aiming for.
667
+ */
668
+ resetTypeaheadOnItemsChange() {
669
+ this.resetTypeahead();
670
+ }
488
671
  constructor(hostRef) {
489
672
  registerInstance(this, hostRef);
490
673
  this.change = createEvent(this, "change");
@@ -518,10 +701,51 @@ const Select = class {
518
701
  this.hasChanged = false;
519
702
  this.hasPrimaryComponentMemo = false;
520
703
  this.checkValid = false;
704
+ this.typeaheadBuffer = new TypeaheadBuffer();
705
+ this.handleMenuTriggerKeyDown = (event) => {
706
+ // Typeahead runs first, so that a space extends an ongoing typeahead
707
+ // instead of just opening the dropdown. A *bare* space is declined by
708
+ // `handleTypeaheadKey`, and keeps its usual meaning below.
709
+ if (this.handleTypeaheadKey(event, NO_TYPEAHEAD_MATCH)) {
710
+ return;
711
+ }
712
+ const isEnter = event.key === ENTER;
713
+ const isSpace = event.key === SPACEBAR;
714
+ if (!this.menuOpen && (isSpace || isEnter)) {
715
+ event.stopPropagation();
716
+ event.preventDefault();
717
+ // `preventDefault` cancels the activation click that the trigger
718
+ // `button` would otherwise synthesize, so the menu has to be
719
+ // opened here rather than through the click handler.
720
+ this.openMenu();
721
+ }
722
+ };
723
+ this.setListElement = (element) => {
724
+ var _a, _b;
725
+ if (this.list === element) {
726
+ return;
727
+ }
728
+ (_a = this.list) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', this.handleListKeyDownCapture, true);
729
+ this.list = element;
730
+ (_b = this.list) === null || _b === void 0 ? void 0 : _b.addEventListener('keydown', this.handleListKeyDownCapture, true);
731
+ };
732
+ /**
733
+ * Key handler for the dropdown, in the capture phase.
734
+ *
735
+ * `MDCList` listens for `keydown` on the `ul` inside `limel-list`'s shadow
736
+ * root, so capturing on the `limel-list` element itself is the only place
737
+ * a typed character can be stopped before MDC sees it. It has to be
738
+ * stopped: MDC would add it to its own typeahead buffer, which suppresses
739
+ * selection with `Enter` for as long as that buffer lives, and it treats
740
+ * the space bar as a selection.
741
+ *
742
+ * @param event - the key that was pressed
743
+ */
744
+ this.handleListKeyDownCapture = (event) => {
745
+ this.handleTypeaheadKey(event, this.getFocusedMenuItemIndex());
746
+ };
521
747
  this.handleMenuChange = this.handleMenuChange.bind(this);
522
748
  this.handleNativeChange = this.handleNativeChange.bind(this);
523
- this.handleMenuTriggerKeyPress =
524
- this.handleMenuTriggerKeyPress.bind(this);
525
749
  this.openMenu = this.openMenu.bind(this);
526
750
  this.closeMenu = this.closeMenu.bind(this);
527
751
  this.portalId = createRandomString();
@@ -557,6 +781,7 @@ const Select = class {
557
781
  }
558
782
  disconnectedCallback() {
559
783
  this.cancelPendingFocus();
784
+ this.resetTypeahead();
560
785
  if (this.mdcFloatingLabel) {
561
786
  this.mdcFloatingLabel.destroy();
562
787
  }
@@ -571,7 +796,7 @@ const Select = class {
571
796
  }
572
797
  render() {
573
798
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
574
- return (h(SelectTemplate, { key: '8f65bfbadfa797644b4d458452e2eceac2dbcda8', id: this.portalId, disabled: this.disabled || this.readonly, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerPress: this.handleMenuTriggerKeyPress, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
799
+ return (h(SelectTemplate, { key: '97e6b0b033a487e26ab7e4abe7165837ebe08911', id: this.portalId, disabled: this.disabled || this.readonly, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerKeyDown: this.handleMenuTriggerKeyDown, listRef: this.setListElement, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
575
800
  }
576
801
  watchOpen(newValue, oldValue) {
577
802
  if (this.checkValid) {
@@ -606,6 +831,21 @@ const Select = class {
606
831
  if (!this.menuOpen) {
607
832
  return;
608
833
  }
834
+ // Consumed on read, so that a later, unrelated re-render
835
+ // cannot resurrect a stale index and yank focus.
836
+ const typeaheadIndex = this.pendingTypeaheadIndex;
837
+ this.pendingTypeaheadIndex = undefined;
838
+ if (typeaheadIndex !== undefined &&
839
+ this.focusMenuItemAtIndex(list, typeaheadIndex)) {
840
+ return;
841
+ }
842
+ // Picking an option while `multiple` re-renders the dropdown
843
+ // without closing it, which brings us back here with a row
844
+ // already focused. Moving to the first option then would lose
845
+ // the user's place in the list after every pick.
846
+ if (this.getFocusedMenuItemIndex() !== NO_TYPEAHEAD_MATCH) {
847
+ return;
848
+ }
609
849
  this.focusFirstMenuItem(list);
610
850
  });
611
851
  this.focusObserver.observe(list);
@@ -628,6 +868,30 @@ const Select = class {
628
868
  firstItem.focus({ preventScroll: true });
629
869
  }
630
870
  }
871
+ /**
872
+ * Focus the row at a given index in the dropdown.
873
+ *
874
+ * The rows only become focusable once `limel-list` has set up `MDCList`,
875
+ * which is what gives them a `tabindex`. Callers use the return value to
876
+ * fall back to `pendingTypeaheadIndex` when that has not happened yet.
877
+ *
878
+ * @param list - the `limel-list` of the dropdown
879
+ * @param index - the index of the row, as rendered in its `data-index`
880
+ * @returns whether the row could be focused
881
+ */
882
+ focusMenuItemAtIndex(list, index) {
883
+ var _a;
884
+ const item = (_a = list === null || list === void 0 ? void 0 : list.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${index}"]`);
885
+ if (!item) {
886
+ return false;
887
+ }
888
+ // Scrolled explicitly, and only within the dropdown: letting `focus()`
889
+ // scroll would scroll the page, since the dropdown is rendered into a
890
+ // portal that is absolutely positioned on the `body`.
891
+ item.focus({ preventScroll: true });
892
+ item.scrollIntoView({ block: 'nearest' });
893
+ return list.shadowRoot.activeElement === item;
894
+ }
631
895
  setTriggerFocus() {
632
896
  const trigger = this.host.shadowRoot.querySelector('.limel-select-trigger');
633
897
  trigger.focus();
@@ -679,6 +943,7 @@ const Select = class {
679
943
  this.change.emit(option);
680
944
  this.menuOpen = false;
681
945
  this.cancelPendingFocus();
946
+ this.resetTypeahead();
682
947
  this.setTriggerFocus();
683
948
  }
684
949
  openMenu() {
@@ -712,17 +977,111 @@ const Select = class {
712
977
  closeMenu() {
713
978
  this.menuOpen = false;
714
979
  this.cancelPendingFocus();
980
+ this.resetTypeahead();
715
981
  this.setTriggerFocus();
716
982
  }
717
- handleMenuTriggerKeyPress(event) {
718
- const isEnter = event.key === ENTER;
719
- const isSpace = event.key === SPACE;
720
- if (!this.menuOpen && (isSpace || isEnter)) {
721
- event.stopPropagation();
722
- event.preventDefault();
723
- this.menuOpen = true;
983
+ /**
984
+ * Move the highlight to the option matching the characters typed so far,
985
+ * the way a native `<select>` does. Never changes the value — the option
986
+ * still has to be picked with `Enter` or a click.
987
+ *
988
+ * @param event - the key that was pressed
989
+ * @param focusedIndex - the row that currently has focus, if any
990
+ * @returns whether the key was handled as typeahead
991
+ */
992
+ handleTypeaheadKey(event, focusedIndex) {
993
+ // The native dropdown on mobile devices does its own typeahead. Note
994
+ // that `setMenuFocus` bails out on mobile too, so a pending index
995
+ // would never be consumed there.
996
+ if (this.isMobileDevice || !isTypeaheadKey(event)) {
997
+ return false;
998
+ }
999
+ // A space only continues an ongoing typeahead. On its own it keeps its
1000
+ // usual meaning of opening the dropdown, or selecting the focused
1001
+ // option.
1002
+ if (event.key === SPACEBAR && this.typeaheadBuffer.isEmpty) {
1003
+ return false;
1004
+ }
1005
+ event.preventDefault();
1006
+ event.stopPropagation();
1007
+ // Derived per key press rather than cached, so that the indices always
1008
+ // refer to the rows the dropdown renders right now.
1009
+ const items = createMenuItems(this.options, this.value, this.required);
1010
+ const candidates = items.map((item) => ('separator' in item ? null : item));
1011
+ const buffer = this.typeaheadBuffer.append(event.key);
1012
+ const currentIndex = this.resolveTypeaheadIndex(items, focusedIndex);
1013
+ const index = findTypeaheadMatch(candidates, buffer, currentIndex);
1014
+ if (index !== NO_TYPEAHEAD_MATCH) {
1015
+ this.focusTypeaheadMatch(index);
1016
+ }
1017
+ return true;
1018
+ }
1019
+ /**
1020
+ * @param items - the items of the dropdown
1021
+ * @param focusedIndex - the row that currently has focus, if any
1022
+ * @returns the index a typeahead search should start from
1023
+ */
1024
+ resolveTypeaheadIndex(items, focusedIndex) {
1025
+ if (focusedIndex !== NO_TYPEAHEAD_MATCH) {
1026
+ return focusedIndex;
1027
+ }
1028
+ // Typed again before focus had time to land in the dropdown.
1029
+ if (this.pendingTypeaheadIndex !== undefined) {
1030
+ return this.pendingTypeaheadIndex;
1031
+ }
1032
+ // Falls back to the selected option, so that typing continues from
1033
+ // wherever the highlight already is. `findIndex` returning `-1` for a
1034
+ // select without a value is exactly the "no current row" that
1035
+ // `findTypeaheadMatch` expects.
1036
+ return items.findIndex((item) => !('separator' in item) && item.selected);
1037
+ }
1038
+ focusTypeaheadMatch(index) {
1039
+ // Overwrites any index still pending from an earlier character, even
1040
+ // when this one can be focused right away. Opening the dropdown queues
1041
+ // a `setMenuFocus` that waits for it to become visible, and someone
1042
+ // typing quickly gets the next character in before that resolves;
1043
+ // leaving the earlier index in place would let the queued focus apply
1044
+ // it on top of this newer match.
1045
+ this.pendingTypeaheadIndex = index;
1046
+ if (this.menuOpen && this.focusMenuItemAtIndex(this.list, index)) {
1047
+ // Focus landed synchronously, so this index has already done its
1048
+ // job. Clearing it — rather than leaving it for `setMenuFocus` to
1049
+ // consume later — stops it from being replayed by some unrelated
1050
+ // future re-render, such as picking an option in a `multiple`
1051
+ // select, after the user has since moved focus elsewhere with the
1052
+ // arrow keys. A `setMenuFocus` still queued from opening the
1053
+ // dropdown a moment ago is unaffected: it finds this row already
1054
+ // focused and leaves it alone, below.
1055
+ this.pendingTypeaheadIndex = undefined;
1056
+ return;
1057
+ }
1058
+ if (this.menuOpen) {
1059
+ // Already open, so no re-render is coming that would trigger
1060
+ // `componentDidUpdate`. Schedule the focus explicitly.
1061
+ this.setMenuFocus();
1062
+ }
1063
+ else {
1064
+ this.openMenu();
724
1065
  }
725
1066
  }
1067
+ /**
1068
+ * @returns the index of the focused row of the dropdown, or
1069
+ * `NO_TYPEAHEAD_MATCH` when no row has focus
1070
+ */
1071
+ getFocusedMenuItemIndex() {
1072
+ var _a, _b, _c;
1073
+ // Deliberately not `event.target`: a listener on the `limel-list`
1074
+ // element sees events from inside its shadow root retargeted to the
1075
+ // element itself, never to the row that was actually focused.
1076
+ const focused = (_b = (_a = this.list) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement;
1077
+ const row = focused === null || focused === void 0 ? void 0 : focused.closest('[data-index]');
1078
+ const index = Number.parseInt((_c = row === null || row === void 0 ? void 0 : row.dataset.index) !== null && _c !== void 0 ? _c : '', 10);
1079
+ return Number.isNaN(index) ? NO_TYPEAHEAD_MATCH : index;
1080
+ }
1081
+ resetTypeahead() {
1082
+ this.typeaheadBuffer.clear();
1083
+ this.pendingTypeaheadIndex = undefined;
1084
+ }
726
1085
  handleNativeChange(event) {
727
1086
  event.stopPropagation();
728
1087
  const element = this.host.shadowRoot.querySelector('select.limel-select__native-control');
@@ -760,6 +1119,11 @@ const Select = class {
760
1119
  "resetHasChanged": 0
761
1120
  }, {
762
1121
  "updateHasPrimaryComponent": 0
1122
+ }, {
1123
+ "resetTypeaheadOnItemsChange": 0
1124
+ }],
1125
+ "required": [{
1126
+ "resetTypeaheadOnItemsChange": 0
763
1127
  }],
764
1128
  "menuOpen": [{
765
1129
  "watchOpen": 0
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-BGxJfR2f.js';
2
2
  import { t as translate } from './translations-Cb9R_zmF.js';
3
- import { a as ENTER, E as ESCAPE } from './keycodes-rI0IeKpx.js';
3
+ import { a as ENTER, E as ESCAPE } from './keycodes-C4_9qUMP.js';
4
4
 
5
5
  const editorLinkMenuCss = () => `:host(limel-text-editor-link-menu){animation:fade 0.2s ease forwards;animation-delay:0.1s;opacity:0;display:flex;flex-direction:column;gap:0.5rem;padding:0.5rem;max-width:calc(100vw - 2rem);border-radius:0.5rem;background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--shadow-depth-16)}.actions{display:flex;justify-content:end;gap:0.5rem}@keyframes fade{0%{scale:0.86;opacity:0}100%{scale:1;opacity:1}}`;
6
6
 
@@ -4,7 +4,7 @@ export { s as setNonce } from './index-BGxJfR2f.js';
4
4
  const defineCustomElements = async (win, options) => {
5
5
  if (typeof window === 'undefined') return undefined;
6
6
  await globalScripts();
7
- 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);
7
+ 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);
8
8
  };
9
9
 
10
10
  export { defineCustomElements };