@tachui/responsive 0.8.0-alpha
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/LICENSE +363 -0
- package/README.md +507 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2538 -0
- package/dist/index.js.map +1 -0
- package/dist/modifiers/index.d.ts +5 -0
- package/dist/modifiers/index.d.ts.map +1 -0
- package/dist/modifiers/responsive/advanced-utilities.d.ts +121 -0
- package/dist/modifiers/responsive/advanced-utilities.d.ts.map +1 -0
- package/dist/modifiers/responsive/breakpoints.d.ts +81 -0
- package/dist/modifiers/responsive/breakpoints.d.ts.map +1 -0
- package/dist/modifiers/responsive/css-generator.d.ts +100 -0
- package/dist/modifiers/responsive/css-generator.d.ts.map +1 -0
- package/dist/modifiers/responsive/dev-tools.d.ts +107 -0
- package/dist/modifiers/responsive/dev-tools.d.ts.map +1 -0
- package/dist/modifiers/responsive/index.d.ts +29 -0
- package/dist/modifiers/responsive/index.d.ts.map +1 -0
- package/dist/modifiers/responsive/layout-patterns.d.ts +230 -0
- package/dist/modifiers/responsive/layout-patterns.d.ts.map +1 -0
- package/dist/modifiers/responsive/performance.d.ts +130 -0
- package/dist/modifiers/responsive/performance.d.ts.map +1 -0
- package/dist/modifiers/responsive/responsive-builder.d.ts +133 -0
- package/dist/modifiers/responsive/responsive-builder.d.ts.map +1 -0
- package/dist/modifiers/responsive/responsive-modifier.d.ts +123 -0
- package/dist/modifiers/responsive/responsive-modifier.d.ts.map +1 -0
- package/dist/modifiers/responsive/types.d.ts +183 -0
- package/dist/modifiers/responsive/types.d.ts.map +1 -0
- package/dist/modifiers/responsive/utilities.d.ts +149 -0
- package/dist/modifiers/responsive/utilities.d.ts.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Responsive Layout Utility Patterns
|
|
3
|
+
*
|
|
4
|
+
* Provides common responsive layout patterns and utilities that make it easy
|
|
5
|
+
* to create responsive designs without writing custom CSS for every use case.
|
|
6
|
+
*/
|
|
7
|
+
import { ResponsiveValue, BreakpointKey, ResponsiveSpacingConfig } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for responsive grid layout
|
|
10
|
+
*/
|
|
11
|
+
export interface ResponsiveGridConfig {
|
|
12
|
+
columns?: ResponsiveValue<number>;
|
|
13
|
+
rows?: ResponsiveValue<number>;
|
|
14
|
+
gap?: ResponsiveValue<string | number>;
|
|
15
|
+
columnGap?: ResponsiveValue<string | number>;
|
|
16
|
+
rowGap?: ResponsiveValue<string | number>;
|
|
17
|
+
autoFlow?: ResponsiveValue<'row' | 'column' | 'row dense' | 'column dense'>;
|
|
18
|
+
autoRows?: ResponsiveValue<string>;
|
|
19
|
+
autoColumns?: ResponsiveValue<string>;
|
|
20
|
+
templateAreas?: ResponsiveValue<string>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configuration for responsive flexbox layout
|
|
24
|
+
*/
|
|
25
|
+
export interface ResponsiveFlexConfig {
|
|
26
|
+
direction?: ResponsiveValue<'row' | 'row-reverse' | 'column' | 'column-reverse'>;
|
|
27
|
+
wrap?: ResponsiveValue<'nowrap' | 'wrap' | 'wrap-reverse'>;
|
|
28
|
+
justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
29
|
+
align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'>;
|
|
30
|
+
alignContent?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'space-between' | 'space-around'>;
|
|
31
|
+
gap?: ResponsiveValue<string | number>;
|
|
32
|
+
columnGap?: ResponsiveValue<string | number>;
|
|
33
|
+
rowGap?: ResponsiveValue<string | number>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Configuration for responsive container layout
|
|
37
|
+
*/
|
|
38
|
+
export interface ResponsiveContainerConfig {
|
|
39
|
+
maxWidth?: ResponsiveValue<string | number>;
|
|
40
|
+
width?: ResponsiveValue<string | number>;
|
|
41
|
+
padding?: ResponsiveValue<string | number>;
|
|
42
|
+
margin?: ResponsiveValue<string | number>;
|
|
43
|
+
centerContent?: ResponsiveValue<boolean>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Responsive Grid Layout Utilities
|
|
47
|
+
*/
|
|
48
|
+
export declare class ResponsiveGridPatterns {
|
|
49
|
+
/**
|
|
50
|
+
* Create a responsive grid with automatic column sizing
|
|
51
|
+
*/
|
|
52
|
+
static autoFit(config: {
|
|
53
|
+
minColumnWidth: ResponsiveValue<string | number>;
|
|
54
|
+
gap?: ResponsiveValue<string | number>;
|
|
55
|
+
maxColumns?: ResponsiveValue<number>;
|
|
56
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
57
|
+
/**
|
|
58
|
+
* Create a responsive grid with explicit column counts
|
|
59
|
+
*/
|
|
60
|
+
static columns(columns: ResponsiveValue<number>, config?: {
|
|
61
|
+
gap?: ResponsiveValue<string | number>;
|
|
62
|
+
rowGap?: ResponsiveValue<string | number>;
|
|
63
|
+
autoRows?: ResponsiveValue<string>;
|
|
64
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
65
|
+
/**
|
|
66
|
+
* Create responsive masonry-style grid
|
|
67
|
+
*/
|
|
68
|
+
static masonry(config: {
|
|
69
|
+
columns: ResponsiveValue<number>;
|
|
70
|
+
gap?: ResponsiveValue<string | number>;
|
|
71
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Responsive Flexbox Layout Utilities
|
|
75
|
+
*/
|
|
76
|
+
export declare class ResponsiveFlexPatterns {
|
|
77
|
+
/**
|
|
78
|
+
* Create a responsive flex container that stacks on mobile, flows horizontally on desktop
|
|
79
|
+
*/
|
|
80
|
+
static stackToRow(config?: {
|
|
81
|
+
stackBreakpoint?: BreakpointKey;
|
|
82
|
+
gap?: ResponsiveValue<string | number>;
|
|
83
|
+
align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'>;
|
|
84
|
+
justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
85
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
86
|
+
/**
|
|
87
|
+
* Create a responsive flex container with wrapping behavior
|
|
88
|
+
*/
|
|
89
|
+
static wrap(config?: ResponsiveFlexConfig): import("./responsive-modifier").ResponsiveModifier;
|
|
90
|
+
/**
|
|
91
|
+
* Create centered flex layout
|
|
92
|
+
*/
|
|
93
|
+
static center(direction?: ResponsiveValue<'row' | 'column'>): import("./responsive-modifier").ResponsiveModifier;
|
|
94
|
+
/**
|
|
95
|
+
* Create space-between flex layout
|
|
96
|
+
*/
|
|
97
|
+
static spaceBetween(direction?: ResponsiveValue<'row' | 'column'>): import("./responsive-modifier").ResponsiveModifier;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Responsive Container Utilities
|
|
101
|
+
*/
|
|
102
|
+
export declare class ResponsiveContainerPatterns {
|
|
103
|
+
/**
|
|
104
|
+
* Create a responsive container with max-width constraints
|
|
105
|
+
*/
|
|
106
|
+
static container(config?: ResponsiveContainerConfig): import("./responsive-modifier").ResponsiveModifier;
|
|
107
|
+
/**
|
|
108
|
+
* Create a full-width container that breaks out of constraints
|
|
109
|
+
*/
|
|
110
|
+
static fullWidth(): import("./responsive-modifier").ResponsiveModifier;
|
|
111
|
+
/**
|
|
112
|
+
* Create a section container with responsive padding
|
|
113
|
+
*/
|
|
114
|
+
static section(config?: {
|
|
115
|
+
paddingY?: ResponsiveValue<string | number>;
|
|
116
|
+
paddingX?: ResponsiveValue<string | number>;
|
|
117
|
+
maxWidth?: ResponsiveValue<string | number>;
|
|
118
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Responsive Visibility Utilities
|
|
122
|
+
*/
|
|
123
|
+
export declare class ResponsiveVisibilityPatterns {
|
|
124
|
+
/**
|
|
125
|
+
* Show element only on specific breakpoints
|
|
126
|
+
*/
|
|
127
|
+
static showOn(breakpoints: BreakpointKey[]): import("./responsive-modifier").ResponsiveModifier;
|
|
128
|
+
/**
|
|
129
|
+
* Hide element only on specific breakpoints
|
|
130
|
+
*/
|
|
131
|
+
static hideOn(breakpoints: BreakpointKey[]): import("./responsive-modifier").ResponsiveModifier;
|
|
132
|
+
/**
|
|
133
|
+
* Show on mobile, hide on desktop
|
|
134
|
+
*/
|
|
135
|
+
static mobileOnly(): import("./responsive-modifier").ResponsiveModifier;
|
|
136
|
+
/**
|
|
137
|
+
* Hide on mobile, show on desktop
|
|
138
|
+
*/
|
|
139
|
+
static desktopOnly(): import("./responsive-modifier").ResponsiveModifier;
|
|
140
|
+
/**
|
|
141
|
+
* Show only on tablet breakpoint
|
|
142
|
+
*/
|
|
143
|
+
static tabletOnly(): import("./responsive-modifier").ResponsiveModifier;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Responsive Spacing Utilities
|
|
147
|
+
*/
|
|
148
|
+
export declare class ResponsiveSpacingPatterns {
|
|
149
|
+
/**
|
|
150
|
+
* Create responsive padding
|
|
151
|
+
*/
|
|
152
|
+
static padding(config: ResponsiveSpacingConfig): import("./responsive-modifier").ResponsiveModifier;
|
|
153
|
+
/**
|
|
154
|
+
* Create responsive margin
|
|
155
|
+
*/
|
|
156
|
+
static margin(config: ResponsiveSpacingConfig): import("./responsive-modifier").ResponsiveModifier;
|
|
157
|
+
/**
|
|
158
|
+
* Create responsive gap (for flexbox and grid)
|
|
159
|
+
*/
|
|
160
|
+
static gap(config: {
|
|
161
|
+
all?: ResponsiveValue<string | number>;
|
|
162
|
+
column?: ResponsiveValue<string | number>;
|
|
163
|
+
row?: ResponsiveValue<string | number>;
|
|
164
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Responsive Typography Utilities
|
|
168
|
+
*/
|
|
169
|
+
export declare class ResponsiveTypographyPatterns {
|
|
170
|
+
/**
|
|
171
|
+
* Create responsive font scale
|
|
172
|
+
*/
|
|
173
|
+
static scale(config: {
|
|
174
|
+
base: string | number;
|
|
175
|
+
scale?: ResponsiveValue<number>;
|
|
176
|
+
lineHeight?: ResponsiveValue<number | string>;
|
|
177
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
178
|
+
/**
|
|
179
|
+
* Create fluid typography that scales smoothly
|
|
180
|
+
*/
|
|
181
|
+
static fluid(config: {
|
|
182
|
+
minSize: string | number;
|
|
183
|
+
maxSize: string | number;
|
|
184
|
+
minBreakpoint?: string;
|
|
185
|
+
maxBreakpoint?: string;
|
|
186
|
+
}): import("./responsive-modifier").ResponsiveModifier;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Common Layout Patterns
|
|
190
|
+
*/
|
|
191
|
+
export declare const LayoutPatterns: {
|
|
192
|
+
/**
|
|
193
|
+
* Sidebar layout that collapses on mobile
|
|
194
|
+
*/
|
|
195
|
+
sidebar: (config?: {
|
|
196
|
+
sidebarWidth?: ResponsiveValue<string | number>;
|
|
197
|
+
collapseBreakpoint?: BreakpointKey;
|
|
198
|
+
gap?: ResponsiveValue<string | number>;
|
|
199
|
+
}) => import("./responsive-modifier").ResponsiveModifier;
|
|
200
|
+
/**
|
|
201
|
+
* Holy grail layout (header, footer, sidebar, main content)
|
|
202
|
+
*/
|
|
203
|
+
holyGrail: (config?: {
|
|
204
|
+
headerHeight?: ResponsiveValue<string | number>;
|
|
205
|
+
footerHeight?: ResponsiveValue<string | number>;
|
|
206
|
+
sidebarWidth?: ResponsiveValue<string | number>;
|
|
207
|
+
collapseBreakpoint?: BreakpointKey;
|
|
208
|
+
}) => import("./responsive-modifier").ResponsiveModifier;
|
|
209
|
+
/**
|
|
210
|
+
* Card grid layout
|
|
211
|
+
*/
|
|
212
|
+
cardGrid: (config?: {
|
|
213
|
+
minCardWidth?: ResponsiveValue<string | number>;
|
|
214
|
+
gap?: ResponsiveValue<string | number>;
|
|
215
|
+
maxColumns?: ResponsiveValue<number>;
|
|
216
|
+
}) => import("./responsive-modifier").ResponsiveModifier;
|
|
217
|
+
/**
|
|
218
|
+
* Hero section layout
|
|
219
|
+
*/
|
|
220
|
+
hero: (config?: {
|
|
221
|
+
minHeight?: ResponsiveValue<string | number>;
|
|
222
|
+
textAlign?: ResponsiveValue<"left" | "center" | "right">;
|
|
223
|
+
padding?: ResponsiveValue<string | number>;
|
|
224
|
+
}) => import("./responsive-modifier").ResponsiveModifier;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Export all layout patterns for easy access
|
|
228
|
+
*/
|
|
229
|
+
export { ResponsiveGridPatterns as ResponsiveGrid, ResponsiveFlexPatterns as Flex, ResponsiveContainerPatterns as Container, ResponsiveVisibilityPatterns as Visibility, ResponsiveSpacingPatterns as Spacing, ResponsiveTypographyPatterns as ResponsiveTypography, };
|
|
230
|
+
//# sourceMappingURL=layout-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-patterns.d.ts","sourceRoot":"","sources":["../../../src/modifiers/responsive/layout-patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Responsive System Performance Optimizations
|
|
3
|
+
*
|
|
4
|
+
* Optimizes CSS generation, caching, and runtime performance for the responsive system.
|
|
5
|
+
*/
|
|
6
|
+
import { ResponsiveStyleConfig } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* CSS rule cache for deduplication
|
|
9
|
+
*/
|
|
10
|
+
declare class CSSRuleCache {
|
|
11
|
+
private cache;
|
|
12
|
+
private hitCount;
|
|
13
|
+
private missCount;
|
|
14
|
+
get(key: string): string | undefined;
|
|
15
|
+
set(key: string, value: string): void;
|
|
16
|
+
clear(): void;
|
|
17
|
+
getStats(): {
|
|
18
|
+
size: number;
|
|
19
|
+
hitRate: number;
|
|
20
|
+
hits: number;
|
|
21
|
+
misses: number;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Global CSS rule cache instance
|
|
26
|
+
*/
|
|
27
|
+
export declare const cssRuleCache: CSSRuleCache;
|
|
28
|
+
/**
|
|
29
|
+
* Performance-optimized CSS generation
|
|
30
|
+
*/
|
|
31
|
+
export declare class OptimizedCSSGenerator {
|
|
32
|
+
private static readonly BATCH_SIZE;
|
|
33
|
+
private static ruleQueue;
|
|
34
|
+
private static flushTimer;
|
|
35
|
+
/**
|
|
36
|
+
* Generate CSS with caching and batching
|
|
37
|
+
*/
|
|
38
|
+
static generateOptimizedCSS(selector: string, config: ResponsiveStyleConfig, options?: {
|
|
39
|
+
minify?: boolean;
|
|
40
|
+
batch?: boolean;
|
|
41
|
+
deduplicate?: boolean;
|
|
42
|
+
}): string;
|
|
43
|
+
/**
|
|
44
|
+
* Create cache key for CSS rule
|
|
45
|
+
*/
|
|
46
|
+
private static createCacheKey;
|
|
47
|
+
/**
|
|
48
|
+
* Generate CSS without optimizations (for comparison)
|
|
49
|
+
*/
|
|
50
|
+
private static generateCSS;
|
|
51
|
+
/**
|
|
52
|
+
* Add CSS to batch queue
|
|
53
|
+
*/
|
|
54
|
+
private static addToBatch;
|
|
55
|
+
/**
|
|
56
|
+
* Flush batched CSS rules
|
|
57
|
+
*/
|
|
58
|
+
private static flushBatch;
|
|
59
|
+
/**
|
|
60
|
+
* Inject CSS into document
|
|
61
|
+
*/
|
|
62
|
+
private static injectCSS;
|
|
63
|
+
/**
|
|
64
|
+
* Extract base (non-responsive) styles
|
|
65
|
+
*/
|
|
66
|
+
private static extractBaseStyles;
|
|
67
|
+
/**
|
|
68
|
+
* Generate CSS properties
|
|
69
|
+
*/
|
|
70
|
+
private static generateProperties;
|
|
71
|
+
/**
|
|
72
|
+
* Convert property name to CSS
|
|
73
|
+
*/
|
|
74
|
+
private static propertyToCSS;
|
|
75
|
+
/**
|
|
76
|
+
* Convert value to CSS
|
|
77
|
+
*/
|
|
78
|
+
private static valueToCSS;
|
|
79
|
+
/**
|
|
80
|
+
* Get media query for breakpoint
|
|
81
|
+
*/
|
|
82
|
+
private static getMediaQuery;
|
|
83
|
+
/**
|
|
84
|
+
* Force flush any pending batched CSS
|
|
85
|
+
*/
|
|
86
|
+
static flush(): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get performance statistics
|
|
89
|
+
*/
|
|
90
|
+
static getStats(): {
|
|
91
|
+
cache: {
|
|
92
|
+
size: number;
|
|
93
|
+
hitRate: number;
|
|
94
|
+
hits: number;
|
|
95
|
+
misses: number;
|
|
96
|
+
};
|
|
97
|
+
batch: {
|
|
98
|
+
queueSize: number;
|
|
99
|
+
batchSize: number;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Clear all caches and reset performance counters
|
|
104
|
+
*/
|
|
105
|
+
static reset(): void;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Performance monitoring for responsive system
|
|
109
|
+
*/
|
|
110
|
+
export declare class ResponsivePerformanceMonitor {
|
|
111
|
+
private static measurements;
|
|
112
|
+
/**
|
|
113
|
+
* Start performance measurement
|
|
114
|
+
*/
|
|
115
|
+
static startMeasurement(name: string): () => number;
|
|
116
|
+
/**
|
|
117
|
+
* Record measurement
|
|
118
|
+
*/
|
|
119
|
+
private static recordMeasurement;
|
|
120
|
+
/**
|
|
121
|
+
* Get performance statistics
|
|
122
|
+
*/
|
|
123
|
+
static getStats(): Record<string, any>;
|
|
124
|
+
/**
|
|
125
|
+
* Clear all performance data
|
|
126
|
+
*/
|
|
127
|
+
static reset(): void;
|
|
128
|
+
}
|
|
129
|
+
export {};
|
|
130
|
+
//# sourceMappingURL=performance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../src/modifiers/responsive/performance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAiB,MAAM,SAAS,CAAA;AAE9D;;GAEG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,KAAK,IAAI,IAAI;IAMb,QAAQ;;;;;;CAQT;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAA;AAE9C;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAK;IACvC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAe;IACvC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsB;IAE/C;;OAEG;IACH,MAAM,CAAC,oBAAoB,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,WAAW,CAAC,EAAE,OAAO,CAAA;KACjB,GACL,MAAM;IAmCT;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IA8C1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAezB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAkBxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAOzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAa5B;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,MAAM,CAAC,QAAQ;;;;;;;;;;;;IAUf;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAQrB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAC,YAAY,CAA8B;IAEzD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM;IAUnD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAchC;;OAEG;IACH,MAAM,CAAC,QAAQ;IAsBf;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Responsive Modifier Builder
|
|
3
|
+
*
|
|
4
|
+
* Extends the existing ModifierBuilder with responsive capabilities.
|
|
5
|
+
* Provides a fluent API for creating responsive modifiers that integrate
|
|
6
|
+
* seamlessly with the existing modifier system.
|
|
7
|
+
*/
|
|
8
|
+
import type { ModifierBuilder, Modifier } from '@tachui/core';
|
|
9
|
+
import type { ComponentInstance } from '@tachui/core';
|
|
10
|
+
import { ResponsiveValue, ResponsiveStyleConfig, ResponsiveSpacingConfig, ResponsiveDimensionConfig, ResponsiveTypographyConfig } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Responsive modifier builder interface
|
|
13
|
+
*/
|
|
14
|
+
export interface ResponsiveModifierBuilder<T extends ComponentInstance = ComponentInstance> {
|
|
15
|
+
responsive(config: ResponsiveStyleConfig): ResponsiveModifierBuilder<T>;
|
|
16
|
+
mediaQuery(query: string, styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
17
|
+
orientation(orientation: 'portrait' | 'landscape', styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
18
|
+
colorScheme(scheme: 'light' | 'dark', styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
19
|
+
reducedMotion(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
20
|
+
highContrast(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
21
|
+
touchDevice(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
22
|
+
mouseDevice(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
23
|
+
retina(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
24
|
+
print(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
25
|
+
responsiveLayout(config: {
|
|
26
|
+
direction?: ResponsiveValue<'row' | 'column' | 'row-reverse' | 'column-reverse'>;
|
|
27
|
+
wrap?: ResponsiveValue<'nowrap' | 'wrap' | 'wrap-reverse'>;
|
|
28
|
+
justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
29
|
+
align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'>;
|
|
30
|
+
gap?: ResponsiveValue<number | string>;
|
|
31
|
+
}): ResponsiveModifierBuilder<T>;
|
|
32
|
+
responsiveWidth(value: ResponsiveValue<number | string>): ResponsiveModifierBuilder<T>;
|
|
33
|
+
responsiveHeight(value: ResponsiveValue<number | string>): ResponsiveModifierBuilder<T>;
|
|
34
|
+
responsiveSize(config: ResponsiveDimensionConfig): ResponsiveModifierBuilder<T>;
|
|
35
|
+
responsivePadding(value: ResponsiveValue<number | string> | ResponsiveSpacingConfig): ResponsiveModifierBuilder<T>;
|
|
36
|
+
responsiveMargin(value: ResponsiveValue<number | string> | ResponsiveSpacingConfig): ResponsiveModifierBuilder<T>;
|
|
37
|
+
responsiveFont(config: ResponsiveTypographyConfig): ResponsiveModifierBuilder<T>;
|
|
38
|
+
responsiveFontSize(value: ResponsiveValue<number | string>): ResponsiveModifierBuilder<T>;
|
|
39
|
+
responsiveTextAlign(value: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>): ResponsiveModifierBuilder<T>;
|
|
40
|
+
base: ResponsiveBreakpointBuilder<T>;
|
|
41
|
+
sm: ResponsiveBreakpointBuilder<T>;
|
|
42
|
+
md: ResponsiveBreakpointBuilder<T>;
|
|
43
|
+
lg: ResponsiveBreakpointBuilder<T>;
|
|
44
|
+
xl: ResponsiveBreakpointBuilder<T>;
|
|
45
|
+
'2xl': ResponsiveBreakpointBuilder<T>;
|
|
46
|
+
addModifier(modifier: Modifier): void;
|
|
47
|
+
build(): T;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Breakpoint-specific builder for shorthand syntax
|
|
51
|
+
* Returns ModifierBuilder to allow chaining with regular modifiers after responsive ones
|
|
52
|
+
*/
|
|
53
|
+
export interface ResponsiveBreakpointBuilder<T extends ComponentInstance = ComponentInstance> {
|
|
54
|
+
width(value: number | string): ModifierBuilder<T>;
|
|
55
|
+
height(value: number | string): ModifierBuilder<T>;
|
|
56
|
+
minWidth(value: number | string): ModifierBuilder<T>;
|
|
57
|
+
maxWidth(value: number | string): ModifierBuilder<T>;
|
|
58
|
+
minHeight(value: number | string): ModifierBuilder<T>;
|
|
59
|
+
maxHeight(value: number | string): ModifierBuilder<T>;
|
|
60
|
+
padding(value: number | string): ModifierBuilder<T>;
|
|
61
|
+
paddingHorizontal(value: number | string): ModifierBuilder<T>;
|
|
62
|
+
paddingVertical(value: number | string): ModifierBuilder<T>;
|
|
63
|
+
paddingTop(value: number | string): ModifierBuilder<T>;
|
|
64
|
+
paddingBottom(value: number | string): ModifierBuilder<T>;
|
|
65
|
+
paddingLeft(value: number | string): ModifierBuilder<T>;
|
|
66
|
+
paddingRight(value: number | string): ModifierBuilder<T>;
|
|
67
|
+
margin(value: number | string): ModifierBuilder<T>;
|
|
68
|
+
marginHorizontal(value: number | string): ModifierBuilder<T>;
|
|
69
|
+
marginVertical(value: number | string): ModifierBuilder<T>;
|
|
70
|
+
marginTop(value: number | string): ModifierBuilder<T>;
|
|
71
|
+
marginBottom(value: number | string): ModifierBuilder<T>;
|
|
72
|
+
marginLeft(value: number | string): ModifierBuilder<T>;
|
|
73
|
+
marginRight(value: number | string): ModifierBuilder<T>;
|
|
74
|
+
fontSize(value: number | string): ModifierBuilder<T>;
|
|
75
|
+
textAlign(value: 'left' | 'center' | 'right' | 'justify'): ModifierBuilder<T>;
|
|
76
|
+
display(value: 'none' | 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'grid'): ModifierBuilder<T>;
|
|
77
|
+
flexDirection(value: 'row' | 'column' | 'row-reverse' | 'column-reverse'): ModifierBuilder<T>;
|
|
78
|
+
justifyContent(value: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'): ModifierBuilder<T>;
|
|
79
|
+
alignItems(value: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'): ModifierBuilder<T>;
|
|
80
|
+
backgroundColor(value: string): ModifierBuilder<T>;
|
|
81
|
+
color(value: string): ModifierBuilder<T>;
|
|
82
|
+
opacity(value: number): ModifierBuilder<T>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Implementation of responsive modifier builder using Proxy delegation
|
|
86
|
+
*/
|
|
87
|
+
export declare class ResponsiveModifierBuilderImpl<T extends ComponentInstance = ComponentInstance> implements ResponsiveModifierBuilder<T> {
|
|
88
|
+
private baseBuilder;
|
|
89
|
+
constructor(baseBuilder: ModifierBuilder<T>);
|
|
90
|
+
addModifier(modifier: Modifier): void;
|
|
91
|
+
build(): T;
|
|
92
|
+
responsive(config: ResponsiveStyleConfig): ResponsiveModifierBuilder<T>;
|
|
93
|
+
mediaQuery(query: string, styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
94
|
+
orientation(orientation: 'portrait' | 'landscape', styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
95
|
+
colorScheme(scheme: 'light' | 'dark', styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
96
|
+
reducedMotion(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
97
|
+
highContrast(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
98
|
+
touchDevice(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
99
|
+
mouseDevice(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
100
|
+
retina(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
101
|
+
print(styles: Record<string, any>): ResponsiveModifierBuilder<T>;
|
|
102
|
+
responsiveLayout(config: {
|
|
103
|
+
direction?: ResponsiveValue<'row' | 'column' | 'row-reverse' | 'column-reverse'>;
|
|
104
|
+
wrap?: ResponsiveValue<'nowrap' | 'wrap' | 'wrap-reverse'>;
|
|
105
|
+
justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
106
|
+
align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'>;
|
|
107
|
+
gap?: ResponsiveValue<number | string>;
|
|
108
|
+
}): ResponsiveModifierBuilder<T>;
|
|
109
|
+
responsiveWidth(value: ResponsiveValue<number | string>): ResponsiveModifierBuilder<T>;
|
|
110
|
+
responsiveHeight(value: ResponsiveValue<number | string>): ResponsiveModifierBuilder<T>;
|
|
111
|
+
responsiveSize(config: ResponsiveDimensionConfig): ResponsiveModifierBuilder<T>;
|
|
112
|
+
responsivePadding(value: ResponsiveValue<number | string> | ResponsiveSpacingConfig): ResponsiveModifierBuilder<T>;
|
|
113
|
+
responsiveMargin(value: ResponsiveValue<number | string> | ResponsiveSpacingConfig): ResponsiveModifierBuilder<T>;
|
|
114
|
+
responsiveFont(config: ResponsiveTypographyConfig): ResponsiveModifierBuilder<T>;
|
|
115
|
+
responsiveFontSize(value: ResponsiveValue<number | string>): ResponsiveModifierBuilder<T>;
|
|
116
|
+
responsiveTextAlign(value: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>): ResponsiveModifierBuilder<T>;
|
|
117
|
+
get base(): ResponsiveBreakpointBuilder<T>;
|
|
118
|
+
get sm(): ResponsiveBreakpointBuilder<T>;
|
|
119
|
+
get md(): ResponsiveBreakpointBuilder<T>;
|
|
120
|
+
get lg(): ResponsiveBreakpointBuilder<T>;
|
|
121
|
+
get xl(): ResponsiveBreakpointBuilder<T>;
|
|
122
|
+
get '2xl'(): ResponsiveBreakpointBuilder<T>;
|
|
123
|
+
[key: string]: any;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Utility function to wrap existing modifier builder with responsive capabilities
|
|
127
|
+
*/
|
|
128
|
+
export declare function withResponsive<T extends ComponentInstance = ComponentInstance>(builder: ModifierBuilder<T>): ResponsiveModifierBuilder<T>;
|
|
129
|
+
/**
|
|
130
|
+
* Create a responsive modifier builder from scratch
|
|
131
|
+
*/
|
|
132
|
+
export declare function createResponsiveBuilder<T extends ComponentInstance = ComponentInstance>(baseBuilder: ModifierBuilder<T>): ResponsiveModifierBuilder<T>;
|
|
133
|
+
//# sourceMappingURL=responsive-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-builder.d.ts","sourceRoot":"","sources":["../../../src/modifiers/responsive/responsive-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Responsive Modifier Implementation
|
|
3
|
+
*
|
|
4
|
+
* Core responsive modifier that integrates with the existing tachUI modifier system.
|
|
5
|
+
* Provides CSS-native media query generation with backward compatibility.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseModifier } from '@tachui/modifiers';
|
|
8
|
+
import type { ModifierContext } from '@tachui/modifiers';
|
|
9
|
+
import type { DOMNode } from '@tachui/core';
|
|
10
|
+
import { ResponsiveValue, ResponsiveStyleConfig, ResponsiveModifierResult } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Responsive modifier priority (between appearance and interaction)
|
|
13
|
+
*/
|
|
14
|
+
export declare const RESPONSIVE_MODIFIER_PRIORITY = 250;
|
|
15
|
+
/**
|
|
16
|
+
* Core responsive modifier class
|
|
17
|
+
*/
|
|
18
|
+
export declare class ResponsiveModifier extends BaseModifier<ResponsiveStyleConfig> {
|
|
19
|
+
readonly type = "responsive";
|
|
20
|
+
readonly priority = 250;
|
|
21
|
+
private generatedCSS;
|
|
22
|
+
private elementSelector;
|
|
23
|
+
private _config;
|
|
24
|
+
constructor(config: ResponsiveStyleConfig);
|
|
25
|
+
get config(): ResponsiveStyleConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Apply responsive styles to the element
|
|
28
|
+
*/
|
|
29
|
+
apply(node: DOMNode, _context: ModifierContext): DOMNode | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Generate and inject responsive CSS
|
|
32
|
+
*/
|
|
33
|
+
private generateAndInjectCSS;
|
|
34
|
+
/**
|
|
35
|
+
* Set up reactive updates for dynamic responsive values
|
|
36
|
+
*/
|
|
37
|
+
private setupReactiveUpdates;
|
|
38
|
+
/**
|
|
39
|
+
* Track reactive dependencies by accessing all reactive values
|
|
40
|
+
*/
|
|
41
|
+
private trackReactiveDependencies;
|
|
42
|
+
/**
|
|
43
|
+
* Update configuration and regenerate CSS
|
|
44
|
+
*/
|
|
45
|
+
private updateConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Generate unique CSS selector for this element
|
|
48
|
+
*/
|
|
49
|
+
private generateUniqueSelector;
|
|
50
|
+
/**
|
|
51
|
+
* Extract class name from CSS selector
|
|
52
|
+
*/
|
|
53
|
+
private getClassFromSelector;
|
|
54
|
+
/**
|
|
55
|
+
* Generate unique ID for CSS class names
|
|
56
|
+
*/
|
|
57
|
+
private generateUniqueId;
|
|
58
|
+
/**
|
|
59
|
+
* Check if configuration contains reactive values (signals)
|
|
60
|
+
*/
|
|
61
|
+
private hasReactiveValues;
|
|
62
|
+
/**
|
|
63
|
+
* Check if a value is a reactive signal, computed, or Asset
|
|
64
|
+
*/
|
|
65
|
+
private isReactiveValue;
|
|
66
|
+
/**
|
|
67
|
+
* Check if a value is an Asset object
|
|
68
|
+
*/
|
|
69
|
+
private isAsset;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve configuration with current signal values
|
|
72
|
+
*/
|
|
73
|
+
private resolveReactiveConfig;
|
|
74
|
+
/**
|
|
75
|
+
* Get generated CSS information (for debugging)
|
|
76
|
+
*/
|
|
77
|
+
getGeneratedCSS(): ResponsiveModifierResult | null;
|
|
78
|
+
/**
|
|
79
|
+
* Get configuration (for debugging)
|
|
80
|
+
*/
|
|
81
|
+
getConfig(): ResponsiveStyleConfig;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Factory function to create responsive modifiers
|
|
85
|
+
*/
|
|
86
|
+
export declare function createResponsiveModifier(config: ResponsiveStyleConfig): ResponsiveModifier;
|
|
87
|
+
/**
|
|
88
|
+
* Media query modifier for custom media queries
|
|
89
|
+
*/
|
|
90
|
+
export declare class MediaQueryModifier extends BaseModifier<{
|
|
91
|
+
query: string;
|
|
92
|
+
styles: Record<string, any>;
|
|
93
|
+
}> {
|
|
94
|
+
readonly type = "media-query";
|
|
95
|
+
readonly priority: number;
|
|
96
|
+
private elementSelector;
|
|
97
|
+
constructor(query: string, styles: Record<string, any>);
|
|
98
|
+
get query(): string;
|
|
99
|
+
get styles(): Record<string, any>;
|
|
100
|
+
apply(node: DOMNode, _context: ModifierContext): DOMNode | undefined;
|
|
101
|
+
private generateMediaQueryCSS;
|
|
102
|
+
private generateUniqueSelector;
|
|
103
|
+
private getClassFromSelector;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Factory function to create media query modifiers
|
|
107
|
+
*/
|
|
108
|
+
export declare function createMediaQueryModifier(query: string, styles: Record<string, any>): MediaQueryModifier;
|
|
109
|
+
/**
|
|
110
|
+
* Utility to create responsive property modifier
|
|
111
|
+
*/
|
|
112
|
+
export declare function createResponsivePropertyModifier<T>(property: string, value: ResponsiveValue<T>): ResponsiveModifier;
|
|
113
|
+
/**
|
|
114
|
+
* Create a responsive layout modifier
|
|
115
|
+
*/
|
|
116
|
+
export declare function createResponsiveLayoutModifier(config: {
|
|
117
|
+
direction?: ResponsiveValue<'row' | 'column' | 'row-reverse' | 'column-reverse'>;
|
|
118
|
+
wrap?: ResponsiveValue<'nowrap' | 'wrap' | 'wrap-reverse'>;
|
|
119
|
+
justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
120
|
+
align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'>;
|
|
121
|
+
gap?: ResponsiveValue<number | string>;
|
|
122
|
+
}): ResponsiveModifier;
|
|
123
|
+
//# sourceMappingURL=responsive-modifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-modifier.d.ts","sourceRoot":"","sources":["../../../src/modifiers/responsive/responsive-modifier.ts"],"names":[],"mappings":"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"}
|