@roottale/cms-renderer-next 0.48.0 → 0.51.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 (36) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/blog-filter-BKCGM0qd.d.ts +29 -0
  3. package/dist/{chunk-6MFHA555.js → chunk-27RT6B3O.js} +1 -1
  4. package/dist/chunk-27RT6B3O.js.map +1 -0
  5. package/dist/chunk-2QU4JU46.js +3927 -0
  6. package/dist/chunk-2QU4JU46.js.map +1 -0
  7. package/dist/chunk-4RQ3SEDL.js +106 -0
  8. package/dist/chunk-4RQ3SEDL.js.map +1 -0
  9. package/dist/{chunk-OMXEU4LS.js → chunk-QYNEOFL7.js} +140 -136
  10. package/dist/chunk-QYNEOFL7.js.map +1 -0
  11. package/dist/concerns-client.d.ts +1 -1
  12. package/dist/expertise-client.d.ts +1 -1
  13. package/dist/expertise-client.js +1 -1
  14. package/dist/hero-carousel-client.js +1 -1
  15. package/dist/routes.d.ts +334 -20
  16. package/dist/routes.js +249 -68
  17. package/dist/routes.js.map +1 -1
  18. package/dist/seo-asset-hosts.d.ts +36 -0
  19. package/dist/seo-asset-hosts.js +391 -0
  20. package/dist/seo-asset-hosts.js.map +1 -0
  21. package/dist/server.d.ts +23 -241
  22. package/dist/server.js +6 -6
  23. package/dist/{site-config-Dicv57oY.d.ts → site-config-BvUyDx_f.d.ts} +411 -411
  24. package/dist/spaces-client.d.ts +1 -1
  25. package/dist/team-expanding-stage-client.d.ts +1 -1
  26. package/dist/team-expanding-stage-client.js +1 -1
  27. package/dist/templates.d.ts +64 -25
  28. package/dist/templates.js +13 -6
  29. package/dist/templates.js.map +1 -1
  30. package/package.json +7 -2
  31. package/dist/chunk-6MFHA555.js.map +0 -1
  32. package/dist/chunk-FZK3EXYZ.js +0 -103
  33. package/dist/chunk-FZK3EXYZ.js.map +0 -1
  34. package/dist/chunk-LIBSVC4M.js +0 -3642
  35. package/dist/chunk-LIBSVC4M.js.map +0 -1
  36. package/dist/chunk-OMXEU4LS.js.map +0 -1
package/dist/server.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { ReactElement, ReactNode } from 'react';
2
2
  import { CmsPostContent, RootTaleTheme, CmsPostType } from '@roottale/cms-client/server';
3
3
  export { RootTaleTheme } from '@roottale/cms-client/server';
4
- import { Block, BindingResolver, RouteCollection } from '@roottale/cms-core';
5
4
  export { R as RootTaleCssVars, t as themeToCssVars } from './theme-css-vars-CD3jcEkp.js';
5
+ import { Block, BindingResolver, RouteCollection } from '@roottale/cms-core';
6
+ export { a as BlogCategory, B as BlogCategoryWithCount, c as collectCategories, b as collectCategoriesWithCounts, d as defaultCategoryHref, f as filterPostsByCategory } from './blog-filter-BKCGM0qd.js';
6
7
  import '@roottale/ui-react/theme';
7
8
 
8
9
  /**
@@ -189,319 +190,100 @@ declare function renderBoundBlocks(blocks: readonly Block[], opts?: {
189
190
  resolver?: BindingResolver;
190
191
  }): ReactElement[];
191
192
 
192
- /**
193
- * `RootTaleBlogList` 카테고리 필터 — 순수 헬퍼(서버 필터, client JS 불요).
194
- *
195
- * SSR-only 정책 유지: 필터는 `?category=<slug>` URL 파라미터로 동작하고(칩 =
196
- * 서버 렌더 `<a>` 링크), consumer 가 searchParams 의 category 를 `activeCategory`
197
- * 로 주입한다. hydration 없이 SEO 친화 + 공유 가능한 URL.
198
- */
199
-
200
- interface BlogCategory {
201
- name: string;
202
- slug: string;
203
- }
204
- interface BlogCategoryWithCount extends BlogCategory {
205
- count: number;
206
- }
207
- /**
208
- * 글 목록에 등장하는 카테고리를 slug 기준 unique 로 수집. 서버가 보내는 정렬
209
- * (category → name asc)을 보존하기 위해 처음 등장 순서를 유지한다.
210
- */
211
- declare function collectCategories(posts: CmsPostContent[]): BlogCategory[];
212
- declare function collectCategoriesWithCounts(posts: CmsPostContent[]): BlogCategoryWithCount[];
213
- /** activeSlug 가 비면 전체 반환. 아니면 그 카테고리를 가진 글만. */
214
- declare function filterPostsByCategory(posts: CmsPostContent[], activeSlug: string | null | undefined): CmsPostContent[];
215
- /** 기본 카테고리 링크: 전체 → `/blog`, 특정 → `/blog/categories/<slug>`. */
216
- declare function defaultCategoryHref(slug: string | null): string;
217
-
218
- /**
219
- * `@roottale/cms-renderer-next/server` — RootTale CMS public-render React Server Components.
220
- *
221
- * Drop into any RSC-capable framework (Next.js App Router, Astro server islands,
222
- * React Router server). Single-line import, SSR-only, no `'use client'` boundary.
223
- *
224
- * ```tsx
225
- * import { RootTaleBlogList } from "@roottale/cms-renderer-next/server";
226
- *
227
- * export default function BlogPage() {
228
- * return <RootTaleBlogList apiKey={process.env.ROOTTALE_API_KEY!} />;
229
- * }
230
- * ```
231
- *
232
- * Customer site MUST keep `apiKey` server-side. Browser bundle ships zero
233
- * RootTale credentials (ADR-0023 §5.1 #15).
234
- *
235
- * Design tokens auto-apply via the CSS import below. Customers can override
236
- * any class with their own CSS or Tailwind utilities — scoped selectors use
237
- * `:where()` to keep specificity at zero (ADR-0023 §5.1 #10).
238
- */
239
-
240
- /**
241
- * RootTaleBlogList/Post 가 받는 theme prop 의 평가 결과:
242
- * - `RootTaleTheme` 객체 → 그대로 CSS 변수로 주입
243
- * - `null` → override 없음 (cms-public.css fallback 그대로)
244
- * - `undefined` → API key 로 자동 fetch (mysite.roottale.com 의 admin /design)
245
- */
246
193
  type RootTaleThemeInput = RootTaleTheme | null | undefined;
247
- /**
248
- * RootTale 디자인 토큰을 CSS 변수로 자식 트리에 주입한다. 외부 사이트가
249
- * 여러 RootTale 컴포넌트를 한 레이아웃에 묶을 때, 컴포넌트마다 같은 토큰을
250
- * fetch 하지 않도록 부모에서 한 번만 fetch 해서 전달하는 용도.
251
- *
252
- * ```tsx
253
- * const theme = await fetchTheme({ apiKey });
254
- * <RootTaleThemeProvider theme={theme}>
255
- * <RootTaleBlogList apiKey={apiKey} theme={null} />
256
- * <RootTaleBlogPost apiKey={apiKey} slugOrId="..." theme={null} />
257
- * </RootTaleThemeProvider>
258
- * ```
259
- *
260
- * 자식 RootTale 컴포넌트가 `theme={null}` 을 받으면 자체 주입을 건너뛰고
261
- * 부모의 변수를 그대로 상속. 자식이 `theme` 을 지정하면 자식 변수가 우선.
262
- */
263
194
  declare function RootTaleThemeProvider(props: {
264
- theme: RootTaleTheme | null | undefined;
265
- children: ReactNode;
195
+ readonly theme: RootTaleTheme | null | undefined;
196
+ readonly children: ReactNode;
266
197
  }): ReactElement;
198
+
267
199
  type RootTaleBlogListProps = {
268
200
  apiKey: string;
269
201
  baseUrl?: string;
270
202
  limit?: number;
271
- /** Filter by post type (`post` or `page`). Default = `post` only (blog list 의도). */
203
+ /** Filter by post type (`post` or `page`). Default = `post` only. */
272
204
  type?: CmsPostType;
273
- /**
274
- * Build a customer-side URL for a single post. Defaults to `/blog/${slug}`,
275
- * 또는 `collections` 를 주면 글의 섹션 basePath 기준(`/notice/${slug}` 등).
276
- */
277
205
  postHref?: (post: CmsPostContent) => string;
278
- /** Rendered when the tenant has no published posts yet. */
279
206
  emptyMessage?: string;
280
- /**
281
- * 단일 섹션(stream)으로 스코프 (ADR-0060). `collections` 와 함께 줘야 동작한다.
282
- * 예: `collection="notice"` → 공지 섹션 글만 렌더. **미지정 = 전체** 글(레거시
283
- * 단일 블로그). 이 prop 없이 다중 스트림 사이트에서 쓰면 공지·블로그가 한 목록에
284
- * 섞여 나오므로(`/blog` 에 공지가 새어 들어옴), 섹션을 나눈 사이트는 각 목록
285
- * 페이지에서 반드시 `collection` 으로 스코프해야 한다.
286
- *
287
- * **서버 필터** (`blog-list-collection-scope.md` §2②) — `collections` 와 함께
288
- * 주면 api-core `collection_key=` 파라미터로 fetch 단계에서부터 그 섹션 글만
289
- * 가져온다(limit 이 스트림 밖 글에 낭비되지 않음). `postsForCollection` 클라이언트
290
- * 필터는 방어선으로 남아 있다 — 판정 시맨틱은 두 층 모두 `resolvePostCollection`
291
- * 동일 정의.
292
- */
293
207
  collection?: string;
294
- /**
295
- * 섹션 정의 (ADR-0060). `collection` 스코프와 collection-aware `postHref`(글을
296
- * 소속 섹션 basePath 로 라우팅) 해석에 쓰인다. admin 에서 동적으로 받으려면
297
- * `fetchCollections()` 결과를 넘긴다(`collections.md` 참고).
298
- */
299
208
  collections?: readonly RouteCollection[];
300
209
  /**
301
- * **네거티브** 스코프 — `collections` 와 함께 주면 어느 스트림에도 안 속한
302
- * ("미소속") 글만 렌더한다(`postsNotInAnyCollection`, `blog-list-collection-scope.md`
303
- * §2①). `collection`(포지티브) 과 배타적이며 **동시 지정은 throw**. `collections`
304
- * 없이 `excludeCollections` 만 주는 것도 **throw**(조용한 no-op 금지, fail-closed).
305
- *
306
- * **적용 조건 한정** — `/blog` 가 *선언 컬렉션이 아닌*(미소속 글이 `/blog` 를 받는)
307
- * 사이트에서만 쓴다. **`blog` 자체가 선언 컬렉션인 사이트(예: kjmtax — 글의
308
- * `collectionKey === "blog"`) 는 반대로 포지티브 `collection="blog"` 가 정경로다.**
309
- * 그런 사이트에 `excludeCollections` 를 적용하면 블로그 글까지 전부 "소속 글"로
310
- * 걸려 제외되므로 목록이 비게 된다 — 동시 지정 throw 로는 이 오적용을 못 잡는다.
210
+ * `collection`과 배타적이다. `collections` 없이 지정해도 예외를 던진다.
311
211
  */
312
212
  excludeCollections?: boolean;
313
- /**
314
- * 카테고리 필터 칩을 목록 위에 렌더. SSR-only — 칩은 `<a>` 링크이고
315
- * `?category=<slug>` URL 파라미터로 동작한다(client JS 불요). consumer 는
316
- * searchParams 의 category 를 `activeCategory` 로 주입.
317
- */
318
213
  showCategoryFilter?: boolean;
319
- /** 현재 선택 카테고리 slug. 미지정/빈 값 = 전체. searchParams 에서 주입. */
320
214
  activeCategory?: string;
321
- /**
322
- * 카테고리 칩 링크 URL 빌더. `null` = "전체" 칩. 기본 `defaultCategoryHref`
323
- * (전체 → `/blog`, 특정 → `/blog/categories/<slug>` — 사이트에 해당 라우트
324
- * 필요, starter `blog/categories/[slug]` 참조). 쿼리 필터(`?category=<slug>`)
325
- * 방식을 쓰려면 override.
326
- */
327
215
  categoryHref?: (slug: string | null) => string;
328
- /** "전체" 칩 라벨. 기본 "전체". */
329
216
  allCategoriesLabel?: string;
330
- /**
331
- * 작가 slug 로 글을 필터 — 작가 아카이브(/blog/author/{slug}) 페이지용. 지정 시
332
- * 그 작가의 발행 글(post)만 fetch 한다. `fetchAuthors` 로 작가 메타(이름·소개)를
333
- * 따로 가져와 페이지 헤더에 쓴다.
334
- */
335
217
  author?: string;
336
- /**
337
- * RootTale 디자인 토큰. 생략 시 admin /design 에서 저장한 값을 자동 fetch.
338
- * `null` 을 명시하면 자동 fetch 도 건너뛰고 CSS fallback 사용 (부모
339
- * `<RootTaleThemeProvider>` 가 변수를 이미 설정한 경우 유용).
340
- */
341
218
  theme?: RootTaleThemeInput;
342
- /**
343
- * ADR-0052 A안 (W4-6 PR C1) — 언어판 필터(`fetchPosts` 의 `locale` 그대로 전달).
344
- * 미지정 시 서버가 사이트 기본 locale 반환(하위호환). cms-i18n 기본 문자열
345
- * (`emptyMessage`/`allCategoriesLabel` 미지정 시)의 locale 해석에도 쓰인다.
346
- */
347
219
  locale?: string;
348
220
  };
349
221
  declare function RootTaleBlogList(props: RootTaleBlogListProps): Promise<ReactElement>;
222
+
350
223
  type RootTaleBlogCategoriesProps = {
351
224
  apiKey: string;
352
225
  baseUrl?: string;
353
226
  limit?: number;
354
- /** Build a customer-side URL for a category. Defaults to `/blog/categories/<slug>`. */
355
227
  categoryHref?: (slug: string) => string;
356
- /** Rendered when no categories are attached to published posts yet. */
357
228
  emptyMessage?: string;
358
- /**
359
- * 단일 섹션으로 스코프 (ADR-0060). `collections` 와 함께 줘야 동작. 그 섹션의
360
- * `categories`(주제 allowlist) 안에서, 그 섹션에 귀속된 글의 카테고리만 집계한다.
361
- * 미지정 = 전체 글의 카테고리.
362
- */
363
229
  collection?: string;
364
- /** 섹션 정의 (ADR-0060). `collection` 스코프에 필요. */
365
230
  collections?: readonly RouteCollection[];
366
- /** See `RootTaleBlogListProps['theme']`. */
367
- theme?: RootTaleThemeInput;
368
- /** See `RootTaleBlogListProps['locale']`. */
231
+ theme?: RootTaleTheme | null | undefined;
369
232
  locale?: string;
370
233
  };
371
234
  declare function RootTaleBlogCategories(props: RootTaleBlogCategoriesProps): Promise<ReactElement>;
235
+
372
236
  type RootTaleBlogPostProps = {
373
237
  apiKey: string;
374
238
  slugOrId: string;
375
239
  baseUrl?: string;
376
- /** Rendered when the slug is not found or not published. */
377
240
  notFoundElement?: ReactElement;
378
- /**
379
- * 글 제목 `<h1>` 표시 여부. 페이지가 제목을 직접 출력할 때는 false.
380
- * 요약·발행일·작성자 등 나머지 헤더 정보는 그대로 유지한다.
381
- */
382
241
  showTitle?: boolean;
383
- /**
384
- * When true, prepends an auto-derived `<RootTaleTableOfContents>` before
385
- * the article body (H2-H4 headings only). Default: false — keep markup
386
- * stable for customers who already control their own layout.
387
- */
388
242
  showTableOfContents?: boolean;
389
- /** Title shown above the TOC (only when `showTableOfContents`). */
390
243
  tableOfContentsTitle?: string;
391
- /**
392
- * 글 하단에 같은 카테고리 최근 글을 N개 노출 (0 = off, 기본 0 — 기존 마크업 보존).
393
- * 현재 글에 카테고리가 없거나 후보가 없으면 렌더되지 않는다.
394
- */
395
244
  relatedPostsCount?: number;
396
- /** 관련 글 섹션 제목. 기본 "관련 글". */
397
245
  relatedPostsTitle?: string;
398
- /** 관련 글 링크 빌더 — 미지정 시 collections 라우팅 또는 `/blog/{slug}`. */
399
246
  postHref?: (post: CmsPostContent) => string;
400
- /** 다중 스트림 라우팅(ADR-0060) — 관련 글 링크 해석에 사용. */
401
247
  collections?: readonly RouteCollection[];
402
- /**
403
- * W5-2 — 양식(필드 그룹) 스칼라 값을 연관 박스 아래 정보 패널로 렌더.
404
- * 라벨·타입은 서버 동봉 `fieldsMeta` 를 사용 — 렌더러는 vertical 지식 없음.
405
- * relationship 계열은 연관 박스가 담당하므로 제외. 표시할 값이 하나도 없으면
406
- * 패널 자체 미렌더(빈 껍데기 금지). 기본 false — 기존 소비자 마크업 불변.
407
- */
408
248
  showFieldFacts?: boolean;
409
- /** See `RootTaleBlogListProps['theme']`. */
410
249
  theme?: RootTaleThemeInput;
411
- /** See `RootTaleBlogListProps['locale']`. `fetchPost`/관련 글 fetch 양쪽에 적용. */
412
250
  locale?: string;
413
- /**
414
- * 작가 페이지 링크 빌더 — `post.authorSlug` 가 있을 때 헤더 메타·저자 카드의
415
- * 작성자 이름을 `<a>` 로 감싸는 데 사용. 기본 `/blog/author/{slug}`.
416
- */
417
251
  authorHref?: (slug: string) => string;
418
- /**
419
- * 시각 브레드크럼 + `BreadcrumbList` JSON-LD (avcd 구조). 기본 off — 기존
420
- * 마크업 보존 관례(다른 opt-in prop 과 동일). `siteUrl` 이 있으면 JSON-LD 도
421
- * 함께 emit, 없으면 시각 브레드크럼만 렌더.
422
- */
423
252
  breadcrumb?: BlogPostBreadcrumbOptions;
424
253
  };
425
- /** `RootTaleBlogPostProps['breadcrumb']` — 상세는 필드별 JSDoc 참조. */
426
254
  interface BlogPostBreadcrumbOptions {
427
- /** JSON-LD 절대 URL 조립용. 없으면 시각 브레드크럼만(JSON-LD 미emit). */
428
255
  siteUrl?: string;
429
- /** 기본 "홈". */
430
256
  homeLabel?: string;
431
- /** 기본 "/". */
432
257
  homeHref?: string;
433
- /** 기본 "블로그". */
434
258
  listLabel?: string;
435
- /**
436
- * 기본 "/blog". `collections` 가 있으면 글의 소속 섹션 basePath 로 자동 해석을
437
- * 시도(공지→/notice 등) — `RootTaleBlogPostProps['collections']` 필요.
438
- */
439
259
  listHref?: string;
440
- /**
441
- * 카테고리 세그먼트 포함 여부. 기본 true — 글의 첫 category term 을 쓴다.
442
- * 카테고리가 없으면 있어도 자동 생략.
443
- */
444
260
  showCategory?: boolean;
445
- /** 카테고리 링크 빌더. 기본 `defaultCategoryHref`(= `/blog/categories/{slug}`). */
446
261
  categoryHref?: (slug: string) => string;
447
262
  }
263
+
448
264
  declare function RootTaleBlogPost(props: RootTaleBlogPostProps): Promise<ReactElement>;
265
+
449
266
  declare function RootTaleFaqJsonLd({ doc, }: {
450
- doc: unknown;
267
+ readonly doc: unknown;
451
268
  }): ReactElement | null;
269
+
452
270
  type RootTalePageProps = {
453
271
  apiKey: string;
454
- /** Page slug (kebab-case) or UUIDv7 id. */
455
272
  slugOrId: string;
456
273
  baseUrl?: string;
457
- /** Rendered when the slug is not found or not published. */
458
274
  notFoundElement?: ReactElement;
459
- /**
460
- * Render the page title as `<h1>`. Default true — set false when the
461
- * customer layout already owns the heading.
462
- */
463
275
  showTitle?: boolean;
464
- /** See `RootTaleBlogListProps['theme']`. */
465
276
  theme?: RootTaleThemeInput;
466
- /** See `RootTaleBlogListProps['locale']`. */
467
277
  locale?: string;
468
278
  };
469
- /**
470
- * 고정 페이지(posts type='page') 렌더러 — RootTaleBlogPost 의 경량판.
471
- * 날짜·작성자·author card·blog settings 등 블로그 chrome 없이
472
- * 제목 + 본문만 그린다. 회사 소개·서비스·이용약관 류의 페이지 용도.
473
- *
474
- * ```tsx
475
- * // app/[slug]/page.tsx
476
- * export default async function CmsPage({ params }) {
477
- * const { slug } = await params;
478
- * return <RootTalePage apiKey={process.env.ROOTTALE_API_KEY!} slugOrId={slug} />;
479
- * }
480
- * ```
481
- */
482
279
  declare function RootTalePage(props: RootTalePageProps): Promise<ReactElement>;
483
- /**
484
- * Minimal Tiptap doc renderer. Walks the Tiptap doc tree and emits semantic
485
- * HTML. This is intentionally tiny — richer extensions (image asset URL
486
- * resolution, TableOfContents, FloatingCta) belong in followup §5.7 #5.
487
- *
488
- * Browser-side sanitization is unnecessary here because output is rendered
489
- * server-side from data the customer-trusted API returned. If the customer
490
- * site federates with untrusted authors later, layer a sanitizer in front
491
- * of this component.
492
- */
493
- declare function RenderTiptap({ doc, fields, apiKey, baseUrl, }: {
494
- doc: Record<string, unknown>;
495
- /**
496
- * ADR-0041 D3 — 공개 API `post.fields` (포맷된 커스텀 필드 값). 전달 시
497
- * 블록 바인딩(`roottale/field`)을 필드 값으로 치환 — 값 없으면 본문이
498
- * fallback 으로 그대로 렌더. astro `renderTiptapDoc(doc, { fields })` 동등.
499
- */
500
- fields?: Record<string, unknown> | null;
501
- /** Enables cms-bound section nodes (`blog-list`, `lead-form`, `contact`). */
502
- apiKey?: string;
503
- /** Optional RootTale API base URL for cms-bound section fetches. */
504
- baseUrl?: string;
505
- }): ReactElement;
506
280
 
507
- export { type BlogCategory, type BlogCategoryWithCount, type BlogPostBreadcrumbOptions, type CtaButton, type CtaButtonType, type FloatingCtaPosition, type LeadFormVertical, RenderTiptap, RootTaleBlogCategories, type RootTaleBlogCategoriesProps, RootTaleBlogList, type RootTaleBlogListProps, RootTaleBlogPost, type RootTaleBlogPostProps, RootTaleFaqJsonLd, RootTaleFloatingCta, type RootTaleFloatingCtaProps, RootTaleLeadForm, type RootTaleLeadFormProps, RootTalePage, type RootTalePageProps, RootTalePostCard, type RootTalePostCardProps, RootTaleTableOfContents, type RootTaleTableOfContentsProps, type RootTaleThemeInput, RootTaleThemeProvider, type TocEntry, attachHeadingIds, collectCategories, collectCategoriesWithCounts, defaultCategoryHref, extractToc, filterPostsByCategory, headingToId, renderBlock, renderBlocks, renderBoundBlocks };
281
+ type RenderTiptapProps = {
282
+ readonly doc: Record<string, unknown>;
283
+ readonly fields?: Record<string, unknown> | null;
284
+ readonly apiKey?: string;
285
+ readonly baseUrl?: string;
286
+ };
287
+ declare function RenderTiptap({ doc, fields, apiKey, baseUrl, }: RenderTiptapProps): ReactElement;
288
+
289
+ export { type BlogPostBreadcrumbOptions, type CtaButton, type CtaButtonType, type FloatingCtaPosition, type LeadFormVertical, RenderTiptap, RootTaleBlogCategories, type RootTaleBlogCategoriesProps, RootTaleBlogList, type RootTaleBlogListProps, RootTaleBlogPost, type RootTaleBlogPostProps, RootTaleFaqJsonLd, RootTaleFloatingCta, type RootTaleFloatingCtaProps, RootTaleLeadForm, type RootTaleLeadFormProps, RootTalePage, type RootTalePageProps, RootTalePostCard, type RootTalePostCardProps, RootTaleTableOfContents, type RootTaleTableOfContentsProps, type RootTaleThemeInput, RootTaleThemeProvider, type TocEntry, attachHeadingIds, extractToc, headingToId, renderBlock, renderBlocks, renderBoundBlocks };
package/dist/server.js CHANGED
@@ -17,15 +17,17 @@ import {
17
17
  renderBlocks,
18
18
  renderBoundBlocks,
19
19
  themeToCssVars
20
- } from "./chunk-LIBSVC4M.js";
20
+ } from "./chunk-2QU4JU46.js";
21
+ import "./chunk-VG6UUF4D.js";
22
+ import "./chunk-QYNEOFL7.js";
21
23
  import "./chunk-U5AKACPN.js";
22
24
  import "./chunk-LEHHSI6G.js";
23
- import "./chunk-6MFHA555.js";
24
- import "./chunk-FZK3EXYZ.js";
25
+ import "./chunk-27RT6B3O.js";
26
+ import "./chunk-YLSQAT6B.js";
27
+ import "./chunk-4RQ3SEDL.js";
25
28
  import "./chunk-K62RR4UQ.js";
26
29
  import "./chunk-H46JUIHZ.js";
27
30
  import "./chunk-ZL2NA3QT.js";
28
- import "./chunk-VG6UUF4D.js";
29
31
  import {
30
32
  collectCategories,
31
33
  collectCategoriesWithCounts,
@@ -33,8 +35,6 @@ import {
33
35
  filterPostsByCategory
34
36
  } from "./chunk-U2IM6OCQ.js";
35
37
  import "./chunk-UM37DOIK.js";
36
- import "./chunk-OMXEU4LS.js";
37
- import "./chunk-YLSQAT6B.js";
38
38
  export {
39
39
  RenderTiptap,
40
40
  RootTaleBlogCategories,