@abpjs/theme-shared 3.0.0 → 3.2.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.
@@ -9,6 +9,8 @@
9
9
  *
10
10
  * @since 2.9.0 - Added RTL support for data-tables-filter
11
11
  *
12
+ * @since 3.2.0 - Added .datatable-scroll styles for ngx-datatable horizontal scroll fix
13
+ *
12
14
  * @example
13
15
  * ```tsx
14
16
  * // Option 1: Use with a style tag in your app
@@ -33,5 +35,5 @@
33
35
  * @since 2.9.0
34
36
  */
35
37
  export declare const BOOTSTRAP = "bootstrap-{{dir}}.min.css";
36
- export declare const DEFAULT_STYLES = "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n/* RTL support - @since 2.9.0 */\n[dir=rtl] .data-tables-filter {\n text-align: left;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar {\n height: 5px !important;\n width: 5px !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-track {\n background: #ddd;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\n background: #8a8686;\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n.color-white {\n color: #FFF !important;\n}\n\n.custom-checkbox > label {\n cursor: pointer;\n}\n\n/* <animations */\n\n.fade-in-top {\n animation: fadeInTop 0.2s ease-in-out;\n}\n\n.fade-out-top {\n animation: fadeOutTop 0.2s ease-in-out;\n}\n\n.abp-collapsed-height {\n -moz-transition: max-height linear 0.35s;\n -ms-transition: max-height linear 0.35s;\n -o-transition: max-height linear 0.35s;\n -webkit-transition: max-height linear 0.35s;\n overflow:hidden;\n transition:max-height 0.35s linear;\n height:auto;\n max-height: 0;\n}\n\n.abp-mh-25 {\n max-height: 25vh;\n}\n\n.abp-mh-50 {\n transition:max-height 0.65s linear;\n max-height: 50vh;\n}\n\n.abp-mh-75 {\n transition:max-height 0.85s linear;\n max-height: 75vh;\n}\n\n.abp-mh-100 {\n transition:max-height 1s linear;\n max-height: 100vh;\n}\n\n/* Sorting icon styles - @since 2.0.0 */\n[class^=\"sorting\"] {\n opacity: .3;\n cursor: pointer;\n}\n[class^=\"sorting\"]:before {\n right: 0.5rem;\n content: \"\u2191\";\n}\n[class^=\"sorting\"]:after {\n right: 0.5rem;\n content: \"\u2193\";\n}\n\n.sorting_desc {\n opacity: 1;\n}\n.sorting_desc:before {\n opacity: .3;\n}\n\n.sorting_asc {\n opacity: 1;\n}\n.sorting_asc:after {\n opacity: .3;\n}\n\n@keyframes fadeInTop {\n from {\n transform: translateY(-5px);\n opacity: 0;\n }\n\n to {\n transform: translateY(0px);\n opacity: 1;\n }\n}\n\n@keyframes fadeOutTop {\n to {\n transform: translateY(-5px);\n opacity: 0;\n }\n}\n\n/* </animations */\n\n/* Loader bar styles */\n.abp-loader-bar {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 3px;\n z-index: 9999;\n background-color: rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.abp-progress {\n height: 100%;\n background-color: #3182ce;\n transition: width 0.3s ease-out;\n}\n";
38
+ export declare const DEFAULT_STYLES = "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n/* RTL support - @since 2.9.0 */\n[dir=rtl] .data-tables-filter {\n text-align: left;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n/* ngx-datatable scroll fix - @since 3.2.0 */\n.datatable-scroll {\n margin-bottom: 5px !important;\n width: unset !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar {\n height: 5px !important;\n width: 5px !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-track {\n background: #ddd;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\n background: #8a8686;\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n.color-white {\n color: #FFF !important;\n}\n\n.custom-checkbox > label {\n cursor: pointer;\n}\n\n/* <animations */\n\n.fade-in-top {\n animation: fadeInTop 0.2s ease-in-out;\n}\n\n.fade-out-top {\n animation: fadeOutTop 0.2s ease-in-out;\n}\n\n.abp-collapsed-height {\n -moz-transition: max-height linear 0.35s;\n -ms-transition: max-height linear 0.35s;\n -o-transition: max-height linear 0.35s;\n -webkit-transition: max-height linear 0.35s;\n overflow:hidden;\n transition:max-height 0.35s linear;\n height:auto;\n max-height: 0;\n}\n\n.abp-mh-25 {\n max-height: 25vh;\n}\n\n.abp-mh-50 {\n transition:max-height 0.65s linear;\n max-height: 50vh;\n}\n\n.abp-mh-75 {\n transition:max-height 0.85s linear;\n max-height: 75vh;\n}\n\n.abp-mh-100 {\n transition:max-height 1s linear;\n max-height: 100vh;\n}\n\n/* Sorting icon styles - @since 2.0.0 */\n[class^=\"sorting\"] {\n opacity: .3;\n cursor: pointer;\n}\n[class^=\"sorting\"]:before {\n right: 0.5rem;\n content: \"\u2191\";\n}\n[class^=\"sorting\"]:after {\n right: 0.5rem;\n content: \"\u2193\";\n}\n\n.sorting_desc {\n opacity: 1;\n}\n.sorting_desc:before {\n opacity: .3;\n}\n\n.sorting_asc {\n opacity: 1;\n}\n.sorting_asc:after {\n opacity: .3;\n}\n\n@keyframes fadeInTop {\n from {\n transform: translateY(-5px);\n opacity: 0;\n }\n\n to {\n transform: translateY(0px);\n opacity: 1;\n }\n}\n\n@keyframes fadeOutTop {\n to {\n transform: translateY(-5px);\n opacity: 0;\n }\n}\n\n/* </animations */\n\n/* Loader bar styles */\n.abp-loader-bar {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 3px;\n z-index: 9999;\n background-color: rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.abp-progress {\n height: 100%;\n background-color: #3182ce;\n transition: width 0.3s ease-out;\n}\n";
37
39
  export default DEFAULT_STYLES;
@@ -44,6 +44,37 @@ export interface ErrorHandler {
44
44
  /** Clear the current error component */
45
45
  clearErrorComponent: () => void;
46
46
  }
47
+ /**
48
+ * Default error messages for common HTTP status codes.
49
+ */
50
+ export declare const DEFAULT_ERROR_MESSAGES: Record<number, string>;
51
+ /**
52
+ * Default error localizations with title and details.
53
+ * These are the localization keys used for error messages.
54
+ * @since 3.1.0
55
+ */
56
+ export declare const DEFAULT_ERROR_LOCALIZATIONS: {
57
+ readonly defaultError: {
58
+ readonly title: "AbpUi::DefaultErrorMessage";
59
+ readonly details: "AbpUi::DefaultErrorMessageDetail";
60
+ };
61
+ readonly defaultError401: {
62
+ readonly title: "AbpUi::DefaultErrorMessage401";
63
+ readonly details: "AbpUi::DefaultErrorMessage401Detail";
64
+ };
65
+ readonly defaultError403: {
66
+ readonly title: "AbpUi::DefaultErrorMessage403";
67
+ readonly details: "AbpUi::DefaultErrorMessage403Detail";
68
+ };
69
+ readonly defaultError404: {
70
+ readonly title: "AbpUi::DefaultErrorMessage404";
71
+ readonly details: "AbpUi::DefaultErrorMessage404Detail";
72
+ };
73
+ readonly defaultError500: {
74
+ readonly title: "AbpUi::DefaultErrorMessage500";
75
+ readonly details: "AbpUi::DefaultErrorMessage500Detail";
76
+ };
77
+ };
47
78
  export interface UseErrorHandlerOptions {
48
79
  /**
49
80
  * Custom navigate function. If not provided, navigation to login will be a no-op.
package/dist/index.d.ts CHANGED
@@ -2,11 +2,15 @@
2
2
  * @abpjs/theme-shared
3
3
  *
4
4
  * ABP Framework Theme Shared components for React.
5
- * Translated from @abp/ng.theme.shared v3.0.0
5
+ * Translated from @abp/ng.theme.shared v3.2.0
6
6
  *
7
7
  * This package provides shared UI components, services, and utilities
8
8
  * for theme/modal management in ABP Framework React applications.
9
9
  *
10
+ * Changes in v3.2.0:
11
+ * - Added .datatable-scroll CSS styles for ngx-datatable horizontal scroll fix
12
+ * - Dependency updates to @abp/ng.core v3.2.0
13
+ *
10
14
  * Changes in v3.0.0:
11
15
  * - Added NavItemsService (replaces nav-items utility functions)
12
16
  * - Added NavItem.id property (required unique identifier)
package/dist/index.js CHANGED
@@ -42,6 +42,8 @@ __export(index_exports, {
42
42
  Confirmation: () => Confirmation,
43
43
  ConfirmationDialog: () => ConfirmationDialog,
44
44
  ConfirmationProvider: () => ConfirmationProvider,
45
+ DEFAULT_ERROR_LOCALIZATIONS: () => DEFAULT_ERROR_LOCALIZATIONS,
46
+ DEFAULT_ERROR_MESSAGES: () => DEFAULT_ERROR_MESSAGES,
45
47
  DEFAULT_LAZY_STYLES: () => DEFAULT_LAZY_STYLES,
46
48
  DEFAULT_STYLES: () => DEFAULT_STYLES,
47
49
  ErrorComponent: () => ErrorComponent,
@@ -57,6 +59,7 @@ __export(index_exports, {
57
59
  ModalFooter: () => AbpModalFooter,
58
60
  ModalHeader: () => AbpModalHeader,
59
61
  ModalProvider: () => ModalProvider,
62
+ NavItem: () => NavItem,
60
63
  NavItemsService: () => NavItemsService,
61
64
  PASSWORD_SETTING_KEYS: () => PASSWORD_SETTING_KEYS,
62
65
  Profile: () => Profile,
@@ -115,6 +118,24 @@ var Confirmation;
115
118
  })(Status = Confirmation2.Status || (Confirmation2.Status = {}));
116
119
  })(Confirmation || (Confirmation = {}));
117
120
 
121
+ // src/models/nav-item.ts
122
+ var NavItem = class {
123
+ /**
124
+ * Create a new NavItem.
125
+ * @param props - Partial properties to initialize the nav item
126
+ * @since 3.1.0
127
+ */
128
+ constructor(props) {
129
+ this.id = props.id ?? "";
130
+ this.component = props.component;
131
+ this.html = props.html;
132
+ this.action = props.action;
133
+ this.order = props.order;
134
+ this.requiredPolicy = props.requiredPolicy;
135
+ this.visible = props.visible;
136
+ }
137
+ };
138
+
118
139
  // src/constants/styles.ts
119
140
  var BOOTSTRAP = "bootstrap-{{dir}}.min.css";
120
141
  var DEFAULT_STYLES = `
@@ -152,6 +173,12 @@ var DEFAULT_STYLES = `
152
173
  min-width: 215px;
153
174
  }
154
175
 
176
+ /* ngx-datatable scroll fix - @since 3.2.0 */
177
+ .datatable-scroll {
178
+ margin-bottom: 5px !important;
179
+ width: unset !important;
180
+ }
181
+
155
182
  .ui-table-scrollable-body::-webkit-scrollbar {
156
183
  height: 5px !important;
157
184
  width: 5px !important;
@@ -652,6 +679,28 @@ var DEFAULT_ERROR_MESSAGES = {
652
679
  500: "AbpUi::DefaultErrorMessage500",
653
680
  503: "AbpUi::DefaultErrorMessage503"
654
681
  };
682
+ var DEFAULT_ERROR_LOCALIZATIONS = {
683
+ defaultError: {
684
+ title: "AbpUi::DefaultErrorMessage",
685
+ details: "AbpUi::DefaultErrorMessageDetail"
686
+ },
687
+ defaultError401: {
688
+ title: "AbpUi::DefaultErrorMessage401",
689
+ details: "AbpUi::DefaultErrorMessage401Detail"
690
+ },
691
+ defaultError403: {
692
+ title: "AbpUi::DefaultErrorMessage403",
693
+ details: "AbpUi::DefaultErrorMessage403Detail"
694
+ },
695
+ defaultError404: {
696
+ title: "AbpUi::DefaultErrorMessage404",
697
+ details: "AbpUi::DefaultErrorMessage404Detail"
698
+ },
699
+ defaultError500: {
700
+ title: "AbpUi::DefaultErrorMessage500",
701
+ details: "AbpUi::DefaultErrorMessage500Detail"
702
+ }
703
+ };
655
704
  function useErrorHandler(options = {}) {
656
705
  const { navigate, loginPath = "/account/login" } = options;
657
706
  const confirmation = useConfirmation();
@@ -791,13 +840,14 @@ var _NavItemsService = class _NavItemsService {
791
840
  * Add one or more items.
792
841
  * Items are automatically sorted by order.
793
842
  *
794
- * @param items - Array of items to add
843
+ * @param newItems - Array of items to add
795
844
  * @since 3.0.0
845
+ * @since 3.1.0 - Renamed parameter from items to newItems
796
846
  */
797
- addItems(items) {
847
+ addItems(newItems) {
798
848
  const existingIds = new Set(this._items.map((item) => item.id));
799
- const newItems = items.filter((item) => !existingIds.has(item.id));
800
- this._items = [...this._items, ...newItems];
849
+ const itemsToAdd = newItems.filter((item) => !existingIds.has(item.id)).map((item) => item instanceof NavItem ? item : new NavItem(item));
850
+ this._items = [...this._items, ...itemsToAdd];
801
851
  this.notify();
802
852
  }
803
853
  /**
@@ -2545,6 +2595,8 @@ function getPasswordValidationRules(store) {
2545
2595
  Confirmation,
2546
2596
  ConfirmationDialog,
2547
2597
  ConfirmationProvider,
2598
+ DEFAULT_ERROR_LOCALIZATIONS,
2599
+ DEFAULT_ERROR_MESSAGES,
2548
2600
  DEFAULT_LAZY_STYLES,
2549
2601
  DEFAULT_STYLES,
2550
2602
  ErrorComponent,
@@ -2560,6 +2612,7 @@ function getPasswordValidationRules(store) {
2560
2612
  ModalFooter,
2561
2613
  ModalHeader,
2562
2614
  ModalProvider,
2615
+ NavItem,
2563
2616
  NavItemsService,
2564
2617
  PASSWORD_SETTING_KEYS,
2565
2618
  Profile,
package/dist/index.mjs CHANGED
@@ -9,6 +9,24 @@ var Confirmation;
9
9
  })(Status = Confirmation2.Status || (Confirmation2.Status = {}));
10
10
  })(Confirmation || (Confirmation = {}));
11
11
 
12
+ // src/models/nav-item.ts
13
+ var NavItem = class {
14
+ /**
15
+ * Create a new NavItem.
16
+ * @param props - Partial properties to initialize the nav item
17
+ * @since 3.1.0
18
+ */
19
+ constructor(props) {
20
+ this.id = props.id ?? "";
21
+ this.component = props.component;
22
+ this.html = props.html;
23
+ this.action = props.action;
24
+ this.order = props.order;
25
+ this.requiredPolicy = props.requiredPolicy;
26
+ this.visible = props.visible;
27
+ }
28
+ };
29
+
12
30
  // src/constants/styles.ts
13
31
  var BOOTSTRAP = "bootstrap-{{dir}}.min.css";
14
32
  var DEFAULT_STYLES = `
@@ -46,6 +64,12 @@ var DEFAULT_STYLES = `
46
64
  min-width: 215px;
47
65
  }
48
66
 
67
+ /* ngx-datatable scroll fix - @since 3.2.0 */
68
+ .datatable-scroll {
69
+ margin-bottom: 5px !important;
70
+ width: unset !important;
71
+ }
72
+
49
73
  .ui-table-scrollable-body::-webkit-scrollbar {
50
74
  height: 5px !important;
51
75
  width: 5px !important;
@@ -569,6 +593,28 @@ var DEFAULT_ERROR_MESSAGES = {
569
593
  500: "AbpUi::DefaultErrorMessage500",
570
594
  503: "AbpUi::DefaultErrorMessage503"
571
595
  };
596
+ var DEFAULT_ERROR_LOCALIZATIONS = {
597
+ defaultError: {
598
+ title: "AbpUi::DefaultErrorMessage",
599
+ details: "AbpUi::DefaultErrorMessageDetail"
600
+ },
601
+ defaultError401: {
602
+ title: "AbpUi::DefaultErrorMessage401",
603
+ details: "AbpUi::DefaultErrorMessage401Detail"
604
+ },
605
+ defaultError403: {
606
+ title: "AbpUi::DefaultErrorMessage403",
607
+ details: "AbpUi::DefaultErrorMessage403Detail"
608
+ },
609
+ defaultError404: {
610
+ title: "AbpUi::DefaultErrorMessage404",
611
+ details: "AbpUi::DefaultErrorMessage404Detail"
612
+ },
613
+ defaultError500: {
614
+ title: "AbpUi::DefaultErrorMessage500",
615
+ details: "AbpUi::DefaultErrorMessage500Detail"
616
+ }
617
+ };
572
618
  function useErrorHandler(options = {}) {
573
619
  const { navigate, loginPath = "/account/login" } = options;
574
620
  const confirmation = useConfirmation();
@@ -708,13 +754,14 @@ var _NavItemsService = class _NavItemsService {
708
754
  * Add one or more items.
709
755
  * Items are automatically sorted by order.
710
756
  *
711
- * @param items - Array of items to add
757
+ * @param newItems - Array of items to add
712
758
  * @since 3.0.0
759
+ * @since 3.1.0 - Renamed parameter from items to newItems
713
760
  */
714
- addItems(items) {
761
+ addItems(newItems) {
715
762
  const existingIds = new Set(this._items.map((item) => item.id));
716
- const newItems = items.filter((item) => !existingIds.has(item.id));
717
- this._items = [...this._items, ...newItems];
763
+ const itemsToAdd = newItems.filter((item) => !existingIds.has(item.id)).map((item) => item instanceof NavItem ? item : new NavItem(item));
764
+ this._items = [...this._items, ...itemsToAdd];
718
765
  this.notify();
719
766
  }
720
767
  /**
@@ -2507,6 +2554,8 @@ export {
2507
2554
  Confirmation,
2508
2555
  ConfirmationDialog,
2509
2556
  ConfirmationProvider,
2557
+ DEFAULT_ERROR_LOCALIZATIONS,
2558
+ DEFAULT_ERROR_MESSAGES,
2510
2559
  DEFAULT_LAZY_STYLES,
2511
2560
  DEFAULT_STYLES,
2512
2561
  ErrorComponent,
@@ -2522,6 +2571,7 @@ export {
2522
2571
  AbpModalFooter as ModalFooter,
2523
2572
  AbpModalHeader as ModalHeader,
2524
2573
  ModalProvider,
2574
+ NavItem,
2525
2575
  NavItemsService,
2526
2576
  PASSWORD_SETTING_KEYS,
2527
2577
  Profile,
@@ -1,15 +1,54 @@
1
1
  /**
2
2
  * Nav Item Model
3
- * Translated from @abp/ng.theme.shared/lib/models/nav-item.ts v3.0.0
3
+ * Translated from @abp/ng.theme.shared/lib/models/nav-item.ts v3.1.0
4
4
  *
5
5
  * @since 3.0.0 - Added id property, changed permission to requiredPolicy
6
+ * @since 3.1.0 - Changed from interface to class, added visible callback
6
7
  */
7
8
  import type { ComponentType } from 'react';
8
9
  /**
9
- * Navigation item configuration.
10
+ * Navigation item properties interface.
11
+ * @since 3.1.0
12
+ */
13
+ export interface NavItemProps {
14
+ /**
15
+ * Unique identifier for the nav item.
16
+ * @since 3.0.0
17
+ */
18
+ id: string | number;
19
+ /**
20
+ * React component to render for this nav item.
21
+ */
22
+ component?: ComponentType<any>;
23
+ /**
24
+ * Raw HTML string to render (use with caution for XSS).
25
+ */
26
+ html?: string;
27
+ /**
28
+ * Action to execute when the nav item is clicked.
29
+ */
30
+ action?: () => void;
31
+ /**
32
+ * Order for sorting nav items. Lower numbers appear first.
33
+ */
34
+ order?: number;
35
+ /**
36
+ * Required policy to show this nav item.
37
+ * @since 3.0.0 - Renamed from permission
38
+ */
39
+ requiredPolicy?: string;
40
+ /**
41
+ * Callback to determine visibility of the nav item.
42
+ * @since 3.1.0
43
+ */
44
+ visible?: () => boolean;
45
+ }
46
+ /**
47
+ * Navigation item class.
10
48
  * @since 3.0.0 - Added id property, changed permission to requiredPolicy
49
+ * @since 3.1.0 - Changed from interface to class, added visible callback
11
50
  */
12
- export interface NavItem {
51
+ export declare class NavItem implements NavItemProps {
13
52
  /**
14
53
  * Unique identifier for the nav item.
15
54
  * @since 3.0.0
@@ -36,4 +75,15 @@ export interface NavItem {
36
75
  * @since 3.0.0 - Renamed from permission
37
76
  */
38
77
  requiredPolicy?: string;
78
+ /**
79
+ * Callback to determine visibility of the nav item.
80
+ * @since 3.1.0
81
+ */
82
+ visible?: () => boolean;
83
+ /**
84
+ * Create a new NavItem.
85
+ * @param props - Partial properties to initialize the nav item
86
+ * @since 3.1.0
87
+ */
88
+ constructor(props: Partial<NavItemProps>);
39
89
  }
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Nav Items Service
3
- * Translated from @abp/ng.theme.shared/lib/services/nav-items.service.ts v3.0.0
3
+ * Translated from @abp/ng.theme.shared/lib/services/nav-items.service.ts v3.1.0
4
4
  *
5
5
  * Provides a service-based approach to managing navigation items,
6
6
  * replacing the utility functions approach from v2.9.0.
7
7
  *
8
8
  * @since 3.0.0
9
+ * @since 3.1.0 - Updated addItems parameter name to newItems for clarity
9
10
  */
10
- import type { NavItem } from '../models/nav-item';
11
+ import { NavItem, NavItemProps } from '../models/nav-item';
11
12
  /**
12
13
  * NavItemsService manages navigation items with reactive updates.
13
14
  * This is a singleton service that provides methods to add, remove, and patch nav items.
@@ -80,10 +81,11 @@ export declare class NavItemsService {
80
81
  * Add one or more items.
81
82
  * Items are automatically sorted by order.
82
83
  *
83
- * @param items - Array of items to add
84
+ * @param newItems - Array of items to add
84
85
  * @since 3.0.0
86
+ * @since 3.1.0 - Renamed parameter from items to newItems
85
87
  */
86
- addItems(items: NavItem[]): void;
88
+ addItems(newItems: (NavItem | NavItemProps)[]): void;
87
89
  /**
88
90
  * Remove an item by id.
89
91
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abpjs/theme-shared",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "ABP Framework Theme Shared components for React - translated from @abp/ng.theme.shared",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -27,10 +27,10 @@
27
27
  "next-themes": "^0.4.6",
28
28
  "react-hook-form": "^7.48.0",
29
29
  "react-icons": "^5.5.0",
30
- "@abpjs/core": "3.0.0"
30
+ "@abpjs/core": "3.2.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@abp/ng.theme.shared": "3.0.0",
33
+ "@abp/ng.theme.shared": "3.2.0",
34
34
  "@vitest/coverage-v8": "^1.6.0",
35
35
  "vitest": "^1.6.0"
36
36
  },