@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
package/dist/index.js CHANGED
@@ -27894,6 +27894,8 @@
27894
27894
  const { mergedClsPrefixRef } = useConfig(props);
27895
27895
  const messageListRef = vue.ref([]);
27896
27896
  const messageRefs = vue.ref({});
27897
+ const providerId = vue.useId();
27898
+ let messageKeyIndex = 0;
27897
27899
  const api = {
27898
27900
  create(content, options) {
27899
27901
  return create(content, { type: "default", ...options });
@@ -27921,7 +27923,7 @@
27921
27923
  });
27922
27924
  vue.provide(messageApiInjectionKey, api);
27923
27925
  function create(content, options) {
27924
- const key = createId();
27926
+ const key = `${providerId}-${messageKeyIndex++}`;
27925
27927
  const messageReactive = vue.reactive({
27926
27928
  ...options,
27927
27929
  content,
@@ -37605,7 +37607,7 @@
37605
37607
  year: getYear(time)
37606
37608
  },
37607
37609
  inCurrentMonth: isSameMonth(time, monthTs),
37608
- isCurrentDate: matchDate(currentTs, time, "date"),
37610
+ isCurrentDate: currentTs !== null && matchDate(currentTs, time, "date"),
37609
37611
  inSpan,
37610
37612
  startOfSpan,
37611
37613
  endOfSpan,
@@ -37620,7 +37622,7 @@
37620
37622
  month: getMonth(monthTs),
37621
37623
  year: getYear(monthTs)
37622
37624
  },
37623
- isCurrent: isSameMonth(currentTs, monthTs),
37625
+ isCurrent: currentTs !== null && isSameMonth(currentTs, monthTs),
37624
37626
  selected: valueTs !== null && matchDate(valueTs, monthTs, "month"),
37625
37627
  ts: getTime(monthTs)
37626
37628
  };
@@ -37631,7 +37633,7 @@
37631
37633
  dateObject: {
37632
37634
  year: getYear(yearTs)
37633
37635
  },
37634
- isCurrent: isSameYear(currentTs, yearTs),
37636
+ isCurrent: currentTs !== null && isSameYear(currentTs, yearTs),
37635
37637
  selected: valueTs !== null && matchDate(valueTs, yearTs, "year"),
37636
37638
  ts: getTime(yearTs)
37637
37639
  };
@@ -37643,7 +37645,7 @@
37643
37645
  quarter: getQuarter(quarterTs),
37644
37646
  year: getYear(quarterTs)
37645
37647
  },
37646
- isCurrent: isSameQuarter(currentTs, quarterTs),
37648
+ isCurrent: currentTs !== null && isSameQuarter(currentTs, quarterTs),
37647
37649
  selected: valueTs !== null && matchDate(valueTs, quarterTs, "quarter"),
37648
37650
  ts: getTime(quarterTs)
37649
37651
  };
@@ -37920,6 +37922,7 @@
37920
37922
  const calendarProps = {
37921
37923
  ...useTheme.props,
37922
37924
  isDateDisabled: Function,
37925
+ ssrCurrentTimestamp: Number,
37923
37926
  value: Number,
37924
37927
  defaultValue: {
37925
37928
  type: Number,
@@ -37943,7 +37946,7 @@
37943
37946
  mergedClsPrefixRef
37944
37947
  );
37945
37948
  const { localeRef, dateLocaleRef } = useLocale("DatePicker");
37946
- const now = Date.now();
37949
+ const now = props.ssrCurrentTimestamp ?? Date.now();
37947
37950
  const monthTsRef = vue.ref(startOfMonth(props.defaultValue ?? now).valueOf());
37948
37951
  const uncontrolledValueRef = vue.ref(props.defaultValue || null);
37949
37952
  const mergedValueRef = useMergedState(
@@ -38772,6 +38775,7 @@
38772
38775
  const { mergedClsPrefixRef, mergedBreakpointsRef } = useConfig(props);
38773
38776
  const numRegex = /^\d+$/;
38774
38777
  const widthRef = vue.ref(void 0);
38778
+ const mountedRef = vue.ref(false);
38775
38779
  const breakpointsRef = useBreakpoints(
38776
38780
  mergedBreakpointsRef?.value || defaultBreakpoints
38777
38781
  );
@@ -38789,7 +38793,9 @@
38789
38793
  const responsiveQueryRef = vue.computed(() => {
38790
38794
  if (!isResponsiveRef.value)
38791
38795
  return void 0;
38792
- return props.responsive === "self" ? widthRef.value : breakpointsRef.value;
38796
+ if (props.responsive === "self")
38797
+ return widthRef.value;
38798
+ return mountedRef.value ? breakpointsRef.value : void 0;
38793
38799
  });
38794
38800
  const responsiveColsRef = useMemo(() => {
38795
38801
  return Number(
@@ -38823,6 +38829,7 @@
38823
38829
  const isSsrRef = vue.ref(false);
38824
38830
  const contentElRef = vue.ref();
38825
38831
  vue.onMounted(() => {
38832
+ mountedRef.value = true;
38826
38833
  const { value: contentEl } = contentElRef;
38827
38834
  if (contentEl) {
38828
38835
  if (contentEl.hasAttribute(SSR_ATTR_NAME)) {
@@ -41401,11 +41408,12 @@
41401
41408
  cssVarsRef,
41402
41409
  props
41403
41410
  ) : void 0;
41411
+ const labelId = vue.useId();
41404
41412
  return Object.assign(checkbox, {
41405
41413
  rtlEnabled: rtlEnabledRef,
41406
41414
  mergedClsPrefix: mergedClsPrefixRef,
41407
41415
  mergedTheme: themeRef,
41408
- labelId: createId(),
41416
+ labelId,
41409
41417
  cssVars: inlineThemeDisabled ? void 0 : cssVarsRef,
41410
41418
  themeClass: themeClassHandle?.themeClass,
41411
41419
  onRender: themeClassHandle?.onRender
@@ -41456,7 +41464,7 @@
41456
41464
  tabindex: mergedDisabled || !focusable ? void 0 : 0,
41457
41465
  role: "checkbox",
41458
41466
  "aria-checked": indeterminate ? "mixed" : renderedChecked,
41459
- "aria-labelledby": labelId,
41467
+ "aria-labelledby": labelNode ? labelId : void 0,
41460
41468
  style: cssVars,
41461
41469
  onKeyup: handleKeyUp,
41462
41470
  onKeydown: handleKeyDown,
@@ -49836,7 +49844,7 @@
49836
49844
  props: imageGroupProps,
49837
49845
  setup(props) {
49838
49846
  const { mergedClsPrefixRef } = useConfig(props);
49839
- const groupId = `c${createId()}`;
49847
+ const groupId = `c${vue.useId()}`;
49840
49848
  const previewInstRef = vue.ref(null);
49841
49849
  const uncontrolledShowRef = vue.ref(props.defaultShow);
49842
49850
  const controlledShowRef = vue.toRef(props, "show");
@@ -49863,12 +49871,12 @@
49863
49871
  "`u-image` can't be placed inside `u-image-group` when image group's `src-list` prop is set."
49864
49872
  );
49865
49873
  }
49866
- const sid = `r${id}`;
49867
- if (!registeredImageUrlMap.value.has(`r${sid}`)) {
49874
+ const sid = id;
49875
+ if (!registeredImageUrlMap.value.has(sid)) {
49868
49876
  registeredImageUrlMap.value.set(sid, url);
49869
49877
  }
49870
49878
  return function unregisterPreviewUrl() {
49871
- if (!registeredImageUrlMap.value.has(sid)) {
49879
+ if (registeredImageUrlMap.value.has(sid)) {
49872
49880
  registeredImageUrlMap.value.delete(sid);
49873
49881
  }
49874
49882
  };
@@ -50020,7 +50028,6 @@
50020
50028
  onLoad: Function,
50021
50029
  ...imagePreviewSharedProps
50022
50030
  };
50023
- let uuid = 0;
50024
50031
  var Image$1 = vue.defineComponent({
50025
50032
  name: "Image",
50026
50033
  props: imageProps,
@@ -50036,13 +50043,13 @@
50036
50043
  return props.previewSrc || props.src;
50037
50044
  });
50038
50045
  const previewShowRef = vue.ref(false);
50039
- const imageId = uuid++;
50046
+ const imageId = `r${vue.useId()}`;
50040
50047
  const showPreview = () => {
50041
50048
  if (props.previewDisabled || showErrorRef.value)
50042
50049
  return;
50043
50050
  if (imageGroupHandle) {
50044
50051
  imageGroupHandle.setThumbnailEl(imageRef.value);
50045
- imageGroupHandle.toggleShow(`r${imageId}`);
50052
+ imageGroupHandle.toggleShow(imageId);
50046
50053
  return;
50047
50054
  }
50048
50055
  const { value: previewInst } = previewInstRef;
@@ -51543,6 +51550,8 @@
51543
51550
  name: "Upload",
51544
51551
  props: uploadProps,
51545
51552
  setup(props) {
51553
+ const uploadId = vue.useId();
51554
+ const uploadKeyIndexRef = vue.ref(0);
51546
51555
  const { localeRef } = useLocale("Upload");
51547
51556
  const { submitImpl, customSubmitImpl } = useUpload();
51548
51557
  if (props.abstract && props.listType === "image-card") {
@@ -51609,6 +51618,11 @@
51609
51618
  const mergedMultipleRef = vue.computed(
51610
51619
  () => props.multiple || props.directory
51611
51620
  );
51621
+ function createUploadKey() {
51622
+ const key = `${uploadId}-${uploadKeyIndexRef.value}`;
51623
+ uploadKeyIndexRef.value += 1;
51624
+ return key;
51625
+ }
51612
51626
  function handleFileAddition(fileAndEntries, e) {
51613
51627
  if (!fileAndEntries || fileAndEntries.length === 0)
51614
51628
  return;
@@ -51628,11 +51642,11 @@
51628
51642
  max - mergedFileListRef.value.length
51629
51643
  );
51630
51644
  }
51631
- const batchId = createId();
51645
+ const batchId = createUploadKey();
51632
51646
  void Promise.all(
51633
51647
  fileAndEntries.map(async ({ file, entry }) => {
51634
51648
  const fileInfo = {
51635
- id: createId(),
51649
+ id: createUploadKey(),
51636
51650
  batchId,
51637
51651
  name: file.name,
51638
51652
  status: "pending",
@@ -57484,9 +57498,9 @@
57484
57498
  props: collapseItemProps,
57485
57499
  setup(props) {
57486
57500
  const { mergedRtlRef } = useConfig(props);
57487
- const randomName = createId();
57501
+ const generatedName = vue.useId();
57488
57502
  const mergedNameRef = useMemo(() => {
57489
- return props.name ?? randomName;
57503
+ return props.name ?? generatedName;
57490
57504
  });
57491
57505
  const UCollapse = vue.inject(collapseInjectionKey);
57492
57506
  if (!UCollapse) {
@@ -57531,7 +57545,7 @@
57531
57545
  return {
57532
57546
  rtlEnabled: rtlEnabledRef,
57533
57547
  collapseSlots,
57534
- randomName,
57548
+ randomName: generatedName,
57535
57549
  mergedClsPrefix: mergedClsPrefixRef,
57536
57550
  collapsed: collapsedRef,
57537
57551
  triggerAreas: vue.toRef(collapseProps, "triggerAreas"),
@@ -59643,6 +59657,7 @@
59643
59657
  type: String,
59644
59658
  default: "desktop-first"
59645
59659
  },
59660
+ ssrBreakpointWidth: Number,
59646
59661
  preflightStyleDisabled: Boolean,
59647
59662
  styleMountTarget: Object,
59648
59663
  inlineThemeDisabled: {
@@ -59679,12 +59694,22 @@
59679
59694
  } = props;
59680
59695
  return breakpointMode || UConfigProvider?.mergedBreakpointModeRef.value || "desktop-first";
59681
59696
  });
59682
- const getMergedBreakpointValues = breakpointMap => {
59697
+ const mergedSsrBreakpointWidthRef = vue.computed(() => {
59698
+ const {
59699
+ ssrBreakpointWidth
59700
+ } = props;
59701
+ return ssrBreakpointWidth !== void 0 ? ssrBreakpointWidth : UConfigProvider?.mergedSsrBreakpointWidthRef.value;
59702
+ });
59703
+ const getSortedBreakpointWidths = breakpointMap => {
59704
+ return Object.keys(breakpointMap).map(Number).sort((leftWidth, rightWidth) => leftWidth - rightWidth);
59705
+ };
59706
+ const getMergedBreakpointValues = (breakpointMap, mode = "desktop-first") => {
59683
59707
  if (!breakpointMap) return;
59684
- const breakpointWidths = Object.keys(breakpointMap).map(Number).sort((leftWidth, rightWidth) => leftWidth - rightWidth);
59708
+ const breakpointWidths = getSortedBreakpointWidths(breakpointMap);
59709
+ const orderedWidths = mode === "mobile-first" ? breakpointWidths : [...breakpointWidths].reverse();
59685
59710
  const mergedMap = {};
59686
59711
  let previousValue;
59687
- for (const width of breakpointWidths) {
59712
+ for (const width of orderedWidths) {
59688
59713
  if (previousValue !== void 0) {
59689
59714
  mergedMap[width] = merge$1({}, previousValue, breakpointMap[width]);
59690
59715
  } else {
@@ -59694,23 +59719,24 @@
59694
59719
  }
59695
59720
  return mergedMap;
59696
59721
  };
59697
- const windowWidthRef = vue.ref(isBrowser$1 ? window.innerWidth : 1920);
59722
+ const windowWidthRef = vue.ref(mergedSsrBreakpointWidthRef.value ?? (isBrowser$1 ? window.innerWidth : void 0));
59698
59723
  const getActiveBreakpointValue = (breakpointMap, mode = "desktop-first") => {
59699
- if (!breakpointMap || !isBrowser$1) return;
59700
- const mergedMap = getMergedBreakpointValues(breakpointMap);
59701
- if (!mergedMap) return;
59724
+ if (!breakpointMap) return;
59702
59725
  const currentWidth = windowWidthRef.value;
59703
- const breakpointWidths = Object.keys(mergedMap).map(Number).sort((leftWidth, rightWidth) => leftWidth - rightWidth);
59726
+ if (currentWidth === void 0) return;
59727
+ const mergedMap = getMergedBreakpointValues(breakpointMap, mode);
59728
+ if (!mergedMap) return;
59729
+ const breakpointWidths = getSortedBreakpointWidths(mergedMap);
59704
59730
  let matchingBreakpoints;
59705
59731
  if (mode === "mobile-first") {
59706
- matchingBreakpoints = breakpointWidths.filter(width => width >= currentWidth);
59732
+ matchingBreakpoints = breakpointWidths.filter(width => width <= currentWidth).reverse();
59707
59733
  if (matchingBreakpoints.length === 0) {
59708
- matchingBreakpoints = [breakpointWidths[breakpointWidths.length - 1]];
59734
+ matchingBreakpoints = [breakpointWidths[0]];
59709
59735
  }
59710
59736
  } else {
59711
- matchingBreakpoints = breakpointWidths.filter(width => width <= currentWidth).reverse();
59737
+ matchingBreakpoints = breakpointWidths.filter(width => width >= currentWidth);
59712
59738
  if (matchingBreakpoints.length === 0) {
59713
- matchingBreakpoints = [breakpointWidths[0]];
59739
+ matchingBreakpoints = [breakpointWidths[breakpointWidths.length - 1]];
59714
59740
  }
59715
59741
  }
59716
59742
  const activeBreakpoint = matchingBreakpoints[0];
@@ -59871,6 +59897,7 @@
59871
59897
  vue.provide(configProviderInjectionKey, {
59872
59898
  mergedThemeHashRef,
59873
59899
  mergedBreakpointsRef,
59900
+ mergedSsrBreakpointWidthRef,
59874
59901
  mergedRtlRef,
59875
59902
  mergedIconsRef,
59876
59903
  mergedComponentPropsRef,
@@ -69984,6 +70011,7 @@
69984
70011
  emits: ["edit"],
69985
70012
  props: dataTableProps,
69986
70013
  setup(props, { slots, emit }) {
70014
+ const componentId = vue.useId();
69987
70015
  {
69988
70016
  vue.watchEffect(() => {
69989
70017
  if (props.onPageChange !== void 0) {
@@ -70360,7 +70388,7 @@
70360
70388
  indentRef: vue.toRef(props, "indent"),
70361
70389
  childTriggerColIndexRef,
70362
70390
  bodyWidthRef,
70363
- componentId: createId(),
70391
+ componentId,
70364
70392
  hoverKeyRef,
70365
70393
  mergedClsPrefixRef,
70366
70394
  mergedThemeRef: themeRef,
@@ -70677,6 +70705,7 @@
70677
70705
  onClear: Function,
70678
70706
  onConfirm: Function,
70679
70707
  onClose: Function,
70708
+ ssrCurrentTimestamp: Number,
70680
70709
  onTabOut: Function,
70681
70710
  onUpdateValue: {
70682
70711
  type: Function,
@@ -70859,11 +70888,15 @@
70859
70888
  isSecondDisabled: isSecondDisabledRef
70860
70889
  };
70861
70890
  const mergedDateFormatRef = vue.computed(() => props.dateFormat || localeRef.value.dateFormat);
70891
+ const initialCurrentTimestamp = props.ssrCurrentTimestamp ?? Date.now();
70862
70892
  const dateInputValueRef = vue.ref(props.value === null || Array.isArray(props.value) ? "" : format$3(props.value, mergedDateFormatRef.value));
70863
- const calendarValueRef = vue.ref(props.value === null || Array.isArray(props.value) ? Date.now() : props.value);
70893
+ const calendarValueRef = vue.ref(props.value === null || Array.isArray(props.value) ? initialCurrentTimestamp : props.value);
70864
70894
  const yearVlRef = vue.ref(null);
70865
70895
  const yearScrollbarRef = vue.ref(null);
70866
- const nowRef = vue.ref(Date.now());
70896
+ const nowRef = vue.ref(props.ssrCurrentTimestamp ?? null);
70897
+ vue.onMounted(() => {
70898
+ nowRef.value = Date.now();
70899
+ });
70867
70900
  const dateArrayRef = vue.computed(() => {
70868
70901
  return dateArray(calendarValueRef.value, props.value, nowRef.value, firstDayOfWeekRef.value ?? localeRef.value.firstDayOfWeek);
70869
70902
  });
@@ -70991,7 +71024,7 @@
70991
71024
  if (props.value !== null && !Array.isArray(props.value)) {
70992
71025
  newValue = props.value;
70993
71026
  } else {
70994
- newValue = Date.now();
71027
+ newValue = calendarValueRef.value;
70995
71028
  }
70996
71029
  if (type === "datetime" && props.defaultTime !== null && !Array.isArray(props.defaultTime)) {
70997
71030
  let time;
@@ -71031,7 +71064,7 @@
71031
71064
  if (props.value !== null && !Array.isArray(props.value)) {
71032
71065
  newValue = props.value;
71033
71066
  } else {
71034
- newValue = Date.now();
71067
+ newValue = calendarValueRef.value;
71035
71068
  }
71036
71069
  newValue = getTime(dateItem.type === "month" ? setMonth(newValue, dateItem.dateObject.month) : setYear(newValue, dateItem.dateObject.year));
71037
71070
  updatePanelValue(newValue);
@@ -71807,11 +71840,15 @@
71807
71840
  const {
71808
71841
  value
71809
71842
  } = props;
71810
- const defaultCalendarStartTime = props.defaultCalendarStartTime ?? (Array.isArray(value) && typeof value[0] === "number" ? value[0] : Date.now());
71843
+ const initialCurrentTimestamp = props.ssrCurrentTimestamp ?? Date.now();
71844
+ const defaultCalendarStartTime = props.defaultCalendarStartTime ?? (Array.isArray(value) && typeof value[0] === "number" ? value[0] : initialCurrentTimestamp);
71811
71845
  const startCalendarDateTimeRef = vue.ref(defaultCalendarStartTime);
71812
71846
  const endCalendarDateTimeRef = vue.ref(props.defaultCalendarEndTime ?? (Array.isArray(value) && typeof value[1] === "number" ? value[1] : getTime(addMonths(defaultCalendarStartTime, 1))));
71813
71847
  adjustCalendarTimes(true);
71814
- const nowRef = vue.ref(Date.now());
71848
+ const nowRef = vue.ref(props.ssrCurrentTimestamp ?? null);
71849
+ vue.onMounted(() => {
71850
+ nowRef.value = Date.now();
71851
+ });
71815
71852
  const isSelectingRef = vue.ref(false);
71816
71853
  const memorizedStartDateTimeRef = vue.ref(0);
71817
71854
  const mergedDateFormatRef = vue.computed(() => props.dateFormat || localeRef.value.dateFormat);
@@ -71874,19 +71911,19 @@
71874
71911
  });
71875
71912
  const startQuarterArrayRef = vue.computed(() => {
71876
71913
  const startValue = pluckValueFromRange(props.value, "start");
71877
- return quarterArray(startValue ?? Date.now(), startValue, nowRef.value);
71914
+ return quarterArray(startValue ?? startCalendarDateTimeRef.value, startValue, nowRef.value);
71878
71915
  });
71879
71916
  const endQuarterArrayRef = vue.computed(() => {
71880
71917
  const endValue = pluckValueFromRange(props.value, "end");
71881
- return quarterArray(endValue ?? Date.now(), endValue, nowRef.value);
71918
+ return quarterArray(endValue ?? endCalendarDateTimeRef.value, endValue, nowRef.value);
71882
71919
  });
71883
71920
  const startMonthArrayRef = vue.computed(() => {
71884
71921
  const startValue = pluckValueFromRange(props.value, "start");
71885
- return monthArray(startValue ?? Date.now(), startValue, nowRef.value);
71922
+ return monthArray(startValue ?? startCalendarDateTimeRef.value, startValue, nowRef.value);
71886
71923
  });
71887
71924
  const endMonthArrayRef = vue.computed(() => {
71888
71925
  const endValue = pluckValueFromRange(props.value, "end");
71889
- return monthArray(endValue ?? Date.now(), endValue, nowRef.value);
71926
+ return monthArray(endValue ?? endCalendarDateTimeRef.value, endValue, nowRef.value);
71890
71927
  });
71891
71928
  vue.watch(vue.computed(() => props.value), value2 => {
71892
71929
  if (value2 !== null && Array.isArray(value2)) {
@@ -72231,7 +72268,7 @@
72231
72268
  const mergedValue = value2 === void 0 ? props.value : value2;
72232
72269
  if (value2 === void 0 || type2 === "start") {
72233
72270
  if (startMonthScrollbarRef.value) {
72234
- const monthIndex = !Array.isArray(mergedValue) ? getMonth(Date.now()) : getMonth(mergedValue[0]);
72271
+ const monthIndex = !Array.isArray(mergedValue) ? getMonth(startCalendarDateTimeRef.value) : getMonth(mergedValue[0]);
72235
72272
  startMonthScrollbarRef.value.scrollTo({
72236
72273
  debounce: false,
72237
72274
  index: monthIndex,
@@ -72239,7 +72276,7 @@
72239
72276
  });
72240
72277
  }
72241
72278
  if (startYearVlRef.value) {
72242
- const yearIndex = (!Array.isArray(mergedValue) ? getYear(Date.now()) : getYear(mergedValue[0])) - START_YEAR$1;
72279
+ const yearIndex = (!Array.isArray(mergedValue) ? getYear(startCalendarDateTimeRef.value) : getYear(mergedValue[0])) - START_YEAR$1;
72243
72280
  startYearVlRef.value.scrollTo({
72244
72281
  index: yearIndex,
72245
72282
  debounce: false
@@ -72248,7 +72285,7 @@
72248
72285
  }
72249
72286
  if (value2 === void 0 || type2 === "end") {
72250
72287
  if (endMonthScrollbarRef.value) {
72251
- const monthIndex = !Array.isArray(mergedValue) ? getMonth(Date.now()) : getMonth(mergedValue[1]);
72288
+ const monthIndex = !Array.isArray(mergedValue) ? getMonth(endCalendarDateTimeRef.value) : getMonth(mergedValue[1]);
72252
72289
  endMonthScrollbarRef.value.scrollTo({
72253
72290
  debounce: false,
72254
72291
  index: monthIndex,
@@ -72256,7 +72293,7 @@
72256
72293
  });
72257
72294
  }
72258
72295
  if (endYearVlRef.value) {
72259
- const yearIndex = (!Array.isArray(mergedValue) ? getYear(Date.now()) : getYear(mergedValue[1])) - START_YEAR$1;
72296
+ const yearIndex = (!Array.isArray(mergedValue) ? getYear(endCalendarDateTimeRef.value) : getYear(mergedValue[1])) - START_YEAR$1;
72260
72297
  endYearVlRef.value.scrollTo({
72261
72298
  index: yearIndex,
72262
72299
  debounce: false
@@ -73992,6 +74029,10 @@
73992
74029
  const { mergedThemeRef, mergedClsPrefixRef } = vue.inject(
73993
74030
  timePickerInjectionKey
73994
74031
  );
74032
+ const mountedRef = vue.ref(false);
74033
+ vue.onMounted(() => {
74034
+ mountedRef.value = true;
74035
+ });
73995
74036
  const hoursRef = vue.computed(() => {
73996
74037
  const { isHourDisabled, hours, use12Hours, amPmValue } = props;
73997
74038
  if (!use12Hours) {
@@ -74003,7 +74044,7 @@
74003
74044
  };
74004
74045
  });
74005
74046
  } else {
74006
- const mergedAmPmValue = amPmValue ?? getAmPm(Date.now());
74047
+ const mergedAmPmValue = amPmValue ?? (mountedRef.value ? getAmPm(Date.now()) : "am");
74007
74048
  return getTimeUnits(time.hours, hours, mergedAmPmValue).map((hour) => {
74008
74049
  const hourAs12FormattedNumber = Number(hour);
74009
74050
  const hourAs24FormattedNumber = mergedAmPmValue === "pm" && hourAs12FormattedNumber !== 12 ? hourAs12FormattedNumber + 12 : hourAs12FormattedNumber;
@@ -76205,6 +76246,7 @@
76205
76246
  onConfirm: Function,
76206
76247
  defaultCalendarStartTime: Number,
76207
76248
  defaultCalendarEndTime: Number,
76249
+ ssrCurrentTimestamp: Number,
76208
76250
  bindCalendarMonths: Boolean,
76209
76251
  triggerPreset: {
76210
76252
  type: String,
@@ -77088,6 +77130,7 @@
77088
77130
  shortcuts: this.defaultShortcuts ? this.getDefaultShortcuts() : this.shortcuts,
77089
77131
  style: this.cssVars,
77090
77132
  defaultTime: this.defaultTime,
77133
+ ssrCurrentTimestamp: this.ssrCurrentTimestamp,
77091
77134
  themeClass: this.themeClass,
77092
77135
  panel: this.panel,
77093
77136
  onRender: this.onRender
@@ -77503,7 +77546,7 @@
77503
77546
  month: dayMonth,
77504
77547
  date: dayDate,
77505
77548
  ts,
77506
- isCurrentDate: isSameDay(day, now),
77549
+ isCurrentDate: now !== null && isSameDay(day, now),
77507
77550
  isCurrentMonth: isSameMonth(day, date),
77508
77551
  selected,
77509
77552
  inRange,
@@ -77606,7 +77649,10 @@
77606
77649
  const loc = dateLocaleRef?.value?.locale;
77607
77650
  return loc ? { locale: loc } : void 0;
77608
77651
  });
77609
- const now = Date.now();
77652
+ const nowRef = vue.ref(null);
77653
+ vue.onMounted(() => {
77654
+ nowRef.value = Date.now();
77655
+ });
77610
77656
  const {
77611
77657
  monthScrollbarRef,
77612
77658
  yearScrollbarRef,
@@ -77662,7 +77708,7 @@
77662
77708
  month,
77663
77709
  props.value ?? null,
77664
77710
  null,
77665
- now,
77711
+ nowRef.value,
77666
77712
  props.isDateDisabled
77667
77713
  )
77668
77714
  });
@@ -77689,8 +77735,7 @@
77689
77735
  weekdayNamesRef,
77690
77736
  monthScrollbarRef,
77691
77737
  yearScrollbarRef,
77692
- calendarScrollbarRef,
77693
- now
77738
+ calendarScrollbarRef
77694
77739
  };
77695
77740
  },
77696
77741
  render() {
@@ -77922,7 +77967,10 @@
77922
77967
  const loc = dateLocaleRef?.value?.locale;
77923
77968
  return loc ? { locale: loc } : void 0;
77924
77969
  });
77925
- const now = Date.now();
77970
+ const nowRef = vue.ref(null);
77971
+ vue.onMounted(() => {
77972
+ nowRef.value = Date.now();
77973
+ });
77926
77974
  const {
77927
77975
  monthScrollbarRef,
77928
77976
  yearScrollbarRef,
@@ -77979,7 +78027,7 @@
77979
78027
  null,
77980
78028
  // single value не используется для range
77981
78029
  props.value,
77982
- now,
78030
+ nowRef.value,
77983
78031
  props.isDateDisabled
77984
78032
  )
77985
78033
  });
@@ -78006,8 +78054,7 @@
78006
78054
  weekdayNamesRef,
78007
78055
  monthScrollbarRef,
78008
78056
  yearScrollbarRef,
78009
- calendarScrollbarRef,
78010
- now
78057
+ calendarScrollbarRef
78011
78058
  };
78012
78059
  },
78013
78060
  render() {
@@ -81088,8 +81135,10 @@
81088
81135
  setup() {
81089
81136
  const dialogListRef = vue.ref([]);
81090
81137
  const dialogInstRefs = {};
81138
+ const providerId = vue.useId();
81139
+ let dialogKeyIndex = 0;
81091
81140
  function create(options = {}) {
81092
- const key = createId();
81141
+ const key = `${providerId}-${dialogKeyIndex++}`;
81093
81142
  const dialogReactive = vue.reactive({
81094
81143
  ...options,
81095
81144
  key,
@@ -82235,8 +82284,10 @@
82235
82284
  const notificationListRef = vue.ref([]);
82236
82285
  const notificationRefs = {};
82237
82286
  const leavingKeySet = /* @__PURE__ */ new Set();
82287
+ const providerId = vue.useId();
82288
+ let notificationKeyIndex = 0;
82238
82289
  function create(options) {
82239
- const key = createId();
82290
+ const key = `${providerId}-${notificationKeyIndex++}`;
82240
82291
  const destroy = () => {
82241
82292
  leavingKeySet.add(key);
82242
82293
  if (notificationRefs[key]) {
@@ -83947,7 +83998,6 @@
83947
83998
  paddingTop: "0 !important"
83948
83999
  })])]);
83949
84000
 
83950
- const globalDataKeyMap = /* @__PURE__ */ new WeakMap();
83951
84001
  const dynamicInputProps = {
83952
84002
  ...useTheme.props,
83953
84003
  max: Number,
@@ -84025,6 +84075,9 @@
84025
84075
  controlledValueRef,
84026
84076
  uncontrolledValueRef
84027
84077
  );
84078
+ const componentId = vue.useId();
84079
+ const localDataKeyMap = /* @__PURE__ */ new WeakMap();
84080
+ let localDataKeyIndex = 0;
84028
84081
  const themeRef = useTheme(
84029
84082
  "DynamicInput",
84030
84083
  "-dynamic-input",
@@ -84066,9 +84119,10 @@
84066
84119
  if (typeof value !== "object")
84067
84120
  return index;
84068
84121
  const rawValue = vue.isProxy(value) ? vue.toRaw(value) : value;
84069
- let key = globalDataKeyMap.get(rawValue);
84122
+ let key = localDataKeyMap.get(rawValue);
84070
84123
  if (key === void 0) {
84071
- globalDataKeyMap.set(rawValue, key = createId());
84124
+ key = `${componentId}-${localDataKeyIndex++}`;
84125
+ localDataKeyMap.set(rawValue, key);
84072
84126
  }
84073
84127
  return key;
84074
84128
  }
@@ -84080,9 +84134,9 @@
84080
84134
  if (originalItem && value && typeof originalItem === "object" && typeof value === "object") {
84081
84135
  const rawOriginal = vue.isProxy(originalItem) ? vue.toRaw(originalItem) : originalItem;
84082
84136
  const rawNew = vue.isProxy(value) ? vue.toRaw(value) : value;
84083
- const originalKey = globalDataKeyMap.get(rawOriginal);
84137
+ const originalKey = localDataKeyMap.get(rawOriginal);
84084
84138
  if (originalKey !== void 0) {
84085
- globalDataKeyMap.set(rawNew, originalKey);
84139
+ localDataKeyMap.set(rawNew, originalKey);
84086
84140
  }
84087
84141
  }
84088
84142
  doUpdateValue(newValue);
@@ -86967,7 +87021,9 @@
86967
87021
  mergedRequireMarkPlacement: mergedRequireMarkPlacementRef
86968
87022
  } = formItemMiscRefs;
86969
87023
  const renderExplainsRef = vue.ref([]);
86970
- const feedbackIdRef = vue.ref(createId());
87024
+ const feedbackBaseId = vue.useId();
87025
+ const feedbackIdIndexRef = vue.ref(0);
87026
+ const feedbackIdRef = vue.ref(`${feedbackBaseId}-${feedbackIdIndexRef.value}`);
86971
87027
  const labelElementRef = vue.ref(null);
86972
87028
  const mergedDisabledRef = UForm ? vue.toRef(UForm.props, "disabled") : vue.ref(false);
86973
87029
  const themeRef = useTheme(
@@ -87002,7 +87058,8 @@
87002
87058
  validationErroredRef.value = false;
87003
87059
  validationWarnedRef.value = false;
87004
87060
  if (props.feedback) {
87005
- feedbackIdRef.value = createId();
87061
+ feedbackIdIndexRef.value += 1;
87062
+ feedbackIdRef.value = `${feedbackBaseId}-${feedbackIdIndexRef.value}`;
87006
87063
  }
87007
87064
  }
87008
87065
  function handleContentBlur() {
@@ -88486,7 +88543,7 @@
88486
88543
  onUpdateMenuValue: [Function, Array],
88487
88544
  onUpdateActiveMenuKey: Function
88488
88545
  };
88489
- var HeaderNavigation = vue.defineComponent({
88546
+ const HeaderNavigation = vue.defineComponent({
88490
88547
  name: "HeaderNavigation",
88491
88548
  props: headerNavigationProps,
88492
88549
  setup(props) {
@@ -90854,6 +90911,8 @@
90854
90911
  function transformHeatmapFirstDayOfWeekToDateFns(firstDayOfWeek) {
90855
90912
  return (firstDayOfWeek + 1) % 7;
90856
90913
  }
90914
+ const HEATMAP_LABEL_BASE_DATE = new Date(2024, 0, 1);
90915
+ const HEATMAP_LABEL_BASE_YEAR = 2024;
90857
90916
  const heatmapProps = {
90858
90917
  ...useTheme.props,
90859
90918
  activeColors: Array,
@@ -91016,7 +91075,7 @@
91016
91075
  const weekLabelsRef = vue.computed(() => {
91017
91076
  const { weekdayFormat } = localeRef.value;
91018
91077
  const { locale } = dateLocaleRef.value;
91019
- const baseDate = startOfWeek(/* @__PURE__ */ new Date(), {
91078
+ const baseDate = startOfWeek(HEATMAP_LABEL_BASE_DATE, {
91020
91079
  weekStartsOn: transformHeatmapFirstDayOfWeekToDateFns(
91021
91080
  props.firstDayOfWeek
91022
91081
  )
@@ -91031,10 +91090,9 @@
91031
91090
  const loadingMonthLabelsRef = vue.computed(() => {
91032
91091
  const { monthFormat } = localeRef.value;
91033
91092
  const { locale } = dateLocaleRef.value;
91034
- const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
91035
91093
  const colSpans = [5, 4, 5, 4, 5, 4, 5, 4, 4, 5, 4, 4];
91036
91094
  return Array.from({ length: 12 }, (_, i) => {
91037
- const monthDate = new Date(currentYear, i, 1);
91095
+ const monthDate = new Date(HEATMAP_LABEL_BASE_YEAR, i, 1);
91038
91096
  return {
91039
91097
  name: format$3(monthDate, monthFormat, { locale }),
91040
91098
  colSpan: colSpans[i]
@@ -97099,7 +97157,7 @@
97099
97157
  cssVarsRef,
97100
97158
  props
97101
97159
  ) : void 0;
97102
- const ellipsisNodeId = createId();
97160
+ const ellipsisNodeId = vue.useId();
97103
97161
  const overflowRef = vue.ref(null);
97104
97162
  const counterRef = vue.ref(null);
97105
97163
  let isFirstResize = true;
@@ -97389,8 +97447,10 @@
97389
97447
  setup() {
97390
97448
  const modalListRef = vue.ref([]);
97391
97449
  const modalInstRefs = {};
97450
+ const providerId = vue.useId();
97451
+ let modalKeyIndex = 0;
97392
97452
  function create(options = {}) {
97393
- const key = createId();
97453
+ const key = `${providerId}-${modalKeyIndex++}`;
97394
97454
  const modalReactive = vue.reactive({
97395
97455
  ...options,
97396
97456
  key,
@@ -105216,6 +105276,7 @@
105216
105276
  default: void 0
105217
105277
  // the same as `time` prop
105218
105278
  },
105279
+ ssrCurrentTimestamp: Number,
105219
105280
  unix: Boolean,
105220
105281
  format: String,
105221
105282
  text: Boolean,
@@ -105225,7 +105286,7 @@
105225
105286
  name: "Time",
105226
105287
  props: timeProps,
105227
105288
  setup(props) {
105228
- const now = Date.now();
105289
+ const now = props.ssrCurrentTimestamp ?? Date.now();
105229
105290
  const {
105230
105291
  localeRef,
105231
105292
  dateLocaleRef
@@ -111031,7 +111092,7 @@
111031
111092
  });
111032
111093
  }
111033
111094
 
111034
- var version = "2.0.0-beta.1";
111095
+ var version = "2.0.0-beta.3";
111035
111096
 
111036
111097
  function create({
111037
111098
  componentPrefix = "U",