design-system-next 2.11.11 → 2.11.17

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 (98) hide show
  1. package/dist/design-system-next.es.js +9372 -8159
  2. package/dist/design-system-next.es.js.gz +0 -0
  3. package/dist/design-system-next.umd.js +12 -12
  4. package/dist/design-system-next.umd.js.gz +0 -0
  5. package/dist/main.css +1 -1
  6. package/dist/main.css.gz +0 -0
  7. package/dist/package.json.d.ts +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/scripts/border-radius.ts +15 -15
  10. package/src/assets/scripts/colors.ts +134 -134
  11. package/src/assets/scripts/max-width.ts +11 -11
  12. package/src/assets/scripts/spacing.ts +23 -23
  13. package/src/assets/scripts/utilities.ts +15 -15
  14. package/src/assets/styles/tailwind.css +20 -0
  15. package/src/components/accordion/accordion.ts +43 -43
  16. package/src/components/accordion/use-accordion.ts +43 -43
  17. package/src/components/avatar/avatar.ts +64 -64
  18. package/src/components/badge/badge.ts +43 -43
  19. package/src/components/banner/banner.ts +20 -20
  20. package/src/components/button/button.ts +72 -72
  21. package/src/components/button/button.vue +15 -15
  22. package/src/components/calendar/calendar.ts +89 -89
  23. package/src/components/card/card.ts +52 -52
  24. package/src/components/checkbox/checkbox.ts +45 -45
  25. package/src/components/chips/chips.ts +95 -95
  26. package/src/components/collapsible/collapsible.ts +21 -21
  27. package/src/components/collapsible/collapsible.vue +27 -27
  28. package/src/components/date-picker/__tests__/date-picker.test.ts +112 -112
  29. package/src/components/date-picker/date-picker.ts +157 -157
  30. package/src/components/date-picker/date-range-picker/date-range-picker.ts +193 -0
  31. package/src/components/date-picker/date-range-picker/date-range-picker.vue +412 -0
  32. package/src/components/date-picker/date-range-picker/use-date-range-picker.ts +957 -0
  33. package/src/components/dropdown/__tests__/dropdown-fixes.spec.ts +106 -106
  34. package/src/components/dropdown/__tests__/dropdown-value-types.spec.ts +213 -213
  35. package/src/components/dropdown/fix-multi-number.ts +92 -92
  36. package/src/components/dropdown/use-dropdown.ts +488 -488
  37. package/src/components/empty-state/empty-state.ts +50 -50
  38. package/src/components/file-upload/file-upload.ts +87 -87
  39. package/src/components/floating-action/floating-action.ts +12 -12
  40. package/src/components/input/input-contact-number/input-contact-number.ts +83 -83
  41. package/src/components/input/input-email/input-email.vue +17 -17
  42. package/src/components/input/input-password/use-input-password.ts +19 -19
  43. package/src/components/input/input-search/input-search.vue +13 -13
  44. package/src/components/input/input-url/input-url.vue +20 -20
  45. package/src/components/input/input-username/input-username.vue +17 -17
  46. package/src/components/input/input.vue +72 -72
  47. package/src/components/list/ladderized-list/ladderized-list.ts +39 -39
  48. package/src/components/list/ladderized-list/use-ladderized-list.ts +92 -9
  49. package/src/components/list/list.ts +1 -1
  50. package/src/components/list/list.vue +95 -73
  51. package/src/components/list/use-list.ts +214 -77
  52. package/src/components/logo/logo.ts +43 -43
  53. package/src/components/logo/logo.vue +14 -14
  54. package/src/components/logo/use-logo.ts +41 -41
  55. package/src/components/lozenge/lozenge.ts +61 -61
  56. package/src/components/modal/modal.ts +45 -45
  57. package/src/components/progress-bar/progress-bar.ts +39 -39
  58. package/src/components/radio/radio.ts +42 -42
  59. package/src/components/select/select-ladderized/select-ladderized.ts +2 -0
  60. package/src/components/select/select-ladderized/select-ladderized.vue +2 -2
  61. package/src/components/select/select-ladderized/use-select-ladderized.ts +53 -3
  62. package/src/components/select/select-multiple/select-multiple.ts +1 -1
  63. package/src/components/select/select.ts +144 -144
  64. package/src/components/sidenav/sidenav.ts +173 -173
  65. package/src/components/sidepanel/sidepanel.ts +100 -100
  66. package/src/components/sidepanel/sidepanel.vue +55 -55
  67. package/src/components/sidepanel/stacking-sidepanel/stacking-sidepanel.ts +16 -16
  68. package/src/components/sidepanel/stacking-sidepanel/stacking-sidepanel.vue +39 -39
  69. package/src/components/slider/slider.ts +38 -38
  70. package/src/components/snackbar/snack/snack.ts +71 -71
  71. package/src/components/snackbar/use-snackbar.ts +34 -34
  72. package/src/components/status/status.ts +19 -19
  73. package/src/components/status/status.vue +13 -13
  74. package/src/components/stepper/step/step.ts +47 -47
  75. package/src/components/stepper/stepper.ts +47 -47
  76. package/src/components/stepper/stepper.vue +34 -34
  77. package/src/components/switch/switch.ts +42 -42
  78. package/src/components/table/table-actions/table-actions.ts +42 -42
  79. package/src/components/table/table-actions/table-actions.vue +40 -40
  80. package/src/components/table/table-chips-title/table-chips-title.ts +27 -27
  81. package/src/components/table/table-chips-title/table-chips-title.vue +32 -32
  82. package/src/components/table/table-chips-title/use-table-chips-title.ts +22 -22
  83. package/src/components/table/table-lozenge-title/table-lozenge-title.ts +23 -23
  84. package/src/components/table/table-lozenge-title/table-lozenge-title.vue +26 -26
  85. package/src/components/table/table-lozenge-title/use-table-lozenge-title.ts +21 -21
  86. package/src/components/table/table-pagination/table-pagination.ts +63 -63
  87. package/src/components/table/table-pagination/table-pagination.vue +72 -72
  88. package/src/components/table/table.ts +173 -173
  89. package/src/components/tabs/tabs.ts +43 -43
  90. package/src/components/tabs/use-tabs.ts +16 -2
  91. package/src/components/textarea/textarea.ts +72 -72
  92. package/src/components/textarea/textarea.vue +45 -45
  93. package/src/components/time-picker/time-picker.ts +69 -69
  94. package/src/components/tooltip/tooltip.ts +46 -46
  95. package/src/components/tooltip/use-tooltip.ts +13 -13
  96. package/src/examples/dropdown-number-multi-select.vue +76 -76
  97. package/src/stores/useSnackbarStore.ts +44 -44
  98. package/src/vite-env.d.ts +6 -0
@@ -1,144 +1,144 @@
1
- import type { PropType, ExtractPropTypes } from 'vue';
2
- import type { MenuListType } from '../list/list';
3
-
4
- export const definePropType = <T>(val: unknown): PropType<T> => val as PropType<T>;
5
-
6
- const GROUPED_ITEMS_BY_TYPES = ['A-Z', 'Z-A'] as const;
7
-
8
- const PLACEMENTS_TYPES = [
9
- 'auto',
10
- 'auto-start',
11
- 'auto-end',
12
- 'top',
13
- 'top-start',
14
- 'top-end',
15
- 'right',
16
- 'right-start',
17
- 'right-end',
18
- 'bottom',
19
- 'bottom-start',
20
- 'bottom-end',
21
- 'left',
22
- 'left-start',
23
- 'left-end',
24
- ] as const;
25
-
26
- const POPPER_STRATEGY_TYPES = ['fixed', 'absolute'] as const;
27
-
28
- export const selectPropTypes = {
29
- id: {
30
- type: String,
31
- required: true,
32
- default: 'select',
33
- },
34
- modelValue: {
35
- type: [String, Number, Object, Array] as PropType<
36
- string | number | Record<string, unknown> | (string | number | Record<string, unknown>)[]
37
- >,
38
- default: '',
39
- },
40
- options: {
41
- type: Array as PropType<MenuListType[] | string[] | Record<string, unknown>[]>,
42
- required: true,
43
- default: [],
44
- },
45
- groupItemsBy: {
46
- type: String as PropType<(typeof GROUPED_ITEMS_BY_TYPES)[number]>,
47
- validator: (value: (typeof GROUPED_ITEMS_BY_TYPES)[number] | undefined) => {
48
- return value === undefined || GROUPED_ITEMS_BY_TYPES.includes(value);
49
- },
50
- },
51
- textField: {
52
- type: String,
53
- default: 'text',
54
- description: 'Field name to use for display text when using dynamic object arrays',
55
- },
56
- valueField: {
57
- type: String,
58
- default: 'value',
59
- description: 'Field name to use for value when using dynamic object arrays',
60
- },
61
- placeholder: {
62
- type: String,
63
- },
64
- label: {
65
- type: String,
66
- default: '',
67
- },
68
- placement: {
69
- type: String as PropType<(typeof PLACEMENTS_TYPES)[number]>,
70
- validator: (value: (typeof PLACEMENTS_TYPES)[number]) => PLACEMENTS_TYPES.includes(value),
71
- default: 'bottom',
72
- },
73
- popperStrategy: {
74
- type: String,
75
- validator: (value: 'fixed' | 'absolute') => POPPER_STRATEGY_TYPES.includes(value),
76
- default: 'absolute',
77
- },
78
- popperWidth: {
79
- type: String,
80
- default: '100%',
81
- },
82
- width: {
83
- type: String,
84
- default: '100%',
85
- },
86
- wrapperPosition: {
87
- type: String,
88
- default: 'relative',
89
- },
90
- displayText: {
91
- type: String,
92
- default: '',
93
- },
94
- displayHelper: {
95
- type: Boolean,
96
- default: false,
97
- },
98
- helperIcon: {
99
- type: String,
100
- default: null,
101
- },
102
- helperText: {
103
- type: String,
104
- default: '',
105
- },
106
- active: {
107
- type: Boolean,
108
- default: false,
109
- },
110
- disabled: {
111
- type: Boolean,
112
- default: false,
113
- },
114
- error: {
115
- type: Boolean,
116
- default: false,
117
- },
118
- clearable: {
119
- type: Boolean,
120
- default: false,
121
- },
122
- searchable: {
123
- type: Boolean,
124
- default: false,
125
- },
126
- disabledLocalSearch: {
127
- type: Boolean,
128
- default: false,
129
- },
130
- };
131
-
132
- export const selectEmitTypes = {
133
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
134
- 'update:modelValue': (_value: unknown) => true,
135
-
136
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
137
- 'infinite-scroll-trigger': (_triggered: boolean) => true,
138
-
139
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
140
- 'search-string': (_search: string | number) => true,
141
- };
142
-
143
- export type SelectPropTypes = ExtractPropTypes<typeof selectPropTypes>;
144
- export type SelectEmitTypes = typeof selectEmitTypes;
1
+ import type { PropType, ExtractPropTypes } from 'vue';
2
+ import type { MenuListType } from '../list/list';
3
+
4
+ export const definePropType = <T>(val: unknown): PropType<T> => val as PropType<T>;
5
+
6
+ const GROUPED_ITEMS_BY_TYPES = ['A-Z', 'Z-A'] as const;
7
+
8
+ const PLACEMENTS_TYPES = [
9
+ 'auto',
10
+ 'auto-start',
11
+ 'auto-end',
12
+ 'top',
13
+ 'top-start',
14
+ 'top-end',
15
+ 'right',
16
+ 'right-start',
17
+ 'right-end',
18
+ 'bottom',
19
+ 'bottom-start',
20
+ 'bottom-end',
21
+ 'left',
22
+ 'left-start',
23
+ 'left-end',
24
+ ] as const;
25
+
26
+ const POPPER_STRATEGY_TYPES = ['fixed', 'absolute'] as const;
27
+
28
+ export const selectPropTypes = {
29
+ id: {
30
+ type: String,
31
+ required: true,
32
+ default: 'select',
33
+ },
34
+ modelValue: {
35
+ type: [String, Number, Object, Array] as PropType<
36
+ string | number | Record<string, unknown> | (string | number | Record<string, unknown>)[]
37
+ >,
38
+ default: '',
39
+ },
40
+ options: {
41
+ type: Array as PropType<MenuListType[] | string[] | Record<string, unknown>[]>,
42
+ required: true,
43
+ default: [],
44
+ },
45
+ groupItemsBy: {
46
+ type: String as PropType<(typeof GROUPED_ITEMS_BY_TYPES)[number]>,
47
+ validator: (value: (typeof GROUPED_ITEMS_BY_TYPES)[number] | undefined) => {
48
+ return value === undefined || GROUPED_ITEMS_BY_TYPES.includes(value);
49
+ },
50
+ },
51
+ textField: {
52
+ type: String,
53
+ default: 'text',
54
+ description: 'Field name to use for display text when using dynamic object arrays',
55
+ },
56
+ valueField: {
57
+ type: String,
58
+ default: 'value',
59
+ description: 'Field name to use for value when using dynamic object arrays',
60
+ },
61
+ placeholder: {
62
+ type: String,
63
+ },
64
+ label: {
65
+ type: String,
66
+ default: '',
67
+ },
68
+ placement: {
69
+ type: String as PropType<(typeof PLACEMENTS_TYPES)[number]>,
70
+ validator: (value: (typeof PLACEMENTS_TYPES)[number]) => PLACEMENTS_TYPES.includes(value),
71
+ default: 'bottom',
72
+ },
73
+ popperStrategy: {
74
+ type: String,
75
+ validator: (value: 'fixed' | 'absolute') => POPPER_STRATEGY_TYPES.includes(value),
76
+ default: 'absolute',
77
+ },
78
+ popperWidth: {
79
+ type: String,
80
+ default: '100%',
81
+ },
82
+ width: {
83
+ type: String,
84
+ default: '100%',
85
+ },
86
+ wrapperPosition: {
87
+ type: String,
88
+ default: 'relative',
89
+ },
90
+ displayText: {
91
+ type: String,
92
+ default: '',
93
+ },
94
+ displayHelper: {
95
+ type: Boolean,
96
+ default: false,
97
+ },
98
+ helperIcon: {
99
+ type: String,
100
+ default: null,
101
+ },
102
+ helperText: {
103
+ type: String,
104
+ default: '',
105
+ },
106
+ active: {
107
+ type: Boolean,
108
+ default: false,
109
+ },
110
+ disabled: {
111
+ type: Boolean,
112
+ default: false,
113
+ },
114
+ error: {
115
+ type: Boolean,
116
+ default: false,
117
+ },
118
+ clearable: {
119
+ type: Boolean,
120
+ default: false,
121
+ },
122
+ searchable: {
123
+ type: Boolean,
124
+ default: false,
125
+ },
126
+ disabledLocalSearch: {
127
+ type: Boolean,
128
+ default: false,
129
+ },
130
+ };
131
+
132
+ export const selectEmitTypes = {
133
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
134
+ 'update:modelValue': (_value: unknown) => true,
135
+
136
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
137
+ 'infinite-scroll-trigger': (_triggered: boolean) => true,
138
+
139
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
140
+ 'search-string': (_search: string | number) => true,
141
+ };
142
+
143
+ export type SelectPropTypes = ExtractPropTypes<typeof selectPropTypes>;
144
+ export type SelectEmitTypes = typeof selectEmitTypes;
@@ -1,173 +1,173 @@
1
- import type { PropType, ExtractPropTypes } from 'vue';
2
-
3
- type QuickAction = {
4
- menuHeading: string;
5
- items: QuickActionItem[];
6
- };
7
-
8
-
9
- type QuickActionItem = {
10
- title: string;
11
- description: string;
12
- icon: string;
13
- iconBgColor: string;
14
- redirect: Redirect;
15
- hidden: boolean;
16
- };
17
-
18
- export type NavLinks = {
19
- top: { parentLinks: ParentLinkItem[] }[];
20
- bottom: { parentLinks: ParentLinkItem[] }[];
21
- };
22
-
23
- export type NavAPILinks = {
24
- top: { parentLinks: NavItem[] }[];
25
- bottom: { parentLinks: NavItem[] }[];
26
- };
27
-
28
- export type ParentLinkItem = {
29
- title: string;
30
- icon: string;
31
- link?: string;
32
- redirect?: Redirect;
33
- menuLinks: MenuLink[];
34
- submenuLinks?: SubmenuLink[];
35
- hidden?: boolean;
36
- };
37
-
38
- type MenuLink = {
39
- menuHeading: string;
40
- items: MenuLinkItem[] | ParentLinkItem[];
41
- };
42
-
43
- type MenuLinkItem = {
44
- title: string;
45
- hidden: boolean;
46
- redirect: Redirect;
47
- submenuLinks: SubmenuLink[];
48
- };
49
-
50
- type SubmenuLink = {
51
- subMenuHeading: string;
52
- items: SubmenuLinkItem[] | ParentLinkItem[];
53
- };
54
-
55
- type SubmenuLinkItem = {
56
- title: string;
57
- hidden: boolean;
58
- redirect: Redirect;
59
- };
60
-
61
- type Redirect = {
62
- openInNewTab: boolean;
63
- isAbsoluteURL: boolean;
64
- link: string;
65
- };
66
-
67
- type UserMenu = {
68
- name: string;
69
- email: string;
70
- profileImage: string;
71
- items: UserMenuItem[];
72
- };
73
-
74
- type UserMenuItem = {
75
- title: string;
76
- icon: string;
77
- hidden: boolean;
78
- redirect: Redirect;
79
- };
80
- export interface NavItem {
81
- groupId: string;
82
- label: string;
83
- icon?: string | null;
84
- url?: string | null;
85
- isNewTab?: boolean;
86
- children?: NavItem[] | null;
87
- groupName?: string | null;
88
- hidden?: boolean;
89
- }
90
-
91
- export interface MappedNavItem {
92
- title: string;
93
- icon?: string;
94
- redirect?: {
95
- openInNewTab: boolean;
96
- isAbsoluteURL: boolean;
97
- link: string;
98
- };
99
- menuLinks?: {
100
- menuHeading: string;
101
- items: MappedNavItem[];
102
- }[];
103
- submenuLinks?: {
104
- subMenuHeading: string;
105
- items: MappedNavItem[];
106
- }[];
107
- }
108
-
109
- export const sidenavPropTypes = {
110
- quickActions: {
111
- type: Array as PropType<QuickAction[]>,
112
- validator: (value: unknown) => Array.isArray(value),
113
- default: () => [],
114
- },
115
- hasSearch: {
116
- type: Boolean,
117
- validator: (value: unknown) => typeof value === 'boolean',
118
- default: false,
119
- },
120
- activeNav: {
121
- type: Object as PropType<{ parentNav: string; menu: string; submenu: string }>,
122
- validator: (value: unknown) => typeof value === 'object',
123
- default: () => ({ parentNav: '', menu: '', submenu: '' }),
124
- },
125
- navLinks: {
126
- type: Object as PropType<NavLinks>,
127
- default: () => [],
128
- },
129
- notificationCount: {
130
- type: [String, Number],
131
- validator: (value: string | number) => {
132
- return typeof value === 'number' || typeof value === 'string';
133
- },
134
- default: '',
135
- },
136
- requestCount: {
137
- type: [String, Number],
138
- validator: (value: string | number) => {
139
- return typeof value === 'number' || typeof value === 'string';
140
- },
141
- default: '',
142
- },
143
- userMenu: {
144
- type: Object as PropType<UserMenu>,
145
- validator: (value: unknown) => typeof value === 'object',
146
- default: false,
147
- },
148
- isNotifActive: {
149
- type: Boolean,
150
- validator: (value: unknown) => typeof value === 'boolean',
151
- default: false,
152
- },
153
- isRequestActive: {
154
- type: Boolean,
155
- validator: (value: unknown) => typeof value === 'boolean',
156
- default: false,
157
- },
158
- isNavApi: {
159
- type: Boolean,
160
- validator: (value: unknown) => typeof value === 'boolean',
161
- default: false,
162
- }
163
- };
164
-
165
- export const sidenavEmitTypes = {
166
- 'get-navlink-item': String,
167
- search: Function,
168
- notifications: Function,
169
- requests: Function,
170
- };
171
-
172
- export type SidenavPropTypes = ExtractPropTypes<typeof sidenavPropTypes>;
173
- export type SidenavEmitTypes = typeof sidenavEmitTypes;
1
+ import type { PropType, ExtractPropTypes } from 'vue';
2
+
3
+ type QuickAction = {
4
+ menuHeading: string;
5
+ items: QuickActionItem[];
6
+ };
7
+
8
+
9
+ type QuickActionItem = {
10
+ title: string;
11
+ description: string;
12
+ icon: string;
13
+ iconBgColor: string;
14
+ redirect: Redirect;
15
+ hidden: boolean;
16
+ };
17
+
18
+ export type NavLinks = {
19
+ top: { parentLinks: ParentLinkItem[] }[];
20
+ bottom: { parentLinks: ParentLinkItem[] }[];
21
+ };
22
+
23
+ export type NavAPILinks = {
24
+ top: { parentLinks: NavItem[] }[];
25
+ bottom: { parentLinks: NavItem[] }[];
26
+ };
27
+
28
+ export type ParentLinkItem = {
29
+ title: string;
30
+ icon: string;
31
+ link?: string;
32
+ redirect?: Redirect;
33
+ menuLinks: MenuLink[];
34
+ submenuLinks?: SubmenuLink[];
35
+ hidden?: boolean;
36
+ };
37
+
38
+ type MenuLink = {
39
+ menuHeading: string;
40
+ items: MenuLinkItem[] | ParentLinkItem[];
41
+ };
42
+
43
+ type MenuLinkItem = {
44
+ title: string;
45
+ hidden: boolean;
46
+ redirect: Redirect;
47
+ submenuLinks: SubmenuLink[];
48
+ };
49
+
50
+ type SubmenuLink = {
51
+ subMenuHeading: string;
52
+ items: SubmenuLinkItem[] | ParentLinkItem[];
53
+ };
54
+
55
+ type SubmenuLinkItem = {
56
+ title: string;
57
+ hidden: boolean;
58
+ redirect: Redirect;
59
+ };
60
+
61
+ type Redirect = {
62
+ openInNewTab: boolean;
63
+ isAbsoluteURL: boolean;
64
+ link: string;
65
+ };
66
+
67
+ type UserMenu = {
68
+ name: string;
69
+ email: string;
70
+ profileImage: string;
71
+ items: UserMenuItem[];
72
+ };
73
+
74
+ type UserMenuItem = {
75
+ title: string;
76
+ icon: string;
77
+ hidden: boolean;
78
+ redirect: Redirect;
79
+ };
80
+ export interface NavItem {
81
+ groupId: string;
82
+ label: string;
83
+ icon?: string | null;
84
+ url?: string | null;
85
+ isNewTab?: boolean;
86
+ children?: NavItem[] | null;
87
+ groupName?: string | null;
88
+ hidden?: boolean;
89
+ }
90
+
91
+ export interface MappedNavItem {
92
+ title: string;
93
+ icon?: string;
94
+ redirect?: {
95
+ openInNewTab: boolean;
96
+ isAbsoluteURL: boolean;
97
+ link: string;
98
+ };
99
+ menuLinks?: {
100
+ menuHeading: string;
101
+ items: MappedNavItem[];
102
+ }[];
103
+ submenuLinks?: {
104
+ subMenuHeading: string;
105
+ items: MappedNavItem[];
106
+ }[];
107
+ }
108
+
109
+ export const sidenavPropTypes = {
110
+ quickActions: {
111
+ type: Array as PropType<QuickAction[]>,
112
+ validator: (value: unknown) => Array.isArray(value),
113
+ default: () => [],
114
+ },
115
+ hasSearch: {
116
+ type: Boolean,
117
+ validator: (value: unknown) => typeof value === 'boolean',
118
+ default: false,
119
+ },
120
+ activeNav: {
121
+ type: Object as PropType<{ parentNav: string; menu: string; submenu: string }>,
122
+ validator: (value: unknown) => typeof value === 'object',
123
+ default: () => ({ parentNav: '', menu: '', submenu: '' }),
124
+ },
125
+ navLinks: {
126
+ type: Object as PropType<NavLinks>,
127
+ default: () => [],
128
+ },
129
+ notificationCount: {
130
+ type: [String, Number],
131
+ validator: (value: string | number) => {
132
+ return typeof value === 'number' || typeof value === 'string';
133
+ },
134
+ default: '',
135
+ },
136
+ requestCount: {
137
+ type: [String, Number],
138
+ validator: (value: string | number) => {
139
+ return typeof value === 'number' || typeof value === 'string';
140
+ },
141
+ default: '',
142
+ },
143
+ userMenu: {
144
+ type: Object as PropType<UserMenu>,
145
+ validator: (value: unknown) => typeof value === 'object',
146
+ default: false,
147
+ },
148
+ isNotifActive: {
149
+ type: Boolean,
150
+ validator: (value: unknown) => typeof value === 'boolean',
151
+ default: false,
152
+ },
153
+ isRequestActive: {
154
+ type: Boolean,
155
+ validator: (value: unknown) => typeof value === 'boolean',
156
+ default: false,
157
+ },
158
+ isNavApi: {
159
+ type: Boolean,
160
+ validator: (value: unknown) => typeof value === 'boolean',
161
+ default: false,
162
+ }
163
+ };
164
+
165
+ export const sidenavEmitTypes = {
166
+ 'get-navlink-item': String,
167
+ search: Function,
168
+ notifications: Function,
169
+ requests: Function,
170
+ };
171
+
172
+ export type SidenavPropTypes = ExtractPropTypes<typeof sidenavPropTypes>;
173
+ export type SidenavEmitTypes = typeof sidenavEmitTypes;