@spark-web/columns 0.0.0-snapshot-release-20260409001813
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/CHANGELOG.md +709 -0
- package/CLAUDE.md +70 -0
- package/README.md +113 -0
- package/dist/declarations/src/alignment.d.ts +14 -0
- package/dist/declarations/src/columns.d.ts +39 -0
- package/dist/declarations/src/index.d.ts +2 -0
- package/dist/spark-web-columns.cjs.d.ts +2 -0
- package/dist/spark-web-columns.cjs.dev.js +62 -0
- package/dist/spark-web-columns.cjs.js +7 -0
- package/dist/spark-web-columns.cjs.prod.js +62 -0
- package/dist/spark-web-columns.esm.js +58 -0
- package/package.json +35 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,709 @@
|
|
|
1
|
+
# @spark-web/columns
|
|
2
|
+
|
|
3
|
+
## 0.0.0-snapshot-release-20260409001813
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#782](https://github.com/brighte-labs/spark-web/pull/782)
|
|
8
|
+
[`b18cf44`](https://github.com/brighte-labs/spark-web/commit/b18cf4426df1e94b005ece8d93996459dc3e41d6)
|
|
9
|
+
Thanks [@jacobporci-brighte](https://github.com/jacobporci-brighte)! -
|
|
10
|
+
**docs:** add CLAUDE.md AI context files to foundation and form packages;
|
|
11
|
+
patch data-table with manual sort and spinner overlay patterns
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
[[`b18cf44`](https://github.com/brighte-labs/spark-web/commit/b18cf4426df1e94b005ece8d93996459dc3e41d6)]:
|
|
14
|
+
- @spark-web/box@0.0.0-snapshot-release-20260409001813
|
|
15
|
+
|
|
16
|
+
## 5.1.0
|
|
17
|
+
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- [#667](https://github.com/brighte-labs/spark-web/pull/667)
|
|
21
|
+
[`80d9c15`](https://github.com/brighte-labs/spark-web/commit/80d9c156a40bbcd2b1a91a2d0403b3c8e9b47b4e)
|
|
22
|
+
Thanks [@Leo704099](https://github.com/Leo704099)! - Support react 17 to 19
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies
|
|
27
|
+
[[`80d9c15`](https://github.com/brighte-labs/spark-web/commit/80d9c156a40bbcd2b1a91a2d0403b3c8e9b47b4e)]:
|
|
28
|
+
- @spark-web/theme@5.13.0
|
|
29
|
+
- @spark-web/utils@5.1.0
|
|
30
|
+
- @spark-web/box@6.0.0
|
|
31
|
+
|
|
32
|
+
## 5.0.2
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- [#698](https://github.com/brighte-labs/spark-web/pull/698)
|
|
37
|
+
[`814b373`](https://github.com/brighte-labs/spark-web/commit/814b373cbe9fcf0757738c78eef6b516624df62c)
|
|
38
|
+
Thanks [@michtntbrighte](https://github.com/michtntbrighte)! - Bump version
|
|
39
|
+
|
|
40
|
+
- Updated dependencies
|
|
41
|
+
[[`814b373`](https://github.com/brighte-labs/spark-web/commit/814b373cbe9fcf0757738c78eef6b516624df62c)]:
|
|
42
|
+
- @spark-web/box@5.2.2
|
|
43
|
+
- @spark-web/theme@5.12.1
|
|
44
|
+
|
|
45
|
+
## 5.0.1
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- Updated dependencies
|
|
50
|
+
[[`1995db7`](https://github.com/brighte-labs/spark-web/commit/1995db7f4342803732c7648ab3ca6d32442cc347)]:
|
|
51
|
+
- @spark-web/theme@5.12.0
|
|
52
|
+
|
|
53
|
+
## 5.0.0
|
|
54
|
+
|
|
55
|
+
### Major Changes
|
|
56
|
+
|
|
57
|
+
- This release of spark-web standardises the version across all packages to be
|
|
58
|
+
**`v5`**, primarily signifying the switch from `@emotion/css` to
|
|
59
|
+
`@emotion/react` as one of the key dependencies of the entire library, in
|
|
60
|
+
order to support server-side rendering / SSR.
|
|
61
|
+
|
|
62
|
+
This release also introduces support for theming, to allow for more co-branded
|
|
63
|
+
experiences across our web applications. It also supports component-level
|
|
64
|
+
theming for `<Button />`, `<ButtonLink />`, and `<Checkbox />`, which provides
|
|
65
|
+
the capability to override the global theme available inside an application.
|
|
66
|
+
|
|
67
|
+
To use this in an application, you can wrap the affected areas with a
|
|
68
|
+
`ThemeProvider`:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
<ThemeProvider theme="pantheon">
|
|
72
|
+
<Input type="text" />
|
|
73
|
+
<Button type="submit" />
|
|
74
|
+
</ThemeProvider>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Part of the theming capabilities includes a new theme for `spark-web` called
|
|
78
|
+
"pantheon", which should map with our co-branding efforts in the Pantheon
|
|
79
|
+
project. It currently includes a small set of colors and its corresponding
|
|
80
|
+
font family.
|
|
81
|
+
|
|
82
|
+
### Patch Changes
|
|
83
|
+
|
|
84
|
+
- [#532](https://github.com/brighte-labs/spark-web/pull/532)
|
|
85
|
+
[`631573c`](https://github.com/brighte-labs/spark-web/commit/631573cb72981d99b9afa4ad559123f44e47b2a9)
|
|
86
|
+
Thanks [@ralcoriza-brighte](https://github.com/ralcoriza-brighte)! - Fix
|
|
87
|
+
type-related issues
|
|
88
|
+
|
|
89
|
+
- Updated dependencies
|
|
90
|
+
[[`631573c`](https://github.com/brighte-labs/spark-web/commit/631573cb72981d99b9afa4ad559123f44e47b2a9)]:
|
|
91
|
+
- @spark-web/theme@5.0.0
|
|
92
|
+
- @spark-web/utils@5.0.0
|
|
93
|
+
- @spark-web/box@5.0.0
|
|
94
|
+
|
|
95
|
+
## 5.0.0-rc.31
|
|
96
|
+
|
|
97
|
+
### Patch Changes
|
|
98
|
+
|
|
99
|
+
- Fix type-related issues
|
|
100
|
+
|
|
101
|
+
- Updated dependencies []:
|
|
102
|
+
- @spark-web/theme@5.0.0-rc.31
|
|
103
|
+
- @spark-web/utils@5.0.0-rc.31
|
|
104
|
+
- @spark-web/box@5.0.0-rc.31
|
|
105
|
+
|
|
106
|
+
## 5.0.0-rc.30
|
|
107
|
+
|
|
108
|
+
### Minor Changes
|
|
109
|
+
|
|
110
|
+
- Adopt latest changes from stable main branch
|
|
111
|
+
|
|
112
|
+
### Patch Changes
|
|
113
|
+
|
|
114
|
+
- Updated dependencies []:
|
|
115
|
+
- @spark-web/theme@5.0.0-rc.30
|
|
116
|
+
- @spark-web/utils@5.0.0-rc.30
|
|
117
|
+
- @spark-web/box@5.0.0-rc.30
|
|
118
|
+
|
|
119
|
+
## 5.0.0-rc.29
|
|
120
|
+
|
|
121
|
+
### Minor Changes
|
|
122
|
+
|
|
123
|
+
- Revise stylesheet maps to align with theme name change
|
|
124
|
+
|
|
125
|
+
### Patch Changes
|
|
126
|
+
|
|
127
|
+
- Updated dependencies []:
|
|
128
|
+
- @spark-web/theme@5.0.0-rc.29
|
|
129
|
+
- @spark-web/utils@5.0.0-rc.29
|
|
130
|
+
- @spark-web/box@5.0.0-rc.29
|
|
131
|
+
|
|
132
|
+
## 5.0.0-rc.28
|
|
133
|
+
|
|
134
|
+
### Minor Changes
|
|
135
|
+
|
|
136
|
+
- Move fonts to theme package; Introduce Pantheon font family and stylesheet
|
|
137
|
+
|
|
138
|
+
### Patch Changes
|
|
139
|
+
|
|
140
|
+
- Updated dependencies []:
|
|
141
|
+
- @spark-web/theme@5.0.0-rc.28
|
|
142
|
+
- @spark-web/utils@5.0.0-rc.28
|
|
143
|
+
- @spark-web/box@5.0.0-rc.28
|
|
144
|
+
|
|
145
|
+
## 5.0.0-rc.27
|
|
146
|
+
|
|
147
|
+
### Minor Changes
|
|
148
|
+
|
|
149
|
+
- Remove theme prop in button link
|
|
150
|
+
|
|
151
|
+
### Patch Changes
|
|
152
|
+
|
|
153
|
+
- Updated dependencies []:
|
|
154
|
+
- @spark-web/theme@5.0.0-rc.27
|
|
155
|
+
- @spark-web/utils@5.0.0-rc.27
|
|
156
|
+
- @spark-web/box@5.0.0-rc.27
|
|
157
|
+
|
|
158
|
+
## 5.0.0-rc.26
|
|
159
|
+
|
|
160
|
+
### Minor Changes
|
|
161
|
+
|
|
162
|
+
- Roll back on using theme prop for component level theming; prefer using
|
|
163
|
+
ThemeProvider in applications instead
|
|
164
|
+
|
|
165
|
+
### Patch Changes
|
|
166
|
+
|
|
167
|
+
- Updated dependencies []:
|
|
168
|
+
- @spark-web/theme@5.0.0-rc.26
|
|
169
|
+
- @spark-web/utils@5.0.0-rc.26
|
|
170
|
+
- @spark-web/box@5.0.0-rc.26
|
|
171
|
+
|
|
172
|
+
## 5.0.0-rc.25
|
|
173
|
+
|
|
174
|
+
### Minor Changes
|
|
175
|
+
|
|
176
|
+
- Implement checkbox tokens for test theme
|
|
177
|
+
|
|
178
|
+
### Patch Changes
|
|
179
|
+
|
|
180
|
+
- Updated dependencies []:
|
|
181
|
+
- @spark-web/theme@5.0.0-rc.25
|
|
182
|
+
- @spark-web/utils@5.0.0-rc.25
|
|
183
|
+
- @spark-web/box@5.0.0-rc.25
|
|
184
|
+
|
|
185
|
+
## 5.0.0-rc.24
|
|
186
|
+
|
|
187
|
+
### Minor Changes
|
|
188
|
+
|
|
189
|
+
- Resolve issues with package build output
|
|
190
|
+
|
|
191
|
+
### Patch Changes
|
|
192
|
+
|
|
193
|
+
- Updated dependencies []:
|
|
194
|
+
- @spark-web/theme@5.0.0-rc.24
|
|
195
|
+
- @spark-web/utils@5.0.0-rc.24
|
|
196
|
+
- @spark-web/box@5.0.0-rc.24
|
|
197
|
+
|
|
198
|
+
## 3.0.0-rc.21
|
|
199
|
+
|
|
200
|
+
### Minor Changes
|
|
201
|
+
|
|
202
|
+
- Introduce global theming provider to set global default theme
|
|
203
|
+
|
|
204
|
+
### Patch Changes
|
|
205
|
+
|
|
206
|
+
- Updated dependencies []:
|
|
207
|
+
- @spark-web/theme@4.0.0-rc.21
|
|
208
|
+
- @spark-web/utils@2.0.0-rc.21
|
|
209
|
+
- @spark-web/box@2.0.0-rc.21
|
|
210
|
+
|
|
211
|
+
## 3.0.0-rc.20
|
|
212
|
+
|
|
213
|
+
### Minor Changes
|
|
214
|
+
|
|
215
|
+
- Support for component-level theming; button-level theming
|
|
216
|
+
|
|
217
|
+
### Patch Changes
|
|
218
|
+
|
|
219
|
+
- Updated dependencies []:
|
|
220
|
+
- @spark-web/theme@4.0.0-rc.20
|
|
221
|
+
- @spark-web/utils@2.0.0-rc.20
|
|
222
|
+
- @spark-web/box@2.0.0-rc.20
|
|
223
|
+
|
|
224
|
+
## 3.0.0-rc.19
|
|
225
|
+
|
|
226
|
+
### Major Changes
|
|
227
|
+
|
|
228
|
+
- test
|
|
229
|
+
|
|
230
|
+
### Patch Changes
|
|
231
|
+
|
|
232
|
+
- Updated dependencies []:
|
|
233
|
+
- @spark-web/theme@4.0.0-rc.19
|
|
234
|
+
- @spark-web/utils@2.0.0-rc.19
|
|
235
|
+
- @spark-web/box@2.0.0-rc.19
|
|
236
|
+
|
|
237
|
+
## 3.0.0-rc.18
|
|
238
|
+
|
|
239
|
+
### Major Changes
|
|
240
|
+
|
|
241
|
+
- tests
|
|
242
|
+
|
|
243
|
+
### Patch Changes
|
|
244
|
+
|
|
245
|
+
- Updated dependencies []:
|
|
246
|
+
- @spark-web/theme@4.0.0-rc.18
|
|
247
|
+
- @spark-web/utils@2.0.0-rc.18
|
|
248
|
+
- @spark-web/box@2.0.0-rc.18
|
|
249
|
+
|
|
250
|
+
## 3.0.0-rc.17
|
|
251
|
+
|
|
252
|
+
### Major Changes
|
|
253
|
+
|
|
254
|
+
- test
|
|
255
|
+
|
|
256
|
+
### Patch Changes
|
|
257
|
+
|
|
258
|
+
- Updated dependencies []:
|
|
259
|
+
- @spark-web/theme@4.0.0-rc.17
|
|
260
|
+
- @spark-web/utils@2.0.0-rc.17
|
|
261
|
+
- @spark-web/box@2.0.0-rc.17
|
|
262
|
+
|
|
263
|
+
## 3.0.0-rc.16
|
|
264
|
+
|
|
265
|
+
### Major Changes
|
|
266
|
+
|
|
267
|
+
- test
|
|
268
|
+
|
|
269
|
+
### Patch Changes
|
|
270
|
+
|
|
271
|
+
- Updated dependencies []:
|
|
272
|
+
- @spark-web/theme@4.0.0-rc.16
|
|
273
|
+
- @spark-web/utils@2.0.0-rc.16
|
|
274
|
+
- @spark-web/box@2.0.0-rc.16
|
|
275
|
+
|
|
276
|
+
## 3.0.0-rc.15
|
|
277
|
+
|
|
278
|
+
### Major Changes
|
|
279
|
+
|
|
280
|
+
- test
|
|
281
|
+
|
|
282
|
+
### Patch Changes
|
|
283
|
+
|
|
284
|
+
- Updated dependencies []:
|
|
285
|
+
- @spark-web/theme@4.0.0-rc.15
|
|
286
|
+
- @spark-web/utils@2.0.0-rc.15
|
|
287
|
+
- @spark-web/box@2.0.0-rc.15
|
|
288
|
+
|
|
289
|
+
## 3.0.0-rc.14
|
|
290
|
+
|
|
291
|
+
### Major Changes
|
|
292
|
+
|
|
293
|
+
- test
|
|
294
|
+
|
|
295
|
+
### Patch Changes
|
|
296
|
+
|
|
297
|
+
- Updated dependencies []:
|
|
298
|
+
- @spark-web/theme@4.0.0-rc.14
|
|
299
|
+
- @spark-web/utils@2.0.0-rc.14
|
|
300
|
+
- @spark-web/box@2.0.0-rc.14
|
|
301
|
+
|
|
302
|
+
## 3.0.0-rc.13
|
|
303
|
+
|
|
304
|
+
### Major Changes
|
|
305
|
+
|
|
306
|
+
- test
|
|
307
|
+
|
|
308
|
+
### Patch Changes
|
|
309
|
+
|
|
310
|
+
- Updated dependencies []:
|
|
311
|
+
- @spark-web/theme@4.0.0-rc.13
|
|
312
|
+
- @spark-web/utils@2.0.0-rc.13
|
|
313
|
+
- @spark-web/box@2.0.0-rc.13
|
|
314
|
+
|
|
315
|
+
## 3.0.0-rc.12
|
|
316
|
+
|
|
317
|
+
### Major Changes
|
|
318
|
+
|
|
319
|
+
- test
|
|
320
|
+
|
|
321
|
+
### Patch Changes
|
|
322
|
+
|
|
323
|
+
- Updated dependencies []:
|
|
324
|
+
- @spark-web/theme@4.0.0-rc.12
|
|
325
|
+
- @spark-web/utils@2.0.0-rc.12
|
|
326
|
+
- @spark-web/box@2.0.0-rc.12
|
|
327
|
+
|
|
328
|
+
## 3.0.0-rc.11
|
|
329
|
+
|
|
330
|
+
### Major Changes
|
|
331
|
+
|
|
332
|
+
- test
|
|
333
|
+
|
|
334
|
+
### Patch Changes
|
|
335
|
+
|
|
336
|
+
- Updated dependencies []:
|
|
337
|
+
- @spark-web/theme@4.0.0-rc.11
|
|
338
|
+
- @spark-web/utils@2.0.0-rc.11
|
|
339
|
+
- @spark-web/box@2.0.0-rc.11
|
|
340
|
+
|
|
341
|
+
## 3.0.0-rc.10
|
|
342
|
+
|
|
343
|
+
### Major Changes
|
|
344
|
+
|
|
345
|
+
- test
|
|
346
|
+
|
|
347
|
+
### Patch Changes
|
|
348
|
+
|
|
349
|
+
- Updated dependencies []:
|
|
350
|
+
- @spark-web/theme@4.0.0-rc.10
|
|
351
|
+
- @spark-web/utils@2.0.0-rc.10
|
|
352
|
+
- @spark-web/box@2.0.0-rc.10
|
|
353
|
+
|
|
354
|
+
## 3.0.0-rc.9
|
|
355
|
+
|
|
356
|
+
### Major Changes
|
|
357
|
+
|
|
358
|
+
- test
|
|
359
|
+
|
|
360
|
+
### Patch Changes
|
|
361
|
+
|
|
362
|
+
- Updated dependencies []:
|
|
363
|
+
- @spark-web/theme@4.0.0-rc.9
|
|
364
|
+
- @spark-web/utils@2.0.0-rc.9
|
|
365
|
+
- @spark-web/box@2.0.0-rc.9
|
|
366
|
+
|
|
367
|
+
## 3.0.0-rc.8
|
|
368
|
+
|
|
369
|
+
### Major Changes
|
|
370
|
+
|
|
371
|
+
- test
|
|
372
|
+
|
|
373
|
+
### Patch Changes
|
|
374
|
+
|
|
375
|
+
- Updated dependencies []:
|
|
376
|
+
- @spark-web/theme@4.0.0-rc.8
|
|
377
|
+
- @spark-web/utils@2.0.0-rc.8
|
|
378
|
+
- @spark-web/box@2.0.0-rc.8
|
|
379
|
+
|
|
380
|
+
## 3.0.0-rc.7
|
|
381
|
+
|
|
382
|
+
### Major Changes
|
|
383
|
+
|
|
384
|
+
- test
|
|
385
|
+
|
|
386
|
+
### Patch Changes
|
|
387
|
+
|
|
388
|
+
- Updated dependencies []:
|
|
389
|
+
- @spark-web/theme@4.0.0-rc.7
|
|
390
|
+
- @spark-web/utils@2.0.0-rc.7
|
|
391
|
+
- @spark-web/box@2.0.0-rc.7
|
|
392
|
+
|
|
393
|
+
## 3.0.0-rc.6
|
|
394
|
+
|
|
395
|
+
### Major Changes
|
|
396
|
+
|
|
397
|
+
- test
|
|
398
|
+
|
|
399
|
+
### Patch Changes
|
|
400
|
+
|
|
401
|
+
- Updated dependencies []:
|
|
402
|
+
- @spark-web/theme@4.0.0-rc.6
|
|
403
|
+
- @spark-web/utils@2.0.0-rc.6
|
|
404
|
+
- @spark-web/box@2.0.0-rc.6
|
|
405
|
+
|
|
406
|
+
## 3.0.0-rc.5
|
|
407
|
+
|
|
408
|
+
### Major Changes
|
|
409
|
+
|
|
410
|
+
- test
|
|
411
|
+
|
|
412
|
+
### Patch Changes
|
|
413
|
+
|
|
414
|
+
- Updated dependencies []:
|
|
415
|
+
- @spark-web/theme@4.0.0-rc.5
|
|
416
|
+
- @spark-web/utils@2.0.0-rc.5
|
|
417
|
+
- @spark-web/box@2.0.0-rc.5
|
|
418
|
+
|
|
419
|
+
## 3.0.0-rc.4
|
|
420
|
+
|
|
421
|
+
### Major Changes
|
|
422
|
+
|
|
423
|
+
- bug
|
|
424
|
+
|
|
425
|
+
### Patch Changes
|
|
426
|
+
|
|
427
|
+
- Updated dependencies []:
|
|
428
|
+
- @spark-web/theme@4.0.0-rc.4
|
|
429
|
+
- @spark-web/utils@2.0.0-rc.4
|
|
430
|
+
- @spark-web/box@2.0.0-rc.4
|
|
431
|
+
|
|
432
|
+
## 3.0.0-rc.3
|
|
433
|
+
|
|
434
|
+
### Major Changes
|
|
435
|
+
|
|
436
|
+
- upgrade package
|
|
437
|
+
|
|
438
|
+
### Patch Changes
|
|
439
|
+
|
|
440
|
+
- Updated dependencies []:
|
|
441
|
+
- @spark-web/theme@4.0.0-rc.3
|
|
442
|
+
- @spark-web/utils@2.0.0-rc.3
|
|
443
|
+
- @spark-web/box@2.0.0-rc.3
|
|
444
|
+
|
|
445
|
+
## 3.0.0-rc.2
|
|
446
|
+
|
|
447
|
+
### Major Changes
|
|
448
|
+
|
|
449
|
+
- add parser
|
|
450
|
+
|
|
451
|
+
### Patch Changes
|
|
452
|
+
|
|
453
|
+
- Updated dependencies []:
|
|
454
|
+
- @spark-web/theme@4.0.0-rc.2
|
|
455
|
+
- @spark-web/utils@2.0.0-rc.2
|
|
456
|
+
- @spark-web/box@2.0.0-rc.2
|
|
457
|
+
|
|
458
|
+
## 3.0.0-rc.1
|
|
459
|
+
|
|
460
|
+
### Major Changes
|
|
461
|
+
|
|
462
|
+
- rc
|
|
463
|
+
|
|
464
|
+
### Patch Changes
|
|
465
|
+
|
|
466
|
+
- Updated dependencies []:
|
|
467
|
+
- @spark-web/theme@4.0.0-rc.1
|
|
468
|
+
- @spark-web/utils@2.0.0-rc.1
|
|
469
|
+
- @spark-web/box@2.0.0-rc.1
|
|
470
|
+
|
|
471
|
+
## 3.0.0-rc.0
|
|
472
|
+
|
|
473
|
+
### Major Changes
|
|
474
|
+
|
|
475
|
+
- rc versio
|
|
476
|
+
|
|
477
|
+
### Patch Changes
|
|
478
|
+
|
|
479
|
+
- Updated dependencies []:
|
|
480
|
+
- @spark-web/theme@4.0.0-rc.0
|
|
481
|
+
- @spark-web/box@2.0.0-rc.0
|
|
482
|
+
- @spark-web/utils@2.0.0-rc.0
|
|
483
|
+
|
|
484
|
+
## 2.1.0
|
|
485
|
+
|
|
486
|
+
### Minor Changes
|
|
487
|
+
|
|
488
|
+
- [#382](https://github.com/brighte-labs/spark-web/pull/382)
|
|
489
|
+
[`955bf5d`](https://github.com/brighte-labs/spark-web/commit/955bf5d7698bfdf45e7f317aa3e726c81d3444c0)
|
|
490
|
+
Thanks [@dilipt-brighte](https://github.com/dilipt-brighte)! - Updates React
|
|
491
|
+
version to latest (18.2.0)
|
|
492
|
+
|
|
493
|
+
### Patch Changes
|
|
494
|
+
|
|
495
|
+
- Updated dependencies
|
|
496
|
+
[[`955bf5d`](https://github.com/brighte-labs/spark-web/commit/955bf5d7698bfdf45e7f317aa3e726c81d3444c0)]:
|
|
497
|
+
- @spark-web/box@1.2.0
|
|
498
|
+
- @spark-web/theme@3.2.0
|
|
499
|
+
- @spark-web/utils@1.3.0
|
|
500
|
+
|
|
501
|
+
## 2.0.5
|
|
502
|
+
|
|
503
|
+
### Patch Changes
|
|
504
|
+
|
|
505
|
+
- [#246](https://github.com/brighte-labs/spark-web/pull/246)
|
|
506
|
+
[`de99b9c`](https://github.com/brighte-labs/spark-web/commit/de99b9c7f72373bd1902cf67f5cfec9a1e1db01c)
|
|
507
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Remove
|
|
508
|
+
destructuring from theme object
|
|
509
|
+
|
|
510
|
+
- [#218](https://github.com/brighte-labs/spark-web/pull/218)
|
|
511
|
+
[`6fc8d1b`](https://github.com/brighte-labs/spark-web/commit/6fc8d1bc37e25d0cd622bc37f68a1d92eb5961b5)
|
|
512
|
+
Thanks [@nderkim](https://github.com/nderkim)! - Rename files to kebab case
|
|
513
|
+
|
|
514
|
+
- [#222](https://github.com/brighte-labs/spark-web/pull/222)
|
|
515
|
+
[`7f93c45`](https://github.com/brighte-labs/spark-web/commit/7f93c45bbae8c765e10df9d0dd7615473797749b)
|
|
516
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update
|
|
517
|
+
dependencies
|
|
518
|
+
|
|
519
|
+
- [#242](https://github.com/brighte-labs/spark-web/pull/242)
|
|
520
|
+
[`6df05f7`](https://github.com/brighte-labs/spark-web/commit/6df05f764e4181c140d6547d6b897d0210468f6a)
|
|
521
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - - Add homepage
|
|
522
|
+
and repository keys to package.json
|
|
523
|
+
- Add CHANGELOG and README to files key in package.json
|
|
524
|
+
- Updated dependencies
|
|
525
|
+
[[`adc5e9e`](https://github.com/brighte-labs/spark-web/commit/adc5e9e6c99acd117f3261edcefdb5573132441b),
|
|
526
|
+
[`de99b9c`](https://github.com/brighte-labs/spark-web/commit/de99b9c7f72373bd1902cf67f5cfec9a1e1db01c),
|
|
527
|
+
[`6fc8d1b`](https://github.com/brighte-labs/spark-web/commit/6fc8d1bc37e25d0cd622bc37f68a1d92eb5961b5),
|
|
528
|
+
[`7f93c45`](https://github.com/brighte-labs/spark-web/commit/7f93c45bbae8c765e10df9d0dd7615473797749b),
|
|
529
|
+
[`62f7de8`](https://github.com/brighte-labs/spark-web/commit/62f7de8a2e1df5ae088c093d3acdaa868d3f61fe),
|
|
530
|
+
[`6df05f7`](https://github.com/brighte-labs/spark-web/commit/6df05f764e4181c140d6547d6b897d0210468f6a)]:
|
|
531
|
+
- @spark-web/box@1.1.0
|
|
532
|
+
- @spark-web/theme@3.1.0
|
|
533
|
+
- @spark-web/utils@1.2.3
|
|
534
|
+
|
|
535
|
+
## 2.0.4
|
|
536
|
+
|
|
537
|
+
### Patch Changes
|
|
538
|
+
|
|
539
|
+
- [#208](https://github.com/brighte-labs/spark-web/pull/208)
|
|
540
|
+
[`1ea26ef`](https://github.com/brighte-labs/spark-web/commit/1ea26ef04a3b45875ed0dd2326eeab1fbe1e4bc5)
|
|
541
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Lower required
|
|
542
|
+
node version
|
|
543
|
+
|
|
544
|
+
- Updated dependencies
|
|
545
|
+
[[`1ea26ef`](https://github.com/brighte-labs/spark-web/commit/1ea26ef04a3b45875ed0dd2326eeab1fbe1e4bc5)]:
|
|
546
|
+
- @spark-web/box@1.0.9
|
|
547
|
+
- @spark-web/theme@3.0.6
|
|
548
|
+
- @spark-web/utils@1.2.2
|
|
549
|
+
|
|
550
|
+
## 2.0.3
|
|
551
|
+
|
|
552
|
+
### Patch Changes
|
|
553
|
+
|
|
554
|
+
- [#197](https://github.com/brighte-labs/spark-web/pull/197)
|
|
555
|
+
[`94016d8`](https://github.com/brighte-labs/spark-web/commit/94016d84e26bbe55833bbcbab847a2cce6041538)
|
|
556
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update packages
|
|
557
|
+
|
|
558
|
+
- Updated dependencies
|
|
559
|
+
[[`94016d8`](https://github.com/brighte-labs/spark-web/commit/94016d84e26bbe55833bbcbab847a2cce6041538)]:
|
|
560
|
+
- @spark-web/box@1.0.8
|
|
561
|
+
- @spark-web/theme@3.0.5
|
|
562
|
+
- @spark-web/utils@1.2.1
|
|
563
|
+
|
|
564
|
+
## 2.0.2
|
|
565
|
+
|
|
566
|
+
### Patch Changes
|
|
567
|
+
|
|
568
|
+
- [#173](https://github.com/brighte-labs/spark-web/pull/173)
|
|
569
|
+
[`90b7e9c`](https://github.com/brighte-labs/spark-web/commit/90b7e9cf4eb7e864d765c74b22c3dedf3d262e25)
|
|
570
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update babel
|
|
571
|
+
dependency
|
|
572
|
+
|
|
573
|
+
- Updated dependencies
|
|
574
|
+
[[`90b7e9c`](https://github.com/brighte-labs/spark-web/commit/90b7e9cf4eb7e864d765c74b22c3dedf3d262e25),
|
|
575
|
+
[`c3867af`](https://github.com/brighte-labs/spark-web/commit/c3867af7b77dfae3580ab63a5d5c9e8452f2da62)]:
|
|
576
|
+
- @spark-web/box@1.0.7
|
|
577
|
+
- @spark-web/theme@3.0.3
|
|
578
|
+
- @spark-web/utils@1.2.0
|
|
579
|
+
|
|
580
|
+
## 2.0.1
|
|
581
|
+
|
|
582
|
+
### Patch Changes
|
|
583
|
+
|
|
584
|
+
- [#167](https://github.com/brighte-labs/spark-web/pull/167)
|
|
585
|
+
[`4f79350`](https://github.com/brighte-labs/spark-web/commit/4f793508fdb43ddd452f0d59a3126101f9fa5459)
|
|
586
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update Babel
|
|
587
|
+
|
|
588
|
+
- Updated dependencies
|
|
589
|
+
[[`4f79350`](https://github.com/brighte-labs/spark-web/commit/4f793508fdb43ddd452f0d59a3126101f9fa5459),
|
|
590
|
+
[`60f7281`](https://github.com/brighte-labs/spark-web/commit/60f7281c4a194d934a2ce561cad47e737b0fb48e)]:
|
|
591
|
+
- @spark-web/box@1.0.6
|
|
592
|
+
- @spark-web/theme@3.0.2
|
|
593
|
+
- @spark-web/utils@1.1.5
|
|
594
|
+
|
|
595
|
+
## 2.0.0
|
|
596
|
+
|
|
597
|
+
### Major Changes
|
|
598
|
+
|
|
599
|
+
- [#99](https://github.com/brighte-labs/spark-web/pull/99)
|
|
600
|
+
[`3db131b`](https://github.com/brighte-labs/spark-web/commit/3db131bfadbc4149d05b7c74be1a3e68cdd5b18f)
|
|
601
|
+
Thanks [@oscargws](https://github.com/oscargws)! - Removed props spreading
|
|
602
|
+
from multiple packages
|
|
603
|
+
|
|
604
|
+
### Minor Changes
|
|
605
|
+
|
|
606
|
+
- [#146](https://github.com/brighte-labs/spark-web/pull/146)
|
|
607
|
+
[`4e2dc42`](https://github.com/brighte-labs/spark-web/commit/4e2dc429711b2d0d9e180716dcee6a124608f694)
|
|
608
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Add className and
|
|
609
|
+
style back to layout primitives
|
|
610
|
+
|
|
611
|
+
## 1.0.5
|
|
612
|
+
|
|
613
|
+
### Patch Changes
|
|
614
|
+
|
|
615
|
+
- [#113](https://github.com/brighte-labs/spark-web/pull/113)
|
|
616
|
+
[`156236d`](https://github.com/brighte-labs/spark-web/commit/156236d2474aee66a0b8e2030635f9c08a5b78ba)
|
|
617
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update
|
|
618
|
+
dependencies
|
|
619
|
+
|
|
620
|
+
- Updated dependencies
|
|
621
|
+
[[`156236d`](https://github.com/brighte-labs/spark-web/commit/156236d2474aee66a0b8e2030635f9c08a5b78ba)]:
|
|
622
|
+
- @spark-web/box@1.0.5
|
|
623
|
+
- @spark-web/theme@3.0.1
|
|
624
|
+
- @spark-web/utils@1.1.3
|
|
625
|
+
|
|
626
|
+
## 1.0.4
|
|
627
|
+
|
|
628
|
+
### Patch Changes
|
|
629
|
+
|
|
630
|
+
- [#83](https://github.com/brighte-labs/spark-web/pull/83)
|
|
631
|
+
[`1ef4f82`](https://github.com/brighte-labs/spark-web/commit/1ef4f82df999c487b79cd216c17ca5735e444fc5)
|
|
632
|
+
Thanks [@ChristopherMitchell242](https://github.com/ChristopherMitchell242)! -
|
|
633
|
+
Data attribute added to component props to allow consumers to attach custom
|
|
634
|
+
attributes to components
|
|
635
|
+
|
|
636
|
+
* [#52](https://github.com/brighte-labs/spark-web/pull/52)
|
|
637
|
+
[`82ab744`](https://github.com/brighte-labs/spark-web/commit/82ab744f198466810f3386bc459b8ab4d57c820e)
|
|
638
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Add files array
|
|
639
|
+
to package.json files
|
|
640
|
+
|
|
641
|
+
* Updated dependencies
|
|
642
|
+
[[`182a53a`](https://github.com/brighte-labs/spark-web/commit/182a53a484892df48754e89dd714459a7f69fcff),
|
|
643
|
+
[`82ab744`](https://github.com/brighte-labs/spark-web/commit/82ab744f198466810f3386bc459b8ab4d57c820e),
|
|
644
|
+
[`df618d9`](https://github.com/brighte-labs/spark-web/commit/df618d92d534e06f06ecedc95ea6bdd51cdc906b)]:
|
|
645
|
+
- @spark-web/theme@3.0.0
|
|
646
|
+
- @spark-web/box@1.0.4
|
|
647
|
+
- @spark-web/utils@1.1.2
|
|
648
|
+
|
|
649
|
+
## 1.0.3
|
|
650
|
+
|
|
651
|
+
### Patch Changes
|
|
652
|
+
|
|
653
|
+
- [#42](https://github.com/brighte-labs/spark-web/pull/42)
|
|
654
|
+
[`435779a`](https://github.com/brighte-labs/spark-web/commit/435779aa42bd635bbf43e1fd41724c666402caa2)
|
|
655
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Prevent multiple
|
|
656
|
+
versions of React
|
|
657
|
+
|
|
658
|
+
- Updated dependencies
|
|
659
|
+
[[`435779a`](https://github.com/brighte-labs/spark-web/commit/435779aa42bd635bbf43e1fd41724c666402caa2)]:
|
|
660
|
+
- @spark-web/box@1.0.3
|
|
661
|
+
- @spark-web/theme@2.0.2
|
|
662
|
+
- @spark-web/utils@1.1.1
|
|
663
|
+
|
|
664
|
+
## 1.0.2
|
|
665
|
+
|
|
666
|
+
### Patch Changes
|
|
667
|
+
|
|
668
|
+
- [#40](https://github.com/brighte-labs/spark-web/pull/40)
|
|
669
|
+
[`062c8ab`](https://github.com/brighte-labs/spark-web/commit/062c8ab8c7b4120f8d14c269b5f7801288c678ca)
|
|
670
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Add
|
|
671
|
+
@babel/transform-runtime
|
|
672
|
+
|
|
673
|
+
- Updated dependencies
|
|
674
|
+
[[`062c8ab`](https://github.com/brighte-labs/spark-web/commit/062c8ab8c7b4120f8d14c269b5f7801288c678ca)]:
|
|
675
|
+
- @spark-web/box@1.0.2
|
|
676
|
+
- @spark-web/theme@2.0.1
|
|
677
|
+
- @spark-web/utils@1.0.2
|
|
678
|
+
|
|
679
|
+
## 1.0.1
|
|
680
|
+
|
|
681
|
+
### Patch Changes
|
|
682
|
+
|
|
683
|
+
- [#36](https://github.com/brighte-labs/spark-web/pull/36)
|
|
684
|
+
[`8546f8f`](https://github.com/brighte-labs/spark-web/commit/8546f8f05daaa79ea3ff954c6c4928a7a2d0622d)
|
|
685
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update Babel
|
|
686
|
+
config
|
|
687
|
+
|
|
688
|
+
- Updated dependencies
|
|
689
|
+
[[`aebff30`](https://github.com/brighte-labs/spark-web/commit/aebff30c86cb0a9db22b545c46159ce0d1c14afb),
|
|
690
|
+
[`8546f8f`](https://github.com/brighte-labs/spark-web/commit/8546f8f05daaa79ea3ff954c6c4928a7a2d0622d)]:
|
|
691
|
+
- @spark-web/theme@2.0.0
|
|
692
|
+
- @spark-web/box@1.0.1
|
|
693
|
+
- @spark-web/utils@1.0.1
|
|
694
|
+
|
|
695
|
+
## 1.0.0
|
|
696
|
+
|
|
697
|
+
### Major Changes
|
|
698
|
+
|
|
699
|
+
- [#27](https://github.com/brighte-labs/spark-web/pull/27)
|
|
700
|
+
[`4c8e398`](https://github.com/brighte-labs/spark-web/commit/4c8e3988f8a59d3dab60a6b67b1128b6ff2a5f2c)
|
|
701
|
+
Thanks [@JedWatson](https://github.com/JedWatson)! - Initial Version
|
|
702
|
+
|
|
703
|
+
### Patch Changes
|
|
704
|
+
|
|
705
|
+
- Updated dependencies
|
|
706
|
+
[[`4c8e398`](https://github.com/brighte-labs/spark-web/commit/4c8e3988f8a59d3dab60a6b67b1128b6ff2a5f2c)]:
|
|
707
|
+
- @spark-web/box@1.0.0
|
|
708
|
+
- @spark-web/theme@1.0.0
|
|
709
|
+
- @spark-web/utils@1.0.0
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# @spark-web/columns — AI Context
|
|
2
|
+
|
|
3
|
+
## What this is
|
|
4
|
+
|
|
5
|
+
CSS grid layout component. Distributes children into equal-width columns by
|
|
6
|
+
default, or proportionally via a `template` array. Supports responsive collapse
|
|
7
|
+
to a single column below a breakpoint. Use `Columns` for filter bars, form
|
|
8
|
+
layouts with side-by-side fields, and any N-column grid.
|
|
9
|
+
|
|
10
|
+
## What this is NOT
|
|
11
|
+
|
|
12
|
+
- Not for a single row of items — use `Row` for horizontal flex layouts
|
|
13
|
+
- Not for vertical stacks — use `Stack`
|
|
14
|
+
- Not for wrapping inline content — use `Inline`
|
|
15
|
+
|
|
16
|
+
## Props interface
|
|
17
|
+
|
|
18
|
+
| Prop | Type | Default | Notes |
|
|
19
|
+
| --------------- | --------------------------------------------------------- | ------- | --------------------------------------------------------------------------- |
|
|
20
|
+
| `gap` | spacing token (responsive) | — | Gap between all grid cells |
|
|
21
|
+
| `template` | `number[]` | — | Fractional column widths, e.g. `[2, 1]` → `2fr 1fr`. Omit for equal columns |
|
|
22
|
+
| `collapseBelow` | `'tablet' \| 'desktop' \| 'wide'` | — | Stack columns vertically below this breakpoint |
|
|
23
|
+
| `alignY` | `'top' \| 'center' \| 'bottom' \| 'stretch'` (responsive) | `'top'` | Vertical alignment of items in each row |
|
|
24
|
+
| `data` | `DataAttributeMap` | — | Test/analytics attributes |
|
|
25
|
+
|
|
26
|
+
Column count is derived from the number of direct children. Each direct child
|
|
27
|
+
occupies one column.
|
|
28
|
+
|
|
29
|
+
## Common patterns
|
|
30
|
+
|
|
31
|
+
### Equal-width 3-column filter bar (collapses on mobile)
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<Columns gap="medium" collapseBelow="tablet">
|
|
35
|
+
<Field label="Role" labelVisibility="hidden">
|
|
36
|
+
<Select options={roleOptions} placeholder="Select role" />
|
|
37
|
+
</Field>
|
|
38
|
+
<Field label="Status" labelVisibility="hidden">
|
|
39
|
+
<Select options={statusOptions} placeholder="Select status" />
|
|
40
|
+
</Field>
|
|
41
|
+
<Field label="Search" labelVisibility="hidden">
|
|
42
|
+
<TextInput placeholder="Search users">
|
|
43
|
+
<InputAdornment placement="start">
|
|
44
|
+
<SearchIcon size="xsmall" tone="placeholder" />
|
|
45
|
+
</InputAdornment>
|
|
46
|
+
</TextInput>
|
|
47
|
+
</Field>
|
|
48
|
+
</Columns>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Proportional 2-column layout
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
{
|
|
55
|
+
/* Left column takes 2/3, right takes 1/3 */
|
|
56
|
+
}
|
|
57
|
+
<Columns gap="large" template={[2, 1]}>
|
|
58
|
+
<MainContent />
|
|
59
|
+
<Sidebar />
|
|
60
|
+
</Columns>;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Do NOTs
|
|
64
|
+
|
|
65
|
+
- NEVER set `display`, `gap` via inline styles, or `gridTemplateColumns`
|
|
66
|
+
directly — use `Columns` props
|
|
67
|
+
- NEVER wrap a single child in `Columns` — use `Box` or `Stack`
|
|
68
|
+
- NEVER use `Columns` when items need to wrap dynamically — use `Inline`
|
|
69
|
+
- NEVER use `template` values that don't sum to a meaningful ratio — keep it
|
|
70
|
+
simple (e.g. `[1, 1]`, `[2, 1]`, `[1, 2, 1]`)
|
package/README.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Columns
|
|
3
|
+
storybookPath: page-layout-columns--default
|
|
4
|
+
isExperimentalPackage: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use the columns primitive to layout content in configurable columns.
|
|
8
|
+
|
|
9
|
+
Each child represents a single column. By default that column will span 1
|
|
10
|
+
fraction of the total number of children.
|
|
11
|
+
|
|
12
|
+
```jsx live
|
|
13
|
+
<Columns>
|
|
14
|
+
<Placeholder />
|
|
15
|
+
<Placeholder />
|
|
16
|
+
<Placeholder />
|
|
17
|
+
</Columns>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
### Gap
|
|
23
|
+
|
|
24
|
+
The spacing between children can be adjusted using the `gap` prop.
|
|
25
|
+
|
|
26
|
+
```jsx live
|
|
27
|
+
<Columns gap="large">
|
|
28
|
+
<Placeholder />
|
|
29
|
+
<Placeholder />
|
|
30
|
+
<Placeholder />
|
|
31
|
+
</Columns>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Vertical alignment
|
|
35
|
+
|
|
36
|
+
Columns can be aligned vertically using the `alignY` prop.
|
|
37
|
+
|
|
38
|
+
```jsx live
|
|
39
|
+
<Stack gap="medium" dividers>
|
|
40
|
+
<Columns gap="small" alignY="top">
|
|
41
|
+
<Placeholder />
|
|
42
|
+
<Placeholder label="top (default)" height={64} />
|
|
43
|
+
<Placeholder />
|
|
44
|
+
</Columns>
|
|
45
|
+
<Columns gap="small" alignY="center">
|
|
46
|
+
<Placeholder />
|
|
47
|
+
<Placeholder label="center" height={64} />
|
|
48
|
+
<Placeholder />
|
|
49
|
+
</Columns>
|
|
50
|
+
<Columns gap="small" alignY="bottom">
|
|
51
|
+
<Placeholder />
|
|
52
|
+
<Placeholder label="bottom" height={64} />
|
|
53
|
+
<Placeholder />
|
|
54
|
+
</Columns>
|
|
55
|
+
<Columns gap="small" alignY="stretch">
|
|
56
|
+
<Placeholder />
|
|
57
|
+
<Placeholder label="stretch" height={64} />
|
|
58
|
+
<Placeholder />
|
|
59
|
+
</Columns>
|
|
60
|
+
</Stack>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Collapsing across breakpoints
|
|
64
|
+
|
|
65
|
+
Columns can be collapsed into a single vertical stack responsively using the
|
|
66
|
+
`collapseBelow` prop.
|
|
67
|
+
|
|
68
|
+
```jsx live
|
|
69
|
+
<Columns gap="large" collapseBelow="desktop">
|
|
70
|
+
<Placeholder />
|
|
71
|
+
<Placeholder />
|
|
72
|
+
<Placeholder />
|
|
73
|
+
</Columns>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Template
|
|
77
|
+
|
|
78
|
+
If you need more control over how your columns are distributed, you can use the
|
|
79
|
+
`template` prop. `template` receives an array of numbers that represent the
|
|
80
|
+
relative width of each column.
|
|
81
|
+
|
|
82
|
+
```jsx live
|
|
83
|
+
<Columns gap="small" template={[1, 3, 1]} collapseBelow="tablet">
|
|
84
|
+
<Box border="field" padding="small">
|
|
85
|
+
<Text>nav</Text>
|
|
86
|
+
</Box>
|
|
87
|
+
<Box border="field" padding="small">
|
|
88
|
+
<Text>main</Text>
|
|
89
|
+
</Box>
|
|
90
|
+
<Box border="field" padding="small">
|
|
91
|
+
<Text>aside</Text>
|
|
92
|
+
</Box>
|
|
93
|
+
</Columns>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Props
|
|
97
|
+
|
|
98
|
+
<PropsTable displayName="Columns" />
|
|
99
|
+
|
|
100
|
+
[`Box`](/package/box) props are also included as `Column` props and are not
|
|
101
|
+
listed here (excluding `display`, `alignItems`, `gap`, `flexDirection`,
|
|
102
|
+
`justifyContent` and `flexWrap`).
|
|
103
|
+
|
|
104
|
+
Extra props are passed into the underlying [`Box`](/package/box) component.
|
|
105
|
+
|
|
106
|
+
[responsive-prop]:
|
|
107
|
+
https://github.com/brighte-labs/spark-web/blob/e503bea4f7668d187ec7a78f99c5ed374417588b/packages/theme/src/themeUtils.ts#L11
|
|
108
|
+
[responsive-range-props]:
|
|
109
|
+
https://github.com/brighte-labs/spark-web/blob/e503bea4f7668d187ec7a78f99c5ed374417588b/packages/theme/src/themeUtils.ts#L130
|
|
110
|
+
[gap]:
|
|
111
|
+
https://github.com/brighte-labs/spark-web/blob/e7f6f4285b4cfd876312cc89fbdd094039aa239a/packages/columns/src/Columns.tsx#L17
|
|
112
|
+
[data-attribute-map]:
|
|
113
|
+
https://github.com/brighte-labs/spark-web/blob/e7f6f4285b4cfd876312cc89fbdd094039aa239a/packages/utils/src/internal/buildDataAttributes.ts#L1
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const alignYLookup: {
|
|
2
|
+
readonly top: "start";
|
|
3
|
+
readonly center: "center";
|
|
4
|
+
readonly bottom: "end";
|
|
5
|
+
readonly stretch: "stretch";
|
|
6
|
+
};
|
|
7
|
+
export type AlignY = keyof typeof alignYLookup;
|
|
8
|
+
export declare const alignYToAlignItems: (prop?: import("@spark-web/theme").ResponsiveProp<"center" | "bottom" | "top" | "stretch"> | undefined) => "center" | "end" | "start" | "stretch" | {
|
|
9
|
+
mobile: "center" | "end" | "start" | "stretch" | undefined;
|
|
10
|
+
tablet: "center" | "end" | "start" | "stretch" | undefined;
|
|
11
|
+
desktop: "center" | "end" | "start" | "stretch" | undefined;
|
|
12
|
+
wide: "center" | "end" | "start" | "stretch" | undefined;
|
|
13
|
+
} | undefined;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { BoxProps } from '@spark-web/box';
|
|
2
|
+
import type { ResponsiveProp, ResponsiveRangeProps, SparkTheme } from '@spark-web/theme';
|
|
3
|
+
import type { DataAttributeMap } from '@spark-web/utils/internal';
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
5
|
+
import type { AlignY } from "./alignment.js";
|
|
6
|
+
type Gap = ResponsiveProp<keyof Omit<SparkTheme['spacing'], 'none'>>;
|
|
7
|
+
type ValidBoxProps = Omit<BoxProps, 'display' | 'alignItems' | 'gap' | 'flexDirection' | 'justifyContent' | 'flexWrap' | 'dangerouslySetInnerHTML'>;
|
|
8
|
+
export type ColumnsProps = {
|
|
9
|
+
/** Vertically align items within the container. */
|
|
10
|
+
alignY?: ResponsiveProp<AlignY>;
|
|
11
|
+
/** Elements representing each column. */
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
/** At which breakpoint, if any, should the columns collapse. */
|
|
14
|
+
collapseBelow?: ResponsiveRangeProps['below'];
|
|
15
|
+
/** Sets data attributes on the component. */
|
|
16
|
+
data?: DataAttributeMap;
|
|
17
|
+
/** The size of the gap between each column. */
|
|
18
|
+
gap?: Gap;
|
|
19
|
+
/** Define the relative width of each column. By default each column is the same width. */
|
|
20
|
+
template?: number[];
|
|
21
|
+
} & ValidBoxProps;
|
|
22
|
+
export declare const Columns: <Comp extends import("react").ElementType = "div">(props: {
|
|
23
|
+
as?: Comp | undefined;
|
|
24
|
+
ref?: import("react").Ref<Comp extends "symbol" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "set" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | keyof HTMLElementTagNameMap ? (HTMLElementTagNameMap & Pick<SVGElementTagNameMap, "symbol" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "set" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view">)[Comp] : Comp extends new (...args: any) => any ? InstanceType<Comp> : undefined> | undefined;
|
|
25
|
+
} & Omit<import("react").PropsWithoutRef<import("react").ComponentProps<Comp>>, "as"> & {
|
|
26
|
+
/** Vertically align items within the container. */
|
|
27
|
+
alignY?: ResponsiveProp<AlignY>;
|
|
28
|
+
/** Elements representing each column. */
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
/** At which breakpoint, if any, should the columns collapse. */
|
|
31
|
+
collapseBelow?: ResponsiveRangeProps["below"];
|
|
32
|
+
/** Sets data attributes on the component. */
|
|
33
|
+
data?: DataAttributeMap;
|
|
34
|
+
/** The size of the gap between each column. */
|
|
35
|
+
gap?: Gap;
|
|
36
|
+
/** Define the relative width of each column. By default each column is the same width. */
|
|
37
|
+
template?: number[];
|
|
38
|
+
} & ValidBoxProps) => import("react").ReactElement;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./declarations/src/index.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhcmstd2ViLWNvbHVtbnMuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
7
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
8
|
+
var react$1 = require('@emotion/react');
|
|
9
|
+
var box = require('@spark-web/box');
|
|
10
|
+
var theme = require('@spark-web/theme');
|
|
11
|
+
var ts = require('@spark-web/utils/ts');
|
|
12
|
+
var react = require('react');
|
|
13
|
+
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
14
|
+
|
|
15
|
+
var alignYLookup = {
|
|
16
|
+
top: 'start',
|
|
17
|
+
center: 'center',
|
|
18
|
+
bottom: 'end',
|
|
19
|
+
stretch: 'stretch'
|
|
20
|
+
};
|
|
21
|
+
var alignYToAlignItems = theme.createResponsiveMapFn(alignYLookup);
|
|
22
|
+
|
|
23
|
+
var _excluded = ["alignY", "collapseBelow", "data", "gap", "template"];
|
|
24
|
+
var Columns = ts.forwardRefWithAs(function (_ref, forwardedRef) {
|
|
25
|
+
var _ref$alignY = _ref.alignY,
|
|
26
|
+
alignY = _ref$alignY === void 0 ? 'top' : _ref$alignY,
|
|
27
|
+
collapseBelow = _ref.collapseBelow,
|
|
28
|
+
data = _ref.data,
|
|
29
|
+
gap = _ref.gap,
|
|
30
|
+
template = _ref.template,
|
|
31
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
32
|
+
var theme$1 = theme.useTheme();
|
|
33
|
+
var alignItems = alignYToAlignItems(alignY);
|
|
34
|
+
var count = react.Children.count(props.children);
|
|
35
|
+
var gridTemplateColumns = template ? template.map(function (c) {
|
|
36
|
+
return "".concat(c, "fr");
|
|
37
|
+
}).join(' ') : "repeat(".concat(count, ", 1fr)");
|
|
38
|
+
var _theme$utils$responsi = theme$1.utils.responsiveRange({
|
|
39
|
+
below: collapseBelow
|
|
40
|
+
}),
|
|
41
|
+
_theme$utils$responsi2 = _slicedToArray(_theme$utils$responsi, 4),
|
|
42
|
+
collapseOnMobile = _theme$utils$responsi2[0],
|
|
43
|
+
collapseOnTablet = _theme$utils$responsi2[1],
|
|
44
|
+
collapseOnDesktop = _theme$utils$responsi2[2],
|
|
45
|
+
collapseOnWide = _theme$utils$responsi2[3];
|
|
46
|
+
return jsxRuntime.jsx(box.Box, _objectSpread({
|
|
47
|
+
ref: forwardedRef,
|
|
48
|
+
css: react$1.css(theme$1.utils.resolveResponsiveProps({
|
|
49
|
+
alignItems: alignItems,
|
|
50
|
+
display: 'grid',
|
|
51
|
+
gap: theme$1.utils.mapResponsiveScale(gap, theme$1.spacing),
|
|
52
|
+
gridTemplateColumns: collapseBelow ? theme$1.utils.optimizeResponsiveArray([collapseOnMobile ? null : gridTemplateColumns, collapseOnTablet ? null : gridTemplateColumns, collapseOnDesktop ? null : gridTemplateColumns, collapseOnWide ? null : gridTemplateColumns]) : gridTemplateColumns,
|
|
53
|
+
// fix flex overflow bug that prevents text truncation
|
|
54
|
+
'> *': {
|
|
55
|
+
minWidth: 0
|
|
56
|
+
}
|
|
57
|
+
})),
|
|
58
|
+
data: data
|
|
59
|
+
}, props));
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
exports.Columns = Columns;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
7
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
8
|
+
var react$1 = require('@emotion/react');
|
|
9
|
+
var box = require('@spark-web/box');
|
|
10
|
+
var theme = require('@spark-web/theme');
|
|
11
|
+
var ts = require('@spark-web/utils/ts');
|
|
12
|
+
var react = require('react');
|
|
13
|
+
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
14
|
+
|
|
15
|
+
var alignYLookup = {
|
|
16
|
+
top: 'start',
|
|
17
|
+
center: 'center',
|
|
18
|
+
bottom: 'end',
|
|
19
|
+
stretch: 'stretch'
|
|
20
|
+
};
|
|
21
|
+
var alignYToAlignItems = theme.createResponsiveMapFn(alignYLookup);
|
|
22
|
+
|
|
23
|
+
var _excluded = ["alignY", "collapseBelow", "data", "gap", "template"];
|
|
24
|
+
var Columns = ts.forwardRefWithAs(function (_ref, forwardedRef) {
|
|
25
|
+
var _ref$alignY = _ref.alignY,
|
|
26
|
+
alignY = _ref$alignY === void 0 ? 'top' : _ref$alignY,
|
|
27
|
+
collapseBelow = _ref.collapseBelow,
|
|
28
|
+
data = _ref.data,
|
|
29
|
+
gap = _ref.gap,
|
|
30
|
+
template = _ref.template,
|
|
31
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
32
|
+
var theme$1 = theme.useTheme();
|
|
33
|
+
var alignItems = alignYToAlignItems(alignY);
|
|
34
|
+
var count = react.Children.count(props.children);
|
|
35
|
+
var gridTemplateColumns = template ? template.map(function (c) {
|
|
36
|
+
return "".concat(c, "fr");
|
|
37
|
+
}).join(' ') : "repeat(".concat(count, ", 1fr)");
|
|
38
|
+
var _theme$utils$responsi = theme$1.utils.responsiveRange({
|
|
39
|
+
below: collapseBelow
|
|
40
|
+
}),
|
|
41
|
+
_theme$utils$responsi2 = _slicedToArray(_theme$utils$responsi, 4),
|
|
42
|
+
collapseOnMobile = _theme$utils$responsi2[0],
|
|
43
|
+
collapseOnTablet = _theme$utils$responsi2[1],
|
|
44
|
+
collapseOnDesktop = _theme$utils$responsi2[2],
|
|
45
|
+
collapseOnWide = _theme$utils$responsi2[3];
|
|
46
|
+
return jsxRuntime.jsx(box.Box, _objectSpread({
|
|
47
|
+
ref: forwardedRef,
|
|
48
|
+
css: react$1.css(theme$1.utils.resolveResponsiveProps({
|
|
49
|
+
alignItems: alignItems,
|
|
50
|
+
display: 'grid',
|
|
51
|
+
gap: theme$1.utils.mapResponsiveScale(gap, theme$1.spacing),
|
|
52
|
+
gridTemplateColumns: collapseBelow ? theme$1.utils.optimizeResponsiveArray([collapseOnMobile ? null : gridTemplateColumns, collapseOnTablet ? null : gridTemplateColumns, collapseOnDesktop ? null : gridTemplateColumns, collapseOnWide ? null : gridTemplateColumns]) : gridTemplateColumns,
|
|
53
|
+
// fix flex overflow bug that prevents text truncation
|
|
54
|
+
'> *': {
|
|
55
|
+
minWidth: 0
|
|
56
|
+
}
|
|
57
|
+
})),
|
|
58
|
+
data: data
|
|
59
|
+
}, props));
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
exports.Columns = Columns;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
|
|
3
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
4
|
+
import { css } from '@emotion/react';
|
|
5
|
+
import { Box } from '@spark-web/box';
|
|
6
|
+
import { createResponsiveMapFn, useTheme } from '@spark-web/theme';
|
|
7
|
+
import { forwardRefWithAs } from '@spark-web/utils/ts';
|
|
8
|
+
import { Children } from 'react';
|
|
9
|
+
import { jsx } from '@emotion/react/jsx-runtime';
|
|
10
|
+
|
|
11
|
+
var alignYLookup = {
|
|
12
|
+
top: 'start',
|
|
13
|
+
center: 'center',
|
|
14
|
+
bottom: 'end',
|
|
15
|
+
stretch: 'stretch'
|
|
16
|
+
};
|
|
17
|
+
var alignYToAlignItems = createResponsiveMapFn(alignYLookup);
|
|
18
|
+
|
|
19
|
+
var _excluded = ["alignY", "collapseBelow", "data", "gap", "template"];
|
|
20
|
+
var Columns = forwardRefWithAs(function (_ref, forwardedRef) {
|
|
21
|
+
var _ref$alignY = _ref.alignY,
|
|
22
|
+
alignY = _ref$alignY === void 0 ? 'top' : _ref$alignY,
|
|
23
|
+
collapseBelow = _ref.collapseBelow,
|
|
24
|
+
data = _ref.data,
|
|
25
|
+
gap = _ref.gap,
|
|
26
|
+
template = _ref.template,
|
|
27
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
28
|
+
var theme = useTheme();
|
|
29
|
+
var alignItems = alignYToAlignItems(alignY);
|
|
30
|
+
var count = Children.count(props.children);
|
|
31
|
+
var gridTemplateColumns = template ? template.map(function (c) {
|
|
32
|
+
return "".concat(c, "fr");
|
|
33
|
+
}).join(' ') : "repeat(".concat(count, ", 1fr)");
|
|
34
|
+
var _theme$utils$responsi = theme.utils.responsiveRange({
|
|
35
|
+
below: collapseBelow
|
|
36
|
+
}),
|
|
37
|
+
_theme$utils$responsi2 = _slicedToArray(_theme$utils$responsi, 4),
|
|
38
|
+
collapseOnMobile = _theme$utils$responsi2[0],
|
|
39
|
+
collapseOnTablet = _theme$utils$responsi2[1],
|
|
40
|
+
collapseOnDesktop = _theme$utils$responsi2[2],
|
|
41
|
+
collapseOnWide = _theme$utils$responsi2[3];
|
|
42
|
+
return jsx(Box, _objectSpread({
|
|
43
|
+
ref: forwardedRef,
|
|
44
|
+
css: css(theme.utils.resolveResponsiveProps({
|
|
45
|
+
alignItems: alignItems,
|
|
46
|
+
display: 'grid',
|
|
47
|
+
gap: theme.utils.mapResponsiveScale(gap, theme.spacing),
|
|
48
|
+
gridTemplateColumns: collapseBelow ? theme.utils.optimizeResponsiveArray([collapseOnMobile ? null : gridTemplateColumns, collapseOnTablet ? null : gridTemplateColumns, collapseOnDesktop ? null : gridTemplateColumns, collapseOnWide ? null : gridTemplateColumns]) : gridTemplateColumns,
|
|
49
|
+
// fix flex overflow bug that prevents text truncation
|
|
50
|
+
'> *': {
|
|
51
|
+
minWidth: 0
|
|
52
|
+
}
|
|
53
|
+
})),
|
|
54
|
+
data: data
|
|
55
|
+
}, props));
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export { Columns };
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@spark-web/columns",
|
|
3
|
+
"version": "0.0.0-snapshot-release-20260409001813",
|
|
4
|
+
"homepage": "https://github.com/brighte-labs/spark-web#readme",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/brighte-labs/spark-web.git",
|
|
8
|
+
"directory": "packages/columns"
|
|
9
|
+
},
|
|
10
|
+
"main": "dist/spark-web-columns.cjs.js",
|
|
11
|
+
"module": "dist/spark-web-columns.esm.js",
|
|
12
|
+
"files": [
|
|
13
|
+
"CHANGELOG.md",
|
|
14
|
+
"CLAUDE.md",
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@babel/runtime": "^7.25.0",
|
|
20
|
+
"@emotion/react": "^11.14.0",
|
|
21
|
+
"@spark-web/box": "0.0.0-snapshot-release-20260409001813",
|
|
22
|
+
"@spark-web/theme": "^5.13.0",
|
|
23
|
+
"@spark-web/utils": "^5.1.0"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/react": "^19.1.0",
|
|
27
|
+
"react": "^19.1.0"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
31
|
+
},
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=14"
|
|
34
|
+
}
|
|
35
|
+
}
|