@reckona/mreact-compat 0.0.91 → 0.0.93

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 (104) hide show
  1. package/README.md +1 -0
  2. package/dist/class-component.d.ts +22 -6
  3. package/dist/class-component.d.ts.map +1 -1
  4. package/dist/class-component.js +157 -51
  5. package/dist/class-component.js.map +1 -1
  6. package/dist/context.d.ts +19 -3
  7. package/dist/context.d.ts.map +1 -1
  8. package/dist/context.js +55 -6
  9. package/dist/context.js.map +1 -1
  10. package/dist/dom-children.d.ts +2 -0
  11. package/dist/dom-children.d.ts.map +1 -1
  12. package/dist/dom-children.js +103 -1
  13. package/dist/dom-children.js.map +1 -1
  14. package/dist/dom-host-rules.d.ts +10 -0
  15. package/dist/dom-host-rules.d.ts.map +1 -0
  16. package/dist/dom-host-rules.js +86 -0
  17. package/dist/dom-host-rules.js.map +1 -0
  18. package/dist/dom-props.d.ts +3 -2
  19. package/dist/dom-props.d.ts.map +1 -1
  20. package/dist/dom-props.js +229 -33
  21. package/dist/dom-props.js.map +1 -1
  22. package/dist/element.d.ts +9 -4
  23. package/dist/element.d.ts.map +1 -1
  24. package/dist/element.js +101 -26
  25. package/dist/element.js.map +1 -1
  26. package/dist/event-listeners.d.ts +4 -4
  27. package/dist/event-listeners.d.ts.map +1 -1
  28. package/dist/event-listeners.js +1 -1
  29. package/dist/event-listeners.js.map +1 -1
  30. package/dist/event-types.d.ts +10 -0
  31. package/dist/event-types.d.ts.map +1 -1
  32. package/dist/event-types.js.map +1 -1
  33. package/dist/events.js +22 -1
  34. package/dist/events.js.map +1 -1
  35. package/dist/fiber-commit.d.ts +2 -1
  36. package/dist/fiber-commit.d.ts.map +1 -1
  37. package/dist/fiber-commit.js +13 -1
  38. package/dist/fiber-commit.js.map +1 -1
  39. package/dist/fiber-reconciler.d.ts.map +1 -1
  40. package/dist/fiber-reconciler.js +28 -7
  41. package/dist/fiber-reconciler.js.map +1 -1
  42. package/dist/fiber-work-loop.d.ts.map +1 -1
  43. package/dist/fiber-work-loop.js +4 -3
  44. package/dist/fiber-work-loop.js.map +1 -1
  45. package/dist/fiber.d.ts +5 -0
  46. package/dist/fiber.d.ts.map +1 -1
  47. package/dist/fiber.js +9 -0
  48. package/dist/fiber.js.map +1 -1
  49. package/dist/hooks-entry.d.ts +3 -0
  50. package/dist/hooks-entry.d.ts.map +1 -0
  51. package/dist/hooks-entry.js +2 -0
  52. package/dist/hooks-entry.js.map +1 -0
  53. package/dist/hooks.d.ts +39 -5
  54. package/dist/hooks.d.ts.map +1 -1
  55. package/dist/hooks.js +373 -326
  56. package/dist/hooks.js.map +1 -1
  57. package/dist/host-reconciler.d.ts +3 -0
  58. package/dist/host-reconciler.d.ts.map +1 -1
  59. package/dist/host-reconciler.js +1183 -68
  60. package/dist/host-reconciler.js.map +1 -1
  61. package/dist/hydration.d.ts +1 -1
  62. package/dist/hydration.d.ts.map +1 -1
  63. package/dist/hydration.js.map +1 -1
  64. package/dist/index.d.ts +2 -1
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +2 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/react-default.d.ts +4 -4
  69. package/dist/react-default.d.ts.map +1 -1
  70. package/dist/react-default.js +2 -1
  71. package/dist/react-default.js.map +1 -1
  72. package/dist/reconciler.d.ts.map +1 -1
  73. package/dist/reconciler.js +38 -22
  74. package/dist/reconciler.js.map +1 -1
  75. package/dist/root.d.ts.map +1 -1
  76. package/dist/root.js +48 -13
  77. package/dist/root.js.map +1 -1
  78. package/dist/server-render.d.ts +6 -0
  79. package/dist/server-render.d.ts.map +1 -0
  80. package/dist/server-render.js +307 -0
  81. package/dist/server-render.js.map +1 -0
  82. package/package.json +6 -2
  83. package/src/class-component.ts +313 -51
  84. package/src/context.ts +108 -9
  85. package/src/dom-children.ts +155 -1
  86. package/src/dom-host-rules.ts +115 -0
  87. package/src/dom-props.ts +297 -46
  88. package/src/element.ts +141 -31
  89. package/src/event-listeners.ts +6 -6
  90. package/src/event-types.ts +10 -0
  91. package/src/events.ts +32 -10
  92. package/src/fiber-commit.ts +16 -1
  93. package/src/fiber-reconciler.ts +39 -6
  94. package/src/fiber-work-loop.ts +4 -3
  95. package/src/fiber.ts +14 -0
  96. package/src/hooks-entry.ts +24 -0
  97. package/src/hooks.ts +482 -479
  98. package/src/host-reconciler.ts +1662 -83
  99. package/src/hydration.ts +1 -1
  100. package/src/index.ts +1 -1
  101. package/src/react-default.ts +1 -1
  102. package/src/reconciler.ts +61 -22
  103. package/src/root.ts +55 -12
  104. package/src/server-render.ts +478 -0
package/dist/element.js CHANGED
@@ -1,29 +1,51 @@
1
- export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for("modular.react.element");
1
+ export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for("react.transitional.element");
2
2
  export const ERROR_BOUNDARY_TYPE = Symbol.for("modular.react.error_boundary");
3
- export const FORWARD_REF_TYPE = Symbol.for("modular.react.forward_ref");
4
- export const MEMO_TYPE = Symbol.for("modular.react.memo");
5
- export const LAZY_TYPE = Symbol.for("modular.react.lazy");
6
- export const STRICT_MODE_TYPE = Symbol.for("modular.react.strict_mode");
7
- export const PORTAL_TYPE = Symbol.for("modular.react.portal");
8
- const REACT_COMPAT_PROVIDER_TYPE = Symbol.for("modular.react.provider");
9
- export const Fragment = Symbol.for("modular.react.fragment");
10
- export const Suspense = Symbol.for("modular.react.suspense");
11
- export const SuspenseList = Symbol.for("modular.react.suspense_list");
12
- export const Activity = Symbol.for("modular.react.activity");
13
- export const Profiler = Symbol.for("modular.react.profiler");
3
+ export const FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
4
+ export const MEMO_TYPE = Symbol.for("react.memo");
5
+ export const LAZY_TYPE = Symbol.for("react.lazy");
6
+ export const STRICT_MODE_TYPE = Symbol.for("react.strict_mode");
7
+ export const PORTAL_TYPE = Symbol.for("react.portal");
8
+ const REACT_COMPAT_PROVIDER_TYPE = Symbol.for("react.context");
9
+ export const Fragment = Symbol.for("react.fragment");
10
+ export const Suspense = Symbol.for("react.suspense");
11
+ export const SuspenseList = Symbol.for("react.suspense_list");
12
+ export const Activity = Symbol.for("react.activity");
13
+ export const Profiler = Symbol.for("react.profiler");
14
+ export const HOST_OWN_PROPS_META = Symbol.for("modular.react.host_own_props_meta");
15
+ const hasOwnProperty = Object.prototype.hasOwnProperty;
14
16
  export function createElement(type, config, ...children) {
15
- const normalizedType = normalizeElementType(type);
16
- const props = applyDefaultProps(normalizedType, { ...config });
17
- const key = props.key === undefined ? null : String(props.key);
18
- const ref = props.ref ?? null;
19
- delete props.key;
20
- delete props.ref;
17
+ if (typeof type === "string") {
18
+ const key = config?.key === undefined ? null : String(config.key);
19
+ const ref = config?.ref ?? null;
20
+ const props = copyElementProps(config);
21
+ if (children.length === 1) {
22
+ props.children = children[0];
23
+ }
24
+ else if (children.length > 1) {
25
+ props.children = children;
26
+ }
27
+ setHostOwnPropsMeta(props);
28
+ return {
29
+ $$typeof: REACT_COMPAT_ELEMENT_TYPE,
30
+ type,
31
+ key,
32
+ ref,
33
+ props,
34
+ };
35
+ }
36
+ const normalizedType = typeof type === "object" && type !== null ? normalizeElementType(type) : type;
37
+ const key = config?.key === undefined ? null : String(config.key);
38
+ const ref = config?.ref ?? null;
39
+ const props = applyDefaultProps(normalizedType, copyElementProps(config));
21
40
  if (children.length === 1) {
22
41
  props.children = children[0];
23
42
  }
24
43
  else if (children.length > 1) {
25
44
  props.children = children;
26
45
  }
46
+ if (typeof normalizedType === "string") {
47
+ setHostOwnPropsMeta(props);
48
+ }
27
49
  return {
28
50
  $$typeof: REACT_COMPAT_ELEMENT_TYPE,
29
51
  type: normalizedType,
@@ -70,14 +92,9 @@ export function lazy(load) {
70
92
  }
71
93
  export const StrictMode = STRICT_MODE_TYPE;
72
94
  export function cloneElement(element, props, ...children) {
73
- const nextProps = applyDefaultProps(element.type, {
74
- ...element.props,
75
- ...props,
76
- });
77
- const key = nextProps.key === undefined ? element.key : String(nextProps.key);
78
- const ref = nextProps.ref === undefined ? element.ref : nextProps.ref;
79
- delete nextProps.key;
80
- delete nextProps.ref;
95
+ const key = props === null || props.key === undefined ? element.key : String(props.key);
96
+ const ref = props === null || props.ref === undefined ? element.ref : props.ref;
97
+ const nextProps = applyDefaultProps(element.type, copyElementProps(props, element.props));
81
98
  if (children.length === 1) {
82
99
  nextProps.children = children[0];
83
100
  }
@@ -92,10 +109,28 @@ export function cloneElement(element, props, ...children) {
92
109
  props: nextProps,
93
110
  };
94
111
  }
112
+ function copyElementProps(source, base) {
113
+ const props = base === undefined ? {} : { ...base };
114
+ if (source === null || source === undefined) {
115
+ return props;
116
+ }
117
+ for (const name in source) {
118
+ if (!hasOwnProperty.call(source, name)) {
119
+ continue;
120
+ }
121
+ if (name !== "key" && name !== "ref" && name !== "__self" && name !== "__source") {
122
+ props[name] = source[name];
123
+ }
124
+ }
125
+ return props;
126
+ }
95
127
  function normalizeElementType(type) {
96
128
  return isReactCompatContextProviderShorthand(type) ? type.Provider : type;
97
129
  }
98
130
  function applyDefaultProps(type, props) {
131
+ if (typeof type !== "function" && (typeof type !== "object" || type === null)) {
132
+ return props;
133
+ }
99
134
  const defaultProps = type
100
135
  ?.defaultProps;
101
136
  if (defaultProps === undefined) {
@@ -117,6 +152,46 @@ function isReactCompatContextProviderShorthand(value) {
117
152
  provider !== null &&
118
153
  provider.$$typeof === REACT_COMPAT_PROVIDER_TYPE);
119
154
  }
155
+ function setHostOwnPropsMeta(props) {
156
+ const dataKey = props["data-key"];
157
+ if (typeof dataKey !== "number" || !Number.isSafeInteger(dataKey) || dataKey < 0) {
158
+ return;
159
+ }
160
+ let selectedState = 0;
161
+ for (const name in props) {
162
+ if (!hasOwnProperty.call(props, name) || name === "children") {
163
+ continue;
164
+ }
165
+ if (name === "data-key") {
166
+ continue;
167
+ }
168
+ if (name === "className") {
169
+ const value = props[name];
170
+ if (value === undefined) {
171
+ continue;
172
+ }
173
+ if (value !== "selected") {
174
+ return;
175
+ }
176
+ selectedState |= 1;
177
+ continue;
178
+ }
179
+ if (name === "data-selected") {
180
+ const value = props[name];
181
+ if (value === undefined) {
182
+ continue;
183
+ }
184
+ if (value !== "true") {
185
+ return;
186
+ }
187
+ selectedState |= 2;
188
+ continue;
189
+ }
190
+ return;
191
+ }
192
+ props[HOST_OWN_PROPS_META] =
193
+ dataKey * 4 + selectedState;
194
+ }
120
195
  export const isValidElement = isReactCompatElement;
121
196
  export const Children = {
122
197
  map(children, fn) {
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"modular.react.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"modular.react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"modular.react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"modular.react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"modular.react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"modular.react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"modular.react.provider\");\nexport const Fragment = Symbol.for(\"modular.react.fragment\");\nexport const Suspense = Symbol.for(\"modular.react.suspense\");\nexport const SuspenseList = Symbol.for(\"modular.react.suspense_list\");\nexport const Activity = Symbol.for(\"modular.react.activity\");\nexport const Profiler = Symbol.for(\"modular.react.profiler\");\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & { key?: unknown; ref?: unknown }) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const normalizedType = normalizeElementType(type);\n const props = applyDefaultProps(normalizedType, { ...config }) as P & {\n children?: ReactCompatNode;\n key?: unknown;\n ref?: unknown;\n };\n const key = props.key === undefined ? null : String(props.key);\n const ref = props.ref ?? null;\n\n delete props.key;\n delete props.ref;\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const nextProps = applyDefaultProps(element.type, {\n ...element.props,\n ...props,\n }) as P & { key?: unknown; ref?: unknown };\n const key = nextProps.key === undefined ? element.key : String(nextProps.key);\n const ref = nextProps.ref === undefined ? element.ref : nextProps.ref;\n\n delete nextProps.key;\n delete nextProps.ref;\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"react.context\");\nexport const Fragment = Symbol.for(\"react.fragment\");\nexport const Suspense = Symbol.for(\"react.suspense\");\nexport const SuspenseList = Symbol.for(\"react.suspense_list\");\nexport const Activity = Symbol.for(\"react.activity\");\nexport const Profiler = Symbol.for(\"react.profiler\");\nexport const HOST_OWN_PROPS_META = Symbol.for(\"modular.react.host_own_props_meta\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & ReactReservedProps) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n if (typeof type === \"string\") {\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = copyElementProps(config) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n setHostOwnPropsMeta(props);\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type,\n key,\n ref,\n props,\n };\n }\n\n const normalizedType =\n typeof type === \"object\" && type !== null ? normalizeElementType(type) : type;\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = applyDefaultProps(normalizedType, copyElementProps(config)) as P & {\n children?: ReactCompatNode;\n };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n if (typeof normalizedType === \"string\") {\n setHostOwnPropsMeta(props);\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const key = props === null || props.key === undefined ? element.key : String(props.key);\n const ref = props === null || props.ref === undefined ? element.ref : props.ref;\n const nextProps = applyDefaultProps(\n element.type,\n copyElementProps(props, element.props),\n ) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction copyElementProps(\n source: Record<string, unknown> | null | undefined,\n base?: Record<string, unknown>,\n): Record<string, unknown> {\n const props: Record<string, unknown> = base === undefined ? {} : { ...base };\n\n if (source === null || source === undefined) {\n return props;\n }\n\n for (const name in source) {\n if (!hasOwnProperty.call(source, name)) {\n continue;\n }\n\n if (name !== \"key\" && name !== \"ref\" && name !== \"__self\" && name !== \"__source\") {\n props[name] = source[name];\n }\n }\n\n return props;\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (typeof type !== \"function\" && (typeof type !== \"object\" || type === null)) {\n return props;\n }\n\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\ninterface ReactReservedProps {\n key?: unknown;\n ref?: unknown;\n __self?: unknown;\n __source?: unknown;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nfunction setHostOwnPropsMeta(props: Record<string, unknown>): void {\n const dataKey = props[\"data-key\"];\n\n if (typeof dataKey !== \"number\" || !Number.isSafeInteger(dataKey) || dataKey < 0) {\n return;\n }\n\n let selectedState = 0;\n\n for (const name in props) {\n if (!hasOwnProperty.call(props, name) || name === \"children\") {\n continue;\n }\n\n if (name === \"data-key\") {\n continue;\n }\n\n if (name === \"className\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"selected\") {\n return;\n }\n\n selectedState |= 1;\n continue;\n }\n\n if (name === \"data-selected\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"true\") {\n return;\n }\n\n selectedState |= 2;\n continue;\n }\n\n return;\n }\n\n (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META] =\n dataKey * 4 + selectedState;\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  import type { SyntheticEvent } from "./event-types.js";
2
2
  export interface AppliedProps {
3
3
  props: Record<string, unknown>;
4
- listeners: Map<string, AppliedEventListener>;
4
+ listeners?: Map<string, AppliedEventListener>;
5
5
  }
6
6
  export interface AppliedEventListener {
7
7
  handler: (event: SyntheticEvent) => void;
8
8
  }
9
- export declare function getAppliedProps(element: HTMLElement): AppliedProps | undefined;
10
- export declare function setAppliedProps(element: HTMLElement, props: AppliedProps): void;
11
- export declare function getAppliedEventHandler(element: HTMLElement, name: string): ((event: SyntheticEvent) => void) | undefined;
9
+ export declare function getAppliedProps(element: Element): AppliedProps | undefined;
10
+ export declare function setAppliedProps(element: Element, props: AppliedProps): void;
11
+ export declare function getAppliedEventHandler(element: Element, name: string): ((event: SyntheticEvent) => void) | undefined;
12
12
  //# sourceMappingURL=event-listeners.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-listeners.d.ts","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC1C;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,CAE9E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAE/E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAE/C"}
1
+ {"version":3,"file":"event-listeners.d.ts","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC1C;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAE1E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAE3E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAE/C"}
@@ -6,6 +6,6 @@ export function setAppliedProps(element, props) {
6
6
  appliedProps.set(element, props);
7
7
  }
8
8
  export function getAppliedEventHandler(element, name) {
9
- return appliedProps.get(element)?.listeners.get(name)?.handler;
9
+ return appliedProps.get(element)?.listeners?.get(name)?.handler;
10
10
  }
11
11
  //# sourceMappingURL=event-listeners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-listeners.js","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAWA,MAAM,YAAY,GAAG,IAAI,OAAO,EAA6B,CAAC;AAE9D,MAAM,UAAU,eAAe,CAAC,OAAoB;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAoB,EAAE,KAAmB;IACvE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAoB,EACpB,IAAY;IAEZ,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AACjE,CAAC","sourcesContent":["import type { SyntheticEvent } from \"./event-types.js\";\n\nexport interface AppliedProps {\n props: Record<string, unknown>;\n listeners: Map<string, AppliedEventListener>;\n}\n\nexport interface AppliedEventListener {\n handler: (event: SyntheticEvent) => void;\n}\n\nconst appliedProps = new WeakMap<HTMLElement, AppliedProps>();\n\nexport function getAppliedProps(element: HTMLElement): AppliedProps | undefined {\n return appliedProps.get(element);\n}\n\nexport function setAppliedProps(element: HTMLElement, props: AppliedProps): void {\n appliedProps.set(element, props);\n}\n\nexport function getAppliedEventHandler(\n element: HTMLElement,\n name: string,\n): ((event: SyntheticEvent) => void) | undefined {\n return appliedProps.get(element)?.listeners.get(name)?.handler;\n}\n"]}
1
+ {"version":3,"file":"event-listeners.js","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAWA,MAAM,YAAY,GAAG,IAAI,OAAO,EAAyB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAmB;IACnE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,IAAY;IAEZ,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AAClE,CAAC","sourcesContent":["import type { SyntheticEvent } from \"./event-types.js\";\n\nexport interface AppliedProps {\n props: Record<string, unknown>;\n listeners?: Map<string, AppliedEventListener>;\n}\n\nexport interface AppliedEventListener {\n handler: (event: SyntheticEvent) => void;\n}\n\nconst appliedProps = new WeakMap<Element, AppliedProps>();\n\nexport function getAppliedProps(element: Element): AppliedProps | undefined {\n return appliedProps.get(element);\n}\n\nexport function setAppliedProps(element: Element, props: AppliedProps): void {\n appliedProps.set(element, props);\n}\n\nexport function getAppliedEventHandler(\n element: Element,\n name: string,\n): ((event: SyntheticEvent) => void) | undefined {\n return appliedProps.get(element)?.listeners?.get(name)?.handler;\n}\n"]}
@@ -9,6 +9,16 @@ export interface SyntheticEvent {
9
9
  type: string;
10
10
  target: EventTarget | null;
11
11
  currentTarget: EventTarget | null;
12
+ clientX?: number;
13
+ clientY?: number;
14
+ pageX?: number;
15
+ pageY?: number;
16
+ screenX?: number;
17
+ screenY?: number;
18
+ relatedTarget?: EventTarget | null;
19
+ touches?: TouchList;
20
+ changedTouches?: TouchList;
21
+ key?: string;
12
22
  persist(): void;
13
23
  preventDefault(): void;
14
24
  stopPropagation(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,IAAI,IAAI,CAAC;IACvB,eAAe,IAAI,IAAI,CAAC;IACxB,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC;CACjC"}
1
+ {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,IAAI,IAAI,CAAC;IACvB,eAAe,IAAI,IAAI,CAAC;IACxB,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC;CACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"","sourcesContent":["export interface SyntheticEvent {\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n nativeEvent: Event;\n timeStamp: number;\n type: string;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n persist(): void;\n preventDefault(): void;\n stopPropagation(): void;\n isDefaultPrevented(): boolean;\n isPersistent(): boolean;\n isPropagationStopped(): boolean;\n}\n"]}
1
+ {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"","sourcesContent":["export interface SyntheticEvent {\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n nativeEvent: Event;\n timeStamp: number;\n type: string;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n clientX?: number;\n clientY?: number;\n pageX?: number;\n pageY?: number;\n screenX?: number;\n screenY?: number;\n relatedTarget?: EventTarget | null;\n touches?: TouchList;\n changedTouches?: TouchList;\n key?: string;\n persist(): void;\n preventDefault(): void;\n stopPropagation(): void;\n isDefaultPrevented(): boolean;\n isPersistent(): boolean;\n isPropagationStopped(): boolean;\n}\n"]}
package/dist/events.js CHANGED
@@ -251,7 +251,7 @@ function getEventPath(root, event) {
251
251
  const path = [];
252
252
  let cursor = event.target instanceof Node ? event.target : null;
253
253
  while (cursor !== null) {
254
- if (cursor instanceof HTMLElement) {
254
+ if (cursor instanceof Element) {
255
255
  path.push(cursor);
256
256
  }
257
257
  if (cursor === root) {
@@ -270,6 +270,9 @@ function createSyntheticEvent(nativeEvent, currentTarget, state = {
270
270
  defaultPrevented: nativeEvent.defaultPrevented,
271
271
  propagationStopped: false,
272
272
  }, syntheticType = nativeEvent.type) {
273
+ const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;
274
+ const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;
275
+ const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;
273
276
  return {
274
277
  bubbles: nativeEvent.bubbles,
275
278
  cancelable: nativeEvent.cancelable,
@@ -283,6 +286,24 @@ function createSyntheticEvent(nativeEvent, currentTarget, state = {
283
286
  type: syntheticType,
284
287
  target: nativeEvent.target,
285
288
  currentTarget,
289
+ ...(mouseEvent === undefined
290
+ ? {}
291
+ : {
292
+ clientX: mouseEvent.clientX,
293
+ clientY: mouseEvent.clientY,
294
+ pageX: mouseEvent.pageX,
295
+ pageY: mouseEvent.pageY,
296
+ screenX: mouseEvent.screenX,
297
+ screenY: mouseEvent.screenY,
298
+ relatedTarget: mouseEvent.relatedTarget,
299
+ }),
300
+ ...(touchEvent === undefined
301
+ ? {}
302
+ : {
303
+ touches: touchEvent.touches,
304
+ changedTouches: touchEvent.changedTouches,
305
+ }),
306
+ ...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),
286
307
  persist() { },
287
308
  preventDefault() {
288
309
  state.defaultPrevented = true;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { runWithEventPriority } from \"./hooks.js\";\nimport { getAppliedEventHandler } from \"./event-listeners.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\n\nconst delegatedRootListeners = new WeakMap<Element, Set<string>>();\nconst logicalEventParents = new WeakMap<Element, ParentNode>();\n\nconst reactPropToNativeEvent = new Map<string, string[]>([\n [\"onAnimationEnd\", [\"animationend\"]],\n [\"onAnimationIteration\", [\"animationiteration\"]],\n [\"onAnimationStart\", [\"animationstart\"]],\n [\"onBeforeInput\", [\"beforeinput\"]],\n [\"onCompositionEnd\", [\"compositionend\"]],\n [\"onCompositionStart\", [\"compositionstart\"]],\n [\"onCompositionUpdate\", [\"compositionupdate\"]],\n [\"onContextMenu\", [\"contextmenu\"]],\n [\"onDoubleClick\", [\"dblclick\"]],\n [\"onDragEnd\", [\"dragend\"]],\n [\"onDragEnter\", [\"dragenter\"]],\n [\"onDragExit\", [\"dragexit\"]],\n [\"onDragLeave\", [\"dragleave\"]],\n [\"onDragOver\", [\"dragover\"]],\n [\"onDragStart\", [\"dragstart\"]],\n [\"onDrop\", [\"drop\"]],\n [\"onFocus\", [\"focusin\"]],\n [\"onBlur\", [\"focusout\"]],\n [\"onGotPointerCapture\", [\"gotpointercapture\"]],\n [\"onLostPointerCapture\", [\"lostpointercapture\"]],\n [\"onMouseEnter\", [\"mouseover\"]],\n [\"onMouseLeave\", [\"mouseout\"]],\n [\"onPointerCancel\", [\"pointercancel\"]],\n [\"onPointerDown\", [\"pointerdown\"]],\n [\"onPointerEnter\", [\"pointerover\"]],\n [\"onPointerLeave\", [\"pointerout\"]],\n [\"onPointerMove\", [\"pointermove\"]],\n [\"onPointerOut\", [\"pointerout\"]],\n [\"onPointerOver\", [\"pointerover\"]],\n [\"onPointerUp\", [\"pointerup\"]],\n [\"onTouchCancel\", [\"touchcancel\"]],\n [\"onTouchEnd\", [\"touchend\"]],\n [\"onTouchMove\", [\"touchmove\"]],\n [\"onTouchStart\", [\"touchstart\"]],\n [\"onTransitionEnd\", [\"transitionend\"]],\n [\"onChange\", [\"change\", \"input\"]],\n]);\n\nconst nativeEventToReactProps = new Map<string, string[]>([\n [\"animationend\", [\"onAnimationEnd\"]],\n [\"animationiteration\", [\"onAnimationIteration\"]],\n [\"animationstart\", [\"onAnimationStart\"]],\n [\"beforeinput\", [\"onBeforeInput\"]],\n [\"compositionend\", [\"onCompositionEnd\"]],\n [\"compositionstart\", [\"onCompositionStart\"]],\n [\"compositionupdate\", [\"onCompositionUpdate\"]],\n [\"contextmenu\", [\"onContextMenu\"]],\n [\"dblclick\", [\"onDoubleClick\"]],\n [\"dragend\", [\"onDragEnd\"]],\n [\"dragenter\", [\"onDragEnter\"]],\n [\"dragexit\", [\"onDragExit\"]],\n [\"dragleave\", [\"onDragLeave\"]],\n [\"dragover\", [\"onDragOver\"]],\n [\"dragstart\", [\"onDragStart\"]],\n [\"drop\", [\"onDrop\"]],\n [\"focusin\", [\"onFocus\"]],\n [\"focusout\", [\"onBlur\"]],\n [\"gotpointercapture\", [\"onGotPointerCapture\"]],\n [\"lostpointercapture\", [\"onLostPointerCapture\"]],\n [\"input\", [\"onInput\", \"onChange\"]],\n [\"keydown\", [\"onKeyDown\"]],\n [\"keyup\", [\"onKeyUp\"]],\n [\"mousedown\", [\"onMouseDown\"]],\n [\"mousemove\", [\"onMouseMove\"]],\n [\"mouseup\", [\"onMouseUp\"]],\n [\"mouseout\", [\"onMouseOut\"]],\n [\"mouseover\", [\"onMouseOver\"]],\n [\"pointercancel\", [\"onPointerCancel\"]],\n [\"pointerdown\", [\"onPointerDown\"]],\n [\"pointermove\", [\"onPointerMove\"]],\n [\"pointerout\", [\"onPointerOut\"]],\n [\"pointerover\", [\"onPointerOver\"]],\n [\"pointerup\", [\"onPointerUp\"]],\n [\"touchcancel\", [\"onTouchCancel\"]],\n [\"touchend\", [\"onTouchEnd\"]],\n [\"touchmove\", [\"onTouchMove\"]],\n [\"touchstart\", [\"onTouchStart\"]],\n [\"transitionend\", [\"onTransitionEnd\"]],\n]);\n\nexport function toEventNames(propName: string): string[] {\n const basePropName = propName.endsWith(\"Capture\")\n ? propName.slice(0, -\"Capture\".length)\n : propName;\n return reactPropToNativeEvent.get(basePropName) ?? [\n basePropName.slice(2).toLowerCase(),\n ];\n}\n\nexport function toEventPropNames(eventName: string): string[] {\n const propNames = nativeEventToReactProps.get(eventName);\n if (propNames !== undefined) {\n return propNames;\n }\n const propName = `on${eventName.slice(0, 1).toUpperCase()}${eventName.slice(1)}`;\n return [propName];\n}\n\nexport function setLogicalEventParent(\n container: Element,\n parent: ParentNode,\n): void {\n logicalEventParents.set(container, parent);\n}\n\nexport function getEventPriority(\n eventName: string,\n): \"discrete\" | \"continuous\" | \"default\" {\n if (discreteEventNames.has(eventName)) {\n return \"discrete\";\n }\n\n if (continuousEventNames.has(eventName)) {\n return \"continuous\";\n }\n\n return \"default\";\n}\n\nconst discreteEventNames = new Set([\n \"beforeinput\",\n \"change\",\n \"click\",\n \"dblclick\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mouseup\",\n \"pointerdown\",\n \"pointerup\",\n \"submit\",\n \"touchcancel\",\n \"touchend\",\n \"touchstart\",\n]);\n\nconst continuousEventNames = new Set([\n \"drag\",\n \"dragenter\",\n \"dragleave\",\n \"dragover\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"scroll\",\n \"touchmove\",\n \"wheel\",\n]);\n\nexport function ensureDelegatedEventListener(\n root: Element,\n eventName: string,\n): void {\n const listeners = delegatedRootListeners.get(root) ?? new Set<string>();\n\n if (listeners.has(eventName)) {\n return;\n }\n\n listeners.add(eventName);\n delegatedRootListeners.set(root, listeners);\n root.addEventListener(eventName, (event) => {\n runWithEventPriority(getEventPriority(eventName), () => {\n dispatchDelegatedEvent(root, eventName, event);\n });\n });\n}\n\nfunction dispatchDelegatedEvent(\n root: Element,\n eventName: string,\n event: Event,\n): void {\n const path = getEventPath(root, event);\n const propNames = toEventPropNames(eventName);\n const state = {\n defaultPrevented: event.defaultPrevented,\n propagationStopped: false,\n };\n\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index] as HTMLElement;\n dispatchEventPropNames(propNames, \"capture\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n\n if (eventName === \"mouseover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index] as HTMLElement;\n dispatchMouseTransitionEvent(\"onMouseEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"mouseout\") {\n for (const target of path) {\n dispatchMouseTransitionEvent(\"onMouseLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index] as HTMLElement;\n dispatchPointerTransitionEvent(\"onPointerEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerout\") {\n for (const target of path) {\n dispatchPointerTransitionEvent(\"onPointerLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n for (const target of path) {\n dispatchEventPropNames(propNames, \"bubble\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchPointerTransitionEvent(\n propName: \"onPointerEnter\" | \"onPointerLeave\",\n event: Event,\n target: HTMLElement,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state, propName.slice(2).toLowerCase()));\n }\n}\n\nfunction dispatchEventPropNames(\n propNames: readonly string[],\n phase: \"capture\" | \"bubble\",\n event: Event,\n target: HTMLElement,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n for (const propName of propNames) {\n const listenerName = phase === \"capture\" ? `${propName}Capture` : propName;\n const handler = getAppliedEventHandler(target, listenerName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchMouseTransitionEvent(\n propName: \"onMouseEnter\" | \"onMouseLeave\",\n event: Event,\n target: HTMLElement,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n}\n\nfunction isInternalMouseTransition(event: Event, target: HTMLElement): boolean {\n const relatedTarget =\n event instanceof MouseEvent && event.relatedTarget instanceof Node\n ? event.relatedTarget\n : null;\n\n return relatedTarget !== null && target.contains(relatedTarget);\n}\n\nfunction getEventPath(root: Element, event: Event): HTMLElement[] {\n const path: HTMLElement[] = [];\n let cursor = event.target instanceof Node ? event.target : null;\n\n while (cursor !== null) {\n if (cursor instanceof HTMLElement) {\n path.push(cursor);\n }\n\n if (cursor === root) {\n const logicalParent = logicalEventParents.get(root);\n if (logicalParent === undefined) {\n break;\n }\n cursor = logicalParent;\n continue;\n }\n\n cursor = cursor.parentNode;\n }\n\n return path;\n}\n\nfunction createSyntheticEvent(\n nativeEvent: Event,\n currentTarget: EventTarget,\n state: { defaultPrevented: boolean; propagationStopped: boolean } = {\n defaultPrevented: nativeEvent.defaultPrevented,\n propagationStopped: false,\n },\n syntheticType = nativeEvent.type,\n): SyntheticEvent {\n return {\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n eventPhase: nativeEvent.eventPhase,\n isTrusted: nativeEvent.isTrusted ?? false,\n nativeEvent,\n timeStamp: nativeEvent.timeStamp,\n type: syntheticType,\n target: nativeEvent.target,\n currentTarget,\n persist() {},\n preventDefault() {\n state.defaultPrevented = true;\n nativeEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n nativeEvent.stopPropagation();\n },\n isDefaultPrevented() {\n return state.defaultPrevented;\n },\n isPersistent() {\n return true;\n },\n isPropagationStopped() {\n return state.propagationStopped;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAwB,CAAC;AACnE,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAuB,CAAC;AAE/D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAmB;IACvD,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC,sBAAsB,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC,oBAAoB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC,qBAAqB,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,qBAAqB,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC,sBAAsB,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAmB;IACxD,CAAC,cAAc,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC,oBAAoB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC,kBAAkB,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC,mBAAmB,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAC9C,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,mBAAmB,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAC9C,CAAC,oBAAoB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,eAAe,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC,eAAe,EAAE,CAAC,iBAAiB,CAAC,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;QACtC,CAAC,CAAC,QAAQ,CAAC;IACb,OAAO,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI;QACjD,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAkB,EAClB,MAAkB;IAElB,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAAiB;IAEjB,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,aAAa;IACb,QAAQ;IACR,OAAO;IACP,UAAU;IACV,SAAS;IACT,UAAU;IACV,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,SAAS;IACT,aAAa;IACb,WAAW;IACX,QAAQ;IACR,aAAa;IACb,UAAU;IACV,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,aAAa;IACb,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,WAAW;IACX,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,4BAA4B,CAC1C,IAAa,EACb,SAAiB;IAEjB,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IAExE,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzB,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;YACrD,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAa,EACb,SAAiB,EACjB,KAAY;IAEZ,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG;QACZ,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,kBAAkB,EAAE,KAAK;KAC1B,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QAC5B,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAEnE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;YAC5B,4BAA4B,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEnE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC1B,4BAA4B,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEnE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;YAC5B,8BAA8B,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEvE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC1B,8BAA8B,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEvE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAElE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CACrC,QAA6C,EAC7C,KAAY,EACZ,MAAe,EACf,KAAiE;IAEjE,IAAI,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAA4B,EAC5B,KAA2B,EAC3B,KAAY,EACZ,MAAe,EACf,KAAiE;IAEjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3E,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE7D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,QAAyC,EACzC,KAAY,EACZ,MAAe,EACf,KAAiE;IAEjE,IAAI,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAY,EAAE,MAAe;IAC9D,MAAM,aAAa,GACjB,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,aAAa,YAAY,IAAI;QAChE,CAAC,CAAC,KAAK,CAAC,aAAa;QACrB,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,IAAa,EAAE,KAAY;IAC/C,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhE,OAAO,MAAM,KAAK,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM;YACR,CAAC;YACD,MAAM,GAAG,aAAa,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAkB,EAClB,aAA0B,EAC1B,QAAoE;IAClE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;IAC9C,kBAAkB,EAAE,KAAK;CAC1B,EACD,aAAa,GAAG,WAAW,CAAC,IAAI;IAEhC,MAAM,UAAU,GAAG,WAAW,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,UAAU,GAAG,WAAW,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,aAAa,GAAG,WAAW,YAAY,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAErF,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,IAAI,gBAAgB;YAClB,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAChC,CAAC;QACD,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,KAAK;QACzC,WAAW;QACX,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,aAAa;QACb,GAAG,CAAC,UAAU,KAAK,SAAS;YAC1B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,aAAa,EAAE,UAAU,CAAC,aAAa;aACxC,CAAC;QACN,GAAG,CAAC,UAAU,KAAK,SAAS;YAC1B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;aAC1C,CAAC;QACN,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;QAClE,OAAO,KAAI,CAAC;QACZ,cAAc;YACZ,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC9B,WAAW,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;QACD,eAAe;YACb,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAChC,WAAW,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;QACD,kBAAkB;YAChB,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAChC,CAAC;QACD,YAAY;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oBAAoB;YAClB,OAAO,KAAK,CAAC,kBAAkB,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { runWithEventPriority } from \"./hooks.js\";\nimport { getAppliedEventHandler } from \"./event-listeners.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\n\nconst delegatedRootListeners = new WeakMap<Element, Set<string>>();\nconst logicalEventParents = new WeakMap<Element, ParentNode>();\n\nconst reactPropToNativeEvent = new Map<string, string[]>([\n [\"onAnimationEnd\", [\"animationend\"]],\n [\"onAnimationIteration\", [\"animationiteration\"]],\n [\"onAnimationStart\", [\"animationstart\"]],\n [\"onBeforeInput\", [\"beforeinput\"]],\n [\"onCompositionEnd\", [\"compositionend\"]],\n [\"onCompositionStart\", [\"compositionstart\"]],\n [\"onCompositionUpdate\", [\"compositionupdate\"]],\n [\"onContextMenu\", [\"contextmenu\"]],\n [\"onDoubleClick\", [\"dblclick\"]],\n [\"onDragEnd\", [\"dragend\"]],\n [\"onDragEnter\", [\"dragenter\"]],\n [\"onDragExit\", [\"dragexit\"]],\n [\"onDragLeave\", [\"dragleave\"]],\n [\"onDragOver\", [\"dragover\"]],\n [\"onDragStart\", [\"dragstart\"]],\n [\"onDrop\", [\"drop\"]],\n [\"onFocus\", [\"focusin\"]],\n [\"onBlur\", [\"focusout\"]],\n [\"onGotPointerCapture\", [\"gotpointercapture\"]],\n [\"onLostPointerCapture\", [\"lostpointercapture\"]],\n [\"onMouseEnter\", [\"mouseover\"]],\n [\"onMouseLeave\", [\"mouseout\"]],\n [\"onPointerCancel\", [\"pointercancel\"]],\n [\"onPointerDown\", [\"pointerdown\"]],\n [\"onPointerEnter\", [\"pointerover\"]],\n [\"onPointerLeave\", [\"pointerout\"]],\n [\"onPointerMove\", [\"pointermove\"]],\n [\"onPointerOut\", [\"pointerout\"]],\n [\"onPointerOver\", [\"pointerover\"]],\n [\"onPointerUp\", [\"pointerup\"]],\n [\"onTouchCancel\", [\"touchcancel\"]],\n [\"onTouchEnd\", [\"touchend\"]],\n [\"onTouchMove\", [\"touchmove\"]],\n [\"onTouchStart\", [\"touchstart\"]],\n [\"onTransitionEnd\", [\"transitionend\"]],\n [\"onChange\", [\"change\", \"input\"]],\n]);\n\nconst nativeEventToReactProps = new Map<string, string[]>([\n [\"animationend\", [\"onAnimationEnd\"]],\n [\"animationiteration\", [\"onAnimationIteration\"]],\n [\"animationstart\", [\"onAnimationStart\"]],\n [\"beforeinput\", [\"onBeforeInput\"]],\n [\"compositionend\", [\"onCompositionEnd\"]],\n [\"compositionstart\", [\"onCompositionStart\"]],\n [\"compositionupdate\", [\"onCompositionUpdate\"]],\n [\"contextmenu\", [\"onContextMenu\"]],\n [\"dblclick\", [\"onDoubleClick\"]],\n [\"dragend\", [\"onDragEnd\"]],\n [\"dragenter\", [\"onDragEnter\"]],\n [\"dragexit\", [\"onDragExit\"]],\n [\"dragleave\", [\"onDragLeave\"]],\n [\"dragover\", [\"onDragOver\"]],\n [\"dragstart\", [\"onDragStart\"]],\n [\"drop\", [\"onDrop\"]],\n [\"focusin\", [\"onFocus\"]],\n [\"focusout\", [\"onBlur\"]],\n [\"gotpointercapture\", [\"onGotPointerCapture\"]],\n [\"lostpointercapture\", [\"onLostPointerCapture\"]],\n [\"input\", [\"onInput\", \"onChange\"]],\n [\"keydown\", [\"onKeyDown\"]],\n [\"keyup\", [\"onKeyUp\"]],\n [\"mousedown\", [\"onMouseDown\"]],\n [\"mousemove\", [\"onMouseMove\"]],\n [\"mouseup\", [\"onMouseUp\"]],\n [\"mouseout\", [\"onMouseOut\"]],\n [\"mouseover\", [\"onMouseOver\"]],\n [\"pointercancel\", [\"onPointerCancel\"]],\n [\"pointerdown\", [\"onPointerDown\"]],\n [\"pointermove\", [\"onPointerMove\"]],\n [\"pointerout\", [\"onPointerOut\"]],\n [\"pointerover\", [\"onPointerOver\"]],\n [\"pointerup\", [\"onPointerUp\"]],\n [\"touchcancel\", [\"onTouchCancel\"]],\n [\"touchend\", [\"onTouchEnd\"]],\n [\"touchmove\", [\"onTouchMove\"]],\n [\"touchstart\", [\"onTouchStart\"]],\n [\"transitionend\", [\"onTransitionEnd\"]],\n]);\n\nexport function toEventNames(propName: string): string[] {\n const basePropName = propName.endsWith(\"Capture\")\n ? propName.slice(0, -\"Capture\".length)\n : propName;\n return reactPropToNativeEvent.get(basePropName) ?? [\n basePropName.slice(2).toLowerCase(),\n ];\n}\n\nexport function toEventPropNames(eventName: string): string[] {\n const propNames = nativeEventToReactProps.get(eventName);\n if (propNames !== undefined) {\n return propNames;\n }\n const propName = `on${eventName.slice(0, 1).toUpperCase()}${eventName.slice(1)}`;\n return [propName];\n}\n\nexport function setLogicalEventParent(\n container: Element,\n parent: ParentNode,\n): void {\n logicalEventParents.set(container, parent);\n}\n\nexport function getEventPriority(\n eventName: string,\n): \"discrete\" | \"continuous\" | \"default\" {\n if (discreteEventNames.has(eventName)) {\n return \"discrete\";\n }\n\n if (continuousEventNames.has(eventName)) {\n return \"continuous\";\n }\n\n return \"default\";\n}\n\nconst discreteEventNames = new Set([\n \"beforeinput\",\n \"change\",\n \"click\",\n \"dblclick\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mouseup\",\n \"pointerdown\",\n \"pointerup\",\n \"submit\",\n \"touchcancel\",\n \"touchend\",\n \"touchstart\",\n]);\n\nconst continuousEventNames = new Set([\n \"drag\",\n \"dragenter\",\n \"dragleave\",\n \"dragover\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"scroll\",\n \"touchmove\",\n \"wheel\",\n]);\n\nexport function ensureDelegatedEventListener(\n root: Element,\n eventName: string,\n): void {\n const listeners = delegatedRootListeners.get(root) ?? new Set<string>();\n\n if (listeners.has(eventName)) {\n return;\n }\n\n listeners.add(eventName);\n delegatedRootListeners.set(root, listeners);\n root.addEventListener(eventName, (event) => {\n runWithEventPriority(getEventPriority(eventName), () => {\n dispatchDelegatedEvent(root, eventName, event);\n });\n });\n}\n\nfunction dispatchDelegatedEvent(\n root: Element,\n eventName: string,\n event: Event,\n): void {\n const path = getEventPath(root, event);\n const propNames = toEventPropNames(eventName);\n const state = {\n defaultPrevented: event.defaultPrevented,\n propagationStopped: false,\n };\n\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchEventPropNames(propNames, \"capture\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n\n if (eventName === \"mouseover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchMouseTransitionEvent(\"onMouseEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"mouseout\") {\n for (const target of path) {\n dispatchMouseTransitionEvent(\"onMouseLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchPointerTransitionEvent(\"onPointerEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerout\") {\n for (const target of path) {\n dispatchPointerTransitionEvent(\"onPointerLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n for (const target of path) {\n dispatchEventPropNames(propNames, \"bubble\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchPointerTransitionEvent(\n propName: \"onPointerEnter\" | \"onPointerLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state, propName.slice(2).toLowerCase()));\n }\n}\n\nfunction dispatchEventPropNames(\n propNames: readonly string[],\n phase: \"capture\" | \"bubble\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n for (const propName of propNames) {\n const listenerName = phase === \"capture\" ? `${propName}Capture` : propName;\n const handler = getAppliedEventHandler(target, listenerName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchMouseTransitionEvent(\n propName: \"onMouseEnter\" | \"onMouseLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n}\n\nfunction isInternalMouseTransition(event: Event, target: Element): boolean {\n const relatedTarget =\n event instanceof MouseEvent && event.relatedTarget instanceof Node\n ? event.relatedTarget\n : null;\n\n return relatedTarget !== null && target.contains(relatedTarget);\n}\n\nfunction getEventPath(root: Element, event: Event): Element[] {\n const path: Element[] = [];\n let cursor = event.target instanceof Node ? event.target : null;\n\n while (cursor !== null) {\n if (cursor instanceof Element) {\n path.push(cursor);\n }\n\n if (cursor === root) {\n const logicalParent = logicalEventParents.get(root);\n if (logicalParent === undefined) {\n break;\n }\n cursor = logicalParent;\n continue;\n }\n\n cursor = cursor.parentNode;\n }\n\n return path;\n}\n\nfunction createSyntheticEvent(\n nativeEvent: Event,\n currentTarget: EventTarget,\n state: { defaultPrevented: boolean; propagationStopped: boolean } = {\n defaultPrevented: nativeEvent.defaultPrevented,\n propagationStopped: false,\n },\n syntheticType = nativeEvent.type,\n): SyntheticEvent {\n const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;\n const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;\n const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;\n\n return {\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n eventPhase: nativeEvent.eventPhase,\n isTrusted: nativeEvent.isTrusted ?? false,\n nativeEvent,\n timeStamp: nativeEvent.timeStamp,\n type: syntheticType,\n target: nativeEvent.target,\n currentTarget,\n ...(mouseEvent === undefined\n ? {}\n : {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n pageX: mouseEvent.pageX,\n pageY: mouseEvent.pageY,\n screenX: mouseEvent.screenX,\n screenY: mouseEvent.screenY,\n relatedTarget: mouseEvent.relatedTarget,\n }),\n ...(touchEvent === undefined\n ? {}\n : {\n touches: touchEvent.touches,\n changedTouches: touchEvent.changedTouches,\n }),\n ...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),\n persist() {},\n preventDefault() {\n state.defaultPrevented = true;\n nativeEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n nativeEvent.stopPropagation();\n },\n isDefaultPrevented() {\n return state.defaultPrevented;\n },\n isPersistent() {\n return true;\n },\n isPropagationStopped() {\n return state.propagationStopped;\n },\n };\n}\n"]}
@@ -1,4 +1,5 @@
1
- import type { FiberRoot } from "./fiber.js";
1
+ import type { Fiber, FiberRoot } from "./fiber.js";
2
2
  import type { RenderOptions } from "./hydration.js";
3
3
  export declare function commitFiberRoot(root: FiberRoot, options?: RenderOptions): void;
4
+ export declare function detachFiberRefs(fiber: Fiber): void;
4
5
  //# sourceMappingURL=fiber-commit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-commit.d.ts","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,SAAS,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOpD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,aAAkB,GAC1B,IAAI,CAgBN"}
1
+ {"version":3,"file":"fiber-commit.d.ts","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOpD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,aAAkB,GAC1B,IAAI,CAwBN;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAIlD"}
@@ -1,11 +1,18 @@
1
1
  import { commitHostFiberRoot } from "./fiber-host.js";
2
2
  import { markRootFinished } from "./fiber-lanes.js";
3
+ import { runWithHostCommit } from "./hooks.js";
3
4
  export function commitFiberRoot(root, options = {}) {
4
5
  const finishedWork = root.finishedWork;
5
6
  if (finishedWork === undefined) {
6
7
  return;
7
8
  }
8
- cleanupDeletedRefs(root.current, finishedWork);
9
+ if (root.refCleanupKnown !== true ||
10
+ root.current.hasRefSubtree ||
11
+ finishedWork.hasRefSubtree) {
12
+ runWithHostCommit(() => {
13
+ cleanupDeletedRefs(root.current, finishedWork);
14
+ });
15
+ }
9
16
  commitHostFiberRoot(root, finishedWork, options);
10
17
  root.current = finishedWork;
11
18
  root.current.stateNode = root;
@@ -15,6 +22,11 @@ export function commitFiberRoot(root, options = {}) {
15
22
  root.workInProgress = undefined;
16
23
  root.workInProgressRootRenderLanes = 0;
17
24
  }
25
+ export function detachFiberRefs(fiber) {
26
+ for (const record of collectRefRecords(fiber)) {
27
+ detachRef(record.ref);
28
+ }
29
+ }
18
30
  function cleanupDeletedRefs(previous, next) {
19
31
  const nextRefs = new Set();
20
32
  collectRefRecords(next, nextRefs);
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-commit.js","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAQpD,MAAM,UAAU,eAAe,CAC7B,IAAe,EACf,UAAyB,EAAE;IAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAEvC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/C,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/D,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAe,EAAE,IAAW;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAW,CAAC;IAEpC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAwB,EACxB,OAAqB,IAAI,GAAG,EAAE;IAE9B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,CAE3C,CAAC;IAEd,OAAO,KAAK,EAAE,GAAG,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAC/D,GAA4B,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/C,CAAC;AACH,CAAC","sourcesContent":["import type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { commitHostFiberRoot } from \"./fiber-host.js\";\nimport { markRootFinished } from \"./fiber-lanes.js\";\nimport type { RenderOptions } from \"./hydration.js\";\n\ninterface RefRecord {\n ref: unknown;\n node: unknown;\n}\n\nexport function commitFiberRoot(\n root: FiberRoot,\n options: RenderOptions = {},\n): void {\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n return;\n }\n\n cleanupDeletedRefs(root.current, finishedWork);\n commitHostFiberRoot(root, finishedWork, options);\n root.current = finishedWork;\n root.current.stateNode = root;\n markRootFinished(root, finishedWork.lanes);\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nfunction cleanupDeletedRefs(previous: Fiber, next: Fiber): void {\n const nextRefs = new Set<unknown>();\n\n collectRefRecords(next, nextRefs);\n\n for (const record of collectRefRecords(previous)) {\n if (!nextRefs.has(record.ref)) {\n detachRef(record.ref);\n }\n }\n}\n\nfunction collectRefRecords(\n fiber: Fiber | undefined,\n refs: Set<unknown> = new Set(),\n): RefRecord[] {\n const records: RefRecord[] = [];\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const ref = getFiberRef(cursor);\n\n if (ref !== undefined && ref !== null) {\n refs.add(ref);\n records.push({ ref, node: cursor.stateNode });\n }\n\n records.push(...collectRefRecords(cursor.child, refs));\n cursor = cursor.sibling;\n }\n\n return records;\n}\n\nfunction getFiberRef(fiber: Fiber): unknown {\n const props = (fiber.memoizedProps ?? fiber.pendingProps) as\n | { ref?: unknown }\n | undefined;\n\n return props?.ref;\n}\n\nfunction detachRef(ref: unknown): void {\n if (typeof ref === \"function\") {\n ref(null);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = null;\n }\n}\n"]}
1
+ {"version":3,"file":"fiber-commit.js","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { commitHostFiberRoot } from \"./fiber-host.js\";\nimport { markRootFinished } from \"./fiber-lanes.js\";\nimport { runWithHostCommit } from \"./hooks.js\";\nimport type { RenderOptions } from \"./hydration.js\";\n\ninterface RefRecord {\n ref: unknown;\n node: unknown;\n}\n\nexport function commitFiberRoot(\n root: FiberRoot,\n options: RenderOptions = {},\n): void {\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n return;\n }\n\n if (\n root.refCleanupKnown !== true ||\n root.current.hasRefSubtree ||\n finishedWork.hasRefSubtree\n ) {\n runWithHostCommit(() => {\n cleanupDeletedRefs(root.current, finishedWork);\n });\n }\n commitHostFiberRoot(root, finishedWork, options);\n root.current = finishedWork;\n root.current.stateNode = root;\n markRootFinished(root, finishedWork.lanes);\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nexport function detachFiberRefs(fiber: Fiber): void {\n for (const record of collectRefRecords(fiber)) {\n detachRef(record.ref);\n }\n}\n\nfunction cleanupDeletedRefs(previous: Fiber, next: Fiber): void {\n const nextRefs = new Set<unknown>();\n\n collectRefRecords(next, nextRefs);\n\n for (const record of collectRefRecords(previous)) {\n if (!nextRefs.has(record.ref)) {\n detachRef(record.ref);\n }\n }\n}\n\nfunction collectRefRecords(\n fiber: Fiber | undefined,\n refs: Set<unknown> = new Set(),\n): RefRecord[] {\n const records: RefRecord[] = [];\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const ref = getFiberRef(cursor);\n\n if (ref !== undefined && ref !== null) {\n refs.add(ref);\n records.push({ ref, node: cursor.stateNode });\n }\n\n records.push(...collectRefRecords(cursor.child, refs));\n cursor = cursor.sibling;\n }\n\n return records;\n}\n\nfunction getFiberRef(fiber: Fiber): unknown {\n const props = (fiber.memoizedProps ?? fiber.pendingProps) as\n | { ref?: unknown }\n | undefined;\n\n return props?.ref;\n}\n\nfunction detachRef(ref: unknown): void {\n if (typeof ref === \"function\") {\n ref(null);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-reconciler.d.ts","sourceRoot":"","sources":["../src/fiber-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAqBxD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,KAAK,GACV,KAAK,GAAG,SAAS,CAcnB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAmKxD;AAwDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAyB9C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAYnE;AA6CD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAqDvE"}
1
+ {"version":3,"file":"fiber-reconciler.d.ts","sourceRoot":"","sources":["../src/fiber-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AA6BxD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,KAAK,GACV,KAAK,GAAG,SAAS,CAcnB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAmKxD;AAwDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CA4B9C;AAuBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAYnE;AA6CD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAqDvE"}