@sia.soul/sia-react-ui 0.1.44 → 0.1.46

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.
@@ -142,7 +142,7 @@ interface DateRangePickerProps extends Omit<DatePickerProps, "value" | "defaultV
142
142
  /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
143
143
  onChange?: (value: readonly [string, string]) => void;
144
144
  }
145
- /** 日期范围选择;纯日期按两次点击组成范围,带时间时使用单面板分步设置起止值并确认提交。 */
145
+ /** 日期范围选择;纯日期按两次点击组成范围,带时间时使用单面板分步设置起止值并确认提交,活动底线随编辑端点平滑移动。 */
146
146
  declare function DateRangePicker({ value, defaultValue, placeholder, placeholderMode, separator, presets, maxRangeDays, allowEmpty, endpointDisabled, size: sizeProp, status, allowClear, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, disabledDate, disabled, className, onCalendarChange, onChange, onOpenChange, formatValue, renderExtraFooter, ...props }: DateRangePickerProps): react.JSX.Element;
147
147
  /** 日期选择组件。 */
148
148
  declare function DatePicker({ value, defaultValue, picker, size: sizeProp, status, allowClear, multiple, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, presets, disabledDate, disabled, className, onChange, onOpenChange, placeholder, placeholderMode, formatValue, renderExtraFooter, ...props }: DatePickerProps): react.JSX.Element;
@@ -142,7 +142,7 @@ interface DateRangePickerProps extends Omit<DatePickerProps, "value" | "defaultV
142
142
  /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
143
143
  onChange?: (value: readonly [string, string]) => void;
144
144
  }
145
- /** 日期范围选择;纯日期按两次点击组成范围,带时间时使用单面板分步设置起止值并确认提交。 */
145
+ /** 日期范围选择;纯日期按两次点击组成范围,带时间时使用单面板分步设置起止值并确认提交,活动底线随编辑端点平滑移动。 */
146
146
  declare function DateRangePicker({ value, defaultValue, placeholder, placeholderMode, separator, presets, maxRangeDays, allowEmpty, endpointDisabled, size: sizeProp, status, allowClear, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, disabledDate, disabled, className, onCalendarChange, onChange, onOpenChange, formatValue, renderExtraFooter, ...props }: DateRangePickerProps): react.JSX.Element;
147
147
  /** 日期选择组件。 */
148
148
  declare function DatePicker({ value, defaultValue, picker, size: sizeProp, status, allowClear, multiple, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, presets, disabledDate, disabled, className, onChange, onOpenChange, placeholder, placeholderMode, formatValue, renderExtraFooter, ...props }: DatePickerProps): react.JSX.Element;
@@ -2005,6 +2005,24 @@ function DateRangePicker({
2005
2005
  const [visible, setVisible] = useControllableState({ value: open, defaultValue: defaultOpen, onChange: onOpenChange });
2006
2006
  const [draftValue, setDraftValue] = (0, import_react7.useState)(currentValue);
2007
2007
  const [activeIndex, setActiveIndex] = (0, import_react7.useState)(endpointDisabled[0] || currentValue[0] && !currentValue[1] ? 1 : 0);
2008
+ const indicatorRef = (0, import_react7.useRef)(null);
2009
+ (0, import_react7.useLayoutEffect)(() => {
2010
+ const field = rootRef.current?.querySelector(`[data-range-endpoint="${activeIndex}"]`);
2011
+ const indicator = indicatorRef.current;
2012
+ if (!field || !indicator) return;
2013
+ const alignIndicator = () => {
2014
+ indicator.style.transform = `translateX(${field.offsetLeft}px)`;
2015
+ indicator.style.width = `${field.offsetWidth}px`;
2016
+ };
2017
+ alignIndicator();
2018
+ const observer = new ResizeObserver(alignIndicator);
2019
+ const trigger = field.parentElement;
2020
+ if (trigger) {
2021
+ observer.observe(trigger);
2022
+ for (const child of trigger.children) if (child !== indicator) observer.observe(child);
2023
+ }
2024
+ return () => observer.disconnect();
2025
+ });
2008
2026
  const [confirmedIndex, setConfirmedIndex] = (0, import_react7.useState)(null);
2009
2027
  const [presetSelected, setPresetSelected] = (0, import_react7.useState)(false);
2010
2028
  const [hoverDate, setHoverDate] = (0, import_react7.useState)("");
@@ -2271,6 +2289,7 @@ function DateRangePicker({
2271
2289
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `sia-picker-range-control__value${displayValue[1] ? "" : " is-placeholder"}`, children: displayValue[1] ? formatValue(displayValue[1]) : placeholder[1] }),
2272
2290
  endFloating.label
2273
2291
  ] }),
2292
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { ref: indicatorRef, className: "sia-picker-range-control__indicator", "aria-hidden": "true" }),
2274
2293
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "sia-picker__icon", "aria-hidden": "true", children: suffixIcon ?? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { name: "calendar", size: 16 }) })
2275
2294
  ]
2276
2295
  }
@@ -1,4 +1,4 @@
1
- export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-2galnCvZ.cjs';
1
+ export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-CyfCT32j.cjs';
2
2
  import 'react';
3
3
  import './shared-Bx4B28Wh.cjs';
4
4
  import './Select-YJbT-MF1.cjs';
@@ -1,4 +1,4 @@
1
- export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-Dtj6XF9I.js';
1
+ export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-B1ZWIHoe.js';
2
2
  import 'react';
3
3
  import './shared-Bx4B28Wh.js';
4
4
  import './Select-CCrPqULn.js';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SelectDateRange
3
- } from "./chunk-QIXU7N4X.js";
3
+ } from "./chunk-E4RMSZOC.js";
4
4
  import "./chunk-NYJSSPIX.js";
5
5
  import "./chunk-XCVAVCIO.js";
6
6
  import "./chunk-IKAMZNCK.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sia.soul/sia-react-ui",
3
- "version": "0.1.44",
3
+ "version": "0.1.46",
4
4
  "description": "Sia Design components and tokens for React",
5
5
  "publishConfig": {
6
6
  "access": "public",