@colletdev/core 0.1.3
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/README.md +77 -0
- package/custom-elements.json +6037 -0
- package/generated/.gitattributes +2 -0
- package/generated/index.d.ts +120 -0
- package/generated/index.js +521 -0
- package/generated/styles.js +2845 -0
- package/package.json +56 -0
- package/src/elements/accordion.d.ts +20 -0
- package/src/elements/accordion.js +92 -0
- package/src/elements/activity_group.d.ts +19 -0
- package/src/elements/activity_group.js +27 -0
- package/src/elements/alert.d.ts +24 -0
- package/src/elements/alert.js +40 -0
- package/src/elements/autocomplete.d.ts +30 -0
- package/src/elements/autocomplete.js +671 -0
- package/src/elements/avatar.d.ts +18 -0
- package/src/elements/avatar.js +28 -0
- package/src/elements/backdrop.d.ts +14 -0
- package/src/elements/backdrop.js +28 -0
- package/src/elements/badge.d.ts +21 -0
- package/src/elements/badge.js +42 -0
- package/src/elements/breadcrumb.d.ts +17 -0
- package/src/elements/breadcrumb.js +41 -0
- package/src/elements/button.d.ts +24 -0
- package/src/elements/button.js +36 -0
- package/src/elements/card.d.ts +21 -0
- package/src/elements/card.js +67 -0
- package/src/elements/carousel.d.ts +23 -0
- package/src/elements/carousel.js +895 -0
- package/src/elements/chat_input.d.ts +22 -0
- package/src/elements/chat_input.js +78 -0
- package/src/elements/checkbox.d.ts +21 -0
- package/src/elements/checkbox.js +114 -0
- package/src/elements/code_block.d.ts +21 -0
- package/src/elements/code_block.js +27 -0
- package/src/elements/collapsible.d.ts +20 -0
- package/src/elements/collapsible.js +93 -0
- package/src/elements/date_picker.d.ts +30 -0
- package/src/elements/date_picker.js +528 -0
- package/src/elements/dialog.d.ts +20 -0
- package/src/elements/dialog.js +314 -0
- package/src/elements/drawer.d.ts +20 -0
- package/src/elements/drawer.js +318 -0
- package/src/elements/fab.d.ts +22 -0
- package/src/elements/fab.js +36 -0
- package/src/elements/file_upload.d.ts +26 -0
- package/src/elements/file_upload.js +59 -0
- package/src/elements/listbox.d.ts +19 -0
- package/src/elements/listbox.js +250 -0
- package/src/elements/menu.d.ts +20 -0
- package/src/elements/menu.js +224 -0
- package/src/elements/message_bubble.d.ts +23 -0
- package/src/elements/message_bubble.js +29 -0
- package/src/elements/message_group.d.ts +18 -0
- package/src/elements/message_group.js +28 -0
- package/src/elements/message_part.d.ts +35 -0
- package/src/elements/message_part.js +153 -0
- package/src/elements/pagination.d.ts +22 -0
- package/src/elements/pagination.js +36 -0
- package/src/elements/popover.d.ts +26 -0
- package/src/elements/popover.js +191 -0
- package/src/elements/profile_menu.d.ts +20 -0
- package/src/elements/profile_menu.js +213 -0
- package/src/elements/progress.d.ts +18 -0
- package/src/elements/progress.js +31 -0
- package/src/elements/radio_group.d.ts +22 -0
- package/src/elements/radio_group.js +70 -0
- package/src/elements/scrollbar.d.ts +19 -0
- package/src/elements/scrollbar.js +299 -0
- package/src/elements/search_bar.d.ts +27 -0
- package/src/elements/search_bar.js +98 -0
- package/src/elements/select.d.ts +26 -0
- package/src/elements/select.js +485 -0
- package/src/elements/sidebar.d.ts +21 -0
- package/src/elements/sidebar.js +322 -0
- package/src/elements/skeleton.d.ts +17 -0
- package/src/elements/skeleton.js +31 -0
- package/src/elements/slider.d.ts +28 -0
- package/src/elements/slider.js +93 -0
- package/src/elements/speed_dial.d.ts +23 -0
- package/src/elements/speed_dial.js +370 -0
- package/src/elements/spinner.d.ts +15 -0
- package/src/elements/spinner.js +28 -0
- package/src/elements/split_button.d.ts +23 -0
- package/src/elements/split_button.js +281 -0
- package/src/elements/stepper.d.ts +20 -0
- package/src/elements/stepper.js +31 -0
- package/src/elements/switch.d.ts +22 -0
- package/src/elements/switch.js +129 -0
- package/src/elements/table.d.ts +29 -0
- package/src/elements/table.js +371 -0
- package/src/elements/tabs.d.ts +19 -0
- package/src/elements/tabs.js +139 -0
- package/src/elements/text.d.ts +26 -0
- package/src/elements/text.js +32 -0
- package/src/elements/text_input.d.ts +36 -0
- package/src/elements/text_input.js +121 -0
- package/src/elements/thinking.d.ts +17 -0
- package/src/elements/thinking.js +28 -0
- package/src/elements/toast.d.ts +23 -0
- package/src/elements/toast.js +209 -0
- package/src/elements/toggle_group.d.ts +22 -0
- package/src/elements/toggle_group.js +176 -0
- package/src/elements/tooltip.d.ts +18 -0
- package/src/elements/tooltip.js +64 -0
- package/src/markdown.d.ts +24 -0
- package/src/markdown.js +66 -0
- package/src/runtime.d.ts +35 -0
- package/src/runtime.js +790 -0
- package/src/server.d.ts +69 -0
- package/src/server.js +176 -0
- package/src/streaming-markdown.js +43 -0
- package/src/vite-plugin.d.ts +46 -0
- package/src/vite-plugin.js +221 -0
- package/wasm/package.json +16 -0
- package/wasm/wasm_api.d.ts +72 -0
- package/wasm/wasm_api.js +593 -0
- package/wasm/wasm_api_bg.wasm +0 -0
- package/wasm/wasm_api_bg.wasm.d.ts +10 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render GFM markdown to sanitized HTML.
|
|
3
|
+
*
|
|
4
|
+
* Returns a `<div class="cx-prose">...</div>` wrapper.
|
|
5
|
+
* XSS-safe by construction — raw HTML in the source is escaped.
|
|
6
|
+
*
|
|
7
|
+
* Requires `init()` to have been called. If WASM is not yet loaded,
|
|
8
|
+
* waits for it automatically.
|
|
9
|
+
*
|
|
10
|
+
* @param input - GFM markdown string
|
|
11
|
+
* @returns Sanitized HTML string
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderMarkdown(input: string): Promise<string>;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Synchronous markdown rendering.
|
|
17
|
+
*
|
|
18
|
+
* Returns empty string if WASM is not loaded yet.
|
|
19
|
+
* Use after `await init()` has completed.
|
|
20
|
+
*
|
|
21
|
+
* @param input - GFM markdown string
|
|
22
|
+
* @returns Sanitized HTML string, or empty string if WASM not ready
|
|
23
|
+
*/
|
|
24
|
+
export declare function renderMarkdownSync(input: string): string;
|
package/src/markdown.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Collet Markdown Utility — render GFM markdown to XSS-safe HTML via WASM.
|
|
2
|
+
//
|
|
3
|
+
// Static rendering: call renderMarkdown(input) to convert markdown to HTML.
|
|
4
|
+
// The WASM module handles parsing (pulldown-cmark) and XSS safety (compile-time
|
|
5
|
+
// event filtering — no runtime HTML sanitizer needed).
|
|
6
|
+
|
|
7
|
+
import { getWasmExports, isWasmReady } from './runtime.js';
|
|
8
|
+
|
|
9
|
+
let _wasmPromise = null;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Render GFM markdown to sanitized HTML.
|
|
13
|
+
*
|
|
14
|
+
* Returns a `<div class="cx-prose">...</div>` wrapper containing the
|
|
15
|
+
* rendered HTML. Raw HTML in the markdown source is escaped (not passed
|
|
16
|
+
* through), making the output XSS-safe by construction.
|
|
17
|
+
*
|
|
18
|
+
* Requires `init()` to have been called first (WASM must be loaded).
|
|
19
|
+
* If WASM is not yet loaded, waits for it automatically.
|
|
20
|
+
*
|
|
21
|
+
* @param {string} input - GFM markdown string
|
|
22
|
+
* @returns {Promise<string>} Sanitized HTML string
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* import { renderMarkdown } from '@colletdev/core/markdown';
|
|
26
|
+
*
|
|
27
|
+
* const html = await renderMarkdown('**Hello** world');
|
|
28
|
+
* // → '<div class="cx-prose"><p><strong>Hello</strong> world</p>\n</div>'
|
|
29
|
+
*/
|
|
30
|
+
export async function renderMarkdown(input) {
|
|
31
|
+
if (isWasmReady()) {
|
|
32
|
+
return getWasmExports().cx_render_markdown(input);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// WASM not loaded yet — wait for it.
|
|
36
|
+
// This covers the case where renderMarkdown is called before or
|
|
37
|
+
// concurrently with init().
|
|
38
|
+
if (!_wasmPromise) {
|
|
39
|
+
_wasmPromise = new Promise((resolve) => {
|
|
40
|
+
const check = () => {
|
|
41
|
+
if (isWasmReady()) {
|
|
42
|
+
resolve(getWasmExports());
|
|
43
|
+
} else {
|
|
44
|
+
setTimeout(check, 10);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
check();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const wasm = await _wasmPromise;
|
|
51
|
+
return wasm.cx_render_markdown(input);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Synchronous markdown rendering. Returns empty string if WASM is not loaded.
|
|
56
|
+
*
|
|
57
|
+
* Use this when you need immediate rendering and are certain WASM is ready
|
|
58
|
+
* (e.g., after `await init()` has completed).
|
|
59
|
+
*
|
|
60
|
+
* @param {string} input - GFM markdown string
|
|
61
|
+
* @returns {string} Sanitized HTML string, or empty string if WASM not ready
|
|
62
|
+
*/
|
|
63
|
+
export function renderMarkdownSync(input) {
|
|
64
|
+
if (!isWasmReady()) return '';
|
|
65
|
+
return getWasmExports().cx_render_markdown(input);
|
|
66
|
+
}
|
package/src/runtime.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// TypeScript declarations for runtime.js base classes.
|
|
2
|
+
|
|
3
|
+
export function initWasm(initFn: () => Promise<any>): Promise<any>;
|
|
4
|
+
export function getWasmExports(): any;
|
|
5
|
+
export function isWasmReady(): boolean;
|
|
6
|
+
export function preWarmWasm(wasmFunctions: Array<(config: any) => any>): void;
|
|
7
|
+
|
|
8
|
+
export function loadSharedStyles(urls: string[]): Promise<CSSStyleSheet[]>;
|
|
9
|
+
export function loadMotionStyles(url: string): Promise<void>;
|
|
10
|
+
export function getSharedSheets(): CSSStyleSheet[];
|
|
11
|
+
|
|
12
|
+
export class CxElement extends HTMLElement {
|
|
13
|
+
protected _shadow: ShadowRoot;
|
|
14
|
+
protected _props: Record<string, any>;
|
|
15
|
+
_scheduleRender(): void;
|
|
16
|
+
_doRender(): void;
|
|
17
|
+
_injectHtml(result: { html: string; sprites: string; a11y?: { role?: string; aria?: Record<string, string> } }): void;
|
|
18
|
+
_emit(name: string, detail?: any): void;
|
|
19
|
+
_setProp(key: string, value: any): void;
|
|
20
|
+
_lockScroll(): void;
|
|
21
|
+
_unlockScroll(): void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class CxFormElement extends CxElement {
|
|
25
|
+
protected _internals: ElementInternals;
|
|
26
|
+
_setFormValue(value: string | FormData | null): void;
|
|
27
|
+
_setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;
|
|
28
|
+
get form(): HTMLFormElement | null;
|
|
29
|
+
get name(): string | null;
|
|
30
|
+
get validity(): ValidityState;
|
|
31
|
+
get validationMessage(): string;
|
|
32
|
+
get willValidate(): boolean;
|
|
33
|
+
checkValidity(): boolean;
|
|
34
|
+
reportValidity(): boolean;
|
|
35
|
+
}
|