design-system-next 2.11.22 → 2.12.3
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.es.js +6635 -6719
- package/dist/design-system-next.es.js.gz +0 -0
- package/dist/design-system-next.umd.js +12 -12
- package/dist/design-system-next.umd.js.gz +0 -0
- package/dist/main.css +1 -1
- package/dist/main.css.gz +0 -0
- package/dist/package.json.d.ts +1 -1
- package/package.json +1 -1
- package/src/App.vue +49 -1
- package/src/components/chips/chips.ts +6 -0
- package/src/components/chips/use-chips.ts +11 -3
- package/src/components/date-picker/date-picker.vue +60 -53
- package/src/components/date-picker/use-date-picker.ts +6 -0
- package/src/components/table/table.ts +2 -1
- package/src/components/table/table.vue +1 -1
- package/src/components/table/use-table.ts +13 -8
|
@@ -12,7 +12,7 @@ export const useChips = (
|
|
|
12
12
|
emit: SetupContext<ChipsEmitTypes>['emit'],
|
|
13
13
|
slots: Record<string, unknown>,
|
|
14
14
|
) => {
|
|
15
|
-
const { disabled, active, variant, iconWeight, icon } = toRefs(props);
|
|
15
|
+
const { disabled, active, variant, iconWeight, icon, size, tone } = toRefs(props);
|
|
16
16
|
|
|
17
17
|
const chipsBaseClasses: ComputedRef<string> = computed(() => {
|
|
18
18
|
if (variant.value === 'day') {
|
|
@@ -38,11 +38,15 @@ export const useChips = (
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
return classNames(
|
|
41
|
-
'spr-body-xs-regular spr-
|
|
41
|
+
'spr-body-xs-regular spr-text-color-strong spr-inline-flex spr-items-center spr-justify-center spr-gap-1 spr-rounded-full spr-transition-all spr-group',
|
|
42
42
|
{
|
|
43
43
|
// Base cursor state
|
|
44
44
|
'hover:spr-cursor-pointer': !disabled.value,
|
|
45
45
|
|
|
46
|
+
// Padding for sizes
|
|
47
|
+
'spr-py-1.5 spr-px-2': size.value === 'md',
|
|
48
|
+
'spr-py-0.5 spr-px-1.5': size.value === 'sm',
|
|
49
|
+
|
|
46
50
|
// Disabled state (highest priority)
|
|
47
51
|
'spr-cursor-not-allowed spr-text-color-on-fill-disabled spr-background-color-disabled spr-border-solid spr-border-[1px] spr-border-color-disabled':
|
|
48
52
|
disabled.value,
|
|
@@ -52,8 +56,12 @@ export const useChips = (
|
|
|
52
56
|
active.value && !disabled.value,
|
|
53
57
|
|
|
54
58
|
// Default state (with hover/pressed)
|
|
55
|
-
'spr-
|
|
59
|
+
'spr-border spr-border-solid spr-border-color-weak group-hover:spr-background-color-hover group-active:spr-background-color-pressed':
|
|
56
60
|
!active.value && !disabled.value,
|
|
61
|
+
|
|
62
|
+
// Default state bg color
|
|
63
|
+
'spr-background-color-surface': !active.value && !disabled.value && tone.value === 'default',
|
|
64
|
+
'spr-background-color': !active.value && !disabled.value && tone.value === 'subtle',
|
|
57
65
|
|
|
58
66
|
// Reset close button styles
|
|
59
67
|
'[&_.chips-close]:hover:spr-cursor-pointer [&_.chips-close]:spr-p-0 [&_.chips-close]:spr-m-0 [&_.chips-close]:spr-border-0 [&_.chips-close]:spr-bg-transparent [&_.chips-close]:spr-inline-flex [&_.chips-close]:spr-items-center [&_.chips-close]:spr-leading-[0]':
|
|
@@ -22,60 +22,66 @@
|
|
|
22
22
|
<label v-if="props.label" :for="props.id" :class="datePickerClasses.labelClasses">
|
|
23
23
|
{{ props.label }}
|
|
24
24
|
</label>
|
|
25
|
-
<
|
|
26
|
-
<div
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
25
|
+
<slot :handle-click="handleSlotClick">
|
|
26
|
+
<div
|
|
27
|
+
ref="datePickerRef"
|
|
28
|
+
:class="datePickerClasses.datePickerBaseInputClasses"
|
|
29
|
+
@click="datePopperState = true"
|
|
30
|
+
>
|
|
31
|
+
<div class="spr-flex spr-h-full spr-items-center spr-gap-1.5">
|
|
32
|
+
<input
|
|
33
|
+
:id="`${props.id}-month`"
|
|
34
|
+
ref="monthInputRef"
|
|
35
|
+
v-model="monthInput"
|
|
36
|
+
:class="['spr-w-[38px] spr-min-w-[38px]', datePickerClasses.datePickerInputClasses]"
|
|
37
|
+
type="text"
|
|
38
|
+
placeholder="MMM"
|
|
39
|
+
maxlength="3"
|
|
40
|
+
:disabled="props.disabled"
|
|
41
|
+
:readonly="props.readonly"
|
|
42
|
+
autocomplete="off"
|
|
43
|
+
@input="handleMonthInput"
|
|
44
|
+
@keyup="handleMonthInput"
|
|
45
|
+
@keydown="handleBackspace('month', $event)"
|
|
46
|
+
/>
|
|
47
|
+
<span class="spr-text-color-strong spr-font-size-200 spr-text-color-weak">/</span>
|
|
48
|
+
<input
|
|
49
|
+
:id="`${props.id}-date`"
|
|
50
|
+
ref="dateInputRef"
|
|
51
|
+
v-model="dateInput"
|
|
52
|
+
:class="['spr-w-[24px] spr-min-w-[24px] spr-text-center', datePickerClasses.datePickerInputClasses]"
|
|
53
|
+
type="text"
|
|
54
|
+
placeholder="DD"
|
|
55
|
+
maxlength="2"
|
|
56
|
+
:disabled="props.disabled"
|
|
57
|
+
:readonly="props.readonly"
|
|
58
|
+
autocomplete="off"
|
|
59
|
+
@input="handleDateInput"
|
|
60
|
+
@keyup="handleDateInput"
|
|
61
|
+
@keydown="handleBackspace('date', $event)"
|
|
62
|
+
/>
|
|
63
|
+
<span class="spr-text-color-strong spr-font-size-200 spr-text-color-weak">/</span>
|
|
64
|
+
<input
|
|
65
|
+
:id="`${props.id}-year`"
|
|
66
|
+
ref="yearInputRef"
|
|
67
|
+
v-model="yearInput"
|
|
68
|
+
:class="['spr-w-[42px] spr-min-w-[42px]', datePickerClasses.datePickerInputClasses]"
|
|
69
|
+
type="text"
|
|
70
|
+
placeholder="YYYY"
|
|
71
|
+
maxlength="4"
|
|
72
|
+
:disabled="props.disabled"
|
|
73
|
+
:readonly="props.readonly"
|
|
74
|
+
autocomplete="off"
|
|
75
|
+
@input="handleYearInput"
|
|
76
|
+
@keyup="handleYearInput"
|
|
77
|
+
@keydown="handleBackspace('year', $event)"
|
|
78
|
+
/>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="spr-flex spr-items-center spr-justify-center">
|
|
81
|
+
<Icon class="spr-text-color-supporting spr-h-4 spr-w-4" icon="ph:calendar-blank" />
|
|
82
|
+
</div>
|
|
77
83
|
</div>
|
|
78
|
-
</
|
|
84
|
+
</slot>
|
|
79
85
|
</div>
|
|
80
86
|
|
|
81
87
|
<template #popper>
|
|
@@ -324,6 +330,7 @@ const {
|
|
|
324
330
|
handleTabClick,
|
|
325
331
|
handleBackspace,
|
|
326
332
|
clearDate,
|
|
333
|
+
handleSlotClick
|
|
327
334
|
} = useDatePicker(props, emit);
|
|
328
335
|
|
|
329
336
|
defineExpose({
|
|
@@ -933,6 +933,11 @@ export const useDatePicker = (props: DatePickerPropTypes, emit: SetupContext<Dat
|
|
|
933
933
|
yearInput.value = '';
|
|
934
934
|
};
|
|
935
935
|
|
|
936
|
+
const handleSlotClick = () => {
|
|
937
|
+
if(disabled.value || readonly.value) return;
|
|
938
|
+
datePopperState.value = true;
|
|
939
|
+
};
|
|
940
|
+
|
|
936
941
|
watch(datePopperState, (newValue) => {
|
|
937
942
|
if (newValue === false) {
|
|
938
943
|
setTimeout(() => {
|
|
@@ -1032,5 +1037,6 @@ export const useDatePicker = (props: DatePickerPropTypes, emit: SetupContext<Dat
|
|
|
1032
1037
|
handleTabClick,
|
|
1033
1038
|
handleBackspace,
|
|
1034
1039
|
clearDate,
|
|
1040
|
+
handleSlotClick
|
|
1035
1041
|
};
|
|
1036
1042
|
};
|
|
@@ -3,7 +3,7 @@ import type { ChipTitle } from '@/components/table/table-chips-title/table-chips
|
|
|
3
3
|
import type { LozengeTitle } from '@/components/table/table-lozenge-title/table-lozenge-title';
|
|
4
4
|
export const definePropType = <T>(val: unknown): PropType<T> => val as PropType<T>;
|
|
5
5
|
|
|
6
|
-
interface Header {
|
|
6
|
+
export interface Header {
|
|
7
7
|
field: string;
|
|
8
8
|
name: string;
|
|
9
9
|
sort: boolean;
|
|
@@ -15,6 +15,7 @@ interface Header {
|
|
|
15
15
|
badgeText: string;
|
|
16
16
|
badgeVariant: string;
|
|
17
17
|
avatarVariant: string;
|
|
18
|
+
customTailwindClasses?: string;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
export interface TableData {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
/>
|
|
32
32
|
</div>
|
|
33
33
|
</th>
|
|
34
|
-
<th v-for="(header, keyHeader) in headers" :key="keyHeader" :class="[getTableClasses.headerClasses]">
|
|
34
|
+
<th v-for="(header, keyHeader) in headers" :key="keyHeader" :class="[getTableClasses.headerClasses(header)]">
|
|
35
35
|
<div :class="getTableClasses.headerNameClass">
|
|
36
36
|
<span :class="[{ 'spr-cursor-pointer': header.sort }]" @click="header.sort && sortData(header.field)">
|
|
37
37
|
{{ header.name }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, toRefs, Slots, watch } from 'vue';
|
|
2
2
|
|
|
3
|
-
import type { TablePropTypes, TableEmitTypes, TABLE_SORT, TableData, TableDataProps } from './table';
|
|
3
|
+
import type { TablePropTypes, TableEmitTypes, TABLE_SORT, TableData, TableDataProps, Header } from './table';
|
|
4
4
|
import type { SetupContext } from 'vue';
|
|
5
5
|
|
|
6
6
|
import classNames from 'classnames';
|
|
@@ -96,15 +96,20 @@ export const useTable = (props: TablePropTypes, emit: SetupContext<TableEmitType
|
|
|
96
96
|
'spr-background-color': props.variant === 'white',
|
|
97
97
|
'spr-background-color-surface': props.variant === 'surface',
|
|
98
98
|
});
|
|
99
|
-
const headerClasses =
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
const headerClasses = (header: Header) => {
|
|
100
|
+
if (header.customTailwindClasses){
|
|
101
|
+
return classNames(header.customTailwindClasses);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return classNames(
|
|
105
|
+
'spr-min-h-12 spr-px-size-spacing-2xs spr-py-size-spacing-3xs',
|
|
106
|
+
'spr-text-color-strong spr-font-size-100 spr-font-line-height-100 spr-font-letter-spacing-normal spr-text-start spr-font-medium spr-uppercase',
|
|
107
|
+
'spr-border-color-weak spr-border-x-0 spr-border-y spr-border-solid',
|
|
108
|
+
{
|
|
109
|
+
'spr-border-t-0': !slots.default,
|
|
105
110
|
},
|
|
106
111
|
headerBackground,
|
|
107
|
-
);
|
|
112
|
+
)};
|
|
108
113
|
|
|
109
114
|
const headerNameClass = 'spr-flex spr-flex-row spr-items-center spr-gap-size-spacing-5xs';
|
|
110
115
|
|