design-system-next 2.2.0 → 2.3.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.
- package/dist/design-system-next.js +1976 -1956
- package/dist/design-system-next.js.gz +0 -0
- package/package.json +1 -1
- package/src/components/calendar-cell/use-calendar-cell.ts +4 -4
- package/src/components/dropdown/dropdown.vue +1 -1
- package/src/components/filter/filter.vue +5 -2
- package/src/components/sidenav/sidenav.ts +6 -2
- package/src/components/sidenav/sidenav.vue +18 -1
- package/src/components/sidenav/use-sidenav.ts +16 -0
- package/src/components/table/table-pagination/use-table-pagination.ts +6 -9
- package/src/components/table/use-table.ts +1 -1
|
Binary file
|
package/package.json
CHANGED
|
@@ -80,17 +80,17 @@ export const useCalendarCell = (props: CalendarCellPropTypes, emit: SetupContext
|
|
|
80
80
|
'spr-border-solid': !props.status || (props.status !== 'pending' && props.status !== 'error'),
|
|
81
81
|
});
|
|
82
82
|
|
|
83
|
-
const titleClasses = classNames('spr-text-color-strong spr-body-
|
|
83
|
+
const titleClasses = classNames('spr-text-color-strong spr-body-sm-regular-medium', {
|
|
84
84
|
'spr-text-color-danger-base': props.status === 'error',
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
-
const descriptionClasses = classNames('spr-text-color-strong spr-body-
|
|
87
|
+
const descriptionClasses = classNames('spr-text-color-strong spr-body-sm-regular', {
|
|
88
88
|
'spr-text-color-danger-base': props.status === 'error',
|
|
89
89
|
});
|
|
90
90
|
|
|
91
|
-
const getTypeLabelClassess = classNames('spr-text-color-strong spr-body-
|
|
91
|
+
const getTypeLabelClassess = classNames('spr-text-color-strong spr-body-sm-regular', {
|
|
92
92
|
'spr-text-color-danger-base': props.status === 'error',
|
|
93
|
-
'spr-text-color-strong spr-body-
|
|
93
|
+
'spr-text-color-strong spr-body-sm-regular-medium': offlineStatus.includes(props.type),
|
|
94
94
|
});
|
|
95
95
|
|
|
96
96
|
const getMainClasses = classNames(calendarCellWrapper, getCellClasses.value, statusCellClasses);
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
aria-id="filter-option-wrapper"
|
|
5
5
|
distance="4"
|
|
6
6
|
placement="bottom"
|
|
7
|
-
:triggers="[
|
|
7
|
+
:triggers="[]"
|
|
8
|
+
:popper-hide-triggers="[]"
|
|
8
9
|
:container="`#${uniqueId}`"
|
|
10
|
+
:auto-hide="false"
|
|
9
11
|
:style="{
|
|
10
12
|
width: props.width,
|
|
11
13
|
position: 'relative',
|
|
12
14
|
}"
|
|
13
|
-
:auto-hide="false"
|
|
14
15
|
>
|
|
15
16
|
<span
|
|
16
17
|
:id="uniqueId"
|
|
@@ -18,6 +19,7 @@
|
|
|
18
19
|
width: props.width,
|
|
19
20
|
position: 'relative',
|
|
20
21
|
}"
|
|
22
|
+
@click="isFilterOpen = true"
|
|
21
23
|
>
|
|
22
24
|
<slot>
|
|
23
25
|
<spr-input v-model="searchValue" type="text" :placeholder="placeholder" :label="label" :disabled="disabled">
|
|
@@ -184,6 +186,7 @@
|
|
|
184
186
|
>
|
|
185
187
|
<div
|
|
186
188
|
class="spr-flex spr-w-full spr-flex-row spr-items-center spr-justify-items-start spr-gap-size-spacing-3xs"
|
|
189
|
+
@click="getFiltereredOption[key].isSelected = !getFiltereredOption[key].isSelected"
|
|
187
190
|
>
|
|
188
191
|
<spr-checkbox
|
|
189
192
|
v-model="getFiltereredOption[key].isSelected"
|
|
@@ -93,12 +93,16 @@ export const sidenavPropTypes = {
|
|
|
93
93
|
},
|
|
94
94
|
notificationCount: {
|
|
95
95
|
type: [String, Number],
|
|
96
|
-
validator: (value: number) =>
|
|
96
|
+
validator: (value: string | number) => {
|
|
97
|
+
return typeof value === 'number' || typeof value === 'string';
|
|
98
|
+
},
|
|
97
99
|
default: '',
|
|
98
100
|
},
|
|
99
101
|
requestCount: {
|
|
100
102
|
type: [String, Number],
|
|
101
|
-
validator: (value: number) =>
|
|
103
|
+
validator: (value: string | number) => {
|
|
104
|
+
return typeof value === 'number' || typeof value === 'string';
|
|
105
|
+
},
|
|
102
106
|
default: '',
|
|
103
107
|
},
|
|
104
108
|
userMenu: {
|
|
@@ -127,6 +127,7 @@
|
|
|
127
127
|
<!-- Search -->
|
|
128
128
|
<div
|
|
129
129
|
v-if="props.hasSearch"
|
|
130
|
+
id="sidenav_search"
|
|
130
131
|
:class="[
|
|
131
132
|
'spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-rounded-border-radius-md spr-p-2 spr-transition spr-duration-150 spr-ease-in-out',
|
|
132
133
|
'hover:spr-background-color-hover',
|
|
@@ -151,6 +152,7 @@
|
|
|
151
152
|
instant-move
|
|
152
153
|
>
|
|
153
154
|
<div
|
|
155
|
+
:id="`${generateId(parentLink.title)}`"
|
|
154
156
|
:class="{
|
|
155
157
|
'spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-rounded-border-radius-md spr-p-2 spr-transition spr-duration-150 spr-ease-in-out spr-max-w-9 spr-max-h-9 spr-m-auto spr-box-border': true,
|
|
156
158
|
'spr-background-color-single-active spr-border-color-brand-base spr-border-[1.5px] spr-border-solid active:spr-scale-90':
|
|
@@ -195,6 +197,7 @@
|
|
|
195
197
|
instant-move
|
|
196
198
|
>
|
|
197
199
|
<div
|
|
200
|
+
:id="`${generateId(parentLink.title, menuLinkItem.title)}`"
|
|
198
201
|
:class="{
|
|
199
202
|
'spr-body-sm-regular spr-relative spr-m-0 spr-flex spr-cursor-pointer spr-justify-between spr-px-2 spr-py-1.5 spr-align-middle spr-duration-150 spr-ease-in-out': true,
|
|
200
203
|
'spr-background-color-single-active': props.activeNav.menu === menuLinkItem.title,
|
|
@@ -234,6 +237,7 @@
|
|
|
234
237
|
<Menu aria-id="sidenav-sub-submenu-wrapper" :triggers="['click', 'hover']" instant-move>
|
|
235
238
|
<div
|
|
236
239
|
v-if="!submenuLinkItem.hidden"
|
|
240
|
+
:id="`${generateId(parentLink.title, menuLinkItem.title, submenuLinkItem.title)}`"
|
|
237
241
|
:class="{
|
|
238
242
|
'spr-body-sm-regular spr-relative spr-m-0 spr-flex spr-cursor-pointer spr-justify-between spr-px-2 spr-py-1.5 spr-align-middle spr-duration-150 spr-ease-in-out': true,
|
|
239
243
|
'spr-background-color-single-active':
|
|
@@ -268,6 +272,7 @@
|
|
|
268
272
|
<template v-else>
|
|
269
273
|
<div
|
|
270
274
|
v-if="!menuLinkItem.hidden"
|
|
275
|
+
:id="`${generateId(parentLink.title, menuLinkItem.title)}`"
|
|
271
276
|
:class="{
|
|
272
277
|
'spr-body-sm-regular spr-relative spr-m-0 spr-flex spr-cursor-pointer spr-justify-between spr-px-2 spr-py-1.5 spr-align-middle spr-duration-150 spr-ease-in-out': true,
|
|
273
278
|
'spr-background-color-single-active': props.activeNav.menu === menuLinkItem.title,
|
|
@@ -276,6 +281,10 @@
|
|
|
276
281
|
}"
|
|
277
282
|
@click="handleRedirect(menuLinkItem, parentLink.title, menuLinkItem.title, '')"
|
|
278
283
|
>
|
|
284
|
+
<div
|
|
285
|
+
v-if="props.activeNav.menu === menuLinkItem.title"
|
|
286
|
+
class="spr-background-color-brand-base spr-absolute spr-left-0 spr-top-0 spr-h-full spr-w-[2px]"
|
|
287
|
+
></div>
|
|
279
288
|
<span>{{ menuLinkItem.title }}</span>
|
|
280
289
|
</div>
|
|
281
290
|
</template>
|
|
@@ -298,6 +307,7 @@
|
|
|
298
307
|
<span class="spr-label-xs-medium spr-uppercase">{{ parentLink.title }}</span>
|
|
299
308
|
</template>
|
|
300
309
|
<div
|
|
310
|
+
:id="`${generateId(parentLink.title)}`"
|
|
301
311
|
:class="{
|
|
302
312
|
'spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-rounded-border-radius-md spr-p-2 spr-transition spr-duration-150 spr-ease-in-out spr-max-w-9 spr-max-h-9 spr-m-auto spr-box-border': true,
|
|
303
313
|
'spr-background-color-single-active spr-border-color-brand-base spr-border-[1.5px] spr-border-solid active:spr-scale-90':
|
|
@@ -339,6 +349,7 @@
|
|
|
339
349
|
instant-move
|
|
340
350
|
>
|
|
341
351
|
<div
|
|
352
|
+
:id="`${generateId(parentLink.title)}`"
|
|
342
353
|
:class="{
|
|
343
354
|
'spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-rounded-border-radius-md spr-p-2 spr-transition spr-duration-150 spr-ease-in-out spr-max-w-9 spr-max-h-9 spr-m-auto spr-box-border': true,
|
|
344
355
|
'spr-background-color-single-active spr-border-color-brand-base spr-border-[1.5px] spr-border-solid active:spr-scale-90':
|
|
@@ -383,6 +394,7 @@
|
|
|
383
394
|
instant-move
|
|
384
395
|
>
|
|
385
396
|
<div
|
|
397
|
+
:id="`${generateId(parentLink.title, menuLinkItem.title)}`"
|
|
386
398
|
:class="{
|
|
387
399
|
'spr-body-sm-regular spr-relative spr-m-0 spr-flex spr-cursor-pointer spr-justify-between spr-px-2 spr-py-1.5 spr-align-middle spr-duration-150 spr-ease-in-out': true,
|
|
388
400
|
'spr-background-color-single-active': props.activeNav.menu === menuLinkItem.title,
|
|
@@ -422,6 +434,7 @@
|
|
|
422
434
|
<Menu aria-id="sidenav-sub-submenu-wrapper" :triggers="['click', 'hover']" instant-move>
|
|
423
435
|
<div
|
|
424
436
|
v-if="!submenuLinkItem.hidden"
|
|
437
|
+
:id="`${generateId(parentLink.title, menuLinkItem.title, submenuLinkItem.title)}`"
|
|
425
438
|
:class="{
|
|
426
439
|
'spr-body-sm-regular spr-relative spr-m-0 spr-flex spr-cursor-pointer spr-justify-between spr-px-2 spr-py-1.5 spr-align-middle spr-duration-150 spr-ease-in-out': true,
|
|
427
440
|
'spr-background-color-single-active':
|
|
@@ -456,6 +469,7 @@
|
|
|
456
469
|
<template v-else>
|
|
457
470
|
<div
|
|
458
471
|
v-if="!menuLinkItem.hidden"
|
|
472
|
+
:id="`${generateId(parentLink.title, menuLinkItem.title)}`"
|
|
459
473
|
:class="[
|
|
460
474
|
'spr-body-sm-regular spr-m-0 spr-flex spr-cursor-pointer spr-justify-between spr-px-2 spr-py-1.5 spr-align-middle spr-duration-300 spr-ease-in-out',
|
|
461
475
|
'hover:spr-background-color-hover',
|
|
@@ -486,6 +500,7 @@
|
|
|
486
500
|
<span class="spr-label-xs-medium spr-uppercase">{{ parentLink.title }}</span>
|
|
487
501
|
</template>
|
|
488
502
|
<div
|
|
503
|
+
:id="`${generateId(parentLink.title)}`"
|
|
489
504
|
:class="{
|
|
490
505
|
'spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-rounded-border-radius-md spr-p-2 spr-transition spr-duration-150 spr-ease-in-out spr-max-w-9 spr-max-h-9 spr-m-auto spr-box-border': true,
|
|
491
506
|
'spr-background-color-single-active spr-border-color-brand-base spr-border-[1.5px] spr-border-solid active:spr-scale-90':
|
|
@@ -526,6 +541,7 @@
|
|
|
526
541
|
</template>
|
|
527
542
|
<div
|
|
528
543
|
v-if="props.notificationCount || props.notificationCount === 0"
|
|
544
|
+
id="sidenav_notification"
|
|
529
545
|
:class="[
|
|
530
546
|
'spr-relative spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-2 spr-rounded-border-radius-md',
|
|
531
547
|
'spr-transition spr-duration-150 spr-ease-in-out spr-w-9 spr-h-9 spr-m-auto',
|
|
@@ -559,6 +575,7 @@
|
|
|
559
575
|
</template>
|
|
560
576
|
<div
|
|
561
577
|
v-if="props.requestCount || props.requestCount === 0"
|
|
578
|
+
id="sidenav_request"
|
|
562
579
|
:class="[
|
|
563
580
|
'spr-relative spr-flex spr-cursor-pointer spr-items-center spr-justify-center spr-2 spr-rounded-border-radius-md',
|
|
564
581
|
'spr-transition spr-duration-150 spr-ease-in-out spr-w-9 spr-h-9 spr-m-auto',
|
|
@@ -693,7 +710,7 @@ import SprBadge from '../badge/badge.vue';
|
|
|
693
710
|
const props = defineProps(sidenavPropTypes);
|
|
694
711
|
const emit = defineEmits(sidenavEmitTypes);
|
|
695
712
|
|
|
696
|
-
const { isQuckActionMenuVisible, isUserMenuVisible, userProfileError, getUserInitials, handleRedirect } = useSidenav(
|
|
713
|
+
const { isQuckActionMenuVisible, isUserMenuVisible, userProfileError, getUserInitials, handleRedirect, generateId } = useSidenav(
|
|
697
714
|
props,
|
|
698
715
|
emit,
|
|
699
716
|
);
|
|
@@ -53,11 +53,27 @@ export const useSidenav = (props: SidenavPropTypes, emit: SetupContext<SidenavEm
|
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
+
const transformToCamelCaseId = (str: string) => {
|
|
57
|
+
return str
|
|
58
|
+
.toLowerCase()
|
|
59
|
+
.split(' ')
|
|
60
|
+
.map((word, index) => {
|
|
61
|
+
if (index === 0) return word;
|
|
62
|
+
return word.charAt(0).toUpperCase() + word.slice(1);
|
|
63
|
+
})
|
|
64
|
+
.join('');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const generateId = (...titles: string[]): string => {
|
|
68
|
+
return titles.map(transformToCamelCaseId).join('_');
|
|
69
|
+
}
|
|
70
|
+
|
|
56
71
|
return {
|
|
57
72
|
isQuckActionMenuVisible,
|
|
58
73
|
isUserMenuVisible,
|
|
59
74
|
userProfileError,
|
|
60
75
|
getUserInitials,
|
|
61
76
|
handleRedirect,
|
|
77
|
+
generateId
|
|
62
78
|
};
|
|
63
79
|
};
|
|
@@ -24,17 +24,14 @@ export const useTablePagination = (
|
|
|
24
24
|
const { selectedRowCount, currentPage, totalItems, bordered } = toRefs(props);
|
|
25
25
|
|
|
26
26
|
const paginationClasses: ComputedRef<TablePaginationClasses> = computed(() => {
|
|
27
|
-
const baseClass = classNames(
|
|
28
|
-
'spr-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
);
|
|
34
|
-
const dropdownInputFieldClass = classNames('spr-w-[120px] spr-font-bold spr-h-full spr-space-x-2');
|
|
27
|
+
const baseClass = classNames('spr-p-size-spacing-xs spr-flex spr-justify-between spr-bg-white-50 spr-h-max', {
|
|
28
|
+
'spr-border spr-border-solid spr-border-color-weak': bordered.value,
|
|
29
|
+
'spr-border-x-0 spr-border-t spr-border-b-0 spr-border-solid spr-border-color-weak': !bordered.value,
|
|
30
|
+
});
|
|
31
|
+
const dropdownInputFieldClass = classNames('spr-w-[120px] spr-h-full spr-space-x-2');
|
|
35
32
|
const inputFieldIconClass = classNames('spr-mt-0.5 spr-pl-1 spr-text-mushroom-950');
|
|
36
33
|
const rightSideClass = classNames('spr-flex spr-justify-between spr-items-center spr-space-x-4');
|
|
37
|
-
const computeRowRangeClass = classNames('spr-
|
|
34
|
+
const computeRowRangeClass = classNames('spr-text-color-base spr-body-sm-regular');
|
|
38
35
|
const navigationContainerClass = classNames('spr-flex spr-space-x-2');
|
|
39
36
|
const navigationButtonClass = classNames('spr-rounded-border-radius-md');
|
|
40
37
|
const dropdownClass = classNames('!spr-w-max');
|
|
@@ -76,7 +76,7 @@ export const useTable = (props: TablePropTypes, emit: SetupContext<TableEmitType
|
|
|
76
76
|
const tableWrapperClasses = classNames(
|
|
77
77
|
'spr-border-color-weak spr-w-full spr-overflow-hidden spr-rounded-border-radius-lg spr-border spr-border-solid spr-table-wrapper spr-relative spr-h-max',
|
|
78
78
|
);
|
|
79
|
-
const tableFooterClasses = classNames('spr-
|
|
79
|
+
const tableFooterClasses = classNames('spr-w-full spr-bottom-0 spr-left-0', {
|
|
80
80
|
'spr-background-color-surface': props.variant === 'surface',
|
|
81
81
|
'spr-background-color': props.variant === 'white',
|
|
82
82
|
});
|