@m3e/menu 1.0.0-rc.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.
- package/LICENSE +22 -0
- package/README.md +315 -0
- package/cem.config.mjs +16 -0
- package/demo/index.html +112 -0
- package/dist/css-custom-data.json +362 -0
- package/dist/custom-elements.json +1590 -0
- package/dist/html-custom-data.json +106 -0
- package/dist/index.js +1274 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +276 -0
- package/dist/index.min.js.map +1 -0
- package/dist/src/MenuElement.d.ts +143 -0
- package/dist/src/MenuElement.d.ts.map +1 -0
- package/dist/src/MenuItemCheckboxElement.d.ts +76 -0
- package/dist/src/MenuItemCheckboxElement.d.ts.map +1 -0
- package/dist/src/MenuItemElement.d.ts +113 -0
- package/dist/src/MenuItemElement.d.ts.map +1 -0
- package/dist/src/MenuItemElementBase.d.ts +21 -0
- package/dist/src/MenuItemElementBase.d.ts.map +1 -0
- package/dist/src/MenuItemGroupElement.d.ts +28 -0
- package/dist/src/MenuItemGroupElement.d.ts.map +1 -0
- package/dist/src/MenuItemRadioElement.d.ts +77 -0
- package/dist/src/MenuItemRadioElement.d.ts.map +1 -0
- package/dist/src/MenuPosition.d.ts +5 -0
- package/dist/src/MenuPosition.d.ts.map +1 -0
- package/dist/src/MenuTriggerElement.d.ts +86 -0
- package/dist/src/MenuTriggerElement.d.ts.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/eslint.config.mjs +13 -0
- package/package.json +48 -0
- package/rollup.config.js +32 -0
- package/src/MenuElement.ts +449 -0
- package/src/MenuItemCheckboxElement.ts +178 -0
- package/src/MenuItemElement.ts +210 -0
- package/src/MenuItemElementBase.ts +158 -0
- package/src/MenuItemGroupElement.ts +37 -0
- package/src/MenuItemRadioElement.ts +169 -0
- package/src/MenuPosition.ts +5 -0
- package/src/MenuTriggerElement.ts +154 -0
- package/src/index.ts +7 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemElement.d.ts","sourceRoot":"","sources":["../../src/MenuItemElement.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;;AAG5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AACH,qBACa,kBAAmB,SAAQ,uBAAiD;;IAKvF,eAAe,CAAU,OAAO,CAAC,WAAW,CAAS;;IAiBrD,yCAAyC;IACzC,IAAI,OAAO,IAAI,cAAc,GAAG,IAAI,CAEnC;IAED,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAQlC,kBAAkB;IACT,oBAAoB,IAAI,IAAI;IAQrC,4BAA4B;cACT,cAAc,IAAI,OAAO;CAyD7C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CSSResultGroup, LitElement, PropertyValues } from "lit";
|
|
2
|
+
import type { M3eMenuElement } from "./MenuElement";
|
|
3
|
+
declare const MenuItemElementBase_base: import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor & import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor<import("@m3e/core").AttachInternalsMixin> & import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor<import("@m3e/core").DisabledMixin> & typeof LitElement;
|
|
4
|
+
/** A base implementation for an item of a menu. This class must be inherited. */
|
|
5
|
+
export declare abstract class MenuItemElementBase extends MenuItemElementBase_base {
|
|
6
|
+
/** The styles of the element. */
|
|
7
|
+
static styles: CSSResultGroup;
|
|
8
|
+
/** @private */ private readonly _focusRing?;
|
|
9
|
+
/** @private */ private readonly _stateLayer?;
|
|
10
|
+
/** @private */ private readonly _ripple?;
|
|
11
|
+
/** The menu to which this item belongs. */
|
|
12
|
+
get menu(): M3eMenuElement | null;
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
protected firstUpdated(_changedProperties: PropertyValues<this>): void;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
render(): unknown;
|
|
17
|
+
/** @internal Renders the content of the item. */
|
|
18
|
+
protected abstract _renderContent(): unknown;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=MenuItemElementBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemElementBase.d.ts","sourceRoot":"","sources":["../../src/MenuItemElementBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAW,cAAc,EAAE,MAAM,KAAK,CAAC;AAgBrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;;AAEpD,iFAAiF;AACjF,8BAAsB,mBAAoB,SAAQ,wBAEjD;IACC,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAuGpC;IAEF,eAAe,CAAuB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IACxF,eAAe,CAAwB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAuB;IAC3F,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;IAE9E,2CAA2C;IAC3C,IAAI,IAAI,IAAI,cAAc,GAAG,IAAI,CAEhC;IAED,kBAAkB;cACC,YAAY,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/E,kBAAkB;IACT,MAAM,IAAI,OAAO;IAW1B,iDAAiD;IACjD,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO;CAC7C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CSSResultGroup, LitElement } from "lit";
|
|
2
|
+
declare const M3eMenuItemGroupElement_base: import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor & typeof LitElement;
|
|
3
|
+
/**
|
|
4
|
+
* @summary
|
|
5
|
+
* Groups related items (such a radios) in a menu.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* The `m3e-menu-item-group` component groups related items within a menu, establishing a shared
|
|
9
|
+
* context for interaction and selection. It enables separation of concerns—such as organizing radio
|
|
10
|
+
* items into mutually exclusive sets.
|
|
11
|
+
*
|
|
12
|
+
* @tag m3e-menu-item-group
|
|
13
|
+
*
|
|
14
|
+
* @slot - Renders the contents of the group.
|
|
15
|
+
*/
|
|
16
|
+
export declare class M3eMenuItemGroupElement extends M3eMenuItemGroupElement_base {
|
|
17
|
+
/** The styles of the element. */
|
|
18
|
+
static styles: CSSResultGroup;
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
protected render(): unknown;
|
|
21
|
+
}
|
|
22
|
+
declare global {
|
|
23
|
+
interface HTMLElementTagNameMap {
|
|
24
|
+
"m3e-menu-item-group": M3eMenuItemGroupElement;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=MenuItemGroupElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemGroupElement.d.ts","sourceRoot":"","sources":["../../src/MenuItemGroupElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;;AAG5D;;;;;;;;;;;;GAYG;AACH,qBACa,uBAAwB,SAAQ,4BAAyB;IACpE,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAIpC;IAEF,kBAAkB;cACC,MAAM,IAAI,OAAO;CAGrC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,uBAAuB,CAAC;KAChD;CACF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { CSSResultGroup, PropertyValues } from "lit";
|
|
2
|
+
import { MenuItemElementBase } from "./MenuItemElementBase";
|
|
3
|
+
declare const M3eMenuItemRadioElement_base: import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor<import("@m3e/core").CheckedMixin> & import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor & typeof MenuItemElementBase;
|
|
4
|
+
/**
|
|
5
|
+
* @summary
|
|
6
|
+
* An item of a menu which supports a mutually exclusive checkable state.
|
|
7
|
+
*
|
|
8
|
+
* @description
|
|
9
|
+
* The `m3e-menu-item-radio` component represents a selectable menu item that participates in a mutually exclusive group.
|
|
10
|
+
* It reflects a singular choice within a shared context—such as sort order, theme selection, or view mode—and updates
|
|
11
|
+
* group state when selected. This component can be nested within an `m3e-menu-item-group`, allowing multiple exclusive
|
|
12
|
+
* groups to coexist within a single menu.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* The following example illustrates use of the `m3e-menu-item-radio` in a `m3e-menu` to allow a user to select a sort order.
|
|
16
|
+
* The `m3e-menu-trigger` is used to trigger a `m3e-menu` specified by the `for` attribute when its parenting element is activated.
|
|
17
|
+
* ```html
|
|
18
|
+
* <m3e-button>
|
|
19
|
+
* <m3e-menu-trigger for="menu">Sort order</m3e-menu-trigger>
|
|
20
|
+
* </m3e-button>
|
|
21
|
+
* <m3e-menu id="menu">
|
|
22
|
+
* <m3e-menu-item-radio>Ascending</m3e-menu-item-radio>
|
|
23
|
+
* <m3e-menu-item-radio>Descending</m3e-menu-item-radio>
|
|
24
|
+
* </m3e-menu>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @tag m3e-menu-item-radio
|
|
28
|
+
*
|
|
29
|
+
* @slot - Renders the label of the item.
|
|
30
|
+
* @slot icon - Renders an icon before the items's label.
|
|
31
|
+
* @slot trailing-icon - Renders an icon after the item's label.
|
|
32
|
+
*
|
|
33
|
+
* @attr disabled - Whether the element is disabled.
|
|
34
|
+
* @attr checked - Whether the element is checked.
|
|
35
|
+
*
|
|
36
|
+
* @cssprop --m3e-menu-item-container-height - Height of the menu item container.
|
|
37
|
+
* @cssprop --m3e-menu-item-color - Text color for unselected, enabled menu items.
|
|
38
|
+
* @cssprop --m3e-menu-item-container-hover-color - State layer hover color for unselected items.
|
|
39
|
+
* @cssprop --m3e-menu-item-container-focus-color - State layer focus color for unselected items.
|
|
40
|
+
* @cssprop --m3e-menu-item-ripple-color - Ripple color for unselected items.
|
|
41
|
+
* @cssprop --m3e-menu-selected-color - Text color for selected or expanded items.
|
|
42
|
+
* @cssprop --m3e-menu-selected-container-color - Background color for selected or expanded items.
|
|
43
|
+
* @cssprop --m3e-menu-item-selected-container-hover-color - State layer hover color for selected items.
|
|
44
|
+
* @cssprop --m3e-menu-item-selected-container-focus-color - State layer focus color for selected items.
|
|
45
|
+
* @cssprop --m3e-menu-item-selected-ripple-color - Ripple color for selected items.
|
|
46
|
+
* @cssprop --m3e-menu-item-disabled-color - Base color for disabled items.
|
|
47
|
+
* @cssprop --m3e-menu-item-disabled-opacity - Opacity percentage for disabled item color mix.
|
|
48
|
+
* @cssprop --m3e-menu-item-icon-label-space - Horizontal gap between icon and content.
|
|
49
|
+
* @cssprop --m3e-menu-item-padding-start - Start padding for the item wrapper.
|
|
50
|
+
* @cssprop --m3e-menu-item-padding-end - End padding for the item wrapper.
|
|
51
|
+
* @cssprop --m3e-menu-item-label-text-font-size - Font size for menu item text.
|
|
52
|
+
* @cssprop --m3e-menu-item-label-text-font-weight - Font weight for menu item text.
|
|
53
|
+
* @cssprop --m3e-menu-item-label-text-line-height - Line height for menu item text.
|
|
54
|
+
* @cssprop --m3e-menu-item-label-text-tracking - Letter spacing for menu item text.
|
|
55
|
+
* @cssprop --m3e-menu-item-focus-ring-shape - Border radius for the focus ring.
|
|
56
|
+
* @cssprop --m3e-menu-item-icon-size - Font size for leading and trailing icons.
|
|
57
|
+
*/
|
|
58
|
+
export declare class M3eMenuItemRadioElement extends M3eMenuItemRadioElement_base {
|
|
59
|
+
#private;
|
|
60
|
+
/** The styles of the element. */
|
|
61
|
+
static styles: CSSResultGroup;
|
|
62
|
+
/** @inheritdoc */
|
|
63
|
+
connectedCallback(): void;
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
disconnectedCallback(): void;
|
|
66
|
+
/** @inheritdoc */
|
|
67
|
+
protected update(changedProperties: PropertyValues<this>): void;
|
|
68
|
+
/** @internal @inheritdoc */
|
|
69
|
+
protected _renderContent(): unknown;
|
|
70
|
+
}
|
|
71
|
+
declare global {
|
|
72
|
+
interface HTMLElementTagNameMap {
|
|
73
|
+
"m3e-menu-item-radio": M3eMenuItemRadioElement;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=MenuItemRadioElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemRadioElement.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadioElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAO3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBACa,uBAAwB,SAAQ,4BAAmD;;IAC9F,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAAqC;IAS3E,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IASlC,kBAAkB;IACT,oBAAoB,IAAI,IAAI;IASrC,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAcxE,4BAA4B;cACT,cAAc,IAAI,OAAO;CAmD7C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,uBAAuB,CAAC;KAChD;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Specifies the possible positions for a menu, on the x-axis, relative to its trigger. */
|
|
2
|
+
export type MenuPositionX = "before" | "after";
|
|
3
|
+
/** Specifies the possible positions for a menu, on the x-axis, relative to its trigger. */
|
|
4
|
+
export type MenuPositionY = "above" | "below";
|
|
5
|
+
//# sourceMappingURL=MenuPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPosition.d.ts","sourceRoot":"","sources":["../../src/MenuPosition.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,2FAA2F;AAC3F,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { CSSResultGroup, LitElement } from "lit";
|
|
2
|
+
import type { M3eMenuElement } from "./MenuElement";
|
|
3
|
+
declare const M3eMenuTriggerElement_base: import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor<import("@m3e/core").HtmlForMixin> & import("node_modules/@m3e/core/dist/src/shared/mixins/Constructor").Constructor & typeof LitElement;
|
|
4
|
+
/**
|
|
5
|
+
* @summary
|
|
6
|
+
* An element, nested within a clickable element, used to open a menu.
|
|
7
|
+
*
|
|
8
|
+
* @description
|
|
9
|
+
* The `m3e-menu-trigger` component is used to open a menu when nested within a clickable element
|
|
10
|
+
* such as a button or menu item. It anchors the menu to its invoker, enabling contextual flows and
|
|
11
|
+
* nested hierarchies.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* The following example illustrates a basic menu. The `m3e-menu-trigger` is used to trigger a `m3e-menu` specified
|
|
15
|
+
* by the `for` attribute when its parenting element is activated.
|
|
16
|
+
* ```html
|
|
17
|
+
* <m3e-button>
|
|
18
|
+
* <m3e-menu-trigger for="menu1">Basic menu</m3e-menu-trigger>
|
|
19
|
+
* </m3e-button>
|
|
20
|
+
* <m3e-menu id="menu1">
|
|
21
|
+
* <m3e-menu-item>Apple</m3e-menu-item>
|
|
22
|
+
* <m3e-menu-item>Apricot</m3e-menu-item>
|
|
23
|
+
* <m3e-menu-item>Avocado</m3e-menu-item>
|
|
24
|
+
* <m3e-menu-item>Green Apple</m3e-menu-item>
|
|
25
|
+
* <m3e-menu-item>Green Grapes</m3e-menu-item>
|
|
26
|
+
* <m3e-menu-item>Olive</m3e-menu-item>
|
|
27
|
+
* <m3e-menu-item>Orange</m3e-menu-item>
|
|
28
|
+
* </m3e-menu>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* The next example illustrates nested menus. Submenus are triggered by placing a `m3e-menu-trigger` inside a `m3e-menu-item`.
|
|
33
|
+
* ```html
|
|
34
|
+
* <m3e-button>
|
|
35
|
+
* <m3e-menu-trigger for="menu2">Nested menus</m3e-menu-trigger>
|
|
36
|
+
* </m3e-button>
|
|
37
|
+
* <m3e-menu id="menu2">
|
|
38
|
+
* <m3e-menu-item>
|
|
39
|
+
* <m3e-menu-trigger for="menu3">Fruits with A</m3e-menu-trigger>
|
|
40
|
+
* </m3e-menu-item>
|
|
41
|
+
* <m3e-menu-item>Grapes</m3e-menu-item>
|
|
42
|
+
* <m3e-menu-item>Olive</m3e-menu-item>
|
|
43
|
+
* <m3e-menu-item>Orange</m3e-menu-item>
|
|
44
|
+
* </m3e-menu>
|
|
45
|
+
* <m3e-menu id="menu3">
|
|
46
|
+
* <m3e-menu-item>Apricot</m3e-menu-item>
|
|
47
|
+
* <m3e-menu-item>Avocado</m3e-menu-item>
|
|
48
|
+
* <m3e-menu-item>
|
|
49
|
+
* <m3e-menu-trigger for="menu4">Apples</m3e-menu-trigger>
|
|
50
|
+
* </m3e-menu-item>
|
|
51
|
+
* </m3e-menu>
|
|
52
|
+
* <m3e-menu id="menu4">
|
|
53
|
+
* <m3e-menu-item>Fuji</m3e-menu-item>
|
|
54
|
+
* <m3e-menu-item>Granny Smith</m3e-menu-item>
|
|
55
|
+
* <m3e-menu-item>Red Delicious</m3e-menu-item>
|
|
56
|
+
* </m3e-menu>
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @tag m3e-menu-trigger
|
|
60
|
+
*
|
|
61
|
+
* @slot - Renders the contents of the trigger.
|
|
62
|
+
*/
|
|
63
|
+
export declare class M3eMenuTriggerElement extends M3eMenuTriggerElement_base {
|
|
64
|
+
#private;
|
|
65
|
+
/** The styles of the element. */
|
|
66
|
+
static styles: CSSResultGroup;
|
|
67
|
+
/** The menu triggered by the element. */
|
|
68
|
+
get menu(): M3eMenuElement | null;
|
|
69
|
+
/** @inheritdoc */
|
|
70
|
+
connectedCallback(): void;
|
|
71
|
+
/** @inheritdoc */
|
|
72
|
+
disconnectedCallback(): void;
|
|
73
|
+
/** @inheritdoc */
|
|
74
|
+
attach(control: HTMLElement): void;
|
|
75
|
+
/** @inheritdoc */
|
|
76
|
+
detach(): void;
|
|
77
|
+
/** @inheritdoc */
|
|
78
|
+
protected render(): unknown;
|
|
79
|
+
}
|
|
80
|
+
declare global {
|
|
81
|
+
interface HTMLElementTagNameMap {
|
|
82
|
+
"m3e-menu-trigger": M3eMenuTriggerElement;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=MenuTriggerElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTriggerElement.d.ts","sourceRoot":"","sources":["../../src/MenuTriggerElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAM5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBACa,qBAAsB,SAAQ,0BAAiC;;IAC1E,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAOpC;IAIF,yCAAyC;IACzC,IAAI,IAAI,IAAI,cAAc,GAAG,IAAI,CAEhC;IAED,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAKlC,kBAAkB;IACT,oBAAoB,IAAI,IAAI;IAKrC,kBAAkB;IACT,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAkB3C,kBAAkB;IACT,MAAM,IAAI,IAAI;IAcvB,kBAAkB;cACC,MAAM,IAAI,OAAO;CAcrC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./MenuElement";
|
|
2
|
+
export * from "./MenuItemCheckboxElement";
|
|
3
|
+
export * from "./MenuItemElement";
|
|
4
|
+
export * from "./MenuItemGroupElement";
|
|
5
|
+
export * from "./MenuItemRadioElement";
|
|
6
|
+
export * from "./MenuPosition";
|
|
7
|
+
export * from "./MenuTriggerElement";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import eslint from "@eslint/js";
|
|
2
|
+
import tseslint from "typescript-eslint";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { dirname } from "path";
|
|
5
|
+
|
|
6
|
+
export default tseslint.config(eslint.configs.recommended, tseslint.configs.recommended, {
|
|
7
|
+
languageOptions: {
|
|
8
|
+
parserOptions: {
|
|
9
|
+
project: true,
|
|
10
|
+
tsconfigRootDir: dirname(fileURLToPath(import.meta.url)),
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@m3e/menu",
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
|
+
"description": "Menu for M3E",
|
|
5
|
+
"author": "matraic <matraic@yahoo.com>",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://matraic.github.io/m3e/",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/matraic/m3e.git"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"material design",
|
|
14
|
+
"web components",
|
|
15
|
+
"menu"
|
|
16
|
+
],
|
|
17
|
+
"main": "dist/index.js",
|
|
18
|
+
"module": "dist/index.js",
|
|
19
|
+
"browser": "dist/index.min.js",
|
|
20
|
+
"unpkg": "dist/index.min.js",
|
|
21
|
+
"types": "dist/src/index.d.ts",
|
|
22
|
+
"type": "module",
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "rollup -c",
|
|
25
|
+
"cem": "cem analyze --config cem.config.mjs",
|
|
26
|
+
"lint": "npx eslint ./src",
|
|
27
|
+
"clean": "rimraf dist"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"@m3e/core": "1.0.0-rc.1",
|
|
31
|
+
"lit": "^3.3.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@custom-elements-manifest/analyzer": "^0.10.4",
|
|
35
|
+
"@eslint/js": "^9.30.1",
|
|
36
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
37
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
38
|
+
"@rollup/plugin-typescript": "12.1.0",
|
|
39
|
+
"custom-element-vs-code-integration": "^1.5.0",
|
|
40
|
+
"eslint": "^9.32.0",
|
|
41
|
+
"rimraf": "^6.0.1",
|
|
42
|
+
"rollup": "^4.44.2",
|
|
43
|
+
"tslib": "^2.8.1",
|
|
44
|
+
"typescript": "~5.8.2",
|
|
45
|
+
"typescript-eslint": "^8.38.0"
|
|
46
|
+
},
|
|
47
|
+
"customElements": "dist/custom-elements.json"
|
|
48
|
+
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import resolve from "@rollup/plugin-node-resolve";
|
|
2
|
+
import terser from "@rollup/plugin-terser";
|
|
3
|
+
import typescript from "@rollup/plugin-typescript";
|
|
4
|
+
|
|
5
|
+
const banner = `/**
|
|
6
|
+
* @license MIT
|
|
7
|
+
* Copyright (c) 2025 matraic
|
|
8
|
+
* See LICENSE file in the project root for full license text.
|
|
9
|
+
*/`;
|
|
10
|
+
|
|
11
|
+
export default [
|
|
12
|
+
{
|
|
13
|
+
input: "src/index.ts",
|
|
14
|
+
output: [
|
|
15
|
+
{
|
|
16
|
+
file: "dist/index.js",
|
|
17
|
+
format: "esm",
|
|
18
|
+
sourcemap: true,
|
|
19
|
+
banner: banner,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
file: "dist/index.min.js",
|
|
23
|
+
format: "esm",
|
|
24
|
+
sourcemap: true,
|
|
25
|
+
banner: banner,
|
|
26
|
+
plugins: [terser({ mangle: true })],
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
external: ["@m3e/core", "@m3e/core/a11y", "@m3e/core/anchoring", "lit"],
|
|
30
|
+
plugins: [resolve(), typescript()],
|
|
31
|
+
},
|
|
32
|
+
];
|