vuetify 3.3.13 → 3.3.15
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/json/attributes.json +70 -66
- package/dist/json/importMap.json +12 -12
- package/dist/json/tags.json +5 -4
- package/dist/json/web-types.json +274 -185
- package/dist/vuetify-labs.css +565 -486
- package/dist/vuetify-labs.d.ts +831 -462
- package/dist/vuetify-labs.esm.js +453 -310
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +452 -309
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +318 -239
- package/dist/vuetify.d.ts +678 -301
- package/dist/vuetify.esm.js +253 -173
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +252 -172
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +842 -830
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs +12 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +1 -1
- package/lib/components/VBadge/_variables.scss +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.css +13 -2
- package/lib/components/VBtnToggle/VBtnToggle.sass +3 -3
- package/lib/components/VBtnToggle/_variables.scss +2 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +14 -11
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +203 -87
- package/lib/components/VColorPicker/VColorPickerEdit.css +4 -2
- package/lib/components/VColorPicker/VColorPickerPreview.css +11 -6
- package/lib/components/VCombobox/VCombobox.mjs +11 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VField/VField.css +25 -7
- package/lib/components/VField/VField.sass +15 -1
- package/lib/components/VGrid/VGrid.css +153 -142
- package/lib/components/VIcon/VIcon.css +1 -0
- package/lib/components/VIcon/VIcon.sass +1 -0
- package/lib/components/VOverlay/useActivator.mjs +1 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +3 -2
- package/lib/components/VRadio/index.d.mts +82 -23
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +75 -109
- package/lib/components/VRangeSlider/index.d.mts +114 -33
- package/lib/components/VSelect/VSelect.mjs +12 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +19 -3
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +19 -5
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +8 -4
- package/lib/components/VSlider/VSliderTrack.css +22 -12
- package/lib/components/VSlider/index.d.mts +114 -33
- package/lib/components/VSwitch/VSwitch.css +7 -5
- package/lib/components/VSwitch/VSwitch.mjs +26 -16
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +6 -4
- package/lib/components/VSwitch/_variables.scss +5 -3
- package/lib/components/VSwitch/index.d.mts +82 -23
- package/lib/components/VTable/VTable.css +3 -0
- package/lib/components/VTable/VTable.sass +4 -0
- package/lib/components/VTable/_variables.scss +3 -0
- package/lib/components/VTabs/VTab.mjs +2 -2
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +1 -0
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +19 -10
- package/lib/components/VTimeline/VTimeline.sass +5 -0
- package/lib/components/VToolbar/VToolbar.css +4 -2
- package/lib/components/index.d.mts +676 -299
- package/lib/composables/color.mjs +6 -1
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +9 -9
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/theme.mjs +8 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDateInput/index.d.mts +2 -2
- package/lib/labs/VDatePicker/VDateCard.mjs +3 -0
- package/lib/labs/VDatePicker/VDateCard.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.mjs +51 -21
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.css +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +53 -35
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs +37 -28
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.mjs +19 -17
- package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/labs/VDatePicker/index.d.mts +148 -156
- package/lib/labs/VDateRangePicker/VDateRangeCard.mjs +3 -0
- package/lib/labs/VDateRangePicker/VDateRangeCard.mjs.map +1 -1
- package/lib/labs/VDateRangePicker/index.d.mts +59 -52
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.mts +8 -8
- package/lib/labs/components.d.mts +156 -164
- package/lib/locale/bg.mjs +23 -23
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/fa.mjs +16 -16
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/styles/tools/_rtl.sass +4 -2
- package/lib/styles/tools/_states.sass +5 -5
- package/lib/util/colorUtils.mjs +6 -0
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/helpers.mjs +10 -4
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
package/lib/locale/bg.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
badge: 'Значка',
|
|
3
|
-
open: '
|
|
3
|
+
open: 'Отвори',
|
|
4
4
|
close: 'Затвори',
|
|
5
5
|
dataIterator: {
|
|
6
6
|
noResultsText: 'Не са намерени записи',
|
|
@@ -28,19 +28,19 @@ export default {
|
|
|
28
28
|
pageText: '{0}-{1} от {2}'
|
|
29
29
|
},
|
|
30
30
|
dateRangeInput: {
|
|
31
|
-
divider: '
|
|
31
|
+
divider: 'до'
|
|
32
32
|
},
|
|
33
33
|
datePicker: {
|
|
34
|
-
ok: '
|
|
35
|
-
cancel: '
|
|
34
|
+
ok: 'ОК',
|
|
35
|
+
cancel: 'Отмяна',
|
|
36
36
|
range: {
|
|
37
|
-
title: '
|
|
38
|
-
header: '
|
|
37
|
+
title: 'Избор на дати',
|
|
38
|
+
header: 'Въвеждане на дати'
|
|
39
39
|
},
|
|
40
|
-
title: '
|
|
41
|
-
header: '
|
|
40
|
+
title: 'Избор на дата',
|
|
41
|
+
header: 'Въвеждане на дата',
|
|
42
42
|
input: {
|
|
43
|
-
placeholder: '
|
|
43
|
+
placeholder: 'Въведете дата'
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
noDataText: 'Няма налични данни',
|
|
@@ -55,18 +55,18 @@ export default {
|
|
|
55
55
|
moreEvents: 'Още {0}'
|
|
56
56
|
},
|
|
57
57
|
input: {
|
|
58
|
-
clear: '
|
|
59
|
-
prependAction: '{0}
|
|
60
|
-
appendAction: '{0}
|
|
61
|
-
otp: '
|
|
58
|
+
clear: 'Изчисти {0}',
|
|
59
|
+
prependAction: '{0} предшестващо действие',
|
|
60
|
+
appendAction: '{0} последващо действие',
|
|
61
|
+
otp: 'Моля, въведете OTP символ {0}'
|
|
62
62
|
},
|
|
63
63
|
fileInput: {
|
|
64
64
|
counter: '{0} файла',
|
|
65
65
|
counterSize: '{0} файла ({1} общо)'
|
|
66
66
|
},
|
|
67
67
|
timePicker: {
|
|
68
|
-
am: '
|
|
69
|
-
pm: '
|
|
68
|
+
am: 'пр. обяд',
|
|
69
|
+
pm: 'сл. обяд'
|
|
70
70
|
},
|
|
71
71
|
pagination: {
|
|
72
72
|
ariaLabel: {
|
|
@@ -75,23 +75,23 @@ export default {
|
|
|
75
75
|
previous: 'Предишна страница',
|
|
76
76
|
page: 'Отиди на страница {0}',
|
|
77
77
|
currentPage: 'Текуща страница, Страница {0}',
|
|
78
|
-
first: '
|
|
79
|
-
last: '
|
|
78
|
+
first: 'Първа страница',
|
|
79
|
+
last: 'Последна страница'
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
stepper: {
|
|
83
|
-
next: '
|
|
84
|
-
prev: '
|
|
83
|
+
next: 'Следващ',
|
|
84
|
+
prev: 'Предишен'
|
|
85
85
|
},
|
|
86
86
|
rating: {
|
|
87
87
|
ariaLabel: {
|
|
88
|
-
item: '
|
|
88
|
+
item: 'Оценка {0} от {1}'
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
|
-
loading: '
|
|
91
|
+
loading: 'Зареждане...',
|
|
92
92
|
infiniteScroll: {
|
|
93
|
-
loadMore: '
|
|
94
|
-
empty: '
|
|
93
|
+
loadMore: 'Зареди още',
|
|
94
|
+
empty: 'Няма повече'
|
|
95
95
|
}
|
|
96
96
|
};
|
|
97
97
|
//# sourceMappingURL=bg.mjs.map
|
package/lib/locale/bg.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bg.mjs","names":["badge","open","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","ok","cancel","range","title","header","input","placeholder","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","clear","prependAction","appendAction","otp","fileInput","counter","counterSize","timePicker","am","pm","pagination","root","previous","page","currentPage","first","last","stepper","rating","item","loading","infiniteScroll","loadMore","empty"],"sources":["../../src/locale/bg.ts"],"sourcesContent":["export default {\n badge: 'Значка',\n open: '
|
|
1
|
+
{"version":3,"file":"bg.mjs","names":["badge","open","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","ok","cancel","range","title","header","input","placeholder","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","clear","prependAction","appendAction","otp","fileInput","counter","counterSize","timePicker","am","pm","pagination","root","previous","page","currentPage","first","last","stepper","rating","item","loading","infiniteScroll","loadMore","empty"],"sources":["../../src/locale/bg.ts"],"sourcesContent":["export default {\n badge: 'Значка',\n open: 'Отвори',\n close: 'Затвори',\n dataIterator: {\n noResultsText: 'Не са намерени записи',\n loadingText: 'Зареждане на елементи...',\n },\n dataTable: {\n itemsPerPageText: 'Редове на страница:',\n ariaLabel: {\n sortDescending: 'Подреди в намаляващ ред.',\n sortAscending: 'Подреди в нарастващ ред.',\n sortNone: 'Без подредба.',\n activateNone: 'Активирай за премахване на подредбата.',\n activateDescending: 'Активирай за подредба в намаляващ ред.',\n activateAscending: 'Активирай за подредба в нарастващ ред.',\n },\n sortBy: 'Сортирай по',\n },\n dataFooter: {\n itemsPerPageText: 'Елементи на страница:',\n itemsPerPageAll: 'Всички',\n nextPage: 'Следваща страница',\n prevPage: 'Предишна страница',\n firstPage: 'Първа страница',\n lastPage: 'Последна страница',\n pageText: '{0}-{1} от {2}',\n },\n dateRangeInput: {\n divider: 'до',\n },\n datePicker: {\n ok: 'ОК',\n cancel: 'Отмяна',\n range: {\n title: 'Избор на дати',\n header: 'Въвеждане на дати',\n },\n title: 'Избор на дата',\n header: 'Въвеждане на дата',\n input: {\n placeholder: 'Въведете дата',\n },\n },\n noDataText: 'Няма налични данни',\n carousel: {\n prev: 'Предишна визуализация',\n next: 'Следваща визуализация',\n ariaLabel: {\n delimiter: 'Кадър {0} от {1} на въртележката',\n },\n },\n calendar: {\n moreEvents: 'Още {0}',\n },\n input: {\n clear: 'Изчисти {0}',\n prependAction: '{0} предшестващо действие',\n appendAction: '{0} последващо действие',\n otp: 'Моля, въведете OTP символ {0}',\n },\n fileInput: {\n counter: '{0} файла',\n counterSize: '{0} файла ({1} общо)',\n },\n timePicker: {\n am: 'пр. обяд',\n pm: 'сл. обяд',\n },\n pagination: {\n ariaLabel: {\n root: 'Странициране',\n next: 'Следваща страница',\n previous: 'Предишна страница',\n page: 'Отиди на страница {0}',\n currentPage: 'Текуща страница, Страница {0}',\n first: 'Първа страница',\n last: 'Последна страница',\n },\n },\n stepper: {\n next: 'Следващ',\n prev: 'Предишен',\n },\n rating: {\n ariaLabel: {\n item: 'Оценка {0} от {1}',\n },\n },\n loading: 'Зареждане...',\n infiniteScroll: {\n loadMore: 'Зареди още',\n empty: 'Няма повече',\n },\n}\n"],"mappings":"AAAA,eAAe;EACbA,KAAK,EAAE,QAAQ;EACfC,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE,SAAS;EAChBC,YAAY,EAAE;IACZC,aAAa,EAAE,uBAAuB;IACtCC,WAAW,EAAE;EACf,CAAC;EACDC,SAAS,EAAE;IACTC,gBAAgB,EAAE,qBAAqB;IACvCC,SAAS,EAAE;MACTC,cAAc,EAAE,0BAA0B;MAC1CC,aAAa,EAAE,0BAA0B;MACzCC,QAAQ,EAAE,eAAe;MACzBC,YAAY,EAAE,wCAAwC;MACtDC,kBAAkB,EAAE,wCAAwC;MAC5DC,iBAAiB,EAAE;IACrB,CAAC;IACDC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVT,gBAAgB,EAAE,uBAAuB;IACzCU,eAAe,EAAE,QAAQ;IACzBC,QAAQ,EAAE,mBAAmB;IAC7BC,QAAQ,EAAE,mBAAmB;IAC7BC,SAAS,EAAE,gBAAgB;IAC3BC,QAAQ,EAAE,mBAAmB;IAC7BC,QAAQ,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE;IACdC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVC,EAAE,EAAE,IAAI;IACRC,MAAM,EAAE,QAAQ;IAChBC,KAAK,EAAE;MACLC,KAAK,EAAE,eAAe;MACtBC,MAAM,EAAE;IACV,CAAC;IACDD,KAAK,EAAE,eAAe;IACtBC,MAAM,EAAE,mBAAmB;IAC3BC,KAAK,EAAE;MACLC,WAAW,EAAE;IACf;EACF,CAAC;EACDC,UAAU,EAAE,oBAAoB;EAChCC,QAAQ,EAAE;IACRC,IAAI,EAAE,uBAAuB;IAC7BC,IAAI,EAAE,uBAAuB;IAC7B5B,SAAS,EAAE;MACT6B,SAAS,EAAE;IACb;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,UAAU,EAAE;EACd,CAAC;EACDR,KAAK,EAAE;IACLS,KAAK,EAAE,aAAa;IACpBC,aAAa,EAAE,2BAA2B;IAC1CC,YAAY,EAAE,yBAAyB;IACvCC,GAAG,EAAE;EACP,CAAC;EACDC,SAAS,EAAE;IACTC,OAAO,EAAE,WAAW;IACpBC,WAAW,EAAE;EACf,CAAC;EACDC,UAAU,EAAE;IACVC,EAAE,EAAE,UAAU;IACdC,EAAE,EAAE;EACN,CAAC;EACDC,UAAU,EAAE;IACV1C,SAAS,EAAE;MACT2C,IAAI,EAAE,cAAc;MACpBf,IAAI,EAAE,mBAAmB;MACzBgB,QAAQ,EAAE,mBAAmB;MAC7BC,IAAI,EAAE,uBAAuB;MAC7BC,WAAW,EAAE,+BAA+B;MAC5CC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE;IACR;EACF,CAAC;EACDC,OAAO,EAAE;IACPrB,IAAI,EAAE,SAAS;IACfD,IAAI,EAAE;EACR,CAAC;EACDuB,MAAM,EAAE;IACNlD,SAAS,EAAE;MACTmD,IAAI,EAAE;IACR;EACF,CAAC;EACDC,OAAO,EAAE,cAAc;EACvBC,cAAc,EAAE;IACdC,QAAQ,EAAE,YAAY;IACtBC,KAAK,EAAE;EACT;AACF,CAAC"}
|
package/lib/locale/fa.mjs
CHANGED
|
@@ -32,15 +32,15 @@ export default {
|
|
|
32
32
|
},
|
|
33
33
|
datePicker: {
|
|
34
34
|
ok: 'OK',
|
|
35
|
-
cancel: '
|
|
35
|
+
cancel: 'لغو',
|
|
36
36
|
range: {
|
|
37
|
-
title: '
|
|
38
|
-
header: '
|
|
37
|
+
title: 'انتخاب تاریخها',
|
|
38
|
+
header: 'تاریخها را وارد کنید'
|
|
39
39
|
},
|
|
40
|
-
title: '
|
|
41
|
-
header: '
|
|
40
|
+
title: 'انتخاب تاریخ',
|
|
41
|
+
header: 'تاریخ را وارد کنید',
|
|
42
42
|
input: {
|
|
43
|
-
placeholder: '
|
|
43
|
+
placeholder: 'تاریخ را وارد کنید'
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
noDataText: 'دادهای موجود نیست',
|
|
@@ -71,27 +71,27 @@ export default {
|
|
|
71
71
|
pagination: {
|
|
72
72
|
ariaLabel: {
|
|
73
73
|
root: 'جهت یابی صفحه',
|
|
74
|
-
next: '
|
|
75
|
-
previous: '
|
|
74
|
+
next: 'صفحهی بعد',
|
|
75
|
+
previous: 'صفحهی قبلی',
|
|
76
76
|
page: 'برو صفحه {0}',
|
|
77
|
-
currentPage: '{0}
|
|
78
|
-
first: '
|
|
79
|
-
last: '
|
|
77
|
+
currentPage: '{0} صفحهی فعلی ، صفحهی',
|
|
78
|
+
first: 'صفحهی اول',
|
|
79
|
+
last: 'صفحهی آخر'
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
stepper: {
|
|
83
|
-
next: '
|
|
84
|
-
prev: '
|
|
83
|
+
next: 'بعدی',
|
|
84
|
+
prev: 'قبلی'
|
|
85
85
|
},
|
|
86
86
|
rating: {
|
|
87
87
|
ariaLabel: {
|
|
88
88
|
item: 'Rating {0} of {1}'
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
|
-
loading: '
|
|
91
|
+
loading: 'در حال بارگذاری...',
|
|
92
92
|
infiniteScroll: {
|
|
93
|
-
loadMore: '
|
|
94
|
-
empty: '
|
|
93
|
+
loadMore: 'بارگذاری بیشتر',
|
|
94
|
+
empty: 'پایان'
|
|
95
95
|
}
|
|
96
96
|
};
|
|
97
97
|
//# sourceMappingURL=fa.mjs.map
|
package/lib/locale/fa.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fa.mjs","names":["badge","open","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","ok","cancel","range","title","header","input","placeholder","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","clear","prependAction","appendAction","otp","fileInput","counter","counterSize","timePicker","am","pm","pagination","root","previous","page","currentPage","first","last","stepper","rating","item","loading","infiniteScroll","loadMore","empty"],"sources":["../../src/locale/fa.ts"],"sourcesContent":["export default {\n badge: 'نشان',\n open: 'Open',\n close: 'بستن',\n dataIterator: {\n noResultsText: 'نتیجهای یافت نشد',\n loadingText: 'در حال بارگذاری...',\n },\n dataTable: {\n itemsPerPageText: 'ردیف در صفحه:',\n ariaLabel: {\n sortDescending: 'مرتبسازی نزولی',\n sortAscending: 'مرتبسازی صعودی',\n sortNone: 'بدون مرتبسازی',\n activateNone: 'غیرفعالسازی مرتبسازی',\n activateDescending: 'غیرفعالسازی مرتبسازی نزولی',\n activateAscending: 'غیرفعالسازی مرتبسازی صعودی',\n },\n sortBy: 'مرتبسازی براساس',\n },\n dataFooter: {\n itemsPerPageText: 'ردیف در صفحه:',\n itemsPerPageAll: 'همه',\n nextPage: 'صفحهی بعد',\n prevPage: 'صفحهی قبل',\n firstPage: 'صفحهی یکم',\n lastPage: 'صفحهی آخر',\n pageText: '{0} تا {1} از {2}',\n },\n dateRangeInput: {\n divider: 'to',\n },\n datePicker: {\n ok: 'OK',\n cancel: '
|
|
1
|
+
{"version":3,"file":"fa.mjs","names":["badge","open","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","ok","cancel","range","title","header","input","placeholder","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","clear","prependAction","appendAction","otp","fileInput","counter","counterSize","timePicker","am","pm","pagination","root","previous","page","currentPage","first","last","stepper","rating","item","loading","infiniteScroll","loadMore","empty"],"sources":["../../src/locale/fa.ts"],"sourcesContent":["export default {\n badge: 'نشان',\n open: 'Open',\n close: 'بستن',\n dataIterator: {\n noResultsText: 'نتیجهای یافت نشد',\n loadingText: 'در حال بارگذاری...',\n },\n dataTable: {\n itemsPerPageText: 'ردیف در صفحه:',\n ariaLabel: {\n sortDescending: 'مرتبسازی نزولی',\n sortAscending: 'مرتبسازی صعودی',\n sortNone: 'بدون مرتبسازی',\n activateNone: 'غیرفعالسازی مرتبسازی',\n activateDescending: 'غیرفعالسازی مرتبسازی نزولی',\n activateAscending: 'غیرفعالسازی مرتبسازی صعودی',\n },\n sortBy: 'مرتبسازی براساس',\n },\n dataFooter: {\n itemsPerPageText: 'ردیف در صفحه:',\n itemsPerPageAll: 'همه',\n nextPage: 'صفحهی بعد',\n prevPage: 'صفحهی قبل',\n firstPage: 'صفحهی یکم',\n lastPage: 'صفحهی آخر',\n pageText: '{0} تا {1} از {2}',\n },\n dateRangeInput: {\n divider: 'to',\n },\n datePicker: {\n ok: 'OK',\n cancel: 'لغو',\n range: {\n title: 'انتخاب تاریخها',\n header: 'تاریخها را وارد کنید',\n },\n title: 'انتخاب تاریخ',\n header: 'تاریخ را وارد کنید',\n input: {\n placeholder: 'تاریخ را وارد کنید',\n },\n },\n noDataText: 'دادهای موجود نیست',\n carousel: {\n prev: 'اسلاید قبلی',\n next: 'اسلاید بعدی',\n ariaLabel: {\n delimiter: 'اسلاید {0} از {1}',\n },\n },\n calendar: {\n moreEvents: '{بیشتر {0',\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}',\n },\n fileInput: {\n counter: '{0} پرونده',\n counterSize: '{0} پرونده ({1} در کل)',\n },\n timePicker: {\n am: 'قبل از ظهر',\n pm: 'بعد از ظهر',\n },\n pagination: {\n ariaLabel: {\n root: 'جهت یابی صفحه',\n next: 'صفحهی بعد',\n previous: 'صفحهی قبلی',\n page: 'برو صفحه {0}',\n currentPage: '{0} صفحهی فعلی ، صفحهی',\n first: 'صفحهی اول',\n last: 'صفحهی آخر',\n },\n },\n stepper: {\n next: 'بعدی',\n prev: 'قبلی',\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}',\n },\n },\n loading: 'در حال بارگذاری...',\n infiniteScroll: {\n loadMore: 'بارگذاری بیشتر',\n empty: 'پایان',\n },\n}\n"],"mappings":"AAAA,eAAe;EACbA,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,MAAM;EACbC,YAAY,EAAE;IACZC,aAAa,EAAE,mBAAmB;IAClCC,WAAW,EAAE;EACf,CAAC;EACDC,SAAS,EAAE;IACTC,gBAAgB,EAAE,eAAe;IACjCC,SAAS,EAAE;MACTC,cAAc,EAAE,iBAAiB;MACjCC,aAAa,EAAE,iBAAiB;MAChCC,QAAQ,EAAE,gBAAgB;MAC1BC,YAAY,EAAE,wBAAwB;MACtCC,kBAAkB,EAAE,8BAA8B;MAClDC,iBAAiB,EAAE;IACrB,CAAC;IACDC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVT,gBAAgB,EAAE,eAAe;IACjCU,eAAe,EAAE,KAAK;IACtBC,QAAQ,EAAE,YAAY;IACtBC,QAAQ,EAAE,YAAY;IACtBC,SAAS,EAAE,YAAY;IACvBC,QAAQ,EAAE,YAAY;IACtBC,QAAQ,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE;IACdC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVC,EAAE,EAAE,IAAI;IACRC,MAAM,EAAE,KAAK;IACbC,KAAK,EAAE;MACLC,KAAK,EAAE,iBAAiB;MACxBC,MAAM,EAAE;IACV,CAAC;IACDD,KAAK,EAAE,cAAc;IACrBC,MAAM,EAAE,oBAAoB;IAC5BC,KAAK,EAAE;MACLC,WAAW,EAAE;IACf;EACF,CAAC;EACDC,UAAU,EAAE,oBAAoB;EAChCC,QAAQ,EAAE;IACRC,IAAI,EAAE,aAAa;IACnBC,IAAI,EAAE,aAAa;IACnB5B,SAAS,EAAE;MACT6B,SAAS,EAAE;IACb;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,UAAU,EAAE;EACd,CAAC;EACDR,KAAK,EAAE;IACLS,KAAK,EAAE,WAAW;IAClBC,aAAa,EAAE,sBAAsB;IACrCC,YAAY,EAAE,qBAAqB;IACnCC,GAAG,EAAE;EACP,CAAC;EACDC,SAAS,EAAE;IACTC,OAAO,EAAE,YAAY;IACrBC,WAAW,EAAE;EACf,CAAC;EACDC,UAAU,EAAE;IACVC,EAAE,EAAE,YAAY;IAChBC,EAAE,EAAE;EACN,CAAC;EACDC,UAAU,EAAE;IACV1C,SAAS,EAAE;MACT2C,IAAI,EAAE,eAAe;MACrBf,IAAI,EAAE,YAAY;MAClBgB,QAAQ,EAAE,aAAa;MACvBC,IAAI,EAAE,cAAc;MACpBC,WAAW,EAAE,0BAA0B;MACvCC,KAAK,EAAE,YAAY;MACnBC,IAAI,EAAE;IACR;EACF,CAAC;EACDC,OAAO,EAAE;IACPrB,IAAI,EAAE,MAAM;IACZD,IAAI,EAAE;EACR,CAAC;EACDuB,MAAM,EAAE;IACNlD,SAAS,EAAE;MACTmD,IAAI,EAAE;IACR;EACF,CAAC;EACDC,OAAO,EAAE,oBAAoB;EAC7BC,cAAc,EAAE;IACdC,QAAQ,EAAE,gBAAgB;IAC1BC,KAAK,EAAE;EACT;AACF,CAAC"}
|
package/lib/locale/no.mjs
CHANGED
package/lib/locale/no.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no.mjs","names":["badge","open","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","ok","cancel","range","title","header","input","placeholder","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","clear","prependAction","appendAction","otp","fileInput","counter","counterSize","timePicker","am","pm","pagination","root","previous","page","currentPage","first","last","stepper","rating","item","loading","infiniteScroll","loadMore","empty"],"sources":["../../src/locale/no.ts"],"sourcesContent":["export default {\n badge: 'Skilt',\n open: 'Open',\n close: 'Lukk',\n dataIterator: {\n noResultsText: 'Fant ingen matchende elementer.',\n loadingText: 'Laster elementer...',\n },\n dataTable: {\n itemsPerPageText: 'Rader per side:',\n ariaLabel: {\n sortDescending: 'Sortert synkende.',\n sortAscending: 'Sortert stigende.',\n sortNone: 'Ikke sortert.',\n activateNone: 'Aktiver for å fjerne sortering.',\n activateDescending: 'Aktiver for å sortere synkende.',\n activateAscending: 'Aktiver for å sortere stigende.',\n },\n sortBy: 'Sorter etter',\n },\n dataFooter: {\n itemsPerPageText: 'Elementer per side:',\n itemsPerPageAll: 'Alle',\n nextPage: 'Neste side',\n prevPage: 'Forrige side',\n firstPage: 'Første side',\n lastPage: 'Siste side',\n pageText: '{0}-{1} av {2}',\n },\n dateRangeInput: {\n divider: '
|
|
1
|
+
{"version":3,"file":"no.mjs","names":["badge","open","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","ok","cancel","range","title","header","input","placeholder","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","clear","prependAction","appendAction","otp","fileInput","counter","counterSize","timePicker","am","pm","pagination","root","previous","page","currentPage","first","last","stepper","rating","item","loading","infiniteScroll","loadMore","empty"],"sources":["../../src/locale/no.ts"],"sourcesContent":["export default {\n badge: 'Skilt',\n open: 'Open',\n close: 'Lukk',\n dataIterator: {\n noResultsText: 'Fant ingen matchende elementer.',\n loadingText: 'Laster elementer...',\n },\n dataTable: {\n itemsPerPageText: 'Rader per side:',\n ariaLabel: {\n sortDescending: 'Sortert synkende.',\n sortAscending: 'Sortert stigende.',\n sortNone: 'Ikke sortert.',\n activateNone: 'Aktiver for å fjerne sortering.',\n activateDescending: 'Aktiver for å sortere synkende.',\n activateAscending: 'Aktiver for å sortere stigende.',\n },\n sortBy: 'Sorter etter',\n },\n dataFooter: {\n itemsPerPageText: 'Elementer per side:',\n itemsPerPageAll: 'Alle',\n nextPage: 'Neste side',\n prevPage: 'Forrige side',\n firstPage: 'Første side',\n lastPage: 'Siste side',\n pageText: '{0}-{1} av {2}',\n },\n dateRangeInput: {\n divider: 'til',\n },\n datePicker: {\n ok: 'OK',\n cancel: 'Avbryt',\n range: {\n title: 'Velg datoer',\n header: 'Velg datoer',\n },\n title: 'Velg dato',\n header: 'Velg dato',\n input: {\n placeholder: 'Fyll inn dato',\n },\n },\n noDataText: 'Ingen data er tilgjengelig',\n carousel: {\n prev: 'Forrige bilde',\n next: 'Neste bilde',\n ariaLabel: {\n delimiter: 'Karusellbilde {0} av {1}',\n },\n },\n calendar: {\n moreEvents: '{0} flere',\n },\n input: {\n clear: 'Fjern {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}',\n },\n fileInput: {\n counter: '{0} filer',\n counterSize: '{0} filer ({1} totalt)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n root: 'Paginasjonsnavigasjon',\n next: 'Neste side',\n previous: 'Forrige side',\n page: 'Gå til side {0}',\n currentPage: 'Gjeldende side, side {0}',\n first: 'Første side',\n last: 'Siste side',\n },\n },\n stepper: {\n next: 'Neste',\n prev: 'Forrige',\n },\n rating: {\n ariaLabel: {\n item: 'Anmeldelse {0} av {1}',\n },\n },\n loading: 'Laster...',\n infiniteScroll: {\n loadMore: 'Last flere',\n empty: 'Det var alt',\n },\n}\n"],"mappings":"AAAA,eAAe;EACbA,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,MAAM;EACbC,YAAY,EAAE;IACZC,aAAa,EAAE,iCAAiC;IAChDC,WAAW,EAAE;EACf,CAAC;EACDC,SAAS,EAAE;IACTC,gBAAgB,EAAE,iBAAiB;IACnCC,SAAS,EAAE;MACTC,cAAc,EAAE,mBAAmB;MACnCC,aAAa,EAAE,mBAAmB;MAClCC,QAAQ,EAAE,eAAe;MACzBC,YAAY,EAAE,iCAAiC;MAC/CC,kBAAkB,EAAE,iCAAiC;MACrDC,iBAAiB,EAAE;IACrB,CAAC;IACDC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVT,gBAAgB,EAAE,qBAAqB;IACvCU,eAAe,EAAE,MAAM;IACvBC,QAAQ,EAAE,YAAY;IACtBC,QAAQ,EAAE,cAAc;IACxBC,SAAS,EAAE,aAAa;IACxBC,QAAQ,EAAE,YAAY;IACtBC,QAAQ,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE;IACdC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVC,EAAE,EAAE,IAAI;IACRC,MAAM,EAAE,QAAQ;IAChBC,KAAK,EAAE;MACLC,KAAK,EAAE,aAAa;MACpBC,MAAM,EAAE;IACV,CAAC;IACDD,KAAK,EAAE,WAAW;IAClBC,MAAM,EAAE,WAAW;IACnBC,KAAK,EAAE;MACLC,WAAW,EAAE;IACf;EACF,CAAC;EACDC,UAAU,EAAE,4BAA4B;EACxCC,QAAQ,EAAE;IACRC,IAAI,EAAE,eAAe;IACrBC,IAAI,EAAE,aAAa;IACnB5B,SAAS,EAAE;MACT6B,SAAS,EAAE;IACb;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,UAAU,EAAE;EACd,CAAC;EACDR,KAAK,EAAE;IACLS,KAAK,EAAE,WAAW;IAClBC,aAAa,EAAE,sBAAsB;IACrCC,YAAY,EAAE,qBAAqB;IACnCC,GAAG,EAAE;EACP,CAAC;EACDC,SAAS,EAAE;IACTC,OAAO,EAAE,WAAW;IACpBC,WAAW,EAAE;EACf,CAAC;EACDC,UAAU,EAAE;IACVC,EAAE,EAAE,IAAI;IACRC,EAAE,EAAE;EACN,CAAC;EACDC,UAAU,EAAE;IACV1C,SAAS,EAAE;MACT2C,IAAI,EAAE,uBAAuB;MAC7Bf,IAAI,EAAE,YAAY;MAClBgB,QAAQ,EAAE,cAAc;MACxBC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,0BAA0B;MACvCC,KAAK,EAAE,aAAa;MACpBC,IAAI,EAAE;IACR;EACF,CAAC;EACDC,OAAO,EAAE;IACPrB,IAAI,EAAE,OAAO;IACbD,IAAI,EAAE;EACR,CAAC;EACDuB,MAAM,EAAE;IACNlD,SAAS,EAAE;MACTmD,IAAI,EAAE;IACR;EACF,CAAC;EACDC,OAAO,EAAE,WAAW;EACpBC,cAAc,EAAE;IACdC,QAAQ,EAAE,YAAY;IACtBC,KAAK,EAAE;EACT;AACF,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
@use 'sass:selector'
|
|
2
|
+
|
|
1
3
|
@mixin rtl()
|
|
2
|
-
|
|
4
|
+
@at-root #{selector.append('.v-locale--is-rtl', &)},
|
|
3
5
|
.v-locale--is-rtl &
|
|
4
6
|
@content
|
|
5
7
|
|
|
6
8
|
@mixin ltr()
|
|
7
|
-
|
|
9
|
+
@at-root #{selector.append('.v-locale--is-ltr', &)},
|
|
8
10
|
.v-locale--is-ltr &
|
|
9
11
|
@content
|
|
@@ -24,19 +24,19 @@
|
|
|
24
24
|
&[aria-haspopup="menu"][aria-expanded="true"]
|
|
25
25
|
@include active-states($selector)
|
|
26
26
|
|
|
27
|
-
@mixin active-states ($selector)
|
|
27
|
+
@mixin active-states ($selector, $base: map.get(settings.$states, 'activated'))
|
|
28
28
|
#{$selector}
|
|
29
|
-
opacity: calc(#{
|
|
29
|
+
opacity: calc(#{$base} * var(--v-theme-overlay-multiplier))
|
|
30
30
|
|
|
31
31
|
&:hover
|
|
32
32
|
#{$selector}
|
|
33
|
-
opacity: calc((#{
|
|
33
|
+
opacity: calc((#{$base} + #{map.get(settings.$states, 'hover')}) * var(--v-theme-overlay-multiplier))
|
|
34
34
|
|
|
35
35
|
&:focus-visible
|
|
36
36
|
#{$selector}
|
|
37
|
-
opacity: calc((#{
|
|
37
|
+
opacity: calc((#{$base} + #{map.get(settings.$states, 'focus')}) * var(--v-theme-overlay-multiplier))
|
|
38
38
|
|
|
39
39
|
@supports not selector(:focus-visible)
|
|
40
40
|
&:focus
|
|
41
41
|
#{$selector}
|
|
42
|
-
opacity: calc((#{
|
|
42
|
+
opacity: calc((#{$base} + #{map.get(settings.$states, 'focus')}) * var(--v-theme-overlay-multiplier))
|
package/lib/util/colorUtils.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
+
import { APCAcontrast } from "./color/APCA.mjs";
|
|
2
3
|
import { consoleWarn } from "./console.mjs";
|
|
3
4
|
import { chunk, has, padEnd } from "./helpers.mjs";
|
|
4
5
|
import * as CIELAB from "./color/transformCIELAB.mjs";
|
|
@@ -296,4 +297,9 @@ export function getContrast(first, second) {
|
|
|
296
297
|
const dark = Math.min(l1, l2);
|
|
297
298
|
return (light + 0.05) / (dark + 0.05);
|
|
298
299
|
}
|
|
300
|
+
export function getForeground(color) {
|
|
301
|
+
const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));
|
|
302
|
+
const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));
|
|
303
|
+
return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';
|
|
304
|
+
}
|
|
299
305
|
//# sourceMappingURL=colorUtils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorUtils.mjs","names":["consoleWarn","chunk","has","padEnd","CIELAB","sRGB","isCssColor","color","test","cssColorRe","mappers","rgb","r","g","b","a","rgba","hsl","h","s","l","HSLtoRGB","hsla","hsv","v","HSVtoRGB","hsva","parseColor","isNaN","groups","match","fn","values","realValues","split","map","endsWith","includes","parseFloat","hex","startsWith","slice","length","char","join","int","parseInt","HexToRGB","HSLtoHSV","TypeError","String","constructor","name","RGBToInt","classToHex","colors","currentTheme","colorName","colorModifier","toString","trim","replace","hexColor","base","f","n","k","Math","max","min","round","RGBtoHSV","HSVtoHSL","sprime","RGBtoCSS","_ref","undefined","HSVtoCSS","toHex","substr","toUpperCase","RGBtoHex","_ref2","parseHex","c","HexToHSV","HSVtoHex","x","parseGradient","gradient","Object","lighten","value","amount","lab","fromXYZ","toXYZ","darken","getLuma","getContrast","first","second","l1","l2","light","dark"],"sources":["../../src/util/colorUtils.ts"],"sourcesContent":["// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as CIELAB from '@/util/color/transformCIELAB'\nimport * as sRGB from '@/util/color/transformSRGB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"colorUtils.mjs","names":["APCAcontrast","consoleWarn","chunk","has","padEnd","CIELAB","sRGB","isCssColor","color","test","cssColorRe","mappers","rgb","r","g","b","a","rgba","hsl","h","s","l","HSLtoRGB","hsla","hsv","v","HSVtoRGB","hsva","parseColor","isNaN","groups","match","fn","values","realValues","split","map","endsWith","includes","parseFloat","hex","startsWith","slice","length","char","join","int","parseInt","HexToRGB","HSLtoHSV","TypeError","String","constructor","name","RGBToInt","classToHex","colors","currentTheme","colorName","colorModifier","toString","trim","replace","hexColor","base","f","n","k","Math","max","min","round","RGBtoHSV","HSVtoHSL","sprime","RGBtoCSS","_ref","undefined","HSVtoCSS","toHex","substr","toUpperCase","RGBtoHex","_ref2","parseHex","c","HexToHSV","HSVtoHex","x","parseGradient","gradient","Object","lighten","value","amount","lab","fromXYZ","toXYZ","darken","getLuma","getContrast","first","second","l1","l2","light","dark","getForeground","blackContrast","abs","whiteContrast"],"sources":["../../src/util/colorUtils.ts"],"sourcesContent":["// Utilities\nimport { APCAcontrast } from './color/APCA'\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as CIELAB from '@/util/color/transformCIELAB'\nimport * as sRGB from '@/util/color/transformSRGB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n\nexport function getForeground (color: Color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)))\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)))\n\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000'\n}\n"],"mappings":"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"}
|
package/lib/util/helpers.mjs
CHANGED
|
@@ -158,14 +158,22 @@ export function only(obj, include) {
|
|
|
158
158
|
include.forEach(prop => clone[prop] = obj[prop]);
|
|
159
159
|
return clone;
|
|
160
160
|
}
|
|
161
|
+
const onRE = /^on[^a-z]/;
|
|
162
|
+
export const isOn = key => onRE.test(key);
|
|
163
|
+
const bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];
|
|
161
164
|
|
|
162
165
|
/**
|
|
163
166
|
* Filter attributes that should be applied to
|
|
164
|
-
* the root element of
|
|
167
|
+
* the root element of an input component. Remaining
|
|
165
168
|
* attributes should be passed to the <input> element inside.
|
|
166
169
|
*/
|
|
167
170
|
export function filterInputAttrs(attrs) {
|
|
168
|
-
|
|
171
|
+
const [events, props] = pick(attrs, [onRE]);
|
|
172
|
+
const inputEvents = omit(events, bubblingEvents);
|
|
173
|
+
const [rootAttrs, inputAttrs] = pick(props, ['class', 'style', 'id', /^data-/]);
|
|
174
|
+
Object.assign(rootAttrs, events);
|
|
175
|
+
Object.assign(inputAttrs, inputEvents);
|
|
176
|
+
return [rootAttrs, inputAttrs];
|
|
169
177
|
}
|
|
170
178
|
|
|
171
179
|
/**
|
|
@@ -398,8 +406,6 @@ export function destructComputed(getter) {
|
|
|
398
406
|
export function includes(arr, val) {
|
|
399
407
|
return arr.includes(val);
|
|
400
408
|
}
|
|
401
|
-
const onRE = /^on[^a-z]/;
|
|
402
|
-
export const isOn = key => onRE.test(key);
|
|
403
409
|
export function eventName(propName) {
|
|
404
410
|
return propName[2].toLowerCase() + propName.slice(3);
|
|
405
411
|
}
|