@docubook/mdx 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -116,6 +116,7 @@ function Card({
116
116
  "div",
117
117
  {
118
118
  className: (0, import_clsx.default)(
119
+ "dbk-card",
119
120
  "border rounded-lg shadow-sm p-4 transition-all duration-200",
120
121
  "bg-card text-card-foreground border-border",
121
122
  "hover:bg-accent/5 hover:border-accent/30",
@@ -123,20 +124,21 @@ function Card({
123
124
  horizontal ? "flex-row items-start gap-1" : "flex-col space-y-1",
124
125
  className
125
126
  ),
127
+ "data-docubook": "card",
126
128
  children: [
127
- Icon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { className: (0, import_clsx.default)("w-5 h-5 text-primary shrink-0", horizontal && "mt-0.5") }),
128
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex-1 min-w-0", children: [
129
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "text-base font-semibold text-foreground leading-6", children: title }),
130
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "text-sm text-muted-foreground -mt-3", children })
129
+ Icon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { className: (0, import_clsx.default)("dbk-card__icon", "w-5 h-5 text-primary shrink-0", horizontal && "mt-0.5"), "data-docubook": "card-icon" }),
130
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "dbk-card__body flex-1 min-w-0", "data-docubook": "card-body", children: [
131
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "dbk-card__title text-base font-semibold text-foreground leading-6", "data-docubook": "card-title", children: title }),
132
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "dbk-card__content text-sm text-muted-foreground -mt-3", "data-docubook": "card-content", children })
131
133
  ] })
132
134
  ]
133
135
  }
134
136
  );
135
137
  if (!href) return content;
136
138
  if (LinkComponent) {
137
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(LinkComponent, { href, className: "no-underline block", children: content });
139
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(LinkComponent, { href, className: "dbk-card__link no-underline block", "data-docubook": "card-link", children: content });
138
140
  }
139
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { className: "no-underline block", href, children: content });
141
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { className: "dbk-card__link no-underline block", href, "data-docubook": "card-link", children: content });
140
142
  }
141
143
 
142
144
  // src/core/components/CardGroup.tsx
@@ -221,7 +223,8 @@ function Kbd({
221
223
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
222
224
  "kbd",
223
225
  {
224
- className: "inline-flex items-center justify-center px-2 py-1 mx-0.5 text-xs font-mono font-medium text-foreground bg-secondary/70 border rounded-md",
226
+ className: "dbk-kbd inline-flex items-center justify-center px-2 py-1 mx-0.5 text-xs font-mono font-medium text-foreground bg-secondary/70 border rounded-md",
227
+ "data-docubook": "kbd",
225
228
  ...props,
226
229
  children: renderContent()
227
230
  }
@@ -284,6 +287,12 @@ var iconMap = {
284
287
  warning: import_lucide_react.AlertTriangle,
285
288
  success: import_lucide_react.CheckCircle2
286
289
  };
290
+ var noteDefaultClasses = {
291
+ icon: "h-5 w-5",
292
+ contentWrapper: "pl-8",
293
+ title: "mb-1 font-medium leading-none tracking-tight",
294
+ content: "text-sm [&_p]:leading-relaxed opacity-90"
295
+ };
287
296
  function Note({
288
297
  className,
289
298
  title = "Note",
@@ -292,13 +301,24 @@ function Note({
292
301
  ...props
293
302
  }) {
294
303
  const Icon = iconMap[type] || import_lucide_react.Info;
295
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cn(noteVariants({ variant: type }), className), ...props, children: [
296
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { className: "h-5 w-5" }),
297
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "pl-8", children: [
298
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h5", { className: "mb-1 font-medium leading-none tracking-tight", children: title }),
299
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "text-sm [&_p]:leading-relaxed opacity-90", children })
300
- ] })
301
- ] });
304
+ const noteRole = type === "danger" ? "alert" : "status";
305
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
306
+ "div",
307
+ {
308
+ className: cn("dbk-note", noteVariants({ variant: type }), className),
309
+ "data-docubook": "note",
310
+ "data-variant": type,
311
+ role: noteRole,
312
+ ...props,
313
+ children: [
314
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { className: cn("dbk-note__icon", noteDefaultClasses.icon), "data-docubook": "note-icon" }),
315
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cn("dbk-note__content-wrapper", noteDefaultClasses.contentWrapper), "data-docubook": "note-content-wrapper", children: [
316
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h5", { className: cn("dbk-note__title", noteDefaultClasses.title), "data-docubook": "note-title", children: title }),
317
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: cn("dbk-note__content", noteDefaultClasses.content), "data-docubook": "note-content", children })
318
+ ] })
319
+ ]
320
+ }
321
+ );
302
322
  }
303
323
 
304
324
  // src/core/components/Release.tsx
@@ -306,30 +326,31 @@ var import_react2 = require("react");
306
326
  var import_lucide_react2 = require("lucide-react");
307
327
  var import_jsx_runtime7 = require("react/jsx-runtime");
308
328
  function Release({ version, title, date, children }) {
309
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "mb-16 group", children: [
310
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-3 mt-6 mb-2", children: [
329
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "dbk-release mb-16 group", "data-docubook": "release", children: [
330
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "dbk-release__header flex items-center gap-3 mt-6 mb-2", "data-docubook": "release-header", children: [
311
331
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
312
332
  "div",
313
333
  {
314
334
  id: version,
315
- className: "inline-flex items-center rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-sm font-semibold text-primary transition-colors hover:bg-primary/15 scroll-m-20 backdrop-blur-sm",
335
+ className: "dbk-release__version inline-flex items-center rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-sm font-semibold text-primary transition-colors hover:bg-primary/15 scroll-m-20 backdrop-blur-sm",
336
+ "data-docubook": "release-version",
316
337
  children: [
317
338
  "v",
318
339
  version
319
340
  ]
320
341
  }
321
342
  ),
322
- date && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-3 text-sm font-medium text-muted-foreground", children: [
343
+ date && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "dbk-release__date-wrapper flex items-center gap-3 text-sm font-medium text-muted-foreground", "data-docubook": "release-date-wrapper", children: [
323
344
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "h-1 w-1 rounded-full bg-muted-foreground/30" }),
324
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("time", { dateTime: date, children: new Date(date).toLocaleDateString("en-US", {
345
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("time", { className: "dbk-release__date", "data-docubook": "release-date", dateTime: date, children: new Date(date).toLocaleDateString("en-US", {
325
346
  year: "numeric",
326
347
  month: "long",
327
348
  day: "numeric"
328
349
  }) })
329
350
  ] })
330
351
  ] }),
331
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { className: "text-2xl font-bold text-foreground/90 mb-6 mt-0!", children: title }),
332
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "space-y-8", children })
352
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { className: "dbk-release__title text-2xl font-bold text-foreground/90 mb-6 mt-0!", "data-docubook": "release-title", children: title }),
353
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "dbk-release__content space-y-8", "data-docubook": "release-content", children })
333
354
  ] });
334
355
  }
335
356
  var typeConfig = {
@@ -361,23 +382,25 @@ var typeConfig = {
361
382
  };
362
383
  function Changes({ type, children }) {
363
384
  const config = typeConfig[type] || typeConfig.added;
364
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "space-y-3 mb-8", children: [
365
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
385
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "dbk-release-changes space-y-3 mb-8", "data-docubook": "release-changes", "data-type": type, children: [
386
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "dbk-release-changes__header flex items-center gap-2", "data-docubook": "release-changes-header", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
366
387
  "div",
367
388
  {
368
389
  className: cn(
390
+ "dbk-release-changes__badge",
369
391
  "px-3 py-1 rounded-full text-sm font-medium flex items-center gap-1.5",
370
392
  config.className
371
393
  ),
394
+ "data-docubook": "release-changes-badge",
372
395
  children: [
373
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(config.icon, { className: "h-3.5 w-3.5" }),
374
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: config.label })
396
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(config.icon, { className: "dbk-release-changes__icon h-3.5 w-3.5", "data-docubook": "release-changes-icon" }),
397
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "dbk-release-changes__label", "data-docubook": "release-changes-label", children: config.label })
375
398
  ]
376
399
  }
377
400
  ) }),
378
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "list-none pl-0 space-y-2 text-foreground/80", children: import_react2.Children.map(children, (child, index) => {
401
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "dbk-release-changes__list list-none pl-0 space-y-2 text-foreground/80", "data-docubook": "release-changes-list", children: import_react2.Children.map(children, (child, index) => {
379
402
  const processedChild = typeof child === "string" ? child.trim().replace(/^[-*]\s+/, "") : child;
380
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("li", { className: "leading-relaxed", children: processedChild }, index);
403
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("li", { className: "dbk-release-changes__item leading-relaxed", "data-docubook": "release-changes-item", children: processedChild }, index);
381
404
  }) })
382
405
  ] });
383
406
  }
@@ -386,20 +409,35 @@ function Changes({ type, children }) {
386
409
  var import_clsx4 = __toESM(require("clsx"), 1);
387
410
  var import_react3 = require("react");
388
411
  var import_jsx_runtime8 = require("react/jsx-runtime");
389
- function Stepper({ children }) {
412
+ var stepperDefaultClasses = {
413
+ root: "flex flex-col",
414
+ item: "border-l border-muted pl-9 ml-3 relative",
415
+ itemWithConnector: "pb-5 ",
416
+ number: "bg-muted text-muted-foreground w-8 h-8 text-xs font-medium rounded-md border border-border/50 flex items-center justify-center absolute -left-4 font-code"
417
+ };
418
+ var stepperItemDefaultClasses = {
419
+ root: "pt-0.5",
420
+ title: "mt-0",
421
+ content: ""
422
+ };
423
+ function Stepper({
424
+ children
425
+ }) {
390
426
  const length = import_react3.Children.count(children);
391
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex flex-col", children: import_react3.Children.map(children, (child, index) => {
427
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ol", { className: cn("dbk-stepper", stepperDefaultClasses.root), "data-docubook": "stepper", children: import_react3.Children.map(children, (child, index) => {
392
428
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
393
- "div",
429
+ "li",
394
430
  {
395
431
  className: cn(
396
- "border-l border-muted pl-9 ml-3 relative",
432
+ "dbk-stepper__item",
433
+ stepperDefaultClasses.item,
397
434
  (0, import_clsx4.default)({
398
- "pb-5 ": index < length - 1
435
+ [stepperDefaultClasses.itemWithConnector]: index < length - 1
399
436
  })
400
437
  ),
438
+ "data-docubook": "stepper-item",
401
439
  children: [
402
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "bg-muted text-muted-foreground w-8 h-8 text-xs font-medium rounded-md border border-border/50 flex items-center justify-center absolute -left-4 font-code", children: index + 1 }),
440
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn("dbk-stepper__number", stepperDefaultClasses.number), "data-docubook": "stepper-number", "aria-hidden": "true", children: index + 1 }),
403
441
  child
404
442
  ]
405
443
  }
@@ -410,9 +448,9 @@ function StepperItem({
410
448
  children,
411
449
  title
412
450
  }) {
413
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "pt-0.5", children: [
414
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h4", { className: "mt-0", children: title }),
415
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { children })
451
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: cn("dbk-stepper-item", stepperItemDefaultClasses.root), "data-docubook": "stepper-item-content", children: [
452
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h4", { className: cn("dbk-stepper-item__title", stepperItemDefaultClasses.title), "data-docubook": "stepper-item-title", children: title }),
453
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn("dbk-stepper-item__content", stepperItemDefaultClasses.content), "data-docubook": "stepper-item-body", children })
416
454
  ] });
417
455
  }
418
456
 
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { C as CardGroup, K as Kbd, N as Note, S as Stepper, a as StepperItem, Y as YoutubeProps, R as Release, b as Changes, L as Link } from '../Stepper-B7xt0Dyr.cjs';
3
- export { c as Youtube } from '../Stepper-B7xt0Dyr.cjs';
2
+ import { C as CardGroup, K as Kbd, N as Note, S as Stepper, a as StepperItem, Y as YoutubeProps, R as Release, b as Changes, L as Link } from '../Stepper-I9nywkZb.cjs';
3
+ export { c as Youtube } from '../Stepper-I9nywkZb.cjs';
4
4
  import { B as Button, C as Card } from '../Card-L5O7G4xG.cjs';
5
5
  export { L as LinkLikeProps, a as LinkRenderer } from '../Card-L5O7G4xG.cjs';
6
6
  import 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { C as CardGroup, K as Kbd, N as Note, S as Stepper, a as StepperItem, Y as YoutubeProps, R as Release, b as Changes, L as Link } from '../Stepper-B7xt0Dyr.js';
3
- export { c as Youtube } from '../Stepper-B7xt0Dyr.js';
2
+ import { C as CardGroup, K as Kbd, N as Note, S as Stepper, a as StepperItem, Y as YoutubeProps, R as Release, b as Changes, L as Link } from '../Stepper-I9nywkZb.js';
3
+ export { c as Youtube } from '../Stepper-I9nywkZb.js';
4
4
  import { B as Button, C as Card } from '../Card-L5O7G4xG.js';
5
5
  export { L as LinkLikeProps, a as LinkRenderer } from '../Card-L5O7G4xG.js';
6
6
  import 'react/jsx-runtime';
@@ -69,6 +69,7 @@ function Card({
69
69
  "div",
70
70
  {
71
71
  className: clsx(
72
+ "dbk-card",
72
73
  "border rounded-lg shadow-sm p-4 transition-all duration-200",
73
74
  "bg-card text-card-foreground border-border",
74
75
  "hover:bg-accent/5 hover:border-accent/30",
@@ -76,20 +77,21 @@ function Card({
76
77
  horizontal ? "flex-row items-start gap-1" : "flex-col space-y-1",
77
78
  className
78
79
  ),
80
+ "data-docubook": "card",
79
81
  children: [
80
- Icon && /* @__PURE__ */ jsx2(Icon, { className: clsx("w-5 h-5 text-primary shrink-0", horizontal && "mt-0.5") }),
81
- /* @__PURE__ */ jsxs2("div", { className: "flex-1 min-w-0", children: [
82
- /* @__PURE__ */ jsx2("div", { className: "text-base font-semibold text-foreground leading-6", children: title }),
83
- /* @__PURE__ */ jsx2("div", { className: "text-sm text-muted-foreground -mt-3", children })
82
+ Icon && /* @__PURE__ */ jsx2(Icon, { className: clsx("dbk-card__icon", "w-5 h-5 text-primary shrink-0", horizontal && "mt-0.5"), "data-docubook": "card-icon" }),
83
+ /* @__PURE__ */ jsxs2("div", { className: "dbk-card__body flex-1 min-w-0", "data-docubook": "card-body", children: [
84
+ /* @__PURE__ */ jsx2("div", { className: "dbk-card__title text-base font-semibold text-foreground leading-6", "data-docubook": "card-title", children: title }),
85
+ /* @__PURE__ */ jsx2("div", { className: "dbk-card__content text-sm text-muted-foreground -mt-3", "data-docubook": "card-content", children })
84
86
  ] })
85
87
  ]
86
88
  }
87
89
  );
88
90
  if (!href) return content;
89
91
  if (LinkComponent) {
90
- return /* @__PURE__ */ jsx2(LinkComponent, { href, className: "no-underline block", children: content });
92
+ return /* @__PURE__ */ jsx2(LinkComponent, { href, className: "dbk-card__link no-underline block", "data-docubook": "card-link", children: content });
91
93
  }
92
- return /* @__PURE__ */ jsx2("a", { className: "no-underline block", href, children: content });
94
+ return /* @__PURE__ */ jsx2("a", { className: "dbk-card__link no-underline block", href, "data-docubook": "card-link", children: content });
93
95
  }
94
96
 
95
97
  // src/core/components/CardGroup.tsx
@@ -174,7 +176,8 @@ function Kbd({
174
176
  return /* @__PURE__ */ jsx4(
175
177
  "kbd",
176
178
  {
177
- className: "inline-flex items-center justify-center px-2 py-1 mx-0.5 text-xs font-mono font-medium text-foreground bg-secondary/70 border rounded-md",
179
+ className: "dbk-kbd inline-flex items-center justify-center px-2 py-1 mx-0.5 text-xs font-mono font-medium text-foreground bg-secondary/70 border rounded-md",
180
+ "data-docubook": "kbd",
178
181
  ...props,
179
182
  children: renderContent()
180
183
  }
@@ -242,6 +245,12 @@ var iconMap = {
242
245
  warning: AlertTriangle,
243
246
  success: CheckCircle2
244
247
  };
248
+ var noteDefaultClasses = {
249
+ icon: "h-5 w-5",
250
+ contentWrapper: "pl-8",
251
+ title: "mb-1 font-medium leading-none tracking-tight",
252
+ content: "text-sm [&_p]:leading-relaxed opacity-90"
253
+ };
245
254
  function Note({
246
255
  className,
247
256
  title = "Note",
@@ -250,13 +259,24 @@ function Note({
250
259
  ...props
251
260
  }) {
252
261
  const Icon = iconMap[type] || Info;
253
- return /* @__PURE__ */ jsxs3("div", { className: cn(noteVariants({ variant: type }), className), ...props, children: [
254
- /* @__PURE__ */ jsx6(Icon, { className: "h-5 w-5" }),
255
- /* @__PURE__ */ jsxs3("div", { className: "pl-8", children: [
256
- /* @__PURE__ */ jsx6("h5", { className: "mb-1 font-medium leading-none tracking-tight", children: title }),
257
- /* @__PURE__ */ jsx6("div", { className: "text-sm [&_p]:leading-relaxed opacity-90", children })
258
- ] })
259
- ] });
262
+ const noteRole = type === "danger" ? "alert" : "status";
263
+ return /* @__PURE__ */ jsxs3(
264
+ "div",
265
+ {
266
+ className: cn("dbk-note", noteVariants({ variant: type }), className),
267
+ "data-docubook": "note",
268
+ "data-variant": type,
269
+ role: noteRole,
270
+ ...props,
271
+ children: [
272
+ /* @__PURE__ */ jsx6(Icon, { className: cn("dbk-note__icon", noteDefaultClasses.icon), "data-docubook": "note-icon" }),
273
+ /* @__PURE__ */ jsxs3("div", { className: cn("dbk-note__content-wrapper", noteDefaultClasses.contentWrapper), "data-docubook": "note-content-wrapper", children: [
274
+ /* @__PURE__ */ jsx6("h5", { className: cn("dbk-note__title", noteDefaultClasses.title), "data-docubook": "note-title", children: title }),
275
+ /* @__PURE__ */ jsx6("div", { className: cn("dbk-note__content", noteDefaultClasses.content), "data-docubook": "note-content", children })
276
+ ] })
277
+ ]
278
+ }
279
+ );
260
280
  }
261
281
 
262
282
  // src/core/components/Release.tsx
@@ -270,30 +290,31 @@ import {
270
290
  } from "lucide-react";
271
291
  import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
272
292
  function Release({ version, title, date, children }) {
273
- return /* @__PURE__ */ jsxs4("div", { className: "mb-16 group", children: [
274
- /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 mt-6 mb-2", children: [
293
+ return /* @__PURE__ */ jsxs4("div", { className: "dbk-release mb-16 group", "data-docubook": "release", children: [
294
+ /* @__PURE__ */ jsxs4("div", { className: "dbk-release__header flex items-center gap-3 mt-6 mb-2", "data-docubook": "release-header", children: [
275
295
  /* @__PURE__ */ jsxs4(
276
296
  "div",
277
297
  {
278
298
  id: version,
279
- className: "inline-flex items-center rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-sm font-semibold text-primary transition-colors hover:bg-primary/15 scroll-m-20 backdrop-blur-sm",
299
+ className: "dbk-release__version inline-flex items-center rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-sm font-semibold text-primary transition-colors hover:bg-primary/15 scroll-m-20 backdrop-blur-sm",
300
+ "data-docubook": "release-version",
280
301
  children: [
281
302
  "v",
282
303
  version
283
304
  ]
284
305
  }
285
306
  ),
286
- date && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 text-sm font-medium text-muted-foreground", children: [
307
+ date && /* @__PURE__ */ jsxs4("div", { className: "dbk-release__date-wrapper flex items-center gap-3 text-sm font-medium text-muted-foreground", "data-docubook": "release-date-wrapper", children: [
287
308
  /* @__PURE__ */ jsx7("span", { className: "h-1 w-1 rounded-full bg-muted-foreground/30" }),
288
- /* @__PURE__ */ jsx7("time", { dateTime: date, children: new Date(date).toLocaleDateString("en-US", {
309
+ /* @__PURE__ */ jsx7("time", { className: "dbk-release__date", "data-docubook": "release-date", dateTime: date, children: new Date(date).toLocaleDateString("en-US", {
289
310
  year: "numeric",
290
311
  month: "long",
291
312
  day: "numeric"
292
313
  }) })
293
314
  ] })
294
315
  ] }),
295
- /* @__PURE__ */ jsx7("h3", { className: "text-2xl font-bold text-foreground/90 mb-6 mt-0!", children: title }),
296
- /* @__PURE__ */ jsx7("div", { className: "space-y-8", children })
316
+ /* @__PURE__ */ jsx7("h3", { className: "dbk-release__title text-2xl font-bold text-foreground/90 mb-6 mt-0!", "data-docubook": "release-title", children: title }),
317
+ /* @__PURE__ */ jsx7("div", { className: "dbk-release__content space-y-8", "data-docubook": "release-content", children })
297
318
  ] });
298
319
  }
299
320
  var typeConfig = {
@@ -325,23 +346,25 @@ var typeConfig = {
325
346
  };
326
347
  function Changes({ type, children }) {
327
348
  const config = typeConfig[type] || typeConfig.added;
328
- return /* @__PURE__ */ jsxs4("div", { className: "space-y-3 mb-8", children: [
329
- /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxs4(
349
+ return /* @__PURE__ */ jsxs4("div", { className: "dbk-release-changes space-y-3 mb-8", "data-docubook": "release-changes", "data-type": type, children: [
350
+ /* @__PURE__ */ jsx7("div", { className: "dbk-release-changes__header flex items-center gap-2", "data-docubook": "release-changes-header", children: /* @__PURE__ */ jsxs4(
330
351
  "div",
331
352
  {
332
353
  className: cn(
354
+ "dbk-release-changes__badge",
333
355
  "px-3 py-1 rounded-full text-sm font-medium flex items-center gap-1.5",
334
356
  config.className
335
357
  ),
358
+ "data-docubook": "release-changes-badge",
336
359
  children: [
337
- /* @__PURE__ */ jsx7(config.icon, { className: "h-3.5 w-3.5" }),
338
- /* @__PURE__ */ jsx7("span", { children: config.label })
360
+ /* @__PURE__ */ jsx7(config.icon, { className: "dbk-release-changes__icon h-3.5 w-3.5", "data-docubook": "release-changes-icon" }),
361
+ /* @__PURE__ */ jsx7("span", { className: "dbk-release-changes__label", "data-docubook": "release-changes-label", children: config.label })
339
362
  ]
340
363
  }
341
364
  ) }),
342
- /* @__PURE__ */ jsx7("ul", { className: "list-none pl-0 space-y-2 text-foreground/80", children: Children.map(children, (child, index) => {
365
+ /* @__PURE__ */ jsx7("ul", { className: "dbk-release-changes__list list-none pl-0 space-y-2 text-foreground/80", "data-docubook": "release-changes-list", children: Children.map(children, (child, index) => {
343
366
  const processedChild = typeof child === "string" ? child.trim().replace(/^[-*]\s+/, "") : child;
344
- return /* @__PURE__ */ jsx7("li", { className: "leading-relaxed", children: processedChild }, index);
367
+ return /* @__PURE__ */ jsx7("li", { className: "dbk-release-changes__item leading-relaxed", "data-docubook": "release-changes-item", children: processedChild }, index);
345
368
  }) })
346
369
  ] });
347
370
  }
@@ -350,20 +373,35 @@ function Changes({ type, children }) {
350
373
  import clsx4 from "clsx";
351
374
  import { Children as Children2 } from "react";
352
375
  import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
353
- function Stepper({ children }) {
376
+ var stepperDefaultClasses = {
377
+ root: "flex flex-col",
378
+ item: "border-l border-muted pl-9 ml-3 relative",
379
+ itemWithConnector: "pb-5 ",
380
+ number: "bg-muted text-muted-foreground w-8 h-8 text-xs font-medium rounded-md border border-border/50 flex items-center justify-center absolute -left-4 font-code"
381
+ };
382
+ var stepperItemDefaultClasses = {
383
+ root: "pt-0.5",
384
+ title: "mt-0",
385
+ content: ""
386
+ };
387
+ function Stepper({
388
+ children
389
+ }) {
354
390
  const length = Children2.count(children);
355
- return /* @__PURE__ */ jsx8("div", { className: "flex flex-col", children: Children2.map(children, (child, index) => {
391
+ return /* @__PURE__ */ jsx8("ol", { className: cn("dbk-stepper", stepperDefaultClasses.root), "data-docubook": "stepper", children: Children2.map(children, (child, index) => {
356
392
  return /* @__PURE__ */ jsxs5(
357
- "div",
393
+ "li",
358
394
  {
359
395
  className: cn(
360
- "border-l border-muted pl-9 ml-3 relative",
396
+ "dbk-stepper__item",
397
+ stepperDefaultClasses.item,
361
398
  clsx4({
362
- "pb-5 ": index < length - 1
399
+ [stepperDefaultClasses.itemWithConnector]: index < length - 1
363
400
  })
364
401
  ),
402
+ "data-docubook": "stepper-item",
365
403
  children: [
366
- /* @__PURE__ */ jsx8("div", { className: "bg-muted text-muted-foreground w-8 h-8 text-xs font-medium rounded-md border border-border/50 flex items-center justify-center absolute -left-4 font-code", children: index + 1 }),
404
+ /* @__PURE__ */ jsx8("div", { className: cn("dbk-stepper__number", stepperDefaultClasses.number), "data-docubook": "stepper-number", "aria-hidden": "true", children: index + 1 }),
367
405
  child
368
406
  ]
369
407
  }
@@ -374,9 +412,9 @@ function StepperItem({
374
412
  children,
375
413
  title
376
414
  }) {
377
- return /* @__PURE__ */ jsxs5("div", { className: "pt-0.5", children: [
378
- /* @__PURE__ */ jsx8("h4", { className: "mt-0", children: title }),
379
- /* @__PURE__ */ jsx8("div", { children })
415
+ return /* @__PURE__ */ jsxs5("div", { className: cn("dbk-stepper-item", stepperItemDefaultClasses.root), "data-docubook": "stepper-item-content", children: [
416
+ /* @__PURE__ */ jsx8("h4", { className: cn("dbk-stepper-item__title", stepperItemDefaultClasses.title), "data-docubook": "stepper-item-title", children: title }),
417
+ /* @__PURE__ */ jsx8("div", { className: cn("dbk-stepper-item__content", stepperItemDefaultClasses.content), "data-docubook": "stepper-item-body", children })
380
418
  ] });
381
419
  }
382
420