@nativescript-community/ui-menu 1.3.0 → 1.4.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/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.4.0](https://github.com/nativescript-community/ui-native-components/compare/v1.3.0...v1.4.0) (2026-10-29)
7
+
8
+ ### Features
9
+
10
+ * **ui-menu:** add titled sections and toggle items, draw the Android menu as Material 3 Expressive ([9abfe49](https://github.com/nativescript-community/ui-native-components/commit/9abfe491312687765cf9a24736ea8d0bdbd8be57))
11
+
6
12
  ## [1.3.0](https://github.com/nativescript-community/ui-native-components/compare/v1.2.0...v1.3.0) (2026-10-29)
7
13
 
8
14
  **Note:** Version bump only for package @nativescript-community/ui-menu
package/index-common.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { FormattedString, ImageSource, View } from '@nativescript/core';
2
2
  /**
3
3
  * An entry of a menu.
4
- * Use `{ separator: true }` to start a new section (a divider on Android, an inline group on iOS).
4
+ * Use `{ separator: true, title?: string }` to start a new section, with an optional title above it (a segment on Android, an inline group on iOS).
5
5
  */
6
6
  export interface MenuItem {
7
7
  /** returned when the item is selected */
@@ -11,14 +11,16 @@ export interface MenuItem {
11
11
  subtitle?: string;
12
12
  /** `sys://name` (SF Symbol, iOS), `res://name` or a file path, an ImageSource, or a FormattedString (spans drawn into an icon) */
13
13
  icon?: string | ImageSource | FormattedString;
14
- /** shows a check mark when true */
14
+ /** shows a check mark when true (Android: a tonal row, for a single choice) */
15
15
  checked?: boolean;
16
+ /** a setting which is on or off: the state is `checked`, Android draws a switch instead of a tonal row */
17
+ toggle?: boolean;
16
18
  /** red item */
17
19
  destructive?: boolean;
18
20
  disabled?: boolean;
19
21
  /** a submenu */
20
22
  items?: MenuItem[];
21
- /** starts a new section */
23
+ /** starts a new section, `title` is the label of the section */
22
24
  separator?: boolean;
23
25
  /** called when the item is selected */
24
26
  onSelect?: (item: MenuItem) => void;
@@ -54,3 +56,11 @@ export interface ContextMenuOptions {
54
56
  * Splits the items on the separators
55
57
  */
56
58
  export declare function splitSections(items: MenuItem[]): MenuItem[][];
59
+ export interface MenuSection {
60
+ title?: string;
61
+ items: MenuItem[];
62
+ }
63
+ /**
64
+ * Splits the items on the separators, keeping the title of each section
65
+ */
66
+ export declare function getSections(items: MenuItem[]): MenuSection[];
package/index-common.js CHANGED
@@ -15,4 +15,25 @@ export function splitSections(items) {
15
15
  }
16
16
  return sections.filter((s) => s.length);
17
17
  }
18
+ /**
19
+ * Splits the items on the separators, keeping the title of each section
20
+ */
21
+ export function getSections(items) {
22
+ const sections = [{ items: [] }];
23
+ for (const item of items) {
24
+ if (item.separator) {
25
+ const current = sections[sections.length - 1];
26
+ if (!current.items.length && !current.title) {
27
+ current.title = item.title;
28
+ }
29
+ else if (current.items.length) {
30
+ sections.push({ title: item.title, items: [] });
31
+ }
32
+ }
33
+ else {
34
+ sections[sections.length - 1].items.push(item);
35
+ }
36
+ }
37
+ return sections.filter((section) => section.items.length);
38
+ }
18
39
  //# sourceMappingURL=index-common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-common.js","sourceRoot":"","sources":["../../src/ui-menu/index-common.ts"],"names":[],"mappings":"AAyDA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC3C,MAAM,QAAQ,GAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"index-common.js","sourceRoot":"","sources":["../../src/ui-menu/index-common.ts"],"names":[],"mappings":"AA2DA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC3C,MAAM,QAAQ,GAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IACzC,MAAM,QAAQ,GAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { FormattedString, ImageSource, View } from '@nativescript/core';
2
2
  import { ContextMenuOptions, MenuItem, ShowMenuOptions } from './index-common';
3
3
  export * from './index-common';
4
+ export { MenuColors, setMenuColors } from './menu-popup.android';
4
5
  export declare function showMenu(options: ShowMenuOptions): Promise<MenuItem | undefined>;
5
6
  export declare function setContextMenu(view: View, options: ContextMenuOptions): () => void;
6
7
  /** icon of a menu / bar item as a drawable: `res://`, a file, an ImageSource or a FormattedString */
package/index.android.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { renderFormattedTextToImageSource } from '@nativescript-community/ui-core/formatted-text';
2
2
  import { FormattedString, GestureTypes, ImageSource, Label, Utils } from '@nativescript/core';
3
- import { splitSections } from './index-common';
3
+ import { showPopup } from './menu-popup.android';
4
4
  export * from './index-common';
5
- // Material 3 error color
6
- const DESTRUCTIVE_COLOR = android.graphics.Color.parseColor('#B3261D');
5
+ export { setMenuColors } from './menu-popup.android';
7
6
  function getIcon(icon) {
8
7
  if (!icon) {
9
8
  return null;
@@ -31,51 +30,6 @@ function getIcon(icon) {
31
30
  }
32
31
  return source?.android ? new android.graphics.drawable.BitmapDrawable(Utils.android.getApplicationContext().getResources(), source.android) : null;
33
32
  }
34
- function buildMenu(menu, items, registry, state) {
35
- splitSections(items).forEach((section, groupId) => {
36
- section.forEach((item) => {
37
- const id = state.nextId++;
38
- let title = item.title || '';
39
- if (item.destructive || item.subtitle) {
40
- // the subtitle is a smaller second line
41
- const text = item.subtitle ? `${title}\n${item.subtitle}` : title;
42
- const spannable = new android.text.SpannableString(text);
43
- if (item.destructive) {
44
- spannable.setSpan(new android.text.style.ForegroundColorSpan(DESTRUCTIVE_COLOR), 0, title.length, 0);
45
- }
46
- if (item.subtitle) {
47
- spannable.setSpan(new android.text.style.RelativeSizeSpan(0.8), title.length + 1, text.length, 0);
48
- spannable.setSpan(new android.text.style.ForegroundColorSpan(android.graphics.Color.GRAY), title.length + 1, text.length, 0);
49
- }
50
- title = spannable;
51
- }
52
- let menuItem;
53
- if (item.items?.length) {
54
- const subMenu = menu.addSubMenu(groupId, id, id, title);
55
- buildMenu(subMenu, item.items, registry, state);
56
- menuItem = subMenu.getItem();
57
- }
58
- else {
59
- menuItem = menu.add(groupId, id, id, title);
60
- registry.set(id, item);
61
- }
62
- const icon = getIcon(item.icon);
63
- if (icon) {
64
- menuItem.setIcon(icon);
65
- }
66
- if (item.checked !== undefined) {
67
- menuItem.setCheckable(true);
68
- menuItem.setChecked(!!item.checked);
69
- }
70
- menuItem.setEnabled(!item.disabled);
71
- });
72
- });
73
- try {
74
- // dividers between the sections (API 28)
75
- menu.setGroupDividerEnabled(true);
76
- }
77
- catch (error) { }
78
- }
79
33
  export function showMenu(options) {
80
34
  return new Promise((resolve) => {
81
35
  const anchor = options.anchor?.nativeViewProtected;
@@ -83,53 +37,18 @@ export function showMenu(options) {
83
37
  resolve(undefined);
84
38
  return;
85
39
  }
86
- const PopupMenu = global.androidx.appcompat.widget.PopupMenu;
87
- const placement = options.placement;
88
- let popupAnchor = anchor;
89
- let helper;
90
- if (placement?.vertical === 'above') {
91
- // the popup always opens below its anchor: a helper view above the anchor, as high as the menu, makes it open above
92
- const root = anchor.getRootView();
93
- const location = Array.create('int', 2);
94
- anchor.getLocationInWindow(location);
95
- const itemCount = options.items.filter((i) => !i.separator).length;
96
- const estimatedHeight = Utils.layout.toDevicePixels(itemCount * 48 + 16);
97
- helper = new android.view.View(anchor.getContext());
98
- root.addView(helper, new android.widget.FrameLayout.LayoutParams(anchor.getWidth(), 1));
99
- helper.setX(location[0]);
100
- helper.setY(Math.max(0, location[1] - estimatedHeight));
101
- popupAnchor = helper;
102
- }
103
- const gravity = placement?.horizontal === 'end' ? android.view.Gravity.END : android.view.Gravity.START;
104
- // the popup grows from the corner of the anchor it is attached to (a style per corner)
105
- const context = anchor.getContext();
106
- const styleName = `NSMenuPopup_${placement?.horizontal === 'end' ? 'end' : 'start'}_${placement?.vertical === 'above' ? 'above' : 'below'}`;
107
- const popup = new PopupMenu(context, popupAnchor, gravity, 0, context.getResources().getIdentifier(styleName, 'style', context.getPackageName()));
108
- const registry = new Map();
109
- buildMenu(popup.getMenu(), options.items, registry, { nextId: 1 });
110
- try {
111
- popup.setForceShowIcon(true);
112
- }
113
- catch (error) { }
114
- popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener({
115
- onMenuItemClick(menuItem) {
116
- const item = registry.get(menuItem.getItemId());
117
- if (!item) {
118
- return false;
119
- }
40
+ showPopup({
41
+ anchor,
42
+ items: options.items,
43
+ placement: options.placement,
44
+ getIcon,
45
+ onSelect: (item) => {
120
46
  resolve(item);
121
47
  item.onSelect?.(item);
122
- return true;
123
- }
124
- }));
125
- // resolving twice is harmless: the click is reported before the dismissal
126
- popup.setOnDismissListener(new PopupMenu.OnDismissListener({
127
- onDismiss: () => {
128
- helper?.getParent()?.removeView(helper);
129
- resolve(undefined);
130
- }
131
- }));
132
- popup.show();
48
+ },
49
+ // resolving twice is harmless: the click is reported before the dismissal
50
+ onDismiss: () => resolve(undefined)
51
+ });
133
52
  });
134
53
  }
135
54
  export function setContextMenu(view, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../src/ui-menu/index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../src/ui-menu/index.android.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -8,6 +8,23 @@ import { FormattedString, ImageSource, View } from '@nativescript/core';
8
8
  import { ContextMenuOptions, MenuItem, ShowMenuOptions } from './index-common';
9
9
  export * from './index-common';
10
10
 
11
+ /** colors of the Android menu: the ones of the Material theme, unless set here (the app theme can differ from the activity theme) */
12
+ export interface MenuColors {
13
+ surface: string;
14
+ row: string;
15
+ selected: string;
16
+ onSelected: string;
17
+ onSurface: string;
18
+ onSurfaceVariant: string;
19
+ accent: string;
20
+ onAccent: string;
21
+ outline: string;
22
+ error: string;
23
+ }
24
+
25
+ /** Android only: sets the colors of the menus */
26
+ export function setMenuColors(colors: Partial<MenuColors>): void;
27
+
11
28
  /**
12
29
  * Shows a menu attached to the `anchor` view.
13
30
  * @returns the selected item, or undefined when the menu is dismissed
package/index.ios.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { renderFormattedTextToImageSource } from '@nativescript-community/ui-core/formatted-text';
2
2
  import { Application, FormattedString, ImageSource, Label, Utils } from '@nativescript/core';
3
- import { splitSections } from './index-common';
3
+ import { getSections } from './index-common';
4
4
  export * from './index-common';
5
5
  function getIcon(icon) {
6
6
  if (!icon) {
@@ -22,8 +22,8 @@ function getIcon(icon) {
22
22
  * Native UIMenu: the sections are inline groups, the submenus are nested menus
23
23
  */
24
24
  function buildMenu(title, items, onPick) {
25
- const sections = splitSections(items).map((section) => {
26
- const elements = section.map((item) => {
25
+ const sections = getSections(items).map((section) => {
26
+ const elements = section.items.map((item) => {
27
27
  const image = getIcon(item.icon);
28
28
  let attributes = 0;
29
29
  if (item.destructive) {
@@ -34,7 +34,11 @@ function buildMenu(title, items, onPick) {
34
34
  }
35
35
  if (item.items?.length) {
36
36
  const submenu = buildMenu(item.title || '', item.items, onPick);
37
- return UIMenu.menuWithTitleImageIdentifierOptionsChildren(item.title || '', image, null, item.destructive ? 2 /* UIMenuOptions.Destructive */ : 0, submenu.children);
37
+ const nested = UIMenu.menuWithTitleImageIdentifierOptionsChildren(item.title || '', image, null, item.destructive ? 2 /* UIMenuOptions.Destructive */ : 0, submenu.children);
38
+ if (item.subtitle) {
39
+ nested.subtitle = item.subtitle;
40
+ }
41
+ return nested;
38
42
  }
39
43
  const action = UIAction.actionWithTitleImageIdentifierHandler(item.title || '', image, null, () => onPick(item));
40
44
  action.attributes = attributes;
@@ -46,7 +50,7 @@ function buildMenu(title, items, onPick) {
46
50
  }
47
51
  return action;
48
52
  });
49
- return UIMenu.menuWithTitleImageIdentifierOptionsChildren('', null, null, 1 /* UIMenuOptions.DisplayInline */, elements);
53
+ return UIMenu.menuWithTitleImageIdentifierOptionsChildren(section.title || '', null, null, 1 /* UIMenuOptions.DisplayInline */, elements);
50
54
  });
51
55
  return UIMenu.menuWithTitleChildren(title || '', sections);
52
56
  }
package/index.ios.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../src/ui-menu/index.ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../src/ui-menu/index.ios.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { MenuItem, MenuPlacement } from './index-common';
2
+ /** colors of the menu: the ones of the Material theme, unless set with `setMenuColors` */
3
+ export interface MenuColors {
4
+ /** the container of the menu */
5
+ surface: string;
6
+ /** a row */
7
+ row: string;
8
+ /** the row of a single choice which is selected */
9
+ selected: string;
10
+ onSelected: string;
11
+ onSurface: string;
12
+ onSurfaceVariant: string;
13
+ /** the switch of a toggle which is on */
14
+ accent: string;
15
+ onAccent: string;
16
+ outline: string;
17
+ error: string;
18
+ }
19
+ /** sets the colors of the menus (the app theme can differ from the Material theme of the activity) */
20
+ export declare function setMenuColors(colors: Partial<MenuColors>): void;
21
+ export interface PopupOptions {
22
+ anchor: android.view.View;
23
+ items: MenuItem[];
24
+ placement?: MenuPlacement;
25
+ getIcon: (icon: MenuItem['icon']) => android.graphics.drawable.Drawable;
26
+ onSelect: (item: MenuItem) => void;
27
+ onDismiss: () => void;
28
+ }
29
+ /**
30
+ * A Material 3 Expressive menu: a 28dp container, each section is a segment of 48dp rows (20dp outer corners, 6dp inner ones, 2dp between rows) under a label.
31
+ * A single choice is a tonal row with a trailing check, a toggle has a switch, a submenu replaces the content.
32
+ */
33
+ export declare function showPopup({ anchor, items, placement, getIcon, onSelect, onDismiss }: PopupOptions): void;
@@ -0,0 +1,256 @@
1
+ import { Utils } from '@nativescript/core';
2
+ import { getSections } from './index-common';
3
+ let customColors;
4
+ /** sets the colors of the menus (the app theme can differ from the Material theme of the activity) */
5
+ export function setMenuColors(colors) {
6
+ customColors = colors;
7
+ }
8
+ const THEME_ATTRIBUTES = {
9
+ surface: ['colorSurfaceContainer', '#ECEFF9'],
10
+ row: ['colorSurfaceContainerLow', '#F5F7FF'],
11
+ selected: ['colorPrimaryContainer', '#D8E2FF'],
12
+ onSelected: ['colorOnPrimaryContainer', '#001A41'],
13
+ onSurface: ['colorOnSurface', '#1A1B20'],
14
+ onSurfaceVariant: ['colorOnSurfaceVariant', '#44474F'],
15
+ accent: ['colorPrimary', '#475D92'],
16
+ onAccent: ['colorOnPrimary', '#FFFFFF'],
17
+ outline: ['colorOutline', '#74777F'],
18
+ error: ['colorError', '#BA1A1A']
19
+ };
20
+ function resolveColors(context) {
21
+ const result = {};
22
+ Object.keys(THEME_ATTRIBUTES).forEach((key) => {
23
+ const [attribute, fallback] = THEME_ATTRIBUTES[key];
24
+ let color = customColors?.[key];
25
+ if (color) {
26
+ result[key] = android.graphics.Color.parseColor(color);
27
+ return;
28
+ }
29
+ const identifier = context.getResources().getIdentifier(attribute, 'attr', context.getPackageName());
30
+ result[key] =
31
+ identifier > 0 ? com.google.android.material.color.MaterialColors.getColor(context, identifier, android.graphics.Color.parseColor(fallback)) : android.graphics.Color.parseColor(fallback);
32
+ });
33
+ return result;
34
+ }
35
+ const dp = (value) => Math.round(Utils.layout.toDevicePixels(value));
36
+ const OUTER_RADIUS = 20;
37
+ const INNER_RADIUS = 6;
38
+ const CONTAINER_RADIUS = 28;
39
+ const ROW_HEIGHT = 48;
40
+ function roundedDrawable(color, radii, strokeColor, strokeWidth) {
41
+ const drawable = new android.graphics.drawable.GradientDrawable();
42
+ drawable.setColor(color);
43
+ const values = Array.create('float', 8);
44
+ for (let index = 0; index < 4; index++) {
45
+ values[index * 2] = dp(radii[index]);
46
+ values[index * 2 + 1] = dp(radii[index]);
47
+ }
48
+ drawable.setCornerRadii(values);
49
+ if (strokeColor !== undefined) {
50
+ drawable.setStroke(dp(strokeWidth), strokeColor);
51
+ }
52
+ return drawable;
53
+ }
54
+ function resourceDrawable(context, name, color) {
55
+ const identifier = context.getResources().getIdentifier(name, 'drawable', context.getPackageName());
56
+ const drawable = androidx.appcompat.content.res.AppCompatResources.getDrawable(context, identifier).mutate();
57
+ drawable.setTint(color);
58
+ return drawable;
59
+ }
60
+ function withAlpha(color, alpha) {
61
+ return android.graphics.Color.argb(Math.round(255 * alpha), android.graphics.Color.red(color), android.graphics.Color.green(color), android.graphics.Color.blue(color));
62
+ }
63
+ function createIcon(context, drawable, size) {
64
+ const view = new android.widget.ImageView(context);
65
+ view.setImageDrawable(drawable);
66
+ view.setScaleType(android.widget.ImageView.ScaleType.FIT_CENTER);
67
+ view.setLayoutParams(new android.widget.LinearLayout.LayoutParams(dp(size), dp(size)));
68
+ return view;
69
+ }
70
+ /** a small switch: the state of a toggle item */
71
+ function createSwitch(context, on, colors) {
72
+ const track = new android.widget.FrameLayout(context);
73
+ track.setLayoutParams(new android.widget.LinearLayout.LayoutParams(dp(40), dp(24)));
74
+ track.setBackground(on ? roundedDrawable(colors.accent, [12, 12, 12, 12]) : roundedDrawable(android.graphics.Color.TRANSPARENT, [12, 12, 12, 12], colors.outline, 2));
75
+ const thumbSize = on ? 16 : 12;
76
+ const thumb = new android.view.View(context);
77
+ const params = new android.widget.FrameLayout.LayoutParams(dp(thumbSize), dp(thumbSize));
78
+ params.gravity = (on ? android.view.Gravity.END : android.view.Gravity.START) | android.view.Gravity.CENTER_VERTICAL;
79
+ params.setMargins(dp(on ? 0 : 6), 0, dp(on ? 4 : 0), 0);
80
+ thumb.setLayoutParams(params);
81
+ const thumbBackground = new android.graphics.drawable.GradientDrawable();
82
+ thumbBackground.setShape(android.graphics.drawable.GradientDrawable.OVAL);
83
+ thumbBackground.setColor(on ? colors.onAccent : colors.outline);
84
+ thumb.setBackground(thumbBackground);
85
+ track.addView(thumb);
86
+ return track;
87
+ }
88
+ function createLabel(context, text, color, first) {
89
+ const label = new android.widget.TextView(context);
90
+ label.setText(text);
91
+ label.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12);
92
+ label.setTextColor(color);
93
+ label.setTypeface(android.graphics.Typeface.create('sans-serif-medium', android.graphics.Typeface.NORMAL));
94
+ label.setPadding(dp(12), dp(first ? 8 : 12), dp(12), dp(6));
95
+ return label;
96
+ }
97
+ function createRow(context, { item, position, count, colors, onTap, leadingBack }, getIcon) {
98
+ const selected = !!item.checked && !item.toggle;
99
+ const first = position === 0;
100
+ const last = position === count - 1;
101
+ const radii = [first ? OUTER_RADIUS : INNER_RADIUS, first ? OUTER_RADIUS : INNER_RADIUS, last ? OUTER_RADIUS : INNER_RADIUS, last ? OUTER_RADIUS : INNER_RADIUS];
102
+ const contentColor = item.destructive ? colors.error : selected ? colors.onSelected : colors.onSurface;
103
+ const row = new android.widget.LinearLayout(context);
104
+ row.setOrientation(android.widget.LinearLayout.HORIZONTAL);
105
+ row.setGravity(android.view.Gravity.CENTER_VERTICAL);
106
+ row.setMinimumHeight(dp(ROW_HEIGHT));
107
+ row.setPadding(dp(16), 0, dp(16), 0);
108
+ const background = roundedDrawable(selected ? colors.selected : colors.row, radii);
109
+ const mask = roundedDrawable(android.graphics.Color.WHITE, radii);
110
+ row.setBackground(new android.graphics.drawable.RippleDrawable(android.content.res.ColorStateList.valueOf(withAlpha(contentColor, 0.12)), background, mask));
111
+ const params = new android.widget.LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
112
+ params.setMargins(0, 0, 0, last ? 0 : dp(2));
113
+ row.setLayoutParams(params);
114
+ if (leadingBack) {
115
+ const back = createIcon(context, resourceDrawable(context, 'ns_menu_chevron', contentColor), 20);
116
+ back.setRotation(180);
117
+ back.getLayoutParams().setMargins(0, 0, dp(12), 0);
118
+ row.addView(back);
119
+ }
120
+ else {
121
+ const icon = item.icon ? getIcon(item.icon) : null;
122
+ if (icon) {
123
+ if (typeof item.icon === 'string') {
124
+ icon.mutate().setTint(contentColor);
125
+ }
126
+ const view = createIcon(context, icon, 20);
127
+ view.getLayoutParams().setMargins(0, 0, dp(12), 0);
128
+ row.addView(view);
129
+ }
130
+ }
131
+ const text = new android.widget.TextView(context);
132
+ text.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 16);
133
+ text.setTextColor(contentColor);
134
+ text.setMaxLines(item.subtitle ? 2 : 1);
135
+ text.setEllipsize(android.text.TextUtils.TruncateAt.END);
136
+ const title = item.title || '';
137
+ if (item.subtitle) {
138
+ const spannable = new android.text.SpannableString(`${title}\n${item.subtitle}`);
139
+ spannable.setSpan(new android.text.style.RelativeSizeSpan(0.8), title.length + 1, spannable.length(), 0);
140
+ spannable.setSpan(new android.text.style.ForegroundColorSpan(colors.onSurfaceVariant), title.length + 1, spannable.length(), 0);
141
+ text.setText(spannable);
142
+ }
143
+ else {
144
+ text.setText(title);
145
+ }
146
+ text.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1));
147
+ row.addView(text);
148
+ let trailing;
149
+ if (item.items?.length) {
150
+ trailing = createIcon(context, resourceDrawable(context, 'ns_menu_chevron', colors.onSurfaceVariant), 20);
151
+ }
152
+ else if (item.toggle) {
153
+ trailing = createSwitch(context, !!item.checked, colors);
154
+ }
155
+ else if (selected) {
156
+ trailing = createIcon(context, resourceDrawable(context, 'ns_menu_check', colors.onSelected), 20);
157
+ }
158
+ if (trailing) {
159
+ trailing.getLayoutParams().setMargins(dp(12), 0, 0, 0);
160
+ row.addView(trailing);
161
+ }
162
+ if (item.disabled) {
163
+ row.setAlpha(0.38);
164
+ }
165
+ else {
166
+ row.setOnClickListener(new android.view.View.OnClickListener({ onClick: onTap }));
167
+ }
168
+ return row;
169
+ }
170
+ /**
171
+ * A Material 3 Expressive menu: a 28dp container, each section is a segment of 48dp rows (20dp outer corners, 6dp inner ones, 2dp between rows) under a label.
172
+ * A single choice is a tonal row with a trailing check, a toggle has a switch, a submenu replaces the content.
173
+ */
174
+ export function showPopup({ anchor, items, placement, getIcon, onSelect, onDismiss }) {
175
+ const context = anchor.getContext();
176
+ const colors = resolveColors(context);
177
+ const screen = context.getResources().getDisplayMetrics();
178
+ const margin = dp(8);
179
+ const content = new android.widget.LinearLayout(context);
180
+ content.setOrientation(android.widget.LinearLayout.VERTICAL);
181
+ content.setPadding(dp(6), dp(6), dp(6), dp(6));
182
+ const scroll = new android.widget.ScrollView(context);
183
+ scroll.setVerticalScrollBarEnabled(false);
184
+ scroll.setOverScrollMode(android.view.View.OVER_SCROLL_NEVER);
185
+ scroll.addView(content);
186
+ const popup = new android.widget.PopupWindow(scroll, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, true);
187
+ const containerBackground = roundedDrawable(colors.surface, [CONTAINER_RADIUS, CONTAINER_RADIUS, CONTAINER_RADIUS, CONTAINER_RADIUS]);
188
+ popup.setBackgroundDrawable(containerBackground);
189
+ popup.setElevation(dp(6));
190
+ popup.setOutsideTouchable(true);
191
+ const horizontal = placement?.horizontal === 'end' ? 'end' : 'start';
192
+ const maxWidth = Math.min(dp(280), screen.widthPixels - 2 * margin);
193
+ let anchorLocation;
194
+ const place = () => {
195
+ scroll.measure(android.view.View.MeasureSpec.makeMeasureSpec(maxWidth, android.view.View.MeasureSpec.AT_MOST), android.view.View.MeasureSpec.makeMeasureSpec(screen.heightPixels - 2 * margin, android.view.View.MeasureSpec.AT_MOST));
196
+ const width = Math.max(scroll.getMeasuredWidth(), dp(180));
197
+ const fullHeight = scroll.getMeasuredHeight();
198
+ const spaceBelow = screen.heightPixels - (anchorLocation[1] + anchor.getHeight()) - margin;
199
+ const spaceAbove = anchorLocation[1] - margin;
200
+ const above = placement?.vertical === 'above'
201
+ ? fullHeight <= spaceAbove || spaceAbove > spaceBelow
202
+ : placement?.vertical === 'below'
203
+ ? fullHeight > spaceBelow && spaceAbove > spaceBelow
204
+ : fullHeight > spaceBelow && spaceAbove > spaceBelow;
205
+ const height = Math.min(fullHeight, above ? spaceAbove : spaceBelow);
206
+ const x = Math.min(Math.max(margin, horizontal === 'end' ? anchorLocation[0] + anchor.getWidth() - width : anchorLocation[0]), screen.widthPixels - width - margin);
207
+ const y = above ? anchorLocation[1] - height : anchorLocation[1] + anchor.getHeight();
208
+ return { x, y, width, height, above };
209
+ };
210
+ const render = (entries, parent) => {
211
+ content.removeAllViews();
212
+ if (parent) {
213
+ content.addView(createRow(context, { item: { title: parent.title }, position: 0, count: 1, colors, onTap: parent.back, leadingBack: true }, getIcon));
214
+ }
215
+ getSections(entries).forEach((section, index) => {
216
+ if (section.title) {
217
+ content.addView(createLabel(context, section.title, colors.onSurfaceVariant, index === 0 && !parent));
218
+ }
219
+ else if (index > 0 || parent) {
220
+ const gap = new android.view.View(context);
221
+ gap.setLayoutParams(new android.widget.LinearLayout.LayoutParams(1, dp(6)));
222
+ content.addView(gap);
223
+ }
224
+ section.items.forEach((item, position) => {
225
+ content.addView(createRow(context, {
226
+ item,
227
+ position,
228
+ count: section.items.length,
229
+ colors,
230
+ onTap: () => {
231
+ if (item.items?.length) {
232
+ render(item.items, { title: item.title, back: () => render(entries, parent) });
233
+ return;
234
+ }
235
+ onSelect(item);
236
+ popup.dismiss();
237
+ }
238
+ }, getIcon));
239
+ });
240
+ });
241
+ };
242
+ render(items);
243
+ anchorLocation = Array.create('int', 2);
244
+ anchor.getLocationOnScreen(anchorLocation);
245
+ const { x, y, width, height, above } = place();
246
+ popup.setWidth(width);
247
+ popup.setHeight(height);
248
+ const resources = context.getResources();
249
+ const animation = resources.getIdentifier(`NSMenuAnimation_${horizontal}_${above ? 'above' : 'below'}`, 'style', context.getPackageName());
250
+ if (animation > 0) {
251
+ popup.setAnimationStyle(animation);
252
+ }
253
+ popup.setOnDismissListener(new android.widget.PopupWindow.OnDismissListener({ onDismiss }));
254
+ popup.showAtLocation(anchor.getRootView(), android.view.Gravity.NO_GRAVITY, x, y);
255
+ }
256
+ //# sourceMappingURL=menu-popup.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-popup.android.js","sourceRoot":"","sources":["../../src/ui-menu/menu-popup.android.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript-community/ui-menu",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Menus: Material PopupMenu on Android, native UIMenu (pull-down and context menus) on iOS.",
5
5
  "main": "./index",
6
6
  "sideEffects": false,
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "readmeFilename": "README.md",
46
46
  "dependencies": {
47
- "@nativescript-community/ui-core": "^1.3.0"
47
+ "@nativescript-community/ui-core": "^1.4.0"
48
48
  },
49
- "gitHead": "3c1825dacc0aee819565789a8786c654e6b75f1b"
49
+ "gitHead": "5f67a1d3de1b8deda1db634c9b5ff8d2e1604595"
50
50
  }
@@ -1,21 +1,35 @@
1
1
  {
2
2
  "uses": [
3
+ "android.content.res:ColorStateList",
3
4
  "android.content.res:Resources",
4
- "androidx.appcompat.content.res:AppCompatResources",
5
5
  "android.graphics.drawable:BitmapDrawable",
6
6
  "android.graphics.drawable:Drawable",
7
+ "android.graphics.drawable:GradientDrawable",
8
+ "android.graphics.drawable:RippleDrawable",
7
9
  "android.graphics:Color",
10
+ "android.graphics:Typeface",
8
11
  "android.text.style:ForegroundColorSpan",
9
12
  "android.text.style:RelativeSizeSpan",
10
13
  "android.text:SpannableString",
14
+ "android.text:TextUtils",
15
+ "android.util:TypedValue",
11
16
  "android.view:Gravity",
12
- "android.view:Menu",
13
- "android.view:MenuItem",
14
17
  "android.view:View",
18
+ "android.view:View.MeasureSpec",
19
+ "android.view:View.OnClickListener",
15
20
  "android.view:ViewGroup",
21
+ "android.view:ViewGroup.LayoutParams",
22
+ "android.widget:FrameLayout",
16
23
  "android.widget:FrameLayout.LayoutParams",
17
- "androidx.appcompat.widget:PopupMenu",
18
- "androidx.appcompat.widget:PopupMenu.OnDismissListener",
19
- "androidx.appcompat.widget:PopupMenu.OnMenuItemClickListener"
24
+ "android.widget:ImageView",
25
+ "android.widget:ImageView.ScaleType",
26
+ "android.widget:LinearLayout",
27
+ "android.widget:LinearLayout.LayoutParams",
28
+ "android.widget:PopupWindow",
29
+ "android.widget:PopupWindow.OnDismissListener",
30
+ "android.widget:ScrollView",
31
+ "android.widget:TextView",
32
+ "androidx.appcompat.content.res:AppCompatResources",
33
+ "com.google.android.material.color:MaterialColors"
20
34
  ]
21
35
  }
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="24dp"
4
+ android:height="24dp"
5
+ android:viewportWidth="24"
6
+ android:viewportHeight="24">
7
+ <path
8
+ android:fillColor="#FFFFFFFF"
9
+ android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
10
+ </vector>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="24dp"
4
+ android:height="24dp"
5
+ android:viewportWidth="24"
6
+ android:viewportHeight="24">
7
+ <path
8
+ android:fillColor="#FFFFFFFF"
9
+ android:pathData="M8.59,16.59L13.17,12 8.59,7.41 10,6l6,6 -6,6z" />
10
+ </vector>
@@ -1 +1 @@
1
- {"root":["../../src/ui-menu/index-common.ts","../../src/ui-menu/index.android.ts","../../src/ui-menu/index.d.ts","../../src/ui-menu/index.ios.ts","../../references.d.ts","../../tools/references.d.ts","../../src/references.d.ts"],"version":"5.8.3"}
1
+ {"root":["../../src/ui-menu/index-common.ts","../../src/ui-menu/index.android.ts","../../src/ui-menu/index.d.ts","../../src/ui-menu/index.ios.ts","../../src/ui-menu/menu-popup.android.ts","../../references.d.ts","../../tools/references.d.ts","../../src/references.d.ts"],"version":"5.8.3"}