@limetech/lime-elements 33.14.0-next.2 → 33.14.0-next.6

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 (36) hide show
  1. package/dist/cjs/lime-elements.cjs.js +1 -1
  2. package/dist/cjs/limel-list_3.cjs.entry.js +2 -0
  3. package/dist/cjs/limel-menu.cjs.entry.js +49 -1
  4. package/dist/cjs/limel-tab-bar.cjs.entry.js +6 -1
  5. package/dist/cjs/limel-tooltip.cjs.entry.js +43 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/components/list/list.js +2 -0
  8. package/dist/collection/components/menu/menu.js +51 -2
  9. package/dist/collection/components/tab-bar/tab-bar.js +6 -1
  10. package/dist/collection/components/tab-panel/tab-panel.js +2 -1
  11. package/dist/collection/components/tab-panel/tab-panel.types.js +1 -0
  12. package/dist/collection/components/tooltip/tooltip-content.js +4 -2
  13. package/dist/collection/components/tooltip/tooltip.js +71 -12
  14. package/dist/esm/lime-elements.js +1 -1
  15. package/dist/esm/limel-list_3.entry.js +2 -0
  16. package/dist/esm/limel-menu.entry.js +49 -1
  17. package/dist/esm/limel-tab-bar.entry.js +6 -1
  18. package/dist/esm/limel-tooltip.entry.js +43 -1
  19. package/dist/esm/loader.js +1 -1
  20. package/dist/lime-elements/lime-elements.esm.js +1 -1
  21. package/dist/lime-elements/p-4e6042f7.entry.js +1 -0
  22. package/dist/lime-elements/{p-9c0dc505.entry.js → p-61ecc7f1.entry.js} +2 -2
  23. package/dist/lime-elements/p-63e4f918.entry.js +1 -0
  24. package/dist/lime-elements/p-6fcc1378.entry.js +177 -0
  25. package/dist/types/components/menu/menu.d.ts +7 -0
  26. package/dist/types/components/tab-bar/tab-bar.d.ts +1 -0
  27. package/dist/types/components/tab-panel/tab-panel.d.ts +2 -1
  28. package/dist/types/components/tab-panel/tab-panel.types.d.ts +16 -0
  29. package/dist/types/components/tooltip/tooltip-content.d.ts +6 -2
  30. package/dist/types/components/tooltip/tooltip.d.ts +31 -4
  31. package/dist/types/components.d.ts +16 -16
  32. package/dist/types/interface.d.ts +1 -0
  33. package/package.json +1 -1
  34. package/dist/lime-elements/p-1f3b6139.entry.js +0 -1
  35. package/dist/lime-elements/p-8e8219ac.entry.js +0 -177
  36. package/dist/lime-elements/p-b3b08c96.entry.js +0 -1
@@ -15,5 +15,5 @@ const patchBrowser = () => {
15
15
  };
16
16
 
17
17
  patchBrowser().then(options => {
18
- return index.bootstrapLazy([["limel-picker.cjs",[[1,"limel-picker",{"disabled":[4],"readonly":[516],"label":[1],"searchLabel":[1,"search-label"],"leadingIcon":[1,"leading-icon"],"emptyResultMessage":[1,"empty-result-message"],"required":[4],"value":[16],"searcher":[16],"multiple":[4],"delimiter":[513],"displayFullList":[4,"display-full-list"],"actions":[16],"actionPosition":[1,"action-position"],"actionScrollBehavior":[1,"action-scroll-behavior"],"items":[32],"textValue":[32],"loading":[32],"chips":[32]}]]],["limel-date-picker.cjs",[[1,"limel-date-picker",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"required":[516],"value":[16],"type":[513],"format":[513],"language":[513],"formattedValue":[32],"internalFormat":[32],"showPortal":[32]}]]],["limel-select.cjs",[[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]}]]],["limel-tab-panel.cjs",[[1,"limel-tab-panel",{"tabs":[1040]}]]],["limel-file.cjs",[[1,"limel-file",{"value":[16],"label":[513],"required":[516],"disabled":[516],"readonly":[516],"accept":[513],"language":[1],"isDraggingOverDropZone":[32]}]]],["limel-menu.cjs",[[1,"limel-menu",{"label":[513],"items":[16],"disabled":[516],"openDirection":[513,"open-direction"],"open":[1540],"badgeIcons":[516,"badge-icons"],"gridLayout":[516,"grid-layout"],"fixed":[4]}]]],["limel-button.cjs",[[1,"limel-button",{"label":[513],"primary":[516],"outlined":[516],"icon":[513],"disabled":[516],"loading":[516]}]]],["limel-collapsible-section.cjs",[[1,"limel-collapsible-section",{"isOpen":[1540,"is-open"],"header":[1],"actions":[16]}]]],["limel-dialog.cjs",[[1,"limel-dialog",{"heading":[1],"fullscreen":[516],"open":[1540],"closingActions":[16]}]]],["limel-popover.cjs",[[1,"limel-popover",{"open":[4]}]]],["limel-progress-flow.cjs",[[1,"limel-progress-flow",{"flowItems":[16],"disabled":[4],"readonly":[4]}]]],["limel-tooltip.cjs",[[1,"limel-tooltip",{"label":[1],"helperLabel":[1,"helper-label"],"open":[4]}]]],["limel-banner.cjs",[[1,"limel-banner",{"message":[513],"icon":[513],"isOpen":[32],"open":[64],"close":[64]}]]],["limel-button-group.cjs",[[1,"limel-button-group",{"value":[16],"disabled":[516],"selectedButtonId":[32]}]]],["limel-table.cjs",[[1,"limel-table",{"data":[16],"columns":[16],"mode":[1],"pageSize":[2,"page-size"],"totalRows":[2,"total-rows"],"sorting":[16],"activeRow":[1040],"movableColumns":[4,"movable-columns"],"loading":[4],"page":[2],"emptyMessage":[1,"empty-message"]}]]],["limel-checkbox.cjs",[[1,"limel-checkbox",{"disabled":[516],"readonly":[516],"label":[513],"checked":[516],"required":[516],"modified":[32]}]]],["limel-circular-progress.cjs",[[1,"limel-circular-progress",{"value":[2],"maxValue":[2,"max-value"],"suffix":[1],"displayPercentageColors":[4,"display-percentage-colors"],"size":[513]}]]],["limel-code-editor.cjs",[[1,"limel-code-editor",{"value":[1],"language":[1],"readonly":[4],"lineNumbers":[4,"line-numbers"],"colorScheme":[1,"color-scheme"],"random":[32]}]]],["limel-config.cjs",[[1,"limel-config",{"config":[16]}]]],["limel-flex-container.cjs",[[1,"limel-flex-container",{"direction":[513],"justify":[513],"align":[513],"reverse":[516]}]]],["limel-form.cjs",[[1,"limel-form",{"schema":[16],"value":[16],"propsFactory":[16]}]]],["limel-grid.cjs",[[1,"limel-grid"]]],["limel-linear-progress.cjs",[[1,"limel-linear-progress",{"value":[2],"indeterminate":[4]}]]],["limel-slider.cjs",[[1,"limel-slider",{"disabled":[516],"readonly":[516],"factor":[514],"label":[513],"helperText":[513,"helper-text"],"unit":[513],"value":[514],"valuemax":[514],"valuemin":[514],"step":[514],"percentageClass":[32]}]]],["limel-snackbar.cjs",[[1,"limel-snackbar",{"message":[1],"timeout":[2],"actionText":[1,"action-text"],"dismissible":[4],"multiline":[4],"language":[1],"show":[64]}]]],["limel-switch.cjs",[[1,"limel-switch",{"label":[513],"disabled":[516],"readonly":[516],"value":[516],"fieldId":[32]}]]],["limel-badge.cjs",[[1,"limel-badge",{"label":[514]}]]],["limel-icon.cjs",[[1,"limel-icon",{"size":[513],"name":[513],"badge":[516]}]]],["limel-tab-bar.cjs",[[1,"limel-tab-bar",{"tabs":[1040],"canScrollLeft":[32],"canScrollRight":[32]},[[9,"resize","handleWindowResize"]]]]],["limel-header.cjs",[[1,"limel-header",{"icon":[1],"heading":[1],"subheading":[1],"supportingText":[1,"supporting-text"]}]]],["limel-progress-flow-item.cjs",[[0,"limel-progress-flow-item",{"item":[16],"disabled":[4],"readonly":[4]}]]],["limel-popover-surface.cjs",[[1,"limel-popover-surface",{"contentCollection":[16]}]]],["limel-tooltip-content.cjs",[[1,"limel-tooltip-content",{"label":[1],"helperLabel":[1,"helper-label"]}]]],["limel-list_3.cjs",[[1,"limel-list",{"items":[16],"badgeIcons":[4,"badge-icons"],"iconSize":[1,"icon-size"],"type":[1],"maxLinesSecondaryText":[2,"max-lines-secondary-text"]}],[1,"limel-menu-surface",{"open":[4],"allowClicksElement":[16]}],[1,"limel-portal",{"openDirection":[1,"open-direction"],"position":[1],"containerId":[1,"container-id"],"containerStyle":[16],"parent":[16],"inheritParentWidth":[4,"inherit-parent-width"],"visible":[4]}]]],["limel-flatpickr-adapter_2.cjs",[[1,"limel-input-field",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"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"],"isFocused":[32],"isModified":[32],"showCompletions":[32]}],[1,"limel-flatpickr-adapter",{"value":[16],"type":[1],"format":[1],"isOpen":[4,"is-open"],"inputElement":[16],"language":[1]}]]],["limel-chip-set.cjs",[[1,"limel-chip-set",{"value":[16],"type":[513],"label":[513],"disabled":[516],"readonly":[516],"maxItems":[514,"max-items"],"required":[516],"searchLabel":[513,"search-label"],"emptyInputOnBlur":[516,"empty-input-on-blur"],"clearAllButton":[4,"clear-all-button"],"leadingIcon":[513,"leading-icon"],"delimiter":[513],"language":[1],"editMode":[32],"textValue":[32],"blurred":[32],"inputChipIndexSelected":[32],"getEditMode":[64],"setFocus":[64],"emptyInput":[64]}]]],["limel-icon-button.cjs",[[1,"limel-icon-button",{"icon":[513],"elevated":[516],"label":[513],"disabled":[516],"relayout":[64]}]]],["limel-spinner.cjs",[[1,"limel-spinner",{"size":[513],"limeBranded":[4,"lime-branded"]}]]]], options);
18
+ return index.bootstrapLazy([["limel-picker.cjs",[[1,"limel-picker",{"disabled":[4],"readonly":[516],"label":[1],"searchLabel":[1,"search-label"],"leadingIcon":[1,"leading-icon"],"emptyResultMessage":[1,"empty-result-message"],"required":[4],"value":[16],"searcher":[16],"multiple":[4],"delimiter":[513],"displayFullList":[4,"display-full-list"],"actions":[16],"actionPosition":[1,"action-position"],"actionScrollBehavior":[1,"action-scroll-behavior"],"items":[32],"textValue":[32],"loading":[32],"chips":[32]}]]],["limel-date-picker.cjs",[[1,"limel-date-picker",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"required":[516],"value":[16],"type":[513],"format":[513],"language":[513],"formattedValue":[32],"internalFormat":[32],"showPortal":[32]}]]],["limel-select.cjs",[[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]}]]],["limel-tab-panel.cjs",[[1,"limel-tab-panel",{"tabs":[1040]}]]],["limel-file.cjs",[[1,"limel-file",{"value":[16],"label":[513],"required":[516],"disabled":[516],"readonly":[516],"accept":[513],"language":[1],"isDraggingOverDropZone":[32]}]]],["limel-menu.cjs",[[1,"limel-menu",{"label":[513],"items":[16],"disabled":[516],"openDirection":[513,"open-direction"],"open":[1540],"badgeIcons":[516,"badge-icons"],"gridLayout":[516,"grid-layout"],"fixed":[4]}]]],["limel-button.cjs",[[1,"limel-button",{"label":[513],"primary":[516],"outlined":[516],"icon":[513],"disabled":[516],"loading":[516]}]]],["limel-collapsible-section.cjs",[[1,"limel-collapsible-section",{"isOpen":[1540,"is-open"],"header":[1],"actions":[16]}]]],["limel-dialog.cjs",[[1,"limel-dialog",{"heading":[1],"fullscreen":[516],"open":[1540],"closingActions":[16]}]]],["limel-popover.cjs",[[1,"limel-popover",{"open":[4]}]]],["limel-progress-flow.cjs",[[1,"limel-progress-flow",{"flowItems":[16],"disabled":[4],"readonly":[4]}]]],["limel-tooltip.cjs",[[1,"limel-tooltip",{"label":[1],"helperLabel":[1,"helper-label"],"elementId":[1,"element-id"],"open":[32]}]]],["limel-banner.cjs",[[1,"limel-banner",{"message":[513],"icon":[513],"isOpen":[32],"open":[64],"close":[64]}]]],["limel-button-group.cjs",[[1,"limel-button-group",{"value":[16],"disabled":[516],"selectedButtonId":[32]}]]],["limel-table.cjs",[[1,"limel-table",{"data":[16],"columns":[16],"mode":[1],"pageSize":[2,"page-size"],"totalRows":[2,"total-rows"],"sorting":[16],"activeRow":[1040],"movableColumns":[4,"movable-columns"],"loading":[4],"page":[2],"emptyMessage":[1,"empty-message"]}]]],["limel-checkbox.cjs",[[1,"limel-checkbox",{"disabled":[516],"readonly":[516],"label":[513],"checked":[516],"required":[516],"modified":[32]}]]],["limel-circular-progress.cjs",[[1,"limel-circular-progress",{"value":[2],"maxValue":[2,"max-value"],"suffix":[1],"displayPercentageColors":[4,"display-percentage-colors"],"size":[513]}]]],["limel-code-editor.cjs",[[1,"limel-code-editor",{"value":[1],"language":[1],"readonly":[4],"lineNumbers":[4,"line-numbers"],"colorScheme":[1,"color-scheme"],"random":[32]}]]],["limel-config.cjs",[[1,"limel-config",{"config":[16]}]]],["limel-flex-container.cjs",[[1,"limel-flex-container",{"direction":[513],"justify":[513],"align":[513],"reverse":[516]}]]],["limel-form.cjs",[[1,"limel-form",{"schema":[16],"value":[16],"propsFactory":[16]}]]],["limel-grid.cjs",[[1,"limel-grid"]]],["limel-linear-progress.cjs",[[1,"limel-linear-progress",{"value":[2],"indeterminate":[4]}]]],["limel-slider.cjs",[[1,"limel-slider",{"disabled":[516],"readonly":[516],"factor":[514],"label":[513],"helperText":[513,"helper-text"],"unit":[513],"value":[514],"valuemax":[514],"valuemin":[514],"step":[514],"percentageClass":[32]}]]],["limel-snackbar.cjs",[[1,"limel-snackbar",{"message":[1],"timeout":[2],"actionText":[1,"action-text"],"dismissible":[4],"multiline":[4],"language":[1],"show":[64]}]]],["limel-switch.cjs",[[1,"limel-switch",{"label":[513],"disabled":[516],"readonly":[516],"value":[516],"fieldId":[32]}]]],["limel-badge.cjs",[[1,"limel-badge",{"label":[514]}]]],["limel-icon.cjs",[[1,"limel-icon",{"size":[513],"name":[513],"badge":[516]}]]],["limel-tab-bar.cjs",[[1,"limel-tab-bar",{"tabs":[1040],"canScrollLeft":[32],"canScrollRight":[32]},[[9,"resize","handleWindowResize"]]]]],["limel-header.cjs",[[1,"limel-header",{"icon":[1],"heading":[1],"subheading":[1],"supportingText":[1,"supporting-text"]}]]],["limel-progress-flow-item.cjs",[[0,"limel-progress-flow-item",{"item":[16],"disabled":[4],"readonly":[4]}]]],["limel-popover-surface.cjs",[[1,"limel-popover-surface",{"contentCollection":[16]}]]],["limel-tooltip-content.cjs",[[1,"limel-tooltip-content",{"label":[1],"helperLabel":[1,"helper-label"]}]]],["limel-list_3.cjs",[[1,"limel-list",{"items":[16],"badgeIcons":[4,"badge-icons"],"iconSize":[1,"icon-size"],"type":[1],"maxLinesSecondaryText":[2,"max-lines-secondary-text"]}],[1,"limel-menu-surface",{"open":[4],"allowClicksElement":[16]}],[1,"limel-portal",{"openDirection":[1,"open-direction"],"position":[1],"containerId":[1,"container-id"],"containerStyle":[16],"parent":[16],"inheritParentWidth":[4,"inherit-parent-width"],"visible":[4]}]]],["limel-flatpickr-adapter_2.cjs",[[1,"limel-input-field",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"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"],"isFocused":[32],"isModified":[32],"showCompletions":[32]}],[1,"limel-flatpickr-adapter",{"value":[16],"type":[1],"format":[1],"isOpen":[4,"is-open"],"inputElement":[16],"language":[1]}]]],["limel-chip-set.cjs",[[1,"limel-chip-set",{"value":[16],"type":[513],"label":[513],"disabled":[516],"readonly":[516],"maxItems":[514,"max-items"],"required":[516],"searchLabel":[513,"search-label"],"emptyInputOnBlur":[516,"empty-input-on-blur"],"clearAllButton":[4,"clear-all-button"],"leadingIcon":[513,"leading-icon"],"delimiter":[513],"language":[1],"editMode":[32],"textValue":[32],"blurred":[32],"inputChipIndexSelected":[32],"getEditMode":[64],"setFocus":[64],"emptyInput":[64]}]]],["limel-icon-button.cjs",[[1,"limel-icon-button",{"icon":[513],"elevated":[516],"label":[513],"disabled":[516],"relayout":[64]}]]],["limel-spinner.cjs",[[1,"limel-spinner",{"size":[513],"limeBranded":[4,"lime-branded"]}]]]], options);
19
19
  });
@@ -3244,6 +3244,8 @@ const List = class {
3244
3244
  return;
3245
3245
  }
3246
3246
  this.mdcMenu = new MDCMenu(element);
3247
+ this.mdcMenu.hasTypeahead = true;
3248
+ this.mdcMenu.wrapFocus = true;
3247
3249
  this.mdcMenu.items.forEach((item) => new component$1.MDCRipple(item));
3248
3250
  }
3249
3251
  setupListeners() {
@@ -55,6 +55,22 @@ const Menu = class {
55
55
  * obsolete.
56
56
  */
57
57
  this.fixed = false;
58
+ this.setTriggerAttributes = (element) => {
59
+ const attributes = {
60
+ 'aria-haspopup': true,
61
+ 'aria-expanded': this.open,
62
+ disabled: this.disabled,
63
+ role: 'button',
64
+ };
65
+ for (const [key, value] of Object.entries(attributes)) {
66
+ if (!value) {
67
+ element.removeAttribute(key);
68
+ }
69
+ else {
70
+ element.setAttribute(key, String(value));
71
+ }
72
+ }
73
+ };
58
74
  this.onClose = () => {
59
75
  this.cancel.emit();
60
76
  this.open = false;
@@ -76,6 +92,18 @@ const Menu = class {
76
92
  this.select.emit(event.detail);
77
93
  this.open = false;
78
94
  };
95
+ this.setListElement = (element) => {
96
+ this.list = element;
97
+ };
98
+ this.focusMenuItem = () => {
99
+ var _a;
100
+ const activeElement = this.list.shadowRoot.activeElement;
101
+ activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur();
102
+ const listItems = this.items.filter(this.isListItem);
103
+ const selectedIndex = Math.max(listItems.findIndex((item) => item.selected), 0);
104
+ const menuElements = Array.from(this.list.shadowRoot.querySelectorAll('[role="menuitem"]'));
105
+ (_a = menuElements[selectedIndex]) === null || _a === void 0 ? void 0 : _a.focus();
106
+ };
79
107
  this.portalId = randomString.createRandomString();
80
108
  }
81
109
  componentDidLoad() {
@@ -84,6 +112,16 @@ const Menu = class {
84
112
  console.warn('Using limel-menu with the default trigger is deprecated. Please provide your own trigger element.');
85
113
  }
86
114
  }
115
+ openWatcher() {
116
+ if (!this.open) {
117
+ return;
118
+ }
119
+ const observer = new IntersectionObserver(() => {
120
+ observer.unobserve(this.list);
121
+ this.focusMenuItem();
122
+ });
123
+ observer.observe(this.list);
124
+ }
87
125
  render() {
88
126
  const cssProperties = this.getCssProperties();
89
127
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
@@ -93,7 +131,11 @@ const Menu = class {
93
131
  const portalPosition = this.getPortalPosition();
94
132
  return (index.h("div", { class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, index.h("slot", { name: "trigger" }, this.renderTrigger()), index.h("limel-portal", { class: portalClasses, style: portalPosition, visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: this.fixed ? 'fixed' : 'absolute', containerStyle: { 'z-index': dropdownZIndex } }, index.h("limel-menu-surface", { open: this.open, onDismiss: this.onClose, style: cssProperties }, index.h("limel-list", { class: {
95
133
  'has-grid-layout has-interactive-items': this.gridLayout,
96
- }, items: this.items, type: "menu", badgeIcons: this.badgeIcons, onChange: this.onListChange })))));
134
+ }, items: this.items, type: "menu", badgeIcons: this.badgeIcons, onChange: this.onListChange, ref: this.setListElement })))));
135
+ }
136
+ componentDidRender() {
137
+ const slotElement = this.host.shadowRoot.querySelector('slot');
138
+ slotElement.assignedElements().forEach(this.setTriggerAttributes);
97
139
  }
98
140
  renderTrigger() {
99
141
  return (index.h("button", { class: `
@@ -128,7 +170,13 @@ const Menu = class {
128
170
  });
129
171
  return zipObject.zipObject(propertyNames, values);
130
172
  }
173
+ isListItem(item) {
174
+ return !('separator' in item);
175
+ }
131
176
  get host() { return index.getElement(this); }
177
+ static get watchers() { return {
178
+ "open": ["openWatcher"]
179
+ }; }
132
180
  };
133
181
  Menu.style = menuCss;
134
182
 
@@ -2255,11 +2255,16 @@ const TabBar = class {
2255
2255
  handleTabActivated(event) {
2256
2256
  const index = event.detail.index;
2257
2257
  const newTabs = setActiveTab(this.tabs, index);
2258
- difference(newTabs, this.tabs).forEach((tab) => {
2258
+ difference(newTabs, this.tabs)
2259
+ .sort(this.sortByInactive)
2260
+ .forEach((tab) => {
2259
2261
  this.changeTab.emit(tab);
2260
2262
  });
2261
2263
  this.tabs = newTabs;
2262
2264
  }
2265
+ sortByInactive(a, b) {
2266
+ return Number(a.active) - Number(b.active);
2267
+ }
2263
2268
  handleScroll() {
2264
2269
  const scrollLeft = this.scrollArea.scrollLeft;
2265
2270
  const scrollRight = Math.floor(this.scrollContent.getBoundingClientRect().width -
@@ -3,18 +3,60 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-153dc912.js');
6
+ const randomString = require('./random-string-4c3b7f1c.js');
6
7
 
7
8
  const tooltipCss = ".trigger-anchor{display:inline-block;position:relative}.tooltip-container{color:#f1f1f1;background-color:#232324}";
8
9
 
9
10
  const Tooltip = class {
10
11
  constructor(hostRef) {
11
12
  index.registerInstance(this, hostRef);
13
+ this.showTooltip = () => {
14
+ this.open = true;
15
+ };
16
+ this.hideTooltip = () => {
17
+ this.open = false;
18
+ };
19
+ this.portalId = randomString.createRandomString();
20
+ this.tooltipId = randomString.createRandomString();
21
+ }
22
+ connectedCallback() {
23
+ this.setOwnerAriaLabel();
24
+ this.addListeners();
25
+ }
26
+ disconnectedCallback() {
27
+ this.removeListeners();
12
28
  }
13
29
  render() {
14
30
  const tooltipZIndex = getComputedStyle(this.host).getPropertyValue('--tooltip-z-index');
15
31
  return (index.h("div", { class: "trigger-anchor" }, index.h("limel-portal", { visible: this.open, containerId: this.portalId, containerStyle: {
16
32
  'z-index': tooltipZIndex,
17
- } }, index.h("limel-tooltip-content", { label: this.label, helperLabel: this.helperLabel }))));
33
+ } }, index.h("limel-tooltip-content", { label: this.label, helperLabel: this.helperLabel, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
34
+ }
35
+ setOwnerAriaLabel() {
36
+ const owner = this.getOwnerElement();
37
+ owner === null || owner === void 0 ? void 0 : owner.setAttribute('aria-describedby', this.tooltipId);
38
+ }
39
+ addListeners() {
40
+ const owner = this.getOwnerElement();
41
+ owner === null || owner === void 0 ? void 0 : owner.addEventListener('mouseover', this.showTooltip);
42
+ owner === null || owner === void 0 ? void 0 : owner.addEventListener('mouseout', this.hideTooltip);
43
+ owner === null || owner === void 0 ? void 0 : owner.addEventListener('click', this.hideTooltip);
44
+ }
45
+ removeListeners() {
46
+ const owner = this.getOwnerElement();
47
+ owner === null || owner === void 0 ? void 0 : owner.removeEventListener('mouseover', this.showTooltip);
48
+ owner === null || owner === void 0 ? void 0 : owner.removeEventListener('mouseout', this.hideTooltip);
49
+ owner === null || owner === void 0 ? void 0 : owner.removeEventListener('click', this.hideTooltip);
50
+ }
51
+ getOwnerElement() {
52
+ var _a;
53
+ let element = this.host;
54
+ do {
55
+ element = element.parentNode;
56
+ } while (element &&
57
+ element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE &&
58
+ element.nodeType !== Node.DOCUMENT_NODE);
59
+ return (_a = element) === null || _a === void 0 ? void 0 : _a.getElementById(this.elementId);
18
60
  }
19
61
  get host() { return index.getElement(this); }
20
62
  };
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["limel-picker.cjs",[[1,"limel-picker",{"disabled":[4],"readonly":[516],"label":[1],"searchLabel":[1,"search-label"],"leadingIcon":[1,"leading-icon"],"emptyResultMessage":[1,"empty-result-message"],"required":[4],"value":[16],"searcher":[16],"multiple":[4],"delimiter":[513],"displayFullList":[4,"display-full-list"],"actions":[16],"actionPosition":[1,"action-position"],"actionScrollBehavior":[1,"action-scroll-behavior"],"items":[32],"textValue":[32],"loading":[32],"chips":[32]}]]],["limel-date-picker.cjs",[[1,"limel-date-picker",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"required":[516],"value":[16],"type":[513],"format":[513],"language":[513],"formattedValue":[32],"internalFormat":[32],"showPortal":[32]}]]],["limel-select.cjs",[[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]}]]],["limel-tab-panel.cjs",[[1,"limel-tab-panel",{"tabs":[1040]}]]],["limel-file.cjs",[[1,"limel-file",{"value":[16],"label":[513],"required":[516],"disabled":[516],"readonly":[516],"accept":[513],"language":[1],"isDraggingOverDropZone":[32]}]]],["limel-menu.cjs",[[1,"limel-menu",{"label":[513],"items":[16],"disabled":[516],"openDirection":[513,"open-direction"],"open":[1540],"badgeIcons":[516,"badge-icons"],"gridLayout":[516,"grid-layout"],"fixed":[4]}]]],["limel-button.cjs",[[1,"limel-button",{"label":[513],"primary":[516],"outlined":[516],"icon":[513],"disabled":[516],"loading":[516]}]]],["limel-collapsible-section.cjs",[[1,"limel-collapsible-section",{"isOpen":[1540,"is-open"],"header":[1],"actions":[16]}]]],["limel-dialog.cjs",[[1,"limel-dialog",{"heading":[1],"fullscreen":[516],"open":[1540],"closingActions":[16]}]]],["limel-popover.cjs",[[1,"limel-popover",{"open":[4]}]]],["limel-progress-flow.cjs",[[1,"limel-progress-flow",{"flowItems":[16],"disabled":[4],"readonly":[4]}]]],["limel-tooltip.cjs",[[1,"limel-tooltip",{"label":[1],"helperLabel":[1,"helper-label"],"open":[4]}]]],["limel-banner.cjs",[[1,"limel-banner",{"message":[513],"icon":[513],"isOpen":[32],"open":[64],"close":[64]}]]],["limel-button-group.cjs",[[1,"limel-button-group",{"value":[16],"disabled":[516],"selectedButtonId":[32]}]]],["limel-table.cjs",[[1,"limel-table",{"data":[16],"columns":[16],"mode":[1],"pageSize":[2,"page-size"],"totalRows":[2,"total-rows"],"sorting":[16],"activeRow":[1040],"movableColumns":[4,"movable-columns"],"loading":[4],"page":[2],"emptyMessage":[1,"empty-message"]}]]],["limel-checkbox.cjs",[[1,"limel-checkbox",{"disabled":[516],"readonly":[516],"label":[513],"checked":[516],"required":[516],"modified":[32]}]]],["limel-circular-progress.cjs",[[1,"limel-circular-progress",{"value":[2],"maxValue":[2,"max-value"],"suffix":[1],"displayPercentageColors":[4,"display-percentage-colors"],"size":[513]}]]],["limel-code-editor.cjs",[[1,"limel-code-editor",{"value":[1],"language":[1],"readonly":[4],"lineNumbers":[4,"line-numbers"],"colorScheme":[1,"color-scheme"],"random":[32]}]]],["limel-config.cjs",[[1,"limel-config",{"config":[16]}]]],["limel-flex-container.cjs",[[1,"limel-flex-container",{"direction":[513],"justify":[513],"align":[513],"reverse":[516]}]]],["limel-form.cjs",[[1,"limel-form",{"schema":[16],"value":[16],"propsFactory":[16]}]]],["limel-grid.cjs",[[1,"limel-grid"]]],["limel-linear-progress.cjs",[[1,"limel-linear-progress",{"value":[2],"indeterminate":[4]}]]],["limel-slider.cjs",[[1,"limel-slider",{"disabled":[516],"readonly":[516],"factor":[514],"label":[513],"helperText":[513,"helper-text"],"unit":[513],"value":[514],"valuemax":[514],"valuemin":[514],"step":[514],"percentageClass":[32]}]]],["limel-snackbar.cjs",[[1,"limel-snackbar",{"message":[1],"timeout":[2],"actionText":[1,"action-text"],"dismissible":[4],"multiline":[4],"language":[1],"show":[64]}]]],["limel-switch.cjs",[[1,"limel-switch",{"label":[513],"disabled":[516],"readonly":[516],"value":[516],"fieldId":[32]}]]],["limel-badge.cjs",[[1,"limel-badge",{"label":[514]}]]],["limel-icon.cjs",[[1,"limel-icon",{"size":[513],"name":[513],"badge":[516]}]]],["limel-tab-bar.cjs",[[1,"limel-tab-bar",{"tabs":[1040],"canScrollLeft":[32],"canScrollRight":[32]},[[9,"resize","handleWindowResize"]]]]],["limel-header.cjs",[[1,"limel-header",{"icon":[1],"heading":[1],"subheading":[1],"supportingText":[1,"supporting-text"]}]]],["limel-progress-flow-item.cjs",[[0,"limel-progress-flow-item",{"item":[16],"disabled":[4],"readonly":[4]}]]],["limel-popover-surface.cjs",[[1,"limel-popover-surface",{"contentCollection":[16]}]]],["limel-tooltip-content.cjs",[[1,"limel-tooltip-content",{"label":[1],"helperLabel":[1,"helper-label"]}]]],["limel-list_3.cjs",[[1,"limel-list",{"items":[16],"badgeIcons":[4,"badge-icons"],"iconSize":[1,"icon-size"],"type":[1],"maxLinesSecondaryText":[2,"max-lines-secondary-text"]}],[1,"limel-menu-surface",{"open":[4],"allowClicksElement":[16]}],[1,"limel-portal",{"openDirection":[1,"open-direction"],"position":[1],"containerId":[1,"container-id"],"containerStyle":[16],"parent":[16],"inheritParentWidth":[4,"inherit-parent-width"],"visible":[4]}]]],["limel-flatpickr-adapter_2.cjs",[[1,"limel-input-field",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"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"],"isFocused":[32],"isModified":[32],"showCompletions":[32]}],[1,"limel-flatpickr-adapter",{"value":[16],"type":[1],"format":[1],"isOpen":[4,"is-open"],"inputElement":[16],"language":[1]}]]],["limel-chip-set.cjs",[[1,"limel-chip-set",{"value":[16],"type":[513],"label":[513],"disabled":[516],"readonly":[516],"maxItems":[514,"max-items"],"required":[516],"searchLabel":[513,"search-label"],"emptyInputOnBlur":[516,"empty-input-on-blur"],"clearAllButton":[4,"clear-all-button"],"leadingIcon":[513,"leading-icon"],"delimiter":[513],"language":[1],"editMode":[32],"textValue":[32],"blurred":[32],"inputChipIndexSelected":[32],"getEditMode":[64],"setFocus":[64],"emptyInput":[64]}]]],["limel-icon-button.cjs",[[1,"limel-icon-button",{"icon":[513],"elevated":[516],"label":[513],"disabled":[516],"relayout":[64]}]]],["limel-spinner.cjs",[[1,"limel-spinner",{"size":[513],"limeBranded":[4,"lime-branded"]}]]]], options);
17
+ return index.bootstrapLazy([["limel-picker.cjs",[[1,"limel-picker",{"disabled":[4],"readonly":[516],"label":[1],"searchLabel":[1,"search-label"],"leadingIcon":[1,"leading-icon"],"emptyResultMessage":[1,"empty-result-message"],"required":[4],"value":[16],"searcher":[16],"multiple":[4],"delimiter":[513],"displayFullList":[4,"display-full-list"],"actions":[16],"actionPosition":[1,"action-position"],"actionScrollBehavior":[1,"action-scroll-behavior"],"items":[32],"textValue":[32],"loading":[32],"chips":[32]}]]],["limel-date-picker.cjs",[[1,"limel-date-picker",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"required":[516],"value":[16],"type":[513],"format":[513],"language":[513],"formattedValue":[32],"internalFormat":[32],"showPortal":[32]}]]],["limel-select.cjs",[[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]}]]],["limel-tab-panel.cjs",[[1,"limel-tab-panel",{"tabs":[1040]}]]],["limel-file.cjs",[[1,"limel-file",{"value":[16],"label":[513],"required":[516],"disabled":[516],"readonly":[516],"accept":[513],"language":[1],"isDraggingOverDropZone":[32]}]]],["limel-menu.cjs",[[1,"limel-menu",{"label":[513],"items":[16],"disabled":[516],"openDirection":[513,"open-direction"],"open":[1540],"badgeIcons":[516,"badge-icons"],"gridLayout":[516,"grid-layout"],"fixed":[4]}]]],["limel-button.cjs",[[1,"limel-button",{"label":[513],"primary":[516],"outlined":[516],"icon":[513],"disabled":[516],"loading":[516]}]]],["limel-collapsible-section.cjs",[[1,"limel-collapsible-section",{"isOpen":[1540,"is-open"],"header":[1],"actions":[16]}]]],["limel-dialog.cjs",[[1,"limel-dialog",{"heading":[1],"fullscreen":[516],"open":[1540],"closingActions":[16]}]]],["limel-popover.cjs",[[1,"limel-popover",{"open":[4]}]]],["limel-progress-flow.cjs",[[1,"limel-progress-flow",{"flowItems":[16],"disabled":[4],"readonly":[4]}]]],["limel-tooltip.cjs",[[1,"limel-tooltip",{"label":[1],"helperLabel":[1,"helper-label"],"elementId":[1,"element-id"],"open":[32]}]]],["limel-banner.cjs",[[1,"limel-banner",{"message":[513],"icon":[513],"isOpen":[32],"open":[64],"close":[64]}]]],["limel-button-group.cjs",[[1,"limel-button-group",{"value":[16],"disabled":[516],"selectedButtonId":[32]}]]],["limel-table.cjs",[[1,"limel-table",{"data":[16],"columns":[16],"mode":[1],"pageSize":[2,"page-size"],"totalRows":[2,"total-rows"],"sorting":[16],"activeRow":[1040],"movableColumns":[4,"movable-columns"],"loading":[4],"page":[2],"emptyMessage":[1,"empty-message"]}]]],["limel-checkbox.cjs",[[1,"limel-checkbox",{"disabled":[516],"readonly":[516],"label":[513],"checked":[516],"required":[516],"modified":[32]}]]],["limel-circular-progress.cjs",[[1,"limel-circular-progress",{"value":[2],"maxValue":[2,"max-value"],"suffix":[1],"displayPercentageColors":[4,"display-percentage-colors"],"size":[513]}]]],["limel-code-editor.cjs",[[1,"limel-code-editor",{"value":[1],"language":[1],"readonly":[4],"lineNumbers":[4,"line-numbers"],"colorScheme":[1,"color-scheme"],"random":[32]}]]],["limel-config.cjs",[[1,"limel-config",{"config":[16]}]]],["limel-flex-container.cjs",[[1,"limel-flex-container",{"direction":[513],"justify":[513],"align":[513],"reverse":[516]}]]],["limel-form.cjs",[[1,"limel-form",{"schema":[16],"value":[16],"propsFactory":[16]}]]],["limel-grid.cjs",[[1,"limel-grid"]]],["limel-linear-progress.cjs",[[1,"limel-linear-progress",{"value":[2],"indeterminate":[4]}]]],["limel-slider.cjs",[[1,"limel-slider",{"disabled":[516],"readonly":[516],"factor":[514],"label":[513],"helperText":[513,"helper-text"],"unit":[513],"value":[514],"valuemax":[514],"valuemin":[514],"step":[514],"percentageClass":[32]}]]],["limel-snackbar.cjs",[[1,"limel-snackbar",{"message":[1],"timeout":[2],"actionText":[1,"action-text"],"dismissible":[4],"multiline":[4],"language":[1],"show":[64]}]]],["limel-switch.cjs",[[1,"limel-switch",{"label":[513],"disabled":[516],"readonly":[516],"value":[516],"fieldId":[32]}]]],["limel-badge.cjs",[[1,"limel-badge",{"label":[514]}]]],["limel-icon.cjs",[[1,"limel-icon",{"size":[513],"name":[513],"badge":[516]}]]],["limel-tab-bar.cjs",[[1,"limel-tab-bar",{"tabs":[1040],"canScrollLeft":[32],"canScrollRight":[32]},[[9,"resize","handleWindowResize"]]]]],["limel-header.cjs",[[1,"limel-header",{"icon":[1],"heading":[1],"subheading":[1],"supportingText":[1,"supporting-text"]}]]],["limel-progress-flow-item.cjs",[[0,"limel-progress-flow-item",{"item":[16],"disabled":[4],"readonly":[4]}]]],["limel-popover-surface.cjs",[[1,"limel-popover-surface",{"contentCollection":[16]}]]],["limel-tooltip-content.cjs",[[1,"limel-tooltip-content",{"label":[1],"helperLabel":[1,"helper-label"]}]]],["limel-list_3.cjs",[[1,"limel-list",{"items":[16],"badgeIcons":[4,"badge-icons"],"iconSize":[1,"icon-size"],"type":[1],"maxLinesSecondaryText":[2,"max-lines-secondary-text"]}],[1,"limel-menu-surface",{"open":[4],"allowClicksElement":[16]}],[1,"limel-portal",{"openDirection":[1,"open-direction"],"position":[1],"containerId":[1,"container-id"],"containerStyle":[16],"parent":[16],"inheritParentWidth":[4,"inherit-parent-width"],"visible":[4]}]]],["limel-flatpickr-adapter_2.cjs",[[1,"limel-input-field",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"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"],"isFocused":[32],"isModified":[32],"showCompletions":[32]}],[1,"limel-flatpickr-adapter",{"value":[16],"type":[1],"format":[1],"isOpen":[4,"is-open"],"inputElement":[16],"language":[1]}]]],["limel-chip-set.cjs",[[1,"limel-chip-set",{"value":[16],"type":[513],"label":[513],"disabled":[516],"readonly":[516],"maxItems":[514,"max-items"],"required":[516],"searchLabel":[513,"search-label"],"emptyInputOnBlur":[516,"empty-input-on-blur"],"clearAllButton":[4,"clear-all-button"],"leadingIcon":[513,"leading-icon"],"delimiter":[513],"language":[1],"editMode":[32],"textValue":[32],"blurred":[32],"inputChipIndexSelected":[32],"getEditMode":[64],"setFocus":[64],"emptyInput":[64]}]]],["limel-icon-button.cjs",[[1,"limel-icon-button",{"icon":[513],"elevated":[516],"label":[513],"disabled":[516],"relayout":[64]}]]],["limel-spinner.cjs",[[1,"limel-spinner",{"size":[513],"limeBranded":[4,"lime-branded"]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -107,6 +107,8 @@ export class List {
107
107
  return;
108
108
  }
109
109
  this.mdcMenu = new MDCMenu(element);
110
+ this.mdcMenu.hasTypeahead = true;
111
+ this.mdcMenu.wrapFocus = true;
110
112
  this.mdcMenu.items.forEach((item) => new MDCRipple(item));
111
113
  }
112
114
  setupListeners() {
@@ -1,4 +1,4 @@
1
- import { Component, Event, h, Prop, Element, } from '@stencil/core';
1
+ import { Component, Event, h, Prop, Element, Watch, } from '@stencil/core';
2
2
  import { createRandomString } from '../../util/random-string';
3
3
  import { zipObject } from 'lodash-es';
4
4
  /**
@@ -52,6 +52,22 @@ export class Menu {
52
52
  * obsolete.
53
53
  */
54
54
  this.fixed = false;
55
+ this.setTriggerAttributes = (element) => {
56
+ const attributes = {
57
+ 'aria-haspopup': true,
58
+ 'aria-expanded': this.open,
59
+ disabled: this.disabled,
60
+ role: 'button',
61
+ };
62
+ for (const [key, value] of Object.entries(attributes)) {
63
+ if (!value) {
64
+ element.removeAttribute(key);
65
+ }
66
+ else {
67
+ element.setAttribute(key, String(value));
68
+ }
69
+ }
70
+ };
55
71
  this.onClose = () => {
56
72
  this.cancel.emit();
57
73
  this.open = false;
@@ -73,6 +89,18 @@ export class Menu {
73
89
  this.select.emit(event.detail);
74
90
  this.open = false;
75
91
  };
92
+ this.setListElement = (element) => {
93
+ this.list = element;
94
+ };
95
+ this.focusMenuItem = () => {
96
+ var _a;
97
+ const activeElement = this.list.shadowRoot.activeElement;
98
+ activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur();
99
+ const listItems = this.items.filter(this.isListItem);
100
+ const selectedIndex = Math.max(listItems.findIndex((item) => item.selected), 0);
101
+ const menuElements = Array.from(this.list.shadowRoot.querySelectorAll('[role="menuitem"]'));
102
+ (_a = menuElements[selectedIndex]) === null || _a === void 0 ? void 0 : _a.focus();
103
+ };
76
104
  this.portalId = createRandomString();
77
105
  }
78
106
  componentDidLoad() {
@@ -81,6 +109,16 @@ export class Menu {
81
109
  console.warn('Using limel-menu with the default trigger is deprecated. Please provide your own trigger element.');
82
110
  }
83
111
  }
112
+ openWatcher() {
113
+ if (!this.open) {
114
+ return;
115
+ }
116
+ const observer = new IntersectionObserver(() => {
117
+ observer.unobserve(this.list);
118
+ this.focusMenuItem();
119
+ });
120
+ observer.observe(this.list);
121
+ }
84
122
  render() {
85
123
  const cssProperties = this.getCssProperties();
86
124
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
@@ -94,7 +132,11 @@ export class Menu {
94
132
  h("limel-menu-surface", { open: this.open, onDismiss: this.onClose, style: cssProperties },
95
133
  h("limel-list", { class: {
96
134
  'has-grid-layout has-interactive-items': this.gridLayout,
97
- }, items: this.items, type: "menu", badgeIcons: this.badgeIcons, onChange: this.onListChange })))));
135
+ }, items: this.items, type: "menu", badgeIcons: this.badgeIcons, onChange: this.onListChange, ref: this.setListElement })))));
136
+ }
137
+ componentDidRender() {
138
+ const slotElement = this.host.shadowRoot.querySelector('slot');
139
+ slotElement.assignedElements().forEach(this.setTriggerAttributes);
98
140
  }
99
141
  renderTrigger() {
100
142
  return (h("button", { class: `
@@ -130,6 +172,9 @@ export class Menu {
130
172
  });
131
173
  return zipObject(propertyNames, values);
132
174
  }
175
+ isListItem(item) {
176
+ return !('separator' in item);
177
+ }
133
178
  static get is() { return "limel-menu"; }
134
179
  static get encapsulation() { return "shadow"; }
135
180
  static get originalStyleUrls() { return {
@@ -342,4 +387,8 @@ export class Menu {
342
387
  }
343
388
  }]; }
344
389
  static get elementRef() { return "host"; }
390
+ static get watchers() { return [{
391
+ "propName": "open",
392
+ "methodName": "openWatcher"
393
+ }]; }
345
394
  }
@@ -117,11 +117,16 @@ export class TabBar {
117
117
  handleTabActivated(event) {
118
118
  const index = event.detail.index;
119
119
  const newTabs = setActiveTab(this.tabs, index);
120
- difference(newTabs, this.tabs).forEach((tab) => {
120
+ difference(newTabs, this.tabs)
121
+ .sort(this.sortByInactive)
122
+ .forEach((tab) => {
121
123
  this.changeTab.emit(tab);
122
124
  });
123
125
  this.tabs = newTabs;
124
126
  }
127
+ sortByInactive(a, b) {
128
+ return Number(a.active) - Number(b.active);
129
+ }
125
130
  handleScroll() {
126
131
  const scrollLeft = this.scrollArea.scrollLeft;
127
132
  const scrollRight = Math.floor(this.scrollContent.getBoundingClientRect().width -
@@ -4,7 +4,8 @@ import { dispatchResizeEvent } from '../../util/dispatch-resize-event';
4
4
  * The `limel-tab-panel` component uses the `limel-tab-bar` component together
5
5
  * with custom slotted components and will display the content for the currently
6
6
  * active tab. Each slotted component must have an id equal to the id of the
7
- * corresponding tab it belongs to.
7
+ * corresponding tab it belongs to. These components should implement the
8
+ * [TabPanelComponent](#/type/TabPanelComponent/) interface.
8
9
  *
9
10
  * The `limel-tab-panel` component will automatically set each tab configuration
10
11
  * on the corresponding slotted component as a property named `tab` so that the
@@ -1,5 +1,7 @@
1
1
  import { Component, h, Prop } from '@stencil/core';
2
2
  /**
3
+ * This component is used internally by `limel-tooltip`.
4
+ *
3
5
  * @private
4
6
  */
5
7
  export class TooltipContent {
@@ -29,7 +31,7 @@ export class TooltipContent {
29
31
  "optional": false,
30
32
  "docs": {
31
33
  "tags": [],
32
- "text": "tip for the hovered element"
34
+ "text": "Short descriptive text of the owner element."
33
35
  },
34
36
  "attribute": "label",
35
37
  "reflect": false
@@ -46,7 +48,7 @@ export class TooltipContent {
46
48
  "optional": false,
47
49
  "docs": {
48
50
  "tags": [],
49
- "text": "hotkey for the hovered element"
51
+ "text": "Additional helper text for the element.\nExample usage can be a keyboard shortcut to activate the function of the\nowner element."
50
52
  },
51
53
  "attribute": "helper-label",
52
54
  "reflect": false
@@ -1,15 +1,71 @@
1
- import { Component, h, Prop, Element } from '@stencil/core';
1
+ import { Component, h, Prop, Element, State } from '@stencil/core';
2
+ import { createRandomString } from '../../util/random-string';
2
3
  /**
4
+ * Tooltips display a text label identifying an element, such as a description
5
+ * of its function.
6
+ *
7
+ * In order to display the tooltip, the tooltip element and the owner element
8
+ * that it should describe must be within the same document or document
9
+ * fragment. A good practice is to just render them next to each other like so:
10
+ *
11
+ * ```html
12
+ * <limel-button icon="search" id="tooltip-example" />
13
+ * <limel-tooltip label="Search" elementId="tooltip-example" />
14
+ * ```
15
+ *
3
16
  * @exampleComponent limel-example-tooltip
4
17
  */
5
18
  export class Tooltip {
19
+ constructor() {
20
+ this.showTooltip = () => {
21
+ this.open = true;
22
+ };
23
+ this.hideTooltip = () => {
24
+ this.open = false;
25
+ };
26
+ this.portalId = createRandomString();
27
+ this.tooltipId = createRandomString();
28
+ }
29
+ connectedCallback() {
30
+ this.setOwnerAriaLabel();
31
+ this.addListeners();
32
+ }
33
+ disconnectedCallback() {
34
+ this.removeListeners();
35
+ }
6
36
  render() {
7
37
  const tooltipZIndex = getComputedStyle(this.host).getPropertyValue('--tooltip-z-index');
8
38
  return (h("div", { class: "trigger-anchor" },
9
39
  h("limel-portal", { visible: this.open, containerId: this.portalId, containerStyle: {
10
40
  'z-index': tooltipZIndex,
11
41
  } },
12
- h("limel-tooltip-content", { label: this.label, helperLabel: this.helperLabel }))));
42
+ h("limel-tooltip-content", { label: this.label, helperLabel: this.helperLabel, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
43
+ }
44
+ setOwnerAriaLabel() {
45
+ const owner = this.getOwnerElement();
46
+ owner === null || owner === void 0 ? void 0 : owner.setAttribute('aria-describedby', this.tooltipId);
47
+ }
48
+ addListeners() {
49
+ const owner = this.getOwnerElement();
50
+ owner === null || owner === void 0 ? void 0 : owner.addEventListener('mouseover', this.showTooltip);
51
+ owner === null || owner === void 0 ? void 0 : owner.addEventListener('mouseout', this.hideTooltip);
52
+ owner === null || owner === void 0 ? void 0 : owner.addEventListener('click', this.hideTooltip);
53
+ }
54
+ removeListeners() {
55
+ const owner = this.getOwnerElement();
56
+ owner === null || owner === void 0 ? void 0 : owner.removeEventListener('mouseover', this.showTooltip);
57
+ owner === null || owner === void 0 ? void 0 : owner.removeEventListener('mouseout', this.hideTooltip);
58
+ owner === null || owner === void 0 ? void 0 : owner.removeEventListener('click', this.hideTooltip);
59
+ }
60
+ getOwnerElement() {
61
+ var _a;
62
+ let element = this.host;
63
+ do {
64
+ element = element.parentNode;
65
+ } while (element &&
66
+ element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE &&
67
+ element.nodeType !== Node.DOCUMENT_NODE);
68
+ return (_a = element) === null || _a === void 0 ? void 0 : _a.getElementById(this.elementId);
13
69
  }
14
70
  static get is() { return "limel-tooltip"; }
15
71
  static get encapsulation() { return "shadow"; }
@@ -28,11 +84,11 @@ export class Tooltip {
28
84
  "resolved": "string",
29
85
  "references": {}
30
86
  },
31
- "required": false,
87
+ "required": true,
32
88
  "optional": false,
33
89
  "docs": {
34
90
  "tags": [],
35
- "text": "tip to the hovered element"
91
+ "text": "Short descriptive text of the owner element."
36
92
  },
37
93
  "attribute": "label",
38
94
  "reflect": false
@@ -49,28 +105,31 @@ export class Tooltip {
49
105
  "optional": false,
50
106
  "docs": {
51
107
  "tags": [],
52
- "text": "helperLabel to the hovered element"
108
+ "text": "Additional helper text for the element.\nExample usage can be a keyboard shortcut to activate the function of the\nowner element."
53
109
  },
54
110
  "attribute": "helper-label",
55
111
  "reflect": false
56
112
  },
57
- "open": {
58
- "type": "boolean",
113
+ "elementId": {
114
+ "type": "string",
59
115
  "mutable": false,
60
116
  "complexType": {
61
- "original": "boolean",
62
- "resolved": "boolean",
117
+ "original": "string",
118
+ "resolved": "string",
63
119
  "references": {}
64
120
  },
65
- "required": false,
121
+ "required": true,
66
122
  "optional": false,
67
123
  "docs": {
68
124
  "tags": [],
69
- "text": "show if the element is hovered"
125
+ "text": "ID of the owner element that the tooltip should describe.\nMust be a child within the same document fragment as the tooltip element\nitself."
70
126
  },
71
- "attribute": "open",
127
+ "attribute": "element-id",
72
128
  "reflect": false
73
129
  }
74
130
  }; }
131
+ static get states() { return {
132
+ "open": {}
133
+ }; }
75
134
  static get elementRef() { return "host"; }
76
135
  }
@@ -13,5 +13,5 @@ const patchBrowser = () => {
13
13
  };
14
14
 
15
15
  patchBrowser().then(options => {
16
- return bootstrapLazy([["limel-picker",[[1,"limel-picker",{"disabled":[4],"readonly":[516],"label":[1],"searchLabel":[1,"search-label"],"leadingIcon":[1,"leading-icon"],"emptyResultMessage":[1,"empty-result-message"],"required":[4],"value":[16],"searcher":[16],"multiple":[4],"delimiter":[513],"displayFullList":[4,"display-full-list"],"actions":[16],"actionPosition":[1,"action-position"],"actionScrollBehavior":[1,"action-scroll-behavior"],"items":[32],"textValue":[32],"loading":[32],"chips":[32]}]]],["limel-date-picker",[[1,"limel-date-picker",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"required":[516],"value":[16],"type":[513],"format":[513],"language":[513],"formattedValue":[32],"internalFormat":[32],"showPortal":[32]}]]],["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]}]]],["limel-tab-panel",[[1,"limel-tab-panel",{"tabs":[1040]}]]],["limel-file",[[1,"limel-file",{"value":[16],"label":[513],"required":[516],"disabled":[516],"readonly":[516],"accept":[513],"language":[1],"isDraggingOverDropZone":[32]}]]],["limel-menu",[[1,"limel-menu",{"label":[513],"items":[16],"disabled":[516],"openDirection":[513,"open-direction"],"open":[1540],"badgeIcons":[516,"badge-icons"],"gridLayout":[516,"grid-layout"],"fixed":[4]}]]],["limel-button",[[1,"limel-button",{"label":[513],"primary":[516],"outlined":[516],"icon":[513],"disabled":[516],"loading":[516]}]]],["limel-collapsible-section",[[1,"limel-collapsible-section",{"isOpen":[1540,"is-open"],"header":[1],"actions":[16]}]]],["limel-dialog",[[1,"limel-dialog",{"heading":[1],"fullscreen":[516],"open":[1540],"closingActions":[16]}]]],["limel-popover",[[1,"limel-popover",{"open":[4]}]]],["limel-progress-flow",[[1,"limel-progress-flow",{"flowItems":[16],"disabled":[4],"readonly":[4]}]]],["limel-tooltip",[[1,"limel-tooltip",{"label":[1],"helperLabel":[1,"helper-label"],"open":[4]}]]],["limel-banner",[[1,"limel-banner",{"message":[513],"icon":[513],"isOpen":[32],"open":[64],"close":[64]}]]],["limel-button-group",[[1,"limel-button-group",{"value":[16],"disabled":[516],"selectedButtonId":[32]}]]],["limel-table",[[1,"limel-table",{"data":[16],"columns":[16],"mode":[1],"pageSize":[2,"page-size"],"totalRows":[2,"total-rows"],"sorting":[16],"activeRow":[1040],"movableColumns":[4,"movable-columns"],"loading":[4],"page":[2],"emptyMessage":[1,"empty-message"]}]]],["limel-checkbox",[[1,"limel-checkbox",{"disabled":[516],"readonly":[516],"label":[513],"checked":[516],"required":[516],"modified":[32]}]]],["limel-circular-progress",[[1,"limel-circular-progress",{"value":[2],"maxValue":[2,"max-value"],"suffix":[1],"displayPercentageColors":[4,"display-percentage-colors"],"size":[513]}]]],["limel-code-editor",[[1,"limel-code-editor",{"value":[1],"language":[1],"readonly":[4],"lineNumbers":[4,"line-numbers"],"colorScheme":[1,"color-scheme"],"random":[32]}]]],["limel-config",[[1,"limel-config",{"config":[16]}]]],["limel-flex-container",[[1,"limel-flex-container",{"direction":[513],"justify":[513],"align":[513],"reverse":[516]}]]],["limel-form",[[1,"limel-form",{"schema":[16],"value":[16],"propsFactory":[16]}]]],["limel-grid",[[1,"limel-grid"]]],["limel-linear-progress",[[1,"limel-linear-progress",{"value":[2],"indeterminate":[4]}]]],["limel-slider",[[1,"limel-slider",{"disabled":[516],"readonly":[516],"factor":[514],"label":[513],"helperText":[513,"helper-text"],"unit":[513],"value":[514],"valuemax":[514],"valuemin":[514],"step":[514],"percentageClass":[32]}]]],["limel-snackbar",[[1,"limel-snackbar",{"message":[1],"timeout":[2],"actionText":[1,"action-text"],"dismissible":[4],"multiline":[4],"language":[1],"show":[64]}]]],["limel-switch",[[1,"limel-switch",{"label":[513],"disabled":[516],"readonly":[516],"value":[516],"fieldId":[32]}]]],["limel-badge",[[1,"limel-badge",{"label":[514]}]]],["limel-icon",[[1,"limel-icon",{"size":[513],"name":[513],"badge":[516]}]]],["limel-tab-bar",[[1,"limel-tab-bar",{"tabs":[1040],"canScrollLeft":[32],"canScrollRight":[32]},[[9,"resize","handleWindowResize"]]]]],["limel-header",[[1,"limel-header",{"icon":[1],"heading":[1],"subheading":[1],"supportingText":[1,"supporting-text"]}]]],["limel-progress-flow-item",[[0,"limel-progress-flow-item",{"item":[16],"disabled":[4],"readonly":[4]}]]],["limel-popover-surface",[[1,"limel-popover-surface",{"contentCollection":[16]}]]],["limel-tooltip-content",[[1,"limel-tooltip-content",{"label":[1],"helperLabel":[1,"helper-label"]}]]],["limel-list_3",[[1,"limel-list",{"items":[16],"badgeIcons":[4,"badge-icons"],"iconSize":[1,"icon-size"],"type":[1],"maxLinesSecondaryText":[2,"max-lines-secondary-text"]}],[1,"limel-menu-surface",{"open":[4],"allowClicksElement":[16]}],[1,"limel-portal",{"openDirection":[1,"open-direction"],"position":[1],"containerId":[1,"container-id"],"containerStyle":[16],"parent":[16],"inheritParentWidth":[4,"inherit-parent-width"],"visible":[4]}]]],["limel-flatpickr-adapter_2",[[1,"limel-input-field",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"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"],"isFocused":[32],"isModified":[32],"showCompletions":[32]}],[1,"limel-flatpickr-adapter",{"value":[16],"type":[1],"format":[1],"isOpen":[4,"is-open"],"inputElement":[16],"language":[1]}]]],["limel-chip-set",[[1,"limel-chip-set",{"value":[16],"type":[513],"label":[513],"disabled":[516],"readonly":[516],"maxItems":[514,"max-items"],"required":[516],"searchLabel":[513,"search-label"],"emptyInputOnBlur":[516,"empty-input-on-blur"],"clearAllButton":[4,"clear-all-button"],"leadingIcon":[513,"leading-icon"],"delimiter":[513],"language":[1],"editMode":[32],"textValue":[32],"blurred":[32],"inputChipIndexSelected":[32],"getEditMode":[64],"setFocus":[64],"emptyInput":[64]}]]],["limel-icon-button",[[1,"limel-icon-button",{"icon":[513],"elevated":[516],"label":[513],"disabled":[516],"relayout":[64]}]]],["limel-spinner",[[1,"limel-spinner",{"size":[513],"limeBranded":[4,"lime-branded"]}]]]], options);
16
+ return bootstrapLazy([["limel-picker",[[1,"limel-picker",{"disabled":[4],"readonly":[516],"label":[1],"searchLabel":[1,"search-label"],"leadingIcon":[1,"leading-icon"],"emptyResultMessage":[1,"empty-result-message"],"required":[4],"value":[16],"searcher":[16],"multiple":[4],"delimiter":[513],"displayFullList":[4,"display-full-list"],"actions":[16],"actionPosition":[1,"action-position"],"actionScrollBehavior":[1,"action-scroll-behavior"],"items":[32],"textValue":[32],"loading":[32],"chips":[32]}]]],["limel-date-picker",[[1,"limel-date-picker",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"required":[516],"value":[16],"type":[513],"format":[513],"language":[513],"formattedValue":[32],"internalFormat":[32],"showPortal":[32]}]]],["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]}]]],["limel-tab-panel",[[1,"limel-tab-panel",{"tabs":[1040]}]]],["limel-file",[[1,"limel-file",{"value":[16],"label":[513],"required":[516],"disabled":[516],"readonly":[516],"accept":[513],"language":[1],"isDraggingOverDropZone":[32]}]]],["limel-menu",[[1,"limel-menu",{"label":[513],"items":[16],"disabled":[516],"openDirection":[513,"open-direction"],"open":[1540],"badgeIcons":[516,"badge-icons"],"gridLayout":[516,"grid-layout"],"fixed":[4]}]]],["limel-button",[[1,"limel-button",{"label":[513],"primary":[516],"outlined":[516],"icon":[513],"disabled":[516],"loading":[516]}]]],["limel-collapsible-section",[[1,"limel-collapsible-section",{"isOpen":[1540,"is-open"],"header":[1],"actions":[16]}]]],["limel-dialog",[[1,"limel-dialog",{"heading":[1],"fullscreen":[516],"open":[1540],"closingActions":[16]}]]],["limel-popover",[[1,"limel-popover",{"open":[4]}]]],["limel-progress-flow",[[1,"limel-progress-flow",{"flowItems":[16],"disabled":[4],"readonly":[4]}]]],["limel-tooltip",[[1,"limel-tooltip",{"label":[1],"helperLabel":[1,"helper-label"],"elementId":[1,"element-id"],"open":[32]}]]],["limel-banner",[[1,"limel-banner",{"message":[513],"icon":[513],"isOpen":[32],"open":[64],"close":[64]}]]],["limel-button-group",[[1,"limel-button-group",{"value":[16],"disabled":[516],"selectedButtonId":[32]}]]],["limel-table",[[1,"limel-table",{"data":[16],"columns":[16],"mode":[1],"pageSize":[2,"page-size"],"totalRows":[2,"total-rows"],"sorting":[16],"activeRow":[1040],"movableColumns":[4,"movable-columns"],"loading":[4],"page":[2],"emptyMessage":[1,"empty-message"]}]]],["limel-checkbox",[[1,"limel-checkbox",{"disabled":[516],"readonly":[516],"label":[513],"checked":[516],"required":[516],"modified":[32]}]]],["limel-circular-progress",[[1,"limel-circular-progress",{"value":[2],"maxValue":[2,"max-value"],"suffix":[1],"displayPercentageColors":[4,"display-percentage-colors"],"size":[513]}]]],["limel-code-editor",[[1,"limel-code-editor",{"value":[1],"language":[1],"readonly":[4],"lineNumbers":[4,"line-numbers"],"colorScheme":[1,"color-scheme"],"random":[32]}]]],["limel-config",[[1,"limel-config",{"config":[16]}]]],["limel-flex-container",[[1,"limel-flex-container",{"direction":[513],"justify":[513],"align":[513],"reverse":[516]}]]],["limel-form",[[1,"limel-form",{"schema":[16],"value":[16],"propsFactory":[16]}]]],["limel-grid",[[1,"limel-grid"]]],["limel-linear-progress",[[1,"limel-linear-progress",{"value":[2],"indeterminate":[4]}]]],["limel-slider",[[1,"limel-slider",{"disabled":[516],"readonly":[516],"factor":[514],"label":[513],"helperText":[513,"helper-text"],"unit":[513],"value":[514],"valuemax":[514],"valuemin":[514],"step":[514],"percentageClass":[32]}]]],["limel-snackbar",[[1,"limel-snackbar",{"message":[1],"timeout":[2],"actionText":[1,"action-text"],"dismissible":[4],"multiline":[4],"language":[1],"show":[64]}]]],["limel-switch",[[1,"limel-switch",{"label":[513],"disabled":[516],"readonly":[516],"value":[516],"fieldId":[32]}]]],["limel-badge",[[1,"limel-badge",{"label":[514]}]]],["limel-icon",[[1,"limel-icon",{"size":[513],"name":[513],"badge":[516]}]]],["limel-tab-bar",[[1,"limel-tab-bar",{"tabs":[1040],"canScrollLeft":[32],"canScrollRight":[32]},[[9,"resize","handleWindowResize"]]]]],["limel-header",[[1,"limel-header",{"icon":[1],"heading":[1],"subheading":[1],"supportingText":[1,"supporting-text"]}]]],["limel-progress-flow-item",[[0,"limel-progress-flow-item",{"item":[16],"disabled":[4],"readonly":[4]}]]],["limel-popover-surface",[[1,"limel-popover-surface",{"contentCollection":[16]}]]],["limel-tooltip-content",[[1,"limel-tooltip-content",{"label":[1],"helperLabel":[1,"helper-label"]}]]],["limel-list_3",[[1,"limel-list",{"items":[16],"badgeIcons":[4,"badge-icons"],"iconSize":[1,"icon-size"],"type":[1],"maxLinesSecondaryText":[2,"max-lines-secondary-text"]}],[1,"limel-menu-surface",{"open":[4],"allowClicksElement":[16]}],[1,"limel-portal",{"openDirection":[1,"open-direction"],"position":[1],"containerId":[1,"container-id"],"containerStyle":[16],"parent":[16],"inheritParentWidth":[4,"inherit-parent-width"],"visible":[4]}]]],["limel-flatpickr-adapter_2",[[1,"limel-input-field",{"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"helperText":[513,"helper-text"],"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"],"isFocused":[32],"isModified":[32],"showCompletions":[32]}],[1,"limel-flatpickr-adapter",{"value":[16],"type":[1],"format":[1],"isOpen":[4,"is-open"],"inputElement":[16],"language":[1]}]]],["limel-chip-set",[[1,"limel-chip-set",{"value":[16],"type":[513],"label":[513],"disabled":[516],"readonly":[516],"maxItems":[514,"max-items"],"required":[516],"searchLabel":[513,"search-label"],"emptyInputOnBlur":[516,"empty-input-on-blur"],"clearAllButton":[4,"clear-all-button"],"leadingIcon":[513,"leading-icon"],"delimiter":[513],"language":[1],"editMode":[32],"textValue":[32],"blurred":[32],"inputChipIndexSelected":[32],"getEditMode":[64],"setFocus":[64],"emptyInput":[64]}]]],["limel-icon-button",[[1,"limel-icon-button",{"icon":[513],"elevated":[516],"label":[513],"disabled":[516],"relayout":[64]}]]],["limel-spinner",[[1,"limel-spinner",{"size":[513],"limeBranded":[4,"lime-branded"]}]]]], options);
17
17
  });
@@ -3240,6 +3240,8 @@ const List = class {
3240
3240
  return;
3241
3241
  }
3242
3242
  this.mdcMenu = new MDCMenu(element);
3243
+ this.mdcMenu.hasTypeahead = true;
3244
+ this.mdcMenu.wrapFocus = true;
3243
3245
  this.mdcMenu.items.forEach((item) => new MDCRipple(item));
3244
3246
  }
3245
3247
  setupListeners() {