nine-9 1.9.0 → 1.11.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/dist/index.d.ts CHANGED
@@ -17,19 +17,9 @@ type KebabToCamel<S extends string> = S extends `${infer First}-${infer Rest}` ?
17
17
  type ObjectToEntryUnion<T> = {
18
18
  [K in keyof T]: [K, T[K]];
19
19
  }[keyof T];
20
+ type PutIntoIterable<T> = T extends unknown[] ? T : [T];
20
21
  declare function defineTemplate<T = void>(): T;
21
22
 
22
- type Wrapper<T> = {
23
- get(): T;
24
- set(newData: T): void;
25
- updateOnly(): void;
26
- event: EventSubcriber<[T, T]>;
27
- };
28
- declare function normalizeWrap<T>(data: T | Wrapper<T>): Wrapper<T>;
29
- declare function wrap<T>(initialData: T, wrapperOptions?: Partial<Wrapper<T>>): Wrapper<T>;
30
- declare function sync<R>(effectRenderer: () => R, dependencies?: unknown[]): Wrapper<R>;
31
- declare function when(condition: Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[]): Wrapper<SourceTree[]>;
32
-
33
23
  type StyleSet = {
34
24
  [K in keyof CSSStyleDeclaration]: (data: string) => StyleSet;
35
25
  } & {
@@ -41,15 +31,18 @@ type StyleSet = {
41
31
  };
42
32
  declare function styleSet(selector?: string): StyleSet;
43
33
 
44
- type VueEventAttributes = keyof Events;
45
- type HTMLEventName<V extends string> = V extends `on${infer R extends string}` ? Uncapitalize<R> : never;
46
- type SupportedHTMLElements = keyof HTMLElementTagNameMap & keyof IntrinsicElementAttributes;
47
- type SupportedHTMLRawAttributes = {
48
- [K in SupportedHTMLElements]: Omit<IntrinsicElementAttributes[K], VueEventAttributes>;
49
- };
50
- type SupportedEventHandlerMap = {
51
- [K in VueEventAttributes as HTMLEventName<K>]: (event: Events[K]) => void;
34
+ type Wrapper<T> = {
35
+ get(): T;
36
+ set(newData: T): void;
37
+ updateOnly(): void;
38
+ event: EventSubcriber<[T, T]>;
52
39
  };
40
+ declare function normalizeWrap<T>(data: T | Wrapper<T>): Wrapper<T>;
41
+ declare function wrap<T>(initialState: T, wrapperOptions?: Partial<Wrapper<T>>): Wrapper<T>;
42
+
43
+ declare function sync<R>(effectRenderer: () => R, dependencies?: unknown[]): Wrapper<R>;
44
+
45
+ declare function when(condition: Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[]): Wrapper<SourceTree[]>;
53
46
 
54
47
  interface HostTreeHooks {
55
48
  treeUpdated: [newTrees: HostTree[], oldTrees: HostTree[]];
@@ -72,14 +65,27 @@ type HostTree<E extends SupportedHTMLElements = SupportedHTMLElements, T = HTMLE
72
65
  };
73
66
  declare function tree<E extends SupportedHTMLElements>(data: E | Node): HostTree<E, HTMLElementTagNameMap[E], SupportedHTMLRawAttributes[E]>;
74
67
 
68
+ type VueEventAttributes = keyof Events;
69
+ type HTMLEventName<V extends string> = V extends `on${infer R extends string}` ? Uncapitalize<R> : never;
70
+ type SupportedHTMLElements = keyof HTMLElementTagNameMap & keyof IntrinsicElementAttributes;
71
+ type SupportedHTMLRawAttributes = {
72
+ [K in SupportedHTMLElements]: Omit<IntrinsicElementAttributes[K], VueEventAttributes>;
73
+ };
74
+ type SupportedEventHandlerMap = {
75
+ [K in VueEventAttributes as HTMLEventName<K>]: (event: Events[K]) => void;
76
+ };
77
+
75
78
  declare function camelToHyphen<T extends string>(str: T): T;
76
79
  declare function hyphenToCamel<T extends string>(str: T): T;
77
80
 
78
81
  declare function typedIsArray<T>(arr: unknown[]): arr is T[];
79
- declare function putIntoArray<T>(data: T): T extends (infer R)[] ? R[] : [T];
82
+ declare function putIntoArray<T>(data: T): PutIntoIterable<T>;
80
83
  declare function createArray<T>(length: number, filler: () => T): T[];
81
84
 
82
- interface ComponentPropertyDescriptor<I = unknown, O = unknown, R extends boolean = boolean> {
85
+ interface PropertyTransformer<I, O> {
86
+ (data: I): O;
87
+ }
88
+ interface PropertyDescriptor<I = unknown, O = unknown, R extends boolean = boolean> {
83
89
  validate?: (data: I) => boolean;
84
90
  transform: PropertyTransformer<I, O>;
85
91
  shadow?: O;
@@ -87,18 +93,18 @@ interface ComponentPropertyDescriptor<I = unknown, O = unknown, R extends boolea
87
93
  downloadable?: boolean;
88
94
  uploadable?: boolean;
89
95
  }
90
- type ComponentPropertyInputDict<P extends ComponentPropertyStore> = {
91
- [K in keyof P as P[K]["required"] extends true ? K : never]: P[K] extends ComponentPropertyDescriptor<unknown, infer R> ? R | Wrapper<R> : never;
96
+ type PropertyInputDict<P extends ComponentPropertyStore> = {
97
+ [K in keyof P as P[K]["required"] extends true ? K : never]: P[K] extends PropertyDescriptor<unknown, infer R> ? R | Wrapper<R> : never;
92
98
  } & {
93
- [K in keyof P as P[K]["required"] extends false | unknown ? K : never]?: P[K] extends ComponentPropertyDescriptor<unknown, infer R> ? R | Wrapper<R> | EmptyValue : never;
99
+ [K in keyof P as P[K]["required"] extends false | unknown ? K : never]?: P[K] extends PropertyDescriptor<unknown, infer R> ? R | Wrapper<R> | EmptyValue : never;
94
100
  };
95
- type ComponentPropertyOutputDict<P extends ComponentPropertyStore> = {
96
- [K in keyof P]: P[K] extends ComponentPropertyDescriptor<unknown, infer R> ? Wrapper<R> : never;
101
+ type PropertyOutputDict<P extends ComponentPropertyStore> = {
102
+ [K in keyof P]: P[K] extends PropertyDescriptor<unknown, infer R> ? Wrapper<R> : never;
97
103
  };
98
- declare function rawProperty<T>(): PropertyTransformer<unknown, T>;
99
- declare function normalizePropertyDescriptor<I, O, R extends boolean>(descriptor: ComponentPropertyDescriptor<I, O, R>): Required<ComponentPropertyDescriptor<I, O, R>>;
104
+ declare function typed<T>(): PropertyTransformer<unknown, T>;
105
+ declare function normalizePropertyDescriptor<I, O, R extends boolean>(descriptor: PropertyDescriptor<I, O, R>): Required<PropertyDescriptor<I, O, R>>;
100
106
  declare function validateStore(store: ComponentPropertyStore): void;
101
- declare function hostdown<T extends ComponentPropertyStore>(upstream?: ComponentPropertyInputDict<T>, store?: T): ComponentPropertyOutputDict<T>;
107
+ declare function hostdown<T extends ComponentPropertyStore>(upstream?: PropertyInputDict<T>, store?: T): PropertyOutputDict<T>;
102
108
 
103
109
  type SlotDescriptor<T = unknown, N extends string = string, R extends boolean = boolean> = {
104
110
  name: N;
@@ -110,14 +116,14 @@ interface SlotOptions<T, R extends boolean> {
110
116
  }
111
117
  type SlotInput<T> = (data: Wrapper<T>) => SourceTree | Wrapper<SourceTree>;
112
118
  type SlotOutput<T> = (data: T | Wrapper<T>) => Wrapper<SourceTree>;
113
- type ComponentSlotInputDict<T extends ComponentSlotStore> = {
119
+ type SlotInputDict<T extends ComponentSlotStore> = {
114
120
  [K in T[number] as K["name"]]?: SlotInput<K["template"]>;
115
121
  };
116
- type ComponentSlotOutputDict<T extends ComponentSlotStore> = {
122
+ type SlotOutputDict<T extends ComponentSlotStore> = {
117
123
  [K in T[number] as K["name"]]-?: SlotOutput<K["template"]>;
118
124
  };
119
- declare function extractInput<T>(render: SlotInput<T>): SlotOutput<T>;
120
- declare function renderSlots<T extends ComponentSlotStore>(rawInput?: ComponentSlotInputDict<T>, store?: T): ComponentSlotOutputDict<T>;
125
+ declare function normalizeRenderer<T>(render: SlotInput<T>): SlotOutput<T>;
126
+ declare function renderSlots<T extends ComponentSlotStore>(rawInput?: SlotInputDict<T>, store?: T): SlotOutputDict<T>;
121
127
  declare function defineSlot<N extends string, R extends boolean, T>(name: N, options: SlotOptions<T, R>): {
122
128
  template: T;
123
129
  required?: R | undefined;
@@ -135,16 +141,13 @@ interface EventOptions<T> {
135
141
  declare function defineEvent<T, N extends string>(name: N, options?: EventOptions<T>): EventDescriptor<T, N>;
136
142
 
137
143
  interface ComponentRenderEntry<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
138
- (props?: ComponentPropertyInputDict<P>, slot?: ComponentSlotInputDict<S>): ComponentInstance<E>;
144
+ (props?: PropertyInputDict<P>, slot?: SlotInputDict<S>): ComponentInstance<E>;
139
145
  }
140
146
  interface ComponentInternalRender<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
141
- (options: ComponentPropertyOutputDict<P>, slot: ComponentSlotOutputDict<S>, emit: <D extends E[number], K extends D["name"]>(key: K, data: D extends infer R extends EventDescriptor ? R["name"] extends K ? R["template"] : never : never) => void): SourceTree;
147
+ (options: PropertyOutputDict<P>, slot: SlotOutputDict<S>, emit: <D extends E[number], K extends D["name"]>(key: K, data: D extends infer R extends EventDescriptor ? R["name"] extends K ? R["template"] : never : never) => void): SourceTree;
142
148
  }
143
149
  type Component<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> = ComponentRenderEntry<P, E, S> & ComponentOption<P, E, S>;
144
- interface PropertyTransformer<I, O> {
145
- (data: I): O;
146
- }
147
- type ComponentPropertyStore = Record<string, ComponentPropertyDescriptor>;
150
+ type ComponentPropertyStore = Record<string, PropertyDescriptor>;
148
151
  type ComponentEventStore = EventDescriptor[];
149
152
  type ComponentSlotStore = SlotDescriptor[];
150
153
  interface ComponentOption<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
@@ -193,13 +196,7 @@ declare const _default: {
193
196
  downloadable: true;
194
197
  uploadable: true;
195
198
  };
196
- }, (EventDescriptor<{
197
- arg1: number;
198
- arg2: boolean;
199
- }, "up"> | EventDescriptor<{
200
- arg3: string;
201
- arg4: symbol;
202
- }, "down">)[]>;
199
+ }, (EventDescriptor<string, "up"> | EventDescriptor<number, "down">)[], SlotDescriptor[]>;
203
200
  Selector: Component<{
204
201
  items: {
205
202
  transform: PropertyTransformer<unknown, string[]>;
@@ -210,7 +207,13 @@ declare const _default: {
210
207
  uploadable: true;
211
208
  required: true;
212
209
  };
213
- }, (EventDescriptor<number, "select"> | EventDescriptor<boolean, "toggleState">)[]>;
210
+ }, (EventDescriptor<number, "select"> | EventDescriptor<boolean, "toggleState">)[], {
211
+ template: string;
212
+ required?: boolean | undefined;
213
+ defaultValue?: SourceTree;
214
+ name: "title";
215
+ }[]>;
216
+ ObjectWatcher: Component<ComponentPropertyStore, EventDescriptor[], SlotDescriptor[]>;
214
217
  };
215
218
 
216
- export { $, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type ComponentPropertyDescriptor, type ComponentPropertyInputDict, type ComponentPropertyOutputDict, type ComponentPropertyStore, type ComponentRenderEntry, type ComponentSlotInputDict, type ComponentSlotOutputDict, type ComponentSlotStore, type EmptyValue, type EventDescriptor, type EventOptions, EventSubcriber, type HostTree, type HostTreeHookStore, type HostTreeHooks, type KebabToCamel, type Normalize, type ObjectToEntryUnion, type PropertyTransformer, type RawSourceTree, type SlotDescriptor, type SlotInput, type SlotOptions, type SlotOutput, type SourceTree, type StyleSet, type Valueof, type Wrapper, index as assets, attachUUID, camelToHyphen, createArray, createComponent, defineEvent, defineSlot, defineTemplate, _default as examples, extractInput, flagment, hostdown, hyphenToCamel, normalizePropertyDescriptor, normalizeWrap, putIntoArray, rawProperty, render, renderSlots, styleSet, sync, tree, typedIsArray, validateStore, when, wrap };
219
+ export { $, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type ComponentPropertyStore, type ComponentRenderEntry, type ComponentSlotStore, type EmptyValue, type EventDescriptor, type EventOptions, EventSubcriber, type HostTree, type HostTreeHookStore, type HostTreeHooks, type KebabToCamel, type Normalize, type ObjectToEntryUnion, type PropertyDescriptor, type PropertyInputDict, type PropertyOutputDict, type PropertyTransformer, type PutIntoIterable, type RawSourceTree, type SlotDescriptor, type SlotInput, type SlotInputDict, type SlotOptions, type SlotOutput, type SlotOutputDict, type SourceTree, type StyleSet, type SupportedEventHandlerMap, type SupportedHTMLElements, type SupportedHTMLRawAttributes, type Valueof, type Wrapper, index as assets, attachUUID, camelToHyphen, createArray, createComponent, defineEvent, defineSlot, defineTemplate, _default as examples, flagment, hostdown, hyphenToCamel, normalizePropertyDescriptor, normalizeRenderer, normalizeWrap, putIntoArray, render, renderSlots, styleSet, sync, tree, typed, typedIsArray, validateStore, when, wrap };