@rzl-zone/utils-js 3.12.1-beta.1 → 3.13.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -31
- package/dist/.references/index.d.cts +1 -3
- package/dist/.references/index.d.ts +1 -3
- package/dist/{assertIsArray-bTA3XLjq.js → assertIsArray-6BcSdNa-.js} +3 -3
- package/dist/{assertIsArray-bTA3XLjq.js.map → assertIsArray-6BcSdNa-.js.map} +1 -1
- package/dist/{assertIsArray-DJXkjHZs.cjs → assertIsArray-BqjMoan3.cjs} +3 -3
- package/dist/{assertIsArray-DJXkjHZs.cjs.map → assertIsArray-BqjMoan3.cjs.map} +1 -1
- package/dist/{assertIsBoolean-DR1SaXPD.js → assertIsBoolean-Bv6gL-xe.js} +2 -2
- package/dist/{assertIsBoolean-DR1SaXPD.js.map → assertIsBoolean-Bv6gL-xe.js.map} +1 -1
- package/dist/{assertIsBoolean-C8WEXVr2.cjs → assertIsBoolean-amRiJHnh.cjs} +2 -2
- package/dist/{assertIsBoolean-C8WEXVr2.cjs.map → assertIsBoolean-amRiJHnh.cjs.map} +1 -1
- package/dist/{assertIsString-CEB07_83.js → assertIsString-1WiUjgqf.js} +3 -3
- package/dist/{assertIsString-CEB07_83.js.map → assertIsString-1WiUjgqf.js.map} +1 -1
- package/dist/{assertIsString-BiHQSrB2.cjs → assertIsString-C0b28AU1.cjs} +3 -3
- package/dist/{assertIsString-BiHQSrB2.cjs.map → assertIsString-C0b28AU1.cjs.map} +1 -1
- package/dist/assertions/index.cjs +5 -5
- package/dist/assertions/index.d.cts +2 -2
- package/dist/assertions/index.d.ts +2 -2
- package/dist/assertions/index.js +5 -5
- package/dist/conversions/index.cjs +6 -6
- package/dist/conversions/index.d.cts +2 -2
- package/dist/conversions/index.d.ts +2 -2
- package/dist/conversions/index.js +6 -6
- package/dist/{conversions-BNIh_tCH.js → conversions-BrI0GIOr.js} +12 -12
- package/dist/{conversions-BNIh_tCH.js.map → conversions-BrI0GIOr.js.map} +1 -1
- package/dist/{conversions-D_Kh0a_C.cjs → conversions-lvvAYiZs.cjs} +12 -12
- package/dist/{conversions-D_Kh0a_C.cjs.map → conversions-lvvAYiZs.cjs.map} +1 -1
- package/dist/events/index.cjs +4 -4
- package/dist/events/index.d.cts +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.js +4 -4
- package/dist/formatters/index.cjs +2 -2
- package/dist/formatters/index.d.cts +2 -2
- package/dist/formatters/index.d.ts +2 -2
- package/dist/formatters/index.js +2 -2
- package/dist/{formatters-Cbij0XLU.cjs → formatters-DQr05EUA.cjs} +10 -10
- package/dist/{formatters-Cbij0XLU.cjs.map → formatters-DQr05EUA.cjs.map} +1 -1
- package/dist/{formatters--1m_vpE8.js → formatters-zDzQvtb4.js} +10 -10
- package/dist/{formatters--1m_vpE8.js.map → formatters-zDzQvtb4.js.map} +1 -1
- package/dist/generators/index.cjs +5 -5
- package/dist/generators/index.d.cts +2 -2
- package/dist/generators/index.d.ts +2 -2
- package/dist/generators/index.js +5 -5
- package/dist/{index-59zbLcPr.d.ts → index-3jBnthag.d.cts} +1 -1
- package/dist/{index-UPp94Agr.d.ts → index-BXwimNPA.d.cts} +2 -2
- package/dist/{index-C267akkJ.d.ts → index-BlTCrSyc.d.cts} +2 -2
- package/dist/{index-Qm3iFwd0.d.cts → index-CEm8ZOvj.d.ts} +2 -2
- package/dist/{index-jyDqzicx.d.cts → index-CLq5kZmQ.d.cts} +2 -2
- package/dist/{index-CeBC2Vvl.d.cts → index-Ckao53JY.d.ts} +2 -2
- package/dist/{index-D4fcasfZ.d.cts → index-DHHrLc0B.d.ts} +241 -14
- package/dist/{index-gBA_8SuF.d.cts → index-DIeR8qa-.d.ts} +1 -1
- package/dist/{index-B6tawc8L.d.cts → index-DxZlGbAH.d.ts} +1 -1
- package/dist/{index-Hg1qJkjl.d.ts → index-DyVWeYP3.d.cts} +1 -1
- package/dist/{index-CgRDTI6f.d.ts → index-GSUN6rjA.d.ts} +2 -2
- package/dist/{index-DsGxO31H.d.cts → index-_dJhBl1h.d.ts} +1 -1
- package/dist/{index-DDrSQKIc.d.ts → index-bMa-0Yr4.d.cts} +1 -1
- package/dist/{index-CoiUBVmr.d.ts → index-z_uCh5KW.d.cts} +241 -14
- package/dist/{isBigInt-C4krUeAw.cjs → isBigInt-CIFRnsdx.cjs} +2 -2
- package/dist/{isBigInt-C4krUeAw.cjs.map → isBigInt-CIFRnsdx.cjs.map} +1 -1
- package/dist/{isBigInt-DKe0M6hp.js → isBigInt-D-Pu9sxp.js} +2 -2
- package/dist/{isBigInt-DKe0M6hp.js.map → isBigInt-D-Pu9sxp.js.map} +1 -1
- package/dist/{isEmptyObject-ZkSwRC_D.cjs → isEmptyObject-CEySmyHK.cjs} +3 -3
- package/dist/{isEmptyObject-ZkSwRC_D.cjs.map → isEmptyObject-CEySmyHK.cjs.map} +1 -1
- package/dist/{isEmptyObject-DCipFwxJ.js → isEmptyObject-CZ9DLi7R.js} +3 -3
- package/dist/{isEmptyObject-DCipFwxJ.js.map → isEmptyObject-CZ9DLi7R.js.map} +1 -1
- package/dist/{isEmptyString-BXzKAC2j.js → isEmptyString-DFDtBbNr.js} +3 -3
- package/dist/{isEmptyString-BXzKAC2j.js.map → isEmptyString-DFDtBbNr.js.map} +1 -1
- package/dist/{isEmptyString-UiiUsSQj.cjs → isEmptyString-DI64RQCy.cjs} +3 -3
- package/dist/{isEmptyString-UiiUsSQj.cjs.map → isEmptyString-DI64RQCy.cjs.map} +1 -1
- package/dist/{isEmptyValue-BQzcjVaL.cjs → isEmptyValue-Cw6ovu7z.cjs} +5 -5
- package/dist/{isEmptyValue-BQzcjVaL.cjs.map → isEmptyValue-Cw6ovu7z.cjs.map} +1 -1
- package/dist/{isEmptyValue-jqOr7OHD.js → isEmptyValue-aGyeClwA.js} +5 -5
- package/dist/{isEmptyValue-jqOr7OHD.js.map → isEmptyValue-aGyeClwA.js.map} +1 -1
- package/dist/{isEqual-BX49cF9m.js → isEqual-Dtb2sXUv.js} +4 -4
- package/dist/{isEqual-BX49cF9m.js.map → isEqual-Dtb2sXUv.js.map} +1 -1
- package/dist/{isEqual-BvumA3RA.cjs → isEqual-UsvOwrlY.cjs} +4 -4
- package/dist/{isEqual-BvumA3RA.cjs.map → isEqual-UsvOwrlY.cjs.map} +1 -1
- package/dist/{isFinite-BCnaDpod.js → isFinite-Cz_IFXuV.js} +3 -3
- package/dist/{isFinite-BCnaDpod.js.map → isFinite-Cz_IFXuV.js.map} +1 -1
- package/dist/{isFinite-D24ZaE6c.cjs → isFinite-uukWvxJh.cjs} +3 -3
- package/dist/{isFinite-D24ZaE6c.cjs.map → isFinite-uukWvxJh.cjs.map} +1 -1
- package/dist/{isInteger-Caeuz0rB.cjs → isInteger-DPYjliLZ.cjs} +2 -2
- package/dist/{isInteger-Caeuz0rB.cjs.map → isInteger-DPYjliLZ.cjs.map} +1 -1
- package/dist/{isInteger-naMbJsxJ.js → isInteger-DZ163OQg.js} +2 -2
- package/dist/{isInteger-naMbJsxJ.js.map → isInteger-DZ163OQg.js.map} +1 -1
- package/dist/{isPlainObject-BF-2-phb.d.cts → isPlainObject-CBABRyEX.d.cts} +1 -1
- package/dist/{isPlainObject-DxNDL8XU.d.ts → isPlainObject-Dr8gi89U.d.ts} +1 -1
- package/dist/{isServer-Da3o3XSs.js → isServer-BDShLyVJ.js} +2 -2
- package/dist/{isServer-Da3o3XSs.js.map → isServer-BDShLyVJ.js.map} +1 -1
- package/dist/{isServer-BJHVnixd.cjs → isServer-BzDeYuGg.cjs} +2 -2
- package/dist/{isServer-BJHVnixd.cjs.map → isServer-BzDeYuGg.cjs.map} +1 -1
- package/dist/{isTypedArray-TJptiw2b.cjs → isTypedArray-DaYAkyrt.cjs} +3 -3
- package/dist/{isTypedArray-TJptiw2b.cjs.map → isTypedArray-DaYAkyrt.cjs.map} +1 -1
- package/dist/{isTypedArray-DuNA8tK6.js → isTypedArray-DuUUA4CL.js} +3 -3
- package/dist/{isTypedArray-DuNA8tK6.js.map → isTypedArray-DuUUA4CL.js.map} +1 -1
- package/dist/{isValidDomain-BB9IGhJs.cjs → isValidDomain-BxyToAlh.cjs} +14 -5
- package/dist/isValidDomain-BxyToAlh.cjs.map +1 -0
- package/dist/{isValidDomain-DoE98yhJ.js → isValidDomain-CTw5vZFY.js} +9 -6
- package/dist/isValidDomain-CTw5vZFY.js.map +1 -0
- package/dist/{noop-B13_ii35.cjs → noop-7KrqC9DC.cjs} +2 -2
- package/dist/{noop-B13_ii35.cjs.map → noop-7KrqC9DC.cjs.map} +1 -1
- package/dist/{noop-ubqAIbHD.js → noop-DGg9vMSD.js} +2 -2
- package/dist/{noop-ubqAIbHD.js.map → noop-DGg9vMSD.js.map} +1 -1
- package/dist/{normalizeSpaces-ZXnR4Qzp.cjs → normalizeSpaces-B6ZQOZRX.cjs} +3 -3
- package/dist/{normalizeSpaces-ZXnR4Qzp.cjs.map → normalizeSpaces-B6ZQOZRX.cjs.map} +1 -1
- package/dist/{normalizeSpaces-Bg2IZW7W.js → normalizeSpaces-C1eLwykD.js} +3 -3
- package/dist/{normalizeSpaces-Bg2IZW7W.js.map → normalizeSpaces-C1eLwykD.js.map} +1 -1
- package/dist/operations/index.cjs +7 -7
- package/dist/operations/index.d.cts +1 -1
- package/dist/operations/index.d.ts +1 -1
- package/dist/operations/index.js +7 -7
- package/dist/parsers/index.cjs +2 -2
- package/dist/parsers/index.d.cts +1 -1
- package/dist/parsers/index.d.ts +1 -1
- package/dist/parsers/index.js +2 -2
- package/dist/{parsers-OqDeffqc.cjs → parsers-DEFpCYhw.cjs} +4 -4
- package/dist/{parsers-OqDeffqc.cjs.map → parsers-DEFpCYhw.cjs.map} +1 -1
- package/dist/{parsers-BSBPgvsq.js → parsers-bQQ9mStV.js} +4 -4
- package/dist/{parsers-BSBPgvsq.js.map → parsers-bQQ9mStV.js.map} +1 -1
- package/dist/{parsing-Cao8b358.js → parsing-BngARhmu.js} +3 -3
- package/dist/{parsing-Cao8b358.js.map → parsing-BngARhmu.js.map} +1 -1
- package/dist/{parsing-DOGSCH6N.cjs → parsing-lI5EN4LY.cjs} +3 -3
- package/dist/{parsing-DOGSCH6N.cjs.map → parsing-lI5EN4LY.cjs.map} +1 -1
- package/dist/predicates/index.cjs +15 -16
- package/dist/predicates/index.d.cts +3 -3
- package/dist/predicates/index.d.ts +3 -3
- package/dist/predicates/index.js +14 -15
- package/dist/{predicates-D0ubqgqy.cjs → predicates-CMmP3fPJ.cjs} +13 -13
- package/dist/{predicates-D0ubqgqy.cjs.map → predicates-CMmP3fPJ.cjs.map} +1 -1
- package/dist/{predicates-Bj6meyXV.js → predicates-V87QD8hs.js} +11 -11
- package/dist/{predicates-Bj6meyXV.js.map → predicates-V87QD8hs.js.map} +1 -1
- package/dist/promises/index.cjs +4 -4
- package/dist/promises/index.d.cts +1 -1
- package/dist/promises/index.d.ts +1 -1
- package/dist/promises/index.js +4 -4
- package/dist/{punyCode-8SrbMWfM.js → punyCode-BeFYDjj0.js} +4 -4
- package/dist/{punyCode-8SrbMWfM.js.map → punyCode-BeFYDjj0.js.map} +1 -1
- package/dist/{punyCode-D-Qu6nj6.cjs → punyCode-DmTsB7q_.cjs} +4 -4
- package/dist/{punyCode-D-Qu6nj6.cjs.map → punyCode-DmTsB7q_.cjs.map} +1 -1
- package/dist/{removeSpaces-Bmc5DX4F.js → removeSpaces-B96axxP6.js} +7 -4
- package/dist/removeSpaces-B96axxP6.js.map +1 -0
- package/dist/{removeSpaces-CWIvhZHg.cjs → removeSpaces-C8mu_yp3.cjs} +12 -3
- package/dist/removeSpaces-C8mu_yp3.cjs.map +1 -0
- package/dist/rzl-utils.global.js +1 -1
- package/dist/{safeJsonParse-Sms2CJf4.cjs → safeJsonParse-BXbtX_j7.cjs} +6 -6
- package/dist/{safeJsonParse-Sms2CJf4.cjs.map → safeJsonParse-BXbtX_j7.cjs.map} +1 -1
- package/dist/{safeJsonParse-BP38mwlj.js → safeJsonParse-DyCsTXlU.js} +6 -6
- package/dist/{safeJsonParse-BP38mwlj.js.map → safeJsonParse-DyCsTXlU.js.map} +1 -1
- package/dist/{safeStableStringify-CXOZ9Ub8.js → safeStableStringify-BrOcdX9n.js} +4 -4
- package/dist/{safeStableStringify-CXOZ9Ub8.js.map → safeStableStringify-BrOcdX9n.js.map} +1 -1
- package/dist/{safeStableStringify-CJtP89qn.cjs → safeStableStringify-DRYQ56Dg.cjs} +4 -4
- package/dist/{safeStableStringify-CJtP89qn.cjs.map → safeStableStringify-DRYQ56Dg.cjs.map} +1 -1
- package/dist/strings/index.cjs +6 -7
- package/dist/strings/index.cjs.map +1 -1
- package/dist/strings/index.d.cts +2 -2
- package/dist/strings/index.d.ts +2 -2
- package/dist/strings/index.js +5 -6
- package/dist/strings/index.js.map +1 -1
- package/dist/tailwind/index.cjs +6 -2
- package/dist/tailwind/index.d.cts +3 -3
- package/dist/tailwind/index.d.ts +3 -3
- package/dist/tailwind/index.js +3 -3
- package/dist/{tailwind-B2ssevxq.js → tailwind-BZ2_MeNX.js} +18 -8
- package/dist/tailwind-BZ2_MeNX.js.map +1 -0
- package/dist/{tailwind-CHIx9uxu.cjs → tailwind-C1YtxJ-K.cjs} +39 -5
- package/dist/tailwind-C1YtxJ-K.cjs.map +1 -0
- package/dist/{toStringArrayUnRecursive-C4zYCja7.cjs → toStringArrayUnRecursive-D1mPM4wg.cjs} +6 -6
- package/dist/{toStringArrayUnRecursive-C4zYCja7.cjs.map → toStringArrayUnRecursive-D1mPM4wg.cjs.map} +1 -1
- package/dist/{toStringArrayUnRecursive-DJGtPsFb.js → toStringArrayUnRecursive-tHp2a7KR.js} +6 -6
- package/dist/{toStringArrayUnRecursive-DJGtPsFb.js.map → toStringArrayUnRecursive-tHp2a7KR.js.map} +1 -1
- package/dist/urls/index.cjs +9 -120
- package/dist/urls/index.d.cts +1 -1
- package/dist/urls/index.d.ts +1 -1
- package/dist/urls/index.js +3 -114
- package/dist/urls-CoxDAoki.js +263 -0
- package/dist/urls-CoxDAoki.js.map +1 -0
- package/dist/urls-DCyx8Wpk.cjs +299 -0
- package/dist/urls-DCyx8Wpk.cjs.map +1 -0
- package/package.json +3 -24
- package/dist/formatEnvPort-B3OLxQk9.cjs +0 -171
- package/dist/formatEnvPort-B3OLxQk9.cjs.map +0 -1
- package/dist/formatEnvPort-ByFVLjSV.js +0 -159
- package/dist/formatEnvPort-ByFVLjSV.js.map +0 -1
- package/dist/isURL-C-kSk6KJ.js +0 -14
- package/dist/isURL-C-kSk6KJ.js.map +0 -1
- package/dist/isURL-DeUPO_oR.cjs +0 -20
- package/dist/isURL-DeUPO_oR.cjs.map +0 -1
- package/dist/isValidDomain-BB9IGhJs.cjs.map +0 -1
- package/dist/isValidDomain-DoE98yhJ.js.map +0 -1
- package/dist/next/index.cjs +0 -129
- package/dist/next/index.cjs.map +0 -1
- package/dist/next/index.d.cts +0 -220
- package/dist/next/index.d.ts +0 -220
- package/dist/next/index.js +0 -124
- package/dist/next/index.js.map +0 -1
- package/dist/next/server/index.cjs +0 -28
- package/dist/next/server/index.cjs.map +0 -1
- package/dist/next/server/index.d.cts +0 -39
- package/dist/next/server/index.d.ts +0 -39
- package/dist/next/server/index.js +0 -26
- package/dist/next/server/index.js.map +0 -1
- package/dist/normalizeString-BDdkaXui.js +0 -15
- package/dist/normalizeString-BDdkaXui.js.map +0 -1
- package/dist/normalizeString-BE6ELqEb.cjs +0 -21
- package/dist/normalizeString-BE6ELqEb.cjs.map +0 -1
- package/dist/removeSpaces-Bmc5DX4F.js.map +0 -1
- package/dist/removeSpaces-CWIvhZHg.cjs.map +0 -1
- package/dist/tailwind-B2ssevxq.js.map +0 -1
- package/dist/tailwind-CHIx9uxu.cjs.map +0 -1
- package/dist/urls/index.cjs.map +0 -1
- package/dist/urls/index.js.map +0 -1
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { ClassNameValue, ConfigExtension } from "tailwind-merge-v3";
|
|
12
|
-
import { ClassNameValue as ClassNameValue$1, ConfigExtension as ConfigExtension$1 } from "tailwind-merge-v4";
|
|
13
11
|
import { Stringify } from "@rzl-zone/ts-types-plus";
|
|
14
12
|
import { Config } from "tailwindcss";
|
|
13
|
+
import { ClassNameValue, ConfigExtension } from "tailwind-merge-v3";
|
|
14
|
+
import { ClassNameValue as ClassNameValue$1, ConfigExtension as ConfigExtension$1 } from "tailwind-merge-v4";
|
|
15
15
|
/** ----------------------------------------------------------
|
|
16
16
|
* * ***Type-Utility: `ClassValue`.***
|
|
17
17
|
* ----------------------------------------------------------
|
|
@@ -117,21 +117,127 @@ type ClassValues = ClassValue[];
|
|
|
117
117
|
* ```
|
|
118
118
|
*/
|
|
119
119
|
declare function cx(...values: ClassValues): string;
|
|
120
|
+
/** -------------------------------------------------------------------
|
|
121
|
+
* * ***Combines and merges class utility values into a single normalized
|
|
122
|
+
* string with `Tailwind CSS v3` conflict resolution.***
|
|
123
|
+
* --------------------------------------------------------------------
|
|
124
|
+
*
|
|
125
|
+
* This utility composes {@link cx | `cx`} and {@link twMergeV3 | `twMerge`} version **2** for ***`tailwind version 3`***:
|
|
126
|
+
*
|
|
127
|
+
* - `cx` handles flexible class inputs (like `clsx`)
|
|
128
|
+
* - `twMerge` resolves Tailwind CSS utility conflicts
|
|
129
|
+
*
|
|
130
|
+
* This provides a complete solution for conditional class composition
|
|
131
|
+
* with deterministic Tailwind merging.
|
|
132
|
+
*
|
|
133
|
+
* - **Behavior:**
|
|
134
|
+
* - Accepts strings, numbers, arrays, and objects
|
|
135
|
+
* - Supports deeply nested class structures
|
|
136
|
+
* - Ignores falsy values (`false`, `null`, `undefined`, `""`, `0`)
|
|
137
|
+
* - Includes object keys with truthy values (including inherited keys)
|
|
138
|
+
* - Unwraps boxed primitives (`new String()`, etc.)
|
|
139
|
+
* - Resolves Tailwind utility conflicts deterministically
|
|
140
|
+
* - Keeps the last conflicting class based on input order
|
|
141
|
+
* - Produces a clean, space-normalized class string
|
|
142
|
+
*
|
|
143
|
+
* This utility is a drop-in replacement for `clsx` or `classnames`
|
|
144
|
+
* with built-in Tailwind conflict resolution.
|
|
145
|
+
*
|
|
146
|
+
* @param values - A list of mixed class values including strings,
|
|
147
|
+
* numbers, arrays, objects, and conditional expressions.
|
|
148
|
+
*
|
|
149
|
+
* @returns A merged and normalized CSS class string.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* cn(
|
|
154
|
+
* "p-2",
|
|
155
|
+
* isActive && "bg-blue-500",
|
|
156
|
+
* ["text-sm", { "font-bold": isBold }],
|
|
157
|
+
* null,
|
|
158
|
+
* 0
|
|
159
|
+
* );
|
|
160
|
+
* // => "p-2 bg-blue-500 text-sm font-bold"
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* cn("p-2 p-4", { "text-sm": true, "text-lg": true });
|
|
166
|
+
* // => "p-4 text-lg"
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
declare const cnVer3: (...values: ClassValues) => string;
|
|
170
|
+
/** -------------------------------------------------------------------
|
|
171
|
+
* * ***Combines and merges class utility values into a single normalized
|
|
172
|
+
* string with `Tailwind CSS v4` conflict resolution.***
|
|
173
|
+
* --------------------------------------------------------------------
|
|
174
|
+
*
|
|
175
|
+
* This utility composes {@link cx | `cx`} and {@link twMergeV4 | `twMerge`} version **3** for ***`tailwind version 4`***:
|
|
176
|
+
*
|
|
177
|
+
* - `cx` handles flexible class inputs (like `clsx`)
|
|
178
|
+
* - `twMerge` resolves Tailwind CSS utility conflicts
|
|
179
|
+
*
|
|
180
|
+
* This provides a complete solution for conditional class composition
|
|
181
|
+
* with deterministic Tailwind merging.
|
|
182
|
+
*
|
|
183
|
+
* - **Behavior:**
|
|
184
|
+
* - Accepts strings, numbers, arrays, and objects
|
|
185
|
+
* - Supports deeply nested class structures
|
|
186
|
+
* - Ignores falsy values (`false`, `null`, `undefined`, `""`, `0`)
|
|
187
|
+
* - Includes object keys with truthy values (including inherited keys)
|
|
188
|
+
* - Unwraps boxed primitives (`new String()`, etc.)
|
|
189
|
+
* - Resolves Tailwind utility conflicts deterministically
|
|
190
|
+
* - Keeps the last conflicting class based on input order
|
|
191
|
+
* - Produces a clean, space-normalized class string
|
|
192
|
+
*
|
|
193
|
+
* This utility is a drop-in replacement for `clsx` or `classnames`
|
|
194
|
+
* with built-in Tailwind conflict resolution.
|
|
195
|
+
*
|
|
196
|
+
* @param values - A list of mixed class values including strings,
|
|
197
|
+
* numbers, arrays, objects, and conditional expressions.
|
|
198
|
+
*
|
|
199
|
+
* @returns A merged and normalized CSS class string.
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```ts
|
|
203
|
+
* cn(
|
|
204
|
+
* "p-2",
|
|
205
|
+
* isActive && "bg-blue-500",
|
|
206
|
+
* ["text-sm", { "font-bold": isBold }],
|
|
207
|
+
* null,
|
|
208
|
+
* 0
|
|
209
|
+
* );
|
|
210
|
+
* // => "p-2 bg-blue-500 text-sm font-bold"
|
|
211
|
+
* ```
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```ts
|
|
215
|
+
* cn("p-2 p-4", { "text-sm": true, "text-lg": true });
|
|
216
|
+
* // => "p-4 text-lg"
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
declare const cnVer4: (...values: ClassValues) => string;
|
|
120
220
|
/** -------------------------------------------------------------
|
|
121
221
|
* * ***Default `cnV3` utility (Tailwind v3).***
|
|
122
222
|
* -------------------------------------------------------------
|
|
223
|
+
*
|
|
123
224
|
* **Combines class-name values and then deduplicates/resolves
|
|
124
225
|
* conflicts using {@link twMergeDefaultV3 | `twMergeDefaultV3`}
|
|
125
226
|
* with **Tailwind v3 default config only**.**
|
|
126
227
|
* - ✅ **Use this when:**
|
|
127
|
-
*
|
|
128
|
-
*
|
|
228
|
+
* - Your project uses **Tailwind v3**.
|
|
229
|
+
* - You need a simple `cn` that works out of the box without a custom config.
|
|
129
230
|
* - ⚡ **Need custom rules?**
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
231
|
+
* - Create a project-wide helper using
|
|
232
|
+
* {@link twMergeDefaultV3 | `twMergeDefaultV3`} +
|
|
233
|
+
* {@link customCnV3 | `customCnV3`} (see Example 2).
|
|
234
|
+
*
|
|
235
|
+
* @deprecated ***Still supported, but significantly slower during hydration because it uses extended runtime merge logic, prefer {@link cnVer3 | `cnVer3`} for
|
|
236
|
+
* better performance, this utility may be removed in a future release.***
|
|
237
|
+
*
|
|
133
238
|
* @param {ClassValues} classes - Class values (`string`, `array`, `object`, `etc`).
|
|
134
239
|
* @returns {string} Merged Tailwind class string.
|
|
240
|
+
*
|
|
135
241
|
* @example
|
|
136
242
|
* #### Example 1: ✅ Default usage (Tailwind v3).
|
|
137
243
|
* ```ts
|
|
@@ -176,16 +282,21 @@ declare const cnV3: (...classes: ClassValues) => string;
|
|
|
176
282
|
/** -------------------------------------------------------------
|
|
177
283
|
* * ***Default `cnV4` utility (Tailwind v4).***
|
|
178
284
|
* -------------------------------------------------------------
|
|
285
|
+
*
|
|
179
286
|
* **Combines class-name values and then deduplicates/resolves
|
|
180
287
|
* conflicts using {@link twMergeDefaultV4 | `twMergeDefaultV4`}
|
|
181
288
|
* with **Tailwind v4 default config only**.**
|
|
182
289
|
* - ✅ **Use this when:**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
290
|
+
* - Your project uses **Tailwind v4**.
|
|
291
|
+
* - You need a simple `cn` that works out of the box without a custom config.
|
|
185
292
|
* - ⚡ **Need custom rules?**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
293
|
+
* - Create a project-wide helper using
|
|
294
|
+
* {@link twMergeDefaultV4 | `twMergeDefaultV4`} +
|
|
295
|
+
* {@link customCnV4 | `customCnV4`} (see Example 2).
|
|
296
|
+
*
|
|
297
|
+
* @deprecated ***Still supported, but significantly slower during hydration because it uses extended runtime merge logic, prefer {@link cnVer4 | `cnVer4`} for
|
|
298
|
+
* better performance, this utility may be removed in a future release.***
|
|
299
|
+
*
|
|
189
300
|
* @param {ClassValues} classes - Class values (`string`, `array`, `object`, `etc`).
|
|
190
301
|
* @returns {string} Merged Tailwind class string.
|
|
191
302
|
* @example
|
|
@@ -413,17 +524,111 @@ type OptionsMergeTwClsV4 = Omit<TwMergeConfigExt, "prefix"> & OptionsConfigMerge
|
|
|
413
524
|
*/
|
|
414
525
|
type TwMergeDefaultFnV4 = (...classLists: ClassNameValue$1[]) => string;
|
|
415
526
|
/** -------------------------------------------------------------
|
|
527
|
+
* * ***High-performance `cn` factory utility (Tailwind `v3`).***
|
|
528
|
+
* -------------------------------------------------------------
|
|
529
|
+
* **Combines class-name values and applies the provided Tailwind merge
|
|
530
|
+
* function using the native {@link twMergeV3 | `twMergeV3`} implementation
|
|
531
|
+
* from `tailwind-merge` version 2 for `tailwind version 3`.**
|
|
532
|
+
*
|
|
533
|
+
* This utility is the recommended replacement for deprecated extended
|
|
534
|
+
* runtime merge helpers because it provides significantly better hydration
|
|
535
|
+
* and runtime performance.
|
|
536
|
+
*
|
|
537
|
+
* - ✅ **Recommended when:**
|
|
538
|
+
* - Your project uses **Tailwind v3**.
|
|
539
|
+
* - You want the fastest possible `cn` utility.
|
|
540
|
+
* - You need reusable project-wide `cn*` helpers.
|
|
541
|
+
* - You want predictable Tailwind conflict resolution with minimal overhead.
|
|
542
|
+
*
|
|
543
|
+
* - ⚡ **Performance note**
|
|
544
|
+
* - Uses the native `twMergeV3` implementation directly.
|
|
545
|
+
* - Faster than deprecated extended merge utilities.
|
|
546
|
+
* - Better suited for SSR and hydration-heavy applications.
|
|
547
|
+
*
|
|
548
|
+
* @param {TwMergeDefaultFnV3} customTwMergeV3 - Merge function created via {@link twMergeV3 | `twMergeV3`}.
|
|
549
|
+
* @param {ClassValues} classes - Class values (`string`, `array`, `object`, `etc`).
|
|
550
|
+
* @returns {string} Merged Tailwind class string.
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
* ```ts
|
|
554
|
+
* import { twMerge as twMergeV3 } from "tailwind-merge"; // tw-merge (v2) for tailwind version 3
|
|
555
|
+
* import { customCnVer3, type ClassValues } from "@rzl-zone/utils-js/tailwind";
|
|
556
|
+
*
|
|
557
|
+
* // 1. Create app-level helper
|
|
558
|
+
* export const cnApp = (...classes: ClassValues) => {
|
|
559
|
+
* return customCnVer3(twMergeV3, ...classes);
|
|
560
|
+
* };
|
|
561
|
+
*
|
|
562
|
+
* // ✅ Usage
|
|
563
|
+
* cnApp("p-2", "p-4"); // ➔ "p-4"
|
|
564
|
+
* cnApp("text-sm text-lg"); // ➔ "text-lg"
|
|
565
|
+
* cnApp("shadow-sm shadow-md"); // ➔ "shadow-md"
|
|
566
|
+
* ```
|
|
567
|
+
*/
|
|
568
|
+
declare const customCnVer3: (customTwMergeV3?: TwMergeDefaultFnV3, ...classes: ClassValues) => string;
|
|
569
|
+
/** -------------------------------------------------------------
|
|
570
|
+
* * ***High-performance `cn` factory utility (Tailwind `v4`).***
|
|
571
|
+
* -------------------------------------------------------------
|
|
572
|
+
* **Combines class-name values and applies the provided Tailwind merge
|
|
573
|
+
* function using the native {@link twMergeV4 | `twMergeV4`} implementation
|
|
574
|
+
* from `tailwind-merge` version 3 for `tailwind version 4`.**
|
|
575
|
+
*
|
|
576
|
+
* This utility is the recommended replacement for deprecated extended
|
|
577
|
+
* runtime merge helpers because it provides significantly better hydration
|
|
578
|
+
* and runtime performance.
|
|
579
|
+
*
|
|
580
|
+
* - ✅ **Recommended when:**
|
|
581
|
+
* - Your project uses **Tailwind v4**.
|
|
582
|
+
* - You want the fastest possible `cn` utility.
|
|
583
|
+
* - You need reusable project-wide `cn*` helpers.
|
|
584
|
+
* - You want predictable Tailwind conflict resolution with minimal overhead.
|
|
585
|
+
*
|
|
586
|
+
* - ⚡ **Performance note**
|
|
587
|
+
* - Uses the native `twMergeV4` implementation directly.
|
|
588
|
+
* - Faster than deprecated extended merge utilities.
|
|
589
|
+
* - Better suited for SSR and hydration-heavy applications.
|
|
590
|
+
*
|
|
591
|
+
* @param {TwMergeDefaultFnV4} customTwMergeV4 - Merge function created via {@link twMergeV4 | `twMergeV4`}.
|
|
592
|
+
* @param {ClassValues} classes - Class values (`string`, `array`, `object`, `etc`).
|
|
593
|
+
* @returns {string} Merged Tailwind class string.
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* ```ts
|
|
597
|
+
* import { twMerge as twMergeV4 } from "tailwind-merge"; // tw-merge (v3) for tailwind version 4
|
|
598
|
+
* import { customCnVer4, type ClassValues } from "@rzl-zone/utils-js/tailwind";
|
|
599
|
+
*
|
|
600
|
+
* // 1. Create app-level helper
|
|
601
|
+
* export const cnApp = (...classes: ClassValues) => {
|
|
602
|
+
* return customCnVer4(twMergeV4, ...classes);
|
|
603
|
+
* };
|
|
604
|
+
*
|
|
605
|
+
* // ✅ Usage
|
|
606
|
+
* cnApp("p-2", "p-4"); // ➔ "p-4"
|
|
607
|
+
* cnApp("text-sm text-lg"); // ➔ "text-lg"
|
|
608
|
+
* cnApp("shadow-sm shadow-md"); // ➔ "shadow-md"
|
|
609
|
+
* ```
|
|
610
|
+
*/
|
|
611
|
+
declare const customCnVer4: (customTwMergeV4?: TwMergeDefaultFnV4, ...classes: ClassValues) => string;
|
|
612
|
+
/** -------------------------------------------------------------
|
|
416
613
|
* * ***Factory utility for building a custom `cn` helper (Tailwind `v3`).***
|
|
417
614
|
* -------------------------------------------------------------
|
|
615
|
+
*
|
|
418
616
|
* **Wraps internally function to combines class-name values and applies the provided
|
|
419
617
|
* Tailwind merge function (from {@link twMergeDefaultV3 | `twMergeDefaultV3`}).**
|
|
618
|
+
*
|
|
420
619
|
* - 🔑 **When to use it?**
|
|
421
620
|
* - Your project uses **Tailwind v3**.
|
|
422
621
|
* - You extend Tailwind merge rules (`classGroups`, `tailwind.config`).
|
|
423
622
|
* - You need multiple `cn*` variants across apps/packages.
|
|
623
|
+
*
|
|
624
|
+
* @deprecated ***Still supported, but slower during SSR and hydration because it relies on extended runtime merge logic,
|
|
625
|
+
* prefer {@link customCnVer3 | `customCnVer3`}for better performance, this utility may be removed in a future release.***
|
|
626
|
+
*
|
|
424
627
|
* @param {TwMergeDefaultFnV3} customTwMergeV3 - Merge function created via {@link twMergeDefaultV3 | `twMergeDefaultV3`}.
|
|
425
628
|
* @param {ClassValues} classes - Class values (`string`, `array`, `object`, `etc`).
|
|
629
|
+
*
|
|
426
630
|
* @returns {string} Merged Tailwind class string.
|
|
631
|
+
*
|
|
427
632
|
* @example
|
|
428
633
|
* ```ts
|
|
429
634
|
* import tailwindConfig from "../tailwind.config";
|
|
@@ -453,15 +658,23 @@ declare const customCnV3: (customTwMergeV3: TwMergeDefaultFnV3, ...classes: Clas
|
|
|
453
658
|
/** -------------------------------------------------------------
|
|
454
659
|
* * ***Factory utility for building a custom `cn` helper (Tailwind `v4`).***
|
|
455
660
|
* -------------------------------------------------------------
|
|
661
|
+
*
|
|
456
662
|
* **Wraps internally function to combines class-name values and applies the provided
|
|
457
663
|
* Tailwind merge function (from {@link twMergeDefaultV4 | `twMergeDefaultV4`}).**
|
|
664
|
+
*
|
|
458
665
|
* - 🔑 **When to use it?**
|
|
459
666
|
* - Your project uses **Tailwind v4**.
|
|
460
667
|
* - You extend Tailwind merge rules (`classGroups`, `tailwind.config`).
|
|
461
668
|
* - You need multiple `cn*` variants across apps/packages.
|
|
669
|
+
*
|
|
670
|
+
* @deprecated ***Still supported, but slower during SSR and hydration because it relies on extended runtime merge logic,
|
|
671
|
+
* prefer {@link customCnVer4 | `customCnVer4`}for better performance, this utility may be removed in a future release.***
|
|
672
|
+
*
|
|
462
673
|
* @param {TwMergeDefaultFnV4} customTwMergeV4 - Merge function created via {@link twMergeDefaultV4 | `twMergeDefaultV4`}.
|
|
463
674
|
* @param {ClassValues} classes - Class values (`string`, `array`, `object`, `etc`).
|
|
675
|
+
*
|
|
464
676
|
* @returns {string} Merged Tailwind class string.
|
|
677
|
+
*
|
|
465
678
|
* @example
|
|
466
679
|
* ```ts
|
|
467
680
|
* import tailwindConfig from "../tailwind.config";
|
|
@@ -546,6 +759,7 @@ declare const shouldForwardProp: <CustomProps extends Record<string, unknown>>(p
|
|
|
546
759
|
/** -------------------------------------------------------------
|
|
547
760
|
* * ***Customized Tailwind class merger Version 3 with extended rules.***
|
|
548
761
|
* -------------------------------------------------------------
|
|
762
|
+
*
|
|
549
763
|
* **Wraps ***`extendTailwindMerge` from tailwind-merge-v3*** with Tailwind’s default
|
|
550
764
|
* config (_*`getDefaultConfig()` from tailwind-merge-v3*_) to create a **project-ready `twMerge`**.**
|
|
551
765
|
* - 🔑 **When to use it?**
|
|
@@ -554,6 +768,9 @@ declare const shouldForwardProp: <CustomProps extends Record<string, unknown>>(p
|
|
|
554
768
|
* - Respect your own **`tailwind.config.ts`** (colors, spacing, fontSize, etc).
|
|
555
769
|
* - Override or fine-tune **merge behavior**.
|
|
556
770
|
* - Create a **project-wide `cn` helper** that replaces raw `twMerge`.
|
|
771
|
+
*
|
|
772
|
+
* @deprecated ***Still supported for advanced Tailwind merge customization, but significantly slower than native `twMerge` during SSR and hydration because merge rules are extended at runtime, prefer `twMerge` + {@link customCnVer3 | `customCnVer3`} for better performance, this utility may be removed in a future release.***
|
|
773
|
+
*
|
|
557
774
|
* @param {OptionsMergeTwClsV3} [options={}]
|
|
558
775
|
* ***Merge options:***
|
|
559
776
|
* - `config` – Your Tailwind config (from `tailwind.config.ts`).
|
|
@@ -562,8 +779,10 @@ declare const shouldForwardProp: <CustomProps extends Record<string, unknown>>(p
|
|
|
562
779
|
* - `override` – Fully replace rules.
|
|
563
780
|
* - `cacheSize` – Parsed class cache size.
|
|
564
781
|
* - `experimentalParseClassName` – Custom classname parser.
|
|
782
|
+
*
|
|
565
783
|
* @returns {TwMergeDefaultFnV3}
|
|
566
784
|
* Customized Tailwind class merge function version 3 (same signature as `twMerge`).
|
|
785
|
+
*
|
|
567
786
|
* @example
|
|
568
787
|
* #### Example 1: ***Default behavior (same as tailwind-merge).***
|
|
569
788
|
* ```ts
|
|
@@ -633,6 +852,7 @@ declare const twMergeDefaultV3: (options?: OptionsMergeTwClsV3) => TwMergeDefaul
|
|
|
633
852
|
/** -------------------------------------------------------------
|
|
634
853
|
* * ***Customized Tailwind class merger Version 4 with extended rules.***
|
|
635
854
|
* -------------------------------------------------------------
|
|
855
|
+
*
|
|
636
856
|
* **Wraps ***`extendTailwindMerge` from tailwind-merge-v4*** with Tailwind’s default
|
|
637
857
|
* config (_*`getDefaultConfig()` from tailwind-merge-v4*_) to create a **project-ready `twMerge`**.**
|
|
638
858
|
* - 🔑 **When to use it?**
|
|
@@ -641,6 +861,11 @@ declare const twMergeDefaultV3: (options?: OptionsMergeTwClsV3) => TwMergeDefaul
|
|
|
641
861
|
* - Respect your own **`tailwind.config.ts`** (colors, spacing, fontSize, etc).
|
|
642
862
|
* - Override or fine-tune **merge behavior**.
|
|
643
863
|
* - Create a **project-wide `cn` helper** that replaces raw `twMerge`.
|
|
864
|
+
*
|
|
865
|
+
* @deprecated ***Still supported for advanced Tailwind merge customization, but significantly slower than native `twMerge` during SSR and hydration because merge rules are extended at runtime, prefer `twMerge` + {@link customCnVer4 | `customCnVer4`} for better performance, this utility may be removed in a future release.***
|
|
866
|
+
*
|
|
867
|
+
* @deprecated ***Slower than the default `twMerge`, but still safe to use when custom merge behavior is needed.***
|
|
868
|
+
*
|
|
644
869
|
* @param {OptionsMergeTwClsV4} [options={}]
|
|
645
870
|
* ***Merge options:***
|
|
646
871
|
* - `config` – Your Tailwind config (from `tailwind.config.ts`).
|
|
@@ -649,8 +874,10 @@ declare const twMergeDefaultV3: (options?: OptionsMergeTwClsV3) => TwMergeDefaul
|
|
|
649
874
|
* - `override` – Fully replace rules.
|
|
650
875
|
* - `cacheSize` – Parsed class cache size.
|
|
651
876
|
* - `experimentalParseClassName` – Custom classname parser.
|
|
877
|
+
*
|
|
652
878
|
* @returns {TwMergeDefaultFnV4}
|
|
653
879
|
* Customized Tailwind class merge function version 4 (same signature as `twMerge`).
|
|
880
|
+
*
|
|
654
881
|
* @example
|
|
655
882
|
* #### Example 1: ***Default behavior (same as tailwind-merge).***
|
|
656
883
|
* ```ts
|
|
@@ -717,4 +944,4 @@ declare const twMergeDefaultV3: (options?: OptionsMergeTwClsV3) => TwMergeDefaul
|
|
|
717
944
|
* ```
|
|
718
945
|
*/
|
|
719
946
|
declare const twMergeDefaultV4: (options?: OptionsMergeTwClsV4) => TwMergeDefaultFnV4;
|
|
720
|
-
export { customCnV4 as a,
|
|
947
|
+
export { customCnV4 as a, cnV3 as c, cnVer4 as d, ClassObject as f, cx as h, customCnV3 as i, cnV4 as l, ClassValues as m, twMergeDefaultV3 as n, customCnVer3 as o, ClassValue as p, shouldForwardProp as r, customCnVer4 as s, twMergeDefaultV4 as t, cnVer3 as u };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
@@ -17,4 +17,4 @@ Object.defineProperty(exports, 'isBigInt', {
|
|
|
17
17
|
return isBigInt;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
-
//# sourceMappingURL=isBigInt-
|
|
20
|
+
//# sourceMappingURL=isBigInt-CIFRnsdx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isBigInt-
|
|
1
|
+
{"version":3,"file":"isBigInt-CIFRnsdx.cjs","names":[],"sources":["../src/predicates/is/isBigInt.ts"],"sourcesContent":["/** ----------------------------------------------------------\n * * ***Type guard: `isBigInt`.***\n * ----------------------------------------------------------\n * **Checks if a value is of type **[`BigInt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt)**.**\n * - **Behavior:**\n * - Uses `typeof value === \"bigint\"` for strict type checking.\n * - Supports TypeScript type narrowing with `value is bigint`.\n * - Returns `false` for `BigInt` object (object-wrapped), e.g:\n * - `Object(BigInt(123))`.\n * @param {*} value - The value to check.\n * @returns {boolean} Return `true` if value is a primitive bigint.\n * @example\n * isBigInt(123n);\n * // ➔ true\n * isBigInt(BigInt(123));\n * // ➔ true\n * isBigInt(\"123\");\n * // ➔ false\n * isBigInt(Object(BigInt(1)));\n * // ➔ false\n */\nexport const isBigInt = (value: unknown): value is bigint => {\n return typeof value === \"bigint\";\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,YAAY,UAAoC;CAC3D,OAAO,OAAO,UAAU"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
@@ -11,4 +11,4 @@ const isBigInt = (value) => {
|
|
|
11
11
|
return typeof value === "bigint";
|
|
12
12
|
};
|
|
13
13
|
export { isBigInt as t };
|
|
14
|
-
//# sourceMappingURL=isBigInt-
|
|
14
|
+
//# sourceMappingURL=isBigInt-D-Pu9sxp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isBigInt-
|
|
1
|
+
{"version":3,"file":"isBigInt-D-Pu9sxp.js","names":[],"sources":["../src/predicates/is/isBigInt.ts"],"sourcesContent":["/** ----------------------------------------------------------\n * * ***Type guard: `isBigInt`.***\n * ----------------------------------------------------------\n * **Checks if a value is of type **[`BigInt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt)**.**\n * - **Behavior:**\n * - Uses `typeof value === \"bigint\"` for strict type checking.\n * - Supports TypeScript type narrowing with `value is bigint`.\n * - Returns `false` for `BigInt` object (object-wrapped), e.g:\n * - `Object(BigInt(123))`.\n * @param {*} value - The value to check.\n * @returns {boolean} Return `true` if value is a primitive bigint.\n * @example\n * isBigInt(123n);\n * // ➔ true\n * isBigInt(BigInt(123));\n * // ➔ true\n * isBigInt(\"123\");\n * // ➔ false\n * isBigInt(Object(BigInt(1)));\n * // ➔ false\n */\nexport const isBigInt = (value: unknown): value is bigint => {\n return typeof value === \"bigint\";\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,YAAY,UAAoC;CAC3D,OAAO,OAAO,UAAU"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
9
9
|
*/
|
|
10
10
|
"use strict";
|
|
11
|
-
const require_assertIsBoolean = require('./assertIsBoolean-
|
|
11
|
+
const require_assertIsBoolean = require('./assertIsBoolean-amRiJHnh.cjs');
|
|
12
12
|
const isEmptyArray = (value) => {
|
|
13
13
|
if (!require_assertIsBoolean.isArray(value)) return true;
|
|
14
14
|
return value.length === 0;
|
|
@@ -34,4 +34,4 @@ Object.defineProperty(exports, 'isEmptyObject', {
|
|
|
34
34
|
return isEmptyObject;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
-
//# sourceMappingURL=isEmptyObject-
|
|
37
|
+
//# sourceMappingURL=isEmptyObject-CEySmyHK.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isEmptyObject-
|
|
1
|
+
{"version":3,"file":"isEmptyObject-CEySmyHK.cjs","names":["isArray","isObject","hasOwnProp"],"sources":["../src/predicates/is/isEmptyArray.ts","../src/predicates/is/isEmptyObject.ts"],"sourcesContent":["import { isArray } from \"@/predicates/is/isArray\";\n\n/** ----------------------------------------------------------\n * * ***Predicate: `isEmptyArray`.***\n * ----------------------------------------------------------\n * **Checks whether a given value is an empty array.**\n * - **Behavior:**\n * - Non-array inputs are considered ***`empty`*** ***(defensive strategy)***.\n * @param {*} [value] - The value to check.\n * @returns {boolean} Returns `true` if it's ***not an array*** or ***an empty-array***.\n * @example\n * isEmptyArray([]); // ➔ true\n * isEmptyArray([1, 2, 3]); // ➔ false\n * isEmptyArray(\"not an array\"); // ➔ true\n * isEmptyArray(null); // ➔ true\n * isEmptyArray(undefined); // ➔ true\n *\n * if (isEmptyArray(data.items)) {\n * console.log(\"No items to display.\");\n * }\n */\nexport const isEmptyArray = (value: unknown): boolean => {\n if (!isArray(value)) return true;\n\n return value.length === 0;\n};\n","import { isObject } from \"./isObject\";\nimport { hasOwnProp } from \"../has/hasOwnProp\";\n\nimport { assertIsBoolean } from \"@/assertions/booleans/assertIsBoolean\";\nimport { assertIsPlainObject } from \"@/assertions/objects/assertIsPlainObject\";\n\ntype IsEmptyObjectOptions = {\n /** Whether to check for symbol properties in addition to string keys, defaultValue: `false`.\n *\n * @default false\n */\n checkSymbols?: boolean;\n};\n\n/** ----------------------------------------------------------\n * * ***Predicate: `isEmptyObject`.***\n * ----------------------------------------------------------\n * **Checks if a value is a plain object with **no own enumerable string-key properties**,\n * and optionally **no own enumerable symbol-key properties** when `checkSymbols` is `true`.**\n * - **Behavior:**\n * - If the value is **not an object** (e.g. `null`, array, primitive), it is considered empty.\n * - If `options.checkSymbols` is `true`, **symbol properties** are also checked.\n * @param {*} value - The value to check.\n * @param {IsEmptyObjectOptions} [options] - Optional settings.\n * @param {IsEmptyObjectOptions[\"checkSymbols\"]} [options.checkSymbols=false] - Whether to also check symbol properties.\n * @returns {boolean} Return `true` if the value is considered empty or not an object, false otherwise.\n * @example\n * isEmptyObject({});\n * // ➔ true\n * isEmptyObject({}, { checkSymbols: true });\n * // ➔ true\n * isEmptyObject({ a: 1 });\n * // ➔ false\n * isEmptyObject({ [Symbol('s')]: 1 });\n * // ➔ true\n * isEmptyObject({ [Symbol('s')]: 1 }, { checkSymbols: true });\n * // ➔ false\n * isEmptyObject(null);\n * // ➔ true (not object)\n * isEmptyObject([]);\n * // ➔ true (not plain object)\n * isEmptyObject(123);\n * // ➔ true (not object)\n */\nexport function isEmptyObject(\n value: unknown,\n options: IsEmptyObjectOptions = {}\n): boolean {\n if (!isObject(value)) {\n return true;\n }\n\n assertIsPlainObject(options, {\n message: ({ currentType, validType }) =>\n `Second parameter (\\`options\\`) must be of type \\`${validType}\\`, but received: \\`${currentType}\\`.`\n });\n\n const checkSymbols = hasOwnProp(options, \"checkSymbols\")\n ? options.checkSymbols\n : false;\n\n assertIsBoolean(checkSymbols, {\n message: ({ currentType, validType }) =>\n `Parameter \\`checkSymbols\\` property of the \\`options\\` (second parameter) must be of type \\`${validType}\\`, but received: \\`${currentType}\\`.`\n });\n\n const hasNoKeys = Object.keys(value).length === 0;\n if (checkSymbols) {\n return hasNoKeys && Object.getOwnPropertySymbols(value).length === 0;\n }\n return hasNoKeys;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,gBAAgB,UAA4B;CACvD,IAAI,CAACA,gCAAQ,MAAM,EAAE,OAAO;CAE5B,OAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoB1B,SAAgB,cACd,OACA,UAAgC,EAAE,EACzB;CACT,IAAI,CAACC,iCAAS,MAAM,EAClB,OAAO;CAGT,4CAAoB,SAAS,EAC3B,UAAU,EAAE,aAAa,gBACvB,oDAAoD,UAAU,sBAAsB,YAAY,MACnG,CAAC;CAEF,MAAM,eAAeC,mCAAW,SAAS,eAAe,GACpD,QAAQ,eACR;CAEJ,wCAAgB,cAAc,EAC5B,UAAU,EAAE,aAAa,gBACvB,+FAA+F,UAAU,sBAAsB,YAAY,MAC9I,CAAC;CAEF,MAAM,YAAY,OAAO,KAAK,MAAM,CAAC,WAAW;CAChD,IAAI,cACF,OAAO,aAAa,OAAO,sBAAsB,MAAM,CAAC,WAAW;CAErE,OAAO"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
9
9
|
*/
|
|
10
|
-
import { M as isArray, T as assertIsPlainObject, b as hasOwnProp, j as isObject, t as assertIsBoolean } from "./assertIsBoolean-
|
|
10
|
+
import { M as isArray, T as assertIsPlainObject, b as hasOwnProp, j as isObject, t as assertIsBoolean } from "./assertIsBoolean-Bv6gL-xe.js";
|
|
11
11
|
const isEmptyArray = (value) => {
|
|
12
12
|
if (!isArray(value)) return true;
|
|
13
13
|
return value.length === 0;
|
|
@@ -22,4 +22,4 @@ function isEmptyObject(value, options = {}) {
|
|
|
22
22
|
return hasNoKeys;
|
|
23
23
|
}
|
|
24
24
|
export { isEmptyArray as n, isEmptyObject as t };
|
|
25
|
-
//# sourceMappingURL=isEmptyObject-
|
|
25
|
+
//# sourceMappingURL=isEmptyObject-CZ9DLi7R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isEmptyObject-
|
|
1
|
+
{"version":3,"file":"isEmptyObject-CZ9DLi7R.js","names":[],"sources":["../src/predicates/is/isEmptyArray.ts","../src/predicates/is/isEmptyObject.ts"],"sourcesContent":["import { isArray } from \"@/predicates/is/isArray\";\n\n/** ----------------------------------------------------------\n * * ***Predicate: `isEmptyArray`.***\n * ----------------------------------------------------------\n * **Checks whether a given value is an empty array.**\n * - **Behavior:**\n * - Non-array inputs are considered ***`empty`*** ***(defensive strategy)***.\n * @param {*} [value] - The value to check.\n * @returns {boolean} Returns `true` if it's ***not an array*** or ***an empty-array***.\n * @example\n * isEmptyArray([]); // ➔ true\n * isEmptyArray([1, 2, 3]); // ➔ false\n * isEmptyArray(\"not an array\"); // ➔ true\n * isEmptyArray(null); // ➔ true\n * isEmptyArray(undefined); // ➔ true\n *\n * if (isEmptyArray(data.items)) {\n * console.log(\"No items to display.\");\n * }\n */\nexport const isEmptyArray = (value: unknown): boolean => {\n if (!isArray(value)) return true;\n\n return value.length === 0;\n};\n","import { isObject } from \"./isObject\";\nimport { hasOwnProp } from \"../has/hasOwnProp\";\n\nimport { assertIsBoolean } from \"@/assertions/booleans/assertIsBoolean\";\nimport { assertIsPlainObject } from \"@/assertions/objects/assertIsPlainObject\";\n\ntype IsEmptyObjectOptions = {\n /** Whether to check for symbol properties in addition to string keys, defaultValue: `false`.\n *\n * @default false\n */\n checkSymbols?: boolean;\n};\n\n/** ----------------------------------------------------------\n * * ***Predicate: `isEmptyObject`.***\n * ----------------------------------------------------------\n * **Checks if a value is a plain object with **no own enumerable string-key properties**,\n * and optionally **no own enumerable symbol-key properties** when `checkSymbols` is `true`.**\n * - **Behavior:**\n * - If the value is **not an object** (e.g. `null`, array, primitive), it is considered empty.\n * - If `options.checkSymbols` is `true`, **symbol properties** are also checked.\n * @param {*} value - The value to check.\n * @param {IsEmptyObjectOptions} [options] - Optional settings.\n * @param {IsEmptyObjectOptions[\"checkSymbols\"]} [options.checkSymbols=false] - Whether to also check symbol properties.\n * @returns {boolean} Return `true` if the value is considered empty or not an object, false otherwise.\n * @example\n * isEmptyObject({});\n * // ➔ true\n * isEmptyObject({}, { checkSymbols: true });\n * // ➔ true\n * isEmptyObject({ a: 1 });\n * // ➔ false\n * isEmptyObject({ [Symbol('s')]: 1 });\n * // ➔ true\n * isEmptyObject({ [Symbol('s')]: 1 }, { checkSymbols: true });\n * // ➔ false\n * isEmptyObject(null);\n * // ➔ true (not object)\n * isEmptyObject([]);\n * // ➔ true (not plain object)\n * isEmptyObject(123);\n * // ➔ true (not object)\n */\nexport function isEmptyObject(\n value: unknown,\n options: IsEmptyObjectOptions = {}\n): boolean {\n if (!isObject(value)) {\n return true;\n }\n\n assertIsPlainObject(options, {\n message: ({ currentType, validType }) =>\n `Second parameter (\\`options\\`) must be of type \\`${validType}\\`, but received: \\`${currentType}\\`.`\n });\n\n const checkSymbols = hasOwnProp(options, \"checkSymbols\")\n ? options.checkSymbols\n : false;\n\n assertIsBoolean(checkSymbols, {\n message: ({ currentType, validType }) =>\n `Parameter \\`checkSymbols\\` property of the \\`options\\` (second parameter) must be of type \\`${validType}\\`, but received: \\`${currentType}\\`.`\n });\n\n const hasNoKeys = Object.keys(value).length === 0;\n if (checkSymbols) {\n return hasNoKeys && Object.getOwnPropertySymbols(value).length === 0;\n }\n return hasNoKeys;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,gBAAgB,UAA4B;CACvD,IAAI,CAAC,QAAQ,MAAM,EAAE,OAAO;CAE5B,OAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoB1B,SAAgB,cACd,OACA,UAAgC,EAAE,EACzB;CACT,IAAI,CAAC,SAAS,MAAM,EAClB,OAAO;CAGT,oBAAoB,SAAS,EAC3B,UAAU,EAAE,aAAa,gBACvB,oDAAoD,UAAU,sBAAsB,YAAY,MACnG,CAAC;CAEF,MAAM,eAAe,WAAW,SAAS,eAAe,GACpD,QAAQ,eACR;CAEJ,gBAAgB,cAAc,EAC5B,UAAU,EAAE,aAAa,gBACvB,+FAA+F,UAAU,sBAAsB,YAAY,MAC9I,CAAC;CAEF,MAAM,YAAY,OAAO,KAAK,MAAM,CAAC,WAAW;CAChD,IAAI,cACF,OAAO,aAAa,OAAO,sBAAsB,MAAM,CAAC,WAAW;CAErE,OAAO"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
9
9
|
*/
|
|
10
|
-
import { y as isNonEmptyString } from "./assertIsBoolean-
|
|
10
|
+
import { y as isNonEmptyString } from "./assertIsBoolean-Bv6gL-xe.js";
|
|
11
11
|
const isEmptyString = (value, options = {}) => {
|
|
12
12
|
return !isNonEmptyString(value, options);
|
|
13
13
|
};
|
|
14
14
|
export { isEmptyString as t };
|
|
15
|
-
//# sourceMappingURL=isEmptyString-
|
|
15
|
+
//# sourceMappingURL=isEmptyString-DFDtBbNr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isEmptyString-
|
|
1
|
+
{"version":3,"file":"isEmptyString-DFDtBbNr.js","names":[],"sources":["../src/predicates/is/isEmptyString.ts"],"sourcesContent":["import { isNonEmptyString } from \"./isNonEmptyString\";\n\ntype IsEmptyStringOptions = {\n /** Whether to trim the string before checking, defaultValue: `true`.\n *\n * @default true */\n trim?: boolean;\n};\n\n/** ----------------------------------------------------------\n * * ***Predicate: `isEmptyString`.***\n * ----------------------------------------------------------\n * **Checks whether a given value is an **empty-string**.**\n * - **Behavior:**\n * - Considers `\"\"` and whitespace-only strings as\n * empty (if `trim` is enabled, which is the default).\n * - Non-string inputs are also considered empty.\n * @param {*} value - The value to check.\n * @param {IsEmptyStringOptions} [options] - Optional settings.\n * @param {IsEmptyStringOptions[\"trim\"]} [options.trim=true] - Whether to trim the string before checking, defaultValue: `true`.\n * @returns {boolean} Returns `true` if the value is string not a string or value string is considered empty.\n * @example\n * isEmptyString(\"\");\n * // ➔ true\n * isEmptyString(\" \");\n * // ➔ true (default trims)\n * isEmptyString(\" \", { trim: false });\n * // ➔ false\n * isEmptyString(\"hello\");\n * // ➔ false\n * isEmptyString(undefined);\n * // ➔ true\n * isEmptyString(null);\n * // ➔ true\n * isEmptyString(123 as any);\n * // ➔ true\n *\n * // Used in validation\n * if (isEmptyString(form.name)) {\n * throw new Error(\"Name cannot be empty.\");\n * }\n */\nexport const isEmptyString = (\n value: unknown,\n options: IsEmptyStringOptions = {}\n): boolean => {\n return !isNonEmptyString(value, options);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAa,iBACX,OACA,UAAgC,EAAE,KACtB;CACZ,OAAO,CAAC,iBAAiB,OAAO,QAAQ"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
9
9
|
*/
|
|
10
10
|
"use strict";
|
|
11
|
-
const require_assertIsBoolean = require('./assertIsBoolean-
|
|
11
|
+
const require_assertIsBoolean = require('./assertIsBoolean-amRiJHnh.cjs');
|
|
12
12
|
const isEmptyString = (value, options = {}) => {
|
|
13
13
|
return !require_assertIsBoolean.isNonEmptyString(value, options);
|
|
14
14
|
};
|
|
@@ -18,4 +18,4 @@ Object.defineProperty(exports, 'isEmptyString', {
|
|
|
18
18
|
return isEmptyString;
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
//# sourceMappingURL=isEmptyString-
|
|
21
|
+
//# sourceMappingURL=isEmptyString-DI64RQCy.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isEmptyString-
|
|
1
|
+
{"version":3,"file":"isEmptyString-DI64RQCy.cjs","names":["isNonEmptyString"],"sources":["../src/predicates/is/isEmptyString.ts"],"sourcesContent":["import { isNonEmptyString } from \"./isNonEmptyString\";\n\ntype IsEmptyStringOptions = {\n /** Whether to trim the string before checking, defaultValue: `true`.\n *\n * @default true */\n trim?: boolean;\n};\n\n/** ----------------------------------------------------------\n * * ***Predicate: `isEmptyString`.***\n * ----------------------------------------------------------\n * **Checks whether a given value is an **empty-string**.**\n * - **Behavior:**\n * - Considers `\"\"` and whitespace-only strings as\n * empty (if `trim` is enabled, which is the default).\n * - Non-string inputs are also considered empty.\n * @param {*} value - The value to check.\n * @param {IsEmptyStringOptions} [options] - Optional settings.\n * @param {IsEmptyStringOptions[\"trim\"]} [options.trim=true] - Whether to trim the string before checking, defaultValue: `true`.\n * @returns {boolean} Returns `true` if the value is string not a string or value string is considered empty.\n * @example\n * isEmptyString(\"\");\n * // ➔ true\n * isEmptyString(\" \");\n * // ➔ true (default trims)\n * isEmptyString(\" \", { trim: false });\n * // ➔ false\n * isEmptyString(\"hello\");\n * // ➔ false\n * isEmptyString(undefined);\n * // ➔ true\n * isEmptyString(null);\n * // ➔ true\n * isEmptyString(123 as any);\n * // ➔ true\n *\n * // Used in validation\n * if (isEmptyString(form.name)) {\n * throw new Error(\"Name cannot be empty.\");\n * }\n */\nexport const isEmptyString = (\n value: unknown,\n options: IsEmptyStringOptions = {}\n): boolean => {\n return !isNonEmptyString(value, options);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAa,iBACX,OACA,UAAgC,EAAE,KACtB;CACZ,OAAO,CAACA,yCAAiB,OAAO,QAAQ"}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* ========================================================================
|
|
3
3
|
* @rzl-zone/utils-js
|
|
4
4
|
* ------------------------------------------------------------------------
|
|
5
|
-
* Version: `3.
|
|
5
|
+
* Version: `3.13.0-beta.2`
|
|
6
6
|
* Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
|
|
7
7
|
* Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
|
|
8
8
|
* ========================================================================
|
|
9
9
|
*/
|
|
10
10
|
"use strict";
|
|
11
|
-
const require_assertIsBoolean = require('./assertIsBoolean-
|
|
12
|
-
const require_isEmptyObject = require('./isEmptyObject-
|
|
13
|
-
const require_isEmptyString = require('./isEmptyString-
|
|
11
|
+
const require_assertIsBoolean = require('./assertIsBoolean-amRiJHnh.cjs');
|
|
12
|
+
const require_isEmptyObject = require('./isEmptyObject-CEySmyHK.cjs');
|
|
13
|
+
const require_isEmptyString = require('./isEmptyString-DI64RQCy.cjs');
|
|
14
14
|
const isEmptyValue = (value, options = {}) => {
|
|
15
15
|
require_assertIsBoolean.assertIsPlainObject(options, { message: ({ currentType, validType }) => `Second parameter (\`options\`) must be of type \`${validType}\`, but received: \`${currentType}\`.` });
|
|
16
16
|
const checkSymbols = require_assertIsBoolean.hasOwnProp(options, "checkSymbols") ? options.checkSymbols : false;
|
|
@@ -27,4 +27,4 @@ Object.defineProperty(exports, 'isEmptyValue', {
|
|
|
27
27
|
return isEmptyValue;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
//# sourceMappingURL=isEmptyValue-
|
|
30
|
+
//# sourceMappingURL=isEmptyValue-Cw6ovu7z.cjs.map
|