@qw-ui/core 0.3.0-next.17 → 0.3.0-next.18
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.
- package/dist/badge/badge.d.ts +76 -0
- package/dist/badge/index.d.ts +1 -0
- package/dist/badge/index.js +75 -0
- package/dist/badge/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -1
- package/package.json +8 -4
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Badge 契约 — 原型 A(无状态),core 无 machine,
|
|
3
|
+
* 承载双栈共享的类型契约与纯函数状态解析(SSR-safe,无 DOM 依赖)。
|
|
4
|
+
* 渲染契约:`data-scope="badge"`,`data-part="root"`;
|
|
5
|
+
* `data-variant` / `data-kind` 摊平枚举。
|
|
6
|
+
*
|
|
7
|
+
* 变体 / 形态 / 部位词表以运行时常量数组为唯一事实源(类型从常量推导),__test__ 直接锁死。
|
|
8
|
+
*/
|
|
9
|
+
/** 视觉变体全集:solid 强提示(默认)/ subtle 弱提示。 */
|
|
10
|
+
export declare const BADGE_VARIANTS: readonly ["solid", "subtle"];
|
|
11
|
+
/** 形态全集:number 数字(默认)/ dot 纯红点。 */
|
|
12
|
+
export declare const BADGE_KINDS: readonly ["number", "dot"];
|
|
13
|
+
/** Badge 各渲染部位全集(data-part 取值)。 */
|
|
14
|
+
export declare const BADGE_PARTS: readonly ["root"];
|
|
15
|
+
/** 默认溢出阈值:数值超过时收敛为「99+」。 */
|
|
16
|
+
export declare const DEFAULT_BADGE_MAX_COUNT = 99;
|
|
17
|
+
export type BadgeVariant = (typeof BADGE_VARIANTS)[number];
|
|
18
|
+
export type BadgeKind = (typeof BADGE_KINDS)[number];
|
|
19
|
+
export type BadgePart = (typeof BADGE_PARTS)[number];
|
|
20
|
+
/**
|
|
21
|
+
* QwBadgeProps — 双栈共享的行为契约(全字段可选)。
|
|
22
|
+
* 视觉完全由语义令牌驱动,组件不开放自定义色值入口。
|
|
23
|
+
*/
|
|
24
|
+
export interface QwBadgeProps {
|
|
25
|
+
/** 视觉变体,默认 solid;dot 形态强制 solid。 */
|
|
26
|
+
variant?: BadgeVariant;
|
|
27
|
+
/** 纯红点形态,默认 false;为 true 时优先于 count。 */
|
|
28
|
+
dot?: boolean;
|
|
29
|
+
/** 未读数量;≤0 / 非有限数值不渲染。 */
|
|
30
|
+
count?: number;
|
|
31
|
+
/** 溢出阈值,默认 99;非法值(≤0 或非整数)回退默认。 */
|
|
32
|
+
maxCount?: number;
|
|
33
|
+
/** 自定义无障碍播报文案,全量覆盖默认文案。 */
|
|
34
|
+
ariaLabel?: string;
|
|
35
|
+
}
|
|
36
|
+
/** 适配层从 locale 传入的默认播报文案。 */
|
|
37
|
+
export interface BadgeAriaTexts {
|
|
38
|
+
/** 数字形态播报模板,含 {count} 占位符。 */
|
|
39
|
+
unreadAriaTemplate: string;
|
|
40
|
+
/** 纯红点形态播报文案。 */
|
|
41
|
+
dotAria: string;
|
|
42
|
+
}
|
|
43
|
+
/** resolveBadgeState 的解析结果,适配层据此摊平渲染。 */
|
|
44
|
+
export interface ResolvedBadgeState {
|
|
45
|
+
/** 是否渲染徽标本体;false 时双栈一致返回空渲染。 */
|
|
46
|
+
visible: boolean;
|
|
47
|
+
/** 形态。 */
|
|
48
|
+
kind: BadgeKind;
|
|
49
|
+
/** 解析后的视觉变体(dot + subtle 已降级为 solid)。 */
|
|
50
|
+
variant: BadgeVariant;
|
|
51
|
+
/** 可见文本(溢出为「<阈值>+」;dot / 不可见为空串)。 */
|
|
52
|
+
label: string;
|
|
53
|
+
/** 数值是否超过阈值。 */
|
|
54
|
+
overflow: boolean;
|
|
55
|
+
/** 解析后的生效阈值。 */
|
|
56
|
+
maxCount: number;
|
|
57
|
+
/** 生效的无障碍播报文案。 */
|
|
58
|
+
ariaLabel: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 纯函数:props + 文案 → 解析结果。
|
|
62
|
+
* 规则:dot 优先于 count;dot 强制 solid;数值四舍五入;
|
|
63
|
+
* ≤0 / NaN / Infinity 不渲染;溢出渲染「<阈值>+」。
|
|
64
|
+
*/
|
|
65
|
+
export declare function resolveBadgeState(props: QwBadgeProps, texts: BadgeAriaTexts): ResolvedBadgeState;
|
|
66
|
+
/** 根元素 prop-getter 返回的 DOM 属性集。 */
|
|
67
|
+
export interface BadgeRootProps {
|
|
68
|
+
"data-scope": "badge";
|
|
69
|
+
"data-part": "root";
|
|
70
|
+
"data-variant": BadgeVariant;
|
|
71
|
+
"data-kind": BadgeKind;
|
|
72
|
+
role: "status";
|
|
73
|
+
"aria-label": string;
|
|
74
|
+
}
|
|
75
|
+
/** 根元素 prop-getter:摊平 data 状态属性 + role="status" + 播报文案。 */
|
|
76
|
+
export declare function getBadgeRootProps(state: ResolvedBadgeState): BadgeRootProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./badge.js";
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//#region src/badge/badge.ts
|
|
2
|
+
/**
|
|
3
|
+
* Badge 契约 — 原型 A(无状态),core 无 machine,
|
|
4
|
+
* 承载双栈共享的类型契约与纯函数状态解析(SSR-safe,无 DOM 依赖)。
|
|
5
|
+
* 渲染契约:`data-scope="badge"`,`data-part="root"`;
|
|
6
|
+
* `data-variant` / `data-kind` 摊平枚举。
|
|
7
|
+
*
|
|
8
|
+
* 变体 / 形态 / 部位词表以运行时常量数组为唯一事实源(类型从常量推导),__test__ 直接锁死。
|
|
9
|
+
*/
|
|
10
|
+
/** 视觉变体全集:solid 强提示(默认)/ subtle 弱提示。 */
|
|
11
|
+
const BADGE_VARIANTS = ["solid", "subtle"];
|
|
12
|
+
/** 形态全集:number 数字(默认)/ dot 纯红点。 */
|
|
13
|
+
const BADGE_KINDS = ["number", "dot"];
|
|
14
|
+
/** Badge 各渲染部位全集(data-part 取值)。 */
|
|
15
|
+
const BADGE_PARTS = ["root"];
|
|
16
|
+
/** 默认溢出阈值:数值超过时收敛为「99+」。 */
|
|
17
|
+
const DEFAULT_BADGE_MAX_COUNT = 99;
|
|
18
|
+
/** 非法阈值(≤0 或非整数)一律回退默认值,避免非法配置导致空渲染。 */
|
|
19
|
+
function resolveMaxCount(maxCount) {
|
|
20
|
+
return typeof maxCount === "number" && Number.isInteger(maxCount) && maxCount > 0 ? maxCount : 99;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 纯函数:props + 文案 → 解析结果。
|
|
24
|
+
* 规则:dot 优先于 count;dot 强制 solid;数值四舍五入;
|
|
25
|
+
* ≤0 / NaN / Infinity 不渲染;溢出渲染「<阈值>+」。
|
|
26
|
+
*/
|
|
27
|
+
function resolveBadgeState(props, texts) {
|
|
28
|
+
const { variant = "solid", dot = false, count, maxCount, ariaLabel } = props;
|
|
29
|
+
const safeMax = resolveMaxCount(maxCount);
|
|
30
|
+
if (dot) return {
|
|
31
|
+
visible: true,
|
|
32
|
+
kind: "dot",
|
|
33
|
+
variant: "solid",
|
|
34
|
+
label: "",
|
|
35
|
+
overflow: false,
|
|
36
|
+
maxCount: safeMax,
|
|
37
|
+
ariaLabel: ariaLabel ?? texts.dotAria
|
|
38
|
+
};
|
|
39
|
+
const normalized = typeof count === "number" && Number.isFinite(count) && count > 0 ? Math.round(count) : 0;
|
|
40
|
+
if (normalized === 0) return {
|
|
41
|
+
visible: false,
|
|
42
|
+
kind: "number",
|
|
43
|
+
variant,
|
|
44
|
+
label: "",
|
|
45
|
+
overflow: false,
|
|
46
|
+
maxCount: safeMax,
|
|
47
|
+
ariaLabel: ""
|
|
48
|
+
};
|
|
49
|
+
const overflow = normalized > safeMax;
|
|
50
|
+
const label = overflow ? `${safeMax}+` : `${normalized}`;
|
|
51
|
+
return {
|
|
52
|
+
visible: true,
|
|
53
|
+
kind: "number",
|
|
54
|
+
variant,
|
|
55
|
+
label,
|
|
56
|
+
overflow,
|
|
57
|
+
maxCount: safeMax,
|
|
58
|
+
ariaLabel: ariaLabel ?? texts.unreadAriaTemplate.replaceAll("{count}", label)
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** 根元素 prop-getter:摊平 data 状态属性 + role="status" + 播报文案。 */
|
|
62
|
+
function getBadgeRootProps(state) {
|
|
63
|
+
return {
|
|
64
|
+
"data-scope": "badge",
|
|
65
|
+
"data-part": "root",
|
|
66
|
+
"data-variant": state.variant,
|
|
67
|
+
"data-kind": state.kind,
|
|
68
|
+
role: "status",
|
|
69
|
+
"aria-label": state.ariaLabel
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
export { BADGE_KINDS, BADGE_PARTS, BADGE_VARIANTS, DEFAULT_BADGE_MAX_COUNT, getBadgeRootProps, resolveBadgeState };
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/badge/badge.ts"],"sourcesContent":["/**\n * Badge 契约 — 原型 A(无状态),core 无 machine,\n * 承载双栈共享的类型契约与纯函数状态解析(SSR-safe,无 DOM 依赖)。\n * 渲染契约:`data-scope=\"badge\"`,`data-part=\"root\"`;\n * `data-variant` / `data-kind` 摊平枚举。\n *\n * 变体 / 形态 / 部位词表以运行时常量数组为唯一事实源(类型从常量推导),__test__ 直接锁死。\n */\n\n/** 视觉变体全集:solid 强提示(默认)/ subtle 弱提示。 */\nexport const BADGE_VARIANTS = [\"solid\", \"subtle\"] as const;\n\n/** 形态全集:number 数字(默认)/ dot 纯红点。 */\nexport const BADGE_KINDS = [\"number\", \"dot\"] as const;\n\n/** Badge 各渲染部位全集(data-part 取值)。 */\nexport const BADGE_PARTS = [\"root\"] as const;\n\n/** 默认溢出阈值:数值超过时收敛为「99+」。 */\nexport const DEFAULT_BADGE_MAX_COUNT = 99;\n\nexport type BadgeVariant = (typeof BADGE_VARIANTS)[number];\nexport type BadgeKind = (typeof BADGE_KINDS)[number];\nexport type BadgePart = (typeof BADGE_PARTS)[number];\n\n/**\n * QwBadgeProps — 双栈共享的行为契约(全字段可选)。\n * 视觉完全由语义令牌驱动,组件不开放自定义色值入口。\n */\nexport interface QwBadgeProps {\n /** 视觉变体,默认 solid;dot 形态强制 solid。 */\n variant?: BadgeVariant;\n /** 纯红点形态,默认 false;为 true 时优先于 count。 */\n dot?: boolean;\n /** 未读数量;≤0 / 非有限数值不渲染。 */\n count?: number;\n /** 溢出阈值,默认 99;非法值(≤0 或非整数)回退默认。 */\n maxCount?: number;\n /** 自定义无障碍播报文案,全量覆盖默认文案。 */\n ariaLabel?: string;\n}\n\n/** 适配层从 locale 传入的默认播报文案。 */\nexport interface BadgeAriaTexts {\n /** 数字形态播报模板,含 {count} 占位符。 */\n unreadAriaTemplate: string;\n /** 纯红点形态播报文案。 */\n dotAria: string;\n}\n\n/** resolveBadgeState 的解析结果,适配层据此摊平渲染。 */\nexport interface ResolvedBadgeState {\n /** 是否渲染徽标本体;false 时双栈一致返回空渲染。 */\n visible: boolean;\n /** 形态。 */\n kind: BadgeKind;\n /** 解析后的视觉变体(dot + subtle 已降级为 solid)。 */\n variant: BadgeVariant;\n /** 可见文本(溢出为「<阈值>+」;dot / 不可见为空串)。 */\n label: string;\n /** 数值是否超过阈值。 */\n overflow: boolean;\n /** 解析后的生效阈值。 */\n maxCount: number;\n /** 生效的无障碍播报文案。 */\n ariaLabel: string;\n}\n\n/** 非法阈值(≤0 或非整数)一律回退默认值,避免非法配置导致空渲染。 */\nfunction resolveMaxCount(maxCount: number | undefined): number {\n return typeof maxCount === \"number\" && Number.isInteger(maxCount) && maxCount > 0\n ? maxCount\n : DEFAULT_BADGE_MAX_COUNT;\n}\n\n/**\n * 纯函数:props + 文案 → 解析结果。\n * 规则:dot 优先于 count;dot 强制 solid;数值四舍五入;\n * ≤0 / NaN / Infinity 不渲染;溢出渲染「<阈值>+」。\n */\nexport function resolveBadgeState(\n props: QwBadgeProps,\n texts: BadgeAriaTexts,\n): ResolvedBadgeState {\n const { variant = \"solid\", dot = false, count, maxCount, ariaLabel } = props;\n const safeMax = resolveMaxCount(maxCount);\n\n if (dot) {\n return {\n visible: true,\n kind: \"dot\",\n variant: \"solid\",\n label: \"\",\n overflow: false,\n maxCount: safeMax,\n ariaLabel: ariaLabel ?? texts.dotAria,\n };\n }\n\n const normalized =\n typeof count === \"number\" && Number.isFinite(count) && count > 0\n ? Math.round(count)\n : 0;\n\n if (normalized === 0) {\n return {\n visible: false,\n kind: \"number\",\n variant,\n label: \"\",\n overflow: false,\n maxCount: safeMax,\n ariaLabel: \"\",\n };\n }\n\n const overflow = normalized > safeMax;\n const label = overflow ? `${safeMax}+` : `${normalized}`;\n return {\n visible: true,\n kind: \"number\",\n variant,\n label,\n overflow,\n maxCount: safeMax,\n ariaLabel: ariaLabel ?? texts.unreadAriaTemplate.replaceAll(\"{count}\", label),\n };\n}\n\n/** 根元素 prop-getter 返回的 DOM 属性集。 */\nexport interface BadgeRootProps {\n \"data-scope\": \"badge\";\n \"data-part\": \"root\";\n \"data-variant\": BadgeVariant;\n \"data-kind\": BadgeKind;\n role: \"status\";\n \"aria-label\": string;\n}\n\n/** 根元素 prop-getter:摊平 data 状态属性 + role=\"status\" + 播报文案。 */\nexport function getBadgeRootProps(state: ResolvedBadgeState): BadgeRootProps {\n return {\n \"data-scope\": \"badge\",\n \"data-part\": \"root\",\n \"data-variant\": state.variant,\n \"data-kind\": state.kind,\n role: \"status\",\n \"aria-label\": state.ariaLabel,\n };\n}\n"],"mappings":";;;;;;;;;;AAUA,MAAa,iBAAiB,CAAC,SAAS,QAAQ;;AAGhD,MAAa,cAAc,CAAC,UAAU,KAAK;;AAG3C,MAAa,cAAc,CAAC,MAAM;;AAGlC,MAAa,0BAA0B;;AAkDvC,SAAS,gBAAgB,UAAsC;CAC7D,OAAO,OAAO,aAAa,YAAY,OAAO,UAAU,QAAQ,KAAK,WAAW,IAC5E,WAAA;AAEN;;;;;;AAOA,SAAgB,kBACd,OACA,OACoB;CACpB,MAAM,EAAE,UAAU,SAAS,MAAM,OAAO,OAAO,UAAU,cAAc;CACvE,MAAM,UAAU,gBAAgB,QAAQ;CAExC,IAAI,KACF,OAAO;EACL,SAAS;EACT,MAAM;EACN,SAAS;EACT,OAAO;EACP,UAAU;EACV,UAAU;EACV,WAAW,aAAa,MAAM;CAChC;CAGF,MAAM,aACJ,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,QAAQ,IAC3D,KAAK,MAAM,KAAK,IAChB;CAEN,IAAI,eAAe,GACjB,OAAO;EACL,SAAS;EACT,MAAM;EACN;EACA,OAAO;EACP,UAAU;EACV,UAAU;EACV,WAAW;CACb;CAGF,MAAM,WAAW,aAAa;CAC9B,MAAM,QAAQ,WAAW,GAAG,QAAQ,KAAK,GAAG;CAC5C,OAAO;EACL,SAAS;EACT,MAAM;EACN;EACA;EACA;EACA,UAAU;EACV,WAAW,aAAa,MAAM,mBAAmB,WAAW,WAAW,KAAK;CAC9E;AACF;;AAaA,SAAgB,kBAAkB,OAA2C;CAC3E,OAAO;EACL,cAAc;EACd,aAAa;EACb,gBAAgB,MAAM;EACtB,aAAa,MAAM;EACnB,MAAM;EACN,cAAc,MAAM;CACtB;AACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,3 +32,5 @@ export { SWITCH_PARTS, getSwitchRootProps, getSwitchThumbProps, resolveSwitchSta
|
|
|
32
32
|
export type { SwitchPart, QwSwitchProps, ResolvedSwitchState, SwitchRootProps, SwitchThumbProps } from "./switch/index.js";
|
|
33
33
|
export { STEPPER_SIZES, STEPPER_PARTS, clampStepperValue, getStepperRootProps, getStepperDecrementProps, getStepperDecrementValue, getStepperIncrementProps, getStepperIncrementValue, getStepperValueProps, resolveStepperState, } from "./stepper/index.js";
|
|
34
34
|
export type { StepperPart, StepperSize, QwStepperProps, ResolvedStepperState, StepperRootProps, StepperDecrementProps, StepperIncrementProps, StepperValueProps, } from "./stepper/index.js";
|
|
35
|
+
export { BADGE_KINDS, BADGE_PARTS, BADGE_VARIANTS, DEFAULT_BADGE_MAX_COUNT, getBadgeRootProps, resolveBadgeState, } from "./badge/index.js";
|
|
36
|
+
export type { BadgeAriaTexts, BadgeKind, BadgePart, BadgeRootProps, BadgeVariant, QwBadgeProps, ResolvedBadgeState, } from "./badge/index.js";
|
package/dist/index.js
CHANGED
|
@@ -15,4 +15,5 @@ import { TAG_PARTS, TAG_SIZES, TAG_VARIANTS } from "./tag/index.js";
|
|
|
15
15
|
import { createInputProps } from "./input/index.js";
|
|
16
16
|
import { SWITCH_PARTS, getSwitchRootProps, getSwitchThumbProps, resolveSwitchState } from "./switch/index.js";
|
|
17
17
|
import { STEPPER_PARTS, STEPPER_SIZES, clampStepperValue, getStepperDecrementProps, getStepperDecrementValue, getStepperIncrementProps, getStepperIncrementValue, getStepperRootProps, getStepperValueProps, resolveStepperState } from "./stepper/index.js";
|
|
18
|
-
|
|
18
|
+
import { BADGE_KINDS, BADGE_PARTS, BADGE_VARIANTS, DEFAULT_BADGE_MAX_COUNT, getBadgeRootProps, resolveBadgeState } from "./badge/index.js";
|
|
19
|
+
export { AVATAR_BADGE_TYPES, AVATAR_LOAD_STATUS, AVATAR_PARTS, AVATAR_SHAPES, AVATAR_SIZES, BADGE_COUNT_MAX, BADGE_KINDS, BADGE_PARTS, BADGE_VARIANTS, BUTTON_ICON_POSITIONS, BUTTON_PARTS, BUTTON_SHAPES, BUTTON_SIZES, BUTTON_TONES, BUTTON_VARIANTS, DEFAULT_BADGE_MAX_COUNT, DEFAULT_OVERLAY_PANEL_HEADER_HEIGHT, DEFAULT_TOAST_DURATION, DEFAULT_TOAST_POSITION, DIVIDER_ORIENTATIONS, DIVIDER_PARTS, DIVIDER_WEIGHTS, EMPTY_PARTS, ICON_FALLBACK_NAME, ICON_PARTS, LOADING_SIZES, OVERLAY_PANEL_PARTS, SKELETON_ANIMATIONS, SKELETON_PARTS, SKELETON_RADII, SKELETON_VARIANTS, STEPPER_PARTS, STEPPER_SIZES, SWITCH_PARTS, TAG_PARTS, TAG_SIZES, TAG_VARIANTS, TOAST_ICON_TYPES, TOAST_PARTS, TOAST_POSITIONS, TOPBAR_VARIANTS, clampStepperValue, connect, createDialogProps, createInputProps, createTabsProps, createTextAreaProps, createTopBarProps, dialogMachine, extractInitials, getAvatarBadgeProps, getAvatarFallbackProps, getAvatarImageElementProps, getAvatarImageProps, getAvatarRootProps, getBadgeRootProps, getButtonRootProps, getStepperDecrementProps, getStepperDecrementValue, getStepperIncrementProps, getStepperIncrementValue, getStepperRootProps, getStepperValueProps, getSwitchRootProps, getSwitchThumbProps, isToastIconType, resolveAvatarState, resolveBadgeState, resolveButtonState, resolveIconName, resolveOverlayPanelHeight, resolveStepperState, resolveSwitchState, resolveToastDuration, tabsMachine, connect$1 as textAreaConnect, machine as textAreaMachine };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qw-ui/core",
|
|
3
|
-
"version": "0.3.0-next.
|
|
3
|
+
"version": "0.3.0-next.18",
|
|
4
4
|
"description": "L2 · Headless Core — zag.js machine 薄包装,纯 TS / SSR-safe,零样式。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "qw-ui contributors",
|
|
@@ -103,6 +103,10 @@
|
|
|
103
103
|
"./stepper": {
|
|
104
104
|
"types": "./dist/stepper/index.d.ts",
|
|
105
105
|
"import": "./dist/stepper/index.js"
|
|
106
|
+
},
|
|
107
|
+
"./badge": {
|
|
108
|
+
"types": "./dist/badge/index.d.ts",
|
|
109
|
+
"import": "./dist/badge/index.js"
|
|
106
110
|
}
|
|
107
111
|
},
|
|
108
112
|
"sideEffects": false,
|
|
@@ -111,7 +115,7 @@
|
|
|
111
115
|
"@zag-js/dialog": "^1.42.0",
|
|
112
116
|
"@zag-js/tabs": "^1.42.0",
|
|
113
117
|
"@zag-js/utils": "1.42.0",
|
|
114
|
-
"@qw-ui/icons": "^0.3.0-next.
|
|
118
|
+
"@qw-ui/icons": "^0.3.0-next.18"
|
|
115
119
|
},
|
|
116
120
|
"devDependencies": {
|
|
117
121
|
"@microsoft/api-extractor": "^7.58.9",
|
|
@@ -125,8 +129,8 @@
|
|
|
125
129
|
"typescript": "^6.0.3",
|
|
126
130
|
"unrun": "^0.3.1",
|
|
127
131
|
"vitest": "^4.1.9",
|
|
128
|
-
"@qw-ui/
|
|
129
|
-
"@qw-ui/
|
|
132
|
+
"@qw-ui/eslint-config": "0.0.1",
|
|
133
|
+
"@qw-ui/tsconfig": "0.0.1"
|
|
130
134
|
},
|
|
131
135
|
"size-limit": [
|
|
132
136
|
{
|