@grupor5/raya 0.2.1 → 0.2.2

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 (180) hide show
  1. package/README.md +47 -4
  2. package/dist/atoms/avatar/index.d.mts +12 -0
  3. package/dist/atoms/avatar/index.d.ts +12 -0
  4. package/dist/atoms/avatar/index.js +99 -0
  5. package/dist/atoms/avatar/index.mjs +76 -0
  6. package/dist/atoms/badge/index.d.mts +16 -0
  7. package/dist/atoms/badge/index.d.ts +16 -0
  8. package/dist/atoms/badge/index.js +149 -0
  9. package/dist/atoms/badge/index.mjs +146 -0
  10. package/dist/atoms/button/index.d.mts +11 -0
  11. package/dist/atoms/button/index.d.ts +11 -0
  12. package/dist/atoms/button/index.js +307 -0
  13. package/dist/atoms/button/index.mjs +301 -0
  14. package/dist/atoms/checkbox/index.d.mts +6 -0
  15. package/dist/atoms/checkbox/index.d.ts +6 -0
  16. package/dist/atoms/checkbox/index.js +98 -0
  17. package/dist/atoms/checkbox/index.mjs +75 -0
  18. package/dist/atoms/input/index.d.mts +12 -0
  19. package/dist/atoms/input/index.d.ts +12 -0
  20. package/dist/atoms/input/index.js +104 -0
  21. package/dist/atoms/input/index.mjs +82 -0
  22. package/dist/atoms/label/index.d.mts +8 -0
  23. package/dist/atoms/label/index.d.ts +8 -0
  24. package/dist/atoms/label/index.js +77 -0
  25. package/dist/atoms/label/index.mjs +54 -0
  26. package/dist/atoms/radio/index.d.mts +7 -0
  27. package/dist/atoms/radio/index.d.ts +7 -0
  28. package/dist/atoms/radio/index.js +97 -0
  29. package/dist/atoms/radio/index.mjs +73 -0
  30. package/dist/atoms/switch/index.d.mts +6 -0
  31. package/dist/atoms/switch/index.d.ts +6 -0
  32. package/dist/atoms/switch/index.js +97 -0
  33. package/dist/atoms/switch/index.mjs +74 -0
  34. package/dist/atoms/tag/index.d.mts +14 -0
  35. package/dist/atoms/tag/index.d.ts +14 -0
  36. package/dist/atoms/tag/index.js +128 -0
  37. package/dist/atoms/tag/index.mjs +122 -0
  38. package/dist/atoms/textarea/index.d.mts +11 -0
  39. package/dist/atoms/textarea/index.d.ts +11 -0
  40. package/dist/atoms/textarea/index.js +125 -0
  41. package/dist/atoms/textarea/index.mjs +103 -0
  42. package/dist/atoms/typography/index.d.mts +20 -0
  43. package/dist/atoms/typography/index.d.ts +20 -0
  44. package/dist/atoms/typography/index.js +140 -0
  45. package/dist/atoms/typography/index.mjs +115 -0
  46. package/dist/hooks/index.d.mts +1 -0
  47. package/dist/hooks/index.d.ts +1 -0
  48. package/dist/hooks/index.js +17 -0
  49. package/dist/hooks/index.mjs +15 -0
  50. package/dist/hooks/use-pagination.d.mts +10 -0
  51. package/dist/hooks/use-pagination.d.ts +10 -0
  52. package/dist/hooks/use-pagination.js +54 -0
  53. package/dist/hooks/use-pagination.mjs +51 -0
  54. package/dist/hooks/use-toast.d.mts +2 -0
  55. package/dist/hooks/use-toast.d.ts +2 -0
  56. package/dist/hooks/use-toast.js +2 -0
  57. package/dist/hooks/use-toast.mjs +1 -0
  58. package/dist/hooks/useModal.d.mts +7 -0
  59. package/dist/hooks/useModal.d.ts +7 -0
  60. package/dist/hooks/useModal.js +17 -0
  61. package/dist/hooks/useModal.mjs +15 -0
  62. package/dist/index.d.mts +50 -1298
  63. package/dist/index.d.ts +50 -1298
  64. package/dist/molecules/accordion/index.d.mts +17 -0
  65. package/dist/molecules/accordion/index.d.ts +17 -0
  66. package/dist/molecules/accordion/index.js +154 -0
  67. package/dist/molecules/accordion/index.mjs +128 -0
  68. package/dist/molecules/alert/index.d.mts +14 -0
  69. package/dist/molecules/alert/index.d.ts +14 -0
  70. package/dist/molecules/alert/index.js +425 -0
  71. package/dist/molecules/alert/index.mjs +402 -0
  72. package/dist/molecules/card/index.d.mts +10 -0
  73. package/dist/molecules/card/index.d.ts +10 -0
  74. package/dist/molecules/card/index.js +128 -0
  75. package/dist/molecules/card/index.mjs +101 -0
  76. package/dist/molecules/chart/index.d.mts +80 -0
  77. package/dist/molecules/chart/index.d.ts +80 -0
  78. package/dist/molecules/chart/index.js +300 -0
  79. package/dist/molecules/chart/index.mjs +272 -0
  80. package/dist/molecules/data-table/index.d.mts +57 -0
  81. package/dist/molecules/data-table/index.d.ts +57 -0
  82. package/dist/molecules/data-table/index.js +1456 -0
  83. package/dist/molecules/data-table/index.mjs +1430 -0
  84. package/dist/molecules/date-picker/index.d.mts +12 -0
  85. package/dist/molecules/date-picker/index.d.ts +12 -0
  86. package/dist/molecules/date-picker/index.js +756 -0
  87. package/dist/molecules/date-picker/index.mjs +734 -0
  88. package/dist/molecules/dropdown/index.d.mts +21 -0
  89. package/dist/molecules/dropdown/index.d.ts +21 -0
  90. package/dist/molecules/dropdown/index.js +221 -0
  91. package/dist/molecules/dropdown/index.mjs +198 -0
  92. package/dist/molecules/form/index.d.mts +19 -0
  93. package/dist/molecules/form/index.d.ts +19 -0
  94. package/dist/molecules/form/index.js +139 -0
  95. package/dist/molecules/form/index.mjs +114 -0
  96. package/dist/molecules/pagination/index.d.mts +15 -0
  97. package/dist/molecules/pagination/index.d.ts +15 -0
  98. package/dist/molecules/pagination/index.js +605 -0
  99. package/dist/molecules/pagination/index.mjs +583 -0
  100. package/dist/molecules/progress-bar/index.d.mts +15 -0
  101. package/dist/molecules/progress-bar/index.d.ts +15 -0
  102. package/dist/molecules/progress-bar/index.js +166 -0
  103. package/dist/molecules/progress-bar/index.mjs +144 -0
  104. package/dist/molecules/select/index.d.mts +15 -0
  105. package/dist/molecules/select/index.d.ts +15 -0
  106. package/dist/molecules/select/index.js +201 -0
  107. package/dist/molecules/select/index.mjs +169 -0
  108. package/dist/molecules/stepper/index.d.mts +67 -0
  109. package/dist/molecules/stepper/index.d.ts +67 -0
  110. package/dist/molecules/stepper/index.js +287 -0
  111. package/dist/molecules/stepper/index.mjs +260 -0
  112. package/dist/molecules/tabs/index.d.mts +9 -0
  113. package/dist/molecules/tabs/index.d.ts +9 -0
  114. package/dist/molecules/tabs/index.js +112 -0
  115. package/dist/molecules/tabs/index.mjs +86 -0
  116. package/dist/tokens/badge.d.mts +39 -0
  117. package/dist/tokens/badge.d.ts +39 -0
  118. package/dist/tokens/badge.js +61 -0
  119. package/dist/tokens/badge.mjs +59 -0
  120. package/dist/tokens/buttons.d.mts +277 -0
  121. package/dist/tokens/buttons.d.ts +277 -0
  122. package/dist/tokens/buttons.js +191 -0
  123. package/dist/tokens/buttons.mjs +173 -0
  124. package/dist/tokens/colors.d.mts +65 -0
  125. package/dist/tokens/colors.d.ts +65 -0
  126. package/dist/tokens/colors.js +68 -0
  127. package/dist/tokens/colors.mjs +66 -0
  128. package/dist/tokens/effects.d.mts +124 -0
  129. package/dist/tokens/effects.d.ts +124 -0
  130. package/dist/tokens/effects.js +130 -0
  131. package/dist/tokens/effects.mjs +115 -0
  132. package/dist/tokens/grids.d.mts +331 -0
  133. package/dist/tokens/grids.d.ts +331 -0
  134. package/dist/tokens/grids.js +305 -0
  135. package/dist/tokens/grids.mjs +292 -0
  136. package/dist/tokens/icons.d.mts +134 -0
  137. package/dist/tokens/icons.d.ts +134 -0
  138. package/dist/tokens/icons.js +108 -0
  139. package/dist/tokens/icons.mjs +97 -0
  140. package/dist/tokens/index.d.mts +6 -0
  141. package/dist/tokens/index.d.ts +6 -0
  142. package/dist/tokens/index.js +775 -0
  143. package/dist/tokens/index.mjs +743 -0
  144. package/dist/tokens/progress-bar.d.mts +31 -0
  145. package/dist/tokens/progress-bar.d.ts +31 -0
  146. package/dist/tokens/progress-bar.js +70 -0
  147. package/dist/tokens/progress-bar.mjs +68 -0
  148. package/dist/tokens/spacing.d.mts +90 -0
  149. package/dist/tokens/spacing.d.ts +90 -0
  150. package/dist/tokens/spacing.js +120 -0
  151. package/dist/tokens/spacing.mjs +109 -0
  152. package/dist/tokens/stroke.d.mts +292 -0
  153. package/dist/tokens/stroke.d.ts +292 -0
  154. package/dist/tokens/stroke.js +202 -0
  155. package/dist/tokens/stroke.mjs +186 -0
  156. package/dist/tokens/tab.d.mts +31 -0
  157. package/dist/tokens/tab.d.ts +31 -0
  158. package/dist/tokens/tab.js +48 -0
  159. package/dist/tokens/tab.mjs +46 -0
  160. package/dist/tokens/tag.d.mts +53 -0
  161. package/dist/tokens/tag.d.ts +53 -0
  162. package/dist/tokens/tag.js +80 -0
  163. package/dist/tokens/tag.mjs +78 -0
  164. package/dist/tokens/typography.d.mts +394 -0
  165. package/dist/tokens/typography.d.ts +394 -0
  166. package/dist/tokens/typography.js +302 -0
  167. package/dist/tokens/typography.mjs +292 -0
  168. package/dist/utils/classNames.d.mts +3 -0
  169. package/dist/utils/classNames.d.ts +3 -0
  170. package/dist/utils/classNames.js +8 -0
  171. package/dist/utils/classNames.mjs +6 -0
  172. package/dist/utils/cn.d.mts +5 -0
  173. package/dist/utils/cn.d.ts +5 -0
  174. package/dist/utils/cn.js +11 -0
  175. package/dist/utils/cn.mjs +9 -0
  176. package/dist/utils/index.d.mts +3 -0
  177. package/dist/utils/index.d.ts +3 -0
  178. package/dist/utils/index.js +15 -0
  179. package/dist/utils/index.mjs +12 -0
  180. package/package.json +34 -1
@@ -0,0 +1,305 @@
1
+ 'use strict';
2
+
3
+ // src/tokens/grids.ts
4
+ var breakpoints = {
5
+ mobile: "0px",
6
+ tablet: "768px",
7
+ desktop: "1024px"
8
+ };
9
+ var gridSpecs = {
10
+ mobile: {
11
+ columns: 4,
12
+ margin: "16px",
13
+ gutter: "16px",
14
+ breakpoint: breakpoints.mobile,
15
+ maxWidth: "767px"
16
+ },
17
+ tablet: {
18
+ columns: 8,
19
+ margin: "20px",
20
+ gutter: "20px",
21
+ breakpoint: breakpoints.tablet,
22
+ maxWidth: "1023px"
23
+ },
24
+ desktop: {
25
+ columns: 12,
26
+ margin: "24px",
27
+ gutter: "24px",
28
+ breakpoint: breakpoints.desktop,
29
+ maxWidth: "none"
30
+ }
31
+ };
32
+ var columnSpans = {
33
+ mobile: {
34
+ 1: "25%",
35
+ // 1/4
36
+ 2: "50%",
37
+ // 2/4
38
+ 3: "75%",
39
+ // 3/4
40
+ 4: "100%"
41
+ // 4/4 (full width)
42
+ },
43
+ tablet: {
44
+ 1: "12.5%",
45
+ // 1/8
46
+ 2: "25%",
47
+ // 2/8
48
+ 3: "37.5%",
49
+ // 3/8
50
+ 4: "50%",
51
+ // 4/8
52
+ 5: "62.5%",
53
+ // 5/8
54
+ 6: "75%",
55
+ // 6/8
56
+ 7: "87.5%",
57
+ // 7/8
58
+ 8: "100%"
59
+ // 8/8 (full width)
60
+ },
61
+ desktop: {
62
+ 1: "8.333333%",
63
+ // 1/12
64
+ 2: "16.666667%",
65
+ // 2/12
66
+ 3: "25%",
67
+ // 3/12
68
+ 4: "33.333333%",
69
+ // 4/12
70
+ 5: "41.666667%",
71
+ // 5/12
72
+ 6: "50%",
73
+ // 6/12
74
+ 7: "58.333333%",
75
+ // 7/12
76
+ 8: "66.666667%",
77
+ // 8/12
78
+ 9: "75%",
79
+ // 9/12
80
+ 10: "83.333333%",
81
+ // 10/12
82
+ 11: "91.666667%",
83
+ // 11/12
84
+ 12: "100%"
85
+ // 12/12 (full width)
86
+ }
87
+ };
88
+ var gridContainer = {
89
+ display: "grid",
90
+ width: "100%",
91
+ boxSizing: "border-box"
92
+ };
93
+ var responsiveGrid = {
94
+ mobile: {
95
+ display: "grid",
96
+ gridTemplateColumns: `repeat(${gridSpecs.mobile.columns}, 1fr)`,
97
+ gap: gridSpecs.mobile.gutter,
98
+ margin: `0 ${gridSpecs.mobile.margin}`,
99
+ boxSizing: "border-box"
100
+ },
101
+ tablet: {
102
+ display: "grid",
103
+ gridTemplateColumns: `repeat(${gridSpecs.tablet.columns}, 1fr)`,
104
+ gap: gridSpecs.tablet.gutter,
105
+ margin: `0 ${gridSpecs.tablet.margin}`,
106
+ boxSizing: "border-box"
107
+ },
108
+ desktop: {
109
+ display: "grid",
110
+ gridTemplateColumns: `repeat(${gridSpecs.desktop.columns}, 1fr)`,
111
+ gap: gridSpecs.desktop.gutter,
112
+ margin: `0 ${gridSpecs.desktop.margin}`,
113
+ boxSizing: "border-box"
114
+ }
115
+ };
116
+ var flexboxGrid = {
117
+ container: {
118
+ display: "flex",
119
+ flexWrap: "wrap",
120
+ width: "100%",
121
+ boxSizing: "border-box"
122
+ },
123
+ item: {
124
+ boxSizing: "border-box",
125
+ flex: "0 0 auto"
126
+ }
127
+ };
128
+ var layoutPatterns = {
129
+ // Hero section (full width)
130
+ hero: {
131
+ mobile: { gridColumn: "1 / -1" },
132
+ tablet: { gridColumn: "1 / -1" },
133
+ desktop: { gridColumn: "1 / -1" }
134
+ },
135
+ // Content + Sidebar
136
+ contentSidebar: {
137
+ content: {
138
+ mobile: { gridColumn: "1 / -1" },
139
+ tablet: { gridColumn: "1 / 7" },
140
+ desktop: { gridColumn: "1 / 9" }
141
+ },
142
+ sidebar: {
143
+ mobile: { gridColumn: "1 / -1" },
144
+ tablet: { gridColumn: "7 / -1" },
145
+ desktop: { gridColumn: "9 / -1" }
146
+ }
147
+ },
148
+ // Three column layout
149
+ threeColumn: {
150
+ mobile: { gridColumn: "1 / -1" },
151
+ tablet: {
152
+ first: { gridColumn: "span 2" },
153
+ others: { gridColumn: "span 3" }
154
+ },
155
+ desktop: { gridColumn: "span 4" }
156
+ },
157
+ // Two column layout
158
+ twoColumn: {
159
+ mobile: { gridColumn: "1 / -1" },
160
+ tablet: { gridColumn: "span 4" },
161
+ desktop: { gridColumn: "span 6" }
162
+ },
163
+ // Four column layout
164
+ fourColumn: {
165
+ mobile: { gridColumn: "span 2" },
166
+ tablet: { gridColumn: "span 2" },
167
+ desktop: { gridColumn: "span 3" }
168
+ }
169
+ };
170
+ var gridUtils = {
171
+ // Full width utilities
172
+ fullWidth: {
173
+ mobile: "col-span-4",
174
+ tablet: "col-span-8",
175
+ desktop: "col-span-12"
176
+ },
177
+ // Half width utilities
178
+ halfWidth: {
179
+ mobile: "col-span-2",
180
+ tablet: "col-span-4",
181
+ desktop: "col-span-6"
182
+ },
183
+ // Third width utilities
184
+ thirdWidth: {
185
+ mobile: "col-span-4",
186
+ // Stack on mobile
187
+ tablet: "col-span-3",
188
+ desktop: "col-span-4"
189
+ },
190
+ // Quarter width utilities
191
+ quarterWidth: {
192
+ mobile: "col-span-2",
193
+ tablet: "col-span-2",
194
+ desktop: "col-span-3"
195
+ }
196
+ };
197
+ var gridGaps = {
198
+ xs: "4px",
199
+ // spacing-xs
200
+ s: "8px",
201
+ // spacing-s
202
+ m: "16px",
203
+ // spacing-m
204
+ l: "24px",
205
+ // spacing-l
206
+ xl: "32px"
207
+ // spacing-xl
208
+ };
209
+ var containerSizes = {
210
+ sm: "640px",
211
+ md: "768px",
212
+ lg: "1024px",
213
+ xl: "1280px",
214
+ "2xl": "1536px",
215
+ full: "100%"
216
+ };
217
+ var componentGrids = {
218
+ // Card grid layouts
219
+ cardGrid: {
220
+ mobile: {
221
+ display: "grid",
222
+ gridTemplateColumns: "repeat(1, 1fr)",
223
+ gap: gridGaps.m
224
+ },
225
+ tablet: {
226
+ display: "grid",
227
+ gridTemplateColumns: "repeat(2, 1fr)",
228
+ gap: gridGaps.l
229
+ },
230
+ desktop: {
231
+ display: "grid",
232
+ gridTemplateColumns: "repeat(3, 1fr)",
233
+ gap: gridGaps.l
234
+ }
235
+ },
236
+ // Dashboard layout
237
+ dashboard: {
238
+ mobile: {
239
+ display: "grid",
240
+ gridTemplateColumns: "1fr",
241
+ gap: gridGaps.m
242
+ },
243
+ tablet: {
244
+ display: "grid",
245
+ gridTemplateColumns: "200px 1fr",
246
+ gap: gridGaps.l
247
+ },
248
+ desktop: {
249
+ display: "grid",
250
+ gridTemplateColumns: "250px 1fr",
251
+ gap: gridGaps.xl
252
+ }
253
+ },
254
+ // Form layout
255
+ form: {
256
+ mobile: {
257
+ display: "grid",
258
+ gridTemplateColumns: "1fr",
259
+ gap: gridGaps.m
260
+ },
261
+ tablet: {
262
+ display: "grid",
263
+ gridTemplateColumns: "repeat(2, 1fr)",
264
+ gap: gridGaps.m
265
+ },
266
+ desktop: {
267
+ display: "grid",
268
+ gridTemplateColumns: "repeat(2, 1fr)",
269
+ gap: gridGaps.l
270
+ }
271
+ }
272
+ };
273
+ var gridCalculations = {
274
+ /**
275
+ * Calculate column width based on container width
276
+ */
277
+ calculateColumnWidth: (containerWidth, columns, margin, gutter) => {
278
+ return (containerWidth - 2 * margin - (columns - 1) * gutter) / columns;
279
+ },
280
+ /**
281
+ * Get responsive column span classes
282
+ */
283
+ getResponsiveSpan: (mobile, tablet, desktop) => {
284
+ return `col-span-${mobile} md:col-span-${tablet} lg:col-span-${desktop}`;
285
+ },
286
+ /**
287
+ * Generate grid template columns string
288
+ */
289
+ generateGridColumns: (columns) => {
290
+ return `repeat(${columns}, 1fr)`;
291
+ }
292
+ };
293
+
294
+ exports.breakpoints = breakpoints;
295
+ exports.columnSpans = columnSpans;
296
+ exports.componentGrids = componentGrids;
297
+ exports.containerSizes = containerSizes;
298
+ exports.flexboxGrid = flexboxGrid;
299
+ exports.gridCalculations = gridCalculations;
300
+ exports.gridContainer = gridContainer;
301
+ exports.gridGaps = gridGaps;
302
+ exports.gridSpecs = gridSpecs;
303
+ exports.gridUtils = gridUtils;
304
+ exports.layoutPatterns = layoutPatterns;
305
+ exports.responsiveGrid = responsiveGrid;
@@ -0,0 +1,292 @@
1
+ // src/tokens/grids.ts
2
+ var breakpoints = {
3
+ mobile: "0px",
4
+ tablet: "768px",
5
+ desktop: "1024px"
6
+ };
7
+ var gridSpecs = {
8
+ mobile: {
9
+ columns: 4,
10
+ margin: "16px",
11
+ gutter: "16px",
12
+ breakpoint: breakpoints.mobile,
13
+ maxWidth: "767px"
14
+ },
15
+ tablet: {
16
+ columns: 8,
17
+ margin: "20px",
18
+ gutter: "20px",
19
+ breakpoint: breakpoints.tablet,
20
+ maxWidth: "1023px"
21
+ },
22
+ desktop: {
23
+ columns: 12,
24
+ margin: "24px",
25
+ gutter: "24px",
26
+ breakpoint: breakpoints.desktop,
27
+ maxWidth: "none"
28
+ }
29
+ };
30
+ var columnSpans = {
31
+ mobile: {
32
+ 1: "25%",
33
+ // 1/4
34
+ 2: "50%",
35
+ // 2/4
36
+ 3: "75%",
37
+ // 3/4
38
+ 4: "100%"
39
+ // 4/4 (full width)
40
+ },
41
+ tablet: {
42
+ 1: "12.5%",
43
+ // 1/8
44
+ 2: "25%",
45
+ // 2/8
46
+ 3: "37.5%",
47
+ // 3/8
48
+ 4: "50%",
49
+ // 4/8
50
+ 5: "62.5%",
51
+ // 5/8
52
+ 6: "75%",
53
+ // 6/8
54
+ 7: "87.5%",
55
+ // 7/8
56
+ 8: "100%"
57
+ // 8/8 (full width)
58
+ },
59
+ desktop: {
60
+ 1: "8.333333%",
61
+ // 1/12
62
+ 2: "16.666667%",
63
+ // 2/12
64
+ 3: "25%",
65
+ // 3/12
66
+ 4: "33.333333%",
67
+ // 4/12
68
+ 5: "41.666667%",
69
+ // 5/12
70
+ 6: "50%",
71
+ // 6/12
72
+ 7: "58.333333%",
73
+ // 7/12
74
+ 8: "66.666667%",
75
+ // 8/12
76
+ 9: "75%",
77
+ // 9/12
78
+ 10: "83.333333%",
79
+ // 10/12
80
+ 11: "91.666667%",
81
+ // 11/12
82
+ 12: "100%"
83
+ // 12/12 (full width)
84
+ }
85
+ };
86
+ var gridContainer = {
87
+ display: "grid",
88
+ width: "100%",
89
+ boxSizing: "border-box"
90
+ };
91
+ var responsiveGrid = {
92
+ mobile: {
93
+ display: "grid",
94
+ gridTemplateColumns: `repeat(${gridSpecs.mobile.columns}, 1fr)`,
95
+ gap: gridSpecs.mobile.gutter,
96
+ margin: `0 ${gridSpecs.mobile.margin}`,
97
+ boxSizing: "border-box"
98
+ },
99
+ tablet: {
100
+ display: "grid",
101
+ gridTemplateColumns: `repeat(${gridSpecs.tablet.columns}, 1fr)`,
102
+ gap: gridSpecs.tablet.gutter,
103
+ margin: `0 ${gridSpecs.tablet.margin}`,
104
+ boxSizing: "border-box"
105
+ },
106
+ desktop: {
107
+ display: "grid",
108
+ gridTemplateColumns: `repeat(${gridSpecs.desktop.columns}, 1fr)`,
109
+ gap: gridSpecs.desktop.gutter,
110
+ margin: `0 ${gridSpecs.desktop.margin}`,
111
+ boxSizing: "border-box"
112
+ }
113
+ };
114
+ var flexboxGrid = {
115
+ container: {
116
+ display: "flex",
117
+ flexWrap: "wrap",
118
+ width: "100%",
119
+ boxSizing: "border-box"
120
+ },
121
+ item: {
122
+ boxSizing: "border-box",
123
+ flex: "0 0 auto"
124
+ }
125
+ };
126
+ var layoutPatterns = {
127
+ // Hero section (full width)
128
+ hero: {
129
+ mobile: { gridColumn: "1 / -1" },
130
+ tablet: { gridColumn: "1 / -1" },
131
+ desktop: { gridColumn: "1 / -1" }
132
+ },
133
+ // Content + Sidebar
134
+ contentSidebar: {
135
+ content: {
136
+ mobile: { gridColumn: "1 / -1" },
137
+ tablet: { gridColumn: "1 / 7" },
138
+ desktop: { gridColumn: "1 / 9" }
139
+ },
140
+ sidebar: {
141
+ mobile: { gridColumn: "1 / -1" },
142
+ tablet: { gridColumn: "7 / -1" },
143
+ desktop: { gridColumn: "9 / -1" }
144
+ }
145
+ },
146
+ // Three column layout
147
+ threeColumn: {
148
+ mobile: { gridColumn: "1 / -1" },
149
+ tablet: {
150
+ first: { gridColumn: "span 2" },
151
+ others: { gridColumn: "span 3" }
152
+ },
153
+ desktop: { gridColumn: "span 4" }
154
+ },
155
+ // Two column layout
156
+ twoColumn: {
157
+ mobile: { gridColumn: "1 / -1" },
158
+ tablet: { gridColumn: "span 4" },
159
+ desktop: { gridColumn: "span 6" }
160
+ },
161
+ // Four column layout
162
+ fourColumn: {
163
+ mobile: { gridColumn: "span 2" },
164
+ tablet: { gridColumn: "span 2" },
165
+ desktop: { gridColumn: "span 3" }
166
+ }
167
+ };
168
+ var gridUtils = {
169
+ // Full width utilities
170
+ fullWidth: {
171
+ mobile: "col-span-4",
172
+ tablet: "col-span-8",
173
+ desktop: "col-span-12"
174
+ },
175
+ // Half width utilities
176
+ halfWidth: {
177
+ mobile: "col-span-2",
178
+ tablet: "col-span-4",
179
+ desktop: "col-span-6"
180
+ },
181
+ // Third width utilities
182
+ thirdWidth: {
183
+ mobile: "col-span-4",
184
+ // Stack on mobile
185
+ tablet: "col-span-3",
186
+ desktop: "col-span-4"
187
+ },
188
+ // Quarter width utilities
189
+ quarterWidth: {
190
+ mobile: "col-span-2",
191
+ tablet: "col-span-2",
192
+ desktop: "col-span-3"
193
+ }
194
+ };
195
+ var gridGaps = {
196
+ xs: "4px",
197
+ // spacing-xs
198
+ s: "8px",
199
+ // spacing-s
200
+ m: "16px",
201
+ // spacing-m
202
+ l: "24px",
203
+ // spacing-l
204
+ xl: "32px"
205
+ // spacing-xl
206
+ };
207
+ var containerSizes = {
208
+ sm: "640px",
209
+ md: "768px",
210
+ lg: "1024px",
211
+ xl: "1280px",
212
+ "2xl": "1536px",
213
+ full: "100%"
214
+ };
215
+ var componentGrids = {
216
+ // Card grid layouts
217
+ cardGrid: {
218
+ mobile: {
219
+ display: "grid",
220
+ gridTemplateColumns: "repeat(1, 1fr)",
221
+ gap: gridGaps.m
222
+ },
223
+ tablet: {
224
+ display: "grid",
225
+ gridTemplateColumns: "repeat(2, 1fr)",
226
+ gap: gridGaps.l
227
+ },
228
+ desktop: {
229
+ display: "grid",
230
+ gridTemplateColumns: "repeat(3, 1fr)",
231
+ gap: gridGaps.l
232
+ }
233
+ },
234
+ // Dashboard layout
235
+ dashboard: {
236
+ mobile: {
237
+ display: "grid",
238
+ gridTemplateColumns: "1fr",
239
+ gap: gridGaps.m
240
+ },
241
+ tablet: {
242
+ display: "grid",
243
+ gridTemplateColumns: "200px 1fr",
244
+ gap: gridGaps.l
245
+ },
246
+ desktop: {
247
+ display: "grid",
248
+ gridTemplateColumns: "250px 1fr",
249
+ gap: gridGaps.xl
250
+ }
251
+ },
252
+ // Form layout
253
+ form: {
254
+ mobile: {
255
+ display: "grid",
256
+ gridTemplateColumns: "1fr",
257
+ gap: gridGaps.m
258
+ },
259
+ tablet: {
260
+ display: "grid",
261
+ gridTemplateColumns: "repeat(2, 1fr)",
262
+ gap: gridGaps.m
263
+ },
264
+ desktop: {
265
+ display: "grid",
266
+ gridTemplateColumns: "repeat(2, 1fr)",
267
+ gap: gridGaps.l
268
+ }
269
+ }
270
+ };
271
+ var gridCalculations = {
272
+ /**
273
+ * Calculate column width based on container width
274
+ */
275
+ calculateColumnWidth: (containerWidth, columns, margin, gutter) => {
276
+ return (containerWidth - 2 * margin - (columns - 1) * gutter) / columns;
277
+ },
278
+ /**
279
+ * Get responsive column span classes
280
+ */
281
+ getResponsiveSpan: (mobile, tablet, desktop) => {
282
+ return `col-span-${mobile} md:col-span-${tablet} lg:col-span-${desktop}`;
283
+ },
284
+ /**
285
+ * Generate grid template columns string
286
+ */
287
+ generateGridColumns: (columns) => {
288
+ return `repeat(${columns}, 1fr)`;
289
+ }
290
+ };
291
+
292
+ export { breakpoints, columnSpans, componentGrids, containerSizes, flexboxGrid, gridCalculations, gridContainer, gridGaps, gridSpecs, gridUtils, layoutPatterns, responsiveGrid };