toolbox-x 1.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.
Files changed (190) hide show
  1. package/LICENSE +201 -0
  2. package/dist/Color-B3mgF9Dh.d.cts +486 -0
  3. package/dist/Color-D38Xrw65.d.mts +486 -0
  4. package/dist/Stylog-Df7eq3-j.d.cts +519 -0
  5. package/dist/Stylog-jvlLcMQq.d.mts +519 -0
  6. package/dist/array-DvW0zIu6.d.mts +130 -0
  7. package/dist/array-rUnEVisO.d.cts +130 -0
  8. package/dist/basics-D_eSv0cu.cjs +132 -0
  9. package/dist/basics-Dp_aEK81.mjs +115 -0
  10. package/dist/basics-WEYWlnRO.d.cts +95 -0
  11. package/dist/basics-uBSfkBEI.d.mts +95 -0
  12. package/dist/case-BWIt8Ash.mjs +449 -0
  13. package/dist/case-C-S-b5YP.d.cts +327 -0
  14. package/dist/case-CS8Ii3A7.cjs +526 -0
  15. package/dist/case-CybASFPD.d.mts +327 -0
  16. package/dist/change-case.cjs +32 -0
  17. package/dist/change-case.d.cts +18 -0
  18. package/dist/change-case.d.mts +18 -0
  19. package/dist/change-case.mjs +19 -0
  20. package/dist/colors.cjs +574 -0
  21. package/dist/colors.d.cts +355 -0
  22. package/dist/colors.d.mts +355 -0
  23. package/dist/colors.mjs +547 -0
  24. package/dist/constants-2gAw23_7.mjs +144 -0
  25. package/dist/constants-B34K0QPi.d.cts +21 -0
  26. package/dist/constants-BIBDKY1u.cjs +924 -0
  27. package/dist/constants-BWT-810U.cjs +158 -0
  28. package/dist/constants-BwbHnXlM.mjs +662 -0
  29. package/dist/constants-BxN9l5el.cjs +74 -0
  30. package/dist/constants-CLS_bgKD.d.mts +847 -0
  31. package/dist/constants-D73iFu8g.mjs +171 -0
  32. package/dist/constants-DAfRxaa8.mjs +62 -0
  33. package/dist/constants-DQYeCjlx.cjs +207 -0
  34. package/dist/constants-Deeie-iH.d.mts +21 -0
  35. package/dist/constants-DpTG9RP6.d.mts +29 -0
  36. package/dist/constants-DqwnkJ_d.cjs +740 -0
  37. package/dist/constants-DvRUY_FY.cjs +150 -0
  38. package/dist/constants-VcRtQu0K.d.cts +29 -0
  39. package/dist/constants-X5hm1UtB.mjs +912 -0
  40. package/dist/constants-eNd-iYsV.mjs +134 -0
  41. package/dist/constants-qm8FafmD.d.cts +847 -0
  42. package/dist/constants.cjs +415 -0
  43. package/dist/constants.d.cts +184 -0
  44. package/dist/constants.d.mts +184 -0
  45. package/dist/constants.mjs +378 -0
  46. package/dist/convert-BOCgUv2D.cjs +252 -0
  47. package/dist/convert-Bn4jFomQ.mjs +169 -0
  48. package/dist/convert-BrzlG-m_.cjs +475 -0
  49. package/dist/convert-DhaUoPVU.mjs +368 -0
  50. package/dist/converter-1P90_RcP.d.mts +402 -0
  51. package/dist/converter-CmkcAppi.d.cts +402 -0
  52. package/dist/converter.cjs +780 -0
  53. package/dist/converter.d.cts +29 -0
  54. package/dist/converter.d.mts +29 -0
  55. package/dist/converter.mjs +771 -0
  56. package/dist/countries-CIpmtEzV.cjs +1469 -0
  57. package/dist/countries-Cy0xiqS3.mjs +1463 -0
  58. package/dist/css-colors-Bx947Ng3.d.cts +179 -0
  59. package/dist/css-colors-CXCDqQbG.cjs +186 -0
  60. package/dist/css-colors-CXTp1vvy.d.mts +179 -0
  61. package/dist/css-colors-DfUW3nTR.mjs +180 -0
  62. package/dist/date.cjs +332 -0
  63. package/dist/date.d.cts +213 -0
  64. package/dist/date.d.mts +213 -0
  65. package/dist/date.mjs +298 -0
  66. package/dist/dom.cjs +461 -0
  67. package/dist/dom.d.cts +228 -0
  68. package/dist/dom.d.mts +228 -0
  69. package/dist/dom.mjs +429 -0
  70. package/dist/form-BMFVGUrN.d.mts +118 -0
  71. package/dist/form-DRFbryvK.d.cts +118 -0
  72. package/dist/guards-3kaUX66g.mjs +157 -0
  73. package/dist/guards-C8gkvIHb.cjs +240 -0
  74. package/dist/guards-DdyU4h4o.mjs +110 -0
  75. package/dist/guards-Efhp1mNy.cjs +151 -0
  76. package/dist/guards.cjs +172 -0
  77. package/dist/guards.d.cts +399 -0
  78. package/dist/guards.d.mts +399 -0
  79. package/dist/guards.mjs +75 -0
  80. package/dist/hash-B6JPEyAz.d.mts +131 -0
  81. package/dist/hash-NTpeKYB_.d.cts +131 -0
  82. package/dist/hash.cjs +2126 -0
  83. package/dist/hash.d.cts +1239 -0
  84. package/dist/hash.d.mts +1239 -0
  85. package/dist/hash.mjs +2095 -0
  86. package/dist/http-status-BAZdtr7-.d.mts +65 -0
  87. package/dist/http-status-U_3MtoGb.d.cts +65 -0
  88. package/dist/http-status.cjs +173 -0
  89. package/dist/http-status.d.cts +142 -0
  90. package/dist/http-status.d.mts +142 -0
  91. package/dist/http-status.mjs +171 -0
  92. package/dist/index.cjs +2551 -0
  93. package/dist/index.d.cts +1493 -0
  94. package/dist/index.d.mts +1493 -0
  95. package/dist/index.mjs +2357 -0
  96. package/dist/object-B0TV3eHx.d.mts +8052 -0
  97. package/dist/object-Blq0Amdv.d.cts +8052 -0
  98. package/dist/objectify-CDs0Fbr1.mjs +417 -0
  99. package/dist/objectify-DIJ-OBmo.cjs +524 -0
  100. package/dist/paginator.cjs +245 -0
  101. package/dist/paginator.d.cts +144 -0
  102. package/dist/paginator.d.mts +144 -0
  103. package/dist/paginator.mjs +243 -0
  104. package/dist/parse-2ubxXZRp.cjs +211 -0
  105. package/dist/parse-N7g942uy.mjs +164 -0
  106. package/dist/pluralizer-BjMIc6uT.d.mts +42 -0
  107. package/dist/pluralizer-Cb6ZmrDl.d.cts +42 -0
  108. package/dist/pluralizer.cjs +678 -0
  109. package/dist/pluralizer.d.cts +152 -0
  110. package/dist/pluralizer.d.mts +152 -0
  111. package/dist/pluralizer.mjs +676 -0
  112. package/dist/primitives-B26uZolQ.cjs +228 -0
  113. package/dist/primitives-KsFUp3kQ.mjs +144 -0
  114. package/dist/specials-D48_IZbd.d.mts +108 -0
  115. package/dist/specials-DzLr1ZgU.cjs +477 -0
  116. package/dist/specials-LVONlKbQ.d.cts +108 -0
  117. package/dist/specials-uhDuRg8H.mjs +292 -0
  118. package/dist/string-CBAbxaG1.d.mts +258 -0
  119. package/dist/string-CsNsm_65.d.cts +258 -0
  120. package/dist/stylog.cjs +621 -0
  121. package/dist/stylog.d.cts +49 -0
  122. package/dist/stylog.d.mts +49 -0
  123. package/dist/stylog.mjs +614 -0
  124. package/dist/timezone-B2OYK6Fh.mjs +5589 -0
  125. package/dist/timezone-Beh9IGpw.cjs +5625 -0
  126. package/dist/types/array.cjs +16 -0
  127. package/dist/types/array.d.cts +18 -0
  128. package/dist/types/array.d.mts +18 -0
  129. package/dist/types/array.mjs +17 -0
  130. package/dist/types/colors.cjs +16 -0
  131. package/dist/types/colors.d.cts +18 -0
  132. package/dist/types/colors.d.mts +18 -0
  133. package/dist/types/colors.mjs +17 -0
  134. package/dist/types/converter.cjs +16 -0
  135. package/dist/types/converter.d.cts +18 -0
  136. package/dist/types/converter.d.mts +18 -0
  137. package/dist/types/converter.mjs +17 -0
  138. package/dist/types/form.cjs +16 -0
  139. package/dist/types/form.d.cts +18 -0
  140. package/dist/types/form.d.mts +18 -0
  141. package/dist/types/form.mjs +17 -0
  142. package/dist/types/hash.cjs +16 -0
  143. package/dist/types/hash.d.cts +18 -0
  144. package/dist/types/hash.d.mts +18 -0
  145. package/dist/types/hash.mjs +17 -0
  146. package/dist/types/http-status.cjs +16 -0
  147. package/dist/types/http-status.d.cts +18 -0
  148. package/dist/types/http-status.d.mts +18 -0
  149. package/dist/types/http-status.mjs +17 -0
  150. package/dist/types/index.cjs +16 -0
  151. package/dist/types/index.d.cts +18 -0
  152. package/dist/types/index.d.mts +18 -0
  153. package/dist/types/index.mjs +17 -0
  154. package/dist/types/number.cjs +16 -0
  155. package/dist/types/number.d.cts +18 -0
  156. package/dist/types/number.d.mts +18 -0
  157. package/dist/types/number.mjs +17 -0
  158. package/dist/types/object.cjs +16 -0
  159. package/dist/types/object.d.cts +18 -0
  160. package/dist/types/object.d.mts +18 -0
  161. package/dist/types/object.mjs +17 -0
  162. package/dist/types/pluralizer.cjs +16 -0
  163. package/dist/types/pluralizer.d.cts +18 -0
  164. package/dist/types/pluralizer.d.mts +18 -0
  165. package/dist/types/pluralizer.mjs +17 -0
  166. package/dist/types/string.cjs +16 -0
  167. package/dist/types/string.d.cts +18 -0
  168. package/dist/types/string.d.mts +18 -0
  169. package/dist/types/string.mjs +17 -0
  170. package/dist/types/stylog.cjs +16 -0
  171. package/dist/types/stylog.d.cts +18 -0
  172. package/dist/types/stylog.d.mts +18 -0
  173. package/dist/types/stylog.mjs +17 -0
  174. package/dist/types/utils.cjs +16 -0
  175. package/dist/types/utils.d.cts +18 -0
  176. package/dist/types/utils.d.mts +18 -0
  177. package/dist/types/utils.mjs +17 -0
  178. package/dist/types/verbalizer.cjs +16 -0
  179. package/dist/types/verbalizer.d.cts +30 -0
  180. package/dist/types/verbalizer.d.mts +30 -0
  181. package/dist/types/verbalizer.mjs +17 -0
  182. package/dist/utilities-CLUmdQeV.cjs +140 -0
  183. package/dist/utilities-m5yFKqLd.mjs +105 -0
  184. package/dist/utils-ClW9LA6f.mjs +449 -0
  185. package/dist/utils-DLFRgXUC.cjs +568 -0
  186. package/dist/verbalizer.cjs +998 -0
  187. package/dist/verbalizer.d.cts +148 -0
  188. package/dist/verbalizer.d.mts +148 -0
  189. package/dist/verbalizer.mjs +996 -0
  190. package/package.json +249 -0
package/dist/dom.d.cts ADDED
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Copyright 2026 - present Nazmul Hassan
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { A as ParsedQuery, G as Deserializer, M as QueryObject, ct as Serializer, j as ParsedQueryGeneric, y as GenericObject } from "./object-Blq0Amdv.cjs";
18
+ import { P as QueryString } from "./string-CsNsm_65.cjs";
19
+ import { a as OriginFileObj, i as FormDataConfigs, o as ParsedFormData, r as FileUpload, s as SerializedForm, t as CustomFile } from "./form-DRFbryvK.cjs";
20
+
21
+ //#region src/dom/query.d.ts
22
+ /**
23
+ * * Utility to generate query parameters from an object.
24
+ *
25
+ * @param params - Object containing query parameters.
26
+ * @returns A query string as a URL-encoded string, e.g., `?key1=value1&key2=value2`.
27
+ *
28
+ * @example
29
+ * generateQueryParams({ key1: 'value1', key2: 42 }); // "?key1=value1&key2=42"
30
+ * generateQueryParams({ key1: ['value1', 'value2'], key2: 42 }); // "?key1=value1&key1=value2&key2=42"
31
+ * generateQueryParams({ key1: '', key2: null }); // ""
32
+ * generateQueryParams({ key1: true, key2: false }); // "?key1=true&key2=false"
33
+ * generateQueryParams({ filters: { category: 'laptop', price: 1000 } }); // "?category=laptop&price=1000"
34
+ */
35
+ declare function generateQueryParams<T extends QueryObject>(params?: T): QueryString;
36
+ /**
37
+ * * Get query params as standard `JavaScript` Object `Record<string, string>`. You can define the type by passing a type argument.
38
+ *
39
+ * - **Note:** *Extracts query parameters from the current URL (window.location.search).*
40
+ *
41
+ * @returns Query string as key-value paired object. `Record<string, string>`.
42
+ */
43
+ declare function getQueryParams<QParams extends Record<string, string>>(): QParams;
44
+ /**
45
+ * * Update query params in the browser URL with given key and value.
46
+ * @param key Key for the query to update.
47
+ * @param value Value to updated against the given key.
48
+ */
49
+ declare function updateQueryParam(key: string, value: string): void;
50
+ /**
51
+ * Parses a query string (with optional `?` prefix) into an object.
52
+ * Supports multiple values for the same key by returning arrays.
53
+ * Optionally parses primitive string values into actual types (e.g., "1" → 1, "true" → true).
54
+ *
55
+ * @remarks This utility is designed to parse generic string, for literal use, try {@link parseQueryStringLiteral}.
56
+ *
57
+ * - **Note:** *This function does **not** access or depend on `current URL` a.k.a `window.location.search`.*
58
+ *
59
+ * @param query - The query string to parse.
60
+ * @param parsePrimitives - Whether to convert stringified primitives into real values (default: true).
61
+ * @returns An object where keys are strings and values can be string, array, number, boolean, or null/undefined.
62
+ */
63
+ declare function parseQueryString<QParams extends ParsedQueryGeneric>(query: string, parsePrimitives?: boolean): QParams;
64
+ /**
65
+ * Parses a query string (with optional `?` prefix) into an object.
66
+ * Supports multiple values for the same key by returning arrays.
67
+ * It returns properly typed object.
68
+ *
69
+ * @remarks This utility is designed to parse literal string, for generic use, try {@link parseQueryString}.
70
+ *
71
+ * - **Note:** *This function does **not** access or depend on `current URL` a.k.a `window.location.search`.*
72
+ *
73
+ * @param query - The literal query string to parse.
74
+ * @returns An object where keys are strings and values can be string, array, or null/undefined.
75
+ */
76
+ declare function parseQueryStringLiteral<Q extends string>(query: Q): ParsedQuery<Q>;
77
+ //#endregion
78
+ //#region src/dom/storage.d.ts
79
+ /**
80
+ * * Get item from local storage.
81
+ *
82
+ * @param key - Key to get item from local storage.
83
+ * @param deserialize - Optional deserializer function to convert the stored value back to type `T`. Defaults to `JSON.parse`.
84
+ * @returns Returns saved item from local storage if it exists with that key.
85
+ */
86
+ declare function getFromLocalStorage<T>(key: string, deserialize?: Deserializer<T>): T | null;
87
+ /**
88
+ * * Save item in local storage.
89
+ *
90
+ * @param key - Key to save an item.
91
+ * @param value - The item/value to save.
92
+ * @param serialize - Optional serializer function to convert the value of type `T` to a string. Defaults to `JSON.stringify`.
93
+ */
94
+ declare function saveToLocalStorage<T>(key: string, value: T, serialize?: Serializer<T>): void;
95
+ /**
96
+ * * Remove item from local storage.
97
+ *
98
+ * @param key - Key to delete item from local storage.
99
+ */
100
+ declare function removeFromLocalStorage(key: string): void;
101
+ /**
102
+ * * Get item from session storage.
103
+ *
104
+ * @param key - Key to get item from session storage.
105
+ * @param deserialize - Optional deserializer function to convert the stored value back to type `T`. Defaults to `JSON.parse`.
106
+ * @returns Returns saved item from session storage if it exists with that key.
107
+ */
108
+ declare function getFromSessionStorage<T>(key: string, deserialize?: Deserializer<T>): T | null;
109
+ /**
110
+ * * Save item in session storage.
111
+ *
112
+ * @param key - Key to save an item.
113
+ * @param value - The item/value to save.
114
+ * @param serialize - Optional serializer function to convert the value of type `T` to a string. Defaults to `JSON.stringify`.
115
+ */
116
+ declare function saveToSessionStorage<T>(key: string, value: T, serialize?: Serializer<T>): void;
117
+ /**
118
+ * * Remove item from session storage.
119
+ *
120
+ * @param key - Key to delete item from session storage.
121
+ */
122
+ declare function removeFromSessionStorage(key: string): void;
123
+ //#endregion
124
+ //#region src/dom/utils.d.ts
125
+ /**
126
+ * * Scrolls smoothly to the given element with an optional vertical offset.
127
+ * @param element The target element to scroll to.
128
+ * @param offset Additional vertical offset in pixels (positive moves down, negative moves up).
129
+ */
130
+ declare function smoothScrollTo(element: HTMLElement, offset?: number): void;
131
+ /**
132
+ * * Toggles full-screen mode for a given element (or the `document` by default).
133
+ * @param element The element to toggle fullscreen mode for (default: document root).
134
+ */
135
+ declare function toggleFullScreen(element?: HTMLElement): void;
136
+ /**
137
+ * * Copies text to the clipboard, falling back to legacy methods if needed.
138
+ * @param text - The text to copy.
139
+ * @returns A promise that resolves when the text is copied.
140
+ */
141
+ declare function copyToClipboard(text: string): Promise<void>;
142
+ //#endregion
143
+ //#region src/form/convert.d.ts
144
+ /**
145
+ * * Utility to convert object into FormData in a controlled way.
146
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
147
+ *
148
+ * @param data - The source object to control and convert to FormData.
149
+ * @param configs - Configuration options to control the formData.
150
+ * @returns `FormData` instance containing the sanitized and transformed data.
151
+ */
152
+ declare const createControlledFormData: <T extends GenericObject>(data: T, configs?: FormDataConfigs<T>) => FormData;
153
+ //#endregion
154
+ //#region src/form/guards.d.ts
155
+ /**
156
+ * * Checks if a given value is a valid `FormData` & it's not empty.
157
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
158
+ * @param value - The value to check.
159
+ * @returns `true` if the value is a valid `FormData` and not empty, otherwise `false`.
160
+ */
161
+ declare function isValidFormData(value: unknown): value is FormData;
162
+ /**
163
+ * * Checks if a given value is an `OriginFileObj`.
164
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
165
+ * @param value - The value to check.
166
+ * @returns `true` if the value is a valid `OriginFileObj`, otherwise `false`.
167
+ */
168
+ declare function isOriginFileObj(value: unknown): value is OriginFileObj;
169
+ /**
170
+ * * Checks if a given value is a `CustomFile`.
171
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
172
+ * @param value - The value to check.
173
+ * @returns `true` if the value is a valid `CustomFile`, otherwise `false`.
174
+ */
175
+ declare function isCustomFile(value: unknown): value is CustomFile;
176
+ /**
177
+ * * Checks if a given value is an array of `CustomFile` objects.
178
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
179
+ * @param value - The value to check.
180
+ * @returns `true` if the value is a valid `CustomFile[]`, otherwise `false`.
181
+ */
182
+ declare function isCustomFileArray(value: unknown): value is CustomFile[];
183
+ /**
184
+ * * Checks if a given value is an array of `File/Blob` objects.
185
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
186
+ * @param value - The value to check.
187
+ * @returns `true` if the value is a valid `File[]` or `Blob[]`, otherwise `false`.
188
+ */
189
+ declare function isFileArray(value: unknown): value is File[] | Blob[];
190
+ /**
191
+ * * Checks if a given value is an instance of `FileList`.
192
+ * @param value - The value to check.
193
+ * @returns `true` if the value is a valid `FileList`, otherwise `false`.
194
+ */
195
+ declare function isFileList(value: unknown): value is FileList;
196
+ /**
197
+ * * Checks if a given value is an instance of `File` or `Blob`.
198
+ * @param value - The value to check.
199
+ * @returns `true` if the value is an instance of `File` or `Blob`, otherwise `false`.
200
+ */
201
+ declare function isFileOrBlob(value: unknown): value is File | Blob;
202
+ /**
203
+ * * Checks if a given value is a `FileUpload` object.
204
+ * @param value - The value to check.
205
+ * @returns `true` if the value is a valid `FileUpload`, otherwise `false`.
206
+ */
207
+ declare function isFileUpload(value: unknown): value is FileUpload;
208
+ //#endregion
209
+ //#region src/form/transform.d.ts
210
+ /**
211
+ * * Serialize form data into an object or a query string.
212
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
213
+ *
214
+ * @param form - The form element to serialize.
215
+ * @param toQueryString - Whether to return the result as a query string. If false, returns an object.
216
+ * @returns The serialized form data as an object or query string.
217
+ */
218
+ declare function serializeForm<T extends boolean = false>(form: HTMLFormElement, toQueryString?: T): SerializedForm<T>;
219
+ /**
220
+ * * Parse form data from a `FormData` object or query string into a structured object format.
221
+ *
222
+ * @param data - The `FormData` object or query string to parse.
223
+ * @param parsePrimitives - Whether to parse string values into primitive types (e.g., boolean, number, array, object). Defaults to `true`.
224
+ * @returns The parsed form data as an object.
225
+ */
226
+ declare function parseFormData<T extends FormData | string>(data: T, parsePrimitives?: boolean): ParsedFormData<T>;
227
+ //#endregion
228
+ export { createControlledFormData as convertIntoFormData, createControlledFormData, createControlledFormData as createFormData, copyToClipboard, generateQueryParams as createQueryParams, generateQueryParams as formatQueryParams, generateQueryParams, getFromLocalStorage, getFromSessionStorage, getQueryParams, parseQueryString as getQueryStringAsObject, parseQueryString, parseQueryString as queryStringToObject, isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileOrBlob, isFileUpload, isOriginFileObj, isValidFormData, parseQueryStringLiteral as literalQueryStringToObject, parseQueryStringLiteral, parseFormData, removeFromLocalStorage, removeFromSessionStorage, saveToLocalStorage, saveToSessionStorage, serializeForm, smoothScrollTo, toggleFullScreen, updateQueryParam };
package/dist/dom.d.mts ADDED
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Copyright 2026 - present Nazmul Hassan
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { A as ParsedQuery, G as Deserializer, M as QueryObject, ct as Serializer, j as ParsedQueryGeneric, y as GenericObject } from "./object-B0TV3eHx.mjs";
18
+ import { P as QueryString } from "./string-CBAbxaG1.mjs";
19
+ import { a as OriginFileObj, i as FormDataConfigs, o as ParsedFormData, r as FileUpload, s as SerializedForm, t as CustomFile } from "./form-BMFVGUrN.mjs";
20
+
21
+ //#region src/dom/query.d.ts
22
+ /**
23
+ * * Utility to generate query parameters from an object.
24
+ *
25
+ * @param params - Object containing query parameters.
26
+ * @returns A query string as a URL-encoded string, e.g., `?key1=value1&key2=value2`.
27
+ *
28
+ * @example
29
+ * generateQueryParams({ key1: 'value1', key2: 42 }); // "?key1=value1&key2=42"
30
+ * generateQueryParams({ key1: ['value1', 'value2'], key2: 42 }); // "?key1=value1&key1=value2&key2=42"
31
+ * generateQueryParams({ key1: '', key2: null }); // ""
32
+ * generateQueryParams({ key1: true, key2: false }); // "?key1=true&key2=false"
33
+ * generateQueryParams({ filters: { category: 'laptop', price: 1000 } }); // "?category=laptop&price=1000"
34
+ */
35
+ declare function generateQueryParams<T extends QueryObject>(params?: T): QueryString;
36
+ /**
37
+ * * Get query params as standard `JavaScript` Object `Record<string, string>`. You can define the type by passing a type argument.
38
+ *
39
+ * - **Note:** *Extracts query parameters from the current URL (window.location.search).*
40
+ *
41
+ * @returns Query string as key-value paired object. `Record<string, string>`.
42
+ */
43
+ declare function getQueryParams<QParams extends Record<string, string>>(): QParams;
44
+ /**
45
+ * * Update query params in the browser URL with given key and value.
46
+ * @param key Key for the query to update.
47
+ * @param value Value to updated against the given key.
48
+ */
49
+ declare function updateQueryParam(key: string, value: string): void;
50
+ /**
51
+ * Parses a query string (with optional `?` prefix) into an object.
52
+ * Supports multiple values for the same key by returning arrays.
53
+ * Optionally parses primitive string values into actual types (e.g., "1" → 1, "true" → true).
54
+ *
55
+ * @remarks This utility is designed to parse generic string, for literal use, try {@link parseQueryStringLiteral}.
56
+ *
57
+ * - **Note:** *This function does **not** access or depend on `current URL` a.k.a `window.location.search`.*
58
+ *
59
+ * @param query - The query string to parse.
60
+ * @param parsePrimitives - Whether to convert stringified primitives into real values (default: true).
61
+ * @returns An object where keys are strings and values can be string, array, number, boolean, or null/undefined.
62
+ */
63
+ declare function parseQueryString<QParams extends ParsedQueryGeneric>(query: string, parsePrimitives?: boolean): QParams;
64
+ /**
65
+ * Parses a query string (with optional `?` prefix) into an object.
66
+ * Supports multiple values for the same key by returning arrays.
67
+ * It returns properly typed object.
68
+ *
69
+ * @remarks This utility is designed to parse literal string, for generic use, try {@link parseQueryString}.
70
+ *
71
+ * - **Note:** *This function does **not** access or depend on `current URL` a.k.a `window.location.search`.*
72
+ *
73
+ * @param query - The literal query string to parse.
74
+ * @returns An object where keys are strings and values can be string, array, or null/undefined.
75
+ */
76
+ declare function parseQueryStringLiteral<Q extends string>(query: Q): ParsedQuery<Q>;
77
+ //#endregion
78
+ //#region src/dom/storage.d.ts
79
+ /**
80
+ * * Get item from local storage.
81
+ *
82
+ * @param key - Key to get item from local storage.
83
+ * @param deserialize - Optional deserializer function to convert the stored value back to type `T`. Defaults to `JSON.parse`.
84
+ * @returns Returns saved item from local storage if it exists with that key.
85
+ */
86
+ declare function getFromLocalStorage<T>(key: string, deserialize?: Deserializer<T>): T | null;
87
+ /**
88
+ * * Save item in local storage.
89
+ *
90
+ * @param key - Key to save an item.
91
+ * @param value - The item/value to save.
92
+ * @param serialize - Optional serializer function to convert the value of type `T` to a string. Defaults to `JSON.stringify`.
93
+ */
94
+ declare function saveToLocalStorage<T>(key: string, value: T, serialize?: Serializer<T>): void;
95
+ /**
96
+ * * Remove item from local storage.
97
+ *
98
+ * @param key - Key to delete item from local storage.
99
+ */
100
+ declare function removeFromLocalStorage(key: string): void;
101
+ /**
102
+ * * Get item from session storage.
103
+ *
104
+ * @param key - Key to get item from session storage.
105
+ * @param deserialize - Optional deserializer function to convert the stored value back to type `T`. Defaults to `JSON.parse`.
106
+ * @returns Returns saved item from session storage if it exists with that key.
107
+ */
108
+ declare function getFromSessionStorage<T>(key: string, deserialize?: Deserializer<T>): T | null;
109
+ /**
110
+ * * Save item in session storage.
111
+ *
112
+ * @param key - Key to save an item.
113
+ * @param value - The item/value to save.
114
+ * @param serialize - Optional serializer function to convert the value of type `T` to a string. Defaults to `JSON.stringify`.
115
+ */
116
+ declare function saveToSessionStorage<T>(key: string, value: T, serialize?: Serializer<T>): void;
117
+ /**
118
+ * * Remove item from session storage.
119
+ *
120
+ * @param key - Key to delete item from session storage.
121
+ */
122
+ declare function removeFromSessionStorage(key: string): void;
123
+ //#endregion
124
+ //#region src/dom/utils.d.ts
125
+ /**
126
+ * * Scrolls smoothly to the given element with an optional vertical offset.
127
+ * @param element The target element to scroll to.
128
+ * @param offset Additional vertical offset in pixels (positive moves down, negative moves up).
129
+ */
130
+ declare function smoothScrollTo(element: HTMLElement, offset?: number): void;
131
+ /**
132
+ * * Toggles full-screen mode for a given element (or the `document` by default).
133
+ * @param element The element to toggle fullscreen mode for (default: document root).
134
+ */
135
+ declare function toggleFullScreen(element?: HTMLElement): void;
136
+ /**
137
+ * * Copies text to the clipboard, falling back to legacy methods if needed.
138
+ * @param text - The text to copy.
139
+ * @returns A promise that resolves when the text is copied.
140
+ */
141
+ declare function copyToClipboard(text: string): Promise<void>;
142
+ //#endregion
143
+ //#region src/form/convert.d.ts
144
+ /**
145
+ * * Utility to convert object into FormData in a controlled way.
146
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
147
+ *
148
+ * @param data - The source object to control and convert to FormData.
149
+ * @param configs - Configuration options to control the formData.
150
+ * @returns `FormData` instance containing the sanitized and transformed data.
151
+ */
152
+ declare const createControlledFormData: <T extends GenericObject>(data: T, configs?: FormDataConfigs<T>) => FormData;
153
+ //#endregion
154
+ //#region src/form/guards.d.ts
155
+ /**
156
+ * * Checks if a given value is a valid `FormData` & it's not empty.
157
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
158
+ * @param value - The value to check.
159
+ * @returns `true` if the value is a valid `FormData` and not empty, otherwise `false`.
160
+ */
161
+ declare function isValidFormData(value: unknown): value is FormData;
162
+ /**
163
+ * * Checks if a given value is an `OriginFileObj`.
164
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
165
+ * @param value - The value to check.
166
+ * @returns `true` if the value is a valid `OriginFileObj`, otherwise `false`.
167
+ */
168
+ declare function isOriginFileObj(value: unknown): value is OriginFileObj;
169
+ /**
170
+ * * Checks if a given value is a `CustomFile`.
171
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
172
+ * @param value - The value to check.
173
+ * @returns `true` if the value is a valid `CustomFile`, otherwise `false`.
174
+ */
175
+ declare function isCustomFile(value: unknown): value is CustomFile;
176
+ /**
177
+ * * Checks if a given value is an array of `CustomFile` objects.
178
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
179
+ * @param value - The value to check.
180
+ * @returns `true` if the value is a valid `CustomFile[]`, otherwise `false`.
181
+ */
182
+ declare function isCustomFileArray(value: unknown): value is CustomFile[];
183
+ /**
184
+ * * Checks if a given value is an array of `File/Blob` objects.
185
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
186
+ * @param value - The value to check.
187
+ * @returns `true` if the value is a valid `File[]` or `Blob[]`, otherwise `false`.
188
+ */
189
+ declare function isFileArray(value: unknown): value is File[] | Blob[];
190
+ /**
191
+ * * Checks if a given value is an instance of `FileList`.
192
+ * @param value - The value to check.
193
+ * @returns `true` if the value is a valid `FileList`, otherwise `false`.
194
+ */
195
+ declare function isFileList(value: unknown): value is FileList;
196
+ /**
197
+ * * Checks if a given value is an instance of `File` or `Blob`.
198
+ * @param value - The value to check.
199
+ * @returns `true` if the value is an instance of `File` or `Blob`, otherwise `false`.
200
+ */
201
+ declare function isFileOrBlob(value: unknown): value is File | Blob;
202
+ /**
203
+ * * Checks if a given value is a `FileUpload` object.
204
+ * @param value - The value to check.
205
+ * @returns `true` if the value is a valid `FileUpload`, otherwise `false`.
206
+ */
207
+ declare function isFileUpload(value: unknown): value is FileUpload;
208
+ //#endregion
209
+ //#region src/form/transform.d.ts
210
+ /**
211
+ * * Serialize form data into an object or a query string.
212
+ * - **N.B.** Be cautious when using this in SSR (Server-Side Rendering) environments (such as `Next.js` Server Components), as it may not work as expected.
213
+ *
214
+ * @param form - The form element to serialize.
215
+ * @param toQueryString - Whether to return the result as a query string. If false, returns an object.
216
+ * @returns The serialized form data as an object or query string.
217
+ */
218
+ declare function serializeForm<T extends boolean = false>(form: HTMLFormElement, toQueryString?: T): SerializedForm<T>;
219
+ /**
220
+ * * Parse form data from a `FormData` object or query string into a structured object format.
221
+ *
222
+ * @param data - The `FormData` object or query string to parse.
223
+ * @param parsePrimitives - Whether to parse string values into primitive types (e.g., boolean, number, array, object). Defaults to `true`.
224
+ * @returns The parsed form data as an object.
225
+ */
226
+ declare function parseFormData<T extends FormData | string>(data: T, parsePrimitives?: boolean): ParsedFormData<T>;
227
+ //#endregion
228
+ export { createControlledFormData as convertIntoFormData, createControlledFormData, createControlledFormData as createFormData, copyToClipboard, generateQueryParams as createQueryParams, generateQueryParams as formatQueryParams, generateQueryParams, getFromLocalStorage, getFromSessionStorage, getQueryParams, parseQueryString as getQueryStringAsObject, parseQueryString, parseQueryString as queryStringToObject, isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileOrBlob, isFileUpload, isOriginFileObj, isValidFormData, parseQueryStringLiteral as literalQueryStringToObject, parseQueryStringLiteral, parseFormData, removeFromLocalStorage, removeFromSessionStorage, saveToLocalStorage, saveToSessionStorage, serializeForm, smoothScrollTo, toggleFullScreen, updateQueryParam };