@bethinkpl/design-system 34.0.7 → 34.0.9

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 (53) hide show
  1. package/dist/design-system.css +1 -1
  2. package/dist/design-system.js +6121 -6036
  3. package/dist/design-system.js.map +1 -1
  4. package/dist/i18n/en/datePicker.json +4 -0
  5. package/dist/i18n/pl/datePicker.json +4 -0
  6. package/dist/lib/js/components/Buttons/IconButton/IconButton.vue.d.ts +1 -0
  7. package/dist/lib/js/components/Cards/CardExpandable/CardExpandable.vue.d.ts +1 -0
  8. package/dist/lib/js/components/DatePickers/DateBox/DateBox.vue.d.ts +7 -3
  9. package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.composables.d.ts +3 -1
  10. package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.vue.d.ts +10 -3
  11. package/dist/lib/js/components/DatePickers/DateRangePicker/DateRangePicker.vue.d.ts +12 -4
  12. package/dist/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue.d.ts +2 -0
  13. package/dist/lib/js/components/Drawer/DrawerListItem/DrawerListItem.vue.d.ts +1 -0
  14. package/dist/lib/js/components/Drawer/DrawerSection/DrawerSection.vue.d.ts +3 -0
  15. package/dist/lib/js/components/Form/RadioButton/RadioButton.vue.d.ts +1 -0
  16. package/dist/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue.d.ts +2 -0
  17. package/dist/lib/js/components/Headers/SectionHeader/SectionHeader.vue.d.ts +2 -0
  18. package/dist/lib/js/components/Icons/Icon/Icon.consts.d.ts +1 -0
  19. package/dist/lib/js/components/Modal/Modal.vue.d.ts +1 -0
  20. package/dist/lib/js/components/Modals/Modal/Modal.vue.d.ts +2 -0
  21. package/dist/lib/js/components/Modals/ModalDialog/ModalDialog.vue.d.ts +2 -0
  22. package/dist/lib/js/components/Pagination/Pagination.vue.d.ts +3 -0
  23. package/dist/lib/js/components/ProgressBar/ProgressBar.vue.d.ts +1 -0
  24. package/dist/lib/js/components/ProgressDonutChart/ProgressDonutChart.vue.d.ts +1 -0
  25. package/dist/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue.d.ts +1 -0
  26. package/dist/lib/js/components/RichList/RichListItem/RichListItem.vue.d.ts +1 -0
  27. package/dist/lib/js/components/SelectList/SelectListItem/SelectListItem.vue.d.ts +1 -0
  28. package/dist/lib/js/components/SelectList/SelectListItemToggle/SelectListItemToggle.vue.d.ts +1 -0
  29. package/dist/lib/js/components/Statuses/AccessStatus/AccessStatus.vue.d.ts +1 -0
  30. package/dist/lib/js/components/Statuses/BlockadeStatus/BlockadeStatus.vue.d.ts +1 -0
  31. package/dist/lib/js/components/SurveyQuestions/SurveyQuestionOpenEnded/SurveyQuestionOpenEnded.vue.d.ts +3 -0
  32. package/dist/lib/js/components/SurveyQuestions/SurveyQuestionScale/SurveyQuestionScale.vue.d.ts +3 -0
  33. package/dist/lib/js/components/Switch/Switch.vue.d.ts +1 -0
  34. package/dist/lib/js/components/Tile/Tile.sb.shared.d.ts +1 -0
  35. package/dist/lib/js/components/Toggles/ToggleButton/ToggleButton.vue.d.ts +1 -0
  36. package/dist/lib/js/composables/useLegacyI18n.d.ts +3 -1
  37. package/dist/lib/js/i18n/en.d.ts +2 -0
  38. package/dist/lib/js/i18n/index.d.ts +6 -0
  39. package/dist/lib/js/i18n/pl.d.ts +2 -0
  40. package/dist/lib/js/icons/fontawesome.d.ts +1 -0
  41. package/lib/js/components/DatePickers/DateBox/DateBox.vue +16 -6
  42. package/lib/js/components/DatePickers/DatePicker/DatePicker.composables.ts +20 -3
  43. package/lib/js/components/DatePickers/DatePicker/DatePicker.vue +14 -5
  44. package/lib/js/components/DatePickers/DateRangePicker/DateRangePicker.vue +13 -2
  45. package/lib/js/composables/useLegacyI18n.ts +6 -2
  46. package/lib/js/i18n/en/datePicker.json +4 -0
  47. package/lib/js/i18n/en.ts +2 -0
  48. package/lib/js/i18n/index.ts +6 -0
  49. package/lib/js/i18n/pl/datePicker.json +4 -0
  50. package/lib/js/i18n/pl.ts +2 -0
  51. package/lib/js/icons/fontawesome.ts +2 -0
  52. package/lib/js/vue-custom.d.ts +3 -1
  53. package/package.json +1 -1
@@ -356,6 +356,7 @@ import {
356
356
  localWeekdayName,
357
357
  } from '../../../../../tools/importers/helpers/dates';
358
358
  import { capitalizeFirstLetter } from '../../../../../tools/importers/helpers/modifiers';
359
+ import { useLegacyI18n } from '../../../composables/useLegacyI18n';
359
360
 
360
361
  export default defineComponent({
361
362
  name: 'DateBox',
@@ -369,7 +370,7 @@ export default defineComponent({
369
370
  },
370
371
  placeholder: {
371
372
  type: String,
372
- default: 'Ustaw',
373
+ default: null,
373
374
  },
374
375
  startDate: {
375
376
  type: Date,
@@ -406,6 +407,10 @@ export default defineComponent({
406
407
  default: false,
407
408
  },
408
409
  },
410
+ setup() {
411
+ const { locale, t } = useLegacyI18n();
412
+ return { locale, t };
413
+ },
409
414
  data() {
410
415
  return {
411
416
  ICONS: Object.freeze(ICONS),
@@ -417,9 +422,9 @@ export default defineComponent({
417
422
  computed: {
418
423
  startDateText() {
419
424
  if (this.startDate) {
420
- return localMonthDayWithShortMonthDay(this.startDate);
425
+ return localMonthDayWithShortMonthDay(this.startDate, this.locale);
421
426
  }
422
- return this.placeholder;
427
+ return this.placeholder ?? this.t('ds.datePicker.set');
423
428
  },
424
429
  endDateIfDifferentThanStartDate() {
425
430
  return this.startDate &&
@@ -429,19 +434,24 @@ export default defineComponent({
429
434
  : null;
430
435
  },
431
436
  endDateText() {
432
- return localMonthDayWithShortMonthDay(this.endDateIfDifferentThanStartDate);
437
+ return localMonthDayWithShortMonthDay(
438
+ this.endDateIfDifferentThanStartDate,
439
+ this.locale,
440
+ );
433
441
  },
434
442
  startDateEyebrowText() {
435
443
  if (!this.startDate) {
436
444
  return '';
437
445
  }
438
- return capitalizeFirstLetter(localWeekdayName(this.startDate));
446
+ return capitalizeFirstLetter(localWeekdayName(this.startDate, this.locale));
439
447
  },
440
448
  endDateEyebrowText() {
441
449
  if (!this.endDateIfDifferentThanStartDate) {
442
450
  return '';
443
451
  }
444
- return capitalizeFirstLetter(localWeekdayName(this.endDateIfDifferentThanStartDate));
452
+ return capitalizeFirstLetter(
453
+ localWeekdayName(this.endDateIfDifferentThanStartDate, this.locale),
454
+ );
445
455
  },
446
456
  },
447
457
  });
@@ -3,9 +3,10 @@ import { FlatpickrFn, Instance as DatePickerInstance } from 'flatpickr/dist/type
3
3
  import { CustomLocale } from 'flatpickr/dist/types/locale';
4
4
 
5
5
  import { DatePickerCalendarPositions, FLATPICKR_POSITIONS } from './index';
6
+ import { SUPPORTED_LOCALE, SupportedLocale } from '../../../i18n';
6
7
 
7
8
  let flatpickrFunction: FlatpickrFn | null = null;
8
- let locale: CustomLocale;
9
+ const localeCache = new Map<string, CustomLocale>();
9
10
 
10
11
  export interface DatePickerComposablesProps {
11
12
  disableDates: Array<Date>;
@@ -23,6 +24,7 @@ interface InitFlatpickrPrams {
23
24
  onClose: () => void;
24
25
  defaultDates: Date | Array<Date>;
25
26
  mode: 'single' | 'range';
27
+ locale?: SupportedLocale;
26
28
  }
27
29
 
28
30
  interface InitFlatpickr {
@@ -44,6 +46,7 @@ export function initFlatpickr({
44
46
  onClose,
45
47
  defaultDates,
46
48
  mode = 'single',
49
+ locale = SUPPORTED_LOCALE.pl,
47
50
  }: InitFlatpickrPrams): InitFlatpickr {
48
51
  let datePicker: DatePickerInstance | null = null;
49
52
  const isOpen = ref(false);
@@ -65,15 +68,29 @@ export function initFlatpickr({
65
68
  if (!flatpickrFunction) {
66
69
  try {
67
70
  flatpickrFunction = (await import('flatpickr')).default;
68
- locale = (await import('flatpickr/dist/l10n/pl')).Polish;
69
71
  } catch (e) {
70
72
  console.error('Failed to load flatpickr', e);
71
73
  return;
72
74
  }
73
75
  }
76
+ let flatpickrLocale: CustomLocale | undefined;
77
+
78
+ if (locale === SUPPORTED_LOCALE.pl) {
79
+ if (!localeCache.has(SUPPORTED_LOCALE.pl)) {
80
+ try {
81
+ localeCache.set(
82
+ SUPPORTED_LOCALE.pl,
83
+ (await import('flatpickr/dist/l10n/pl')).Polish,
84
+ );
85
+ } catch (e) {
86
+ console.error('Failed to load flatpickr Polish locale', e);
87
+ }
88
+ }
89
+ flatpickrLocale = localeCache.get(SUPPORTED_LOCALE.pl);
90
+ }
74
91
  datePicker = flatpickrFunction(flatpickrInputElement, {
75
92
  mode,
76
- locale,
93
+ locale: flatpickrLocale ?? SUPPORTED_LOCALE.en,
77
94
  //disableMobile fixes mobile pickers on platform
78
95
  disableMobile: true,
79
96
  positionElement: datePickerElement,
@@ -42,7 +42,7 @@
42
42
  <date-box
43
43
  v-else
44
44
  :is-interactive="isInteractive"
45
- :placeholder="placeholder"
45
+ :placeholder="resolvedPlaceholder"
46
46
  :start-date="date"
47
47
  :start-icon="icon"
48
48
  :are-icons-hidden-on-mobile="isIconHiddenOnMobile"
@@ -172,6 +172,7 @@ import {
172
172
  DatePickerStates,
173
173
  DatePickerTriggerTypes,
174
174
  } from './DatePicker.consts';
175
+ import { useLegacyI18n } from '../../../composables/useLegacyI18n';
175
176
 
176
177
  export default defineComponent({
177
178
  name: 'DatePicker',
@@ -190,7 +191,7 @@ export default defineComponent({
190
191
  },
191
192
  placeholder: {
192
193
  type: String,
193
- default: 'Wybierz datę',
194
+ default: null,
194
195
  },
195
196
  date: {
196
197
  type: Date,
@@ -271,6 +272,8 @@ export default defineComponent({
271
272
  const flatpickrInputRef = ref<HTMLInputElement>() as Ref<HTMLInputElement>;
272
273
  const datePickerRef = ref<HTMLDivElement>() as Ref<HTMLDivElement>;
273
274
 
275
+ const { locale, t } = useLegacyI18n();
276
+
274
277
  const onChange = (event: Array<Date>) => {
275
278
  emit('update:date', event[0]);
276
279
  };
@@ -292,6 +295,7 @@ export default defineComponent({
292
295
  onClose,
293
296
  defaultDates: props.date ?? new Date(),
294
297
  mode: 'single',
298
+ locale: locale.value,
295
299
  });
296
300
 
297
301
  return {
@@ -302,6 +306,8 @@ export default defineComponent({
302
306
  toggleDatePicker,
303
307
  updateDatePicker,
304
308
  createDatePicker,
309
+ locale,
310
+ t,
305
311
  DATE_PICKER_CALENDAR_POSITIONS,
306
312
  DATE_PICKER_COLORS,
307
313
  DATE_PICKER_STATES,
@@ -327,17 +333,20 @@ export default defineComponent({
327
333
  : TILE_BORDER_COLORS.WARNING_WEAK,
328
334
  }[this.color];
329
335
  },
336
+ resolvedPlaceholder() {
337
+ return this.placeholder ?? this.t('ds.datePicker.selectDate');
338
+ },
330
339
  eyebrowText() {
331
340
  if (!this.date) {
332
341
  return '';
333
342
  }
334
- return capitalizeFirstLetter(localWeekdayName(this.date));
343
+ return capitalizeFirstLetter(localWeekdayName(this.date, this.locale));
335
344
  },
336
345
  text() {
337
346
  if (!this.date) {
338
- return this.placeholder;
347
+ return this.resolvedPlaceholder;
339
348
  }
340
- return localFullDateWithShortMonthName(this.date);
349
+ return localFullDateWithShortMonthName(this.date, this.locale);
341
350
  },
342
351
  tileIcon() {
343
352
  if (this.additionalText) {
@@ -2,7 +2,7 @@
2
2
  <div ref="dateRangePickerRef" class="ds-dateRangePicker">
3
3
  <date-box
4
4
  :is-interactive="isInteractive"
5
- :placeholder="placeholder"
5
+ :placeholder="resolvedPlaceholder"
6
6
  :start-date="startDate"
7
7
  :end-date="endDate"
8
8
  :start-icon="startIcon"
@@ -62,6 +62,7 @@ import {
62
62
  DatePickerStates,
63
63
  } from '../DatePicker';
64
64
  import { DatePickerComposablesProps, initFlatpickr } from '../DatePicker/DatePicker.composables';
65
+ import { useLegacyI18n } from '../../../composables/useLegacyI18n';
65
66
 
66
67
  export default defineComponent({
67
68
  name: 'DateRangePicker',
@@ -75,7 +76,7 @@ export default defineComponent({
75
76
  },
76
77
  placeholder: {
77
78
  type: String,
78
- default: 'Wybierz datę',
79
+ default: null,
79
80
  },
80
81
  startDate: {
81
82
  type: Date,
@@ -147,6 +148,8 @@ export default defineComponent({
147
148
  },
148
149
  { emit },
149
150
  ) {
151
+ const { locale, t } = useLegacyI18n();
152
+
150
153
  const flatpickrInstance = ref<DatePickerInstance | null>(null);
151
154
  const dateRangePickerRef = ref() as Ref<HTMLDivElement>;
152
155
  const flatpickrInputRef = ref() as Ref<HTMLInputElement>;
@@ -175,6 +178,7 @@ export default defineComponent({
175
178
  onClose,
176
179
  defaultDates: [props.startDate, props.endDate],
177
180
  mode: 'range',
181
+ locale: locale.value,
178
182
  });
179
183
 
180
184
  return {
@@ -186,12 +190,19 @@ export default defineComponent({
186
190
  createDatePicker,
187
191
  destroyDatePicker,
188
192
  updateDatePicker,
193
+ locale,
194
+ t,
189
195
  DATE_PICKER_CALENDAR_POSITIONS: Object.freeze(DATE_PICKER_CALENDAR_POSITIONS),
190
196
  DATE_PICKER_COLORS: Object.freeze(DATE_PICKER_COLORS),
191
197
  DATE_PICKER_STATES: Object.freeze(DATE_PICKER_STATES),
192
198
  DATE_PICKER_TRIGGER_TYPES: Object.freeze(DATE_PICKER_TRIGGER_TYPES),
193
199
  };
194
200
  },
201
+ computed: {
202
+ resolvedPlaceholder() {
203
+ return this.placeholder ?? this.t('ds.datePicker.selectDate');
204
+ },
205
+ },
195
206
  methods: {
196
207
  async bindFlatpickrInstance() {
197
208
  this.flatpickrInstance = await this.createDatePicker(
@@ -1,8 +1,9 @@
1
- import { getCurrentInstance } from 'vue';
2
- import { TranslateFunction } from '../i18n';
1
+ import { computed, ComputedRef, getCurrentInstance } from 'vue';
2
+ import { SupportedLocale, TranslateFunction } from '../i18n';
3
3
 
4
4
  interface IUseLegacyI18n {
5
5
  t: TranslateFunction;
6
+ locale: ComputedRef<SupportedLocale>;
6
7
  }
7
8
 
8
9
  /**
@@ -18,7 +19,10 @@ export const useLegacyI18n = (): IUseLegacyI18n => {
18
19
 
19
20
  const t = internalInstance.root.proxy.$t;
20
21
 
22
+ const locale = computed(() => internalInstance.root.proxy?.$i18n.locale as SupportedLocale);
23
+
21
24
  return {
22
25
  t,
26
+ locale,
23
27
  };
24
28
  };
@@ -0,0 +1,4 @@
1
+ {
2
+ "ds.datePicker.selectDate": "Select date",
3
+ "ds.datePicker.set": "Set"
4
+ }
package/lib/js/i18n/en.ts CHANGED
@@ -2,10 +2,12 @@ import globals from './en/globals.json';
2
2
  import accessStatus from './en/accessStatus.json';
3
3
  import pagination from './en/pagination.json';
4
4
  import statsLayout from './en/statsLayout.json';
5
+ import datePicker from './en/datePicker.json';
5
6
 
6
7
  export default {
7
8
  ...globals,
8
9
  ...accessStatus,
9
10
  ...pagination,
10
11
  ...statsLayout,
12
+ ...datePicker,
11
13
  };
@@ -9,6 +9,12 @@ export const messages = {
9
9
  en,
10
10
  };
11
11
 
12
+ export type SupportedLocale = keyof typeof messages;
13
+
14
+ export const SUPPORTED_LOCALE = Object.fromEntries(
15
+ Object.keys(messages).map((key) => [key, key]),
16
+ ) as Record<SupportedLocale, SupportedLocale>;
17
+
12
18
  export type ValidI18nKey = keyof MessageSchema;
13
19
 
14
20
  export interface TranslateFunction {
@@ -0,0 +1,4 @@
1
+ {
2
+ "ds.datePicker.selectDate": "Wybierz datę",
3
+ "ds.datePicker.set": "Ustaw"
4
+ }
package/lib/js/i18n/pl.ts CHANGED
@@ -2,10 +2,12 @@ import globals from './pl/globals.json';
2
2
  import accessStatus from './pl/accessStatus.json';
3
3
  import pagination from './pl/pagination.json';
4
4
  import statsLayout from './pl/statsLayout.json';
5
+ import datePicker from './pl/datePicker.json';
5
6
 
6
7
  export default {
7
8
  ...globals,
8
9
  ...accessStatus,
9
10
  ...pagination,
10
11
  ...statsLayout,
12
+ ...datePicker,
11
13
  };
@@ -108,6 +108,7 @@ import { faHourglassEnd } from '@fortawesome/pro-regular-svg-icons/faHourglassEn
108
108
  import { faHourglassStart } from '@fortawesome/pro-regular-svg-icons/faHourglassStart';
109
109
  import { faHouse } from '@fortawesome/pro-regular-svg-icons/faHouse';
110
110
  import { faImage } from '@fortawesome/pro-regular-svg-icons/faImage';
111
+ import { faImageCircleXmark } from '@fortawesome/pro-regular-svg-icons/faImageCircleXmark';
111
112
  import { faImage as fasImage } from '@fortawesome/pro-solid-svg-icons/faImage';
112
113
  import { faImages } from '@fortawesome/pro-regular-svg-icons/faImages';
113
114
  import { faImages as fasImages } from '@fortawesome/pro-solid-svg-icons/faImages';
@@ -413,6 +414,7 @@ export const FONTAWESOME_ICONS = {
413
414
  FA_HOURGLASS: faHourglass,
414
415
  FA_HOUSE: faHouse,
415
416
  FA_IMAGE: faImage,
417
+ FA_IMAGE_CIRCLE_XMARK: faImageCircleXmark,
416
418
  FA_IMAGE_SOLID: fasImage,
417
419
  FA_IMAGES_SOLID: fasImages,
418
420
  FA_IMAGES: faImages,
@@ -1,7 +1,9 @@
1
- import { TranslateFunction, ValidI18nKey } from './i18n';
1
+ import { SupportedLocale, TranslateFunction, ValidI18nKey } from './i18n';
2
+ import { VueI18nInstance } from 'vue-i18n';
2
3
 
3
4
  declare module '@vue/runtime-core' {
4
5
  interface ComponentCustomProperties {
5
6
  $t: TranslateFunction<ValidI18nKey | string>;
7
+ $i18n: VueI18nInstance;
6
8
  }
7
9
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bethinkpl/design-system",
3
- "version": "34.0.7",
3
+ "version": "34.0.9",
4
4
  "description": "Bethink universe design-system",
5
5
  "repository": {
6
6
  "type": "git",