design-system-next 2.11.15 → 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.
- package/dist/design-system-next.es.js +6255 -6111
- 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 +1 -49
- package/src/assets/scripts/border-radius.ts +15 -15
- package/src/assets/scripts/colors.ts +134 -134
- package/src/assets/scripts/max-width.ts +11 -11
- package/src/assets/scripts/spacing.ts +23 -23
- package/src/assets/scripts/utilities.ts +15 -15
- package/src/components/accordion/accordion.ts +43 -43
- package/src/components/accordion/use-accordion.ts +43 -43
- package/src/components/avatar/avatar.ts +64 -64
- package/src/components/badge/badge.ts +43 -43
- package/src/components/banner/banner.ts +20 -20
- package/src/components/button/button.ts +72 -72
- package/src/components/button/button.vue +15 -15
- package/src/components/calendar/calendar.ts +89 -89
- package/src/components/card/card.ts +52 -52
- package/src/components/checkbox/checkbox.ts +45 -45
- package/src/components/chips/chips.ts +95 -95
- package/src/components/collapsible/collapsible.ts +21 -21
- package/src/components/collapsible/collapsible.vue +27 -27
- package/src/components/date-picker/__tests__/date-picker.test.ts +112 -112
- package/src/components/date-picker/date-picker.ts +157 -157
- package/src/components/date-picker/date-range-picker/date-range-picker.vue +1 -0
- package/src/components/dropdown/__tests__/dropdown-fixes.spec.ts +106 -106
- package/src/components/dropdown/__tests__/dropdown-value-types.spec.ts +213 -213
- package/src/components/dropdown/fix-multi-number.ts +92 -92
- package/src/components/dropdown/use-dropdown.ts +488 -488
- package/src/components/empty-state/empty-state.ts +50 -50
- package/src/components/file-upload/file-upload.ts +87 -87
- package/src/components/floating-action/floating-action.ts +12 -12
- package/src/components/input/input-contact-number/input-contact-number.ts +83 -83
- package/src/components/input/input-email/input-email.vue +17 -17
- package/src/components/input/input-password/use-input-password.ts +19 -19
- package/src/components/input/input-search/input-search.vue +13 -13
- package/src/components/input/input-url/input-url.vue +20 -20
- package/src/components/input/input-username/input-username.vue +17 -17
- package/src/components/input/input.vue +72 -72
- package/src/components/list/ladderized-list/ladderized-list.ts +39 -39
- package/src/components/list/list.vue +30 -20
- package/src/components/list/use-list.ts +1 -0
- package/src/components/logo/logo.ts +43 -43
- package/src/components/logo/logo.vue +14 -14
- package/src/components/logo/use-logo.ts +41 -41
- package/src/components/lozenge/lozenge.ts +61 -61
- package/src/components/modal/modal.ts +45 -45
- package/src/components/progress-bar/progress-bar.ts +39 -39
- package/src/components/radio/radio.ts +42 -42
- package/src/components/select/select.ts +144 -144
- package/src/components/sidenav/sidenav.ts +173 -173
- package/src/components/sidepanel/sidepanel.ts +100 -100
- package/src/components/sidepanel/sidepanel.vue +55 -55
- package/src/components/sidepanel/stacking-sidepanel/stacking-sidepanel.ts +16 -16
- package/src/components/sidepanel/stacking-sidepanel/stacking-sidepanel.vue +39 -39
- package/src/components/slider/slider.ts +38 -38
- package/src/components/snackbar/snack/snack.ts +71 -71
- package/src/components/snackbar/use-snackbar.ts +34 -34
- package/src/components/status/status.ts +19 -19
- package/src/components/status/status.vue +13 -13
- package/src/components/stepper/step/step.ts +47 -47
- package/src/components/stepper/stepper.ts +47 -47
- package/src/components/stepper/stepper.vue +34 -34
- package/src/components/switch/switch.ts +42 -42
- package/src/components/table/table-actions/table-actions.ts +42 -42
- package/src/components/table/table-actions/table-actions.vue +40 -40
- package/src/components/table/table-chips-title/table-chips-title.ts +27 -27
- package/src/components/table/table-chips-title/table-chips-title.vue +32 -32
- package/src/components/table/table-chips-title/use-table-chips-title.ts +22 -22
- package/src/components/table/table-lozenge-title/table-lozenge-title.ts +23 -23
- package/src/components/table/table-lozenge-title/table-lozenge-title.vue +26 -26
- package/src/components/table/table-lozenge-title/use-table-lozenge-title.ts +21 -21
- package/src/components/table/table-pagination/table-pagination.ts +63 -63
- package/src/components/table/table-pagination/table-pagination.vue +72 -72
- package/src/components/table/table.ts +173 -173
- package/src/components/tabs/tabs.ts +43 -43
- package/src/components/textarea/textarea.ts +72 -72
- package/src/components/textarea/textarea.vue +45 -45
- package/src/components/time-picker/time-picker.ts +69 -69
- package/src/components/tooltip/tooltip.ts +46 -46
- package/src/components/tooltip/use-tooltip.ts +13 -13
- package/src/examples/dropdown-number-multi-select.vue +76 -76
- package/src/stores/useSnackbarStore.ts +44 -44
- package/src/vite-env.d.ts +6 -0
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
// Example usage of dropdown with primitive number values in multi-select mode
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<div>
|
|
5
|
-
<h2>Multiple Number Values Demo</h2>
|
|
6
|
-
<p>Selected values: {{ displaySelection }}</p>
|
|
7
|
-
|
|
8
|
-
<div class="dropdown-container">
|
|
9
|
-
<spr-dropdown
|
|
10
|
-
id="number-multi-dropdown"
|
|
11
|
-
v-model="selectedNumbers"
|
|
12
|
-
:menu-list="numberOptions"
|
|
13
|
-
multi-select
|
|
14
|
-
@update:model-value="handleSelectedItems"
|
|
15
|
-
>
|
|
16
|
-
<spr-input
|
|
17
|
-
v-model="displayText"
|
|
18
|
-
label="Select Numbers"
|
|
19
|
-
readonly
|
|
20
|
-
placeholder="Select numbers..."
|
|
21
|
-
/>
|
|
22
|
-
</spr-dropdown>
|
|
23
|
-
</div>
|
|
24
|
-
|
|
25
|
-
<div class="mt-4">
|
|
26
|
-
<h3>Current selection type:</h3>
|
|
27
|
-
<pre>{{ typeof selectedNumbers[0] }}</pre>
|
|
28
|
-
|
|
29
|
-
<h3>Current selection:</h3>
|
|
30
|
-
{{ selectedNumbers }}
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
</template>
|
|
34
|
-
|
|
35
|
-
<script setup>
|
|
36
|
-
import { ref, computed } from 'vue';
|
|
37
|
-
import SprInput from "@/components/input/input.vue";
|
|
38
|
-
import SprDropdown from "@/components/dropdown/dropdown.vue";
|
|
39
|
-
|
|
40
|
-
// Define number options - raw number values
|
|
41
|
-
const numberOptions = [
|
|
42
|
-
{ text: 'One', value: 1 },
|
|
43
|
-
{ text: 'Two', value: 2 },
|
|
44
|
-
{ text: 'Three', value: 3 },
|
|
45
|
-
{ text: 'Four', value: 4 },
|
|
46
|
-
{ text: 'Five', value: 5 }
|
|
47
|
-
];
|
|
48
|
-
|
|
49
|
-
// Track selected numbers
|
|
50
|
-
const selectedNumbers = ref([]);
|
|
51
|
-
const displayText = ref('');
|
|
52
|
-
|
|
53
|
-
// Display the selection summary
|
|
54
|
-
const displaySelection = computed(() => {
|
|
55
|
-
if (selectedNumbers.value.length === 0) {
|
|
56
|
-
return 'None';
|
|
57
|
-
}
|
|
58
|
-
return selectedNumbers.value.join(', ');
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
// Handle selected items and update display text
|
|
62
|
-
const handleSelectedItems = (items) => {
|
|
63
|
-
// For multi-select, update display text to show selected items
|
|
64
|
-
const selectedTexts = items.map(itemValue => {
|
|
65
|
-
// Find corresponding text for each selected value
|
|
66
|
-
const option = numberOptions.find(opt => opt.value === itemValue);
|
|
67
|
-
return option ? option.text : itemValue;
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
// Update the input display text
|
|
71
|
-
displayText.value = selectedTexts.join(', ');
|
|
72
|
-
|
|
73
|
-
console.log('Selected values:', items);
|
|
74
|
-
console.log('Type of first value:', typeof items[0]);
|
|
75
|
-
};
|
|
76
|
-
</script>
|
|
1
|
+
// Example usage of dropdown with primitive number values in multi-select mode
|
|
2
|
+
|
|
3
|
+
<template>
|
|
4
|
+
<div>
|
|
5
|
+
<h2>Multiple Number Values Demo</h2>
|
|
6
|
+
<p>Selected values: {{ displaySelection }}</p>
|
|
7
|
+
|
|
8
|
+
<div class="dropdown-container">
|
|
9
|
+
<spr-dropdown
|
|
10
|
+
id="number-multi-dropdown"
|
|
11
|
+
v-model="selectedNumbers"
|
|
12
|
+
:menu-list="numberOptions"
|
|
13
|
+
multi-select
|
|
14
|
+
@update:model-value="handleSelectedItems"
|
|
15
|
+
>
|
|
16
|
+
<spr-input
|
|
17
|
+
v-model="displayText"
|
|
18
|
+
label="Select Numbers"
|
|
19
|
+
readonly
|
|
20
|
+
placeholder="Select numbers..."
|
|
21
|
+
/>
|
|
22
|
+
</spr-dropdown>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div class="mt-4">
|
|
26
|
+
<h3>Current selection type:</h3>
|
|
27
|
+
<pre>{{ typeof selectedNumbers[0] }}</pre>
|
|
28
|
+
|
|
29
|
+
<h3>Current selection:</h3>
|
|
30
|
+
{{ selectedNumbers }}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<script setup>
|
|
36
|
+
import { ref, computed } from 'vue';
|
|
37
|
+
import SprInput from "@/components/input/input.vue";
|
|
38
|
+
import SprDropdown from "@/components/dropdown/dropdown.vue";
|
|
39
|
+
|
|
40
|
+
// Define number options - raw number values
|
|
41
|
+
const numberOptions = [
|
|
42
|
+
{ text: 'One', value: 1 },
|
|
43
|
+
{ text: 'Two', value: 2 },
|
|
44
|
+
{ text: 'Three', value: 3 },
|
|
45
|
+
{ text: 'Four', value: 4 },
|
|
46
|
+
{ text: 'Five', value: 5 }
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
// Track selected numbers
|
|
50
|
+
const selectedNumbers = ref([]);
|
|
51
|
+
const displayText = ref('');
|
|
52
|
+
|
|
53
|
+
// Display the selection summary
|
|
54
|
+
const displaySelection = computed(() => {
|
|
55
|
+
if (selectedNumbers.value.length === 0) {
|
|
56
|
+
return 'None';
|
|
57
|
+
}
|
|
58
|
+
return selectedNumbers.value.join(', ');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Handle selected items and update display text
|
|
62
|
+
const handleSelectedItems = (items) => {
|
|
63
|
+
// For multi-select, update display text to show selected items
|
|
64
|
+
const selectedTexts = items.map(itemValue => {
|
|
65
|
+
// Find corresponding text for each selected value
|
|
66
|
+
const option = numberOptions.find(opt => opt.value === itemValue);
|
|
67
|
+
return option ? option.text : itemValue;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// Update the input display text
|
|
71
|
+
displayText.value = selectedTexts.join(', ');
|
|
72
|
+
|
|
73
|
+
console.log('Selected values:', items);
|
|
74
|
+
console.log('Type of first value:', typeof items[0]);
|
|
75
|
+
};
|
|
76
|
+
</script>
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { defineStore } from "pinia";
|
|
2
|
-
import { SnackPropTypes } from "@/components/snackbar/snack/snack";
|
|
3
|
-
import { ref, type Ref } from "vue";
|
|
4
|
-
|
|
5
|
-
const createSnack = (payload: SnackPropTypes): SnackStoreTypes => ({
|
|
6
|
-
...payload,
|
|
7
|
-
id: Math.random() * 1000,
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
export interface SnackStoreTypes extends SnackPropTypes {
|
|
11
|
-
id: number,
|
|
12
|
-
defaultAction?: () => void
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const useSnackbarStore = defineStore("snackbar-store", () => {
|
|
16
|
-
const snacks: Ref<SnackStoreTypes[]> = ref([]);
|
|
17
|
-
|
|
18
|
-
// Delete function for snacks
|
|
19
|
-
const eatSnack = (snack: SnackStoreTypes) => {
|
|
20
|
-
snacks.value = snacks.value.filter((s) => s.id !== snack.id);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const updateState = (payload: SnackPropTypes) => {
|
|
24
|
-
const snack = createSnack(payload);
|
|
25
|
-
|
|
26
|
-
// Add new snack to state array
|
|
27
|
-
snacks.value.push({...snack, defaultAction: () => eatSnack(snack)});
|
|
28
|
-
|
|
29
|
-
// At a certain duration, delete snack
|
|
30
|
-
setTimeout(() => {
|
|
31
|
-
eatSnack(snack);
|
|
32
|
-
}, payload.duration || 4000);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const message = (payload: SnackPropTypes) => {
|
|
36
|
-
updateState({ ...payload});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
snacks,
|
|
41
|
-
updateState,
|
|
42
|
-
message,
|
|
43
|
-
}
|
|
44
|
-
});
|
|
1
|
+
import { defineStore } from "pinia";
|
|
2
|
+
import { SnackPropTypes } from "@/components/snackbar/snack/snack";
|
|
3
|
+
import { ref, type Ref } from "vue";
|
|
4
|
+
|
|
5
|
+
const createSnack = (payload: SnackPropTypes): SnackStoreTypes => ({
|
|
6
|
+
...payload,
|
|
7
|
+
id: Math.random() * 1000,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export interface SnackStoreTypes extends SnackPropTypes {
|
|
11
|
+
id: number,
|
|
12
|
+
defaultAction?: () => void
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const useSnackbarStore = defineStore("snackbar-store", () => {
|
|
16
|
+
const snacks: Ref<SnackStoreTypes[]> = ref([]);
|
|
17
|
+
|
|
18
|
+
// Delete function for snacks
|
|
19
|
+
const eatSnack = (snack: SnackStoreTypes) => {
|
|
20
|
+
snacks.value = snacks.value.filter((s) => s.id !== snack.id);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const updateState = (payload: SnackPropTypes) => {
|
|
24
|
+
const snack = createSnack(payload);
|
|
25
|
+
|
|
26
|
+
// Add new snack to state array
|
|
27
|
+
snacks.value.push({...snack, defaultAction: () => eatSnack(snack)});
|
|
28
|
+
|
|
29
|
+
// At a certain duration, delete snack
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
eatSnack(snack);
|
|
32
|
+
}, payload.duration || 4000);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const message = (payload: SnackPropTypes) => {
|
|
36
|
+
updateState({ ...payload});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
snacks,
|
|
41
|
+
updateState,
|
|
42
|
+
message,
|
|
43
|
+
}
|
|
44
|
+
});
|