@jackens/nnn 2026.9.1 → 2026.9.3
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/nnn.d.ts +209 -366
- package/nnn.js +10 -31
- package/package.json +1 -11
- package/readme.md +562 -527
package/nnn.d.ts
CHANGED
|
@@ -1,78 +1,101 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
2
|
+
* Represents a CSS rule node for the {@link c} helper. Keys
|
|
3
|
+
* are CSS properties or nested selectors.
|
|
4
|
+
*/
|
|
5
|
+
export type CNode = {
|
|
6
|
+
[attributeOrSelector: string]: string | number | CNode | undefined;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* A minimal CSS-in-JS helper that converts a JavaScript
|
|
10
|
+
* object hierarchy into a CSS string.
|
|
11
|
+
*
|
|
12
|
+
* @param node An object describing CSS rules. Keys are
|
|
13
|
+
* selectors or at-rules; values are either CSS property
|
|
14
|
+
* values or nested rule objects. A selector key may
|
|
15
|
+
* contain comma-separated alternatives (e.g. `'.b,.c'`);
|
|
16
|
+
* when nested, each alternative is combined with each
|
|
17
|
+
* parent alternative (cartesian product), producing a
|
|
18
|
+
* comma-joined selector list (e.g. `'a.b,a.c'`).
|
|
19
|
+
* @param splitter A delimiter used to create unique keys
|
|
20
|
+
* (default: `'$$'`). The substring from `splitter` to the
|
|
21
|
+
* end of a key is ignored (e.g., `src$$1` → `src`).
|
|
22
|
+
*
|
|
23
|
+
* @returns A CSS string representing the compiled rules.
|
|
24
|
+
*/
|
|
25
|
+
export declare const c: (node: CNode, splitter?: string) => string;
|
|
26
|
+
/**
|
|
27
|
+
* Creates a tag function for escaping interpolated values
|
|
28
|
+
* in template literals.
|
|
21
29
|
*
|
|
22
|
-
* @returns
|
|
30
|
+
* @param escapeFn A function that takes a value and returns
|
|
31
|
+
* its escaped string representation.
|
|
23
32
|
*
|
|
24
|
-
* A
|
|
25
|
-
*
|
|
33
|
+
* @returns A tag function that escapes interpolated values
|
|
34
|
+
* using the provided escape function.
|
|
35
|
+
*/
|
|
36
|
+
export declare const createEscape: (escapeFn: (value: any) => string) => (template: TemplateStringsArray, ...values: unknown[]) => string;
|
|
37
|
+
/**
|
|
38
|
+
* A helper for building simple tokenizers (see also
|
|
39
|
+
* {@link nanolightTs}).
|
|
26
40
|
*
|
|
27
41
|
* @remarks
|
|
28
42
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
43
|
+
* 1. Matches starting at an earlier position take
|
|
44
|
+
* precedence.
|
|
45
|
+
* 2. Among matches at the same position, the longer one
|
|
46
|
+
* wins.
|
|
47
|
+
* 3. Among matches of the same position and length, the one
|
|
48
|
+
* defined earlier wins.
|
|
49
|
+
*
|
|
50
|
+
* @param decorator A function that wraps each matched
|
|
51
|
+
* chunk. It receives the matched text (`chunk`) and
|
|
52
|
+
* optionally the `metadata` associated with the pattern
|
|
53
|
+
* that produced the match. For unmatched text between
|
|
54
|
+
* patterns, `metadata` is `undefined`.
|
|
55
|
+
* @param specs An array of tuples `[metadata, pattern]`
|
|
56
|
+
* where:
|
|
57
|
+
*
|
|
58
|
+
* - `metadata`: arbitrary data (e.g., a CSS class name)
|
|
59
|
+
* passed to `decorator` when the pattern matches.
|
|
60
|
+
* - `pattern`: a `string` or `RegExp` to match against the
|
|
61
|
+
* input.
|
|
62
|
+
*
|
|
63
|
+
* @returns A tokenizer function that accepts a code string
|
|
64
|
+
* and returns an array of decorated tokens.
|
|
35
65
|
*/
|
|
36
66
|
export declare const createTokenizer: <M, T>(decorator: (chunk: string, metadata?: M) => T, ...specs: [M, string | RegExp][]) => (code: string) => T[];
|
|
37
67
|
/**
|
|
38
|
-
* Parses a CSV string
|
|
39
|
-
*
|
|
68
|
+
* Parses a CSV string into a two-dimensional array of
|
|
69
|
+
* strings.
|
|
40
70
|
*
|
|
41
71
|
* Supports quoted fields with escaped double quotes (`""`).
|
|
42
72
|
* Carriage returns are normalized.
|
|
43
73
|
*
|
|
44
|
-
* @param csv
|
|
45
|
-
*
|
|
46
|
-
* The CSV string to parse.
|
|
47
|
-
*
|
|
48
|
-
* @param separator
|
|
49
|
-
*
|
|
50
|
-
* The field delimiter (default: `','`).
|
|
74
|
+
* @param csv The CSV string to parse.
|
|
75
|
+
* @param separator The field delimiter (default: `','`).
|
|
51
76
|
*
|
|
52
|
-
* @returns
|
|
53
|
-
*
|
|
54
|
-
* A 2D array where each inner array
|
|
55
|
-
* represents a row of fields.
|
|
77
|
+
* @returns A 2D array where each inner array represents a
|
|
78
|
+
* row of fields.
|
|
56
79
|
*/
|
|
57
80
|
export declare const csvParse: (csv: string, separator?: string) => string[][];
|
|
58
81
|
/**
|
|
59
|
-
* Applies Polish-specific typographic corrections
|
|
60
|
-
*
|
|
82
|
+
* Applies Polish-specific typographic corrections to a DOM
|
|
83
|
+
* subtree.
|
|
61
84
|
*
|
|
62
85
|
* This function prevents orphaned conjunctions
|
|
63
86
|
* (single-letter words like “a”, “i”, “o”, “u”, “w”, “z”)
|
|
64
|
-
* from appearing at the end of a
|
|
65
|
-
*
|
|
66
|
-
* in a
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* The root DOM node to process.
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
87
|
+
* and the em dash (“—”) from appearing at the end of a
|
|
88
|
+
* line. It wraps each such character together with the
|
|
89
|
+
* whitespace that follows it in a `white-space:nowrap`
|
|
90
|
+
* span, removing the only line-break opportunity between it
|
|
91
|
+
* and the next word so the two stay glued together. It also
|
|
92
|
+
* inserts zero-width spaces after slashes and dots to allow
|
|
93
|
+
* line breaks.
|
|
94
|
+
*
|
|
95
|
+
* @param node The root DOM node to process. All descendant
|
|
96
|
+
* text nodes are corrected recursively, except those
|
|
97
|
+
* inside `IFRAME`, `NOSCRIPT`, `PRE`, `SCRIPT`, `STYLE`,
|
|
98
|
+
* or `TEXTAREA` elements.
|
|
76
99
|
*/
|
|
77
100
|
export declare const fixPlTypography: (node: Node) => void;
|
|
78
101
|
/**
|
|
@@ -86,33 +109,31 @@ export type HArgs1 = Record<PropertyKey, unknown> | null | undefined | Node | st
|
|
|
86
109
|
*/
|
|
87
110
|
export type HArgs = [string | Node, ...HArgs1[]];
|
|
88
111
|
/**
|
|
89
|
-
* A lightweight
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* @returns
|
|
114
|
-
*
|
|
115
|
-
* The created or modified `HTMLElement`.
|
|
112
|
+
* A lightweight _HyperScript_-style helper for creating and
|
|
113
|
+
* modifying `HTMLElement`s (see also {@link s}).
|
|
114
|
+
*
|
|
115
|
+
* @param tagOrNode If a `string`, it is treated as the tag
|
|
116
|
+
* name for a new element. If a `Node`, that node is
|
|
117
|
+
* modified in place.
|
|
118
|
+
* @param args Additional arguments processed as follows:
|
|
119
|
+
*
|
|
120
|
+
* - `Object`: maps attributes/properties. Keys starting
|
|
121
|
+
* with `$` set element properties (without the `$`
|
|
122
|
+
* prefix); if the value is a plain object, it is
|
|
123
|
+
* shallow-merged into the existing property instead of
|
|
124
|
+
* replacing it (useful e.g. for `$style`). Other keys
|
|
125
|
+
* set attributes: a key prefixed with `xlink:` sets the
|
|
126
|
+
* attribute via `setAttributeNS` in the XLink
|
|
127
|
+
* namespace; any other key (without a colon) sets it
|
|
128
|
+
* via `setAttribute`. A value of `false` removes the
|
|
129
|
+
* attribute.
|
|
130
|
+
* - `null`/`undefined`: ignored.
|
|
131
|
+
* - `Node`: appended as a child.
|
|
132
|
+
* - `string`/`number`: converted to a `Text` node and
|
|
133
|
+
* appended.
|
|
134
|
+
* - {@link HArgs} array: processed recursively.
|
|
135
|
+
*
|
|
136
|
+
* @returns The created or modified `HTMLElement`.
|
|
116
137
|
*/
|
|
117
138
|
export declare const h: {
|
|
118
139
|
<T extends keyof HTMLElementTagNameMap>(tag: T, ...args1: HArgs1[]): HTMLElementTagNameMap[T];
|
|
@@ -120,33 +141,30 @@ export declare const h: {
|
|
|
120
141
|
(tagOrNode: string | Node, ...args1: HArgs1[]): Node;
|
|
121
142
|
};
|
|
122
143
|
/**
|
|
123
|
-
* A lightweight
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* @returns
|
|
148
|
-
*
|
|
149
|
-
* The created or modified `SVGElement`.
|
|
144
|
+
* A lightweight _HyperScript_-style helper for creating and
|
|
145
|
+
* modifying `SVGElement`s (see also {@link h}).
|
|
146
|
+
*
|
|
147
|
+
* @param tagOrNode If a `string`, it is treated as the tag
|
|
148
|
+
* name for a new element. If a `Node`, that node is
|
|
149
|
+
* modified in place.
|
|
150
|
+
* @param args Additional arguments processed as follows:
|
|
151
|
+
*
|
|
152
|
+
* - `Object`: maps attributes/properties. Keys starting
|
|
153
|
+
* with `$` set element properties (without the `$`
|
|
154
|
+
* prefix); if the value is a plain object, it is
|
|
155
|
+
* shallow-merged into the existing property instead of
|
|
156
|
+
* replacing it. Other keys set attributes: a key
|
|
157
|
+
* prefixed with `xlink:` sets the attribute via
|
|
158
|
+
* `setAttributeNS` in the XLink namespace; any other
|
|
159
|
+
* key (without a colon) sets it via `setAttribute`. A
|
|
160
|
+
* value of `false` removes the attribute.
|
|
161
|
+
* - `null`/`undefined`: ignored.
|
|
162
|
+
* - `Node`: appended as a child.
|
|
163
|
+
* - `string`/`number`: converted to a `Text` node and
|
|
164
|
+
* appended.
|
|
165
|
+
* - {@link HArgs} array: processed recursively.
|
|
166
|
+
*
|
|
167
|
+
* @returns The created or modified `SVGElement`.
|
|
150
168
|
*/
|
|
151
169
|
export declare const s: {
|
|
152
170
|
<T extends keyof SVGElementTagNameMap>(tag: T, ...args1: HArgs1[]): SVGElementTagNameMap[T];
|
|
@@ -154,298 +172,123 @@ export declare const s: {
|
|
|
154
172
|
(tagOrNode: string | Node, ...args1: HArgs1[]): Node;
|
|
155
173
|
};
|
|
156
174
|
/**
|
|
157
|
-
* Shorthand for creating an SVG element
|
|
158
|
-
*
|
|
175
|
+
* Shorthand for creating an SVG element with a `<use>`
|
|
176
|
+
* child referencing an icon by ID.
|
|
159
177
|
*
|
|
160
178
|
* Equivalent to:
|
|
161
|
-
* `s('svg', ['use', { 'xlink:href': '#' + id }], ...args)`.
|
|
162
|
-
*
|
|
163
|
-
* @param id
|
|
164
179
|
*
|
|
165
|
-
*
|
|
166
|
-
* (
|
|
180
|
+
* ```ts
|
|
181
|
+
* s(
|
|
182
|
+
* 'svg',
|
|
183
|
+
* ['use', { 'xlink:href': '#' + id }],
|
|
184
|
+
* ...args
|
|
185
|
+
* )
|
|
186
|
+
* ```
|
|
167
187
|
*
|
|
168
|
-
* @param
|
|
188
|
+
* @param id The ID of the symbol to reference (without the
|
|
189
|
+
* `#` prefix).
|
|
190
|
+
* @param args Additional arguments passed to the outer
|
|
191
|
+
* `<svg>` element.
|
|
169
192
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* @returns
|
|
173
|
-
*
|
|
174
|
-
* An `SVGSVGElement` containing a `<use>` element.
|
|
193
|
+
* @returns An `SVGSVGElement` containing a `<use>` element.
|
|
175
194
|
*/
|
|
176
195
|
export declare const svgUse: (id: string, ...args: HArgs1[]) => SVGSVGElement;
|
|
177
196
|
/**
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* A null-safe wrapper around `Object.hasOwn`.
|
|
182
|
-
*
|
|
183
|
-
* @param ref
|
|
184
|
-
*
|
|
185
|
-
* The object to check.
|
|
186
|
-
*
|
|
187
|
-
* @param key
|
|
188
|
-
*
|
|
189
|
-
* The property key to look for.
|
|
190
|
-
*
|
|
191
|
-
* @returns
|
|
192
|
-
*
|
|
193
|
-
* `true` if `ref` is not nullish
|
|
194
|
-
* and has `key` as an own property, `false` otherwise.
|
|
195
|
-
*/
|
|
196
|
-
export declare const hasOwn: (ref: unknown, key: unknown) => boolean;
|
|
197
|
-
/**
|
|
198
|
-
* Checks whether the argument is an array.
|
|
199
|
-
*
|
|
200
|
-
* @param arg
|
|
201
|
-
*
|
|
202
|
-
* The value to check.
|
|
203
|
-
*
|
|
204
|
-
* @returns
|
|
205
|
-
*
|
|
206
|
-
* `true` if `arg` is an array, `false` otherwise.
|
|
207
|
-
*/
|
|
208
|
-
export declare const isArray: (arg: unknown) => arg is unknown[];
|
|
209
|
-
/**
|
|
210
|
-
* Checks whether the argument is of type `number`
|
|
211
|
-
* (includes `NaN` and `±Infinity`).
|
|
212
|
-
*
|
|
213
|
-
* @param arg
|
|
214
|
-
*
|
|
215
|
-
* The value to check.
|
|
216
|
-
*
|
|
217
|
-
* @returns
|
|
218
|
-
*
|
|
219
|
-
* `true` if `typeof arg === 'number'`, `false` otherwise.
|
|
220
|
-
*/
|
|
221
|
-
export declare const isNumber: (arg: unknown) => arg is number;
|
|
222
|
-
/**
|
|
223
|
-
* Checks whether the argument is a finite number
|
|
224
|
-
* (excludes `±Infinity` and `NaN`).
|
|
225
|
-
*
|
|
226
|
-
* @param arg
|
|
227
|
-
*
|
|
228
|
-
* The value to check.
|
|
229
|
-
*
|
|
230
|
-
* @returns
|
|
231
|
-
*
|
|
232
|
-
* `true` if `arg` is a finite number, `false` otherwise.
|
|
233
|
-
*/
|
|
234
|
-
export declare const isFiniteNumber: (arg: unknown) => arg is number;
|
|
235
|
-
/**
|
|
236
|
-
* Checks whether the argument is an integer number.
|
|
237
|
-
*
|
|
238
|
-
* @param arg
|
|
239
|
-
*
|
|
240
|
-
* The value to check.
|
|
241
|
-
*
|
|
242
|
-
* @returns
|
|
243
|
-
*
|
|
244
|
-
* `true` if `arg` is an integer number, `false` otherwise.
|
|
245
|
-
*/
|
|
246
|
-
export declare const isInteger: (arg: unknown) => arg is number;
|
|
247
|
-
/**
|
|
248
|
-
* Checks whether the argument is a string.
|
|
249
|
-
*
|
|
250
|
-
* @param arg
|
|
251
|
-
*
|
|
252
|
-
* The value to check.
|
|
253
|
-
*
|
|
254
|
-
* @returns
|
|
255
|
-
*
|
|
256
|
-
* `true` if `typeof arg === 'string'`, `false` otherwise.
|
|
257
|
-
*/
|
|
258
|
-
export declare const isString: (arg: unknown) => arg is string;
|
|
259
|
-
/**
|
|
260
|
-
* Checks whether the argument is a plain object
|
|
261
|
-
* (not `null` and not an array).
|
|
262
|
-
*
|
|
263
|
-
* @param arg
|
|
264
|
-
*
|
|
265
|
-
* The value to check.
|
|
266
|
-
*
|
|
267
|
-
* @returns
|
|
268
|
-
*
|
|
269
|
-
* `true` if `arg` is a plain object, `false` otherwise.
|
|
270
|
-
*/
|
|
271
|
-
export declare const isRecord: (arg: unknown) => arg is Record<PropertyKey, unknown>;
|
|
272
|
-
/**
|
|
273
|
-
* Parses JSON with support for
|
|
274
|
-
* handler-based value transformation (“JavaScript ON”).
|
|
275
|
-
*
|
|
276
|
-
* Objects with exactly one property
|
|
277
|
-
* whose key exists in `handlers`
|
|
278
|
-
* and whose value is an array
|
|
279
|
-
* are replaced by invoking the corresponding handler
|
|
280
|
-
* with the array elements as arguments.
|
|
281
|
-
*
|
|
282
|
-
* @param handlers
|
|
283
|
-
*
|
|
284
|
-
* An object mapping handler names to functions.
|
|
285
|
-
*
|
|
286
|
-
* @param text
|
|
287
|
-
*
|
|
288
|
-
* The JSON string to parse.
|
|
289
|
-
*
|
|
290
|
-
* @returns
|
|
291
|
-
*
|
|
292
|
-
* The parsed value with handler substitutions applied.
|
|
293
|
-
*/
|
|
294
|
-
export declare const jsOnParse: (handlers: Record<PropertyKey, Function>, text: string) => any;
|
|
295
|
-
/**
|
|
296
|
-
* A Monokai-inspired color scheme
|
|
297
|
-
* for use with the {@link c} helper
|
|
298
|
-
* and {@link nanolightTs} tokenizer.
|
|
197
|
+
* A Monokai-inspired color scheme for use with the {@link c}
|
|
198
|
+
* helper and {@link nanolightTs} tokenizer.
|
|
299
199
|
*/
|
|
300
200
|
export declare const monokai: CNode;
|
|
301
201
|
/**
|
|
302
202
|
* A TypeScript/JavaScript syntax highlighting tokenizer
|
|
303
203
|
* built using {@link createTokenizer}.
|
|
304
204
|
*
|
|
305
|
-
* @param code
|
|
205
|
+
* @param code The source code string to tokenize.
|
|
306
206
|
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
* @returns
|
|
310
|
-
*
|
|
311
|
-
* An array of {@link HArgs1} elements
|
|
312
|
-
* suitable for rendering with {@link h}.
|
|
207
|
+
* @returns An array of {@link HArgs1} elements suitable for
|
|
208
|
+
* rendering with {@link h}.
|
|
313
209
|
*/
|
|
314
210
|
export declare const nanolightTs: (code: string) => HArgs1[];
|
|
315
211
|
/**
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
* @param
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
* A new object without the specified keys.
|
|
212
|
+
* A responsive web design helper that generates CSS rules
|
|
213
|
+
* for a grid-like layout.
|
|
214
|
+
*
|
|
215
|
+
* @param root The CSS root object to populate (see
|
|
216
|
+
* {@link c}).
|
|
217
|
+
* @param selector The CSS selector for the grid item.
|
|
218
|
+
* @param cellWidthPx The base cell width in pixels.
|
|
219
|
+
* @param cellHeightPx The base cell height in pixels.
|
|
220
|
+
* @param specs An array of breakpoint specifications, each
|
|
221
|
+
* a tuple of:
|
|
222
|
+
*
|
|
223
|
+
* - `maxWidth`: maximum number of cells per row (defines
|
|
224
|
+
* the viewport breakpoint).
|
|
225
|
+
* - `width` (optional, default `1`): number of horizontal
|
|
226
|
+
* cells the element spans.
|
|
227
|
+
* - `height` (optional, default `1`): number of vertical
|
|
228
|
+
* cells the element spans.
|
|
334
229
|
*/
|
|
335
|
-
export declare const
|
|
230
|
+
export declare const rwd: (root: CNode, selector: string, cellWidthPx: number, cellHeightPx: number, ...specs: [number, number?, number?][]) => void;
|
|
336
231
|
/**
|
|
337
|
-
*
|
|
338
|
-
* from the source object.
|
|
339
|
-
*
|
|
340
|
-
* A runtime equivalent
|
|
341
|
-
* of TypeScript’s `Pick<T, K>` utility type.
|
|
342
|
-
* See also {@link omit}.
|
|
343
|
-
*
|
|
344
|
-
* @param ref
|
|
345
|
-
*
|
|
346
|
-
* The source object.
|
|
347
|
-
*
|
|
348
|
-
* @param keys
|
|
349
|
-
*
|
|
350
|
-
* An array of keys to include in the result.
|
|
232
|
+
* Generates a UUID v1 (time-based) identifier.
|
|
351
233
|
*
|
|
352
|
-
* @
|
|
234
|
+
* @param date The date to use for the timestamp portion
|
|
235
|
+
* (default: current date/time).
|
|
236
|
+
* @param node A hexadecimal `string` for the node portion
|
|
237
|
+
* (default: random). Must match `/^[0-9a-f]*$/`; it is
|
|
238
|
+
* trimmed to the last 12 characters and left-padded with
|
|
239
|
+
* zeros if shorter.
|
|
353
240
|
*
|
|
354
|
-
* A
|
|
241
|
+
* @returns A UUID v1 `string` in the standard format
|
|
242
|
+
* `xxxxxxxx-xxxx-1xxx-xxxx-xxxxxxxxxxxx`.
|
|
355
243
|
*/
|
|
356
|
-
export declare const
|
|
244
|
+
export declare const uuidV1: (date?: Date, node?: string) => string;
|
|
357
245
|
/**
|
|
358
|
-
* A
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
* @param root
|
|
362
|
-
*
|
|
363
|
-
* The CSS root object to populate (see {@link c}).
|
|
364
|
-
*
|
|
365
|
-
* @param selector
|
|
366
|
-
*
|
|
367
|
-
* The CSS selector for the grid item.
|
|
246
|
+
* A Proxy-based helper for auto-vivification of nested
|
|
247
|
+
* object structures.
|
|
368
248
|
*
|
|
369
|
-
*
|
|
249
|
+
* Accessing, assigning, or deleting any nested property on
|
|
250
|
+
* the returned proxy automatically creates intermediate
|
|
251
|
+
* objects (or arrays for numeric-string keys matching
|
|
252
|
+
* `^(0|[1-9]\d*)$`) as needed, allowing deep operations
|
|
253
|
+
* without explicit null checks.
|
|
370
254
|
*
|
|
371
|
-
*
|
|
255
|
+
* Intermediates of the last level in a get-only property
|
|
256
|
+
* chain are NOT auto-created. For example,
|
|
257
|
+
* `vivify(ref).one.two` will create `ref.one` as `{}`, but
|
|
258
|
+
* will NOT create `ref.one.two`. Only when a deeper access,
|
|
259
|
+
* assignment, or deletion occurs, e.g.
|
|
372
260
|
*
|
|
373
|
-
*
|
|
261
|
+
* ```ts
|
|
262
|
+
* delete vivify(ref).one.two.three
|
|
263
|
+
* ```
|
|
374
264
|
*
|
|
375
|
-
*
|
|
265
|
+
* or
|
|
376
266
|
*
|
|
377
|
-
*
|
|
267
|
+
* ```ts
|
|
268
|
+
* vivify(ref).one.two.three = 4
|
|
269
|
+
* ```
|
|
378
270
|
*
|
|
379
|
-
*
|
|
380
|
-
* - `maxWidth`: maximum number of cells per row
|
|
381
|
-
* (defines the viewport breakpoint).
|
|
382
|
-
* - `width` (optional, default `1`):
|
|
383
|
-
* number of horizontal cells the element spans.
|
|
384
|
-
* - `height` (optional, default `1`):
|
|
385
|
-
* number of vertical cells the element spans.
|
|
386
|
-
*/
|
|
387
|
-
export declare const rwd: (root: CNode, selector: string, cellWidthPx: number, cellHeightPx: number, ...specs: [number, number?, number?][]) => void;
|
|
388
|
-
/**
|
|
389
|
-
* Generates a UUID v1 (time-based) identifier.
|
|
271
|
+
* Will `ref.one.two` be materialized.
|
|
390
272
|
*
|
|
391
|
-
*
|
|
273
|
+
* When traversal reaches a primitive value, no
|
|
274
|
+
* auto-creation happens; the primitive’s own property is
|
|
275
|
+
* returned instead (e.g. accessing `.toString.name` on a
|
|
276
|
+
* number yields `'toString'` without modifying the
|
|
277
|
+
* underlying structure).
|
|
392
278
|
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
279
|
+
* Deletion on a non-existing intermediate path will
|
|
280
|
+
* auto-create intermediates up to the parent of the deleted
|
|
281
|
+
* key, e.g.
|
|
395
282
|
*
|
|
396
|
-
*
|
|
283
|
+
* ```ts
|
|
284
|
+
* delete vivify(ref).one.two.three
|
|
285
|
+
* ```
|
|
397
286
|
*
|
|
398
|
-
*
|
|
399
|
-
* (default: random).
|
|
400
|
-
* Must match `/^[0-9a-f]*$/`;
|
|
401
|
-
* it is trimmed to the last 12 characters
|
|
402
|
-
* and left-padded with zeros if shorter.
|
|
287
|
+
* Will create `ref.one.two` as `{}` if it does not exist.
|
|
403
288
|
*
|
|
404
|
-
* @
|
|
289
|
+
* @param ref The root object to wrap.
|
|
405
290
|
*
|
|
406
|
-
* A
|
|
407
|
-
*
|
|
408
|
-
*/
|
|
409
|
-
export declare const uuidV1: (date?: Date, node?: string) => string;
|
|
410
|
-
/**
|
|
411
|
-
* A Proxy-based helper for auto-vivification
|
|
412
|
-
* of nested object structures.
|
|
413
|
-
*
|
|
414
|
-
* Accessing, assigning, or deleting any nested property
|
|
415
|
-
* on the returned proxy
|
|
416
|
-
* automatically creates intermediate objects
|
|
417
|
-
* (or arrays for numeric-string keys matching
|
|
418
|
-
* `^(0|[1-9]\d*)$`) as needed,
|
|
419
|
-
* allowing deep operations without explicit null checks.
|
|
420
|
-
*
|
|
421
|
-
* Intermediates of the last level
|
|
422
|
-
* in a get-only property chain are NOT auto-created.
|
|
423
|
-
* For example, `vivify(ref).one.two` will create
|
|
424
|
-
* `ref.one` as `{}`, but will NOT create `ref.one.two`.
|
|
425
|
-
* Only when a deeper access, assignment, or deletion occurs
|
|
426
|
-
* (e.g. `delete vivify(ref).one.two.three`
|
|
427
|
-
* or `vivify(ref).one.two.three = 4`)
|
|
428
|
-
* will `ref.one.two` be materialized.
|
|
429
|
-
*
|
|
430
|
-
* When traversal reaches a primitive value,
|
|
431
|
-
* no auto-creation happens;
|
|
432
|
-
* the primitive’s own property is returned instead
|
|
433
|
-
* (e.g. accessing `.toString.name` on a number yields
|
|
434
|
-
* `'toString'` without modifying the underlying structure).
|
|
435
|
-
*
|
|
436
|
-
* Deletion on a non-existing intermediate path
|
|
437
|
-
* will auto-create intermediates up to the parent
|
|
438
|
-
* of the deleted key
|
|
439
|
-
* (e.g. `delete vivify(ref).one.two.three`
|
|
440
|
-
* will create `ref.one.two` as `{}` if it does not exist).
|
|
441
|
-
*
|
|
442
|
-
* @param ref
|
|
443
|
-
*
|
|
444
|
-
* The root object to wrap.
|
|
445
|
-
*
|
|
446
|
-
* @returns
|
|
447
|
-
*
|
|
448
|
-
* A proxy that auto-creates nested objects/arrays
|
|
449
|
-
* on property access.
|
|
291
|
+
* @returns A proxy that auto-creates nested objects/arrays
|
|
292
|
+
* on property access.
|
|
450
293
|
*/
|
|
451
294
|
export declare const vivify: (ref: unknown) => any;
|