@remix-run/ui 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +195 -2
  3. package/dist/animation/animate-layout-mixin.d.ts +12 -0
  4. package/dist/animation/animate-layout-mixin.js +214 -0
  5. package/dist/animation/animate-layout-mixin.js.map +1 -0
  6. package/dist/animation/animate-mixins.d.ts +29 -0
  7. package/dist/animation/animate-mixins.js +235 -0
  8. package/dist/animation/animate-mixins.js.map +1 -0
  9. package/dist/animation/index.d.ts +6 -0
  10. package/dist/animation/index.js +5 -0
  11. package/dist/animation/index.js.map +1 -0
  12. package/dist/animation/spring.d.ts +75 -0
  13. package/dist/animation/spring.js +183 -0
  14. package/dist/animation/spring.js.map +1 -0
  15. package/dist/animation/tween.d.ts +70 -0
  16. package/dist/animation/tween.js +93 -0
  17. package/dist/animation/tween.js.map +1 -0
  18. package/dist/components/accordion/accordion.d.ts +92 -0
  19. package/dist/components/accordion/accordion.js +337 -0
  20. package/dist/components/accordion/accordion.js.map +1 -0
  21. package/dist/components/anchor/anchor.d.ts +13 -0
  22. package/dist/components/anchor/anchor.js +558 -0
  23. package/dist/components/anchor/anchor.js.map +1 -0
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +11 -0
  25. package/dist/components/breadcrumbs/breadcrumbs.js +78 -0
  26. package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -0
  27. package/dist/components/button/button.d.ts +23 -0
  28. package/dist/components/button/button.js +147 -0
  29. package/dist/components/button/button.js.map +1 -0
  30. package/dist/components/combobox/combobox.d.ts +101 -0
  31. package/dist/components/combobox/combobox.js +708 -0
  32. package/dist/components/combobox/combobox.js.map +1 -0
  33. package/dist/components/glyph/glyph.d.ts +14 -0
  34. package/dist/components/glyph/glyph.js +65 -0
  35. package/dist/components/glyph/glyph.js.map +1 -0
  36. package/dist/components/listbox/listbox.d.ts +67 -0
  37. package/dist/components/listbox/listbox.js +340 -0
  38. package/dist/components/listbox/listbox.js.map +1 -0
  39. package/dist/components/menu/hover-aim.d.ts +5 -0
  40. package/dist/components/menu/hover-aim.js +308 -0
  41. package/dist/components/menu/hover-aim.js.map +1 -0
  42. package/dist/components/menu/menu.d.ts +164 -0
  43. package/dist/components/menu/menu.js +1106 -0
  44. package/dist/components/menu/menu.js.map +1 -0
  45. package/dist/components/popover/popover.d.ts +35 -0
  46. package/dist/components/popover/popover.js +138 -0
  47. package/dist/components/popover/popover.js.map +1 -0
  48. package/dist/components/select/select.d.ts +67 -0
  49. package/dist/components/select/select.js +397 -0
  50. package/dist/components/select/select.js.map +1 -0
  51. package/dist/components/separator/separator.d.ts +2 -0
  52. package/dist/components/separator/separator.js +15 -0
  53. package/dist/components/separator/separator.js.map +1 -0
  54. package/dist/components/tabs/tabs.d.ts +78 -0
  55. package/dist/components/tabs/tabs.js +341 -0
  56. package/dist/components/tabs/tabs.js.map +1 -0
  57. package/dist/index.d.ts +28 -0
  58. package/dist/index.js +21 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/interactions/keydown/keydown.d.ts +1 -0
  61. package/dist/interactions/keydown/keydown.js +8 -0
  62. package/dist/interactions/keydown/keydown.js.map +1 -0
  63. package/dist/interactions/outside-click/outside-click-mixin.d.ts +2 -0
  64. package/dist/interactions/outside-click/outside-click-mixin.js +29 -0
  65. package/dist/interactions/outside-click/outside-click-mixin.js.map +1 -0
  66. package/dist/interactions/typeahead/typeahead-mixin.d.ts +8 -0
  67. package/dist/interactions/typeahead/typeahead-mixin.js +59 -0
  68. package/dist/interactions/typeahead/typeahead-mixin.js.map +1 -0
  69. package/dist/jsx-runtime.d.ts +2 -0
  70. package/dist/jsx-runtime.js +3 -0
  71. package/dist/jsx-runtime.js.map +1 -0
  72. package/dist/runtime/client-entries.d.ts +91 -0
  73. package/dist/runtime/client-entries.js +40 -0
  74. package/dist/runtime/client-entries.js.map +1 -0
  75. package/dist/runtime/component.d.ts +223 -0
  76. package/dist/runtime/component.js +152 -0
  77. package/dist/runtime/component.js.map +1 -0
  78. package/dist/runtime/create-element.d.ts +10 -0
  79. package/dist/runtime/create-element.js +29 -0
  80. package/dist/runtime/create-element.js.map +1 -0
  81. package/dist/runtime/diff-dom.d.ts +2 -0
  82. package/dist/runtime/diff-dom.js +364 -0
  83. package/dist/runtime/diff-dom.js.map +1 -0
  84. package/dist/runtime/diff-props.d.ts +9 -0
  85. package/dist/runtime/diff-props.js +195 -0
  86. package/dist/runtime/diff-props.js.map +1 -0
  87. package/dist/runtime/document-state.d.ts +11 -0
  88. package/dist/runtime/document-state.js +106 -0
  89. package/dist/runtime/document-state.js.map +1 -0
  90. package/dist/runtime/dom.d.ts +3189 -0
  91. package/dist/runtime/dom.js +2 -0
  92. package/dist/runtime/dom.js.map +1 -0
  93. package/dist/runtime/error-event.d.ts +20 -0
  94. package/dist/runtime/error-event.js +19 -0
  95. package/dist/runtime/error-event.js.map +1 -0
  96. package/dist/runtime/event-listeners.d.ts +50 -0
  97. package/dist/runtime/event-listeners.js +31 -0
  98. package/dist/runtime/event-listeners.js.map +1 -0
  99. package/dist/runtime/frame.d.ts +119 -0
  100. package/dist/runtime/frame.js +920 -0
  101. package/dist/runtime/frame.js.map +1 -0
  102. package/dist/runtime/invariant.d.ts +23 -0
  103. package/dist/runtime/invariant.js +33 -0
  104. package/dist/runtime/invariant.js.map +1 -0
  105. package/dist/runtime/jsx.d.ts +320 -0
  106. package/dist/runtime/jsx.js +32 -0
  107. package/dist/runtime/jsx.js.map +1 -0
  108. package/dist/runtime/mixins/attrs-mixin.d.ts +9 -0
  109. package/dist/runtime/mixins/attrs-mixin.js +23 -0
  110. package/dist/runtime/mixins/attrs-mixin.js.map +1 -0
  111. package/dist/runtime/mixins/link-mixin.d.ts +17 -0
  112. package/dist/runtime/mixins/link-mixin.js +101 -0
  113. package/dist/runtime/mixins/link-mixin.js.map +1 -0
  114. package/dist/runtime/mixins/mixin.d.ts +145 -0
  115. package/dist/runtime/mixins/mixin.js +570 -0
  116. package/dist/runtime/mixins/mixin.js.map +1 -0
  117. package/dist/runtime/mixins/on-mixin.d.ts +16 -0
  118. package/dist/runtime/mixins/on-mixin.js +49 -0
  119. package/dist/runtime/mixins/on-mixin.js.map +1 -0
  120. package/dist/runtime/mixins/ref-mixin.d.ts +9 -0
  121. package/dist/runtime/mixins/ref-mixin.js +21 -0
  122. package/dist/runtime/mixins/ref-mixin.js.map +1 -0
  123. package/dist/runtime/navigation.d.ts +28 -0
  124. package/dist/runtime/navigation.js +107 -0
  125. package/dist/runtime/navigation.js.map +1 -0
  126. package/dist/runtime/reconcile.d.ts +11 -0
  127. package/dist/runtime/reconcile.js +1262 -0
  128. package/dist/runtime/reconcile.js.map +1 -0
  129. package/dist/runtime/render.d.ts +54 -0
  130. package/dist/runtime/render.js +50 -0
  131. package/dist/runtime/render.js.map +1 -0
  132. package/dist/runtime/run.d.ts +45 -0
  133. package/dist/runtime/run.js +68 -0
  134. package/dist/runtime/run.js.map +1 -0
  135. package/dist/runtime/scheduler.d.ts +30 -0
  136. package/dist/runtime/scheduler.js +195 -0
  137. package/dist/runtime/scheduler.js.map +1 -0
  138. package/dist/runtime/svg-attributes.d.ts +5 -0
  139. package/dist/runtime/svg-attributes.js +124 -0
  140. package/dist/runtime/svg-attributes.js.map +1 -0
  141. package/dist/runtime/to-vnode.d.ts +3 -0
  142. package/dist/runtime/to-vnode.js +46 -0
  143. package/dist/runtime/to-vnode.js.map +1 -0
  144. package/dist/runtime/typed-event-target.d.ts +50 -0
  145. package/dist/runtime/typed-event-target.js +6 -0
  146. package/dist/runtime/typed-event-target.js.map +1 -0
  147. package/dist/runtime/vdom.d.ts +55 -0
  148. package/dist/runtime/vdom.js +198 -0
  149. package/dist/runtime/vdom.js.map +1 -0
  150. package/dist/runtime/vnode.d.ts +79 -0
  151. package/dist/runtime/vnode.js +38 -0
  152. package/dist/runtime/vnode.js.map +1 -0
  153. package/dist/server/stream.d.ts +57 -0
  154. package/dist/server/stream.js +1011 -0
  155. package/dist/server/stream.js.map +1 -0
  156. package/dist/style/css-mixin.d.ts +8 -0
  157. package/dist/style/css-mixin.js +54 -0
  158. package/dist/style/css-mixin.js.map +1 -0
  159. package/dist/style/index.d.ts +5 -0
  160. package/dist/style/index.js +4 -0
  161. package/dist/style/index.js.map +1 -0
  162. package/dist/style/style.d.ts +24 -0
  163. package/dist/style/style.js +269 -0
  164. package/dist/style/style.js.map +1 -0
  165. package/dist/style/stylesheet.d.ts +11 -0
  166. package/dist/style/stylesheet.js +174 -0
  167. package/dist/style/stylesheet.js.map +1 -0
  168. package/dist/test.d.ts +2 -0
  169. package/dist/test.js +2 -0
  170. package/dist/test.js.map +1 -0
  171. package/dist/theme/contract.d.ts +259 -0
  172. package/dist/theme/contract.js +131 -0
  173. package/dist/theme/contract.js.map +1 -0
  174. package/dist/theme/glyph-contract.d.ts +13 -0
  175. package/dist/theme/glyph-contract.js +34 -0
  176. package/dist/theme/glyph-contract.js.map +1 -0
  177. package/dist/theme/presets/rmx-01/glyphs.d.ts +2 -0
  178. package/dist/theme/presets/rmx-01/glyphs.js +252 -0
  179. package/dist/theme/presets/rmx-01/glyphs.js.map +1 -0
  180. package/dist/theme/presets/rmx-01/index.d.ts +2 -0
  181. package/dist/theme/presets/rmx-01/index.js +119 -0
  182. package/dist/theme/presets/rmx-01/index.js.map +1 -0
  183. package/dist/theme/runtime.d.ts +2 -0
  184. package/dist/theme/runtime.js +81 -0
  185. package/dist/theme/runtime.js.map +1 -0
  186. package/dist/theme/theme.d.ts +6 -0
  187. package/dist/theme/theme.js +5 -0
  188. package/dist/theme/theme.js.map +1 -0
  189. package/dist/utils/flash-attribute.d.ts +1 -0
  190. package/dist/utils/flash-attribute.js +11 -0
  191. package/dist/utils/flash-attribute.js.map +1 -0
  192. package/dist/utils/scroll-lock.d.ts +3 -0
  193. package/dist/utils/scroll-lock.js +69 -0
  194. package/dist/utils/scroll-lock.js.map +1 -0
  195. package/dist/utils/wait-for-css-transition.d.ts +1 -0
  196. package/dist/utils/wait-for-css-transition.js +58 -0
  197. package/dist/utils/wait-for-css-transition.js.map +1 -0
  198. package/dist/utils/wait.d.ts +1 -0
  199. package/dist/utils/wait.js +6 -0
  200. package/dist/utils/wait.js.map +1 -0
  201. package/package.json +124 -5
  202. package/src/animation/animate-layout-mixin.ts +266 -0
  203. package/src/animation/animate-mixins.ts +292 -0
  204. package/src/animation/index.ts +6 -0
  205. package/src/animation/spring.ts +299 -0
  206. package/src/animation/tween.ts +134 -0
  207. package/src/components/accordion/accordion.tsx +565 -0
  208. package/src/components/anchor/anchor.ts +904 -0
  209. package/src/components/breadcrumbs/breadcrumbs.tsx +124 -0
  210. package/src/components/button/README.md +44 -0
  211. package/src/components/button/button.tsx +188 -0
  212. package/src/components/combobox/README.md +145 -0
  213. package/src/components/combobox/combobox.tsx +1014 -0
  214. package/src/components/glyph/glyph.tsx +110 -0
  215. package/src/components/listbox/listbox.ts +447 -0
  216. package/src/components/menu/hover-aim.ts +428 -0
  217. package/src/components/menu/menu.tsx +1547 -0
  218. package/src/components/popover/README.md +122 -0
  219. package/src/components/popover/popover.ts +201 -0
  220. package/src/components/select/select.tsx +585 -0
  221. package/src/components/separator/separator.ts +19 -0
  222. package/src/components/tabs/README.md +105 -0
  223. package/src/components/tabs/tabs.tsx +499 -0
  224. package/src/index.ts +72 -0
  225. package/src/interactions/keydown/keydown.ts +14 -0
  226. package/src/interactions/outside-click/outside-click-mixin.ts +55 -0
  227. package/src/interactions/typeahead/typeahead-mixin.ts +89 -0
  228. package/src/jsx-runtime.ts +2 -0
  229. package/src/runtime/client-entries.ts +137 -0
  230. package/src/runtime/component.ts +402 -0
  231. package/src/runtime/create-element.ts +38 -0
  232. package/src/runtime/diff-dom.ts +404 -0
  233. package/src/runtime/diff-props.ts +209 -0
  234. package/src/runtime/document-state.ts +130 -0
  235. package/src/runtime/dom.ts +3971 -0
  236. package/src/runtime/error-event.ts +26 -0
  237. package/src/runtime/event-listeners.ts +171 -0
  238. package/src/runtime/frame.ts +1218 -0
  239. package/src/runtime/invariant.ts +31 -0
  240. package/src/runtime/jsx.ts +397 -0
  241. package/src/runtime/mixins/attrs-mixin.ts +35 -0
  242. package/src/runtime/mixins/link-mixin.ts +131 -0
  243. package/src/runtime/mixins/mixin.ts +908 -0
  244. package/src/runtime/mixins/on-mixin.ts +89 -0
  245. package/src/runtime/mixins/ref-mixin.ts +32 -0
  246. package/src/runtime/navigation.ts +148 -0
  247. package/src/runtime/reconcile.ts +1757 -0
  248. package/src/runtime/render.ts +101 -0
  249. package/src/runtime/run.ts +100 -0
  250. package/src/runtime/scheduler.ts +269 -0
  251. package/src/runtime/svg-attributes.ts +133 -0
  252. package/src/runtime/to-vnode.ts +51 -0
  253. package/src/runtime/typed-event-target.ts +67 -0
  254. package/src/runtime/vdom.ts +295 -0
  255. package/src/runtime/vnode.ts +137 -0
  256. package/src/server/stream.ts +1347 -0
  257. package/src/style/css-mixin.ts +82 -0
  258. package/src/style/index.ts +10 -0
  259. package/src/style/style.ts +312 -0
  260. package/src/style/stylesheet.ts +209 -0
  261. package/src/test/utils.ts +45 -0
  262. package/src/test.ts +2 -0
  263. package/src/theme/contract.ts +183 -0
  264. package/src/theme/glyph-contract.ts +57 -0
  265. package/src/theme/presets/rmx-01/glyphs.tsx +308 -0
  266. package/src/theme/presets/rmx-01/index.ts +121 -0
  267. package/src/theme/runtime.ts +116 -0
  268. package/src/theme/theme.ts +15 -0
  269. package/src/utils/flash-attribute.ts +11 -0
  270. package/src/utils/scroll-lock.ts +97 -0
  271. package/src/utils/wait-for-css-transition.ts +66 -0
  272. package/src/utils/wait.ts +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-mixin.js","sourceRoot":"","sources":["../../../src/runtime/mixins/link-mixin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import type { Context, FrameHandle } from '../component.ts';
2
+ import type { ElementProps, RemixElement } from '../jsx.ts';
3
+ import type { Scheduler } from '../scheduler.ts';
4
+ import { TypedEventTarget } from '../typed-event-target.ts';
5
+ type RebindNode<value, baseNode, boundNode> = value extends (...args: infer fnArgs) => infer fnResult ? (...args: RebindTuple<fnArgs, baseNode, boundNode>) => RebindNode<fnResult, baseNode, boundNode> : [value] extends [baseNode] ? [baseNode] extends [value] ? boundNode : value : value;
6
+ type RebindTuple<args extends unknown[], baseNode, boundNode> = {
7
+ [index in keyof args]: RebindNode<args[index], baseNode, boundNode>;
8
+ };
9
+ export type MixinProps<node extends EventTarget = Element, props extends ElementProps = ElementProps> = Omit<props, 'children' | 'innerHTML' | 'mix'> & {
10
+ mix?: MixValue<node, props>;
11
+ };
12
+ export type MixinElement<node extends EventTarget = Element, props extends ElementProps = ElementProps> = ((handle: {
13
+ update(): Promise<AbortSignal>;
14
+ }, setup: unknown) => (props: MixinProps<node, props>) => RemixElement) & {
15
+ __rmxMixinElementType: string;
16
+ };
17
+ export type MixinInsertEvent<node extends EventTarget = Element> = Event & {
18
+ node: node;
19
+ parent: ParentNode;
20
+ key?: string;
21
+ };
22
+ export type MixinReclaimedEvent<node extends EventTarget = Element> = Event & {
23
+ node: node;
24
+ parent: ParentNode;
25
+ key?: string;
26
+ };
27
+ export type MixinUpdateEvent<node extends EventTarget = Element> = Event & {
28
+ node: node;
29
+ };
30
+ export type MixinBeforeRemoveEvent = Event & {
31
+ persistNode(teardown: (signal: AbortSignal) => void | Promise<void>): void;
32
+ };
33
+ type MixinContext = Pick<Context<Record<string, never>>, 'get'>;
34
+ type MixinHandleEventMap<node extends EventTarget = Element> = {
35
+ beforeRemove: MixinBeforeRemoveEvent;
36
+ reclaimed: MixinReclaimedEvent<node>;
37
+ remove: Event;
38
+ insert: MixinInsertEvent<node>;
39
+ beforeUpdate: MixinUpdateEvent<node>;
40
+ commit: MixinUpdateEvent<node>;
41
+ };
42
+ /**
43
+ * Runtime handle passed to mixin setup functions.
44
+ *
45
+ * Mixin render callbacks receive host props with `children` and `innerHTML` removed.
46
+ * Returned mixin elements may patch host attributes and nested `mix`, but cannot replace
47
+ * the host subtree.
48
+ */
49
+ export type MixinHandle<node extends EventTarget = Element, props extends ElementProps = ElementProps> = TypedEventTarget<MixinHandleEventMap<node>> & {
50
+ id: string;
51
+ context: MixinContext;
52
+ frame: FrameHandle;
53
+ element: MixinElement<node, props>;
54
+ signal: AbortSignal;
55
+ update(): Promise<AbortSignal>;
56
+ queueTask(task: (node: node, signal: AbortSignal) => void): void;
57
+ };
58
+ export declare function renderMixinElement<node extends EventTarget = Element, props extends ElementProps = ElementProps>(element: MixinElement<node, props>, props?: MixinProps<node, props>): RemixElement;
59
+ type MixinRuntimeType<args extends unknown[] = [], node extends EventTarget = Element, props extends ElementProps = ElementProps> = (handle: MixinHandle<node, props>, type: string) => ((...args: [...args, currentProps: props]) => MixinReturn<node, props>) | void;
60
+ /**
61
+ * Public mixin setup function signature.
62
+ */
63
+ export type MixinType<node extends EventTarget = Element, args extends unknown[] = [], props extends ElementProps = ElementProps> = (handle: MixinHandle<node, props>, type: string) => ((...args: [...args, currentProps: props]) => MixinReturn<node, props>) | void;
64
+ /**
65
+ * Serializable descriptor stored in the `mix` prop.
66
+ */
67
+ export type MixinDescriptor<node extends EventTarget = Element, args extends unknown[] = [], props extends ElementProps = ElementProps> = {
68
+ type: MixinRuntimeType<args, node, props>;
69
+ args: args;
70
+ readonly __node?: (node: node) => void;
71
+ };
72
+ type PreviousMixDepth = [0, 0, 1, 2, 3, 4];
73
+ type FalsyMixValue = false | 0 | 0n | '' | null | undefined;
74
+ type NullableMixValue<descriptor> = descriptor | FalsyMixValue;
75
+ type NestedMixValue<descriptor, depth extends number = 4> = depth extends 0 ? NullableMixValue<descriptor> | ReadonlyArray<NullableMixValue<descriptor>> : NullableMixValue<descriptor> | ReadonlyArray<NestedMixValue<descriptor, PreviousMixDepth[depth]>>;
76
+ /**
77
+ * Accepted authoring shape for the `mix` prop on host elements.
78
+ */
79
+ export type MixInput<node extends EventTarget = Element, props extends ElementProps = ElementProps> = NestedMixValue<MixinDescriptor<node, any, props>>;
80
+ /**
81
+ * Accepted value shape for the `mix` prop.
82
+ */
83
+ export type MixValue<node extends EventTarget = Element, props extends ElementProps = ElementProps> = MixinDescriptor<node, any, props> | ReadonlyArray<MixinDescriptor<node, any, props>>;
84
+ type MixinReturn<node extends EventTarget = Element, props extends ElementProps = ElementProps> = void | null | RemixElement | MixinElement<node, props> | MixInput<node, props>;
85
+ type AnyMixinType = MixinRuntimeType<unknown[], Element, ElementProps>;
86
+ type AnyMixinRunner = (...args: [...unknown[], currentProps: ElementProps]) => MixinReturn<Element, ElementProps>;
87
+ type AnyMixinHandle = MixinHandle<Element, ElementProps>;
88
+ type RunnerEntry = {
89
+ type: AnyMixinType;
90
+ runner: AnyMixinRunner;
91
+ scope: symbol;
92
+ };
93
+ export type MixinRuntimeBinding = {
94
+ node: Element;
95
+ parent: ParentNode;
96
+ key?: string;
97
+ target: unknown;
98
+ frame: FrameHandle;
99
+ scheduler: Scheduler;
100
+ enqueueUpdate(done: (signal: AbortSignal) => void): void;
101
+ };
102
+ type ResolveMixedPropsInput = {
103
+ hostType: string;
104
+ frame: FrameHandle;
105
+ scheduler: Scheduler;
106
+ getContext?: MixinContext['get'];
107
+ props: ElementProps;
108
+ state?: MixinRuntimeState;
109
+ };
110
+ type ResolveMixedPropsOutput = {
111
+ props: ElementProps;
112
+ state: MixinRuntimeState;
113
+ };
114
+ export type MixinRuntimeState = {
115
+ id: string;
116
+ controller?: AbortController;
117
+ aborted: boolean;
118
+ handle?: AnyMixinHandle;
119
+ runners: RunnerEntry[];
120
+ binding?: MixinRuntimeBinding;
121
+ removePrepared?: boolean;
122
+ pendingRemoval?: {
123
+ signal: AbortSignal;
124
+ cancel: (reason?: unknown) => void;
125
+ done: Promise<void>;
126
+ };
127
+ };
128
+ /**
129
+ * Creates a typed mixin factory that can be passed through the `mix` prop.
130
+ *
131
+ * @param type Mixin setup function.
132
+ * @returns A function that captures mixin arguments and returns a descriptor.
133
+ */
134
+ export declare function createMixin<node extends EventTarget = Element, args extends unknown[] = [], props extends ElementProps = ElementProps>(type: MixinType<node, args, props>): <boundNode extends node = node>(...args: RebindTuple<args, node, boundNode>) => MixinDescriptor<boundNode, RebindTuple<args, node, boundNode>, props>;
135
+ export declare function resolveMixedProps(input: ResolveMixedPropsInput): ResolveMixedPropsOutput;
136
+ export declare function teardownMixins(state?: MixinRuntimeState): void;
137
+ export declare function bindMixinRuntime(state: MixinRuntimeState | undefined, binding?: MixinRuntimeBinding, options?: {
138
+ dispatchReclaimed?: boolean;
139
+ }): void;
140
+ export declare function prepareMixinRemoval(state?: MixinRuntimeState): Promise<void> | undefined;
141
+ export declare function cancelPendingMixinRemoval(state?: MixinRuntimeState, reason?: unknown): void;
142
+ export declare function getMixinRuntimeSignal(state: MixinRuntimeState): AbortSignal;
143
+ export declare function dispatchMixinBeforeUpdate(state?: MixinRuntimeState): void;
144
+ export declare function dispatchMixinCommit(state?: MixinRuntimeState): void;
145
+ export {};