@aquera/nile-elements 1.7.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +862 -520
- package/dist/nile-context-menu/index.cjs.js +2 -0
- package/dist/nile-context-menu/index.cjs.js.map +1 -0
- package/dist/nile-context-menu/index.esm.js +1 -0
- package/dist/nile-context-menu/nile-context-menu.cjs.js +2 -0
- package/dist/nile-context-menu/nile-context-menu.cjs.js.map +1 -0
- package/dist/nile-context-menu/nile-context-menu.css.cjs.js +2 -0
- package/dist/nile-context-menu/nile-context-menu.css.cjs.js.map +1 -0
- package/dist/nile-context-menu/nile-context-menu.css.esm.js +51 -0
- package/dist/nile-context-menu/nile-context-menu.esm.js +25 -0
- package/dist/nile-context-menu-group/index.cjs.js +2 -0
- package/dist/nile-context-menu-group/index.cjs.js.map +1 -0
- package/dist/nile-context-menu-group/index.esm.js +1 -0
- package/dist/nile-context-menu-group/nile-context-menu-group.cjs.js +2 -0
- package/dist/nile-context-menu-group/nile-context-menu-group.cjs.js.map +1 -0
- package/dist/nile-context-menu-group/nile-context-menu-group.css.cjs.js +2 -0
- package/dist/nile-context-menu-group/nile-context-menu-group.css.cjs.js.map +1 -0
- package/dist/nile-context-menu-group/nile-context-menu-group.css.esm.js +20 -0
- package/dist/nile-context-menu-group/nile-context-menu-group.esm.js +11 -0
- package/dist/nile-context-menu-item/index.cjs.js +2 -0
- package/dist/nile-context-menu-item/index.cjs.js.map +1 -0
- package/dist/nile-context-menu-item/index.esm.js +1 -0
- package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js +2 -0
- package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js.map +1 -0
- package/dist/nile-context-menu-item/nile-context-menu-item.css.cjs.js +2 -0
- package/dist/nile-context-menu-item/nile-context-menu-item.css.cjs.js.map +1 -0
- package/dist/nile-context-menu-item/nile-context-menu-item.css.esm.js +72 -0
- package/dist/nile-context-menu-item/nile-context-menu-item.esm.js +20 -0
- package/dist/nile-context-submenu/index.cjs.js +2 -0
- package/dist/nile-context-submenu/index.cjs.js.map +1 -0
- package/dist/nile-context-submenu/index.esm.js +1 -0
- package/dist/nile-context-submenu/nile-context-submenu.cjs.js +2 -0
- package/dist/nile-context-submenu/nile-context-submenu.cjs.js.map +1 -0
- package/dist/nile-context-submenu/nile-context-submenu.esm.js +3 -0
- package/dist/nile-status-light/index.cjs.js +2 -0
- package/dist/nile-status-light/index.cjs.js.map +1 -0
- package/dist/nile-status-light/index.esm.js +1 -0
- package/dist/nile-status-light/nile-status-light.cjs.js +2 -0
- package/dist/nile-status-light/nile-status-light.cjs.js.map +1 -0
- package/dist/nile-status-light/nile-status-light.css.cjs.js +2 -0
- package/dist/nile-status-light/nile-status-light.css.cjs.js.map +1 -0
- package/dist/nile-status-light/nile-status-light.css.esm.js +136 -0
- package/dist/nile-status-light/nile-status-light.esm.js +13 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-context-menu/index.d.ts +3 -0
- package/dist/src/nile-context-menu/index.js +4 -0
- package/dist/src/nile-context-menu/index.js.map +1 -0
- package/dist/src/nile-context-menu/nile-context-menu.css.d.ts +10 -0
- package/dist/src/nile-context-menu/nile-context-menu.css.js +127 -0
- package/dist/src/nile-context-menu/nile-context-menu.css.js.map +1 -0
- package/dist/src/nile-context-menu/nile-context-menu.d.ts +123 -0
- package/dist/src/nile-context-menu/nile-context-menu.js +625 -0
- package/dist/src/nile-context-menu/nile-context-menu.js.map +1 -0
- package/dist/src/nile-context-menu-group/index.d.ts +1 -0
- package/dist/src/nile-context-menu-group/index.js +2 -0
- package/dist/src/nile-context-menu-group/index.js.map +1 -0
- package/dist/src/nile-context-menu-group/nile-context-menu-group.css.d.ts +9 -0
- package/dist/src/nile-context-menu-group/nile-context-menu-group.css.js +29 -0
- package/dist/src/nile-context-menu-group/nile-context-menu-group.css.js.map +1 -0
- package/dist/src/nile-context-menu-group/nile-context-menu-group.d.ts +28 -0
- package/dist/src/nile-context-menu-group/nile-context-menu-group.js +55 -0
- package/dist/src/nile-context-menu-group/nile-context-menu-group.js.map +1 -0
- package/dist/src/nile-context-menu-item/index.d.ts +1 -0
- package/dist/src/nile-context-menu-item/index.js +2 -0
- package/dist/src/nile-context-menu-item/index.js.map +1 -0
- package/dist/src/nile-context-menu-item/nile-context-menu-item.css.d.ts +9 -0
- package/dist/src/nile-context-menu-item/nile-context-menu-item.css.js +81 -0
- package/dist/src/nile-context-menu-item/nile-context-menu-item.css.js.map +1 -0
- package/dist/src/nile-context-menu-item/nile-context-menu-item.d.ts +45 -0
- package/dist/src/nile-context-menu-item/nile-context-menu-item.js +96 -0
- package/dist/src/nile-context-menu-item/nile-context-menu-item.js.map +1 -0
- package/dist/src/nile-context-submenu/index.d.ts +1 -0
- package/dist/src/nile-context-submenu/index.js +2 -0
- package/dist/src/nile-context-submenu/index.js.map +1 -0
- package/dist/src/nile-context-submenu/nile-context-submenu.d.ts +60 -0
- package/dist/src/nile-context-submenu/nile-context-submenu.js +324 -0
- package/dist/src/nile-context-submenu/nile-context-submenu.js.map +1 -0
- package/dist/src/nile-status-light/index.d.ts +1 -0
- package/dist/src/nile-status-light/index.js +2 -0
- package/dist/src/nile-status-light/index.js.map +1 -0
- package/dist/src/nile-status-light/nile-status-light.css.d.ts +9 -0
- package/dist/src/nile-status-light/nile-status-light.css.js +145 -0
- package/dist/src/nile-status-light/nile-status-light.css.js.map +1 -0
- package/dist/src/nile-status-light/nile-status-light.d.ts +53 -0
- package/dist/src/nile-status-light/nile-status-light.js +108 -0
- package/dist/src/nile-status-light/nile-status-light.js.map +1 -0
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/index.ts +4 -0
- package/src/nile-context-menu/index.ts +12 -0
- package/src/nile-context-menu/nile-context-menu.css.ts +130 -0
- package/src/nile-context-menu/nile-context-menu.ts +698 -0
- package/src/nile-context-menu-group/index.ts +1 -0
- package/src/nile-context-menu-group/nile-context-menu-group.css.ts +31 -0
- package/src/nile-context-menu-group/nile-context-menu-group.ts +55 -0
- package/src/nile-context-menu-item/index.ts +5 -0
- package/src/nile-context-menu-item/nile-context-menu-item.css.ts +83 -0
- package/src/nile-context-menu-item/nile-context-menu-item.ts +112 -0
- package/src/nile-context-submenu/index.ts +1 -0
- package/src/nile-context-submenu/nile-context-submenu.ts +322 -0
- package/src/nile-status-light/index.ts +1 -0
- package/src/nile-status-light/nile-status-light.css.ts +146 -0
- package/src/nile-status-light/nile-status-light.ts +111 -0
- package/vscode-html-custom-data.json +140 -4
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { css } from 'lit';
|
|
8
|
+
export const styles = css `
|
|
9
|
+
:host {
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
-webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));
|
|
12
|
+
-moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));
|
|
13
|
+
text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));
|
|
14
|
+
display: block;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.nile-context-menu__menu {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:host *,
|
|
22
|
+
:host *::before,
|
|
23
|
+
:host *::after {
|
|
24
|
+
box-sizing: inherit;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.nile-context-menu__menu {
|
|
28
|
+
min-width: 200px;
|
|
29
|
+
max-width: 540px;
|
|
30
|
+
padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-none, var(--ng-spacing-none));
|
|
31
|
+
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
32
|
+
border: solid 1px var(--nile-colors-border-surface, var(--ng-colors-border-secondary-alt));
|
|
33
|
+
border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));
|
|
34
|
+
box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),
|
|
35
|
+
0px 8px 8px -4px rgba(16, 24, 40, 0.03);
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));
|
|
38
|
+
font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));
|
|
39
|
+
line-height: var(--nile-line-height-1-8, var(--ng-line-height-text-md));
|
|
40
|
+
color: var(--nile-colors-text-default, var(--ng-colors-text-secondary-700));
|
|
41
|
+
user-select: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.nile-context-menu__menu nile-context-menu-group + nile-context-menu-group {
|
|
45
|
+
position: relative;
|
|
46
|
+
margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
47
|
+
padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
48
|
+
}
|
|
49
|
+
.nile-context-menu__menu nile-context-menu-group + nile-context-menu-group::before {
|
|
50
|
+
content: '';
|
|
51
|
+
position: absolute;
|
|
52
|
+
top: 0;
|
|
53
|
+
left: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
54
|
+
right: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
55
|
+
height: 1px;
|
|
56
|
+
background: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
const GLOBAL_OVERRIDE_CSS = `
|
|
60
|
+
.nile-context-menu-panel .nile-floating-panel__body {
|
|
61
|
+
min-width: 0;
|
|
62
|
+
padding: var(--nile-spacing-none, var(--ng-spacing-none));
|
|
63
|
+
gap: var(--nile-spacing-none, var(--ng-spacing-none));
|
|
64
|
+
}
|
|
65
|
+
.nile-context-menu-panel .nile-floating-panel__main {
|
|
66
|
+
padding: var(--nile-spacing-none, var(--ng-spacing-none));
|
|
67
|
+
margin: var(--nile-spacing-none, var(--ng-spacing-none));
|
|
68
|
+
}
|
|
69
|
+
.nile-context-menu-panel .tippy-box[data-theme~='floating-panel'] {
|
|
70
|
+
padding: var(--nile-spacing-none, var(--ng-spacing-none));
|
|
71
|
+
background: transparent;
|
|
72
|
+
border: none;
|
|
73
|
+
border-radius: var(--nile-radius-none, var(--ng-radius-none));
|
|
74
|
+
box-shadow: none;
|
|
75
|
+
}
|
|
76
|
+
.nile-context-menu__menu[role='menu'] {
|
|
77
|
+
min-width: 200px;
|
|
78
|
+
max-width: 540px;
|
|
79
|
+
max-height: min(60vh, 400px);
|
|
80
|
+
padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-none, var(--ng-spacing-none));
|
|
81
|
+
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
82
|
+
border: solid 1px var(--nile-colors-border-surface, var(--ng-colors-border-secondary-alt));
|
|
83
|
+
border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));
|
|
84
|
+
box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),
|
|
85
|
+
0px 8px 8px -4px rgba(16, 24, 40, 0.03);
|
|
86
|
+
overflow-y: auto;
|
|
87
|
+
overflow-x: hidden;
|
|
88
|
+
font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));
|
|
89
|
+
font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));
|
|
90
|
+
font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));
|
|
91
|
+
line-height: var(--nile-line-height-1-8, var(--ng-line-height-text-md));
|
|
92
|
+
color: var(--nile-colors-text-default, var(--ng-colors-text-secondary-700));
|
|
93
|
+
user-select: none;
|
|
94
|
+
}
|
|
95
|
+
.nile-context-menu__menu[role='menu'] nile-context-menu-item,
|
|
96
|
+
.nile-context-menu__menu[role='menu'] nile-context-menu-group {
|
|
97
|
+
font-family: inherit;
|
|
98
|
+
}
|
|
99
|
+
.nile-context-menu__menu[role='menu'] nile-context-menu-group + nile-context-menu-group {
|
|
100
|
+
position: relative;
|
|
101
|
+
margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
102
|
+
padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
103
|
+
}
|
|
104
|
+
.nile-context-menu__menu[role='menu'] nile-context-menu-group + nile-context-menu-group::before {
|
|
105
|
+
content: '';
|
|
106
|
+
position: absolute;
|
|
107
|
+
top: 0;
|
|
108
|
+
left: var(--nile-spacing-xl, var(--ng-spacing-lg));
|
|
109
|
+
right: var(--nile-spacing-xl, var(--ng-spacing-lg));
|
|
110
|
+
height: 1px;
|
|
111
|
+
background: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
112
|
+
}
|
|
113
|
+
`;
|
|
114
|
+
export function injectGlobalContextMenuOverrides() {
|
|
115
|
+
if (typeof document === 'undefined')
|
|
116
|
+
return;
|
|
117
|
+
const STYLE_ID = 'nile-context-menu-overrides';
|
|
118
|
+
if (document.getElementById(STYLE_ID))
|
|
119
|
+
return;
|
|
120
|
+
const style = document.createElement('style');
|
|
121
|
+
style.id = STYLE_ID;
|
|
122
|
+
style.textContent = GLOBAL_OVERRIDE_CSS;
|
|
123
|
+
document.head?.appendChild(style);
|
|
124
|
+
}
|
|
125
|
+
injectGlobalContextMenuOverrides();
|
|
126
|
+
export default [styles];
|
|
127
|
+
//# sourceMappingURL=nile-context-menu.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-context-menu.css.js","sourceRoot":"","sources":["../../../src/nile-context-menu/nile-context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDxB,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD3B,CAAC;AAEF,MAAM,UAAU,gCAAgC;IAC9C,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,QAAQ,GAAG,6BAA6B,CAAC;IAC/C,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,gCAAgC,EAAE,CAAC;AAEnC,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2026\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\nexport const styles = css`\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n display: block;\n }\n\n .nile-context-menu__menu {\n display: none;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n .nile-context-menu__menu {\n min-width: 200px;\n max-width: 540px;\n padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-none, var(--ng-spacing-none));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-border-surface, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),\n 0px 8px 8px -4px rgba(16, 24, 40, 0.03);\n overflow: hidden;\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-1-8, var(--ng-line-height-text-md));\n color: var(--nile-colors-text-default, var(--ng-colors-text-secondary-700));\n user-select: none;\n }\n\n .nile-context-menu__menu nile-context-menu-group + nile-context-menu-group {\n position: relative;\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n .nile-context-menu__menu nile-context-menu-group + nile-context-menu-group::before {\n content: '';\n position: absolute;\n top: 0;\n left: var(--nile-spacing-lg, var(--ng-spacing-lg));\n right: var(--nile-spacing-lg, var(--ng-spacing-lg));\n height: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n }\n`;\n\nconst GLOBAL_OVERRIDE_CSS = `\n .nile-context-menu-panel .nile-floating-panel__body {\n min-width: 0;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n gap: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n .nile-context-menu-panel .nile-floating-panel__main {\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n .nile-context-menu-panel .tippy-box[data-theme~='floating-panel'] {\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n background: transparent;\n border: none;\n border-radius: var(--nile-radius-none, var(--ng-radius-none));\n box-shadow: none;\n }\n .nile-context-menu__menu[role='menu'] {\n min-width: 200px;\n max-width: 540px;\n max-height: min(60vh, 400px);\n padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-none, var(--ng-spacing-none));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-border-surface, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),\n 0px 8px 8px -4px rgba(16, 24, 40, 0.03);\n overflow-y: auto;\n overflow-x: hidden;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-1-8, var(--ng-line-height-text-md));\n color: var(--nile-colors-text-default, var(--ng-colors-text-secondary-700));\n user-select: none;\n }\n .nile-context-menu__menu[role='menu'] nile-context-menu-item,\n .nile-context-menu__menu[role='menu'] nile-context-menu-group {\n font-family: inherit;\n }\n .nile-context-menu__menu[role='menu'] nile-context-menu-group + nile-context-menu-group {\n position: relative;\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n .nile-context-menu__menu[role='menu'] nile-context-menu-group + nile-context-menu-group::before {\n content: '';\n position: absolute;\n top: 0;\n left: var(--nile-spacing-xl, var(--ng-spacing-lg));\n right: var(--nile-spacing-xl, var(--ng-spacing-lg));\n height: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n }\n`;\n\nexport function injectGlobalContextMenuOverrides(): void {\n if (typeof document === 'undefined') return;\n const STYLE_ID = 'nile-context-menu-overrides';\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement('style');\n style.id = STYLE_ID;\n style.textContent = GLOBAL_OVERRIDE_CSS;\n document.head?.appendChild(style);\n}\n\ninjectGlobalContextMenuOverrides();\n\nexport default [styles];\n"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { CSSResultArray, TemplateResult } from 'lit';
|
|
8
|
+
import type { PropertyValues } from 'lit';
|
|
9
|
+
import NileElement from '../internal/nile-element';
|
|
10
|
+
import type { NileContextMenuItem } from '../nile-context-menu-item';
|
|
11
|
+
import '../nile-floating-panel';
|
|
12
|
+
import '../nile-context-menu-group';
|
|
13
|
+
import '../nile-context-menu-item';
|
|
14
|
+
import '../nile-context-submenu';
|
|
15
|
+
export interface NileContextMenuItemData {
|
|
16
|
+
type: 'item';
|
|
17
|
+
id: string;
|
|
18
|
+
label: string;
|
|
19
|
+
value?: string;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
icon?: string;
|
|
22
|
+
iconSet?: string;
|
|
23
|
+
iconSize?: string;
|
|
24
|
+
iconMethod?: 'fill' | 'stroke' | string;
|
|
25
|
+
iconColor?: string;
|
|
26
|
+
submenu?: NileContextMenuData[];
|
|
27
|
+
}
|
|
28
|
+
export interface NileContextMenuGroupData {
|
|
29
|
+
type: 'group';
|
|
30
|
+
name?: string;
|
|
31
|
+
data: NileContextMenuItemData[];
|
|
32
|
+
}
|
|
33
|
+
export type NileContextMenuData = NileContextMenuGroupData;
|
|
34
|
+
export type NileContextMenuTrigger = 'right' | 'left' | 'both' | 'manual' | 'global';
|
|
35
|
+
export interface NileContextMenuOpenOptions {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
target?: Element;
|
|
39
|
+
originalEvent?: Event;
|
|
40
|
+
}
|
|
41
|
+
export type NileContextMenuCloseReason = 'select' | 'outside-click' | 'escape' | 'programmatic';
|
|
42
|
+
interface NileContextMenuOpenContext {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
target: Element | null;
|
|
46
|
+
originalEvent: Event | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Nile context-menu component.
|
|
50
|
+
*
|
|
51
|
+
* @tag nile-context-menu
|
|
52
|
+
*
|
|
53
|
+
* @slot Default menu content.
|
|
54
|
+
*
|
|
55
|
+
* @event nile-change Fired on menu lifecycle and selection. `detail.type` is one of
|
|
56
|
+
* `'open'`, `'click'`, or `'close'`; remaining fields depend on the type.
|
|
57
|
+
*/
|
|
58
|
+
export declare class NileContextMenu extends NileElement {
|
|
59
|
+
static get styles(): CSSResultArray;
|
|
60
|
+
for: string;
|
|
61
|
+
trigger: NileContextMenuTrigger;
|
|
62
|
+
skipOn: string;
|
|
63
|
+
zIndex: number;
|
|
64
|
+
items: NileContextMenuData[];
|
|
65
|
+
private get _isDataMode();
|
|
66
|
+
private _floatingPanel?;
|
|
67
|
+
private _items;
|
|
68
|
+
private _open;
|
|
69
|
+
protected _openContext: NileContextMenuOpenContext | null;
|
|
70
|
+
protected _targetEl: Element | null;
|
|
71
|
+
private _previouslyFocused;
|
|
72
|
+
private static _openInstances;
|
|
73
|
+
private _detachTriggers?;
|
|
74
|
+
private _lightObserver?;
|
|
75
|
+
private _menuObserver?;
|
|
76
|
+
private _proxyEl?;
|
|
77
|
+
private readonly _proxyId;
|
|
78
|
+
private _wasDataMode;
|
|
79
|
+
connectedCallback(): void;
|
|
80
|
+
protected updated(changed: PropertyValues): void;
|
|
81
|
+
private _resolveTarget;
|
|
82
|
+
get targetElement(): Element | null;
|
|
83
|
+
private _attachTriggers;
|
|
84
|
+
disconnectedCallback(): void;
|
|
85
|
+
private _menuContainerRef;
|
|
86
|
+
protected firstUpdated(): void;
|
|
87
|
+
private _ensureProxy;
|
|
88
|
+
private _positionProxyAt;
|
|
89
|
+
private _relocateLightChildren;
|
|
90
|
+
private _renderDataItems;
|
|
91
|
+
private _createDataNode;
|
|
92
|
+
private _createItemNode;
|
|
93
|
+
private _parseChildren;
|
|
94
|
+
private _isInsideDescendantSubmenu;
|
|
95
|
+
get menuItems(): readonly NileContextMenuItem[];
|
|
96
|
+
getItemByValue(value: string): NileContextMenuItem | undefined;
|
|
97
|
+
get isOpen(): boolean;
|
|
98
|
+
open(options: NileContextMenuOpenOptions): void;
|
|
99
|
+
close(reason?: NileContextMenuCloseReason): void;
|
|
100
|
+
private _enabledItems;
|
|
101
|
+
private _getFocusedItem;
|
|
102
|
+
private _getFocusedItemAnyLevel;
|
|
103
|
+
private _enabledItemsIn;
|
|
104
|
+
private _focusFirstEnabled;
|
|
105
|
+
private _moveFocus;
|
|
106
|
+
private _onKeydown;
|
|
107
|
+
private _findSubmenuOwning;
|
|
108
|
+
private _onScroll;
|
|
109
|
+
private _onOutsidePointer;
|
|
110
|
+
private _onDescendantSelect;
|
|
111
|
+
private _stop;
|
|
112
|
+
private _onPanelShown;
|
|
113
|
+
private _onMenuMouseOver;
|
|
114
|
+
private _onMenuClick;
|
|
115
|
+
private _selectItem;
|
|
116
|
+
render(): TemplateResult;
|
|
117
|
+
}
|
|
118
|
+
export default NileContextMenu;
|
|
119
|
+
declare global {
|
|
120
|
+
interface HTMLElementTagNameMap {
|
|
121
|
+
'nile-context-menu': NileContextMenu;
|
|
122
|
+
}
|
|
123
|
+
}
|