@repraze/kernelkit 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (186) hide show
  1. package/README.md +17 -0
  2. package/dist/components/alert.d.ts.map +1 -1
  3. package/dist/components/alert.js +4 -6
  4. package/dist/components/alert.js.map +1 -1
  5. package/dist/components/avatar.js +1 -1
  6. package/dist/components/avatar.js.map +1 -1
  7. package/dist/components/badge.js +1 -1
  8. package/dist/components/badge.js.map +1 -1
  9. package/dist/components/breadcrumb.d.ts +1 -0
  10. package/dist/components/breadcrumb.d.ts.map +1 -1
  11. package/dist/components/breadcrumb.js +7 -6
  12. package/dist/components/breadcrumb.js.map +1 -1
  13. package/dist/components/callout.d.ts +8 -4
  14. package/dist/components/callout.d.ts.map +1 -1
  15. package/dist/components/callout.js +22 -12
  16. package/dist/components/callout.js.map +1 -1
  17. package/dist/components/chart.js +2 -2
  18. package/dist/components/chart.js.map +1 -1
  19. package/dist/components/code-block.js +1 -1
  20. package/dist/components/code-block.js.map +1 -1
  21. package/dist/components/command.js +1 -1
  22. package/dist/components/command.js.map +1 -1
  23. package/dist/components/data-table/elements/data-table-info-row.js +1 -1
  24. package/dist/components/data-table/elements/data-table-info-row.js.map +1 -1
  25. package/dist/components/dropdown-menu.d.ts +1 -1
  26. package/dist/components/dropdown-menu.d.ts.map +1 -1
  27. package/dist/components/dropdown-menu.js +1 -1
  28. package/dist/components/dropdown-menu.js.map +1 -1
  29. package/dist/components/kbd.d.ts.map +1 -1
  30. package/dist/components/kbd.js +2 -4
  31. package/dist/components/kbd.js.map +1 -1
  32. package/dist/components/message.js +2 -2
  33. package/dist/components/message.js.map +1 -1
  34. package/dist/components/meter.js +1 -1
  35. package/dist/components/meter.js.map +1 -1
  36. package/dist/components/progress.js +1 -1
  37. package/dist/components/progress.js.map +1 -1
  38. package/dist/components/questionnaire.js +1 -1
  39. package/dist/components/questionnaire.js.map +1 -1
  40. package/dist/components/search-dialog.d.ts +6 -1
  41. package/dist/components/search-dialog.d.ts.map +1 -1
  42. package/dist/components/search-dialog.js +13 -1
  43. package/dist/components/search-dialog.js.map +1 -1
  44. package/dist/components/search-trigger.d.ts +1 -1
  45. package/dist/components/search-trigger.d.ts.map +1 -1
  46. package/dist/components/search-trigger.js +2 -2
  47. package/dist/components/search-trigger.js.map +1 -1
  48. package/dist/components/section.js +1 -1
  49. package/dist/components/section.js.map +1 -1
  50. package/dist/components/sidebar.js +1 -1
  51. package/dist/components/sidebar.js.map +1 -1
  52. package/dist/components/site-footer.js +1 -1
  53. package/dist/components/site-footer.js.map +1 -1
  54. package/dist/components/site-header.js +2 -2
  55. package/dist/components/site-header.js.map +1 -1
  56. package/dist/components/stat.js +2 -2
  57. package/dist/components/stat.js.map +1 -1
  58. package/dist/components/tabs.d.ts +4 -2
  59. package/dist/components/tabs.d.ts.map +1 -1
  60. package/dist/components/tabs.js +13 -7
  61. package/dist/components/tabs.js.map +1 -1
  62. package/dist/components/theme-menu.js +1 -1
  63. package/dist/components/theme-menu.js.map +1 -1
  64. package/dist/components/toc.js +1 -1
  65. package/dist/components/toc.js.map +1 -1
  66. package/dist/components/tooltip.d.ts.map +1 -1
  67. package/dist/components/tooltip.js +5 -2
  68. package/dist/components/tooltip.js.map +1 -1
  69. package/dist/components/trace.js +1 -1
  70. package/dist/components/trace.js.map +1 -1
  71. package/dist/docs/doc-kit.d.ts +72 -0
  72. package/dist/docs/doc-kit.d.ts.map +1 -0
  73. package/dist/docs/doc-kit.js +45 -0
  74. package/dist/docs/doc-kit.js.map +1 -0
  75. package/dist/docs/doc-page.d.ts +27 -0
  76. package/dist/docs/doc-page.d.ts.map +1 -0
  77. package/dist/docs/doc-page.js +33 -0
  78. package/dist/docs/doc-page.js.map +1 -0
  79. package/dist/docs/docs-index.d.ts +60 -0
  80. package/dist/docs/docs-index.d.ts.map +1 -0
  81. package/dist/docs/docs-index.js +45 -0
  82. package/dist/docs/docs-index.js.map +1 -0
  83. package/dist/docs/docs-nav.d.ts +13 -0
  84. package/dist/docs/docs-nav.d.ts.map +1 -0
  85. package/dist/docs/docs-nav.js +8 -0
  86. package/dist/docs/docs-nav.js.map +1 -0
  87. package/dist/docs/docs-search.d.ts +19 -0
  88. package/dist/docs/docs-search.d.ts.map +1 -0
  89. package/dist/docs/docs-search.js +33 -0
  90. package/dist/docs/docs-search.js.map +1 -0
  91. package/dist/docs/index.d.ts +7 -0
  92. package/dist/docs/index.d.ts.map +1 -0
  93. package/dist/docs/index.js +7 -0
  94. package/dist/docs/index.js.map +1 -0
  95. package/dist/docs/review-matrix.d.ts +25 -0
  96. package/dist/docs/review-matrix.d.ts.map +1 -0
  97. package/dist/docs/review-matrix.js +31 -0
  98. package/dist/docs/review-matrix.js.map +1 -0
  99. package/dist/hooks/use-theme-palette.d.ts +8 -0
  100. package/dist/hooks/use-theme-palette.d.ts.map +1 -0
  101. package/dist/hooks/use-theme-palette.js +24 -0
  102. package/dist/hooks/use-theme-palette.js.map +1 -0
  103. package/dist/lib/recipes.d.ts +10 -0
  104. package/dist/lib/recipes.d.ts.map +1 -1
  105. package/dist/lib/recipes.js +12 -0
  106. package/dist/lib/recipes.js.map +1 -1
  107. package/dist/provider/theme-provider.d.ts +10 -1
  108. package/dist/provider/theme-provider.d.ts.map +1 -1
  109. package/dist/provider/theme-provider.js +23 -8
  110. package/dist/provider/theme-provider.js.map +1 -1
  111. package/dist/site/brand.d.ts +20 -0
  112. package/dist/site/brand.d.ts.map +1 -0
  113. package/dist/site/brand.js +17 -0
  114. package/dist/site/brand.js.map +1 -0
  115. package/dist/site/github-icon.d.ts +4 -0
  116. package/dist/site/github-icon.d.ts.map +1 -0
  117. package/dist/site/github-icon.js +6 -0
  118. package/dist/site/github-icon.js.map +1 -0
  119. package/dist/site/index.d.ts +6 -0
  120. package/dist/site/index.d.ts.map +1 -0
  121. package/dist/site/index.js +6 -0
  122. package/dist/site/index.js.map +1 -0
  123. package/dist/site/suite-footer.d.ts +24 -0
  124. package/dist/site/suite-footer.d.ts.map +1 -0
  125. package/dist/site/suite-footer.js +19 -0
  126. package/dist/site/suite-footer.js.map +1 -0
  127. package/dist/site/suite-header.d.ts +40 -0
  128. package/dist/site/suite-header.d.ts.map +1 -0
  129. package/dist/site/suite-header.js +19 -0
  130. package/dist/site/suite-header.js.map +1 -0
  131. package/dist/site/use-page-title.d.ts +3 -0
  132. package/dist/site/use-page-title.d.ts.map +1 -0
  133. package/dist/site/use-page-title.js +8 -0
  134. package/dist/site/use-page-title.js.map +1 -0
  135. package/dist/vite/index.d.ts +65 -0
  136. package/dist/vite/index.d.ts.map +1 -0
  137. package/dist/vite/index.js +242 -0
  138. package/dist/vite/index.js.map +1 -0
  139. package/package.json +39 -3
  140. package/src/components/alert.tsx +4 -6
  141. package/src/components/avatar.tsx +1 -1
  142. package/src/components/badge.tsx +1 -1
  143. package/src/components/breadcrumb.tsx +8 -7
  144. package/src/components/callout.tsx +27 -12
  145. package/src/components/chart.tsx +2 -2
  146. package/src/components/code-block.tsx +1 -1
  147. package/src/components/command.tsx +1 -1
  148. package/src/components/data-table/elements/data-table-info-row.tsx +1 -1
  149. package/src/components/dropdown-menu.tsx +1 -1
  150. package/src/components/kbd.tsx +2 -4
  151. package/src/components/message.tsx +2 -2
  152. package/src/components/meter.tsx +1 -1
  153. package/src/components/progress.tsx +1 -1
  154. package/src/components/questionnaire.tsx +1 -1
  155. package/src/components/search-dialog.tsx +14 -1
  156. package/src/components/search-trigger.tsx +2 -3
  157. package/src/components/section.tsx +1 -1
  158. package/src/components/sidebar.tsx +1 -1
  159. package/src/components/site-footer.tsx +1 -1
  160. package/src/components/site-header.tsx +2 -2
  161. package/src/components/stat.tsx +2 -2
  162. package/src/components/tabs.tsx +17 -9
  163. package/src/components/theme-menu.tsx +1 -1
  164. package/src/components/toc.tsx +1 -1
  165. package/src/components/tooltip.tsx +15 -3
  166. package/src/components/trace.tsx +1 -1
  167. package/src/docs/doc-kit.tsx +176 -0
  168. package/src/docs/doc-page.tsx +126 -0
  169. package/src/docs/docs-index.ts +108 -0
  170. package/src/docs/docs-nav.tsx +47 -0
  171. package/src/docs/docs-search.tsx +88 -0
  172. package/src/docs/index.ts +6 -0
  173. package/src/docs/review-matrix.tsx +67 -0
  174. package/src/hooks/use-theme-palette.ts +25 -0
  175. package/src/lib/recipes.ts +14 -0
  176. package/src/provider/theme-provider.tsx +34 -9
  177. package/src/site/brand.tsx +41 -0
  178. package/src/site/github-icon.tsx +10 -0
  179. package/src/site/index.ts +5 -0
  180. package/src/site/suite-footer.tsx +68 -0
  181. package/src/site/suite-header.tsx +114 -0
  182. package/src/site/use-page-title.ts +8 -0
  183. package/src/styles/kernelkit.css +6 -0
  184. package/src/styles/site.css +15 -0
  185. package/src/vite/client.d.ts +11 -0
  186. package/src/vite/index.ts +298 -0
@@ -0,0 +1,24 @@
1
+ import { useResolvedTheme } from "@repraze/kernelkit/provider";
2
+ import { allModes, createPalette } from "@repraze/termicolor";
3
+ import { useMemo } from "react";
4
+ const cache = new Map();
5
+ /**
6
+ * The TermiColor mode that applies here (nearest ThemeScope, else the ThemeProvider): neutrals, accents
7
+ * and roles as hex strings, with `roles.accent` & co. in the current accent. For canvas, chart and WebGPU
8
+ * code that can't read CSS variables. Memoised per mode, contrast and accent.
9
+ */
10
+ export function useThemePalette() {
11
+ const { mode, contrast, accent } = useResolvedTheme();
12
+ return useMemo(() => {
13
+ const id = `${mode}${contrast === "high" ? "-hc" : ""}`;
14
+ const key = `${id}:${accent}`;
15
+ let found = cache.get(key);
16
+ if (!found) {
17
+ const modes = allModes(createPalette({ accent }));
18
+ found = modes.find((m) => m.id === id) ?? modes[0];
19
+ cache.set(key, found);
20
+ }
21
+ return found;
22
+ }, [mode, contrast, accent]);
23
+ }
24
+ //# sourceMappingURL=use-theme-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme-palette.js","sourceRoot":"","sources":["../../src/hooks/use-theme-palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAE9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC3B,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAG,gBAAgB,EAAE,CAAC;IACpD,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC;YAChD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC;YACpD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACjC,CAAC"}
@@ -33,4 +33,14 @@ export declare const heading = "font-heading font-medium tracking-tight";
33
33
  export declare const placeholderFill = "bg-foreground/10 hc:bg-border";
34
34
  /** Selected row (table, data table, code line, list): accent tint + 2px inset primary indicator (§6). */
35
35
  export declare const selectedRow = "bg-accent text-accent-foreground shadow-[inset_2px_0_0_var(--primary-text)]";
36
+ /**
37
+ * Status surface shared by Alert and Callout (§2): one `soft` / `outline` axis, same values in both.
38
+ * Expects a color variant (`--c`, `--c-tint`) on the same element. Neutral swaps the hue border for the
39
+ * plain border on a card surface (`statusSurfaceNeutral`).
40
+ */
41
+ export declare const statusSurface: {
42
+ readonly soft: "border-(--c)/30 bg-(--c-tint) hc:border-(--c)";
43
+ readonly outline: "border-(--c)/50 bg-card hc:border-(--c)";
44
+ };
45
+ export declare const statusSurfaceNeutral = "border-border bg-card hc:border-border";
36
46
  //# sourceMappingURL=recipes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,eAAO,MAAM,SAAS,2FAA2F,CAAC;AAElH,2CAA2C;AAC3C,eAAO,MAAM,WAAW,gHACyF,CAAC;AAElH,iGAAiG;AACjG,eAAO,MAAM,YAAY,qNAC6L,CAAC;AAEvN,iFAAiF;AACjF,eAAO,MAAM,YAAY,+GACuF,CAAC;AAEjH,oCAAoC;AACpC,eAAO,MAAM,WAAW,yWACkV,CAAC;AAE3W;;;;GAIG;AACH,eAAO,MAAM,YAAY,8JACsI,CAAC;AAEhK,iFAAiF;AACjF,eAAO,MAAM,QAAQ,6nBAAmf,CAAC;AAEzgB,0CAA0C;AAC1C,eAAO,MAAM,SAAS,0DAA0D,CAAC;AAEjF,wCAAwC;AACxC,eAAO,MAAM,aAAa,8BAA8B,CAAC;AAEzD,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,0LACsK,CAAC;AAE5L,4EAA4E;AAC5E,eAAO,MAAM,OAAO,4CAA4C,CAAC;AAEjE,iHAAiH;AACjH,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAE/D,yGAAyG;AACzG,eAAO,MAAM,WAAW,gFAAgF,CAAC"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,eAAO,MAAM,SAAS,2FAA2F,CAAC;AAElH,2CAA2C;AAC3C,eAAO,MAAM,WAAW,gHACyF,CAAC;AAElH,iGAAiG;AACjG,eAAO,MAAM,YAAY,qNAC6L,CAAC;AAEvN,iFAAiF;AACjF,eAAO,MAAM,YAAY,+GACuF,CAAC;AAEjH,oCAAoC;AACpC,eAAO,MAAM,WAAW,yWACkV,CAAC;AAE3W;;;;GAIG;AACH,eAAO,MAAM,YAAY,8JACsI,CAAC;AAEhK,iFAAiF;AACjF,eAAO,MAAM,QAAQ,6nBAAmf,CAAC;AAEzgB,0CAA0C;AAC1C,eAAO,MAAM,SAAS,0DAA0D,CAAC;AAEjF,wCAAwC;AACxC,eAAO,MAAM,aAAa,8BAA8B,CAAC;AAEzD,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,0LACsK,CAAC;AAE5L,4EAA4E;AAC5E,eAAO,MAAM,OAAO,4CAA4C,CAAC;AAEjE,iHAAiH;AACjH,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAE/D,yGAAyG;AACzG,eAAO,MAAM,WAAW,gFAAgF,CAAC;AAEzG;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;CAKhB,CAAC;AAEX,eAAO,MAAM,oBAAoB,2CAA2C,CAAC"}
@@ -33,4 +33,16 @@ export const heading = "font-heading font-medium tracking-tight";
33
33
  export const placeholderFill = "bg-foreground/10 hc:bg-border";
34
34
  /** Selected row (table, data table, code line, list): accent tint + 2px inset primary indicator (§6). */
35
35
  export const selectedRow = "bg-accent text-accent-foreground shadow-[inset_2px_0_0_var(--primary-text)]";
36
+ /**
37
+ * Status surface shared by Alert and Callout (§2): one `soft` / `outline` axis, same values in both.
38
+ * Expects a color variant (`--c`, `--c-tint`) on the same element. Neutral swaps the hue border for the
39
+ * plain border on a card surface (`statusSurfaceNeutral`).
40
+ */
41
+ export const statusSurface = {
42
+ // status tint behind foreground text; the hue lives in the border, icon and accents (TermiColor rule)
43
+ soft: "border-(--c)/30 bg-(--c-tint) hc:border-(--c)",
44
+ // no wash: card surface with a hue border, for dense layouts
45
+ outline: "border-(--c)/50 bg-card hc:border-(--c)",
46
+ };
47
+ export const statusSurfaceNeutral = "border-border bg-card hc:border-border";
36
48
  //# sourceMappingURL=recipes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,wFAAwF,CAAC;AAElH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GACpB,6GAA6G,CAAC;AAElH,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GACrB,kNAAkN,CAAC;AAEvN,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GACrB,4GAA4G,CAAC;AAEjH,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GACpB,sWAAsW,CAAC;AAE3W;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GACrB,2JAA2J,CAAC;AAEhK,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,YAAY,ieAAie,CAAC;AAEzgB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,uDAAuD,CAAC;AAEjF,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,QAAQ,GACjB,uLAAuL,CAAC,CAAC,0CAA0C;AAEvO,4EAA4E;AAC5E,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAEjE,iHAAiH;AACjH,MAAM,CAAC,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAE/D,yGAAyG;AACzG,MAAM,CAAC,MAAM,WAAW,GAAG,6EAA6E,CAAC"}
1
+ {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,wFAAwF,CAAC;AAElH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GACpB,6GAA6G,CAAC;AAElH,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GACrB,kNAAkN,CAAC;AAEvN,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GACrB,4GAA4G,CAAC;AAEjH,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GACpB,sWAAsW,CAAC;AAE3W;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GACrB,2JAA2J,CAAC;AAEhK,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,YAAY,ieAAie,CAAC;AAEzgB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,uDAAuD,CAAC;AAEjF,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,QAAQ,GACjB,uLAAuL,CAAC,CAAC,0CAA0C;AAEvO,4EAA4E;AAC5E,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAEjE,iHAAiH;AACjH,MAAM,CAAC,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAE/D,yGAAyG;AACzG,MAAM,CAAC,MAAM,WAAW,GAAG,6EAA6E,CAAC;AAEzG;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,sGAAsG;IACtG,IAAI,EAAE,+CAA+C;IACrD,6DAA6D;IAC7D,OAAO,EAAE,yCAAyC;CAC5C,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,wCAAwC,CAAC"}
@@ -29,13 +29,22 @@ export interface ThemeProviderProps {
29
29
  export declare function ThemeProvider({ children, defaultTheme, storageKey, forcedTheme, }: ThemeProviderProps): import("react").JSX.Element;
30
30
  /** Current theme and setters. Must be used under <ThemeProvider>. */
31
31
  export declare function useTheme(): ThemeContextValue;
32
+ /** A theme with its mode resolved (never "system"). */
33
+ export type ResolvedTheme = Omit<ThemeState, "mode"> & {
34
+ mode: ResolvedMode;
35
+ };
36
+ /**
37
+ * The theme that applies here: the nearest ThemeScope's, else the provider's with "system" resolved.
38
+ * Use it for things CSS can't reach (canvas, WebGL/WebGPU, charts) so they follow review scopes too.
39
+ */
40
+ export declare function useResolvedTheme(): ResolvedTheme;
32
41
  /** Renders the pre-paint script. Place in <head> (Next.js: in the root layout). */
33
42
  export declare function ThemeScript({ nonce, ...options }: ThemeScriptOptions & {
34
43
  nonce?: string;
35
44
  }): import("react").JSX.Element;
36
45
  export interface ThemeScopeProps extends Omit<React.ComponentProps<"div">, "children"> {
37
46
  children?: ReactNode;
38
- /** Values not given inherit from the surrounding <ThemeProvider> (or the defaults). */
47
+ /** Values not given inherit from the surrounding ThemeScope or <ThemeProvider> (or the defaults). */
39
48
  mode?: ResolvedMode;
40
49
  contrast?: ThemeState["contrast"];
41
50
  accent?: ThemeState["accent"];
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,SAAS,EAQjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAIH,KAAK,YAAY,EAIjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD,+DAA+D;IAC/D,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,6FAA6F;IAC7F,QAAQ,EAAE,UAAU,CAAC;IACrB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B;AAoCD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,UAAgC,EAChC,WAAW,GACd,EAAE,kBAAkB,+BA+EpB;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAC,EAAE,kBAAkB,GAAG;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,+BAErF;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAClF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uFAAuF;IACvF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,+BAoB1G;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAE5D"}
1
+ {"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,SAAS,EAQjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAIH,KAAK,YAAY,EAIjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD,+DAA+D;IAC/D,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,6FAA6F;IAC7F,QAAQ,EAAE,UAAU,CAAC;IACrB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B;AAuCD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,UAAgC,EAChC,WAAW,GACd,EAAE,kBAAkB,+BA+EpB;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG;IAAC,IAAI,EAAE,YAAY,CAAA;CAAC,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAQhD;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAC,EAAE,kBAAkB,GAAG;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,+BAErF;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAClF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,+BAyB1G;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAE5D"}
@@ -3,6 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useState, useSyncExternalStore, } from "react";
4
4
  import { applyTheme, DEFAULT_STORAGE_KEY, DEFAULT_THEME, sanitizeTheme, themeClassName, themeScript, } from "./theme";
5
5
  const ThemeContext = createContext(null);
6
+ /** The nearest ThemeScope's resolved theme, so code that paints (canvas, charts) can follow a scope. */
7
+ const ScopeContext = createContext(null);
6
8
  /** Element overlays portal into, so popups inside a ThemeScope keep its theme. */
7
9
  const PortalContainerContext = createContext(null);
8
10
  const useIsoLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
@@ -104,6 +106,19 @@ export function useTheme() {
104
106
  }
105
107
  return ctx;
106
108
  }
109
+ /**
110
+ * The theme that applies here: the nearest ThemeScope's, else the provider's with "system" resolved.
111
+ * Use it for things CSS can't reach (canvas, WebGL/WebGPU, charts) so they follow review scopes too.
112
+ */
113
+ export function useResolvedTheme() {
114
+ const scope = useContext(ScopeContext);
115
+ const ctx = useContext(ThemeContext);
116
+ const mode = scope?.mode ?? ctx?.resolvedMode ?? "light";
117
+ const contrast = scope?.contrast ?? ctx?.contrast ?? DEFAULT_THEME.contrast;
118
+ const accent = scope?.accent ?? ctx?.accent ?? DEFAULT_THEME.accent;
119
+ const radius = scope?.radius ?? ctx?.radius ?? DEFAULT_THEME.radius;
120
+ return useMemo(() => ({ mode, contrast, accent, radius }), [mode, contrast, accent, radius]);
121
+ }
107
122
  /** Renders the pre-paint script. Place in <head> (Next.js: in the root layout). */
108
123
  export function ThemeScript({ nonce, ...options }) {
109
124
  return _jsx("script", { nonce: nonce, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: themeScript(options) } });
@@ -113,16 +128,16 @@ export function ThemeScript({ nonce, ...options }) {
113
128
  * the scope, so they keep its colors and radius.
114
129
  */
115
130
  export function ThemeScope({ mode, contrast, accent, radius, className, children, ...props }) {
116
- const parent = useContext(ThemeContext);
131
+ const parent = useResolvedTheme();
117
132
  const [container, setContainer] = useState(null);
118
- const theme = {
119
- mode: mode ?? parent?.resolvedMode ?? "light",
120
- contrast: contrast ?? parent?.contrast ?? DEFAULT_THEME.contrast,
121
- accent: accent ?? parent?.accent ?? DEFAULT_THEME.accent,
122
- radius: radius ?? parent?.radius ?? DEFAULT_THEME.radius,
123
- };
133
+ const theme = useMemo(() => ({
134
+ mode: mode ?? parent.mode,
135
+ contrast: contrast ?? parent.contrast,
136
+ accent: accent ?? parent.accent,
137
+ radius: radius ?? parent.radius,
138
+ }), [mode, contrast, accent, radius, parent]);
124
139
  const classes = themeClassName(theme);
125
- return (_jsxs("div", { "data-slot": "theme-scope", className: [classes, "bg-background text-foreground", className].filter(Boolean).join(" "), ...props, children: [_jsx(PortalContainerContext.Provider, { value: container, children: children }), _jsx("div", { ref: setContainer, "data-slot": "theme-scope-portal", className: classes })] }));
140
+ return (_jsxs("div", { "data-slot": "theme-scope", className: [classes, "bg-background text-foreground", className].filter(Boolean).join(" "), ...props, children: [_jsx(ScopeContext.Provider, { value: theme, children: _jsx(PortalContainerContext.Provider, { value: container, children: children }) }), _jsx("div", { ref: setContainer, "data-slot": "theme-scope-portal", className: classes })] }));
126
141
  }
127
142
  /** Container for `*.Portal` parts: the nearest ThemeScope's portal root, else document.body. */
128
143
  export function usePortalContainer() {
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * A site's brand mark (an SVG string from its `brand/mark.ts`), inlined. Size it in multiples of 32px
3
+ * (default `size-8`) so it stays pixel-sharp (GUIDELINES §7b).
4
+ */
5
+ export declare function BrandMark({ svg, className }: {
6
+ svg: string;
7
+ className?: string;
8
+ }): import("react").JSX.Element;
9
+ export interface BrandLogoProps {
10
+ /** The mark's SVG markup. */
11
+ svg: string;
12
+ /** The wordmark's first word, in the foreground ("Kernel"). */
13
+ first: string;
14
+ /** Its second word, in the accent text tier ("Kit"). */
15
+ second: string;
16
+ className?: string;
17
+ }
18
+ /** Mark + two-tone wordmark in mono semibold: Kernel**Kit**, Termi**Color** (the suite's brand pattern). */
19
+ export declare function BrandLogo({ svg, first, second, className }: BrandLogoProps): import("react").JSX.Element;
20
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/site/brand.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAC,GAAG,EAAE,SAAS,EAAC,EAAE;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,+BAS5E;AAED,MAAM,WAAW,cAAc;IAC3B,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4GAA4G;AAC5G,wBAAgB,SAAS,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAC,EAAE,cAAc,+BAUxE"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn } from "cn";
4
+ /**
5
+ * A site's brand mark (an SVG string from its `brand/mark.ts`), inlined. Size it in multiples of 32px
6
+ * (default `size-8`) so it stays pixel-sharp (GUIDELINES §7b).
7
+ */
8
+ export function BrandMark({ svg, className }) {
9
+ return (_jsx("span", { "aria-hidden": true, className: cn("inline-block size-8 shrink-0 leading-0", className),
10
+ // Static markup generated by the site from its own mark shapes, never from user input.
11
+ dangerouslySetInnerHTML: { __html: svg } }));
12
+ }
13
+ /** Mark + two-tone wordmark in mono semibold: Kernel**Kit**, Termi**Color** (the suite's brand pattern). */
14
+ export function BrandLogo({ svg, first, second, className }) {
15
+ return (_jsxs("span", { className: cn("inline-flex items-center gap-2", className), children: [_jsx(BrandMark, { svg: svg }), _jsxs("span", { className: "font-mono text-sm font-semibold tracking-tight", children: [first, _jsx("span", { className: "text-primary-text", children: second })] })] }));
16
+ }
17
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/site/brand.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EAAC,GAAG,EAAE,SAAS,EAAoC;IACzE,OAAO,CACH,oCAEI,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,SAAS,CAAC;QAClE,uFAAuF;QACvF,uBAAuB,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,GACxC,CACL,CAAC;AACN,CAAC;AAYD,4GAA4G;AAC5G,MAAM,UAAU,SAAS,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAiB;IACrE,OAAO,CACH,gBAAM,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,aAC5D,KAAC,SAAS,IAAC,GAAG,EAAE,GAAG,GAAI,EACvB,gBAAM,SAAS,EAAC,gDAAgD,aAC3D,KAAK,EACN,eAAM,SAAS,EAAC,mBAAmB,YAAE,MAAM,GAAQ,IAChD,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type * as React from "react";
2
+ /** GitHub mark (lucide no longer ships brand icons). */
3
+ export declare function GithubIcon(props: React.SVGProps<SVGSVGElement>): React.JSX.Element;
4
+ //# sourceMappingURL=github-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-icon.d.ts","sourceRoot":"","sources":["../../src/site/github-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAM9D"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /** GitHub mark (lucide no longer ships brand icons). */
3
+ export function GithubIcon(props) {
4
+ return (_jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": true, ...props, children: _jsx("path", { d: "M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.8 1.3 3.5 1 0-.8.4-1.3.7-1.6-2.7-.3-5.5-1.3-5.5-6 0-1.2.5-2.3 1.3-3.1-.2-.4-.6-1.6 0-3.2 0 0 1-.3 3.4 1.2a11.5 11.5 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.6 1.6.2 2.8.1 3.2.8.8 1.3 1.9 1.3 3.1 0 4.6-2.8 5.6-5.5 5.9.5.4.9 1.1.9 2.2v3.3c0 .3.1.7.8.6A12 12 0 0 0 12 .3" }) }));
5
+ }
6
+ //# sourceMappingURL=github-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-icon.js","sourceRoot":"","sources":["../../src/site/github-icon.tsx"],"names":[],"mappings":";AAEA,wDAAwD;AACxD,MAAM,UAAU,UAAU,CAAC,KAAoC;IAC3D,OAAO,CACH,cAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,0BAAiB,KAAK,YAC9D,eAAM,CAAC,EAAC,2YAA2Y,GAAG,GACpZ,CACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./brand";
2
+ export * from "./github-icon";
3
+ export * from "./suite-footer";
4
+ export * from "./suite-header";
5
+ export * from "./use-page-title";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/site/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./brand";
2
+ export * from "./github-icon";
3
+ export * from "./suite-footer";
4
+ export * from "./suite-header";
5
+ export * from "./use-page-title";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/site/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type * as React from "react";
2
+ export interface SuiteFooterLinkItem {
3
+ label: string;
4
+ /** A router link as a `render` element; or `href` for a plain anchor. */
5
+ render?: React.ReactElement;
6
+ href?: string;
7
+ }
8
+ /** Suite projects a site can credit, in this order: "built with KernelKit", "themed by TermiColor". */
9
+ export type SuiteCredit = "kernelkit" | "termicolor";
10
+ export interface SuiteFooterProps {
11
+ links: SuiteFooterLinkItem[];
12
+ /** Which suite projects to credit (default `["termicolor"]`). */
13
+ credits?: SuiteCredit[];
14
+ /** A phrase of the site's own after the credits ("built from one palette"). */
15
+ tagline?: React.ReactNode;
16
+ /** Default "MIT". */
17
+ license?: string;
18
+ }
19
+ /**
20
+ * The suite's footer (GUIDELINES §7b): "MIT · themed by TermiColor · a repraze.com project" on the left,
21
+ * the site's links on the right.
22
+ */
23
+ export declare function SuiteFooter({ links, credits, tagline, license }: SuiteFooterProps): React.JSX.Element;
24
+ //# sourceMappingURL=suite-footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suite-footer.d.ts","sourceRoot":"","sources":["../../src/site/suite-footer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uGAAuG;AACvG,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAOrD,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,iEAAiE;IACjE,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAC,KAAK,EAAE,OAAwB,EAAE,OAAO,EAAE,OAAe,EAAC,EAAE,gBAAgB,qBAgCxG"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { SiteFooter, SiteFooterLink, SiteFooterLinks } from "@repraze/kernelkit/components/site-footer";
4
+ import { Fragment } from "react";
5
+ const CREDITS = {
6
+ kernelkit: { text: "built with", name: "KernelKit", href: "https://repraze.github.io/kernelkit/" },
7
+ termicolor: { text: "themed by", name: "TermiColor", href: "https://repraze.github.io/termicolor/" },
8
+ };
9
+ /**
10
+ * The suite's footer (GUIDELINES §7b): "MIT · themed by TermiColor · a repraze.com project" on the left,
11
+ * the site's links on the right.
12
+ */
13
+ export function SuiteFooter({ links, credits = ["termicolor"], tagline, license = "MIT" }) {
14
+ return (_jsxs(SiteFooter, { children: [_jsxs("span", { children: [license, credits.map((key) => {
15
+ const credit = CREDITS[key];
16
+ return (_jsxs(Fragment, { children: [" ", "\u00B7 ", credit.text, " ", _jsx(SiteFooterLink, { href: credit.href, className: "underline underline-offset-4", children: credit.name })] }, key));
17
+ }), tagline ? _jsxs(_Fragment, { children: [" \u00B7 ", tagline] }) : null, " \u00B7 a", " ", _jsx(SiteFooterLink, { href: "https://repraze.com", className: "underline underline-offset-4", children: "repraze.com" }), " ", "project"] }), _jsx(SiteFooterLinks, { "aria-label": "Footer", children: links.map((link) => (_jsx(SiteFooterLink, { href: link.href, render: link.render, children: link.label }, link.label))) })] }));
18
+ }
19
+ //# sourceMappingURL=suite-footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suite-footer.js","sourceRoot":"","sources":["../../src/site/suite-footer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAEtG,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAY/B,MAAM,OAAO,GAAoE;IAC7E,SAAS,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sCAAsC,EAAC;IAChG,UAAU,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,uCAAuC,EAAC;CACrG,CAAC;AAYF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAC,KAAK,EAAE,OAAO,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,EAAmB;IACrG,OAAO,CACH,MAAC,UAAU,eACP,2BACK,OAAO,EACP,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACjB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC5B,OAAO,CACH,MAAC,QAAQ,eACJ,GAAG,aACD,MAAM,CAAC,IAAI,EAAE,GAAG,EACnB,KAAC,cAAc,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAC,8BAA8B,YACtE,MAAM,CAAC,IAAI,GACC,KALN,GAAG,CAMP,CACd,CAAC;oBACN,CAAC,CAAC,EACD,OAAO,CAAC,CAAC,CAAC,0CAAM,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,eAAM,GAAG,EAC5C,KAAC,cAAc,IAAC,IAAI,EAAC,qBAAqB,EAAC,SAAS,EAAC,8BAA8B,4BAElE,EAAC,GAAG,eAElB,EACP,KAAC,eAAe,kBAAY,QAAQ,YAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjB,KAAC,cAAc,IAAkB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,YAChE,IAAI,CAAC,KAAK,IADM,IAAI,CAAC,KAAK,CAEd,CACpB,CAAC,GACY,IACT,CAChB,CAAC;AACN,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type * as React from "react";
2
+ export interface SuiteNavItem {
3
+ label: string;
4
+ /** A router link as a `render` element (`<Link to="/ports" />`); or `href` for a plain anchor. */
5
+ render?: React.ReactElement;
6
+ href?: string;
7
+ /** Marks the entry current (`aria-current="page"`): the section the open page belongs to. */
8
+ current?: boolean;
9
+ }
10
+ export interface SuiteHeaderProps {
11
+ /** The brand (a BrandLogo), in the header and as the phone menu's title. */
12
+ brand: React.ReactNode;
13
+ /** Accessible name of the home link, e.g. "KernelKit home". */
14
+ brandLabel: string;
15
+ /** The home link as a `render` element (`<Link to="/" />`); a plain "/" anchor otherwise. */
16
+ home?: React.ReactElement;
17
+ nav: SuiteNavItem[];
18
+ /** Accessible name of the nav (default "Main"). */
19
+ navLabel?: string;
20
+ /** The search (DocsSearch, or the site's own), before the separator. */
21
+ search?: React.ReactNode;
22
+ /** Replaces the default `<ThemeMenu />`. */
23
+ themeMenu?: React.ReactNode;
24
+ /** The repository button (a GitHub icon). */
25
+ repository?: {
26
+ href: string;
27
+ label?: string;
28
+ icon?: React.ReactNode;
29
+ };
30
+ /** The phone menu's content after the nav links (the docs nav, a tree). */
31
+ menu?: React.ReactNode;
32
+ /** Closes the phone menu when it changes: pass the pathname. */
33
+ locationKey?: string;
34
+ }
35
+ /**
36
+ * The suite's site header (GUIDELINES §7b): phone menu, brand, mono nav, then search · theme · repository.
37
+ * Every site renders this; only the brand, nav and menu content differ.
38
+ */
39
+ export declare function SuiteHeader({ brand, brandLabel, home, nav, navLabel, search, themeMenu, repository, menu, locationKey, }: SuiteHeaderProps): React.JSX.Element;
40
+ //# sourceMappingURL=suite-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suite-header.d.ts","sourceRoot":"","sources":["../../src/site/suite-header.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAKpC,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,4EAA4E;IAC5E,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,GAAG,EAAE,YAAY,EAAE,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,6CAA6C;IAC7C,UAAU,CAAC,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAAC,CAAC;IACpE,2EAA2E;IAC3E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,UAAU,EACV,IAAI,EACJ,GAAG,EACH,QAAiB,EACjB,MAAM,EACN,SAAS,EACT,UAAU,EACV,IAAI,EACJ,WAAW,GACd,EAAE,gBAAgB,qBAgDlB"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Button } from "@repraze/kernelkit/components/button";
4
+ import { Separator } from "@repraze/kernelkit/components/separator";
5
+ import { SiteHeader, SiteHeaderActions, SiteHeaderBrand, SiteHeaderContent, SiteHeaderMenu, SiteNav, SiteNavLink, } from "@repraze/kernelkit/components/site-header";
6
+ import { ThemeMenu } from "@repraze/kernelkit/components/theme-menu";
7
+ import { useEffect, useState } from "react";
8
+ import { GithubIcon } from "./github-icon";
9
+ /**
10
+ * The suite's site header (GUIDELINES §7b): phone menu, brand, mono nav, then search · theme · repository.
11
+ * Every site renders this; only the brand, nav and menu content differ.
12
+ */
13
+ export function SuiteHeader({ brand, brandLabel, home, nav, navLabel = "Main", search, themeMenu, repository, menu, locationKey, }) {
14
+ const [menuOpen, setMenuOpen] = useState(false);
15
+ useEffect(() => setMenuOpen(false), [locationKey]);
16
+ const navLinks = nav.map((item) => (_jsx(SiteNavLink, { href: item.href, "aria-current": item.current ? "page" : undefined, render: item.render, children: item.label }, item.label)));
17
+ return (_jsx(SiteHeader, { children: _jsxs(SiteHeaderContent, { children: [_jsxs(SiteHeaderMenu, { title: brand, open: menuOpen, onOpenChange: setMenuOpen, children: [_jsx("nav", { "aria-label": navLabel, className: "flex flex-col gap-1 px-2 pt-2", children: navLinks }), menu] }), _jsx(SiteHeaderBrand, { "aria-label": brandLabel, href: home ? undefined : "/", render: home, children: brand }), _jsx(SiteNav, { "aria-label": navLabel, children: navLinks }), _jsxs(SiteHeaderActions, { children: [search, _jsx(Separator, { orientation: "vertical", className: "mx-1 hidden data-vertical:h-5 data-vertical:self-center sm:block" }), themeMenu ?? _jsx(ThemeMenu, {}), repository ? (_jsx(Button, { variant: "ghost", size: "icon", render: _jsx("a", { href: repository.href, "aria-label": repository.label ?? "GitHub" }), children: repository.icon ?? _jsx(GithubIcon, { className: "size-4" }) })) : null] })] }) }));
18
+ }
19
+ //# sourceMappingURL=suite-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suite-header.js","sourceRoot":"","sources":["../../src/site/suite-header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,MAAM,EAAC,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,WAAW,GACd,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAiCzC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EACxB,KAAK,EACL,UAAU,EACV,IAAI,EACJ,GAAG,EACH,QAAQ,GAAG,MAAM,EACjB,MAAM,EACN,SAAS,EACT,UAAU,EACV,IAAI,EACJ,WAAW,GACI;IACf,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC/B,KAAC,WAAW,IAER,IAAI,EAAE,IAAI,CAAC,IAAI,kBACD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC/C,MAAM,EAAE,IAAI,CAAC,MAAM,YAElB,IAAI,CAAC,KAAK,IALN,IAAI,CAAC,KAAK,CAML,CACjB,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,UAAU,cACP,MAAC,iBAAiB,eACd,MAAC,cAAc,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,aACnE,4BAAiB,QAAQ,EAAE,SAAS,EAAC,+BAA+B,YAC/D,QAAQ,GACP,EACL,IAAI,IACQ,EACjB,KAAC,eAAe,kBAAa,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,YAC9E,KAAK,GACQ,EAClB,KAAC,OAAO,kBAAa,QAAQ,YAAG,QAAQ,GAAW,EACnD,MAAC,iBAAiB,eACb,MAAM,EACP,KAAC,SAAS,IACN,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,kEAAkE,GAC9E,EACD,SAAS,IAAI,KAAC,SAAS,KAAG,EAC1B,UAAU,CAAC,CAAC,CAAC,CACV,KAAC,MAAM,IACH,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,YAAG,IAAI,EAAE,UAAU,CAAC,IAAI,gBAAc,UAAU,CAAC,KAAK,IAAI,QAAQ,GAAI,YAE7E,UAAU,CAAC,IAAI,IAAI,KAAC,UAAU,IAAC,SAAS,EAAC,QAAQ,GAAG,GAChD,CACZ,CAAC,CAAC,CAAC,IAAI,IACQ,IACJ,GACX,CAChB,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Sets the tab title: "Page · Brand", or the bare brand on the home page (GUIDELINES §7b). */
2
+ export declare function usePageTitle(title: string | undefined, brand: string): void;
3
+ //# sourceMappingURL=use-page-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-page-title.d.ts","sourceRoot":"","sources":["../../src/site/use-page-title.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,QAIpE"}
@@ -0,0 +1,8 @@
1
+ import { useEffect } from "react";
2
+ /** Sets the tab title: "Page · Brand", or the bare brand on the home page (GUIDELINES §7b). */
3
+ export function usePageTitle(title, brand) {
4
+ useEffect(() => {
5
+ document.title = title ? `${title} · ${brand}` : brand;
6
+ }, [title, brand]);
7
+ }
8
+ //# sourceMappingURL=use-page-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-page-title.js","sourceRoot":"","sources":["../../src/site/use-page-title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAEhC,+FAA+F;AAC/F,MAAM,UAAU,YAAY,CAAC,KAAyB,EAAE,KAAa;IACjE,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { Plugin } from "vite";
2
+ import { type ThemeState } from "../provider/theme.ts";
3
+ export interface ThemeScriptPluginOptions {
4
+ /** The ThemeProvider's `storageKey`. */
5
+ storageKey: string;
6
+ /** The ThemeProvider's `defaultTheme`. */
7
+ defaults?: Partial<ThemeState>;
8
+ /** The comment in index.html replaced by the script (default `<!-- kernelkit:theme-script -->`). */
9
+ marker?: string;
10
+ /** Script source run first, in the same tag (a migration of an older storage format). */
11
+ prelude?: string;
12
+ }
13
+ /**
14
+ * Inline the kit's pre-paint theme script into index.html, so the stored mode, contrast, accent and radius
15
+ * apply before first paint. Replaces the marker comment, or goes first in <head> when there is none.
16
+ */
17
+ export declare function themeScriptPlugin({ storageKey, defaults, marker, prelude, }: ThemeScriptPluginOptions): Plugin;
18
+ /**
19
+ * Serve (dev) and emit (build) `favicon.svg` from the brand mark's SVG, so the icon never drifts from the
20
+ * logo. Link it with `href="%BASE_URL%favicon.svg"` so it works under a Pages base path.
21
+ */
22
+ export declare function faviconPlugin(svg: string | (() => string), fileName?: string): Plugin;
23
+ /** GitHub Pages has no SPA rewrites: copy index.html to 404.html so deep links load the app. */
24
+ export declare function spaFallback(): Plugin;
25
+ export interface SuiteSourceOptions {
26
+ /** Packages with React contexts to keep as one copy when a linked package brings its own (default below). */
27
+ dedupe?: string[];
28
+ /** The exports condition pointing at TypeScript sources (default "@repraze/source"). */
29
+ condition?: string;
30
+ }
31
+ /**
32
+ * For each suite package (`@repraze/kernelkit`…) that is symlinked into node_modules (`npm link`, a
33
+ * workspace): serve it from its TypeScript sources (its `@repraze/source` exports condition), unbundled,
34
+ * so edits there hot-reload; dedupe React-context packages, since a linked package sits outside this tree.
35
+ * Installed from npm: nothing changes, its built dist is used and pre-bundled like any dependency.
36
+ */
37
+ export declare function suiteSourceConditions(packages: string[], options?: SuiteSourceOptions): Plugin;
38
+ /** What `virtual:docs-meta` lists per page. */
39
+ export interface DocsMetaEntry {
40
+ slug: string;
41
+ title: string;
42
+ category: string;
43
+ description: string;
44
+ order?: number;
45
+ }
46
+ /** A docs page's manifest entry, read from its `defineDoc({...})` call without running it. */
47
+ export declare function readDocMeta(file: string, slug: string, source?: string): DocsMetaEntry;
48
+ /** Each top-level function or const of a file, by name, as written (without `export `). */
49
+ export declare function extractFunctions(source: string, fileName?: string): Record<string, string>;
50
+ /**
51
+ * A demo's own source: its declaration from `export function Name` (or `export const Name`) to its
52
+ * closing brace, parsed with TypeScript, so code after it (a `Notes()` helper, constants) stays out.
53
+ */
54
+ export declare function extractFunction(source: string, name: string): string;
55
+ /**
56
+ * The docs build step, for `@repraze/kernelkit/docs`:
57
+ * - `virtual:docs-meta`: title, category, description and order of every page in `docsDir`, read
58
+ * statically from its `defineDoc({...})` call, so the nav and search don't pull every page's demos into
59
+ * the main bundle;
60
+ * - `<page>.tsx?demo-sources`: `{functions}`, each demo's own source for its Code tab (see extractFunction).
61
+ *
62
+ * Types: add `@repraze/kernelkit/vite/client` to the site's tsconfig `types`.
63
+ */
64
+ export declare function docsMetaPlugin(docsDir: string): Plugin;
65
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAIlE,MAAM,WAAW,wBAAwB;IACrC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,UAAU,EACV,QAAQ,EACR,MAA0C,EAC1C,OAAO,GACV,EAAE,wBAAwB,GAAG,MAAM,CASnC;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,QAAQ,SAAgB,GAAG,MAAM,CAkB5F;AAID,gGAAgG;AAChG,wBAAgB,WAAW,IAAI,MAAM,CAUpC;AAkBD,MAAM,WAAW,kBAAkB;IAC/B,6GAA6G;IAC7G,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAgBlG;AAgCD,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAA6B,GAAG,aAAa,CAqC1G;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB7F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkCtD"}