qstd 0.2.10 → 0.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/block/accordion.d.ts +18 -0
  2. package/dist/block/accordion.d.ts.map +1 -0
  3. package/dist/block/checkbox.d.ts +3 -0
  4. package/dist/block/checkbox.d.ts.map +1 -0
  5. package/dist/block/drawer.d.ts +9 -0
  6. package/dist/block/drawer.d.ts.map +1 -0
  7. package/dist/block/fns.d.ts +50 -0
  8. package/dist/block/fns.d.ts.map +1 -0
  9. package/dist/block/icon.d.ts +4 -0
  10. package/dist/block/icon.d.ts.map +1 -0
  11. package/dist/block/index.d.ts +62 -0
  12. package/dist/block/index.d.ts.map +1 -0
  13. package/dist/block/input.d.ts +23 -0
  14. package/dist/block/input.d.ts.map +1 -0
  15. package/dist/block/literals.d.ts +121 -0
  16. package/dist/block/literals.d.ts.map +1 -0
  17. package/dist/block/menu.d.ts +4 -0
  18. package/dist/block/menu.d.ts.map +1 -0
  19. package/dist/block/progress.d.ts +18 -0
  20. package/dist/block/progress.d.ts.map +1 -0
  21. package/dist/block/radio.d.ts +17 -0
  22. package/dist/block/radio.d.ts.map +1 -0
  23. package/dist/block/switch.d.ts +21 -0
  24. package/dist/block/switch.d.ts.map +1 -0
  25. package/dist/block/test-types.d.ts +4 -0
  26. package/dist/block/test-types.d.ts.map +1 -0
  27. package/dist/block/textarea.d.ts +33 -0
  28. package/dist/block/textarea.d.ts.map +1 -0
  29. package/dist/block/tooltip.d.ts +5 -0
  30. package/dist/block/tooltip.d.ts.map +1 -0
  31. package/dist/block/types.d.ts +384 -0
  32. package/dist/block/types.d.ts.map +1 -0
  33. package/dist/block/use-resize-observer.d.ts +24 -0
  34. package/dist/block/use-resize-observer.d.ts.map +1 -0
  35. package/dist/client/browser.d.ts +44 -0
  36. package/dist/client/browser.d.ts.map +1 -0
  37. package/dist/client/dom.d.ts +58 -0
  38. package/dist/client/dom.d.ts.map +1 -0
  39. package/dist/client/index.cjs +28 -0
  40. package/dist/client/index.d.ts +11 -75
  41. package/dist/client/index.d.ts.map +1 -0
  42. package/dist/client/index.js +28 -0
  43. package/dist/client/storage.d.ts +46 -0
  44. package/dist/client/storage.d.ts.map +1 -0
  45. package/dist/preset/index.d.ts +3 -4
  46. package/dist/preset/index.d.ts.map +1 -0
  47. package/dist/react/index.cjs +4 -3
  48. package/dist/react/index.d.ts +10 -21023
  49. package/dist/react/index.d.ts.map +1 -0
  50. package/dist/react/index.js +4 -3
  51. package/dist/react/use-theme/fns.d.ts +5 -0
  52. package/dist/react/use-theme/fns.d.ts.map +1 -0
  53. package/dist/react/use-theme/index.d.ts +13 -0
  54. package/dist/react/use-theme/index.d.ts.map +1 -0
  55. package/dist/react/use-theme/literals.d.ts +4 -0
  56. package/dist/react/use-theme/literals.d.ts.map +1 -0
  57. package/dist/react/use-theme/types.d.ts +6 -0
  58. package/dist/react/use-theme/types.d.ts.map +1 -0
  59. package/dist/server/file.d.ts +8 -0
  60. package/dist/server/file.d.ts.map +1 -0
  61. package/dist/server/index.cjs +28 -0
  62. package/dist/server/index.d.ts +11 -17
  63. package/dist/server/index.d.ts.map +1 -0
  64. package/dist/server/index.js +28 -0
  65. package/dist/shared/dict.d.ts +57 -0
  66. package/dist/shared/dict.d.ts.map +1 -0
  67. package/dist/shared/flow.d.ts +36 -0
  68. package/dist/shared/flow.d.ts.map +1 -0
  69. package/dist/shared/int.d.ts +49 -0
  70. package/dist/shared/int.d.ts.map +1 -0
  71. package/dist/shared/list.d.ts +29 -0
  72. package/dist/shared/list.d.ts.map +1 -0
  73. package/dist/shared/log.d.ts +98 -0
  74. package/dist/shared/log.d.ts.map +1 -0
  75. package/dist/shared/money.d.ts +18 -0
  76. package/dist/shared/money.d.ts.map +1 -0
  77. package/dist/shared/random.d.ts +41 -0
  78. package/dist/shared/random.d.ts.map +1 -0
  79. package/dist/shared/str.d.ts +74 -0
  80. package/dist/shared/str.d.ts.map +1 -0
  81. package/dist/shared/time.d.ts +112 -0
  82. package/dist/shared/time.d.ts.map +1 -0
  83. package/package.json +4 -2
  84. package/dist/client/index.d.cts +0 -75
  85. package/dist/log-DlaF8tUZ.d.cts +0 -496
  86. package/dist/log-DlaF8tUZ.d.ts +0 -496
  87. package/dist/preset/index.d.cts +0 -39
  88. package/dist/react/index.d.cts +0 -21058
  89. package/dist/server/index.d.cts +0 -17
@@ -0,0 +1,384 @@
1
+ /**
2
+ * Export file types for consumers
3
+ * Import these in your project if you need ImageFile, AudioFile, VideoFile types
4
+ */
5
+ import { type Transition, type VariantLabels, type Variants, type Target, type TargetAndTransition } from "framer-motion";
6
+ import type { IconName, SizeProp } from "@fortawesome/fontawesome-svg-core";
7
+ import type { IconDefinition } from "@fortawesome/free-solid-svg-icons";
8
+ import type { Placement } from "@floating-ui/react";
9
+ import type { IconType } from "react-icons/lib";
10
+ import * as React from "react";
11
+ import type { JsxStyleProps } from "../../styled-system/types";
12
+ import * as _l from "./literals";
13
+ interface AudioMetadataSource {
14
+ format: {
15
+ container?: string;
16
+ codec?: string;
17
+ sampleRate?: number;
18
+ numberOfChannels?: number;
19
+ bitrate?: number;
20
+ duration?: number;
21
+ };
22
+ common: {
23
+ track?: {
24
+ no: number | null;
25
+ of: number | null;
26
+ };
27
+ disk?: {
28
+ no: number | null;
29
+ of: number | null;
30
+ };
31
+ year?: number;
32
+ title?: string;
33
+ artist?: string;
34
+ artists?: string[];
35
+ albumartist?: string;
36
+ album?: string;
37
+ genre?: string[];
38
+ picture?: {
39
+ format: string;
40
+ data: Uint8Array;
41
+ }[];
42
+ };
43
+ }
44
+ declare global {
45
+ interface File {
46
+ preview?: string;
47
+ id?: string;
48
+ }
49
+ interface ImageFile extends File {
50
+ id: string;
51
+ preview: string;
52
+ orientation: "landscape" | "portrait" | "square";
53
+ height: number;
54
+ width: number;
55
+ }
56
+ interface VideoFile extends File {
57
+ id: string;
58
+ orientation: "landscape" | "portrait" | "square";
59
+ duration: number;
60
+ height: number;
61
+ width: number;
62
+ }
63
+ interface AudioFile extends File {
64
+ id: string;
65
+ preview: string;
66
+ source: AudioMetadataSource["common"] & AudioMetadataSource["format"];
67
+ }
68
+ type MediaFile = File | ImageFile | AudioFile;
69
+ }
70
+ export type Icon = null | IconName | IconType | IconDefinition | React.ReactElement | (() => React.ReactElement);
71
+ export interface IconProps {
72
+ iconPrefix?: "solid" | "regular" | "brands";
73
+ className?: string;
74
+ startIcon?: Icon;
75
+ endIcon?: Icon;
76
+ icon?: Icon;
77
+ iconSize?: SizeProp;
78
+ pulse?: boolean;
79
+ spin?: boolean;
80
+ }
81
+ export type LoadingIcon = keyof typeof _l.loadingIconsMap;
82
+ export type Icons = Icon | LoadingIcon;
83
+ export type LoadingProps = {
84
+ loadingPosition?: "start" | "end";
85
+ loadingIconSize?: number | string;
86
+ loadingIcon?: Icons;
87
+ isLoading?: boolean;
88
+ };
89
+ type BlockMotionProps = {
90
+ initial?: Target | VariantLabels | boolean;
91
+ animate?: TargetAndTransition | VariantLabels | boolean;
92
+ exit?: TargetAndTransition | VariantLabels;
93
+ variants?: Variants;
94
+ whileHover?: TargetAndTransition | VariantLabels;
95
+ whileTap?: TargetAndTransition | VariantLabels;
96
+ whileFocus?: TargetAndTransition | VariantLabels;
97
+ layout?: boolean | "position" | "size" | "preserve-aspect";
98
+ _motion?: Transition;
99
+ };
100
+ export interface SharedBlockProps extends JsxStyleProps, BlockMotionProps, IconProps {
101
+ tooltip?: React.ReactNode | string;
102
+ portalContainer?: Element | DocumentFragment;
103
+ filepicker?: boolean;
104
+ portal?: boolean;
105
+ as?: React.ElementType;
106
+ className?: string;
107
+ style?: React.CSSProperties;
108
+ }
109
+ type OmittedHTMLProps = "color" | "width" | "height" | "translate" | "content" | "as" | "onAnimationStart" | "onAnimationEnd" | "onAnimationIteration" | "onDrag" | "onDragStart" | "onDragEnd" | "onDragOver" | "onDragEnter" | "onDragLeave" | "onDrop";
110
+ type HTMLProps<T extends React.ElementType> = Omit<React.ComponentProps<T>, OmittedHTMLProps>;
111
+ export type BaseBlockProps = SharedBlockProps & HTMLProps<"div"> & {
112
+ is?: undefined;
113
+ };
114
+ type TxtBlockProps = SharedBlockProps & HTMLProps<"div"> & {
115
+ is: "txt";
116
+ as?: "p" | "span" | "h1" | "h2" | "h3" | "em" | "strong";
117
+ };
118
+ export type HrBlockProps = SharedBlockProps & HTMLProps<"hr"> & {
119
+ is: "hr";
120
+ };
121
+ export type SkeletonBlockProps = SharedBlockProps & HTMLProps<"div"> & {
122
+ is: "skeleton";
123
+ as: "block";
124
+ size?: any;
125
+ br?: any;
126
+ };
127
+ export type SkeletonCircleProps = SharedBlockProps & HTMLProps<"div"> & {
128
+ is: "skeleton";
129
+ as: "circle";
130
+ size?: any;
131
+ br?: any;
132
+ };
133
+ type BtnBlockPropsBase = SharedBlockProps & Omit<HTMLProps<"button">, "onChange"> & LoadingProps & {
134
+ is: "btn";
135
+ disabled?: boolean;
136
+ type?: "button" | "submit" | "reset";
137
+ onClick?: React.MouseEventHandler;
138
+ };
139
+ export type BtnFilepickerProps = BtnBlockPropsBase & {
140
+ filepicker: true;
141
+ onChange?: (files: File[]) => void;
142
+ multiple?: boolean;
143
+ accept?: string;
144
+ };
145
+ export type BtnStandardProps = BtnBlockPropsBase & {
146
+ filepicker?: false | undefined;
147
+ onChange?: React.FormEventHandler<HTMLButtonElement>;
148
+ };
149
+ export type BtnBlockProps = BtnBlockPropsBase & {
150
+ filepicker?: boolean;
151
+ multiple?: boolean;
152
+ accept?: string;
153
+ onChange?: any;
154
+ };
155
+ export type InputBlockProps = SharedBlockProps & Omit<HTMLProps<"input">, "children"> & {
156
+ is: "input";
157
+ error?: string;
158
+ children?: React.ReactNode;
159
+ };
160
+ export type TextareaBlockProps = SharedBlockProps & Omit<HTMLProps<"textarea">, "children"> & {
161
+ is: "textarea";
162
+ error?: string;
163
+ /** Maximum number of rows the textarea can expand to */
164
+ maxRows?: number;
165
+ /** Minimum number of rows the textarea will display */
166
+ minRows?: number;
167
+ /** Callback fired when the textarea height changes */
168
+ onHeightChange?: (height: number, meta: {
169
+ rowHeight: number;
170
+ }) => void;
171
+ children?: React.ReactNode;
172
+ };
173
+ export type CheckboxBlockProps = SharedBlockProps & HTMLProps<"div"> & {
174
+ is: "checkbox";
175
+ onChecked?: (value: boolean) => void;
176
+ indeterminate?: boolean;
177
+ checked?: boolean;
178
+ };
179
+ export type ProgressBlockProps = SharedBlockProps & HTMLProps<"progress"> & {
180
+ is: "progress";
181
+ value: number;
182
+ max?: number;
183
+ steps?: number;
184
+ };
185
+ export type SwitchBlockProps = SharedBlockProps & Omit<HTMLProps<"button">, "onChange"> & {
186
+ is: "switch";
187
+ thumbSize?: number;
188
+ onChange?: (checked: boolean) => void;
189
+ checked?: boolean;
190
+ defaultChecked?: boolean;
191
+ };
192
+ export type AccordionBlockProps = {
193
+ is: "accordion";
194
+ allowToggle?: boolean;
195
+ allowMultiple?: boolean;
196
+ defaultOpenIdx?: number[];
197
+ children: React.ReactElement | React.ReactElement[];
198
+ };
199
+ export type DrawerBlockProps = SharedBlockProps & HTMLProps<"div"> & {
200
+ is: "drawer";
201
+ open: boolean;
202
+ hideHandle?: boolean;
203
+ /** @default true */
204
+ drag?: boolean;
205
+ /** @default true */
206
+ outsideClickClose?: boolean;
207
+ closeOnEsc?: boolean;
208
+ onClose?: () => void;
209
+ };
210
+ export type RadioOption = {
211
+ label: React.ReactNode;
212
+ value: string;
213
+ disabled?: boolean;
214
+ };
215
+ export type RadioBlockProps = SharedBlockProps & Omit<HTMLProps<"div">, "onChange" | "children"> & {
216
+ is: "radio";
217
+ /** Controlled value for single-select radio group */
218
+ value?: string | null;
219
+ /** Uncontrolled initial value */
220
+ defaultValue?: string | null;
221
+ /** Change handler. Returns the selected value */
222
+ onChange?: (value: string) => void;
223
+ /** Disable the entire group */
224
+ disabled?: boolean;
225
+ /** Optional form field name. If provided, a hidden input will be emitted. */
226
+ name?: string;
227
+ /** Options to render (children are not accepted for radio) */
228
+ options?: RadioOption[];
229
+ /** Optional renderer for custom per-option content */
230
+ renderOption?: (option: RadioOption) => React.ReactNode;
231
+ /** Disallow children for the radio container */
232
+ children?: never;
233
+ };
234
+ export type MenuBlockProps = SharedBlockProps & HTMLProps<"div"> & {
235
+ is: "menu";
236
+ trigger?: React.ReactNode;
237
+ variant: "click" | "hover";
238
+ placement?: Placement;
239
+ hoverDelay?: number;
240
+ zIndex?: number;
241
+ onOpenOrClose?: (isOpen: boolean) => void;
242
+ offset?: {
243
+ x: number;
244
+ y: number;
245
+ };
246
+ isOpen?: boolean;
247
+ width?: string | number;
248
+ };
249
+ type LinkBlockProps = SharedBlockProps & HTMLProps<"div"> & {
250
+ is: "link";
251
+ href?: string;
252
+ to?: string;
253
+ target?: "_self" | "_blank";
254
+ rel?: string;
255
+ };
256
+ type ImgBlockProps = SharedBlockProps & HTMLProps<"img"> & {
257
+ is: "img";
258
+ src: string;
259
+ alt: string;
260
+ };
261
+ type SelectBlockProps = SharedBlockProps & HTMLProps<"select"> & {
262
+ is: "select";
263
+ };
264
+ type BlockquoteBlockProps = SharedBlockProps & HTMLProps<"blockquote"> & {
265
+ is: "blockquote";
266
+ };
267
+ type PreBlockProps = SharedBlockProps & HTMLProps<"pre"> & {
268
+ is: "pre";
269
+ };
270
+ type FormBlockProps = SharedBlockProps & HTMLProps<"form"> & ({
271
+ is: "form";
272
+ as?: undefined;
273
+ } | ({
274
+ is: "form";
275
+ as: "label";
276
+ } & HTMLProps<"label">) | ({
277
+ is: "form";
278
+ as: "legend";
279
+ } & HTMLProps<"legend">));
280
+ type TableBlockProps = SharedBlockProps & HTMLProps<"table"> & ({
281
+ is: "table";
282
+ as?: undefined;
283
+ } | ({
284
+ is: "table";
285
+ as: "tr";
286
+ } & HTMLProps<"tr">) | ({
287
+ is: "table";
288
+ as: "td";
289
+ } & HTMLProps<"td">) | ({
290
+ is: "table";
291
+ as: "th";
292
+ } & HTMLProps<"th">) | ({
293
+ is: "table";
294
+ as: "tbody";
295
+ } & HTMLProps<"tbody">) | ({
296
+ is: "table";
297
+ as: "thead";
298
+ } & HTMLProps<"thead">) | ({
299
+ is: "table";
300
+ as: "tfoot";
301
+ } & HTMLProps<"tfoot">));
302
+ type ListBlockProps = SharedBlockProps & HTMLProps<"div"> & (({
303
+ is: "list";
304
+ as: "ul";
305
+ } & HTMLProps<"ul">) | ({
306
+ is: "list";
307
+ as: "ol";
308
+ } & HTMLProps<"ol">) | ({
309
+ is: "list";
310
+ as: "li";
311
+ } & HTMLProps<"li">));
312
+ type SeoBlockProps = SharedBlockProps & HTMLProps<"div"> & (({
313
+ is: "seo";
314
+ as: "nav";
315
+ } & HTMLProps<"nav">) | ({
316
+ is: "seo";
317
+ as: "main";
318
+ } & HTMLProps<"main">) | ({
319
+ is: "seo";
320
+ as: "aside";
321
+ } & HTMLProps<"aside">) | ({
322
+ is: "seo";
323
+ as: "article";
324
+ } & HTMLProps<"article">) | ({
325
+ is: "seo";
326
+ as: "section";
327
+ } & HTMLProps<"section">) | ({
328
+ is: "seo";
329
+ as: "details";
330
+ } & HTMLProps<"details">) | ({
331
+ is: "seo";
332
+ as: "header";
333
+ } & HTMLProps<"header">) | ({
334
+ is: "seo";
335
+ as: "footer";
336
+ } & HTMLProps<"footer">));
337
+ export type BlockPropsMap = {
338
+ hr: HrBlockProps;
339
+ txt: TxtBlockProps;
340
+ btn: BtnFilepickerProps | BtnStandardProps;
341
+ input: InputBlockProps;
342
+ textarea: TextareaBlockProps;
343
+ checkbox: CheckboxBlockProps;
344
+ accordion: AccordionBlockProps;
345
+ progress: ProgressBlockProps;
346
+ switch: SwitchBlockProps;
347
+ drawer: DrawerBlockProps;
348
+ radio: RadioBlockProps;
349
+ menu: MenuBlockProps;
350
+ link: LinkBlockProps;
351
+ img: ImgBlockProps;
352
+ select: SelectBlockProps;
353
+ skeleton: SkeletonBlockProps | SkeletonCircleProps;
354
+ blockquote: BlockquoteBlockProps;
355
+ pre: PreBlockProps;
356
+ form: FormBlockProps;
357
+ table: TableBlockProps;
358
+ list: ListBlockProps;
359
+ seo: SeoBlockProps;
360
+ };
361
+ export type Is = keyof BlockPropsMap;
362
+ export type BlockProps<T extends Is | undefined = undefined> = T extends undefined ? BaseBlockProps : T extends Is ? BlockPropsMap[T] : never;
363
+ export type SkeletonAs = "circle" | "block";
364
+ export type TxtAs = "p" | "span" | "h1" | "h2" | "h3" | "em" | "strong";
365
+ export type TableAs = "tr" | "td" | "th" | "tbody" | "thead" | "tfoot";
366
+ export type FormAs = "label" | "legend";
367
+ export type ListAs = "ul" | "ol" | "li";
368
+ export type SeoAs = "nav" | "main" | "aside" | "article" | "section" | "details" | "header" | "footer";
369
+ type FollowMode = boolean | "horizontal" | "vertical";
370
+ export type CoreTooltipProps = {
371
+ children: React.ReactNode;
372
+ content?: React.ReactNode | string;
373
+ placement?: "top" | "right" | "bottom" | "left" | "auto";
374
+ interactive?: boolean;
375
+ portalContainer?: Element | DocumentFragment;
376
+ delay?: number;
377
+ follow?: FollowMode;
378
+ showArrow?: boolean;
379
+ disabled?: boolean;
380
+ offsetVal?: number;
381
+ className?: string;
382
+ };
383
+ export {};
384
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/block/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ export type ObservedSize = {
3
+ width: number | undefined;
4
+ height: number | undefined;
5
+ };
6
+ export type ResizeHandler = (size: ObservedSize) => void;
7
+ type HookResponse<T extends Element> = {
8
+ ref: React.RefCallback<T>;
9
+ } & ObservedSize;
10
+ export type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";
11
+ declare global {
12
+ interface ResizeObserverEntry {
13
+ readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;
14
+ }
15
+ }
16
+ export type RoundingFunction = (n: number) => number;
17
+ declare function useResizeObserver<T extends Element>(opts?: {
18
+ ref?: React.RefObject<T> | T | null | undefined;
19
+ onResize?: ResizeHandler;
20
+ box?: ResizeObserverBoxOptions;
21
+ round?: RoundingFunction;
22
+ }): HookResponse<T>;
23
+ export default useResizeObserver;
24
+ //# sourceMappingURL=use-resize-observer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-resize-observer.d.ts","sourceRoot":"","sources":["../../src/block/use-resize-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAEzD,KAAK,YAAY,CAAC,CAAC,SAAS,OAAO,IAAI;IACrC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAC3B,GAAG,YAAY,CAAC;AAIjB,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,aAAa,GACb,0BAA0B,CAAC;AAE/B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,mBAAmB;QAC3B,QAAQ,CAAC,yBAAyB,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;KACvE;CACF;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAOrD,iBAAS,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAC1C,IAAI,GAAE;IACJ,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,GAAG,CAAC,EAAE,wBAAwB,CAAC;IAC/B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CACrB,GACL,YAAY,CAAC,CAAC,CAAC,CAqIjB;AAwID,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Browser API utilities
3
+ */
4
+ /**
5
+ * Copy text to clipboard
6
+ * @param text
7
+ * @returns
8
+ */
9
+ export declare const copyToClipboard: (text: string) => Promise<void>;
10
+ /**
11
+ * Read text from clipboard
12
+ * @returns
13
+ */
14
+ export declare const readFromClipboard: () => Promise<string>;
15
+ /**
16
+ * Download a file from blob data
17
+ * @param data
18
+ * @param filename
19
+ */
20
+ export declare const downloadFile: (data: Blob, filename: string) => void;
21
+ /**
22
+ * Open URL in new tab
23
+ * @param url
24
+ */
25
+ export declare const openInNewTab: (url: string) => void;
26
+ /**
27
+ * Get user agent string
28
+ * @returns
29
+ */
30
+ export declare const getUserAgent: () => string;
31
+ /**
32
+ * Check if browser is online
33
+ * @returns
34
+ */
35
+ export declare const isOnline: () => boolean;
36
+ /**
37
+ * Get window dimensions
38
+ * @returns
39
+ */
40
+ export declare const getWindowDimensions: () => {
41
+ width: number;
42
+ height: number;
43
+ };
44
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/client/browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAkBhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CAOxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,IAAI,EAAE,UAAU,MAAM,KAAG,IAS3D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,IAE1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,MAE/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAKrE,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * DOM manipulation utilities
3
+ */
4
+ /**
5
+ * Get element by ID
6
+ * @param id
7
+ * @returns
8
+ */
9
+ export declare const getElement: (id: string) => HTMLElement | null;
10
+ /**
11
+ * Query selector
12
+ * @param selector
13
+ * @returns
14
+ */
15
+ export declare const querySelector: (selector: string) => Element | null;
16
+ /**
17
+ * Query selector all
18
+ * @param selector
19
+ * @returns
20
+ */
21
+ export declare const querySelectorAll: (selector: string) => NodeListOf<Element>;
22
+ /**
23
+ * Scroll to top of page
24
+ */
25
+ export declare const scrollToTop: () => void;
26
+ /**
27
+ * Scroll to coordinates
28
+ * @param x
29
+ * @param y
30
+ */
31
+ export declare const scrollTo: (x: number, y: number) => void;
32
+ /**
33
+ * Get current scroll position
34
+ * @returns
35
+ */
36
+ export declare const getScrollPosition: () => {
37
+ x: number;
38
+ y: number;
39
+ };
40
+ /**
41
+ * Check if element is in viewport
42
+ * @param el
43
+ * @returns
44
+ */
45
+ export declare const isInViewport: (el: HTMLElement) => boolean;
46
+ /**
47
+ * Scroll element into view
48
+ * @param el
49
+ * @param options
50
+ */
51
+ export declare const scrollIntoView: (el: HTMLElement, options?: ScrollIntoViewOptions) => void;
52
+ /**
53
+ * Copy text to clipboard
54
+ * @param text
55
+ * @returns
56
+ */
57
+ export declare const copy: (text: string) => Promise<void>;
58
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/client/dom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,KAAG,WAAW,GAAG,IAErD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,OAAO,GAAG,IAE1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,UAAU,CAAC,OAAO,CAErE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,IAE9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,IAE/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAO;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAK1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,WAAW,KAAG,OAS9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,WAAW,EACf,UAAU,qBAAqB,KAC9B,IAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAkBrD,CAAC"}
@@ -547,11 +547,18 @@ var hexColor = () => {
547
547
  var log_exports = {};
548
548
  __export(log_exports, {
549
549
  error: () => error,
550
+ header: () => header,
550
551
  info: () => info,
552
+ label: () => label,
551
553
  log: () => log,
554
+ startTimer: () => startTimer,
552
555
  warn: () => warn
553
556
  });
554
557
  var stringify = (value) => JSON.stringify(value, null, 2);
558
+ var startTimer = () => {
559
+ const start = Date.now();
560
+ return () => Date.now() - start;
561
+ };
555
562
  var log = (...values) => {
556
563
  console.log(...values.map(stringify));
557
564
  };
@@ -564,6 +571,27 @@ var warn = (...values) => {
564
571
  var error = (...values) => {
565
572
  console.log("[error]", ...values.map(stringify));
566
573
  };
574
+ var header = (message) => {
575
+ console.log(`========== ${message} ==========`);
576
+ };
577
+ var label = (name) => ({
578
+ /** Logs values with [label] prefix. Output: `[label] "value"` */
579
+ info: (...values) => {
580
+ console.log(`[${name}]`, ...values.map(stringify));
581
+ },
582
+ /** Logs values with [label] [warn] prefix. Output: `[label] [warn] "value"` */
583
+ warn: (...values) => {
584
+ console.log(`[${name}]`, "[warn]", ...values.map(stringify));
585
+ },
586
+ /** Logs values with [label] [error] prefix. Output: `[label] [error] "value"` */
587
+ error: (...values) => {
588
+ console.log(`[${name}]`, "[error]", ...values.map(stringify));
589
+ },
590
+ /** Logs a header message with [label] prefix. Output: `[label] ========== MESSAGE ==========` */
591
+ header: (message) => {
592
+ console.log(`[${name}] ========== ${message} ==========`);
593
+ }
594
+ });
567
595
 
568
596
  // src/client/dom.ts
569
597
  var dom_exports = {};
@@ -1,75 +1,11 @@
1
- export { d as Dict, f as Flow, i as Int, l as List, a as Log, m as Money, r as Random, s as Str, t as Time } from '../log-DlaF8tUZ.js';
2
- import 'date-fns';
3
-
4
- /**
5
- * DOM manipulation utilities
6
- */
7
- /**
8
- * Get element by ID
9
- * @param id
10
- * @returns
11
- */
12
- declare const getElement: (id: string) => HTMLElement | null;
13
- /**
14
- * Query selector
15
- * @param selector
16
- * @returns
17
- */
18
- declare const querySelector: (selector: string) => Element | null;
19
- /**
20
- * Query selector all
21
- * @param selector
22
- * @returns
23
- */
24
- declare const querySelectorAll: (selector: string) => NodeListOf<Element>;
25
- /**
26
- * Scroll to top of page
27
- */
28
- declare const scrollToTop: () => void;
29
- /**
30
- * Scroll to coordinates
31
- * @param x
32
- * @param y
33
- */
34
- declare const scrollTo: (x: number, y: number) => void;
35
- /**
36
- * Get current scroll position
37
- * @returns
38
- */
39
- declare const getScrollPosition: () => {
40
- x: number;
41
- y: number;
42
- };
43
- /**
44
- * Check if element is in viewport
45
- * @param el
46
- * @returns
47
- */
48
- declare const isInViewport: (el: HTMLElement) => boolean;
49
- /**
50
- * Scroll element into view
51
- * @param el
52
- * @param options
53
- */
54
- declare const scrollIntoView: (el: HTMLElement, options?: ScrollIntoViewOptions) => void;
55
- /**
56
- * Copy text to clipboard
57
- * @param text
58
- * @returns
59
- */
60
- declare const copy: (text: string) => Promise<void>;
61
-
62
- declare const dom_copy: typeof copy;
63
- declare const dom_getElement: typeof getElement;
64
- declare const dom_getScrollPosition: typeof getScrollPosition;
65
- declare const dom_isInViewport: typeof isInViewport;
66
- declare const dom_querySelector: typeof querySelector;
67
- declare const dom_querySelectorAll: typeof querySelectorAll;
68
- declare const dom_scrollIntoView: typeof scrollIntoView;
69
- declare const dom_scrollTo: typeof scrollTo;
70
- declare const dom_scrollToTop: typeof scrollToTop;
71
- declare namespace dom {
72
- export { dom_copy as copy, dom_getElement as getElement, dom_getScrollPosition as getScrollPosition, dom_isInViewport as isInViewport, dom_querySelector as querySelector, dom_querySelectorAll as querySelectorAll, dom_scrollIntoView as scrollIntoView, dom_scrollTo as scrollTo, dom_scrollToTop as scrollToTop };
73
- }
74
-
75
- export { dom as Dom };
1
+ export * as List from "../shared/list";
2
+ export * as Dict from "../shared/dict";
3
+ export * as Str from "../shared/str";
4
+ export * as Int from "../shared/int";
5
+ export * as Money from "../shared/money";
6
+ export * as Time from "../shared/time";
7
+ export * as Flow from "../shared/flow";
8
+ export * as Random from "../shared/random";
9
+ export * as Log from "../shared/log";
10
+ export * as Dom from "./dom";
11
+ //# sourceMappingURL=index.d.ts.map