baseline-kit 3.0.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/README.md +226 -334
  3. package/dist/baseline-kit.css +7 -22
  4. package/dist/core.cjs +1 -0
  5. package/dist/core.d.ts +354 -0
  6. package/dist/core.mjs +2 -0
  7. package/dist/guide.cjs +2 -0
  8. package/dist/guide.cjs.map +1 -0
  9. package/dist/guide.css +2 -0
  10. package/dist/guide.d.ts +146 -0
  11. package/dist/guide.mjs +586 -0
  12. package/dist/guide.mjs.map +1 -0
  13. package/dist/index.cjs +2 -2
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.ts +204 -30
  16. package/dist/index.mjs +620 -1747
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/remix-server.d.ts +8 -0
  19. package/dist/remix-server.mjs +15 -0
  20. package/dist/remix-server.mjs.map +1 -0
  21. package/dist/remix.css +2 -0
  22. package/dist/remix.d.ts +177 -0
  23. package/dist/remix.mjs +989 -0
  24. package/dist/remix.mjs.map +1 -0
  25. package/dist/reset.css +43 -0
  26. package/dist/src-C-1u5WNS.cjs +2 -0
  27. package/dist/src-C-1u5WNS.cjs.map +1 -0
  28. package/dist/src-C3TICsw6.js +547 -0
  29. package/dist/src-C3TICsw6.js.map +1 -0
  30. package/dist/styles.css +1 -1
  31. package/dist/theme/dark.css +0 -8
  32. package/dist/theme/default.css +0 -10
  33. package/dist/theme/tokens.css +1 -11
  34. package/dist/theme.css +4 -19
  35. package/package.json +135 -46
  36. package/dist/README.md +0 -446
  37. package/dist/components/Baseline/Baseline.d.ts +0 -48
  38. package/dist/components/Baseline/index.d.ts +0 -6
  39. package/dist/components/Box/Box.d.ts +0 -73
  40. package/dist/components/Box/index.d.ts +0 -6
  41. package/dist/components/Config/Config.d.ts +0 -179
  42. package/dist/components/Config/defaults.d.ts +0 -25
  43. package/dist/components/Config/index.d.ts +0 -11
  44. package/dist/components/Guide/Guide.d.ts +0 -70
  45. package/dist/components/Guide/index.d.ts +0 -6
  46. package/dist/components/Guide/types.d.ts +0 -144
  47. package/dist/components/Guide/validation.d.ts +0 -82
  48. package/dist/components/Layout/Layout.d.ts +0 -73
  49. package/dist/components/Layout/index.d.ts +0 -10
  50. package/dist/components/Padder/Padder.d.ts +0 -67
  51. package/dist/components/Padder/index.d.ts +0 -10
  52. package/dist/components/Spacer/Spacer.d.ts +0 -48
  53. package/dist/components/Spacer/index.d.ts +0 -10
  54. package/dist/components/Stack/Stack.d.ts +0 -84
  55. package/dist/components/Stack/index.d.ts +0 -10
  56. package/dist/components/index.d.ts +0 -16
  57. package/dist/components/styles/index.d.ts +0 -11
  58. package/dist/components/types.d.ts +0 -102
  59. package/dist/hooks/index.d.ts +0 -11
  60. package/dist/hooks/useBaseline.d.ts +0 -55
  61. package/dist/hooks/useConfig.d.ts +0 -41
  62. package/dist/hooks/useDebug.d.ts +0 -49
  63. package/dist/hooks/useGuide.d.ts +0 -61
  64. package/dist/hooks/useIsClient.d.ts +0 -6
  65. package/dist/hooks/useMeasure.d.ts +0 -35
  66. package/dist/hooks/useVirtual.d.ts +0 -60
  67. package/dist/styles.d.ts +0 -6
  68. package/dist/theme.d.ts +0 -6
  69. package/dist/utils/convert.d.ts +0 -24
  70. package/dist/utils/grid.d.ts +0 -22
  71. package/dist/utils/index.d.ts +0 -15
  72. package/dist/utils/math.d.ts +0 -48
  73. package/dist/utils/merge.d.ts +0 -117
  74. package/dist/utils/normalize.d.ts +0 -30
  75. package/dist/utils/padding.d.ts +0 -11
  76. package/dist/utils/parse.d.ts +0 -18
  77. package/dist/utils/snapping.d.ts +0 -28
  78. package/dist/utils/ssr.d.ts +0 -26
  79. package/dist/utils/timing.d.ts +0 -45
package/dist/remix.mjs ADDED
@@ -0,0 +1,989 @@
1
+ import { jsx as e } from "remix/ui/jsx-runtime";
2
+ import { clientEntry as t, ref as n } from "remix/ui";
3
+ //#region packages/core/src/config/defaults.ts
4
+ var r = {
5
+ base: 8,
6
+ baseline: {
7
+ variant: "line",
8
+ debugging: "hidden",
9
+ colors: {
10
+ line: "var(--bk-baseline-color-line-theme, hsla(240, 60%, 40%, 0.15))",
11
+ flat: "var(--bk-baseline-color-flat-theme, hsla(230, 100%, 70%, 0.2))"
12
+ }
13
+ },
14
+ guide: {
15
+ variant: "line",
16
+ debugging: "hidden",
17
+ colors: {
18
+ line: "var(--bk-guide-color-line-theme, hsla(240, 60%, 40%, 0.15))",
19
+ pattern: "var(--bk-guide-color-pattern-theme, hsla(230, 100%, 70%, 0.2))",
20
+ auto: "var(--bk-guide-color-auto-theme, hsla(200, 100%, 70%, 0.15))",
21
+ fixed: "var(--bk-guide-color-fixed-theme, hsla(200, 100%, 70%, 0.15))"
22
+ }
23
+ },
24
+ spacer: {
25
+ variant: "line",
26
+ debugging: "hidden",
27
+ colors: {
28
+ line: "var(--bk-spacer-color-line-theme, hsla(270, 60%, 40%, 0.6))",
29
+ flat: "var(--bk-spacer-color-flat-theme, hsla(230, 100%, 70%, 0.2))",
30
+ text: "var(--bk-spacer-color-text-theme, hsla(270, 60%, 40%, 1))"
31
+ }
32
+ },
33
+ box: {
34
+ debugging: "hidden",
35
+ colors: {
36
+ line: "var(--bk-box-color-line-theme, hsla(300, 60%, 40%, 0.6))",
37
+ flat: "var(--bk-box-color-flat-theme, hsla(260, 100%, 70%, 0.2))",
38
+ text: "var(--bk-box-color-text-theme, hsla(300, 60%, 40%, 0.9))"
39
+ }
40
+ },
41
+ padder: {
42
+ debugging: "hidden",
43
+ color: "var(--bk-padder-color-theme, hsla(270, 60%, 40%, 0.6))"
44
+ }
45
+ }, i = [
46
+ "baseline",
47
+ "guide",
48
+ "spacer",
49
+ "box",
50
+ "padder"
51
+ ], a = (e) => {
52
+ let { parentConfig: t, base: n } = e, r = {};
53
+ for (let n of i) {
54
+ let i = e[n], a = t[n], o = {
55
+ ...a,
56
+ ...i
57
+ };
58
+ i && "colors" in i && i.colors && "colors" in a && (o.colors = {
59
+ ...a.colors,
60
+ ...i.colors
61
+ }), r[n] = o;
62
+ }
63
+ return {
64
+ base: n ?? t.base,
65
+ ...r
66
+ };
67
+ };
68
+ //#endregion
69
+ //#region packages/core/src/utils/parse.ts
70
+ function o(e) {
71
+ let t = e.trim().match(/^([+-]?[\d.]+)([a-zA-Z%]+)$/);
72
+ return t ? {
73
+ value: parseFloat(t[1]),
74
+ unit: t[2]
75
+ } : null;
76
+ }
77
+ function s(e, t) {
78
+ return e === void 0 && t !== void 0 ? `${t}px` : e === "auto" || typeof e == "string" && /^(auto|100%|0|.*(fr|vh|vw|vmin|vmax|rem))$/.test(e) ? String(e) : typeof e == "number" ? `${e}px` : e ?? "";
79
+ }
80
+ //#endregion
81
+ //#region packages/core/src/utils/convert.ts
82
+ var c = {
83
+ parentSize: 0,
84
+ viewportWidth: 1920,
85
+ viewportHeight: 1080,
86
+ rootFontSize: 16,
87
+ parentFontSize: 16
88
+ }, l = {
89
+ px: 1,
90
+ in: 96,
91
+ cm: 37.8,
92
+ mm: 3.78,
93
+ pt: 1.33,
94
+ pc: 16
95
+ }, u = {
96
+ em: (e) => e.parentFontSize,
97
+ rem: (e) => e.rootFontSize,
98
+ vh: (e) => e.viewportHeight / 100,
99
+ vw: (e) => e.viewportWidth / 100,
100
+ vmin: (e) => Math.min(e.viewportWidth, e.viewportHeight) / 100,
101
+ vmax: (e) => Math.max(e.viewportWidth, e.viewportHeight) / 100,
102
+ "%": (e) => e.parentSize / 100
103
+ };
104
+ function d(e, t) {
105
+ if (typeof e == "number") return e;
106
+ if (typeof e != "string") return null;
107
+ let n = o(e);
108
+ if (!n) return null;
109
+ let { value: r, unit: i } = n;
110
+ if (i in l) return r * l[i];
111
+ if (i === "auto") return null;
112
+ let a = u[i];
113
+ return a ? r * a({
114
+ ...c,
115
+ ...t
116
+ }) : null;
117
+ }
118
+ //#endregion
119
+ //#region packages/core/src/utils/math.ts
120
+ function f(e, t, n) {
121
+ return Math.min(Math.max(e, t), n);
122
+ }
123
+ function p(e) {
124
+ let { height: t, top: n, bottom: r, base: i } = e, a = (t ?? 0) - (n + r);
125
+ return Math.max(1, Math.floor(a / i));
126
+ }
127
+ //#endregion
128
+ //#region packages/core/src/utils/normalize.ts
129
+ function m(e, t = {}) {
130
+ let { base: n = 8, round: r = !0, clamp: i, context: a } = t;
131
+ if (e === "auto") return n;
132
+ let o = null;
133
+ if (typeof e == "number" ? o = e : typeof e == "string" && (o = d(e, a) ?? n), o === null && (o = n), n <= 0) return o;
134
+ let s = r ? Math.round(o / n) * n : o;
135
+ return i === void 0 ? s : f(s, i.min ?? -Infinity, i.max ?? Infinity);
136
+ }
137
+ function h(e, t, n) {
138
+ return !e || e[0] === void 0 && e[1] === void 0 ? t : [e[0] === void 0 ? t[0] : m(e[0], n), e[1] === void 0 ? t[1] : m(e[1], n)];
139
+ }
140
+ //#endregion
141
+ //#region packages/core/src/utils/padding.ts
142
+ function g(e) {
143
+ if ("padding" in e && e.padding != null) return _(e.padding);
144
+ let t = "block" in e && e.block != null ? v(e.block) : {
145
+ top: 0,
146
+ bottom: 0
147
+ }, n = "inline" in e && e.inline != null ? y(e.inline) : {
148
+ left: 0,
149
+ right: 0
150
+ };
151
+ return {
152
+ top: t.top,
153
+ right: n.right,
154
+ bottom: t.bottom,
155
+ left: n.left
156
+ };
157
+ }
158
+ function _(e) {
159
+ if (typeof e == "number") return {
160
+ top: e,
161
+ right: e,
162
+ bottom: e,
163
+ left: e
164
+ };
165
+ if (Array.isArray(e)) {
166
+ let [t = 0, n = 0, r, i] = e;
167
+ return {
168
+ top: t,
169
+ right: n,
170
+ bottom: r ?? t,
171
+ left: i ?? n
172
+ };
173
+ }
174
+ return typeof e == "object" ? {
175
+ top: e.top ?? 0,
176
+ right: e.right ?? 0,
177
+ bottom: e.bottom ?? 0,
178
+ left: e.left ?? 0
179
+ } : {
180
+ top: 0,
181
+ right: 0,
182
+ bottom: 0,
183
+ left: 0
184
+ };
185
+ }
186
+ function v(e) {
187
+ if (typeof e == "number") return {
188
+ top: e,
189
+ bottom: e
190
+ };
191
+ if (Array.isArray(e)) {
192
+ let [t, n] = e;
193
+ return {
194
+ top: t ?? 0,
195
+ bottom: n ?? 0
196
+ };
197
+ }
198
+ return typeof e == "object" ? {
199
+ top: e.start ?? 0,
200
+ bottom: e.end ?? 0
201
+ } : {
202
+ top: 0,
203
+ bottom: 0
204
+ };
205
+ }
206
+ function y(e) {
207
+ if (typeof e == "number") return {
208
+ left: e,
209
+ right: e
210
+ };
211
+ if (Array.isArray(e)) {
212
+ let [t, n] = e;
213
+ return {
214
+ left: t ?? 0,
215
+ right: n ?? 0
216
+ };
217
+ }
218
+ return typeof e == "object" ? {
219
+ left: e.start ?? 0,
220
+ right: e.end ?? 0
221
+ } : {
222
+ left: 0,
223
+ right: 0
224
+ };
225
+ }
226
+ //#endregion
227
+ //#region packages/core/src/utils/snapping.ts
228
+ function b(e, t, n, r) {
229
+ let i = g({ padding: n });
230
+ if (r === "none") return i;
231
+ if (r === "height") {
232
+ let n = e % t;
233
+ n !== 0 && (i.bottom += t - n);
234
+ }
235
+ if (r === "clamp") {
236
+ i.top %= t;
237
+ let n = e % t;
238
+ n !== 0 && (i.bottom += t - n), i.bottom %= t;
239
+ }
240
+ return i;
241
+ }
242
+ //#endregion
243
+ //#region packages/core/src/utils/merge.ts
244
+ function x(e, t, n) {
245
+ let r = typeof e == "string" ? e : e.key, i = typeof e == "string" ? t : e.value, a = typeof e == "string" ? n : e.defaultStyles, o = typeof e == "object" ? e.skipDimensions : void 0;
246
+ return o && (o.fitContent?.includes(r) && i === "fit-content" || o.auto?.includes(r) && i === "auto" || o.fullSize?.includes(r) && (i === "100%" || i === "100vh" || i === "100vw")) || i === a[r] ? {} : { [r]: i };
247
+ }
248
+ //#endregion
249
+ //#region packages/core/src/validation/guide.ts
250
+ var ee = /^\d*\.?\d+(?:fr|px|%|em|rem|vh|vw|vmin|vmax|pt|pc|in|cm|mm)$/, S = (e) => typeof e == "number" ? Number.isFinite(e) && e >= 0 : typeof e == "string" ? e === "auto" || e === "100%" || ee.test(e) : !1, te = (e) => Array.isArray(e) && e.length > 0 && e.every(S), C = {
251
+ template: "none",
252
+ columnsCount: 0,
253
+ calculatedGap: 0,
254
+ isValid: !1
255
+ };
256
+ function ne(e, t, n) {
257
+ let r = t.variant ?? "line", i = t.base ?? 8, a = m(t.gap ?? 0, {
258
+ base: i,
259
+ context: n
260
+ });
261
+ if (!e) return C;
262
+ switch (r) {
263
+ case "line": {
264
+ let t = a === 0 ? 0 : a - 1, n = t + 1, r = t === 0 ? Math.max(1, Math.floor(e) + 1) : Math.max(1, Math.floor((e + 1) / n) + 1);
265
+ return {
266
+ template: `repeat(${r}, 1px)`,
267
+ columnsCount: r,
268
+ calculatedGap: a > 0 ? a - 1 : a,
269
+ isValid: !0
270
+ };
271
+ }
272
+ case "pattern": {
273
+ if (!t.columns || !Array.isArray(t.columns) || !te(t.columns)) return C;
274
+ let e = t.columns.map((e) => typeof e == "number" ? `${e}px` : e);
275
+ return e.some((e) => e === "0" || e === "0px") ? C : {
276
+ template: e.join(" "),
277
+ columnsCount: e.length,
278
+ calculatedGap: a,
279
+ isValid: !0
280
+ };
281
+ }
282
+ case "fixed": {
283
+ let e = typeof t.columns == "number" ? t.columns : 0;
284
+ return e < 1 ? C : {
285
+ template: `repeat(${e}, ${t.columnWidth ? s(t.columnWidth) : "1fr"})`,
286
+ columnsCount: e,
287
+ calculatedGap: a,
288
+ isValid: !0
289
+ };
290
+ }
291
+ case "auto": {
292
+ let r = t.columnWidth ?? "auto";
293
+ if (r === "auto") return {
294
+ template: "repeat(auto-fill, minmax(0, 1fr))",
295
+ columnsCount: 1,
296
+ calculatedGap: a,
297
+ isValid: !0
298
+ };
299
+ let i = typeof r == "number" ? `${r}px` : r.toString(), o = d(i, n) ?? 0, s = o > 0 ? Math.max(1, Math.floor((e + a) / (o + a))) : 1;
300
+ return {
301
+ template: `repeat(auto-fill, ${i})`,
302
+ columnsCount: s,
303
+ calculatedGap: a,
304
+ isValid: !0
305
+ };
306
+ }
307
+ default: {
308
+ let t = Math.max(1, Math.floor(e / (a + 1)) + 1);
309
+ return {
310
+ template: `repeat(${t}, 1px)`,
311
+ columnsCount: t,
312
+ calculatedGap: a,
313
+ isValid: !0
314
+ };
315
+ }
316
+ }
317
+ }
318
+ var w = (e, t, n) => {
319
+ let r = {};
320
+ return e === void 0 ? (t !== void 0 && (r.gridColumn = `span ${t}`), n !== void 0 && (r.gridRow = `span ${n}`)) : (r.gridColumn = `span ${e}`, r.gridRow = `span ${e}`), r;
321
+ };
322
+ //#endregion
323
+ //#region packages/core/src/descriptors/guide.ts
324
+ function T({ variant: e, base: t, gap: n, columns: r, columnWidth: i }) {
325
+ switch (e) {
326
+ case "line": return {
327
+ variant: "line",
328
+ gap: n,
329
+ base: t
330
+ };
331
+ case "pattern":
332
+ if (r && Array.isArray(r)) return {
333
+ variant: "pattern",
334
+ columns: r,
335
+ gap: n,
336
+ base: t
337
+ };
338
+ break;
339
+ case "fixed": if (r !== void 0) {
340
+ let e = typeof r == "number" ? r : parseInt(String(r), 10);
341
+ return {
342
+ variant: "fixed",
343
+ columns: isNaN(e) ? 12 : e,
344
+ columnWidth: i || "60px",
345
+ gap: n,
346
+ base: t
347
+ };
348
+ }
349
+ }
350
+ return {
351
+ variant: "auto",
352
+ columnWidth: i || "1fr",
353
+ gap: n,
354
+ base: t
355
+ };
356
+ }
357
+ var E = (e, t) => ({
358
+ "--bkgd-w": "100%",
359
+ "--bkgd-h": "100%",
360
+ "--bkgd-mw": "none",
361
+ "--bkgd-cw": "60px",
362
+ "--bkgd-gw": "24px",
363
+ "--bkgd-n": "12",
364
+ "--bkgd-b": `${e}px`,
365
+ "--bkgd-cl": t,
366
+ "--bkgd-g": "0"
367
+ });
368
+ function D(e) {
369
+ let { base: t, colors: n, variant: r, align: i, width: a, height: o, columnWidth: c, maxWidth: l, color: u, template: d, columnsCount: f, calculatedGap: p, isVisible: m } = e, h = E(t, n.line), g = {
370
+ "--bkgd-cl": u ?? n.line,
371
+ "--bkgd-cp": u ?? n.pattern,
372
+ "--bkgd-ca": u ?? n.auto,
373
+ "--bkgd-cf": u ?? n.fixed,
374
+ "--bkgd-w": s(a ?? "100%"),
375
+ "--bkgd-h": s(o ?? "100%"),
376
+ ...x({
377
+ key: "--bkgd-mw",
378
+ value: s(l || "none"),
379
+ defaultStyles: h
380
+ }),
381
+ ...x({
382
+ key: "--bkgd-cw",
383
+ value: s(c || "60px"),
384
+ defaultStyles: h
385
+ }),
386
+ ...x({
387
+ key: "--bkgd-n",
388
+ value: `${f}`,
389
+ defaultStyles: h
390
+ }),
391
+ ...x({
392
+ key: "--bkgd-b",
393
+ value: "0",
394
+ defaultStyles: h
395
+ }),
396
+ ...x({
397
+ key: "--bkgd-cl",
398
+ value: u ?? n.line,
399
+ defaultStyles: h
400
+ }),
401
+ ...x({
402
+ key: "--bkgd-g",
403
+ value: `${p}px`,
404
+ defaultStyles: h
405
+ }),
406
+ ...x({
407
+ key: "--bkgd-j",
408
+ value: i || "center",
409
+ defaultStyles: h
410
+ }),
411
+ ...d && d !== "none" ? { "--bkgd-t": d } : {}
412
+ }, _ = u ?? (r && r in n ? n[r] : void 0) ?? n.line, v = r === "line", y = ["gde", m ? "v" : "h"];
413
+ return v && y.push("line"), v && (g["--bkgd-line-color"] = "var(--bkgd-cl)", g["--bkgd-line-period"] = `${p + 1}px`), {
414
+ containerStyle: g,
415
+ columnColor: _,
416
+ columnsCount: f,
417
+ calculatedGap: p,
418
+ template: d,
419
+ isVisible: m,
420
+ isLineVariant: v,
421
+ classTokens: y
422
+ };
423
+ }
424
+ //#endregion
425
+ //#region packages/core/src/descriptors/baseline.ts
426
+ function O(e) {
427
+ let { base: t, colors: n, variant: r, width: i, height: a, color: o, containerWidth: c, containerHeight: l, spacing: u, isVisible: d } = e, { top: f, right: m, bottom: _, left: v } = g(u), y = [
428
+ f,
429
+ m,
430
+ _,
431
+ v
432
+ ].map((e) => e ? `${e}px` : "0").join(" "), b = y === "0 0 0 0" ? void 0 : y, x = p({
433
+ height: l > 0 ? l : h([void 0, a], [c, 0])[1],
434
+ top: f,
435
+ bottom: _,
436
+ base: t
437
+ });
438
+ return {
439
+ containerStyle: {
440
+ ...i === void 0 ? {} : { "--bkbl-w": s(i) },
441
+ ...a === void 0 ? {} : { "--bkbl-h": s(a) },
442
+ "--bkbl-cl": o ?? n.line,
443
+ "--bkbl-cf": o ?? n.flat,
444
+ "--bkbl-c": r === "line" ? "var(--bkbl-cl)" : "var(--bkbl-cf)",
445
+ ...b ? { padding: b } : {}
446
+ },
447
+ rowCount: x,
448
+ getRowStyle: (e) => ({
449
+ "--bkbl-rt": e === 0 ? "0px" : `${e * t}px`,
450
+ "--bkbl-rh": r === "line" ? "1px" : `${t}px`
451
+ }),
452
+ padding: b,
453
+ isVisible: d,
454
+ classTokens: ["bas", d ? "v" : "h"]
455
+ };
456
+ }
457
+ //#endregion
458
+ //#region packages/core/src/descriptors/box.ts
459
+ function k(e) {
460
+ let { lineColor: t, width: n, height: r, span: i, colSpan: a, rowSpan: o, isVisible: c } = e, l = {
461
+ ...n === void 0 ? {} : { "--bkbx-w": s(n) },
462
+ ...r === void 0 ? {} : { "--bkbx-h": s(r) },
463
+ "--bkbx-cl": t
464
+ }, u = w(i, a, o), d = ["box"];
465
+ return c && d.push("v"), {
466
+ boxStyle: l,
467
+ gridSpanStyle: u,
468
+ classTokens: d
469
+ };
470
+ }
471
+ //#endregion
472
+ //#region packages/core/src/descriptors/spacer.ts
473
+ function A(e) {
474
+ let { base: t, colors: n, width: r, height: i, color: a, variant: o, isVisible: c } = e, [l, u] = h([r, i], [0, 0], {
475
+ base: t,
476
+ suppressWarnings: !0
477
+ }), d = {
478
+ ...i === void 0 ? {} : { "--bksp-h": s(u) },
479
+ ...r === void 0 ? {} : { "--bksp-w": s(l) },
480
+ "--bksp-b": `${t}px`,
481
+ "--bksp-ct": a ?? n.text,
482
+ "--bksp-cl": a ?? n.line,
483
+ "--bksp-cf": a ?? n.flat
484
+ }, f = ["spr"];
485
+ return c && f.push(o), {
486
+ style: d,
487
+ normWidth: l,
488
+ normHeight: u,
489
+ classTokens: f
490
+ };
491
+ }
492
+ //#endregion
493
+ //#region packages/core/src/descriptors/padder.ts
494
+ function j(e) {
495
+ let { base: t, color: n, width: r, height: i, padding: a, enableSpacers: o, isVisible: c } = e, l = {};
496
+ if (r !== void 0 && r !== "fit-content" && (l["--bkpd-w"] = s(r)), i !== void 0 && i !== "fit-content" && (l["--bkpd-h"] = s(i)), l["--bkpd-b"] = `${t}px`, l["--bkpd-c"] = n, !o) {
497
+ let { top: e, right: t, bottom: n, left: r } = a;
498
+ (e > 0 || n > 0) && (l.paddingBlock = `${e}px ${n}px`), (r > 0 || t > 0) && (l.paddingInline = `${r}px ${t}px`);
499
+ }
500
+ let u = ["pad"];
501
+ return c && o && u.push("v"), {
502
+ containerStyle: l,
503
+ classTokens: u
504
+ };
505
+ }
506
+ //#endregion
507
+ //#region packages/remix/src/Config.ts
508
+ function M(e) {
509
+ return () => {
510
+ let t = a({
511
+ parentConfig: e.props.__baselineConfig ?? e.context.get(N) ?? r,
512
+ base: e.props.base,
513
+ baseline: e.props.baseline,
514
+ guide: e.props.guide,
515
+ spacer: e.props.spacer,
516
+ box: e.props.box,
517
+ padder: e.props.padder
518
+ });
519
+ return e.context.set(t), e.props.children ?? null;
520
+ };
521
+ }
522
+ var N = M, P = (e) => {
523
+ let t = null, n = null;
524
+ return [(...r) => {
525
+ n = r, t !== null && cancelAnimationFrame(t), t = requestAnimationFrame(() => {
526
+ e(...n), t = null, n = null;
527
+ });
528
+ }, () => {
529
+ t !== null && (cancelAnimationFrame(t), t = null, n = null);
530
+ }];
531
+ };
532
+ //#endregion
533
+ //#region packages/dom/src/measure.ts
534
+ function re(e, t) {
535
+ let n = {
536
+ width: 0,
537
+ height: 0
538
+ }, r = () => {
539
+ try {
540
+ let r = e.getBoundingClientRect(), i = {
541
+ width: Math.round(r.width),
542
+ height: Math.round(r.height)
543
+ };
544
+ (i.width !== n.width || i.height !== n.height) && (n = i, t(i));
545
+ } catch {}
546
+ }, [i, a] = P(r);
547
+ r();
548
+ let o = new ResizeObserver(i);
549
+ return o.observe(e), {
550
+ refresh: i,
551
+ disconnect() {
552
+ o.disconnect(), a();
553
+ }
554
+ };
555
+ }
556
+ //#endregion
557
+ //#region packages/dom/src/virtual.ts
558
+ function ie(e, t, n) {
559
+ let { totalItems: r, itemHeight: i, buffer: a = 0 } = t;
560
+ if (!Number.isFinite(i) || i <= 0) throw Error("createVirtualTracker requires itemHeight to be greater than 0");
561
+ if (!Number.isFinite(r) || r < 0) throw Error("createVirtualTracker requires totalItems to be 0 or greater");
562
+ let o = () => {
563
+ let t = e.getBoundingClientRect().top + window.scrollY, n = Math.max(0, window.scrollY - t - a), o = n + window.innerHeight + a * 2;
564
+ return {
565
+ start: Math.max(0, Math.floor(n / i)),
566
+ end: Math.min(r, Math.ceil(o / i))
567
+ };
568
+ }, s = {
569
+ start: 0,
570
+ end: r
571
+ }, [c, l] = P(() => {
572
+ let e = o();
573
+ (e.start !== s.start || e.end !== s.end) && (s = e, n(e));
574
+ }), u = { passive: !0 };
575
+ window.addEventListener("scroll", c, u), window.addEventListener("resize", c, u);
576
+ let d = new IntersectionObserver(c, { threshold: 0 });
577
+ return d.observe(e), c(), {
578
+ refresh: c,
579
+ disconnect() {
580
+ window.removeEventListener("scroll", c, u), window.removeEventListener("resize", c, u), d.disconnect(), l();
581
+ }
582
+ };
583
+ }
584
+ //#endregion
585
+ //#region packages/remix/src/shared.ts
586
+ function F(...e) {
587
+ return e.filter(Boolean).join(" ");
588
+ }
589
+ function I(...e) {
590
+ let t = {};
591
+ for (let n of e) if (n) {
592
+ if (typeof n == "string") {
593
+ t.cssText = n;
594
+ continue;
595
+ }
596
+ Object.assign(t, n);
597
+ }
598
+ return t;
599
+ }
600
+ function L(e, t, n) {
601
+ return e.context.get(t) ?? n;
602
+ }
603
+ function R(e, t) {
604
+ let n = e ?? t;
605
+ return {
606
+ isShown: n === "visible",
607
+ isNone: n === "none",
608
+ debugging: n
609
+ };
610
+ }
611
+ var z = 40, B = /* @__PURE__ */ new WeakSet(), V = [], H = !1;
612
+ function U() {
613
+ H = !1;
614
+ let e = V.splice(0, z);
615
+ for (let t of e) {
616
+ if (t.signal.aborted) {
617
+ B.delete(t);
618
+ continue;
619
+ }
620
+ try {
621
+ t.update().catch(() => void 0).finally(() => B.delete(t));
622
+ } catch {
623
+ B.delete(t);
624
+ }
625
+ }
626
+ V.length > 0 && W();
627
+ }
628
+ function W() {
629
+ H || (H = !0, setTimeout(typeof requestAnimationFrame == "function" ? () => requestAnimationFrame(U) : () => setTimeout(U, 0), 0));
630
+ }
631
+ function G(e) {
632
+ e.signal.aborted || B.has(e) || (B.add(e), V.push(e), W());
633
+ }
634
+ function K(n, i) {
635
+ let a = t(n, i);
636
+ return ((t) => () => {
637
+ let n = t.context.get(N), i = t.props.__baselineConfig ?? n ?? r;
638
+ return e(a, {
639
+ ...t.props,
640
+ __baselineConfig: i
641
+ });
642
+ });
643
+ }
644
+ function q(e) {
645
+ let t = null, r, i = !1, a = 0, o = (e) => {
646
+ e.aborted || i || a >= 10 || (a += 1, r?.refresh(), requestAnimationFrame(() => o(e)));
647
+ };
648
+ return {
649
+ attach: n((n, s) => {
650
+ t = n, typeof ResizeObserver < "u" && (r = re(n, (t) => {
651
+ i = t.width > 0 || t.height > 0;
652
+ let n = () => {
653
+ s.aborted || e(t);
654
+ };
655
+ typeof requestAnimationFrame == "function" ? requestAnimationFrame(n) : queueMicrotask(n);
656
+ }), queueMicrotask(() => {
657
+ s.aborted || (r?.refresh(), requestAnimationFrame(() => o(s)));
658
+ })), s.addEventListener("abort", () => {
659
+ r?.disconnect(), r = void 0, i = !1, a = 0, t = null;
660
+ }, { once: !0 });
661
+ }),
662
+ getElement: () => t
663
+ };
664
+ }
665
+ function J(e, t, n, r = 160) {
666
+ let i, a = "", o = 0, s = {
667
+ start: 0,
668
+ end: 0
669
+ }, c = () => {
670
+ i?.disconnect(), i = void 0, a = "";
671
+ };
672
+ return e.signal.addEventListener("abort", c, { once: !0 }), {
673
+ setConfig: (e, l) => {
674
+ let u = t();
675
+ if (!u || typeof IntersectionObserver > "u") return;
676
+ let d = `${e}:${l}:${r}`;
677
+ d !== a && (c(), a = d, o = e, s = {
678
+ start: 0,
679
+ end: e
680
+ }, n(s), i = ie(u, {
681
+ totalItems: e,
682
+ itemHeight: l,
683
+ buffer: r
684
+ }, (e) => {
685
+ s = e, n(e);
686
+ }));
687
+ },
688
+ getRange(e) {
689
+ return {
690
+ start: Math.min(Math.max(s.start, 0), e),
691
+ end: Math.min(Math.max(e === o && s.end || e, 0), e)
692
+ };
693
+ },
694
+ dispose: c
695
+ };
696
+ }
697
+ //#endregion
698
+ //#region packages/remix/src/Baseline.ts
699
+ function ae(t) {
700
+ let n = {
701
+ width: 0,
702
+ height: 0
703
+ }, i = () => {
704
+ G(t);
705
+ }, a = q((e) => {
706
+ (e.width !== n.width || e.height !== n.height) && (n = e, i());
707
+ }), o = J(t, a.getElement, i);
708
+ return () => {
709
+ let i = t.props, c = i.__baselineConfig ?? L(t, N, r), l = i.base ?? c.base, u = i.variant ?? c.baseline.variant, d = R(i.debugging, c.baseline.debugging), f = O({
710
+ base: l,
711
+ colors: c.baseline.colors,
712
+ variant: u,
713
+ width: i.width,
714
+ height: i.height,
715
+ color: i.color,
716
+ containerWidth: n.width,
717
+ containerHeight: n.height,
718
+ spacing: {
719
+ padding: i.padding,
720
+ block: i.block,
721
+ inline: i.inline
722
+ },
723
+ isVisible: d.isShown
724
+ });
725
+ if (i.ssrMode) return e("div", {
726
+ className: F("bk-bas", "bk-h", "bk-ssr", i.className),
727
+ "data-testid": "baseline",
728
+ "aria-hidden": !0,
729
+ style: I(f.containerStyle, {
730
+ width: s(i.width ?? "100%"),
731
+ height: s(i.height ?? "100%")
732
+ }, i.style)
733
+ });
734
+ d.isShown && t.queueTask(() => o.setConfig(f.rowCount, l));
735
+ let p = o.getRange(f.rowCount), m = d.isShown ? Array.from({ length: Math.max(0, p.end - p.start) }, (t, n) => {
736
+ let r = p.start + n;
737
+ return e("div", {
738
+ className: "bk-row",
739
+ key: r,
740
+ "data-row-index": r,
741
+ style: f.getRowStyle(r)
742
+ });
743
+ }) : [];
744
+ return e("div", {
745
+ className: F(...f.classTokens.map((e) => `bk-${e}`), i.className),
746
+ "data-testid": "baseline",
747
+ "aria-hidden": !0,
748
+ style: I(f.containerStyle, {
749
+ width: s(i.width ?? "100%"),
750
+ height: s(i.height ?? "100%")
751
+ }, i.style),
752
+ mix: typeof window > "u" || i.ssrMode ? void 0 : a.attach,
753
+ children: m
754
+ });
755
+ };
756
+ }
757
+ var oe = K(`${import.meta.url}#Baseline`, ae);
758
+ //#endregion
759
+ //#region packages/remix/src/Guide.ts
760
+ function se(t) {
761
+ let n = {
762
+ width: 0,
763
+ height: 0
764
+ }, i = () => {
765
+ G(t);
766
+ }, a = q((e) => {
767
+ (e.width !== n.width || e.height !== n.height) && (n = e, i());
768
+ });
769
+ return () => {
770
+ let i = t.props, o = i.__baselineConfig ?? L(t, N, r), s = i.variant ?? o.guide.variant, c = R(i.debugging, o.guide.debugging), l = T({
771
+ variant: s,
772
+ base: o.base,
773
+ gap: i.gap ?? 0,
774
+ columns: i.columns,
775
+ columnWidth: i.columnWidth
776
+ }), u = ne(n.width, l, {
777
+ viewportWidth: typeof window > "u" ? void 0 : window.innerWidth,
778
+ viewportHeight: typeof window > "u" ? void 0 : window.innerHeight
779
+ }), d = D({
780
+ base: o.base,
781
+ colors: o.guide.colors,
782
+ variant: s,
783
+ align: i.align ?? "center",
784
+ width: i.width,
785
+ height: i.height,
786
+ columnWidth: i.columnWidth,
787
+ maxWidth: i.maxWidth,
788
+ color: i.color,
789
+ template: u.template,
790
+ columnsCount: u.columnsCount,
791
+ calculatedGap: u.calculatedGap,
792
+ isVisible: c.isShown
793
+ });
794
+ if (i.ssrMode) return e("div", {
795
+ className: F("bk-gde", "bk-h", "bk-ssr", i.className),
796
+ "data-testid": "guide",
797
+ "data-variant": s,
798
+ "aria-hidden": !0,
799
+ style: I({
800
+ width: i.width ?? "100%",
801
+ height: i.height ?? "100%",
802
+ maxWidth: i.maxWidth ?? "none"
803
+ }, i.style),
804
+ children: i.children
805
+ });
806
+ let f = !d.isLineVariant && c.isShown ? Array.from({ length: d.columnsCount }, (t, n) => e("div", {
807
+ key: n,
808
+ className: "bk-col",
809
+ "data-column-index": n,
810
+ "data-variant": s
811
+ })) : null, p = c.isShown ? e("div", {
812
+ className: "bk-cols",
813
+ "data-variant": s,
814
+ children: f
815
+ }) : null;
816
+ return e("div", {
817
+ className: F(...d.classTokens.map((e) => `bk-${e}`), i.className),
818
+ "data-testid": "guide",
819
+ "data-variant": s,
820
+ "aria-hidden": !0,
821
+ style: I(d.containerStyle, i.style),
822
+ mix: typeof window > "u" || i.ssrMode ? void 0 : a.attach,
823
+ children: [p, i.children]
824
+ });
825
+ };
826
+ }
827
+ var ce = K(`${import.meta.url}#Guide`, se);
828
+ //#endregion
829
+ //#region packages/remix/src/Spacer.ts
830
+ function le(t) {
831
+ return () => {
832
+ let n = t.props, i = n.__baselineConfig ?? L(t, N, r), a = n.base ?? i.base, o = n.variant ?? i.spacer.variant, s = R(n.debugging, i.spacer.debugging), c = A({
833
+ base: a,
834
+ colors: i.spacer.colors,
835
+ width: n.width,
836
+ height: n.height,
837
+ color: n.color,
838
+ variant: o,
839
+ isVisible: s.isShown
840
+ }), l = s.isShown && n.indicatorNode ? [c.normHeight === 0 ? null : e("span", {
841
+ key: "height",
842
+ className: "bk-indicator",
843
+ "aria-hidden": !0,
844
+ children: n.indicatorNode(c.normHeight, "height")
845
+ }), c.normWidth === 0 ? null : e("span", {
846
+ key: "width",
847
+ className: "bk-indicator",
848
+ "aria-hidden": !0,
849
+ children: n.indicatorNode(c.normWidth, "width")
850
+ })] : null;
851
+ return e("div", {
852
+ className: F(...c.classTokens.map((e) => `bk-${e}`), n.className),
853
+ "data-testid": "spacer",
854
+ "data-variant": o,
855
+ "data-height": `${c.normHeight}px`,
856
+ style: I(c.style, n.style),
857
+ children: [l, n.children]
858
+ });
859
+ };
860
+ }
861
+ var Y = K(`${import.meta.url}#Spacer`, le), X = { gridColumn: "1 / -1" }, Z = { gridRow: "2 / 3" }, ue = {
862
+ gridRow: "2 / 3",
863
+ gridColumn: "2 / 3"
864
+ };
865
+ function Q(t) {
866
+ let n = r.base, i = g({}), a = null, o = q(({ height: e }) => {
867
+ t.props.ssrMode || a || e === 0 || (a = b(e, n, i, "height"), G(t));
868
+ });
869
+ return () => {
870
+ let s = t.props, c = s.__baselineConfig ?? L(t, N, r), l = R(s.debugging, c.padder.debugging);
871
+ n = c.base, i = g({
872
+ padding: s.padding,
873
+ block: s.block,
874
+ inline: s.inline
875
+ });
876
+ let u = s.ssrMode ? i : a ?? i, d = typeof window > "u" || s.ssrMode ? void 0 : o.attach, f = j({
877
+ base: c.base,
878
+ color: c.padder.color,
879
+ width: s.width,
880
+ height: s.height,
881
+ padding: u,
882
+ enableSpacers: !l.isNone,
883
+ isVisible: l.isShown
884
+ });
885
+ if (l.isNone) return e("div", {
886
+ className: F(...f.classTokens.map((e) => `bk-${e}`), s.className),
887
+ "data-testid": "padder",
888
+ mix: d,
889
+ style: I(f.containerStyle, s.style),
890
+ children: s.children
891
+ });
892
+ let p = c.spacer.variant, m = (t, n) => e(Y, {
893
+ __baselineConfig: c,
894
+ width: t === "100%" ? void 0 : t,
895
+ height: n === "100%" ? void 0 : n,
896
+ variant: p,
897
+ debugging: l.debugging,
898
+ indicatorNode: s.indicatorNode
899
+ }), h = [
900
+ u.top >= 0 ? e("div", {
901
+ key: "top",
902
+ style: X,
903
+ children: m("100%", u.top)
904
+ }) : null,
905
+ u.left >= 0 ? e("div", {
906
+ key: "left",
907
+ style: Z,
908
+ children: m(u.left, "100%")
909
+ }) : null,
910
+ e("div", {
911
+ key: "content",
912
+ className: "bk-pad-content",
913
+ "data-testid": "padder-content",
914
+ style: ue,
915
+ children: s.children
916
+ }),
917
+ u.right >= 0 ? e("div", {
918
+ key: "right",
919
+ style: Z,
920
+ children: m(u.right, "100%")
921
+ }) : null,
922
+ u.bottom >= 0 ? e("div", {
923
+ key: "bottom",
924
+ style: X,
925
+ children: m("100%", u.bottom)
926
+ }) : null
927
+ ];
928
+ return e("div", {
929
+ className: F(...f.classTokens.map((e) => `bk-${e}`), s.className),
930
+ "data-testid": "padder",
931
+ mix: d,
932
+ style: I(f.containerStyle, s.style),
933
+ children: h
934
+ });
935
+ };
936
+ }
937
+ var $ = K(`${import.meta.url}#Padder`, Q);
938
+ //#endregion
939
+ //#region packages/remix/src/Box.ts
940
+ function de(t) {
941
+ let n = r.base, i = "clamp", a = g({}), o = null, s = () => {
942
+ G(t);
943
+ }, c = q((e) => {
944
+ i === "none" || o || e.height === 0 || (o = b(e.height, n, a, i), s());
945
+ });
946
+ return () => {
947
+ let s = t.props, l = s.__baselineConfig ?? L(t, N, r), u = s.snapping ?? "clamp", d = R(s.debugging, l.box.debugging), f = g({
948
+ padding: s.padding,
949
+ block: s.block,
950
+ inline: s.inline
951
+ });
952
+ n = l.base, i = u, a = f;
953
+ let p = u === "none" ? f : o ?? f, m = k({
954
+ base: l.base,
955
+ lineColor: l.box.colors.line,
956
+ width: s.width,
957
+ height: s.height,
958
+ span: s.span,
959
+ colSpan: s.colSpan,
960
+ rowSpan: s.rowSpan,
961
+ isVisible: d.isShown
962
+ }), h = e($, {
963
+ block: [p.top, p.bottom],
964
+ inline: [p.left, p.right],
965
+ width: "fit-content",
966
+ height: s.height,
967
+ debugging: d.debugging,
968
+ ssrMode: !0,
969
+ children: s.children
970
+ });
971
+ return e("div", {
972
+ className: F(...m.classTokens.map((e) => `bk-${e}`), s.className),
973
+ "data-testid": "box",
974
+ style: I(m.boxStyle, m.gridSpanStyle, s.style),
975
+ mix: typeof window > "u" || s.ssrMode || u === "none" ? void 0 : c.attach,
976
+ children: e(N, {
977
+ __baselineConfig: l,
978
+ base: 1,
979
+ spacer: { variant: "flat" },
980
+ children: h
981
+ })
982
+ });
983
+ };
984
+ }
985
+ var fe = K(`${import.meta.url}#Box`, de);
986
+ //#endregion
987
+ export { oe as Baseline, fe as Box, N as Config, ce as Guide, $ as Padder, Y as Spacer };
988
+
989
+ //# sourceMappingURL=remix.mjs.map