@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.
Files changed (31) hide show
  1. package/LICENSE +363 -0
  2. package/README.md +507 -0
  3. package/dist/index.d.ts +11 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +2538 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/modifiers/index.d.ts +5 -0
  8. package/dist/modifiers/index.d.ts.map +1 -0
  9. package/dist/modifiers/responsive/advanced-utilities.d.ts +121 -0
  10. package/dist/modifiers/responsive/advanced-utilities.d.ts.map +1 -0
  11. package/dist/modifiers/responsive/breakpoints.d.ts +81 -0
  12. package/dist/modifiers/responsive/breakpoints.d.ts.map +1 -0
  13. package/dist/modifiers/responsive/css-generator.d.ts +100 -0
  14. package/dist/modifiers/responsive/css-generator.d.ts.map +1 -0
  15. package/dist/modifiers/responsive/dev-tools.d.ts +107 -0
  16. package/dist/modifiers/responsive/dev-tools.d.ts.map +1 -0
  17. package/dist/modifiers/responsive/index.d.ts +29 -0
  18. package/dist/modifiers/responsive/index.d.ts.map +1 -0
  19. package/dist/modifiers/responsive/layout-patterns.d.ts +230 -0
  20. package/dist/modifiers/responsive/layout-patterns.d.ts.map +1 -0
  21. package/dist/modifiers/responsive/performance.d.ts +130 -0
  22. package/dist/modifiers/responsive/performance.d.ts.map +1 -0
  23. package/dist/modifiers/responsive/responsive-builder.d.ts +133 -0
  24. package/dist/modifiers/responsive/responsive-builder.d.ts.map +1 -0
  25. package/dist/modifiers/responsive/responsive-modifier.d.ts +123 -0
  26. package/dist/modifiers/responsive/responsive-modifier.d.ts.map +1 -0
  27. package/dist/modifiers/responsive/types.d.ts +183 -0
  28. package/dist/modifiers/responsive/types.d.ts.map +1 -0
  29. package/dist/modifiers/responsive/utilities.d.ts +149 -0
  30. package/dist/modifiers/responsive/utilities.d.ts.map +1 -0
  31. 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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"}