@limetech/lime-elements 39.9.5 → 39.10.1

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 (146) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/device-C9O7lYI9.js +50 -0
  3. package/dist/cjs/hotkeys-BtR8uxvl.js +219 -0
  4. package/dist/cjs/lime-elements.cjs.js +1 -1
  5. package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js +137 -15
  6. package/dist/cjs/limel-date-picker.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-helper-line_2.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-hotkey.cjs.entry.js +128 -0
  10. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  13. package/dist/cjs/limel-list-item.cjs.entry.js +2 -2
  14. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +12 -1
  16. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-portal_3.cjs.entry.js +4 -4
  19. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  21. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-select.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-slider.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-snackbar.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  27. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  30. package/dist/cjs/limel-table.cjs.entry.js +10 -7
  31. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +3 -3
  32. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/collection/collection-manifest.json +1 -0
  35. package/dist/collection/components/hotkey/format-display-token.js +95 -0
  36. package/dist/collection/components/hotkey/hotkey.css +136 -0
  37. package/dist/collection/components/hotkey/hotkey.js +92 -0
  38. package/dist/collection/components/icon/icon.js +1 -1
  39. package/dist/collection/components/icon-button/icon-button.js +1 -1
  40. package/dist/collection/components/info-tile/info-tile.js +2 -2
  41. package/dist/collection/components/input-field/input-field.js +1 -1
  42. package/dist/collection/components/list/list.js +1 -1
  43. package/dist/collection/components/list-item/list-item.js +2 -2
  44. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +52 -2
  45. package/dist/collection/components/markdown/markdown.js +1 -1
  46. package/dist/collection/components/menu/menu.js +130 -10
  47. package/dist/collection/components/menu-list/menu-list-renderer.js +4 -1
  48. package/dist/collection/components/menu-list/menu-list.js +1 -1
  49. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  50. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  51. package/dist/collection/components/picker/picker.js +1 -1
  52. package/dist/collection/components/popover/popover.js +1 -1
  53. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  54. package/dist/collection/components/portal/portal.js +1 -1
  55. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  56. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  57. package/dist/collection/components/select/select.js +1 -1
  58. package/dist/collection/components/shortcut/shortcut.js +1 -1
  59. package/dist/collection/components/slider/slider.js +1 -1
  60. package/dist/collection/components/snackbar/snackbar.js +2 -2
  61. package/dist/collection/components/spinner/spinner.js +1 -1
  62. package/dist/collection/components/split-button/split-button.js +2 -2
  63. package/dist/collection/components/switch/switch.js +1 -1
  64. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  65. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  66. package/dist/collection/components/table/table.js +10 -7
  67. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  68. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  69. package/dist/collection/components/text-editor/text-editor.js +1 -1
  70. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  71. package/dist/collection/components/tooltip/tooltip.js +2 -2
  72. package/dist/esm/device-B-tmXAXV.js +45 -0
  73. package/dist/esm/hotkeys-BxrRWYts.js +215 -0
  74. package/dist/esm/lime-elements.js +1 -1
  75. package/dist/esm/limel-breadcrumbs_7.entry.js +137 -15
  76. package/dist/esm/limel-date-picker.entry.js +1 -1
  77. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  78. package/dist/esm/limel-helper-line_2.entry.js +1 -1
  79. package/dist/esm/limel-hotkey.entry.js +126 -0
  80. package/dist/esm/limel-icon-button.entry.js +1 -1
  81. package/dist/esm/limel-icon.entry.js +1 -1
  82. package/dist/esm/limel-info-tile.entry.js +2 -2
  83. package/dist/esm/limel-list-item.entry.js +2 -2
  84. package/dist/esm/limel-markdown.entry.js +1 -1
  85. package/dist/esm/limel-menu-item-meta.entry.js +12 -1
  86. package/dist/esm/limel-picker.entry.js +1 -1
  87. package/dist/esm/limel-popover_2.entry.js +2 -2
  88. package/dist/esm/limel-portal_3.entry.js +4 -4
  89. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  90. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  91. package/dist/esm/limel-radio-button.entry.js +2 -2
  92. package/dist/esm/limel-select.entry.js +2 -2
  93. package/dist/esm/limel-shortcut.entry.js +1 -1
  94. package/dist/esm/limel-slider.entry.js +1 -1
  95. package/dist/esm/limel-snackbar.entry.js +2 -2
  96. package/dist/esm/limel-split-button.entry.js +2 -2
  97. package/dist/esm/limel-switch.entry.js +1 -1
  98. package/dist/esm/limel-tab-bar.entry.js +2 -2
  99. package/dist/esm/limel-tab-panel.entry.js +1 -1
  100. package/dist/esm/limel-table.entry.js +10 -7
  101. package/dist/esm/limel-text-editor-link-menu.entry.js +3 -3
  102. package/dist/esm/limel-text-editor.entry.js +1 -1
  103. package/dist/esm/loader.js +1 -1
  104. package/dist/lime-elements/lime-elements.esm.js +1 -1
  105. package/dist/lime-elements/{p-a30bf079.entry.js → p-12646794.entry.js} +1 -1
  106. package/dist/lime-elements/{p-c5b6ac7a.entry.js → p-1635ece7.entry.js} +1 -1
  107. package/dist/lime-elements/{p-86eebe44.entry.js → p-17e1d911.entry.js} +1 -1
  108. package/dist/lime-elements/{p-8c418a0b.entry.js → p-23c1033d.entry.js} +1 -1
  109. package/dist/lime-elements/{p-e2f1b070.entry.js → p-2750b828.entry.js} +1 -1
  110. package/dist/lime-elements/{p-1d4285b1.entry.js → p-3e68cbda.entry.js} +2 -2
  111. package/dist/lime-elements/{p-de1e5ad9.entry.js → p-438652d6.entry.js} +1 -1
  112. package/dist/lime-elements/{p-ef75eed9.entry.js → p-59716b48.entry.js} +1 -1
  113. package/dist/lime-elements/{p-b11751c9.entry.js → p-60260fa3.entry.js} +1 -1
  114. package/dist/lime-elements/{p-a2295fa6.entry.js → p-689770db.entry.js} +1 -1
  115. package/dist/lime-elements/{p-abdede40.entry.js → p-733ebba6.entry.js} +1 -1
  116. package/dist/lime-elements/{p-288aa326.entry.js → p-77f42eff.entry.js} +1 -1
  117. package/dist/lime-elements/{p-d5da5b05.entry.js → p-7bd71b2b.entry.js} +1 -1
  118. package/dist/lime-elements/{p-9d51583a.entry.js → p-8805080c.entry.js} +1 -1
  119. package/dist/lime-elements/{p-c6b9425b.entry.js → p-889a05e4.entry.js} +1 -1
  120. package/dist/lime-elements/{p-e14b7393.entry.js → p-8b106865.entry.js} +1 -1
  121. package/dist/lime-elements/{p-6e0078f1.entry.js → p-8e3cc9b0.entry.js} +1 -1
  122. package/dist/lime-elements/{p-62d6a350.entry.js → p-9015c90c.entry.js} +2 -2
  123. package/dist/lime-elements/{p-9859b556.entry.js → p-9abfb8ba.entry.js} +1 -1
  124. package/dist/lime-elements/{p-72a4841a.entry.js → p-9d629f5f.entry.js} +10 -10
  125. package/dist/lime-elements/p-B-tmXAXV.js +1 -0
  126. package/dist/lime-elements/p-BxrRWYts.js +1 -0
  127. package/dist/lime-elements/p-a026cc24.entry.js +1 -0
  128. package/dist/lime-elements/{p-95ed243e.entry.js → p-a243b8e2.entry.js} +1 -1
  129. package/dist/lime-elements/{p-bbaaf7c1.entry.js → p-a44dfaa1.entry.js} +1 -1
  130. package/dist/lime-elements/p-b64ae828.entry.js +1 -0
  131. package/dist/lime-elements/p-c20a620d.entry.js +1 -0
  132. package/dist/lime-elements/{p-1590b341.entry.js → p-c84911e6.entry.js} +1 -1
  133. package/dist/lime-elements/{p-6614bbfc.entry.js → p-c9591213.entry.js} +1 -1
  134. package/dist/lime-elements/{p-0e1c15c8.entry.js → p-e0716b51.entry.js} +1 -1
  135. package/dist/types/components/hotkey/format-display-token.d.ts +15 -0
  136. package/dist/types/components/hotkey/hotkey.d.ts +27 -0
  137. package/dist/types/components/list-item/menu-item-meta/menu-item-meta.d.ts +8 -0
  138. package/dist/types/components/menu/menu.d.ts +13 -2
  139. package/dist/types/components/menu/menu.types.d.ts +14 -0
  140. package/dist/types/components.d.ts +107 -4
  141. package/package.json +1 -1
  142. package/dist/cjs/device-CDZCRYph.js +0 -30
  143. package/dist/esm/device-CY72JnWG.js +0 -26
  144. package/dist/lime-elements/p-5178cc39.entry.js +0 -1
  145. package/dist/lime-elements/p-7afe6c3e.entry.js +0 -1
  146. package/dist/lime-elements/p-CY72JnWG.js +0 -1
@@ -11,6 +11,7 @@ var debounce = require('./debounce-DgDnRSlt.js');
11
11
  var component = require('./component-CFk7Dfoi.js');
12
12
  var ponyfill = require('./ponyfill-BgIFyUG5.js');
13
13
  var focusTriggerElement = require('./focus-trigger-element-NnpJ5nTp.js');
14
+ var hotkeys = require('./hotkeys-BtR8uxvl.js');
14
15
  var eq = require('./eq-B1KBAwmK.js');
15
16
  var util = require('./util-BOQp7lfZ.js');
16
17
  var component$1 = require('./component-y8swlNNR.js');
@@ -672,7 +673,7 @@ const InputField = class {
672
673
  if (ariaControls) {
673
674
  properties['aria-controls'] = ariaControls;
674
675
  }
675
- return (index.h(index.Host, { key: '6427ea1655ab4fa9d07a2e5e4f8f1b4bad169065' }, index.h("limel-notched-outline", { key: '5dbf37b876ed2673acdd439a875b6b82ef34ee22', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid || this.isInvalid(), disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasLeadingIcon: !!this.leadingIcon }, index.h("label", { key: '47ec8a216b5b5799769af87ce603e04f6a3abbaa', slot: "content", class: this.getContainerClassList() }, this.renderLeadingIcon(), this.renderPrefix(), this.renderFormattedNumber(), this.renderInput(properties), this.renderSuffix(), this.renderTextarea(properties), this.renderTrailingLinkOrButton())), this.renderHelperLine(), this.renderAutocompleteList()));
676
+ return (index.h(index.Host, { key: 'be352ea1f105d4c3f77b567de32626488ea4a60b' }, index.h("limel-notched-outline", { key: '0bae1383ad7421ffdc3468bbfc79af59d7c2e3cb', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid || this.isInvalid(), disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasLeadingIcon: !!this.leadingIcon }, index.h("label", { key: '3667d9fbf90227232d8089a421455c7ab72e4202', slot: "content", class: this.getContainerClassList() }, this.renderLeadingIcon(), this.renderPrefix(), this.renderFormattedNumber(), this.renderInput(properties), this.renderSuffix(), this.renderTextarea(properties), this.renderTrailingLinkOrButton())), this.renderHelperLine(), this.renderAutocompleteList()));
676
677
  }
677
678
  valueWatcher(newValue) {
678
679
  if (!this.mdcTextField) {
@@ -2527,7 +2528,7 @@ const List = class {
2527
2528
  maxLinesSecondaryText = 1;
2528
2529
  }
2529
2530
  const html = this.listRenderer.render(this.items, this.config);
2530
- return (index.h(index.Host, { key: 'e08edeaabf6b51f940e305539aecec91517a51ca', style: {
2531
+ return (index.h(index.Host, { key: 'cbe0fda77189118ad3515dc3c4ab02c6cd9bc58a', style: {
2531
2532
  '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,
2532
2533
  } }, html));
2533
2534
  }
@@ -2636,6 +2637,34 @@ const Menu = class {
2636
2637
  */
2637
2638
  this.rootItem = DEFAULT_ROOT_BREADCRUMBS_ITEM;
2638
2639
  this.shouldRestoreFocusOnClose = false;
2640
+ this.normalizedHotkeyCache = new Map();
2641
+ this.cachedSubMenuSource = null;
2642
+ this.cachedSubMenuItems = null;
2643
+ this.handleDocumentKeyDown = (event) => {
2644
+ if (event.key === keycodes.ESCAPE && this.open) {
2645
+ this.shouldRestoreFocusOnClose = true;
2646
+ }
2647
+ if (!this.open || event.defaultPrevented || event.repeat) {
2648
+ return;
2649
+ }
2650
+ if (this.isFromTextInput(event) && !this.hasModifier(event)) {
2651
+ return;
2652
+ }
2653
+ const pressedHotkey = hotkeys.hotkeyFromKeyboardEvent(event);
2654
+ if (!pressedHotkey) {
2655
+ return;
2656
+ }
2657
+ if (this.isReservedMenuHotkey(pressedHotkey)) {
2658
+ return;
2659
+ }
2660
+ const matchedItem = this.findMenuItemByHotkey(pressedHotkey);
2661
+ if (!matchedItem) {
2662
+ return;
2663
+ }
2664
+ event.stopPropagation();
2665
+ event.preventDefault();
2666
+ this.handleSelect(matchedItem);
2667
+ };
2639
2668
  this.renderLoader = () => {
2640
2669
  if (!this.loadingSubItems && !this.loading) {
2641
2670
  return;
@@ -2725,6 +2754,9 @@ const Menu = class {
2725
2754
  // Will change focus to breadcrumbs (if present) or the first/last item
2726
2755
  // in the dropdown list to enable selection with the keyboard
2727
2756
  this.handleInputKeyDown = (event) => {
2757
+ if (event.defaultPrevented) {
2758
+ return;
2759
+ }
2728
2760
  const isForwardTab = event.key === keycodes.TAB &&
2729
2761
  !event.altKey &&
2730
2762
  !event.metaKey &&
@@ -2890,11 +2922,6 @@ const Menu = class {
2890
2922
  }
2891
2923
  }
2892
2924
  };
2893
- this.handleEscapeCapture = (event) => {
2894
- if (event.key === keycodes.ESCAPE && this.open) {
2895
- this.shouldRestoreFocusOnClose = true;
2896
- }
2897
- };
2898
2925
  this.onClose = () => {
2899
2926
  const restoreFocus = this.shouldRestoreFocusOnClose;
2900
2927
  this.shouldRestoreFocusOnClose = false;
@@ -3089,25 +3116,113 @@ const Menu = class {
3089
3116
  const cssProperties = this.getCssProperties();
3090
3117
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
3091
3118
  const menuSurfaceWidth = this.getMenuSurfaceWidth(cssProperties['--menu-surface-width']);
3092
- return (index.h("div", { key: 'a54987a1be3e3fcc4ceae95c7cc334411a0c474f', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, index.h("slot", { key: '1bacdb5d1387b8357d1c6f93db47369c8cf64a4f', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), index.h("limel-portal", { key: 'fbc7982b1dcab9fd5172a95e7a7f0328281f3a35', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, index.h("limel-menu-surface", { key: '48b96e2e6fe815f4cc976553dfea7b26f36ea6d4', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
3119
+ return (index.h("div", { key: '720330cf7d07c491a5a9e58a2567896f5526c45a', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, index.h("slot", { key: 'd3db72fa9e12bafbb039e6a94a1052edf64e060e', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), index.h("limel-portal", { key: '591f97a745488fbff7eb8fc06b14d2f6e0d21fa6', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, index.h("limel-menu-surface", { key: '829a9578894165b28100c4cab519ced0cb7689a0', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
3093
3120
  'has-grid-layout': this.gridLayout,
3094
3121
  } }, this.renderSearchField(), this.renderBreadcrumb(), this.renderLoader(), this.renderEmptyMessage(), this.renderMenuList()))));
3095
3122
  }
3096
3123
  itemsWatcher() {
3097
3124
  this.clearSearch();
3125
+ this.normalizedHotkeyCache.clear();
3098
3126
  this.setFocus();
3099
3127
  }
3128
+ connectedCallback() {
3129
+ if (this.open) {
3130
+ document.addEventListener('keydown', this.handleDocumentKeyDown, true);
3131
+ }
3132
+ }
3133
+ disconnectedCallback() {
3134
+ document.removeEventListener('keydown', this.handleDocumentKeyDown, true);
3135
+ }
3100
3136
  openWatcher(newValue) {
3101
3137
  const opened = newValue;
3102
3138
  if (opened) {
3103
- document.addEventListener('keydown', this.handleEscapeCapture, true);
3139
+ document.addEventListener('keydown', this.handleDocumentKeyDown, true);
3104
3140
  this.setFocus();
3105
3141
  }
3106
3142
  else {
3107
- document.removeEventListener('keydown', this.handleEscapeCapture, true);
3143
+ document.removeEventListener('keydown', this.handleDocumentKeyDown, true);
3108
3144
  this.clearSearch();
3109
3145
  }
3110
3146
  }
3147
+ isFromTextInput(event) {
3148
+ const path = typeof event.composedPath === 'function'
3149
+ ? event.composedPath()
3150
+ : [];
3151
+ for (const node of path) {
3152
+ if (!(node instanceof HTMLElement)) {
3153
+ continue;
3154
+ }
3155
+ if (node.isContentEditable) {
3156
+ return true;
3157
+ }
3158
+ const tagName = node.tagName;
3159
+ if (tagName === 'INPUT' ||
3160
+ tagName === 'TEXTAREA' ||
3161
+ tagName === 'SELECT') {
3162
+ return true;
3163
+ }
3164
+ }
3165
+ return false;
3166
+ }
3167
+ // Only Ctrl and Meta count as "real" modifiers for the text-input bypass.
3168
+ // Alt/Option is intentionally excluded because it is used for typing
3169
+ // special characters on international keyboards and macOS (e.g. Option+e
3170
+ // for é, AltGr+e for € on Windows). This means alt-only hotkeys like
3171
+ // "alt+x" will NOT fire while a text input (e.g. the search field) is
3172
+ // focused — only Ctrl/Meta combos will. AltGraph is also explicitly
3173
+ // rejected because Windows synthesizes ctrlKey=true for AltGr keypresses.
3174
+ hasModifier(event) {
3175
+ var _a;
3176
+ if ((_a = event.getModifierState) === null || _a === void 0 ? void 0 : _a.call(event, 'AltGraph')) {
3177
+ return false;
3178
+ }
3179
+ return event.ctrlKey || event.metaKey;
3180
+ }
3181
+ isReservedMenuHotkey(hotkey) {
3182
+ const tokens = hotkeys.tokenizeHotkeyString(hotkey);
3183
+ const key = tokens.at(-1);
3184
+ if (!key) {
3185
+ return false;
3186
+ }
3187
+ const hasModifiers = tokens.length > 1;
3188
+ if (hasModifiers) {
3189
+ return false;
3190
+ }
3191
+ return (key === 'arrowup' ||
3192
+ key === 'arrowdown' ||
3193
+ key === 'arrowleft' ||
3194
+ key === 'arrowright' ||
3195
+ key === 'tab' ||
3196
+ key === 'enter' ||
3197
+ key === 'space' ||
3198
+ key === 'escape');
3199
+ }
3200
+ findMenuItemByHotkey(pressedHotkey) {
3201
+ for (const item of this.visibleItems) {
3202
+ if (!this.isMenuItem(item) || item.disabled) {
3203
+ continue;
3204
+ }
3205
+ const rawHotkey = item.hotkey;
3206
+ if (!rawHotkey) {
3207
+ continue;
3208
+ }
3209
+ const normalized = this.getNormalizedHotkey(rawHotkey);
3210
+ if (normalized && normalized === pressedHotkey) {
3211
+ return item;
3212
+ }
3213
+ }
3214
+ return null;
3215
+ }
3216
+ getNormalizedHotkey(raw) {
3217
+ var _a;
3218
+ const cacheKey = raw.trim();
3219
+ if (this.normalizedHotkeyCache.has(cacheKey)) {
3220
+ return (_a = this.normalizedHotkeyCache.get(cacheKey)) !== null && _a !== void 0 ? _a : null;
3221
+ }
3222
+ const normalized = hotkeys.normalizeHotkeyString(cacheKey);
3223
+ this.normalizedHotkeyCache.set(cacheKey, normalized);
3224
+ return normalized;
3225
+ }
3111
3226
  getBreadcrumbsItems() {
3112
3227
  const breadCrumbItems = [];
3113
3228
  let currentItem = this.currentSubMenu;
@@ -3170,7 +3285,11 @@ const Menu = class {
3170
3285
  return this.searchResults;
3171
3286
  }
3172
3287
  else if (Array.isArray((_a = this.currentSubMenu) === null || _a === void 0 ? void 0 : _a.items)) {
3173
- return this.currentSubMenu.items.map((item) => (Object.assign(Object.assign({}, item), { parentItem: this.currentSubMenu })));
3288
+ if (this.cachedSubMenuSource !== this.currentSubMenu) {
3289
+ this.cachedSubMenuSource = this.currentSubMenu;
3290
+ this.cachedSubMenuItems = this.currentSubMenu.items.map((item) => (Object.assign(Object.assign({}, item), { parentItem: this.currentSubMenu })));
3291
+ }
3292
+ return this.cachedSubMenuItems;
3174
3293
  }
3175
3294
  return this.items;
3176
3295
  }
@@ -4674,12 +4793,15 @@ class MenuListRenderer {
4674
4793
  const hasSubMenu = this.hasSubItems(item);
4675
4794
  const hasMeta = hasSubMenu ||
4676
4795
  item.badge !== undefined ||
4677
- (!!('commandText' in item) && !!item.commandText);
4796
+ !!item.hotkey ||
4797
+ !!item.commandText;
4678
4798
  const primaryComponent = hasMeta
4679
4799
  ? {
4680
4800
  name: 'limel-menu-item-meta',
4681
4801
  props: {
4682
4802
  commandText: item.commandText,
4803
+ hotkey: item.hotkey,
4804
+ disabled: !!item.disabled,
4683
4805
  badge: item.badge,
4684
4806
  showChevron: hasSubMenu,
4685
4807
  },
@@ -4798,7 +4920,7 @@ const MenuList = class {
4798
4920
  iconSize: this.iconSize,
4799
4921
  };
4800
4922
  const html = this.MenuListRenderer.render(this.items, this.config);
4801
- return index.h("div", { key: 'a0d43ee28ff19b78b99ed0ec7fc0d1ff79f235e0', class: "mdc-menu mdc-menu-surface" }, html);
4923
+ return index.h("div", { key: '1c044c711555d155c5559f8b787a3bbad09b7526', class: "mdc-menu mdc-menu-surface" }, html);
4802
4924
  }
4803
4925
  itemsChanged() {
4804
4926
  setTimeout(() => {
@@ -4924,7 +5046,7 @@ const MenuSurface = class {
4924
5046
  'mdc-elevation-transition': true,
4925
5047
  'mdc-elevation--z4': true,
4926
5048
  };
4927
- return (index.h("div", { key: '0d834530b1abaa97c0443447ae573ff4eb000ea7', class: classList, tabindex: "-1" }, index.h("slot", { key: 'caea2ed90273cdacfd7e79ae2f2b5aff476dc7ed' })));
5049
+ return (index.h("div", { key: '254247a3cd25908f96e55028df567663dd4d736a', class: classList, tabindex: "-1" }, index.h("slot", { key: 'eb7d1042a28585242d212cf40a34018240cb0502' })));
4928
5050
  }
4929
5051
  get host() { return index.getElement(this); }
4930
5052
  };
@@ -4945,7 +5067,7 @@ const Spinner = class {
4945
5067
  this.limeBranded = false;
4946
5068
  }
4947
5069
  render() {
4948
- return (index.h(index.Host, { key: '15c39e3df6a446d4f809e23d2316e535bf77dc99' }, index.h("svg", { key: 'e88d11c66514783aa11bb01c4e902a15d0cb6dd4', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, this.renderSpinner())));
5070
+ return (index.h(index.Host, { key: '5d7275ec64f2e3b07c7e25065d8d115de772324e' }, index.h("svg", { key: '41e5110dc29d6112261bea4afbd8cffde213cde0', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, this.renderSpinner())));
4949
5071
  }
4950
5072
  renderSpinner() {
4951
5073
  if (!this.limeBranded) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-BjHIBY-I.js');
4
4
  var randomString = require('./random-string-BTzDB2ee.js');
5
- var device = require('./device-CDZCRYph.js');
5
+ var device = require('./device-C9O7lYI9.js');
6
6
  require('./sv-jO-ewmqh.js');
7
7
  var moment = require('./moment-DCqC7BZP.js');
8
8
  var component = require('./component-CFk7Dfoi.js');
@@ -5,7 +5,7 @@ var translations = require('./translations-Bu_0fli7.js');
5
5
  var _commonjsHelpers = require('./_commonjsHelpers-BJu3ubxk.js');
6
6
  require('./sv-jO-ewmqh.js');
7
7
  var moment = require('./moment-DCqC7BZP.js');
8
- var device = require('./device-CDZCRYph.js');
8
+ var device = require('./device-C9O7lYI9.js');
9
9
  var eq = require('./eq-B1KBAwmK.js');
10
10
  var isArrayLike$1 = require('./isArrayLike-_dR1U5-Y.js');
11
11
  var isObject$1 = require('./isObject-B6Osvvqp.js');
@@ -86,7 +86,7 @@ const NotchedOutline = class {
86
86
  this.hasFloatingLabel = false;
87
87
  }
88
88
  render() {
89
- return (index.h("div", { key: 'b50040fa4388423e4a918aead75dc425c8b1b2f4', class: "limel-notched-outline" }, index.h("slot", { key: 'd8c2b975c3f82ec33dffd773b7461e28427f1dbe', name: "content" }), index.h("span", { key: '981dc0b50cf8de443fd70e25272819af2e91e4ac', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, index.h("span", { key: 'b0f18a32926f2a1e308675911ac2cdcc8b8adb69', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), index.h("span", { key: 'ac7812bc4b30d93b8cf73b49db14f51db8845d82', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
89
+ return (index.h("div", { key: '5dd66f7356821043d750963f18ef8f39889e65cc', class: "limel-notched-outline" }, index.h("slot", { key: '1b2072f7acd112137188b570229470677458ace7', name: "content" }), index.h("span", { key: '3d1d04a75ff0459b53294a2b2bbb4f15192409cd', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, index.h("span", { key: '9677d3b3bc1f37e954c3ab2907e98db8b9122466', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), index.h("span", { key: '62a494be847b2181cdd00f20e50cffbbc121bfd2', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
90
90
  }
91
91
  renderLabel() {
92
92
  if (!this.label) {
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-BjHIBY-I.js');
4
+ var hotkeys = require('./hotkeys-BtR8uxvl.js');
5
+ var device = require('./device-C9O7lYI9.js');
6
+
7
+ // Note: this function handles the same key aliases as `KEY_ALIASES` in
8
+ // `../../util/hotkeys.ts`, but maps them to display strings rather than
9
+ // canonical names. Keep both in sync when adding new aliases.
10
+ /**
11
+ * Maps a single hotkey token to its display representation.
12
+ *
13
+ * @param token - A single token from `tokenizeHotkeyString` (e.g. `"meta"`, `"k"`, `"+"`).
14
+ * @param isApple - Whether the current device is an Apple device.
15
+ * @returns The display string, whether it is a glyph (for styling),
16
+ * and a human-readable name for screen readers.
17
+ */
18
+ function formatDisplayToken(token, isApple) {
19
+ const trimmed = (token !== null && token !== void 0 ? token : '').trim();
20
+ if (!trimmed) {
21
+ return { display: '', isGlyph: false, ariaName: '' };
22
+ }
23
+ if (trimmed === '+') {
24
+ return { display: '+', isGlyph: false, ariaName: 'plus' };
25
+ }
26
+ const lower = trimmed.toLowerCase();
27
+ switch (lower) {
28
+ case 'meta':
29
+ case 'win':
30
+ case 'windows': {
31
+ return isApple
32
+ ? { display: '⌘', isGlyph: true, ariaName: 'Command' }
33
+ : { display: '⊞ Win', isGlyph: false, ariaName: 'Windows' };
34
+ }
35
+ case 'cmd':
36
+ case 'command': {
37
+ return { display: '⌘', isGlyph: true, ariaName: 'Command' };
38
+ }
39
+ case 'alt':
40
+ case 'option': {
41
+ return isApple
42
+ ? { display: '⌥', isGlyph: true, ariaName: 'Option' }
43
+ : { display: 'Alt', isGlyph: false, ariaName: 'Alt' };
44
+ }
45
+ case 'shift': {
46
+ return { display: '⇧', isGlyph: true, ariaName: 'Shift' };
47
+ }
48
+ case 'enter':
49
+ case 'return': {
50
+ return { display: '↩', isGlyph: true, ariaName: 'Enter' };
51
+ }
52
+ case 'tab': {
53
+ return { display: '⇥', isGlyph: true, ariaName: 'Tab' };
54
+ }
55
+ case 'delete':
56
+ case 'del':
57
+ case 'backspace': {
58
+ if (isApple) {
59
+ return { display: '⌫', isGlyph: true, ariaName: 'Delete' };
60
+ }
61
+ return lower === 'backspace'
62
+ ? {
63
+ display: 'Backspace',
64
+ isGlyph: false,
65
+ ariaName: 'Backspace',
66
+ }
67
+ : { display: 'Del', isGlyph: false, ariaName: 'Delete' };
68
+ }
69
+ case 'ctrl':
70
+ case 'control': {
71
+ return isApple
72
+ ? { display: '⌃', isGlyph: true, ariaName: 'Control' }
73
+ : { display: 'Ctrl', isGlyph: false, ariaName: 'Control' };
74
+ }
75
+ case 'escape':
76
+ case 'esc': {
77
+ return { display: 'Esc', isGlyph: false, ariaName: 'Escape' };
78
+ }
79
+ case 'space':
80
+ case 'spacebar': {
81
+ return { display: '␣', isGlyph: true, ariaName: 'Space' };
82
+ }
83
+ case 'arrowup':
84
+ case 'up': {
85
+ return { display: '↑', isGlyph: true, ariaName: 'Up' };
86
+ }
87
+ case 'arrowdown':
88
+ case 'down': {
89
+ return { display: '↓', isGlyph: true, ariaName: 'Down' };
90
+ }
91
+ case 'arrowleft':
92
+ case 'left': {
93
+ return { display: '←', isGlyph: true, ariaName: 'Left' };
94
+ }
95
+ case 'arrowright':
96
+ case 'right': {
97
+ return { display: '→', isGlyph: true, ariaName: 'Right' };
98
+ }
99
+ }
100
+ return { display: trimmed, isGlyph: false, ariaName: trimmed };
101
+ }
102
+
103
+ const hotkeyCss = () => `@charset "UTF-8";kbd{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-weight:600;color:rgb(var(--contrast-1100));background-color:rgb(var(--contrast-200));white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:normal;padding:0.125rem 0.5rem;margin:0 0.25rem;box-shadow:var(--button-shadow-normal), 0 0.03125rem 0.21875rem 0 rgba(var(--contrast-100), 0.5) inset;border-radius:0.125rem;border-style:solid;border-color:rgba(var(--contrast-600), 0.8);border-width:0 1px 0.125rem 1px}:host(limel-hotkey){display:flex;align-items:center;justify-content:center;gap:0.25rem}:host(limel-hotkey[disabled]:not([disabled=false])){opacity:0.5}kbd{margin:0;font-size:0.75rem;box-shadow:var(--button-shadow-pressed), 0 0.625rem 0.375px -0.5rem rgb(var(--color-black), 0.02), 0 0.025rem 0.5rem 0 rgb(var(--contrast-100)) inset}span{display:inline-block}span::first-letter{text-transform:uppercase}kbd.is-glyph span{transform:scale(1.2)}`;
104
+
105
+ const Hotkey = class {
106
+ constructor(hostRef) {
107
+ index.registerInstance(this, hostRef);
108
+ /**
109
+ * When `true`, the hotkey is rendered in a visually disabled state.
110
+ */
111
+ this.disabled = false;
112
+ }
113
+ componentWillLoad() {
114
+ this.isApple = device.isAppleDevice();
115
+ }
116
+ render() {
117
+ const parts = hotkeys.tokenizeHotkeyString(this.value);
118
+ const displayParts = parts.map((part) => formatDisplayToken(part, this.isApple));
119
+ const ariaLabel = displayParts
120
+ .map((p) => p.ariaName)
121
+ .filter(Boolean)
122
+ .join(' ');
123
+ return (index.h(index.Host, { key: 'ab1b9d31080740d19a4633c8c5bc92b02625c111', "aria-label": ariaLabel || undefined }, displayParts.map(({ display, isGlyph }, index$1) => (index.h("kbd", { key: `${parts[index$1]}-${index$1}`, class: isGlyph ? 'is-glyph' : undefined }, index.h("span", null, display))))));
124
+ }
125
+ };
126
+ Hotkey.style = hotkeyCss();
127
+
128
+ exports.limel_hotkey = Hotkey;
@@ -49,7 +49,7 @@ const IconButton = class {
49
49
  if (this.host.hasAttribute('tabindex')) {
50
50
  buttonAttributes.tabindex = this.host.getAttribute('tabindex');
51
51
  }
52
- return (index.h(index.Host, { key: '75991185b5994f4fffb56a03031cfc0b570a3de4', onClick: this.filterClickWhenDisabled }, index.h("button", Object.assign({ key: '608c0abc14322e8b8755c4af5137880bb419824d', disabled: this.disabled, id: this.tooltipId }, buttonAttributes), this.renderIcon(), this.renderTooltip(this.tooltipId))));
52
+ return (index.h(index.Host, { key: '0df3febef19dcdb72c7c7f3740090414b313be51', onClick: this.filterClickWhenDisabled }, index.h("button", Object.assign({ key: 'fd0d61e30789619c52cd6a71269602efc7065f8e', disabled: this.disabled, id: this.tooltipId }, buttonAttributes), this.renderIcon(), this.renderTooltip(this.tooltipId))));
53
53
  }
54
54
  renderIcon() {
55
55
  var _a, _b;
@@ -161,7 +161,7 @@ const Icon = class {
161
161
  this.loadIcon(this.name);
162
162
  }
163
163
  render() {
164
- return index.h("div", { key: '80c6844e64217d24e957368feafddc831b497b2f', class: "container" });
164
+ return index.h("div", { key: '23b5f2c90c98461f65c0bcdb291f9958e00ac353', class: "container" });
165
165
  }
166
166
  async loadIcon(name) {
167
167
  if (name === undefined || name === '') {
@@ -106,9 +106,9 @@ const InfoTile = class {
106
106
  this.checkProps((_d = this === null || this === void 0 ? void 0 : this.link) === null || _d === void 0 ? void 0 : _d.title);
107
107
  const link = this.disabled ? '#' : (_e = this.link) === null || _e === void 0 ? void 0 : _e.href;
108
108
  const rel = linkHelper.getRel((_f = this.link) === null || _f === void 0 ? void 0 : _f.target, (_g = this.link) === null || _g === void 0 ? void 0 : _g.rel);
109
- return (index.h(index.Host, { key: '7c8d656a077f6c80cc7d4d64bf1aa9ef7d5bd781', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, class: { 'has-primary-slot-content': this.hasPrimarySlot } }, index.h("a", { key: 'f73467be963a8aa901c890958eda32212ff2f3a0', title: (_h = this.link) === null || _h === void 0 ? void 0 : _h.title, href: link, target: (_j = this.link) === null || _j === void 0 ? void 0 : _j.target, rel: rel, tabindex: "0", "aria-label": extendedAriaLabel, "aria-disabled": this.disabled, "aria-busy": this.loading ? 'true' : 'false', "aria-live": "polite", class: {
109
+ return (index.h(index.Host, { key: '3754cadd6c7cf0ee99e0f5dc2234732126dcdc1e', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, class: { 'has-primary-slot-content': this.hasPrimarySlot } }, index.h("a", { key: 'c812a64253f3687f230c9a306727addae91ac685', title: (_h = this.link) === null || _h === void 0 ? void 0 : _h.title, href: link, target: (_j = this.link) === null || _j === void 0 ? void 0 : _j.target, rel: rel, tabindex: "0", "aria-label": extendedAriaLabel, "aria-disabled": this.disabled, "aria-busy": this.loading ? 'true' : 'false', "aria-live": "polite", class: {
110
110
  'is-clickable': !!((_k = this.link) === null || _k === void 0 ? void 0 : _k.href) && !this.disabled,
111
- } }, this.renderIcon(), this.renderProgress(), index.h("slot", { key: '2e4972465f34d57ce81a0c55782e9fcbc4c91c90', name: "primary", onSlotchange: this.updateHasPrimarySlotContent }), index.h("div", { key: '119b244389b740a05b266c80a78bffd2287f6dab', class: "value-group" }, this.renderPrefix(), index.h("div", { key: '9a9fc38d8c997b3ce6db3715a1aed622ec0af586', class: "value-and-suffix" }, this.renderValue(), this.renderSuffix()), this.renderSpinner()), this.renderLabel(), index.h("limel-3d-hover-effect-glow", { key: '1809611bebee438d5b840907f09adda725c7849c' })), this.renderNotification()));
111
+ } }, this.renderIcon(), this.renderProgress(), index.h("slot", { key: '62e330f8b945d562b5ee4677a62ab21ec1b6defe', name: "primary", onSlotchange: this.updateHasPrimarySlotContent }), index.h("div", { key: 'de41a8bc66d7f706153188f84b96481dfa25f8f9', class: "value-group" }, this.renderPrefix(), index.h("div", { key: '8ae36080dadd6b4a7135c7280e51a88015f30fbc', class: "value-and-suffix" }, this.renderValue(), this.renderSuffix()), this.renderSpinner()), this.renderLabel(), index.h("limel-3d-hover-effect-glow", { key: '0221c5e66f2a30b60e619bc7d6fe35e66d1db653' })), this.renderNotification()));
112
112
  }
113
113
  checkProps(propValue) {
114
114
  return propValue ? propValue + ' ' : '';
@@ -134,9 +134,9 @@ const ListItemComponent = class {
134
134
  // also keep for `menuitem` for visual state consistency
135
135
  ariaProps['aria-selected'] = this.selected ? 'true' : 'false';
136
136
  }
137
- return (index.h(index.Host, Object.assign({ key: 'cc58d641c46fc21c81d9fbc6fbcd3a483aa7d803', role: this.getHostRole(), class: {
137
+ return (index.h(index.Host, Object.assign({ key: '4f769d4dc9bcf065f0891ae394efb8f2cb4e3cbe', role: this.getHostRole(), class: {
138
138
  'has-primary-component': !!((_a = this.primaryComponent) === null || _a === void 0 ? void 0 : _a.name),
139
- } }, ariaProps), this.renderRadioButton(), this.renderCheckbox(), this.renderIcon(), this.renderImage(), this.renderPrimaryComponent(), index.h("div", { key: '2d8f6496d714faf9f3bd59cc829459191d650dc7', class: "text" }, this.renderLabel(), this.renderDescription()), this.renderActionMenu(this.actions)));
139
+ } }, ariaProps), this.renderRadioButton(), this.renderCheckbox(), this.renderIcon(), this.renderImage(), this.renderPrimaryComponent(), index.h("div", { key: 'f3ae79f70d048a6541af55782a8a1956fd7338c5', class: "text" }, this.renderLabel(), this.renderDescription()), this.renderActionMenu(this.actions)));
140
140
  }
141
141
  /**
142
142
  * Returns a stable reference for the provided actions array to avoid
@@ -335,7 +335,7 @@ const Markdown = class {
335
335
  this.cleanupImageIntersectionObserver();
336
336
  }
337
337
  render() {
338
- return (index$1.h(index$1.Host, { key: '89f9536407969e0bb9dd206ca540dabee9c3eecf' }, index$1.h("div", { key: '373f17c2933a715a97f2854343c1d26d32a26a27', id: "markdown", ref: (el) => (this.rootElement = el) })));
338
+ return (index$1.h(index$1.Host, { key: 'd3c5e71466ad7fa2723a0a44bc6ba6742e597ca1' }, index$1.h("div", { key: 'ff45056e1a3ad465bdea9026b0c9674d911607a2', id: "markdown", ref: (el) => (this.rootElement = el) })));
339
339
  }
340
340
  setupImageIntersectionObserver() {
341
341
  if (this.lazyLoadImages) {
@@ -1,21 +1,32 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BjHIBY-I.js');
4
+ var hotkeys = require('./hotkeys-BtR8uxvl.js');
4
5
 
5
6
  const menuItemMetaCss = () => `@charset "UTF-8";:host(limel-menu-item-meta){order:4;transform:translateX(0.5rem);display:inline-flex;align-items:center;gap:0.5rem;max-width:50%}*{box-sizing:border-box}limel-badge{--badge-background-color:var( --notification-badge-background-color, rgb(var(--color-red-default)) );--badge-text-color:var( --notification-badge-text-color, rgb(var(--color-white)) )}.command-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:0.7;font-size:var(--limel-theme-default-small-font-size)}.chevron{flex-shrink:0;border-color:transparent;border-left-color:var(--limel-theme-text-secondary-on-background-color);border-width:0.25rem 0 0.25rem 0.375rem;border-style:solid}`;
6
7
 
7
8
  const MenuItemMeta = class {
8
9
  constructor(hostRef) {
9
10
  index.registerInstance(this, hostRef);
11
+ /**
12
+ * Will be set to `true` when the menu item is disabled.
13
+ */
14
+ this.disabled = false;
10
15
  /**
11
16
  * Shows a submenu chevron to indicate nested items
12
17
  */
13
18
  this.showChevron = false;
14
19
  }
15
20
  render() {
16
- return (index.h(index.Host, { key: '9e84c6ecc29e50b5a4e871d646fb11539e5fe86f' }, this.renderCommandText(), this.renderBadge(), this.renderChevron()));
21
+ return (index.h(index.Host, { key: '4341b1cd34952fdd2dc40bc3c4b7eb909646d880' }, this.renderCommandText(), this.renderBadge(), this.renderChevron()));
17
22
  }
18
23
  renderCommandText() {
24
+ if (this.hotkey) {
25
+ const hotkey = hotkeys.normalizeHotkeyString(this.hotkey);
26
+ if (hotkey) {
27
+ return index.h("limel-hotkey", { value: hotkey, disabled: this.disabled });
28
+ }
29
+ }
19
30
  if (!this.commandText) {
20
31
  return;
21
32
  }
@@ -189,7 +189,7 @@ const Picker = class {
189
189
  props.maxItems = 1;
190
190
  }
191
191
  return [
192
- index.h("limel-chip-set", Object.assign({ key: '996808bffc8715bab47a4b225d02d57247b3287d', type: "input", inputType: "search", label: this.label, helperText: this.helperText, leadingIcon: this.leadingIcon, value: this.chips, disabled: this.disabled, invalid: this.invalid, delimiter: this.renderDelimiter(), readonly: this.readonly, required: this.required, searchLabel: this.searchLabel, onInput: this.handleTextInput, onKeyDown: this.handleInputKeyDown, onChange: this.handleChange, onInteract: this.handleInteract, onStartEdit: this.handleInputFieldFocus, onStopEdit: this.handleStopEditAndBlur, emptyInputOnBlur: false, clearAllButton: this.multiple && !this.chipSetEditMode }, props)),
192
+ index.h("limel-chip-set", Object.assign({ key: 'e20f22b6907ad1d28f8b8c0847e5080faca09b3b', type: "input", inputType: "search", label: this.label, helperText: this.helperText, leadingIcon: this.leadingIcon, value: this.chips, disabled: this.disabled, invalid: this.invalid, delimiter: this.renderDelimiter(), readonly: this.readonly, required: this.required, searchLabel: this.searchLabel, onInput: this.handleTextInput, onKeyDown: this.handleInputKeyDown, onChange: this.handleChange, onInteract: this.handleInteract, onStartEdit: this.handleInputFieldFocus, onStopEdit: this.handleStopEditAndBlur, emptyInputOnBlur: false, clearAllButton: this.multiple && !this.chipSetEditMode }, props)),
193
193
  this.renderDropdown(),
194
194
  ];
195
195
  }
@@ -124,7 +124,7 @@ const Popover = class {
124
124
  render() {
125
125
  const cssProperties = this.getCssProperties();
126
126
  const popoverZIndex = getComputedStyle(this.host).getPropertyValue('--popover-z-index');
127
- return (index.h("div", { key: 'ac6e4c9358d68223f43ea60a29302d725438cf05', class: "trigger-anchor" }, index.h("slot", { key: '5e5ae7d194f7cc005573e909cd10343283603a7f', name: "trigger", ref: this.setTriggerRef }), index.h("limel-portal", { key: '5d4bda03c1ea9b07c17b7222fb2f30e29af9b3d3', visible: this.open, containerId: this.portalId, containerStyle: { 'z-index': popoverZIndex }, openDirection: this.openDirection }, index.h("limel-popover-surface", { key: '0f9804103a70f924375429ba7e96ad62858cb2ea', contentCollection: this.host.children, style: cssProperties }))));
127
+ return (index.h("div", { key: '53e64435fa661015fbbf2e449890864c8008c329', class: "trigger-anchor" }, index.h("slot", { key: '85336e8f76377921850ffc7704c7588707c45066', name: "trigger", ref: this.setTriggerRef }), index.h("limel-portal", { key: 'a40bfde87375a494ac5404911b4b1f058a55becf', visible: this.open, containerId: this.portalId, containerStyle: { 'z-index': popoverZIndex }, openDirection: this.openDirection }, index.h("limel-popover-surface", { key: '396e369ae3e61a79bfd2f520e05187a6ff85f834', contentCollection: this.host.children, style: cssProperties }))));
128
128
  }
129
129
  globalClickListener(event) {
130
130
  const element = event.target;
@@ -167,7 +167,7 @@ const PopoverSurface = class {
167
167
  this.appendElement();
168
168
  }
169
169
  render() {
170
- return index.h("div", { key: '553798a32efa190cbceb65aec00b56bfb5eb25f7', class: "limel-popover-surface", tabindex: "0" });
170
+ return index.h("div", { key: '72e73b254be6cebbd27332329b10a58210ae0352', class: "limel-popover-surface", tabindex: "0" });
171
171
  }
172
172
  appendElement() {
173
173
  const portalContainer = this.host.shadowRoot.querySelector('.limel-popover-surface');
@@ -1875,7 +1875,7 @@ const Portal = class {
1875
1875
  }
1876
1876
  }
1877
1877
  render() {
1878
- return index.h("slot", { key: 'e41cbd7a44b0e55525f9e99d056cc9ab627082d0' });
1878
+ return index.h("slot", { key: 'd6ed0d276afec19ba5ffd4d6a6fcf96937127d6a' });
1879
1879
  }
1880
1880
  onVisible() {
1881
1881
  if (!this.container && this.visible) {
@@ -2143,10 +2143,10 @@ const Tooltip = class {
2143
2143
  }
2144
2144
  render() {
2145
2145
  const tooltipZIndex = getComputedStyle(this.host).getPropertyValue('--tooltip-z-index');
2146
- return (index.h("div", { key: 'aaa9995f9223094c080d27aa4530c09f95fa2bfc', class: "trigger-anchor" }, index.h("limel-portal", { key: '175a57a6702519efbcd45738f0bf2b56308c3f63', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
2146
+ return (index.h("div", { key: '93e90be597ba45e4063a9a7a689783f31a3b5871', class: "trigger-anchor" }, index.h("limel-portal", { key: '94cdcde46fc3f172e194894d0546cf96bce35623', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
2147
2147
  'z-index': tooltipZIndex,
2148
2148
  'pointer-events': 'none',
2149
- }, anchor: this.ownerElement }, index.h("limel-tooltip-content", { key: '0468b3922536241c605698a795730217c39f861c', label: this.label, helperLabel: this.helperLabel, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
2149
+ }, anchor: this.ownerElement }, index.h("limel-tooltip-content", { key: 'd24de90d827c87b1e8fd2c10142fc34bcd498774', label: this.label, helperLabel: this.helperLabel, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
2150
2150
  }
2151
2151
  setOwnerAriaLabel() {
2152
2152
  var _a;
@@ -2189,7 +2189,7 @@ const TooltipContent = class {
2189
2189
  };
2190
2190
  }
2191
2191
  return [
2192
- index.h("text", Object.assign({ key: '17f145f906af010db827853f75206cf19a0fc7b8', class: { 'has-column-layout': isLabelsTextLong } }, props), index.h("div", { key: '007daa0b685ff71c4954dccef1947034627aa848', class: "label" }, this.label), index.h("div", { key: '9c5e6a7cf0cf4f80dd89964d789347fcc8787ba4', class: "helper-label" }, this.helperLabel)),
2192
+ index.h("text", Object.assign({ key: '5f6cde48d57c7c5b680055314f3b6d082ff37b5a', class: { 'has-column-layout': isLabelsTextLong } }, props), index.h("div", { key: 'ebfc96849d68c4db09e7be7b3d86e12d3937a5d9', class: "label" }, this.label), index.h("div", { key: 'a2730d9d13111bd949fc1a2795b785c217f800f8', class: "helper-label" }, this.helperLabel)),
2193
2193
  ];
2194
2194
  }
2195
2195
  };
@@ -27826,7 +27826,7 @@ const ProsemirrorAdapter = class {
27826
27826
  (_e = this.view) === null || _e === void 0 ? void 0 : _e.destroy();
27827
27827
  }
27828
27828
  render() {
27829
- return (index$1.h(index$1.Host, { key: '906845e8194052593a210e3a2338a48eede41ccf', onFocus: this.handleFocus }, index$1.h("div", { key: '6d230fc8957fe800db8f3d809dc21603131fb3e5', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
27829
+ return (index$1.h(index$1.Host, { key: '2f17d3935ed3c9d7a7191b3b4cd85bb1c2a4ac32', onFocus: this.handleFocus }, index$1.h("div", { key: '328602696f29dbbe89cee0c535f2efddf92c2a20', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
27830
27830
  }
27831
27831
  renderToolbar() {
27832
27832
  if (this.actionBarItems.length === 0 || this.ui === 'no-toolbar') {
@@ -26,7 +26,7 @@ const RadioButtonGroup = class {
26
26
  };
27
27
  }
28
28
  render() {
29
- return (index.h("limel-list", { key: 'f6aca37c9b00f4f92b1a048f8d7d0dd86e6f8c1f', items: this.createItems(), type: "radio", badgeIcons: this.badgeIcons, maxLinesSecondaryText: this.maxLinesSecondaryText, onChange: this.handleChange }));
29
+ return (index.h("limel-list", { key: 'd42e6342d4fd79d34cb2c6a9d25d3dfe577e9a99', items: this.createItems(), type: "radio", badgeIcons: this.badgeIcons, maxLinesSecondaryText: this.maxLinesSecondaryText, onChange: this.handleChange }));
30
30
  }
31
31
  createItems() {
32
32
  return this.items.map((option) => {
@@ -9,12 +9,12 @@ const RadioButtonComponent = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h(index.Host, { key: '09013c710b49de8c6aa1b3b0342add87ee69230b', class: {
12
+ return (index.h(index.Host, { key: '64623e09534c5b4e457029cbed4865d97d3cc19e', class: {
13
13
  'boolean-input': true,
14
14
  'radio-button': true,
15
15
  checked: this.checked,
16
16
  disabled: this.disabled,
17
- } }, index.h("input", { key: '0199ebfe42f8d46ccc848c00725739617863a1b3', type: "radio", id: this.id, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), index.h("div", { key: '80fc53f911d4524267a5c9e915e2c3ba7d3b58e8', class: "box" }), index.h("label", { key: '6e260d713cd802b12bdd88251a79eaaaf97ea9e8', class: "boolean-input-label", htmlFor: this.id }, this.label)));
17
+ } }, index.h("input", { key: '4eb816e8031d20bbfa5beb32798e50e5d3747895', type: "radio", id: this.id, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), index.h("div", { key: '9e7d7db22981a16b4655d7cbcd7c3eb2462a7953', class: "box" }), index.h("label", { key: '4b2061d351b2d4d03d6e5763bc132be46d146e48', class: "boolean-input-label", htmlFor: this.id }, this.label)));
18
18
  }
19
19
  };
20
20
  RadioButtonComponent.style = radioButtonCss();