elements-kit 0.0.12 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/dist/{element-MXzFk4G2.mjs → element-C_4VbkvQ.mjs} +1 -1
- package/dist/{index-Cvdhuy6Y.d.mts → index-DUshSQ_6.d.mts} +11 -7
- package/dist/index.mjs +2 -2
- package/dist/integrations/react.d.mts +1 -1
- package/dist/integrations/react.mjs +1 -1
- package/dist/jsx-runtime/index.d.mts +1 -1
- package/dist/jsx-runtime/index.mjs +2 -2
- package/dist/signals/index.d.mts +2 -2
- package/dist/signals/index.mjs +2 -2
- package/dist/{signals-DcgXhkU2.mjs → signals-BHmWX6ox.mjs} +86 -76
- package/dist/slot.d.mts +2 -1
- package/dist/utilities/active-element.d.mts +1 -1
- package/dist/utilities/async.d.mts +37 -0
- package/dist/utilities/async.mjs +119 -0
- package/dist/utilities/async.test.d.mts +1 -0
- package/dist/utilities/async.test.mjs +273 -0
- package/dist/utilities/debounced.d.mts +1 -1
- package/dist/utilities/debounced.mjs +1 -1
- package/dist/utilities/debounced.test.mjs +1 -1
- package/dist/utilities/element-rect.d.mts +1 -1
- package/dist/utilities/element-rect.mjs +1 -1
- package/dist/utilities/element-rect.test.mjs +1 -1
- package/dist/utilities/element-scroll.d.mts +1 -1
- package/dist/utilities/element-scroll.mjs +1 -1
- package/dist/utilities/element-scroll.test.mjs +1 -1
- package/dist/utilities/event-driven.d.mts +1 -1
- package/dist/utilities/event-driven.mjs +10 -8
- package/dist/utilities/event-listener.d.mts +1 -1
- package/dist/utilities/event-listener.mjs +1 -1
- package/dist/utilities/event-listener.test.mjs +1 -1
- package/dist/utilities/focus-within.d.mts +1 -1
- package/dist/utilities/focus-within.mjs +1 -1
- package/dist/utilities/focus-within.test.mjs +1 -1
- package/dist/utilities/hover.d.mts +1 -1
- package/dist/utilities/hover.mjs +1 -1
- package/dist/utilities/hover.test.mjs +1 -1
- package/dist/utilities/intersection-observer.mjs +1 -1
- package/dist/utilities/intersection-observer.test.mjs +1 -1
- package/dist/utilities/interval.d.mts +7 -6
- package/dist/utilities/interval.mjs +17 -13
- package/dist/utilities/interval.test.mjs +31 -2
- package/dist/utilities/location.d.mts +1 -1
- package/dist/utilities/location.mjs +1 -1
- package/dist/utilities/long-press.test.mjs +1 -1
- package/dist/utilities/media-devices.d.mts +1 -1
- package/dist/utilities/media-devices.mjs +1 -1
- package/dist/utilities/media-devices.test.mjs +1 -1
- package/dist/utilities/media-player.d.mts +1 -1
- package/dist/utilities/media-player.test.mjs +1 -1
- package/dist/utilities/media-query.d.mts +1 -1
- package/dist/utilities/media-query.mjs +1 -1
- package/dist/utilities/mutation-observer.mjs +1 -1
- package/dist/utilities/mutation-observer.test.mjs +1 -1
- package/dist/utilities/network.d.mts +10 -0
- package/dist/utilities/network.mjs +17 -0
- package/dist/utilities/network.test.d.mts +1 -0
- package/dist/utilities/network.test.mjs +29 -0
- package/dist/utilities/on-click-outside.test.mjs +1 -1
- package/dist/utilities/orientation.d.mts +1 -1
- package/dist/utilities/previous.d.mts +1 -1
- package/dist/utilities/previous.mjs +1 -1
- package/dist/utilities/previous.test.mjs +1 -1
- package/dist/utilities/promise.d.mts +56 -0
- package/dist/utilities/promise.mjs +101 -0
- package/dist/utilities/promise.test.d.mts +1 -0
- package/dist/utilities/promise.test.mjs +156 -0
- package/dist/utilities/resize-observer.mjs +1 -1
- package/dist/utilities/retry.d.mts +10 -0
- package/dist/utilities/retry.mjs +32 -0
- package/dist/utilities/retry.test.d.mts +1 -0
- package/dist/utilities/retry.test.mjs +83 -0
- package/dist/utilities/routing.d.mts +1 -1
- package/dist/utilities/routing.mjs +1 -1
- package/dist/utilities/search-params.d.mts +1 -1
- package/dist/utilities/search-params.test.mjs +1 -1
- package/dist/utilities/storage.d.mts +1 -1
- package/dist/utilities/storage.test.mjs +1 -1
- package/dist/utilities/throttled.d.mts +1 -1
- package/dist/utilities/throttled.mjs +1 -1
- package/dist/utilities/throttled.test.mjs +1 -1
- package/dist/utilities/timeout.d.mts +2 -2
- package/dist/utilities/timeout.mjs +7 -7
- package/dist/utilities/timeout.test.mjs +4 -4
- package/dist/utilities/window-focus.d.mts +10 -0
- package/dist/utilities/window-focus.mjs +16 -0
- package/dist/utilities/window-size.d.mts +1 -1
- package/dist/utilities/window-size.mjs +1 -1
- package/package.json +3 -13
- package/dist/builder/dom.d.mts +0 -212
- package/dist/builder/dom.mjs +0 -205
- package/dist/builder/index.d.mts +0 -88
- package/dist/builder/index.mjs +0 -114
- /package/dist/{lib-BYJ5jPTG.d.mts → lib-JA05lzCN.d.mts} +0 -0
package/dist/builder/dom.mjs
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { builder } from "./index.mjs";
|
|
2
|
-
//#region src/builder/dom.ts
|
|
3
|
-
const a = () => builder(document.createElement("a"));
|
|
4
|
-
const abbr = () => builder(document.createElement("abbr"));
|
|
5
|
-
const address = () => builder(document.createElement("address"));
|
|
6
|
-
const area = () => builder(document.createElement("area"));
|
|
7
|
-
const article = () => builder(document.createElement("article"));
|
|
8
|
-
const aside = () => builder(document.createElement("aside"));
|
|
9
|
-
const audio = () => builder(document.createElement("audio"));
|
|
10
|
-
const b = () => builder(document.createElement("b"));
|
|
11
|
-
const base = () => builder(document.createElement("base"));
|
|
12
|
-
const bdi = () => builder(document.createElement("bdi"));
|
|
13
|
-
const bdo = () => builder(document.createElement("bdo"));
|
|
14
|
-
const blockquote = () => builder(document.createElement("blockquote"));
|
|
15
|
-
const body = () => builder(document.createElement("body"));
|
|
16
|
-
const br = () => builder(document.createElement("br"));
|
|
17
|
-
const button = () => builder(document.createElement("button"));
|
|
18
|
-
const canvas = () => builder(document.createElement("canvas"));
|
|
19
|
-
const caption = () => builder(document.createElement("caption"));
|
|
20
|
-
const cite = () => builder(document.createElement("cite"));
|
|
21
|
-
const code = () => builder(document.createElement("code"));
|
|
22
|
-
const col = () => builder(document.createElement("col"));
|
|
23
|
-
const colgroup = () => builder(document.createElement("colgroup"));
|
|
24
|
-
const data = () => builder(document.createElement("data"));
|
|
25
|
-
const datalist = () => builder(document.createElement("datalist"));
|
|
26
|
-
const dd = () => builder(document.createElement("dd"));
|
|
27
|
-
const del = () => builder(document.createElement("del"));
|
|
28
|
-
const details = () => builder(document.createElement("details"));
|
|
29
|
-
const dfn = () => builder(document.createElement("dfn"));
|
|
30
|
-
const dialog = () => builder(document.createElement("dialog"));
|
|
31
|
-
const div = () => builder(document.createElement("div"));
|
|
32
|
-
const dl = () => builder(document.createElement("dl"));
|
|
33
|
-
const dt = () => builder(document.createElement("dt"));
|
|
34
|
-
const em = () => builder(document.createElement("em"));
|
|
35
|
-
const embed = () => builder(document.createElement("embed"));
|
|
36
|
-
const fieldset = () => builder(document.createElement("fieldset"));
|
|
37
|
-
const figcaption = () => builder(document.createElement("figcaption"));
|
|
38
|
-
const figure = () => builder(document.createElement("figure"));
|
|
39
|
-
const footer = () => builder(document.createElement("footer"));
|
|
40
|
-
const form = () => builder(document.createElement("form"));
|
|
41
|
-
const h1 = () => builder(document.createElement("h1"));
|
|
42
|
-
const h2 = () => builder(document.createElement("h2"));
|
|
43
|
-
const h3 = () => builder(document.createElement("h3"));
|
|
44
|
-
const h4 = () => builder(document.createElement("h4"));
|
|
45
|
-
const h5 = () => builder(document.createElement("h5"));
|
|
46
|
-
const h6 = () => builder(document.createElement("h6"));
|
|
47
|
-
const head = () => builder(document.createElement("head"));
|
|
48
|
-
const header = () => builder(document.createElement("header"));
|
|
49
|
-
const hgroup = () => builder(document.createElement("hgroup"));
|
|
50
|
-
const hr = () => builder(document.createElement("hr"));
|
|
51
|
-
const html = () => builder(document.createElement("html"));
|
|
52
|
-
const i = () => builder(document.createElement("i"));
|
|
53
|
-
const iframe = () => builder(document.createElement("iframe"));
|
|
54
|
-
const img = () => builder(document.createElement("img"));
|
|
55
|
-
const input = () => builder(document.createElement("input"));
|
|
56
|
-
const ins = () => builder(document.createElement("ins"));
|
|
57
|
-
const kbd = () => builder(document.createElement("kbd"));
|
|
58
|
-
const label = () => builder(document.createElement("label"));
|
|
59
|
-
const legend = () => builder(document.createElement("legend"));
|
|
60
|
-
const li = () => builder(document.createElement("li"));
|
|
61
|
-
const link = () => builder(document.createElement("link"));
|
|
62
|
-
const main = () => builder(document.createElement("main"));
|
|
63
|
-
const map = () => builder(document.createElement("map"));
|
|
64
|
-
const mark = () => builder(document.createElement("mark"));
|
|
65
|
-
const menu = () => builder(document.createElement("menu"));
|
|
66
|
-
const meta = () => builder(document.createElement("meta"));
|
|
67
|
-
const meter = () => builder(document.createElement("meter"));
|
|
68
|
-
const nav = () => builder(document.createElement("nav"));
|
|
69
|
-
const noscript = () => builder(document.createElement("noscript"));
|
|
70
|
-
const object = () => builder(document.createElement("object"));
|
|
71
|
-
const ol = () => builder(document.createElement("ol"));
|
|
72
|
-
const optgroup = () => builder(document.createElement("optgroup"));
|
|
73
|
-
const option = () => builder(document.createElement("option"));
|
|
74
|
-
const output = () => builder(document.createElement("output"));
|
|
75
|
-
const p = () => builder(document.createElement("p"));
|
|
76
|
-
const picture = () => builder(document.createElement("picture"));
|
|
77
|
-
const pre = () => builder(document.createElement("pre"));
|
|
78
|
-
const progress = () => builder(document.createElement("progress"));
|
|
79
|
-
const q = () => builder(document.createElement("q"));
|
|
80
|
-
const rp = () => builder(document.createElement("rp"));
|
|
81
|
-
const rt = () => builder(document.createElement("rt"));
|
|
82
|
-
const ruby = () => builder(document.createElement("ruby"));
|
|
83
|
-
const s = () => builder(document.createElement("s"));
|
|
84
|
-
const samp = () => builder(document.createElement("samp"));
|
|
85
|
-
const script = () => builder(document.createElement("script"));
|
|
86
|
-
const search = () => builder(document.createElement("search"));
|
|
87
|
-
const section = () => builder(document.createElement("section"));
|
|
88
|
-
const select = () => builder(document.createElement("select"));
|
|
89
|
-
const slot = () => builder(document.createElement("slot"));
|
|
90
|
-
const small = () => builder(document.createElement("small"));
|
|
91
|
-
const source = () => builder(document.createElement("source"));
|
|
92
|
-
const span = () => builder(document.createElement("span"));
|
|
93
|
-
const strong = () => builder(document.createElement("strong"));
|
|
94
|
-
const style = () => builder(document.createElement("style"));
|
|
95
|
-
const sub = () => builder(document.createElement("sub"));
|
|
96
|
-
const summary = () => builder(document.createElement("summary"));
|
|
97
|
-
const sup = () => builder(document.createElement("sup"));
|
|
98
|
-
const table = () => builder(document.createElement("table"));
|
|
99
|
-
const tbody = () => builder(document.createElement("tbody"));
|
|
100
|
-
const td = () => builder(document.createElement("td"));
|
|
101
|
-
const template = () => builder(document.createElement("template"));
|
|
102
|
-
const textarea = () => builder(document.createElement("textarea"));
|
|
103
|
-
const tfoot = () => builder(document.createElement("tfoot"));
|
|
104
|
-
const th = () => builder(document.createElement("th"));
|
|
105
|
-
const thead = () => builder(document.createElement("thead"));
|
|
106
|
-
const time = () => builder(document.createElement("time"));
|
|
107
|
-
const title = () => builder(document.createElement("title"));
|
|
108
|
-
const tr = () => builder(document.createElement("tr"));
|
|
109
|
-
const track = () => builder(document.createElement("track"));
|
|
110
|
-
const u = () => builder(document.createElement("u"));
|
|
111
|
-
const ul = () => builder(document.createElement("ul"));
|
|
112
|
-
const mathVar = () => builder(document.createElement("var"));
|
|
113
|
-
const video = () => builder(document.createElement("video"));
|
|
114
|
-
const wbr = () => builder(document.createElement("wbr"));
|
|
115
|
-
const animate = () => builder(document.createElement("animate"));
|
|
116
|
-
const animateMotion = () => builder(document.createElement("animateMotion"));
|
|
117
|
-
const animateTransform = () => builder(document.createElement("animateTransform"));
|
|
118
|
-
const circle = () => builder(document.createElement("circle"));
|
|
119
|
-
const clipPath = () => builder(document.createElement("clipPath"));
|
|
120
|
-
const defs = () => builder(document.createElement("defs"));
|
|
121
|
-
const desc = () => builder(document.createElement("desc"));
|
|
122
|
-
const ellipse = () => builder(document.createElement("ellipse"));
|
|
123
|
-
const feBlend = () => builder(document.createElement("feBlend"));
|
|
124
|
-
const feColorMatrix = () => builder(document.createElement("feColorMatrix"));
|
|
125
|
-
const feComponentTransfer = () => builder(document.createElement("feComponentTransfer"));
|
|
126
|
-
const feComposite = () => builder(document.createElement("feComposite"));
|
|
127
|
-
const feConvolveMatrix = () => builder(document.createElement("feConvolveMatrix"));
|
|
128
|
-
const feDiffuseLighting = () => builder(document.createElement("feDiffuseLighting"));
|
|
129
|
-
const feDisplacementMap = () => builder(document.createElement("feDisplacementMap"));
|
|
130
|
-
const feDistantLight = () => builder(document.createElement("feDistantLight"));
|
|
131
|
-
const feDropShadow = () => builder(document.createElement("feDropShadow"));
|
|
132
|
-
const feFlood = () => builder(document.createElement("feFlood"));
|
|
133
|
-
const feFuncA = () => builder(document.createElement("feFuncA"));
|
|
134
|
-
const feFuncB = () => builder(document.createElement("feFuncB"));
|
|
135
|
-
const feFuncG = () => builder(document.createElement("feFuncG"));
|
|
136
|
-
const feFuncR = () => builder(document.createElement("feFuncR"));
|
|
137
|
-
const feGaussianBlur = () => builder(document.createElement("feGaussianBlur"));
|
|
138
|
-
const feImage = () => builder(document.createElement("feImage"));
|
|
139
|
-
const feMerge = () => builder(document.createElement("feMerge"));
|
|
140
|
-
const feMergeNode = () => builder(document.createElement("feMergeNode"));
|
|
141
|
-
const feMorphology = () => builder(document.createElement("feMorphology"));
|
|
142
|
-
const feOffset = () => builder(document.createElement("feOffset"));
|
|
143
|
-
const fePointLight = () => builder(document.createElement("fePointLight"));
|
|
144
|
-
const feSpecularLighting = () => builder(document.createElement("feSpecularLighting"));
|
|
145
|
-
const feSpotLight = () => builder(document.createElement("feSpotLight"));
|
|
146
|
-
const feTile = () => builder(document.createElement("feTile"));
|
|
147
|
-
const feTurbulence = () => builder(document.createElement("feTurbulence"));
|
|
148
|
-
const filter = () => builder(document.createElement("filter"));
|
|
149
|
-
const foreignObject = () => builder(document.createElement("foreignObject"));
|
|
150
|
-
const g = () => builder(document.createElement("g"));
|
|
151
|
-
const image = () => builder(document.createElement("image"));
|
|
152
|
-
const line = () => builder(document.createElement("line"));
|
|
153
|
-
const linearGradient = () => builder(document.createElement("linearGradient"));
|
|
154
|
-
const marker = () => builder(document.createElement("marker"));
|
|
155
|
-
const mask = () => builder(document.createElement("mask"));
|
|
156
|
-
const metadata = () => builder(document.createElement("metadata"));
|
|
157
|
-
const mpath = () => builder(document.createElement("mpath"));
|
|
158
|
-
const path = () => builder(document.createElement("path"));
|
|
159
|
-
const pattern = () => builder(document.createElement("pattern"));
|
|
160
|
-
const polygon = () => builder(document.createElement("polygon"));
|
|
161
|
-
const polyline = () => builder(document.createElement("polyline"));
|
|
162
|
-
const radialGradient = () => builder(document.createElement("radialGradient"));
|
|
163
|
-
const rect = () => builder(document.createElement("rect"));
|
|
164
|
-
const set = () => builder(document.createElement("set"));
|
|
165
|
-
const stop = () => builder(document.createElement("stop"));
|
|
166
|
-
const svg = () => builder(document.createElement("svg"));
|
|
167
|
-
const svgSwitch = () => builder(document.createElement("switch"));
|
|
168
|
-
const symbol = () => builder(document.createElement("symbol"));
|
|
169
|
-
const text = () => builder(document.createElement("text"));
|
|
170
|
-
const textPath = () => builder(document.createElement("textPath"));
|
|
171
|
-
const tspan = () => builder(document.createElement("tspan"));
|
|
172
|
-
const use = () => builder(document.createElement("use"));
|
|
173
|
-
const view = () => builder(document.createElement("view"));
|
|
174
|
-
const annotation = () => builder(document.createElement("annotation"));
|
|
175
|
-
const annotationXml = () => builder(document.createElement("annotation-xml"));
|
|
176
|
-
const maction = () => builder(document.createElement("maction"));
|
|
177
|
-
const math = () => builder(document.createElement("math"));
|
|
178
|
-
const merror = () => builder(document.createElement("merror"));
|
|
179
|
-
const mfrac = () => builder(document.createElement("mfrac"));
|
|
180
|
-
const mi = () => builder(document.createElement("mi"));
|
|
181
|
-
const mmultiscripts = () => builder(document.createElement("mmultiscripts"));
|
|
182
|
-
const mn = () => builder(document.createElement("mn"));
|
|
183
|
-
const mo = () => builder(document.createElement("mo"));
|
|
184
|
-
const mover = () => builder(document.createElement("mover"));
|
|
185
|
-
const mpadded = () => builder(document.createElement("mpadded"));
|
|
186
|
-
const mphantom = () => builder(document.createElement("mphantom"));
|
|
187
|
-
const mprescripts = () => builder(document.createElement("mprescripts"));
|
|
188
|
-
const mroot = () => builder(document.createElement("mroot"));
|
|
189
|
-
const mrow = () => builder(document.createElement("mrow"));
|
|
190
|
-
const ms = () => builder(document.createElement("ms"));
|
|
191
|
-
const mspace = () => builder(document.createElement("mspace"));
|
|
192
|
-
const msqrt = () => builder(document.createElement("msqrt"));
|
|
193
|
-
const mstyle = () => builder(document.createElement("mstyle"));
|
|
194
|
-
const msub = () => builder(document.createElement("msub"));
|
|
195
|
-
const msubsup = () => builder(document.createElement("msubsup"));
|
|
196
|
-
const msup = () => builder(document.createElement("msup"));
|
|
197
|
-
const mtable = () => builder(document.createElement("mtable"));
|
|
198
|
-
const mtd = () => builder(document.createElement("mtd"));
|
|
199
|
-
const mtext = () => builder(document.createElement("mtext"));
|
|
200
|
-
const mtr = () => builder(document.createElement("mtr"));
|
|
201
|
-
const munder = () => builder(document.createElement("munder"));
|
|
202
|
-
const munderover = () => builder(document.createElement("munderover"));
|
|
203
|
-
const semantics = () => builder(document.createElement("semantics"));
|
|
204
|
-
//#endregion
|
|
205
|
-
export { a, abbr, address, animate, animateMotion, animateTransform, annotation, annotationXml, area, article, aside, audio, b, base, bdi, bdo, blockquote, body, br, button, canvas, caption, circle, cite, clipPath, code, col, colgroup, data, datalist, dd, defs, del, desc, details, dfn, dialog, div, dl, dt, ellipse, em, embed, feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feDistantLight, feDropShadow, feFlood, feFuncA, feFuncB, feFuncG, feFuncR, feGaussianBlur, feImage, feMerge, feMergeNode, feMorphology, feOffset, fePointLight, feSpecularLighting, feSpotLight, feTile, feTurbulence, fieldset, figcaption, figure, filter, footer, foreignObject, form, g, h1, h2, h3, h4, h5, h6, head, header, hgroup, hr, html, i, iframe, image, img, input, ins, kbd, label, legend, li, line, linearGradient, link, maction, main, map, mark, marker, mask, math, mathVar, menu, merror, meta, metadata, meter, mfrac, mi, mmultiscripts, mn, mo, mover, mpadded, mpath, mphantom, mprescripts, mroot, mrow, ms, mspace, msqrt, mstyle, msub, msubsup, msup, mtable, mtd, mtext, mtr, munder, munderover, nav, noscript, object, ol, optgroup, option, output, p, path, pattern, picture, polygon, polyline, pre, progress, q, radialGradient, rect, rp, rt, ruby, s, samp, script, search, section, select, semantics, set, slot, small, source, span, stop, strong, style, sub, summary, sup, svg, svgSwitch, symbol, table, tbody, td, template, text, textPath, textarea, tfoot, th, thead, time, title, tr, track, tspan, u, ul, use, video, view, wbr };
|
package/dist/builder/index.d.mts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { t as PrimitiveNodeType } from "../lib-BYJ5jPTG.mjs";
|
|
2
|
-
//#region src/builder/index.d.ts
|
|
3
|
-
declare const DISPOSABLES: unique symbol;
|
|
4
|
-
declare const DISPOSE: symbol;
|
|
5
|
-
declare const VALUE: unique symbol;
|
|
6
|
-
declare const EFFECT: unique symbol;
|
|
7
|
-
declare class ElementBuilder<T extends Element = Element> {
|
|
8
|
-
/** Dispose the reactive element and run all cleanup functions */
|
|
9
|
-
[DISPOSE]: () => void;
|
|
10
|
-
/** The underlying DOM element */
|
|
11
|
-
private [VALUE];
|
|
12
|
-
/** A set of cleanup functions to run when disposing the element */
|
|
13
|
-
private [DISPOSABLES];
|
|
14
|
-
[EFFECT](fn: () => void): this;
|
|
15
|
-
private constructor();
|
|
16
|
-
static create<T extends Element>(el: T): ReactiveElement<T>;
|
|
17
|
-
children(...children: ValueOrReactive<ElementBuilder | Node | string | number>[]): T;
|
|
18
|
-
ref(): T;
|
|
19
|
-
ref(apply: (ref: T) => void | (() => void)): this;
|
|
20
|
-
on<K extends keyof HTMLElementEventMap>(eventType: K, listener: (ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): this;
|
|
21
|
-
}
|
|
22
|
-
declare function toNode(c: ElementBuilder | PrimitiveNodeType): Node;
|
|
23
|
-
declare function builder<T extends Element>(el: T): ReactiveElementOf<T>;
|
|
24
|
-
/**
|
|
25
|
-
* Callable overloads matching the Proxy apply trap → ref() behavior.
|
|
26
|
-
* Calling a reactive element as a function delegates to ref():
|
|
27
|
-
* el() → returns the raw DOM element
|
|
28
|
-
* el((ref) => {}) → applies a side-effect, returns the builder for chaining
|
|
29
|
-
*/
|
|
30
|
-
interface RefCallable<T extends Element> {
|
|
31
|
-
(): T;
|
|
32
|
-
(apply: (ref: T) => void | (() => void)): this;
|
|
33
|
-
}
|
|
34
|
-
type ReactiveElement<T extends Element> = ElementBuilder<T> & RefCallable<T>;
|
|
35
|
-
type ValueOrReactive<T> = (() => T) | T;
|
|
36
|
-
type ValueOrReactiveArray<T extends any[]> = { [K in keyof T]: ValueOrReactive<T[K]> | T[K] };
|
|
37
|
-
/**
|
|
38
|
-
* Filter keys that are writable (exclude readonly and getter-only).
|
|
39
|
-
*/
|
|
40
|
-
type WritableKeys<T> = { [K in keyof T]: (<U>() => U extends { [Q in K]: T[K] } ? 1 : 2) extends (<U>() => U extends { readonly [Q in K]: T[K] } ? 1 : 2) ? never : K }[keyof T];
|
|
41
|
-
/**
|
|
42
|
-
* Extracts the object chaining part of ReactiveBuilder.
|
|
43
|
-
* Used for properties like `style` where you can do both:
|
|
44
|
-
* .style("padding: 20px;") // setter
|
|
45
|
-
* .style.padding("20px") // sub-property chaining
|
|
46
|
-
*/
|
|
47
|
-
type Chain<R, T> = T extends object ? { [K in WritableKeys<T>]: Builder<R, T[K]> } : {};
|
|
48
|
-
type Builder<R, T = R> = T extends ((...args: infer U) => unknown) ? (...value: ValueOrReactiveArray<U>) => R : (value?: ValueOrReactive<T>) => R;
|
|
49
|
-
/**
|
|
50
|
-
* Types eligible for sub-property chaining (e.g., `.style.padding("20px")`).
|
|
51
|
-
*/
|
|
52
|
-
type ChainableType = CSSStyleDeclaration | DOMTokenList | DOMStringMap | StylePropertyMap;
|
|
53
|
-
/**
|
|
54
|
-
* Filters keys to only writable data properties.
|
|
55
|
-
* Excludes methods (function-valued properties) and event handlers (`on*`).
|
|
56
|
-
*/
|
|
57
|
-
type DataPropertyKeys<T> = { [K in keyof T]: K extends `on${string}` ? never : T[K] extends ((...args: any[]) => any) ? never : K }[keyof T];
|
|
58
|
-
/**
|
|
59
|
-
* Reactive setter for a single property.
|
|
60
|
-
* Chainable types (CSSStyleDeclaration, DOMTokenList, etc.) get both
|
|
61
|
-
* sub-property chaining and direct setter support.
|
|
62
|
-
*/
|
|
63
|
-
type ReactiveSetter<R, T> = T extends ChainableType ? Chain<R, T> & ((value: ValueOrReactive<T>) => R) : (value: ValueOrReactive<T>) => R;
|
|
64
|
-
/**
|
|
65
|
-
* A fully-typed reactive element builder for any Element type.
|
|
66
|
-
* Automatically maps all writable data properties into reactive setters.
|
|
67
|
-
*
|
|
68
|
-
* Use this for custom elements instead of needing generated builder interfaces.
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```ts
|
|
72
|
-
* import { reactive, type ReactiveElementOf } from "elements-kit";
|
|
73
|
-
*
|
|
74
|
-
* class MyElement extends HTMLElement {
|
|
75
|
-
* greeting = "hello";
|
|
76
|
-
* }
|
|
77
|
-
* customElements.define("my-element", MyElement);
|
|
78
|
-
*
|
|
79
|
-
* const myEl = () =>
|
|
80
|
-
* reactive(document.createElement("my-element") as MyElement);
|
|
81
|
-
*
|
|
82
|
-
* // Full type support for both own and inherited properties:
|
|
83
|
-
* myEl().greeting("world").style.padding("20px").id("main");
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
type ReactiveElementOf<T extends Element> = ElementBuilder<T> & { [K in WritableKeys<T> & DataPropertyKeys<T> & keyof T]: ReactiveSetter<ReactiveElementOf<T>, T[K]> };
|
|
87
|
-
//#endregion
|
|
88
|
-
export { Builder, Chain, DISPOSABLES, DISPOSE, EFFECT, ElementBuilder, ReactiveElement, ReactiveElementOf, VALUE, ValueOrReactive, builder, toNode };
|
package/dist/builder/index.mjs
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { o as effect, t as isReactive } from "../signals-DcgXhkU2.mjs";
|
|
2
|
-
import "../polyfill-B1lNNcum.mjs";
|
|
3
|
-
import { i as resolveNode, n as Slot } from "../slot-Cydy7-0L.mjs";
|
|
4
|
-
//#region src/builder/index.ts
|
|
5
|
-
const DISPOSABLES = Symbol("disposables");
|
|
6
|
-
const DISPOSE = Symbol.dispose;
|
|
7
|
-
const VALUE = Symbol("value");
|
|
8
|
-
const EFFECT = Symbol("effect");
|
|
9
|
-
var ElementBuilder = class ElementBuilder {
|
|
10
|
-
/** The underlying DOM element */
|
|
11
|
-
[VALUE];
|
|
12
|
-
/** A set of cleanup functions to run when disposing the element */
|
|
13
|
-
[DISPOSABLES] = /* @__PURE__ */ new Set();
|
|
14
|
-
/** Dispose the reactive element and run all cleanup functions */
|
|
15
|
-
[DISPOSE]() {
|
|
16
|
-
this[DISPOSABLES].forEach((dispose) => dispose());
|
|
17
|
-
this[DISPOSABLES].clear();
|
|
18
|
-
}
|
|
19
|
-
[EFFECT](fn) {
|
|
20
|
-
this[DISPOSABLES].add(effect(fn));
|
|
21
|
-
return this;
|
|
22
|
-
}
|
|
23
|
-
constructor(el) {
|
|
24
|
-
this[VALUE] = el;
|
|
25
|
-
}
|
|
26
|
-
static create(el) {
|
|
27
|
-
const builder = new ElementBuilder(el);
|
|
28
|
-
return new Proxy(builder.ref, {
|
|
29
|
-
apply(_target, _thisArg, argArray) {
|
|
30
|
-
return Reflect.apply(builder.ref, builder, argArray);
|
|
31
|
-
},
|
|
32
|
-
get(_target, key, receiver) {
|
|
33
|
-
const el = builder[VALUE];
|
|
34
|
-
if (key in builder) return Reflect.get(builder, key, receiver);
|
|
35
|
-
return setterOrValue(receiver, el, key);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
children(...children) {
|
|
40
|
-
const el = this[VALUE];
|
|
41
|
-
if (children.length === 0) return el;
|
|
42
|
-
children.forEach((child) => {
|
|
43
|
-
if (isReactive(child)) {
|
|
44
|
-
const slot = Slot.new();
|
|
45
|
-
el.appendChild(slot());
|
|
46
|
-
return this[EFFECT](() => {
|
|
47
|
-
const value = toNode(child());
|
|
48
|
-
slot.set(value);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
el.appendChild(toNode(child));
|
|
52
|
-
});
|
|
53
|
-
return el;
|
|
54
|
-
}
|
|
55
|
-
ref(apply) {
|
|
56
|
-
if (!apply) return this[VALUE];
|
|
57
|
-
const result = apply(this[VALUE]);
|
|
58
|
-
if (typeof result === "function") this[DISPOSABLES].add(result);
|
|
59
|
-
return this;
|
|
60
|
-
}
|
|
61
|
-
on(eventType, listener, options) {
|
|
62
|
-
this[VALUE].addEventListener(eventType, listener, options);
|
|
63
|
-
this[DISPOSABLES].add(() => {
|
|
64
|
-
this[VALUE].removeEventListener(eventType, listener, options);
|
|
65
|
-
});
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
var ChainContext = class {
|
|
70
|
-
builder;
|
|
71
|
-
chain;
|
|
72
|
-
key;
|
|
73
|
-
constructor(builder, chain, key) {
|
|
74
|
-
this.builder = builder;
|
|
75
|
-
this.chain = chain;
|
|
76
|
-
this.key = key;
|
|
77
|
-
}
|
|
78
|
-
setter(value) {
|
|
79
|
-
const chain = this.chain;
|
|
80
|
-
if (isReactive(value)) {
|
|
81
|
-
this.builder[DISPOSABLES].add(effect(() => {
|
|
82
|
-
chain[this.key] = value();
|
|
83
|
-
}));
|
|
84
|
-
return this.builder;
|
|
85
|
-
}
|
|
86
|
-
chain[this.key] = value;
|
|
87
|
-
return this.builder;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
function setterOrValue(builder, chainParent, key) {
|
|
91
|
-
const chain = chainParent[key];
|
|
92
|
-
const context = new ChainContext(builder, chainParent, key);
|
|
93
|
-
return new Proxy(context.setter.bind(context), {
|
|
94
|
-
apply(target, _thisArg, argArray) {
|
|
95
|
-
return target(argArray[0]);
|
|
96
|
-
},
|
|
97
|
-
get(_, subkey) {
|
|
98
|
-
if (isObject(chain)) return setterOrValue(builder, chain, subkey);
|
|
99
|
-
return chain[subkey];
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
function toNode(c) {
|
|
104
|
-
if (c instanceof ElementBuilder) return c.ref();
|
|
105
|
-
return resolveNode(c);
|
|
106
|
-
}
|
|
107
|
-
function isObject(v) {
|
|
108
|
-
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
109
|
-
}
|
|
110
|
-
function builder(el) {
|
|
111
|
-
return ElementBuilder.create(el);
|
|
112
|
-
}
|
|
113
|
-
//#endregion
|
|
114
|
-
export { DISPOSABLES, DISPOSE, EFFECT, ElementBuilder, VALUE, builder, toNode };
|
|
File without changes
|