@limetech/lime-elements 33.14.0-next.1 → 33.14.0-next.10

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 (49) hide show
  1. package/dist/cjs/lime-elements.cjs.js +1 -1
  2. package/dist/cjs/limel-button-group.cjs.entry.js +14 -4
  3. package/dist/cjs/limel-dialog.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-list_3.cjs.entry.js +36 -14
  5. package/dist/cjs/limel-menu.cjs.entry.js +49 -1
  6. package/dist/cjs/limel-tab-bar.cjs.entry.js +6 -1
  7. package/dist/cjs/limel-tooltip.cjs.entry.js +48 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/components/button-group/button-group.js +15 -5
  10. package/dist/collection/components/dialog/dialog.css +6 -0
  11. package/dist/collection/components/list/list-renderer.js +33 -13
  12. package/dist/collection/components/list/list.css +16 -2
  13. package/dist/collection/components/list/list.js +2 -0
  14. package/dist/collection/components/menu/menu.js +56 -6
  15. package/dist/collection/components/tab-bar/tab-bar.js +6 -1
  16. package/dist/collection/components/tab-panel/tab-panel.js +2 -1
  17. package/dist/collection/components/tab-panel/tab-panel.types.js +1 -0
  18. package/dist/collection/components/tooltip/tooltip-content.js +6 -4
  19. package/dist/collection/components/tooltip/tooltip.js +80 -15
  20. package/dist/esm/lime-elements.js +1 -1
  21. package/dist/esm/limel-button-group.entry.js +14 -4
  22. package/dist/esm/limel-dialog.entry.js +1 -1
  23. package/dist/esm/limel-list_3.entry.js +36 -14
  24. package/dist/esm/limel-menu.entry.js +49 -1
  25. package/dist/esm/limel-tab-bar.entry.js +6 -1
  26. package/dist/esm/limel-tooltip.entry.js +48 -1
  27. package/dist/esm/loader.js +1 -1
  28. package/dist/lime-elements/lime-elements.esm.js +1 -1
  29. package/dist/lime-elements/{p-9c0dc505.entry.js → p-61ecc7f1.entry.js} +2 -2
  30. package/dist/lime-elements/p-63e4f918.entry.js +1 -0
  31. package/dist/lime-elements/p-b0b18dfc.entry.js +1 -0
  32. package/dist/lime-elements/p-bd805195.entry.js +1 -0
  33. package/dist/lime-elements/{p-2850d435.entry.js → p-c636bfcf.entry.js} +1 -1
  34. package/dist/lime-elements/p-e078c459.entry.js +177 -0
  35. package/dist/types/components/list/list-renderer.d.ts +8 -6
  36. package/dist/types/components/menu/menu.d.ts +11 -3
  37. package/dist/types/components/menu/menu.types.d.ts +7 -0
  38. package/dist/types/components/tab-bar/tab-bar.d.ts +1 -0
  39. package/dist/types/components/tab-panel/tab-panel.d.ts +2 -1
  40. package/dist/types/components/tab-panel/tab-panel.types.d.ts +16 -0
  41. package/dist/types/components/tooltip/tooltip-content.d.ts +6 -2
  42. package/dist/types/components/tooltip/tooltip.d.ts +33 -4
  43. package/dist/types/components.d.ts +19 -19
  44. package/dist/types/interface.d.ts +1 -0
  45. package/package.json +1 -1
  46. package/dist/lime-elements/p-1f3b6139.entry.js +0 -1
  47. package/dist/lime-elements/p-8e8219ac.entry.js +0 -177
  48. package/dist/lime-elements/p-aeeca058.entry.js +0 -1
  49. package/dist/lime-elements/p-b3b08c96.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { ListItem, ListSeparator } from '@limetech/lime-elements';
1
+ import { ListItem, ListSeparator, MenuItem } from '@limetech/lime-elements';
2
2
  import { ListRendererConfig } from './list-renderer-config';
3
3
  export declare class ListRenderer {
4
4
  private defaultConfig;
@@ -6,23 +6,24 @@ export declare class ListRenderer {
6
6
  private hasIcons;
7
7
  private twoLines;
8
8
  private avatarList;
9
+ private commandKey;
9
10
  private applyTabIndexToItemAtIndex;
10
11
  constructor();
11
- render(items: Array<ListItem | ListSeparator>, config?: ListRendererConfig): any;
12
+ render(items: Array<ListItem | ListSeparator | MenuItem>, config?: ListRendererConfig): any;
12
13
  /**
13
14
  * Determine which ListItem should have the `tab-index` attribute set,
14
15
  * and return the index at which that ListItem is located in `items`.
15
16
  * Returns `undefined` if no item should have the attribute set.
16
17
  * See https://github.com/material-components/material-components-web/tree/e66a43a75fef4f9179e24856649518e15e279a04/packages/mdc-list#accessibility
17
18
  *
18
- * @param {Array<ListItem | ListSeparator>} items the items of the list, including any `ListSeparator`:s
19
+ * @param {Array<ListItem | ListSeparator | MenuItems>} items the items of the list, including any `ListSeparator`:s
19
20
  * @returns {number} the index as per the description
20
21
  */
21
22
  private getIndexForWhichToApplyTabIndex;
22
23
  /**
23
24
  * Render a single list item
24
25
  *
25
- * @param {ListItem | ListSeparator} item the item to render
26
+ * @param {ListItem | ListSeparator | MenuItems} item the item to render
26
27
  * @param {number} index the index the item had in the `items` array
27
28
  * @returns {HTMLElement} the list item
28
29
  */
@@ -30,11 +31,12 @@ export declare class ListRenderer {
30
31
  /**
31
32
  * Render the text of the list item
32
33
  *
33
- * @param {string} text primary text for the list item
34
- * @param {string} secondaryText secondary text for the list item
34
+ * @param {ListItem | MenuItem} item the list item
35
35
  * @returns {HTMLElement | string} the text for the list item
36
36
  */
37
37
  private renderText;
38
+ private renderCommandText;
39
+ private isSimpleItem;
38
40
  /**
39
41
  * Render an icon for a list item
40
42
  *
@@ -1,5 +1,5 @@
1
- import { ListItem, ListSeparator } from '@limetech/lime-elements';
2
- import { OpenDirection } from './menu.types';
1
+ import { ListSeparator } from '@limetech/lime-elements';
2
+ import { MenuItem, OpenDirection } from './menu.types';
3
3
  /**
4
4
  * @slot trigger - Element to use as a trigger for the menu.
5
5
  * @exampleComponent limel-example-menu-basic
@@ -9,6 +9,7 @@ import { OpenDirection } from './menu.types';
9
9
  * @exampleComponent limel-example-menu-badge-icons
10
10
  * @exampleComponent limel-example-menu-grid
11
11
  * @exampleComponent limel-example-menu-composite
12
+ * @exampleComponent limel-example-menu-hotkeys
12
13
  */
13
14
  export declare class Menu {
14
15
  /**
@@ -21,7 +22,7 @@ export declare class Menu {
21
22
  /**
22
23
  * A list of items and separators to show in the menu.
23
24
  */
24
- items: Array<ListItem | ListSeparator>;
25
+ items: Array<MenuItem | ListSeparator>;
25
26
  /**
26
27
  * Sets the disabled state of the menu.
27
28
  */
@@ -59,14 +60,21 @@ export declare class Menu {
59
60
  */
60
61
  private select;
61
62
  private host;
63
+ private list;
62
64
  private portalId;
63
65
  constructor();
64
66
  componentDidLoad(): void;
67
+ protected openWatcher(): void;
65
68
  render(): any;
69
+ componentDidRender(): void;
66
70
  private renderTrigger;
71
+ private setTriggerAttributes;
67
72
  private onClose;
68
73
  private onTriggerClick;
69
74
  private onListChange;
70
75
  private getPortalPosition;
71
76
  private getCssProperties;
77
+ private setListElement;
78
+ private focusMenuItem;
79
+ private isListItem;
72
80
  }
@@ -1 +1,8 @@
1
+ import { ListItem } from '../list/list-item.types';
1
2
  export declare type OpenDirection = 'left' | 'right';
3
+ export interface MenuItem extends ListItem {
4
+ /**
5
+ * The additional supporting text is used for shortcut commands and displayed in the list item.
6
+ */
7
+ commandText?: string;
8
+ }
@@ -47,6 +47,7 @@ export declare class TabBar {
47
47
  private tearDown;
48
48
  private setupListeners;
49
49
  private handleTabActivated;
50
+ private sortByInactive;
50
51
  private handleScroll;
51
52
  private handleLeftScrollClick;
52
53
  private handleRightScrollClick;
@@ -4,7 +4,8 @@ import { Tab } from '../tab-bar/tab.types';
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
@@ -0,0 +1,16 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { Tab } from '../tab-bar/tab.types';
3
+ /**
4
+ * Interface for components rendered inside a `limel-tab-panel`
5
+ */
6
+ export interface TabPanelComponent {
7
+ /**
8
+ * The tab that the component belongs to
9
+ */
10
+ tab: Tab;
11
+ /**
12
+ * Emit when the tab is updated for some reason, e.g. changing the text,
13
+ * icon or badge
14
+ */
15
+ changeTab?: EventEmitter<Tab>;
16
+ }
@@ -1,13 +1,17 @@
1
1
  /**
2
+ * This component is used internally by `limel-tooltip`.
3
+ *
2
4
  * @private
3
5
  */
4
6
  export declare class TooltipContent {
5
7
  /**
6
- *tip for the hovered element
8
+ * Short descriptive text of the owner element.
7
9
  */
8
10
  label: string;
9
11
  /**
10
- *hotkey for the hovered element
12
+ * Additional helper text for the element.
13
+ * Example usage can be a keyboard shortcut to activate the function of the
14
+ * owner element.
11
15
  */
12
16
  helperLabel: string;
13
17
  render(): any;
@@ -1,20 +1,49 @@
1
1
  /**
2
+ * Tooltips display a text label identifying an element, such as a description
3
+ * of its function.
4
+ *
5
+ * In order to display the tooltip, the tooltip element and the owner element
6
+ * that it should describe must be within the same document or document
7
+ * fragment. A good practice is to just render them next to each other like so:
8
+ *
9
+ * ```html
10
+ * <limel-button icon="search" id="tooltip-example" />
11
+ * <limel-tooltip label="Search" elementId="tooltip-example" />
12
+ * ```
13
+ *
2
14
  * @exampleComponent limel-example-tooltip
15
+ * @private
3
16
  */
4
17
  export declare class Tooltip {
5
18
  /**
6
- *tip to the hovered element
19
+ * Short descriptive text of the owner element.
7
20
  */
8
21
  label: string;
9
22
  /**
10
- *helperLabel to the hovered element
23
+ * Additional helper text for the element.
24
+ * Example usage can be a keyboard shortcut to activate the function of the
25
+ * owner element.
11
26
  */
12
27
  helperLabel: string;
13
28
  /**
14
- *show if the element is hovered
29
+ * ID of the owner element that the tooltip should describe.
30
+ * Must be a child within the same document fragment as the tooltip element
31
+ * itself.
15
32
  */
16
- open: boolean;
33
+ elementId: string;
34
+ private open;
17
35
  private host;
18
36
  private portalId;
37
+ private tooltipId;
38
+ private showTooltipTimeoutHandle;
39
+ constructor();
40
+ connectedCallback(): void;
41
+ disconnectedCallback(): void;
19
42
  render(): any;
43
+ private setOwnerAriaLabel;
44
+ private addListeners;
45
+ private removeListeners;
46
+ private showTooltip;
47
+ private hideTooltip;
48
+ private getOwnerElement;
20
49
  }
@@ -13,7 +13,7 @@ import { Action } from "./components/collapsible-section/action";
13
13
  import { ValidationStatus } from "./components/form/form.types";
14
14
  import { IconSize } from "./components/icon/icon.types";
15
15
  import { InputType } from "./components/input-field/input-field.types";
16
- import { OpenDirection } from "./components/menu/menu.types";
16
+ import { MenuItem, OpenDirection } from "./components/menu/menu.types";
17
17
  import { ActionPosition, ActionScrollBehavior } from "./components/picker/actions.types";
18
18
  import { FlowItem } from "./components/progress-flow/progress-flow.types";
19
19
  import { Tab } from "./components/tab-bar/tab.types";
@@ -573,7 +573,7 @@ export namespace Components {
573
573
  /**
574
574
  * A list of items and separators to show in the menu.
575
575
  */
576
- "items": Array<ListItem | ListSeparator>;
576
+ "items": Array<MenuItem | ListSeparator>;
577
577
  /**
578
578
  * Is displayed on the default trigger button.
579
579
  * @deprecated Use with default trigger has been deprecated. Please supply your own trigger element.
@@ -929,25 +929,25 @@ export namespace Components {
929
929
  }
930
930
  interface LimelTooltip {
931
931
  /**
932
- * helperLabel to the hovered element
932
+ * ID of the owner element that the tooltip should describe. Must be a child within the same document fragment as the tooltip element itself.
933
933
  */
934
- "helperLabel": string;
934
+ "elementId": string;
935
935
  /**
936
- * tip to the hovered element
936
+ * Additional helper text for the element. Example usage can be a keyboard shortcut to activate the function of the owner element.
937
937
  */
938
- "label": string;
938
+ "helperLabel": string;
939
939
  /**
940
- * show if the element is hovered
940
+ * Short descriptive text of the owner element.
941
941
  */
942
- "open": boolean;
942
+ "label": string;
943
943
  }
944
944
  interface LimelTooltipContent {
945
945
  /**
946
- * hotkey for the hovered element
946
+ * Additional helper text for the element. Example usage can be a keyboard shortcut to activate the function of the owner element.
947
947
  */
948
948
  "helperLabel": string;
949
949
  /**
950
- * tip for the hovered element
950
+ * Short descriptive text of the owner element.
951
951
  */
952
952
  "label": string;
953
953
  }
@@ -1862,7 +1862,7 @@ declare namespace LocalJSX {
1862
1862
  /**
1863
1863
  * A list of items and separators to show in the menu.
1864
1864
  */
1865
- "items"?: Array<ListItem | ListSeparator>;
1865
+ "items"?: Array<MenuItem | ListSeparator>;
1866
1866
  /**
1867
1867
  * Is displayed on the default trigger button.
1868
1868
  * @deprecated Use with default trigger has been deprecated. Please supply your own trigger element.
@@ -2298,25 +2298,25 @@ declare namespace LocalJSX {
2298
2298
  }
2299
2299
  interface LimelTooltip {
2300
2300
  /**
2301
- * helperLabel to the hovered element
2301
+ * ID of the owner element that the tooltip should describe. Must be a child within the same document fragment as the tooltip element itself.
2302
2302
  */
2303
- "helperLabel"?: string;
2303
+ "elementId": string;
2304
2304
  /**
2305
- * tip to the hovered element
2305
+ * Additional helper text for the element. Example usage can be a keyboard shortcut to activate the function of the owner element.
2306
2306
  */
2307
- "label"?: string;
2307
+ "helperLabel"?: string;
2308
2308
  /**
2309
- * show if the element is hovered
2309
+ * Short descriptive text of the owner element.
2310
2310
  */
2311
- "open"?: boolean;
2311
+ "label": string;
2312
2312
  }
2313
2313
  interface LimelTooltipContent {
2314
2314
  /**
2315
- * hotkey for the hovered element
2315
+ * Additional helper text for the element. Example usage can be a keyboard shortcut to activate the function of the owner element.
2316
2316
  */
2317
2317
  "helperLabel"?: string;
2318
2318
  /**
2319
- * tip for the hovered element
2319
+ * Short descriptive text of the owner element.
2320
2320
  */
2321
2321
  "label"?: string;
2322
2322
  }
@@ -17,4 +17,5 @@ export * from './components/progress-flow/progress-flow.types';
17
17
  export * from './components/select/option.types';
18
18
  export * from './components/spinner/spinner.types';
19
19
  export * from './components/tab-bar/tab.types';
20
+ export * from './components/tab-panel/tab-panel.types';
20
21
  export * from './components/table/table.types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "33.14.0-next.1",
3
+ "version": "33.14.0-next.10",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as s,g as e}from"./p-fabb836f.js";import{c as r}from"./p-6c094f3f.js";import{z as o}from"./p-7c4d91f5.js";import"./p-acfbf7ac.js";import"./p-8bbe3720.js";import"./p-fc610f15.js";const n=class{constructor(s){t(this,s),this.cancel=i(this,"cancel",7),this.select=i(this,"select",7),this.label="",this.items=[],this.disabled=!1,this.openDirection="right",this.open=!1,this.badgeIcons=!1,this.gridLayout=!1,this.fixed=!1,this.onClose=()=>{this.cancel.emit(),this.open=!1},this.onTriggerClick=t=>{t.stopPropagation(),this.disabled||(this.open=!this.open)},this.onListChange=t=>{this.items=this.items.map((i=>i===t.detail?t.detail:i)),this.select.emit(t.detail),this.open=!1},this.portalId=r()}componentDidLoad(){this.host.querySelector('[slot="trigger"]')||console.warn("Using limel-menu with the default trigger is deprecated. Please provide your own trigger element.")}render(){const t=this.getCssProperties(),i=getComputedStyle(this.host).getPropertyValue("--dropdown-z-index"),e={"limel-portal--fixed":this.fixed},r=this.getPortalPosition();return s("div",{class:"mdc-menu-surface--anchor",onClick:this.onTriggerClick},s("slot",{name:"trigger"},this.renderTrigger()),s("limel-portal",{class:e,style:r,visible:this.open,containerId:this.portalId,openDirection:this.openDirection,position:this.fixed?"fixed":"absolute",containerStyle:{"z-index":i}},s("limel-menu-surface",{open:this.open,onDismiss:this.onClose,style:t},s("limel-list",{class:{"has-grid-layout has-interactive-items":this.gridLayout},items:this.items,type:"menu",badgeIcons:this.badgeIcons,onChange:this.onListChange}))))}renderTrigger(){return s("button",{class:`\n menu__trigger\n ${this.disabled?"":"menu__trigger-enabled"}\n `,disabled:this.disabled},s("span",null,this.label))}getPortalPosition(){if(!this.fixed)return{};const t=this.host.getBoundingClientRect(),i={top:`${t.y+t.height}px`,left:`${t.x}px`};return"left"===this.openDirection&&(i.left=`${t.x+t.width}px`),i}getCssProperties(){const t=["--menu-surface-width","--list-grid-item-max-width","--list-grid-item-min-width","--list-grid-gap"],i=getComputedStyle(this.host),s=t.map((t=>i.getPropertyValue(t)));return o(t,s)}get host(){return e(this)}};n.style=":host{display:inline-block}:host([hidden]){display:none}.menu__trigger{border-color:transparent;border-width:1px;border-style:solid;background:none;color:rgb(var(--contrast-800));height:2.25rem}.menu__trigger-enabled:hover{border-color:rgb(var(--contrast-800));color:rgb(var(--contrast-1100))}.mdc-menu-surface--anchor{position:relative}";export{n as limel_menu}