@tetherto/dev-websites-core 0.2.1 → 0.3.1

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 (314) hide show
  1. package/README.md +81 -9
  2. package/dist/analytics/GtmLoader.d.mts +14 -0
  3. package/dist/analytics/GtmLoader.d.mts.map +1 -0
  4. package/dist/analytics/GtmLoader.mjs +30 -0
  5. package/dist/analytics/GtmLoader.mjs.map +1 -0
  6. package/dist/analytics/createTrackedLink.d.mts +46 -0
  7. package/dist/analytics/createTrackedLink.d.mts.map +1 -0
  8. package/dist/analytics/createTrackedLink.mjs +36 -0
  9. package/dist/analytics/createTrackedLink.mjs.map +1 -0
  10. package/dist/analytics/index.d.mts +3 -0
  11. package/dist/analytics/index.mjs +3 -0
  12. package/dist/cms/index.d.mts +2 -2
  13. package/dist/cms/index.mjs +2 -2
  14. package/dist/{cms-5bS91IRZ.mjs → cms.mjs} +2 -2
  15. package/dist/cms.mjs.map +1 -0
  16. package/dist/i18n/index.d.mts +1 -1
  17. package/dist/i18n/index.mjs +1 -1
  18. package/dist/{i18n-Dy3VrbBw.mjs → i18n.mjs} +1 -1
  19. package/dist/i18n.mjs.map +1 -0
  20. package/dist/index.d.mts +214 -6
  21. package/dist/index.d.mts.map +1 -0
  22. package/dist/index.mjs +6 -6
  23. package/dist/{index-D36IEwUg.d.mts → index2.d.mts} +1 -1
  24. package/dist/index2.d.mts.map +1 -0
  25. package/dist/{index-tTs9h9BS.d.mts → index3.d.mts} +2 -2
  26. package/dist/index3.d.mts.map +1 -0
  27. package/dist/{index-Dyi7DDoO.d.mts → index4.d.mts} +1 -1
  28. package/dist/index4.d.mts.map +1 -0
  29. package/dist/index5.d.mts +6 -0
  30. package/dist/{logger-BPURnavq.mjs → logger.mjs} +1 -1
  31. package/dist/logger.mjs.map +1 -0
  32. package/dist/{readMediaBuffer-1C3QTpkO.d.mts → readMediaBuffer.d.mts} +1 -1
  33. package/dist/readMediaBuffer.d.mts.map +1 -0
  34. package/dist/{readMediaBuffer-DWkTbYVn.mjs → readMediaBuffer.mjs} +2 -2
  35. package/dist/readMediaBuffer.mjs.map +1 -0
  36. package/dist/seo/index.d.mts +1 -1
  37. package/dist/seo/index.mjs +1 -1
  38. package/dist/{seo-e5XjgQ7l.mjs → seo.mjs} +3 -3
  39. package/dist/seo.mjs.map +1 -0
  40. package/dist/ui/a11y/focus.d.mts +6 -0
  41. package/dist/ui/a11y/focus.d.mts.map +1 -0
  42. package/dist/ui/a11y/focus.mjs +7 -0
  43. package/dist/ui/a11y/focus.mjs.map +1 -0
  44. package/dist/ui/a11y/index.d.mts +4 -0
  45. package/dist/ui/a11y/index.mjs +4 -0
  46. package/dist/ui/carousel/index.d.mts +3 -0
  47. package/dist/ui/carousel/index.mjs +3 -0
  48. package/dist/ui/components/Accordion/Accordion.d.mts +16 -0
  49. package/dist/ui/components/Accordion/Accordion.d.mts.map +1 -0
  50. package/dist/ui/components/Accordion/Accordion.mjs +51 -0
  51. package/dist/ui/components/Accordion/Accordion.mjs.map +1 -0
  52. package/dist/ui/components/Accordion/index.d.mts +2 -0
  53. package/dist/ui/components/Accordion/index.mjs +2 -0
  54. package/dist/ui/components/Avatar/Avatar.d.mts +9 -0
  55. package/dist/ui/components/Avatar/Avatar.d.mts.map +1 -0
  56. package/dist/ui/components/Avatar/Avatar.mjs +15 -0
  57. package/dist/ui/components/Avatar/Avatar.mjs.map +1 -0
  58. package/dist/ui/components/Avatar/index.d.mts +2 -0
  59. package/dist/ui/components/Avatar/index.mjs +2 -0
  60. package/dist/ui/components/Badge/Badge.d.mts +14 -0
  61. package/dist/ui/components/Badge/Badge.d.mts.map +1 -0
  62. package/dist/ui/components/Badge/Badge.mjs +30 -0
  63. package/dist/ui/components/Badge/Badge.mjs.map +1 -0
  64. package/dist/ui/components/Badge/index.d.mts +2 -0
  65. package/dist/ui/components/Badge/index.mjs +2 -0
  66. package/dist/ui/components/BadgeVersion/BadgeVersion.d.mts +24 -0
  67. package/dist/ui/components/BadgeVersion/BadgeVersion.d.mts.map +1 -0
  68. package/dist/ui/components/BadgeVersion/BadgeVersion.mjs +66 -0
  69. package/dist/ui/components/BadgeVersion/BadgeVersion.mjs.map +1 -0
  70. package/dist/ui/components/BadgeVersion/index.d.mts +2 -0
  71. package/dist/ui/components/BadgeVersion/index.mjs +2 -0
  72. package/dist/ui/components/Button/Button.d.mts +14 -0
  73. package/dist/ui/components/Button/Button.d.mts.map +1 -0
  74. package/dist/ui/components/Button/Button.mjs +48 -0
  75. package/dist/ui/components/Button/Button.mjs.map +1 -0
  76. package/dist/ui/components/Button/index.d.mts +2 -0
  77. package/dist/ui/components/Button/index.mjs +2 -0
  78. package/dist/ui/components/Card/Card.d.mts +14 -0
  79. package/dist/ui/components/Card/Card.d.mts.map +1 -0
  80. package/dist/ui/components/Card/Card.mjs +40 -0
  81. package/dist/ui/components/Card/Card.mjs.map +1 -0
  82. package/dist/ui/components/Card/index.d.mts +2 -0
  83. package/dist/ui/components/Card/index.mjs +2 -0
  84. package/dist/ui/components/Carousel/Carousel.d.mts +42 -0
  85. package/dist/ui/components/Carousel/Carousel.d.mts.map +1 -0
  86. package/dist/ui/components/Carousel/Carousel.mjs +164 -0
  87. package/dist/ui/components/Carousel/Carousel.mjs.map +1 -0
  88. package/dist/ui/components/Carousel/index.d.mts +2 -0
  89. package/dist/ui/components/Carousel/index.mjs +2 -0
  90. package/dist/ui/components/Checkbox/Checkbox.d.mts +8 -0
  91. package/dist/ui/components/Checkbox/Checkbox.d.mts.map +1 -0
  92. package/dist/ui/components/Checkbox/Checkbox.mjs +39 -0
  93. package/dist/ui/components/Checkbox/Checkbox.mjs.map +1 -0
  94. package/dist/ui/components/Checkbox/index.d.mts +2 -0
  95. package/dist/ui/components/Checkbox/index.mjs +2 -0
  96. package/dist/ui/components/CodeBlock/CodeBlock.d.mts +22 -0
  97. package/dist/ui/components/CodeBlock/CodeBlock.d.mts.map +1 -0
  98. package/dist/ui/components/CodeBlock/CodeBlock.mjs +66 -0
  99. package/dist/ui/components/CodeBlock/CodeBlock.mjs.map +1 -0
  100. package/dist/ui/components/CodeBlock/index.d.mts +2 -0
  101. package/dist/ui/components/CodeBlock/index.mjs +2 -0
  102. package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.d.mts +19 -0
  103. package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.d.mts.map +1 -0
  104. package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.mjs +59 -0
  105. package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.mjs.map +1 -0
  106. package/dist/ui/components/CodeBlockTabs/index.d.mts +2 -0
  107. package/dist/ui/components/CodeBlockTabs/index.mjs +2 -0
  108. package/dist/ui/components/CollapsibleSection/CollapsibleSection.d.mts +13 -0
  109. package/dist/ui/components/CollapsibleSection/CollapsibleSection.d.mts.map +1 -0
  110. package/dist/ui/components/CollapsibleSection/CollapsibleSection.mjs +55 -0
  111. package/dist/ui/components/CollapsibleSection/CollapsibleSection.mjs.map +1 -0
  112. package/dist/ui/components/CollapsibleSection/index.d.mts +2 -0
  113. package/dist/ui/components/CollapsibleSection/index.mjs +2 -0
  114. package/dist/ui/components/CopyButton/CopyButton.d.mts +12 -0
  115. package/dist/ui/components/CopyButton/CopyButton.d.mts.map +1 -0
  116. package/dist/ui/components/CopyButton/CopyButton.mjs +45 -0
  117. package/dist/ui/components/CopyButton/CopyButton.mjs.map +1 -0
  118. package/dist/ui/components/CopyButton/index.d.mts +2 -0
  119. package/dist/ui/components/CopyButton/index.mjs +2 -0
  120. package/dist/ui/components/Dialog/Dialog.d.mts +26 -0
  121. package/dist/ui/components/Dialog/Dialog.d.mts.map +1 -0
  122. package/dist/ui/components/Dialog/Dialog.mjs +79 -0
  123. package/dist/ui/components/Dialog/Dialog.mjs.map +1 -0
  124. package/dist/ui/components/Dialog/index.d.mts +2 -0
  125. package/dist/ui/components/Dialog/index.mjs +2 -0
  126. package/dist/ui/components/EmptyState/EmptyState.d.mts +18 -0
  127. package/dist/ui/components/EmptyState/EmptyState.d.mts.map +1 -0
  128. package/dist/ui/components/EmptyState/EmptyState.mjs +36 -0
  129. package/dist/ui/components/EmptyState/EmptyState.mjs.map +1 -0
  130. package/dist/ui/components/EmptyState/index.d.mts +2 -0
  131. package/dist/ui/components/EmptyState/index.mjs +2 -0
  132. package/dist/ui/components/FieldError/FieldError.d.mts +14 -0
  133. package/dist/ui/components/FieldError/FieldError.d.mts.map +1 -0
  134. package/dist/ui/components/FieldError/FieldError.mjs +19 -0
  135. package/dist/ui/components/FieldError/FieldError.mjs.map +1 -0
  136. package/dist/ui/components/FieldError/index.d.mts +2 -0
  137. package/dist/ui/components/FieldError/index.mjs +2 -0
  138. package/dist/ui/components/FormattedDate/FormattedDate.d.mts +15 -0
  139. package/dist/ui/components/FormattedDate/FormattedDate.d.mts.map +1 -0
  140. package/dist/ui/components/FormattedDate/FormattedDate.mjs +23 -0
  141. package/dist/ui/components/FormattedDate/FormattedDate.mjs.map +1 -0
  142. package/dist/ui/components/FormattedDate/index.d.mts +2 -0
  143. package/dist/ui/components/FormattedDate/index.mjs +2 -0
  144. package/dist/ui/components/IconButton/IconButton.d.mts +10 -0
  145. package/dist/ui/components/IconButton/IconButton.d.mts.map +1 -0
  146. package/dist/ui/components/IconButton/IconButton.mjs +19 -0
  147. package/dist/ui/components/IconButton/IconButton.mjs.map +1 -0
  148. package/dist/ui/components/IconButton/index.d.mts +2 -0
  149. package/dist/ui/components/IconButton/index.mjs +2 -0
  150. package/dist/ui/components/Input/Input.d.mts +12 -0
  151. package/dist/ui/components/Input/Input.d.mts.map +1 -0
  152. package/dist/ui/components/Input/Input.mjs +43 -0
  153. package/dist/ui/components/Input/Input.mjs.map +1 -0
  154. package/dist/ui/components/Input/index.d.mts +2 -0
  155. package/dist/ui/components/Input/index.mjs +2 -0
  156. package/dist/ui/components/Label/Label.d.mts +11 -0
  157. package/dist/ui/components/Label/Label.d.mts.map +1 -0
  158. package/dist/ui/components/Label/Label.mjs +18 -0
  159. package/dist/ui/components/Label/Label.mjs.map +1 -0
  160. package/dist/ui/components/Label/index.d.mts +2 -0
  161. package/dist/ui/components/Label/index.mjs +2 -0
  162. package/dist/ui/components/LazyVideo/LazyVideo.d.mts +23 -0
  163. package/dist/ui/components/LazyVideo/LazyVideo.d.mts.map +1 -0
  164. package/dist/ui/components/LazyVideo/LazyVideo.mjs +57 -0
  165. package/dist/ui/components/LazyVideo/LazyVideo.mjs.map +1 -0
  166. package/dist/ui/components/LazyVideo/index.d.mts +2 -0
  167. package/dist/ui/components/LazyVideo/index.mjs +2 -0
  168. package/dist/ui/components/Pagination/Pagination.d.mts +38 -0
  169. package/dist/ui/components/Pagination/Pagination.d.mts.map +1 -0
  170. package/dist/ui/components/Pagination/Pagination.mjs +110 -0
  171. package/dist/ui/components/Pagination/Pagination.mjs.map +1 -0
  172. package/dist/ui/components/Pagination/index.d.mts +2 -0
  173. package/dist/ui/components/Pagination/index.mjs +2 -0
  174. package/dist/ui/components/PaginationItem/PaginationItem.d.mts +15 -0
  175. package/dist/ui/components/PaginationItem/PaginationItem.d.mts.map +1 -0
  176. package/dist/ui/components/PaginationItem/PaginationItem.mjs +34 -0
  177. package/dist/ui/components/PaginationItem/PaginationItem.mjs.map +1 -0
  178. package/dist/ui/components/PaginationItem/index.d.mts +2 -0
  179. package/dist/ui/components/PaginationItem/index.mjs +2 -0
  180. package/dist/ui/components/PasswordInput/PasswordInput.d.mts +10 -0
  181. package/dist/ui/components/PasswordInput/PasswordInput.d.mts.map +1 -0
  182. package/dist/ui/components/PasswordInput/PasswordInput.mjs +39 -0
  183. package/dist/ui/components/PasswordInput/PasswordInput.mjs.map +1 -0
  184. package/dist/ui/components/PasswordInput/index.d.mts +2 -0
  185. package/dist/ui/components/PasswordInput/index.mjs +2 -0
  186. package/dist/ui/components/ProgressStepper/ProgressStepper.d.mts +20 -0
  187. package/dist/ui/components/ProgressStepper/ProgressStepper.d.mts.map +1 -0
  188. package/dist/ui/components/ProgressStepper/ProgressStepper.mjs +39 -0
  189. package/dist/ui/components/ProgressStepper/ProgressStepper.mjs.map +1 -0
  190. package/dist/ui/components/ProgressStepper/index.d.mts +2 -0
  191. package/dist/ui/components/ProgressStepper/index.mjs +2 -0
  192. package/dist/ui/components/Prose/Prose.d.mts +10 -0
  193. package/dist/ui/components/Prose/Prose.d.mts.map +1 -0
  194. package/dist/ui/components/Prose/Prose.mjs +19 -0
  195. package/dist/ui/components/Prose/Prose.mjs.map +1 -0
  196. package/dist/ui/components/Prose/index.d.mts +2 -0
  197. package/dist/ui/components/Prose/index.mjs +2 -0
  198. package/dist/ui/components/Radio/Radio.d.mts +8 -0
  199. package/dist/ui/components/Radio/Radio.d.mts.map +1 -0
  200. package/dist/ui/components/Radio/Radio.mjs +25 -0
  201. package/dist/ui/components/Radio/Radio.mjs.map +1 -0
  202. package/dist/ui/components/Radio/index.d.mts +2 -0
  203. package/dist/ui/components/Radio/index.mjs +2 -0
  204. package/dist/ui/components/Reveal/Reveal.d.mts +10 -0
  205. package/dist/ui/components/Reveal/Reveal.d.mts.map +1 -0
  206. package/dist/ui/components/Reveal/Reveal.mjs +18 -0
  207. package/dist/ui/components/Reveal/Reveal.mjs.map +1 -0
  208. package/dist/ui/components/Reveal/index.d.mts +2 -0
  209. package/dist/ui/components/Reveal/index.mjs +2 -0
  210. package/dist/ui/components/SearchInput/SearchInput.d.mts +15 -0
  211. package/dist/ui/components/SearchInput/SearchInput.d.mts.map +1 -0
  212. package/dist/ui/components/SearchInput/SearchInput.mjs +28 -0
  213. package/dist/ui/components/SearchInput/SearchInput.mjs.map +1 -0
  214. package/dist/ui/components/SearchInput/index.d.mts +2 -0
  215. package/dist/ui/components/SearchInput/index.mjs +2 -0
  216. package/dist/ui/components/Select/Select.d.mts +34 -0
  217. package/dist/ui/components/Select/Select.d.mts.map +1 -0
  218. package/dist/ui/components/Select/Select.mjs +167 -0
  219. package/dist/ui/components/Select/Select.mjs.map +1 -0
  220. package/dist/ui/components/Select/index.d.mts +2 -0
  221. package/dist/ui/components/Select/index.mjs +2 -0
  222. package/dist/ui/components/Sheet/Sheet.d.mts +19 -0
  223. package/dist/ui/components/Sheet/Sheet.d.mts.map +1 -0
  224. package/dist/ui/components/Sheet/Sheet.mjs +59 -0
  225. package/dist/ui/components/Sheet/Sheet.mjs.map +1 -0
  226. package/dist/ui/components/Sheet/index.d.mts +2 -0
  227. package/dist/ui/components/Sheet/index.mjs +2 -0
  228. package/dist/ui/components/StaggerReveal/StaggerReveal.d.mts +10 -0
  229. package/dist/ui/components/StaggerReveal/StaggerReveal.d.mts.map +1 -0
  230. package/dist/ui/components/StaggerReveal/StaggerReveal.mjs +31 -0
  231. package/dist/ui/components/StaggerReveal/StaggerReveal.mjs.map +1 -0
  232. package/dist/ui/components/StaggerReveal/index.d.mts +2 -0
  233. package/dist/ui/components/StaggerReveal/index.mjs +2 -0
  234. package/dist/ui/components/Stepper/Stepper.d.mts +15 -0
  235. package/dist/ui/components/Stepper/Stepper.d.mts.map +1 -0
  236. package/dist/ui/components/Stepper/Stepper.mjs +38 -0
  237. package/dist/ui/components/Stepper/Stepper.mjs.map +1 -0
  238. package/dist/ui/components/Stepper/index.d.mts +2 -0
  239. package/dist/ui/components/Stepper/index.mjs +2 -0
  240. package/dist/ui/components/Switch/Switch.d.mts +12 -0
  241. package/dist/ui/components/Switch/Switch.d.mts.map +1 -0
  242. package/dist/ui/components/Switch/Switch.mjs +34 -0
  243. package/dist/ui/components/Switch/Switch.mjs.map +1 -0
  244. package/dist/ui/components/Switch/index.d.mts +2 -0
  245. package/dist/ui/components/Switch/index.mjs +2 -0
  246. package/dist/ui/components/TextButton/TextButton.d.mts +9 -0
  247. package/dist/ui/components/TextButton/TextButton.d.mts.map +1 -0
  248. package/dist/ui/components/TextButton/TextButton.mjs +16 -0
  249. package/dist/ui/components/TextButton/TextButton.mjs.map +1 -0
  250. package/dist/ui/components/TextButton/index.d.mts +2 -0
  251. package/dist/ui/components/TextButton/index.mjs +2 -0
  252. package/dist/ui/components/Textarea/Textarea.d.mts +9 -0
  253. package/dist/ui/components/Textarea/Textarea.d.mts.map +1 -0
  254. package/dist/ui/components/Textarea/Textarea.mjs +27 -0
  255. package/dist/ui/components/Textarea/Textarea.mjs.map +1 -0
  256. package/dist/ui/components/Textarea/index.d.mts +2 -0
  257. package/dist/ui/components/Textarea/index.mjs +2 -0
  258. package/dist/ui/components/Toast/Toast.d.mts +20 -0
  259. package/dist/ui/components/Toast/Toast.d.mts.map +1 -0
  260. package/dist/ui/components/Toast/Toast.mjs +128 -0
  261. package/dist/ui/components/Toast/Toast.mjs.map +1 -0
  262. package/dist/ui/components/Toast/index.d.mts +2 -0
  263. package/dist/ui/components/Toast/index.mjs +2 -0
  264. package/dist/ui/components/Tooltip/Tooltip.d.mts +11 -0
  265. package/dist/ui/components/Tooltip/Tooltip.d.mts.map +1 -0
  266. package/dist/ui/components/Tooltip/Tooltip.mjs +20 -0
  267. package/dist/ui/components/Tooltip/Tooltip.mjs.map +1 -0
  268. package/dist/ui/components/Tooltip/index.d.mts +2 -0
  269. package/dist/ui/components/Tooltip/index.mjs +2 -0
  270. package/dist/ui/components/VisuallyHidden/VisuallyHidden.d.mts +7 -0
  271. package/dist/ui/components/VisuallyHidden/VisuallyHidden.d.mts.map +1 -0
  272. package/dist/ui/components/VisuallyHidden/VisuallyHidden.mjs +13 -0
  273. package/dist/ui/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -0
  274. package/dist/ui/components/VisuallyHidden/index.d.mts +2 -0
  275. package/dist/ui/components/VisuallyHidden/index.mjs +2 -0
  276. package/dist/ui/hooks/index.d.mts +2 -0
  277. package/dist/ui/hooks/index.mjs +2 -0
  278. package/dist/ui/hooks/useInView.d.mts +13 -0
  279. package/dist/ui/hooks/useInView.d.mts.map +1 -0
  280. package/dist/ui/hooks/useInView.mjs +37 -0
  281. package/dist/ui/hooks/useInView.mjs.map +1 -0
  282. package/dist/ui/index.d.mts +81 -0
  283. package/dist/ui/index.mjs +40 -0
  284. package/dist/ui/theme/preset.d.mts +170 -0
  285. package/dist/ui/theme/preset.d.mts.map +1 -0
  286. package/dist/ui/theme/preset.mjs +143 -0
  287. package/dist/ui/theme/preset.mjs.map +1 -0
  288. package/dist/ui/utils/cn.d.mts +6 -0
  289. package/dist/ui/utils/cn.d.mts.map +1 -0
  290. package/dist/ui/utils/cn.mjs +42 -0
  291. package/dist/ui/utils/cn.mjs.map +1 -0
  292. package/dist/ui/utils/index.d.mts +2 -0
  293. package/dist/ui/utils/index.mjs +2 -0
  294. package/dist/utils/index.d.mts +1 -1
  295. package/dist/utils/index.mjs +2 -2
  296. package/dist/{utils-CVVQQltg.mjs → utils.mjs} +1 -1
  297. package/dist/utils.mjs.map +1 -0
  298. package/package.json +76 -7
  299. package/src/ui/theme/preset.css +53 -0
  300. package/src/ui/theme/preset.ts +131 -0
  301. package/src/ui/theme/theme.css +12 -0
  302. package/src/ui/theme/tokens.css +57 -0
  303. package/dist/cms-5bS91IRZ.mjs.map +0 -1
  304. package/dist/i18n-Dy3VrbBw.mjs.map +0 -1
  305. package/dist/index-9B8SfwdR.d.mts +0 -214
  306. package/dist/index-9B8SfwdR.d.mts.map +0 -1
  307. package/dist/index-D36IEwUg.d.mts.map +0 -1
  308. package/dist/index-Dyi7DDoO.d.mts.map +0 -1
  309. package/dist/index-tTs9h9BS.d.mts.map +0 -1
  310. package/dist/logger-BPURnavq.mjs.map +0 -1
  311. package/dist/readMediaBuffer-1C3QTpkO.d.mts.map +0 -1
  312. package/dist/readMediaBuffer-DWkTbYVn.mjs.map +0 -1
  313. package/dist/seo-e5XjgQ7l.mjs.map +0 -1
  314. package/dist/utils-CVVQQltg.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -1,6 +1,214 @@
1
- import { A as codeTabsBlock, B as STOCK_COLLECTION_SLUGS, C as leafBlocks, D as downloadCtaBlock, E as stepsBlock, F as seoFields, G as applyGlobalOverride, H as CollectionOverride, I as draftsWithAutosave, J as createAccessHelpers, K as AccessHelpers, L as BuildCmsConfigOptions, M as richTextBlock, N as setPublishedAt, O as videoBlock, P as slugify, R as buildCmsConfig, S as languageOptions, T as accordionBlock, U as GlobalOverride, V as StockCollectionSlug, W as applyCollectionOverride, _ as blogContentBlocks, a as createPages, b as codeBlockLanguages, c as createAuthors, d as createUsers, f as CreateS3MediaPluginOptions, g as richTextEditor, h as getRichTextEditorConfig, i as createLegalPages, j as codeBlock, k as imageBlock, l as createMedia, m as requireEnvAtRuntime, n as createChangelog, o as createBlogPosts, p as createS3MediaPlugin, q as AccessOptions, r as createChangelogTags, s as createCategories, t as createSiteSettings, u as createApiTokens, v as pageContentBlocks, w as sectionHeadingBlock, x as defaultCodeLanguage, y as showcaseContentBlocks, z as Overrides } from "./index-9B8SfwdR.mjs";
2
- import { n as readPayloadMediaAsDataUrl, r as readPayloadMediaBuffer, t as PayloadMedia } from "./readMediaBuffer-1C3QTpkO.mjs";
3
- import { n as Languages, t as LanguageLabel } from "./index-D36IEwUg.mjs";
4
- import { a as createMetadataFactory, i as OgImage, n as CreateMetadataFactoryOptions, o as GetSiteUrlOptions, r as CreateMetadataInput, s as getSiteUrl, t as getOgBackgroundDataUrl } from "./index-tTs9h9BS.mjs";
5
- import { i as stripShikiPreBackground, n as createLogger, r as toPlainValue, t as Logger } from "./index-Dyi7DDoO.mjs";
6
- export { type AccessHelpers, type AccessOptions, type BuildCmsConfigOptions, type CollectionOverride, type CreateMetadataFactoryOptions, type CreateMetadataInput, type CreateS3MediaPluginOptions, type GetSiteUrlOptions, type GlobalOverride, LanguageLabel, Languages, type Logger, type OgImage, type Overrides, type PayloadMedia, STOCK_COLLECTION_SLUGS, type StockCollectionSlug, accordionBlock, applyCollectionOverride, applyGlobalOverride, blogContentBlocks, buildCmsConfig, codeBlock, codeBlockLanguages, codeTabsBlock, createAccessHelpers, createApiTokens, createAuthors, createBlogPosts, createCategories, createChangelog, createChangelogTags, createLegalPages, createLogger, createMedia, createMetadataFactory, createPages, createS3MediaPlugin, createSiteSettings, createUsers, defaultCodeLanguage, downloadCtaBlock, draftsWithAutosave, getOgBackgroundDataUrl, getRichTextEditorConfig, getSiteUrl, imageBlock, languageOptions, leafBlocks, pageContentBlocks, readPayloadMediaAsDataUrl, readPayloadMediaBuffer, requireEnvAtRuntime, richTextBlock, richTextEditor, sectionHeadingBlock, seoFields, setPublishedAt, showcaseContentBlocks, slugify, stepsBlock, stripShikiPreBackground, toPlainValue, videoBlock };
1
+ import { Access, Block, CollectionBeforeChangeHook, CollectionConfig, Config, Field, FieldAccess, FieldHook, GlobalConfig, GroupField, PayloadRequest, Plugin, SanitizedConfig } from "payload";
2
+ import { lexicalEditor } from "@payloadcms/richtext-lexical";
3
+ //#region src/cms/shared/access.d.ts
4
+ type AccessOptions = {
5
+ /**
6
+ * When true, disabled `api-tokens` users are denied public reads.
7
+ * Defaults to on when the stock `api-tokens` collection is enabled.
8
+ */
9
+ apiTokens?: boolean;
10
+ };
11
+ type AccessHelpers = {
12
+ adminOnly: ({ req }: {
13
+ req: PayloadRequest;
14
+ }) => boolean;
15
+ adminOrPublished: Access;
16
+ publicRead: Access;
17
+ adminOnlyField: FieldAccess;
18
+ };
19
+ /**
20
+ * Build access helpers. Pass `{ apiTokens: true }` when the `api-tokens`
21
+ * collection is registered (stock by default via `buildCmsConfig`).
22
+ */
23
+ declare function createAccessHelpers(options?: AccessOptions): AccessHelpers;
24
+ //#endregion
25
+ //#region src/cms/applyOverride.d.ts
26
+ type OverridableConfig = CollectionConfig | GlobalConfig;
27
+ type Override<TConfig extends OverridableConfig> = false | {
28
+ fields?: (base: Field[]) => Field[];
29
+ hooks?: Partial<TConfig['hooks']>;
30
+ admin?: Partial<TConfig['admin']>;
31
+ access?: Partial<TConfig['access']>;
32
+ config?: (base: TConfig) => TConfig;
33
+ };
34
+ type CollectionOverride = Override<CollectionConfig>;
35
+ type GlobalOverride = Override<GlobalConfig>;
36
+ declare const applyCollectionOverride: (base: CollectionConfig, override: CollectionOverride | undefined) => CollectionConfig | null;
37
+ declare const applyGlobalOverride: (base: GlobalConfig, override: GlobalOverride | undefined) => GlobalConfig | null;
38
+ //#endregion
39
+ //#region src/cms/overrides.d.ts
40
+ /** Slugs of the stock collections shipped by `buildCmsConfig`, in registration order. */
41
+ declare const STOCK_COLLECTION_SLUGS: readonly ["users", "api-tokens", "media", "authors", "categories", "blog-posts", "pages", "legal-pages", "changelog-tags", "changelog"];
42
+ type StockCollectionSlug = (typeof STOCK_COLLECTION_SLUGS)[number];
43
+ /** Typed map of collection/global overrides for `buildCmsConfig`. */
44
+ type Overrides = Partial<Record<StockCollectionSlug, CollectionOverride>> & {
45
+ 'site-settings'?: GlobalOverride;
46
+ };
47
+ //#endregion
48
+ //#region src/cms/buildCmsConfig.d.ts
49
+ type BuildCmsConfigOptions<TLocale extends string = string> = {
50
+ secret: string;
51
+ db: Config['db'];
52
+ /** Sharp instance from the `sharp` package. */
53
+ sharp?: Config['sharp'];
54
+ cors?: Config['cors'];
55
+ csrf?: Config['csrf'];
56
+ locales: readonly TLocale[];
57
+ /** Must be one of `locales`. */
58
+ defaultLocale: TLocale;
59
+ admin?: Config['admin'];
60
+ plugins?: Plugin[];
61
+ /** Defaults to the package Lexical editor. */
62
+ editor?: Config['editor'];
63
+ access?: AccessOptions;
64
+ /** Collection/global slug → override | false. */
65
+ overrides?: Overrides;
66
+ extraCollections?: CollectionConfig[];
67
+ extraGlobals?: GlobalConfig[];
68
+ typescript?: Config['typescript'];
69
+ /** Extra top-level Payload config keys (e.g. endpoints, graphQL). */
70
+ payload?: Partial<Omit<Config, 'secret' | 'db' | 'sharp' | 'cors' | 'csrf' | 'admin' | 'plugins' | 'editor' | 'collections' | 'globals' | 'localization' | 'typescript'>>;
71
+ };
72
+ /**
73
+ * Build a Payload config from shared stock collections/globals plus site
74
+ * overrides and extras. Types are still generated in the consuming app.
75
+ */
76
+ declare function buildCmsConfig<const TLocale extends string>(options: BuildCmsConfigOptions<TLocale>): Promise<import("payload").SanitizedConfig>;
77
+ //#endregion
78
+ //#region src/cms/shared/drafts-with-autosave.d.ts
79
+ declare const draftsWithAutosave: CollectionConfig['versions'];
80
+ //#endregion
81
+ //#region src/cms/shared/seo-fields.d.ts
82
+ declare const seoFields: GroupField;
83
+ //#endregion
84
+ //#region src/cms/hooks/slugify.d.ts
85
+ declare const slugify: FieldHook;
86
+ //#endregion
87
+ //#region src/cms/hooks/set-published-at.d.ts
88
+ declare const setPublishedAt: CollectionBeforeChangeHook;
89
+ //#endregion
90
+ //#region src/cms/blocks/rich-text.d.ts
91
+ declare const richTextBlock: Block;
92
+ //#endregion
93
+ //#region src/cms/blocks/code.d.ts
94
+ declare const codeBlock: Block;
95
+ //#endregion
96
+ //#region src/cms/blocks/code-tabs.d.ts
97
+ declare const codeTabsBlock: Block;
98
+ //#endregion
99
+ //#region src/cms/blocks/image.d.ts
100
+ declare const imageBlock: Block;
101
+ //#endregion
102
+ //#region src/cms/blocks/video.d.ts
103
+ declare const videoBlock: Block;
104
+ //#endregion
105
+ //#region src/cms/blocks/download-cta.d.ts
106
+ declare const downloadCtaBlock: Block;
107
+ //#endregion
108
+ //#region src/cms/blocks/steps.d.ts
109
+ declare const stepsBlock: Block;
110
+ //#endregion
111
+ //#region src/cms/blocks/accordion.d.ts
112
+ declare const accordionBlock: Block;
113
+ //#endregion
114
+ //#region src/cms/blocks/section-heading.d.ts
115
+ declare const sectionHeadingBlock: Block;
116
+ //#endregion
117
+ //#region src/cms/blocks/leaf-blocks.d.ts
118
+ declare const leafBlocks: Block[];
119
+ //#endregion
120
+ //#region src/cms/blocks/language-options.d.ts
121
+ /** Shared language options for CMS code blocks and Lexical CodeBlock feature. */
122
+ declare const languageOptions: {
123
+ label: string;
124
+ value: string;
125
+ }[];
126
+ declare const codeBlockLanguages: Record<string, string>;
127
+ declare const defaultCodeLanguage = "plaintext";
128
+ //#endregion
129
+ //#region src/cms/blocks/index.d.ts
130
+ declare const blogContentBlocks: Block[];
131
+ declare const pageContentBlocks: Block[];
132
+ declare const showcaseContentBlocks: Block[];
133
+ //#endregion
134
+ //#region src/cms/lexical/editor.d.ts
135
+ /**
136
+ * Shared Lexical editor for every `richText` field.
137
+ *
138
+ * Adds `CodeBlock`, inline `video` block, media upload captions, and
139
+ * `EXPERIMENTAL_TableFeature` on top of Payload defaults.
140
+ */
141
+ declare const richTextEditor: () => ReturnType<typeof lexicalEditor>;
142
+ /** Resolve Lexical editor config for seed scripts / markdown conversion. */
143
+ declare function getRichTextEditorConfig(config: SanitizedConfig): Promise<import("@payloadcms/richtext-lexical").SanitizedServerEditorConfig>;
144
+ //#endregion
145
+ //#region src/cms/requireEnv.d.ts
146
+ /**
147
+ * Read a required env var. During Next.js `phase-production-build` and
148
+ * `generate:importmap` (when NEXT_PHASE is unset) returns "" instead of throwing,
149
+ * because those phases do not connect to the DB.
150
+ */
151
+ declare function requireEnvAtRuntime(name: string): string;
152
+ //#endregion
153
+ //#region src/cms/createS3MediaPlugin.d.ts
154
+ type CreateS3MediaPluginOptions = {
155
+ /** Defaults to `process.env.AWS_S3_BUCKET`. */
156
+ bucket?: string;
157
+ accessKeyId?: string;
158
+ secretAccessKey?: string;
159
+ region?: string;
160
+ /** Custom S3-compatible endpoint (MinIO, etc.). Defaults to `AWS_S3_ENDPOINT`. */
161
+ endpoint?: string;
162
+ /** Defaults to `AWS_S3_FORCE_PATH_STYLE === 'true'`. */
163
+ forcePathStyle?: boolean;
164
+ /** Collection slug that owns uploads. Defaults to `media`. */
165
+ collection?: string;
166
+ };
167
+ /** Payload S3 storage plugin wired for the stock `media` collection. */
168
+ declare function createS3MediaPlugin(options?: CreateS3MediaPluginOptions): Plugin;
169
+ //#endregion
170
+ //#region src/cms/collections/createUsers.d.ts
171
+ declare function createUsers(access: AccessHelpers): CollectionConfig;
172
+ //#endregion
173
+ //#region src/cms/collections/createApiTokens.d.ts
174
+ /**
175
+ * Stock API-key auth collection for server-to-server Payload REST/GraphQL clients.
176
+ * Disable per site with `overrides['api-tokens'] = false`.
177
+ */
178
+ declare function createApiTokens(access: AccessHelpers): CollectionConfig;
179
+ //#endregion
180
+ //#region src/cms/collections/createMedia.d.ts
181
+ /** Stock media upload collection (always publicly readable once uploaded). */
182
+ declare function createMedia(access: AccessHelpers): CollectionConfig;
183
+ //#endregion
184
+ //#region src/cms/collections/createAuthors.d.ts
185
+ declare function createAuthors(access: AccessHelpers): CollectionConfig;
186
+ //#endregion
187
+ //#region src/cms/collections/createCategories.d.ts
188
+ declare function createCategories(access: AccessHelpers): CollectionConfig;
189
+ //#endregion
190
+ //#region src/cms/collections/createBlogPosts.d.ts
191
+ /** Stock blog-posts collection (no site revalidation — add via overrides.hooks). */
192
+ declare function createBlogPosts(access: AccessHelpers): CollectionConfig;
193
+ //#endregion
194
+ //#region src/cms/collections/createPages.d.ts
195
+ declare function createPages(access: AccessHelpers): CollectionConfig;
196
+ declare function createLegalPages(access: AccessHelpers): CollectionConfig;
197
+ //#endregion
198
+ //#region src/cms/collections/createChangelogTags.d.ts
199
+ /** Stock changelog-tags (no site revalidation — add via overrides.hooks). */
200
+ declare function createChangelogTags(access: AccessHelpers): CollectionConfig;
201
+ //#endregion
202
+ //#region src/cms/collections/createChangelog.d.ts
203
+ /**
204
+ * Stock changelog collection (shared fields only).
205
+ * Site-specific body / GitHub / related-block fields — add via `overrides.fields`.
206
+ * Revalidation — add via `overrides.hooks`.
207
+ */
208
+ declare function createChangelog(access: AccessHelpers): CollectionConfig;
209
+ //#endregion
210
+ //#region src/cms/globals/createSiteSettings.d.ts
211
+ declare function createSiteSettings(access: AccessHelpers): GlobalConfig;
212
+ //#endregion
213
+ export { codeTabsBlock as A, STOCK_COLLECTION_SLUGS as B, leafBlocks as C, downloadCtaBlock as D, stepsBlock as E, seoFields as F, applyGlobalOverride as G, CollectionOverride as H, draftsWithAutosave as I, createAccessHelpers as J, AccessHelpers as K, BuildCmsConfigOptions as L, richTextBlock as M, setPublishedAt as N, videoBlock as O, slugify as P, buildCmsConfig as R, languageOptions as S, accordionBlock as T, GlobalOverride as U, StockCollectionSlug as V, applyCollectionOverride as W, blogContentBlocks as _, createPages as a, codeBlockLanguages as b, createAuthors as c, createUsers as d, CreateS3MediaPluginOptions as f, richTextEditor as g, getRichTextEditorConfig as h, createLegalPages as i, codeBlock as j, imageBlock as k, createMedia as l, requireEnvAtRuntime as m, createChangelog as n, createBlogPosts as o, createS3MediaPlugin as p, AccessOptions as q, createChangelogTags as r, createCategories as s, createSiteSettings as t, createApiTokens as u, pageContentBlocks as v, sectionHeadingBlock as w, defaultCodeLanguage as x, showcaseContentBlocks as y, Overrides as z };
214
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/cms/shared/access.ts","../src/cms/applyOverride.ts","../src/cms/overrides.ts","../src/cms/buildCmsConfig.ts","../src/cms/shared/drafts-with-autosave.ts","../src/cms/shared/seo-fields.ts","../src/cms/hooks/slugify.ts","../src/cms/hooks/set-published-at.ts","../src/cms/blocks/rich-text.ts","../src/cms/blocks/code.ts","../src/cms/blocks/code-tabs.ts","../src/cms/blocks/image.ts","../src/cms/blocks/video.ts","../src/cms/blocks/download-cta.ts","../src/cms/blocks/steps.ts","../src/cms/blocks/accordion.ts","../src/cms/blocks/section-heading.ts","../src/cms/blocks/leaf-blocks.ts","../src/cms/blocks/language-options.ts","../src/cms/blocks/index.ts","../src/cms/lexical/editor.ts","../src/cms/requireEnv.ts","../src/cms/createS3MediaPlugin.ts","../src/cms/collections/createUsers.ts","../src/cms/collections/createApiTokens.ts","../src/cms/collections/createMedia.ts","../src/cms/collections/createAuthors.ts","../src/cms/collections/createCategories.ts","../src/cms/collections/createBlogPosts.ts","../src/cms/collections/createPages.ts","../src/cms/collections/createChangelogTags.ts","../src/cms/collections/createChangelog.ts","../src/cms/globals/createSiteSettings.ts"],"mappings":";;;KAEY;;;;;EAKV;;KAGU;EACV,cAAc;IAAS,KAAK;;EAC5B,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;;;;;;iBAYF,oBAAoB,UAAS,gBAAqB;;;KCxB7D,oBAAoB,mBAAmB;KAEvC,SAAS,gBAAgB;EAGxB,UAAU,MAAM,YAAY;EAC5B,QAAQ,QAAQ;EAChB,QAAQ,QAAQ;EAChB,SAAS,QAAQ;EACjB,UAAU,MAAM,YAAY;;KAGtB,qBAAqB,SAAS;KAC9B,iBAAiB,SAAS;cAkCzB,0BACX,MAAM,kBACN,UAAU,mCACT;cAEU,sBACX,MAAM,cACN,UAAU,+BACT;;;;cCtDU;KAaD,8BAA8B;;KAG9B,YAAY,QAAQ,OAAO,qBAAqB;EAC1D,kBAAkB;;;;KCDR,sBAAsB;EAChC;EAEA,IAAI;;EAEJ,QAAQ;EACR,OAAO;EACP,OAAO;EACP,kBAAkB;;EAElB,eAAe;EACf,QAAQ;EACR,UAAU;;EAEV,SAAS;EACT,SAAS;;EAET,YAAY;EACZ,mBAAmB;EACnB,eAAe;EACf,aAAa;;EAEb,UAAU,QACR,KACE;;;;;;iBA0BU,qBAAqB,wBACnC,SAAS,sBAAsB,WAAQ,0BAAA;;;cCpE5B,oBAAoB;;;cC2BpB,WAAW;;;cC3BX,SAAS;;;cCAT,gBAAgB;;;cCEhB,eAAe;;;cCAf,WAAW;;;cCAX,eAAe;;;cCFf,YAAY;;;cCAZ,YAAY;;;cCAZ,kBAAkB;;;cCAlB,YAAY;;;cCEZ,gBAAgB;;;cCFhB,qBAAqB;;;cCQrB,YAAY;;;;cCTZ;EAAA;EAAA;;cAgBA,oBAAoB;cAIpB;;;cCGA,mBAAmB;cAWnB,mBAAmB;cASnB,uBAAuB;;;;;;;;;cCYvB,sBAAqB,kBAAkB;;iBAM9B,wBAAwB,QAAQ,kBAAe,+CAAA;;;;;;;;iBCrDrD,oBAAoB;;;KCLxB;;EAEV;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;;;iBAIc,oBAAoB,UAAS,6BAAkC;;;iBChB/D,YAAY,QAAQ,gBAAgB;;;;;;;iBCUpC,gBAAgB,QAAQ,gBAAgB;;;;iBCTxC,YAAY,QAAQ,gBAAgB;;;iBCEpC,cAAc,QAAQ,gBAAgB;;;iBCDtC,iBAAiB,QAAQ,gBAAgB;;;;iBCKzC,gBAAgB,QAAQ,gBAAgB;;;iBCyDxC,YAAY,QAAQ,gBAAgB;iBAIpC,iBAAiB,QAAQ,gBAAgB;;;;iBCjEzC,oBAAoB,QAAQ,gBAAgB;;;;;;;;iBCK5C,gBAAgB,QAAQ,gBAAgB;;;iBCRxC,mBAAmB,QAAQ,gBAAgB"}
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { A as downloadCtaBlock, B as createAccessHelpers, C as leafBlocks, D as richTextEditor, E as getRichTextEditorConfig, F as languageOptions, I as createAuthors, L as seoFields, M as codeBlock, N as codeBlockLanguages, O as videoBlock, P as defaultCodeLanguage, R as slugify, S as accordionBlock, T as richTextBlock, _ as setPublishedAt, a as applyCollectionOverride, b as showcaseContentBlocks, c as createUsers, d as createMedia, f as createChangelogTags, g as draftsWithAutosave, h as createBlogPosts, i as STOCK_COLLECTION_SLUGS, j as codeTabsBlock, k as imageBlock, l as createLegalPages, m as createCategories, n as requireEnvAtRuntime, o as applyGlobalOverride, p as createChangelog, r as buildCmsConfig, s as createSiteSettings, t as createS3MediaPlugin, u as createPages, v as blogContentBlocks, w as stepsBlock, x as sectionHeadingBlock, y as pageContentBlocks, z as createApiTokens } from "./cms-5bS91IRZ.mjs";
2
- import { t as createLogger } from "./logger-BPURnavq.mjs";
3
- import { n as readPayloadMediaBuffer, t as readPayloadMediaAsDataUrl } from "./readMediaBuffer-DWkTbYVn.mjs";
4
- import { n as createMetadataFactory, r as getSiteUrl, t as getOgBackgroundDataUrl } from "./seo-e5XjgQ7l.mjs";
5
- import { n as Languages, t as LanguageLabel } from "./i18n-Dy3VrbBw.mjs";
6
- import { n as stripShikiPreBackground, t as toPlainValue } from "./utils-CVVQQltg.mjs";
1
+ import { A as downloadCtaBlock, B as createAccessHelpers, C as leafBlocks, D as richTextEditor, E as getRichTextEditorConfig, F as languageOptions, I as createAuthors, L as seoFields, M as codeBlock, N as codeBlockLanguages, O as videoBlock, P as defaultCodeLanguage, R as slugify, S as accordionBlock, T as richTextBlock, _ as setPublishedAt, a as applyCollectionOverride, b as showcaseContentBlocks, c as createUsers, d as createMedia, f as createChangelogTags, g as draftsWithAutosave, h as createBlogPosts, i as STOCK_COLLECTION_SLUGS, j as codeTabsBlock, k as imageBlock, l as createLegalPages, m as createCategories, n as requireEnvAtRuntime, o as applyGlobalOverride, p as createChangelog, r as buildCmsConfig, s as createSiteSettings, t as createS3MediaPlugin, u as createPages, v as blogContentBlocks, w as stepsBlock, x as sectionHeadingBlock, y as pageContentBlocks, z as createApiTokens } from "./cms.mjs";
2
+ import { t as createLogger } from "./logger.mjs";
3
+ import { n as readPayloadMediaBuffer, t as readPayloadMediaAsDataUrl } from "./readMediaBuffer.mjs";
4
+ import { n as createMetadataFactory, r as getSiteUrl, t as getOgBackgroundDataUrl } from "./seo.mjs";
5
+ import { n as Languages, t as LanguageLabel } from "./i18n.mjs";
6
+ import { n as stripShikiPreBackground, t as toPlainValue } from "./utils.mjs";
7
7
  export { LanguageLabel, Languages, STOCK_COLLECTION_SLUGS, accordionBlock, applyCollectionOverride, applyGlobalOverride, blogContentBlocks, buildCmsConfig, codeBlock, codeBlockLanguages, codeTabsBlock, createAccessHelpers, createApiTokens, createAuthors, createBlogPosts, createCategories, createChangelog, createChangelogTags, createLegalPages, createLogger, createMedia, createMetadataFactory, createPages, createS3MediaPlugin, createSiteSettings, createUsers, defaultCodeLanguage, downloadCtaBlock, draftsWithAutosave, getOgBackgroundDataUrl, getRichTextEditorConfig, getSiteUrl, imageBlock, languageOptions, leafBlocks, pageContentBlocks, readPayloadMediaAsDataUrl, readPayloadMediaBuffer, requireEnvAtRuntime, richTextBlock, richTextEditor, sectionHeadingBlock, seoFields, setPublishedAt, showcaseContentBlocks, slugify, stepsBlock, stripShikiPreBackground, toPlainValue, videoBlock };
@@ -5,4 +5,4 @@ declare enum Languages {
5
5
  declare const LanguageLabel: Record<Languages, string>;
6
6
  //#endregion
7
7
  export { Languages as n, LanguageLabel as t };
8
- //# sourceMappingURL=index-D36IEwUg.d.mts.map
8
+ //# sourceMappingURL=index2.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.d.mts","names":[],"sources":["../src/i18n/languages.ts"],"mappings":";aAAY;EACV;;cAGW,eAAe,OAAO"}
@@ -1,4 +1,4 @@
1
- import { t as PayloadMedia } from "./readMediaBuffer-1C3QTpkO.mjs";
1
+ import { t as PayloadMedia } from "./readMediaBuffer.mjs";
2
2
  import { Metadata } from "next";
3
3
  //#region src/seo/site-url.d.ts
4
4
  type GetSiteUrlOptions = {
@@ -60,4 +60,4 @@ declare function createMetadataFactory(options: CreateMetadataFactoryOptions): {
60
60
  declare function getOgBackgroundDataUrl(media: PayloadMedia | null | undefined): Promise<string | undefined>;
61
61
  //#endregion
62
62
  export { createMetadataFactory as a, OgImage as i, CreateMetadataFactoryOptions as n, GetSiteUrlOptions as o, CreateMetadataInput as r, getSiteUrl as s, getOgBackgroundDataUrl as t };
63
- //# sourceMappingURL=index-tTs9h9BS.d.mts.map
63
+ //# sourceMappingURL=index3.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index3.d.mts","names":[],"sources":["../src/seo/site-url.ts","../src/seo/metadata.ts","../src/seo/og-background.ts"],"mappings":";;;KAIY;;EAEV;;;iBAIc,WAAW,UAAS;;;KCNxB;EACV;EACA;EACA;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;IACE;IACA;IACA;IACA;IACA;IACA;;EAEF;;EAEA;EACA;;KAGU;EACV;EACA;EACA;EACA;;EAEA,qBAAqB;EACrB;EACA;;iBAUc,sBAAsB,SAAS;EAId,iBAAA,OAAA,wBAAsB;EA0Eb,qBAAA;IACtC;IACA;QACE;;;;iBC1HgB,uBACpB,OAAO,kCACN"}
@@ -20,4 +20,4 @@ type Logger = {
20
20
  declare function createLogger(scope: string): Logger;
21
21
  //#endregion
22
22
  export { stripShikiPreBackground as i, createLogger as n, toPlainValue as r, Logger as t };
23
- //# sourceMappingURL=index-Dyi7DDoO.d.mts.map
23
+ //# sourceMappingURL=index4.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index4.d.mts","names":[],"sources":["../src/utils/stripShikiPreBackground.ts","../src/utils/toPlainValue.ts","../src/utils/logger/logger.ts"],"mappings":";iBAAgB,wBAAwB;;;iBCAxB,aAAa,GAAG,OAAO,IAAI;;;;;;;KCwB/B;EACV,QAAQ;EACR,OAAO;EACP,OAAO;EACP,QAAQ;;EAER,QAAQ,mBAAmB;;iBA0Bb,aAAa,gBAAgB"}
@@ -0,0 +1,6 @@
1
+ import { A as codeTabsBlock, B as STOCK_COLLECTION_SLUGS, C as leafBlocks, D as downloadCtaBlock, E as stepsBlock, F as seoFields, G as applyGlobalOverride, H as CollectionOverride, I as draftsWithAutosave, J as createAccessHelpers, K as AccessHelpers, L as BuildCmsConfigOptions, M as richTextBlock, N as setPublishedAt, O as videoBlock, P as slugify, R as buildCmsConfig, S as languageOptions, T as accordionBlock, U as GlobalOverride, V as StockCollectionSlug, W as applyCollectionOverride, _ as blogContentBlocks, a as createPages, b as codeBlockLanguages, c as createAuthors, d as createUsers, f as CreateS3MediaPluginOptions, g as richTextEditor, h as getRichTextEditorConfig, i as createLegalPages, j as codeBlock, k as imageBlock, l as createMedia, m as requireEnvAtRuntime, n as createChangelog, o as createBlogPosts, p as createS3MediaPlugin, q as AccessOptions, r as createChangelogTags, s as createCategories, t as createSiteSettings, u as createApiTokens, v as pageContentBlocks, w as sectionHeadingBlock, x as defaultCodeLanguage, y as showcaseContentBlocks, z as Overrides } from "./index.mjs";
2
+ import { n as readPayloadMediaAsDataUrl, r as readPayloadMediaBuffer, t as PayloadMedia } from "./readMediaBuffer.mjs";
3
+ import { n as Languages, t as LanguageLabel } from "./index2.mjs";
4
+ import { a as createMetadataFactory, i as OgImage, n as CreateMetadataFactoryOptions, o as GetSiteUrlOptions, r as CreateMetadataInput, s as getSiteUrl, t as getOgBackgroundDataUrl } from "./index3.mjs";
5
+ import { i as stripShikiPreBackground, n as createLogger, r as toPlainValue, t as Logger } from "./index4.mjs";
6
+ export { type AccessHelpers, type AccessOptions, type BuildCmsConfigOptions, type CollectionOverride, type CreateMetadataFactoryOptions, type CreateMetadataInput, type CreateS3MediaPluginOptions, type GetSiteUrlOptions, type GlobalOverride, LanguageLabel, Languages, type Logger, type OgImage, type Overrides, type PayloadMedia, STOCK_COLLECTION_SLUGS, type StockCollectionSlug, accordionBlock, applyCollectionOverride, applyGlobalOverride, blogContentBlocks, buildCmsConfig, codeBlock, codeBlockLanguages, codeTabsBlock, createAccessHelpers, createApiTokens, createAuthors, createBlogPosts, createCategories, createChangelog, createChangelogTags, createLegalPages, createLogger, createMedia, createMetadataFactory, createPages, createS3MediaPlugin, createSiteSettings, createUsers, defaultCodeLanguage, downloadCtaBlock, draftsWithAutosave, getOgBackgroundDataUrl, getRichTextEditorConfig, getSiteUrl, imageBlock, languageOptions, leafBlocks, pageContentBlocks, readPayloadMediaAsDataUrl, readPayloadMediaBuffer, requireEnvAtRuntime, richTextBlock, richTextEditor, sectionHeadingBlock, seoFields, setPublishedAt, showcaseContentBlocks, slugify, stepsBlock, stripShikiPreBackground, toPlainValue, videoBlock };
@@ -41,4 +41,4 @@ function createLogger(scope) {
41
41
  //#endregion
42
42
  export { createLogger as t };
43
43
 
44
- //# sourceMappingURL=logger-BPURnavq.mjs.map
44
+ //# sourceMappingURL=logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.mjs","names":[],"sources":["../src/utils/logger/logger.ts"],"sourcesContent":["/**\n * Tiny, dependency-free structured logger. Prefer `createLogger(scope)` over\n * `console.*` so callers can filter by `LOG_LEVEL` and keep a consistent prefix.\n */\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error'\n\nconst LEVEL_RANK: Record<LogLevel, number> = {\n debug: 10,\n info: 20,\n warn: 30,\n error: 40,\n}\n\nfunction resolveMinLevel(): LogLevel {\n const raw = (process.env.LOG_LEVEL ?? '').toLowerCase()\n if (raw === 'debug' || raw === 'info' || raw === 'warn' || raw === 'error') {\n return raw\n }\n return process.env.NODE_ENV === 'production' ? 'info' : 'debug'\n}\n\nconst minLevel = resolveMinLevel()\n\nexport type Logger = {\n debug: (message: string) => void\n info: (message: string) => void\n warn: (message: string) => void\n error: (message: string) => void\n /** Returns a logger whose scope is `${parent}:${suffix}`. */\n child: (suffix: string) => Logger\n}\n\nfunction emit(level: LogLevel, scope: string, message: string): void {\n if (LEVEL_RANK[level] < LEVEL_RANK[minLevel]) return\n const line = `[${scope}] ${message}`\n switch (level) {\n case 'debug':\n // eslint-disable-next-line no-console\n console.debug(line)\n return\n case 'info':\n // eslint-disable-next-line no-console\n console.info(line)\n return\n case 'warn':\n // eslint-disable-next-line no-console\n console.warn(line)\n return\n case 'error':\n // eslint-disable-next-line no-console\n console.error(line)\n return\n }\n}\n\nexport function createLogger(scope: string): Logger {\n return {\n debug: (m) => emit('debug', scope, m),\n info: (m) => emit('info', scope, m),\n warn: (m) => emit('warn', scope, m),\n error: (m) => emit('error', scope, m),\n child: (suffix) => createLogger(`${scope}:${suffix}`),\n }\n}\n"],"mappings":";AAOA,MAAM,aAAuC;CAC3C,OAAO;CACP,MAAM;CACN,MAAM;CACN,OAAO;AACT;AAEA,SAAS,kBAA4B;CACnC,MAAM,OAAO,QAAQ,IAAI,aAAa,GAAA,CAAI,YAAY;CACtD,IAAI,QAAQ,WAAW,QAAQ,UAAU,QAAQ,UAAU,QAAQ,SACjE,OAAO;CAET,OAAO,QAAQ,IAAI,aAAa,eAAe,SAAS;AAC1D;AAEA,MAAM,WAAW,gBAAgB;AAWjC,SAAS,KAAK,OAAiB,OAAe,SAAuB;CACnE,IAAI,WAAW,SAAS,WAAW,WAAW;CAC9C,MAAM,OAAO,IAAI,MAAM,IAAI;CAC3B,QAAQ,OAAR;EACE,KAAK;GAEH,QAAQ,MAAM,IAAI;GAClB;EACF,KAAK;GAEH,QAAQ,KAAK,IAAI;GACjB;EACF,KAAK;GAEH,QAAQ,KAAK,IAAI;GACjB;EACF,KAAK;GAEH,QAAQ,MAAM,IAAI;GAClB;CACJ;AACF;AAEA,SAAgB,aAAa,OAAuB;CAClD,OAAO;EACL,QAAQ,MAAM,KAAK,SAAS,OAAO,CAAC;EACpC,OAAO,MAAM,KAAK,QAAQ,OAAO,CAAC;EAClC,OAAO,MAAM,KAAK,QAAQ,OAAO,CAAC;EAClC,QAAQ,MAAM,KAAK,SAAS,OAAO,CAAC;EACpC,QAAQ,WAAW,aAAa,GAAG,MAAM,GAAG,QAAQ;CACtD;AACF"}
@@ -12,4 +12,4 @@ declare function readPayloadMediaBuffer(media: PayloadMedia): Promise<Buffer>;
12
12
  declare function readPayloadMediaAsDataUrl(media: PayloadMedia): Promise<string>;
13
13
  //#endregion
14
14
  export { readPayloadMediaAsDataUrl as n, readPayloadMediaBuffer as r, PayloadMedia as t };
15
- //# sourceMappingURL=readMediaBuffer-1C3QTpkO.d.mts.map
15
+ //# sourceMappingURL=readMediaBuffer.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readMediaBuffer.d.mts","names":[],"sources":["../src/cms/payload/readMediaBuffer.ts"],"mappings":";;;;;;KAeY;EACV;EACA;;iBA8CoB,uBAAuB,OAAO,eAAe,QAAQ;iBAUrD,0BAA0B,OAAO,eAAe"}
@@ -1,4 +1,4 @@
1
- import { t as createLogger } from "./logger-BPURnavq.mjs";
1
+ import { t as createLogger } from "./logger.mjs";
2
2
  import { readFile } from "fs/promises";
3
3
  import { join } from "path";
4
4
  import { GetObjectCommand, S3Client } from "@aws-sdk/client-s3";
@@ -59,4 +59,4 @@ async function readPayloadMediaAsDataUrl(media) {
59
59
  //#endregion
60
60
  export { readPayloadMediaBuffer as n, readPayloadMediaAsDataUrl as t };
61
61
 
62
- //# sourceMappingURL=readMediaBuffer-DWkTbYVn.mjs.map
62
+ //# sourceMappingURL=readMediaBuffer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readMediaBuffer.mjs","names":[],"sources":["../src/cms/payload/readMediaBuffer.ts"],"sourcesContent":["/**\n * Read a Payload-managed Media file's raw bytes, bypassing the public HTTP\n * surface. Uses S3 when `AWS_S3_BUCKET` is set; otherwise reads from\n * `<cwd>/media/<filename>` (Payload's default upload staticDir for `media`).\n */\n\nimport { readFile } from 'fs/promises'\nimport { join } from 'path'\n\nimport { GetObjectCommand, S3Client, type S3ClientConfig } from '@aws-sdk/client-s3'\n\nimport { createLogger } from '../../utils/logger/logger.js'\n\nconst log = createLogger('readPayloadMedia')\n\nexport type PayloadMedia = {\n filename?: string | null\n mimeType?: string | null\n}\n\nlet cachedS3Client: S3Client | null = null\n\nfunction isS3Enabled(): boolean {\n return Boolean(process.env.AWS_S3_BUCKET)\n}\n\nfunction getS3Client(): S3Client {\n if (cachedS3Client) return cachedS3Client\n const endpoint = process.env.AWS_S3_ENDPOINT?.trim()\n const clientConfig: S3ClientConfig = {\n region: process.env.AWS_S3_REGION ?? 'us-east-1',\n ...(endpoint ? { endpoint } : {}),\n ...(process.env.AWS_S3_FORCE_PATH_STYLE === 'true' ? { forcePathStyle: true } : {}),\n }\n const accessKeyId = process.env.AWS_ACCESS_KEY_ID\n const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY\n if (accessKeyId && secretAccessKey) {\n clientConfig.credentials = { accessKeyId, secretAccessKey }\n }\n cachedS3Client = new S3Client(clientConfig)\n return cachedS3Client\n}\n\nasync function readFromS3(filename: string): Promise<Buffer> {\n const bucket = process.env.AWS_S3_BUCKET\n if (!bucket) {\n throw new Error('AWS_S3_BUCKET is not set — cannot read media from S3')\n }\n const client = getS3Client()\n const response = await client.send(new GetObjectCommand({ Bucket: bucket, Key: filename }))\n if (!response.Body) {\n throw new Error(`S3 returned an empty body for media file: ${filename}`)\n }\n\n const bytes = await response.Body.transformToByteArray()\n return Buffer.from(bytes)\n}\n\nasync function readFromDisk(filename: string): Promise<Buffer> {\n const filePath = join(process.cwd(), 'media', filename)\n return readFile(filePath)\n}\n\nexport async function readPayloadMediaBuffer(media: PayloadMedia): Promise<Buffer> {\n const filename = media.filename?.trim()\n if (!filename) {\n throw new Error('Media document has no filename')\n }\n const source = isS3Enabled() ? 's3' : 'disk'\n log.debug(`reading media filename=${filename} source=${source}`)\n return source === 's3' ? readFromS3(filename) : readFromDisk(filename)\n}\n\nexport async function readPayloadMediaAsDataUrl(media: PayloadMedia): Promise<string> {\n const buffer = await readPayloadMediaBuffer(media)\n const mimeType = media.mimeType?.trim() || 'image/jpeg'\n return `data:${mimeType};base64,${buffer.toString('base64')}`\n}\n"],"mappings":";;;;;;;;;;AAaA,MAAM,MAAM,aAAa,kBAAkB;AAO3C,IAAI,iBAAkC;AAEtC,SAAS,cAAuB;CAC9B,OAAO,QAAQ,QAAQ,IAAI,aAAa;AAC1C;AAEA,SAAS,cAAwB;CAC/B,IAAI,gBAAgB,OAAO;CAC3B,MAAM,WAAW,QAAQ,IAAI,iBAAiB,KAAK;CACnD,MAAM,eAA+B;EACnC,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;EAC/B,GAAI,QAAQ,IAAI,4BAA4B,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnF;CACA,MAAM,cAAc,QAAQ,IAAI;CAChC,MAAM,kBAAkB,QAAQ,IAAI;CACpC,IAAI,eAAe,iBACjB,aAAa,cAAc;EAAE;EAAa;CAAgB;CAE5D,iBAAiB,IAAI,SAAS,YAAY;CAC1C,OAAO;AACT;AAEA,eAAe,WAAW,UAAmC;CAC3D,MAAM,SAAS,QAAQ,IAAI;CAC3B,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,sDAAsD;CAGxE,MAAM,WAAW,MADF,YACa,CAAC,CAAC,KAAK,IAAI,iBAAiB;EAAE,QAAQ;EAAQ,KAAK;CAAS,CAAC,CAAC;CAC1F,IAAI,CAAC,SAAS,MACZ,MAAM,IAAI,MAAM,6CAA6C,UAAU;CAGzE,MAAM,QAAQ,MAAM,SAAS,KAAK,qBAAqB;CACvD,OAAO,OAAO,KAAK,KAAK;AAC1B;AAEA,eAAe,aAAa,UAAmC;CAC7D,MAAM,WAAW,KAAK,QAAQ,IAAI,GAAG,SAAS,QAAQ;CACtD,OAAO,SAAS,QAAQ;AAC1B;AAEA,eAAsB,uBAAuB,OAAsC;CACjF,MAAM,WAAW,MAAM,UAAU,KAAK;CACtC,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,gCAAgC;CAElD,MAAM,SAAS,YAAY,IAAI,OAAO;CACtC,IAAI,MAAM,0BAA0B,SAAS,UAAU,QAAQ;CAC/D,OAAO,WAAW,OAAO,WAAW,QAAQ,IAAI,aAAa,QAAQ;AACvE;AAEA,eAAsB,0BAA0B,OAAsC;CACpF,MAAM,SAAS,MAAM,uBAAuB,KAAK;CAEjD,OAAO,QADU,MAAM,UAAU,KAAK,KAAK,aACnB,UAAU,OAAO,SAAS,QAAQ;AAC5D"}
@@ -1,2 +1,2 @@
1
- import { a as createMetadataFactory, i as OgImage, n as CreateMetadataFactoryOptions, o as GetSiteUrlOptions, r as CreateMetadataInput, s as getSiteUrl, t as getOgBackgroundDataUrl } from "../index-tTs9h9BS.mjs";
1
+ import { a as createMetadataFactory, i as OgImage, n as CreateMetadataFactoryOptions, o as GetSiteUrlOptions, r as CreateMetadataInput, s as getSiteUrl, t as getOgBackgroundDataUrl } from "../index3.mjs";
2
2
  export { type CreateMetadataFactoryOptions, type CreateMetadataInput, type GetSiteUrlOptions, type OgImage, createMetadataFactory, getOgBackgroundDataUrl, getSiteUrl };
@@ -1,2 +1,2 @@
1
- import { n as createMetadataFactory, r as getSiteUrl, t as getOgBackgroundDataUrl } from "../seo-e5XjgQ7l.mjs";
1
+ import { n as createMetadataFactory, r as getSiteUrl, t as getOgBackgroundDataUrl } from "../seo.mjs";
2
2
  export { createMetadataFactory, getOgBackgroundDataUrl, getSiteUrl };
@@ -1,5 +1,5 @@
1
- import { t as createLogger } from "./logger-BPURnavq.mjs";
2
- import { t as readPayloadMediaAsDataUrl } from "./readMediaBuffer-DWkTbYVn.mjs";
1
+ import { t as createLogger } from "./logger.mjs";
2
+ import { t as readPayloadMediaAsDataUrl } from "./readMediaBuffer.mjs";
3
3
  //#region src/seo/site-url.ts
4
4
  const log$1 = createLogger("siteUrl");
5
5
  /** Resolve the public site origin from env (`NEXT_PUBLIC_SITE_URL` / `VERCEL_URL`). */
@@ -121,4 +121,4 @@ async function getOgBackgroundDataUrl(media) {
121
121
  //#endregion
122
122
  export { createMetadataFactory as n, getSiteUrl as r, getOgBackgroundDataUrl as t };
123
123
 
124
- //# sourceMappingURL=seo-e5XjgQ7l.mjs.map
124
+ //# sourceMappingURL=seo.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo.mjs","names":["log"],"sources":["../src/seo/site-url.ts","../src/seo/metadata.ts","../src/seo/og-background.ts"],"sourcesContent":["import { createLogger } from '../utils/logger/logger.js'\n\nconst log = createLogger('siteUrl')\n\nexport type GetSiteUrlOptions = {\n /** Fallback when no env URL is set. Defaults to `http://localhost:3000`. */\n fallback?: string\n}\n\n/** Resolve the public site origin from env (`NEXT_PUBLIC_SITE_URL` / `VERCEL_URL`). */\nexport function getSiteUrl(options: GetSiteUrlOptions = {}): string {\n const fallback = options.fallback ?? 'http://localhost:3000'\n const fromEnv = process.env.NEXT_PUBLIC_SITE_URL\n if (fromEnv) return fromEnv.replace(/\\/$/, '')\n if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`.replace(/\\/$/, '')\n // A localhost origin in production means canonical/OG URLs will be wrong — surface it loudly.\n if (process.env.NODE_ENV === 'production') {\n log.warn(\n `NEXT_PUBLIC_SITE_URL and VERCEL_URL are unset — falling back to ${fallback}. Canonical and Open Graph URLs will be incorrect.`\n )\n }\n return fallback.replace(/\\/$/, '')\n}\n","import { getSiteUrl } from './site-url.js'\n\nimport type { Metadata } from 'next'\n\nexport type OgImage = {\n url: string\n width?: number\n height?: number\n alt?: string\n}\n\nexport type CreateMetadataInput = {\n title: string\n description?: string\n pathname?: string\n canonicalUrl?: string\n noIndex?: boolean\n noFollow?: boolean\n locale?: string\n images?: OgImage[]\n ogType?: 'website' | 'article'\n article?: {\n publishedTime?: string\n modifiedTime?: string\n expirationTime?: string\n section?: string\n tags?: string[]\n authors?: string[]\n }\n twitterCreator?: string\n /** Per-call overrides (e.g. localized site name). */\n siteName?: string\n defaultDescription?: string\n}\n\nexport type CreateMetadataFactoryOptions = {\n siteName: string\n defaultDescription: string\n locales: readonly string[]\n defaultLocale: string\n /** Maps locale → Open Graph locale tag (e.g. `en` → `en_US`). */\n getOpenGraphLocale: (locale: string) => string\n localePrefix?: 'always' | 'as-needed' | 'never'\n getSiteUrl?: () => string\n}\n\nconst ABSOLUTE_URL_RE = /^https?:\\/\\//i\n\nfunction toAbsolute(value: string, base: string): string {\n if (ABSOLUTE_URL_RE.test(value)) return value\n return new URL(value, base).toString()\n}\n\nexport function createMetadataFactory(options: CreateMetadataFactoryOptions) {\n const localePrefix = options.localePrefix ?? 'as-needed'\n const resolveSiteUrl = options.getSiteUrl ?? (() => getSiteUrl())\n\n function createMetadata(input: CreateMetadataInput): Metadata {\n const siteName = input.siteName ?? options.siteName\n const defaultDescription = input.defaultDescription ?? options.defaultDescription\n const description = input.description?.trim() || defaultDescription\n const pathname = input.pathname ?? '/'\n const base = resolveSiteUrl()\n const canonical = input.canonicalUrl\n ? toAbsolute(input.canonicalUrl, base)\n : new URL(pathname, base).toString()\n\n const locale = input.locale ?? options.defaultLocale\n const ogLocale = options.getOpenGraphLocale(locale)\n\n const languages: Record<string, string> = {}\n for (const l of options.locales) {\n const isDefault = l === options.defaultLocale\n const localizedPath =\n localePrefix === 'as-needed' && isDefault ? pathname : `/${l}${pathname}`\n languages[l] = new URL(localizedPath, base).toString()\n }\n languages['x-default'] = new URL(pathname, base).toString()\n\n const images: OgImage[] | undefined = input.images?.map((img) => ({\n ...img,\n url: toAbsolute(img.url, base),\n }))\n\n const ogType = input.ogType ?? 'website'\n\n const robots =\n input.noIndex || input.noFollow\n ? {\n index: !input.noIndex,\n follow: !input.noFollow,\n }\n : undefined\n\n return {\n title: input.title,\n description,\n alternates: {\n canonical,\n languages,\n },\n openGraph: {\n type: ogType,\n title: input.title,\n description,\n url: canonical,\n siteName,\n locale: ogLocale,\n ...(images ? { images } : {}),\n ...(ogType === 'article' && input.article\n ? {\n publishedTime: input.article.publishedTime,\n modifiedTime: input.article.modifiedTime,\n expirationTime: input.article.expirationTime,\n section: input.article.section,\n tags: input.article.tags,\n authors: input.article.authors,\n }\n : {}),\n },\n twitter: {\n card: 'summary_large_image',\n title: input.title,\n description,\n ...(images ? { images: images.map((i) => i.url) } : {}),\n ...(input.twitterCreator ? { creator: input.twitterCreator } : {}),\n },\n ...(robots ? { robots } : {}),\n }\n }\n\n function createRootMetadata(overrides?: {\n siteName?: string\n defaultDescription?: string\n }): Metadata {\n const base = resolveSiteUrl()\n const siteName = overrides?.siteName ?? options.siteName\n const description = overrides?.defaultDescription ?? options.defaultDescription\n return {\n metadataBase: new URL(base),\n title: {\n default: siteName,\n template: `%s | ${siteName}`,\n },\n description,\n }\n }\n\n return { createMetadata, createRootMetadata }\n}\n","/**\n * Resolves a Payload Media document into a base64 data URL for Satori OG images.\n * Server-only — reads via disk/S3, not the public HTTP media URL.\n */\n\nimport { createLogger } from '../utils/logger/logger.js'\nimport { readPayloadMediaAsDataUrl } from '../cms/payload/readMediaBuffer.js'\n\nimport type { PayloadMedia } from '../cms/payload/readMediaBuffer.js'\n\nconst log = createLogger('ogBackground')\n\nexport async function getOgBackgroundDataUrl(\n media: PayloadMedia | null | undefined\n): Promise<string | undefined> {\n if (!media || !media.filename) return undefined\n try {\n return await readPayloadMediaAsDataUrl({\n filename: media.filename,\n mimeType: media.mimeType,\n })\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n log.warn(`Failed to load OG background for media ${media.filename}: ${reason}`)\n return undefined\n }\n}\n"],"mappings":";;;AAEA,MAAMA,QAAM,aAAa,SAAS;;AAQlC,SAAgB,WAAW,UAA6B,CAAC,GAAW;CAClE,MAAM,WAAW,QAAQ,YAAY;CACrC,MAAM,UAAU,QAAQ,IAAI;CAC5B,IAAI,SAAS,OAAO,QAAQ,QAAQ,OAAO,EAAE;CAC7C,IAAI,QAAQ,IAAI,YAAY,OAAO,WAAW,QAAQ,IAAI,aAAa,QAAQ,OAAO,EAAE;CAExF,IAAI,QAAQ,IAAI,aAAa,cAC3B,MAAI,KACF,mEAAmE,SAAS,mDAC9E;CAEF,OAAO,SAAS,QAAQ,OAAO,EAAE;AACnC;;;ACwBA,MAAM,kBAAkB;AAExB,SAAS,WAAW,OAAe,MAAsB;CACvD,IAAI,gBAAgB,KAAK,KAAK,GAAG,OAAO;CACxC,OAAO,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,SAAS;AACvC;AAEA,SAAgB,sBAAsB,SAAuC;CAC3E,MAAM,eAAe,QAAQ,gBAAgB;CAC7C,MAAM,iBAAiB,QAAQ,qBAAqB,WAAW;CAE/D,SAAS,eAAe,OAAsC;EAC5D,MAAM,WAAW,MAAM,YAAY,QAAQ;EAC3C,MAAM,qBAAqB,MAAM,sBAAsB,QAAQ;EAC/D,MAAM,cAAc,MAAM,aAAa,KAAK,KAAK;EACjD,MAAM,WAAW,MAAM,YAAY;EACnC,MAAM,OAAO,eAAe;EAC5B,MAAM,YAAY,MAAM,eACpB,WAAW,MAAM,cAAc,IAAI,IACnC,IAAI,IAAI,UAAU,IAAI,CAAC,CAAC,SAAS;EAErC,MAAM,SAAS,MAAM,UAAU,QAAQ;EACvC,MAAM,WAAW,QAAQ,mBAAmB,MAAM;EAElD,MAAM,YAAoC,CAAC;EAC3C,KAAK,MAAM,KAAK,QAAQ,SAAS;GAC/B,MAAM,YAAY,MAAM,QAAQ;GAChC,MAAM,gBACJ,iBAAiB,eAAe,YAAY,WAAW,IAAI,IAAI;GACjE,UAAU,KAAK,IAAI,IAAI,eAAe,IAAI,CAAC,CAAC,SAAS;EACvD;EACA,UAAU,eAAe,IAAI,IAAI,UAAU,IAAI,CAAC,CAAC,SAAS;EAE1D,MAAM,SAAgC,MAAM,QAAQ,KAAK,SAAS;GAChE,GAAG;GACH,KAAK,WAAW,IAAI,KAAK,IAAI;EAC/B,EAAE;EAEF,MAAM,SAAS,MAAM,UAAU;EAE/B,MAAM,SACJ,MAAM,WAAW,MAAM,WACnB;GACE,OAAO,CAAC,MAAM;GACd,QAAQ,CAAC,MAAM;EACjB,IACA,KAAA;EAEN,OAAO;GACL,OAAO,MAAM;GACb;GACA,YAAY;IACV;IACA;GACF;GACA,WAAW;IACT,MAAM;IACN,OAAO,MAAM;IACb;IACA,KAAK;IACL;IACA,QAAQ;IACR,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;IAC3B,GAAI,WAAW,aAAa,MAAM,UAC9B;KACE,eAAe,MAAM,QAAQ;KAC7B,cAAc,MAAM,QAAQ;KAC5B,gBAAgB,MAAM,QAAQ;KAC9B,SAAS,MAAM,QAAQ;KACvB,MAAM,MAAM,QAAQ;KACpB,SAAS,MAAM,QAAQ;IACzB,IACA,CAAC;GACP;GACA,SAAS;IACP,MAAM;IACN,OAAO,MAAM;IACb;IACA,GAAI,SAAS,EAAE,QAAQ,OAAO,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IACrD,GAAI,MAAM,iBAAiB,EAAE,SAAS,MAAM,eAAe,IAAI,CAAC;GAClE;GACA,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;EAC7B;CACF;CAEA,SAAS,mBAAmB,WAGf;EACX,MAAM,OAAO,eAAe;EAC5B,MAAM,WAAW,WAAW,YAAY,QAAQ;EAChD,MAAM,cAAc,WAAW,sBAAsB,QAAQ;EAC7D,OAAO;GACL,cAAc,IAAI,IAAI,IAAI;GAC1B,OAAO;IACL,SAAS;IACT,UAAU,QAAQ;GACpB;GACA;EACF;CACF;CAEA,OAAO;EAAE;EAAgB;CAAmB;AAC9C;;;;;;;AC3IA,MAAM,MAAM,aAAa,cAAc;AAEvC,eAAsB,uBACpB,OAC6B;CAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,UAAU,OAAO,KAAA;CACtC,IAAI;EACF,OAAO,MAAM,0BAA0B;GACrC,UAAU,MAAM;GAChB,UAAU,MAAM;EAClB,CAAC;CACH,SAAS,OAAO;EACd,MAAM,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACpE,IAAI,KAAK,0CAA0C,MAAM,SAAS,IAAI,QAAQ;EAC9E;CACF;AACF"}
@@ -0,0 +1,6 @@
1
+ //#region src/ui/a11y/focus.d.ts
2
+ /** Shared focus-ring utility for interactive controls. */
3
+ declare const focusRingClassName = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background";
4
+ //#endregion
5
+ export { focusRingClassName };
6
+ //# sourceMappingURL=focus.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.d.mts","names":[],"sources":["../../../src/ui/a11y/focus.ts"],"mappings":";;cACa"}
@@ -0,0 +1,7 @@
1
+ //#region src/ui/a11y/focus.ts
2
+ /** Shared focus-ring utility for interactive controls. */
3
+ const focusRingClassName = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background";
4
+ //#endregion
5
+ export { focusRingClassName };
6
+
7
+ //# sourceMappingURL=focus.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.mjs","names":[],"sources":["../../../src/ui/a11y/focus.ts"],"sourcesContent":["/** Shared focus-ring utility for interactive controls. */\nexport const focusRingClassName =\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background'\n"],"mappings":";;AACA,MAAa,qBACX"}
@@ -0,0 +1,4 @@
1
+ import { focusRingClassName } from "./focus.mjs";
2
+ import { VisuallyHidden, VisuallyHiddenProps } from "../components/VisuallyHidden/VisuallyHidden.mjs";
3
+ import "../components/VisuallyHidden/index.mjs";
4
+ export { VisuallyHidden, type VisuallyHiddenProps, focusRingClassName };
@@ -0,0 +1,4 @@
1
+ import { focusRingClassName } from "./focus.mjs";
2
+ import { VisuallyHidden } from "../components/VisuallyHidden/VisuallyHidden.mjs";
3
+ import "../components/VisuallyHidden/index.mjs";
4
+ export { VisuallyHidden, focusRingClassName };
@@ -0,0 +1,3 @@
1
+ import { Carousel, CarouselApi, CarouselContainer, CarouselControls, CarouselControlsProps, CarouselPagination, CarouselPaginationProps, CarouselProps, CarouselSlide, CarouselViewport, useCarousel } from "../components/Carousel/Carousel.mjs";
2
+ import "../components/Carousel/index.mjs";
3
+ export { Carousel, type CarouselApi, CarouselContainer, CarouselControls, type CarouselControlsProps, CarouselPagination, type CarouselPaginationProps, type CarouselProps, CarouselSlide, CarouselViewport, useCarousel };
@@ -0,0 +1,3 @@
1
+ import { Carousel, CarouselContainer, CarouselControls, CarouselPagination, CarouselSlide, CarouselViewport, useCarousel } from "../components/Carousel/Carousel.mjs";
2
+ import "../components/Carousel/index.mjs";
3
+ export { Carousel, CarouselContainer, CarouselControls, CarouselPagination, CarouselSlide, CarouselViewport, useCarousel };
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from "react";
2
+ //#region src/ui/components/Accordion/Accordion.d.ts
3
+ type AccordionItem = {
4
+ id: string;
5
+ title: string;
6
+ defaultOpen?: boolean;
7
+ content: ReactNode;
8
+ };
9
+ type AccordionProps = {
10
+ items: AccordionItem[];
11
+ className?: string;
12
+ };
13
+ declare function Accordion({ items, className }: AccordionProps): import("react").JSX.Element;
14
+ //#endregion
15
+ export { Accordion, AccordionItem, AccordionProps };
16
+ //# sourceMappingURL=Accordion.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.mts","names":[],"sources":["../../../../src/ui/components/Accordion/Accordion.tsx"],"mappings":";;KAMY;EACV;EACA;EACA;EACA,SAAS;;KAGC;EACV,OAAO;EACP;;iBA+CO,YAAY,OAAO,aAAa,iCAAc,IAAA"}
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { cn } from "../../utils/cn.mjs";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { useState } from "react";
5
+ //#region src/ui/components/Accordion/Accordion.tsx
6
+ function ChevronIcon({ className }) {
7
+ return /* @__PURE__ */ jsx("svg", {
8
+ "aria-hidden": "true",
9
+ viewBox: "0 0 24 24",
10
+ width: "24",
11
+ height: "24",
12
+ fill: "none",
13
+ className,
14
+ children: /* @__PURE__ */ jsx("path", {
15
+ d: "M6 9l6 6 6-6",
16
+ stroke: "currentColor",
17
+ strokeWidth: "1.75",
18
+ strokeLinecap: "round",
19
+ strokeLinejoin: "round"
20
+ })
21
+ });
22
+ }
23
+ function AccordionRow({ item }) {
24
+ const [open, setOpen] = useState(Boolean(item.defaultOpen));
25
+ return /* @__PURE__ */ jsxs("div", {
26
+ className: "border-b border-border",
27
+ children: [/* @__PURE__ */ jsxs("button", {
28
+ type: "button",
29
+ "aria-expanded": open,
30
+ onClick: () => setOpen((v) => !v),
31
+ className: "flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left",
32
+ children: [/* @__PURE__ */ jsx("h2", {
33
+ className: "text-xl font-bold text-foreground",
34
+ children: item.title
35
+ }), /* @__PURE__ */ jsx(ChevronIcon, { className: cn("shrink-0 text-foreground transition-transform", open && "rotate-180") })]
36
+ }), /* @__PURE__ */ jsx("div", {
37
+ className: cn("pb-6 text-base text-secondary", open ? "block" : "hidden"),
38
+ children: item.content
39
+ })]
40
+ });
41
+ }
42
+ function Accordion({ items, className }) {
43
+ return /* @__PURE__ */ jsx("div", {
44
+ className: cn("flex w-full flex-col", className),
45
+ children: items.map((item) => /* @__PURE__ */ jsx(AccordionRow, { item }, item.id))
46
+ });
47
+ }
48
+ //#endregion
49
+ export { Accordion };
50
+
51
+ //# sourceMappingURL=Accordion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.mjs","names":[],"sources":["../../../../src/ui/components/Accordion/Accordion.tsx"],"sourcesContent":["'use client'\n\nimport { useState, type ReactNode } from 'react'\n\nimport { cn } from '../../utils/cn.js'\n\nexport type AccordionItem = {\n id: string\n title: string\n defaultOpen?: boolean\n content: ReactNode\n}\n\nexport type AccordionProps = {\n items: AccordionItem[]\n className?: string\n}\n\nfunction ChevronIcon({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n className={className}\n >\n <path\n d=\"M6 9l6 6 6-6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nfunction AccordionRow({ item }: { item: AccordionItem }) {\n const [open, setOpen] = useState(Boolean(item.defaultOpen))\n\n return (\n <div className=\"border-b border-border\">\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => setOpen((v) => !v)}\n className=\"flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left\"\n >\n <h2 className=\"text-xl font-bold text-foreground\">{item.title}</h2>\n <ChevronIcon\n className={cn('shrink-0 text-foreground transition-transform', open && 'rotate-180')}\n />\n </button>\n <div className={cn('pb-6 text-base text-secondary', open ? 'block' : 'hidden')}>\n {item.content}\n </div>\n </div>\n )\n}\n\nfunction Accordion({ items, className }: AccordionProps) {\n return (\n <div className={cn('flex w-full flex-col', className)}>\n {items.map((item) => (\n <AccordionRow key={item.id} item={item} />\n ))}\n </div>\n )\n}\n\nexport { Accordion }\n"],"mappings":";;;;;AAkBA,SAAS,YAAY,EAAE,aAAqC;CAC1D,OACE,oBAAC,OAAD;EACE,eAAY;EACZ,SAAQ;EACR,OAAM;EACN,QAAO;EACP,MAAK;EACM;EAEX,UAAA,oBAAC,QAAD;GACE,GAAE;GACF,QAAO;GACP,aAAY;GACZ,eAAc;GACd,gBAAe;EAChB,CAAA;CACE,CAAA;AAET;AAEA,SAAS,aAAa,EAAE,QAAiC;CACvD,MAAM,CAAC,MAAM,WAAW,SAAS,QAAQ,KAAK,WAAW,CAAC;CAE1D,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,qBAAC,UAAD;GACE,MAAK;GACL,iBAAe;GACf,eAAe,SAAS,MAAM,CAAC,CAAC;GAChC,WAAU;GAJZ,UAAA,CAME,oBAAC,MAAD;IAAI,WAAU;IAAqC,UAAA,KAAK;GAAU,CAAA,GAClE,oBAAC,aAAD,EACE,WAAW,GAAG,iDAAiD,QAAQ,YAAY,EACpF,CAAA,CACK;EACR,CAAA,GAAA,oBAAC,OAAD;GAAK,WAAW,GAAG,iCAAiC,OAAO,UAAU,QAAQ;GAC1E,UAAA,KAAK;EACH,CAAA,CACF;;AAET;AAEA,SAAS,UAAU,EAAE,OAAO,aAA6B;CACvD,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,wBAAwB,SAAS;EACjD,UAAA,MAAM,KAAK,SACV,oBAAC,cAAD,EAAkC,KAAO,GAAtB,KAAK,EAAiB,CAC1C;CACE,CAAA;AAET"}
@@ -0,0 +1,2 @@
1
+ import { Accordion, AccordionItem, AccordionProps } from "./Accordion.mjs";
2
+ export { Accordion, type AccordionItem, type AccordionProps };
@@ -0,0 +1,2 @@
1
+ import { Accordion } from "./Accordion.mjs";
2
+ export { Accordion };
@@ -0,0 +1,9 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/ui/components/Avatar/Avatar.d.ts
3
+ type AvatarProps = ComponentProps<'div'> & {
4
+ initials?: string;
5
+ };
6
+ declare function Avatar({ className, initials, children, ...props }: AvatarProps): import("react").JSX.Element;
7
+ //#endregion
8
+ export { Avatar, AvatarProps };
9
+ //# sourceMappingURL=Avatar.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.mts","names":[],"sources":["../../../../src/ui/components/Avatar/Avatar.tsx"],"mappings":";;KAIY,cAAc;EACxB;;iBAGO,SAAS,WAAW,UAAU,aAAa,SAAS,8BAAW,IAAA"}
@@ -0,0 +1,15 @@
1
+ import { cn } from "../../utils/cn.mjs";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/ui/components/Avatar/Avatar.tsx
4
+ function Avatar({ className, initials, children, ...props }) {
5
+ return /* @__PURE__ */ jsx("div", {
6
+ "data-slot": "avatar",
7
+ className: cn("inline-flex size-9 shrink-0 items-center justify-center rounded-full border border-foreground/10 bg-surface text-btn font-semibold text-secondary", className),
8
+ ...props,
9
+ children: children ?? initials
10
+ });
11
+ }
12
+ //#endregion
13
+ export { Avatar };
14
+
15
+ //# sourceMappingURL=Avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.mjs","names":[],"sources":["../../../../src/ui/components/Avatar/Avatar.tsx"],"sourcesContent":["import { cn } from '../../utils/cn.js'\n\nimport type { ComponentProps } from 'react'\n\nexport type AvatarProps = ComponentProps<'div'> & {\n initials?: string\n}\n\nfunction Avatar({ className, initials, children, ...props }: AvatarProps) {\n return (\n <div\n data-slot=\"avatar\"\n className={cn(\n 'inline-flex size-9 shrink-0 items-center justify-center rounded-full border border-foreground/10 bg-surface text-btn font-semibold text-secondary',\n className\n )}\n {...props}\n >\n {children ?? initials}\n </div>\n )\n}\n\nexport { Avatar }\n"],"mappings":";;;AAQA,SAAS,OAAO,EAAE,WAAW,UAAU,UAAU,GAAG,SAAsB;CACxE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,qJACA,SACF;EACA,GAAI;EAEH,UAAA,YAAY;CACV,CAAA;AAET"}
@@ -0,0 +1,2 @@
1
+ import { Avatar, AvatarProps } from "./Avatar.mjs";
2
+ export { Avatar, type AvatarProps };
@@ -0,0 +1,2 @@
1
+ import { Avatar } from "./Avatar.mjs";
2
+ export { Avatar };
@@ -0,0 +1,14 @@
1
+ import { HTMLAttributes } from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ //#region src/ui/components/Badge/Badge.d.ts
4
+ declare const badgeVariants: (props?: ({
5
+ variant?: "active" | "inactive" | "status" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ type BadgeProps = HTMLAttributes<HTMLSpanElement> & VariantProps<typeof badgeVariants> & {
8
+ asChild?: boolean;
9
+ dot?: boolean;
10
+ };
11
+ declare function Badge({ className, variant, asChild, dot, children, ...props }: BadgeProps): import("react").JSX.Element;
12
+ //#endregion
13
+ export { Badge, BadgeProps, badgeVariants };
14
+ //# sourceMappingURL=Badge.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.mts","names":[],"sources":["../../../../src/ui/components/Badge/Badge.tsx"],"mappings":";;;cASM,gBAAa;;6CAgBlB;KAEW,aAAa,eAAe,mBACtC,oBAAoB;EAClB;EACA;;iBAGK,QACP,WACA,SACA,SACA,KACA,aACG,SACF,6BAAU,IAAA"}