@cregis/ui 1.0.23 → 1.0.24

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.
@@ -351,8 +351,27 @@ export declare interface InputProps {
351
351
  clearText?: string;
352
352
  }
353
353
 
354
+ export declare const isElementMeasurable: (el: {
355
+ isConnected: boolean;
356
+ offsetWidth: number;
357
+ offsetHeight: number;
358
+ clientWidth: number;
359
+ clientHeight: number;
360
+ }) => boolean;
361
+
354
362
  export declare type LanguageKey = 'zh-CN' | 'zh-TW' | 'en-US';
355
363
 
364
+ /** 溢出监测目标:元素本身、ref、或 getter */
365
+ export declare type MaybeElementRef = MaybeReadonlyRef<HTMLElement | null | undefined>;
366
+
367
+ /**
368
+ * 不依赖 Vue 品牌类型(RefSymbol)的可读 ref。
369
+ * 跨包 link 时,应用与组件库可能解析到两份 vue 类型,直接使用 MaybeRefOrGetter 会无法传入 ref()。
370
+ */
371
+ export declare type MaybeReadonlyRef<T> = T | {
372
+ readonly value: T;
373
+ } | (() => T);
374
+
356
375
  declare type MaybeRef<T> = T | Ref<T>;
357
376
 
358
377
  /** 函数式轻提示,默认停留 1s,可通过对象配置时长;已有提示展示时忽略新调用 */
@@ -486,6 +505,8 @@ export declare interface RadioProps {
486
505
 
487
506
  export declare type RadioValue = boolean | string | number;
488
507
 
508
+ export declare const resolveTextOverflow: (metrics: TextOverflowMetrics, axis?: TextOverflowAxis, threshold?: number) => TextOverflowState;
509
+
489
510
  export declare const Select: DefineComponent<SelectProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
490
511
  "update:modelValue": (value: StringOrNumber_3 | StringOrNumber_3[]) => any;
491
512
  change: (value: StringOrNumber_3 | StringOrNumber_3[]) => any;
@@ -707,6 +728,21 @@ export declare type TagSize = 'small' | 'medium' | 'large';
707
728
 
708
729
  declare type TagType = 'subtle' | 'solid' | 'gray' | 'strokeSubtle' | 'strokeSolid' | 'danger' | 'warning' | 'success' | 'ready' | 'invalid' | 'apricot' | 'khaki' | 'grass' | 'sage' | 'cyan' | 'iceBlue' | 'periwinkle' | 'lilac' | 'orchid' | 'mallow' | 'rose' | 'coral' | 'mauve' | 'moss' | 'steel' | 'grape' | 'sameWhite' | 'lime' | 'amlDanger';
709
730
 
731
+ export declare type TextOverflowAxis = 'horizontal' | 'vertical' | 'both';
732
+
733
+ export declare interface TextOverflowMetrics {
734
+ scrollWidth: number;
735
+ clientWidth: number;
736
+ clientHeight: number;
737
+ scrollHeight: number;
738
+ }
739
+
740
+ export declare interface TextOverflowState {
741
+ overflowX: boolean;
742
+ overflowY: boolean;
743
+ overflow: boolean;
744
+ }
745
+
710
746
  export declare const Timeline: DefineComponent<TimelineProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<TimelineProps> & Readonly<{}>, {
711
747
  dotSize: number | string;
712
748
  lineWidth: number | string;
@@ -810,4 +846,59 @@ export declare interface UploadProps {
810
846
  */
811
847
  export declare function useClickOutside(target: ClickOutsideTarget | ClickOutsideTarget[], callback: (event: PointerEvent) => void, options?: ClickOutsideOptions): void;
812
848
 
849
+ /**
850
+ * 检测元素是否因内容溢出而产生省略/截断。
851
+ * 不负责写入省略样式,调用方需自行设置 overflow + text-overflow / line-clamp。
852
+ */
853
+ export declare function useTextOverflow(target: MaybeElementRef, options?: UseTextOverflowOptions): UseTextOverflowReturn;
854
+
855
+ export declare interface UseTextOverflowOptions {
856
+ /**
857
+ * 检测轴向。
858
+ * - `horizontal`:单行省略
859
+ * - `vertical`:多行截断 / line-clamp
860
+ * - `both`:任一方向溢出即为溢出
861
+ * @default 'horizontal'
862
+ */
863
+ axis?: MaybeReadonlyRef<TextOverflowAxis>;
864
+ /**
865
+ * 溢出判定阈值(px),用于吸收亚像素与缩放误差。
866
+ * @default 1
867
+ */
868
+ threshold?: MaybeReadonlyRef<number>;
869
+ /**
870
+ * 额外依赖。文本、字号、line-clamp 等不改变元素盒尺寸时需要传入,否则不会重测。
871
+ */
872
+ deps?: MaybeReadonlyRef<unknown> | MaybeReadonlyRef<unknown>[];
873
+ /**
874
+ * 是否监听元素尺寸变化。
875
+ * @default true
876
+ */
877
+ observeResize?: MaybeReadonlyRef<boolean>;
878
+ /**
879
+ * 是否在字体加载完成后补测。web font 替换可能改变文本宽度但不改变盒尺寸。
880
+ * @default true
881
+ */
882
+ observeFonts?: MaybeReadonlyRef<boolean>;
883
+ /**
884
+ * 是否用 rAF 合并同一帧内的多次测量(拖拽列宽、连续 deps 更新)。
885
+ * @default true
886
+ */
887
+ raf?: MaybeReadonlyRef<boolean>;
888
+ /**
889
+ * 为 `false` 时停止观测,并将溢出状态重置为未溢出。
890
+ * @default true
891
+ */
892
+ enabled?: MaybeReadonlyRef<boolean>;
893
+ }
894
+
895
+ export declare interface UseTextOverflowReturn {
896
+ isOverflow: Readonly<Ref<boolean>>;
897
+ isOverflowX: Readonly<Ref<boolean>>;
898
+ isOverflowY: Readonly<Ref<boolean>>;
899
+ /** 同步测量并返回综合溢出结果。布局未完成时请在 DOM 更新后调用。 */
900
+ checkOverflow: () => boolean;
901
+ stop: () => void;
902
+ }
903
+
813
904
  export { }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cregis/ui",
3
3
  "private": false,
4
- "version": "1.0.23",
4
+ "version": "1.0.24",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"