@codedia/react-web-component-bridge 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/configuration/global-config.d.ts +4 -0
  4. package/dist/configuration/global-config.d.ts.map +1 -0
  5. package/dist/configuration/registry.d.ts +6 -0
  6. package/dist/configuration/registry.d.ts.map +1 -0
  7. package/dist/core/create-react-element.d.ts +4 -0
  8. package/dist/core/create-react-element.d.ts.map +1 -0
  9. package/dist/core/define-react-element.d.ts +5 -0
  10. package/dist/core/define-react-element.d.ts.map +1 -0
  11. package/dist/core/event-controller.d.ts +9 -0
  12. package/dist/core/event-controller.d.ts.map +1 -0
  13. package/dist/core/form-controller.d.ts +11 -0
  14. package/dist/core/form-controller.d.ts.map +1 -0
  15. package/dist/core/lifecycle.d.ts +11 -0
  16. package/dist/core/lifecycle.d.ts.map +1 -0
  17. package/dist/core/method-controller.d.ts +11 -0
  18. package/dist/core/method-controller.d.ts.map +1 -0
  19. package/dist/core/portal-controller.d.ts +12 -0
  20. package/dist/core/portal-controller.d.ts.map +1 -0
  21. package/dist/core/property-controller.d.ts +25 -0
  22. package/dist/core/property-controller.d.ts.map +1 -0
  23. package/dist/core/render-controller.d.ts +25 -0
  24. package/dist/core/render-controller.d.ts.map +1 -0
  25. package/dist/core/slot-controller.d.ts +9 -0
  26. package/dist/core/slot-controller.d.ts.map +1 -0
  27. package/dist/core/style-controller.d.ts +10 -0
  28. package/dist/core/style-controller.d.ts.map +1 -0
  29. package/dist/index.cjs +848 -0
  30. package/dist/index.cjs.map +1 -0
  31. package/dist/index.d.ts +9 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +831 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/metadata/create-metadata.d.ts +3 -0
  36. package/dist/metadata/create-metadata.d.ts.map +1 -0
  37. package/dist/metadata/index.cjs +84 -0
  38. package/dist/metadata/index.cjs.map +1 -0
  39. package/dist/metadata/index.d.ts +3 -0
  40. package/dist/metadata/index.d.ts.map +1 -0
  41. package/dist/metadata/index.js +57 -0
  42. package/dist/metadata/index.js.map +1 -0
  43. package/dist/metadata/types.d.ts +2 -0
  44. package/dist/metadata/types.d.ts.map +1 -0
  45. package/dist/react.cjs +912 -0
  46. package/dist/react.cjs.map +1 -0
  47. package/dist/react.d.ts +20 -0
  48. package/dist/react.d.ts.map +1 -0
  49. package/dist/react.js +866 -0
  50. package/dist/react.js.map +1 -0
  51. package/dist/types/public.d.ts +125 -0
  52. package/dist/types/public.d.ts.map +1 -0
  53. package/dist/utilities/casing.d.ts +4 -0
  54. package/dist/utilities/casing.d.ts.map +1 -0
  55. package/dist/utilities/errors.d.ts +3 -0
  56. package/dist/utilities/errors.d.ts.map +1 -0
  57. package/dist/utilities/parsing.d.ts +3 -0
  58. package/dist/utilities/parsing.d.ts.map +1 -0
  59. package/dist/utilities/scheduling.d.ts +3 -0
  60. package/dist/utilities/scheduling.d.ts.map +1 -0
  61. package/dist/utilities/serialization.d.ts +3 -0
  62. package/dist/utilities/serialization.d.ts.map +1 -0
  63. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react.ts","../src/configuration/global-config.ts","../src/configuration/registry.ts","../src/utilities/casing.ts","../src/metadata/create-metadata.ts","../src/utilities/scheduling.ts","../src/core/event-controller.ts","../src/core/form-controller.ts","../src/core/lifecycle.ts","../src/core/method-controller.ts","../src/core/portal-controller.ts","../src/utilities/errors.ts","../src/utilities/parsing.ts","../src/utilities/serialization.ts","../src/core/property-controller.ts","../src/core/render-controller.tsx","../src/core/slot-controller.tsx","../src/core/style-controller.ts","../src/core/create-react-element.ts","../src/core/define-react-element.ts"],"sourcesContent":["import React, {\n Children,\n Component,\n Fragment,\n Profiler,\n PureComponent,\n StrictMode,\n Suspense,\n cloneElement,\n createContext,\n createElement,\n createRef,\n forwardRef,\n isValidElement,\n lazy,\n memo,\n startTransition,\n useCallback,\n useContext,\n useDebugValue,\n useDeferredValue,\n useEffect,\n useId,\n useImperativeHandle,\n useInsertionEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n useSyncExternalStore,\n useTransition,\n version\n} from \"react\";\nimport type { ComponentType } from \"react\";\nimport { configureReactElements, getReactElementGlobalConfig } from \"./configuration/global-config\";\nimport {\n getReactElementDefinition,\n isReactElementDefined,\n listReactElementDefinitions\n} from \"./configuration/registry\";\nimport { createReactElement } from \"./core/create-react-element\";\nimport { defineReactElement, defineReactElements } from \"./core/define-react-element\";\nimport type {\n ReactElementDefinition,\n ReactElementOptions,\n ReactElementGlobalConfig\n} from \"./types/public\";\n\nexport default React;\n\nexport {\n Children,\n Component,\n Fragment,\n Profiler,\n PureComponent,\n StrictMode,\n Suspense,\n cloneElement,\n configureReactElements,\n createContext,\n createElement,\n createReactElement,\n createRef,\n defineReactElement,\n defineReactElements,\n forwardRef,\n getReactElementDefinition,\n getReactElementGlobalConfig,\n isReactElementDefined,\n isValidElement,\n lazy,\n listReactElementDefinitions,\n memo,\n startTransition,\n useCallback,\n useContext,\n useDebugValue,\n useDeferredValue,\n useEffect,\n useId,\n useImperativeHandle,\n useInsertionEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n useSyncExternalStore,\n useTransition,\n version\n};\n\nexport type {\n ComponentProps,\n ComponentPropsWithRef,\n ComponentPropsWithoutRef,\n CSSProperties,\n Dispatch,\n FC,\n JSX,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n Ref,\n RefObject,\n SetStateAction\n} from \"react\";\n\nexport type {\n CallbackArgs,\n CallbackKeys,\n ReactCustomElementConstructor,\n ReactElementDefinition,\n ReactElementEvent,\n ReactElementEventDefinition,\n ReactElementFormDefinition,\n ReactElementGlobalConfig,\n ReactElementMetadata,\n ReactElementMethodDefinition,\n ReactElementOptions,\n ReactElementPortalDefinition,\n ReactElementPropDefinition,\n ReactElementPropType,\n ReactElementShadowOptions,\n ReactElementSlotDefinition,\n ReactElementStyleInput,\n ReactElementWrapper\n} from \"./types/public\";\n\nexport type ComponentTagDefinition<\n Props extends object = Record<string, unknown>,\n Ref = unknown\n> = ReactElementDefinition<Props, Ref> & {\n define(): ReactElementDefinition<Props, Ref>;\n};\n\nexport function createComponentTag<Props extends object, Ref = unknown>(\n tagName: string,\n component: ComponentType<Props>,\n options: ReactElementOptions<Props, Ref> = {}\n): ComponentTagDefinition<Props, Ref> {\n const definition = createReactElement(tagName, component, options);\n return Object.assign(definition, {\n define: () => defineReactElement(tagName, component, options)\n });\n}\n\nexport function defineComponentTag<Props extends object, Ref = unknown>(\n tagName: string,\n component: ComponentType<Props>,\n options: ReactElementOptions<Props, Ref> = {}\n): ComponentTagDefinition<Props, Ref> {\n const definition = defineReactElement(tagName, component, options);\n return Object.assign(definition, {\n define: () => definition\n });\n}\n\nexport const createWebComponent = createComponentTag;\nexport const defineWebComponent = defineComponentTag;\n\nexport function configureReactApi(config: ReactElementGlobalConfig): ReactElementGlobalConfig {\n return configureReactElements(config);\n}\n","import type { ReactElementGlobalConfig } from \"../types/public\";\n\nlet globalConfig: ReactElementGlobalConfig = {\n development: readNodeEnv() !== \"production\"\n};\n\nexport function configureReactElements(config: ReactElementGlobalConfig): ReactElementGlobalConfig {\n globalConfig = { ...globalConfig, ...config };\n return getReactElementGlobalConfig();\n}\n\nexport function getReactElementGlobalConfig(): ReactElementGlobalConfig {\n return { ...globalConfig };\n}\n\nfunction readNodeEnv(): string | undefined {\n const global = globalThis as typeof globalThis & {\n process?: { env?: { NODE_ENV?: string | undefined } };\n };\n return global.process?.env?.NODE_ENV;\n}\n","import type { ReactElementDefinition } from \"../types/public\";\n\nconst definitions = new Map<string, ReactElementDefinition>();\n\nexport function registerDefinition(definition: ReactElementDefinition): void {\n definitions.set(definition.tagName, definition);\n}\n\nexport function getReactElementDefinition(tagName: string): ReactElementDefinition | undefined {\n return definitions.get(tagName.toLowerCase());\n}\n\nexport function isReactElementDefined(tagName: string): boolean {\n const normalized = tagName.toLowerCase();\n if (typeof customElements !== \"undefined\" && customElements.get(normalized)) {\n return true;\n }\n return definitions.has(normalized);\n}\n\nexport function listReactElementDefinitions(): ReactElementDefinition[] {\n return [...definitions.values()];\n}\n","export function camelToKebab(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .replace(/[_\\s]+/g, \"-\")\n .toLowerCase();\n}\n\nexport function kebabToCamel(value: string): string {\n return value.replace(/-([a-z0-9])/g, (_, letter: string) => letter.toUpperCase());\n}\n\nexport function normalizeCustomElementName(tagName: string): string {\n const normalized = tagName.trim().toLowerCase();\n if (!/^[a-z][.0-9_a-z]*-[-.0-9_a-z]*$/.test(normalized)) {\n throw new Error(`Custom element names must be valid kebab-case names: \"${tagName}\".`);\n }\n return normalized;\n}\n","import { camelToKebab } from \"../utilities/casing\";\nimport type {\n ReactElementEventDefinition,\n ReactElementMetadata,\n ReactElementOptions,\n ReactElementPropDefinition\n} from \"../types/public\";\n\nexport function createMetadata(\n tagName: string,\n options: ReactElementOptions\n): ReactElementMetadata {\n const props = options.props ?? {};\n const events = options.events ?? {};\n const slots = options.slots ?? {};\n const methods = options.methods ?? {};\n return {\n tagName,\n properties: Object.entries(props).map(\n ([name, rawDefinition]): ReactElementMetadata[\"properties\"][number] => {\n const definition = rawDefinition as ReactElementPropDefinition | undefined;\n const property: ReactElementMetadata[\"properties\"][number] = { name };\n if (definition?.attribute !== false)\n property.attribute = definition?.attribute ?? camelToKebab(name);\n if (definition?.type) property.type = definition.type;\n if (definition?.required !== undefined) property.required = definition.required;\n return property;\n }\n ),\n attributes: Object.entries(props)\n .filter(\n ([, definition]) =>\n (definition as ReactElementPropDefinition | undefined)?.attribute !== false\n )\n .map(([name, rawDefinition]): ReactElementMetadata[\"attributes\"][number] => {\n const definition = rawDefinition as ReactElementPropDefinition | undefined;\n const attribute: ReactElementMetadata[\"attributes\"][number] = {\n name: (definition?.attribute as string | undefined) ?? camelToKebab(name),\n property: name\n };\n if (definition?.reflect !== undefined) attribute.reflect = definition.reflect;\n return attribute;\n }),\n events: Object.entries(events).map(([prop, rawDefinition]) => {\n const definition = rawDefinition as ReactElementEventDefinition | undefined;\n return {\n name: definition?.name ?? camelToKebab(prop.replace(/^on/, \"\")),\n prop,\n bubbles: definition?.bubbles ?? true,\n composed: definition?.composed ?? true\n };\n }),\n slots: Object.entries(slots).map(([prop, definition]) => ({\n prop,\n name:\n definition === true\n ? null\n : typeof definition === \"string\"\n ? definition\n : (definition?.name ?? null)\n })),\n methods: Object.keys(methods).map((name) => ({ name })),\n formAssociated: Boolean(options.form),\n shadow: options.shadow !== false\n };\n}\n","export type ScheduledTask = () => void;\n\nexport function scheduleMicrotask(task: ScheduledTask): void {\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(task);\n return;\n }\n Promise.resolve().then(task);\n}\n","import { camelToKebab } from \"../utilities/casing\";\nimport type { ReactElementEventDefinition, ReactElementOptions } from \"../types/public\";\n\nexport class EventController {\n constructor(\n private readonly host: HTMLElement,\n private readonly options: ReactElementOptions\n ) {}\n\n createEventProps(): Record<string, (...args: readonly unknown[]) => unknown> {\n const eventProps: Record<string, (...args: readonly unknown[]) => unknown> = {};\n for (const [propName, definition] of Object.entries(this.options.events ?? {})) {\n eventProps[propName] = (...args: readonly unknown[]) =>\n this.dispatch(propName, definition as ReactElementEventDefinition | undefined, args);\n }\n return eventProps;\n }\n\n private dispatch(\n propName: string,\n definition: ReactElementEventDefinition | undefined,\n args: readonly unknown[]\n ): unknown {\n const eventName = definition?.name ?? camelToKebab(propName.replace(/^on/, \"\"));\n const detail = definition?.detail\n ? definition.detail(...args)\n : args.length <= 1\n ? args[0]\n : [...args];\n const event = new CustomEvent(eventName, {\n detail,\n bubbles: definition?.bubbles ?? true,\n composed: definition?.composed ?? true,\n cancelable: definition?.cancelable ?? false\n });\n const accepted = this.host.dispatchEvent(event);\n return definition?.cancelable ? accepted : undefined;\n }\n}\n","import type { ReactElementOptions } from \"../types/public\";\n\ntype ElementInternalsLike = {\n setFormValue(value: FormDataEntryValue | null): void;\n setValidity(flags?: ValidityStateFlags, message?: string): void;\n};\n\nexport class FormController {\n private internals: ElementInternalsLike | undefined;\n\n constructor(\n private readonly host: HTMLElement,\n private readonly options: ReactElementOptions\n ) {}\n\n connect(): void {\n if (!this.options.form || this.internals) {\n return;\n }\n const attach = (this.host as HTMLElement & { attachInternals?: () => ElementInternalsLike })\n .attachInternals;\n if (attach) {\n this.internals = attach.call(this.host);\n }\n }\n\n update(name: string, value: unknown): void {\n if (!this.options.form || name !== this.options.form.valueProp) {\n return;\n }\n const serialized = this.options.form.serializeValue\n ? this.options.form.serializeValue(value)\n : defaultSerializeValue(value);\n this.internals?.setFormValue(serialized);\n const validation = this.options.form.validate?.(value, this.host);\n if (validation && validation !== true) {\n this.internals?.setValidity({ customError: true }, validation);\n } else {\n this.internals?.setValidity({});\n }\n }\n\n emitStandardChangeEvents(): void {\n if (!this.options.form) {\n return;\n }\n this.host.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true }));\n this.host.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\n }\n}\n\nfunction defaultSerializeValue(value: unknown): FormDataEntryValue | null {\n if (value === undefined || value === null) return null;\n if (value instanceof File) return value;\n if (typeof value === \"object\") return JSON.stringify(value);\n return String(value);\n}\n","import type { RenderController } from \"./render-controller\";\n\nexport class LifecycleController {\n private disconnectToken = 0;\n\n constructor(\n private readonly render: RenderController,\n private readonly requestRender: () => void,\n private readonly cleanup: () => void\n ) {}\n\n connected(): void {\n this.disconnectToken++;\n this.render.reconnect();\n this.requestRender();\n }\n\n disconnected(host: HTMLElement): void {\n const token = ++this.disconnectToken;\n queueMicrotask(() => {\n if (token !== this.disconnectToken || host.isConnected) {\n return;\n }\n this.cleanup();\n this.render.unmount();\n });\n }\n}\n","import type { ReactElementOptions } from \"../types/public\";\n\nexport class MethodController {\n private ref: unknown;\n private readonly queue = new Map<string, unknown[][]>();\n\n constructor(private readonly options: ReactElementOptions) {}\n\n setRef(value: unknown): void {\n this.ref = value;\n for (const [name, calls] of this.queue) {\n for (const args of calls) {\n this.call(name, args);\n }\n }\n this.queue.clear();\n }\n\n createRefSetter(): (value: unknown) => void {\n return (value: unknown) => this.setRef(value);\n }\n\n call(name: string, args: readonly unknown[], host?: HTMLElement): unknown {\n const definition = this.options.methods?.[name];\n if (!definition) {\n throw new Error(`Unknown public method \"${name}\".`);\n }\n if (!this.ref) {\n if (definition.queue) {\n const calls = this.queue.get(name) ?? [];\n calls.push([...args]);\n this.queue.set(name, calls);\n return undefined;\n }\n throw new Error(`Cannot call \"${name}\" before the React component ref is mounted.`);\n }\n return definition.call(this.ref, host ?? (undefined as unknown as HTMLElement), ...args);\n }\n}\n","import type { ReactElementOptions } from \"../types/public\";\n\nexport class PortalController {\n private container: HTMLElement | undefined;\n\n constructor(\n private readonly host: HTMLElement,\n private readonly renderRoot: ShadowRoot | HTMLElement,\n private readonly options: ReactElementOptions\n ) {}\n\n getPortalProps(): Record<string, HTMLElement> {\n const portal = this.options.portal;\n if (!portal?.enabled || !portal.prop) {\n return {};\n }\n return { [portal.prop]: this.getContainer() };\n }\n\n cleanup(): void {\n this.container?.remove();\n this.container = undefined;\n }\n\n private getContainer(): HTMLElement {\n if (this.container) {\n return this.container;\n }\n const portal = this.options.portal;\n const target = portal?.target;\n if (target instanceof HTMLElement) {\n this.container = target;\n return target;\n }\n if (typeof target === \"function\") {\n this.container = target(this.host);\n return this.container;\n }\n const container = document.createElement(\"div\");\n container.setAttribute(\"part\", portal?.part ?? \"overlay-root\");\n container.setAttribute(\"data-rwcb-portal\", \"\");\n if (target === \"body\") {\n document.body.append(container);\n } else if (target === \"host\") {\n this.host.append(container);\n } else {\n this.renderRoot.append(container);\n }\n this.container = container;\n return container;\n }\n}\n","export function warnDevelopment(enabled: boolean, message: string): void {\n if (enabled && typeof console !== \"undefined\") {\n console.warn(`[react-web-component-bridge] ${message}`);\n }\n}\n\nexport function assertBrowserApi(apiName: string, value: unknown): void {\n if (!value) {\n throw new Error(\n `${apiName} is unavailable. Custom element registration must run in a browser.`\n );\n }\n}\n","import type { ReactElementPropDefinition } from \"../types/public\";\n\nexport function parseAttributeValue(\n value: string | null,\n definition: ReactElementPropDefinition,\n host: HTMLElement\n): unknown {\n if (definition.parseAttribute) {\n return definition.parseAttribute(value, host);\n }\n switch (definition.type ?? \"string\") {\n case \"boolean\":\n return value !== null;\n case \"number\": {\n if (value === null || value.trim() === \"\") return undefined;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n case \"json\": {\n if (value === null || value.trim() === \"\") return undefined;\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n }\n case \"date\": {\n if (value === null || value.trim() === \"\") return undefined;\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? undefined : date;\n }\n case \"string\":\n return value;\n default:\n return value;\n }\n}\n","import type { ReactElementPropDefinition } from \"../types/public\";\n\nexport function serializeAttributeValue(\n value: unknown,\n definition: ReactElementPropDefinition,\n host: HTMLElement\n): string | null {\n if (definition.serializeAttribute) {\n return definition.serializeAttribute(value, host);\n }\n if (value === undefined || value === null || value === false) {\n return null;\n }\n switch (definition.type ?? \"string\") {\n case \"boolean\":\n return value ? \"\" : null;\n case \"json\":\n try {\n return JSON.stringify(value);\n } catch {\n return null;\n }\n case \"date\":\n return value instanceof Date && !Number.isNaN(value.getTime()) ? value.toISOString() : null;\n case \"number\":\n return typeof value === \"number\" && Number.isFinite(value) ? String(value) : null;\n case \"string\":\n return String(value);\n default:\n return String(value);\n }\n}\n","import { camelToKebab } from \"../utilities/casing\";\nimport { warnDevelopment } from \"../utilities/errors\";\nimport { parseAttributeValue } from \"../utilities/parsing\";\nimport { serializeAttributeValue } from \"../utilities/serialization\";\nimport type { ReactElementOptions, ReactElementPropDefinition } from \"../types/public\";\n\nexport type PropertyControllerContext = {\n host: HTMLElement;\n options: ReactElementOptions;\n development: boolean;\n requestRender: () => void;\n formValueChanged: (name: string, value: unknown) => void;\n};\n\nexport class PropertyController {\n readonly values = new Map<string, unknown>();\n readonly reflectingAttributes = new Set<string>();\n readonly attributeToProp = new Map<string, string>();\n\n constructor(private readonly context: PropertyControllerContext) {\n for (const [prop, definition] of Object.entries(this.context.options.props ?? {})) {\n const attribute = this.attributeName(prop, definition);\n if (attribute) {\n this.attributeToProp.set(attribute, prop);\n }\n if (definition?.default !== undefined) {\n this.values.set(prop, definition.default);\n }\n }\n }\n\n static observedAttributes(options: ReactElementOptions): string[] {\n return Object.entries(options.props ?? {})\n .map(([prop, definition]) =>\n definition?.attribute === false ? undefined : (definition?.attribute ?? camelToKebab(prop))\n )\n .filter((value): value is string => Boolean(value));\n }\n\n initializePreUpgradeProperties(): void {\n for (const prop of Object.keys(this.context.options.props ?? {})) {\n if (Object.prototype.hasOwnProperty.call(this.context.host, prop)) {\n const value = (this.context.host as unknown as Record<string, unknown>)[prop];\n delete (this.context.host as unknown as Record<string, unknown>)[prop];\n this.setProperty(prop, value);\n }\n }\n }\n\n getProperty(name: string): unknown {\n return this.values.get(name);\n }\n\n getProps(): Record<string, unknown> {\n return Object.fromEntries(this.values);\n }\n\n setProperty(name: string, rawValue: unknown): void {\n const definition = this.context.options.props?.[name];\n const nextValue = this.normalizeValue(name, rawValue, definition);\n if (Object.is(this.values.get(name), nextValue)) {\n return;\n }\n this.values.set(name, nextValue);\n this.reflectProperty(name, nextValue, definition);\n this.context.formValueChanged(name, nextValue);\n this.context.requestRender();\n }\n\n attributeChanged(attributeName: string, value: string | null): void {\n if (this.reflectingAttributes.has(attributeName)) {\n return;\n }\n const prop = this.attributeToProp.get(attributeName);\n if (!prop) {\n return;\n }\n const definition = this.context.options.props?.[prop];\n const parsed = parseAttributeValue(value, definition ?? {}, this.context.host);\n this.setProperty(prop, parsed);\n }\n\n private normalizeValue(\n name: string,\n rawValue: unknown,\n definition: ReactElementPropDefinition | undefined\n ): unknown {\n let value = definition?.transform\n ? definition.transform(rawValue, this.context.host)\n : rawValue;\n if (definition?.validate) {\n const result = definition.validate(value, this.context.host);\n if (result !== true) {\n warnDevelopment(\n this.context.development,\n typeof result === \"string\" ? result : `Invalid value for property \"${name}\".`\n );\n }\n }\n if (definition?.required && (value === undefined || value === null || value === \"\")) {\n warnDevelopment(this.context.development, `Required property \"${name}\" is missing.`);\n }\n return value;\n }\n\n private reflectProperty(\n name: string,\n value: unknown,\n definition: ReactElementPropDefinition | undefined\n ): void {\n if (!definition?.reflect) {\n return;\n }\n const attribute = this.attributeName(name, definition);\n if (!attribute) {\n return;\n }\n const serialized = serializeAttributeValue(value, definition, this.context.host);\n this.reflectingAttributes.add(attribute);\n try {\n if (serialized === null) {\n this.context.host.removeAttribute(attribute);\n } else {\n this.context.host.setAttribute(attribute, serialized);\n }\n } finally {\n this.reflectingAttributes.delete(attribute);\n }\n }\n\n private attributeName(\n name: string,\n definition: ReactElementPropDefinition | undefined\n ): string | null {\n if (definition?.attribute === false) {\n return null;\n }\n return definition?.attribute ?? camelToKebab(name);\n }\n}\n","import { createElement, StrictMode, Suspense, type ComponentType, type ReactNode } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport type { ReactElementGlobalConfig, ReactElementOptions } from \"../types/public\";\n\nexport type RenderControllerContext = {\n host: HTMLElement;\n component: ComponentType<Record<string, unknown>>;\n options: ReactElementOptions;\n config: ReactElementGlobalConfig;\n mount: HTMLElement;\n getProps: () => Record<string, unknown>;\n getEventProps: () => Record<string, unknown>;\n getSlotProps: () => Record<string, unknown>;\n getPortalProps: () => Record<string, unknown>;\n refSetter: (value: unknown) => void;\n};\n\nexport class RenderController {\n private root: Root | undefined;\n private unmounted = false;\n\n constructor(private readonly context: RenderControllerContext) {}\n\n render(): void {\n if (this.unmounted) {\n return;\n }\n this.root ??= createRoot(this.context.mount);\n try {\n this.root.render(this.createTree());\n } catch (error) {\n this.context.config.renderError?.(error, this.context.host);\n throw error;\n }\n }\n\n unmount(): void {\n this.unmounted = true;\n this.root?.unmount();\n this.root = undefined;\n }\n\n reconnect(): void {\n this.unmounted = false;\n }\n\n private createTree(): ReactNode {\n const Component = this.context.component;\n const props = {\n ...this.context.getProps(),\n ...this.context.getSlotProps(),\n ...this.context.getPortalProps(),\n ...this.context.getEventProps(),\n ref: this.context.refSetter\n };\n let element: ReactNode = createElement(Component, props);\n const Boundary = this.context.options.errorBoundary;\n if (Boundary) {\n element = createElement(Boundary, { error: undefined }, element);\n }\n if (this.context.options.fallback !== undefined) {\n element = createElement(Suspense, { fallback: this.context.options.fallback }, element);\n }\n if (this.context.options.wrap) {\n element = this.context.options.wrap(element, this.context.host);\n }\n if (this.context.config.wrap) {\n element = this.context.config.wrap(element, this.context.host);\n }\n if (this.context.options.strictMode ?? this.context.config.strictMode) {\n element = createElement(StrictMode, undefined, element);\n }\n return element;\n }\n}\n","import React, { createElement, type ReactNode } from \"react\";\nimport type { ReactElementOptions, ReactElementSlotDefinition } from \"../types/public\";\n\nexport class SlotController {\n constructor(private readonly options: ReactElementOptions) {}\n\n createSlotProps(): Record<string, ReactNode> {\n const props: Record<string, ReactNode> = {};\n for (const [propName, definition] of Object.entries(this.options.slots ?? {})) {\n props[propName] = this.createSlot(definition);\n }\n return props;\n }\n\n private createSlot(definition: ReactElementSlotDefinition | undefined): ReactNode {\n if (definition === true || definition === undefined) {\n return createElement(\"slot\");\n }\n if (typeof definition === \"string\") {\n return createElement(\"slot\", { name: definition });\n }\n const children = definition.fallback ? React.Children.toArray(definition.fallback) : undefined;\n return createElement(\"slot\", definition.name ? { name: definition.name } : undefined, children);\n }\n}\n","import type { ReactElementStyleInput } from \"../types/public\";\n\nexport class StyleController {\n constructor(\n private readonly root: ShadowRoot | HTMLElement,\n private readonly host: HTMLElement,\n private readonly styles: ReactElementStyleInput | undefined\n ) {}\n\n apply(): void {\n if (!this.styles) {\n return;\n }\n const inputs = this.resolveInputs(this.styles);\n const sheets = inputs.filter((style): style is CSSStyleSheet => typeof style !== \"string\");\n const text = inputs.filter((style): style is string => typeof style === \"string\");\n if (\"adoptedStyleSheets\" in this.root && sheets.length > 0) {\n const current = (this.root as ShadowRoot).adoptedStyleSheets ?? [];\n (this.root as ShadowRoot).adoptedStyleSheets = [...current, ...sheets];\n }\n for (const styleText of text) {\n const style = document.createElement(\"style\");\n style.textContent = styleText;\n this.root.prepend(style);\n }\n }\n\n private resolveInputs(input: ReactElementStyleInput): Array<string | CSSStyleSheet> {\n const resolved = typeof input === \"function\" ? input(this.host) : input;\n if (Array.isArray(resolved)) {\n return resolved.flatMap((item) => (Array.isArray(item) ? [...item] : [item]));\n }\n return [resolved as string | CSSStyleSheet];\n }\n}\n","import type { ComponentType } from \"react\";\nimport { getReactElementGlobalConfig } from \"../configuration/global-config\";\nimport { createMetadata } from \"../metadata/create-metadata\";\nimport type {\n ReactCustomElementConstructor,\n ReactElementDefinition,\n ReactElementOptions\n} from \"../types/public\";\nimport { normalizeCustomElementName } from \"../utilities/casing\";\nimport { scheduleMicrotask } from \"../utilities/scheduling\";\nimport { EventController } from \"./event-controller\";\nimport { FormController } from \"./form-controller\";\nimport { LifecycleController } from \"./lifecycle\";\nimport { MethodController } from \"./method-controller\";\nimport { PortalController } from \"./portal-controller\";\nimport { PropertyController } from \"./property-controller\";\nimport { RenderController } from \"./render-controller\";\nimport { SlotController } from \"./slot-controller\";\nimport { StyleController } from \"./style-controller\";\n\nexport function createReactElement<Props extends object, Ref = unknown>(\n tagName: string,\n component: ComponentType<Props>,\n options: ReactElementOptions<Props, Ref> = {}\n): ReactElementDefinition<Props, Ref> {\n const normalizedTagName = normalizeCustomElementName(tagName);\n const runtimeOptions = options as unknown as ReactElementOptions<\n Record<string, unknown>,\n unknown\n >;\n if (typeof HTMLElement === \"undefined\") {\n return {\n tagName: normalizedTagName,\n component,\n options,\n elementClass: class {} as ReactCustomElementConstructor<Props>,\n metadata: createMetadata(normalizedTagName, runtimeOptions)\n };\n }\n\n const observedAttributes = PropertyController.observedAttributes(runtimeOptions);\n const formAssociated = Boolean(options.form);\n\n class ReactBridgeElement extends HTMLElement {\n static observedAttributes = observedAttributes;\n static formAssociated = formAssociated;\n\n private readonly config = getReactElementGlobalConfig();\n private readonly mount: HTMLElement;\n private readonly renderRoot: ShadowRoot | HTMLElement;\n readonly propertyController: PropertyController;\n private readonly eventController = new EventController(this, runtimeOptions);\n private readonly slotController = new SlotController(runtimeOptions);\n private readonly methodController = new MethodController(runtimeOptions);\n private readonly formController = new FormController(this, runtimeOptions);\n private readonly portalController: PortalController;\n private readonly renderController: RenderController;\n private readonly lifecycleController: LifecycleController;\n private renderScheduled = false;\n\n constructor() {\n super();\n this.renderRoot =\n options.shadow === false\n ? this\n : this.attachShadow({\n mode: options.shadow?.mode ?? \"open\",\n ...(options.shadow?.delegatesFocus === undefined\n ? {}\n : { delegatesFocus: options.shadow.delegatesFocus })\n });\n this.mount = document.createElement(\"span\");\n this.mount.setAttribute(\"part\", \"react-mount\");\n this.mount.setAttribute(\"data-rwcb-mount\", \"\");\n this.renderRoot.append(this.mount);\n new StyleController(this.renderRoot, this, runtimeOptions.styles).apply();\n this.portalController = new PortalController(this, this.renderRoot, runtimeOptions);\n this.propertyController = new PropertyController({\n host: this,\n options: runtimeOptions,\n development: this.config.development ?? false,\n requestRender: () => this.requestRender(),\n formValueChanged: (name, value) => {\n this.formController.update(name, value);\n if (name === runtimeOptions.form?.valueProp) {\n this.formController.emitStandardChangeEvents();\n }\n }\n });\n this.renderController = new RenderController({\n host: this,\n component: component as ComponentType<Record<string, unknown>>,\n options: runtimeOptions,\n config: this.config,\n mount: this.mount,\n getProps: () => this.propertyController.getProps(),\n getEventProps: () => this.eventController.createEventProps(),\n getSlotProps: () => this.slotController.createSlotProps(),\n getPortalProps: () => this.portalController.getPortalProps(),\n refSetter: this.methodController.createRefSetter()\n });\n this.lifecycleController = new LifecycleController(\n this.renderController,\n () => this.requestRender(),\n () => this.portalController.cleanup()\n );\n this.propertyController.initializePreUpgradeProperties();\n }\n\n connectedCallback(): void {\n this.formController.connect();\n this.lifecycleController.connected();\n }\n\n disconnectedCallback(): void {\n this.lifecycleController.disconnected(this);\n }\n\n attributeChangedCallback(\n name: string,\n _oldValue: string | null,\n newValue: string | null\n ): void {\n this.propertyController.attributeChanged(name, newValue);\n }\n\n formResetCallback(): void {\n const valueProp = runtimeOptions.form?.valueProp;\n const defaultValue = valueProp ? runtimeOptions.props?.[valueProp]?.default : undefined;\n if (valueProp) {\n this.propertyController.setProperty(valueProp, defaultValue);\n }\n }\n\n callReactMethod(name: string, ...args: readonly unknown[]): unknown {\n return this.methodController.call(name, args, this);\n }\n\n private requestRender(): void {\n if (this.renderScheduled || !this.isConnected) {\n return;\n }\n this.renderScheduled = true;\n scheduleMicrotask(() => {\n this.renderScheduled = false;\n if (this.isConnected) {\n this.renderController.render();\n }\n });\n }\n }\n\n for (const prop of Object.keys(options.props ?? {})) {\n Object.defineProperty(ReactBridgeElement.prototype, prop, {\n get(this: ReactBridgeElement): unknown {\n return this.propertyController.getProperty(prop);\n },\n set(this: ReactBridgeElement, value: unknown): void {\n this.propertyController.setProperty(prop, value);\n }\n });\n }\n\n for (const methodName of Object.keys(options.methods ?? {})) {\n if (methodName in ReactBridgeElement.prototype) {\n throw new Error(`Cannot expose public method \"${methodName}\" because it already exists.`);\n }\n Object.defineProperty(ReactBridgeElement.prototype, methodName, {\n value(this: ReactBridgeElement, ...args: readonly unknown[]) {\n return this.callReactMethod(methodName, ...args);\n }\n });\n }\n\n return {\n tagName: normalizedTagName,\n component,\n options,\n elementClass: ReactBridgeElement as unknown as ReactCustomElementConstructor<Props>,\n metadata: createMetadata(normalizedTagName, runtimeOptions)\n };\n}\n","import type { ComponentType } from \"react\";\nimport { registerDefinition } from \"../configuration/registry\";\nimport type { ReactElementDefinition, ReactElementOptions } from \"../types/public\";\nimport { assertBrowserApi } from \"../utilities/errors\";\nimport { createReactElement } from \"./create-react-element\";\n\nexport function defineReactElement<Props extends object, Ref = unknown>(\n tagName: string,\n component: ComponentType<Props>,\n options: ReactElementOptions<Props, Ref> = {}\n): ReactElementDefinition<Props, Ref> {\n assertBrowserApi(\n \"customElements\",\n typeof customElements === \"undefined\" ? undefined : customElements\n );\n const definition = createReactElement(tagName, component, options);\n if (!customElements.get(definition.tagName)) {\n customElements.define(definition.tagName, definition.elementClass);\n }\n registerDefinition(definition as unknown as ReactElementDefinition);\n return definition;\n}\n\nexport function defineReactElements(\n definitions: readonly ReactElementDefinition[]\n): ReactElementDefinition[] {\n assertBrowserApi(\n \"customElements\",\n typeof customElements === \"undefined\" ? undefined : customElements\n );\n for (const definition of definitions) {\n if (!customElements.get(definition.tagName)) {\n customElements.define(definition.tagName, definition.elementClass);\n }\n registerDefinition(definition);\n }\n return [...definitions];\n}\n"],"mappings":"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","names":["React","StrictMode","Suspense","createElement","Component","createElement","definitions","React"]}
@@ -0,0 +1,125 @@
1
+ import type { ComponentType, ReactNode } from "react";
2
+ export type ReactElementPropType = "string" | "number" | "boolean" | "json" | "date";
3
+ export type ReactElementPropDefinition<Host extends HTMLElement = HTMLElement, Value = unknown> = {
4
+ attribute?: string | false;
5
+ type?: ReactElementPropType;
6
+ default?: Value;
7
+ reflect?: boolean;
8
+ required?: boolean;
9
+ parseAttribute?: (value: string | null, host: Host) => Value;
10
+ serializeAttribute?: (value: Value, host: Host) => string | null;
11
+ validate?: (value: Value, host: Host) => boolean | string;
12
+ transform?: (value: Value, host: Host) => Value;
13
+ };
14
+ export type CallbackKeys<Props> = {
15
+ [Key in keyof Props]: Props[Key] extends (...args: infer Args) => unknown ? Key : never;
16
+ }[keyof Props];
17
+ export type CallbackArgs<Props, Key extends keyof Props> = Props[Key] extends (...args: infer Args) => unknown ? Args : never;
18
+ export type ReactElementEventDefinition<Args extends readonly unknown[] = readonly unknown[]> = {
19
+ name?: string;
20
+ detail?: (...args: Args) => unknown;
21
+ bubbles?: boolean;
22
+ composed?: boolean;
23
+ cancelable?: boolean;
24
+ };
25
+ export type ReactElementSlotDefinition = true | string | {
26
+ name?: string;
27
+ fallback?: ReactNode;
28
+ };
29
+ export type ReactElementMethodDefinition<Ref = unknown, Host extends HTMLElement = HTMLElement> = {
30
+ call: (instance: Ref, host: Host, ...args: readonly unknown[]) => unknown;
31
+ queue?: boolean;
32
+ };
33
+ export type ReactElementFormDefinition<Props = Record<string, unknown>> = {
34
+ valueProp: keyof Props & string;
35
+ nameProp?: keyof Props & string;
36
+ disabledProp?: keyof Props & string;
37
+ requiredProp?: keyof Props & string;
38
+ changeCallback?: keyof Props & string;
39
+ serializeValue?: (value: unknown) => FormDataEntryValue | null;
40
+ validate?: (value: unknown, host: HTMLElement) => string | true;
41
+ };
42
+ export type ReactElementShadowOptions = false | {
43
+ mode?: ShadowRootMode;
44
+ delegatesFocus?: boolean;
45
+ };
46
+ export type ReactElementStyleInput = string | CSSStyleSheet | readonly (string | CSSStyleSheet)[] | ((host: HTMLElement) => string | CSSStyleSheet | readonly (string | CSSStyleSheet)[]);
47
+ export type ReactElementPortalDefinition<Props = Record<string, unknown>> = {
48
+ enabled?: boolean;
49
+ prop?: keyof Props & string;
50
+ part?: string;
51
+ target?: "shadow" | "host" | "body" | HTMLElement | ((host: HTMLElement) => HTMLElement);
52
+ };
53
+ export type ReactElementWrapper = (component: ReactNode, host: HTMLElement) => ReactNode;
54
+ export type ReactElementGlobalConfig = {
55
+ strictMode?: boolean;
56
+ wrap?: ReactElementWrapper;
57
+ development?: boolean;
58
+ renderError?: (error: unknown, host: HTMLElement) => void;
59
+ };
60
+ export type ReactElementOptions<Props extends object = Record<string, unknown>, Ref = unknown> = {
61
+ shadow?: ReactElementShadowOptions;
62
+ props?: Partial<{
63
+ [Key in keyof Props & string]: ReactElementPropDefinition<HTMLElement, Props[Key]>;
64
+ }>;
65
+ events?: Partial<{
66
+ [Key in CallbackKeys<Props> & string]: ReactElementEventDefinition<CallbackArgs<Props, Key & keyof Props>>;
67
+ }>;
68
+ slots?: Partial<Record<(keyof Props & string) | "children" | string, ReactElementSlotDefinition>>;
69
+ methods?: Record<string, ReactElementMethodDefinition<Ref>>;
70
+ form?: ReactElementFormDefinition<Props>;
71
+ portal?: ReactElementPortalDefinition<Props>;
72
+ styles?: ReactElementStyleInput;
73
+ wrap?: ReactElementWrapper;
74
+ strictMode?: boolean;
75
+ errorBoundary?: ComponentType<{
76
+ error: unknown;
77
+ children?: ReactNode;
78
+ }>;
79
+ fallback?: ReactNode;
80
+ };
81
+ export type ReactCustomElementConstructor<Props = Record<string, unknown>> = {
82
+ new (): HTMLElement & Props;
83
+ observedAttributes: string[];
84
+ formAssociated?: boolean;
85
+ };
86
+ export type ReactElementMetadata = {
87
+ tagName: string;
88
+ properties: Array<{
89
+ name: string;
90
+ attribute?: string;
91
+ type?: string;
92
+ required?: boolean;
93
+ }>;
94
+ attributes: Array<{
95
+ name: string;
96
+ property: string;
97
+ reflect?: boolean;
98
+ }>;
99
+ events: Array<{
100
+ name: string;
101
+ prop: string;
102
+ bubbles: boolean;
103
+ composed: boolean;
104
+ }>;
105
+ slots: Array<{
106
+ prop: string;
107
+ name: string | null;
108
+ }>;
109
+ methods: Array<{
110
+ name: string;
111
+ }>;
112
+ formAssociated: boolean;
113
+ shadow: boolean;
114
+ };
115
+ export type ReactElementDefinition<Props extends object = Record<string, unknown>, Ref = unknown> = {
116
+ tagName: string;
117
+ component: ComponentType<Props>;
118
+ options: ReactElementOptions<Props, Ref>;
119
+ elementClass: ReactCustomElementConstructor<Props>;
120
+ metadata: ReactElementMetadata;
121
+ };
122
+ export type ReactElementEvent<Definition extends ReactElementDefinition, EventName extends string> = CustomEvent<Extract<Definition["metadata"]["events"][number], {
123
+ name: EventName;
124
+ }> extends never ? unknown : unknown>;
125
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function camelToKebab(value: string): string;
2
+ export declare function kebabToCamel(value: string): string;
3
+ export declare function normalizeCustomElementName(tagName: string): string;
4
+ //# sourceMappingURL=casing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.d.ts","sourceRoot":"","sources":["../../src/utilities/casing.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlE"}
@@ -0,0 +1,3 @@
1
+ export declare function warnDevelopment(enabled: boolean, message: string): void;
2
+ export declare function assertBrowserApi(apiName: string, value: unknown): void;
3
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utilities/errors.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAMtE"}
@@ -0,0 +1,3 @@
1
+ import type { ReactElementPropDefinition } from "../types/public";
2
+ export declare function parseAttributeValue(value: string | null, definition: ReactElementPropDefinition, host: HTMLElement): unknown;
3
+ //# sourceMappingURL=parsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utilities/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,UAAU,EAAE,0BAA0B,EACtC,IAAI,EAAE,WAAW,GAChB,OAAO,CA8BT"}
@@ -0,0 +1,3 @@
1
+ export type ScheduledTask = () => void;
2
+ export declare function scheduleMicrotask(task: ScheduledTask): void;
3
+ //# sourceMappingURL=scheduling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../../src/utilities/scheduling.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAM3D"}
@@ -0,0 +1,3 @@
1
+ import type { ReactElementPropDefinition } from "../types/public";
2
+ export declare function serializeAttributeValue(value: unknown, definition: ReactElementPropDefinition, host: HTMLElement): string | null;
3
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/utilities/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,0BAA0B,EACtC,IAAI,EAAE,WAAW,GAChB,MAAM,GAAG,IAAI,CAyBf"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@codedia/react-web-component-bridge",
3
+ "version": "0.1.0",
4
+ "description": "Expose React components as standards-based Web Components.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "homepage": "https://react-web-component-bridge-site.netlify.app",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/fahimc/react-web-component-bridge.git",
11
+ "directory": "packages/core"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/fahimc/react-web-component-bridge/issues"
15
+ },
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "sideEffects": false,
20
+ "main": "./dist/index.cjs",
21
+ "module": "./dist/index.js",
22
+ "types": "./dist/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js",
27
+ "require": "./dist/index.cjs"
28
+ },
29
+ "./react": {
30
+ "types": "./dist/react.d.ts",
31
+ "import": "./dist/react.js",
32
+ "require": "./dist/react.cjs"
33
+ },
34
+ "./metadata": {
35
+ "types": "./dist/metadata/index.d.ts",
36
+ "import": "./dist/metadata/index.js",
37
+ "require": "./dist/metadata/index.cjs"
38
+ }
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "README.md"
43
+ ],
44
+ "peerDependencies": {
45
+ "react": "^18.3.0 || ^19.0.0",
46
+ "react-dom": "^18.3.0 || ^19.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "react": "^19.1.0",
50
+ "react-dom": "^19.1.0"
51
+ },
52
+ "scripts": {
53
+ "build": "tsup src/index.ts src/react.ts src/metadata/index.ts --format esm,cjs --sourcemap --splitting false --clean && tsc -p tsconfig.build.json --emitDeclarationOnly",
54
+ "typecheck": "tsc -p tsconfig.json --noEmit",
55
+ "test": "vitest run"
56
+ }
57
+ }