straw-ui-vue 0.1.44 → 0.1.45

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.
@@ -1,8 +1,8 @@
1
1
  import { StPickerRangeValue, StPickerTimeColumnItem, StPickerTimeParts, StPickerValue } from './types/st-picker-shared.d.ts';
2
2
  /** 星期表头,周日起始,与日历栅格同序 */
3
3
  export declare const weekDayLabels: string[];
4
- /** 年代面板跨度:4×3 共 12 年 */
5
- export declare const DECADE_SPAN = 12;
4
+ /** 年面板跨度:4×4 共 16 年,与月面板的 3×4 同占满一档定高 */
5
+ export declare const DECADE_SPAN = 16;
6
6
  /**
7
7
  * 按格式串格式化日期
8
8
  * @param date - 日期,空值返回空串
@@ -66,7 +66,7 @@ export declare function lastOfMonth(date: Date): Date;
66
66
  * */
67
67
  export declare function startOfWeek(date: Date, weekStartsOn?: number): Date;
68
68
  /**
69
- * 年代起始年(12 年一档)
69
+ * 年面板起始年(16 年一档)
70
70
  * */
71
71
  export declare function startOfDecade(year: number): number;
72
72
  /**
@@ -74,7 +74,7 @@ export declare function startOfDecade(year: number): number;
74
74
  * */
75
75
  export declare function createMonthMatrix(year: number, month: number): Date[];
76
76
  /**
77
- * 年代面板年份列表(12 项)
77
+ * 年面板年份列表(16 项)
78
78
  * */
79
79
  export declare function createDecadeYears(decadeStart: number): number[];
80
80
  /**
@@ -25,7 +25,6 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, StDat
25
25
  floatingLabel: boolean;
26
26
  format: string;
27
27
  icon: string;
28
- closeOnSelect: boolean;
29
28
  range: boolean;
30
29
  valueFormat: string;
31
30
  startPlaceholder: string;
@@ -44,8 +44,6 @@ export interface StDatePickerDesktopProps extends StPickerDateConstraintProps, S
44
44
  showClear?: boolean;
45
45
  /** 面板底部是否显示今天直达 */
46
46
  showTodayLink?: boolean;
47
- /** 选择完成后是否自动收起浮层 */
48
- closeOnSelect?: boolean;
49
47
  /** 浮层容器类名 */
50
48
  popoverClass?: ClassValue;
51
49
  /** 浮层容器样式 */
@@ -0,0 +1,43 @@
1
+ /** usePickerShell 入参,`T` 为端点类型:日期为 Date,时刻为 StPickerTimeParts */
2
+ export interface UsePickerShellOptions<T> {
3
+ /** 是否区间模式 */
4
+ range: () => boolean;
5
+ /** 区间两端连接符 */
6
+ separator: () => string;
7
+ /** 区间开始端占位 */
8
+ startPlaceholder: () => string;
9
+ /** 区间结束端占位 */
10
+ endPlaceholder: () => string;
11
+ /** 单点值 */
12
+ value: () => T | null;
13
+ /** 区间两端值 */
14
+ rangeValue: () => [T | null, T | null];
15
+ /** 单端回显文本 */
16
+ describe: (value: T) => string;
17
+ /** 组件级 clearable 开关 */
18
+ clearable: () => boolean;
19
+ /** 禁用态 */
20
+ disabled: () => boolean;
21
+ /** 显隐变化的同一轮内同步执行:按绑定值重建内部状态,让面板拿到的 props 已是新值 */
22
+ beforeOpen?: () => void;
23
+ /** 面板挂载后执行:定位视图并聚焦触发器 */
24
+ onOpened?: () => void;
25
+ /** 浮层关闭后执行:丢弃草稿、恢复镜像 */
26
+ onClosed?: () => void;
27
+ }
28
+ /**
29
+ * 桌面端选择器的浮层外壳状态
30
+ *
31
+ * 三件 desktop 预封装在可见态、键入报错态、触发器回显镜像与显隐钩子顺序上完全一致,
32
+ * 差异只在面板定位与落值口径,那部分留在各件里。
33
+ * */
34
+ export declare function usePickerShell<T = Date>(options: UsePickerShellOptions<T>): {
35
+ visible: import('vue').Ref<boolean, boolean>;
36
+ error: import('vue').Ref<boolean, boolean>;
37
+ displayText: import('vue').ComputedRef<string>;
38
+ hasValue: import('vue').ComputedRef<boolean>;
39
+ clearableVisible: import('vue').ComputedRef<boolean>;
40
+ open: () => void;
41
+ close: () => void;
42
+ handleVisibleChange: (next: boolean) => void;
43
+ };
@@ -148,7 +148,6 @@ export declare const StDatePicker: {
148
148
  floatingLabel: boolean;
149
149
  format: string;
150
150
  icon: string;
151
- closeOnSelect: boolean;
152
151
  range: boolean;
153
152
  valueFormat: string;
154
153
  startPlaceholder: string;
@@ -185,7 +184,6 @@ export declare const StDatePicker: {
185
184
  floatingLabel: boolean;
186
185
  format: string;
187
186
  icon: string;
188
- closeOnSelect: boolean;
189
187
  range: boolean;
190
188
  valueFormat: string;
191
189
  startPlaceholder: string;
@@ -224,7 +222,6 @@ export declare const StDatePicker: {
224
222
  floatingLabel: boolean;
225
223
  format: string;
226
224
  icon: string;
227
- closeOnSelect: boolean;
228
225
  range: boolean;
229
226
  valueFormat: string;
230
227
  startPlaceholder: string;
@@ -430,6 +427,7 @@ export declare const StDatePicker: {
430
427
  }>, {
431
428
  size: import('./index.ts').StPickerCellSize;
432
429
  columns: number;
430
+ fill: boolean;
433
431
  scrollable: boolean;
434
432
  scrollToSelected: boolean;
435
433
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -1627,7 +1625,6 @@ export declare const StDatePickerDesktop: {
1627
1625
  floatingLabel: boolean;
1628
1626
  format: string;
1629
1627
  icon: string;
1630
- closeOnSelect: boolean;
1631
1628
  range: boolean;
1632
1629
  valueFormat: string;
1633
1630
  startPlaceholder: string;
@@ -1664,7 +1661,6 @@ export declare const StDatePickerDesktop: {
1664
1661
  floatingLabel: boolean;
1665
1662
  format: string;
1666
1663
  icon: string;
1667
- closeOnSelect: boolean;
1668
1664
  range: boolean;
1669
1665
  valueFormat: string;
1670
1666
  startPlaceholder: string;
@@ -1703,7 +1699,6 @@ export declare const StDatePickerDesktop: {
1703
1699
  floatingLabel: boolean;
1704
1700
  format: string;
1705
1701
  icon: string;
1706
- closeOnSelect: boolean;
1707
1702
  range: boolean;
1708
1703
  valueFormat: string;
1709
1704
  startPlaceholder: string;
@@ -2595,6 +2590,7 @@ export declare const StPickerCellGrid: import('vue').DefineComponent<import('./i
2595
2590
  }>, {
2596
2591
  size: import('./index.ts').StPickerCellSize;
2597
2592
  columns: number;
2593
+ fill: boolean;
2598
2594
  scrollable: boolean;
2599
2595
  scrollToSelected: boolean;
2600
2596
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -2907,6 +2903,6 @@ export * from './usePickerDate.ts';
2907
2903
  export * from './usePickerTime.ts';
2908
2904
  export * from './usePickerModel.ts';
2909
2905
  export { dateShortcuts, dateRangeShortcuts, timeShortcuts, timeRangeShortcuts, dateTimeShortcuts, dateTimeRangeShortcuts, } from './shortcuts.ts';
2910
- export { pickerCellVariants, pickerChipClasses, pickerDividerClasses, pickerFocusRing, pickerFooterClasses, pickerHintClasses, pickerLabelClasses, pickerLinkClasses, pickerMiniInputVariants, pickerNavVariants, pickerPanelVariants, pickerQuickVariants, pickerSegmentValueClasses, pickerSegmentVariants, pickerTagVariants, pickerTimeItemVariants, pickerTitleVariants, } from './picker-classes.ts';
2906
+ export { pickerCellVariants, pickerChipClasses, pickerDividerClasses, pickerFocusRing, pickerFooterClasses, pickerHintClasses, pickerLabelClasses, pickerLinkClasses, pickerMiniInputVariants, pickerNavVariants, pickerPanelVariants, pickerQuickVariants, pickerSegmentValueClasses, pickerSegmentVariants, pickerTagVariants, pickerTimeItemVariants, pickerTitleVariants, pickerViewVariants, } from './picker-classes.ts';
2911
2907
  export default StDatePicker;
2912
2908
  export type * from './types/index.d.ts';
@@ -5,6 +5,18 @@ export declare const pickerFocusRing = "outline-none focus-visible:outline-2 foc
5
5
  * 边框 / 底色 / 圆角 / 投影由 StPopover 与 StDrawer 提供,此处只定宽与裁剪,避免二次描边
6
6
  * */
7
7
  export declare const pickerPanelVariants: import('../../types').CVAReturnFunction<import('../../types').VariantValues>;
8
+ /**
9
+ * 日历视图体:星期行 + 日期格,或月 / 年宫格
10
+ *
11
+ * 三态共用同一高度,切态只换内容不改容器尺寸,浮层不会因内容变高而跳动
12
+ * (st-popover 没有 ResizeObserver,内容变高不会重算位置)。
13
+ * 月 / 年宫格用 fill 撑满这一档高度:格子行高固定 62px、月与年都是 4 行,残余走 content-center
14
+ * 均分成上下边距,既不在上下留大空档也不把格子拉成厚板。
15
+ *
16
+ * h-64.5 = 258px,按 pc 档实测算得:星期行 34 + 日期格 6×34 + 5×2 间隙 + 容器下内边距 10。
17
+ * 实测三态原高 347 / 243 / 207,跨度 140px。cellSize 非 pc 档时不要开 fixed(高度对不上)。
18
+ * */
19
+ export declare const pickerViewVariants: import('../../types').CVAReturnFunction<import('../../types').VariantValues>;
8
20
  /** 日历 / 月 / 年 单元格,tone 与 radius 两个轴各管一类属性,互不冲突 */
9
21
  export declare const pickerCellVariants: import('../../types').CVAReturnFunction<import('../../types').VariantValues>;
10
22
  /** 时间列选项行(PC 双列与 DateTime 时间视图共用) */
@@ -13,6 +13,7 @@ declare const __VLS_export: import('vue').DefineComponent<StPickerCellGridProps,
13
13
  }>, {
14
14
  size: import('./index.ts').StPickerCellSize;
15
15
  columns: number;
16
+ fill: boolean;
16
17
  scrollable: boolean;
17
18
  scrollToSelected: boolean;
18
19
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -157,6 +157,8 @@ export interface StPickerCellGridProps {
157
157
  size?: StPickerCellSize;
158
158
  /** 是否限制最大高度并滚动(H5 年份条) */
159
159
  scrollable?: boolean;
160
+ /** 撑满父容器高度:行数均分、格子随行高拉伸,用于与日视图等高 */
161
+ fill?: boolean;
160
162
  /** 选中项自动滚入视口 */
161
163
  scrollToSelected?: boolean;
162
164
  /** 类名 */
@@ -401,7 +403,7 @@ export interface StPickerTriggerProps {
401
403
  export interface StPickerTriggerEmits {
402
404
  /** 清空 */
403
405
  clear: [];
404
- /** 失焦或回车提交键入文本,由外层负责宽松解析与规范化 */
406
+ /** 失焦或回车提交键入文本,暂存与回显一致时不发出;由外层负责宽松解析与规范化 */
405
407
  commit: [text: string];
406
408
  }
407
409
 
@@ -1,7 +1,7 @@
1
1
  import { StPickerCalendarLevel } from './types/st-picker-shared.d.ts';
2
2
  /** 日历视图状态入参 */
3
3
  export interface UseCalendarViewOptions {
4
- /** 打开面板时的定位日期,通常取已选值;为空时定位今天 */
4
+ /** 初始视图定位日期,构造时读一次;为空时定位今天。再次打开时的定位由调用方走 `locate` */
5
5
  getLocateDate?: () => Date | null | undefined;
6
6
  }
7
7
  /**
@@ -25,7 +25,6 @@ export declare function useCalendarView(options?: UseCalendarViewOptions): {
25
25
  pickYear: (value: number) => void;
26
26
  pickMonth: (value: number) => void;
27
27
  goLevel: (next: StPickerCalendarLevel) => void;
28
- reopen: () => void;
29
28
  };
30
29
  /** 日期禁用判定入参 */
31
30
  export interface UseDateConstraintsOptions {
@@ -1,6 +1,6 @@
1
1
  import { MaybeRefOrGetter } from 'vue';
2
- /** 回显文本构建入参 */
3
- export interface UsePickerMirrorOptions {
2
+ /** 回显文本构建入参,`T` 为端点类型:日期为 Date,时刻为 StPickerTimeParts */
3
+ export interface UsePickerMirrorOptions<T> {
4
4
  /** 是否区间模式 */
5
5
  range: MaybeRefOrGetter<boolean>;
6
6
  /** 区间两端连接符 */
@@ -10,11 +10,11 @@ export interface UsePickerMirrorOptions {
10
10
  /** 区间结束端占位 */
11
11
  endPlaceholder: MaybeRefOrGetter<string>;
12
12
  /** 单点值 */
13
- value: () => Date | null;
13
+ value: () => T | null;
14
14
  /** 区间两端值 */
15
- rangeValue: () => [Date | null, Date | null];
15
+ rangeValue: () => [T | null, T | null];
16
16
  /** 单端格式化 */
17
- describe: (date: Date) => string;
17
+ describe: (value: T) => string;
18
18
  }
19
19
  /**
20
20
  * 触发器回显文本
@@ -22,7 +22,7 @@ export interface UsePickerMirrorOptions {
22
22
  * 桌面端与手机端共用同一套镜像规则:区间半成型时未选端显示该端占位符,
23
23
  * 两端皆空则整体回退到空串(让输入框呈现真正的空态而不是两段占位)。
24
24
  * */
25
- export declare function usePickerMirror(options: UsePickerMirrorOptions): {
25
+ export declare function usePickerMirror<T = Date>(options: UsePickerMirrorOptions<T>): {
26
26
  displayText: import('vue').ComputedRef<string>;
27
27
  hasValue: import('vue').ComputedRef<boolean>;
28
28
  };
@@ -730,6 +730,7 @@ export declare const StScrollbar: {
730
730
  keyField?: string;
731
731
  itemSize?: number;
732
732
  minItemSize?: number | ((item: T, index: number) => number);
733
+ gap?: number;
733
734
  overscan?: number;
734
735
  onEvent?: (name: string, ...args: any[]) => any;
735
736
  onRangeChange?: (start: number, end: number) => any;
@@ -1606,6 +1607,7 @@ export declare const StScrollbarGroupVirtual: <T>(__VLS_props: NonNullable<Await
1606
1607
  keyField?: string;
1607
1608
  itemSize?: number;
1608
1609
  minItemSize?: number | ((item: T, index: number) => number);
1610
+ gap?: number;
1609
1611
  overscan?: number;
1610
1612
  onEvent?: (name: string, ...args: any[]) => any;
1611
1613
  onRangeChange?: (start: number, end: number) => any;
@@ -29,6 +29,8 @@ export interface StScrollbarGroupVirtualProps<T = unknown> {
29
29
  itemSize?: number;
30
30
  /** 最小项尺寸,动态高度模式必填,传 number 时视为统一估算值 */
31
31
  minItemSize?: number | ((item: T, index: number) => number);
32
+ /** 相邻项之间的间距(px),仅作用于虚拟化排布,末项之后不计间距,默认 0 */
33
+ gap?: number;
32
34
  /** 视口外预渲染项数,默认 5 */
33
35
  overscan?: number;
34
36
  }
@@ -35,6 +35,8 @@ export interface StScrollbarVirtualConfigProps<T = unknown> {
35
35
  itemSize?: number;
36
36
  /** 最小项尺寸,动态高度模式必填,传 number 时视为统一估算值 */
37
37
  minItemSize?: number | ((item: T, index: number) => number);
38
+ /** 相邻项之间的间距(px),仅虚拟滚动生效,末项之后不计间距,默认 0 */
39
+ gap?: number;
38
40
  /** 视口外预渲染项数,默认 5 */
39
41
  overscan?: number;
40
42
  }
@@ -8,6 +8,8 @@ export interface VirtualScrollbarOptions {
8
8
  count: Ref<number>;
9
9
  /** 固定项尺寸(px),有值时走定高快速路径 */
10
10
  fixedSize: Ref<number | undefined>;
11
+ /** 相邻项间距(px),缺省视为 0;仅作用于排布,末项之后不计 */
12
+ gap?: Ref<number>;
11
13
  /** 获取指定索引的预估尺寸 */
12
14
  estimateAt: (index: number) => number;
13
15
  /** 视口外预渲染项数 */
@@ -47,6 +49,8 @@ export declare function useVirtualScrollbar(options: VirtualScrollbarOptions): {
47
49
  reset: (n: number) => void;
48
50
  syncCount: (n: number) => void;
49
51
  refreshEstimates: () => void;
52
+ /** 间距等排布输入变化时重算偏移表并推进滚动校正 */
53
+ relayout: () => void;
50
54
  scrollToIndex: (index: number, options?: StScrollbarVirtualScrollToIndexOptions) => void;
51
55
  scrollToOffset: (offset: number, options?: StScrollbarVirtualScrollToOffsetOptions) => void;
52
56
  getTotalSize: () => number;