@tekton-ui/core 0.2.0
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/README.md +758 -0
- package/dist/blueprint.d.ts +44 -0
- package/dist/blueprint.d.ts.map +1 -0
- package/dist/blueprint.js +163 -0
- package/dist/blueprint.js.map +1 -0
- package/dist/component-schemas.d.ts +78 -0
- package/dist/component-schemas.d.ts.map +1 -0
- package/dist/component-schemas.js +1037 -0
- package/dist/component-schemas.js.map +1 -0
- package/dist/css-generator.d.ts +42 -0
- package/dist/css-generator.d.ts.map +1 -0
- package/dist/css-generator.js +339 -0
- package/dist/css-generator.js.map +1 -0
- package/dist/icon-library.d.ts +109 -0
- package/dist/icon-library.d.ts.map +1 -0
- package/dist/icon-library.js +204 -0
- package/dist/icon-library.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/layout-css-generator.d.ts +158 -0
- package/dist/layout-css-generator.d.ts.map +1 -0
- package/dist/layout-css-generator.js +901 -0
- package/dist/layout-css-generator.js.map +1 -0
- package/dist/layout-resolver.d.ts +92 -0
- package/dist/layout-resolver.d.ts.map +1 -0
- package/dist/layout-resolver.js +275 -0
- package/dist/layout-resolver.js.map +1 -0
- package/dist/layout-tokens/index.d.ts +16 -0
- package/dist/layout-tokens/index.d.ts.map +1 -0
- package/dist/layout-tokens/index.js +16 -0
- package/dist/layout-tokens/index.js.map +1 -0
- package/dist/layout-tokens/keyboard.d.ts +254 -0
- package/dist/layout-tokens/keyboard.d.ts.map +1 -0
- package/dist/layout-tokens/keyboard.js +407 -0
- package/dist/layout-tokens/keyboard.js.map +1 -0
- package/dist/layout-tokens/mobile-shells.d.ts +78 -0
- package/dist/layout-tokens/mobile-shells.d.ts.map +1 -0
- package/dist/layout-tokens/mobile-shells.js +635 -0
- package/dist/layout-tokens/mobile-shells.js.map +1 -0
- package/dist/layout-tokens/pages.d.ts +100 -0
- package/dist/layout-tokens/pages.d.ts.map +1 -0
- package/dist/layout-tokens/pages.js +576 -0
- package/dist/layout-tokens/pages.js.map +1 -0
- package/dist/layout-tokens/responsive.d.ts +109 -0
- package/dist/layout-tokens/responsive.d.ts.map +1 -0
- package/dist/layout-tokens/responsive.js +167 -0
- package/dist/layout-tokens/responsive.js.map +1 -0
- package/dist/layout-tokens/safe-area.d.ts +156 -0
- package/dist/layout-tokens/safe-area.d.ts.map +1 -0
- package/dist/layout-tokens/safe-area.js +316 -0
- package/dist/layout-tokens/safe-area.js.map +1 -0
- package/dist/layout-tokens/sections-advanced.d.ts +277 -0
- package/dist/layout-tokens/sections-advanced.d.ts.map +1 -0
- package/dist/layout-tokens/sections-advanced.js +593 -0
- package/dist/layout-tokens/sections-advanced.js.map +1 -0
- package/dist/layout-tokens/sections.d.ts +137 -0
- package/dist/layout-tokens/sections.d.ts.map +1 -0
- package/dist/layout-tokens/sections.js +694 -0
- package/dist/layout-tokens/sections.js.map +1 -0
- package/dist/layout-tokens/shells.d.ts +77 -0
- package/dist/layout-tokens/shells.d.ts.map +1 -0
- package/dist/layout-tokens/shells.js +408 -0
- package/dist/layout-tokens/shells.js.map +1 -0
- package/dist/layout-tokens/touch-target.d.ts +119 -0
- package/dist/layout-tokens/touch-target.d.ts.map +1 -0
- package/dist/layout-tokens/touch-target.js +156 -0
- package/dist/layout-tokens/touch-target.js.map +1 -0
- package/dist/layout-tokens/types.d.ts +632 -0
- package/dist/layout-tokens/types.d.ts.map +1 -0
- package/dist/layout-tokens/types.js +49 -0
- package/dist/layout-tokens/types.js.map +1 -0
- package/dist/layout-validation.d.ts +1547 -0
- package/dist/layout-validation.d.ts.map +1 -0
- package/dist/layout-validation.js +628 -0
- package/dist/layout-validation.js.map +1 -0
- package/dist/render.d.ts +23 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +244 -0
- package/dist/render.js.map +1 -0
- package/dist/schema-validation.d.ts +208 -0
- package/dist/schema-validation.d.ts.map +1 -0
- package/dist/schema-validation.js +205 -0
- package/dist/schema-validation.js.map +1 -0
- package/dist/screen-generation/generators/css-in-js-generator.d.ts +82 -0
- package/dist/screen-generation/generators/css-in-js-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/css-in-js-generator.js +335 -0
- package/dist/screen-generation/generators/css-in-js-generator.js.map +1 -0
- package/dist/screen-generation/generators/index.d.ts +13 -0
- package/dist/screen-generation/generators/index.d.ts.map +1 -0
- package/dist/screen-generation/generators/index.js +32 -0
- package/dist/screen-generation/generators/index.js.map +1 -0
- package/dist/screen-generation/generators/react-generator.d.ts +100 -0
- package/dist/screen-generation/generators/react-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/react-generator.js +379 -0
- package/dist/screen-generation/generators/react-generator.js.map +1 -0
- package/dist/screen-generation/generators/tailwind-generator.d.ts +105 -0
- package/dist/screen-generation/generators/tailwind-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/tailwind-generator.js +355 -0
- package/dist/screen-generation/generators/tailwind-generator.js.map +1 -0
- package/dist/screen-generation/generators/types.d.ts +136 -0
- package/dist/screen-generation/generators/types.d.ts.map +1 -0
- package/dist/screen-generation/generators/types.js +18 -0
- package/dist/screen-generation/generators/types.js.map +1 -0
- package/dist/screen-generation/generators/utils.d.ts +187 -0
- package/dist/screen-generation/generators/utils.d.ts.map +1 -0
- package/dist/screen-generation/generators/utils.js +312 -0
- package/dist/screen-generation/generators/utils.js.map +1 -0
- package/dist/screen-generation/index.d.ts +14 -0
- package/dist/screen-generation/index.d.ts.map +1 -0
- package/dist/screen-generation/index.js +33 -0
- package/dist/screen-generation/index.js.map +1 -0
- package/dist/screen-generation/resolver/component-resolver.d.ts +157 -0
- package/dist/screen-generation/resolver/component-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/component-resolver.js +295 -0
- package/dist/screen-generation/resolver/component-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/index.d.ts +10 -0
- package/dist/screen-generation/resolver/index.d.ts.map +1 -0
- package/dist/screen-generation/resolver/index.js +46 -0
- package/dist/screen-generation/resolver/index.js.map +1 -0
- package/dist/screen-generation/resolver/layout-resolver.d.ts +155 -0
- package/dist/screen-generation/resolver/layout-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/layout-resolver.js +193 -0
- package/dist/screen-generation/resolver/layout-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/screen-resolver.d.ts +174 -0
- package/dist/screen-generation/resolver/screen-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/screen-resolver.js +373 -0
- package/dist/screen-generation/resolver/screen-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/token-resolver.d.ts +170 -0
- package/dist/screen-generation/resolver/token-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/token-resolver.js +260 -0
- package/dist/screen-generation/resolver/token-resolver.js.map +1 -0
- package/dist/screen-generation/types.d.ts +116 -0
- package/dist/screen-generation/types.d.ts.map +1 -0
- package/dist/screen-generation/types.js +33 -0
- package/dist/screen-generation/types.js.map +1 -0
- package/dist/screen-generation/validators.d.ts +286 -0
- package/dist/screen-generation/validators.d.ts.map +1 -0
- package/dist/screen-generation/validators.js +323 -0
- package/dist/screen-generation/validators.js.map +1 -0
- package/dist/screen-templates/__tests__/registry.test.d.ts +6 -0
- package/dist/screen-templates/__tests__/registry.test.d.ts.map +1 -0
- package/dist/screen-templates/__tests__/registry.test.js +247 -0
- package/dist/screen-templates/__tests__/registry.test.js.map +1 -0
- package/dist/screen-templates/__tests__/templates.test.d.ts +6 -0
- package/dist/screen-templates/__tests__/templates.test.d.ts.map +1 -0
- package/dist/screen-templates/__tests__/templates.test.js +179 -0
- package/dist/screen-templates/__tests__/templates.test.js.map +1 -0
- package/dist/screen-templates/index.d.ts +39 -0
- package/dist/screen-templates/index.d.ts.map +1 -0
- package/dist/screen-templates/index.js +79 -0
- package/dist/screen-templates/index.js.map +1 -0
- package/dist/screen-templates/registry.d.ts +177 -0
- package/dist/screen-templates/registry.d.ts.map +1 -0
- package/dist/screen-templates/registry.js +274 -0
- package/dist/screen-templates/registry.js.map +1 -0
- package/dist/screen-templates/templates/account/index.d.ts +6 -0
- package/dist/screen-templates/templates/account/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/account/index.js +6 -0
- package/dist/screen-templates/templates/account/index.js.map +1 -0
- package/dist/screen-templates/templates/account/profile.d.ts +23 -0
- package/dist/screen-templates/templates/account/profile.d.ts.map +1 -0
- package/dist/screen-templates/templates/account/profile.js +249 -0
- package/dist/screen-templates/templates/account/profile.js.map +1 -0
- package/dist/screen-templates/templates/auth/forgot-password.d.ts +23 -0
- package/dist/screen-templates/templates/auth/forgot-password.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/forgot-password.js +203 -0
- package/dist/screen-templates/templates/auth/forgot-password.js.map +1 -0
- package/dist/screen-templates/templates/auth/index.d.ts +9 -0
- package/dist/screen-templates/templates/auth/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/index.js +9 -0
- package/dist/screen-templates/templates/auth/index.js.map +1 -0
- package/dist/screen-templates/templates/auth/login.d.ts +24 -0
- package/dist/screen-templates/templates/auth/login.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/login.js +254 -0
- package/dist/screen-templates/templates/auth/login.js.map +1 -0
- package/dist/screen-templates/templates/auth/signup.d.ts +24 -0
- package/dist/screen-templates/templates/auth/signup.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/signup.js +315 -0
- package/dist/screen-templates/templates/auth/signup.js.map +1 -0
- package/dist/screen-templates/templates/auth/verification.d.ts +23 -0
- package/dist/screen-templates/templates/auth/verification.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/verification.js +239 -0
- package/dist/screen-templates/templates/auth/verification.js.map +1 -0
- package/dist/screen-templates/templates/feedback/confirmation.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/confirmation.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/confirmation.js +107 -0
- package/dist/screen-templates/templates/feedback/confirmation.js.map +1 -0
- package/dist/screen-templates/templates/feedback/empty.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/empty.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/empty.js +90 -0
- package/dist/screen-templates/templates/feedback/empty.js.map +1 -0
- package/dist/screen-templates/templates/feedback/error.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/error.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/error.js +99 -0
- package/dist/screen-templates/templates/feedback/error.js.map +1 -0
- package/dist/screen-templates/templates/feedback/index.d.ts +10 -0
- package/dist/screen-templates/templates/feedback/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/index.js +10 -0
- package/dist/screen-templates/templates/feedback/index.js.map +1 -0
- package/dist/screen-templates/templates/feedback/loading.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/loading.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/loading.js +77 -0
- package/dist/screen-templates/templates/feedback/loading.js.map +1 -0
- package/dist/screen-templates/templates/feedback/success.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/success.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/success.js +99 -0
- package/dist/screen-templates/templates/feedback/success.js.map +1 -0
- package/dist/screen-templates/templates/home/index.d.ts +6 -0
- package/dist/screen-templates/templates/home/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/home/index.js +6 -0
- package/dist/screen-templates/templates/home/index.js.map +1 -0
- package/dist/screen-templates/templates/home/landing.d.ts +24 -0
- package/dist/screen-templates/templates/home/landing.d.ts.map +1 -0
- package/dist/screen-templates/templates/home/landing.js +197 -0
- package/dist/screen-templates/templates/home/landing.js.map +1 -0
- package/dist/screen-templates/templates/settings/index.d.ts +6 -0
- package/dist/screen-templates/templates/settings/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/settings/index.js +6 -0
- package/dist/screen-templates/templates/settings/index.js.map +1 -0
- package/dist/screen-templates/templates/settings/preferences.d.ts +24 -0
- package/dist/screen-templates/templates/settings/preferences.d.ts.map +1 -0
- package/dist/screen-templates/templates/settings/preferences.js +265 -0
- package/dist/screen-templates/templates/settings/preferences.js.map +1 -0
- package/dist/screen-templates/types.d.ts +229 -0
- package/dist/screen-templates/types.d.ts.map +1 -0
- package/dist/screen-templates/types.js +7 -0
- package/dist/screen-templates/types.js.map +1 -0
- package/dist/theme-v2.d.ts +228 -0
- package/dist/theme-v2.d.ts.map +1 -0
- package/dist/theme-v2.js +158 -0
- package/dist/theme-v2.js.map +1 -0
- package/dist/theme.d.ts +60 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +76 -0
- package/dist/theme.js.map +1 -0
- package/dist/token-resolver.d.ts +69 -0
- package/dist/token-resolver.d.ts.map +1 -0
- package/dist/token-resolver.js +122 -0
- package/dist/token-resolver.js.map +1 -0
- package/dist/token-validation.d.ts +432 -0
- package/dist/token-validation.d.ts.map +1 -0
- package/dist/token-validation.js +140 -0
- package/dist/token-validation.js.map +1 -0
- package/dist/tokens.d.ts +158 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +10 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tekton-ui/core - Touch Target Utilities
|
|
3
|
+
* Validation and application utilities for accessible touch targets
|
|
4
|
+
* [SPEC-LAYOUT-004] [MILESTONE-5]
|
|
5
|
+
*
|
|
6
|
+
* @see https://developer.apple.com/design/human-interface-guidelines/layout
|
|
7
|
+
* @see https://m3.material.io/foundations/accessible-design/accessibility-basics
|
|
8
|
+
* @see https://www.w3.org/WAI/WCAG21/Understanding/target-size.html
|
|
9
|
+
*/
|
|
10
|
+
import { TOUCH_TARGET } from './types.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Core Functions (Required)
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Validate if touch target meets minimum size requirements
|
|
16
|
+
*
|
|
17
|
+
* @param size - Touch target size in points or pixels
|
|
18
|
+
* @param scale - Screen scale factor (1x, 2x, 3x, 4x). Defaults to 1.
|
|
19
|
+
* @returns true if size >= minimum, false otherwise
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* validateTouchTarget(44); // true (meets 44pt minimum)
|
|
24
|
+
* validateTouchTarget(40); // false (below minimum)
|
|
25
|
+
* validateTouchTarget(88, 2); // true (@2x scale)
|
|
26
|
+
* validateTouchTarget(80, 2); // false (@2x scale, needs 88px)
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function validateTouchTarget(size, scale) {
|
|
30
|
+
const minSize = getMinTouchTargetForScale(scale ?? 1);
|
|
31
|
+
return size >= minSize;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Apply minimum touch target size to an element
|
|
35
|
+
*
|
|
36
|
+
* @param element - Element object to modify (with width/height properties)
|
|
37
|
+
* @param minSize - Minimum size in points. Defaults to TOUCH_TARGET.MIN_SIZE_PT (44).
|
|
38
|
+
* @returns Modified element with minimum size applied
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const button = { width: 32, height: 32 };
|
|
43
|
+
* const accessible = applyMinTouchTarget(button);
|
|
44
|
+
* console.log(accessible.width); // 44
|
|
45
|
+
* console.log(accessible.height); // 44
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export function applyMinTouchTarget(element, minSize) {
|
|
49
|
+
const min = minSize ?? TOUCH_TARGET.MIN_SIZE_PT;
|
|
50
|
+
return {
|
|
51
|
+
width: Math.max(element.width, min),
|
|
52
|
+
height: Math.max(element.height, min),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Calculate hit slop to extend touch area to minimum size
|
|
57
|
+
*
|
|
58
|
+
* @param currentSize - Current visual size of element (width or height)
|
|
59
|
+
* @param minSize - Minimum target size. Defaults to TOUCH_TARGET.MIN_SIZE_PT (44).
|
|
60
|
+
* @returns HitSlopConfig with top, bottom, left, right values
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* const hitSlop = getHitSlop(24); // Element is 24pt, needs to be 44pt
|
|
65
|
+
* console.log(hitSlop);
|
|
66
|
+
* // { top: 10, bottom: 10, left: 10, right: 10 }
|
|
67
|
+
* // Total: 24 + 10 + 10 = 44pt
|
|
68
|
+
*
|
|
69
|
+
* const noSlop = getHitSlop(48); // Already meets minimum
|
|
70
|
+
* console.log(noSlop);
|
|
71
|
+
* // { top: 0, bottom: 0, left: 0, right: 0 }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export function getHitSlop(currentSize, minSize) {
|
|
75
|
+
const min = minSize ?? TOUCH_TARGET.MIN_SIZE_PT;
|
|
76
|
+
const deficit = min - currentSize;
|
|
77
|
+
if (deficit <= 0) {
|
|
78
|
+
return { top: 0, bottom: 0, left: 0, right: 0 };
|
|
79
|
+
}
|
|
80
|
+
const slop = Math.ceil(deficit / 2);
|
|
81
|
+
return {
|
|
82
|
+
top: slop,
|
|
83
|
+
bottom: slop,
|
|
84
|
+
left: slop,
|
|
85
|
+
right: slop,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// ============================================================================
|
|
89
|
+
// Helper Functions (Recommended)
|
|
90
|
+
// ============================================================================
|
|
91
|
+
/**
|
|
92
|
+
* Get minimum touch target size for screen scale
|
|
93
|
+
*
|
|
94
|
+
* @param scale - Screen scale factor (1, 2, 3, 4)
|
|
95
|
+
* @returns Minimum touch target size in pixels
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* getMinTouchTargetForScale(1); // 44px
|
|
100
|
+
* getMinTouchTargetForScale(2); // 88px
|
|
101
|
+
* getMinTouchTargetForScale(3); // 132px
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export function getMinTouchTargetForScale(scale) {
|
|
105
|
+
switch (scale) {
|
|
106
|
+
case 2:
|
|
107
|
+
return TOUCH_TARGET.MIN_SIZE_2X;
|
|
108
|
+
case 3:
|
|
109
|
+
return TOUCH_TARGET.MIN_SIZE_3X;
|
|
110
|
+
case 4:
|
|
111
|
+
return TOUCH_TARGET.MIN_SIZE_4X;
|
|
112
|
+
default:
|
|
113
|
+
return TOUCH_TARGET.MIN_SIZE_PT;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Check if touch target meets accessibility guidelines
|
|
118
|
+
*
|
|
119
|
+
* @param width - Element width in points
|
|
120
|
+
* @param height - Element height in points
|
|
121
|
+
* @param guideline - Accessibility guideline ('apple-hig' | 'material' | 'wcag')
|
|
122
|
+
* @returns true if meets guideline, false otherwise
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* isAccessibleTouchTarget(44, 44, 'apple-hig'); // true
|
|
127
|
+
* isAccessibleTouchTarget(48, 48, 'material'); // true
|
|
128
|
+
* isAccessibleTouchTarget(40, 40, 'apple-hig'); // false
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export function isAccessibleTouchTarget(width, height, guideline = 'apple-hig') {
|
|
132
|
+
const minSize = guideline === 'material' ? 48 : 44;
|
|
133
|
+
return width >= minSize && height >= minSize;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Warn in development if touch target is below minimum
|
|
137
|
+
* Only logs in development mode
|
|
138
|
+
*
|
|
139
|
+
* @param size - Touch target size
|
|
140
|
+
* @param elementId - Optional element identifier for debugging
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* warnIfBelowMinimum(32, 'submit-button');
|
|
145
|
+
* // Console warning: "Touch target 'submit-button' is 32pt,
|
|
146
|
+
* // below minimum 44pt. Consider increasing size or adding hitSlop."
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export function warnIfBelowMinimum(size, elementId) {
|
|
150
|
+
if (process.env.NODE_ENV === 'development' && size < TOUCH_TARGET.MIN_SIZE_PT) {
|
|
151
|
+
console.warn(`Touch target${elementId ? ` '${elementId}'` : ''} is ${size}pt, ` +
|
|
152
|
+
`below minimum ${TOUCH_TARGET.MIN_SIZE_PT}pt. ` +
|
|
153
|
+
`Consider increasing size or adding hitSlop.`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=touch-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touch-target.js","sourceRoot":"","sources":["../../src/layout-tokens/touch-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe1C,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,KAAc;IAC9D,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,IAAI,IAAI,OAAO,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA2B,EAC3B,OAAgB;IAEhB,MAAM,GAAG,GAAG,OAAO,IAAI,YAAY,CAAC,WAAW,CAAC;IAEhD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB,EAAE,OAAgB;IAC9D,MAAM,GAAG,GAAG,OAAO,IAAI,YAAY,CAAC,WAAW,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,GAAG,WAAW,CAAC;IAElC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAEpC,OAAO;QACL,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,WAAW,CAAC;QAClC,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,WAAW,CAAC;QAClC,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,WAAW,CAAC;QAClC;YACE,OAAO,YAAY,CAAC,WAAW,CAAC;IACpC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,MAAc,EACd,YAAoC,WAAW;IAE/C,MAAM,OAAO,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,OAAO,KAAK,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,SAAkB;IACjE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC9E,OAAO,CAAC,IAAI,CACV,eAAe,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,MAAM;YAChE,iBAAiB,YAAY,CAAC,WAAW,MAAM;YAC/C,6CAA6C,CAChD,CAAC;IACJ,CAAC;AACH,CAAC"}
|