@tempots/dom 9.0.1 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/{components → dom}/animatable.d.ts +7 -1
- package/dom/attr.d.ts +73 -0
- package/dom/dom-context.d.ts +108 -0
- package/dom/dom-utils.d.ts +21 -0
- package/dom/handle-anchor-click.d.ts +13 -0
- package/dom/ssr-tracker.d.ts +1 -0
- package/dom/ssr.d.ts +8 -0
- package/index.cjs +1 -0
- package/index.d.ts +52 -34
- package/index.js +1397 -31
- package/mountable/appearance.d.ts +38 -0
- package/mountable/async.d.ts +7 -0
- package/mountable/attribute.d.ts +489 -0
- package/mountable/autofocus.d.ts +3 -0
- package/mountable/autoselect.d.ts +3 -0
- package/mountable/bind.d.ts +16 -0
- package/mountable/conjunction.d.ts +8 -0
- package/mountable/consumers.d.ts +12 -0
- package/mountable/ctx.d.ts +3 -0
- package/mountable/domel.d.ts +3 -0
- package/mountable/element.d.ts +236 -0
- package/mountable/empty.d.ts +3 -0
- package/mountable/ensure.d.ts +4 -0
- package/mountable/foreach.d.ts +5 -0
- package/mountable/fragment.d.ts +3 -0
- package/mountable/handler.d.ts +102 -0
- package/mountable/hidden-when-empty.d.ts +3 -0
- package/mountable/html-title.d.ts +3 -0
- package/mountable/inviewport.d.ts +6 -0
- package/mountable/map-signal.d.ts +4 -0
- package/mountable/not-empty.d.ts +4 -0
- package/mountable/ondispose.d.ts +4 -0
- package/mountable/oneof.d.ts +22 -0
- package/mountable/onmount.d.ts +3 -0
- package/mountable/portal.d.ts +4 -0
- package/mountable/providers.d.ts +16 -0
- package/mountable/render.d.ts +8 -0
- package/mountable/repeat.d.ts +5 -0
- package/mountable/size.d.ts +8 -0
- package/mountable/style.d.ts +504 -0
- package/mountable/task.d.ts +7 -0
- package/mountable/text.d.ts +6 -0
- package/mountable/when.d.ts +4 -0
- package/package.json +15 -8
- package/std/interpolate.d.ts +5 -0
- package/std/position.d.ts +9 -0
- package/std/signal.d.ts +120 -0
- package/types/aria-attributes.d.ts +50 -0
- package/types/css-styles.d.ts +3 -0
- package/types/domain.d.ts +14 -0
- package/types/html-attributes.d.ts +115 -0
- package/types/html-events.d.ts +89 -0
- package/types/html-tags.d.ts +113 -0
- package/types/mathml-attributes.d.ts +50 -0
- package/types/mathml-tags.d.ts +30 -0
- package/types/svg-attributes.d.ts +243 -0
- package/types/svg-tags.d.ts +64 -0
- package/clean.d.ts +0 -2
- package/clean.js +0 -1
- package/components/Attribute.d.ts +0 -15
- package/components/Attribute.js +0 -16
- package/components/Autofocus.d.ts +0 -2
- package/components/Autofocus.js +0 -4
- package/components/BooleanAttribute.d.ts +0 -15
- package/components/BooleanAttribute.js +0 -16
- package/components/ClassName.d.ts +0 -13
- package/components/ClassName.js +0 -14
- package/components/El.d.ts +0 -15
- package/components/El.js +0 -21
- package/components/FadeIn.d.ts +0 -20
- package/components/FadeIn.js +0 -54
- package/components/FadeOut.d.ts +0 -16
- package/components/FadeOut.js +0 -39
- package/components/For.d.ts +0 -18
- package/components/For.js +0 -27
- package/components/Fragment.d.ts +0 -12
- package/components/Fragment.js +0 -16
- package/components/HiddenWhenEmpty.d.ts +0 -7
- package/components/HiddenWhenEmpty.js +0 -13
- package/components/If.d.ts +0 -14
- package/components/If.js +0 -19
- package/components/InnerHTML.d.ts +0 -13
- package/components/InnerHTML.js +0 -23
- package/components/Lifecycle.d.ts +0 -14
- package/components/Lifecycle.js +0 -18
- package/components/NotEmpty.d.ts +0 -9
- package/components/NotEmpty.js +0 -11
- package/components/On.d.ts +0 -15
- package/components/On.js +0 -14
- package/components/OnRemove.d.ts +0 -6
- package/components/OnRemove.js +0 -4
- package/components/OneOf.d.ts +0 -62
- package/components/OneOf.js +0 -68
- package/components/Portal.d.ts +0 -15
- package/components/Portal.js +0 -20
- package/components/Property.d.ts +0 -15
- package/components/Property.js +0 -16
- package/components/Provider.d.ts +0 -28
- package/components/Provider.js +0 -44
- package/components/Repeat.d.ts +0 -28
- package/components/Repeat.js +0 -146
- package/components/Show.d.ts +0 -15
- package/components/Show.js +0 -8
- package/components/Text.d.ts +0 -15
- package/components/Text.js +0 -33
- package/components/TextContent.d.ts +0 -13
- package/components/TextContent.js +0 -23
- package/components/animatable.js +0 -283
- package/dom-context.d.ts +0 -39
- package/dom-context.js +0 -263
- package/helpers/handle-anchor-click.d.ts +0 -4
- package/helpers/handle-anchor-click.js +0 -43
- package/helpers/handle-text-input.d.ts +0 -1
- package/helpers/handle-text-input.js +0 -4
- package/helpers/is-empty-element.d.ts +0 -2
- package/helpers/is-empty-element.js +0 -8
- package/jsx-dev-runtime.d.ts +0 -1
- package/jsx-dev-runtime.js +0 -1
- package/jsx-runtime.d.ts +0 -9
- package/jsx-runtime.js +0 -157
- package/jsx.d.ts +0 -806
- package/jsx.js +0 -1
- package/prop.d.ts +0 -58
- package/prop.js +0 -256
- package/render.d.ts +0 -3
- package/render.js +0 -7
- package/renderable.d.ts +0 -5
- package/renderable.js +0 -1
package/README.md
CHANGED
|
@@ -52,7 +52,13 @@ export interface Animatable {
|
|
|
52
52
|
contrast?: number;
|
|
53
53
|
blur?: number;
|
|
54
54
|
}
|
|
55
|
-
export type ColorChannels = [
|
|
55
|
+
export type ColorChannels = [
|
|
56
|
+
number,
|
|
57
|
+
number,
|
|
58
|
+
number,
|
|
59
|
+
number,
|
|
60
|
+
'rgba' | 'hex' | 'hsla'
|
|
61
|
+
];
|
|
56
62
|
export declare function parseColorChannels(color: string): ColorChannels;
|
|
57
63
|
export interface BoxShadow {
|
|
58
64
|
inset: boolean;
|
package/dom/attr.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sets a boolean property on an HTML element.
|
|
3
|
+
*
|
|
4
|
+
* If the `value` is `null`, the property is set to `null`. Otherwise, the
|
|
5
|
+
* property is set to the boolean value of `value`.
|
|
6
|
+
*
|
|
7
|
+
* @param attributeName - The name of the boolean property to set.
|
|
8
|
+
* @returns A function that takes an `Element` and a `value` and sets the
|
|
9
|
+
* boolean property on the element.
|
|
10
|
+
*/
|
|
11
|
+
export declare function setBooleanProperty(attributeName: string): (element: Element, value: unknown) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Sets a numeric property on an HTML element.
|
|
14
|
+
*
|
|
15
|
+
* If the provided `value` is `null`, the property will be set to `null`.
|
|
16
|
+
* Otherwise, the property will be set to the numeric value of the provided `value`.
|
|
17
|
+
*
|
|
18
|
+
* @param attributeName - The name of the property to set on the element.
|
|
19
|
+
* @returns A function that takes an `Element` and a `value` and sets the property.
|
|
20
|
+
*/
|
|
21
|
+
export declare function setNumberProperty(attributeName: string): (element: Element, value: unknown) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Sets a date property on an element.
|
|
24
|
+
*
|
|
25
|
+
* If the `value` is `null`, the date property is set to `null`. Otherwise, the
|
|
26
|
+
* date property is set to the provided `value`.
|
|
27
|
+
*
|
|
28
|
+
* @param attributeName - The name of the date property to set on the element.
|
|
29
|
+
* @returns A function that takes an element and a value, and sets the date
|
|
30
|
+
* property on the element.
|
|
31
|
+
*/
|
|
32
|
+
export declare function setDateProperty(attributeName: string): (element: Element, value: unknown) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Sets a string property on an `Element` object.
|
|
35
|
+
*
|
|
36
|
+
* If the provided `value` is `null`, the property will be set to `null`.
|
|
37
|
+
* Otherwise, the `value` will be converted to a string and set as the property.
|
|
38
|
+
*
|
|
39
|
+
* @param attributeName - The name of the property to set on the `Element`.
|
|
40
|
+
* @returns A function that takes an `Element` and a `value` and sets the property.
|
|
41
|
+
*/
|
|
42
|
+
export declare function setStringProperty(attributeName: string): (element: Element, value: unknown) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Sets the specified attribute on the given element to the provided value.
|
|
45
|
+
* If the value is `null`, the attribute will be removed from the element.
|
|
46
|
+
*
|
|
47
|
+
* @param attributeName - The name of the attribute to set.
|
|
48
|
+
* @returns A function that takes an element and a value, and sets the attribute on the element.
|
|
49
|
+
*/
|
|
50
|
+
export declare function setAttribute(attributeName: string): (element: Element, value: unknown) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a setter function for an element attribute based on the attribute's type.
|
|
53
|
+
*
|
|
54
|
+
* The returned setter function will set the attribute value on the given element
|
|
55
|
+
* using the appropriate method (e.g. `setAttribute()`, `setProperty()`) based
|
|
56
|
+
* on the attribute's type.
|
|
57
|
+
*
|
|
58
|
+
* @param attributeName - The name of the attribute to create a setter for.
|
|
59
|
+
* @returns A function that sets the attribute value on an element.
|
|
60
|
+
*/
|
|
61
|
+
export declare function makeSetter(attributeName: string): (element: Element, value: unknown) => void;
|
|
62
|
+
/**
|
|
63
|
+
* Creates a getter function for a specific HTML element attribute.
|
|
64
|
+
*
|
|
65
|
+
* The returned getter function takes an `Element` and returns the value of the
|
|
66
|
+
* specified attribute. The function handles different attribute types (boolean,
|
|
67
|
+
* number, date, string) and returns the appropriate type.
|
|
68
|
+
*
|
|
69
|
+
* @param attributeName - The name of the HTML element attribute to get.
|
|
70
|
+
* @returns A function that takes an `Element` and returns the value of the
|
|
71
|
+
* specified attribute.
|
|
72
|
+
*/
|
|
73
|
+
export declare function makeGetter<T>(attributeName: string): (element: Element) => T;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ProviderMark, Providers } from '../types/domain';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* `DOMContext` is an immutable class that represents the context of a DOM element.
|
|
5
|
+
* It provides methods and properties to manipulate and interact with the DOM element.
|
|
6
|
+
*
|
|
7
|
+
* A reference in a DOMContext is to mark a position within a set of sibblings.
|
|
8
|
+
* It is used to insert new elements before the reference.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DOMContext {
|
|
11
|
+
readonly document: Document;
|
|
12
|
+
readonly element: Element;
|
|
13
|
+
readonly reference: Node | undefined;
|
|
14
|
+
readonly providers: Providers;
|
|
15
|
+
readonly isFirstLevel: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new `DOMContext` instance for the given `Element` and optional reference `Node`.
|
|
18
|
+
*
|
|
19
|
+
* @param element - The `Element` to create the `DOMContext` for.
|
|
20
|
+
* @param ref - An optional reference `Node` to associate with the `DOMContext`.
|
|
21
|
+
* @returns A new `DOMContext` instance.
|
|
22
|
+
*/
|
|
23
|
+
static of(element: Element, ref?: Node | undefined): DOMContext;
|
|
24
|
+
/**
|
|
25
|
+
* Constructs a new `DOMContext` instance.
|
|
26
|
+
*
|
|
27
|
+
* @param document - The `Document` instance associated with this context.
|
|
28
|
+
* @param element - The `Element` instance associated with this context.
|
|
29
|
+
* @param reference - An optional `Node` instance that serves as a reference for this context.
|
|
30
|
+
* @param providers - The `Providers` instance associated with this context.
|
|
31
|
+
* @param isFirstLevel - A boolean value indicating whether this context is at the first level, meaning the outermost node in the generated DOM.
|
|
32
|
+
*/
|
|
33
|
+
constructor(document: Document, element: Element, reference: Node | undefined, providers: Providers, isFirstLevel: boolean);
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new DOM element (eg: HTML or SVG) with the specified tag name and namespace.
|
|
36
|
+
*
|
|
37
|
+
* @param tagName - The tag name of the element to create.
|
|
38
|
+
* @param namespace - The namespace URI to create the element in, or `undefined` to create a standard HTML element.
|
|
39
|
+
* @returns The newly created element.
|
|
40
|
+
*/
|
|
41
|
+
readonly createElement: (tagName: string, namespace: string | undefined) => Element;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new text node with the specified text content.
|
|
44
|
+
* @param text - The text content for the new text node.
|
|
45
|
+
* @returns A new `Text` node with the specified text content.
|
|
46
|
+
*/
|
|
47
|
+
readonly createText: (text: string) => Text;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a new `DOMContext` with a reference to a newly created text node.
|
|
50
|
+
* The text node is appended or inserted to the current `DOMContext`.
|
|
51
|
+
* The new `DOMContext` with the reference is returned.
|
|
52
|
+
*/
|
|
53
|
+
readonly makeRef: () => DOMContext;
|
|
54
|
+
/**
|
|
55
|
+
* Appends or inserts a child node to the element, depending on whether a reference node is provided.
|
|
56
|
+
*
|
|
57
|
+
* @param child - The child node to append or insert.
|
|
58
|
+
*/
|
|
59
|
+
readonly appendOrInsert: (child: Node) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a new `DOMContext` instance with the provided `document`.
|
|
62
|
+
*
|
|
63
|
+
* @param document - The `Document` to use for the `DOMContext`.
|
|
64
|
+
* @returns A new `DOMContext` instance.
|
|
65
|
+
*/
|
|
66
|
+
readonly withDocument: (document: Document) => DOMContext;
|
|
67
|
+
/**
|
|
68
|
+
* Creates a new `DOMContext` instance with the provided `element`.
|
|
69
|
+
* @param element - The DOM element to use in the new `DOMContext` instance.
|
|
70
|
+
* @returns A new `DOMContext` instance with the provided `element`.
|
|
71
|
+
*/
|
|
72
|
+
readonly withElement: (element: Element) => DOMContext;
|
|
73
|
+
/**
|
|
74
|
+
* Creates a new `DOMContext` instance with the `isFirstLevel` property set to `true`.
|
|
75
|
+
* @returns A new `DOMContext` instance with the `isFirstLevel` property set to `true`.
|
|
76
|
+
*/
|
|
77
|
+
readonly withFirstLevel: () => DOMContext;
|
|
78
|
+
/**
|
|
79
|
+
* Creates a new `DOMContext` instance with the specified reference.
|
|
80
|
+
*
|
|
81
|
+
* @param reference - The optional `Text` node to use as the reference for the new `DOMContext`.
|
|
82
|
+
* @returns A new `DOMContext` instance with the specified reference.
|
|
83
|
+
*/
|
|
84
|
+
readonly withReference: (reference: Text | undefined) => DOMContext;
|
|
85
|
+
/** Creates a new DOMContext with the provided provider value.
|
|
86
|
+
*
|
|
87
|
+
* @param mark - The provider mark to associate the value with.
|
|
88
|
+
* @param value - The value to set for the provider.
|
|
89
|
+
* @returns A new DOMContext with the updated providers.
|
|
90
|
+
*/
|
|
91
|
+
readonly withProvider: <T>(mark: ProviderMark<T>, value: T) => DOMContext;
|
|
92
|
+
/**
|
|
93
|
+
* Returns a new DOMContext instance with the specified providers merged into
|
|
94
|
+
* the existing providers.
|
|
95
|
+
*
|
|
96
|
+
* @param providers - An object containing the providers to be merged into the existing providers.
|
|
97
|
+
* @returns A new DOMContext instance with the merged providers.
|
|
98
|
+
*/
|
|
99
|
+
readonly withProviders: (providers: { [K in ProviderMark<unknown>]: unknown; }) => DOMContext;
|
|
100
|
+
/**
|
|
101
|
+
* Retrieves a provider for the given provider mark.
|
|
102
|
+
*
|
|
103
|
+
* @param mark - The provider mark to retrieve the provider for.
|
|
104
|
+
* @returns The provider for the given mark.
|
|
105
|
+
* @throws {Error} If the provider for the given mark is not found.
|
|
106
|
+
*/
|
|
107
|
+
readonly getProvider: <T>(mark: ProviderMark<T>) => T;
|
|
108
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes the specified node from the DOM.
|
|
3
|
+
*
|
|
4
|
+
* @param node - The node to be removed from the DOM.
|
|
5
|
+
*/
|
|
6
|
+
export declare function removeDOMNode(node: Node): void;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the given `node` if it is an `Element`, or the parent `Element` of
|
|
9
|
+
* the given `node` if it is not an `Element`.
|
|
10
|
+
*
|
|
11
|
+
* @param node - The `Node` to get the `Element` for.
|
|
12
|
+
* @returns The `Element` for the given `node`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getSelfOrParentElement(node: Node): Element;
|
|
15
|
+
/**
|
|
16
|
+
* Determines if the given `Node` is an `Element`.
|
|
17
|
+
*
|
|
18
|
+
* @param node - The `Node` to check.
|
|
19
|
+
* @returns `true` if the `node` is an `Element`, `false` otherwise.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isElement(node: Node): node is Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles anchor click events, optionally checking for external URLs and file extensions.
|
|
3
|
+
*
|
|
4
|
+
* @param callback - A function that is called when the anchor click should be handled. The function should return a boolean indicating whether the default anchor click behavior should be prevented.
|
|
5
|
+
* @param options - An optional object with the following properties:
|
|
6
|
+
* - `checkExtension`: A boolean indicating whether to check the anchor's href for a file extension. Defaults to `true`.
|
|
7
|
+
* - `checkExternalUrl`: A boolean indicating whether to check if the anchor's href points to an external URL. Defaults to `true`.
|
|
8
|
+
* @returns A function that handles the anchor click event, calling the provided callback and preventing the default behavior if the callback returns `true`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const handleAnchorClick: (callback: () => boolean, options?: {
|
|
11
|
+
checkExtension?: boolean;
|
|
12
|
+
checkExternalUrl?: boolean;
|
|
13
|
+
}) => (e: MouseEvent) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function addAttributeTracker(element: Element, name: string): void;
|
package/dom/ssr.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Child, Mountable } from '../types/domain';
|
|
2
|
+
|
|
3
|
+
export declare function clearSSR(doc: Document): void;
|
|
4
|
+
export declare const startSSR: (timeoutSeconds?: number) => Promise<void>;
|
|
5
|
+
export declare const ssr: {
|
|
6
|
+
useDone(child: (done: () => void) => Child): Mountable;
|
|
7
|
+
readonly isSSR: boolean;
|
|
8
|
+
};
|
package/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var at=Object.defineProperty;var ut=(t,e,r)=>e in t?at(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var a=(t,e,r)=>ut(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function De(t,e,r){return t+(e-t)*r}const he=97;function Ce(t,e,r){const n=Math.max(t.length,e.length);let s="";for(let i=0;i<n;i++){let o=t.charCodeAt(i);isNaN(o)&&(o=he);let u=e.charCodeAt(i);isNaN(u)&&(u=he),s+=String.fromCharCode(o+(u-o)*r)}return s}function Me(t,e,r){return new Date(t.getTime()+(e.getTime()-t.getTime())*r)}function _e(t,e,r){return e}function Le(t){return typeof t=="number"?De:typeof t=="string"?Ce:t instanceof Date?Me:_e}class Te{constructor(e,r){this.index=e,this.total=r}get isFirst(){return this.index===0}get isLast(){return this.index===this.total-1}get isEven(){return this.index%2===0}get isOdd(){return this.index%2===1}}const me=Symbol("isSignal"),ge=Symbol("isProp"),Se=Symbol("isComputed");var be;be=me;const E=class E{constructor(e,r){a(this,be,!0);a(this,"_value");a(this,"_derivatives",[]);a(this,"_onValueListeners",[]);a(this,"_onDisposeListeners",[]);a(this,"get",()=>this._value);a(this,"hasListeners",()=>this._onValueListeners.length>0);a(this,"on",e=>(e(this.get()),this._onValueListeners.push(e),()=>{this._onValueListeners.splice(this._onValueListeners.indexOf(e),1)}));a(this,"_setAndNotify",(e,r)=>{const n=this.equals(this._value,e);n||(this._value=e),(r||!n)&&this._onValueListeners.forEach(s=>s(e))});a(this,"_disposed",!1);a(this,"isDisposed",()=>this._disposed);a(this,"onDispose",e=>{this._onDisposeListeners.push(e)});a(this,"dispose",()=>{this._disposed||(this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0)});a(this,"map",(e,r=(n,s)=>n===s)=>{const n=new M(()=>{try{return e(this.get())}catch(s){throw console.error("Error in Signal.map:",s),s}},r);return this.setDerivative(n),n});a(this,"flatMap",(e,r=(n,s)=>n===s)=>{const n=new M(()=>{try{return e(this.get()).get()}catch(s){throw console.error("Error in Signal.flatMap:",s),s}},r);return this.setDerivative(n),n});a(this,"tap",e=>this.map(r=>(e(r),r)));a(this,"at",e=>this.map(r=>r[e]));a(this,"filter",(e,r)=>{let n=r??this.get();const s=new M(()=>{try{const i=this.get();return n=e(i)?i:n}catch(i){throw console.error("Error in Signal.filter:",i),i}},this.equals);return this.setDerivative(s),s});a(this,"filterMap",(e,r,n=(s,i)=>s===i)=>{let s=r;const i=new M(()=>{try{const o=this.get(),u=e(o);return s=u??s}catch(o){throw console.error("Error in Signal.filterMap:",o),o}},n);return this.setDerivative(i),i});a(this,"mapAsync",(e,r,n,s=(i,o)=>i===o)=>{const i=b(r,s);let o=0;return i.onDispose(this.on(u=>{const l=++o;try{e(u).then(c=>{l===o&&i.set(c)}).catch(c=>{l===o&&(n!=null?i.set(n(c)):console.error("Unhandled promise rejection in Signal.mapAsync:",c))})}catch(c){throw console.error("Error in Signal.mapAsync:",c),c}})),i});a(this,"mapMaybe",(e,r)=>this.map(n=>e(n)??r));a(this,"feedProp",(e,r=!1)=>{const n=this.on(e.set);return e.onDispose(n),r?this.onDispose(e.dispose):this.onDispose(n),e});a(this,"deriveProp",(e=!0)=>this.feedProp(b(this.get()),e));a(this,"count",()=>{let e=0;return this.map(()=>++e)});a(this,"setDerivative",e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty)),this.onDispose(e.dispose)});this.equals=r,this._value=e}static ofPromise(e,r,n,s=(i,o)=>i===o){const i=new E(r,s);return e.then(o=>i._setAndNotify(o,!1)).catch(o=>{n!=null?i._setAndNotify(n(o),!1):console.error("Unhandled promise rejection in Signal.ofPromise:",o)}),i}static is(e){return e!=null&&e[me]===!0}static wrap(e,r=(n,s)=>n===s){return E.is(e)?e:new E(e,r)}static maybeWrap(e){return e==null?e:E.wrap(e)}static unwrap(e){return E.is(e)?e.get():e}static map(e,r){return E.is(e)?e.map(r):r(e)}get value(){return this._value}};let d=E;const ct=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);var ye,Ae;class M extends(Ae=d,ye=Se,Ae){constructor(r,n){super(void 0,n);a(this,ye,!0);a(this,"_isDirty",!1);a(this,"setDirty",()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(r=>r.setDirty()),this.scheduleNotify())});a(this,"_scheduleCount",0);a(this,"scheduleNotify",()=>{const r=++this._scheduleCount;ct(()=>{this._scheduleCount!==r||this._disposed!==!1||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});a(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._value=this._fn(),this._setAndNotify(this._value,!0)),this._value));this._fn=r,this.setDirty()}static is(r){return r!=null&&r[Se]===!0}get value(){return this.get()}}var Pe,Ee;class I extends(Ee=d,Pe=ge,Ee){constructor(){super(...arguments);a(this,Pe,!0);a(this,"set",r=>{this._setAndNotify(r,!1)});a(this,"update",r=>{this._setAndNotify(r(this.get()),!1)});a(this,"reducer",r=>n=>this.update(s=>r(s,n)));a(this,"iso",(r,n,s=(i,o)=>i===o)=>{const i=new I(r(this.get()),s);return i.onDispose(this.on(o=>i.set(r(o)))),i.on(o=>this._setAndNotify(n(o),!1)),i});a(this,"atProp",r=>this.iso(n=>n[r],n=>({...this.value,[r]:n})))}static is(r){return r!=null&&r[ge]===!0}get value(){return this.get()}set value(r){this._setAndNotify(r,!1)}}function z(t,e,r=(n,s)=>n===s){const n=new M(t,r);return e.forEach(s=>s.setDerivative(n)),n}function ft(t,e){return z(t,e).dispose}function b(t,e=(r,n)=>r===n){return new I(t,e)}function pt(t,e=(r,n)=>r===n){return new d(t,e)}class Q{constructor(){a(this,"_store",new Map);a(this,"getItem",e=>this._store.get(e)??null);a(this,"setItem",(e,r)=>{this._store.set(e,r)})}}function ee({key:t,defaultValue:e,store:r,serialize:n=JSON.stringify,deserialize:s=JSON.parse,equals:i=(u,l)=>u===l,onLoad:o=u=>u}){const u=r.getItem(t),l=new I(u!=null?o(s(u)):typeof e=="function"?e():e,i);return l.on(c=>{r.setItem(t,n(c))}),l}function dt(t){return ee({...t,store:(window==null?void 0:window.localStorage)??new Q})}function ht(t){return ee({...t,store:(window==null?void 0:window.sessionStorage)??new Q})}function we(t){return typeof requestAnimationFrame=="function"?requestAnimationFrame(t):setTimeout(t,0)}function $e(t,e,r,n){const s=(n==null?void 0:n.duration)??300,i=(n==null?void 0:n.easing)??(A=>A),o=(n==null?void 0:n.equals)??((A,F)=>A===F);let u=n==null?void 0:n.interpolate,l=t,c=e(),m=performance.now(),g=null,h=!0;const C=new M(e,o),P=b(t,o);P.onDispose(()=>{g!==null&&cancelAnimationFrame(g)}),P.onDispose(C.dispose),r.forEach(A=>{A.setDerivative(C),A.onDispose(P.dispose)});const U=A=>{c=A,m=performance.now(),l=P.value,h&&(h=!1,g=we(pe))},pe=()=>{const F=(performance.now()-m)/d.unwrap(s),lt=i(F);u==null&&(u=Le(l));let de=u(l,c,lt);F>=1?(h=!0,de=c):g=we(pe),P.set(de)};return C.on(U),P}function mt(t,e){const{initialValue:r,...n}=e??{};return $e(r??t.get(),t.get,[t],n)}function gt(t,e){const{signals:r,literals:n}=Object.entries(t).reduce(({signals:i,literals:o},[u,l])=>(d.is(l)?i.push([u,l]):o[u]=l,{signals:i,literals:o}),{signals:[],literals:{}}),s=r.map(([,i])=>i);return z(()=>(r.forEach(([i,o])=>n[i]=o.value),e(n)),s)}function B(t){let e=t.match(/rgba?\((\d+), (\d+), (\d+)(, (\d+))?\)/);return e!=null?[Number(e[1]),Number(e[2]),Number(e[3]),e[4]!=null?Number(e[5]):1,"rgba"]:(e=t.match(/#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/),e!=null?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),1,"hex"]:(e=t.match(/hsla?\((\d+), (\d+)%?, (\d+)%?(, (\d+))?\)/),e!=null?[Number(e[1]),Number(e[2]),Number(e[3]),e[4]!=null?Number(e[5]):1,"hsla"]:[0,0,0,1,"rgba"]))}function ve(t){const e=/^(inset\s)?(-?\d+)([a-zA-Z]*)(\s+)(-?\d+)([a-zA-Z]*)(?:\s+(-?\d+)([a-zA-Z]*))?(?:\s+(-?\d+)([a-zA-Z]*))?(?:\s+(-?\d+)([a-zA-Z]*))?(?:\s+)([a-zA-Z0-9(),.]+)$/i,r=t.match(e);if(r==null)return{inset:!1,x:0,y:0,blur:0,spread:0,color:"rgba(0, 0, 0, 0)"};const[,n,s,,,i,,o,,u,,l]=r,c=o!=null?parseInt(o,10):0,m=u!=null?parseInt(u,10):0;return{inset:!!n,x:parseInt(s,10),y:parseInt(i,10),blur:c,spread:m,color:l}}function St(t){const{inset:e,x:r,y:n,blur:s,spread:i,color:o}=t;return`${e?"inset ":""}${r}px ${n}px ${s}px ${i}px ${o}`}function Re(t){return t[4]==="rgba"?`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`:t[4]==="hex"?`#${t[0].toString(16).padStart(2,"0")}${t[1].toString(16).padStart(2,"0")}${t[2].toString(16).padStart(2,"0")}`:t[4]==="hsla"?`hsla(${t[0]}, ${t[1]}%, ${t[2]}%, ${t[3]})`:""}function Ie(t,e){const[r,n,s,i,o]=B(t),[u,l,c,m]=B(e);return g=>{const h=r+(u-r)*g,C=n+(l-n)*g,P=s+(c-s)*g,U=i+(m-i)*g;return Re([h,C,P,U,o])}}function wt(t,e){const r=ve(t),n=ve(e);return s=>{const i=r.x+(n.x-r.x)*s,o=r.y+(n.y-r.y)*s,u=r.blur+(n.blur-r.blur)*s,l=r.spread+(n.spread-r.spread)*s,c=Fe(r.color,n.color)(s);return St({inset:r.inset,x:i,y:o,blur:u,spread:l,color:c})}}function Ne(t,e){var r,n,s,i,o,u,l,c;return e==="translateX"?new WebKitCSSMatrix(t.transform).m41:e==="translateY"?new WebKitCSSMatrix(t.transform).m42:e==="translateZ"?new WebKitCSSMatrix(t.transform).m43:e==="rotateX"?new WebKitCSSMatrix(t.transform).m12:e==="rotateY"?new WebKitCSSMatrix(t.transform).m21:e==="rotateZ"?new WebKitCSSMatrix(t.transform).m31:e==="scaleX"?new WebKitCSSMatrix(t.transform).m11:e==="scaleY"?new WebKitCSSMatrix(t.transform).m22:e==="scaleZ"?new WebKitCSSMatrix(t.transform).m33:e==="skewX"?new WebKitCSSMatrix(t.transform).m13:e==="skewY"?new WebKitCSSMatrix(t.transform).m23:Number(e==="grayScale"?(r=t.filter.match(/grayscale\((\d+)%\)/))==null?void 0:r[1]:e==="sepia"?(n=t.filter.match(/sepia\((\d+)%\)/))==null?void 0:n[1]:e==="saturate"?(s=t.filter.match(/saturate\((\d+)%\)/))==null?void 0:s[1]:e==="hueRotate"?(i=t.filter.match(/hue-rotate\((\d+)deg\)/))==null?void 0:i[1]:e==="invert"?(o=t.filter.match(/invert\((\d+)%\)/))==null?void 0:o[1]:e==="brightness"?(u=t.filter.match(/brightness\((\d+)%\)/))==null?void 0:u[1]:e==="contrast"?(l=t.filter.match(/contrast\((\d+)%\)/))==null?void 0:l[1]:e==="blur"?(c=t.filter.match(/blur\((\d+)px\)/))==null?void 0:c[1]:t.getPropertyValue(e))}function vt(t,e){const r={},n=getComputedStyle(t);for(const[s,i]of Object.entries(e)){const o=s;i!=null&&(r[o]=Ne(n,o))}return r}function $(t,e,r){r!=null&&(e==="translateX"?t.style.transform+=` translateX(${r}px)`:e==="translateY"?t.style.transform+=` translateY(${r}px)`:e==="translateZ"?t.style.transform+=` translateZ(${r}px)`:e==="rotateX"?t.style.transform+=` rotateX(${r}deg)`:e==="rotateY"?t.style.transform+=` rotateY(${r}deg)`:e==="rotateZ"?t.style.transform+=` rotateZ(${r}deg)`:e==="scaleX"?t.style.transform+=` scaleX(${r})`:e==="scaleY"?t.style.transform+=` scaleY(${r})`:e==="scaleZ"?t.style.transform+=` scaleZ(${r})`:e==="skewX"?t.style.transform+=` skewX(${r}deg)`:e==="skewY"?t.style.transform+=` skewY(${r}deg)`:e==="grayScale"?t.style.filter+=` grayscale(${r}%)`:e==="sepia"?t.style.filter+=` sepia(${r}%)`:e==="saturate"?t.style.filter+=` saturate(${r}%)`:e==="hueRotate"?t.style.filter+=` hue-rotate(${r}deg)`:e==="invert"?t.style.filter+=` invert(${r}%)`:e==="brightness"?t.style.filter+=` brightness(${r}%)`:e==="contrast"?t.style.filter+=` contrast(${r}%)`:e==="blur"&&(t.style.filter+=` blur(${r}px)`),t.style.setProperty(e,String(r)))}const j=new Map;function Oe(t,e,r){if(j.has(r+":"+t+e))return j.get(t+e);const n=Ie(t,e);return j.set(r+":"+t+e,n),n}function Fe(t,e){return Oe(t,e,"c")}function bt(t,e){return Oe(t,e,"s")}function We(t,e,r,n,s){if(r!=null&&n!=null){if(typeof r=="number"&&typeof n=="number"){const i=r+(n-r)*s;$(t,e,i)}else if(e==="boxShadow"||e==="textShadow"){const i=bt(r,n)(s);$(t,e,i)}else if(e==="color"||e==="backgroundColor"||e==="borderColor"||e==="outlineColor"){const i=Fe(r,n)(s);$(t,e,i)}}}function yt(t,e,r,n){t.style.transform="",t.style.filter="";for(const[s,i]of Object.entries(r)){const o=s;We(t,o,e[o],i,n)}}function At(t,e){t.style.transform="",t.style.filter="";for(const[r,n]of Object.entries(e))n!=null&&$(t,r,n)}const xe=new Set(["checked","disabled","hidden","selected"]),ze=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Ve=new Set(["valueAsDate"]),qe=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),X=new Map;function T(t,e){if(X.has(t))return X.get(t);{const r=e(t);return X.set(t,r),r}}function Ze(t){return(e,r)=>{r==null?e[t]=null:e[t]=!!r}}function He(t){return(e,r)=>{r==null?e[t]=null:e[t]=Number(r)}}function Ue(t){return(e,r)=>{r==null?e[t]=null:e[t]=r}}function je(t){return(e,r)=>{r==null?e[t]=null:e[t]=String(r)}}function Xe(t){return(e,r)=>{r==null?e.removeAttribute(t):e.setAttribute(t,r)}}function te(t){return xe.has(t)?T(t,Ze):ze.has(t)?T(t,He):Ve.has(t)?T(t,Ue):qe.has(t)?T(t,je):T(t,Xe)}function re(t){return e=>xe.has(t)?!!e[t]:ze.has(t)?Number(e[t]):Ve.has(t)?e[t]:qe.has(t)?String(e[t]):e.getAttribute(t)}class v{constructor(e,r,n,s,i){a(this,"createElement",(e,r)=>r!==void 0?this.document.createElementNS(r,e):this.document.createElement(e));a(this,"createText",e=>this.document.createTextNode(e));a(this,"makeRef",()=>{const e=this.createText("");return this.appendOrInsert(e),this.withReference(e)});a(this,"appendOrInsert",e=>{this.reference===void 0?this.element.appendChild(e):this.element.insertBefore(e,this.reference)});a(this,"withDocument",e=>new v(e,this.element,this.reference,this.providers,!1));a(this,"withElement",e=>new v(this.document,e,void 0,this.providers,!1));a(this,"withFirstLevel",()=>new v(this.document,this.element,this.reference,this.providers,!0));a(this,"withReference",e=>new v(this.document,this.element,e,this.providers,this.isFirstLevel));a(this,"withProvider",(e,r)=>new v(this.document,this.element,this.reference,{...this.providers,[e]:r},this.isFirstLevel));a(this,"withProviders",e=>new v(this.document,this.element,this.reference,{...this.providers,...e},this.isFirstLevel));a(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new Error(`Provider not found: ${e.description}`);return this.providers[e]});this.document=e,this.element=r,this.reference=n,this.providers=s,this.isFirstLevel=i}static of(e,r){return new v(e.ownerDocument,e,r,{},!0)}}function y(t){const e=t;e&&e.onblur&&(e.onblur=null),!(!t||t.ownerDocument===void 0)&&t.parentElement&&t.parentElement.removeChild(t)}function Ye(t){return ne(t)?t:t.parentElement}function ne(t){return t.nodeType===1}function Pt(t,e,r){let n=t.target;for(;n!=null&&!(n instanceof HTMLAnchorElement);)n=n.parentElement;if(n==null)return!0;const s=n;if(t.button!==0||t.ctrlKey||t.metaKey||s.target!=="_self"&&s.target!==""||s.getAttribute("download")!=null)return!0;if(r){const{pathname:i,search:o,hash:u}=s,l=i+o+u;if(s.getAttribute("href")!==l||e&&!/\/[^/.]*$/.test(i))return!0}return!1}const Et=(t,e={checkExtension:!0,checkExternalUrl:!0})=>r=>{const{checkExtension:n,checkExternalUrl:s}=e;Pt(r,n===!0,s===!0)||t()&&r.preventDefault()},se=t=>e=>{e.isFirstLevel&&p.isSSR&&e.element.setAttribute("data-tempo-text","");const r=e.createText(t);return e.appendOrInsert(r),n=>{n&&y(r)}},ie=t=>e=>{e.isFirstLevel&&p.isSSR&&e.element.setAttribute("data-tempo-text","");const r=e.createText(t.value);e.appendOrInsert(r);const n=t.on(s=>r.data=s);return s=>{n(),s&&y(r)}};function Dt(t){return d.is(t)?ie(t):se(t)}const S=(...t)=>e=>{const r=t.map(n=>f(n)(e));return n=>{r.forEach(s=>s(n))}},w=()=>()=>{},Y="data-tempo-attrs";function V(t,e){const r=t.getAttribute(Y);r===null?t.setAttribute(Y,e):t.setAttribute(Y,`${r} ${e}`)}const Ct=t=>e=>(console.log("className.static",e.isFirstLevel,p.isSSR),e.isFirstLevel&&p.isSSR&&V(e.element,"class"),e.element.classList.add(...t),r=>{r&&e.element.classList.remove(...t)}),Mt=t=>e=>{console.log("className.signal",e.isFirstLevel,p.isSSR),e.isFirstLevel&&p.isSSR&&V(e.element,"class");const r=e.element;let n=[];const s=t.on(i=>{n.forEach(o=>r.classList.remove(o)),n=(i??"").split(" ").filter(o=>o.length>0),r.classList.add(...n)});return i=>{s(),i&&n.forEach(o=>r.classList.remove(o)),n.length=0}},q=(t,e)=>{const r=te(t),n=re(t);return s=>{console.log("attribute.static",t,s.isFirstLevel,p.isSSR),s.isFirstLevel&&p.isSSR&&V(s.element,t);const i=n(s.element);return r(s.element,e),o=>{o&&r(s.element,i)}}},Z=(t,e)=>{const r=te(t),n=re(t);return s=>{console.log("attribute.signal",t,s.isFirstLevel,p.isSSR),s.isFirstLevel&&p.isSSR&&V(s.element,t);const i=n(s.element);return e.on(o=>r(s.element,o)),o=>{o&&r(s.element,i)}}},D=new Proxy({},{get:(t,e)=>e==="class"?r=>d.is(r)?Mt(r):Ct((r??"").split(" ").filter(n=>n.length>0)):r=>d.is(r)?Z(e,r):q(e,r)}),_t=new Proxy({},{get:(t,e)=>r=>d.is(r)?Z(`aria-${e}`,r):q(`aria-${e}`,r)}),Lt=new Proxy({},{get:(t,e)=>r=>d.is(r)?Z(e,r):q(e,r)}),Tt=new Proxy({},{get:(t,e)=>r=>d.is(r)?Z(e,r):q(e,r)});function f(t){return t==null?w:Array.isArray(t)?S(...t.map(f)):typeof t=="string"?se(t):d.is(t)?ie(t):t}function oe(t,...e){return r=>{const n=r.createElement(t,void 0);r.appendOrInsert(n),console.log("ctx.isFirstLevel",r.isFirstLevel,"ssr.isSSR",p.isSSR),r.isFirstLevel&&p.isSSR&&n.setAttribute("data-tempo-node",""),r=r.withElement(n);const s=e.map(i=>f(i)(r));return i=>{s.forEach(o=>o(!1)),i&&y(n)}}}function le(t,e,...r){return n=>{const s=n.createElement(t,e);n.appendOrInsert(s),n.isFirstLevel&&p.isSSR&&s.setAttribute("data-tempo-node",""),n=n.withElement(s);const i=r.map(o=>f(o)(n));return o=>{i.forEach(u=>u(!1)),o&&y(s)}}}const $t=new Proxy({},{get:(t,e)=>(...r)=>oe(e,r.flatMap(f))}),Rt=new Proxy({},{get:(t,e)=>(...r)=>oe("input",D.type(e),...r)}),It="http://www.w3.org/2000/svg",Nt=new Proxy({},{get:(t,e)=>(...r)=>le(e,It,r.flatMap(f))}),Ot="http://www.w3.org/1998/Math/MathML",Ft=new Proxy({},{get:(t,e)=>(...r)=>le(e,Ot,r.flatMap(f))});let k=!1;function Ke(t){t.querySelectorAll("[data-tempo-attrs]").forEach(e=>{const r=e.getAttribute("data-tempo-attrs");r!==null&&(r.split(" ").forEach(n=>{e.removeAttribute(n)}),e.removeAttribute("data-tempo-attrs"))}),t.querySelectorAll("[data-tempo-node]").forEach(e=>{var r;(r=e.parentElement)==null||r.removeChild(e),e.removeAttribute("data-tempo-node")}),t.querySelectorAll("[data-tempo-text]").forEach(e=>{e.textContent="",e.removeAttribute("data-tempo-text")}),t.querySelectorAll("[data-tempo-styles]").forEach(e=>{const r=e.getAttribute("data-tempo-styles");r!==null&&(r.split(" ").forEach(n=>{e==null||e.style.removeProperty(n)}),e.removeAttribute("data-tempo-styles"))})}let G=0;const Wt=(t=30)=>(k=!0,new Promise((e,r)=>{let n;const s=setInterval(()=>{G<=0&&(clearInterval(s),clearTimeout(n),k=!1,e())},10);n=setTimeout(()=>{clearInterval(s),r(new Error("SSR Timeout"))},t*1e3)})),p={useDone(t){return G++,f(t(()=>G--))},get isSSR(){return k}},Be=(t,e)=>r=>{const n=Object.values(t).reduce((s,i)=>{const o=r.getProvider(i);if(o==null)throw new Error(`No provider found for mark: ${i.description}`);return s[i]=o,s},{});return f(e(n))(r)},xt=(t,e)=>r=>{const n=[],s=Object.entries(t).reduce((i,[o,u])=>(n.push(u(l=>(Reflect.set(i,o,l),null))(r)),i),{});return n.push(e(s)(r)),i=>{n.forEach(o=>o(i))}},ke=(t,e)=>Be([t],r=>f(e(r[t]))),zt=(t,e)=>Be(t,r=>f(e(r))),_=t=>e=>r=>t(r,e);function Ge(t){return Symbol(t)}const Je=(t,e)=>r=>f(e)(r.withProviders(t)),Vt=(...t)=>t.length>0?t.reduceRight((e,r)=>n=>e(r(n))):f,Qe=(t,e,r)=>Je({[t]:e},f(r)),qt=(t,e)=>Je(t,f(e)),J=Ge("Appearance"),Zt={provide:t=>{const e=window.matchMedia!=null&&window.matchMedia("(prefers-color-scheme: dark)").matches,r=b(e?"dark":"light"),n=i=>{r.set(i.matches?"dark":"light")},s=window.matchMedia!=null?window.matchMedia("(prefers-color-scheme: dark)"):void 0;return s==null||s.addEventListener("change",n),S(Qe(J,r,t),_(()=>s==null?void 0:s.removeEventListener("change",n)))},consume:t=>ke(J,t)},ae=(t,e)=>{if(typeof e=="function")return ae(t,{then:e});const r=e.pending!=null?f(e.pending):w,n=e.then,s=e.error!=null?i=>f(e.error(i)):()=>w;return i=>{let o=!0;const u=t();i=i.makeRef();let l=f(r)(i);return u.then(c=>{o&&(l(!0),l=f(n(c))(i))},c=>{o&&(l(!0),l=f(s(c))(i))}),c=>{o=!1,l(c),c&&i.reference&&y(i.reference)}}},Ht=(t,e)=>ae(()=>t,e),Ut=(t=10)=>e=>{const r=setTimeout(()=>{var n;(n=e.element)==null||n.focus()},t);return n=>clearTimeout(r)},jt=(t=10)=>e=>{const r=setTimeout(()=>{var n;(n=e.element)==null||n.select()},t);return n=>{clearTimeout(r)}},et=(t,e)=>r=>(r.element.addEventListener(t,e),n=>{n&&r.element.removeEventListener(t,e)}),tt=t=>et("click",e=>{e.preventDefault();const r=e.target;setTimeout(()=>{const n=r.ownerDocument!=null?r==null?void 0:r.checked:void 0;n!=null&&t(!n)},0)}),N=new Proxy({},{get:(t,e)=>r=>et(e,r)}),O={value:t=>e=>{const r=e.target;t(r.value)},valueAsNumber:t=>e=>{const r=e.target;t(r.valueAsNumber)},valueAsDate:t=>e=>{const r=e.target;if(r.value==="")return;const n=r.value.split("-"),s=new Date(Number(n[0]),Number(n[1])-1,Number(n[2].substring(0,2)));t(s)},valueAsDateTime:t=>e=>{const r=e.target;if(r.value==="")return;const n=r.value.split("T"),s=n[0].split("-"),i=new Date(Number(s[0]),Number(s[1])-1,Number(s[2])),o=n[1].split(":");i.setHours(Number(o[0])),i.setMinutes(Number(o[1])),i.setSeconds(Number(o[2])),t(i)},checked:t=>e=>{const r=e.target;t(r.checked)},preventDefault:t=>e=>{e.preventDefault(),t()},stopPropagation:t=>e=>{e.stopPropagation(),t()},stopImmediatePropagation:t=>e=>{e.stopImmediatePropagation(),t()}};function Xt(t,e="input"){return S(D.valueAsDate(t),N[e](O.valueAsDate(t.set)))}function Yt(t,e="input"){return S(D.valueAsDate(t),N[e](O.valueAsDateTime(t.set)))}function Kt(t,e="input"){return S(D.valueAsNumber(t),N[e](O.valueAsNumber(t.set)))}function Bt(t,e="input"){return S(D.value(t),N[e](O.value(t.set)))}function kt(t){return S(D.checked(t),tt(t.set))}const Gt={date:Xt,dateTime:Yt,number:Kt,text:Bt,checked:kt},W=(t,e)=>r=>{r=r.makeRef();let n,s;const i=t.map(l=>Object.keys(l)[0]);let o;const u=i.on(l=>{if(l!==o){s==null||s.dispose(),n==null||n(!0),s=t.map(m=>m[l]);const c=e[l](s);n=f(c)(r),o=l}});return l=>{u(),l&&r.reference!=null&&y(r.reference),n==null||n(!0)}},L={bool:(t,e)=>W(t.map(r=>r?{true:!0}:{false:!0}),e),field:(t,e,r)=>W(t.map(n=>({[n[e]]:n})),r),kind:(t,e)=>L.field(t,"kind",e),tuple:(t,e)=>{const r=t.map(([n,s])=>({[n]:s}));return W(r,e)},type:(t,e)=>L.field(t,"type",e),value:(t,e)=>W(t.map(r=>({[r]:!0})),e)},Jt=(t,e)=>r=>{const n=(e==null?void 0:e.firstSeparator)??w,s=(e==null?void 0:e.lastSeparator)??w;return L.value(r.map(i=>i.isFirst?"first":i.isLast?"last":"other"),{first:()=>n,last:()=>s,other:()=>t})},Qt=t=>e=>t(e)(e),er=t=>e=>(e.appendOrInsert(t),r=>{r&&y(t)}),rt=(t,e,r)=>n=>{n=n.makeRef();let s=null,i=!1;const o=b(null),u=t.on(l=>{l==null?(s==null||s(!0),s=f((r==null?void 0:r())??w)(n),i=!1):(o.value=l,i||(s==null||s(!0),s=f(e(o))(n),i=!0))});return l=>{u(),s==null||s(l),l&&n.reference&&y(n.reference)}},ue=(t,e,r)=>r!=null?ue(t,n=>{const s=n.map(i=>i.isLast?"last":"other");return S(_(()=>s.dispose()),f(e(n)),L.value(s,{last:()=>w,other:()=>r(n)}))}):n=>{n=n.makeRef();const s=t.map(l=>Array.from({length:l},(c,m)=>m).map(c=>new Te(c,l))),i=[],o=[],u=s.on(l=>{var m,g;const c=l.length;for(;c<i.length;)(m=i.pop())==null||m(!0),(g=o.pop())==null||g.dispose();for(let h=0;h<c;h++)if(o[h]==null){o[h]=b(l[h]);const C=f(e(o[h]));i[h]=C(n)}else o[h].value=l[h]});return l=>{u(),l&&n.reference&&y(n.reference)}},nt=(t,e,r)=>r!=null?nt(t,(n,s)=>{const i=s.map(o=>o.isLast?"last":"other");return S([_(()=>i.dispose()),f(e(n,s)),L.value(i,{last:()=>w,other:()=>r(s)})])}):n=>{const s=t.map(i=>i.length);return ue(s,i=>{const o=z(()=>t.value[i.value.index],[i,t]);return S(_(()=>o.dispose()),f(e(o,i)))})(n)},tr=t=>{const e=t.element,r=e.style.getPropertyValue(":empty");return e.style.setProperty(":empty","display:none"),n=>{n&&e.style.setProperty(":empty",r)}};function ce(t,e){const r=t(e);return()=>r(!0)}function rr(t,e,{doc:r,clear:n}={}){const s=typeof e=="string"?(r??document).querySelector(e):e;if(s===null)throw new Error(`Cannot find element by selector for render: ${e}`);n&&(r??s.ownerDocument)!=null&&Ke(r??s.ownerDocument);const i=Ye(s),o=ne(s)?void 0:s,u=v.of(i,o);return console.log("DOMContext.isFirstLevel",u.isFirstLevel),ce(t,u)}const st=(t,e)=>r=>{const n=r.document.querySelector(t);if(n===null)throw new Error(`Cannot find element by selector for portal: ${t}`);return ce(f(e),r.withElement(n).withFirstLevel())},nr=t=>st("head title",D.innerText(t)),it=t=>e=>t(e.element)??(()=>{}),H=(t,e,r)=>rt(t.map(n=>n?!0:null),()=>e,r!=null?()=>r:void 0),sr=(t,e,r)=>H(t.map(n=>!n),e,r),ir={partial:{root:null,rootMargin:"0px",threshold:0},full:{root:null,rootMargin:"0px",threshold:1}},x={partial:new Map,full:new Map},R={partial:null,full:null};function or(t){return R[t]==null&&(R[t]=new IntersectionObserver(e=>{e.forEach(r=>{const n=x[t].get(r.target);n==null||n.set(r.isIntersecting)})},ir[t])),R[t]}function ot(t,e){const r=b(p.isSSR);return S(it(n=>{const s=typeof IntersectionObserver<"u"?or(t):null;return x[t].set(n,r),s==null||s.observe(n),()=>{var i;s==null||s.unobserve(n),x[t].delete(n),x[t].size===0&&((i=R[t])==null||i.disconnect(),R[t]=null)}}),_(r.dispose),f(e(r)))}const lr=(t,e,r)=>ot(t,n=>H(n,e,r??w)),ar=(t,e)=>r=>{r=r.makeRef();const n=t.map(o=>f(e(o)));let s=()=>{};const i=n.on(o=>{s(!0),s=o(r)});return o=>{i(),s(o)}};function ur(t,e,r=w){return H(t.map(n=>n.length>0),e,r)}const cr=t=>e=>{const r=e.element,n=b({width:r.clientWidth,height:r.clientHeight}),s=f(t(n))(e),i=()=>{n.set({width:r.clientWidth,height:r.clientHeight})};let o;return typeof ResizeObserver=="function"&&(o=new ResizeObserver(i),o.observe(r)),u=>{o==null||o.disconnect(),s(u)}},fr=t=>e=>{const r=b({width:(window==null?void 0:window.innerWidth)??0,height:(window==null?void 0:window.innerHeight)??0}),n=f(t(r))(e),s=()=>{r.set({width:(window==null?void 0:window.innerWidth)??0,height:(window==null?void 0:window.innerHeight)??0})};return window==null||window.addEventListener("resize",s),i=>{window==null||window.removeEventListener("resize",s),n(i)}},pr={element:cr,window:fr},K="data-tempo-styles";function fe(t,e){const r=t.getAttribute(K);r===null?t.setAttribute(K,e):t.setAttribute(K,`${r} ${e}`)}const dr=(t,e)=>r=>{r.isFirstLevel&&p.isSSR&&fe(r.element,t);const n=r.element,s=n.style.getPropertyValue(t);return n.style.setProperty(t,e),i=>{i&&n.style.setProperty(t,s)}},hr=(t,e)=>r=>{r.isFirstLevel&&p.isSSR&&fe(r.element,t);const n=r.element,s=n.style.getPropertyValue(t);return e.on(i=>n.style.setProperty(t,i)),i=>{i&&n.style.setProperty(t,s)}},mr=new Proxy({},{get:(t,e)=>r=>d.is(r)?hr(e,r):dr(e,r)});exports.Async=Ht;exports.AutoFocus=Ut;exports.AutoSelect=jt;exports.Computed=M;exports.Conjunction=Jt;exports.Ctx=Qt;exports.DOMContext=v;exports.DOMEl=er;exports.El=oe;exports.ElNS=le;exports.Empty=w;exports.Ensure=rt;exports.ForEach=nt;exports.Fragment=S;exports.HTMLTitle=nr;exports.HiddenWhenEmpty=tr;exports.InViewport=ot;exports.MapSignal=ar;exports.MemoryStore=Q;exports.NotEmpty=ur;exports.OnChecked=tt;exports.OnDispose=_;exports.OnMount=it;exports.Portal=st;exports.Position=Te;exports.Prop=I;exports.Provide=Vt;exports.Repeat=ue;exports.Signal=d;exports.Task=ae;exports.Text=Dt;exports.Unless=sr;exports.Use=xt;exports.UseProvider=ke;exports.UseProviders=zt;exports.When=H;exports.WhenInViewport=lr;exports.WithProvider=Qe;exports.WithProviders=qt;exports.addStyleTracker=fe;exports.animate=$e;exports.animateOne=mt;exports.appearance=Zt;exports.appearanceMarker=J;exports.applyAnimatable=At;exports.applyAnimatableProp=$;exports.applyInterpolatedAnimatable=yt;exports.applyInterpolatedAnimatableProp=We;exports.aria=_t;exports.attr=D;exports.bind=Gt;exports.childToMountable=f;exports.clearSSR=Ke;exports.colorChannelsToString=Re;exports.computed=z;exports.computedRecord=gt;exports.dateInterpolate=Me;exports.effect=ft;exports.emit=O;exports.endInterpolate=_e;exports.getComputedAnimatable=vt;exports.getComputedAnimatableProp=Ne;exports.getSelfOrParentElement=Ye;exports.guessInterpolate=Le;exports.handleAnchorClick=Et;exports.html=$t;exports.input=Rt;exports.interpolateColor=Ie;exports.interpolateShadow=wt;exports.isElement=ne;exports.makeGetter=re;exports.makeProviderMark=Ge;exports.makeSetter=te;exports.math=Ft;exports.mathAttr=Tt;exports.numberInterpolate=De;exports.on=N;exports.oneof=L;exports.parseColorChannels=B;exports.prop=b;exports.propOfLocalStorage=dt;exports.propOfSessionStorage=ht;exports.propOfStorage=ee;exports.removeDOMNode=y;exports.render=rr;exports.renderWithContext=ce;exports.setAttribute=Xe;exports.setBooleanProperty=Ze;exports.setDateProperty=Ue;exports.setNumberProperty=He;exports.setStringProperty=je;exports.signal=pt;exports.signalText=ie;exports.size=pr;exports.ssr=p;exports.startSSR=Wt;exports.staticText=se;exports.stringInterpolate=Ce;exports.style=mr;exports.svg=Nt;exports.svgAttr=Lt;
|
package/index.d.ts
CHANGED
|
@@ -1,34 +1,52 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
34
|
-
export
|
|
1
|
+
export type * from './types/aria-attributes';
|
|
2
|
+
export type * from './types/css-styles';
|
|
3
|
+
export type * from './types/domain';
|
|
4
|
+
export type * from './types/html-attributes';
|
|
5
|
+
export type * from './types/html-events';
|
|
6
|
+
export type * from './types/html-tags';
|
|
7
|
+
export type * from './types/mathml-attributes';
|
|
8
|
+
export type * from './types/mathml-tags';
|
|
9
|
+
export type * from './types/svg-attributes';
|
|
10
|
+
export type * from './types/svg-tags';
|
|
11
|
+
export * from './std/interpolate';
|
|
12
|
+
export * from './std/position';
|
|
13
|
+
export * from './std/signal';
|
|
14
|
+
export * from './dom/animatable';
|
|
15
|
+
export * from './dom/attr';
|
|
16
|
+
export * from './dom/dom-context';
|
|
17
|
+
export * from './dom/dom-utils';
|
|
18
|
+
export * from './dom/handle-anchor-click';
|
|
19
|
+
export * from './dom/ssr';
|
|
20
|
+
export * from './mountable/appearance';
|
|
21
|
+
export * from './mountable/async';
|
|
22
|
+
export * from './mountable/attribute';
|
|
23
|
+
export * from './mountable/autofocus';
|
|
24
|
+
export * from './mountable/autoselect';
|
|
25
|
+
export * from './mountable/bind';
|
|
26
|
+
export * from './mountable/conjunction';
|
|
27
|
+
export * from './mountable/consumers';
|
|
28
|
+
export * from './mountable/ctx';
|
|
29
|
+
export * from './mountable/domel';
|
|
30
|
+
export * from './mountable/element';
|
|
31
|
+
export * from './mountable/empty';
|
|
32
|
+
export * from './mountable/ensure';
|
|
33
|
+
export * from './mountable/foreach';
|
|
34
|
+
export * from './mountable/fragment';
|
|
35
|
+
export * from './mountable/handler';
|
|
36
|
+
export * from './mountable/hidden-when-empty';
|
|
37
|
+
export * from './mountable/html-title';
|
|
38
|
+
export * from './mountable/inviewport';
|
|
39
|
+
export * from './mountable/map-signal';
|
|
40
|
+
export * from './mountable/not-empty';
|
|
41
|
+
export * from './mountable/ondispose';
|
|
42
|
+
export * from './mountable/oneof';
|
|
43
|
+
export * from './mountable/onmount';
|
|
44
|
+
export * from './mountable/portal';
|
|
45
|
+
export * from './mountable/providers';
|
|
46
|
+
export * from './mountable/render';
|
|
47
|
+
export * from './mountable/repeat';
|
|
48
|
+
export * from './mountable/size';
|
|
49
|
+
export * from './mountable/style';
|
|
50
|
+
export * from './mountable/task';
|
|
51
|
+
export * from './mountable/text';
|
|
52
|
+
export * from './mountable/when';
|