@aquera/nile-elements 1.7.9 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +6 -0
  2. package/dist/index-6faafdf4.cjs.js +2 -0
  3. package/dist/index-6faafdf4.cjs.js.map +1 -0
  4. package/dist/index-9931b440.esm.js +1 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +630 -435
  8. package/dist/nile-combobox/index.cjs.js +1 -1
  9. package/dist/nile-combobox/index.esm.js +1 -1
  10. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  11. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  12. package/dist/nile-context-menu/index.cjs.js +2 -0
  13. package/dist/nile-context-menu/index.cjs.js.map +1 -0
  14. package/dist/nile-context-menu/index.esm.js +1 -0
  15. package/dist/nile-context-menu/nile-context-menu.cjs.js +2 -0
  16. package/dist/nile-context-menu/nile-context-menu.cjs.js.map +1 -0
  17. package/dist/nile-context-menu/nile-context-menu.css.cjs.js +2 -0
  18. package/dist/nile-context-menu/nile-context-menu.css.cjs.js.map +1 -0
  19. package/dist/nile-context-menu/nile-context-menu.css.esm.js +51 -0
  20. package/dist/nile-context-menu/nile-context-menu.esm.js +25 -0
  21. package/dist/nile-context-menu-group/index.cjs.js +2 -0
  22. package/dist/nile-context-menu-group/index.cjs.js.map +1 -0
  23. package/dist/nile-context-menu-group/index.esm.js +1 -0
  24. package/dist/nile-context-menu-group/nile-context-menu-group.cjs.js +2 -0
  25. package/dist/nile-context-menu-group/nile-context-menu-group.cjs.js.map +1 -0
  26. package/dist/nile-context-menu-group/nile-context-menu-group.css.cjs.js +2 -0
  27. package/dist/nile-context-menu-group/nile-context-menu-group.css.cjs.js.map +1 -0
  28. package/dist/nile-context-menu-group/nile-context-menu-group.css.esm.js +20 -0
  29. package/dist/nile-context-menu-group/nile-context-menu-group.esm.js +11 -0
  30. package/dist/nile-context-menu-item/index.cjs.js +2 -0
  31. package/dist/nile-context-menu-item/index.cjs.js.map +1 -0
  32. package/dist/nile-context-menu-item/index.esm.js +1 -0
  33. package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js +2 -0
  34. package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js.map +1 -0
  35. package/dist/nile-context-menu-item/nile-context-menu-item.css.cjs.js +2 -0
  36. package/dist/nile-context-menu-item/nile-context-menu-item.css.cjs.js.map +1 -0
  37. package/dist/nile-context-menu-item/nile-context-menu-item.css.esm.js +72 -0
  38. package/dist/nile-context-menu-item/nile-context-menu-item.esm.js +20 -0
  39. package/dist/nile-context-submenu/index.cjs.js +2 -0
  40. package/dist/nile-context-submenu/index.cjs.js.map +1 -0
  41. package/dist/nile-context-submenu/index.esm.js +1 -0
  42. package/dist/nile-context-submenu/nile-context-submenu.cjs.js +2 -0
  43. package/dist/nile-context-submenu/nile-context-submenu.cjs.js.map +1 -0
  44. package/dist/nile-context-submenu/nile-context-submenu.esm.js +3 -0
  45. package/dist/nile-detail/index.cjs.js +1 -1
  46. package/dist/nile-detail/index.esm.js +1 -1
  47. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  48. package/dist/nile-detail/nile-detail.esm.js +1 -1
  49. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  50. package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
  51. package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
  52. package/dist/src/index.d.ts +3 -0
  53. package/dist/src/index.js +3 -0
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/nile-context-menu/index.d.ts +3 -0
  56. package/dist/src/nile-context-menu/index.js +4 -0
  57. package/dist/src/nile-context-menu/index.js.map +1 -0
  58. package/dist/src/nile-context-menu/nile-context-menu.css.d.ts +10 -0
  59. package/dist/src/nile-context-menu/nile-context-menu.css.js +127 -0
  60. package/dist/src/nile-context-menu/nile-context-menu.css.js.map +1 -0
  61. package/dist/src/nile-context-menu/nile-context-menu.d.ts +132 -0
  62. package/dist/src/nile-context-menu/nile-context-menu.js +705 -0
  63. package/dist/src/nile-context-menu/nile-context-menu.js.map +1 -0
  64. package/dist/src/nile-context-menu-group/index.d.ts +1 -0
  65. package/dist/src/nile-context-menu-group/index.js +2 -0
  66. package/dist/src/nile-context-menu-group/index.js.map +1 -0
  67. package/dist/src/nile-context-menu-group/nile-context-menu-group.css.d.ts +9 -0
  68. package/dist/src/nile-context-menu-group/nile-context-menu-group.css.js +29 -0
  69. package/dist/src/nile-context-menu-group/nile-context-menu-group.css.js.map +1 -0
  70. package/dist/src/nile-context-menu-group/nile-context-menu-group.d.ts +28 -0
  71. package/dist/src/nile-context-menu-group/nile-context-menu-group.js +55 -0
  72. package/dist/src/nile-context-menu-group/nile-context-menu-group.js.map +1 -0
  73. package/dist/src/nile-context-menu-item/index.d.ts +1 -0
  74. package/dist/src/nile-context-menu-item/index.js +2 -0
  75. package/dist/src/nile-context-menu-item/index.js.map +1 -0
  76. package/dist/src/nile-context-menu-item/nile-context-menu-item.css.d.ts +9 -0
  77. package/dist/src/nile-context-menu-item/nile-context-menu-item.css.js +81 -0
  78. package/dist/src/nile-context-menu-item/nile-context-menu-item.css.js.map +1 -0
  79. package/dist/src/nile-context-menu-item/nile-context-menu-item.d.ts +46 -0
  80. package/dist/src/nile-context-menu-item/nile-context-menu-item.js +100 -0
  81. package/dist/src/nile-context-menu-item/nile-context-menu-item.js.map +1 -0
  82. package/dist/src/nile-context-submenu/index.d.ts +1 -0
  83. package/dist/src/nile-context-submenu/index.js +2 -0
  84. package/dist/src/nile-context-submenu/index.js.map +1 -0
  85. package/dist/src/nile-context-submenu/nile-context-submenu.d.ts +69 -0
  86. package/dist/src/nile-context-submenu/nile-context-submenu.js +408 -0
  87. package/dist/src/nile-context-submenu/nile-context-submenu.js.map +1 -0
  88. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +2 -0
  89. package/dist/src/nile-floating-panel/nile-floating-panel.js +4 -0
  90. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
  91. package/dist/src/version.js +1 -1
  92. package/dist/src/version.js.map +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +1 -1
  95. package/src/index.ts +3 -0
  96. package/src/nile-context-menu/index.ts +12 -0
  97. package/src/nile-context-menu/nile-context-menu.css.ts +130 -0
  98. package/src/nile-context-menu/nile-context-menu.ts +776 -0
  99. package/src/nile-context-menu-group/index.ts +1 -0
  100. package/src/nile-context-menu-group/nile-context-menu-group.css.ts +31 -0
  101. package/src/nile-context-menu-group/nile-context-menu-group.ts +55 -0
  102. package/src/nile-context-menu-item/index.ts +5 -0
  103. package/src/nile-context-menu-item/nile-context-menu-item.css.ts +83 -0
  104. package/src/nile-context-menu-item/nile-context-menu-item.ts +114 -0
  105. package/src/nile-context-submenu/index.ts +1 -0
  106. package/src/nile-context-submenu/nile-context-submenu.ts +407 -0
  107. package/src/nile-floating-panel/nile-floating-panel.ts +5 -0
  108. package/vscode-html-custom-data.json +92 -4
  109. package/dist/index-644974d4.esm.js +0 -1
  110. package/dist/index-dd2af8ec.cjs.js +0 -2
  111. package/dist/index-dd2af8ec.cjs.js.map +0 -1
@@ -0,0 +1,132 @@
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
+ open?: boolean;
28
+ }
29
+ export interface NileContextMenuGroupData {
30
+ type: 'group';
31
+ name?: string;
32
+ data: NileContextMenuItemData[];
33
+ }
34
+ export type NileContextMenuData = NileContextMenuGroupData;
35
+ export type NileContextMenuTrigger = 'right' | 'left' | 'both' | 'manual' | 'global';
36
+ export interface NileContextMenuOpenOptions {
37
+ x: number;
38
+ y: number;
39
+ target?: Element;
40
+ originalEvent?: Event;
41
+ }
42
+ export type NileContextMenuCloseReason = 'select' | 'outside-click' | 'escape' | 'programmatic';
43
+ interface NileContextMenuOpenContext {
44
+ x: number;
45
+ y: number;
46
+ target: Element | null;
47
+ originalEvent: Event | null;
48
+ }
49
+ /**
50
+ * Nile context-menu component.
51
+ *
52
+ * @tag nile-context-menu
53
+ *
54
+ * @slot Default menu content.
55
+ *
56
+ * @event nile-change Fired on menu lifecycle and selection. `detail.type` is one of
57
+ * `'open'`, `'click'`, or `'close'`; remaining fields depend on the type.
58
+ */
59
+ export declare class NileContextMenu extends NileElement {
60
+ static get styles(): CSSResultArray;
61
+ for: string;
62
+ trigger: NileContextMenuTrigger;
63
+ skipOn: string;
64
+ zIndex: number;
65
+ open: boolean;
66
+ items: NileContextMenuData[];
67
+ private get _isDataMode();
68
+ private _floatingPanel?;
69
+ private _items;
70
+ private _open;
71
+ private _pinned;
72
+ protected _openContext: NileContextMenuOpenContext | null;
73
+ protected _targetEl: Element | null;
74
+ private _previouslyFocused;
75
+ private static _openInstances;
76
+ private _detachTriggers?;
77
+ private _lightObserver?;
78
+ private _menuObserver?;
79
+ private _proxyEl?;
80
+ private readonly _proxyId;
81
+ private _wasDataMode;
82
+ connectedCallback(): void;
83
+ protected updated(changed: PropertyValues): void;
84
+ /** Open anchored to the `for` target (used when the `open` property is set). */
85
+ private _openAtTarget;
86
+ /** Re-anchor a pinned menu to its target after layout changes. */
87
+ private _onPinnedReposition;
88
+ private _resolveTarget;
89
+ get targetElement(): Element | null;
90
+ private _attachTriggers;
91
+ disconnectedCallback(): void;
92
+ private _menuContainerRef;
93
+ protected firstUpdated(): void;
94
+ private _ensureProxy;
95
+ private _positionProxyAt;
96
+ private _relocateLightChildren;
97
+ private _renderDataItems;
98
+ private _createDataNode;
99
+ private _createItemNode;
100
+ private _parseChildren;
101
+ private _isInsideDescendantSubmenu;
102
+ get menuItems(): readonly NileContextMenuItem[];
103
+ getItemByValue(value: string): NileContextMenuItem | undefined;
104
+ get isOpen(): boolean;
105
+ openAt(options: NileContextMenuOpenOptions): void;
106
+ close(reason?: NileContextMenuCloseReason): void;
107
+ private _enabledItems;
108
+ private _getFocusedItem;
109
+ private _getFocusedItemAnyLevel;
110
+ private _enabledItemsIn;
111
+ private _focusFirstEnabled;
112
+ private _moveFocus;
113
+ private _onKeydown;
114
+ private _findSubmenuOwning;
115
+ private _onScroll;
116
+ private _onOutsidePointer;
117
+ private _onDescendantSelect;
118
+ private _stop;
119
+ private _onPanelShown;
120
+ /** Open the submenu of every top-level item carrying the `open` attribute. */
121
+ private _openPinnedSubmenus;
122
+ private _onMenuMouseOver;
123
+ private _onMenuClick;
124
+ private _selectItem;
125
+ render(): TemplateResult;
126
+ }
127
+ export default NileContextMenu;
128
+ declare global {
129
+ interface HTMLElementTagNameMap {
130
+ 'nile-context-menu': NileContextMenu;
131
+ }
132
+ }