@webority/mobile-ui 0.88.0 → 0.88.1
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/lib/commonjs/canvasKit/meta.js +1 -0
- package/lib/commonjs/theme/tokens.generated.js +1 -0
- package/lib/module/canvasKit/meta.js +1 -0
- package/lib/module/theme/tokens.generated.js +1 -0
- package/lib/typescript/commonjs/canvasKit/meta.d.ts +32 -0
- package/lib/typescript/commonjs/theme/tokens.generated.d.ts +215 -0
- package/lib/typescript/module/canvasKit/meta.d.ts +32 -0
- package/lib/typescript/module/theme/tokens.generated.d.ts +215 -0
- package/package.json +11 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.definePhoneMeta=void 0;const definePhoneMeta=()=>e=>e;exports.definePhoneMeta=definePhoneMeta;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WEIGHT_NAMES=exports.TEXT_NAMES=exports.SPACE_NAMES=exports.SIZE_NAMES=exports.SHADOW_NAMES=exports.RADIUS_NAMES=exports.LETTER_SPACING_NAMES=exports.LEADING_NAMES=exports.FONT_NAMES=exports.EASE_NAMES=exports.DURATION_NAMES=exports.COLOR_NAMES=void 0;const COLOR_NAMES=exports.COLOR_NAMES=["bg","bg-subtle","bg-muted","surface","surface-inverse","text","text-body","text-muted","text-subtle","text-inverse","link","border","border-subtle","field-bg","field-border","field-border-focus","focus-ring","scrim","on-scrim","primary","primary-hover","primary-soft","primary-text","on-primary","neutral","neutral-hover","on-neutral","success","success-text","on-success","warning","warning-text","on-warning","danger","danger-border","danger-text","on-danger","info","info-text","on-info","primary-pressed","on-neutral-strong","text-disabled","surface-pressed","surface-hover","surface-selected","surface-disabled","skeleton","skeleton-highlight","glass-fill","glass-border","on-glass","glass-badge","field-bg-focus","field-bg-disabled","field-border-error","field-label","field-text","field-text-disabled","field-placeholder","field-placeholder-disabled","field-icon","field-icon-focus","field-icon-disabled","field-caret","field-message","avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8","thumb","success-soft","warning-soft","danger-soft","info-soft","neutral-text","primary-wash","primary-wash-strong"],SPACE_NAMES=exports.SPACE_NAMES=["none","xxs","xs","sm","md","lg","xl","2xl","3xl","4xl"],RADIUS_NAMES=exports.RADIUS_NAMES=["none","sm","md","lg","xl","pill"],TEXT_NAMES=exports.TEXT_NAMES=["xs","sm","base","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl","8xl"],WEIGHT_NAMES=exports.WEIGHT_NAMES=["normal","medium","semibold","bold"],LEADING_NAMES=exports.LEADING_NAMES=["tight","normal","relaxed"],LETTER_SPACING_NAMES=exports.LETTER_SPACING_NAMES=["tight","normal","wide"],FONT_NAMES=exports.FONT_NAMES=["ui","display","mono"],SHADOW_NAMES=exports.SHADOW_NAMES=["card","elevated","popover","modal","drawer"],DURATION_NAMES=exports.DURATION_NAMES=["instant","fast","default","slow","slower"],EASE_NAMES=exports.EASE_NAMES=["in-out","accelerate","decelerate","sharp"],SIZE_NAMES=exports.SIZE_NAMES=["border"];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";export const definePhoneMeta=()=>e=>e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";export const COLOR_NAMES=["bg","bg-subtle","bg-muted","surface","surface-inverse","text","text-body","text-muted","text-subtle","text-inverse","link","border","border-subtle","field-bg","field-border","field-border-focus","focus-ring","scrim","on-scrim","primary","primary-hover","primary-soft","primary-text","on-primary","neutral","neutral-hover","on-neutral","success","success-text","on-success","warning","warning-text","on-warning","danger","danger-border","danger-text","on-danger","info","info-text","on-info","primary-pressed","on-neutral-strong","text-disabled","surface-pressed","surface-hover","surface-selected","surface-disabled","skeleton","skeleton-highlight","glass-fill","glass-border","on-glass","glass-badge","field-bg-focus","field-bg-disabled","field-border-error","field-label","field-text","field-text-disabled","field-placeholder","field-placeholder-disabled","field-icon","field-icon-focus","field-icon-disabled","field-caret","field-message","avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8","thumb","success-soft","warning-soft","danger-soft","info-soft","neutral-text","primary-wash","primary-wash-strong"];export const SPACE_NAMES=["none","xxs","xs","sm","md","lg","xl","2xl","3xl","4xl"];export const RADIUS_NAMES=["none","sm","md","lg","xl","pill"];export const TEXT_NAMES=["xs","sm","base","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl","8xl"];export const WEIGHT_NAMES=["normal","medium","semibold","bold"];export const LEADING_NAMES=["tight","normal","relaxed"];export const LETTER_SPACING_NAMES=["tight","normal","wide"];export const FONT_NAMES=["ui","display","mono"];export const SHADOW_NAMES=["card","elevated","popover","modal","drawer"];export const DURATION_NAMES=["instant","fast","default","slow","slower"];export const EASE_NAMES=["in-out","accelerate","decelerate","sharp"];export const SIZE_NAMES=["border"];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ComponentMeta, MetaExample, MetaProp } from "@webority/canvas-kit/meta";
|
|
2
|
+
/**
|
|
3
|
+
* Props the Canvas kit can show: everything but callbacks, styles, refs, children and testID. A `*Style` prop is a
|
|
4
|
+
* style object unless its value is a string, as in `paginationStyle: "dots" | "numbers"`, which the kit shows.
|
|
5
|
+
*/
|
|
6
|
+
export type KitPropKey<P> = {
|
|
7
|
+
[K in keyof P]-?: K extends "children" | "ref" | "key" | "style" | "testID" ? never : NonNullable<P[K]> extends (...args: never[]) => unknown ? never : K extends `${string}Style` ? [NonNullable<P[K]>] extends [string] ? K : never : K;
|
|
8
|
+
}[keyof P] & string;
|
|
9
|
+
type Literal<T> = [NonNullable<T>] extends [string] ? string extends NonNullable<T> ? never : NonNullable<T> : [NonNullable<T>] extends [number] ? number extends NonNullable<T> ? never : NonNullable<T> : never;
|
|
10
|
+
type PropFor<T> = MetaProp & (undefined extends T ? {
|
|
11
|
+
required?: false;
|
|
12
|
+
} : {
|
|
13
|
+
required: true;
|
|
14
|
+
}) & ([Literal<T>] extends [never] ? unknown : {
|
|
15
|
+
type: "enum";
|
|
16
|
+
values: readonly Literal<T>[];
|
|
17
|
+
});
|
|
18
|
+
export interface PhoneMeta<P, O extends KitPropKey<P>> extends Omit<ComponentMeta, "props" | "examples" | "omit"> {
|
|
19
|
+
props: {
|
|
20
|
+
[K in Exclude<KitPropKey<P>, O>]: PropFor<P[K]>;
|
|
21
|
+
};
|
|
22
|
+
/** Kit props deliberately not shown, such as object or render props no kit type fits. */
|
|
23
|
+
omit: readonly O[];
|
|
24
|
+
examples: readonly (Omit<MetaExample, "id" | "props"> & {
|
|
25
|
+
id: `${string}.${string}`;
|
|
26
|
+
props: Partial<Pick<P, KitPropKey<P>>>;
|
|
27
|
+
})[];
|
|
28
|
+
}
|
|
29
|
+
/** Returns the meta unchanged; the type check fails on a missing, extra or wrongly valued prop. Example: `export const meta = definePhoneMeta<BadgeProps>()({ name: "Badge", ... })`. */
|
|
30
|
+
export declare const definePhoneMeta: <P>() => <const O extends KitPropKey<P> = never>(meta: PhoneMeta<P, O>) => PhoneMeta<P, O>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
export declare const COLOR_NAMES: readonly ["bg", "bg-subtle", "bg-muted", "surface", "surface-inverse", "text", "text-body", "text-muted", "text-subtle", "text-inverse", "link", "border", "border-subtle", "field-bg", "field-border", "field-border-focus", "focus-ring", "scrim", "on-scrim", "primary", "primary-hover", "primary-soft", "primary-text", "on-primary", "neutral", "neutral-hover", "on-neutral", "success", "success-text", "on-success", "warning", "warning-text", "on-warning", "danger", "danger-border", "danger-text", "on-danger", "info", "info-text", "on-info", "primary-pressed", "on-neutral-strong", "text-disabled", "surface-pressed", "surface-hover", "surface-selected", "surface-disabled", "skeleton", "skeleton-highlight", "glass-fill", "glass-border", "on-glass", "glass-badge", "field-bg-focus", "field-bg-disabled", "field-border-error", "field-label", "field-text", "field-text-disabled", "field-placeholder", "field-placeholder-disabled", "field-icon", "field-icon-focus", "field-icon-disabled", "field-caret", "field-message", "avatar-1", "avatar-2", "avatar-3", "avatar-4", "avatar-5", "avatar-6", "avatar-7", "avatar-8", "thumb", "success-soft", "warning-soft", "danger-soft", "info-soft", "neutral-text", "primary-wash", "primary-wash-strong"];
|
|
2
|
+
export type ColorName = (typeof COLOR_NAMES)[number];
|
|
3
|
+
export declare const SPACE_NAMES: readonly ["none", "xxs", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl"];
|
|
4
|
+
export type SpaceName = (typeof SPACE_NAMES)[number];
|
|
5
|
+
export declare const RADIUS_NAMES: readonly ["none", "sm", "md", "lg", "xl", "pill"];
|
|
6
|
+
export type RadiusName = (typeof RADIUS_NAMES)[number];
|
|
7
|
+
export declare const TEXT_NAMES: readonly ["xs", "sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "7xl", "8xl"];
|
|
8
|
+
export type TextName = (typeof TEXT_NAMES)[number];
|
|
9
|
+
export declare const WEIGHT_NAMES: readonly ["normal", "medium", "semibold", "bold"];
|
|
10
|
+
export type WeightName = (typeof WEIGHT_NAMES)[number];
|
|
11
|
+
export declare const LEADING_NAMES: readonly ["tight", "normal", "relaxed"];
|
|
12
|
+
export type LeadingName = (typeof LEADING_NAMES)[number];
|
|
13
|
+
export declare const LETTER_SPACING_NAMES: readonly ["tight", "normal", "wide"];
|
|
14
|
+
export type LetterSpacingName = (typeof LETTER_SPACING_NAMES)[number];
|
|
15
|
+
export declare const FONT_NAMES: readonly ["ui", "display", "mono"];
|
|
16
|
+
export type FontName = (typeof FONT_NAMES)[number];
|
|
17
|
+
export declare const SHADOW_NAMES: readonly ["card", "elevated", "popover", "modal", "drawer"];
|
|
18
|
+
export type ShadowName = (typeof SHADOW_NAMES)[number];
|
|
19
|
+
export declare const DURATION_NAMES: readonly ["instant", "fast", "default", "slow", "slower"];
|
|
20
|
+
export type DurationName = (typeof DURATION_NAMES)[number];
|
|
21
|
+
export declare const EASE_NAMES: readonly ["in-out", "accelerate", "decelerate", "sharp"];
|
|
22
|
+
export type EaseName = (typeof EASE_NAMES)[number];
|
|
23
|
+
export declare const SIZE_NAMES: readonly ["border"];
|
|
24
|
+
export type SizeName = (typeof SIZE_NAMES)[number];
|
|
25
|
+
export type FontWeightValue = "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900";
|
|
26
|
+
/** Face name per weight; an empty object means the platform system font. */
|
|
27
|
+
export type FontFaces = Partial<Record<WeightName, string>>;
|
|
28
|
+
export interface PhoneShadow {
|
|
29
|
+
shadowColor: string;
|
|
30
|
+
shadowOffset: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
shadowOpacity: number;
|
|
35
|
+
shadowRadius: number;
|
|
36
|
+
elevation: number;
|
|
37
|
+
}
|
|
38
|
+
export type ComponentKind = "space" | "text" | "radius" | "px" | "number" | "ms";
|
|
39
|
+
type Sized<S extends string, T> = Record<S, T>;
|
|
40
|
+
type L3 = "sm" | "md" | "lg";
|
|
41
|
+
export interface ComponentTokens {
|
|
42
|
+
button: Sized<"xs" | L3 | "xl", {
|
|
43
|
+
"padding-x": SpaceName;
|
|
44
|
+
"padding-y": SpaceName;
|
|
45
|
+
"min-height": number;
|
|
46
|
+
text: TextName;
|
|
47
|
+
radius: RadiusName;
|
|
48
|
+
icon: number;
|
|
49
|
+
"badge-icon": number;
|
|
50
|
+
}>;
|
|
51
|
+
field: Sized<L3, {
|
|
52
|
+
"padding-x": SpaceName;
|
|
53
|
+
"padding-y": SpaceName;
|
|
54
|
+
"min-height": number;
|
|
55
|
+
text: TextName;
|
|
56
|
+
radius: RadiusName;
|
|
57
|
+
icon: number;
|
|
58
|
+
"label-text": TextName;
|
|
59
|
+
"label-gap": SpaceName;
|
|
60
|
+
"message-text": TextName;
|
|
61
|
+
"message-gap": SpaceName;
|
|
62
|
+
}>;
|
|
63
|
+
input: Sized<L3, {
|
|
64
|
+
"multiline-min-height": number;
|
|
65
|
+
}>;
|
|
66
|
+
"search-bar": Sized<L3, {
|
|
67
|
+
radius: RadiusName;
|
|
68
|
+
}>;
|
|
69
|
+
"empty-state": Sized<L3, {
|
|
70
|
+
icon: number;
|
|
71
|
+
"title-text": TextName;
|
|
72
|
+
"description-text": TextName;
|
|
73
|
+
"padding-y": SpaceName;
|
|
74
|
+
"title-gap": SpaceName;
|
|
75
|
+
"description-gap": SpaceName;
|
|
76
|
+
}>;
|
|
77
|
+
"list-item": Sized<L3, {
|
|
78
|
+
"padding-y": SpaceName;
|
|
79
|
+
"title-text": TextName;
|
|
80
|
+
"subtitle-text": TextName;
|
|
81
|
+
"min-height": number;
|
|
82
|
+
}>;
|
|
83
|
+
badge: Sized<"sm" | "md", {
|
|
84
|
+
text: TextName;
|
|
85
|
+
"min-width": number;
|
|
86
|
+
height: number;
|
|
87
|
+
"padding-x": SpaceName;
|
|
88
|
+
"dot-size": number;
|
|
89
|
+
}> & {
|
|
90
|
+
"border-width": number;
|
|
91
|
+
"anchor-offset": number;
|
|
92
|
+
};
|
|
93
|
+
chip: Sized<"sm" | "md", {
|
|
94
|
+
"padding-x": SpaceName;
|
|
95
|
+
"padding-y": SpaceName;
|
|
96
|
+
text: TextName;
|
|
97
|
+
"min-height": number;
|
|
98
|
+
"close-size": number;
|
|
99
|
+
"close-text": TextName;
|
|
100
|
+
gap: SpaceName;
|
|
101
|
+
icon: number;
|
|
102
|
+
}>;
|
|
103
|
+
checkbox: Sized<L3, {
|
|
104
|
+
"box-size": number;
|
|
105
|
+
}> & {
|
|
106
|
+
"label-gap": SpaceName;
|
|
107
|
+
};
|
|
108
|
+
radio: Sized<L3, {
|
|
109
|
+
outer: number;
|
|
110
|
+
inner: number;
|
|
111
|
+
}> & {
|
|
112
|
+
"label-gap": SpaceName;
|
|
113
|
+
};
|
|
114
|
+
switch: Sized<L3, {
|
|
115
|
+
"track-width": number;
|
|
116
|
+
"track-height": number;
|
|
117
|
+
"thumb-size": number;
|
|
118
|
+
padding: SpaceName;
|
|
119
|
+
}>;
|
|
120
|
+
"otp-input": Sized<L3, {
|
|
121
|
+
cell: number;
|
|
122
|
+
text: TextName;
|
|
123
|
+
radius: RadiusName;
|
|
124
|
+
gap: SpaceName;
|
|
125
|
+
}>;
|
|
126
|
+
"segmented-control": Sized<L3, {
|
|
127
|
+
height: number;
|
|
128
|
+
text: TextName;
|
|
129
|
+
"padding-x": SpaceName;
|
|
130
|
+
icon: number;
|
|
131
|
+
}> & {
|
|
132
|
+
"track-padding": SpaceName;
|
|
133
|
+
"underline-height": number;
|
|
134
|
+
"pill-inset": SpaceName;
|
|
135
|
+
};
|
|
136
|
+
tabs: Sized<L3, {
|
|
137
|
+
text: TextName;
|
|
138
|
+
"padding-y": SpaceName;
|
|
139
|
+
"padding-x": SpaceName;
|
|
140
|
+
"scrollable-padding-x": SpaceName;
|
|
141
|
+
icon: number;
|
|
142
|
+
}> & {
|
|
143
|
+
"icon-gap": SpaceName;
|
|
144
|
+
"track-padding": SpaceName;
|
|
145
|
+
"underline-height": number;
|
|
146
|
+
"pill-inset": SpaceName;
|
|
147
|
+
"disabled-opacity": number;
|
|
148
|
+
"badge-gap": SpaceName;
|
|
149
|
+
};
|
|
150
|
+
slider: Sized<L3, {
|
|
151
|
+
"track-height": number;
|
|
152
|
+
"thumb-diameter": number;
|
|
153
|
+
}>;
|
|
154
|
+
"floating-action-button": Sized<L3, {
|
|
155
|
+
diameter: number;
|
|
156
|
+
icon: number;
|
|
157
|
+
text: TextName;
|
|
158
|
+
"label-padding-x": SpaceName;
|
|
159
|
+
}> & {
|
|
160
|
+
"edge-offset": SpaceName;
|
|
161
|
+
"bottom-offset": SpaceName;
|
|
162
|
+
"secondary-gap": SpaceName;
|
|
163
|
+
"stagger-ms": number;
|
|
164
|
+
};
|
|
165
|
+
dialog: {
|
|
166
|
+
"icon-wrapper-size": number;
|
|
167
|
+
"action-button-min-height": number;
|
|
168
|
+
};
|
|
169
|
+
toast: {
|
|
170
|
+
"icon-circle-size": number;
|
|
171
|
+
"icon-glyph-text": TextName;
|
|
172
|
+
"tint-bar-width": number;
|
|
173
|
+
"action-min-height": number;
|
|
174
|
+
};
|
|
175
|
+
banner: {
|
|
176
|
+
"tint-bar-width": number;
|
|
177
|
+
};
|
|
178
|
+
disabled: {
|
|
179
|
+
opacity: number;
|
|
180
|
+
};
|
|
181
|
+
press: {
|
|
182
|
+
opacity: number;
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export type ComponentName = keyof ComponentTokens;
|
|
186
|
+
type SizeKeysOf<C extends ComponentName> = Extract<keyof ComponentTokens[C], "xs" | "sm" | "md" | "lg" | "xl">;
|
|
187
|
+
export type ComponentSizeTokens<C extends ComponentName> = ComponentTokens[C][SizeKeysOf<C>];
|
|
188
|
+
export declare const COMPONENT_KINDS: {
|
|
189
|
+
readonly [C in ComponentName]: Readonly<Record<string, ComponentKind>>;
|
|
190
|
+
};
|
|
191
|
+
export interface TokenSet {
|
|
192
|
+
mode: "light" | "dark";
|
|
193
|
+
colors: Record<ColorName, string>;
|
|
194
|
+
space: Record<SpaceName, number>;
|
|
195
|
+
radius: Record<RadiusName, number>;
|
|
196
|
+
text: Record<TextName, {
|
|
197
|
+
size: number;
|
|
198
|
+
lineHeight: number;
|
|
199
|
+
}>;
|
|
200
|
+
weight: Record<WeightName, FontWeightValue>;
|
|
201
|
+
leading: Record<LeadingName, number>;
|
|
202
|
+
"letter-spacing": Record<LetterSpacingName, number>;
|
|
203
|
+
font: Record<FontName, FontFaces>;
|
|
204
|
+
shadow: Record<ShadowName, PhoneShadow>;
|
|
205
|
+
motion: {
|
|
206
|
+
duration: Record<DurationName, number>;
|
|
207
|
+
ease: Record<EaseName, readonly [number, number, number, number]>;
|
|
208
|
+
};
|
|
209
|
+
size: Record<SizeName, number>;
|
|
210
|
+
components: ComponentTokens;
|
|
211
|
+
}
|
|
212
|
+
export declare const lightTokens: TokenSet;
|
|
213
|
+
export declare const darkTokens: TokenSet;
|
|
214
|
+
export {};
|
|
215
|
+
//# sourceMappingURL=tokens.generated.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ComponentMeta, MetaExample, MetaProp } from "@webority/canvas-kit/meta";
|
|
2
|
+
/**
|
|
3
|
+
* Props the Canvas kit can show: everything but callbacks, styles, refs, children and testID. A `*Style` prop is a
|
|
4
|
+
* style object unless its value is a string, as in `paginationStyle: "dots" | "numbers"`, which the kit shows.
|
|
5
|
+
*/
|
|
6
|
+
export type KitPropKey<P> = {
|
|
7
|
+
[K in keyof P]-?: K extends "children" | "ref" | "key" | "style" | "testID" ? never : NonNullable<P[K]> extends (...args: never[]) => unknown ? never : K extends `${string}Style` ? [NonNullable<P[K]>] extends [string] ? K : never : K;
|
|
8
|
+
}[keyof P] & string;
|
|
9
|
+
type Literal<T> = [NonNullable<T>] extends [string] ? string extends NonNullable<T> ? never : NonNullable<T> : [NonNullable<T>] extends [number] ? number extends NonNullable<T> ? never : NonNullable<T> : never;
|
|
10
|
+
type PropFor<T> = MetaProp & (undefined extends T ? {
|
|
11
|
+
required?: false;
|
|
12
|
+
} : {
|
|
13
|
+
required: true;
|
|
14
|
+
}) & ([Literal<T>] extends [never] ? unknown : {
|
|
15
|
+
type: "enum";
|
|
16
|
+
values: readonly Literal<T>[];
|
|
17
|
+
});
|
|
18
|
+
export interface PhoneMeta<P, O extends KitPropKey<P>> extends Omit<ComponentMeta, "props" | "examples" | "omit"> {
|
|
19
|
+
props: {
|
|
20
|
+
[K in Exclude<KitPropKey<P>, O>]: PropFor<P[K]>;
|
|
21
|
+
};
|
|
22
|
+
/** Kit props deliberately not shown, such as object or render props no kit type fits. */
|
|
23
|
+
omit: readonly O[];
|
|
24
|
+
examples: readonly (Omit<MetaExample, "id" | "props"> & {
|
|
25
|
+
id: `${string}.${string}`;
|
|
26
|
+
props: Partial<Pick<P, KitPropKey<P>>>;
|
|
27
|
+
})[];
|
|
28
|
+
}
|
|
29
|
+
/** Returns the meta unchanged; the type check fails on a missing, extra or wrongly valued prop. Example: `export const meta = definePhoneMeta<BadgeProps>()({ name: "Badge", ... })`. */
|
|
30
|
+
export declare const definePhoneMeta: <P>() => <const O extends KitPropKey<P> = never>(meta: PhoneMeta<P, O>) => PhoneMeta<P, O>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
export declare const COLOR_NAMES: readonly ["bg", "bg-subtle", "bg-muted", "surface", "surface-inverse", "text", "text-body", "text-muted", "text-subtle", "text-inverse", "link", "border", "border-subtle", "field-bg", "field-border", "field-border-focus", "focus-ring", "scrim", "on-scrim", "primary", "primary-hover", "primary-soft", "primary-text", "on-primary", "neutral", "neutral-hover", "on-neutral", "success", "success-text", "on-success", "warning", "warning-text", "on-warning", "danger", "danger-border", "danger-text", "on-danger", "info", "info-text", "on-info", "primary-pressed", "on-neutral-strong", "text-disabled", "surface-pressed", "surface-hover", "surface-selected", "surface-disabled", "skeleton", "skeleton-highlight", "glass-fill", "glass-border", "on-glass", "glass-badge", "field-bg-focus", "field-bg-disabled", "field-border-error", "field-label", "field-text", "field-text-disabled", "field-placeholder", "field-placeholder-disabled", "field-icon", "field-icon-focus", "field-icon-disabled", "field-caret", "field-message", "avatar-1", "avatar-2", "avatar-3", "avatar-4", "avatar-5", "avatar-6", "avatar-7", "avatar-8", "thumb", "success-soft", "warning-soft", "danger-soft", "info-soft", "neutral-text", "primary-wash", "primary-wash-strong"];
|
|
2
|
+
export type ColorName = (typeof COLOR_NAMES)[number];
|
|
3
|
+
export declare const SPACE_NAMES: readonly ["none", "xxs", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl"];
|
|
4
|
+
export type SpaceName = (typeof SPACE_NAMES)[number];
|
|
5
|
+
export declare const RADIUS_NAMES: readonly ["none", "sm", "md", "lg", "xl", "pill"];
|
|
6
|
+
export type RadiusName = (typeof RADIUS_NAMES)[number];
|
|
7
|
+
export declare const TEXT_NAMES: readonly ["xs", "sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "7xl", "8xl"];
|
|
8
|
+
export type TextName = (typeof TEXT_NAMES)[number];
|
|
9
|
+
export declare const WEIGHT_NAMES: readonly ["normal", "medium", "semibold", "bold"];
|
|
10
|
+
export type WeightName = (typeof WEIGHT_NAMES)[number];
|
|
11
|
+
export declare const LEADING_NAMES: readonly ["tight", "normal", "relaxed"];
|
|
12
|
+
export type LeadingName = (typeof LEADING_NAMES)[number];
|
|
13
|
+
export declare const LETTER_SPACING_NAMES: readonly ["tight", "normal", "wide"];
|
|
14
|
+
export type LetterSpacingName = (typeof LETTER_SPACING_NAMES)[number];
|
|
15
|
+
export declare const FONT_NAMES: readonly ["ui", "display", "mono"];
|
|
16
|
+
export type FontName = (typeof FONT_NAMES)[number];
|
|
17
|
+
export declare const SHADOW_NAMES: readonly ["card", "elevated", "popover", "modal", "drawer"];
|
|
18
|
+
export type ShadowName = (typeof SHADOW_NAMES)[number];
|
|
19
|
+
export declare const DURATION_NAMES: readonly ["instant", "fast", "default", "slow", "slower"];
|
|
20
|
+
export type DurationName = (typeof DURATION_NAMES)[number];
|
|
21
|
+
export declare const EASE_NAMES: readonly ["in-out", "accelerate", "decelerate", "sharp"];
|
|
22
|
+
export type EaseName = (typeof EASE_NAMES)[number];
|
|
23
|
+
export declare const SIZE_NAMES: readonly ["border"];
|
|
24
|
+
export type SizeName = (typeof SIZE_NAMES)[number];
|
|
25
|
+
export type FontWeightValue = "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900";
|
|
26
|
+
/** Face name per weight; an empty object means the platform system font. */
|
|
27
|
+
export type FontFaces = Partial<Record<WeightName, string>>;
|
|
28
|
+
export interface PhoneShadow {
|
|
29
|
+
shadowColor: string;
|
|
30
|
+
shadowOffset: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
shadowOpacity: number;
|
|
35
|
+
shadowRadius: number;
|
|
36
|
+
elevation: number;
|
|
37
|
+
}
|
|
38
|
+
export type ComponentKind = "space" | "text" | "radius" | "px" | "number" | "ms";
|
|
39
|
+
type Sized<S extends string, T> = Record<S, T>;
|
|
40
|
+
type L3 = "sm" | "md" | "lg";
|
|
41
|
+
export interface ComponentTokens {
|
|
42
|
+
button: Sized<"xs" | L3 | "xl", {
|
|
43
|
+
"padding-x": SpaceName;
|
|
44
|
+
"padding-y": SpaceName;
|
|
45
|
+
"min-height": number;
|
|
46
|
+
text: TextName;
|
|
47
|
+
radius: RadiusName;
|
|
48
|
+
icon: number;
|
|
49
|
+
"badge-icon": number;
|
|
50
|
+
}>;
|
|
51
|
+
field: Sized<L3, {
|
|
52
|
+
"padding-x": SpaceName;
|
|
53
|
+
"padding-y": SpaceName;
|
|
54
|
+
"min-height": number;
|
|
55
|
+
text: TextName;
|
|
56
|
+
radius: RadiusName;
|
|
57
|
+
icon: number;
|
|
58
|
+
"label-text": TextName;
|
|
59
|
+
"label-gap": SpaceName;
|
|
60
|
+
"message-text": TextName;
|
|
61
|
+
"message-gap": SpaceName;
|
|
62
|
+
}>;
|
|
63
|
+
input: Sized<L3, {
|
|
64
|
+
"multiline-min-height": number;
|
|
65
|
+
}>;
|
|
66
|
+
"search-bar": Sized<L3, {
|
|
67
|
+
radius: RadiusName;
|
|
68
|
+
}>;
|
|
69
|
+
"empty-state": Sized<L3, {
|
|
70
|
+
icon: number;
|
|
71
|
+
"title-text": TextName;
|
|
72
|
+
"description-text": TextName;
|
|
73
|
+
"padding-y": SpaceName;
|
|
74
|
+
"title-gap": SpaceName;
|
|
75
|
+
"description-gap": SpaceName;
|
|
76
|
+
}>;
|
|
77
|
+
"list-item": Sized<L3, {
|
|
78
|
+
"padding-y": SpaceName;
|
|
79
|
+
"title-text": TextName;
|
|
80
|
+
"subtitle-text": TextName;
|
|
81
|
+
"min-height": number;
|
|
82
|
+
}>;
|
|
83
|
+
badge: Sized<"sm" | "md", {
|
|
84
|
+
text: TextName;
|
|
85
|
+
"min-width": number;
|
|
86
|
+
height: number;
|
|
87
|
+
"padding-x": SpaceName;
|
|
88
|
+
"dot-size": number;
|
|
89
|
+
}> & {
|
|
90
|
+
"border-width": number;
|
|
91
|
+
"anchor-offset": number;
|
|
92
|
+
};
|
|
93
|
+
chip: Sized<"sm" | "md", {
|
|
94
|
+
"padding-x": SpaceName;
|
|
95
|
+
"padding-y": SpaceName;
|
|
96
|
+
text: TextName;
|
|
97
|
+
"min-height": number;
|
|
98
|
+
"close-size": number;
|
|
99
|
+
"close-text": TextName;
|
|
100
|
+
gap: SpaceName;
|
|
101
|
+
icon: number;
|
|
102
|
+
}>;
|
|
103
|
+
checkbox: Sized<L3, {
|
|
104
|
+
"box-size": number;
|
|
105
|
+
}> & {
|
|
106
|
+
"label-gap": SpaceName;
|
|
107
|
+
};
|
|
108
|
+
radio: Sized<L3, {
|
|
109
|
+
outer: number;
|
|
110
|
+
inner: number;
|
|
111
|
+
}> & {
|
|
112
|
+
"label-gap": SpaceName;
|
|
113
|
+
};
|
|
114
|
+
switch: Sized<L3, {
|
|
115
|
+
"track-width": number;
|
|
116
|
+
"track-height": number;
|
|
117
|
+
"thumb-size": number;
|
|
118
|
+
padding: SpaceName;
|
|
119
|
+
}>;
|
|
120
|
+
"otp-input": Sized<L3, {
|
|
121
|
+
cell: number;
|
|
122
|
+
text: TextName;
|
|
123
|
+
radius: RadiusName;
|
|
124
|
+
gap: SpaceName;
|
|
125
|
+
}>;
|
|
126
|
+
"segmented-control": Sized<L3, {
|
|
127
|
+
height: number;
|
|
128
|
+
text: TextName;
|
|
129
|
+
"padding-x": SpaceName;
|
|
130
|
+
icon: number;
|
|
131
|
+
}> & {
|
|
132
|
+
"track-padding": SpaceName;
|
|
133
|
+
"underline-height": number;
|
|
134
|
+
"pill-inset": SpaceName;
|
|
135
|
+
};
|
|
136
|
+
tabs: Sized<L3, {
|
|
137
|
+
text: TextName;
|
|
138
|
+
"padding-y": SpaceName;
|
|
139
|
+
"padding-x": SpaceName;
|
|
140
|
+
"scrollable-padding-x": SpaceName;
|
|
141
|
+
icon: number;
|
|
142
|
+
}> & {
|
|
143
|
+
"icon-gap": SpaceName;
|
|
144
|
+
"track-padding": SpaceName;
|
|
145
|
+
"underline-height": number;
|
|
146
|
+
"pill-inset": SpaceName;
|
|
147
|
+
"disabled-opacity": number;
|
|
148
|
+
"badge-gap": SpaceName;
|
|
149
|
+
};
|
|
150
|
+
slider: Sized<L3, {
|
|
151
|
+
"track-height": number;
|
|
152
|
+
"thumb-diameter": number;
|
|
153
|
+
}>;
|
|
154
|
+
"floating-action-button": Sized<L3, {
|
|
155
|
+
diameter: number;
|
|
156
|
+
icon: number;
|
|
157
|
+
text: TextName;
|
|
158
|
+
"label-padding-x": SpaceName;
|
|
159
|
+
}> & {
|
|
160
|
+
"edge-offset": SpaceName;
|
|
161
|
+
"bottom-offset": SpaceName;
|
|
162
|
+
"secondary-gap": SpaceName;
|
|
163
|
+
"stagger-ms": number;
|
|
164
|
+
};
|
|
165
|
+
dialog: {
|
|
166
|
+
"icon-wrapper-size": number;
|
|
167
|
+
"action-button-min-height": number;
|
|
168
|
+
};
|
|
169
|
+
toast: {
|
|
170
|
+
"icon-circle-size": number;
|
|
171
|
+
"icon-glyph-text": TextName;
|
|
172
|
+
"tint-bar-width": number;
|
|
173
|
+
"action-min-height": number;
|
|
174
|
+
};
|
|
175
|
+
banner: {
|
|
176
|
+
"tint-bar-width": number;
|
|
177
|
+
};
|
|
178
|
+
disabled: {
|
|
179
|
+
opacity: number;
|
|
180
|
+
};
|
|
181
|
+
press: {
|
|
182
|
+
opacity: number;
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export type ComponentName = keyof ComponentTokens;
|
|
186
|
+
type SizeKeysOf<C extends ComponentName> = Extract<keyof ComponentTokens[C], "xs" | "sm" | "md" | "lg" | "xl">;
|
|
187
|
+
export type ComponentSizeTokens<C extends ComponentName> = ComponentTokens[C][SizeKeysOf<C>];
|
|
188
|
+
export declare const COMPONENT_KINDS: {
|
|
189
|
+
readonly [C in ComponentName]: Readonly<Record<string, ComponentKind>>;
|
|
190
|
+
};
|
|
191
|
+
export interface TokenSet {
|
|
192
|
+
mode: "light" | "dark";
|
|
193
|
+
colors: Record<ColorName, string>;
|
|
194
|
+
space: Record<SpaceName, number>;
|
|
195
|
+
radius: Record<RadiusName, number>;
|
|
196
|
+
text: Record<TextName, {
|
|
197
|
+
size: number;
|
|
198
|
+
lineHeight: number;
|
|
199
|
+
}>;
|
|
200
|
+
weight: Record<WeightName, FontWeightValue>;
|
|
201
|
+
leading: Record<LeadingName, number>;
|
|
202
|
+
"letter-spacing": Record<LetterSpacingName, number>;
|
|
203
|
+
font: Record<FontName, FontFaces>;
|
|
204
|
+
shadow: Record<ShadowName, PhoneShadow>;
|
|
205
|
+
motion: {
|
|
206
|
+
duration: Record<DurationName, number>;
|
|
207
|
+
ease: Record<EaseName, readonly [number, number, number, number]>;
|
|
208
|
+
};
|
|
209
|
+
size: Record<SizeName, number>;
|
|
210
|
+
components: ComponentTokens;
|
|
211
|
+
}
|
|
212
|
+
export declare const lightTokens: TokenSet;
|
|
213
|
+
export declare const darkTokens: TokenSet;
|
|
214
|
+
export {};
|
|
215
|
+
//# sourceMappingURL=tokens.generated.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/mobile-ui",
|
|
3
|
-
"version": "0.88.
|
|
3
|
+
"version": "0.88.1",
|
|
4
4
|
"description": "Beautiful, animated, accessible React Native components, theme and form engine for Webority projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -93,9 +93,14 @@
|
|
|
93
93
|
"react-native-safe-area-context": ">=5.4.0",
|
|
94
94
|
"react-native-svg": ">=15.0.0",
|
|
95
95
|
"react-native-worklets": ">=0.10.0",
|
|
96
|
-
"@webority/
|
|
96
|
+
"@webority/canvas-kit": "0.88.1",
|
|
97
|
+
"@webority/mobile-core": "0.88.1"
|
|
98
|
+
},
|
|
99
|
+
"peerDependenciesMeta": {
|
|
100
|
+
"@webority/canvas-kit": {
|
|
101
|
+
"optional": true
|
|
102
|
+
}
|
|
97
103
|
},
|
|
98
|
-
"peerDependenciesMeta": {},
|
|
99
104
|
"publishConfig": {
|
|
100
105
|
"access": "public",
|
|
101
106
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -150,8 +155,9 @@
|
|
|
150
155
|
"react-test-renderer": "19.2.8",
|
|
151
156
|
"rimraf": "6.1.3",
|
|
152
157
|
"typescript": "5.9.3",
|
|
153
|
-
"@webority/
|
|
154
|
-
"@webority/mobile-dev": "0.0.0"
|
|
158
|
+
"@webority/canvas-kit": "0.88.1",
|
|
159
|
+
"@webority/mobile-dev": "0.0.0",
|
|
160
|
+
"@webority/mobile-core": "0.88.1"
|
|
155
161
|
},
|
|
156
162
|
"scripts": {
|
|
157
163
|
"build": "bob build && node ../mobile-dev/scripts/minify-lib.mjs",
|