semajsx 0.1.2 → 0.5.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.
- package/dist/dom/jsx-dev-runtime.d.mts +1 -1
- package/dist/dom/jsx-runtime.d.mts +1 -1
- package/dist/{index-DC3tthWf.d.mts → index-Ch9GwToI.d.mts} +2 -2
- package/dist/{index-DC3tthWf.d.mts.map → index-Ch9GwToI.d.mts.map} +1 -1
- package/dist/{jsx-runtime-DZx2Yv-t.d.mts → jsx-runtime-BBi9E0Hz.d.mts} +2 -1
- package/dist/{jsx-runtime-DZx2Yv-t.d.mts.map → jsx-runtime-BBi9E0Hz.d.mts.map} +1 -1
- package/dist/jsx-runtime-D9ZNjMJ2.mjs.map +1 -1
- package/dist/{src-DR-EWgVP.mjs → src-L88LbwEv.mjs} +2 -2
- package/dist/src-L88LbwEv.mjs.map +1 -0
- package/dist/ssg/index.d.mts +1 -1
- package/dist/ssg/index.mjs +1 -1
- package/dist/ssg/plugins/docs-theme.d.mts +311 -5
- package/dist/ssg/plugins/docs-theme.d.mts.map +1 -1
- package/dist/ssg/plugins/docs-theme.mjs +1463 -111
- package/dist/ssg/plugins/docs-theme.mjs.map +1 -1
- package/dist/ssg/plugins/lucide.d.mts +2 -2
- package/dist/{types-CGkRxnQB.d.mts → types-C9fiRu6l.d.mts} +3 -3
- package/dist/{types-CGkRxnQB.d.mts.map → types-C9fiRu6l.d.mts.map} +1 -1
- package/package.json +1 -1
- package/dist/src-DR-EWgVP.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { o as Forward, s as Fragment } from "../types-CZMcXQTW.mjs";
|
|
2
2
|
import { n as jsxs, t as jsx } from "../jsx-fNlLjLou.mjs";
|
|
3
|
-
import { C as ThHTMLAttributes, S as TextareaHTMLAttributes, _ as ScriptHTMLAttributes, a as ClassValue, b as TableHTMLAttributes, c as IframeHTMLAttributes, d as JSX, f as LabelHTMLAttributes, g as SVGAttributes, h as OptionHTMLAttributes, i as CanvasHTMLAttributes, l as ImgHTMLAttributes, m as MetaHTMLAttributes, n as AudioHTMLAttributes, o as FormHTMLAttributes, p as LinkHTMLAttributes, r as ButtonHTMLAttributes, s as HTMLAttributes, t as AnchorHTMLAttributes, u as InputHTMLAttributes, v as SelectHTMLAttributes, w as VideoHTMLAttributes, x as TdHTMLAttributes, y as StyleHTMLAttributes } from "../jsx-runtime-
|
|
3
|
+
import { C as ThHTMLAttributes, S as TextareaHTMLAttributes, _ as ScriptHTMLAttributes, a as ClassValue, b as TableHTMLAttributes, c as IframeHTMLAttributes, d as JSX, f as LabelHTMLAttributes, g as SVGAttributes, h as OptionHTMLAttributes, i as CanvasHTMLAttributes, l as ImgHTMLAttributes, m as MetaHTMLAttributes, n as AudioHTMLAttributes, o as FormHTMLAttributes, p as LinkHTMLAttributes, r as ButtonHTMLAttributes, s as HTMLAttributes, t as AnchorHTMLAttributes, u as InputHTMLAttributes, v as SelectHTMLAttributes, w as VideoHTMLAttributes, x as TdHTMLAttributes, y as StyleHTMLAttributes } from "../jsx-runtime-BBi9E0Hz.mjs";
|
|
4
4
|
|
|
5
5
|
//#region ../dom/src/jsx-dev-runtime.d.ts
|
|
6
6
|
declare function jsxDEV(type: any, props: any, key?: any, _isStaticChildren?: boolean, _source?: any, _self?: any): any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { o as Forward, s as Fragment } from "../types-CZMcXQTW.mjs";
|
|
2
2
|
import { n as jsxs, t as jsx } from "../jsx-fNlLjLou.mjs";
|
|
3
|
-
import { C as ThHTMLAttributes, S as TextareaHTMLAttributes, _ as ScriptHTMLAttributes, a as ClassValue, b as TableHTMLAttributes, c as IframeHTMLAttributes, d as JSX, f as LabelHTMLAttributes, g as SVGAttributes, h as OptionHTMLAttributes, i as CanvasHTMLAttributes, l as ImgHTMLAttributes, m as MetaHTMLAttributes, n as AudioHTMLAttributes, o as FormHTMLAttributes, p as LinkHTMLAttributes, r as ButtonHTMLAttributes, s as HTMLAttributes, t as AnchorHTMLAttributes, u as InputHTMLAttributes, v as SelectHTMLAttributes, w as VideoHTMLAttributes, x as TdHTMLAttributes, y as StyleHTMLAttributes } from "../jsx-runtime-
|
|
3
|
+
import { C as ThHTMLAttributes, S as TextareaHTMLAttributes, _ as ScriptHTMLAttributes, a as ClassValue, b as TableHTMLAttributes, c as IframeHTMLAttributes, d as JSX, f as LabelHTMLAttributes, g as SVGAttributes, h as OptionHTMLAttributes, i as CanvasHTMLAttributes, l as ImgHTMLAttributes, m as MetaHTMLAttributes, n as AudioHTMLAttributes, o as FormHTMLAttributes, p as LinkHTMLAttributes, r as ButtonHTMLAttributes, s as HTMLAttributes, t as AnchorHTMLAttributes, u as InputHTMLAttributes, v as SelectHTMLAttributes, w as VideoHTMLAttributes, x as TdHTMLAttributes, y as StyleHTMLAttributes } from "../jsx-runtime-BBi9E0Hz.mjs";
|
|
4
4
|
export { AnchorHTMLAttributes, AudioHTMLAttributes, ButtonHTMLAttributes, CanvasHTMLAttributes, ClassValue, FormHTMLAttributes, Forward, Fragment, HTMLAttributes, IframeHTMLAttributes, ImgHTMLAttributes, InputHTMLAttributes, JSX, LabelHTMLAttributes, LinkHTMLAttributes, MetaHTMLAttributes, OptionHTMLAttributes, SVGAttributes, ScriptHTMLAttributes, SelectHTMLAttributes, StyleHTMLAttributes, TableHTMLAttributes, TdHTMLAttributes, TextareaHTMLAttributes, ThHTMLAttributes, VideoHTMLAttributes, jsx, jsxs };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as VNode } from "./types-CZMcXQTW.mjs";
|
|
2
|
-
import { _ as SSGPlugin } from "./types-
|
|
2
|
+
import { _ as SSGPlugin } from "./types-C9fiRu6l.mjs";
|
|
3
3
|
|
|
4
4
|
//#region ../ssg/src/plugins/lucide/component.d.ts
|
|
5
5
|
interface IconProps {
|
|
@@ -78,4 +78,4 @@ interface LucidePluginOptions {
|
|
|
78
78
|
declare function lucide(options?: LucidePluginOptions): SSGPlugin;
|
|
79
79
|
//#endregion
|
|
80
80
|
export { IconProps as i, lucide as n, Icon as r, LucidePluginOptions as t };
|
|
81
|
-
//# sourceMappingURL=index-
|
|
81
|
+
//# sourceMappingURL=index-Ch9GwToI.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Ch9GwToI.d.mts","names":[],"sources":["../../ssg/src/plugins/lucide/component.tsx","../../ssg/src/plugins/lucide/index.ts"],"mappings":";;;;UAuCiB,SAAA;;EAEf,IAAA;EAFF;EAIE,IAAA;;EAEA,KAAA;;EAEA,WAAA;;EAEA,KAAA;AAAA;;;AA8BF;;;;;;;;;;;;iBAAgB,IAAA,CAAA;EACd,IAAA;EACA,IAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA,EAAO;AAAA,GACN,SAAA,GAAY,KAAA;;;UC/EE,mBAAA;EDiCA;EC/Bf,IAAA;ED+Be;EC7Bf,KAAA;;EAEA,WAAA;AAAA;;;;ADmEF;;;;;;;;;;;;;;;;;;;;;;;;;;;iBClCgB,MAAA,CAAO,OAAA,GAAS,mBAAA,GAA2B,SAAA"}
|
|
@@ -399,6 +399,7 @@ declare namespace JSX {
|
|
|
399
399
|
abbr: HTMLAttributes<HTMLElement>;
|
|
400
400
|
cite: HTMLAttributes<HTMLElement>;
|
|
401
401
|
q: HTMLAttributes<HTMLQuoteElement>;
|
|
402
|
+
kbd: HTMLAttributes<HTMLElement>;
|
|
402
403
|
sub: HTMLAttributes<HTMLElement>;
|
|
403
404
|
sup: HTMLAttributes<HTMLElement>;
|
|
404
405
|
time: HTMLAttributes<HTMLTimeElement>;
|
|
@@ -460,4 +461,4 @@ declare namespace JSX {
|
|
|
460
461
|
}
|
|
461
462
|
//#endregion
|
|
462
463
|
export { ThHTMLAttributes as C, TextareaHTMLAttributes as S, ScriptHTMLAttributes as _, ClassValue as a, TableHTMLAttributes as b, IframeHTMLAttributes as c, JSX as d, LabelHTMLAttributes as f, SVGAttributes as g, OptionHTMLAttributes as h, CanvasHTMLAttributes as i, ImgHTMLAttributes as l, MetaHTMLAttributes as m, AudioHTMLAttributes as n, FormHTMLAttributes as o, LinkHTMLAttributes as p, ButtonHTMLAttributes as r, HTMLAttributes as s, AnchorHTMLAttributes as t, InputHTMLAttributes as u, SelectHTMLAttributes as v, VideoHTMLAttributes as w, TdHTMLAttributes as x, StyleHTMLAttributes as y };
|
|
463
|
-
//# sourceMappingURL=jsx-runtime-
|
|
464
|
+
//# sourceMappingURL=jsx-runtime-BBi9E0Hz.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime-
|
|
1
|
+
{"version":3,"file":"jsx-runtime-BBi9E0Hz.d.mts","names":[],"sources":["../../dom/src/jsx-runtime.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime-D9ZNjMJ2.mjs","names":[],"sources":["../../dom/src/jsx-runtime.ts"],"sourcesContent":["/**\n * JSX automatic runtime for DOM (production)\n * Use with: @jsxImportSource @semajsx/dom\n */\n\nimport { Forward, Fragment, jsx, jsxs } from \"@semajsx/core\";\nimport type { ComponentAPI, JSXNode, Ref, VNode, WithKey, WithSignals } from \"@semajsx/core\";\nimport type { Signal } from \"@semajsx/signal\";\nimport type { StyleToken } from \"@semajsx/style\";\n\nexport { jsx, jsxs, Forward, Fragment };\n\n/**\n * Class value type - supports strings, StyleTokens, arrays, and conditionals\n */\nexport type ClassValue = string | StyleToken | ClassValue[] | false | null | undefined;\n\n/**\n * HTML attribute types (base definitions without Signal support)\n */\ninterface BaseHTMLAttributes<T = Element> {\n // Ref - special prop for element references\n ref?: Ref<T>;\n\n // Standard attributes\n id?: string;\n className?: ClassValue;\n class?: ClassValue;\n style?: string | Record<string, string | number>;\n title?: string;\n lang?: string;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n hidden?: boolean;\n tabIndex?: number;\n accessKey?: string;\n contentEditable?: boolean | \"true\" | \"false\";\n draggable?: boolean;\n spellcheck?: boolean;\n\n // Special React-style props\n dangerouslySetInnerHTML?: { __html: string };\n\n // ARIA attributes\n role?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n \"aria-hidden\"?: boolean | \"true\" | \"false\";\n \"aria-expanded\"?: boolean | \"true\" | \"false\";\n \"aria-selected\"?: boolean | \"true\" | \"false\";\n \"aria-checked\"?: boolean | \"true\" | \"false\" | \"mixed\";\n \"aria-disabled\"?: boolean | \"true\" | \"false\";\n \"aria-readonly\"?: boolean | \"true\" | \"false\";\n \"aria-required\"?: boolean | \"true\" | \"false\";\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\n \"aria-pressed\"?: boolean | \"true\" | \"false\" | \"mixed\";\n \"aria-current\"?: boolean | \"true\" | \"false\" | \"page\" | \"step\" | \"location\" | \"date\" | \"time\";\n\n // Event handlers (React-style camelCase)\n onClick?: (event: MouseEvent) => void;\n onDblClick?: (event: MouseEvent) => void;\n onMouseDown?: (event: MouseEvent) => void;\n onMouseUp?: (event: MouseEvent) => void;\n onMouseEnter?: (event: MouseEvent) => void;\n onMouseLeave?: (event: MouseEvent) => void;\n onMouseMove?: (event: MouseEvent) => void;\n onMouseOver?: (event: MouseEvent) => void;\n onMouseOut?: (event: MouseEvent) => void;\n onContextMenu?: (event: MouseEvent) => void;\n\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n onKeyPress?: (event: KeyboardEvent) => void;\n\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n\n onChange?: (event: Event) => void;\n onInput?: (event: Event) => void;\n onSubmit?: (event: Event) => void;\n\n onScroll?: (event: Event) => void;\n onWheel?: (event: WheelEvent) => void;\n\n onTouchStart?: (event: TouchEvent) => void;\n onTouchMove?: (event: TouchEvent) => void;\n onTouchEnd?: (event: TouchEvent) => void;\n onTouchCancel?: (event: TouchEvent) => void;\n\n onDragStart?: (event: DragEvent) => void;\n onDrag?: (event: DragEvent) => void;\n onDragEnd?: (event: DragEvent) => void;\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n onDragOver?: (event: DragEvent) => void;\n onDrop?: (event: DragEvent) => void;\n\n // Event handlers (native DOM lowercase)\n onclick?: (event: MouseEvent) => void;\n ondblclick?: (event: MouseEvent) => void;\n onmousedown?: (event: MouseEvent) => void;\n onmouseup?: (event: MouseEvent) => void;\n onmouseenter?: (event: MouseEvent) => void;\n onmouseleave?: (event: MouseEvent) => void;\n onmousemove?: (event: MouseEvent) => void;\n onmouseover?: (event: MouseEvent) => void;\n onmouseout?: (event: MouseEvent) => void;\n oncontextmenu?: (event: MouseEvent) => void;\n\n onkeydown?: (event: KeyboardEvent) => void;\n onkeyup?: (event: KeyboardEvent) => void;\n onkeypress?: (event: KeyboardEvent) => void;\n\n onfocus?: (event: FocusEvent) => void;\n onblur?: (event: FocusEvent) => void;\n\n onchange?: (event: Event) => void;\n oninput?: (event: Event) => void;\n onsubmit?: (event: Event) => void;\n\n onscroll?: (event: Event) => void;\n onwheel?: (event: WheelEvent) => void;\n\n ontouchstart?: (event: TouchEvent) => void;\n ontouchmove?: (event: TouchEvent) => void;\n ontouchend?: (event: TouchEvent) => void;\n ontouchcancel?: (event: TouchEvent) => void;\n\n ondragstart?: (event: DragEvent) => void;\n ondrag?: (event: DragEvent) => void;\n ondragend?: (event: DragEvent) => void;\n ondragenter?: (event: DragEvent) => void;\n ondragleave?: (event: DragEvent) => void;\n ondragover?: (event: DragEvent) => void;\n ondrop?: (event: DragEvent) => void;\n\n // Children\n children?: JSXNode;\n}\n\n/**\n * HTML attributes with Signal support\n * All non-function properties can accept Signal values\n */\nexport type HTMLAttributes<T = Element> = WithKey<WithSignals<BaseHTMLAttributes<T>>> & {\n // Data attributes support both plain values and Signals\n [dataAttribute: `data-${string}`]:\n | string\n | number\n | boolean\n | Signal<string | number | boolean>\n | undefined;\n};\n\ninterface BaseAnchorHTMLAttributes extends BaseHTMLAttributes<HTMLAnchorElement> {\n href?: string;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n rel?: string;\n download?: string;\n ping?: string;\n referrerPolicy?:\n | \"no-referrer\"\n | \"no-referrer-when-downgrade\"\n | \"origin\"\n | \"origin-when-cross-origin\"\n | \"same-origin\"\n | \"strict-origin\"\n | \"strict-origin-when-cross-origin\"\n | \"unsafe-url\";\n}\n\nexport type AnchorHTMLAttributes = WithKey<WithSignals<BaseAnchorHTMLAttributes>>;\n\ninterface BaseButtonHTMLAttributes extends BaseHTMLAttributes<HTMLButtonElement> {\n disabled?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n value?: string;\n name?: string;\n form?: string;\n formAction?: string;\n formEnctype?: string;\n formMethod?: string;\n formNoValidate?: boolean;\n formTarget?: string;\n}\n\nexport type ButtonHTMLAttributes = WithKey<WithSignals<BaseButtonHTMLAttributes>>;\n\ninterface BaseInputHTMLAttributes extends BaseHTMLAttributes<HTMLInputElement> {\n accept?: string;\n alt?: string;\n autoComplete?: string;\n autoFocus?: boolean;\n capture?: boolean | \"user\" | \"environment\";\n checked?: boolean;\n defaultChecked?: boolean;\n defaultValue?: string | number;\n disabled?: boolean;\n form?: string;\n formAction?: string;\n formEnctype?: string;\n formMethod?: string;\n formNoValidate?: boolean;\n formTarget?: string;\n max?: number | string;\n maxLength?: number;\n min?: number | string;\n minLength?: number;\n multiple?: boolean;\n name?: string;\n pattern?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n size?: number;\n src?: string;\n step?: number | string;\n type?: string;\n value?: string | number;\n}\n\nexport type InputHTMLAttributes = WithKey<WithSignals<BaseInputHTMLAttributes>>;\n\ninterface BaseTextareaHTMLAttributes extends BaseHTMLAttributes<HTMLTextAreaElement> {\n autoComplete?: string;\n autoFocus?: boolean;\n cols?: number;\n disabled?: boolean;\n form?: string;\n maxLength?: number;\n minLength?: number;\n name?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n rows?: number;\n value?: string;\n wrap?: \"hard\" | \"soft\" | \"off\";\n}\n\nexport type TextareaHTMLAttributes = WithKey<WithSignals<BaseTextareaHTMLAttributes>>;\n\ninterface BaseSelectHTMLAttributes extends BaseHTMLAttributes<HTMLSelectElement> {\n autoComplete?: string;\n autoFocus?: boolean;\n disabled?: boolean;\n form?: string;\n multiple?: boolean;\n name?: string;\n required?: boolean;\n size?: number;\n value?: string | string[];\n}\n\nexport type SelectHTMLAttributes = WithKey<WithSignals<BaseSelectHTMLAttributes>>;\n\ninterface BaseOptionHTMLAttributes extends BaseHTMLAttributes<HTMLOptionElement> {\n disabled?: boolean;\n label?: string;\n selected?: boolean;\n value?: string | number;\n}\n\nexport type OptionHTMLAttributes = WithKey<WithSignals<BaseOptionHTMLAttributes>>;\n\ninterface BaseLabelHTMLAttributes extends BaseHTMLAttributes<HTMLLabelElement> {\n for?: string;\n htmlFor?: string;\n form?: string;\n}\n\nexport type LabelHTMLAttributes = WithKey<WithSignals<BaseLabelHTMLAttributes>>;\n\ninterface BaseFormHTMLAttributes extends BaseHTMLAttributes<HTMLFormElement> {\n acceptCharset?: string;\n action?: string;\n autoComplete?: string;\n enctype?: string;\n method?: \"get\" | \"post\" | \"dialog\";\n name?: string;\n noValidate?: boolean;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n}\n\nexport type FormHTMLAttributes = WithKey<WithSignals<BaseFormHTMLAttributes>>;\n\ninterface BaseImgHTMLAttributes extends BaseHTMLAttributes<HTMLImageElement> {\n alt?: string;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n decoding?: \"async\" | \"auto\" | \"sync\";\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n referrerPolicy?: string;\n sizes?: string;\n src?: string;\n srcSet?: string;\n useMap?: string;\n width?: number | string;\n}\n\nexport type ImgHTMLAttributes = WithKey<WithSignals<BaseImgHTMLAttributes>>;\n\ninterface BaseVideoHTMLAttributes extends BaseHTMLAttributes<HTMLVideoElement> {\n autoPlay?: boolean;\n controls?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n height?: number | string;\n loop?: boolean;\n muted?: boolean;\n playsInline?: boolean;\n poster?: string;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n width?: number | string;\n}\n\nexport type VideoHTMLAttributes = WithKey<WithSignals<BaseVideoHTMLAttributes>>;\n\ninterface BaseAudioHTMLAttributes extends BaseHTMLAttributes<HTMLAudioElement> {\n autoPlay?: boolean;\n controls?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n loop?: boolean;\n muted?: boolean;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n}\n\nexport type AudioHTMLAttributes = WithKey<WithSignals<BaseAudioHTMLAttributes>>;\n\ninterface BaseCanvasHTMLAttributes extends BaseHTMLAttributes<HTMLCanvasElement> {\n height?: number | string;\n width?: number | string;\n}\n\nexport type CanvasHTMLAttributes = WithKey<WithSignals<BaseCanvasHTMLAttributes>>;\n\ninterface BaseIframeHTMLAttributes extends BaseHTMLAttributes<HTMLIFrameElement> {\n allow?: string;\n allowFullScreen?: boolean;\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n name?: string;\n referrerPolicy?: string;\n sandbox?: string;\n src?: string;\n srcDoc?: string;\n width?: number | string;\n}\n\nexport type IframeHTMLAttributes = WithKey<WithSignals<BaseIframeHTMLAttributes>>;\n\ninterface BaseTableHTMLAttributes extends BaseHTMLAttributes<HTMLTableElement> {\n cellPadding?: number | string;\n cellSpacing?: number | string;\n}\n\nexport type TableHTMLAttributes = WithKey<WithSignals<BaseTableHTMLAttributes>>;\n\ninterface BaseTdHTMLAttributes extends BaseHTMLAttributes<HTMLTableCellElement> {\n colSpan?: number;\n headers?: string;\n rowSpan?: number;\n}\n\nexport type TdHTMLAttributes = WithKey<WithSignals<BaseTdHTMLAttributes>>;\n\ninterface BaseThHTMLAttributes extends BaseHTMLAttributes<HTMLTableCellElement> {\n abbr?: string;\n colSpan?: number;\n headers?: string;\n rowSpan?: number;\n scope?: \"col\" | \"row\" | \"colgroup\" | \"rowgroup\";\n}\n\nexport type ThHTMLAttributes = WithKey<WithSignals<BaseThHTMLAttributes>>;\n\ninterface BaseStyleHTMLAttributes extends BaseHTMLAttributes<HTMLStyleElement> {\n media?: string;\n scoped?: boolean;\n type?: string;\n}\n\nexport type StyleHTMLAttributes = WithKey<WithSignals<BaseStyleHTMLAttributes>>;\n\ninterface BaseScriptHTMLAttributes extends BaseHTMLAttributes<HTMLScriptElement> {\n async?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n defer?: boolean;\n integrity?: string;\n noModule?: boolean;\n referrerPolicy?: string;\n src?: string;\n type?: string;\n}\n\nexport type ScriptHTMLAttributes = WithKey<WithSignals<BaseScriptHTMLAttributes>>;\n\ninterface BaseLinkHTMLAttributes extends BaseHTMLAttributes<HTMLLinkElement> {\n as?: string;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n href?: string;\n hrefLang?: string;\n integrity?: string;\n media?: string;\n referrerPolicy?: string;\n rel?: string;\n sizes?: string;\n type?: string;\n}\n\nexport type LinkHTMLAttributes = WithKey<WithSignals<BaseLinkHTMLAttributes>>;\n\ninterface BaseMetaHTMLAttributes extends BaseHTMLAttributes<HTMLMetaElement> {\n charSet?: string;\n content?: string;\n httpEquiv?: string;\n name?: string;\n}\n\nexport type MetaHTMLAttributes = WithKey<WithSignals<BaseMetaHTMLAttributes>>;\n\n/**\n * SVG element attributes — permissive to cover SVG's large attribute set\n */\nexport type SVGAttributes = HTMLAttributes<SVGElement> & {\n [key: string]: unknown;\n};\n\n/**\n * JSX namespace for DOM elements\n */\nexport namespace JSX {\n // JSX factory returns sync VNodes\n export type Element = VNode;\n\n export type ElementType =\n | keyof IntrinsicElements\n | ((props: any) => JSXNode)\n | ((props: any, ctx: ComponentAPI) => JSXNode);\n\n export interface ElementChildrenAttribute {\n children: {};\n }\n\n export interface IntrinsicAttributes {\n key?: string | number;\n }\n\n export interface IntrinsicElements {\n // Document structure\n html: HTMLAttributes<HTMLHtmlElement>;\n head: HTMLAttributes<HTMLHeadElement>;\n body: HTMLAttributes<HTMLBodyElement>;\n title: HTMLAttributes<HTMLTitleElement>;\n meta: MetaHTMLAttributes;\n link: LinkHTMLAttributes;\n style: StyleHTMLAttributes;\n script: ScriptHTMLAttributes;\n\n // Content sectioning\n header: HTMLAttributes<HTMLElement>;\n footer: HTMLAttributes<HTMLElement>;\n main: HTMLAttributes<HTMLElement>;\n nav: HTMLAttributes<HTMLElement>;\n section: HTMLAttributes<HTMLElement>;\n article: HTMLAttributes<HTMLElement>;\n aside: HTMLAttributes<HTMLElement>;\n h1: HTMLAttributes<HTMLHeadingElement>;\n h2: HTMLAttributes<HTMLHeadingElement>;\n h3: HTMLAttributes<HTMLHeadingElement>;\n h4: HTMLAttributes<HTMLHeadingElement>;\n h5: HTMLAttributes<HTMLHeadingElement>;\n h6: HTMLAttributes<HTMLHeadingElement>;\n\n // Text content\n div: HTMLAttributes<HTMLDivElement>;\n p: HTMLAttributes<HTMLParagraphElement>;\n span: HTMLAttributes<HTMLSpanElement>;\n pre: HTMLAttributes<HTMLPreElement>;\n code: HTMLAttributes<HTMLElement>;\n blockquote: HTMLAttributes<HTMLQuoteElement>;\n hr: HTMLAttributes<HTMLHRElement>;\n br: HTMLAttributes<HTMLBRElement>;\n\n // Lists\n ul: HTMLAttributes<HTMLUListElement>;\n ol: HTMLAttributes<HTMLOListElement>;\n li: HTMLAttributes<HTMLLIElement>;\n dl: HTMLAttributes<HTMLDListElement>;\n dt: HTMLAttributes<HTMLElement>;\n dd: HTMLAttributes<HTMLElement>;\n\n // Inline text semantics\n a: AnchorHTMLAttributes;\n strong: HTMLAttributes<HTMLElement>;\n em: HTMLAttributes<HTMLElement>;\n b: HTMLAttributes<HTMLElement>;\n i: HTMLAttributes<HTMLElement>;\n u: HTMLAttributes<HTMLElement>;\n s: HTMLAttributes<HTMLElement>;\n small: HTMLAttributes<HTMLElement>;\n mark: HTMLAttributes<HTMLElement>;\n abbr: HTMLAttributes<HTMLElement>;\n cite: HTMLAttributes<HTMLElement>;\n q: HTMLAttributes<HTMLQuoteElement>;\n sub: HTMLAttributes<HTMLElement>;\n sup: HTMLAttributes<HTMLElement>;\n time: HTMLAttributes<HTMLTimeElement>;\n\n // Forms\n form: FormHTMLAttributes;\n input: InputHTMLAttributes;\n textarea: TextareaHTMLAttributes;\n button: ButtonHTMLAttributes;\n select: SelectHTMLAttributes;\n option: OptionHTMLAttributes;\n optgroup: HTMLAttributes<HTMLOptGroupElement>;\n label: LabelHTMLAttributes;\n fieldset: HTMLAttributes<HTMLFieldSetElement>;\n legend: HTMLAttributes<HTMLLegendElement>;\n\n // Tables\n table: TableHTMLAttributes;\n thead: HTMLAttributes<HTMLTableSectionElement>;\n tbody: HTMLAttributes<HTMLTableSectionElement>;\n tfoot: HTMLAttributes<HTMLTableSectionElement>;\n tr: HTMLAttributes<HTMLTableRowElement>;\n th: ThHTMLAttributes;\n td: TdHTMLAttributes;\n caption: HTMLAttributes<HTMLTableCaptionElement>;\n colgroup: HTMLAttributes<HTMLTableColElement>;\n col: HTMLAttributes<HTMLTableColElement>;\n\n // Media\n img: ImgHTMLAttributes;\n video: VideoHTMLAttributes;\n audio: AudioHTMLAttributes;\n source: HTMLAttributes<HTMLSourceElement>;\n track: HTMLAttributes<HTMLTrackElement>;\n canvas: CanvasHTMLAttributes;\n svg: SVGAttributes;\n\n // SVG child elements\n circle: SVGAttributes;\n clipPath: SVGAttributes;\n defs: SVGAttributes;\n ellipse: SVGAttributes;\n g: SVGAttributes;\n line: SVGAttributes;\n linearGradient: SVGAttributes;\n mask: SVGAttributes;\n path: SVGAttributes;\n polygon: SVGAttributes;\n polyline: SVGAttributes;\n radialGradient: SVGAttributes;\n rect: SVGAttributes;\n stop: SVGAttributes;\n text: SVGAttributes;\n use: SVGAttributes;\n\n // Embedded content\n iframe: IframeHTMLAttributes;\n embed: HTMLAttributes<HTMLEmbedElement>;\n object: HTMLAttributes<HTMLObjectElement>;\n param: HTMLAttributes<HTMLParamElement>;\n picture: HTMLAttributes<HTMLPictureElement>;\n\n // Interactive elements\n details: HTMLAttributes<HTMLDetailsElement>;\n summary: HTMLAttributes<HTMLElement>;\n dialog: HTMLAttributes<HTMLDialogElement>;\n menu: HTMLAttributes<HTMLMenuElement>;\n\n // Web Components\n slot: HTMLAttributes<HTMLSlotElement>;\n template: HTMLAttributes<HTMLTemplateElement>;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"jsx-runtime-D9ZNjMJ2.mjs","names":[],"sources":["../../dom/src/jsx-runtime.ts"],"sourcesContent":["/**\n * JSX automatic runtime for DOM (production)\n * Use with: @jsxImportSource @semajsx/dom\n */\n\nimport { Forward, Fragment, jsx, jsxs } from \"@semajsx/core\";\nimport type { ComponentAPI, JSXNode, Ref, VNode, WithKey, WithSignals } from \"@semajsx/core\";\nimport type { Signal } from \"@semajsx/signal\";\nimport type { StyleToken } from \"@semajsx/style\";\n\nexport { jsx, jsxs, Forward, Fragment };\n\n/**\n * Class value type - supports strings, StyleTokens, arrays, and conditionals\n */\nexport type ClassValue = string | StyleToken | ClassValue[] | false | null | undefined;\n\n/**\n * HTML attribute types (base definitions without Signal support)\n */\ninterface BaseHTMLAttributes<T = Element> {\n // Ref - special prop for element references\n ref?: Ref<T>;\n\n // Standard attributes\n id?: string;\n className?: ClassValue;\n class?: ClassValue;\n style?: string | Record<string, string | number>;\n title?: string;\n lang?: string;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n hidden?: boolean;\n tabIndex?: number;\n accessKey?: string;\n contentEditable?: boolean | \"true\" | \"false\";\n draggable?: boolean;\n spellcheck?: boolean;\n\n // Special React-style props\n dangerouslySetInnerHTML?: { __html: string };\n\n // ARIA attributes\n role?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n \"aria-hidden\"?: boolean | \"true\" | \"false\";\n \"aria-expanded\"?: boolean | \"true\" | \"false\";\n \"aria-selected\"?: boolean | \"true\" | \"false\";\n \"aria-checked\"?: boolean | \"true\" | \"false\" | \"mixed\";\n \"aria-disabled\"?: boolean | \"true\" | \"false\";\n \"aria-readonly\"?: boolean | \"true\" | \"false\";\n \"aria-required\"?: boolean | \"true\" | \"false\";\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\n \"aria-pressed\"?: boolean | \"true\" | \"false\" | \"mixed\";\n \"aria-current\"?: boolean | \"true\" | \"false\" | \"page\" | \"step\" | \"location\" | \"date\" | \"time\";\n\n // Event handlers (React-style camelCase)\n onClick?: (event: MouseEvent) => void;\n onDblClick?: (event: MouseEvent) => void;\n onMouseDown?: (event: MouseEvent) => void;\n onMouseUp?: (event: MouseEvent) => void;\n onMouseEnter?: (event: MouseEvent) => void;\n onMouseLeave?: (event: MouseEvent) => void;\n onMouseMove?: (event: MouseEvent) => void;\n onMouseOver?: (event: MouseEvent) => void;\n onMouseOut?: (event: MouseEvent) => void;\n onContextMenu?: (event: MouseEvent) => void;\n\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n onKeyPress?: (event: KeyboardEvent) => void;\n\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n\n onChange?: (event: Event) => void;\n onInput?: (event: Event) => void;\n onSubmit?: (event: Event) => void;\n\n onScroll?: (event: Event) => void;\n onWheel?: (event: WheelEvent) => void;\n\n onTouchStart?: (event: TouchEvent) => void;\n onTouchMove?: (event: TouchEvent) => void;\n onTouchEnd?: (event: TouchEvent) => void;\n onTouchCancel?: (event: TouchEvent) => void;\n\n onDragStart?: (event: DragEvent) => void;\n onDrag?: (event: DragEvent) => void;\n onDragEnd?: (event: DragEvent) => void;\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n onDragOver?: (event: DragEvent) => void;\n onDrop?: (event: DragEvent) => void;\n\n // Event handlers (native DOM lowercase)\n onclick?: (event: MouseEvent) => void;\n ondblclick?: (event: MouseEvent) => void;\n onmousedown?: (event: MouseEvent) => void;\n onmouseup?: (event: MouseEvent) => void;\n onmouseenter?: (event: MouseEvent) => void;\n onmouseleave?: (event: MouseEvent) => void;\n onmousemove?: (event: MouseEvent) => void;\n onmouseover?: (event: MouseEvent) => void;\n onmouseout?: (event: MouseEvent) => void;\n oncontextmenu?: (event: MouseEvent) => void;\n\n onkeydown?: (event: KeyboardEvent) => void;\n onkeyup?: (event: KeyboardEvent) => void;\n onkeypress?: (event: KeyboardEvent) => void;\n\n onfocus?: (event: FocusEvent) => void;\n onblur?: (event: FocusEvent) => void;\n\n onchange?: (event: Event) => void;\n oninput?: (event: Event) => void;\n onsubmit?: (event: Event) => void;\n\n onscroll?: (event: Event) => void;\n onwheel?: (event: WheelEvent) => void;\n\n ontouchstart?: (event: TouchEvent) => void;\n ontouchmove?: (event: TouchEvent) => void;\n ontouchend?: (event: TouchEvent) => void;\n ontouchcancel?: (event: TouchEvent) => void;\n\n ondragstart?: (event: DragEvent) => void;\n ondrag?: (event: DragEvent) => void;\n ondragend?: (event: DragEvent) => void;\n ondragenter?: (event: DragEvent) => void;\n ondragleave?: (event: DragEvent) => void;\n ondragover?: (event: DragEvent) => void;\n ondrop?: (event: DragEvent) => void;\n\n // Children\n children?: JSXNode;\n}\n\n/**\n * HTML attributes with Signal support\n * All non-function properties can accept Signal values\n */\nexport type HTMLAttributes<T = Element> = WithKey<WithSignals<BaseHTMLAttributes<T>>> & {\n // Data attributes support both plain values and Signals\n [dataAttribute: `data-${string}`]:\n | string\n | number\n | boolean\n | Signal<string | number | boolean>\n | undefined;\n};\n\ninterface BaseAnchorHTMLAttributes extends BaseHTMLAttributes<HTMLAnchorElement> {\n href?: string;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n rel?: string;\n download?: string;\n ping?: string;\n referrerPolicy?:\n | \"no-referrer\"\n | \"no-referrer-when-downgrade\"\n | \"origin\"\n | \"origin-when-cross-origin\"\n | \"same-origin\"\n | \"strict-origin\"\n | \"strict-origin-when-cross-origin\"\n | \"unsafe-url\";\n}\n\nexport type AnchorHTMLAttributes = WithKey<WithSignals<BaseAnchorHTMLAttributes>>;\n\ninterface BaseButtonHTMLAttributes extends BaseHTMLAttributes<HTMLButtonElement> {\n disabled?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n value?: string;\n name?: string;\n form?: string;\n formAction?: string;\n formEnctype?: string;\n formMethod?: string;\n formNoValidate?: boolean;\n formTarget?: string;\n}\n\nexport type ButtonHTMLAttributes = WithKey<WithSignals<BaseButtonHTMLAttributes>>;\n\ninterface BaseInputHTMLAttributes extends BaseHTMLAttributes<HTMLInputElement> {\n accept?: string;\n alt?: string;\n autoComplete?: string;\n autoFocus?: boolean;\n capture?: boolean | \"user\" | \"environment\";\n checked?: boolean;\n defaultChecked?: boolean;\n defaultValue?: string | number;\n disabled?: boolean;\n form?: string;\n formAction?: string;\n formEnctype?: string;\n formMethod?: string;\n formNoValidate?: boolean;\n formTarget?: string;\n max?: number | string;\n maxLength?: number;\n min?: number | string;\n minLength?: number;\n multiple?: boolean;\n name?: string;\n pattern?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n size?: number;\n src?: string;\n step?: number | string;\n type?: string;\n value?: string | number;\n}\n\nexport type InputHTMLAttributes = WithKey<WithSignals<BaseInputHTMLAttributes>>;\n\ninterface BaseTextareaHTMLAttributes extends BaseHTMLAttributes<HTMLTextAreaElement> {\n autoComplete?: string;\n autoFocus?: boolean;\n cols?: number;\n disabled?: boolean;\n form?: string;\n maxLength?: number;\n minLength?: number;\n name?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n rows?: number;\n value?: string;\n wrap?: \"hard\" | \"soft\" | \"off\";\n}\n\nexport type TextareaHTMLAttributes = WithKey<WithSignals<BaseTextareaHTMLAttributes>>;\n\ninterface BaseSelectHTMLAttributes extends BaseHTMLAttributes<HTMLSelectElement> {\n autoComplete?: string;\n autoFocus?: boolean;\n disabled?: boolean;\n form?: string;\n multiple?: boolean;\n name?: string;\n required?: boolean;\n size?: number;\n value?: string | string[];\n}\n\nexport type SelectHTMLAttributes = WithKey<WithSignals<BaseSelectHTMLAttributes>>;\n\ninterface BaseOptionHTMLAttributes extends BaseHTMLAttributes<HTMLOptionElement> {\n disabled?: boolean;\n label?: string;\n selected?: boolean;\n value?: string | number;\n}\n\nexport type OptionHTMLAttributes = WithKey<WithSignals<BaseOptionHTMLAttributes>>;\n\ninterface BaseLabelHTMLAttributes extends BaseHTMLAttributes<HTMLLabelElement> {\n for?: string;\n htmlFor?: string;\n form?: string;\n}\n\nexport type LabelHTMLAttributes = WithKey<WithSignals<BaseLabelHTMLAttributes>>;\n\ninterface BaseFormHTMLAttributes extends BaseHTMLAttributes<HTMLFormElement> {\n acceptCharset?: string;\n action?: string;\n autoComplete?: string;\n enctype?: string;\n method?: \"get\" | \"post\" | \"dialog\";\n name?: string;\n noValidate?: boolean;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n}\n\nexport type FormHTMLAttributes = WithKey<WithSignals<BaseFormHTMLAttributes>>;\n\ninterface BaseImgHTMLAttributes extends BaseHTMLAttributes<HTMLImageElement> {\n alt?: string;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n decoding?: \"async\" | \"auto\" | \"sync\";\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n referrerPolicy?: string;\n sizes?: string;\n src?: string;\n srcSet?: string;\n useMap?: string;\n width?: number | string;\n}\n\nexport type ImgHTMLAttributes = WithKey<WithSignals<BaseImgHTMLAttributes>>;\n\ninterface BaseVideoHTMLAttributes extends BaseHTMLAttributes<HTMLVideoElement> {\n autoPlay?: boolean;\n controls?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n height?: number | string;\n loop?: boolean;\n muted?: boolean;\n playsInline?: boolean;\n poster?: string;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n width?: number | string;\n}\n\nexport type VideoHTMLAttributes = WithKey<WithSignals<BaseVideoHTMLAttributes>>;\n\ninterface BaseAudioHTMLAttributes extends BaseHTMLAttributes<HTMLAudioElement> {\n autoPlay?: boolean;\n controls?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n loop?: boolean;\n muted?: boolean;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n}\n\nexport type AudioHTMLAttributes = WithKey<WithSignals<BaseAudioHTMLAttributes>>;\n\ninterface BaseCanvasHTMLAttributes extends BaseHTMLAttributes<HTMLCanvasElement> {\n height?: number | string;\n width?: number | string;\n}\n\nexport type CanvasHTMLAttributes = WithKey<WithSignals<BaseCanvasHTMLAttributes>>;\n\ninterface BaseIframeHTMLAttributes extends BaseHTMLAttributes<HTMLIFrameElement> {\n allow?: string;\n allowFullScreen?: boolean;\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n name?: string;\n referrerPolicy?: string;\n sandbox?: string;\n src?: string;\n srcDoc?: string;\n width?: number | string;\n}\n\nexport type IframeHTMLAttributes = WithKey<WithSignals<BaseIframeHTMLAttributes>>;\n\ninterface BaseTableHTMLAttributes extends BaseHTMLAttributes<HTMLTableElement> {\n cellPadding?: number | string;\n cellSpacing?: number | string;\n}\n\nexport type TableHTMLAttributes = WithKey<WithSignals<BaseTableHTMLAttributes>>;\n\ninterface BaseTdHTMLAttributes extends BaseHTMLAttributes<HTMLTableCellElement> {\n colSpan?: number;\n headers?: string;\n rowSpan?: number;\n}\n\nexport type TdHTMLAttributes = WithKey<WithSignals<BaseTdHTMLAttributes>>;\n\ninterface BaseThHTMLAttributes extends BaseHTMLAttributes<HTMLTableCellElement> {\n abbr?: string;\n colSpan?: number;\n headers?: string;\n rowSpan?: number;\n scope?: \"col\" | \"row\" | \"colgroup\" | \"rowgroup\";\n}\n\nexport type ThHTMLAttributes = WithKey<WithSignals<BaseThHTMLAttributes>>;\n\ninterface BaseStyleHTMLAttributes extends BaseHTMLAttributes<HTMLStyleElement> {\n media?: string;\n scoped?: boolean;\n type?: string;\n}\n\nexport type StyleHTMLAttributes = WithKey<WithSignals<BaseStyleHTMLAttributes>>;\n\ninterface BaseScriptHTMLAttributes extends BaseHTMLAttributes<HTMLScriptElement> {\n async?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n defer?: boolean;\n integrity?: string;\n noModule?: boolean;\n referrerPolicy?: string;\n src?: string;\n type?: string;\n}\n\nexport type ScriptHTMLAttributes = WithKey<WithSignals<BaseScriptHTMLAttributes>>;\n\ninterface BaseLinkHTMLAttributes extends BaseHTMLAttributes<HTMLLinkElement> {\n as?: string;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n href?: string;\n hrefLang?: string;\n integrity?: string;\n media?: string;\n referrerPolicy?: string;\n rel?: string;\n sizes?: string;\n type?: string;\n}\n\nexport type LinkHTMLAttributes = WithKey<WithSignals<BaseLinkHTMLAttributes>>;\n\ninterface BaseMetaHTMLAttributes extends BaseHTMLAttributes<HTMLMetaElement> {\n charSet?: string;\n content?: string;\n httpEquiv?: string;\n name?: string;\n}\n\nexport type MetaHTMLAttributes = WithKey<WithSignals<BaseMetaHTMLAttributes>>;\n\n/**\n * SVG element attributes — permissive to cover SVG's large attribute set\n */\nexport type SVGAttributes = HTMLAttributes<SVGElement> & {\n [key: string]: unknown;\n};\n\n/**\n * JSX namespace for DOM elements\n */\nexport namespace JSX {\n // JSX factory returns sync VNodes\n export type Element = VNode;\n\n export type ElementType =\n | keyof IntrinsicElements\n | ((props: any) => JSXNode)\n | ((props: any, ctx: ComponentAPI) => JSXNode);\n\n export interface ElementChildrenAttribute {\n children: {};\n }\n\n export interface IntrinsicAttributes {\n key?: string | number;\n }\n\n export interface IntrinsicElements {\n // Document structure\n html: HTMLAttributes<HTMLHtmlElement>;\n head: HTMLAttributes<HTMLHeadElement>;\n body: HTMLAttributes<HTMLBodyElement>;\n title: HTMLAttributes<HTMLTitleElement>;\n meta: MetaHTMLAttributes;\n link: LinkHTMLAttributes;\n style: StyleHTMLAttributes;\n script: ScriptHTMLAttributes;\n\n // Content sectioning\n header: HTMLAttributes<HTMLElement>;\n footer: HTMLAttributes<HTMLElement>;\n main: HTMLAttributes<HTMLElement>;\n nav: HTMLAttributes<HTMLElement>;\n section: HTMLAttributes<HTMLElement>;\n article: HTMLAttributes<HTMLElement>;\n aside: HTMLAttributes<HTMLElement>;\n h1: HTMLAttributes<HTMLHeadingElement>;\n h2: HTMLAttributes<HTMLHeadingElement>;\n h3: HTMLAttributes<HTMLHeadingElement>;\n h4: HTMLAttributes<HTMLHeadingElement>;\n h5: HTMLAttributes<HTMLHeadingElement>;\n h6: HTMLAttributes<HTMLHeadingElement>;\n\n // Text content\n div: HTMLAttributes<HTMLDivElement>;\n p: HTMLAttributes<HTMLParagraphElement>;\n span: HTMLAttributes<HTMLSpanElement>;\n pre: HTMLAttributes<HTMLPreElement>;\n code: HTMLAttributes<HTMLElement>;\n blockquote: HTMLAttributes<HTMLQuoteElement>;\n hr: HTMLAttributes<HTMLHRElement>;\n br: HTMLAttributes<HTMLBRElement>;\n\n // Lists\n ul: HTMLAttributes<HTMLUListElement>;\n ol: HTMLAttributes<HTMLOListElement>;\n li: HTMLAttributes<HTMLLIElement>;\n dl: HTMLAttributes<HTMLDListElement>;\n dt: HTMLAttributes<HTMLElement>;\n dd: HTMLAttributes<HTMLElement>;\n\n // Inline text semantics\n a: AnchorHTMLAttributes;\n strong: HTMLAttributes<HTMLElement>;\n em: HTMLAttributes<HTMLElement>;\n b: HTMLAttributes<HTMLElement>;\n i: HTMLAttributes<HTMLElement>;\n u: HTMLAttributes<HTMLElement>;\n s: HTMLAttributes<HTMLElement>;\n small: HTMLAttributes<HTMLElement>;\n mark: HTMLAttributes<HTMLElement>;\n abbr: HTMLAttributes<HTMLElement>;\n cite: HTMLAttributes<HTMLElement>;\n q: HTMLAttributes<HTMLQuoteElement>;\n kbd: HTMLAttributes<HTMLElement>;\n sub: HTMLAttributes<HTMLElement>;\n sup: HTMLAttributes<HTMLElement>;\n time: HTMLAttributes<HTMLTimeElement>;\n\n // Forms\n form: FormHTMLAttributes;\n input: InputHTMLAttributes;\n textarea: TextareaHTMLAttributes;\n button: ButtonHTMLAttributes;\n select: SelectHTMLAttributes;\n option: OptionHTMLAttributes;\n optgroup: HTMLAttributes<HTMLOptGroupElement>;\n label: LabelHTMLAttributes;\n fieldset: HTMLAttributes<HTMLFieldSetElement>;\n legend: HTMLAttributes<HTMLLegendElement>;\n\n // Tables\n table: TableHTMLAttributes;\n thead: HTMLAttributes<HTMLTableSectionElement>;\n tbody: HTMLAttributes<HTMLTableSectionElement>;\n tfoot: HTMLAttributes<HTMLTableSectionElement>;\n tr: HTMLAttributes<HTMLTableRowElement>;\n th: ThHTMLAttributes;\n td: TdHTMLAttributes;\n caption: HTMLAttributes<HTMLTableCaptionElement>;\n colgroup: HTMLAttributes<HTMLTableColElement>;\n col: HTMLAttributes<HTMLTableColElement>;\n\n // Media\n img: ImgHTMLAttributes;\n video: VideoHTMLAttributes;\n audio: AudioHTMLAttributes;\n source: HTMLAttributes<HTMLSourceElement>;\n track: HTMLAttributes<HTMLTrackElement>;\n canvas: CanvasHTMLAttributes;\n svg: SVGAttributes;\n\n // SVG child elements\n circle: SVGAttributes;\n clipPath: SVGAttributes;\n defs: SVGAttributes;\n ellipse: SVGAttributes;\n g: SVGAttributes;\n line: SVGAttributes;\n linearGradient: SVGAttributes;\n mask: SVGAttributes;\n path: SVGAttributes;\n polygon: SVGAttributes;\n polyline: SVGAttributes;\n radialGradient: SVGAttributes;\n rect: SVGAttributes;\n stop: SVGAttributes;\n text: SVGAttributes;\n use: SVGAttributes;\n\n // Embedded content\n iframe: IframeHTMLAttributes;\n embed: HTMLAttributes<HTMLEmbedElement>;\n object: HTMLAttributes<HTMLObjectElement>;\n param: HTMLAttributes<HTMLParamElement>;\n picture: HTMLAttributes<HTMLPictureElement>;\n\n // Interactive elements\n details: HTMLAttributes<HTMLDetailsElement>;\n summary: HTMLAttributes<HTMLElement>;\n dialog: HTMLAttributes<HTMLDialogElement>;\n menu: HTMLAttributes<HTMLMenuElement>;\n\n // Web Components\n slot: HTMLAttributes<HTMLSlotElement>;\n template: HTMLAttributes<HTMLTemplateElement>;\n }\n}\n"],"mappings":""}
|
|
@@ -359,7 +359,7 @@ var SSG = class {
|
|
|
359
359
|
},
|
|
360
360
|
vite: { build: { rollupOptions: { external: [] } } }
|
|
361
361
|
});
|
|
362
|
-
for (const plugin of this.plugins) await plugin.buildEnd?.(result);
|
|
362
|
+
for (const plugin of this.plugins) await plugin.buildEnd?.(result, this);
|
|
363
363
|
return result;
|
|
364
364
|
} finally {
|
|
365
365
|
await this.app.close();
|
|
@@ -865,4 +865,4 @@ function createSource(options) {
|
|
|
865
865
|
|
|
866
866
|
//#endregion
|
|
867
867
|
export { DefaultDocument as _, remoteSource as a, FileSource as c, defineCollection as d, SSG as f, RawHTML as g, createMDXProcessor as h, RemoteSource as i, fileSource as l, MDXProcessor as m, CustomSource as n, GitSource as o, createSSG as p, createSource as r, gitSource as s, z$1 as t, BaseSource as u, __exportAll as v, __require as y };
|
|
868
|
-
//# sourceMappingURL=src-
|
|
868
|
+
//# sourceMappingURL=src-L88LbwEv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-L88LbwEv.mjs","names":["fsWatch"],"sources":["../../ssg/src/document.tsx","../../ssg/src/types.ts","../../ssg/src/mdx/processor.ts","../../ssg/src/mdx/vite-plugin.ts","../../ssg/src/ssg.ts","../../ssg/src/collection/index.ts","../../ssg/src/sources/base.ts","../../ssg/src/sources/file.ts","../../ssg/src/sources/git.ts","../../ssg/src/sources/remote.ts","../../ssg/src/sources/custom.ts"],"sourcesContent":["/** @jsxImportSource @semajsx/dom */\n\nimport type { DocumentTemplate } from \"./types\";\n\n/**\n * Default HTML document template for SSG\n */\nexport const DefaultDocument: DocumentTemplate = ({\n children,\n title = \"SSG Page\",\n scripts,\n css,\n}) => (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>{title}</title>\n {css?.map((href) => (\n <link rel=\"stylesheet\" href={href} />\n ))}\n </head>\n <body>\n {children}\n {scripts}\n </body>\n </html>\n);\n","import type { Component, VNode } from \"@semajsx/core\";\nimport type { z } from \"zod\";\n\n// =============================================================================\n// Collection Registry (for type inference)\n// =============================================================================\n\n/**\n * Infer a registry type from an array of collections\n * Maps collection names to their data types\n */\nexport type InferCollections<T extends readonly Collection[]> = {\n [K in T[number] as K[\"name\"]]: K extends Collection<infer D> ? D : unknown;\n};\n\n// =============================================================================\n// Collection Entry\n// =============================================================================\n\nexport interface CollectionEntry<T = unknown> {\n /** Unique identifier within the collection */\n id: string;\n /** URL-friendly slug */\n slug: string;\n /** Validated frontmatter data */\n data: T;\n /** Raw content body (markdown/mdx) */\n body: string;\n /** Render the content to JSX */\n render: () => Promise<{ Content: () => VNode }>;\n}\n\n// =============================================================================\n// Collection Source\n// =============================================================================\n\nexport interface ChangeSet<T = unknown> {\n /** Cursor for next incremental fetch */\n cursor: string;\n /** Newly added entries */\n added: CollectionEntry<T>[];\n /** Updated entries */\n updated: CollectionEntry<T>[];\n /** Deleted entry IDs */\n deleted: string[];\n}\n\nexport type WatchCallback<T = unknown> = (changes: ChangeSet<T>) => void;\n\nexport interface CollectionSource<T = unknown> {\n /** Unique identifier for this source */\n id: string;\n\n /** Get all entries from this source */\n getEntries(): Promise<CollectionEntry<T>[]>;\n\n /** Get a single entry by ID */\n getEntry(id: string): Promise<CollectionEntry<T> | null>;\n\n /** Watch for changes (optional) */\n watch?(callback: WatchCallback<T>): () => void;\n\n /** Get incremental changes since cursor (optional) */\n getChanges?(since: string): Promise<ChangeSet<T>>;\n}\n\n// =============================================================================\n// Collection Definition\n// =============================================================================\n\nexport interface CollectionConfig<T extends z.ZodType = z.ZodType> {\n /** Collection name */\n name: string;\n /** Data source (returns raw entries, validated against schema later) */\n source: CollectionSource<unknown>;\n /** Zod schema for validation */\n schema: T;\n}\n\nexport interface Collection<T = unknown> {\n name: string;\n source: CollectionSource<unknown>;\n schema: z.ZodType;\n /** Type-only field for inference */\n _outputType?: T;\n}\n\n// =============================================================================\n// Route Configuration\n// =============================================================================\n\nexport interface StaticPath<P = Record<string, string>> {\n params: P;\n props?: Record<string, unknown>;\n}\n\nexport interface RouteConfig<TRegistry extends Record<string, unknown> = Record<string, unknown>> {\n /** Route path pattern (e.g., '/blog/:slug') */\n path: string;\n /** Component to render. Props are provided dynamically by the route config. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Route props are dynamic, typed via `props`/`getStaticPaths`\n component: (props: any) => VNode;\n /** Static props for the route */\n props?:\n | Record<string, unknown>\n | ((ssg: SSGInstance<TRegistry>) => Promise<Record<string, unknown>>);\n /** Generate static paths for dynamic routes */\n getStaticPaths?: (ssg: SSGInstance<TRegistry>) => Promise<StaticPath[]>;\n}\n\n// =============================================================================\n// MDX Configuration\n// =============================================================================\n\nexport interface MDXConfig {\n /** Remark plugins */\n remarkPlugins?: unknown[];\n /** Rehype plugins */\n rehypePlugins?: unknown[];\n /** Component mapping for MDX */\n components?: Record<string, Component>;\n}\n\n// =============================================================================\n// Document Template\n// =============================================================================\n\n/**\n * Raw HTML VNode that can be used directly in JSX or converted to string\n */\nexport class RawHTML {\n public readonly type = \"div\";\n public readonly props: { dangerouslySetInnerHTML: { __html: string } };\n public readonly children: never[] = [];\n\n constructor(public readonly html: string) {\n this.props = { dangerouslySetInnerHTML: { __html: html } };\n }\n\n toString(): string {\n return this.html;\n }\n}\n\nexport interface DocumentProps {\n /** Rendered page content (VNode with toString) */\n children: RawHTML;\n /** Page title */\n title?: string;\n /** Base URL path */\n base: string;\n /** Route path */\n path: string;\n /** Route props */\n props: Record<string, unknown>;\n /** Script tags for islands (as RawHTML) */\n scripts?: RawHTML;\n /** CSS stylesheet paths */\n css?: string[];\n}\n\nexport type DocumentTemplate = (props: DocumentProps) => VNode;\n\n// =============================================================================\n// Plugin System\n// =============================================================================\n\n/**\n * Partial SSG config that a plugin's config() hook can return.\n * Each field has a defined merge strategy:\n * - mdx: merge (concat arrays, merge component objects)\n * - document: override (last writer wins)\n * - routes: concat\n * - collections: concat\n */\nexport interface SSGPluginConfig {\n mdx?: Partial<MDXConfig>;\n document?: DocumentTemplate;\n routes?: RouteConfig[];\n collections?: readonly Collection[];\n}\n\nexport interface SSGPlugin {\n /** Plugin name for identification and debugging */\n name: string;\n\n /** Plugin ordering: 'pre' runs before normal plugins, 'post' runs after */\n enforce?: \"pre\" | \"post\";\n\n /**\n * Modify SSG config before it is resolved.\n * Return partial config to merge.\n * Called in plugin order: enforce:'pre' → normal → enforce:'post' → user config.\n */\n config?(config: SSGConfig): SSGPluginConfig | void;\n\n /** Called after config is fully resolved. Read-only inspection. */\n configResolved?(config: SSGConfig): void;\n\n /** Called before build starts */\n buildStart?(): void | Promise<void>;\n\n /** Called after build completes. Receives the SSG instance for post-build operations. */\n buildEnd?(result: BuildResult, ssg: SSGInstance): void | Promise<void>;\n}\n\n// =============================================================================\n// SSG Configuration\n// =============================================================================\n\nexport interface SSGConfig<\n TCollections extends readonly Collection[] = Collection[],\n TRegistry extends Record<string, unknown> = InferCollections<TCollections>,\n> {\n /** Output directory for built files */\n outDir: string;\n /** Root directory for resolving relative paths (defaults to script location) */\n rootDir?: string;\n /** Base URL path */\n base?: string;\n /** Collections to include */\n collections?: TCollections;\n /** Route definitions */\n routes?: RouteConfig<TRegistry>[];\n /** Plugins that contribute remark/rehype plugins and components.\n * Plugin factories may return arrays (Vite-style); nested arrays are flattened. */\n plugins?: (SSGPlugin | SSGPlugin[])[];\n /** MDX configuration (merged after plugins, takes precedence) */\n mdx?: MDXConfig;\n /** Custom document template */\n document?: DocumentTemplate;\n}\n\n// =============================================================================\n// Build State & Result\n// =============================================================================\n\nexport interface BuildState {\n /** Cursor for each collection */\n cursors: Record<string, string>;\n /** Content hash for each page */\n pageHashes: Record<string, string>;\n /** Last build timestamp */\n timestamp: number;\n}\n\nexport interface BuildResult {\n /** New build state for incremental builds */\n state: BuildState;\n /** Paths that were built */\n paths: string[];\n /** Build statistics */\n stats: {\n added: number;\n updated: number;\n deleted: number;\n unchanged: number;\n };\n}\n\nexport interface BuildOptions {\n /** Enable incremental build */\n incremental?: boolean;\n /** Previous build state */\n state?: BuildState;\n /** Only build specific collections */\n collections?: string[];\n}\n\n// =============================================================================\n// Watcher\n// =============================================================================\n\nexport interface WatchOptions {\n /** Callback when rebuild completes */\n onRebuild?: (result: BuildResult) => void;\n /** Callback on error */\n onError?: (error: Error) => void;\n}\n\nexport interface Watcher {\n /** Stop watching */\n close(): void;\n}\n\n// =============================================================================\n// SSG Instance\n// =============================================================================\n\nexport interface SSGInstance<TRegistry extends Record<string, unknown> = Record<string, unknown>> {\n /** Get the root directory for resolving paths */\n getRootDir(): string;\n\n /** Get all entries from a collection */\n getCollection<K extends keyof TRegistry & string>(\n name: K,\n ): Promise<CollectionEntry<TRegistry[K]>[]>;\n\n /** Get a single entry from a collection */\n getEntry<K extends keyof TRegistry & string>(\n name: K,\n id: string,\n ): Promise<CollectionEntry<TRegistry[K]> | null>;\n\n /** Build the static site */\n build(options?: BuildOptions): Promise<BuildResult>;\n\n /** Watch for changes and rebuild */\n watch(options?: WatchOptions): Watcher;\n}\n","import { compile } from \"@mdx-js/mdx\";\nimport type { Pluggable } from \"unified\";\nimport type { VNode } from \"@semajsx/core\";\nimport type { MDXConfig, MDXCompileResult, Heading } from \"./types\";\n\n/**\n * MDX Processor for compiling MDX content to JSX components\n */\nexport class MDXProcessor {\n private config: MDXConfig;\n\n constructor(config: MDXConfig = {}) {\n this.config = config;\n }\n\n /**\n * Compile MDX content to a JSX component\n */\n async compile(\n content: string,\n frontmatter: Record<string, unknown> = {},\n ): Promise<MDXCompileResult> {\n // Extract headings for table of contents\n const headings = this.extractHeadings(content);\n\n // Compile MDX to JavaScript\n const compiled = await compile(content, {\n outputFormat: \"function-body\",\n development: false,\n remarkPlugins: (this.config.remarkPlugins ?? []) as Pluggable[],\n rehypePlugins: (this.config.rehypePlugins ?? []) as Pluggable[],\n // Use SemaJSX runtime\n jsxImportSource: \"semajsx/dom\",\n });\n\n // Dynamic import of JSX runtime\n const jsxRuntime = await import(\"semajsx/dom/jsx-runtime\");\n\n // Create the Content component\n const Content = this.createComponent(\n String(compiled),\n this.config.components ?? {},\n jsxRuntime,\n );\n\n return {\n Content,\n frontmatter,\n headings,\n };\n }\n\n /**\n * Create a component from compiled MDX code\n */\n private createComponent(\n code: string,\n components: Record<string, (props: Record<string, unknown>) => VNode>,\n jsxRuntime: unknown,\n ): (props?: Record<string, unknown>) => VNode {\n // Import JSX runtime\n // This will be resolved at runtime\n return (props: Record<string, unknown> = {}) => {\n try {\n // Create a function from the MDX compiled code\n // MDX compiled code expects jsx runtime in arguments[0]\n // By using new Function() with no parameters, we can pass\n // the runtime via call() and it becomes arguments[0]\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(code + \"\\nreturn MDXContent;\");\n\n // Call with jsxRuntime as arguments[0]\n // MDX returns an object with default export\n const result = fn.call(null, jsxRuntime) as {\n default: (props: Record<string, unknown>) => VNode;\n };\n return result.default({ ...props, components });\n } catch (e) {\n // Fallback for when runtime is not available\n throw new Error(`MDX rendering failed: ${(e as Error).message}`);\n }\n };\n }\n\n /**\n * Extract headings from markdown content\n */\n private extractHeadings(content: string): Heading[] {\n const headings: Heading[] = [];\n const headingRegex = /^(#{1,6})\\s+(.+)$/gm;\n\n let match;\n while ((match = headingRegex.exec(content)) !== null) {\n const hashes = match[1];\n const rawText = match[2];\n if (!hashes || !rawText) continue;\n\n const depth = hashes.length;\n const text = rawText.trim();\n const slug = this.slugify(text);\n\n headings.push({ depth, text, slug });\n }\n\n return headings;\n }\n\n /**\n * Convert text to URL-friendly slug\n */\n private slugify(text: string): string {\n return text\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/\\s+/g, \"-\")\n .replace(/-+/g, \"-\")\n .trim();\n }\n}\n\n/**\n * Create an MDX processor instance\n */\nexport function createMDXProcessor(config?: MDXConfig): MDXProcessor {\n return new MDXProcessor(config);\n}\n","import { compile } from \"@mdx-js/mdx\";\nimport type { Plugin, PluginOption } from \"vite\";\nimport type { Pluggable } from \"unified\";\n\n/**\n * MDX plugin options\n */\nexport interface MDXPluginOptions {\n /** Remark plugins */\n remarkPlugins?: unknown[];\n /** Rehype plugins */\n rehypePlugins?: unknown[];\n}\n\n/**\n * Vite plugin for MDX support\n * Transforms .mdx files to JSX modules\n */\nexport function viteMDXPlugin(options: MDXPluginOptions = {}): PluginOption {\n const plugin: Plugin = {\n name: \"semajsx-mdx\",\n\n async transform(code: string, id: string) {\n // Only transform .mdx files\n if (!id.endsWith(\".mdx\")) {\n return null;\n }\n\n try {\n // Compile MDX to JavaScript (not JSX)\n const compiled = await compile(code, {\n jsxImportSource: \"semajsx/dom\",\n outputFormat: \"program\",\n development: false,\n remarkPlugins: (options.remarkPlugins ?? []) as Pluggable[],\n rehypePlugins: (options.rehypePlugins ?? []) as Pluggable[],\n });\n\n return {\n code: String(compiled),\n map: null,\n };\n } catch (error) {\n const err = error as Error;\n throw new Error(`MDX compilation failed for ${id}: ${err.message}`);\n }\n },\n };\n\n return plugin;\n}\n","import { mkdir, writeFile, rm } from \"fs/promises\";\nimport { join, dirname, resolve } from \"path\";\nimport { createApp, renderDocument } from \"@semajsx/ssr\";\nimport type { App, RouteContext } from \"@semajsx/ssr\";\nimport { DefaultDocument } from \"./document\";\nimport type { VNode } from \"@semajsx/core\";\nimport {\n RawHTML,\n type SSGConfig,\n type SSGPlugin,\n type SSGInstance,\n type MDXConfig,\n type RouteConfig,\n type DocumentTemplate,\n type Collection,\n type CollectionEntry,\n type BuildOptions,\n type BuildResult,\n type BuildState,\n type WatchOptions,\n type Watcher,\n type DocumentProps,\n type InferCollections,\n} from \"./types\";\nimport { viteMDXPlugin } from \"./mdx\";\n\n/**\n * Sort plugins by enforce order: 'pre' → normal → 'post'\n */\nfunction sortPlugins(plugins: SSGPlugin[]): SSGPlugin[] {\n const pre: SSGPlugin[] = [];\n const normal: SSGPlugin[] = [];\n const post: SSGPlugin[] = [];\n\n for (const plugin of plugins) {\n if (plugin.enforce === \"pre\") pre.push(plugin);\n else if (plugin.enforce === \"post\") post.push(plugin);\n else normal.push(plugin);\n }\n\n return [...pre, ...normal, ...post];\n}\n\n/**\n * Merge a partial MDX config into an existing one.\n */\nfunction mergeMdxConfig(base: MDXConfig, partial: Partial<MDXConfig>): MDXConfig {\n return {\n remarkPlugins: [...(base.remarkPlugins ?? []), ...(partial.remarkPlugins ?? [])],\n rehypePlugins: [...(base.rehypePlugins ?? []), ...(partial.rehypePlugins ?? [])],\n components: { ...base.components, ...partial.components },\n };\n}\n\n/**\n * Resolved config produced by running all plugin config hooks.\n */\ninterface ResolvedPluginConfig {\n mdx: MDXConfig;\n document?: DocumentTemplate;\n routes: RouteConfig[];\n collections: Collection[];\n}\n\n/**\n * Result of plugin resolution: merged config + flat list of all plugins.\n */\ninterface PluginResolutionResult {\n config: ResolvedPluginConfig;\n allPlugins: SSGPlugin[];\n}\n\n/**\n * Run config hooks on all plugins, then merge with user config.\n *\n * Plugin arrays are flattened Vite-style: plugin factories may return\n * `SSGPlugin | SSGPlugin[]`, and the top-level array is `.flat()`-ed\n * before sorting and processing.\n *\n * Merge strategies:\n * - mdx: merge (concat arrays, merge component objects)\n * - document: override (last writer wins, user config last)\n * - routes: concat (plugin routes first, then user routes)\n * - collections: concat (plugin collections first, then user collections)\n */\nfunction resolvePlugins(\n plugins: (SSGPlugin | SSGPlugin[])[],\n config: SSGConfig,\n): PluginResolutionResult {\n // Vite-style: flatten nested arrays from plugin factories\n const flat = plugins.flat();\n const sorted = sortPlugins(flat);\n\n let mdx: MDXConfig = { remarkPlugins: [], rehypePlugins: [], components: {} };\n let document: DocumentTemplate | undefined;\n const routes: RouteConfig[] = [];\n const collections: Collection[] = [];\n\n // Call config hooks in order\n for (const plugin of sorted) {\n if (!plugin.config) continue;\n const partial = plugin.config(config);\n if (!partial) continue;\n\n if (partial.mdx) mdx = mergeMdxConfig(mdx, partial.mdx);\n if (partial.document) document = partial.document;\n if (partial.routes) routes.push(...partial.routes);\n if (partial.collections) collections.push(...partial.collections);\n }\n\n // User config takes precedence (applied last)\n if (config.mdx) mdx = mergeMdxConfig(mdx, config.mdx);\n if (config.document) document = config.document;\n if (config.routes) routes.push(...config.routes);\n if (config.collections) collections.push(...config.collections);\n\n return { config: { mdx, document, routes, collections }, allPlugins: sorted };\n}\n\n/**\n * SSG (Static Site Generator) core class\n * Built on top of server's createApp\n */\nexport class SSG<\n TRegistry extends Record<string, unknown> = Record<string, unknown>,\n> implements SSGInstance<TRegistry> {\n private config: SSGConfig;\n private plugins: SSGPlugin[];\n private rootDir: string;\n private collections: Map<string, Collection>;\n private entriesCache: Map<string, CollectionEntry[]>;\n private app: App;\n private mdxModules: Map<string, string> = new Map();\n\n constructor(config: SSGConfig) {\n // Resolve rootDir\n this.rootDir = config.rootDir ?? process.cwd();\n\n // Run config hooks — merges plugins + user config, collects all plugins (including nested)\n const { config: resolved, allPlugins } = resolvePlugins(config.plugins ?? [], config);\n\n // Store all plugins (including sub-plugins) for lifecycle hooks\n this.plugins = allPlugins;\n\n this.config = {\n base: \"/\",\n ...config,\n mdx: resolved.mdx,\n document: resolved.document,\n routes: resolved.routes,\n collections: resolved.collections,\n outDir: resolve(this.rootDir, config.outDir),\n };\n\n // Call configResolved on all plugins\n for (const plugin of this.plugins) {\n plugin.configResolved?.(this.config);\n }\n this.collections = new Map();\n this.entriesCache = new Map();\n\n // Create App with MDX plugins\n this.app = createApp({\n root: this.rootDir,\n vite: {\n plugins: [\n // Virtual MDX content modules\n {\n name: \"ssg-virtual-mdx\",\n resolveId: (id: string) => {\n if (id.startsWith(\"virtual:mdx:\")) {\n return \"\\0\" + id;\n }\n },\n load: (id: string) => {\n if (id.startsWith(\"\\0virtual:mdx:\")) {\n const mdxId = id.replace(\"\\0virtual:mdx:\", \"\");\n return this.mdxModules.get(mdxId);\n }\n },\n },\n // MDX compiler plugin\n viteMDXPlugin(resolved.mdx),\n ],\n },\n });\n\n // Register collections (from resolved config — plugins + user)\n for (const collection of this.config.collections ?? []) {\n this.collections.set(collection.name, collection);\n }\n }\n\n getRootDir(): string {\n return this.rootDir;\n }\n\n async getCollection<K extends keyof TRegistry & string>(\n name: K,\n ): Promise<CollectionEntry<TRegistry[K]>[]> {\n const collection = this.collections.get(name);\n if (!collection) {\n throw new Error(`Collection \"${name}\" not found`);\n }\n\n if (this.entriesCache.has(name)) {\n return this.entriesCache.get(name) as CollectionEntry<TRegistry[K]>[];\n }\n\n const entries = await collection.source.getEntries();\n\n const validatedEntries = entries.map((entry) => {\n const result = collection.schema.safeParse(entry.data);\n if (!result.success) {\n throw new Error(`Validation error in ${name}/${entry.id}: ${result.error.message}`);\n }\n\n return {\n ...entry,\n data: result.data,\n render: async () => {\n // Get Vite server from app\n const vite = this.app.getViteServer();\n if (!vite) {\n throw new Error(\"Vite server not initialized\");\n }\n\n // Store MDX content as virtual module\n const mdxId = `${name}/${entry.id}.mdx`;\n this.mdxModules.set(mdxId, entry.body);\n\n try {\n // Load module through Vite SSR\n const moduleExports = (await vite.ssrLoadModule(`virtual:mdx:${mdxId}`)) as {\n default: (props: Record<string, unknown>) => unknown;\n };\n\n const Content = (props: Record<string, unknown> = {}): VNode =>\n moduleExports.default({\n ...props,\n components: this.config.mdx?.components ?? {},\n }) as VNode;\n\n return {\n Content,\n headings: this.extractHeadings(entry.body),\n };\n } finally {\n this.mdxModules.delete(mdxId);\n }\n },\n };\n });\n\n this.entriesCache.set(name, validatedEntries);\n return validatedEntries as CollectionEntry<TRegistry[K]>[];\n }\n\n async getEntry<K extends keyof TRegistry & string>(\n name: K,\n id: string,\n ): Promise<CollectionEntry<TRegistry[K]> | null> {\n const entries = await this.getCollection(name);\n return entries.find((e) => e.id === id || e.slug === id) ?? null;\n }\n\n async build(options: BuildOptions = {}): Promise<BuildResult> {\n const { incremental = false, state: prevState } = options;\n const outDir = this.config.outDir;\n\n // Plugin hook: buildStart\n for (const plugin of this.plugins) {\n await plugin.buildStart?.();\n }\n\n // Initialize App (starts Vite)\n await this.app.prepare();\n\n try {\n // Register routes with App\n await this.registerRoutes();\n\n // Build all pages\n const result = await this.buildPages(incremental, prevState, outDir);\n\n // Build islands for client-side hydration\n // Pass renderHtml so the Vite build uses the SSG's Document template\n // instead of a hardcoded minimal HTML template\n const documentTemplate = this.config.document ?? DefaultDocument;\n await this.app.build({\n outDir,\n mode: \"full\",\n minify: true,\n renderHtml: ({ html, css, scripts, title, path: routePath }) => {\n const scriptsHtml = scripts\n .map((s) => `<script type=\"module\" src=\"${s.src}\"></script>`)\n .join(\"\\n\");\n const documentProps: DocumentProps = {\n children: new RawHTML(html),\n title,\n base: this.config.base ?? \"/\",\n path: routePath,\n props: {},\n scripts: scriptsHtml ? new RawHTML(scriptsHtml) : undefined,\n css: css ?? [],\n };\n const documentVNode = documentTemplate(documentProps);\n return renderDocument(documentVNode);\n },\n vite: {\n build: {\n rollupOptions: {\n // Don't externalize for SSG - bundle everything\n external: [],\n },\n },\n },\n });\n\n // Plugin hook: buildEnd\n for (const plugin of this.plugins) {\n await plugin.buildEnd?.(result, this);\n }\n\n return result;\n } finally {\n await this.app.close();\n }\n }\n\n private async registerRoutes(): Promise<void> {\n const routes = this.config.routes ?? [];\n\n for (const route of routes) {\n if (route.getStaticPaths) {\n // Dynamic route - register each path\n const staticPaths = await route.getStaticPaths(this);\n for (const sp of staticPaths) {\n const path = this.applyParams(route.path, sp.params);\n const props: Record<string, unknown> = { ...sp.props, params: sp.params };\n\n this.app.route(\n path,\n (_context: RouteContext) => {\n return route.component(props);\n },\n { title: props.title as string | undefined },\n );\n }\n } else {\n // Static route\n let props: Record<string, unknown> = {};\n if (typeof route.props === \"function\") {\n props = await route.props(this);\n } else if (route.props) {\n props = route.props;\n }\n\n this.app.route(\n route.path,\n (_context: RouteContext) => {\n return route.component(props);\n },\n { title: props.title as string | undefined },\n );\n }\n }\n }\n\n private async buildPages(\n incremental: boolean,\n prevState: BuildState | undefined,\n outDir: string,\n ): Promise<BuildResult> {\n const state: BuildState = {\n cursors: {},\n pageHashes: {},\n timestamp: Date.now(),\n };\n\n const stats = { added: 0, updated: 0, deleted: 0, unchanged: 0 };\n const builtPaths: string[] = [];\n\n if (!incremental) {\n await rm(outDir, { recursive: true, force: true });\n }\n await mkdir(outDir, { recursive: true });\n\n this.entriesCache.clear();\n\n // Get all paths to build\n const allPaths = await this.generateAllPaths();\n const currentPaths = new Set(allPaths.map((p) => p.path));\n\n // Delete removed pages\n if (incremental && prevState) {\n for (const oldPath of Object.keys(prevState.pageHashes)) {\n if (!currentPaths.has(oldPath)) {\n const filePath = this.pathToFilePath(oldPath);\n try {\n await rm(join(outDir, filePath));\n stats.deleted++;\n } catch {\n // ignore\n }\n }\n }\n }\n\n // Build each page\n for (const { path, props } of allPaths) {\n const html = await this.renderPage(path, props);\n const hash = this.hashContent(html);\n\n const prevHash = prevState?.pageHashes[path];\n const needsWrite = !incremental || !prevHash || prevHash !== hash;\n\n if (needsWrite) {\n const filePath = this.pathToFilePath(path);\n const fullPath = join(outDir, filePath);\n\n await mkdir(dirname(fullPath), { recursive: true });\n await writeFile(fullPath, html);\n\n builtPaths.push(path);\n if (!prevHash) {\n stats.added++;\n } else {\n stats.updated++;\n }\n } else {\n stats.unchanged++;\n }\n\n state.pageHashes[path] = hash;\n }\n\n for (const [name, collection] of this.collections) {\n if (collection.source.getChanges) {\n state.cursors[name] = Date.now().toString();\n }\n }\n\n return { state, paths: builtPaths, stats };\n }\n\n private async renderPage(path: string, props: Record<string, unknown>): Promise<string> {\n // Use App to render the page\n const result = await this.app.render(path);\n\n // Wrap with document template\n const documentProps: DocumentProps = {\n children: new RawHTML(result.html),\n title: props.title as string | undefined,\n base: this.config.base ?? \"/\",\n path,\n props,\n scripts: result.scripts ? new RawHTML(result.scripts) : undefined,\n css: result.css ?? [],\n };\n\n const template = this.config.document ?? DefaultDocument;\n const documentVNode = template(documentProps);\n\n return renderDocument(documentVNode);\n }\n\n private async generateAllPaths(): Promise<\n Array<{ path: string; props: Record<string, unknown> }>\n > {\n const paths: Array<{ path: string; props: Record<string, unknown> }> = [];\n const routes = this.config.routes ?? [];\n\n for (const route of routes) {\n if (route.getStaticPaths) {\n const staticPaths = await route.getStaticPaths(this);\n for (const sp of staticPaths) {\n const path = this.applyParams(route.path, sp.params);\n paths.push({ path, props: { ...sp.props, params: sp.params } });\n }\n } else {\n let props: Record<string, unknown> = {};\n if (typeof route.props === \"function\") {\n props = await route.props(this);\n } else if (route.props) {\n props = route.props;\n }\n paths.push({ path: route.path, props });\n }\n }\n\n return paths;\n }\n\n watch(options: WatchOptions = {}): Watcher {\n const unsubscribers: (() => void)[] = [];\n\n for (const [name, collection] of this.collections) {\n if (collection.source.watch) {\n const unsubscribe = collection.source.watch(async () => {\n try {\n this.entriesCache.delete(name);\n const result = await this.build({ incremental: true });\n options.onRebuild?.(result);\n } catch (error) {\n options.onError?.(error as Error);\n }\n });\n unsubscribers.push(unsubscribe);\n }\n }\n\n return {\n close: () => unsubscribers.forEach((fn) => fn()),\n };\n }\n\n private pathToFilePath(urlPath: string): string {\n if (urlPath === \"/\") return \"index.html\";\n return `${urlPath.slice(1)}/index.html`;\n }\n\n private applyParams(pattern: string, params: Record<string, string>): string {\n let path = pattern;\n for (const [key, value] of Object.entries(params)) {\n path = path.replace(`:${key}`, value);\n }\n return path;\n }\n\n private hashContent(content: string): string {\n let hash = 0;\n for (let i = 0; i < content.length; i++) {\n const char = content.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return hash.toString(16);\n }\n\n private extractHeadings(content: string): Array<{ depth: number; text: string; slug: string }> {\n const headings: Array<{ depth: number; text: string; slug: string }> = [];\n const regex = /^(#{1,6})\\s+(.+)$/gm;\n\n let match;\n while ((match = regex.exec(content)) !== null) {\n if (!match[1] || !match[2]) continue;\n const depth = match[1].length;\n const text = match[2].trim();\n const slug = text\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/\\s+/g, \"-\");\n headings.push({ depth, text, slug });\n }\n\n return headings;\n }\n}\n\nexport function createSSG<\n const TCollections extends readonly Collection[],\n TRegistry extends Record<string, unknown> = InferCollections<TCollections>,\n>(config: SSGConfig<TCollections, TRegistry>): SSGInstance<TRegistry> {\n return new SSG<TRegistry>(config as unknown as SSGConfig);\n}\n","import type { z } from \"zod\";\nimport type { Collection, CollectionConfig } from \"../types\";\n\n/**\n * Define a collection with schema validation\n */\nexport function defineCollection<T extends z.ZodType>(\n config: CollectionConfig<T>,\n): Collection<z.infer<T>> {\n return {\n name: config.name,\n source: config.source,\n schema: config.schema,\n };\n}\n\nexport type { Collection, CollectionConfig, CollectionEntry } from \"../types\";\n","import type { CollectionSource, CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\n\n/**\n * Base class for collection sources\n */\nexport abstract class BaseSource<T = unknown> implements CollectionSource<T> {\n abstract id: string;\n\n abstract getEntries(): Promise<CollectionEntry<T>[]>;\n\n async getEntry(id: string): Promise<CollectionEntry<T> | null> {\n const entries = await this.getEntries();\n return entries.find((e) => e.id === id) ?? null;\n }\n\n watch?(callback: WatchCallback<T>): () => void;\n\n getChanges?(since: string): Promise<ChangeSet<T>>;\n}\n","import { glob } from \"glob\";\nimport matter from \"gray-matter\";\nimport { readFile, watch as fsWatch } from \"fs/promises\";\nimport { join, relative } from \"path\";\nimport type { CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\nimport type { FileSourceOptions } from \"./types\";\nimport { BaseSource } from \"./base\";\n\n/**\n * File system source for collections\n */\nexport class FileSource<T = unknown> extends BaseSource<T> {\n id: string;\n private directory: string;\n private include: string;\n private shouldWatch: boolean;\n private contentRoot: string;\n\n constructor(options: FileSourceOptions, contentRoot: string = process.cwd()) {\n super();\n this.directory = options.directory;\n this.include = options.include ?? \"**/*.{md,mdx}\";\n this.shouldWatch = options.watch ?? false;\n this.contentRoot = contentRoot;\n this.id = `file:${this.directory}`;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n const dir = join(this.contentRoot, this.directory);\n const pattern = join(dir, this.include);\n const files = await glob(pattern);\n\n const entries = await Promise.all(\n files.map(async (filePath) => {\n const content = await readFile(filePath, \"utf-8\");\n const { data, content: body } = matter(content);\n\n const relativePath = relative(dir, filePath);\n const id = relativePath.replace(/\\.(md|mdx)$/, \"\");\n const slug = id.replace(/\\\\/g, \"/\");\n\n return {\n id,\n slug,\n data: data as T,\n body,\n render: async () => {\n // MDX compilation will be handled by the MDX processor\n return {\n Content: () => {\n throw new Error(\"MDX rendering not yet implemented\");\n },\n };\n },\n };\n }),\n );\n\n return entries;\n }\n\n override watch(callback: WatchCallback<T>): () => void {\n if (!this.shouldWatch) {\n return () => {};\n }\n\n const dir = join(this.contentRoot, this.directory);\n const abortController = new AbortController();\n\n const startWatching = async () => {\n try {\n const watcher = fsWatch(dir, {\n recursive: true,\n signal: abortController.signal,\n });\n\n for await (const _event of watcher) {\n // Debounce and collect changes\n const entries = await this.getEntries();\n callback({\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n });\n }\n } catch (err) {\n if ((err as Error).name !== \"AbortError\") {\n throw err;\n }\n }\n };\n\n startWatching();\n\n return () => {\n abortController.abort();\n };\n }\n\n override async getChanges(_since: string): Promise<ChangeSet<T>> {\n // For file source, we do a full reload\n // A more sophisticated implementation could track file mtimes\n const entries = await this.getEntries();\n return {\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n };\n }\n}\n\n/**\n * Create a file system source\n */\nexport function fileSource<T = unknown>(\n options: FileSourceOptions,\n contentRoot?: string,\n): FileSource<T> {\n return new FileSource<T>(options, contentRoot);\n}\n","import { exec } from \"child_process\";\nimport { promisify } from \"util\";\nimport type { CollectionEntry } from \"../types\";\nimport type { GitSourceOptions, GitCommitSourceOptions, GitTagSourceOptions } from \"./types\";\nimport { BaseSource } from \"./base\";\n\nconst execAsync = promisify(exec);\n\n/**\n * Git source for collections\n */\nexport class GitSource<T = unknown> extends BaseSource<T> {\n id: string;\n private options: GitSourceOptions;\n private cwd: string;\n\n constructor(options: GitSourceOptions, cwd: string = process.cwd()) {\n super();\n this.options = options;\n this.cwd = cwd;\n this.id = `git:${options.type}`;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n if (this.options.type === \"commits\") {\n return this.getCommits(this.options);\n } else {\n return this.getTags(this.options);\n }\n }\n\n private async getCommits(options: GitCommitSourceOptions): Promise<CollectionEntry<T>[]> {\n const args = [\"log\", \"--format=%H|%s|%an|%ae|%aI\"];\n\n if (options.filter?.since) {\n args.push(`--since=${options.filter.since}`);\n }\n if (options.filter?.until) {\n args.push(`--until=${options.filter.until}`);\n }\n if (options.filter?.author) {\n args.push(`--author=${options.filter.author}`);\n }\n if (options.limit) {\n args.push(`-n`, options.limit.toString());\n }\n if (options.filter?.paths?.length) {\n args.push(\"--\", ...options.filter.paths);\n }\n\n const { stdout } = await execAsync(`git ${args.join(\" \")}`, {\n cwd: this.cwd,\n });\n const lines = stdout.trim().split(\"\\n\").filter(Boolean);\n\n return lines.map((line) => {\n const parts = line.split(\"|\");\n const hash = parts[0] ?? \"\";\n const message = parts[1] ?? \"\";\n const author = parts[2] ?? \"\";\n const email = parts[3] ?? \"\";\n const dateStr = parts[4] ?? \"\";\n\n const data = {\n hash,\n message,\n author,\n email,\n date: new Date(dateStr),\n } as unknown as T;\n\n return {\n id: hash,\n slug: hash.slice(0, 7),\n data,\n body: message,\n render: async () => ({\n Content: () => {\n throw new Error(\"Git commits cannot be rendered as content\");\n },\n }),\n };\n });\n }\n\n private async getTags(options: GitTagSourceOptions): Promise<CollectionEntry<T>[]> {\n const pattern = options.pattern ?? \"*\";\n\n // Get tags with date and message\n const { stdout } = await execAsync(\n `git tag -l \"${pattern}\" --format=\"%(refname:short)|%(objectname:short)|%(creatordate:iso)|%(contents:subject)\"`,\n { cwd: this.cwd },\n );\n\n const lines = stdout.trim().split(\"\\n\").filter(Boolean);\n\n return lines.map((line) => {\n const parts = line.split(\"|\");\n const tag = parts[0] ?? \"\";\n const hash = parts[1] ?? \"\";\n const dateStr = parts[2] ?? \"\";\n const message = parts[3] ?? \"\";\n\n const data = {\n tag,\n hash,\n date: new Date(dateStr),\n message: message || undefined,\n } as unknown as T;\n\n return {\n id: tag,\n slug: tag,\n data,\n body: message,\n render: async () => ({\n Content: () => {\n throw new Error(\"Git tags cannot be rendered as content\");\n },\n }),\n };\n });\n }\n}\n\n/**\n * Create a Git source\n */\nexport function gitSource<T = unknown>(options: GitSourceOptions, cwd?: string): GitSource<T> {\n return new GitSource<T>(options, cwd);\n}\n","import type { CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\nimport type { RemoteSourceOptions, WebhookConfig } from \"./types\";\nimport { BaseSource } from \"./base\";\n\n/**\n * Remote API source for collections\n */\nexport class RemoteSource<T = unknown> extends BaseSource<T> {\n id: string;\n private options: RemoteSourceOptions<T>;\n private pollTimer?: ReturnType<typeof setInterval>;\n\n constructor(options: RemoteSourceOptions<T>, id: string = \"remote\") {\n super();\n this.options = options;\n this.id = `remote:${id}`;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n const items = await this.options.fetch();\n\n return items.map((item, index) => {\n const id = (item as Record<string, unknown>).id?.toString() ?? index.toString();\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).content?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Remote content rendering not yet implemented\");\n },\n }),\n };\n });\n }\n\n override async getEntry(id: string): Promise<CollectionEntry<T> | null> {\n if (this.options.fetchOne) {\n const item = await this.options.fetchOne(id);\n if (!item) return null;\n\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).content?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Remote content rendering not yet implemented\");\n },\n }),\n };\n }\n\n return super.getEntry(id);\n }\n\n override watch(callback: WatchCallback<T>): () => void {\n if (this.options.pollInterval) {\n this.pollTimer = setInterval(async () => {\n const entries = await this.getEntries();\n callback({\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n });\n }, this.options.pollInterval);\n\n return () => {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n }\n };\n }\n\n return () => {};\n }\n\n override async getChanges(since: string): Promise<ChangeSet<T>> {\n if (this.options.fetchChanges) {\n return this.options.fetchChanges(since);\n }\n\n // Fallback to full reload\n const entries = await this.getEntries();\n return {\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n };\n }\n\n /**\n * Get webhook configuration for external integration\n */\n getWebhookConfig(): WebhookConfig | undefined {\n return this.options.webhook;\n }\n}\n\n/**\n * Create a remote API source\n */\nexport function remoteSource<T = unknown>(\n options: RemoteSourceOptions<T>,\n id?: string,\n): RemoteSource<T> {\n return new RemoteSource<T>(options, id);\n}\n","import type { CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\nimport type { CustomSourceOptions } from \"./types\";\nimport { BaseSource } from \"./base\";\n\n/**\n * Custom source for collections\n */\nexport class CustomSource<T = unknown> extends BaseSource<T> {\n id: string;\n private options: CustomSourceOptions<T>;\n\n constructor(options: CustomSourceOptions<T>) {\n super();\n this.options = options;\n this.id = options.id;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n const items = await this.options.getEntries();\n\n return items.map((item, index) => {\n const id = (item as Record<string, unknown>).id?.toString() ?? index.toString();\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).body?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Custom content rendering not yet implemented\");\n },\n }),\n };\n });\n }\n\n override async getEntry(id: string): Promise<CollectionEntry<T> | null> {\n if (this.options.getEntry) {\n const item = await this.options.getEntry(id);\n if (!item) return null;\n\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).body?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Custom content rendering not yet implemented\");\n },\n }),\n };\n }\n\n return super.getEntry(id);\n }\n\n override watch(callback: WatchCallback<T>): () => void {\n if (this.options.watch) {\n return this.options.watch(callback);\n }\n return () => {};\n }\n\n override async getChanges(since: string): Promise<ChangeSet<T>> {\n if (this.options.getChanges) {\n return this.options.getChanges(since);\n }\n\n const entries = await this.getEntries();\n return {\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n };\n }\n}\n\n/**\n * Create a custom source\n */\nexport function createSource<T = unknown>(options: CustomSourceOptions<T>): CustomSource<T> {\n return new CustomSource<T>(options);\n}\n"],"mappings":"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"}
|
package/dist/ssg/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as VNode } from "../types-CZMcXQTW.mjs";
|
|
2
|
-
import { S as Watcher, _ as SSGPlugin, a as Collection, b as WatchCallback, c as CollectionSource, d as InferCollections, f as MDXConfig, g as SSGInstance, h as SSGConfig, i as ChangeSet, l as DocumentProps, m as RouteConfig, n as BuildResult, o as CollectionConfig, p as RawHTML, r as BuildState, s as CollectionEntry, t as BuildOptions, u as DocumentTemplate, v as SSGPluginConfig, x as WatchOptions, y as StaticPath } from "../types-
|
|
2
|
+
import { S as Watcher, _ as SSGPlugin, a as Collection, b as WatchCallback, c as CollectionSource, d as InferCollections, f as MDXConfig, g as SSGInstance, h as SSGConfig, i as ChangeSet, l as DocumentProps, m as RouteConfig, n as BuildResult, o as CollectionConfig, p as RawHTML, r as BuildState, s as CollectionEntry, t as BuildOptions, u as DocumentTemplate, v as SSGPluginConfig, x as WatchOptions, y as StaticPath } from "../types-C9fiRu6l.mjs";
|
|
3
3
|
import { PluginOption } from "vite";
|
|
4
4
|
import { z, z as z$1 } from "zod";
|
|
5
5
|
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as DefaultDocument, a as remoteSource, c as FileSource, d as defineCollection, f as SSG, g as RawHTML, h as createMDXProcessor, i as RemoteSource, l as fileSource, m as MDXProcessor, n as CustomSource, o as GitSource, p as createSSG, r as createSource, s as gitSource, t as z, u as BaseSource, y as __require } from "../src-
|
|
1
|
+
import { _ as DefaultDocument, a as remoteSource, c as FileSource, d as defineCollection, f as SSG, g as RawHTML, h as createMDXProcessor, i as RemoteSource, l as fileSource, m as MDXProcessor, n as CustomSource, o as GitSource, p as createSSG, r as createSource, s as gitSource, t as z, u as BaseSource, y as __require } from "../src-L88LbwEv.mjs";
|
|
2
2
|
import "../src-DW3tIczg.mjs";
|
|
3
3
|
import "../src-Ds9vl42d.mjs";
|
|
4
4
|
import "../jsx-runtime-D9ZNjMJ2.mjs";
|