@instockng/storefront-ui 1.0.17 → 1.0.19

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 (292) hide show
  1. package/dist/components/OrderConfirmation.d.ts +1 -1
  2. package/dist/components/OrderConfirmation.d.ts.map +1 -1
  3. package/dist/components/ShoppingCart.d.ts.map +1 -1
  4. package/dist/contexts/CartContext.d.ts +2 -2
  5. package/dist/contexts/CartContext.d.ts.map +1 -1
  6. package/dist/fetchers.d.ts +19 -0
  7. package/dist/fetchers.d.ts.map +1 -0
  8. package/dist/hooks/usePageTracking.d.ts +40 -0
  9. package/dist/hooks/usePageTracking.d.ts.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.mjs +101 -92
  13. package/dist/index10.mjs +149 -624
  14. package/dist/index100.mjs +22 -33
  15. package/dist/index101.mjs +22 -30
  16. package/dist/index102.mjs +32 -27
  17. package/dist/index103.mjs +152 -57
  18. package/dist/index104.mjs +20 -3
  19. package/dist/index105.mjs +31 -2
  20. package/dist/index106.mjs +84 -2
  21. package/dist/index107.mjs +37 -16
  22. package/dist/index108.mjs +144 -12
  23. package/dist/index109.mjs +55 -6
  24. package/dist/index11.mjs +94 -56
  25. package/dist/index110.mjs +23 -30
  26. package/dist/index111.mjs +30 -0
  27. package/dist/index112.mjs +26 -0
  28. package/dist/index113.mjs +28 -0
  29. package/dist/index114.mjs +24 -0
  30. package/dist/index115.mjs +25 -0
  31. package/dist/index116.mjs +24 -0
  32. package/dist/index117.mjs +68 -0
  33. package/dist/index118.mjs +21 -0
  34. package/dist/index119.mjs +42 -0
  35. package/dist/index12.mjs +645 -62
  36. package/dist/index120.mjs +27 -0
  37. package/dist/index121.mjs +37 -0
  38. package/dist/index122.mjs +30 -0
  39. package/dist/index123.mjs +22 -0
  40. package/dist/index124.mjs +24 -0
  41. package/dist/index125.mjs +50 -0
  42. package/dist/index126.mjs +26 -0
  43. package/dist/index127.mjs +271 -0
  44. package/dist/index128.mjs +73 -0
  45. package/dist/index129.mjs +11 -0
  46. package/dist/index13.mjs +50 -14
  47. package/dist/index130.mjs +5 -0
  48. package/dist/index131.mjs +5 -0
  49. package/dist/index132.mjs +36 -0
  50. package/dist/index133.mjs +5 -0
  51. package/dist/index134.mjs +24 -0
  52. package/dist/index135.mjs +59 -0
  53. package/dist/index136.mjs +32 -0
  54. package/dist/index137.mjs +10 -0
  55. package/dist/index138.mjs +55 -0
  56. package/dist/index139.mjs +9 -0
  57. package/dist/index14.mjs +62 -115
  58. package/dist/index140.mjs +15 -0
  59. package/dist/index141.mjs +10 -0
  60. package/dist/index142.mjs +31 -0
  61. package/dist/index143.mjs +5 -0
  62. package/dist/index144.mjs +73 -0
  63. package/dist/index145.mjs +170 -0
  64. package/dist/index146.mjs +5 -0
  65. package/dist/index147.mjs +5 -0
  66. package/dist/index148.mjs +5 -0
  67. package/dist/index149.mjs +21 -0
  68. package/dist/index15.mjs +23 -41
  69. package/dist/index150.mjs +35 -0
  70. package/dist/index151.mjs +41 -0
  71. package/dist/index152.mjs +21 -0
  72. package/dist/index153.mjs +21 -0
  73. package/dist/index154.mjs +5 -0
  74. package/dist/index155.mjs +23 -0
  75. package/dist/index156.mjs +49 -0
  76. package/dist/index157.mjs +5 -0
  77. package/dist/index158.mjs +33 -0
  78. package/dist/index159.mjs +21 -0
  79. package/dist/index16.mjs +115 -42
  80. package/dist/index160.mjs +5 -0
  81. package/dist/index161.mjs +5 -0
  82. package/dist/index162.mjs +5 -0
  83. package/dist/index163.mjs +5 -0
  84. package/dist/index164.mjs +75 -0
  85. package/dist/index165.mjs +5 -0
  86. package/dist/index166.mjs +56 -0
  87. package/dist/index167.mjs +5 -0
  88. package/dist/index168.mjs +39 -0
  89. package/dist/index169.mjs +155 -0
  90. package/dist/index17.mjs +42 -42
  91. package/dist/index170.mjs +5 -0
  92. package/dist/index171.mjs +5 -0
  93. package/dist/index172.mjs +22 -0
  94. package/dist/index173.mjs +5 -0
  95. package/dist/index174.mjs +5 -0
  96. package/dist/index175.mjs +29 -0
  97. package/dist/index176.mjs +5 -0
  98. package/dist/index177.mjs +5 -0
  99. package/dist/index178.mjs +27 -0
  100. package/dist/index179.mjs +26 -0
  101. package/dist/index18.mjs +41 -31
  102. package/dist/index180.mjs +5 -0
  103. package/dist/index181.mjs +5 -0
  104. package/dist/index182.mjs +5 -0
  105. package/dist/index183.mjs +26 -0
  106. package/dist/index184.mjs +5 -0
  107. package/dist/index185.mjs +26 -0
  108. package/dist/index186.mjs +5 -0
  109. package/dist/index187.mjs +5 -0
  110. package/dist/index188.mjs +5 -0
  111. package/dist/index189.mjs +26 -0
  112. package/dist/index19.mjs +40 -7
  113. package/dist/index190.mjs +5 -0
  114. package/dist/index191.mjs +26 -0
  115. package/dist/index192.mjs +5 -0
  116. package/dist/index193.mjs +5 -0
  117. package/dist/index194.mjs +5 -0
  118. package/dist/index195.mjs +5 -0
  119. package/dist/index196.mjs +5 -0
  120. package/dist/index197.mjs +5 -0
  121. package/dist/index198.mjs +5 -0
  122. package/dist/index199.mjs +5 -0
  123. package/dist/index2.mjs +31 -12
  124. package/dist/index20.mjs +27 -17
  125. package/dist/index200.mjs +130 -0
  126. package/dist/index201.mjs +5 -0
  127. package/dist/index202.mjs +77 -0
  128. package/dist/index203.mjs +77 -0
  129. package/dist/index204.mjs +5 -0
  130. package/dist/index205.mjs +5 -0
  131. package/dist/index206.mjs +111 -0
  132. package/dist/index207.mjs +5 -0
  133. package/dist/index208.mjs +5 -0
  134. package/dist/index209.mjs +5 -0
  135. package/dist/index21.mjs +6 -29
  136. package/dist/index210.mjs +5 -0
  137. package/dist/index211.mjs +5 -0
  138. package/dist/index212.mjs +5 -0
  139. package/dist/index213.mjs +5 -0
  140. package/dist/index214.mjs +5 -0
  141. package/dist/index215.mjs +5 -0
  142. package/dist/index216.mjs +40 -0
  143. package/dist/index217.mjs +5 -0
  144. package/dist/index218.mjs +5 -0
  145. package/dist/index219.mjs +5 -0
  146. package/dist/index22.mjs +20 -18
  147. package/dist/index220.mjs +247 -0
  148. package/dist/index221.mjs +5 -0
  149. package/dist/index222.mjs +36 -0
  150. package/dist/index223.mjs +68 -0
  151. package/dist/index224.mjs +28 -0
  152. package/dist/index225.mjs +5 -0
  153. package/dist/index226.mjs +5 -0
  154. package/dist/index227.mjs +5 -0
  155. package/dist/index228.mjs +5 -0
  156. package/dist/index229.mjs +5 -0
  157. package/dist/index23.mjs +32 -87
  158. package/dist/index230.mjs +5 -0
  159. package/dist/index231.mjs +5 -0
  160. package/dist/index232.mjs +5 -0
  161. package/dist/index233.mjs +7 -0
  162. package/dist/index234.mjs +5 -0
  163. package/dist/index235.mjs +5 -0
  164. package/dist/index236.mjs +34 -0
  165. package/dist/index237.mjs +14 -0
  166. package/dist/index238.mjs +7 -0
  167. package/dist/index239.mjs +7 -0
  168. package/dist/index24.mjs +12 -12
  169. package/dist/index240.mjs +16 -0
  170. package/dist/index241.mjs +10 -0
  171. package/dist/index242.mjs +15 -0
  172. package/dist/index243.mjs +8 -0
  173. package/dist/index244.mjs +36 -0
  174. package/dist/index245.mjs +34 -0
  175. package/dist/index246.mjs +31 -0
  176. package/dist/index247.mjs +64 -0
  177. package/dist/index248.mjs +5 -0
  178. package/dist/index249.mjs +5 -0
  179. package/dist/index25.mjs +85 -8
  180. package/dist/index250.mjs +21 -0
  181. package/dist/index251.mjs +50 -0
  182. package/dist/index252.mjs +5 -0
  183. package/dist/index253.mjs +5 -0
  184. package/dist/index254.mjs +5 -0
  185. package/dist/index255.mjs +5 -0
  186. package/dist/index256.mjs +94 -0
  187. package/dist/index257.mjs +5 -0
  188. package/dist/index258.mjs +6 -0
  189. package/dist/index259.mjs +5 -0
  190. package/dist/index26.mjs +20 -97
  191. package/dist/index260.mjs +5 -0
  192. package/dist/index261.mjs +20 -0
  193. package/dist/index262.mjs +16 -0
  194. package/dist/index263.mjs +9 -0
  195. package/dist/index264.mjs +33 -0
  196. package/dist/index265.mjs +5 -0
  197. package/dist/index266.mjs +5 -0
  198. package/dist/index267.mjs +5 -0
  199. package/dist/index27.mjs +11 -18
  200. package/dist/index28.mjs +11 -65
  201. package/dist/index29.mjs +94 -89
  202. package/dist/index3.mjs +117 -97
  203. package/dist/index30.mjs +20 -19
  204. package/dist/index31.mjs +65 -19
  205. package/dist/index32.mjs +93 -8
  206. package/dist/index33.mjs +18 -1432
  207. package/dist/index34.mjs +19 -2
  208. package/dist/index35.mjs +10 -56
  209. package/dist/index36.mjs +9 -49
  210. package/dist/index37.mjs +103 -33
  211. package/dist/index38.mjs +24 -14
  212. package/dist/index39.mjs +1411 -2241
  213. package/dist/index4.mjs +82 -197
  214. package/dist/index40.mjs +2 -36
  215. package/dist/index41.mjs +56 -43
  216. package/dist/index42.mjs +50 -98
  217. package/dist/index43.mjs +33 -97
  218. package/dist/index44.mjs +13 -79
  219. package/dist/index45.mjs +2255 -69
  220. package/dist/index46.mjs +36 -95
  221. package/dist/index47.mjs +43 -80
  222. package/dist/index48.mjs +99 -79
  223. package/dist/index49.mjs +93 -15
  224. package/dist/index5.mjs +15 -108
  225. package/dist/index50.mjs +77 -14
  226. package/dist/index51.mjs +58 -44
  227. package/dist/index52.mjs +63 -93
  228. package/dist/index53.mjs +51 -99
  229. package/dist/index54.mjs +78 -4
  230. package/dist/index55.mjs +18 -22
  231. package/dist/index56.mjs +17 -74
  232. package/dist/index57.mjs +63 -15
  233. package/dist/index58.mjs +121 -59
  234. package/dist/index59.mjs +122 -228
  235. package/dist/index6.mjs +190 -73
  236. package/dist/index60.mjs +23 -5
  237. package/dist/index61.mjs +145 -126
  238. package/dist/index62.mjs +2 -68
  239. package/dist/index63.mjs +22 -86
  240. package/dist/index64.mjs +73 -27
  241. package/dist/index65.mjs +15 -9
  242. package/dist/index66.mjs +58 -70
  243. package/dist/index67.mjs +4 -3
  244. package/dist/index68.mjs +2 -2
  245. package/dist/index69.mjs +5 -82
  246. package/dist/index7.mjs +97 -85
  247. package/dist/index70.mjs +1133 -53
  248. package/dist/index71.mjs +19 -5
  249. package/dist/index72.mjs +54 -4
  250. package/dist/index73.mjs +28 -174
  251. package/dist/index74.mjs +2 -53
  252. package/dist/index75.mjs +2 -69
  253. package/dist/index76.mjs +231 -30
  254. package/dist/index77.mjs +5 -42
  255. package/dist/index78.mjs +133 -3
  256. package/dist/index79.mjs +68 -2
  257. package/dist/index8.mjs +78 -162
  258. package/dist/index80.mjs +85 -19
  259. package/dist/index81.mjs +26 -53
  260. package/dist/index82.mjs +8 -28
  261. package/dist/index83.mjs +74 -6
  262. package/dist/index84.mjs +3 -51
  263. package/dist/index85.mjs +2 -6
  264. package/dist/index86.mjs +81 -10
  265. package/dist/index87.mjs +53 -6
  266. package/dist/index88.mjs +5 -27
  267. package/dist/index89.mjs +5 -2
  268. package/dist/index9.mjs +90 -90
  269. package/dist/index90.mjs +175 -66
  270. package/dist/index91.mjs +49 -163
  271. package/dist/index92.mjs +68 -30
  272. package/dist/index93.mjs +34 -11
  273. package/dist/index94.mjs +42 -3
  274. package/dist/index95.mjs +2 -4
  275. package/dist/index96.mjs +28 -13
  276. package/dist/index97.mjs +18 -7
  277. package/dist/index98.mjs +214 -11
  278. package/dist/index99.mjs +179 -4
  279. package/dist/providers/MetaPixelProvider.d.ts +98 -0
  280. package/dist/providers/MetaPixelProvider.d.ts.map +1 -0
  281. package/dist/providers/StorefrontProvider.d.ts +1 -0
  282. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  283. package/dist/styles.css +1 -1
  284. package/package.json +8 -3
  285. package/src/components/OrderConfirmation.tsx +0 -2
  286. package/src/components/ShoppingCart.tsx +12 -1
  287. package/src/contexts/CartContext.tsx +30 -5
  288. package/src/fetchers.ts +33 -0
  289. package/src/hooks/usePageTracking.ts +72 -0
  290. package/src/index.ts +5 -0
  291. package/src/providers/MetaPixelProvider.tsx +236 -0
  292. package/src/providers/StorefrontProvider.tsx +29 -3
package/dist/index39.mjs CHANGED
@@ -1,2266 +1,1436 @@
1
1
  'use client';
2
- const B = "-", oe = (e) => {
3
- const r = se(e), {
4
- conflictingClassGroups: t,
5
- conflictingClassGroupModifiers: o
6
- } = e;
7
- return {
8
- getClassGroupId: (i) => {
9
- const s = i.split(B);
10
- return s[0] === "" && s.length !== 1 && s.shift(), Y(s, r) || ne(i);
11
- },
12
- getConflictingClassGroupIds: (i, s) => {
13
- const u = t[i] || [];
14
- return s && o[i] ? [...u, ...o[i]] : u;
2
+ import { p as S } from "./index64.mjs";
3
+ import { t as U } from "./index65.mjs";
4
+ import he from "./index66.mjs";
5
+ const fe = Object.prototype.toString, de = Error.prototype.toString, pe = RegExp.prototype.toString, me = typeof Symbol < "u" ? Symbol.prototype.toString : () => "", ye = /^Symbol\((.*)\)(.*)$/;
6
+ function ge(n) {
7
+ return n != +n ? "NaN" : n === 0 && 1 / n < 0 ? "-0" : "" + n;
8
+ }
9
+ function H(n, t = !1) {
10
+ if (n == null || n === !0 || n === !1) return "" + n;
11
+ const e = typeof n;
12
+ if (e === "number") return ge(n);
13
+ if (e === "string") return t ? `"${n}"` : n;
14
+ if (e === "function") return "[Function " + (n.name || "anonymous") + "]";
15
+ if (e === "symbol") return me.call(n).replace(ye, "Symbol($1)");
16
+ const r = fe.call(n).slice(8, -1);
17
+ return r === "Date" ? isNaN(n.getTime()) ? "" + n : n.toISOString(n) : r === "Error" || n instanceof Error ? "[" + de.call(n) + "]" : r === "RegExp" ? pe.call(n) : null;
18
+ }
19
+ function x(n, t) {
20
+ let e = H(n, t);
21
+ return e !== null ? e : JSON.stringify(n, function(r, s) {
22
+ let i = H(this[r], t);
23
+ return i !== null ? i : s;
24
+ }, 2);
25
+ }
26
+ function te(n) {
27
+ return n == null ? [] : [].concat(n);
28
+ }
29
+ let re, se, ne, be = /\$\{\s*(\w+)\s*\}/g;
30
+ re = Symbol.toStringTag;
31
+ class Q {
32
+ constructor(t, e, r, s) {
33
+ this.name = void 0, this.message = void 0, this.value = void 0, this.path = void 0, this.type = void 0, this.params = void 0, this.errors = void 0, this.inner = void 0, this[re] = "Error", this.name = "ValidationError", this.value = e, this.path = r, this.type = s, this.errors = [], this.inner = [], te(t).forEach((i) => {
34
+ if (p.isError(i)) {
35
+ this.errors.push(...i.errors);
36
+ const a = i.inner.length ? i.inner : [i];
37
+ this.inner.push(...a);
38
+ } else
39
+ this.errors.push(i);
40
+ }), this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];
41
+ }
42
+ }
43
+ se = Symbol.hasInstance;
44
+ ne = Symbol.toStringTag;
45
+ class p extends Error {
46
+ static formatError(t, e) {
47
+ const r = e.label || e.path || "this";
48
+ return e = Object.assign({}, e, {
49
+ path: r,
50
+ originalPath: e.path
51
+ }), typeof t == "string" ? t.replace(be, (s, i) => x(e[i])) : typeof t == "function" ? t(e) : t;
52
+ }
53
+ static isError(t) {
54
+ return t && t.name === "ValidationError";
55
+ }
56
+ constructor(t, e, r, s, i) {
57
+ const a = new Q(t, e, r, s);
58
+ if (i)
59
+ return a;
60
+ super(), this.value = void 0, this.path = void 0, this.type = void 0, this.params = void 0, this.errors = [], this.inner = [], this[ne] = "Error", this.name = a.name, this.message = a.message, this.type = a.type, this.value = a.value, this.path = a.path, this.errors = a.errors, this.inner = a.inner, Error.captureStackTrace && Error.captureStackTrace(this, p);
61
+ }
62
+ static [se](t) {
63
+ return Q[Symbol.hasInstance](t) || super[Symbol.hasInstance](t);
64
+ }
65
+ }
66
+ let F = {
67
+ default: "${path} is invalid",
68
+ required: "${path} is a required field",
69
+ defined: "${path} must be defined",
70
+ notNull: "${path} cannot be null",
71
+ oneOf: "${path} must be one of the following values: ${values}",
72
+ notOneOf: "${path} must not be one of the following values: ${values}",
73
+ notType: ({
74
+ path: n,
75
+ type: t,
76
+ value: e,
77
+ originalValue: r
78
+ }) => {
79
+ const s = r != null && r !== e ? ` (cast from the value \`${x(r, !0)}\`).` : ".";
80
+ return t !== "mixed" ? `${n} must be a \`${t}\` type, but the final value was: \`${x(e, !0)}\`` + s : `${n} must match the configured type. The validated value was: \`${x(e, !0)}\`` + s;
81
+ }
82
+ }, m = {
83
+ length: "${path} must be exactly ${length} characters",
84
+ min: "${path} must be at least ${min} characters",
85
+ max: "${path} must be at most ${max} characters",
86
+ matches: '${path} must match the following: "${regex}"',
87
+ email: "${path} must be a valid email",
88
+ url: "${path} must be a valid URL",
89
+ uuid: "${path} must be a valid UUID",
90
+ datetime: "${path} must be a valid ISO date-time",
91
+ datetime_precision: "${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",
92
+ datetime_offset: '${path} must be a valid ISO date-time with UTC "Z" timezone',
93
+ trim: "${path} must be a trimmed string",
94
+ lowercase: "${path} must be a lowercase string",
95
+ uppercase: "${path} must be a upper case string"
96
+ }, Fe = {
97
+ min: "${path} must be greater than or equal to ${min}",
98
+ max: "${path} must be less than or equal to ${max}",
99
+ lessThan: "${path} must be less than ${less}",
100
+ moreThan: "${path} must be greater than ${more}",
101
+ positive: "${path} must be a positive number",
102
+ negative: "${path} must be a negative number",
103
+ integer: "${path} must be an integer"
104
+ }, q = {
105
+ min: "${path} field must be later than ${min}",
106
+ max: "${path} field must be at earlier than ${max}"
107
+ }, $e = {
108
+ isValue: "${path} field must be ${value}"
109
+ }, C = {
110
+ noUnknown: "${path} field has unspecified keys: ${unknown}",
111
+ exact: "${path} object contains unknown properties: ${properties}"
112
+ }, Oe = {
113
+ min: "${path} field must have at least ${min} items",
114
+ max: "${path} field must have less than or equal to ${max} items",
115
+ length: "${path} must have ${length} items"
116
+ }, we = {
117
+ notType: (n) => {
118
+ const {
119
+ path: t,
120
+ value: e,
121
+ spec: r
122
+ } = n, s = r.types.length;
123
+ if (Array.isArray(e)) {
124
+ if (e.length < s) return `${t} tuple value has too few items, expected a length of ${s} but got ${e.length} for value: \`${x(e, !0)}\``;
125
+ if (e.length > s) return `${t} tuple value has too many items, expected a length of ${s} but got ${e.length} for value: \`${x(e, !0)}\``;
15
126
  }
16
- };
17
- }, Y = (e, r) => {
18
- var i;
19
- if (e.length === 0)
20
- return r.classGroupId;
21
- const t = e[0], o = r.nextPart.get(t), a = o ? Y(e.slice(1), o) : void 0;
22
- if (a)
23
- return a;
24
- if (r.validators.length === 0)
25
- return;
26
- const n = e.join(B);
27
- return (i = r.validators.find(({
28
- validator: s
29
- }) => s(n))) == null ? void 0 : i.classGroupId;
30
- }, K = /^\[(.+)\]$/, ne = (e) => {
31
- if (K.test(e)) {
32
- const r = K.exec(e)[1], t = r == null ? void 0 : r.substring(0, r.indexOf(":"));
33
- if (t)
34
- return "arbitrary.." + t;
35
- }
36
- }, se = (e) => {
37
- const {
38
- theme: r,
39
- prefix: t
40
- } = e, o = {
41
- nextPart: /* @__PURE__ */ new Map(),
42
- validators: []
43
- };
44
- return ie(Object.entries(e.classGroups), t).forEach(([n, i]) => {
45
- $(i, o, n, r);
46
- }), o;
47
- }, $ = (e, r, t, o) => {
48
- e.forEach((a) => {
49
- if (typeof a == "string") {
50
- const n = a === "" ? r : Q(r, a);
51
- n.classGroupId = t;
52
- return;
127
+ return p.formatError(F.notType, n);
128
+ }
129
+ };
130
+ Object.assign(/* @__PURE__ */ Object.create(null), {
131
+ mixed: F,
132
+ string: m,
133
+ number: Fe,
134
+ date: q,
135
+ object: C,
136
+ array: Oe,
137
+ boolean: $e,
138
+ tuple: we
139
+ });
140
+ const L = (n) => n && n.__isYupSchema__;
141
+ class R {
142
+ static fromOptions(t, e) {
143
+ if (!e.then && !e.otherwise) throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");
144
+ let {
145
+ is: r,
146
+ then: s,
147
+ otherwise: i
148
+ } = e, a = typeof r == "function" ? r : (...l) => l.every((u) => u === r);
149
+ return new R(t, (l, u) => {
150
+ var o;
151
+ let c = a(...l) ? s : i;
152
+ return (o = c == null ? void 0 : c(u)) != null ? o : u;
153
+ });
154
+ }
155
+ constructor(t, e) {
156
+ this.fn = void 0, this.refs = t, this.refs = t, this.fn = e;
157
+ }
158
+ resolve(t, e) {
159
+ let r = this.refs.map((i) => (
160
+ // TODO: ? operator here?
161
+ i.getValue(e == null ? void 0 : e.value, e == null ? void 0 : e.parent, e == null ? void 0 : e.context)
162
+ )), s = this.fn(r, t, e);
163
+ if (s === void 0 || // @ts-ignore this can be base
164
+ s === t)
165
+ return t;
166
+ if (!L(s)) throw new TypeError("conditions must return a schema object");
167
+ return s.resolve(e);
168
+ }
169
+ }
170
+ const N = {
171
+ context: "$",
172
+ value: "."
173
+ };
174
+ class E {
175
+ constructor(t, e = {}) {
176
+ if (this.key = void 0, this.isContext = void 0, this.isValue = void 0, this.isSibling = void 0, this.path = void 0, this.getter = void 0, this.map = void 0, typeof t != "string") throw new TypeError("ref must be a string, got: " + t);
177
+ if (this.key = t.trim(), t === "") throw new TypeError("ref must be a non-empty string");
178
+ this.isContext = this.key[0] === N.context, this.isValue = this.key[0] === N.value, this.isSibling = !this.isContext && !this.isValue;
179
+ let r = this.isContext ? N.context : this.isValue ? N.value : "";
180
+ this.path = this.key.slice(r.length), this.getter = this.path && S.getter(this.path, !0), this.map = e.map;
181
+ }
182
+ getValue(t, e, r) {
183
+ let s = this.isContext ? r : this.isValue ? t : e;
184
+ return this.getter && (s = this.getter(s || {})), this.map && (s = this.map(s)), s;
185
+ }
186
+ /**
187
+ *
188
+ * @param {*} value
189
+ * @param {Object} options
190
+ * @param {Object=} options.context
191
+ * @param {Object=} options.parent
192
+ */
193
+ cast(t, e) {
194
+ return this.getValue(t, e == null ? void 0 : e.parent, e == null ? void 0 : e.context);
195
+ }
196
+ resolve() {
197
+ return this;
198
+ }
199
+ describe() {
200
+ return {
201
+ type: "ref",
202
+ key: this.key
203
+ };
204
+ }
205
+ toString() {
206
+ return `Ref(${this.key})`;
207
+ }
208
+ static isRef(t) {
209
+ return t && t.__isYupRef;
210
+ }
211
+ }
212
+ E.prototype.__isYupRef = !0;
213
+ const v = (n) => n == null;
214
+ function k(n) {
215
+ function t({
216
+ value: e,
217
+ path: r = "",
218
+ options: s,
219
+ originalValue: i,
220
+ schema: a
221
+ }, l, u) {
222
+ const {
223
+ name: o,
224
+ test: c,
225
+ params: h,
226
+ message: f,
227
+ skipAbsent: g
228
+ } = n;
229
+ let {
230
+ parent: b,
231
+ context: y,
232
+ abortEarly: w = a.spec.abortEarly,
233
+ disableStackTrace: D = a.spec.disableStackTrace
234
+ } = s;
235
+ const _ = {
236
+ value: e,
237
+ parent: b,
238
+ context: y
239
+ };
240
+ function K(d = {}) {
241
+ const A = ie(Object.assign({
242
+ value: e,
243
+ originalValue: i,
244
+ label: a.spec.label,
245
+ path: d.path || r,
246
+ spec: a.spec,
247
+ disableStackTrace: d.disableStackTrace || D
248
+ }, h, d.params), _), G = new p(p.formatError(d.message || f, A), e, A.path, d.type || o, A.disableStackTrace);
249
+ return G.params = A, G;
53
250
  }
54
- if (typeof a == "function") {
55
- if (le(a)) {
56
- $(a(o), r, t, o);
57
- return;
251
+ const M = w ? l : u;
252
+ let z = {
253
+ path: r,
254
+ parent: b,
255
+ type: o,
256
+ from: s.from,
257
+ createError: K,
258
+ resolve(d) {
259
+ return ae(d, _);
260
+ },
261
+ options: s,
262
+ originalValue: i,
263
+ schema: a
264
+ };
265
+ const V = (d) => {
266
+ p.isError(d) ? M(d) : d ? u(null) : M(K());
267
+ }, B = (d) => {
268
+ p.isError(d) ? M(d) : l(d);
269
+ };
270
+ if (g && v(e))
271
+ return V(!0);
272
+ let j;
273
+ try {
274
+ var J;
275
+ if (j = c.call(z, e, z), typeof ((J = j) == null ? void 0 : J.then) == "function") {
276
+ if (s.sync)
277
+ throw new Error(`Validation test of type: "${z.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);
278
+ return Promise.resolve(j).then(V, B);
58
279
  }
59
- r.validators.push({
60
- validator: a,
61
- classGroupId: t
62
- });
280
+ } catch (d) {
281
+ B(d);
63
282
  return;
64
283
  }
65
- Object.entries(a).forEach(([n, i]) => {
66
- $(i, Q(r, n), t, o);
284
+ V(j);
285
+ }
286
+ return t.OPTIONS = n, t;
287
+ }
288
+ function ie(n, t) {
289
+ if (!n) return n;
290
+ for (const e of Object.keys(n))
291
+ n[e] = ae(n[e], t);
292
+ return n;
293
+ }
294
+ function ae(n, t) {
295
+ return E.isRef(n) ? n.getValue(t.value, t.parent, t.context) : n;
296
+ }
297
+ function xe(n, t, e, r = e) {
298
+ let s, i, a;
299
+ return t ? (S.forEach(t, (l, u, o) => {
300
+ let c = u ? l.slice(1, l.length - 1) : l;
301
+ n = n.resolve({
302
+ context: r,
303
+ parent: s,
304
+ value: e
67
305
  });
68
- });
69
- }, Q = (e, r) => {
70
- let t = e;
71
- return r.split(B).forEach((o) => {
72
- t.nextPart.has(o) || t.nextPart.set(o, {
73
- nextPart: /* @__PURE__ */ new Map(),
74
- validators: []
75
- }), t = t.nextPart.get(o);
76
- }), t;
77
- }, le = (e) => e.isThemeGetter, ie = (e, r) => r ? e.map(([t, o]) => {
78
- const a = o.map((n) => typeof n == "string" ? r + n : typeof n == "object" ? Object.fromEntries(Object.entries(n).map(([i, s]) => [r + i, s])) : n);
79
- return [t, a];
80
- }) : e, ae = (e) => {
81
- if (e < 1)
82
- return {
83
- get: () => {
84
- },
85
- set: () => {
86
- }
87
- };
88
- let r = 0, t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
89
- const a = (n, i) => {
90
- t.set(n, i), r++, r > e && (r = 0, o = t, t = /* @__PURE__ */ new Map());
306
+ let h = n.type === "tuple", f = o ? parseInt(c, 10) : 0;
307
+ if (n.innerType || h) {
308
+ if (h && !o) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${a}" must contain an index to the tuple element, e.g. "${a}[0]"`);
309
+ if (e && f >= e.length)
310
+ throw new Error(`Yup.reach cannot resolve an array item at index: ${l}, in the path: ${t}. because there is no value at that index. `);
311
+ s = e, e = e && e[f], n = h ? n.spec.types[f] : n.innerType;
312
+ }
313
+ if (!o) {
314
+ if (!n.fields || !n.fields[c]) throw new Error(`The schema does not contain the path: ${t}. (failed at: ${a} which is a type: "${n.type}")`);
315
+ s = e, e = e && e[c], n = n.fields[c];
316
+ }
317
+ i = c, a = u ? "[" + l + "]" : "." + l;
318
+ }), {
319
+ schema: n,
320
+ parent: s,
321
+ parentPath: i
322
+ }) : {
323
+ parent: s,
324
+ parentPath: t,
325
+ schema: n
91
326
  };
92
- return {
93
- get(n) {
94
- let i = t.get(n);
95
- if (i !== void 0)
327
+ }
328
+ class P extends Set {
329
+ describe() {
330
+ const t = [];
331
+ for (const e of this.values())
332
+ t.push(E.isRef(e) ? e.describe() : e);
333
+ return t;
334
+ }
335
+ resolveAll(t) {
336
+ let e = [];
337
+ for (const r of this.values())
338
+ e.push(t(r));
339
+ return e;
340
+ }
341
+ clone() {
342
+ return new P(this.values());
343
+ }
344
+ merge(t, e) {
345
+ const r = this.clone();
346
+ return t.forEach((s) => r.add(s)), e.forEach((s) => r.delete(s)), r;
347
+ }
348
+ }
349
+ function T(n, t = /* @__PURE__ */ new Map()) {
350
+ if (L(n) || !n || typeof n != "object") return n;
351
+ if (t.has(n)) return t.get(n);
352
+ let e;
353
+ if (n instanceof Date)
354
+ e = new Date(n.getTime()), t.set(n, e);
355
+ else if (n instanceof RegExp)
356
+ e = new RegExp(n), t.set(n, e);
357
+ else if (Array.isArray(n)) {
358
+ e = new Array(n.length), t.set(n, e);
359
+ for (let r = 0; r < n.length; r++) e[r] = T(n[r], t);
360
+ } else if (n instanceof Map) {
361
+ e = /* @__PURE__ */ new Map(), t.set(n, e);
362
+ for (const [r, s] of n.entries()) e.set(r, T(s, t));
363
+ } else if (n instanceof Set) {
364
+ e = /* @__PURE__ */ new Set(), t.set(n, e);
365
+ for (const r of n) e.add(T(r, t));
366
+ } else if (n instanceof Object) {
367
+ e = {}, t.set(n, e);
368
+ for (const [r, s] of Object.entries(n)) e[r] = T(s, t);
369
+ } else
370
+ throw Error(`Unable to clone ${n}`);
371
+ return e;
372
+ }
373
+ function _e(n) {
374
+ if (!(n != null && n.length))
375
+ return;
376
+ const t = [];
377
+ let e = "", r = !1, s = !1;
378
+ for (let i = 0; i < n.length; i++) {
379
+ const a = n[i];
380
+ if (a === "[" && !s) {
381
+ e && (t.push(...e.split(".").filter(Boolean)), e = ""), r = !0;
382
+ continue;
383
+ }
384
+ if (a === "]" && !s) {
385
+ e && (/^\d+$/.test(e) ? t.push(e) : t.push(e.replace(/^"|"$/g, "")), e = ""), r = !1;
386
+ continue;
387
+ }
388
+ if (a === '"') {
389
+ s = !s;
390
+ continue;
391
+ }
392
+ if (a === "." && !r && !s) {
393
+ e && (t.push(e), e = "");
394
+ continue;
395
+ }
396
+ e += a;
397
+ }
398
+ return e && t.push(...e.split(".").filter(Boolean)), t;
399
+ }
400
+ function ve(n, t) {
401
+ const e = t ? `${t}.${n.path}` : n.path;
402
+ return n.errors.map((r) => ({
403
+ message: r,
404
+ path: _e(e)
405
+ }));
406
+ }
407
+ function le(n, t) {
408
+ var e;
409
+ if (!((e = n.inner) != null && e.length) && n.errors.length)
410
+ return ve(n, t);
411
+ const r = t ? `${t}.${n.path}` : n.path;
412
+ return n.inner.flatMap((s) => le(s, r));
413
+ }
414
+ class $ {
415
+ constructor(t) {
416
+ this.type = void 0, this.deps = [], this.tests = void 0, this.transforms = void 0, this.conditions = [], this._mutate = void 0, this.internalTests = {}, this._whitelist = new P(), this._blacklist = new P(), this.exclusiveTests = /* @__PURE__ */ Object.create(null), this._typeCheck = void 0, this.spec = void 0, this.tests = [], this.transforms = [], this.withMutation(() => {
417
+ this.typeError(F.notType);
418
+ }), this.type = t.type, this._typeCheck = t.check, this.spec = Object.assign({
419
+ strip: !1,
420
+ strict: !1,
421
+ abortEarly: !0,
422
+ recursive: !0,
423
+ disableStackTrace: !1,
424
+ nullable: !1,
425
+ optional: !0,
426
+ coerce: !0
427
+ }, t == null ? void 0 : t.spec), this.withMutation((e) => {
428
+ e.nonNullable();
429
+ });
430
+ }
431
+ // TODO: remove
432
+ get _type() {
433
+ return this.type;
434
+ }
435
+ clone(t) {
436
+ if (this._mutate)
437
+ return t && Object.assign(this.spec, t), this;
438
+ const e = Object.create(Object.getPrototypeOf(this));
439
+ return e.type = this.type, e._typeCheck = this._typeCheck, e._whitelist = this._whitelist.clone(), e._blacklist = this._blacklist.clone(), e.internalTests = Object.assign({}, this.internalTests), e.exclusiveTests = Object.assign({}, this.exclusiveTests), e.deps = [...this.deps], e.conditions = [...this.conditions], e.tests = [...this.tests], e.transforms = [...this.transforms], e.spec = T(Object.assign({}, this.spec, t)), e;
440
+ }
441
+ label(t) {
442
+ let e = this.clone();
443
+ return e.spec.label = t, e;
444
+ }
445
+ meta(...t) {
446
+ if (t.length === 0) return this.spec.meta;
447
+ let e = this.clone();
448
+ return e.spec.meta = Object.assign(e.spec.meta || {}, t[0]), e;
449
+ }
450
+ withMutation(t) {
451
+ let e = this._mutate;
452
+ this._mutate = !0;
453
+ let r = t(this);
454
+ return this._mutate = e, r;
455
+ }
456
+ concat(t) {
457
+ if (!t || t === this) return this;
458
+ if (t.type !== this.type && this.type !== "mixed") throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${t.type}`);
459
+ let e = this, r = t.clone();
460
+ const s = Object.assign({}, e.spec, r.spec);
461
+ return r.spec = s, r.internalTests = Object.assign({}, e.internalTests, r.internalTests), r._whitelist = e._whitelist.merge(t._whitelist, t._blacklist), r._blacklist = e._blacklist.merge(t._blacklist, t._whitelist), r.tests = e.tests, r.exclusiveTests = e.exclusiveTests, r.withMutation((i) => {
462
+ t.tests.forEach((a) => {
463
+ i.test(a.OPTIONS);
464
+ });
465
+ }), r.transforms = [...e.transforms, ...r.transforms], r;
466
+ }
467
+ isType(t) {
468
+ return t == null ? !!(this.spec.nullable && t === null || this.spec.optional && t === void 0) : this._typeCheck(t);
469
+ }
470
+ resolve(t) {
471
+ let e = this;
472
+ if (e.conditions.length) {
473
+ let r = e.conditions;
474
+ e = e.clone(), e.conditions = [], e = r.reduce((s, i) => i.resolve(s, t), e), e = e.resolve(t);
475
+ }
476
+ return e;
477
+ }
478
+ resolveOptions(t) {
479
+ var e, r, s, i;
480
+ return Object.assign({}, t, {
481
+ from: t.from || [],
482
+ strict: (e = t.strict) != null ? e : this.spec.strict,
483
+ abortEarly: (r = t.abortEarly) != null ? r : this.spec.abortEarly,
484
+ recursive: (s = t.recursive) != null ? s : this.spec.recursive,
485
+ disableStackTrace: (i = t.disableStackTrace) != null ? i : this.spec.disableStackTrace
486
+ });
487
+ }
488
+ /**
489
+ * Run the configured transform pipeline over an input value.
490
+ */
491
+ cast(t, e = {}) {
492
+ let r = this.resolve(Object.assign({}, e, {
493
+ value: t
494
+ // parent: options.parent,
495
+ // context: options.context,
496
+ })), s = e.assert === "ignore-optionality", i = r._cast(t, e);
497
+ if (e.assert !== !1 && !r.isType(i)) {
498
+ if (s && v(i))
96
499
  return i;
97
- if ((i = o.get(n)) !== void 0)
98
- return a(n, i), i;
99
- },
100
- set(n, i) {
101
- t.has(n) ? t.set(n, i) : a(n, i);
500
+ let a = x(t), l = x(i);
501
+ throw new TypeError(`The value of ${e.path || "field"} could not be cast to a value that satisfies the schema type: "${r.type}".
502
+
503
+ attempted value: ${a}
504
+ ` + (l !== a ? `result of cast: ${l}` : ""));
102
505
  }
103
- };
104
- }, D = "!", ce = (e) => {
105
- const {
106
- separator: r,
107
- experimentalParseClassName: t
108
- } = e, o = r.length === 1, a = r[0], n = r.length, i = (s) => {
109
- const u = [];
110
- let g = 0, m = 0, y;
111
- for (let p = 0; p < s.length; p++) {
112
- let f = s[p];
113
- if (g === 0) {
114
- if (f === a && (o || s.slice(p, p + n) === r)) {
115
- u.push(s.slice(m, p)), m = p + n;
116
- continue;
117
- }
118
- if (f === "/") {
119
- y = p;
120
- continue;
121
- }
122
- }
123
- f === "[" ? g++ : f === "]" && g--;
506
+ return i;
507
+ }
508
+ _cast(t, e) {
509
+ let r = t === void 0 ? t : this.transforms.reduce((s, i) => i.call(this, s, t, this, e), t);
510
+ return r === void 0 && (r = this.getDefault(e)), r;
511
+ }
512
+ _validate(t, e = {}, r, s) {
513
+ let {
514
+ path: i,
515
+ originalValue: a = t,
516
+ strict: l = this.spec.strict
517
+ } = e, u = t;
518
+ l || (u = this._cast(u, Object.assign({
519
+ assert: !1
520
+ }, e)));
521
+ let o = [];
522
+ for (let c of Object.values(this.internalTests))
523
+ c && o.push(c);
524
+ this.runTests({
525
+ path: i,
526
+ value: u,
527
+ originalValue: a,
528
+ options: e,
529
+ tests: o
530
+ }, r, (c) => {
531
+ if (c.length)
532
+ return s(c, u);
533
+ this.runTests({
534
+ path: i,
535
+ value: u,
536
+ originalValue: a,
537
+ options: e,
538
+ tests: this.tests
539
+ }, r, s);
540
+ });
541
+ }
542
+ /**
543
+ * Executes a set of validations, either schema, produced Tests or a nested
544
+ * schema validate result.
545
+ */
546
+ runTests(t, e, r) {
547
+ let s = !1, {
548
+ tests: i,
549
+ value: a,
550
+ originalValue: l,
551
+ path: u,
552
+ options: o
553
+ } = t, c = (y) => {
554
+ s || (s = !0, e(y, a));
555
+ }, h = (y) => {
556
+ s || (s = !0, r(y, a));
557
+ }, f = i.length, g = [];
558
+ if (!f) return h([]);
559
+ let b = {
560
+ value: a,
561
+ originalValue: l,
562
+ path: u,
563
+ options: o,
564
+ schema: this
565
+ };
566
+ for (let y = 0; y < i.length; y++) {
567
+ const w = i[y];
568
+ w(b, c, function(_) {
569
+ _ && (Array.isArray(_) ? g.push(..._) : g.push(_)), --f <= 0 && h(g);
570
+ });
571
+ }
572
+ }
573
+ asNestedTest({
574
+ key: t,
575
+ index: e,
576
+ parent: r,
577
+ parentPath: s,
578
+ originalParent: i,
579
+ options: a
580
+ }) {
581
+ const l = t ?? e;
582
+ if (l == null)
583
+ throw TypeError("Must include `key` or `index` for nested validations");
584
+ const u = typeof l == "number";
585
+ let o = r[l];
586
+ const c = Object.assign({}, a, {
587
+ // Nested validations fields are always strict:
588
+ // 1. parent isn't strict so the casting will also have cast inner values
589
+ // 2. parent is strict in which case the nested values weren't cast either
590
+ strict: !0,
591
+ parent: r,
592
+ value: o,
593
+ originalValue: i[l],
594
+ // FIXME: tests depend on `index` being passed around deeply,
595
+ // we should not let the options.key/index bleed through
596
+ key: void 0,
597
+ // index: undefined,
598
+ [u ? "index" : "key"]: l,
599
+ path: u || l.includes(".") ? `${s || ""}[${u ? l : `"${l}"`}]` : (s ? `${s}.` : "") + t
600
+ });
601
+ return (h, f, g) => this.resolve(c)._validate(o, c, f, g);
602
+ }
603
+ validate(t, e) {
604
+ var r;
605
+ let s = this.resolve(Object.assign({}, e, {
606
+ value: t
607
+ })), i = (r = e == null ? void 0 : e.disableStackTrace) != null ? r : s.spec.disableStackTrace;
608
+ return new Promise((a, l) => s._validate(t, e, (u, o) => {
609
+ p.isError(u) && (u.value = o), l(u);
610
+ }, (u, o) => {
611
+ u.length ? l(new p(u, o, void 0, void 0, i)) : a(o);
612
+ }));
613
+ }
614
+ validateSync(t, e) {
615
+ var r;
616
+ let s = this.resolve(Object.assign({}, e, {
617
+ value: t
618
+ })), i, a = (r = e == null ? void 0 : e.disableStackTrace) != null ? r : s.spec.disableStackTrace;
619
+ return s._validate(t, Object.assign({}, e, {
620
+ sync: !0
621
+ }), (l, u) => {
622
+ throw p.isError(l) && (l.value = u), l;
623
+ }, (l, u) => {
624
+ if (l.length) throw new p(l, t, void 0, void 0, a);
625
+ i = u;
626
+ }), i;
627
+ }
628
+ isValid(t, e) {
629
+ return this.validate(t, e).then(() => !0, (r) => {
630
+ if (p.isError(r)) return !1;
631
+ throw r;
632
+ });
633
+ }
634
+ isValidSync(t, e) {
635
+ try {
636
+ return this.validateSync(t, e), !0;
637
+ } catch (r) {
638
+ if (p.isError(r)) return !1;
639
+ throw r;
124
640
  }
125
- const x = u.length === 0 ? s : s.substring(m), v = x.startsWith(D), w = v ? x.substring(1) : x, b = y && y > m ? y - m : void 0;
641
+ }
642
+ _getDefault(t) {
643
+ let e = this.spec.default;
644
+ return e == null ? e : typeof e == "function" ? e.call(this, t) : T(e);
645
+ }
646
+ getDefault(t) {
647
+ return this.resolve(t || {})._getDefault(t);
648
+ }
649
+ default(t) {
650
+ return arguments.length === 0 ? this._getDefault() : this.clone({
651
+ default: t
652
+ });
653
+ }
654
+ strict(t = !0) {
655
+ return this.clone({
656
+ strict: t
657
+ });
658
+ }
659
+ nullability(t, e) {
660
+ const r = this.clone({
661
+ nullable: t
662
+ });
663
+ return r.internalTests.nullable = k({
664
+ message: e,
665
+ name: "nullable",
666
+ test(s) {
667
+ return s === null ? this.schema.spec.nullable : !0;
668
+ }
669
+ }), r;
670
+ }
671
+ optionality(t, e) {
672
+ const r = this.clone({
673
+ optional: t
674
+ });
675
+ return r.internalTests.optionality = k({
676
+ message: e,
677
+ name: "optionality",
678
+ test(s) {
679
+ return s === void 0 ? this.schema.spec.optional : !0;
680
+ }
681
+ }), r;
682
+ }
683
+ optional() {
684
+ return this.optionality(!0);
685
+ }
686
+ defined(t = F.defined) {
687
+ return this.optionality(!1, t);
688
+ }
689
+ nullable() {
690
+ return this.nullability(!0);
691
+ }
692
+ nonNullable(t = F.notNull) {
693
+ return this.nullability(!1, t);
694
+ }
695
+ required(t = F.required) {
696
+ return this.clone().withMutation((e) => e.nonNullable(t).defined(t));
697
+ }
698
+ notRequired() {
699
+ return this.clone().withMutation((t) => t.nullable().optional());
700
+ }
701
+ transform(t) {
702
+ let e = this.clone();
703
+ return e.transforms.push(t), e;
704
+ }
705
+ /**
706
+ * Adds a test function to the schema's queue of tests.
707
+ * tests can be exclusive or non-exclusive.
708
+ *
709
+ * - exclusive tests, will replace any existing tests of the same name.
710
+ * - non-exclusive: can be stacked
711
+ *
712
+ * If a non-exclusive test is added to a schema with an exclusive test of the same name
713
+ * the exclusive test is removed and further tests of the same name will be stacked.
714
+ *
715
+ * If an exclusive test is added to a schema with non-exclusive tests of the same name
716
+ * the previous tests are removed and further tests of the same name will replace each other.
717
+ */
718
+ test(...t) {
719
+ let e;
720
+ if (t.length === 1 ? typeof t[0] == "function" ? e = {
721
+ test: t[0]
722
+ } : e = t[0] : t.length === 2 ? e = {
723
+ name: t[0],
724
+ test: t[1]
725
+ } : e = {
726
+ name: t[0],
727
+ message: t[1],
728
+ test: t[2]
729
+ }, e.message === void 0 && (e.message = F.default), typeof e.test != "function") throw new TypeError("`test` is a required parameters");
730
+ let r = this.clone(), s = k(e), i = e.exclusive || e.name && r.exclusiveTests[e.name] === !0;
731
+ if (e.exclusive && !e.name)
732
+ throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");
733
+ return e.name && (r.exclusiveTests[e.name] = !!e.exclusive), r.tests = r.tests.filter((a) => !(a.OPTIONS.name === e.name && (i || a.OPTIONS.test === s.OPTIONS.test))), r.tests.push(s), r;
734
+ }
735
+ when(t, e) {
736
+ !Array.isArray(t) && typeof t != "string" && (e = t, t = ".");
737
+ let r = this.clone(), s = te(t).map((i) => new E(i));
738
+ return s.forEach((i) => {
739
+ i.isSibling && r.deps.push(i.key);
740
+ }), r.conditions.push(typeof e == "function" ? new R(s, e) : R.fromOptions(s, e)), r;
741
+ }
742
+ typeError(t) {
743
+ let e = this.clone();
744
+ return e.internalTests.typeError = k({
745
+ message: t,
746
+ name: "typeError",
747
+ skipAbsent: !0,
748
+ test(r) {
749
+ return this.schema._typeCheck(r) ? !0 : this.createError({
750
+ params: {
751
+ type: this.schema.type
752
+ }
753
+ });
754
+ }
755
+ }), e;
756
+ }
757
+ oneOf(t, e = F.oneOf) {
758
+ let r = this.clone();
759
+ return t.forEach((s) => {
760
+ r._whitelist.add(s), r._blacklist.delete(s);
761
+ }), r.internalTests.whiteList = k({
762
+ message: e,
763
+ name: "oneOf",
764
+ skipAbsent: !0,
765
+ test(s) {
766
+ let i = this.schema._whitelist, a = i.resolveAll(this.resolve);
767
+ return a.includes(s) ? !0 : this.createError({
768
+ params: {
769
+ values: Array.from(i).join(", "),
770
+ resolved: a
771
+ }
772
+ });
773
+ }
774
+ }), r;
775
+ }
776
+ notOneOf(t, e = F.notOneOf) {
777
+ let r = this.clone();
778
+ return t.forEach((s) => {
779
+ r._blacklist.add(s), r._whitelist.delete(s);
780
+ }), r.internalTests.blacklist = k({
781
+ message: e,
782
+ name: "notOneOf",
783
+ test(s) {
784
+ let i = this.schema._blacklist, a = i.resolveAll(this.resolve);
785
+ return a.includes(s) ? this.createError({
786
+ params: {
787
+ values: Array.from(i).join(", "),
788
+ resolved: a
789
+ }
790
+ }) : !0;
791
+ }
792
+ }), r;
793
+ }
794
+ strip(t = !0) {
795
+ let e = this.clone();
796
+ return e.spec.strip = t, e;
797
+ }
798
+ /**
799
+ * Return a serialized description of the schema including validations, flags, types etc.
800
+ *
801
+ * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).
802
+ */
803
+ describe(t) {
804
+ const e = (t ? this.resolve(t) : this).clone(), {
805
+ label: r,
806
+ meta: s,
807
+ optional: i,
808
+ nullable: a
809
+ } = e.spec;
126
810
  return {
127
- modifiers: u,
128
- hasImportantModifier: v,
129
- baseClassName: w,
130
- maybePostfixModifierPosition: b
811
+ meta: s,
812
+ label: r,
813
+ optional: i,
814
+ nullable: a,
815
+ default: e.getDefault(t),
816
+ type: e.type,
817
+ oneOf: e._whitelist.describe(),
818
+ notOneOf: e._blacklist.describe(),
819
+ tests: e.tests.filter((u, o, c) => c.findIndex((h) => h.OPTIONS.name === u.OPTIONS.name) === o).map((u) => {
820
+ const o = u.OPTIONS.params && t ? ie(Object.assign({}, u.OPTIONS.params), t) : u.OPTIONS.params;
821
+ return {
822
+ name: u.OPTIONS.name,
823
+ params: o
824
+ };
825
+ })
131
826
  };
132
- };
133
- return t ? (s) => t({
134
- className: s,
135
- parseClassName: i
136
- }) : i;
137
- }, de = (e) => {
138
- if (e.length <= 1)
139
- return e;
140
- const r = [];
141
- let t = [];
142
- return e.forEach((o) => {
143
- o[0] === "[" ? (r.push(...t.sort(), o), t = []) : t.push(o);
144
- }), r.push(...t.sort()), r;
145
- }, pe = (e) => ({
146
- cache: ae(e.cacheSize),
147
- parseClassName: ce(e),
148
- ...oe(e)
149
- }), ue = /\s+/, be = (e, r) => {
827
+ }
828
+ get "~standard"() {
829
+ const t = this;
830
+ return {
831
+ version: 1,
832
+ vendor: "yup",
833
+ async validate(r) {
834
+ try {
835
+ return {
836
+ value: await t.validate(r, {
837
+ abortEarly: !1
838
+ })
839
+ };
840
+ } catch (s) {
841
+ if (s instanceof p)
842
+ return {
843
+ issues: le(s)
844
+ };
845
+ throw s;
846
+ }
847
+ }
848
+ };
849
+ }
850
+ }
851
+ $.prototype.__isYupSchema__ = !0;
852
+ for (const n of ["validate", "validateSync"]) $.prototype[`${n}At`] = function(t, e, r = {}) {
150
853
  const {
151
- parseClassName: t,
152
- getClassGroupId: o,
153
- getConflictingClassGroupIds: a
154
- } = r, n = [], i = e.trim().split(ue);
155
- let s = "";
156
- for (let u = i.length - 1; u >= 0; u -= 1) {
157
- const g = i[u], {
158
- modifiers: m,
159
- hasImportantModifier: y,
160
- baseClassName: x,
161
- maybePostfixModifierPosition: v
162
- } = t(g);
163
- let w = !!v, b = o(w ? x.substring(0, v) : x);
164
- if (!b) {
165
- if (!w) {
166
- s = g + (s.length > 0 ? " " + s : s);
167
- continue;
854
+ parent: s,
855
+ parentPath: i,
856
+ schema: a
857
+ } = xe(this, t, e, r.context);
858
+ return a[n](s && s[i], Object.assign({}, r, {
859
+ parent: s,
860
+ path: t
861
+ }));
862
+ };
863
+ for (const n of ["equals", "is"]) $.prototype[n] = $.prototype.oneOf;
864
+ for (const n of ["not", "nope"]) $.prototype[n] = $.prototype.notOneOf;
865
+ const Se = /^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;
866
+ function Ee(n) {
867
+ const t = Z(n);
868
+ if (!t) return Date.parse ? Date.parse(n) : Number.NaN;
869
+ if (t.z === void 0 && t.plusMinus === void 0)
870
+ return new Date(t.year, t.month, t.day, t.hour, t.minute, t.second, t.millisecond).valueOf();
871
+ let e = 0;
872
+ return t.z !== "Z" && t.plusMinus !== void 0 && (e = t.hourOffset * 60 + t.minuteOffset, t.plusMinus === "+" && (e = 0 - e)), Date.UTC(t.year, t.month, t.day, t.hour, t.minute + e, t.second, t.millisecond);
873
+ }
874
+ function Z(n) {
875
+ var t, e;
876
+ const r = Se.exec(n);
877
+ return r ? {
878
+ year: O(r[1]),
879
+ month: O(r[2], 1) - 1,
880
+ day: O(r[3], 1),
881
+ hour: O(r[4]),
882
+ minute: O(r[5]),
883
+ second: O(r[6]),
884
+ millisecond: r[7] ? (
885
+ // allow arbitrary sub-second precision beyond milliseconds
886
+ O(r[7].substring(0, 3))
887
+ ) : 0,
888
+ precision: (t = (e = r[7]) == null ? void 0 : e.length) != null ? t : void 0,
889
+ z: r[8] || void 0,
890
+ plusMinus: r[9] || void 0,
891
+ hourOffset: O(r[10]),
892
+ minuteOffset: O(r[11])
893
+ } : null;
894
+ }
895
+ function O(n, t = 0) {
896
+ return Number(n) || t;
897
+ }
898
+ let ke = (
899
+ // eslint-disable-next-line
900
+ /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
901
+ ), Te = (
902
+ // eslint-disable-next-line
903
+ /^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
904
+ ), De = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i, je = "^\\d{4}-\\d{2}-\\d{2}", Ae = "\\d{2}:\\d{2}:\\d{2}", Ne = "(([+-]\\d{2}(:?\\d{2})?)|Z)", Ce = new RegExp(`${je}T${Ae}(\\.\\d+)?${Ne}$`), Ie = (n) => v(n) || n === n.trim(), Re = {}.toString();
905
+ function Pe() {
906
+ return new ue();
907
+ }
908
+ class ue extends $ {
909
+ constructor() {
910
+ super({
911
+ type: "string",
912
+ check(t) {
913
+ return t instanceof String && (t = t.valueOf()), typeof t == "string";
914
+ }
915
+ }), this.withMutation(() => {
916
+ this.transform((t, e) => {
917
+ if (!this.spec.coerce || this.isType(t) || Array.isArray(t)) return t;
918
+ const r = t != null && t.toString ? t.toString() : t;
919
+ return r === Re ? t : r;
920
+ });
921
+ });
922
+ }
923
+ required(t) {
924
+ return super.required(t).withMutation((e) => e.test({
925
+ message: t || F.required,
926
+ name: "required",
927
+ skipAbsent: !0,
928
+ test: (r) => !!r.length
929
+ }));
930
+ }
931
+ notRequired() {
932
+ return super.notRequired().withMutation((t) => (t.tests = t.tests.filter((e) => e.OPTIONS.name !== "required"), t));
933
+ }
934
+ length(t, e = m.length) {
935
+ return this.test({
936
+ message: e,
937
+ name: "length",
938
+ exclusive: !0,
939
+ params: {
940
+ length: t
941
+ },
942
+ skipAbsent: !0,
943
+ test(r) {
944
+ return r.length === this.resolve(t);
168
945
  }
169
- if (b = o(x), !b) {
170
- s = g + (s.length > 0 ? " " + s : s);
171
- continue;
946
+ });
947
+ }
948
+ min(t, e = m.min) {
949
+ return this.test({
950
+ message: e,
951
+ name: "min",
952
+ exclusive: !0,
953
+ params: {
954
+ min: t
955
+ },
956
+ skipAbsent: !0,
957
+ test(r) {
958
+ return r.length >= this.resolve(t);
172
959
  }
173
- w = !1;
174
- }
175
- const p = de(m).join(":"), f = y ? p + D : p, h = f + b;
176
- if (n.includes(h))
177
- continue;
178
- n.push(h);
179
- const R = a(b, w);
180
- for (let A = 0; A < R.length; ++A) {
181
- const E = R[A];
182
- n.push(f + E);
960
+ });
961
+ }
962
+ max(t, e = m.max) {
963
+ return this.test({
964
+ name: "max",
965
+ exclusive: !0,
966
+ message: e,
967
+ params: {
968
+ max: t
969
+ },
970
+ skipAbsent: !0,
971
+ test(r) {
972
+ return r.length <= this.resolve(t);
973
+ }
974
+ });
975
+ }
976
+ matches(t, e) {
977
+ let r = !1, s, i;
978
+ return e && (typeof e == "object" ? {
979
+ excludeEmptyString: r = !1,
980
+ message: s,
981
+ name: i
982
+ } = e : s = e), this.test({
983
+ name: i || "matches",
984
+ message: s || m.matches,
985
+ params: {
986
+ regex: t
987
+ },
988
+ skipAbsent: !0,
989
+ test: (a) => a === "" && r || a.search(t) !== -1
990
+ });
991
+ }
992
+ email(t = m.email) {
993
+ return this.matches(ke, {
994
+ name: "email",
995
+ message: t,
996
+ excludeEmptyString: !0
997
+ });
998
+ }
999
+ url(t = m.url) {
1000
+ return this.matches(Te, {
1001
+ name: "url",
1002
+ message: t,
1003
+ excludeEmptyString: !0
1004
+ });
1005
+ }
1006
+ uuid(t = m.uuid) {
1007
+ return this.matches(De, {
1008
+ name: "uuid",
1009
+ message: t,
1010
+ excludeEmptyString: !1
1011
+ });
1012
+ }
1013
+ datetime(t) {
1014
+ let e = "", r, s;
1015
+ return t && (typeof t == "object" ? {
1016
+ message: e = "",
1017
+ allowOffset: r = !1,
1018
+ precision: s = void 0
1019
+ } = t : e = t), this.matches(Ce, {
1020
+ name: "datetime",
1021
+ message: e || m.datetime,
1022
+ excludeEmptyString: !0
1023
+ }).test({
1024
+ name: "datetime_offset",
1025
+ message: e || m.datetime_offset,
1026
+ params: {
1027
+ allowOffset: r
1028
+ },
1029
+ skipAbsent: !0,
1030
+ test: (i) => {
1031
+ if (!i || r) return !0;
1032
+ const a = Z(i);
1033
+ return a ? !!a.z : !1;
1034
+ }
1035
+ }).test({
1036
+ name: "datetime_precision",
1037
+ message: e || m.datetime_precision,
1038
+ params: {
1039
+ precision: s
1040
+ },
1041
+ skipAbsent: !0,
1042
+ test: (i) => {
1043
+ if (!i || s == null) return !0;
1044
+ const a = Z(i);
1045
+ return a ? a.precision === s : !1;
1046
+ }
1047
+ });
1048
+ }
1049
+ //-- transforms --
1050
+ ensure() {
1051
+ return this.default("").transform((t) => t === null ? "" : t);
1052
+ }
1053
+ trim(t = m.trim) {
1054
+ return this.transform((e) => e != null ? e.trim() : e).test({
1055
+ message: t,
1056
+ name: "trim",
1057
+ test: Ie
1058
+ });
1059
+ }
1060
+ lowercase(t = m.lowercase) {
1061
+ return this.transform((e) => v(e) ? e : e.toLowerCase()).test({
1062
+ message: t,
1063
+ name: "string_case",
1064
+ exclusive: !0,
1065
+ skipAbsent: !0,
1066
+ test: (e) => v(e) || e === e.toLowerCase()
1067
+ });
1068
+ }
1069
+ uppercase(t = m.uppercase) {
1070
+ return this.transform((e) => v(e) ? e : e.toUpperCase()).test({
1071
+ message: t,
1072
+ name: "string_case",
1073
+ exclusive: !0,
1074
+ skipAbsent: !0,
1075
+ test: (e) => v(e) || e === e.toUpperCase()
1076
+ });
1077
+ }
1078
+ }
1079
+ Pe.prototype = ue.prototype;
1080
+ let Me = /* @__PURE__ */ new Date(""), ze = (n) => Object.prototype.toString.call(n) === "[object Date]";
1081
+ class Y extends $ {
1082
+ constructor() {
1083
+ super({
1084
+ type: "date",
1085
+ check(t) {
1086
+ return ze(t) && !isNaN(t.getTime());
1087
+ }
1088
+ }), this.withMutation(() => {
1089
+ this.transform((t, e) => !this.spec.coerce || this.isType(t) || t === null ? t : (t = Ee(t), isNaN(t) ? Y.INVALID_DATE : new Date(t)));
1090
+ });
1091
+ }
1092
+ prepareParam(t, e) {
1093
+ let r;
1094
+ if (E.isRef(t))
1095
+ r = t;
1096
+ else {
1097
+ let s = this.cast(t);
1098
+ if (!this._typeCheck(s)) throw new TypeError(`\`${e}\` must be a Date or a value that can be \`cast()\` to a Date`);
1099
+ r = s;
183
1100
  }
184
- s = g + (s.length > 0 ? " " + s : s);
1101
+ return r;
185
1102
  }
186
- return s;
1103
+ min(t, e = q.min) {
1104
+ let r = this.prepareParam(t, "min");
1105
+ return this.test({
1106
+ message: e,
1107
+ name: "min",
1108
+ exclusive: !0,
1109
+ params: {
1110
+ min: t
1111
+ },
1112
+ skipAbsent: !0,
1113
+ test(s) {
1114
+ return s >= this.resolve(r);
1115
+ }
1116
+ });
1117
+ }
1118
+ max(t, e = q.max) {
1119
+ let r = this.prepareParam(t, "max");
1120
+ return this.test({
1121
+ message: e,
1122
+ name: "max",
1123
+ exclusive: !0,
1124
+ params: {
1125
+ max: t
1126
+ },
1127
+ skipAbsent: !0,
1128
+ test(s) {
1129
+ return s <= this.resolve(r);
1130
+ }
1131
+ });
1132
+ }
1133
+ }
1134
+ Y.INVALID_DATE = Me;
1135
+ function Ve(n, t = []) {
1136
+ let e = [], r = /* @__PURE__ */ new Set(), s = new Set(t.map(([a, l]) => `${a}-${l}`));
1137
+ function i(a, l) {
1138
+ let u = S.split(a)[0];
1139
+ r.add(u), s.has(`${l}-${u}`) || e.push([l, u]);
1140
+ }
1141
+ for (const a of Object.keys(n)) {
1142
+ let l = n[a];
1143
+ r.add(a), E.isRef(l) && l.isSibling ? i(l.path, a) : L(l) && "deps" in l && l.deps.forEach((u) => i(u, a));
1144
+ }
1145
+ return he.array(Array.from(r), e).reverse();
1146
+ }
1147
+ function X(n, t) {
1148
+ let e = 1 / 0;
1149
+ return n.some((r, s) => {
1150
+ var i;
1151
+ if ((i = t.path) != null && i.includes(r))
1152
+ return e = s, !0;
1153
+ }), e;
1154
+ }
1155
+ function oe(n) {
1156
+ return (t, e) => X(n, t) - X(n, e);
1157
+ }
1158
+ const Ue = (n, t, e) => {
1159
+ if (typeof n != "string")
1160
+ return n;
1161
+ let r = n;
1162
+ try {
1163
+ r = JSON.parse(n);
1164
+ } catch {
1165
+ }
1166
+ return e.isType(r) ? r : n;
187
1167
  };
188
- function ge() {
189
- let e = 0, r, t, o = "";
190
- for (; e < arguments.length; )
191
- (r = arguments[e++]) && (t = ee(r)) && (o && (o += " "), o += t);
192
- return o;
1168
+ function I(n) {
1169
+ if ("fields" in n) {
1170
+ const t = {};
1171
+ for (const [e, r] of Object.entries(n.fields))
1172
+ t[e] = I(r);
1173
+ return n.setFields(t);
1174
+ }
1175
+ if (n.type === "array") {
1176
+ const t = n.optional();
1177
+ return t.innerType && (t.innerType = I(t.innerType)), t;
1178
+ }
1179
+ return n.type === "tuple" ? n.optional().clone({
1180
+ types: n.spec.types.map(I)
1181
+ }) : "optional" in n ? n.optional() : n;
193
1182
  }
194
- const ee = (e) => {
195
- if (typeof e == "string")
196
- return e;
197
- let r, t = "";
198
- for (let o = 0; o < e.length; o++)
199
- e[o] && (r = ee(e[o])) && (t && (t += " "), t += r);
200
- return t;
1183
+ const qe = (n, t) => {
1184
+ const e = [...S.normalizePath(t)];
1185
+ if (e.length === 1) return e[0] in n;
1186
+ let r = e.pop(), s = S.getter(S.join(e), !0)(n);
1187
+ return !!(s && r in s);
201
1188
  };
202
- function fe(e, ...r) {
203
- let t, o, a, n = i;
204
- function i(u) {
205
- const g = r.reduce((m, y) => y(m), e());
206
- return t = pe(g), o = t.cache.get, a = t.cache.set, n = s, s(u);
207
- }
208
- function s(u) {
209
- const g = o(u);
210
- if (g)
211
- return g;
212
- const m = be(u, t);
213
- return a(u, m), m;
214
- }
215
- return function() {
216
- return n(ge.apply(null, arguments));
217
- };
1189
+ let W = (n) => Object.prototype.toString.call(n) === "[object Object]";
1190
+ function ee(n, t) {
1191
+ let e = Object.keys(n.fields);
1192
+ return Object.keys(t).filter((r) => e.indexOf(r) === -1);
218
1193
  }
219
- const c = (e) => {
220
- const r = (t) => t[e] || [];
221
- return r.isThemeGetter = !0, r;
222
- }, re = /^\[(?:([a-z-]+):)?(.+)\]$/i, me = /^\d+\/\d+$/, he = /* @__PURE__ */ new Set(["px", "full", "screen"]), ye = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, xe = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, we = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, ve = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, ke = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, C = (e) => M(e) || he.has(e) || me.test(e), z = (e) => G(e, "length", Ie), M = (e) => !!e && !Number.isNaN(Number(e)), _ = (e) => G(e, "number", M), P = (e) => !!e && Number.isInteger(Number(e)), Ce = (e) => e.endsWith("%") && M(e.slice(0, -1)), l = (e) => re.test(e), S = (e) => ye.test(e), ze = /* @__PURE__ */ new Set(["length", "size", "percentage"]), Se = (e) => G(e, ze, te), Ae = (e) => G(e, "position", te), Me = /* @__PURE__ */ new Set(["image", "url"]), Ge = (e) => G(e, Me, je), Re = (e) => G(e, "", Pe), j = () => !0, G = (e, r, t) => {
223
- const o = re.exec(e);
224
- return o ? o[1] ? typeof r == "string" ? o[1] === r : r.has(o[1]) : t(o[2]) : !1;
225
- }, Ie = (e) => (
226
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
227
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
228
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
229
- xe.test(e) && !we.test(e)
230
- ), te = () => !1, Pe = (e) => ve.test(e), je = (e) => ke.test(e), Ee = () => {
231
- const e = c("colors"), r = c("spacing"), t = c("blur"), o = c("brightness"), a = c("borderColor"), n = c("borderRadius"), i = c("borderSpacing"), s = c("borderWidth"), u = c("contrast"), g = c("grayscale"), m = c("hueRotate"), y = c("invert"), x = c("gap"), v = c("gradientColorStops"), w = c("gradientColorStopPositions"), b = c("inset"), p = c("margin"), f = c("opacity"), h = c("padding"), R = c("saturate"), A = c("scale"), E = c("sepia"), U = c("skew"), F = c("space"), q = c("translate"), L = () => ["auto", "contain", "none"], W = () => ["auto", "hidden", "clip", "visible", "scroll"], V = () => ["auto", l, r], d = () => [l, r], J = () => ["", C, z], N = () => ["auto", M, l], X = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], T = () => ["solid", "dashed", "dotted", "double", "none"], Z = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], O = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], I = () => ["", "0", l], H = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], k = () => [M, l];
232
- return {
233
- cacheSize: 500,
234
- separator: ":",
235
- theme: {
236
- colors: [j],
237
- spacing: [C, z],
238
- blur: ["none", "", S, l],
239
- brightness: k(),
240
- borderColor: [e],
241
- borderRadius: ["none", "", "full", S, l],
242
- borderSpacing: d(),
243
- borderWidth: J(),
244
- contrast: k(),
245
- grayscale: I(),
246
- hueRotate: k(),
247
- invert: I(),
248
- gap: d(),
249
- gradientColorStops: [e],
250
- gradientColorStopPositions: [Ce, z],
251
- inset: V(),
252
- margin: V(),
253
- opacity: k(),
254
- padding: d(),
255
- saturate: k(),
256
- scale: k(),
257
- sepia: I(),
258
- skew: k(),
259
- space: d(),
260
- translate: d()
261
- },
262
- classGroups: {
263
- // Layout
264
- /**
265
- * Aspect Ratio
266
- * @see https://tailwindcss.com/docs/aspect-ratio
267
- */
268
- aspect: [{
269
- aspect: ["auto", "square", "video", l]
270
- }],
271
- /**
272
- * Container
273
- * @see https://tailwindcss.com/docs/container
274
- */
275
- container: ["container"],
276
- /**
277
- * Columns
278
- * @see https://tailwindcss.com/docs/columns
279
- */
280
- columns: [{
281
- columns: [S]
282
- }],
283
- /**
284
- * Break After
285
- * @see https://tailwindcss.com/docs/break-after
286
- */
287
- "break-after": [{
288
- "break-after": H()
289
- }],
290
- /**
291
- * Break Before
292
- * @see https://tailwindcss.com/docs/break-before
293
- */
294
- "break-before": [{
295
- "break-before": H()
296
- }],
297
- /**
298
- * Break Inside
299
- * @see https://tailwindcss.com/docs/break-inside
300
- */
301
- "break-inside": [{
302
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
303
- }],
304
- /**
305
- * Box Decoration Break
306
- * @see https://tailwindcss.com/docs/box-decoration-break
307
- */
308
- "box-decoration": [{
309
- "box-decoration": ["slice", "clone"]
310
- }],
311
- /**
312
- * Box Sizing
313
- * @see https://tailwindcss.com/docs/box-sizing
314
- */
315
- box: [{
316
- box: ["border", "content"]
317
- }],
318
- /**
319
- * Display
320
- * @see https://tailwindcss.com/docs/display
321
- */
322
- display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
323
- /**
324
- * Floats
325
- * @see https://tailwindcss.com/docs/float
326
- */
327
- float: [{
328
- float: ["right", "left", "none", "start", "end"]
329
- }],
330
- /**
331
- * Clear
332
- * @see https://tailwindcss.com/docs/clear
333
- */
334
- clear: [{
335
- clear: ["left", "right", "both", "none", "start", "end"]
336
- }],
337
- /**
338
- * Isolation
339
- * @see https://tailwindcss.com/docs/isolation
340
- */
341
- isolation: ["isolate", "isolation-auto"],
342
- /**
343
- * Object Fit
344
- * @see https://tailwindcss.com/docs/object-fit
345
- */
346
- "object-fit": [{
347
- object: ["contain", "cover", "fill", "none", "scale-down"]
348
- }],
349
- /**
350
- * Object Position
351
- * @see https://tailwindcss.com/docs/object-position
352
- */
353
- "object-position": [{
354
- object: [...X(), l]
355
- }],
356
- /**
357
- * Overflow
358
- * @see https://tailwindcss.com/docs/overflow
359
- */
360
- overflow: [{
361
- overflow: W()
362
- }],
363
- /**
364
- * Overflow X
365
- * @see https://tailwindcss.com/docs/overflow
366
- */
367
- "overflow-x": [{
368
- "overflow-x": W()
369
- }],
370
- /**
371
- * Overflow Y
372
- * @see https://tailwindcss.com/docs/overflow
373
- */
374
- "overflow-y": [{
375
- "overflow-y": W()
376
- }],
377
- /**
378
- * Overscroll Behavior
379
- * @see https://tailwindcss.com/docs/overscroll-behavior
380
- */
381
- overscroll: [{
382
- overscroll: L()
383
- }],
384
- /**
385
- * Overscroll Behavior X
386
- * @see https://tailwindcss.com/docs/overscroll-behavior
387
- */
388
- "overscroll-x": [{
389
- "overscroll-x": L()
390
- }],
391
- /**
392
- * Overscroll Behavior Y
393
- * @see https://tailwindcss.com/docs/overscroll-behavior
394
- */
395
- "overscroll-y": [{
396
- "overscroll-y": L()
397
- }],
398
- /**
399
- * Position
400
- * @see https://tailwindcss.com/docs/position
401
- */
402
- position: ["static", "fixed", "absolute", "relative", "sticky"],
403
- /**
404
- * Top / Right / Bottom / Left
405
- * @see https://tailwindcss.com/docs/top-right-bottom-left
406
- */
407
- inset: [{
408
- inset: [b]
409
- }],
410
- /**
411
- * Right / Left
412
- * @see https://tailwindcss.com/docs/top-right-bottom-left
413
- */
414
- "inset-x": [{
415
- "inset-x": [b]
416
- }],
417
- /**
418
- * Top / Bottom
419
- * @see https://tailwindcss.com/docs/top-right-bottom-left
420
- */
421
- "inset-y": [{
422
- "inset-y": [b]
423
- }],
424
- /**
425
- * Start
426
- * @see https://tailwindcss.com/docs/top-right-bottom-left
427
- */
428
- start: [{
429
- start: [b]
430
- }],
431
- /**
432
- * End
433
- * @see https://tailwindcss.com/docs/top-right-bottom-left
434
- */
435
- end: [{
436
- end: [b]
437
- }],
438
- /**
439
- * Top
440
- * @see https://tailwindcss.com/docs/top-right-bottom-left
441
- */
442
- top: [{
443
- top: [b]
444
- }],
445
- /**
446
- * Right
447
- * @see https://tailwindcss.com/docs/top-right-bottom-left
448
- */
449
- right: [{
450
- right: [b]
451
- }],
452
- /**
453
- * Bottom
454
- * @see https://tailwindcss.com/docs/top-right-bottom-left
455
- */
456
- bottom: [{
457
- bottom: [b]
458
- }],
459
- /**
460
- * Left
461
- * @see https://tailwindcss.com/docs/top-right-bottom-left
462
- */
463
- left: [{
464
- left: [b]
465
- }],
466
- /**
467
- * Visibility
468
- * @see https://tailwindcss.com/docs/visibility
469
- */
470
- visibility: ["visible", "invisible", "collapse"],
471
- /**
472
- * Z-Index
473
- * @see https://tailwindcss.com/docs/z-index
474
- */
475
- z: [{
476
- z: ["auto", P, l]
477
- }],
478
- // Flexbox and Grid
479
- /**
480
- * Flex Basis
481
- * @see https://tailwindcss.com/docs/flex-basis
482
- */
483
- basis: [{
484
- basis: V()
485
- }],
486
- /**
487
- * Flex Direction
488
- * @see https://tailwindcss.com/docs/flex-direction
489
- */
490
- "flex-direction": [{
491
- flex: ["row", "row-reverse", "col", "col-reverse"]
492
- }],
493
- /**
494
- * Flex Wrap
495
- * @see https://tailwindcss.com/docs/flex-wrap
496
- */
497
- "flex-wrap": [{
498
- flex: ["wrap", "wrap-reverse", "nowrap"]
499
- }],
500
- /**
501
- * Flex
502
- * @see https://tailwindcss.com/docs/flex
503
- */
504
- flex: [{
505
- flex: ["1", "auto", "initial", "none", l]
506
- }],
507
- /**
508
- * Flex Grow
509
- * @see https://tailwindcss.com/docs/flex-grow
510
- */
511
- grow: [{
512
- grow: I()
513
- }],
514
- /**
515
- * Flex Shrink
516
- * @see https://tailwindcss.com/docs/flex-shrink
517
- */
518
- shrink: [{
519
- shrink: I()
520
- }],
521
- /**
522
- * Order
523
- * @see https://tailwindcss.com/docs/order
524
- */
525
- order: [{
526
- order: ["first", "last", "none", P, l]
527
- }],
528
- /**
529
- * Grid Template Columns
530
- * @see https://tailwindcss.com/docs/grid-template-columns
531
- */
532
- "grid-cols": [{
533
- "grid-cols": [j]
534
- }],
535
- /**
536
- * Grid Column Start / End
537
- * @see https://tailwindcss.com/docs/grid-column
538
- */
539
- "col-start-end": [{
540
- col: ["auto", {
541
- span: ["full", P, l]
542
- }, l]
543
- }],
544
- /**
545
- * Grid Column Start
546
- * @see https://tailwindcss.com/docs/grid-column
547
- */
548
- "col-start": [{
549
- "col-start": N()
550
- }],
551
- /**
552
- * Grid Column End
553
- * @see https://tailwindcss.com/docs/grid-column
554
- */
555
- "col-end": [{
556
- "col-end": N()
557
- }],
558
- /**
559
- * Grid Template Rows
560
- * @see https://tailwindcss.com/docs/grid-template-rows
561
- */
562
- "grid-rows": [{
563
- "grid-rows": [j]
564
- }],
565
- /**
566
- * Grid Row Start / End
567
- * @see https://tailwindcss.com/docs/grid-row
568
- */
569
- "row-start-end": [{
570
- row: ["auto", {
571
- span: [P, l]
572
- }, l]
573
- }],
574
- /**
575
- * Grid Row Start
576
- * @see https://tailwindcss.com/docs/grid-row
577
- */
578
- "row-start": [{
579
- "row-start": N()
580
- }],
581
- /**
582
- * Grid Row End
583
- * @see https://tailwindcss.com/docs/grid-row
584
- */
585
- "row-end": [{
586
- "row-end": N()
587
- }],
588
- /**
589
- * Grid Auto Flow
590
- * @see https://tailwindcss.com/docs/grid-auto-flow
591
- */
592
- "grid-flow": [{
593
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
594
- }],
595
- /**
596
- * Grid Auto Columns
597
- * @see https://tailwindcss.com/docs/grid-auto-columns
598
- */
599
- "auto-cols": [{
600
- "auto-cols": ["auto", "min", "max", "fr", l]
601
- }],
602
- /**
603
- * Grid Auto Rows
604
- * @see https://tailwindcss.com/docs/grid-auto-rows
605
- */
606
- "auto-rows": [{
607
- "auto-rows": ["auto", "min", "max", "fr", l]
608
- }],
609
- /**
610
- * Gap
611
- * @see https://tailwindcss.com/docs/gap
612
- */
613
- gap: [{
614
- gap: [x]
615
- }],
616
- /**
617
- * Gap X
618
- * @see https://tailwindcss.com/docs/gap
619
- */
620
- "gap-x": [{
621
- "gap-x": [x]
622
- }],
623
- /**
624
- * Gap Y
625
- * @see https://tailwindcss.com/docs/gap
626
- */
627
- "gap-y": [{
628
- "gap-y": [x]
629
- }],
630
- /**
631
- * Justify Content
632
- * @see https://tailwindcss.com/docs/justify-content
633
- */
634
- "justify-content": [{
635
- justify: ["normal", ...O()]
636
- }],
637
- /**
638
- * Justify Items
639
- * @see https://tailwindcss.com/docs/justify-items
640
- */
641
- "justify-items": [{
642
- "justify-items": ["start", "end", "center", "stretch"]
643
- }],
644
- /**
645
- * Justify Self
646
- * @see https://tailwindcss.com/docs/justify-self
647
- */
648
- "justify-self": [{
649
- "justify-self": ["auto", "start", "end", "center", "stretch"]
650
- }],
651
- /**
652
- * Align Content
653
- * @see https://tailwindcss.com/docs/align-content
654
- */
655
- "align-content": [{
656
- content: ["normal", ...O(), "baseline"]
657
- }],
658
- /**
659
- * Align Items
660
- * @see https://tailwindcss.com/docs/align-items
661
- */
662
- "align-items": [{
663
- items: ["start", "end", "center", "baseline", "stretch"]
664
- }],
665
- /**
666
- * Align Self
667
- * @see https://tailwindcss.com/docs/align-self
668
- */
669
- "align-self": [{
670
- self: ["auto", "start", "end", "center", "stretch", "baseline"]
671
- }],
672
- /**
673
- * Place Content
674
- * @see https://tailwindcss.com/docs/place-content
675
- */
676
- "place-content": [{
677
- "place-content": [...O(), "baseline"]
678
- }],
679
- /**
680
- * Place Items
681
- * @see https://tailwindcss.com/docs/place-items
682
- */
683
- "place-items": [{
684
- "place-items": ["start", "end", "center", "baseline", "stretch"]
685
- }],
686
- /**
687
- * Place Self
688
- * @see https://tailwindcss.com/docs/place-self
689
- */
690
- "place-self": [{
691
- "place-self": ["auto", "start", "end", "center", "stretch"]
692
- }],
693
- // Spacing
694
- /**
695
- * Padding
696
- * @see https://tailwindcss.com/docs/padding
697
- */
698
- p: [{
699
- p: [h]
700
- }],
701
- /**
702
- * Padding X
703
- * @see https://tailwindcss.com/docs/padding
704
- */
705
- px: [{
706
- px: [h]
707
- }],
708
- /**
709
- * Padding Y
710
- * @see https://tailwindcss.com/docs/padding
711
- */
712
- py: [{
713
- py: [h]
714
- }],
715
- /**
716
- * Padding Start
717
- * @see https://tailwindcss.com/docs/padding
718
- */
719
- ps: [{
720
- ps: [h]
721
- }],
722
- /**
723
- * Padding End
724
- * @see https://tailwindcss.com/docs/padding
725
- */
726
- pe: [{
727
- pe: [h]
728
- }],
729
- /**
730
- * Padding Top
731
- * @see https://tailwindcss.com/docs/padding
732
- */
733
- pt: [{
734
- pt: [h]
735
- }],
736
- /**
737
- * Padding Right
738
- * @see https://tailwindcss.com/docs/padding
739
- */
740
- pr: [{
741
- pr: [h]
742
- }],
743
- /**
744
- * Padding Bottom
745
- * @see https://tailwindcss.com/docs/padding
746
- */
747
- pb: [{
748
- pb: [h]
749
- }],
750
- /**
751
- * Padding Left
752
- * @see https://tailwindcss.com/docs/padding
753
- */
754
- pl: [{
755
- pl: [h]
756
- }],
757
- /**
758
- * Margin
759
- * @see https://tailwindcss.com/docs/margin
760
- */
761
- m: [{
762
- m: [p]
763
- }],
764
- /**
765
- * Margin X
766
- * @see https://tailwindcss.com/docs/margin
767
- */
768
- mx: [{
769
- mx: [p]
770
- }],
771
- /**
772
- * Margin Y
773
- * @see https://tailwindcss.com/docs/margin
774
- */
775
- my: [{
776
- my: [p]
777
- }],
778
- /**
779
- * Margin Start
780
- * @see https://tailwindcss.com/docs/margin
781
- */
782
- ms: [{
783
- ms: [p]
784
- }],
785
- /**
786
- * Margin End
787
- * @see https://tailwindcss.com/docs/margin
788
- */
789
- me: [{
790
- me: [p]
791
- }],
792
- /**
793
- * Margin Top
794
- * @see https://tailwindcss.com/docs/margin
795
- */
796
- mt: [{
797
- mt: [p]
798
- }],
799
- /**
800
- * Margin Right
801
- * @see https://tailwindcss.com/docs/margin
802
- */
803
- mr: [{
804
- mr: [p]
805
- }],
806
- /**
807
- * Margin Bottom
808
- * @see https://tailwindcss.com/docs/margin
809
- */
810
- mb: [{
811
- mb: [p]
812
- }],
813
- /**
814
- * Margin Left
815
- * @see https://tailwindcss.com/docs/margin
816
- */
817
- ml: [{
818
- ml: [p]
819
- }],
820
- /**
821
- * Space Between X
822
- * @see https://tailwindcss.com/docs/space
823
- */
824
- "space-x": [{
825
- "space-x": [F]
826
- }],
827
- /**
828
- * Space Between X Reverse
829
- * @see https://tailwindcss.com/docs/space
830
- */
831
- "space-x-reverse": ["space-x-reverse"],
832
- /**
833
- * Space Between Y
834
- * @see https://tailwindcss.com/docs/space
835
- */
836
- "space-y": [{
837
- "space-y": [F]
838
- }],
839
- /**
840
- * Space Between Y Reverse
841
- * @see https://tailwindcss.com/docs/space
842
- */
843
- "space-y-reverse": ["space-y-reverse"],
844
- // Sizing
845
- /**
846
- * Width
847
- * @see https://tailwindcss.com/docs/width
848
- */
849
- w: [{
850
- w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", l, r]
851
- }],
852
- /**
853
- * Min-Width
854
- * @see https://tailwindcss.com/docs/min-width
855
- */
856
- "min-w": [{
857
- "min-w": [l, r, "min", "max", "fit"]
858
- }],
859
- /**
860
- * Max-Width
861
- * @see https://tailwindcss.com/docs/max-width
862
- */
863
- "max-w": [{
864
- "max-w": [l, r, "none", "full", "min", "max", "fit", "prose", {
865
- screen: [S]
866
- }, S]
867
- }],
868
- /**
869
- * Height
870
- * @see https://tailwindcss.com/docs/height
871
- */
872
- h: [{
873
- h: [l, r, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
874
- }],
875
- /**
876
- * Min-Height
877
- * @see https://tailwindcss.com/docs/min-height
878
- */
879
- "min-h": [{
880
- "min-h": [l, r, "min", "max", "fit", "svh", "lvh", "dvh"]
881
- }],
882
- /**
883
- * Max-Height
884
- * @see https://tailwindcss.com/docs/max-height
885
- */
886
- "max-h": [{
887
- "max-h": [l, r, "min", "max", "fit", "svh", "lvh", "dvh"]
888
- }],
889
- /**
890
- * Size
891
- * @see https://tailwindcss.com/docs/size
892
- */
893
- size: [{
894
- size: [l, r, "auto", "min", "max", "fit"]
895
- }],
896
- // Typography
897
- /**
898
- * Font Size
899
- * @see https://tailwindcss.com/docs/font-size
900
- */
901
- "font-size": [{
902
- text: ["base", S, z]
903
- }],
904
- /**
905
- * Font Smoothing
906
- * @see https://tailwindcss.com/docs/font-smoothing
907
- */
908
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
909
- /**
910
- * Font Style
911
- * @see https://tailwindcss.com/docs/font-style
912
- */
913
- "font-style": ["italic", "not-italic"],
914
- /**
915
- * Font Weight
916
- * @see https://tailwindcss.com/docs/font-weight
917
- */
918
- "font-weight": [{
919
- font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", _]
920
- }],
921
- /**
922
- * Font Family
923
- * @see https://tailwindcss.com/docs/font-family
924
- */
925
- "font-family": [{
926
- font: [j]
927
- }],
928
- /**
929
- * Font Variant Numeric
930
- * @see https://tailwindcss.com/docs/font-variant-numeric
931
- */
932
- "fvn-normal": ["normal-nums"],
933
- /**
934
- * Font Variant Numeric
935
- * @see https://tailwindcss.com/docs/font-variant-numeric
936
- */
937
- "fvn-ordinal": ["ordinal"],
938
- /**
939
- * Font Variant Numeric
940
- * @see https://tailwindcss.com/docs/font-variant-numeric
941
- */
942
- "fvn-slashed-zero": ["slashed-zero"],
943
- /**
944
- * Font Variant Numeric
945
- * @see https://tailwindcss.com/docs/font-variant-numeric
946
- */
947
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
948
- /**
949
- * Font Variant Numeric
950
- * @see https://tailwindcss.com/docs/font-variant-numeric
951
- */
952
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
953
- /**
954
- * Font Variant Numeric
955
- * @see https://tailwindcss.com/docs/font-variant-numeric
956
- */
957
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
958
- /**
959
- * Letter Spacing
960
- * @see https://tailwindcss.com/docs/letter-spacing
961
- */
962
- tracking: [{
963
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", l]
964
- }],
965
- /**
966
- * Line Clamp
967
- * @see https://tailwindcss.com/docs/line-clamp
968
- */
969
- "line-clamp": [{
970
- "line-clamp": ["none", M, _]
971
- }],
972
- /**
973
- * Line Height
974
- * @see https://tailwindcss.com/docs/line-height
975
- */
976
- leading: [{
977
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose", C, l]
978
- }],
979
- /**
980
- * List Style Image
981
- * @see https://tailwindcss.com/docs/list-style-image
982
- */
983
- "list-image": [{
984
- "list-image": ["none", l]
985
- }],
986
- /**
987
- * List Style Type
988
- * @see https://tailwindcss.com/docs/list-style-type
989
- */
990
- "list-style-type": [{
991
- list: ["none", "disc", "decimal", l]
992
- }],
993
- /**
994
- * List Style Position
995
- * @see https://tailwindcss.com/docs/list-style-position
996
- */
997
- "list-style-position": [{
998
- list: ["inside", "outside"]
999
- }],
1000
- /**
1001
- * Placeholder Color
1002
- * @deprecated since Tailwind CSS v3.0.0
1003
- * @see https://tailwindcss.com/docs/placeholder-color
1004
- */
1005
- "placeholder-color": [{
1006
- placeholder: [e]
1007
- }],
1008
- /**
1009
- * Placeholder Opacity
1010
- * @see https://tailwindcss.com/docs/placeholder-opacity
1011
- */
1012
- "placeholder-opacity": [{
1013
- "placeholder-opacity": [f]
1014
- }],
1015
- /**
1016
- * Text Alignment
1017
- * @see https://tailwindcss.com/docs/text-align
1018
- */
1019
- "text-alignment": [{
1020
- text: ["left", "center", "right", "justify", "start", "end"]
1021
- }],
1022
- /**
1023
- * Text Color
1024
- * @see https://tailwindcss.com/docs/text-color
1025
- */
1026
- "text-color": [{
1027
- text: [e]
1028
- }],
1029
- /**
1030
- * Text Opacity
1031
- * @see https://tailwindcss.com/docs/text-opacity
1032
- */
1033
- "text-opacity": [{
1034
- "text-opacity": [f]
1035
- }],
1036
- /**
1037
- * Text Decoration
1038
- * @see https://tailwindcss.com/docs/text-decoration
1039
- */
1040
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1041
- /**
1042
- * Text Decoration Style
1043
- * @see https://tailwindcss.com/docs/text-decoration-style
1044
- */
1045
- "text-decoration-style": [{
1046
- decoration: [...T(), "wavy"]
1047
- }],
1048
- /**
1049
- * Text Decoration Thickness
1050
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1051
- */
1052
- "text-decoration-thickness": [{
1053
- decoration: ["auto", "from-font", C, z]
1054
- }],
1055
- /**
1056
- * Text Underline Offset
1057
- * @see https://tailwindcss.com/docs/text-underline-offset
1058
- */
1059
- "underline-offset": [{
1060
- "underline-offset": ["auto", C, l]
1061
- }],
1062
- /**
1063
- * Text Decoration Color
1064
- * @see https://tailwindcss.com/docs/text-decoration-color
1065
- */
1066
- "text-decoration-color": [{
1067
- decoration: [e]
1068
- }],
1069
- /**
1070
- * Text Transform
1071
- * @see https://tailwindcss.com/docs/text-transform
1072
- */
1073
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1074
- /**
1075
- * Text Overflow
1076
- * @see https://tailwindcss.com/docs/text-overflow
1077
- */
1078
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1079
- /**
1080
- * Text Wrap
1081
- * @see https://tailwindcss.com/docs/text-wrap
1082
- */
1083
- "text-wrap": [{
1084
- text: ["wrap", "nowrap", "balance", "pretty"]
1085
- }],
1086
- /**
1087
- * Text Indent
1088
- * @see https://tailwindcss.com/docs/text-indent
1089
- */
1090
- indent: [{
1091
- indent: d()
1092
- }],
1093
- /**
1094
- * Vertical Alignment
1095
- * @see https://tailwindcss.com/docs/vertical-align
1096
- */
1097
- "vertical-align": [{
1098
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", l]
1099
- }],
1100
- /**
1101
- * Whitespace
1102
- * @see https://tailwindcss.com/docs/whitespace
1103
- */
1104
- whitespace: [{
1105
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1106
- }],
1107
- /**
1108
- * Word Break
1109
- * @see https://tailwindcss.com/docs/word-break
1110
- */
1111
- break: [{
1112
- break: ["normal", "words", "all", "keep"]
1113
- }],
1114
- /**
1115
- * Hyphens
1116
- * @see https://tailwindcss.com/docs/hyphens
1117
- */
1118
- hyphens: [{
1119
- hyphens: ["none", "manual", "auto"]
1120
- }],
1121
- /**
1122
- * Content
1123
- * @see https://tailwindcss.com/docs/content
1124
- */
1125
- content: [{
1126
- content: ["none", l]
1127
- }],
1128
- // Backgrounds
1129
- /**
1130
- * Background Attachment
1131
- * @see https://tailwindcss.com/docs/background-attachment
1132
- */
1133
- "bg-attachment": [{
1134
- bg: ["fixed", "local", "scroll"]
1135
- }],
1136
- /**
1137
- * Background Clip
1138
- * @see https://tailwindcss.com/docs/background-clip
1139
- */
1140
- "bg-clip": [{
1141
- "bg-clip": ["border", "padding", "content", "text"]
1142
- }],
1143
- /**
1144
- * Background Opacity
1145
- * @deprecated since Tailwind CSS v3.0.0
1146
- * @see https://tailwindcss.com/docs/background-opacity
1147
- */
1148
- "bg-opacity": [{
1149
- "bg-opacity": [f]
1150
- }],
1151
- /**
1152
- * Background Origin
1153
- * @see https://tailwindcss.com/docs/background-origin
1154
- */
1155
- "bg-origin": [{
1156
- "bg-origin": ["border", "padding", "content"]
1157
- }],
1158
- /**
1159
- * Background Position
1160
- * @see https://tailwindcss.com/docs/background-position
1161
- */
1162
- "bg-position": [{
1163
- bg: [...X(), Ae]
1164
- }],
1165
- /**
1166
- * Background Repeat
1167
- * @see https://tailwindcss.com/docs/background-repeat
1168
- */
1169
- "bg-repeat": [{
1170
- bg: ["no-repeat", {
1171
- repeat: ["", "x", "y", "round", "space"]
1172
- }]
1173
- }],
1174
- /**
1175
- * Background Size
1176
- * @see https://tailwindcss.com/docs/background-size
1177
- */
1178
- "bg-size": [{
1179
- bg: ["auto", "cover", "contain", Se]
1180
- }],
1181
- /**
1182
- * Background Image
1183
- * @see https://tailwindcss.com/docs/background-image
1184
- */
1185
- "bg-image": [{
1186
- bg: ["none", {
1187
- "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1188
- }, Ge]
1189
- }],
1190
- /**
1191
- * Background Color
1192
- * @see https://tailwindcss.com/docs/background-color
1193
- */
1194
- "bg-color": [{
1195
- bg: [e]
1196
- }],
1197
- /**
1198
- * Gradient Color Stops From Position
1199
- * @see https://tailwindcss.com/docs/gradient-color-stops
1200
- */
1201
- "gradient-from-pos": [{
1202
- from: [w]
1203
- }],
1204
- /**
1205
- * Gradient Color Stops Via Position
1206
- * @see https://tailwindcss.com/docs/gradient-color-stops
1207
- */
1208
- "gradient-via-pos": [{
1209
- via: [w]
1210
- }],
1211
- /**
1212
- * Gradient Color Stops To Position
1213
- * @see https://tailwindcss.com/docs/gradient-color-stops
1214
- */
1215
- "gradient-to-pos": [{
1216
- to: [w]
1217
- }],
1218
- /**
1219
- * Gradient Color Stops From
1220
- * @see https://tailwindcss.com/docs/gradient-color-stops
1221
- */
1222
- "gradient-from": [{
1223
- from: [v]
1224
- }],
1225
- /**
1226
- * Gradient Color Stops Via
1227
- * @see https://tailwindcss.com/docs/gradient-color-stops
1228
- */
1229
- "gradient-via": [{
1230
- via: [v]
1231
- }],
1232
- /**
1233
- * Gradient Color Stops To
1234
- * @see https://tailwindcss.com/docs/gradient-color-stops
1235
- */
1236
- "gradient-to": [{
1237
- to: [v]
1238
- }],
1239
- // Borders
1240
- /**
1241
- * Border Radius
1242
- * @see https://tailwindcss.com/docs/border-radius
1243
- */
1244
- rounded: [{
1245
- rounded: [n]
1246
- }],
1247
- /**
1248
- * Border Radius Start
1249
- * @see https://tailwindcss.com/docs/border-radius
1250
- */
1251
- "rounded-s": [{
1252
- "rounded-s": [n]
1253
- }],
1254
- /**
1255
- * Border Radius End
1256
- * @see https://tailwindcss.com/docs/border-radius
1257
- */
1258
- "rounded-e": [{
1259
- "rounded-e": [n]
1260
- }],
1261
- /**
1262
- * Border Radius Top
1263
- * @see https://tailwindcss.com/docs/border-radius
1264
- */
1265
- "rounded-t": [{
1266
- "rounded-t": [n]
1267
- }],
1268
- /**
1269
- * Border Radius Right
1270
- * @see https://tailwindcss.com/docs/border-radius
1271
- */
1272
- "rounded-r": [{
1273
- "rounded-r": [n]
1274
- }],
1275
- /**
1276
- * Border Radius Bottom
1277
- * @see https://tailwindcss.com/docs/border-radius
1278
- */
1279
- "rounded-b": [{
1280
- "rounded-b": [n]
1281
- }],
1282
- /**
1283
- * Border Radius Left
1284
- * @see https://tailwindcss.com/docs/border-radius
1285
- */
1286
- "rounded-l": [{
1287
- "rounded-l": [n]
1288
- }],
1289
- /**
1290
- * Border Radius Start Start
1291
- * @see https://tailwindcss.com/docs/border-radius
1292
- */
1293
- "rounded-ss": [{
1294
- "rounded-ss": [n]
1295
- }],
1296
- /**
1297
- * Border Radius Start End
1298
- * @see https://tailwindcss.com/docs/border-radius
1299
- */
1300
- "rounded-se": [{
1301
- "rounded-se": [n]
1302
- }],
1303
- /**
1304
- * Border Radius End End
1305
- * @see https://tailwindcss.com/docs/border-radius
1306
- */
1307
- "rounded-ee": [{
1308
- "rounded-ee": [n]
1309
- }],
1310
- /**
1311
- * Border Radius End Start
1312
- * @see https://tailwindcss.com/docs/border-radius
1313
- */
1314
- "rounded-es": [{
1315
- "rounded-es": [n]
1316
- }],
1317
- /**
1318
- * Border Radius Top Left
1319
- * @see https://tailwindcss.com/docs/border-radius
1320
- */
1321
- "rounded-tl": [{
1322
- "rounded-tl": [n]
1323
- }],
1324
- /**
1325
- * Border Radius Top Right
1326
- * @see https://tailwindcss.com/docs/border-radius
1327
- */
1328
- "rounded-tr": [{
1329
- "rounded-tr": [n]
1330
- }],
1331
- /**
1332
- * Border Radius Bottom Right
1333
- * @see https://tailwindcss.com/docs/border-radius
1334
- */
1335
- "rounded-br": [{
1336
- "rounded-br": [n]
1337
- }],
1338
- /**
1339
- * Border Radius Bottom Left
1340
- * @see https://tailwindcss.com/docs/border-radius
1341
- */
1342
- "rounded-bl": [{
1343
- "rounded-bl": [n]
1344
- }],
1345
- /**
1346
- * Border Width
1347
- * @see https://tailwindcss.com/docs/border-width
1348
- */
1349
- "border-w": [{
1350
- border: [s]
1351
- }],
1352
- /**
1353
- * Border Width X
1354
- * @see https://tailwindcss.com/docs/border-width
1355
- */
1356
- "border-w-x": [{
1357
- "border-x": [s]
1358
- }],
1359
- /**
1360
- * Border Width Y
1361
- * @see https://tailwindcss.com/docs/border-width
1362
- */
1363
- "border-w-y": [{
1364
- "border-y": [s]
1365
- }],
1366
- /**
1367
- * Border Width Start
1368
- * @see https://tailwindcss.com/docs/border-width
1369
- */
1370
- "border-w-s": [{
1371
- "border-s": [s]
1372
- }],
1373
- /**
1374
- * Border Width End
1375
- * @see https://tailwindcss.com/docs/border-width
1376
- */
1377
- "border-w-e": [{
1378
- "border-e": [s]
1379
- }],
1380
- /**
1381
- * Border Width Top
1382
- * @see https://tailwindcss.com/docs/border-width
1383
- */
1384
- "border-w-t": [{
1385
- "border-t": [s]
1386
- }],
1387
- /**
1388
- * Border Width Right
1389
- * @see https://tailwindcss.com/docs/border-width
1390
- */
1391
- "border-w-r": [{
1392
- "border-r": [s]
1393
- }],
1394
- /**
1395
- * Border Width Bottom
1396
- * @see https://tailwindcss.com/docs/border-width
1397
- */
1398
- "border-w-b": [{
1399
- "border-b": [s]
1400
- }],
1401
- /**
1402
- * Border Width Left
1403
- * @see https://tailwindcss.com/docs/border-width
1404
- */
1405
- "border-w-l": [{
1406
- "border-l": [s]
1407
- }],
1408
- /**
1409
- * Border Opacity
1410
- * @see https://tailwindcss.com/docs/border-opacity
1411
- */
1412
- "border-opacity": [{
1413
- "border-opacity": [f]
1414
- }],
1415
- /**
1416
- * Border Style
1417
- * @see https://tailwindcss.com/docs/border-style
1418
- */
1419
- "border-style": [{
1420
- border: [...T(), "hidden"]
1421
- }],
1422
- /**
1423
- * Divide Width X
1424
- * @see https://tailwindcss.com/docs/divide-width
1425
- */
1426
- "divide-x": [{
1427
- "divide-x": [s]
1428
- }],
1429
- /**
1430
- * Divide Width X Reverse
1431
- * @see https://tailwindcss.com/docs/divide-width
1432
- */
1433
- "divide-x-reverse": ["divide-x-reverse"],
1434
- /**
1435
- * Divide Width Y
1436
- * @see https://tailwindcss.com/docs/divide-width
1437
- */
1438
- "divide-y": [{
1439
- "divide-y": [s]
1440
- }],
1441
- /**
1442
- * Divide Width Y Reverse
1443
- * @see https://tailwindcss.com/docs/divide-width
1444
- */
1445
- "divide-y-reverse": ["divide-y-reverse"],
1446
- /**
1447
- * Divide Opacity
1448
- * @see https://tailwindcss.com/docs/divide-opacity
1449
- */
1450
- "divide-opacity": [{
1451
- "divide-opacity": [f]
1452
- }],
1453
- /**
1454
- * Divide Style
1455
- * @see https://tailwindcss.com/docs/divide-style
1456
- */
1457
- "divide-style": [{
1458
- divide: T()
1459
- }],
1460
- /**
1461
- * Border Color
1462
- * @see https://tailwindcss.com/docs/border-color
1463
- */
1464
- "border-color": [{
1465
- border: [a]
1466
- }],
1467
- /**
1468
- * Border Color X
1469
- * @see https://tailwindcss.com/docs/border-color
1470
- */
1471
- "border-color-x": [{
1472
- "border-x": [a]
1473
- }],
1474
- /**
1475
- * Border Color Y
1476
- * @see https://tailwindcss.com/docs/border-color
1477
- */
1478
- "border-color-y": [{
1479
- "border-y": [a]
1480
- }],
1481
- /**
1482
- * Border Color S
1483
- * @see https://tailwindcss.com/docs/border-color
1484
- */
1485
- "border-color-s": [{
1486
- "border-s": [a]
1487
- }],
1488
- /**
1489
- * Border Color E
1490
- * @see https://tailwindcss.com/docs/border-color
1491
- */
1492
- "border-color-e": [{
1493
- "border-e": [a]
1494
- }],
1495
- /**
1496
- * Border Color Top
1497
- * @see https://tailwindcss.com/docs/border-color
1498
- */
1499
- "border-color-t": [{
1500
- "border-t": [a]
1501
- }],
1502
- /**
1503
- * Border Color Right
1504
- * @see https://tailwindcss.com/docs/border-color
1505
- */
1506
- "border-color-r": [{
1507
- "border-r": [a]
1508
- }],
1509
- /**
1510
- * Border Color Bottom
1511
- * @see https://tailwindcss.com/docs/border-color
1512
- */
1513
- "border-color-b": [{
1514
- "border-b": [a]
1515
- }],
1516
- /**
1517
- * Border Color Left
1518
- * @see https://tailwindcss.com/docs/border-color
1519
- */
1520
- "border-color-l": [{
1521
- "border-l": [a]
1522
- }],
1523
- /**
1524
- * Divide Color
1525
- * @see https://tailwindcss.com/docs/divide-color
1526
- */
1527
- "divide-color": [{
1528
- divide: [a]
1529
- }],
1530
- /**
1531
- * Outline Style
1532
- * @see https://tailwindcss.com/docs/outline-style
1533
- */
1534
- "outline-style": [{
1535
- outline: ["", ...T()]
1536
- }],
1537
- /**
1538
- * Outline Offset
1539
- * @see https://tailwindcss.com/docs/outline-offset
1540
- */
1541
- "outline-offset": [{
1542
- "outline-offset": [C, l]
1543
- }],
1544
- /**
1545
- * Outline Width
1546
- * @see https://tailwindcss.com/docs/outline-width
1547
- */
1548
- "outline-w": [{
1549
- outline: [C, z]
1550
- }],
1551
- /**
1552
- * Outline Color
1553
- * @see https://tailwindcss.com/docs/outline-color
1554
- */
1555
- "outline-color": [{
1556
- outline: [e]
1557
- }],
1558
- /**
1559
- * Ring Width
1560
- * @see https://tailwindcss.com/docs/ring-width
1561
- */
1562
- "ring-w": [{
1563
- ring: J()
1564
- }],
1565
- /**
1566
- * Ring Width Inset
1567
- * @see https://tailwindcss.com/docs/ring-width
1568
- */
1569
- "ring-w-inset": ["ring-inset"],
1570
- /**
1571
- * Ring Color
1572
- * @see https://tailwindcss.com/docs/ring-color
1573
- */
1574
- "ring-color": [{
1575
- ring: [e]
1576
- }],
1577
- /**
1578
- * Ring Opacity
1579
- * @see https://tailwindcss.com/docs/ring-opacity
1580
- */
1581
- "ring-opacity": [{
1582
- "ring-opacity": [f]
1583
- }],
1584
- /**
1585
- * Ring Offset Width
1586
- * @see https://tailwindcss.com/docs/ring-offset-width
1587
- */
1588
- "ring-offset-w": [{
1589
- "ring-offset": [C, z]
1590
- }],
1591
- /**
1592
- * Ring Offset Color
1593
- * @see https://tailwindcss.com/docs/ring-offset-color
1594
- */
1595
- "ring-offset-color": [{
1596
- "ring-offset": [e]
1597
- }],
1598
- // Effects
1599
- /**
1600
- * Box Shadow
1601
- * @see https://tailwindcss.com/docs/box-shadow
1602
- */
1603
- shadow: [{
1604
- shadow: ["", "inner", "none", S, Re]
1605
- }],
1606
- /**
1607
- * Box Shadow Color
1608
- * @see https://tailwindcss.com/docs/box-shadow-color
1609
- */
1610
- "shadow-color": [{
1611
- shadow: [j]
1612
- }],
1613
- /**
1614
- * Opacity
1615
- * @see https://tailwindcss.com/docs/opacity
1616
- */
1617
- opacity: [{
1618
- opacity: [f]
1619
- }],
1620
- /**
1621
- * Mix Blend Mode
1622
- * @see https://tailwindcss.com/docs/mix-blend-mode
1623
- */
1624
- "mix-blend": [{
1625
- "mix-blend": [...Z(), "plus-lighter", "plus-darker"]
1626
- }],
1627
- /**
1628
- * Background Blend Mode
1629
- * @see https://tailwindcss.com/docs/background-blend-mode
1630
- */
1631
- "bg-blend": [{
1632
- "bg-blend": Z()
1633
- }],
1634
- // Filters
1635
- /**
1636
- * Filter
1637
- * @deprecated since Tailwind CSS v3.0.0
1638
- * @see https://tailwindcss.com/docs/filter
1639
- */
1640
- filter: [{
1641
- filter: ["", "none"]
1642
- }],
1643
- /**
1644
- * Blur
1645
- * @see https://tailwindcss.com/docs/blur
1646
- */
1647
- blur: [{
1648
- blur: [t]
1649
- }],
1650
- /**
1651
- * Brightness
1652
- * @see https://tailwindcss.com/docs/brightness
1653
- */
1654
- brightness: [{
1655
- brightness: [o]
1656
- }],
1657
- /**
1658
- * Contrast
1659
- * @see https://tailwindcss.com/docs/contrast
1660
- */
1661
- contrast: [{
1662
- contrast: [u]
1663
- }],
1664
- /**
1665
- * Drop Shadow
1666
- * @see https://tailwindcss.com/docs/drop-shadow
1667
- */
1668
- "drop-shadow": [{
1669
- "drop-shadow": ["", "none", S, l]
1670
- }],
1671
- /**
1672
- * Grayscale
1673
- * @see https://tailwindcss.com/docs/grayscale
1674
- */
1675
- grayscale: [{
1676
- grayscale: [g]
1677
- }],
1678
- /**
1679
- * Hue Rotate
1680
- * @see https://tailwindcss.com/docs/hue-rotate
1681
- */
1682
- "hue-rotate": [{
1683
- "hue-rotate": [m]
1684
- }],
1685
- /**
1686
- * Invert
1687
- * @see https://tailwindcss.com/docs/invert
1688
- */
1689
- invert: [{
1690
- invert: [y]
1691
- }],
1692
- /**
1693
- * Saturate
1694
- * @see https://tailwindcss.com/docs/saturate
1695
- */
1696
- saturate: [{
1697
- saturate: [R]
1698
- }],
1699
- /**
1700
- * Sepia
1701
- * @see https://tailwindcss.com/docs/sepia
1702
- */
1703
- sepia: [{
1704
- sepia: [E]
1705
- }],
1706
- /**
1707
- * Backdrop Filter
1708
- * @deprecated since Tailwind CSS v3.0.0
1709
- * @see https://tailwindcss.com/docs/backdrop-filter
1710
- */
1711
- "backdrop-filter": [{
1712
- "backdrop-filter": ["", "none"]
1713
- }],
1714
- /**
1715
- * Backdrop Blur
1716
- * @see https://tailwindcss.com/docs/backdrop-blur
1717
- */
1718
- "backdrop-blur": [{
1719
- "backdrop-blur": [t]
1720
- }],
1721
- /**
1722
- * Backdrop Brightness
1723
- * @see https://tailwindcss.com/docs/backdrop-brightness
1724
- */
1725
- "backdrop-brightness": [{
1726
- "backdrop-brightness": [o]
1727
- }],
1728
- /**
1729
- * Backdrop Contrast
1730
- * @see https://tailwindcss.com/docs/backdrop-contrast
1731
- */
1732
- "backdrop-contrast": [{
1733
- "backdrop-contrast": [u]
1734
- }],
1735
- /**
1736
- * Backdrop Grayscale
1737
- * @see https://tailwindcss.com/docs/backdrop-grayscale
1738
- */
1739
- "backdrop-grayscale": [{
1740
- "backdrop-grayscale": [g]
1741
- }],
1742
- /**
1743
- * Backdrop Hue Rotate
1744
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1745
- */
1746
- "backdrop-hue-rotate": [{
1747
- "backdrop-hue-rotate": [m]
1748
- }],
1749
- /**
1750
- * Backdrop Invert
1751
- * @see https://tailwindcss.com/docs/backdrop-invert
1752
- */
1753
- "backdrop-invert": [{
1754
- "backdrop-invert": [y]
1755
- }],
1756
- /**
1757
- * Backdrop Opacity
1758
- * @see https://tailwindcss.com/docs/backdrop-opacity
1759
- */
1760
- "backdrop-opacity": [{
1761
- "backdrop-opacity": [f]
1762
- }],
1763
- /**
1764
- * Backdrop Saturate
1765
- * @see https://tailwindcss.com/docs/backdrop-saturate
1766
- */
1767
- "backdrop-saturate": [{
1768
- "backdrop-saturate": [R]
1769
- }],
1770
- /**
1771
- * Backdrop Sepia
1772
- * @see https://tailwindcss.com/docs/backdrop-sepia
1773
- */
1774
- "backdrop-sepia": [{
1775
- "backdrop-sepia": [E]
1776
- }],
1777
- // Tables
1778
- /**
1779
- * Border Collapse
1780
- * @see https://tailwindcss.com/docs/border-collapse
1781
- */
1782
- "border-collapse": [{
1783
- border: ["collapse", "separate"]
1784
- }],
1785
- /**
1786
- * Border Spacing
1787
- * @see https://tailwindcss.com/docs/border-spacing
1788
- */
1789
- "border-spacing": [{
1790
- "border-spacing": [i]
1791
- }],
1792
- /**
1793
- * Border Spacing X
1794
- * @see https://tailwindcss.com/docs/border-spacing
1795
- */
1796
- "border-spacing-x": [{
1797
- "border-spacing-x": [i]
1798
- }],
1799
- /**
1800
- * Border Spacing Y
1801
- * @see https://tailwindcss.com/docs/border-spacing
1802
- */
1803
- "border-spacing-y": [{
1804
- "border-spacing-y": [i]
1805
- }],
1806
- /**
1807
- * Table Layout
1808
- * @see https://tailwindcss.com/docs/table-layout
1809
- */
1810
- "table-layout": [{
1811
- table: ["auto", "fixed"]
1812
- }],
1813
- /**
1814
- * Caption Side
1815
- * @see https://tailwindcss.com/docs/caption-side
1816
- */
1817
- caption: [{
1818
- caption: ["top", "bottom"]
1819
- }],
1820
- // Transitions and Animation
1821
- /**
1822
- * Tranisition Property
1823
- * @see https://tailwindcss.com/docs/transition-property
1824
- */
1825
- transition: [{
1826
- transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", l]
1827
- }],
1828
- /**
1829
- * Transition Duration
1830
- * @see https://tailwindcss.com/docs/transition-duration
1831
- */
1832
- duration: [{
1833
- duration: k()
1834
- }],
1835
- /**
1836
- * Transition Timing Function
1837
- * @see https://tailwindcss.com/docs/transition-timing-function
1838
- */
1839
- ease: [{
1840
- ease: ["linear", "in", "out", "in-out", l]
1841
- }],
1842
- /**
1843
- * Transition Delay
1844
- * @see https://tailwindcss.com/docs/transition-delay
1845
- */
1846
- delay: [{
1847
- delay: k()
1848
- }],
1849
- /**
1850
- * Animation
1851
- * @see https://tailwindcss.com/docs/animation
1852
- */
1853
- animate: [{
1854
- animate: ["none", "spin", "ping", "pulse", "bounce", l]
1855
- }],
1856
- // Transforms
1857
- /**
1858
- * Transform
1859
- * @see https://tailwindcss.com/docs/transform
1860
- */
1861
- transform: [{
1862
- transform: ["", "gpu", "none"]
1863
- }],
1864
- /**
1865
- * Scale
1866
- * @see https://tailwindcss.com/docs/scale
1867
- */
1868
- scale: [{
1869
- scale: [A]
1870
- }],
1871
- /**
1872
- * Scale X
1873
- * @see https://tailwindcss.com/docs/scale
1874
- */
1875
- "scale-x": [{
1876
- "scale-x": [A]
1877
- }],
1878
- /**
1879
- * Scale Y
1880
- * @see https://tailwindcss.com/docs/scale
1881
- */
1882
- "scale-y": [{
1883
- "scale-y": [A]
1884
- }],
1885
- /**
1886
- * Rotate
1887
- * @see https://tailwindcss.com/docs/rotate
1888
- */
1889
- rotate: [{
1890
- rotate: [P, l]
1891
- }],
1892
- /**
1893
- * Translate X
1894
- * @see https://tailwindcss.com/docs/translate
1895
- */
1896
- "translate-x": [{
1897
- "translate-x": [q]
1898
- }],
1899
- /**
1900
- * Translate Y
1901
- * @see https://tailwindcss.com/docs/translate
1902
- */
1903
- "translate-y": [{
1904
- "translate-y": [q]
1905
- }],
1906
- /**
1907
- * Skew X
1908
- * @see https://tailwindcss.com/docs/skew
1909
- */
1910
- "skew-x": [{
1911
- "skew-x": [U]
1912
- }],
1913
- /**
1914
- * Skew Y
1915
- * @see https://tailwindcss.com/docs/skew
1916
- */
1917
- "skew-y": [{
1918
- "skew-y": [U]
1919
- }],
1920
- /**
1921
- * Transform Origin
1922
- * @see https://tailwindcss.com/docs/transform-origin
1923
- */
1924
- "transform-origin": [{
1925
- origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", l]
1926
- }],
1927
- // Interactivity
1928
- /**
1929
- * Accent Color
1930
- * @see https://tailwindcss.com/docs/accent-color
1931
- */
1932
- accent: [{
1933
- accent: ["auto", e]
1934
- }],
1935
- /**
1936
- * Appearance
1937
- * @see https://tailwindcss.com/docs/appearance
1938
- */
1939
- appearance: [{
1940
- appearance: ["none", "auto"]
1941
- }],
1942
- /**
1943
- * Cursor
1944
- * @see https://tailwindcss.com/docs/cursor
1945
- */
1946
- cursor: [{
1947
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", l]
1948
- }],
1949
- /**
1950
- * Caret Color
1951
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
1952
- */
1953
- "caret-color": [{
1954
- caret: [e]
1955
- }],
1956
- /**
1957
- * Pointer Events
1958
- * @see https://tailwindcss.com/docs/pointer-events
1959
- */
1960
- "pointer-events": [{
1961
- "pointer-events": ["none", "auto"]
1962
- }],
1963
- /**
1964
- * Resize
1965
- * @see https://tailwindcss.com/docs/resize
1966
- */
1967
- resize: [{
1968
- resize: ["none", "y", "x", ""]
1969
- }],
1970
- /**
1971
- * Scroll Behavior
1972
- * @see https://tailwindcss.com/docs/scroll-behavior
1973
- */
1974
- "scroll-behavior": [{
1975
- scroll: ["auto", "smooth"]
1976
- }],
1977
- /**
1978
- * Scroll Margin
1979
- * @see https://tailwindcss.com/docs/scroll-margin
1980
- */
1981
- "scroll-m": [{
1982
- "scroll-m": d()
1983
- }],
1984
- /**
1985
- * Scroll Margin X
1986
- * @see https://tailwindcss.com/docs/scroll-margin
1987
- */
1988
- "scroll-mx": [{
1989
- "scroll-mx": d()
1990
- }],
1991
- /**
1992
- * Scroll Margin Y
1993
- * @see https://tailwindcss.com/docs/scroll-margin
1994
- */
1995
- "scroll-my": [{
1996
- "scroll-my": d()
1997
- }],
1998
- /**
1999
- * Scroll Margin Start
2000
- * @see https://tailwindcss.com/docs/scroll-margin
2001
- */
2002
- "scroll-ms": [{
2003
- "scroll-ms": d()
2004
- }],
2005
- /**
2006
- * Scroll Margin End
2007
- * @see https://tailwindcss.com/docs/scroll-margin
2008
- */
2009
- "scroll-me": [{
2010
- "scroll-me": d()
2011
- }],
2012
- /**
2013
- * Scroll Margin Top
2014
- * @see https://tailwindcss.com/docs/scroll-margin
2015
- */
2016
- "scroll-mt": [{
2017
- "scroll-mt": d()
2018
- }],
2019
- /**
2020
- * Scroll Margin Right
2021
- * @see https://tailwindcss.com/docs/scroll-margin
2022
- */
2023
- "scroll-mr": [{
2024
- "scroll-mr": d()
2025
- }],
2026
- /**
2027
- * Scroll Margin Bottom
2028
- * @see https://tailwindcss.com/docs/scroll-margin
2029
- */
2030
- "scroll-mb": [{
2031
- "scroll-mb": d()
2032
- }],
2033
- /**
2034
- * Scroll Margin Left
2035
- * @see https://tailwindcss.com/docs/scroll-margin
2036
- */
2037
- "scroll-ml": [{
2038
- "scroll-ml": d()
2039
- }],
2040
- /**
2041
- * Scroll Padding
2042
- * @see https://tailwindcss.com/docs/scroll-padding
2043
- */
2044
- "scroll-p": [{
2045
- "scroll-p": d()
2046
- }],
2047
- /**
2048
- * Scroll Padding X
2049
- * @see https://tailwindcss.com/docs/scroll-padding
2050
- */
2051
- "scroll-px": [{
2052
- "scroll-px": d()
2053
- }],
2054
- /**
2055
- * Scroll Padding Y
2056
- * @see https://tailwindcss.com/docs/scroll-padding
2057
- */
2058
- "scroll-py": [{
2059
- "scroll-py": d()
2060
- }],
2061
- /**
2062
- * Scroll Padding Start
2063
- * @see https://tailwindcss.com/docs/scroll-padding
2064
- */
2065
- "scroll-ps": [{
2066
- "scroll-ps": d()
2067
- }],
2068
- /**
2069
- * Scroll Padding End
2070
- * @see https://tailwindcss.com/docs/scroll-padding
2071
- */
2072
- "scroll-pe": [{
2073
- "scroll-pe": d()
2074
- }],
2075
- /**
2076
- * Scroll Padding Top
2077
- * @see https://tailwindcss.com/docs/scroll-padding
2078
- */
2079
- "scroll-pt": [{
2080
- "scroll-pt": d()
2081
- }],
2082
- /**
2083
- * Scroll Padding Right
2084
- * @see https://tailwindcss.com/docs/scroll-padding
2085
- */
2086
- "scroll-pr": [{
2087
- "scroll-pr": d()
2088
- }],
2089
- /**
2090
- * Scroll Padding Bottom
2091
- * @see https://tailwindcss.com/docs/scroll-padding
2092
- */
2093
- "scroll-pb": [{
2094
- "scroll-pb": d()
2095
- }],
2096
- /**
2097
- * Scroll Padding Left
2098
- * @see https://tailwindcss.com/docs/scroll-padding
2099
- */
2100
- "scroll-pl": [{
2101
- "scroll-pl": d()
2102
- }],
2103
- /**
2104
- * Scroll Snap Align
2105
- * @see https://tailwindcss.com/docs/scroll-snap-align
2106
- */
2107
- "snap-align": [{
2108
- snap: ["start", "end", "center", "align-none"]
2109
- }],
2110
- /**
2111
- * Scroll Snap Stop
2112
- * @see https://tailwindcss.com/docs/scroll-snap-stop
2113
- */
2114
- "snap-stop": [{
2115
- snap: ["normal", "always"]
2116
- }],
2117
- /**
2118
- * Scroll Snap Type
2119
- * @see https://tailwindcss.com/docs/scroll-snap-type
2120
- */
2121
- "snap-type": [{
2122
- snap: ["none", "x", "y", "both"]
2123
- }],
2124
- /**
2125
- * Scroll Snap Type Strictness
2126
- * @see https://tailwindcss.com/docs/scroll-snap-type
2127
- */
2128
- "snap-strictness": [{
2129
- snap: ["mandatory", "proximity"]
2130
- }],
2131
- /**
2132
- * Touch Action
2133
- * @see https://tailwindcss.com/docs/touch-action
2134
- */
2135
- touch: [{
2136
- touch: ["auto", "none", "manipulation"]
2137
- }],
2138
- /**
2139
- * Touch Action X
2140
- * @see https://tailwindcss.com/docs/touch-action
2141
- */
2142
- "touch-x": [{
2143
- "touch-pan": ["x", "left", "right"]
2144
- }],
2145
- /**
2146
- * Touch Action Y
2147
- * @see https://tailwindcss.com/docs/touch-action
2148
- */
2149
- "touch-y": [{
2150
- "touch-pan": ["y", "up", "down"]
2151
- }],
2152
- /**
2153
- * Touch Action Pinch Zoom
2154
- * @see https://tailwindcss.com/docs/touch-action
2155
- */
2156
- "touch-pz": ["touch-pinch-zoom"],
2157
- /**
2158
- * User Select
2159
- * @see https://tailwindcss.com/docs/user-select
2160
- */
2161
- select: [{
2162
- select: ["none", "text", "all", "auto"]
2163
- }],
2164
- /**
2165
- * Will Change
2166
- * @see https://tailwindcss.com/docs/will-change
2167
- */
2168
- "will-change": [{
2169
- "will-change": ["auto", "scroll", "contents", "transform", l]
2170
- }],
2171
- // SVG
2172
- /**
2173
- * Fill
2174
- * @see https://tailwindcss.com/docs/fill
2175
- */
2176
- fill: [{
2177
- fill: [e, "none"]
2178
- }],
2179
- /**
2180
- * Stroke Width
2181
- * @see https://tailwindcss.com/docs/stroke-width
2182
- */
2183
- "stroke-w": [{
2184
- stroke: [C, z, _]
2185
- }],
2186
- /**
2187
- * Stroke
2188
- * @see https://tailwindcss.com/docs/stroke
2189
- */
2190
- stroke: [{
2191
- stroke: [e, "none"]
2192
- }],
2193
- // Accessibility
2194
- /**
2195
- * Screen Readers
2196
- * @see https://tailwindcss.com/docs/screen-readers
2197
- */
2198
- sr: ["sr-only", "not-sr-only"],
2199
- /**
2200
- * Forced Color Adjust
2201
- * @see https://tailwindcss.com/docs/forced-color-adjust
2202
- */
2203
- "forced-color-adjust": [{
2204
- "forced-color-adjust": ["auto", "none"]
2205
- }]
2206
- },
2207
- conflictingClassGroups: {
2208
- overflow: ["overflow-x", "overflow-y"],
2209
- overscroll: ["overscroll-x", "overscroll-y"],
2210
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2211
- "inset-x": ["right", "left"],
2212
- "inset-y": ["top", "bottom"],
2213
- flex: ["basis", "grow", "shrink"],
2214
- gap: ["gap-x", "gap-y"],
2215
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2216
- px: ["pr", "pl"],
2217
- py: ["pt", "pb"],
2218
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2219
- mx: ["mr", "ml"],
2220
- my: ["mt", "mb"],
2221
- size: ["w", "h"],
2222
- "font-size": ["leading"],
2223
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2224
- "fvn-ordinal": ["fvn-normal"],
2225
- "fvn-slashed-zero": ["fvn-normal"],
2226
- "fvn-figure": ["fvn-normal"],
2227
- "fvn-spacing": ["fvn-normal"],
2228
- "fvn-fraction": ["fvn-normal"],
2229
- "line-clamp": ["display", "overflow"],
2230
- rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
2231
- "rounded-s": ["rounded-ss", "rounded-es"],
2232
- "rounded-e": ["rounded-se", "rounded-ee"],
2233
- "rounded-t": ["rounded-tl", "rounded-tr"],
2234
- "rounded-r": ["rounded-tr", "rounded-br"],
2235
- "rounded-b": ["rounded-br", "rounded-bl"],
2236
- "rounded-l": ["rounded-tl", "rounded-bl"],
2237
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
2238
- "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2239
- "border-w-x": ["border-w-r", "border-w-l"],
2240
- "border-w-y": ["border-w-t", "border-w-b"],
2241
- "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2242
- "border-color-x": ["border-color-r", "border-color-l"],
2243
- "border-color-y": ["border-color-t", "border-color-b"],
2244
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2245
- "scroll-mx": ["scroll-mr", "scroll-ml"],
2246
- "scroll-my": ["scroll-mt", "scroll-mb"],
2247
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2248
- "scroll-px": ["scroll-pr", "scroll-pl"],
2249
- "scroll-py": ["scroll-pt", "scroll-pb"],
2250
- touch: ["touch-x", "touch-y", "touch-pz"],
2251
- "touch-x": ["touch"],
2252
- "touch-y": ["touch"],
2253
- "touch-pz": ["touch"]
2254
- },
2255
- conflictingClassGroupModifiers: {
2256
- "font-size": ["leading"]
1194
+ const Ze = oe([]);
1195
+ function Le(n) {
1196
+ return new ce(n);
1197
+ }
1198
+ class ce extends $ {
1199
+ constructor(t) {
1200
+ super({
1201
+ type: "object",
1202
+ check(e) {
1203
+ return W(e) || typeof e == "function";
1204
+ }
1205
+ }), this.fields = /* @__PURE__ */ Object.create(null), this._sortErrors = Ze, this._nodes = [], this._excludedEdges = [], this.withMutation(() => {
1206
+ t && this.shape(t);
1207
+ });
1208
+ }
1209
+ _cast(t, e = {}) {
1210
+ var r;
1211
+ let s = super._cast(t, e);
1212
+ if (s === void 0) return this.getDefault(e);
1213
+ if (!this._typeCheck(s)) return s;
1214
+ let i = this.fields, a = (r = e.stripUnknown) != null ? r : this.spec.noUnknown, l = [].concat(this._nodes, Object.keys(s).filter((h) => !this._nodes.includes(h))), u = {}, o = Object.assign({}, e, {
1215
+ parent: u,
1216
+ __validating: e.__validating || !1
1217
+ }), c = !1;
1218
+ for (const h of l) {
1219
+ let f = i[h], g = h in s, b = s[h];
1220
+ if (f) {
1221
+ let y;
1222
+ o.path = (e.path ? `${e.path}.` : "") + h, f = f.resolve({
1223
+ value: b,
1224
+ context: e.context,
1225
+ parent: u
1226
+ });
1227
+ let w = f instanceof $ ? f.spec : void 0, D = w == null ? void 0 : w.strict;
1228
+ if (w != null && w.strip) {
1229
+ c = c || h in s;
1230
+ continue;
1231
+ }
1232
+ y = !e.__validating || !D ? f.cast(b, o) : b, y !== void 0 && (u[h] = y);
1233
+ } else g && !a && (u[h] = b);
1234
+ (g !== h in u || u[h] !== b) && (c = !0);
2257
1235
  }
2258
- };
2259
- }, Ne = /* @__PURE__ */ fe(Ee);
1236
+ return c ? u : s;
1237
+ }
1238
+ _validate(t, e = {}, r, s) {
1239
+ let {
1240
+ from: i = [],
1241
+ originalValue: a = t,
1242
+ recursive: l = this.spec.recursive
1243
+ } = e;
1244
+ e.from = [{
1245
+ schema: this,
1246
+ value: a
1247
+ }, ...i], e.__validating = !0, e.originalValue = a, super._validate(t, e, r, (u, o) => {
1248
+ if (!l || !W(o)) {
1249
+ s(u, o);
1250
+ return;
1251
+ }
1252
+ a = a || o;
1253
+ let c = [];
1254
+ for (let h of this._nodes) {
1255
+ let f = this.fields[h];
1256
+ !f || E.isRef(f) || c.push(f.asNestedTest({
1257
+ options: e,
1258
+ key: h,
1259
+ parent: o,
1260
+ parentPath: e.path,
1261
+ originalParent: a
1262
+ }));
1263
+ }
1264
+ this.runTests({
1265
+ tests: c,
1266
+ value: o,
1267
+ originalValue: a,
1268
+ options: e
1269
+ }, r, (h) => {
1270
+ s(h.sort(this._sortErrors).concat(u), o);
1271
+ });
1272
+ });
1273
+ }
1274
+ clone(t) {
1275
+ const e = super.clone(t);
1276
+ return e.fields = Object.assign({}, this.fields), e._nodes = this._nodes, e._excludedEdges = this._excludedEdges, e._sortErrors = this._sortErrors, e;
1277
+ }
1278
+ concat(t) {
1279
+ let e = super.concat(t), r = e.fields;
1280
+ for (let [s, i] of Object.entries(this.fields)) {
1281
+ const a = r[s];
1282
+ r[s] = a === void 0 ? i : a;
1283
+ }
1284
+ return e.withMutation((s) => (
1285
+ // XXX: excludes here is wrong
1286
+ s.setFields(r, [...this._excludedEdges, ...t._excludedEdges])
1287
+ ));
1288
+ }
1289
+ _getDefault(t) {
1290
+ if ("default" in this.spec)
1291
+ return super._getDefault(t);
1292
+ if (!this._nodes.length)
1293
+ return;
1294
+ let e = {};
1295
+ return this._nodes.forEach((r) => {
1296
+ var s;
1297
+ const i = this.fields[r];
1298
+ let a = t;
1299
+ (s = a) != null && s.value && (a = Object.assign({}, a, {
1300
+ parent: a.value,
1301
+ value: a.value[r]
1302
+ })), e[r] = i && "getDefault" in i ? i.getDefault(a) : void 0;
1303
+ }), e;
1304
+ }
1305
+ setFields(t, e) {
1306
+ let r = this.clone();
1307
+ return r.fields = t, r._nodes = Ve(t, e), r._sortErrors = oe(Object.keys(t)), e && (r._excludedEdges = e), r;
1308
+ }
1309
+ shape(t, e = []) {
1310
+ return this.clone().withMutation((r) => {
1311
+ let s = r._excludedEdges;
1312
+ return e.length && (Array.isArray(e[0]) || (e = [e]), s = [...r._excludedEdges, ...e]), r.setFields(Object.assign(r.fields, t), s);
1313
+ });
1314
+ }
1315
+ partial() {
1316
+ const t = {};
1317
+ for (const [e, r] of Object.entries(this.fields))
1318
+ t[e] = "optional" in r && r.optional instanceof Function ? r.optional() : r;
1319
+ return this.setFields(t);
1320
+ }
1321
+ deepPartial() {
1322
+ return I(this);
1323
+ }
1324
+ pick(t) {
1325
+ const e = {};
1326
+ for (const r of t)
1327
+ this.fields[r] && (e[r] = this.fields[r]);
1328
+ return this.setFields(e, this._excludedEdges.filter(([r, s]) => t.includes(r) && t.includes(s)));
1329
+ }
1330
+ omit(t) {
1331
+ const e = [];
1332
+ for (const r of Object.keys(this.fields))
1333
+ t.includes(r) || e.push(r);
1334
+ return this.pick(e);
1335
+ }
1336
+ from(t, e, r) {
1337
+ let s = S.getter(t, !0);
1338
+ return this.transform((i) => {
1339
+ if (!i) return i;
1340
+ let a = i;
1341
+ return qe(i, t) && (a = Object.assign({}, i), r || delete a[t], a[e] = s(i)), a;
1342
+ });
1343
+ }
1344
+ /** Parse an input JSON string to an object */
1345
+ json() {
1346
+ return this.transform(Ue);
1347
+ }
1348
+ /**
1349
+ * Similar to `noUnknown` but only validates that an object is the right shape without stripping the unknown keys
1350
+ */
1351
+ exact(t) {
1352
+ return this.test({
1353
+ name: "exact",
1354
+ exclusive: !0,
1355
+ message: t || C.exact,
1356
+ test(e) {
1357
+ if (e == null) return !0;
1358
+ const r = ee(this.schema, e);
1359
+ return r.length === 0 || this.createError({
1360
+ params: {
1361
+ properties: r.join(", ")
1362
+ }
1363
+ });
1364
+ }
1365
+ });
1366
+ }
1367
+ stripUnknown() {
1368
+ return this.clone({
1369
+ noUnknown: !0
1370
+ });
1371
+ }
1372
+ noUnknown(t = !0, e = C.noUnknown) {
1373
+ typeof t != "boolean" && (e = t, t = !0);
1374
+ let r = this.test({
1375
+ name: "noUnknown",
1376
+ exclusive: !0,
1377
+ message: e,
1378
+ test(s) {
1379
+ if (s == null) return !0;
1380
+ const i = ee(this.schema, s);
1381
+ return !t || i.length === 0 || this.createError({
1382
+ params: {
1383
+ unknown: i.join(", ")
1384
+ }
1385
+ });
1386
+ }
1387
+ });
1388
+ return r.spec.noUnknown = t, r;
1389
+ }
1390
+ unknown(t = !0, e = C.noUnknown) {
1391
+ return this.noUnknown(!t, e);
1392
+ }
1393
+ transformKeys(t) {
1394
+ return this.transform((e) => {
1395
+ if (!e) return e;
1396
+ const r = {};
1397
+ for (const s of Object.keys(e)) r[t(s)] = e[s];
1398
+ return r;
1399
+ });
1400
+ }
1401
+ camelCase() {
1402
+ return this.transformKeys(U.camelCase);
1403
+ }
1404
+ snakeCase() {
1405
+ return this.transformKeys(U.snakeCase);
1406
+ }
1407
+ constantCase() {
1408
+ return this.transformKeys((t) => U.snakeCase(t).toUpperCase());
1409
+ }
1410
+ describe(t) {
1411
+ const e = (t ? this.resolve(t) : this).clone(), r = super.describe(t);
1412
+ r.fields = {};
1413
+ for (const [i, a] of Object.entries(e.fields)) {
1414
+ var s;
1415
+ let l = t;
1416
+ (s = l) != null && s.value && (l = Object.assign({}, l, {
1417
+ parent: l.value,
1418
+ value: l.value[i]
1419
+ })), r.fields[i] = a.describe(l);
1420
+ }
1421
+ return r;
1422
+ }
1423
+ }
1424
+ Le.prototype = ce.prototype;
2260
1425
  export {
2261
- fe as createTailwindMerge,
2262
- c as fromTheme,
2263
- Ee as getDefaultConfig,
2264
- ge as twJoin,
2265
- Ne as twMerge
1426
+ Y as DateSchema,
1427
+ ce as ObjectSchema,
1428
+ $ as Schema,
1429
+ ue as StringSchema,
1430
+ p as ValidationError,
1431
+ xe as getIn,
1432
+ L as isSchema,
1433
+ Le as object,
1434
+ x as printValue,
1435
+ Pe as string
2266
1436
  };