Skip to content

Commit c1801d4

Browse files
Changes
1 parent f7c0b70 commit c1801d4

12 files changed

Lines changed: 106 additions & 86 deletions

File tree

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: super_native_extensions_workspace
1+
name: super_native_extensions
22

33
environment:
44
sdk: '>=3.0.0 <4.0.0'

super_clipboard/example/pubspec.lock

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -280,16 +280,18 @@ packages:
280280
super_clipboard:
281281
dependency: "direct main"
282282
description:
283-
path: ".."
284-
relative: true
285-
source: path
283+
name: super_clipboard
284+
sha256: cdab725bac26655ebd189f4d202d694a8cbc1c21e0f0478ccd7829c71716f09b
285+
url: "https://pub.dev"
286+
source: hosted
286287
version: "0.8.18"
287288
super_native_extensions:
288-
dependency: "direct overridden"
289+
dependency: transitive
289290
description:
290-
path: "../../super_native_extensions"
291-
relative: true
292-
source: path
291+
name: super_native_extensions
292+
sha256: fa55d452d34b7112453afbb9fa4d13c0527ff201630d10d86546497179030544
293+
url: "https://pub.dev"
294+
source: hosted
293295
version: "0.8.18"
294296
term_glyph:
295297
dependency: transitive

super_context_menu/example/ios/Runner/AppDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import UIKit
22
import Flutter
33

4-
@UIApplicationMain
4+
@main
55
@objc class AppDelegate: FlutterAppDelegate {
66
override func application(
77
_ application: UIApplication,

super_context_menu/example/pubspec.lock

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ packages:
3737
dependency: transitive
3838
description:
3939
name: collection
40-
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
40+
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
4141
url: "https://pub.dev"
4242
source: hosted
43-
version: "1.18.0"
43+
version: "1.19.0"
4444
crypto:
4545
dependency: transitive
4646
description:
@@ -132,18 +132,18 @@ packages:
132132
dependency: transitive
133133
description:
134134
name: leak_tracker
135-
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
135+
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
136136
url: "https://pub.dev"
137137
source: hosted
138-
version: "10.0.4"
138+
version: "10.0.7"
139139
leak_tracker_flutter_testing:
140140
dependency: transitive
141141
description:
142142
name: leak_tracker_flutter_testing
143-
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
143+
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
144144
url: "https://pub.dev"
145145
source: hosted
146-
version: "3.0.3"
146+
version: "3.0.8"
147147
leak_tracker_testing:
148148
dependency: transitive
149149
description:
@@ -172,18 +172,18 @@ packages:
172172
dependency: transitive
173173
description:
174174
name: material_color_utilities
175-
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
175+
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
176176
url: "https://pub.dev"
177177
source: hosted
178-
version: "0.8.0"
178+
version: "0.11.1"
179179
meta:
180180
dependency: transitive
181181
description:
182182
name: meta
183-
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
183+
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
184184
url: "https://pub.dev"
185185
source: hosted
186-
version: "1.12.0"
186+
version: "1.15.0"
187187
path:
188188
dependency: transitive
189189
description:
@@ -212,7 +212,7 @@ packages:
212212
dependency: transitive
213213
description: flutter
214214
source: sdk
215-
version: "0.0.99"
215+
version: "0.0.0"
216216
source_span:
217217
dependency: transitive
218218
description:
@@ -233,10 +233,10 @@ packages:
233233
dependency: transitive
234234
description:
235235
name: stack_trace
236-
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
236+
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
237237
url: "https://pub.dev"
238238
source: hosted
239-
version: "1.11.1"
239+
version: "1.12.0"
240240
stream_channel:
241241
dependency: transitive
242242
description:
@@ -249,37 +249,41 @@ packages:
249249
dependency: transitive
250250
description:
251251
name: string_scanner
252-
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
252+
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
253253
url: "https://pub.dev"
254254
source: hosted
255-
version: "1.2.0"
255+
version: "1.3.0"
256256
super_clipboard:
257-
dependency: "direct overridden"
257+
dependency: transitive
258258
description:
259-
path: "../../super_clipboard"
260-
relative: true
261-
source: path
259+
name: super_clipboard
260+
sha256: c72d2ae8c3a66b20a104523add86b7c2813b1d4cced893a9764b84fb97ac8e2a
261+
url: "https://pub.dev"
262+
source: hosted
262263
version: "0.8.18"
263264
super_context_menu:
264265
dependency: "direct main"
265266
description:
266-
path: ".."
267-
relative: true
268-
source: path
267+
name: super_context_menu
268+
sha256: f261f4bbc191dc37548d0b9520203290504a9b1c08982aef5f4b12ac647f1188
269+
url: "https://pub.dev"
270+
source: hosted
269271
version: "0.8.18"
270272
super_drag_and_drop:
271273
dependency: "direct main"
272274
description:
273-
path: "../../super_drag_and_drop"
274-
relative: true
275-
source: path
275+
name: super_drag_and_drop
276+
sha256: "69ff42851493fae763c796012daa416ce1b6c93ff73cdb240d411cbdc378ece7"
277+
url: "https://pub.dev"
278+
source: hosted
276279
version: "0.8.18"
277280
super_native_extensions:
278-
dependency: "direct overridden"
281+
dependency: transitive
279282
description:
280-
path: "../../super_native_extensions"
281-
relative: true
282-
source: path
283+
name: super_native_extensions
284+
sha256: b03f19e54744b65940a7c2cb4f93abd4819b5355aa3464d7b3c9a013b6b76db1
285+
url: "https://pub.dev"
286+
source: hosted
283287
version: "0.8.18"
284288
term_glyph:
285289
dependency: transitive
@@ -293,18 +297,18 @@ packages:
293297
dependency: transitive
294298
description:
295299
name: test_api
296-
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
300+
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
297301
url: "https://pub.dev"
298302
source: hosted
299-
version: "0.7.0"
303+
version: "0.7.3"
300304
typed_data:
301305
dependency: transitive
302306
description:
303307
name: typed_data
304-
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
308+
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
305309
url: "https://pub.dev"
306310
source: hosted
307-
version: "1.3.2"
311+
version: "1.4.0"
308312
uuid:
309313
dependency: transitive
310314
description:
@@ -325,10 +329,10 @@ packages:
325329
dependency: transitive
326330
description:
327331
name: vm_service
328-
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
332+
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
329333
url: "https://pub.dev"
330334
source: hosted
331-
version: "14.2.1"
335+
version: "14.3.0"
332336
web:
333337
dependency: transitive
334338
description:
@@ -354,5 +358,5 @@ packages:
354358
source: hosted
355359
version: "1.1.1"
356360
sdks:
357-
dart: ">=3.3.0 <4.0.0"
361+
dart: ">=3.5.0 <4.0.0"
358362
flutter: ">=3.18.0-18.0.pre.54"

super_context_menu/lib/src/default_builder/desktop_menu_widget_builder.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart'
33
show Colors, Icons, CircularProgressIndicator;
44
import 'package:pixel_snap/widgets.dart';
55
import 'package:super_context_menu/src/default_builder/group_intrinsic_width.dart';
6+
import 'package:super_native_extensions/raw_menu.dart';
67

78
import '../menu_model.dart';
89
import '../scaffold/desktop/menu_widget_builder.dart';

super_context_menu/lib/src/default_builder/mobile_menu_widget_builder.dart

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ import 'dart:ui' as ui;
33
import 'package:collection/collection.dart';
44
import 'package:device_info_plus/device_info_plus.dart';
55
import 'package:flutter/foundation.dart';
6-
import 'package:flutter/material.dart'
7-
show Colors, Icons, CircularProgressIndicator, Scrollbar;
6+
import 'package:flutter/material.dart' show Colors, Icons, CircularProgressIndicator, Scrollbar;
87
import 'package:pixel_snap/widgets.dart';
8+
import 'package:super_context_menu/super_context_menu.dart';
9+
import 'package:super_native_extensions/raw_menu.dart';
910

1011
import '../menu_model.dart';
1112
import '../scaffold/mobile/menu_widget_builder.dart';
@@ -63,7 +64,7 @@ class DefaultMobileMenuTheme {
6364
case Brightness.light:
6465
return DefaultMobileMenuTheme(
6566
menuDecorationOutside: (bool collapsed) => BoxDecoration(
66-
borderRadius: BorderRadius.circular(8),
67+
borderRadius: BorderRadius.circular(20),
6768
boxShadow: [
6869
BoxShadow(
6970
color: Colors.black.withOpacity(collapsed ? 0 : 0.2),
@@ -77,7 +78,7 @@ class DefaultMobileMenuTheme {
7778
color: Colors.grey.shade100,
7879
),
7980
menuPreviewDecorationOutside: BoxDecoration(
80-
borderRadius: BorderRadius.circular(8),
81+
borderRadius: BorderRadius.circular(20),
8182
boxShadow: [
8283
BoxShadow(
8384
color: Colors.black.withOpacity(0.3),
@@ -157,8 +158,7 @@ class DefaultMobileMenuTheme {
157158
: const Color(0xFF333333).withOpacity(0.5),
158159
separatorColor: const Color(0xFF4C4F63),
159160
inactiveMenuVeilColor: (depth) =>
160-
const ui.Color.fromARGB(255, 35, 36, 45)
161-
.withOpacity(((depth * 0.6).clamp(0.0, 0.8))),
161+
const ui.Color.fromARGB(255, 35, 36, 45).withOpacity(((depth * 0.6).clamp(0.0, 0.8))),
162162
textStyleForItem: (info) => TextStyle(
163163
color: info.isDestructive
164164
? const ui.Color.fromARGB(255, 251, 116, 116)
@@ -169,8 +169,7 @@ class DefaultMobileMenuTheme {
169169
decoration: TextDecoration.none,
170170
),
171171
decorationForItem: (info) => BoxDecoration(
172-
color:
173-
info.isPressed ? const Color(0xFF4C4F63) : Colors.transparent,
172+
color: info.isPressed ? const Color(0xFF4C4F63) : Colors.transparent,
174173
border: info.isHeader && !info.isLast
175174
? const Border(
176175
bottom: BorderSide(
@@ -197,8 +196,7 @@ class DefaultMobileMenuWidgetBuilder extends MobileMenuWidgetBuilder {
197196
}
198197
}
199198

200-
static final DefaultMobileMenuWidgetBuilder instance =
201-
DefaultMobileMenuWidgetBuilder();
199+
static final DefaultMobileMenuWidgetBuilder instance = DefaultMobileMenuWidgetBuilder();
202200

203201
/// Allows overriding brightness for the menu UI.
204202
final Brightness? _brightness;
@@ -275,8 +273,7 @@ class DefaultMobileMenuWidgetBuilder extends MobileMenuWidgetBuilder {
275273
}
276274

277275
@override
278-
Widget buildMenu(
279-
BuildContext context, MobileMenuInfo menuInfo, Widget child) {
276+
Widget buildMenu(BuildContext context, MobileMenuInfo menuInfo, Widget child) {
280277
return child;
281278
}
282279

@@ -368,8 +365,7 @@ class DefaultMobileMenuWidgetBuilder extends MobileMenuWidgetBuilder {
368365
extension on Menu {
369366
bool hasImage() {
370367
return children.any(
371-
(element) =>
372-
element.image?.asWidget(const IconThemeData.fallback()) != null,
368+
(element) => element.image?.asWidget(const IconThemeData.fallback()) != null,
373369
);
374370
}
375371
}
@@ -437,6 +433,7 @@ class _MenuItem extends StatelessWidget {
437433
} else {
438434
final menuElementAttributes =
439435
element is MenuAction ? (element as MenuAction).attributes : null;
436+
final suffixIcon = element is MenuActionX ? (element as MenuActionX).suffixIcon : null;
440437

441438
return _MenuItemScaffold(
442439
theme: theme,
@@ -447,7 +444,7 @@ class _MenuItem extends StatelessWidget {
447444
isDestructive: menuElementAttributes?.destructive ?? false,
448445
isDisabled: menuElementAttributes?.disabled ?? false,
449446
),
450-
suffix: suffix,
447+
suffix: suffix ?? suffixIcon,
451448
element: element,
452449
menuInfo: menuInfo,
453450
child: Text(
@@ -475,8 +472,7 @@ class _MenuHeader extends StatelessWidget {
475472
Widget build(BuildContext context) {
476473
Widget? prefix;
477474
if (menuInfo.menu.image?.asWidget(const IconThemeData.fallback()) == null) {
478-
final parentPrefixWidth =
479-
(menuInfo.parentMenu?.hasImage() ?? false) ? 28.0 : 0.0;
475+
final parentPrefixWidth = (menuInfo.parentMenu?.hasImage() ?? false) ? 28.0 : 0.0;
480476
final thisPrefixWidth = menuInfo.menu.hasImage() ? 28.0 : 0.0;
481477

482478
prefix = AnimatedContainer(
@@ -511,8 +507,7 @@ class _MenuHeader extends StatelessWidget {
511507
return AnimatedDefaultTextStyle(
512508
duration: menuInfo.transitionDuration,
513509
style: DefaultTextStyle.of(context).style.copyWith(
514-
fontWeight:
515-
menuInfo.isCollapsed ? FontWeight.normal : FontWeight.bold,
510+
fontWeight: menuInfo.isCollapsed ? FontWeight.normal : FontWeight.bold,
516511
),
517512
child: Text(menuInfo.menu.title ?? ''),
518513
);
@@ -615,8 +610,7 @@ class _MenuItemScaffold extends StatelessWidget {
615610
prefix,
616611
Expanded(
617612
child: Padding(
618-
padding:
619-
const EdgeInsets.symmetric(vertical: 6, horizontal: 6),
613+
padding: const EdgeInsets.symmetric(vertical: 6, horizontal: 6),
620614
child: child,
621615
),
622616
),

0 commit comments

Comments
 (0)