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
@@ -0,0 +1,15 @@
1
+ import { createHash as e } from "node:crypto";
2
+ import { readFile as t } from "node:fs/promises";
3
+ import { createRequire as n } from "node:module";
4
+ import { pathToFileURL as r } from "node:url";
5
+ //#region packages/remix/src/server.ts
6
+ var i = n(import.meta.url), a = n(i.resolve("remix/ui/server")).resolve("@remix-run/ui/server"), o = r(a), s = await t(a, "utf8");
7
+ if (e("sha256").update(s).digest("hex") !== "59aba1ebb68fac46a957cafd130611e1ed4fdfbec48239fde770876c7e0642bf") throw Error("baseline-kit/remix/server requires the unmodified @remix-run/ui@0.9.0 renderer from remix@3.0.0-rc.2. Revalidate this compatibility entry before upgrading Remix.");
8
+ var c = s.replace(" let [renderedNode] = handle.render(props);\n return unwrapNode(renderedNode);", " let [renderedNode] = handle.render(props);\n let previousParent = context.parentVNode;\n context.parentVNode = vnode;\n try {\n return unwrapNode(renderedNode);\n } finally {\n context.parentVNode = previousParent;\n }").replace(/from (['"])(\.\.?\/[^'"]+)\1/g, (e, t, n) => `from ${JSON.stringify(new URL(n, o).href)}`), l = await import(
9
+ /* @vite-ignore */
10
+ `data:text/javascript;base64,${Buffer.from(`${c}\n//# sourceURL=baseline-kit-remix-server-0.9.0.mjs`).toString("base64")}`
11
+ ), u = l.renderToStream, d = l.renderToString, f = l.ImportMap;
12
+ //#endregion
13
+ export { f as ImportMap, u as renderToStream, d as renderToString };
14
+
15
+ //# sourceMappingURL=remix-server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remix-server.mjs","names":[],"sources":["../packages/remix/src/server.ts"],"sourcesContent":["/**\n * Node-only SSR compatibility entry for remix 3.0.0-rc.2 / @remix-run/ui 0.9.0.\n * Loads a corrected, isolated instance of the upstream MIT-licensed renderer.\n * No installed files, module hooks, or upstream exports are modified.\n */\nimport { createHash } from 'node:crypto'\nimport { readFile } from 'node:fs/promises'\nimport { createRequire } from 'node:module'\nimport { pathToFileURL } from 'node:url'\nimport type * as RemixServer from 'remix/ui/server'\n\nconst requireFromKit = createRequire(import.meta.url)\nconst requireFromRemix = createRequire(\n requireFromKit.resolve('remix/ui/server')\n)\nconst serverPath = requireFromRemix.resolve('@remix-run/ui/server')\nconst serverURL = pathToFileURL(serverPath)\nconst source = await readFile(serverPath, 'utf8')\n\n// Fail closed on changed upstream internals. A version string alone does not\n// establish compatibility with the private imports this renderer uses.\nconst expectedDigest =\n '59aba1ebb68fac46a957cafd130611e1ed4fdfbec48239fde770876c7e0642bf'\nif (createHash('sha256').update(source).digest('hex') !== expectedDigest) {\n throw new Error(\n 'baseline-kit/remix/server requires the unmodified @remix-run/ui@0.9.0 renderer from remix@3.0.0-rc.2. Revalidate this compatibility entry before upgrading Remix.'\n )\n}\n\nconst before = ` let [renderedNode] = handle.render(props);\n return unwrapNode(renderedNode);`\nconst after = ` let [renderedNode] = handle.render(props);\n let previousParent = context.parentVNode;\n context.parentVNode = vnode;\n try {\n return unwrapNode(renderedNode);\n } finally {\n context.parentVNode = previousParent;\n }`\n\n// Keep all runtime helpers, Frame identity and mixin state in the application's\n// original Remix installation. Only the server renderer instance is corrected.\nconst correctedSource = source\n .replace(before, after)\n .replace(\n /from (['\"])(\\.\\.?\\/[^'\"]+)\\1/g,\n (_match, _quote, specifier: string) =>\n `from ${JSON.stringify(new URL(specifier, serverURL).href)}`\n )\nconst moduleURL = `data:text/javascript;base64,${Buffer.from(`${correctedSource}\\n//# sourceURL=baseline-kit-remix-server-0.9.0.mjs`).toString('base64')}`\nconst renderer = (await import(\n /* @vite-ignore */ moduleURL\n)) as typeof import('remix/ui/server')\n\nexport const renderToStream: typeof RemixServer.renderToStream =\n renderer.renderToStream\nexport const renderToString: typeof RemixServer.renderToString =\n renderer.renderToString\n// ImportMap must come from the same renderer: upstream recognizes it by identity.\nexport const ImportMap: typeof RemixServer.ImportMap = renderer.ImportMap\nexport type {\n RenderToStreamOptions,\n ResolveFrameContext,\n ImportMapData,\n ImportMapProps,\n} from 'remix/ui/server'\n"],"mappings":";;;;;AAWA,IAAM,IAAiB,EAAc,YAAY,GAAG,GAI9C,IAHmB,EACvB,EAAe,QAAQ,iBAAiB,CAEvB,CAAA,CAAiB,QAAQ,sBAAsB,GAC5D,IAAY,EAAc,CAAU,GACpC,IAAS,MAAM,EAAS,GAAY,MAAM;AAMhD,IAAI,EAAW,QAAQ,CAAC,CAAC,OAAO,CAAM,CAAC,CAAC,OAAO,KAAK,MAAM,oEACxD,MAAU,MACR,mKACF;AAgBF,IAAM,IAAkB,EACrB,QAAQ,wGAAQ,6TAAK,CAAC,CACtB,QACC,kCACC,GAAQ,GAAQ,MACf,QAAQ,KAAK,UAAU,IAAI,IAAI,GAAW,CAAS,CAAC,CAAC,IAAI,GAC7D,GAEI,IAAY,MAAM;;CACH,+BAF4B,OAAO,KAAK,GAAG,EAAgB,oDAAoD,CAAC,CAAC,SAAS,QAAQ;GAK1I,IACX,EAAS,gBACE,IACX,EAAS,gBAEE,IAA0C,EAAS"}
package/dist/remix.css ADDED
@@ -0,0 +1,2 @@
1
+ :root{--bk-base:8px;--bk-zi:1;--bk-transition-base:.18s ease;--bk-wf:100%;--bk-hf:100%;--bkbx-b:var(--bk-base);--bkbx-w:fit-content;--bkbx-h:fit-content;--bkbx-cl:#a329a399;--bkbx-cf:#96f3;--bkbx-ct:#a329a3e6;--bkbl-w:100%;--bkbl-h:100%;--bkbl-cl:#2929a326;--bkbl-cf:#667fff33;--bkgd-w:100%;--bkgd-h:100%;--bkgd-mw:none;--bkgd-cl:#2929a326;--bkgd-cp:#667fff33;--bkgd-ca:#66ccff26;--bkgd-cf:#66ccff26;--bkpd-w:auto;--bkpd-h:auto;--bkpd-c:#6629a399;--bksp-w:var(--bk-wf);--bksp-h:var(--bk-hf);--bksp-cl:#6629a399;--bksp-cf:#667fff33;--bksp-ct:#6629a3}.bk-bas{pointer-events:none;width:var(--bkbl-w);height:var(--bkbl-h);contain:layout style paint;position:absolute;inset:0;overflow:hidden}.bk-v{opacity:1;visibility:visible}.bk-h{opacity:0;visibility:hidden}.bk-ssr{box-sizing:border-box;z-index:1;pointer-events:none}.bk-row{left:0;right:0;top:var(--bkbl-rt);height:var(--bkbl-rh);background-color:var(--bkbl-c);position:absolute}.bk-box{width:var(--bkbx-w);height:var(--bkbx-h);text-box-trim:trim-both;text-box-edge:ex alphabetic;position:relative}.bk-box.bk-v:after{content:"";border:1px solid var(--bkbx-cl);pointer-events:none;z-index:var(--bk-zi);position:absolute;inset:0}.bk-spr{box-sizing:border-box;width:var(--bksp-w,100%);height:var(--bksp-h,auto);flex-shrink:0;margin:0;padding:0;display:block;position:relative}.bk-spr.bk-line:after{content:"";border:1px solid var(--bksp-cl,#6629a399);z-index:var(--bk-zi,1);position:absolute;inset:0}.bk-flat{background-color:var(--bksp-cf,#667fff33)}.bk-indicator{color:var(--bksp-ct,#6629a3)}.bk-pad{width:var(--bkpd-w,auto);height:var(--bkpd-h,auto);text-box-trim:trim-both;text-box-edge:ex alphabetic;grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;display:grid;position:relative}.bk-pad-content{text-box-trim:trim-both;text-box-edge:ex alphabetic}.bk-pad.bk-v:after{content:"";border:1px solid var(--bkpd-c);pointer-events:none;z-index:var(--bk-zi);position:absolute;inset:0}.bk-gde{box-sizing:border-box;width:var(--bkgd-w,100%);height:var(--bkgd-h,100%);max-width:var(--bkgd-mw,none);pointer-events:none;margin-inline:auto;padding:0;position:absolute;inset:0}.bk-cols{column-gap:var(--bkgd-g,0);grid-template-rows:1fr;grid-template-columns:var(--bkgd-t,none);justify-content:var(--bkgd-j,center);width:var(--bk-wf);height:var(--bk-hf);contain:layout style paint;display:grid;position:absolute;inset:0;overflow:hidden}.bk-col{min-width:0;width:var(--bk-wf);height:var(--bk-hf)}.bk-cols[data-variant=line]{background-image:repeating-linear-gradient(to right, var(--bkgd-line-color,var(--bkgd-cl)) 0 1px, transparent 1px var(--bkgd-line-period,1px));display:block}.bk-col[data-variant=line]{background-color:var(--bkgd-cl);width:1px}.bk-col[data-variant=pattern]{background-color:var(--bkgd-cp)}.bk-col[data-variant=auto]{background-color:var(--bkgd-ca);overflow:hidden}.bk-col[data-variant=fixed]{background-color:var(--bkgd-cf)}
2
+ /*$vite$:1*/
@@ -0,0 +1,177 @@
1
+ import { Handle, RemixNode } from 'remix/ui';
2
+
3
+ /**
4
+ * @baseline-kit/core - Pure type definitions
5
+ * Framework-agnostic types for the baseline-kit system
6
+ */
7
+ type Spacing = number | [number, number] | {
8
+ start?: number;
9
+ end?: number;
10
+ };
11
+ type PaddingValue = number | [number, number] | [number, number, number] | [number, number, number, number] | {
12
+ top?: number;
13
+ bottom?: number;
14
+ left?: number;
15
+ right?: number;
16
+ };
17
+ type Padding = {
18
+ top: number;
19
+ right: number;
20
+ bottom: number;
21
+ left: number;
22
+ };
23
+ type SpacingProps = {
24
+ padding?: PaddingValue;
25
+ block?: Spacing;
26
+ inline?: Spacing;
27
+ };
28
+ type GuideVariant = 'line' | 'pattern' | 'fixed' | 'auto';
29
+ type GuideColumnValue = string | number | undefined | 'auto';
30
+ type Variant = 'line' | 'flat' | 'pattern';
31
+ type BaselineVariant = Exclude<Variant, 'pattern'>;
32
+ type SnappingMode = 'none' | 'height' | 'clamp';
33
+ type DebuggingMode = 'none' | 'hidden' | 'visible';
34
+
35
+ type DebugColors = {
36
+ line: string;
37
+ flat: string;
38
+ text: string;
39
+ };
40
+ type ConfigSchema = {
41
+ base: number;
42
+ baseline: {
43
+ variant: BaselineVariant;
44
+ debugging: DebuggingMode;
45
+ colors: Record<BaselineVariant, string>;
46
+ };
47
+ guide: {
48
+ variant: GuideVariant;
49
+ debugging: DebuggingMode;
50
+ colors: Record<GuideVariant, string>;
51
+ };
52
+ spacer: {
53
+ variant: Variant;
54
+ debugging: DebuggingMode;
55
+ colors: DebugColors;
56
+ };
57
+ box: {
58
+ debugging: DebuggingMode;
59
+ colors: DebugColors;
60
+ };
61
+ padder: {
62
+ debugging: DebuggingMode;
63
+ color: string;
64
+ };
65
+ };
66
+
67
+ type PartialColors<T> = T extends {
68
+ colors: infer Colors;
69
+ } ? Omit<Partial<T>, 'colors'> & {
70
+ colors?: Partial<Colors>;
71
+ } : Partial<T>;
72
+ type ConfigOverrides = {
73
+ base?: number;
74
+ baseline?: PartialColors<ConfigSchema['baseline']>;
75
+ guide?: PartialColors<ConfigSchema['guide']>;
76
+ spacer?: PartialColors<ConfigSchema['spacer']>;
77
+ box?: PartialColors<ConfigSchema['box']>;
78
+ padder?: Partial<ConfigSchema['padder']>;
79
+ };
80
+
81
+ declare function parsePadding(spacing: SpacingProps): Padding;
82
+
83
+ type ConfigProps = ConfigOverrides & {
84
+ children?: RemixNode;
85
+ };
86
+ /**
87
+ * Framework-native configuration scope. It is a zero-DOM component: the
88
+ * resolved value travels through Remix context and is emitted by each
89
+ * consuming component on its own host element.
90
+ */
91
+ declare const Config: (handle: Handle<ConfigProps, ConfigSchema>) => () => RemixNode;
92
+
93
+ type NativeComponent<Props> = (handle: Handle<Props>) => () => RemixNode;
94
+
95
+ type BaselineProps = SpacingProps & {
96
+ variant?: BaselineVariant;
97
+ width?: number | string;
98
+ height?: number | string;
99
+ base?: number;
100
+ color?: string;
101
+ debugging?: 'none' | 'hidden' | 'visible';
102
+ className?: string;
103
+ style?: Record<string, string | number | null | undefined>;
104
+ children?: RemixNode;
105
+ ssrMode?: boolean;
106
+ };
107
+ declare const Baseline: NativeComponent<BaselineProps>;
108
+
109
+ type GuideProps = {
110
+ align?: string;
111
+ variant?: GuideVariant;
112
+ columns?: number | readonly GuideColumnValue[];
113
+ columnWidth?: number | string;
114
+ maxWidth?: number | string;
115
+ color?: string;
116
+ gap?: number;
117
+ width?: number | string;
118
+ height?: number | string;
119
+ debugging?: 'none' | 'hidden' | 'visible';
120
+ className?: string;
121
+ style?: Record<string, string | number | null | undefined>;
122
+ children?: RemixNode;
123
+ ssrMode?: boolean;
124
+ };
125
+ declare const Guide: NativeComponent<GuideProps>;
126
+
127
+ type BoxProps = {
128
+ colSpan?: number;
129
+ rowSpan?: number;
130
+ span?: number;
131
+ snapping?: SnappingMode;
132
+ width?: number | string;
133
+ height?: number | string;
134
+ debugging?: 'none' | 'hidden' | 'visible';
135
+ className?: string;
136
+ style?: Record<string, string | number | null | undefined>;
137
+ padding?: Parameters<typeof parsePadding>[0]['padding'];
138
+ block?: Parameters<typeof parsePadding>[0]['block'];
139
+ inline?: Parameters<typeof parsePadding>[0]['inline'];
140
+ children?: RemixNode;
141
+ ssrMode?: boolean;
142
+ };
143
+ declare const Box: NativeComponent<BoxProps>;
144
+
145
+ type IndicatorNode = (value: number, type: 'width' | 'height') => RemixNode;
146
+ type SpacerProps = {
147
+ width?: number | string;
148
+ height?: number | string;
149
+ variant?: Variant;
150
+ color?: string;
151
+ base?: number;
152
+ debugging?: 'none' | 'hidden' | 'visible';
153
+ className?: string;
154
+ style?: Record<string, string | number | null | undefined>;
155
+ children?: RemixNode;
156
+ indicatorNode?: IndicatorNode;
157
+ ssrMode?: boolean;
158
+ };
159
+ declare const Spacer: NativeComponent<SpacerProps>;
160
+
161
+ type PadderProps = {
162
+ width?: number | string;
163
+ height?: number | string;
164
+ debugging?: 'none' | 'hidden' | 'visible';
165
+ className?: string;
166
+ style?: Record<string, string | number | null | undefined>;
167
+ block?: Spacing;
168
+ inline?: Spacing;
169
+ padding?: Parameters<typeof parsePadding>[0]['padding'];
170
+ indicatorNode?: (value: number, type: 'width' | 'height') => RemixNode;
171
+ children?: RemixNode;
172
+ ssrMode?: boolean;
173
+ };
174
+ declare const Padder: NativeComponent<PadderProps>;
175
+
176
+ export { Baseline, Box, Config, Guide, Padder, Spacer };
177
+ export type { BaselineProps, BaselineVariant, BoxProps, ConfigProps, ConfigSchema, DebuggingMode, GuideProps, IndicatorNode, PadderProps, SnappingMode, SpacerProps };