@fluid-app/rep-core 0.1.14 → 0.1.16

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 (311) hide show
  1. package/dist/chunk-CKQMccvm.cjs +28 -0
  2. package/dist/data-sources/DataAwareWidget.cjs +47 -56
  3. package/dist/data-sources/DataAwareWidget.cjs.map +1 -1
  4. package/dist/data-sources/DataAwareWidget.d.cts +27 -19
  5. package/dist/data-sources/DataAwareWidget.d.cts.map +1 -0
  6. package/dist/data-sources/DataAwareWidget.d.mts +38 -0
  7. package/dist/data-sources/DataAwareWidget.d.mts.map +1 -0
  8. package/dist/data-sources/DataAwareWidget.mjs +48 -0
  9. package/dist/data-sources/DataAwareWidget.mjs.map +1 -0
  10. package/dist/data-sources/ErrorState.cjs +18 -10
  11. package/dist/data-sources/ErrorState.cjs.map +1 -1
  12. package/dist/data-sources/ErrorState.d.cts +5 -3
  13. package/dist/data-sources/ErrorState.d.cts.map +1 -0
  14. package/dist/data-sources/ErrorState.d.mts +7 -0
  15. package/dist/data-sources/ErrorState.d.mts.map +1 -0
  16. package/dist/data-sources/ErrorState.mjs +18 -0
  17. package/dist/data-sources/ErrorState.mjs.map +1 -0
  18. package/dist/data-sources/context.cjs +22 -14
  19. package/dist/data-sources/context.cjs.map +1 -1
  20. package/dist/data-sources/context.d.cts +16 -10
  21. package/dist/data-sources/context.d.cts.map +1 -0
  22. package/dist/data-sources/context.d.mts +22 -0
  23. package/dist/data-sources/context.d.mts.map +1 -0
  24. package/dist/data-sources/context.mjs +21 -0
  25. package/dist/data-sources/context.mjs.map +1 -0
  26. package/dist/data-sources/fetchers/api.cjs +63 -10
  27. package/dist/data-sources/fetchers/api.cjs.map +1 -1
  28. package/dist/data-sources/fetchers/api.d.cts +4 -2
  29. package/dist/data-sources/fetchers/api.d.cts.map +1 -0
  30. package/dist/data-sources/fetchers/api.d.mts +10 -0
  31. package/dist/data-sources/fetchers/api.d.mts.map +1 -0
  32. package/dist/data-sources/fetchers/api.mjs +64 -0
  33. package/dist/data-sources/fetchers/api.mjs.map +1 -0
  34. package/dist/data-sources/fetchers/custom.cjs +106 -10
  35. package/dist/data-sources/fetchers/custom.cjs.map +1 -1
  36. package/dist/data-sources/fetchers/custom.d.cts +4 -2
  37. package/dist/data-sources/fetchers/custom.d.cts.map +1 -0
  38. package/dist/data-sources/fetchers/{custom.d.ts → custom.d.mts} +4 -2
  39. package/dist/data-sources/fetchers/custom.d.mts.map +1 -0
  40. package/dist/data-sources/fetchers/custom.mjs +107 -0
  41. package/dist/data-sources/fetchers/custom.mjs.map +1 -0
  42. package/dist/data-sources/fetchers/static.cjs +159 -14
  43. package/dist/data-sources/fetchers/static.cjs.map +1 -1
  44. package/dist/data-sources/fetchers/static.d.cts +12 -10
  45. package/dist/data-sources/fetchers/static.d.cts.map +1 -0
  46. package/dist/data-sources/fetchers/{static.d.ts → static.d.mts} +12 -10
  47. package/dist/data-sources/fetchers/static.d.mts.map +1 -0
  48. package/dist/data-sources/fetchers/static.mjs +158 -0
  49. package/dist/data-sources/fetchers/static.mjs.map +1 -0
  50. package/dist/data-sources/preview-context.cjs +15 -15
  51. package/dist/data-sources/preview-context.cjs.map +1 -1
  52. package/dist/data-sources/preview-context.d.cts +10 -6
  53. package/dist/data-sources/preview-context.d.cts.map +1 -0
  54. package/dist/data-sources/preview-context.d.mts +15 -0
  55. package/dist/data-sources/preview-context.d.mts.map +1 -0
  56. package/dist/data-sources/preview-context.mjs +18 -0
  57. package/dist/data-sources/preview-context.mjs.map +1 -0
  58. package/dist/data-sources/registry-context.cjs +51 -24
  59. package/dist/data-sources/registry-context.cjs.map +1 -1
  60. package/dist/data-sources/registry-context.d.cts +30 -22
  61. package/dist/data-sources/registry-context.d.cts.map +1 -0
  62. package/dist/data-sources/registry-context.d.mts +49 -0
  63. package/dist/data-sources/registry-context.d.mts.map +1 -0
  64. package/dist/data-sources/registry-context.mjs +49 -0
  65. package/dist/data-sources/registry-context.mjs.map +1 -0
  66. package/dist/data-sources/registry.cjs +29 -18
  67. package/dist/data-sources/registry.cjs.map +1 -1
  68. package/dist/data-sources/registry.d.cts +9 -7
  69. package/dist/data-sources/registry.d.cts.map +1 -0
  70. package/dist/data-sources/registry.d.mts +19 -0
  71. package/dist/data-sources/registry.d.mts.map +1 -0
  72. package/dist/data-sources/registry.mjs +29 -0
  73. package/dist/data-sources/registry.mjs.map +1 -0
  74. package/dist/data-sources/transformers.cjs +152 -10
  75. package/dist/data-sources/transformers.cjs.map +1 -1
  76. package/dist/data-sources/transformers.d.cts +4 -17
  77. package/dist/data-sources/transformers.d.cts.map +1 -0
  78. package/dist/data-sources/transformers.d.mts +10 -0
  79. package/dist/data-sources/transformers.d.mts.map +1 -0
  80. package/dist/data-sources/transformers.mjs +153 -0
  81. package/dist/data-sources/transformers.mjs.map +1 -0
  82. package/dist/data-sources/types.cjs +0 -4
  83. package/dist/data-sources/types.d.cts +2 -157
  84. package/dist/data-sources/types.d.mts +2 -0
  85. package/dist/data-sources/types.mjs +1 -0
  86. package/dist/data-sources/use-widget-data.cjs +109 -17
  87. package/dist/data-sources/use-widget-data.cjs.map +1 -1
  88. package/dist/data-sources/use-widget-data.d.cts +9 -8
  89. package/dist/data-sources/use-widget-data.d.cts.map +1 -0
  90. package/dist/data-sources/use-widget-data.d.mts +17 -0
  91. package/dist/data-sources/use-widget-data.d.mts.map +1 -0
  92. package/dist/data-sources/use-widget-data.mjs +109 -0
  93. package/dist/data-sources/use-widget-data.mjs.map +1 -0
  94. package/dist/index-Bxe_LIi8.d.cts +287 -0
  95. package/dist/index-Bxe_LIi8.d.cts.map +1 -0
  96. package/dist/index-CCAu2n19.d.mts +287 -0
  97. package/dist/index-CCAu2n19.d.mts.map +1 -0
  98. package/dist/registries/index.cjs +212 -127
  99. package/dist/registries/index.cjs.map +1 -1
  100. package/dist/registries/index.d.cts +146 -149
  101. package/dist/registries/index.d.cts.map +1 -0
  102. package/dist/registries/{index.d.ts → index.d.mts} +146 -149
  103. package/dist/registries/index.d.mts.map +1 -0
  104. package/dist/registries/index.mjs +229 -0
  105. package/dist/registries/index.mjs.map +1 -0
  106. package/dist/shell/AppShellLayout.cjs +47 -12
  107. package/dist/shell/AppShellLayout.cjs.map +1 -1
  108. package/dist/shell/AppShellLayout.d.cts +29 -19
  109. package/dist/shell/AppShellLayout.d.cts.map +1 -0
  110. package/dist/shell/AppShellLayout.d.mts +40 -0
  111. package/dist/shell/AppShellLayout.d.mts.map +1 -0
  112. package/dist/shell/AppShellLayout.mjs +46 -0
  113. package/dist/{chunk-45BCVWQK.cjs.map → shell/AppShellLayout.mjs.map} +1 -1
  114. package/dist/shell/ScreenHeader.cjs +44 -0
  115. package/dist/shell/ScreenHeader.cjs.map +1 -0
  116. package/dist/shell/ScreenHeader.d.cts +12 -0
  117. package/dist/shell/ScreenHeader.d.cts.map +1 -0
  118. package/dist/shell/ScreenHeader.d.mts +12 -0
  119. package/dist/shell/ScreenHeader.d.mts.map +1 -0
  120. package/dist/shell/ScreenHeader.mjs +42 -0
  121. package/dist/shell/ScreenHeader.mjs.map +1 -0
  122. package/dist/shell/ScreenHeaderContext.cjs +91 -0
  123. package/dist/shell/ScreenHeaderContext.cjs.map +1 -0
  124. package/dist/shell/ScreenHeaderContext.d.cts +36 -0
  125. package/dist/shell/ScreenHeaderContext.d.cts.map +1 -0
  126. package/dist/shell/ScreenHeaderContext.d.mts +36 -0
  127. package/dist/shell/ScreenHeaderContext.d.mts.map +1 -0
  128. package/dist/shell/ScreenHeaderContext.mjs +86 -0
  129. package/dist/shell/ScreenHeaderContext.mjs.map +1 -0
  130. package/dist/shell/ThemeModeContext.cjs +68 -18
  131. package/dist/shell/ThemeModeContext.cjs.map +1 -1
  132. package/dist/shell/ThemeModeContext.d.cts +23 -16
  133. package/dist/shell/ThemeModeContext.d.cts.map +1 -0
  134. package/dist/shell/ThemeModeContext.d.mts +34 -0
  135. package/dist/shell/ThemeModeContext.d.mts.map +1 -0
  136. package/dist/shell/ThemeModeContext.mjs +66 -0
  137. package/dist/shell/ThemeModeContext.mjs.map +1 -0
  138. package/dist/shell/index.cjs +43 -205
  139. package/dist/shell/index.d.cts +7 -43
  140. package/dist/shell/index.d.mts +7 -0
  141. package/dist/shell/index.mjs +7 -0
  142. package/dist/shell/sidebar.cjs +372 -87
  143. package/dist/shell/sidebar.cjs.map +1 -1
  144. package/dist/shell/sidebar.d.cts +38 -36
  145. package/dist/shell/sidebar.d.cts.map +1 -0
  146. package/dist/shell/{sidebar.d.ts → sidebar.d.mts} +38 -36
  147. package/dist/shell/sidebar.d.mts.map +1 -0
  148. package/dist/shell/sidebar.mjs +364 -0
  149. package/dist/{chunk-PFDBULOI.cjs.map → shell/sidebar.mjs.map} +1 -1
  150. package/dist/shell/use-mobile.cjs +49 -18
  151. package/dist/shell/use-mobile.cjs.map +1 -1
  152. package/dist/shell/use-mobile.d.cts +3 -1
  153. package/dist/shell/use-mobile.d.cts.map +1 -0
  154. package/dist/shell/{use-mobile.d.ts → use-mobile.d.mts} +3 -1
  155. package/dist/shell/use-mobile.d.mts.map +1 -0
  156. package/dist/shell/use-mobile.mjs +47 -0
  157. package/dist/shell/use-mobile.mjs.map +1 -0
  158. package/dist/theme/index.cjs +663 -549
  159. package/dist/theme/index.cjs.map +1 -1
  160. package/dist/theme/index.d.cts +32 -32
  161. package/dist/theme/index.d.cts.map +1 -0
  162. package/dist/theme/{index.d.ts → index.d.mts} +32 -32
  163. package/dist/theme/index.d.mts.map +1 -0
  164. package/dist/theme/index.mjs +728 -0
  165. package/dist/theme/index.mjs.map +1 -0
  166. package/dist/types/index.cjs +18 -72
  167. package/dist/types/index.d.cts +4 -268
  168. package/dist/types/index.d.mts +4 -0
  169. package/dist/types/index.mjs +2 -0
  170. package/dist/types-BIXtQlHB.d.cts +155 -0
  171. package/dist/types-BIXtQlHB.d.cts.map +1 -0
  172. package/dist/types-BXFX9bXp.cjs +303 -0
  173. package/dist/types-BXFX9bXp.cjs.map +1 -0
  174. package/dist/types-Bjmd7Fdx.mjs +208 -0
  175. package/dist/types-Bjmd7Fdx.mjs.map +1 -0
  176. package/dist/types-ByG6Xy3C.d.mts +85 -0
  177. package/dist/types-ByG6Xy3C.d.mts.map +1 -0
  178. package/dist/types-C5OFJy-O.d.mts +155 -0
  179. package/dist/types-C5OFJy-O.d.mts.map +1 -0
  180. package/dist/types-Ctu-Zio6.d.cts +85 -0
  181. package/dist/types-Ctu-Zio6.d.cts.map +1 -0
  182. package/dist/{widget-schema-D-ca3--K.d.ts → widget-schema--PY1uMWx.d.cts} +38 -41
  183. package/dist/widget-schema--PY1uMWx.d.cts.map +1 -0
  184. package/dist/{widget-schema-DvJdg1-B.d.cts → widget-schema-YkD5p3v4.d.mts} +38 -41
  185. package/dist/widget-schema-YkD5p3v4.d.mts.map +1 -0
  186. package/dist/widget-utils/index.cjs +96 -89
  187. package/dist/widget-utils/index.cjs.map +1 -1
  188. package/dist/widget-utils/index.d.cts +8 -6
  189. package/dist/widget-utils/index.d.cts.map +1 -0
  190. package/dist/widget-utils/{index.d.ts → index.d.mts} +8 -6
  191. package/dist/widget-utils/index.d.mts.map +1 -0
  192. package/dist/widget-utils/index.mjs +119 -0
  193. package/dist/widget-utils/index.mjs.map +1 -0
  194. package/package.json +4 -4
  195. package/dist/chunk-2SPTFZRC.js +0 -72
  196. package/dist/chunk-2SPTFZRC.js.map +0 -1
  197. package/dist/chunk-3I5Y3PEO.js +0 -23
  198. package/dist/chunk-3I5Y3PEO.js.map +0 -1
  199. package/dist/chunk-3ZRE7GX6.js +0 -620
  200. package/dist/chunk-3ZRE7GX6.js.map +0 -1
  201. package/dist/chunk-45BCVWQK.cjs +0 -38
  202. package/dist/chunk-46PUWB7C.cjs +0 -69
  203. package/dist/chunk-46PUWB7C.cjs.map +0 -1
  204. package/dist/chunk-5NYM4UTW.cjs +0 -58
  205. package/dist/chunk-5NYM4UTW.cjs.map +0 -1
  206. package/dist/chunk-B2NTWEDF.cjs +0 -130
  207. package/dist/chunk-B2NTWEDF.cjs.map +0 -1
  208. package/dist/chunk-GDY76JA6.cjs +0 -153
  209. package/dist/chunk-GDY76JA6.cjs.map +0 -1
  210. package/dist/chunk-HGVSPZEL.cjs +0 -119
  211. package/dist/chunk-HGVSPZEL.cjs.map +0 -1
  212. package/dist/chunk-HIDJYVKJ.js +0 -54
  213. package/dist/chunk-HIDJYVKJ.js.map +0 -1
  214. package/dist/chunk-KTXGU7OP.cjs +0 -136
  215. package/dist/chunk-KTXGU7OP.cjs.map +0 -1
  216. package/dist/chunk-KW5E2H5T.js +0 -128
  217. package/dist/chunk-KW5E2H5T.js.map +0 -1
  218. package/dist/chunk-LBLHDGMT.js +0 -25
  219. package/dist/chunk-LBLHDGMT.js.map +0 -1
  220. package/dist/chunk-MNVDL4FX.js +0 -134
  221. package/dist/chunk-MNVDL4FX.js.map +0 -1
  222. package/dist/chunk-MOTOSPAO.cjs +0 -15
  223. package/dist/chunk-MOTOSPAO.cjs.map +0 -1
  224. package/dist/chunk-N2K6W7FX.cjs +0 -169
  225. package/dist/chunk-N2K6W7FX.cjs.map +0 -1
  226. package/dist/chunk-PFDBULOI.cjs +0 -665
  227. package/dist/chunk-PVTQWD4I.js +0 -166
  228. package/dist/chunk-PVTQWD4I.js.map +0 -1
  229. package/dist/chunk-SJQPHJL4.cjs +0 -26
  230. package/dist/chunk-SJQPHJL4.cjs.map +0 -1
  231. package/dist/chunk-TML66UEU.js +0 -13
  232. package/dist/chunk-TML66UEU.js.map +0 -1
  233. package/dist/chunk-U3CQLX2Z.cjs +0 -28
  234. package/dist/chunk-U3CQLX2Z.cjs.map +0 -1
  235. package/dist/chunk-UUNEVOA5.js +0 -36
  236. package/dist/chunk-UUNEVOA5.js.map +0 -1
  237. package/dist/chunk-VRF7QEID.js +0 -67
  238. package/dist/chunk-VRF7QEID.js.map +0 -1
  239. package/dist/chunk-VSZWXSQA.js +0 -38
  240. package/dist/chunk-VSZWXSQA.js.map +0 -1
  241. package/dist/chunk-WYOHFNNW.js +0 -117
  242. package/dist/chunk-WYOHFNNW.js.map +0 -1
  243. package/dist/chunk-YKF5ZFF5.js +0 -136
  244. package/dist/chunk-YKF5ZFF5.js.map +0 -1
  245. package/dist/chunk-YXJMBVXO.cjs +0 -76
  246. package/dist/chunk-YXJMBVXO.cjs.map +0 -1
  247. package/dist/chunk-ZA4AE7KF.cjs +0 -42
  248. package/dist/chunk-ZA4AE7KF.cjs.map +0 -1
  249. package/dist/data-sources/DataAwareWidget.d.ts +0 -30
  250. package/dist/data-sources/DataAwareWidget.js +0 -57
  251. package/dist/data-sources/DataAwareWidget.js.map +0 -1
  252. package/dist/data-sources/ErrorState.d.ts +0 -5
  253. package/dist/data-sources/ErrorState.js +0 -3
  254. package/dist/data-sources/ErrorState.js.map +0 -1
  255. package/dist/data-sources/context.d.ts +0 -16
  256. package/dist/data-sources/context.js +0 -3
  257. package/dist/data-sources/context.js.map +0 -1
  258. package/dist/data-sources/fetchers/api.d.ts +0 -8
  259. package/dist/data-sources/fetchers/api.js +0 -3
  260. package/dist/data-sources/fetchers/api.js.map +0 -1
  261. package/dist/data-sources/fetchers/custom.js +0 -3
  262. package/dist/data-sources/fetchers/custom.js.map +0 -1
  263. package/dist/data-sources/fetchers/static.js +0 -3
  264. package/dist/data-sources/fetchers/static.js.map +0 -1
  265. package/dist/data-sources/preview-context.d.ts +0 -11
  266. package/dist/data-sources/preview-context.js +0 -18
  267. package/dist/data-sources/preview-context.js.map +0 -1
  268. package/dist/data-sources/registry-context.d.ts +0 -41
  269. package/dist/data-sources/registry-context.js +0 -9
  270. package/dist/data-sources/registry-context.js.map +0 -1
  271. package/dist/data-sources/registry.d.ts +0 -17
  272. package/dist/data-sources/registry.js +0 -7
  273. package/dist/data-sources/registry.js.map +0 -1
  274. package/dist/data-sources/transformers.d.ts +0 -23
  275. package/dist/data-sources/transformers.js +0 -3
  276. package/dist/data-sources/transformers.js.map +0 -1
  277. package/dist/data-sources/types.cjs.map +0 -1
  278. package/dist/data-sources/types.d.ts +0 -157
  279. package/dist/data-sources/types.js +0 -3
  280. package/dist/data-sources/types.js.map +0 -1
  281. package/dist/data-sources/use-widget-data.d.ts +0 -16
  282. package/dist/data-sources/use-widget-data.js +0 -10
  283. package/dist/data-sources/use-widget-data.js.map +0 -1
  284. package/dist/registries/index.js +0 -144
  285. package/dist/registries/index.js.map +0 -1
  286. package/dist/shareable-item-DkgWpwoU.d.cts +0 -21
  287. package/dist/shareable-item-DkgWpwoU.d.ts +0 -21
  288. package/dist/shell/AppShellLayout.d.ts +0 -30
  289. package/dist/shell/AppShellLayout.js +0 -5
  290. package/dist/shell/AppShellLayout.js.map +0 -1
  291. package/dist/shell/ThemeModeContext.d.ts +0 -27
  292. package/dist/shell/ThemeModeContext.js +0 -3
  293. package/dist/shell/ThemeModeContext.js.map +0 -1
  294. package/dist/shell/index.cjs.map +0 -1
  295. package/dist/shell/index.d.ts +0 -43
  296. package/dist/shell/index.js +0 -76
  297. package/dist/shell/index.js.map +0 -1
  298. package/dist/shell/sidebar.js +0 -4
  299. package/dist/shell/sidebar.js.map +0 -1
  300. package/dist/shell/use-mobile.js +0 -3
  301. package/dist/shell/use-mobile.js.map +0 -1
  302. package/dist/theme/index.js +0 -611
  303. package/dist/theme/index.js.map +0 -1
  304. package/dist/types/index.cjs.map +0 -1
  305. package/dist/types/index.d.ts +0 -268
  306. package/dist/types/index.js +0 -3
  307. package/dist/types/index.js.map +0 -1
  308. package/dist/types-CNIhy4JD.d.cts +0 -83
  309. package/dist/types-CNIhy4JD.d.ts +0 -83
  310. package/dist/widget-utils/index.js +0 -111
  311. package/dist/widget-utils/index.js.map +0 -1
@@ -0,0 +1,91 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../chunk-CKQMccvm.cjs");
4
+ let react = require("react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/shell/ScreenHeaderContext.tsx
7
+ /**
8
+ * Split into separate read/write contexts so that components calling
9
+ * useScreenHeaderActions (writers) don't re-render when the actions
10
+ * state changes — only the ScreenHeader (reader) re-renders.
11
+ */
12
+ const ScreenHeaderWriteContext = (0, react.createContext)(null);
13
+ const ScreenHeaderReadContext = (0, react.createContext)(null);
14
+ const ScreenHeaderBreadcrumbsWriteContext = (0, react.createContext)(null);
15
+ const ScreenHeaderBreadcrumbsReadContext = (0, react.createContext)(null);
16
+ function ScreenHeaderProvider({ children }) {
17
+ const [actions, setActions] = (0, react.useState)(null);
18
+ const [breadcrumbs, setBreadcrumbs] = (0, react.useState)(null);
19
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScreenHeaderWriteContext.Provider, {
20
+ value: setActions,
21
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScreenHeaderReadContext.Provider, {
22
+ value: actions,
23
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScreenHeaderBreadcrumbsWriteContext.Provider, {
24
+ value: setBreadcrumbs,
25
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScreenHeaderBreadcrumbsReadContext.Provider, {
26
+ value: breadcrumbs,
27
+ children
28
+ })
29
+ })
30
+ })
31
+ });
32
+ }
33
+ /**
34
+ * Sets actions to display in the ScreenHeader.
35
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
36
+ * `false` otherwise. Pages can use this boolean to conditionally skip
37
+ * rendering their own PageHeader.
38
+ *
39
+ * Cleans up actions on unmount so navigating away doesn't leave stale actions.
40
+ */
41
+ function useScreenHeaderActions(actions) {
42
+ const setActions = (0, react.useContext)(ScreenHeaderWriteContext);
43
+ const setActionsRef = (0, react.useRef)(setActions);
44
+ setActionsRef.current = setActions;
45
+ (0, react.useEffect)(() => {
46
+ if (!setActions) return;
47
+ setActions(actions);
48
+ }, [actions, setActions]);
49
+ (0, react.useEffect)(() => {
50
+ return () => setActionsRef.current?.(null);
51
+ }, []);
52
+ return setActions !== null;
53
+ }
54
+ /**
55
+ * Sets breadcrumbs to display in the ScreenHeader (in place of the plain title).
56
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
57
+ * `false` otherwise.
58
+ *
59
+ * Cleans up breadcrumbs on unmount so navigating away doesn't leave stale breadcrumbs.
60
+ */
61
+ function useScreenHeaderBreadcrumbs(breadcrumbs) {
62
+ const setBreadcrumbs = (0, react.useContext)(ScreenHeaderBreadcrumbsWriteContext);
63
+ const setBreadcrumbsRef = (0, react.useRef)(setBreadcrumbs);
64
+ setBreadcrumbsRef.current = setBreadcrumbs;
65
+ (0, react.useEffect)(() => {
66
+ if (!setBreadcrumbs) return;
67
+ setBreadcrumbs(breadcrumbs);
68
+ }, [breadcrumbs, setBreadcrumbs]);
69
+ (0, react.useEffect)(() => {
70
+ return () => setBreadcrumbsRef.current?.(null);
71
+ }, []);
72
+ return setBreadcrumbs !== null;
73
+ }
74
+ /**
75
+ * Reads the current screen header actions and breadcrumbs. Used internally by ScreenHeader.
76
+ */
77
+ function useScreenHeaderContext() {
78
+ const actions = (0, react.useContext)(ScreenHeaderReadContext);
79
+ const breadcrumbs = (0, react.useContext)(ScreenHeaderBreadcrumbsReadContext);
80
+ return {
81
+ actions: actions ?? null,
82
+ breadcrumbs: breadcrumbs ?? null
83
+ };
84
+ }
85
+ //#endregion
86
+ exports.ScreenHeaderProvider = ScreenHeaderProvider;
87
+ exports.useScreenHeaderActions = useScreenHeaderActions;
88
+ exports.useScreenHeaderBreadcrumbs = useScreenHeaderBreadcrumbs;
89
+ exports.useScreenHeaderContext = useScreenHeaderContext;
90
+
91
+ //# sourceMappingURL=ScreenHeaderContext.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenHeaderContext.cjs","names":[],"sources":["../../src/shell/ScreenHeaderContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useEffect,\n useRef,\n type ReactNode,\n} from \"react\";\n\ntype SetActions = (actions: ReactNode) => void;\ntype SetBreadcrumbs = (breadcrumbs: ReactNode) => void;\n\n/**\n * Split into separate read/write contexts so that components calling\n * useScreenHeaderActions (writers) don't re-render when the actions\n * state changes — only the ScreenHeader (reader) re-renders.\n */\nconst ScreenHeaderWriteContext = createContext<SetActions | null>(null);\nconst ScreenHeaderReadContext = createContext<ReactNode>(null);\n\nconst ScreenHeaderBreadcrumbsWriteContext =\n createContext<SetBreadcrumbs | null>(null);\nconst ScreenHeaderBreadcrumbsReadContext = createContext<ReactNode>(null);\n\nexport function ScreenHeaderProvider({ children }: { children: ReactNode }) {\n const [actions, setActions] = useState<ReactNode>(null);\n const [breadcrumbs, setBreadcrumbs] = useState<ReactNode>(null);\n\n return (\n <ScreenHeaderWriteContext.Provider value={setActions}>\n <ScreenHeaderReadContext.Provider value={actions}>\n <ScreenHeaderBreadcrumbsWriteContext.Provider value={setBreadcrumbs}>\n <ScreenHeaderBreadcrumbsReadContext.Provider value={breadcrumbs}>\n {children}\n </ScreenHeaderBreadcrumbsReadContext.Provider>\n </ScreenHeaderBreadcrumbsWriteContext.Provider>\n </ScreenHeaderReadContext.Provider>\n </ScreenHeaderWriteContext.Provider>\n );\n}\n\n/**\n * Sets actions to display in the ScreenHeader.\n * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),\n * `false` otherwise. Pages can use this boolean to conditionally skip\n * rendering their own PageHeader.\n *\n * Cleans up actions on unmount so navigating away doesn't leave stale actions.\n */\nexport function useScreenHeaderActions(actions: ReactNode): boolean {\n const setActions = useContext(ScreenHeaderWriteContext);\n const setActionsRef = useRef(setActions);\n setActionsRef.current = setActions;\n\n // Update actions when the value changes\n useEffect(() => {\n if (!setActions) return;\n setActions(actions);\n }, [actions, setActions]);\n\n // Clear actions only on unmount\n useEffect(() => {\n return () => setActionsRef.current?.(null);\n }, []);\n\n return setActions !== null;\n}\n\n/**\n * Sets breadcrumbs to display in the ScreenHeader (in place of the plain title).\n * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),\n * `false` otherwise.\n *\n * Cleans up breadcrumbs on unmount so navigating away doesn't leave stale breadcrumbs.\n */\nexport function useScreenHeaderBreadcrumbs(breadcrumbs: ReactNode): boolean {\n const setBreadcrumbs = useContext(ScreenHeaderBreadcrumbsWriteContext);\n const setBreadcrumbsRef = useRef(setBreadcrumbs);\n setBreadcrumbsRef.current = setBreadcrumbs;\n\n // Update breadcrumbs when the value changes\n useEffect(() => {\n if (!setBreadcrumbs) return;\n setBreadcrumbs(breadcrumbs);\n }, [breadcrumbs, setBreadcrumbs]);\n\n // Clear breadcrumbs only on unmount\n useEffect(() => {\n return () => setBreadcrumbsRef.current?.(null);\n }, []);\n\n return setBreadcrumbs !== null;\n}\n\n/**\n * Reads the current screen header actions and breadcrumbs. Used internally by ScreenHeader.\n */\nexport function useScreenHeaderContext(): {\n actions: ReactNode;\n breadcrumbs: ReactNode;\n} {\n const actions = useContext(ScreenHeaderReadContext);\n const breadcrumbs = useContext(ScreenHeaderBreadcrumbsReadContext);\n return { actions: actions ?? null, breadcrumbs: breadcrumbs ?? null };\n}\n"],"mappings":";;;;;;;;;;;AAmBA,MAAM,4BAAA,GAAA,MAAA,eAA4D,KAAK;AACvE,MAAM,2BAAA,GAAA,MAAA,eAAmD,KAAK;AAE9D,MAAM,uCAAA,GAAA,MAAA,eACiC,KAAK;AAC5C,MAAM,sCAAA,GAAA,MAAA,eAA8D,KAAK;AAEzE,SAAgB,qBAAqB,EAAE,YAAqC;CAC1E,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAkC,KAAK;CACvD,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAAsC,KAAK;AAE/D,QACE,iBAAA,GAAA,kBAAA,KAAC,yBAAyB,UAA1B;EAAmC,OAAO;YACxC,iBAAA,GAAA,kBAAA,KAAC,wBAAwB,UAAzB;GAAkC,OAAO;aACvC,iBAAA,GAAA,kBAAA,KAAC,oCAAoC,UAArC;IAA8C,OAAO;cACnD,iBAAA,GAAA,kBAAA,KAAC,mCAAmC,UAApC;KAA6C,OAAO;KACjD;KAC2C,CAAA;IACD,CAAA;GACd,CAAA;EACD,CAAA;;;;;;;;;;AAYxC,SAAgB,uBAAuB,SAA6B;CAClE,MAAM,cAAA,GAAA,MAAA,YAAwB,yBAAyB;CACvD,MAAM,iBAAA,GAAA,MAAA,QAAuB,WAAW;AACxC,eAAc,UAAU;AAGxB,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI,CAAC,WAAY;AACjB,aAAW,QAAQ;IAClB,CAAC,SAAS,WAAW,CAAC;AAGzB,EAAA,GAAA,MAAA,iBAAgB;AACd,eAAa,cAAc,UAAU,KAAK;IACzC,EAAE,CAAC;AAEN,QAAO,eAAe;;;;;;;;;AAUxB,SAAgB,2BAA2B,aAAiC;CAC1E,MAAM,kBAAA,GAAA,MAAA,YAA4B,oCAAoC;CACtE,MAAM,qBAAA,GAAA,MAAA,QAA2B,eAAe;AAChD,mBAAkB,UAAU;AAG5B,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI,CAAC,eAAgB;AACrB,iBAAe,YAAY;IAC1B,CAAC,aAAa,eAAe,CAAC;AAGjC,EAAA,GAAA,MAAA,iBAAgB;AACd,eAAa,kBAAkB,UAAU,KAAK;IAC7C,EAAE,CAAC;AAEN,QAAO,mBAAmB;;;;;AAM5B,SAAgB,yBAGd;CACA,MAAM,WAAA,GAAA,MAAA,YAAqB,wBAAwB;CACnD,MAAM,eAAA,GAAA,MAAA,YAAyB,mCAAmC;AAClE,QAAO;EAAE,SAAS,WAAW;EAAM,aAAa,eAAe;EAAM"}
@@ -0,0 +1,36 @@
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/shell/ScreenHeaderContext.d.ts
5
+ declare function ScreenHeaderProvider({
6
+ children
7
+ }: {
8
+ children: ReactNode;
9
+ }): react_jsx_runtime0.JSX.Element;
10
+ /**
11
+ * Sets actions to display in the ScreenHeader.
12
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
13
+ * `false` otherwise. Pages can use this boolean to conditionally skip
14
+ * rendering their own PageHeader.
15
+ *
16
+ * Cleans up actions on unmount so navigating away doesn't leave stale actions.
17
+ */
18
+ declare function useScreenHeaderActions(actions: ReactNode): boolean;
19
+ /**
20
+ * Sets breadcrumbs to display in the ScreenHeader (in place of the plain title).
21
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
22
+ * `false` otherwise.
23
+ *
24
+ * Cleans up breadcrumbs on unmount so navigating away doesn't leave stale breadcrumbs.
25
+ */
26
+ declare function useScreenHeaderBreadcrumbs(breadcrumbs: ReactNode): boolean;
27
+ /**
28
+ * Reads the current screen header actions and breadcrumbs. Used internally by ScreenHeader.
29
+ */
30
+ declare function useScreenHeaderContext(): {
31
+ actions: ReactNode;
32
+ breadcrumbs: ReactNode;
33
+ };
34
+ //#endregion
35
+ export { ScreenHeaderProvider, useScreenHeaderActions, useScreenHeaderBreadcrumbs, useScreenHeaderContext };
36
+ //# sourceMappingURL=ScreenHeaderContext.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenHeaderContext.d.cts","names":[],"sources":["../../src/shell/ScreenHeaderContext.tsx"],"mappings":";;;;iBA0BgB,oBAAA,CAAA;EAAuB;AAAA;EAAc,QAAA,EAAU,SAAA;AAAA,IAAW,kBAAA,CAAA,GAAA,CAAA,OAAA;AAA1E;;;;;;;;AAAA,iBAyBgB,sBAAA,CAAuB,OAAA,EAAS,SAAA;;;;;;;;iBA0BhC,0BAAA,CAA2B,WAAA,EAAa,SAAA;;;;iBAsBxC,sBAAA,CAAA;EACd,OAAA,EAAS,SAAA;EACT,WAAA,EAAa,SAAA;AAAA"}
@@ -0,0 +1,36 @@
1
+ import { ReactNode } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region src/shell/ScreenHeaderContext.d.ts
5
+ declare function ScreenHeaderProvider({
6
+ children
7
+ }: {
8
+ children: ReactNode;
9
+ }): react_jsx_runtime0.JSX.Element;
10
+ /**
11
+ * Sets actions to display in the ScreenHeader.
12
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
13
+ * `false` otherwise. Pages can use this boolean to conditionally skip
14
+ * rendering their own PageHeader.
15
+ *
16
+ * Cleans up actions on unmount so navigating away doesn't leave stale actions.
17
+ */
18
+ declare function useScreenHeaderActions(actions: ReactNode): boolean;
19
+ /**
20
+ * Sets breadcrumbs to display in the ScreenHeader (in place of the plain title).
21
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
22
+ * `false` otherwise.
23
+ *
24
+ * Cleans up breadcrumbs on unmount so navigating away doesn't leave stale breadcrumbs.
25
+ */
26
+ declare function useScreenHeaderBreadcrumbs(breadcrumbs: ReactNode): boolean;
27
+ /**
28
+ * Reads the current screen header actions and breadcrumbs. Used internally by ScreenHeader.
29
+ */
30
+ declare function useScreenHeaderContext(): {
31
+ actions: ReactNode;
32
+ breadcrumbs: ReactNode;
33
+ };
34
+ //#endregion
35
+ export { ScreenHeaderProvider, useScreenHeaderActions, useScreenHeaderBreadcrumbs, useScreenHeaderContext };
36
+ //# sourceMappingURL=ScreenHeaderContext.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenHeaderContext.d.mts","names":[],"sources":["../../src/shell/ScreenHeaderContext.tsx"],"mappings":";;;;iBA0BgB,oBAAA,CAAA;EAAuB;AAAA;EAAc,QAAA,EAAU,SAAA;AAAA,IAAW,kBAAA,CAAA,GAAA,CAAA,OAAA;AAA1E;;;;;;;;AAAA,iBAyBgB,sBAAA,CAAuB,OAAA,EAAS,SAAA;;;;;;;;iBA0BhC,0BAAA,CAA2B,WAAA,EAAa,SAAA;;;;iBAsBxC,sBAAA,CAAA;EACd,OAAA,EAAS,SAAA;EACT,WAAA,EAAa,SAAA;AAAA"}
@@ -0,0 +1,86 @@
1
+ "use client";
2
+ import { createContext, useContext, useEffect, useRef, useState } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/shell/ScreenHeaderContext.tsx
5
+ /**
6
+ * Split into separate read/write contexts so that components calling
7
+ * useScreenHeaderActions (writers) don't re-render when the actions
8
+ * state changes — only the ScreenHeader (reader) re-renders.
9
+ */
10
+ const ScreenHeaderWriteContext = createContext(null);
11
+ const ScreenHeaderReadContext = createContext(null);
12
+ const ScreenHeaderBreadcrumbsWriteContext = createContext(null);
13
+ const ScreenHeaderBreadcrumbsReadContext = createContext(null);
14
+ function ScreenHeaderProvider({ children }) {
15
+ const [actions, setActions] = useState(null);
16
+ const [breadcrumbs, setBreadcrumbs] = useState(null);
17
+ return /* @__PURE__ */ jsx(ScreenHeaderWriteContext.Provider, {
18
+ value: setActions,
19
+ children: /* @__PURE__ */ jsx(ScreenHeaderReadContext.Provider, {
20
+ value: actions,
21
+ children: /* @__PURE__ */ jsx(ScreenHeaderBreadcrumbsWriteContext.Provider, {
22
+ value: setBreadcrumbs,
23
+ children: /* @__PURE__ */ jsx(ScreenHeaderBreadcrumbsReadContext.Provider, {
24
+ value: breadcrumbs,
25
+ children
26
+ })
27
+ })
28
+ })
29
+ });
30
+ }
31
+ /**
32
+ * Sets actions to display in the ScreenHeader.
33
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
34
+ * `false` otherwise. Pages can use this boolean to conditionally skip
35
+ * rendering their own PageHeader.
36
+ *
37
+ * Cleans up actions on unmount so navigating away doesn't leave stale actions.
38
+ */
39
+ function useScreenHeaderActions(actions) {
40
+ const setActions = useContext(ScreenHeaderWriteContext);
41
+ const setActionsRef = useRef(setActions);
42
+ setActionsRef.current = setActions;
43
+ useEffect(() => {
44
+ if (!setActions) return;
45
+ setActions(actions);
46
+ }, [actions, setActions]);
47
+ useEffect(() => {
48
+ return () => setActionsRef.current?.(null);
49
+ }, []);
50
+ return setActions !== null;
51
+ }
52
+ /**
53
+ * Sets breadcrumbs to display in the ScreenHeader (in place of the plain title).
54
+ * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),
55
+ * `false` otherwise.
56
+ *
57
+ * Cleans up breadcrumbs on unmount so navigating away doesn't leave stale breadcrumbs.
58
+ */
59
+ function useScreenHeaderBreadcrumbs(breadcrumbs) {
60
+ const setBreadcrumbs = useContext(ScreenHeaderBreadcrumbsWriteContext);
61
+ const setBreadcrumbsRef = useRef(setBreadcrumbs);
62
+ setBreadcrumbsRef.current = setBreadcrumbs;
63
+ useEffect(() => {
64
+ if (!setBreadcrumbs) return;
65
+ setBreadcrumbs(breadcrumbs);
66
+ }, [breadcrumbs, setBreadcrumbs]);
67
+ useEffect(() => {
68
+ return () => setBreadcrumbsRef.current?.(null);
69
+ }, []);
70
+ return setBreadcrumbs !== null;
71
+ }
72
+ /**
73
+ * Reads the current screen header actions and breadcrumbs. Used internally by ScreenHeader.
74
+ */
75
+ function useScreenHeaderContext() {
76
+ const actions = useContext(ScreenHeaderReadContext);
77
+ const breadcrumbs = useContext(ScreenHeaderBreadcrumbsReadContext);
78
+ return {
79
+ actions: actions ?? null,
80
+ breadcrumbs: breadcrumbs ?? null
81
+ };
82
+ }
83
+ //#endregion
84
+ export { ScreenHeaderProvider, useScreenHeaderActions, useScreenHeaderBreadcrumbs, useScreenHeaderContext };
85
+
86
+ //# sourceMappingURL=ScreenHeaderContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenHeaderContext.mjs","names":[],"sources":["../../src/shell/ScreenHeaderContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useEffect,\n useRef,\n type ReactNode,\n} from \"react\";\n\ntype SetActions = (actions: ReactNode) => void;\ntype SetBreadcrumbs = (breadcrumbs: ReactNode) => void;\n\n/**\n * Split into separate read/write contexts so that components calling\n * useScreenHeaderActions (writers) don't re-render when the actions\n * state changes — only the ScreenHeader (reader) re-renders.\n */\nconst ScreenHeaderWriteContext = createContext<SetActions | null>(null);\nconst ScreenHeaderReadContext = createContext<ReactNode>(null);\n\nconst ScreenHeaderBreadcrumbsWriteContext =\n createContext<SetBreadcrumbs | null>(null);\nconst ScreenHeaderBreadcrumbsReadContext = createContext<ReactNode>(null);\n\nexport function ScreenHeaderProvider({ children }: { children: ReactNode }) {\n const [actions, setActions] = useState<ReactNode>(null);\n const [breadcrumbs, setBreadcrumbs] = useState<ReactNode>(null);\n\n return (\n <ScreenHeaderWriteContext.Provider value={setActions}>\n <ScreenHeaderReadContext.Provider value={actions}>\n <ScreenHeaderBreadcrumbsWriteContext.Provider value={setBreadcrumbs}>\n <ScreenHeaderBreadcrumbsReadContext.Provider value={breadcrumbs}>\n {children}\n </ScreenHeaderBreadcrumbsReadContext.Provider>\n </ScreenHeaderBreadcrumbsWriteContext.Provider>\n </ScreenHeaderReadContext.Provider>\n </ScreenHeaderWriteContext.Provider>\n );\n}\n\n/**\n * Sets actions to display in the ScreenHeader.\n * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),\n * `false` otherwise. Pages can use this boolean to conditionally skip\n * rendering their own PageHeader.\n *\n * Cleans up actions on unmount so navigating away doesn't leave stale actions.\n */\nexport function useScreenHeaderActions(actions: ReactNode): boolean {\n const setActions = useContext(ScreenHeaderWriteContext);\n const setActionsRef = useRef(setActions);\n setActionsRef.current = setActions;\n\n // Update actions when the value changes\n useEffect(() => {\n if (!setActions) return;\n setActions(actions);\n }, [actions, setActions]);\n\n // Clear actions only on unmount\n useEffect(() => {\n return () => setActionsRef.current?.(null);\n }, []);\n\n return setActions !== null;\n}\n\n/**\n * Sets breadcrumbs to display in the ScreenHeader (in place of the plain title).\n * Returns `true` if inside a ScreenHeaderProvider (i.e., in the rep shell),\n * `false` otherwise.\n *\n * Cleans up breadcrumbs on unmount so navigating away doesn't leave stale breadcrumbs.\n */\nexport function useScreenHeaderBreadcrumbs(breadcrumbs: ReactNode): boolean {\n const setBreadcrumbs = useContext(ScreenHeaderBreadcrumbsWriteContext);\n const setBreadcrumbsRef = useRef(setBreadcrumbs);\n setBreadcrumbsRef.current = setBreadcrumbs;\n\n // Update breadcrumbs when the value changes\n useEffect(() => {\n if (!setBreadcrumbs) return;\n setBreadcrumbs(breadcrumbs);\n }, [breadcrumbs, setBreadcrumbs]);\n\n // Clear breadcrumbs only on unmount\n useEffect(() => {\n return () => setBreadcrumbsRef.current?.(null);\n }, []);\n\n return setBreadcrumbs !== null;\n}\n\n/**\n * Reads the current screen header actions and breadcrumbs. Used internally by ScreenHeader.\n */\nexport function useScreenHeaderContext(): {\n actions: ReactNode;\n breadcrumbs: ReactNode;\n} {\n const actions = useContext(ScreenHeaderReadContext);\n const breadcrumbs = useContext(ScreenHeaderBreadcrumbsReadContext);\n return { actions: actions ?? null, breadcrumbs: breadcrumbs ?? null };\n}\n"],"mappings":";;;;;;;;;AAmBA,MAAM,2BAA2B,cAAiC,KAAK;AACvE,MAAM,0BAA0B,cAAyB,KAAK;AAE9D,MAAM,sCACJ,cAAqC,KAAK;AAC5C,MAAM,qCAAqC,cAAyB,KAAK;AAEzE,SAAgB,qBAAqB,EAAE,YAAqC;CAC1E,MAAM,CAAC,SAAS,cAAc,SAAoB,KAAK;CACvD,MAAM,CAAC,aAAa,kBAAkB,SAAoB,KAAK;AAE/D,QACE,oBAAC,yBAAyB,UAA1B;EAAmC,OAAO;YACxC,oBAAC,wBAAwB,UAAzB;GAAkC,OAAO;aACvC,oBAAC,oCAAoC,UAArC;IAA8C,OAAO;cACnD,oBAAC,mCAAmC,UAApC;KAA6C,OAAO;KACjD;KAC2C,CAAA;IACD,CAAA;GACd,CAAA;EACD,CAAA;;;;;;;;;;AAYxC,SAAgB,uBAAuB,SAA6B;CAClE,MAAM,aAAa,WAAW,yBAAyB;CACvD,MAAM,gBAAgB,OAAO,WAAW;AACxC,eAAc,UAAU;AAGxB,iBAAgB;AACd,MAAI,CAAC,WAAY;AACjB,aAAW,QAAQ;IAClB,CAAC,SAAS,WAAW,CAAC;AAGzB,iBAAgB;AACd,eAAa,cAAc,UAAU,KAAK;IACzC,EAAE,CAAC;AAEN,QAAO,eAAe;;;;;;;;;AAUxB,SAAgB,2BAA2B,aAAiC;CAC1E,MAAM,iBAAiB,WAAW,oCAAoC;CACtE,MAAM,oBAAoB,OAAO,eAAe;AAChD,mBAAkB,UAAU;AAG5B,iBAAgB;AACd,MAAI,CAAC,eAAgB;AACrB,iBAAe,YAAY;IAC1B,CAAC,aAAa,eAAe,CAAC;AAGjC,iBAAgB;AACd,eAAa,kBAAkB,UAAU,KAAK;IAC7C,EAAE,CAAC;AAEN,QAAO,mBAAmB;;;;;AAM5B,SAAgB,yBAGd;CACA,MAAM,UAAU,WAAW,wBAAwB;CACnD,MAAM,cAAc,WAAW,mCAAmC;AAClE,QAAO;EAAE,SAAS,WAAW;EAAM,aAAa,eAAe;EAAM"}
@@ -1,20 +1,70 @@
1
- 'use strict';
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../chunk-CKQMccvm.cjs");
4
+ let react = require("react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/shell/ThemeModeContext.tsx
7
+ const ThemeModeContext = (0, react.createContext)(null);
8
+ const darkMediaQuery = typeof window !== "undefined" ? window.matchMedia("(prefers-color-scheme: dark)") : null;
9
+ function subscribeToPrefersColorScheme(callback) {
10
+ darkMediaQuery?.addEventListener("change", callback);
11
+ return () => darkMediaQuery?.removeEventListener("change", callback);
12
+ }
13
+ function getSystemPrefersDark() {
14
+ return darkMediaQuery?.matches ?? false;
15
+ }
16
+ function getServerSnapshot() {
17
+ return false;
18
+ }
19
+ function ThemeModeProvider({ children, mode, onModeChange, autoModeEnabled = true }) {
20
+ const systemMode = (0, react.useSyncExternalStore)(subscribeToPrefersColorScheme, getSystemPrefersDark, getServerSnapshot) ? "dark" : "light";
21
+ const displayMode = mode === "auto" ? systemMode : mode;
22
+ const cycleMode = (0, react.useCallback)(() => {
23
+ if (autoModeEnabled) {
24
+ const target = displayMode === "light" ? "dark" : "light";
25
+ onModeChange(target === systemMode ? "auto" : target);
26
+ } else onModeChange(mode === "light" ? "dark" : "light");
27
+ }, [
28
+ mode,
29
+ displayMode,
30
+ systemMode,
31
+ onModeChange,
32
+ autoModeEnabled
33
+ ]);
34
+ const dataAttribute = getThemeModeAttribute(mode);
35
+ const value = (0, react.useMemo)(() => ({
36
+ mode,
37
+ displayMode,
38
+ setMode: onModeChange,
39
+ autoModeEnabled,
40
+ cycleMode,
41
+ dataAttribute
42
+ }), [
43
+ mode,
44
+ displayMode,
45
+ onModeChange,
46
+ autoModeEnabled,
47
+ cycleMode,
48
+ dataAttribute
49
+ ]);
50
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ThemeModeContext.Provider, {
51
+ value,
52
+ children
53
+ });
54
+ }
55
+ /** Access the current theme mode, setter, and cycle helper. Must be used within a `ThemeModeProvider`. */
56
+ function useThemeMode() {
57
+ const ctx = (0, react.useContext)(ThemeModeContext);
58
+ if (!ctx) throw new Error("useThemeMode must be used within a ThemeModeProvider");
59
+ return ctx;
60
+ }
61
+ /** Maps a ThemeMode to the value for `data-theme-mode`. Returns undefined for "auto". */
62
+ function getThemeModeAttribute(mode) {
63
+ return mode === "auto" ? void 0 : mode;
64
+ }
65
+ //#endregion
66
+ exports.ThemeModeProvider = ThemeModeProvider;
67
+ exports.getThemeModeAttribute = getThemeModeAttribute;
68
+ exports.useThemeMode = useThemeMode;
2
69
 
3
- var chunkYXJMBVXO_cjs = require('../chunk-YXJMBVXO.cjs');
4
-
5
-
6
-
7
- Object.defineProperty(exports, "ThemeModeProvider", {
8
- enumerable: true,
9
- get: function () { return chunkYXJMBVXO_cjs.ThemeModeProvider; }
10
- });
11
- Object.defineProperty(exports, "getThemeModeAttribute", {
12
- enumerable: true,
13
- get: function () { return chunkYXJMBVXO_cjs.getThemeModeAttribute; }
14
- });
15
- Object.defineProperty(exports, "useThemeMode", {
16
- enumerable: true,
17
- get: function () { return chunkYXJMBVXO_cjs.useThemeMode; }
18
- });
19
- //# sourceMappingURL=ThemeModeContext.cjs.map
20
70
  //# sourceMappingURL=ThemeModeContext.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ThemeModeContext.cjs"}
1
+ {"version":3,"file":"ThemeModeContext.cjs","names":[],"sources":["../../src/shell/ThemeModeContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useCallback,\n useMemo,\n useSyncExternalStore,\n type ReactNode,\n} from \"react\";\n\nexport type ThemeMode = \"auto\" | \"light\" | \"dark\";\n\nexport type DisplayMode = \"light\" | \"dark\";\n\nexport interface ThemeModeContextValue {\n mode: ThemeMode;\n displayMode: DisplayMode;\n setMode: (mode: ThemeMode) => void;\n autoModeEnabled: boolean;\n cycleMode: () => void;\n dataAttribute: string | undefined;\n}\n\nconst ThemeModeContext = createContext<ThemeModeContextValue | null>(null);\n\nconst darkMediaQuery =\n typeof window !== \"undefined\"\n ? window.matchMedia(\"(prefers-color-scheme: dark)\")\n : null;\n\nfunction subscribeToPrefersColorScheme(callback: () => void) {\n darkMediaQuery?.addEventListener(\"change\", callback);\n return () => darkMediaQuery?.removeEventListener(\"change\", callback);\n}\n\nfunction getSystemPrefersDark(): boolean {\n return darkMediaQuery?.matches ?? false;\n}\n\nfunction getServerSnapshot(): boolean {\n return false;\n}\n\ninterface ThemeModeProviderProps {\n children: ReactNode;\n mode: ThemeMode;\n onModeChange: (mode: ThemeMode) => void;\n /** When false, auto mode is skipped in the cycle (light↔dark only). Default true. */\n autoModeEnabled?: boolean;\n}\n\nexport function ThemeModeProvider({\n children,\n mode,\n onModeChange,\n autoModeEnabled = true,\n}: ThemeModeProviderProps) {\n const systemPrefersDark = useSyncExternalStore(\n subscribeToPrefersColorScheme,\n getSystemPrefersDark,\n getServerSnapshot,\n );\n\n const systemMode: DisplayMode = systemPrefersDark ? \"dark\" : \"light\";\n\n const displayMode: DisplayMode = mode === \"auto\" ? systemMode : mode;\n\n const cycleMode = useCallback(() => {\n if (autoModeEnabled) {\n // Toggle displayed mode. If target matches system preference, use \"auto\".\n const target: DisplayMode = displayMode === \"light\" ? \"dark\" : \"light\";\n onModeChange(target === systemMode ? \"auto\" : target);\n } else {\n // light ↔ dark\n onModeChange(mode === \"light\" ? \"dark\" : \"light\");\n }\n }, [mode, displayMode, systemMode, onModeChange, autoModeEnabled]);\n\n const dataAttribute = getThemeModeAttribute(mode);\n\n const value = useMemo(\n () => ({\n mode,\n displayMode,\n setMode: onModeChange,\n autoModeEnabled,\n cycleMode,\n dataAttribute,\n }),\n [\n mode,\n displayMode,\n onModeChange,\n autoModeEnabled,\n cycleMode,\n dataAttribute,\n ],\n );\n\n return (\n <ThemeModeContext.Provider value={value}>\n {children}\n </ThemeModeContext.Provider>\n );\n}\n\n/** Access the current theme mode, setter, and cycle helper. Must be used within a `ThemeModeProvider`. */\nexport function useThemeMode(): ThemeModeContextValue {\n const ctx = useContext(ThemeModeContext);\n if (!ctx) {\n throw new Error(\"useThemeMode must be used within a ThemeModeProvider\");\n }\n return ctx;\n}\n\n/** Maps a ThemeMode to the value for `data-theme-mode`. Returns undefined for \"auto\". */\nexport function getThemeModeAttribute(mode: ThemeMode): string | undefined {\n return mode === \"auto\" ? undefined : mode;\n}\n"],"mappings":";;;;;;AAwBA,MAAM,oBAAA,GAAA,MAAA,eAA+D,KAAK;AAE1E,MAAM,iBACJ,OAAO,WAAW,cACd,OAAO,WAAW,+BAA+B,GACjD;AAEN,SAAS,8BAA8B,UAAsB;AAC3D,iBAAgB,iBAAiB,UAAU,SAAS;AACpD,cAAa,gBAAgB,oBAAoB,UAAU,SAAS;;AAGtE,SAAS,uBAAgC;AACvC,QAAO,gBAAgB,WAAW;;AAGpC,SAAS,oBAA6B;AACpC,QAAO;;AAWT,SAAgB,kBAAkB,EAChC,UACA,MACA,cACA,kBAAkB,QACO;CAOzB,MAAM,cAAA,GAAA,MAAA,sBALJ,+BACA,sBACA,kBACD,GAEmD,SAAS;CAE7D,MAAM,cAA2B,SAAS,SAAS,aAAa;CAEhE,MAAM,aAAA,GAAA,MAAA,mBAA8B;AAClC,MAAI,iBAAiB;GAEnB,MAAM,SAAsB,gBAAgB,UAAU,SAAS;AAC/D,gBAAa,WAAW,aAAa,SAAS,OAAO;QAGrD,cAAa,SAAS,UAAU,SAAS,QAAQ;IAElD;EAAC;EAAM;EAAa;EAAY;EAAc;EAAgB,CAAC;CAElE,MAAM,gBAAgB,sBAAsB,KAAK;CAEjD,MAAM,SAAA,GAAA,MAAA,gBACG;EACL;EACA;EACA,SAAS;EACT;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,iBAAA,GAAA,kBAAA,KAAC,iBAAiB,UAAlB;EAAkC;EAC/B;EACyB,CAAA;;;AAKhC,SAAgB,eAAsC;CACpD,MAAM,OAAA,GAAA,MAAA,YAAiB,iBAAiB;AACxC,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,uDAAuD;AAEzE,QAAO;;;AAIT,SAAgB,sBAAsB,MAAqC;AACzE,QAAO,SAAS,SAAS,KAAA,IAAY"}
@@ -1,27 +1,34 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
3
 
4
+ //#region src/shell/ThemeModeContext.d.ts
4
5
  type ThemeMode = "auto" | "light" | "dark";
5
6
  type DisplayMode = "light" | "dark";
6
7
  interface ThemeModeContextValue {
7
- mode: ThemeMode;
8
- displayMode: DisplayMode;
9
- setMode: (mode: ThemeMode) => void;
10
- autoModeEnabled: boolean;
11
- cycleMode: () => void;
12
- dataAttribute: string | undefined;
8
+ mode: ThemeMode;
9
+ displayMode: DisplayMode;
10
+ setMode: (mode: ThemeMode) => void;
11
+ autoModeEnabled: boolean;
12
+ cycleMode: () => void;
13
+ dataAttribute: string | undefined;
13
14
  }
14
15
  interface ThemeModeProviderProps {
15
- children: ReactNode;
16
- mode: ThemeMode;
17
- onModeChange: (mode: ThemeMode) => void;
18
- /** When false, auto mode is skipped in the cycle (light↔dark only). Default true. */
19
- autoModeEnabled?: boolean;
16
+ children: ReactNode;
17
+ mode: ThemeMode;
18
+ onModeChange: (mode: ThemeMode) => void;
19
+ /** When false, auto mode is skipped in the cycle (light↔dark only). Default true. */
20
+ autoModeEnabled?: boolean;
20
21
  }
21
- declare function ThemeModeProvider({ children, mode, onModeChange, autoModeEnabled, }: ThemeModeProviderProps): react_jsx_runtime.JSX.Element;
22
+ declare function ThemeModeProvider({
23
+ children,
24
+ mode,
25
+ onModeChange,
26
+ autoModeEnabled
27
+ }: ThemeModeProviderProps): react_jsx_runtime0.JSX.Element;
22
28
  /** Access the current theme mode, setter, and cycle helper. Must be used within a `ThemeModeProvider`. */
23
29
  declare function useThemeMode(): ThemeModeContextValue;
24
30
  /** Maps a ThemeMode to the value for `data-theme-mode`. Returns undefined for "auto". */
25
31
  declare function getThemeModeAttribute(mode: ThemeMode): string | undefined;
26
-
27
- export { type DisplayMode, type ThemeMode, type ThemeModeContextValue, ThemeModeProvider, getThemeModeAttribute, useThemeMode };
32
+ //#endregion
33
+ export { DisplayMode, ThemeMode, ThemeModeContextValue, ThemeModeProvider, getThemeModeAttribute, useThemeMode };
34
+ //# sourceMappingURL=ThemeModeContext.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeModeContext.d.cts","names":[],"sources":["../../src/shell/ThemeModeContext.tsx"],"mappings":";;;;KAWY,SAAA;AAAA,KAEA,WAAA;AAAA,UAEK,qBAAA;EACf,IAAA,EAAM,SAAA;EACN,WAAA,EAAa,WAAA;EACb,OAAA,GAAU,IAAA,EAAM,SAAA;EAChB,eAAA;EACA,SAAA;EACA,aAAA;AAAA;AAAA,UAuBQ,sBAAA;EACR,QAAA,EAAU,SAAA;EACV,IAAA,EAAM,SAAA;EACN,YAAA,GAAe,IAAA,EAAM,SAAA;EAhCe;EAkCpC,eAAA;AAAA;AAAA,iBAGc,iBAAA,CAAA;EACd,QAAA;EACA,IAAA;EACA,YAAA;EACA;AAAA,GACC,sBAAA,GAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAmDT,YAAA,CAAA,GAAgB,qBAAA;;iBAShB,qBAAA,CAAsB,IAAA,EAAM,SAAA"}
@@ -0,0 +1,34 @@
1
+ import { ReactNode } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region src/shell/ThemeModeContext.d.ts
5
+ type ThemeMode = "auto" | "light" | "dark";
6
+ type DisplayMode = "light" | "dark";
7
+ interface ThemeModeContextValue {
8
+ mode: ThemeMode;
9
+ displayMode: DisplayMode;
10
+ setMode: (mode: ThemeMode) => void;
11
+ autoModeEnabled: boolean;
12
+ cycleMode: () => void;
13
+ dataAttribute: string | undefined;
14
+ }
15
+ interface ThemeModeProviderProps {
16
+ children: ReactNode;
17
+ mode: ThemeMode;
18
+ onModeChange: (mode: ThemeMode) => void;
19
+ /** When false, auto mode is skipped in the cycle (light↔dark only). Default true. */
20
+ autoModeEnabled?: boolean;
21
+ }
22
+ declare function ThemeModeProvider({
23
+ children,
24
+ mode,
25
+ onModeChange,
26
+ autoModeEnabled
27
+ }: ThemeModeProviderProps): react_jsx_runtime0.JSX.Element;
28
+ /** Access the current theme mode, setter, and cycle helper. Must be used within a `ThemeModeProvider`. */
29
+ declare function useThemeMode(): ThemeModeContextValue;
30
+ /** Maps a ThemeMode to the value for `data-theme-mode`. Returns undefined for "auto". */
31
+ declare function getThemeModeAttribute(mode: ThemeMode): string | undefined;
32
+ //#endregion
33
+ export { DisplayMode, ThemeMode, ThemeModeContextValue, ThemeModeProvider, getThemeModeAttribute, useThemeMode };
34
+ //# sourceMappingURL=ThemeModeContext.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeModeContext.d.mts","names":[],"sources":["../../src/shell/ThemeModeContext.tsx"],"mappings":";;;;KAWY,SAAA;AAAA,KAEA,WAAA;AAAA,UAEK,qBAAA;EACf,IAAA,EAAM,SAAA;EACN,WAAA,EAAa,WAAA;EACb,OAAA,GAAU,IAAA,EAAM,SAAA;EAChB,eAAA;EACA,SAAA;EACA,aAAA;AAAA;AAAA,UAuBQ,sBAAA;EACR,QAAA,EAAU,SAAA;EACV,IAAA,EAAM,SAAA;EACN,YAAA,GAAe,IAAA,EAAM,SAAA;EAhCe;EAkCpC,eAAA;AAAA;AAAA,iBAGc,iBAAA,CAAA;EACd,QAAA;EACA,IAAA;EACA,YAAA;EACA;AAAA,GACC,sBAAA,GAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAmDT,YAAA,CAAA,GAAgB,qBAAA;;iBAShB,qBAAA,CAAsB,IAAA,EAAM,SAAA"}
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { createContext, useCallback, useContext, useMemo, useSyncExternalStore } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/shell/ThemeModeContext.tsx
5
+ const ThemeModeContext = createContext(null);
6
+ const darkMediaQuery = typeof window !== "undefined" ? window.matchMedia("(prefers-color-scheme: dark)") : null;
7
+ function subscribeToPrefersColorScheme(callback) {
8
+ darkMediaQuery?.addEventListener("change", callback);
9
+ return () => darkMediaQuery?.removeEventListener("change", callback);
10
+ }
11
+ function getSystemPrefersDark() {
12
+ return darkMediaQuery?.matches ?? false;
13
+ }
14
+ function getServerSnapshot() {
15
+ return false;
16
+ }
17
+ function ThemeModeProvider({ children, mode, onModeChange, autoModeEnabled = true }) {
18
+ const systemMode = useSyncExternalStore(subscribeToPrefersColorScheme, getSystemPrefersDark, getServerSnapshot) ? "dark" : "light";
19
+ const displayMode = mode === "auto" ? systemMode : mode;
20
+ const cycleMode = useCallback(() => {
21
+ if (autoModeEnabled) {
22
+ const target = displayMode === "light" ? "dark" : "light";
23
+ onModeChange(target === systemMode ? "auto" : target);
24
+ } else onModeChange(mode === "light" ? "dark" : "light");
25
+ }, [
26
+ mode,
27
+ displayMode,
28
+ systemMode,
29
+ onModeChange,
30
+ autoModeEnabled
31
+ ]);
32
+ const dataAttribute = getThemeModeAttribute(mode);
33
+ const value = useMemo(() => ({
34
+ mode,
35
+ displayMode,
36
+ setMode: onModeChange,
37
+ autoModeEnabled,
38
+ cycleMode,
39
+ dataAttribute
40
+ }), [
41
+ mode,
42
+ displayMode,
43
+ onModeChange,
44
+ autoModeEnabled,
45
+ cycleMode,
46
+ dataAttribute
47
+ ]);
48
+ return /* @__PURE__ */ jsx(ThemeModeContext.Provider, {
49
+ value,
50
+ children
51
+ });
52
+ }
53
+ /** Access the current theme mode, setter, and cycle helper. Must be used within a `ThemeModeProvider`. */
54
+ function useThemeMode() {
55
+ const ctx = useContext(ThemeModeContext);
56
+ if (!ctx) throw new Error("useThemeMode must be used within a ThemeModeProvider");
57
+ return ctx;
58
+ }
59
+ /** Maps a ThemeMode to the value for `data-theme-mode`. Returns undefined for "auto". */
60
+ function getThemeModeAttribute(mode) {
61
+ return mode === "auto" ? void 0 : mode;
62
+ }
63
+ //#endregion
64
+ export { ThemeModeProvider, getThemeModeAttribute, useThemeMode };
65
+
66
+ //# sourceMappingURL=ThemeModeContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeModeContext.mjs","names":[],"sources":["../../src/shell/ThemeModeContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useCallback,\n useMemo,\n useSyncExternalStore,\n type ReactNode,\n} from \"react\";\n\nexport type ThemeMode = \"auto\" | \"light\" | \"dark\";\n\nexport type DisplayMode = \"light\" | \"dark\";\n\nexport interface ThemeModeContextValue {\n mode: ThemeMode;\n displayMode: DisplayMode;\n setMode: (mode: ThemeMode) => void;\n autoModeEnabled: boolean;\n cycleMode: () => void;\n dataAttribute: string | undefined;\n}\n\nconst ThemeModeContext = createContext<ThemeModeContextValue | null>(null);\n\nconst darkMediaQuery =\n typeof window !== \"undefined\"\n ? window.matchMedia(\"(prefers-color-scheme: dark)\")\n : null;\n\nfunction subscribeToPrefersColorScheme(callback: () => void) {\n darkMediaQuery?.addEventListener(\"change\", callback);\n return () => darkMediaQuery?.removeEventListener(\"change\", callback);\n}\n\nfunction getSystemPrefersDark(): boolean {\n return darkMediaQuery?.matches ?? false;\n}\n\nfunction getServerSnapshot(): boolean {\n return false;\n}\n\ninterface ThemeModeProviderProps {\n children: ReactNode;\n mode: ThemeMode;\n onModeChange: (mode: ThemeMode) => void;\n /** When false, auto mode is skipped in the cycle (light↔dark only). Default true. */\n autoModeEnabled?: boolean;\n}\n\nexport function ThemeModeProvider({\n children,\n mode,\n onModeChange,\n autoModeEnabled = true,\n}: ThemeModeProviderProps) {\n const systemPrefersDark = useSyncExternalStore(\n subscribeToPrefersColorScheme,\n getSystemPrefersDark,\n getServerSnapshot,\n );\n\n const systemMode: DisplayMode = systemPrefersDark ? \"dark\" : \"light\";\n\n const displayMode: DisplayMode = mode === \"auto\" ? systemMode : mode;\n\n const cycleMode = useCallback(() => {\n if (autoModeEnabled) {\n // Toggle displayed mode. If target matches system preference, use \"auto\".\n const target: DisplayMode = displayMode === \"light\" ? \"dark\" : \"light\";\n onModeChange(target === systemMode ? \"auto\" : target);\n } else {\n // light ↔ dark\n onModeChange(mode === \"light\" ? \"dark\" : \"light\");\n }\n }, [mode, displayMode, systemMode, onModeChange, autoModeEnabled]);\n\n const dataAttribute = getThemeModeAttribute(mode);\n\n const value = useMemo(\n () => ({\n mode,\n displayMode,\n setMode: onModeChange,\n autoModeEnabled,\n cycleMode,\n dataAttribute,\n }),\n [\n mode,\n displayMode,\n onModeChange,\n autoModeEnabled,\n cycleMode,\n dataAttribute,\n ],\n );\n\n return (\n <ThemeModeContext.Provider value={value}>\n {children}\n </ThemeModeContext.Provider>\n );\n}\n\n/** Access the current theme mode, setter, and cycle helper. Must be used within a `ThemeModeProvider`. */\nexport function useThemeMode(): ThemeModeContextValue {\n const ctx = useContext(ThemeModeContext);\n if (!ctx) {\n throw new Error(\"useThemeMode must be used within a ThemeModeProvider\");\n }\n return ctx;\n}\n\n/** Maps a ThemeMode to the value for `data-theme-mode`. Returns undefined for \"auto\". */\nexport function getThemeModeAttribute(mode: ThemeMode): string | undefined {\n return mode === \"auto\" ? undefined : mode;\n}\n"],"mappings":";;;;AAwBA,MAAM,mBAAmB,cAA4C,KAAK;AAE1E,MAAM,iBACJ,OAAO,WAAW,cACd,OAAO,WAAW,+BAA+B,GACjD;AAEN,SAAS,8BAA8B,UAAsB;AAC3D,iBAAgB,iBAAiB,UAAU,SAAS;AACpD,cAAa,gBAAgB,oBAAoB,UAAU,SAAS;;AAGtE,SAAS,uBAAgC;AACvC,QAAO,gBAAgB,WAAW;;AAGpC,SAAS,oBAA6B;AACpC,QAAO;;AAWT,SAAgB,kBAAkB,EAChC,UACA,MACA,cACA,kBAAkB,QACO;CAOzB,MAAM,aANoB,qBACxB,+BACA,sBACA,kBACD,GAEmD,SAAS;CAE7D,MAAM,cAA2B,SAAS,SAAS,aAAa;CAEhE,MAAM,YAAY,kBAAkB;AAClC,MAAI,iBAAiB;GAEnB,MAAM,SAAsB,gBAAgB,UAAU,SAAS;AAC/D,gBAAa,WAAW,aAAa,SAAS,OAAO;QAGrD,cAAa,SAAS,UAAU,SAAS,QAAQ;IAElD;EAAC;EAAM;EAAa;EAAY;EAAc;EAAgB,CAAC;CAElE,MAAM,gBAAgB,sBAAsB,KAAK;CAEjD,MAAM,QAAQ,eACL;EACL;EACA;EACA,SAAS;EACT;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,oBAAC,iBAAiB,UAAlB;EAAkC;EAC/B;EACyB,CAAA;;;AAKhC,SAAgB,eAAsC;CACpD,MAAM,MAAM,WAAW,iBAAiB;AACxC,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,uDAAuD;AAEzE,QAAO;;;AAIT,SAAgB,sBAAsB,MAAqC;AACzE,QAAO,SAAS,SAAS,KAAA,IAAY"}