@uzum-tech/ui 2.0.0-beta.1 → 2.0.0-beta.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.
Files changed (110) hide show
  1. package/dist/index.js +136 -75
  2. package/dist/index.mjs +137 -76
  3. package/dist/index.prod.js +2 -2
  4. package/dist/index.prod.mjs +2 -2
  5. package/es/calendar/src/Calendar.d.ts +3 -0
  6. package/es/calendar/src/Calendar.mjs +4 -3
  7. package/es/checkbox/src/Checkbox.mjs +4 -4
  8. package/es/collapse/src/CollapseItem.mjs +5 -5
  9. package/es/config-provider/src/ConfigProvider.d.ts +3 -0
  10. package/es/config-provider/src/ConfigProvider.mjs +26 -12
  11. package/es/config-provider/src/internal-interface.d.ts +1 -0
  12. package/es/data-table/src/DataTable.mjs +3 -3
  13. package/es/date-picker/src/DatePicker.d.ts +3 -0
  14. package/es/date-picker/src/DatePicker.mjs +2 -0
  15. package/es/date-picker/src/panel/date.d.ts +2 -0
  16. package/es/date-picker/src/panel/daterange.d.ts +2 -0
  17. package/es/date-picker/src/panel/datetime.d.ts +2 -0
  18. package/es/date-picker/src/panel/datetimerange.d.ts +2 -0
  19. package/es/date-picker/src/panel/panelMonth.d.ts +4 -0
  20. package/es/date-picker/src/panel/panelMonthContent.d.ts +2 -0
  21. package/es/date-picker/src/panel/panelYear.d.ts +4 -0
  22. package/es/date-picker/src/panel/panelYearContent.d.ts +2 -0
  23. package/es/date-picker/src/panel/use-calendar.d.ts +1 -0
  24. package/es/date-picker/src/panel/use-calendar.mjs +10 -5
  25. package/es/date-picker/src/panel/use-dual-calendar.d.ts +1 -0
  26. package/es/date-picker/src/panel/use-dual-calendar.mjs +17 -13
  27. package/es/date-picker/src/panel/use-panel-common.d.ts +1 -0
  28. package/es/date-picker/src/panel/use-panel-common.mjs +1 -0
  29. package/es/date-picker/src/utils.d.ts +4 -4
  30. package/es/date-picker/src/utils.mjs +4 -4
  31. package/es/date-picker-v2/src/panel/CalendarPanel.d.ts +0 -1
  32. package/es/date-picker-v2/src/panel/CalendarPanel.mjs +7 -5
  33. package/es/date-picker-v2/src/panel/CalendarRangePanel.d.ts +0 -1
  34. package/es/date-picker-v2/src/panel/CalendarRangePanel.mjs +7 -5
  35. package/es/date-picker-v2/src/utils.d.ts +1 -1
  36. package/es/date-picker-v2/src/utils.mjs +1 -1
  37. package/es/dialog/src/DialogProvider.mjs +4 -3
  38. package/es/dynamic-input/src/DynamicInput.mjs +9 -7
  39. package/es/form/src/FormItem.mjs +6 -4
  40. package/es/grid/src/Grid.mjs +7 -1
  41. package/es/header/src/HeaderNavigation.d.ts +3 -3292
  42. package/es/header/src/HeaderNavigation.mjs +3 -2
  43. package/es/heatmap/src/Heatmap.mjs +4 -3
  44. package/es/image/src/Image.mjs +3 -4
  45. package/es/image/src/ImageGroup.d.ts +1 -1
  46. package/es/image/src/ImageGroup.mjs +5 -6
  47. package/es/menu/src/Menu.mjs +2 -3
  48. package/es/message/src/MessageProvider.mjs +4 -3
  49. package/es/modal/src/ModalProvider.mjs +4 -3
  50. package/es/notification/src/NotificationProvider.mjs +4 -3
  51. package/es/time/src/Time.d.ts +3 -0
  52. package/es/time/src/Time.mjs +3 -1
  53. package/es/time-picker/src/Panel.mjs +9 -2
  54. package/es/upload/src/Upload.mjs +10 -4
  55. package/es/version.d.ts +1 -1
  56. package/es/version.mjs +1 -1
  57. package/lib/calendar/src/Calendar.d.ts +3 -0
  58. package/lib/calendar/src/Calendar.js +4 -4
  59. package/lib/checkbox/src/Checkbox.js +3 -3
  60. package/lib/collapse/src/CollapseItem.js +3 -3
  61. package/lib/config-provider/src/ConfigProvider.d.ts +3 -0
  62. package/lib/config-provider/src/ConfigProvider.js +33 -18
  63. package/lib/config-provider/src/internal-interface.d.ts +1 -0
  64. package/lib/data-table/src/DataTable.js +2 -2
  65. package/lib/date-picker/src/DatePicker.d.ts +3 -0
  66. package/lib/date-picker/src/DatePicker.js +2 -1
  67. package/lib/date-picker/src/panel/date.d.ts +2 -0
  68. package/lib/date-picker/src/panel/daterange.d.ts +2 -0
  69. package/lib/date-picker/src/panel/datetime.d.ts +2 -0
  70. package/lib/date-picker/src/panel/datetimerange.d.ts +2 -0
  71. package/lib/date-picker/src/panel/panelMonth.d.ts +4 -0
  72. package/lib/date-picker/src/panel/panelMonthContent.d.ts +2 -0
  73. package/lib/date-picker/src/panel/panelYear.d.ts +4 -0
  74. package/lib/date-picker/src/panel/panelYearContent.d.ts +2 -0
  75. package/lib/date-picker/src/panel/use-calendar.d.ts +1 -0
  76. package/lib/date-picker/src/panel/use-calendar.js +9 -4
  77. package/lib/date-picker/src/panel/use-dual-calendar.d.ts +1 -0
  78. package/lib/date-picker/src/panel/use-dual-calendar.js +17 -13
  79. package/lib/date-picker/src/panel/use-panel-common.d.ts +1 -0
  80. package/lib/date-picker/src/panel/use-panel-common.js +1 -0
  81. package/lib/date-picker/src/utils.d.ts +4 -4
  82. package/lib/date-picker/src/utils.js +4 -4
  83. package/lib/date-picker-v2/src/panel/CalendarPanel.d.ts +0 -1
  84. package/lib/date-picker-v2/src/panel/CalendarPanel.js +6 -4
  85. package/lib/date-picker-v2/src/panel/CalendarRangePanel.d.ts +0 -1
  86. package/lib/date-picker-v2/src/panel/CalendarRangePanel.js +6 -4
  87. package/lib/date-picker-v2/src/utils.d.ts +1 -1
  88. package/lib/date-picker-v2/src/utils.js +1 -1
  89. package/lib/dialog/src/DialogProvider.js +3 -2
  90. package/lib/dynamic-input/src/DynamicInput.js +8 -6
  91. package/lib/form/src/FormItem.js +5 -3
  92. package/lib/grid/src/Grid.js +8 -1
  93. package/lib/header/src/HeaderNavigation.d.ts +3 -3292
  94. package/lib/header/src/HeaderNavigation.js +2 -1
  95. package/lib/heatmap/src/Heatmap.js +4 -3
  96. package/lib/image/src/Image.js +2 -3
  97. package/lib/image/src/ImageGroup.d.ts +1 -1
  98. package/lib/image/src/ImageGroup.js +4 -5
  99. package/lib/menu/src/Menu.js +1 -2
  100. package/lib/message/src/MessageProvider.js +3 -2
  101. package/lib/modal/src/ModalProvider.js +3 -2
  102. package/lib/notification/src/NotificationProvider.js +3 -2
  103. package/lib/time/src/Time.d.ts +3 -0
  104. package/lib/time/src/Time.js +3 -1
  105. package/lib/time-picker/src/Panel.js +8 -1
  106. package/lib/upload/src/Upload.js +9 -3
  107. package/lib/version.d.ts +1 -1
  108. package/lib/version.js +1 -1
  109. package/package.json +30 -30
  110. package/web-types.json +32 -4
@@ -78,7 +78,7 @@ export const headerNavigationProps = {
78
78
  onUpdateMenuValue: [Function, Array],
79
79
  onUpdateActiveMenuKey: Function
80
80
  };
81
- export default defineComponent({
81
+ const HeaderNavigation = defineComponent({
82
82
  name: 'HeaderNavigation',
83
83
  props: headerNavigationProps,
84
84
  setup(props) {
@@ -458,4 +458,5 @@ export default defineComponent({
458
458
  })))))) : null;
459
459
  return tabsNode;
460
460
  }
461
- });
461
+ });
462
+ export default HeaderNavigation;
@@ -14,6 +14,8 @@ import { completeDataGaps, createDayRect, createLoadingMatrix, createSparseMatri
14
14
  function transformHeatmapFirstDayOfWeekToDateFns(firstDayOfWeek) {
15
15
  return (firstDayOfWeek + 1) % 7;
16
16
  }
17
+ const HEATMAP_LABEL_BASE_DATE = new Date(2024, 0, 1);
18
+ const HEATMAP_LABEL_BASE_YEAR = 2024;
17
19
  export const heatmapProps = Object.assign(Object.assign({}, useTheme.props), {
18
20
  activeColors: Array,
19
21
  colorTheme: String,
@@ -155,7 +157,7 @@ export default defineComponent({
155
157
  const {
156
158
  locale
157
159
  } = dateLocaleRef.value;
158
- const baseDate = startOfWeek(new Date(), {
160
+ const baseDate = startOfWeek(HEATMAP_LABEL_BASE_DATE, {
159
161
  weekStartsOn: transformHeatmapFirstDayOfWeekToDateFns(props.firstDayOfWeek)
160
162
  });
161
163
  return Array.from({
@@ -176,13 +178,12 @@ export default defineComponent({
176
178
  const {
177
179
  locale
178
180
  } = dateLocaleRef.value;
179
- const currentYear = new Date().getFullYear();
180
181
  // for more consistent month label widths
181
182
  const colSpans = [5, 4, 5, 4, 5, 4, 5, 4, 4, 5, 4, 4];
182
183
  return Array.from({
183
184
  length: 12
184
185
  }, (_, i) => {
185
- const monthDate = new Date(currentYear, i, 1);
186
+ const monthDate = new Date(HEATMAP_LABEL_BASE_YEAR, i, 1);
186
187
  return {
187
188
  name: format(monthDate, monthFormat, {
188
189
  locale
@@ -1,4 +1,4 @@
1
- import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, toRef, watchEffect } from 'vue';
1
+ import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, toRef, useId, watchEffect } from 'vue';
2
2
  import { useConfig } from "../../_mixins/index.mjs";
3
3
  import { resolveSlot } from "../../_utils/index.mjs";
4
4
  import { isImageSupportNativeLazy } from "../../_utils/env/is-native-lazy-load.mjs";
@@ -26,7 +26,6 @@ export const imageProps = Object.assign({
26
26
  onError: Function,
27
27
  onLoad: Function
28
28
  }, imagePreviewSharedProps);
29
- let uuid = 0;
30
29
  export default defineComponent({
31
30
  name: 'Image',
32
31
  props: imageProps,
@@ -44,12 +43,12 @@ export default defineComponent({
44
43
  return props.previewSrc || props.src;
45
44
  });
46
45
  const previewShowRef = ref(false);
47
- const imageId = uuid++;
46
+ const imageId = `r${useId()}`;
48
47
  const showPreview = () => {
49
48
  if (props.previewDisabled || showErrorRef.value) return;
50
49
  if (imageGroupHandle) {
51
50
  imageGroupHandle.setThumbnailEl(imageRef.value);
52
- imageGroupHandle.toggleShow(`r${imageId}`);
51
+ imageGroupHandle.toggleShow(imageId);
53
52
  return;
54
53
  }
55
54
  const {
@@ -5,7 +5,7 @@ export declare const imageGroupInjectionKey: import("vue").InjectionKey<ImagePre
5
5
  groupId: string;
6
6
  mergedClsPrefixRef: Ref<string>;
7
7
  renderToolbarRef: Ref<ImageRenderToolbar | undefined>;
8
- registerImageUrl: (id: number, url: string) => () => void;
8
+ registerImageUrl: (id: string, url: string) => () => void;
9
9
  toggleShow: (imageId: string) => void;
10
10
  }>;
11
11
  export declare const imageGroupProps: {
@@ -1,6 +1,5 @@
1
- import { createId } from 'seemly';
2
1
  import { useMergedState } from 'vooks';
3
- import { computed, defineComponent, h, provide, ref, toRef } from 'vue';
2
+ import { computed, defineComponent, h, provide, ref, toRef, useId } from 'vue';
4
3
  import { useConfig } from "../../_mixins/index.mjs";
5
4
  import { call, createInjectionKey, throwError } from "../../_utils/index.mjs";
6
5
  import UImagePreview from "./ImagePreview.mjs";
@@ -30,7 +29,7 @@ export default defineComponent({
30
29
  const {
31
30
  mergedClsPrefixRef
32
31
  } = useConfig(props);
33
- const groupId = `c${createId()}`;
32
+ const groupId = `c${useId()}`;
34
33
  const previewInstRef = ref(null);
35
34
  const uncontrolledShowRef = ref(props.defaultShow);
36
35
  const controlledShowRef = toRef(props, 'show');
@@ -52,12 +51,12 @@ export default defineComponent({
52
51
  if (props.srcList) {
53
52
  throwError('image-group', '`u-image` can\'t be placed inside `u-image-group` when image group\'s `src-list` prop is set.');
54
53
  }
55
- const sid = `r${id}`;
56
- if (!registeredImageUrlMap.value.has(`r${sid}`)) {
54
+ const sid = id;
55
+ if (!registeredImageUrlMap.value.has(sid)) {
57
56
  registeredImageUrlMap.value.set(sid, url);
58
57
  }
59
58
  return function unregisterPreviewUrl() {
60
- if (!registeredImageUrlMap.value.has(sid)) {
59
+ if (registeredImageUrlMap.value.has(sid)) {
61
60
  registeredImageUrlMap.value.delete(sid);
62
61
  }
63
62
  };
@@ -1,7 +1,6 @@
1
- import { createId } from 'seemly';
2
1
  import { createTreeMate } from 'treemate';
3
2
  import { useCompitable, useMergedState } from 'vooks';
4
- import { computed, defineComponent, h, inject, mergeProps, provide, ref, toRef, watchEffect } from 'vue';
3
+ import { computed, defineComponent, h, inject, mergeProps, provide, ref, toRef, useId, watchEffect } from 'vue';
5
4
  import { VOverflow, VResizeObserver } from 'vueuc';
6
5
  import { useConfig, useTheme, useThemeClass } from "../../_mixins/index.mjs";
7
6
  import { call } from "../../_utils/index.mjs";
@@ -375,7 +374,7 @@ export default defineComponent({
375
374
  return vars;
376
375
  });
377
376
  const themeClassHandle = inlineThemeDisabled ? useThemeClass('menu', computed(() => props.inverted ? 'a' : 'b'), cssVarsRef, props) : undefined;
378
- const ellipsisNodeId = createId();
377
+ const ellipsisNodeId = useId();
379
378
  const overflowRef = ref(null);
380
379
  const counterRef = ref(null);
381
380
  let isFirstResize = true;
@@ -1,5 +1,4 @@
1
- import { createId } from 'seemly';
2
- import { defineComponent, Fragment, h, provide, reactive, ref, Teleport } from 'vue';
1
+ import { defineComponent, Fragment, h, provide, reactive, ref, Teleport, useId } from 'vue';
3
2
  import { useConfig, useTheme } from "../../_mixins/index.mjs";
4
3
  import { omit } from "../../_utils/index.mjs";
5
4
  import { messageApiInjectionKey, messageProviderInjectionKey } from "./context.mjs";
@@ -28,6 +27,8 @@ export default defineComponent({
28
27
  } = useConfig(props);
29
28
  const messageListRef = ref([]);
30
29
  const messageRefs = ref({});
30
+ const providerId = useId();
31
+ let messageKeyIndex = 0;
31
32
  const api = {
32
33
  create(content, options) {
33
34
  return create(content, Object.assign({
@@ -67,7 +68,7 @@ export default defineComponent({
67
68
  });
68
69
  provide(messageApiInjectionKey, api);
69
70
  function create(content, options) {
70
- const key = createId();
71
+ const key = `${providerId}-${messageKeyIndex++}`;
71
72
  const messageReactive = reactive(Object.assign(Object.assign({}, options), {
72
73
  content,
73
74
  key,
@@ -1,6 +1,5 @@
1
- import { createId } from 'seemly';
2
1
  import { useClicked, useClickPosition } from 'vooks';
3
- import { defineComponent, Fragment, h, provide, reactive, ref } from 'vue';
2
+ import { defineComponent, Fragment, h, provide, reactive, ref, useId } from 'vue';
4
3
  import { omit } from "../../_utils/index.mjs";
5
4
  import { modalApiInjectionKey, modalProviderInjectionKey, modalReactiveListInjectionKey } from "./context.mjs";
6
5
  import { UModalEnvironment } from "./ModalEnvironment.mjs";
@@ -13,8 +12,10 @@ export const UModalProvider = defineComponent({
13
12
  setup() {
14
13
  const modalListRef = ref([]);
15
14
  const modalInstRefs = {};
15
+ const providerId = useId();
16
+ let modalKeyIndex = 0;
16
17
  function create(options = {}) {
17
- const key = createId();
18
+ const key = `${providerId}-${modalKeyIndex++}`;
18
19
  const modalReactive = reactive(Object.assign(Object.assign({}, options), {
19
20
  key,
20
21
  destroy: () => {
@@ -1,5 +1,4 @@
1
- import { createId } from 'seemly';
2
- import { defineComponent, Fragment, h, provide, reactive, ref, Teleport } from 'vue';
1
+ import { defineComponent, Fragment, h, provide, reactive, ref, Teleport, useId } from 'vue';
3
2
  import { useConfig, useTheme } from "../../_mixins/index.mjs";
4
3
  import { createInjectionKey, omit } from "../../_utils/index.mjs";
5
4
  import { notificationLight } from "../styles/index.mjs";
@@ -32,8 +31,10 @@ export default defineComponent({
32
31
  const notificationListRef = ref([]);
33
32
  const notificationRefs = {};
34
33
  const leavingKeySet = new Set();
34
+ const providerId = useId();
35
+ let notificationKeyIndex = 0;
35
36
  function create(options) {
36
- const key = createId();
37
+ const key = `${providerId}-${notificationKeyIndex++}`;
37
38
  const destroy = () => {
38
39
  leavingKeySet.add(key);
39
40
  // If you push n + 1 message when max is n, notificationRefs[key] maybe not be set
@@ -13,6 +13,7 @@ export declare const timeProps: {
13
13
  readonly type: PropType<number | Date>;
14
14
  readonly default: undefined;
15
15
  };
16
+ readonly ssrCurrentTimestamp: NumberConstructor;
16
17
  readonly unix: BooleanConstructor;
17
18
  readonly format: StringConstructor;
18
19
  readonly text: BooleanConstructor;
@@ -32,6 +33,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
32
33
  readonly type: PropType<number | Date>;
33
34
  readonly default: undefined;
34
35
  };
36
+ readonly ssrCurrentTimestamp: NumberConstructor;
35
37
  readonly unix: BooleanConstructor;
36
38
  readonly format: StringConstructor;
37
39
  readonly text: BooleanConstructor;
@@ -51,6 +53,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
51
53
  readonly type: PropType<number | Date>;
52
54
  readonly default: undefined;
53
55
  };
56
+ readonly ssrCurrentTimestamp: NumberConstructor;
54
57
  readonly unix: BooleanConstructor;
55
58
  readonly format: StringConstructor;
56
59
  readonly text: BooleanConstructor;
@@ -15,6 +15,7 @@ export const timeProps = {
15
15
  type: [Number, Date],
16
16
  default: undefined // the same as `time` prop
17
17
  },
18
+ ssrCurrentTimestamp: Number,
18
19
  unix: Boolean,
19
20
  format: String,
20
21
  text: Boolean,
@@ -24,7 +25,8 @@ export default defineComponent({
24
25
  name: 'Time',
25
26
  props: timeProps,
26
27
  setup(props) {
27
- const now = Date.now();
28
+ var _a;
29
+ const now = (_a = props.ssrCurrentTimestamp) !== null && _a !== void 0 ? _a : Date.now();
28
30
  const {
29
31
  localeRef,
30
32
  dateLocaleRef
@@ -1,4 +1,4 @@
1
- import { computed, defineComponent, h, inject, ref } from 'vue';
1
+ import { computed, defineComponent, h, inject, onMounted, ref } from 'vue';
2
2
  import { UBaseFocusDetector, UScrollbar } from "../../_internal/index.mjs";
3
3
  import { UButton } from "../../button/index.mjs";
4
4
  import { timePickerInjectionKey } from "./interface.mjs";
@@ -89,6 +89,10 @@ export default defineComponent({
89
89
  mergedThemeRef,
90
90
  mergedClsPrefixRef
91
91
  } = inject(timePickerInjectionKey);
92
+ const mountedRef = ref(false);
93
+ onMounted(() => {
94
+ mountedRef.value = true;
95
+ });
92
96
  const hoursRef = computed(() => {
93
97
  const {
94
98
  isHourDisabled,
@@ -105,7 +109,10 @@ export default defineComponent({
105
109
  };
106
110
  });
107
111
  } else {
108
- const mergedAmPmValue = amPmValue !== null && amPmValue !== void 0 ? amPmValue : getAmPm(Date.now());
112
+ // Keep the initial SSR and hydration render deterministic when there is
113
+ // no selected value yet. After mount we can safely derive AM/PM from
114
+ // the current local time.
115
+ const mergedAmPmValue = amPmValue !== null && amPmValue !== void 0 ? amPmValue : mountedRef.value ? getAmPm(Date.now()) : 'am';
109
116
  return getTimeUnits(time.hours, hours, mergedAmPmValue).map(hour => {
110
117
  const hourAs12FormattedNumber = Number(hour);
111
118
  const hourAs24FormattedNumber = mergedAmPmValue === 'pm' && hourAs12FormattedNumber !== 12 ? hourAs12FormattedNumber + 12 : hourAs12FormattedNumber;
@@ -25,9 +25,8 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
25
25
  step((generator = generator.apply(thisArg, _arguments || [])).next());
26
26
  });
27
27
  };
28
- import { createId } from 'seemly';
29
28
  import { useMergedState } from 'vooks';
30
- import { computed, defineComponent, Fragment, h, nextTick, provide, ref, Teleport, toRef } from 'vue';
29
+ import { computed, defineComponent, Fragment, h, nextTick, provide, ref, Teleport, toRef, useId } from 'vue';
31
30
  import { useConfig, useFormItem, useLocale, useTheme, useThemeClass } from "../../_mixins/index.mjs";
32
31
  import { call, createKey, throwError, warn } from "../../_utils/index.mjs";
33
32
  import { uploadLight } from "../styles/index.mjs";
@@ -157,6 +156,8 @@ export default defineComponent({
157
156
  name: 'Upload',
158
157
  props: uploadProps,
159
158
  setup(props) {
159
+ const uploadId = useId();
160
+ const uploadKeyIndexRef = ref(0);
160
161
  const {
161
162
  localeRef
162
163
  } = useLocale('Upload');
@@ -216,6 +217,11 @@ export default defineComponent({
216
217
  uncontrolledFileListRef.value = files;
217
218
  }
218
219
  const mergedMultipleRef = computed(() => props.multiple || props.directory);
220
+ function createUploadKey() {
221
+ const key = `${uploadId}-${uploadKeyIndexRef.value}`;
222
+ uploadKeyIndexRef.value += 1;
223
+ return key;
224
+ }
219
225
  function handleFileAddition(fileAndEntries, e) {
220
226
  if (!fileAndEntries || fileAndEntries.length === 0) return;
221
227
  const {
@@ -239,14 +245,14 @@ export default defineComponent({
239
245
  if (max) {
240
246
  fileAndEntries = fileAndEntries.slice(0, max - mergedFileListRef.value.length);
241
247
  }
242
- const batchId = createId();
248
+ const batchId = createUploadKey();
243
249
  void Promise.all(fileAndEntries.map(_a => __awaiter(this, [_a], void 0, function* ({
244
250
  file,
245
251
  entry
246
252
  }) {
247
253
  var _b;
248
254
  const fileInfo = {
249
- id: createId(),
255
+ id: createUploadKey(),
250
256
  batchId,
251
257
  name: file.name,
252
258
  status: 'pending',
package/es/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.0.0-beta.1";
1
+ declare const _default: "2.0.0-beta.3";
2
2
  export default _default;
package/es/version.mjs CHANGED
@@ -1 +1 @@
1
- export default '2.0.0-beta.1';
1
+ export default '2.0.0-beta.3';
@@ -3,6 +3,7 @@ import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
3
3
  import type { DateItem, OnPanelChange, OnUpdateValue } from './interface';
4
4
  export declare const calendarProps: {
5
5
  readonly isDateDisabled: PropType<(date: number) => boolean | undefined>;
6
+ readonly ssrCurrentTimestamp: NumberConstructor;
6
7
  readonly value: NumberConstructor;
7
8
  readonly defaultValue: {
8
9
  readonly type: PropType<number | null>;
@@ -741,6 +742,7 @@ export declare const calendarProps: {
741
742
  export type CalendarProps = ExtractPublicPropTypes<typeof calendarProps>;
742
743
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
743
744
  readonly isDateDisabled: PropType<(date: number) => boolean | undefined>;
745
+ readonly ssrCurrentTimestamp: NumberConstructor;
744
746
  readonly value: NumberConstructor;
745
747
  readonly defaultValue: {
746
748
  readonly type: PropType<number | null>;
@@ -1827,6 +1829,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1827
1829
  onRender: (() => void) | undefined;
1828
1830
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1829
1831
  readonly isDateDisabled: PropType<(date: number) => boolean | undefined>;
1832
+ readonly ssrCurrentTimestamp: NumberConstructor;
1830
1833
  readonly value: NumberConstructor;
1831
1834
  readonly defaultValue: {
1832
1835
  readonly type: PropType<number | null>;
@@ -16,7 +16,7 @@ const button_group_1 = require("../../button-group");
16
16
  const utils_1 = require("../../date-picker/src/utils");
17
17
  const styles_1 = require("../styles");
18
18
  const index_cssr_1 = __importDefault(require("./styles/index.cssr"));
19
- exports.calendarProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), { isDateDisabled: Function, value: Number, defaultValue: {
19
+ exports.calendarProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), { isDateDisabled: Function, ssrCurrentTimestamp: Number, value: Number, defaultValue: {
20
20
  type: Number,
21
21
  default: null
22
22
  }, onPanelChange: Function, 'onUpdate:value': [Function, Array], onUpdateValue: [Function, Array] });
@@ -24,13 +24,13 @@ exports.default = (0, vue_1.defineComponent)({
24
24
  name: 'Calendar',
25
25
  props: exports.calendarProps,
26
26
  setup(props) {
27
- var _a;
27
+ var _a, _b;
28
28
  const { mergedClsPrefixRef, inlineThemeDisabled } = (0, _mixins_1.useConfig)(props);
29
29
  const themeRef = (0, _mixins_1.useTheme)('Calendar', '-calendar', index_cssr_1.default, styles_1.calendarLight, props, mergedClsPrefixRef);
30
30
  const { localeRef, dateLocaleRef } = (0, _mixins_1.useLocale)('DatePicker');
31
- const now = Date.now();
31
+ const now = (_a = props.ssrCurrentTimestamp) !== null && _a !== void 0 ? _a : Date.now();
32
32
  // ts => timestamp
33
- const monthTsRef = (0, vue_1.ref)((0, date_fns_1.startOfMonth)((_a = props.defaultValue) !== null && _a !== void 0 ? _a : now).valueOf());
33
+ const monthTsRef = (0, vue_1.ref)((0, date_fns_1.startOfMonth)((_b = props.defaultValue) !== null && _b !== void 0 ? _b : now).valueOf());
34
34
  const uncontrolledValueRef = (0, vue_1.ref)(props.defaultValue || null);
35
35
  const mergedValueRef = (0, vooks_1.useMergedState)((0, vue_1.toRef)(props, 'value'), uncontrolledValueRef);
36
36
  function doUpdateValue(value, time) {
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.checkboxProps = void 0;
7
7
  const evtd_1 = require("evtd");
8
- const seemly_1 = require("seemly");
9
8
  const vue_1 = require("vue");
10
9
  const _internal_1 = require("../../_internal");
11
10
  const _mixins_1 = require("../../_mixins");
@@ -97,11 +96,12 @@ exports.default = (0, vue_1.defineComponent)({
97
96
  const themeClassHandle = inlineThemeDisabled
98
97
  ? (0, _mixins_1.useThemeClass)('checkbox', (0, vue_1.computed)(() => checkbox.mergedSize.value[0]), cssVarsRef, props)
99
98
  : undefined;
99
+ const labelId = (0, vue_1.useId)();
100
100
  return Object.assign(checkbox, {
101
101
  rtlEnabled: rtlEnabledRef,
102
102
  mergedClsPrefix: mergedClsPrefixRef,
103
103
  mergedTheme: themeRef,
104
- labelId: (0, seemly_1.createId)(),
104
+ labelId,
105
105
  cssVars: inlineThemeDisabled ? undefined : cssVarsRef,
106
106
  themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,
107
107
  onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender
@@ -132,7 +132,7 @@ exports.default = (0, vue_1.defineComponent)({
132
132
  mergedDisabled && `${mergedClsPrefix}-checkbox--disabled`,
133
133
  indeterminate && `${mergedClsPrefix}-checkbox--indeterminate`,
134
134
  labelNode && `${mergedClsPrefix}-checkbox--show-label`
135
- ], tabindex: mergedDisabled || !focusable ? undefined : 0, role: "checkbox", "aria-checked": indeterminate ? 'mixed' : renderedChecked, "aria-labelledby": labelId, style: cssVars, onKeyup: handleKeyUp, onKeydown: handleKeyDown, onClick: handleClick, onMousedown: () => {
135
+ ], tabindex: mergedDisabled || !focusable ? undefined : 0, role: "checkbox", "aria-checked": indeterminate ? 'mixed' : renderedChecked, "aria-labelledby": labelNode ? labelId : undefined, style: cssVars, onKeyup: handleKeyUp, onKeydown: handleKeyDown, onClick: handleClick, onMousedown: () => {
136
136
  (0, evtd_1.on)('selectstart', window, (e) => {
137
137
  e.preventDefault();
138
138
  }, {
@@ -19,10 +19,10 @@ exports.default = (0, vue_1.defineComponent)({
19
19
  props: collapseItem_props_1.collapseItemProps,
20
20
  setup(props) {
21
21
  const { mergedRtlRef } = (0, _mixins_1.useConfig)(props);
22
- const randomName = (0, seemly_1.createId)();
22
+ const generatedName = (0, vue_1.useId)();
23
23
  const mergedNameRef = (0, vooks_1.useMemo)(() => {
24
24
  var _a;
25
- return (_a = props.name) !== null && _a !== void 0 ? _a : randomName;
25
+ return (_a = props.name) !== null && _a !== void 0 ? _a : generatedName;
26
26
  });
27
27
  const UCollapse = (0, vue_1.inject)(Collapse_1.collapseInjectionKey);
28
28
  if (!UCollapse) {
@@ -58,7 +58,7 @@ exports.default = (0, vue_1.defineComponent)({
58
58
  return {
59
59
  rtlEnabled: rtlEnabledRef,
60
60
  collapseSlots,
61
- randomName,
61
+ randomName: generatedName,
62
62
  mergedClsPrefix: mergedClsPrefixRef,
63
63
  collapsed: collapsedRef,
64
64
  triggerAreas: (0, vue_1.toRef)(collapseProps, 'triggerAreas'),
@@ -35,6 +35,7 @@ export declare const configProviderProps: {
35
35
  readonly type: PropType<BreakpointMode>;
36
36
  readonly default: "desktop-first";
37
37
  };
38
+ readonly ssrBreakpointWidth: NumberConstructor;
38
39
  readonly preflightStyleDisabled: BooleanConstructor;
39
40
  readonly styleMountTarget: PropType<ParentNode | null>;
40
41
  readonly inlineThemeDisabled: {
@@ -79,6 +80,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
79
80
  readonly type: PropType<BreakpointMode>;
80
81
  readonly default: "desktop-first";
81
82
  };
83
+ readonly ssrBreakpointWidth: NumberConstructor;
82
84
  readonly preflightStyleDisabled: BooleanConstructor;
83
85
  readonly styleMountTarget: PropType<ParentNode | null>;
84
86
  readonly inlineThemeDisabled: {
@@ -127,6 +129,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
127
129
  readonly type: PropType<BreakpointMode>;
128
130
  readonly default: "desktop-first";
129
131
  };
132
+ readonly ssrBreakpointWidth: NumberConstructor;
130
133
  readonly preflightStyleDisabled: BooleanConstructor;
131
134
  readonly styleMountTarget: PropType<ParentNode | null>;
132
135
  readonly inlineThemeDisabled: {
@@ -36,6 +36,7 @@ exports.configProviderProps = {
36
36
  type: String,
37
37
  default: 'desktop-first'
38
38
  },
39
+ ssrBreakpointWidth: Number,
39
40
  preflightStyleDisabled: Boolean,
40
41
  styleMountTarget: Object,
41
42
  inlineThemeDisabled: {
@@ -57,6 +58,7 @@ exports.default = (0, vue_1.defineComponent)({
57
58
  alias: ['App'],
58
59
  props: exports.configProviderProps,
59
60
  setup(props) {
61
+ var _a;
60
62
  const UConfigProvider = (0, vue_1.inject)(context_1.configProviderInjectionKey, null);
61
63
  const mergedThemeRef = (0, vue_1.computed)(() => {
62
64
  const { theme } = props;
@@ -75,15 +77,27 @@ exports.default = (0, vue_1.defineComponent)({
75
77
  || (UConfigProvider === null || UConfigProvider === void 0 ? void 0 : UConfigProvider.mergedBreakpointModeRef.value)
76
78
  || 'desktop-first');
77
79
  });
78
- const getMergedBreakpointValues = (breakpointMap) => {
79
- if (!breakpointMap)
80
- return;
81
- const breakpointWidths = Object.keys(breakpointMap)
80
+ const mergedSsrBreakpointWidthRef = (0, vue_1.computed)(() => {
81
+ const { ssrBreakpointWidth } = props;
82
+ return ssrBreakpointWidth !== undefined
83
+ ? ssrBreakpointWidth
84
+ : UConfigProvider === null || UConfigProvider === void 0 ? void 0 : UConfigProvider.mergedSsrBreakpointWidthRef.value;
85
+ });
86
+ const getSortedBreakpointWidths = (breakpointMap) => {
87
+ return Object.keys(breakpointMap)
82
88
  .map(Number)
83
89
  .sort((leftWidth, rightWidth) => leftWidth - rightWidth);
90
+ };
91
+ const getMergedBreakpointValues = (breakpointMap, mode = 'desktop-first') => {
92
+ if (!breakpointMap)
93
+ return;
94
+ const breakpointWidths = getSortedBreakpointWidths(breakpointMap);
95
+ const orderedWidths = mode === 'mobile-first'
96
+ ? breakpointWidths
97
+ : [...breakpointWidths].reverse();
84
98
  const mergedMap = {};
85
99
  let previousValue;
86
- for (const width of breakpointWidths) {
100
+ for (const width of orderedWidths) {
87
101
  if (previousValue !== undefined) {
88
102
  mergedMap[width] = (0, lodash_es_1.merge)({}, previousValue, breakpointMap[width]);
89
103
  }
@@ -94,25 +108,19 @@ exports.default = (0, vue_1.defineComponent)({
94
108
  }
95
109
  return mergedMap;
96
110
  };
97
- const windowWidthRef = (0, vue_1.ref)(_utils_1.isBrowser ? window.innerWidth : 1920);
111
+ const windowWidthRef = (0, vue_1.ref)((_a = mergedSsrBreakpointWidthRef.value) !== null && _a !== void 0 ? _a : (_utils_1.isBrowser ? window.innerWidth : undefined));
98
112
  const getActiveBreakpointValue = (breakpointMap, mode = 'desktop-first') => {
99
- if (!breakpointMap || !_utils_1.isBrowser)
113
+ if (!breakpointMap)
114
+ return;
115
+ const currentWidth = windowWidthRef.value;
116
+ if (currentWidth === undefined)
100
117
  return;
101
- const mergedMap = getMergedBreakpointValues(breakpointMap);
118
+ const mergedMap = getMergedBreakpointValues(breakpointMap, mode);
102
119
  if (!mergedMap)
103
120
  return;
104
- const currentWidth = windowWidthRef.value;
105
- const breakpointWidths = Object.keys(mergedMap)
106
- .map(Number)
107
- .sort((leftWidth, rightWidth) => leftWidth - rightWidth);
121
+ const breakpointWidths = getSortedBreakpointWidths(mergedMap);
108
122
  let matchingBreakpoints;
109
123
  if (mode === 'mobile-first') {
110
- matchingBreakpoints = breakpointWidths.filter(width => width >= currentWidth);
111
- if (matchingBreakpoints.length === 0) {
112
- matchingBreakpoints = [breakpointWidths[breakpointWidths.length - 1]];
113
- }
114
- }
115
- else {
116
124
  matchingBreakpoints = breakpointWidths
117
125
  .filter(width => width <= currentWidth)
118
126
  .reverse();
@@ -120,6 +128,12 @@ exports.default = (0, vue_1.defineComponent)({
120
128
  matchingBreakpoints = [breakpointWidths[0]];
121
129
  }
122
130
  }
131
+ else {
132
+ matchingBreakpoints = breakpointWidths.filter(width => width >= currentWidth);
133
+ if (matchingBreakpoints.length === 0) {
134
+ matchingBreakpoints = [breakpointWidths[breakpointWidths.length - 1]];
135
+ }
136
+ }
123
137
  const activeBreakpoint = matchingBreakpoints[0];
124
138
  return mergedMap[activeBreakpoint];
125
139
  };
@@ -269,6 +283,7 @@ exports.default = (0, vue_1.defineComponent)({
269
283
  (0, vue_1.provide)(context_1.configProviderInjectionKey, {
270
284
  mergedThemeHashRef,
271
285
  mergedBreakpointsRef,
286
+ mergedSsrBreakpointWidthRef,
272
287
  mergedRtlRef,
273
288
  mergedIconsRef,
274
289
  mergedComponentPropsRef,
@@ -449,6 +449,7 @@ export type BreakpointThemeOverrides = Record<number, GlobalThemeOverrides> | un
449
449
  export type BreakpointMode = 'mobile-first' | 'desktop-first';
450
450
  export interface ConfigProviderInjection {
451
451
  mergedBreakpointsRef: Ref<Breakpoints | undefined>;
452
+ mergedSsrBreakpointWidthRef: Ref<number | undefined>;
452
453
  mergedClsPrefixRef: Ref<string>;
453
454
  mergedBorderedRef: Ref<boolean | undefined>;
454
455
  mergedNamespaceRef: Ref<string | undefined>;
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const seemly_1 = require("seemly");
7
6
  const vue_1 = require("vue");
8
7
  const _internal_1 = require("../../_internal");
9
8
  const _mixins_1 = require("../../_mixins");
@@ -27,6 +26,7 @@ exports.default = (0, vue_1.defineComponent)({
27
26
  emits: ['edit'],
28
27
  props: interface_1.dataTableProps,
29
28
  setup(props, { slots, emit }) {
29
+ const componentId = (0, vue_1.useId)();
30
30
  if (process.env.NODE_ENV !== 'production') {
31
31
  (0, vue_1.watchEffect)(() => {
32
32
  if (props.onPageChange !== undefined) {
@@ -306,7 +306,7 @@ exports.default = (0, vue_1.defineComponent)({
306
306
  indentRef: (0, vue_1.toRef)(props, 'indent'),
307
307
  childTriggerColIndexRef,
308
308
  bodyWidthRef,
309
- componentId: (0, seemly_1.createId)(),
309
+ componentId,
310
310
  hoverKeyRef,
311
311
  mergedClsPrefixRef,
312
312
  mergedThemeRef: themeRef,
@@ -66,6 +66,7 @@ export declare const datePickerProps: {
66
66
  readonly onConfirm: PropType<OnConfirm>;
67
67
  readonly defaultCalendarStartTime: NumberConstructor;
68
68
  readonly defaultCalendarEndTime: NumberConstructor;
69
+ readonly ssrCurrentTimestamp: NumberConstructor;
69
70
  readonly bindCalendarMonths: BooleanConstructor;
70
71
  readonly triggerPreset: {
71
72
  readonly type: PropType<TriggerPreset>;
@@ -2655,6 +2656,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
2655
2656
  readonly onConfirm: PropType<OnConfirm>;
2656
2657
  readonly defaultCalendarStartTime: NumberConstructor;
2657
2658
  readonly defaultCalendarEndTime: NumberConstructor;
2659
+ readonly ssrCurrentTimestamp: NumberConstructor;
2658
2660
  readonly bindCalendarMonths: BooleanConstructor;
2659
2661
  readonly triggerPreset: {
2660
2662
  readonly type: PropType<TriggerPreset>;
@@ -6717,6 +6719,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
6717
6719
  readonly onConfirm: PropType<OnConfirm>;
6718
6720
  readonly defaultCalendarStartTime: NumberConstructor;
6719
6721
  readonly defaultCalendarEndTime: NumberConstructor;
6722
+ readonly ssrCurrentTimestamp: NumberConstructor;
6720
6723
  readonly bindCalendarMonths: BooleanConstructor;
6721
6724
  readonly triggerPreset: {
6722
6725
  readonly type: PropType<TriggerPreset>;
@@ -40,7 +40,7 @@ exports.datePickerProps = Object.assign(Object.assign({}, _mixins_1.useTheme.pro
40
40
  }, valueFormat: String, separator: String, placeholder: String, startPlaceholder: String, endPlaceholder: String, format: String, dateFormat: String, timeFormat: String, actions: Array, shortcuts: Object, defaultShortcuts: Boolean, isDateDisabled: Function, maxDate: Number, isTimeDisabled: Function, show: {
41
41
  type: Boolean,
42
42
  default: undefined
43
- }, panel: Boolean, ranges: Object, firstDayOfWeek: Number, inputReadonly: Boolean, closeOnSelect: Boolean, status: String, timePickerProps: [Object, Array], onClear: Function, onConfirm: Function, defaultCalendarStartTime: Number, defaultCalendarEndTime: Number, bindCalendarMonths: Boolean, triggerPreset: {
43
+ }, panel: Boolean, ranges: Object, firstDayOfWeek: Number, inputReadonly: Boolean, closeOnSelect: Boolean, status: String, timePickerProps: [Object, Array], onClear: Function, onConfirm: Function, defaultCalendarStartTime: Number, defaultCalendarEndTime: Number, ssrCurrentTimestamp: Number, bindCalendarMonths: Boolean, triggerPreset: {
44
44
  type: String,
45
45
  default: 'input'
46
46
  }, 'onUpdate:show': [Function, Array], onUpdateShow: [Function, Array], 'onUpdate:formattedValue': [Function, Array], onUpdateFormattedValue: [Function, Array], 'onUpdate:value': [Function, Array], onUpdateValue: [Function, Array], onFocus: [Function, Array], onBlur: [Function, Array],
@@ -751,6 +751,7 @@ exports.default = (0, vue_1.defineComponent)({
751
751
  : this.shortcuts,
752
752
  style: this.cssVars,
753
753
  defaultTime: this.defaultTime,
754
+ ssrCurrentTimestamp: this.ssrCurrentTimestamp,
754
755
  themeClass: this.themeClass,
755
756
  panel: this.panel,
756
757
  onRender: this.onRender