slexkit 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/AGENTS.slexkit.md +29 -0
  2. package/CHANGELOG.md +90 -0
  3. package/LICENSE +21 -0
  4. package/README.md +165 -0
  5. package/README.zh-CN.md +165 -0
  6. package/dist/ai/llms-authoring.txt +44 -0
  7. package/dist/ai/llms-components.txt +669 -0
  8. package/dist/ai/llms-full.txt +6586 -0
  9. package/dist/ai/llms-runtime.txt +1475 -0
  10. package/dist/ai/llms-toolhost.txt +295 -0
  11. package/dist/ai/llms.txt +69 -0
  12. package/dist/ai/slexkit-ai-manifest.json +2922 -0
  13. package/dist/base.css +621 -0
  14. package/dist/chunks/accordion-5f0nvjjm.js +376 -0
  15. package/dist/chunks/accordion-830dw78f.js +221 -0
  16. package/dist/chunks/accordion-cfjyxw93.js +630 -0
  17. package/dist/chunks/accordion-cw5r75jm.js +424 -0
  18. package/dist/chunks/accordion-ehnhpeca.js +492 -0
  19. package/dist/chunks/accordion-hzyrngd6.js +2377 -0
  20. package/dist/chunks/accordion-nw12ytps.js +6823 -0
  21. package/dist/components/accordion.js +163 -0
  22. package/dist/components/badge.js +80 -0
  23. package/dist/components/button.css +114 -0
  24. package/dist/components/button.js +16 -0
  25. package/dist/components/callout.js +154 -0
  26. package/dist/components/card.js +95 -0
  27. package/dist/components/checkbox.js +114 -0
  28. package/dist/components/choice.css +165 -0
  29. package/dist/components/code-block.js +264 -0
  30. package/dist/components/collapsible.js +111 -0
  31. package/dist/components/column.js +49 -0
  32. package/dist/components/content.css +474 -0
  33. package/dist/components/disclosure.css +162 -0
  34. package/dist/components/display.css +259 -0
  35. package/dist/components/divider.js +98 -0
  36. package/dist/components/feedback.css +219 -0
  37. package/dist/components/grid.js +67 -0
  38. package/dist/components/index.js +13364 -0
  39. package/dist/components/input.css +1247 -0
  40. package/dist/components/input.js +384 -0
  41. package/dist/components/link.js +77 -0
  42. package/dist/components/progress.js +111 -0
  43. package/dist/components/radio-group.js +189 -0
  44. package/dist/components/row.js +200 -0
  45. package/dist/components/section.js +161 -0
  46. package/dist/components/select.css +260 -0
  47. package/dist/components/select.js +16 -0
  48. package/dist/components/slider.css +125 -0
  49. package/dist/components/slider.js +175 -0
  50. package/dist/components/specs.js +1090 -0
  51. package/dist/components/stat.js +178 -0
  52. package/dist/components/submit.css +9 -0
  53. package/dist/components/submit.js +77 -0
  54. package/dist/components/switch.css +114 -0
  55. package/dist/components/switch.js +114 -0
  56. package/dist/components/table.js +157 -0
  57. package/dist/components/tabs.css +192 -0
  58. package/dist/components/tabs.js +17 -0
  59. package/dist/components/text-input.css +245 -0
  60. package/dist/components/text.js +50 -0
  61. package/dist/components/toast.js +240 -0
  62. package/dist/components/tooling.css +1009 -0
  63. package/dist/components/tooling.js +48951 -0
  64. package/dist/runtime.cjs +3728 -0
  65. package/dist/runtime.js +3686 -0
  66. package/dist/slexkit.cjs +18539 -0
  67. package/dist/slexkit.css +4776 -0
  68. package/dist/slexkit.js +18497 -0
  69. package/dist/tooling.js +59141 -0
  70. package/dist/types/components/accordion.d.ts +2 -0
  71. package/dist/types/components/badge.d.ts +2 -0
  72. package/dist/types/components/button.d.ts +2 -0
  73. package/dist/types/components/callout.d.ts +2 -0
  74. package/dist/types/components/card.d.ts +2 -0
  75. package/dist/types/components/checkbox.d.ts +2 -0
  76. package/dist/types/components/code-block.d.ts +2 -0
  77. package/dist/types/components/collapsible.d.ts +2 -0
  78. package/dist/types/components/column.d.ts +2 -0
  79. package/dist/types/components/divider.d.ts +2 -0
  80. package/dist/types/components/entries/accordion.d.ts +3 -0
  81. package/dist/types/components/entries/badge.d.ts +3 -0
  82. package/dist/types/components/entries/button.d.ts +3 -0
  83. package/dist/types/components/entries/callout.d.ts +3 -0
  84. package/dist/types/components/entries/card.d.ts +3 -0
  85. package/dist/types/components/entries/checkbox.d.ts +3 -0
  86. package/dist/types/components/entries/code-block.d.ts +3 -0
  87. package/dist/types/components/entries/collapsible.d.ts +3 -0
  88. package/dist/types/components/entries/column.d.ts +3 -0
  89. package/dist/types/components/entries/divider.d.ts +3 -0
  90. package/dist/types/components/entries/grid.d.ts +3 -0
  91. package/dist/types/components/entries/input.d.ts +3 -0
  92. package/dist/types/components/entries/link.d.ts +3 -0
  93. package/dist/types/components/entries/progress.d.ts +3 -0
  94. package/dist/types/components/entries/radio-group.d.ts +3 -0
  95. package/dist/types/components/entries/row.d.ts +3 -0
  96. package/dist/types/components/entries/section.d.ts +3 -0
  97. package/dist/types/components/entries/select.d.ts +3 -0
  98. package/dist/types/components/entries/slider.d.ts +3 -0
  99. package/dist/types/components/entries/specs.d.ts +1 -0
  100. package/dist/types/components/entries/stat.d.ts +3 -0
  101. package/dist/types/components/entries/submit.d.ts +3 -0
  102. package/dist/types/components/entries/switch.d.ts +3 -0
  103. package/dist/types/components/entries/table.d.ts +3 -0
  104. package/dist/types/components/entries/tabs.d.ts +3 -0
  105. package/dist/types/components/entries/text.d.ts +3 -0
  106. package/dist/types/components/entries/toast.d.ts +3 -0
  107. package/dist/types/components/entries/tooling.d.ts +1 -0
  108. package/dist/types/components/grid.d.ts +2 -0
  109. package/dist/types/components/index.d.ts +6 -0
  110. package/dist/types/components/input.d.ts +2 -0
  111. package/dist/types/components/link.d.ts +2 -0
  112. package/dist/types/components/progress.d.ts +2 -0
  113. package/dist/types/components/radio-group.d.ts +2 -0
  114. package/dist/types/components/row.d.ts +2 -0
  115. package/dist/types/components/section.d.ts +2 -0
  116. package/dist/types/components/select.d.ts +2 -0
  117. package/dist/types/components/slider.d.ts +2 -0
  118. package/dist/types/components/spec-helpers.d.ts +23 -0
  119. package/dist/types/components/spec-registry.d.ts +12 -0
  120. package/dist/types/components/spec-schema.d.ts +74 -0
  121. package/dist/types/components/specs.d.ts +2 -0
  122. package/dist/types/components/stat.d.ts +2 -0
  123. package/dist/types/components/submit.d.ts +2 -0
  124. package/dist/types/components/svelte/adapter.d.ts +3 -0
  125. package/dist/types/components/svelte/bindProps.d.ts +2 -0
  126. package/dist/types/components/svelte/helpers.d.ts +33 -0
  127. package/dist/types/components/svelte/layout/balancedTiles.d.ts +14 -0
  128. package/dist/types/components/svelte/types.d.ts +12 -0
  129. package/dist/types/components/switch.d.ts +2 -0
  130. package/dist/types/components/table.d.ts +2 -0
  131. package/dist/types/components/tabs.d.ts +2 -0
  132. package/dist/types/components/text.d.ts +2 -0
  133. package/dist/types/components/toast.d.ts +2 -0
  134. package/dist/types/components/tooling.d.ts +2 -0
  135. package/dist/types/components-svelte.d.ts +5 -0
  136. package/dist/types/engine/component-scope.d.ts +14 -0
  137. package/dist/types/engine/component-state.d.ts +9 -0
  138. package/dist/types/engine/diagnostics.d.ts +24 -0
  139. package/dist/types/engine/engineering.d.ts +11 -0
  140. package/dist/types/engine/eval.d.ts +5 -0
  141. package/dist/types/engine/index.d.ts +26 -0
  142. package/dist/types/engine/markdown-runtime.d.ts +33 -0
  143. package/dist/types/engine/merge.d.ts +1 -0
  144. package/dist/types/engine/reactive.d.ts +11 -0
  145. package/dist/types/engine/registry.d.ts +4 -0
  146. package/dist/types/engine/renderer.d.ts +6 -0
  147. package/dist/types/engine/sandbox-runner.d.ts +2 -0
  148. package/dist/types/engine/secure-runtime.d.ts +214 -0
  149. package/dist/types/engine/store.d.ts +12 -0
  150. package/dist/types/engine/types.d.ts +58 -0
  151. package/dist/types/icons/manager.d.ts +17 -0
  152. package/dist/types/icons/phosphor.d.ts +45 -0
  153. package/dist/types/index.d.ts +61 -0
  154. package/dist/types/runtime.d.ts +32 -0
  155. package/dist/types/toolhost/index.d.ts +78 -0
  156. package/dist/types/tooling-umd.d.ts +47 -0
  157. package/dist/types/version.d.ts +8 -0
  158. package/dist/umd/slexkit.tooling.umd.js +66553 -0
  159. package/dist/umd/slexkit.umd.js +18552 -0
  160. package/package.json +136 -0
  161. package/scripts/cli.mjs +47 -0
  162. package/skills/slexkit/SKILL.md +27 -0
  163. package/skills/slexkit-author/SKILL.md +50 -0
  164. package/skills/slexkit-host-integration/SKILL.md +33 -0
  165. package/skills/slexkit-secure-runtime/SKILL.md +31 -0
  166. package/skills/slexkit-toolhost/SKILL.md +38 -0
  167. package/skills/slexkit-update/SKILL.md +23 -0
  168. package/src/components/svelte/InlineIcon.svelte +66 -0
  169. package/src/components/svelte/adapter.ts +76 -0
  170. package/src/components/svelte/bindProps.ts +9 -0
  171. package/src/components/svelte/content/Badge.svelte +19 -0
  172. package/src/components/svelte/content/Callout.svelte +57 -0
  173. package/src/components/svelte/content/CodeBlock.svelte +130 -0
  174. package/src/components/svelte/content/Divider.svelte +21 -0
  175. package/src/components/svelte/content/Link.svelte +21 -0
  176. package/src/components/svelte/content/Section.svelte +24 -0
  177. package/src/components/svelte/content/Table.svelte +44 -0
  178. package/src/components/svelte/disclosure/Accordion.svelte +100 -0
  179. package/src/components/svelte/disclosure/Collapsible.svelte +45 -0
  180. package/src/components/svelte/display/Stat.svelte +102 -0
  181. package/src/components/svelte/display/Text.svelte +11 -0
  182. package/src/components/svelte/feedback/Progress.svelte +34 -0
  183. package/src/components/svelte/feedback/Toast.svelte +105 -0
  184. package/src/components/svelte/helpers.ts +148 -0
  185. package/src/components/svelte/input/Button.svelte +78 -0
  186. package/src/components/svelte/input/Checkbox.svelte +52 -0
  187. package/src/components/svelte/input/Input.svelte +202 -0
  188. package/src/components/svelte/input/RadioGroup.svelte +71 -0
  189. package/src/components/svelte/input/Select.svelte +220 -0
  190. package/src/components/svelte/input/Slider.svelte +96 -0
  191. package/src/components/svelte/input/Submit.svelte +32 -0
  192. package/src/components/svelte/input/Switch.svelte +53 -0
  193. package/src/components/svelte/input/Tabs.svelte +188 -0
  194. package/src/components/svelte/layout/Card.svelte +17 -0
  195. package/src/components/svelte/layout/Column.svelte +15 -0
  196. package/src/components/svelte/layout/Grid.svelte +26 -0
  197. package/src/components/svelte/layout/Row.svelte +105 -0
  198. package/src/components/svelte/layout/balancedTiles.ts +85 -0
  199. package/src/components/svelte/tooling/CodeMirror.svelte +91 -0
  200. package/src/components/svelte/tooling/Playground.svelte +765 -0
  201. package/src/components/svelte/tooling/PlaygroundMarkdown.svelte +26 -0
  202. package/src/components/svelte/tooling/PlaygroundSlexCode.svelte +76 -0
  203. package/src/components/svelte/types.ts +17 -0
  204. package/src/styles/animation.css +98 -0
  205. package/src/styles/components/button.css +114 -0
  206. package/src/styles/components/choice.css +165 -0
  207. package/src/styles/components/select.css +260 -0
  208. package/src/styles/components/slider.css +125 -0
  209. package/src/styles/components/submit.css +9 -0
  210. package/src/styles/components/switch.css +114 -0
  211. package/src/styles/components/tabs.css +192 -0
  212. package/src/styles/components/text-input.css +245 -0
  213. package/src/styles/content.css +474 -0
  214. package/src/styles/disclosure.css +162 -0
  215. package/src/styles/display.css +259 -0
  216. package/src/styles/entry.css +34 -0
  217. package/src/styles/feedback.css +219 -0
  218. package/src/styles/input.css +8 -0
  219. package/src/styles/layout.css +365 -0
  220. package/src/styles/theme.css +31 -0
  221. package/src/styles/tooling.css +1009 -0
@@ -0,0 +1,2377 @@
1
+ import {
2
+ createContext,
3
+ dev_fallback_default
4
+ } from "./accordion-nw12ytps.js";
5
+
6
+ // node_modules/.bun/flowbite-svelte@1.33.1+c74efb4fcdd27e5c/node_modules/flowbite-svelte/dist/context.js
7
+ function createSafeContext() {
8
+ const [getRaw, set] = createContext();
9
+ function get() {
10
+ try {
11
+ return getRaw();
12
+ } catch {
13
+ return;
14
+ }
15
+ }
16
+ return [get, set];
17
+ }
18
+ var [getAccordionContext, setAccordionContext] = createSafeContext();
19
+ var [getBottomNavContext, setBottomNavContext] = createSafeContext();
20
+ var [getCarouselContext, setCarouselContext] = createSafeContext();
21
+ var [getDrawerContext, setDrawerContext] = createSafeContext();
22
+ var [getDropdownContext, setDropdownContext] = createSafeContext();
23
+ var [getPaginationContext, setPaginationContext] = createSafeContext();
24
+ var [getButtonToggleContext, setButtonToggleContext] = createSafeContext();
25
+ var [getListContext, setListContext] = createSafeContext();
26
+ var [getToolbarContext, setToolbarContext] = createSafeContext();
27
+ var [getThemeContext, setThemeContext] = createSafeContext();
28
+ var [getListGroupContext, setListGroupContext] = createSafeContext();
29
+ var [getButtonGroupContext, setButtonGroupContext] = createSafeContext();
30
+ var [getNavbarStateContext, setNavbarStateContext] = createSafeContext();
31
+ var [getNavbarBreakpointContext, setNavbarBreakpointContext] = createSafeContext();
32
+ var [getSidebarContext, setSidebarContext] = createSafeContext();
33
+ var [getActiveUrlContext, setActiveUrlContext] = createSafeContext();
34
+ var [getTableContext, setTableContext] = createSafeContext();
35
+ var [getSplitPaneContext, setSplitPaneContext] = createSafeContext();
36
+ var [getTabsContext, setTabsContext] = createSafeContext();
37
+
38
+ // node_modules/.bun/flowbite-svelte@1.33.1+c74efb4fcdd27e5c/node_modules/flowbite-svelte/dist/theme/themeUtils.js
39
+ function getTheme(componentKey) {
40
+ const themeState = getThemeContext();
41
+ const theme = themeState && "value" in themeState ? themeState.value : themeState;
42
+ const finalTheme = theme;
43
+ return finalTheme?.[componentKey];
44
+ }
45
+ function warnThemeDeprecation(component, names, replacements) {
46
+ if (!dev_fallback_default)
47
+ return;
48
+ const nonEmptyNames = Object.keys(names).filter((name) => names[name]);
49
+ if (nonEmptyNames.length === 0)
50
+ return;
51
+ let migrationHint = "";
52
+ const usesClass = nonEmptyNames.some((name) => replacements?.[name] === "class");
53
+ const propText = usesClass ? `"classes" or "class"` : `"classes"`;
54
+ if (replacements) {
55
+ const classProps = [];
56
+ const classesObjectEntries = [];
57
+ for (const name of nonEmptyNames) {
58
+ const newKey = replacements[name];
59
+ const value = names[name];
60
+ if (!newKey || !value)
61
+ continue;
62
+ if (newKey === "class") {
63
+ classProps.push(`class="${value}"`);
64
+ } else {
65
+ classesObjectEntries.push(`${newKey}: "${value}"`);
66
+ }
67
+ }
68
+ const hintLines = [];
69
+ if (classProps.length > 0)
70
+ hintLines.push(...classProps);
71
+ if (classesObjectEntries.length > 0) {
72
+ hintLines.push(`classes={{ ${classesObjectEntries.join(", ")} }}`);
73
+ }
74
+ if (hintLines.length > 0) {
75
+ migrationHint = `
76
+ Migration example: ${hintLines.join(" ")}`;
77
+ }
78
+ }
79
+ const stack = new Error().stack;
80
+ const externalCaller = getExternalCaller(stack);
81
+ console.warn(`⚠️ The following "${component}" props are deprecated: ${nonEmptyNames.map((n) => `"${n}"`).join(", ")}.
82
+ ` + `\uD83D\uDCA1 Please use the ${propText} prop instead.${migrationHint}
83
+ ` + (externalCaller ? `\uD83D\uDD0D Used at: ${externalCaller}` : ""));
84
+ }
85
+ function getExternalCaller(stack) {
86
+ if (!stack)
87
+ return null;
88
+ const lines = stack.split(`
89
+ `).slice(2);
90
+ const currentFileMatch = lines[0]?.match(/(?:\()?(.*?\.svelte):\d+:\d+\)?$/);
91
+ const currentFile = currentFileMatch?.[1];
92
+ for (const line of lines) {
93
+ const match = line.match(/(?:\()?(.*?\.svelte):\d+:\d+\)?$/);
94
+ const file = match?.[1];
95
+ if (file && file !== currentFile) {
96
+ return line.trim().replace(/^at /, "");
97
+ }
98
+ }
99
+ return null;
100
+ }
101
+
102
+ // node_modules/.bun/tailwind-variants@3.2.2+8d1ea3a475e79781/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js
103
+ var SPACE_REGEX = /\s+/g;
104
+ var removeExtraSpaces = (str) => {
105
+ if (typeof str !== "string" || !str)
106
+ return str;
107
+ return str.replace(SPACE_REGEX, " ").trim();
108
+ };
109
+ var cx = (...classnames) => {
110
+ const classList = [];
111
+ const buildClassString = (input) => {
112
+ if (!input && input !== 0 && input !== 0n)
113
+ return;
114
+ if (Array.isArray(input)) {
115
+ for (let i = 0, len = input.length;i < len; i++)
116
+ buildClassString(input[i]);
117
+ return;
118
+ }
119
+ const type = typeof input;
120
+ if (type === "string" || type === "number" || type === "bigint") {
121
+ if (type === "number" && input !== input)
122
+ return;
123
+ classList.push(String(input));
124
+ } else if (type === "object") {
125
+ const keys = Object.keys(input);
126
+ for (let i = 0, len = keys.length;i < len; i++) {
127
+ const key = keys[i];
128
+ if (input[key])
129
+ classList.push(key);
130
+ }
131
+ }
132
+ };
133
+ for (let i = 0, len = classnames.length;i < len; i++) {
134
+ const c = classnames[i];
135
+ if (c !== null && c !== undefined)
136
+ buildClassString(c);
137
+ }
138
+ return classList.length > 0 ? removeExtraSpaces(classList.join(" ")) : undefined;
139
+ };
140
+ var falsyToString = (value) => value === false ? "false" : value === true ? "true" : value === 0 ? "0" : value;
141
+ var isEmptyObject = (obj) => {
142
+ if (!obj || typeof obj !== "object")
143
+ return true;
144
+ for (const _ in obj)
145
+ return false;
146
+ return true;
147
+ };
148
+ var isEqual = (obj1, obj2) => {
149
+ if (obj1 === obj2)
150
+ return true;
151
+ if (!obj1 || !obj2)
152
+ return false;
153
+ const keys1 = Object.keys(obj1);
154
+ const keys2 = Object.keys(obj2);
155
+ if (keys1.length !== keys2.length)
156
+ return false;
157
+ for (let i = 0;i < keys1.length; i++) {
158
+ const key = keys1[i];
159
+ if (!keys2.includes(key))
160
+ return false;
161
+ if (obj1[key] !== obj2[key])
162
+ return false;
163
+ }
164
+ return true;
165
+ };
166
+ var joinObjects = (obj1, obj2) => {
167
+ for (const key in obj2) {
168
+ if (Object.prototype.hasOwnProperty.call(obj2, key)) {
169
+ const val2 = obj2[key];
170
+ if (key in obj1) {
171
+ obj1[key] = cx(obj1[key], val2);
172
+ } else {
173
+ obj1[key] = val2;
174
+ }
175
+ }
176
+ }
177
+ return obj1;
178
+ };
179
+ var flat = (arr, target) => {
180
+ for (let i = 0;i < arr.length; i++) {
181
+ const el = arr[i];
182
+ if (Array.isArray(el))
183
+ flat(el, target);
184
+ else if (el)
185
+ target.push(el);
186
+ }
187
+ };
188
+ var flatMergeArrays = (...arrays) => {
189
+ const result = [];
190
+ flat(arrays, result);
191
+ const filtered = [];
192
+ for (let i = 0;i < result.length; i++) {
193
+ if (result[i])
194
+ filtered.push(result[i]);
195
+ }
196
+ return filtered;
197
+ };
198
+ var mergeObjects = (obj1, obj2) => {
199
+ const result = {};
200
+ for (const key in obj1) {
201
+ const val1 = obj1[key];
202
+ if (key in obj2) {
203
+ const val2 = obj2[key];
204
+ if (Array.isArray(val1) || Array.isArray(val2)) {
205
+ result[key] = flatMergeArrays(val2, val1);
206
+ } else if (typeof val1 === "object" && typeof val2 === "object" && val1 && val2) {
207
+ result[key] = mergeObjects(val1, val2);
208
+ } else {
209
+ result[key] = val2 + " " + val1;
210
+ }
211
+ } else {
212
+ result[key] = val1;
213
+ }
214
+ }
215
+ for (const key in obj2) {
216
+ if (!(key in obj1)) {
217
+ result[key] = obj2[key];
218
+ }
219
+ }
220
+ return result;
221
+ };
222
+
223
+ // node_modules/.bun/tailwind-variants@3.2.2+8d1ea3a475e79781/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js
224
+ var defaultConfig = {
225
+ twMerge: true,
226
+ twMergeConfig: {}
227
+ };
228
+ function createState() {
229
+ let cachedTwMerge = null;
230
+ let cachedTwMergeConfig = {};
231
+ let didTwMergeConfigChange = false;
232
+ return {
233
+ get cachedTwMerge() {
234
+ return cachedTwMerge;
235
+ },
236
+ set cachedTwMerge(value) {
237
+ cachedTwMerge = value;
238
+ },
239
+ get cachedTwMergeConfig() {
240
+ return cachedTwMergeConfig;
241
+ },
242
+ set cachedTwMergeConfig(value) {
243
+ cachedTwMergeConfig = value;
244
+ },
245
+ get didTwMergeConfigChange() {
246
+ return didTwMergeConfigChange;
247
+ },
248
+ set didTwMergeConfigChange(value) {
249
+ didTwMergeConfigChange = value;
250
+ },
251
+ reset() {
252
+ cachedTwMerge = null;
253
+ cachedTwMergeConfig = {};
254
+ didTwMergeConfigChange = false;
255
+ }
256
+ };
257
+ }
258
+ var state = createState();
259
+ var getTailwindVariants = (cn) => {
260
+ const tv = (options, configProp) => {
261
+ const {
262
+ extend = null,
263
+ slots: slotProps = {},
264
+ variants: variantsProps = {},
265
+ compoundVariants: compoundVariantsProps = [],
266
+ compoundSlots = [],
267
+ defaultVariants: defaultVariantsProps = {}
268
+ } = options;
269
+ const config = { ...defaultConfig, ...configProp };
270
+ const base = extend?.base ? cx(extend.base, options?.base) : options?.base;
271
+ const variants = extend?.variants && !isEmptyObject(extend.variants) ? mergeObjects(variantsProps, extend.variants) : variantsProps;
272
+ const defaultVariants = extend?.defaultVariants && !isEmptyObject(extend.defaultVariants) ? { ...extend.defaultVariants, ...defaultVariantsProps } : defaultVariantsProps;
273
+ if (!isEmptyObject(config.twMergeConfig) && !isEqual(config.twMergeConfig, state.cachedTwMergeConfig)) {
274
+ state.didTwMergeConfigChange = true;
275
+ state.cachedTwMergeConfig = config.twMergeConfig;
276
+ }
277
+ const isExtendedSlotsEmpty = isEmptyObject(extend?.slots);
278
+ const componentSlots = !isEmptyObject(slotProps) ? {
279
+ base: cx(options?.base, isExtendedSlotsEmpty && extend?.base),
280
+ ...slotProps
281
+ } : {};
282
+ const slots = isExtendedSlotsEmpty ? componentSlots : joinObjects({ ...extend?.slots }, isEmptyObject(componentSlots) ? { base: options?.base } : componentSlots);
283
+ const compoundVariants = isEmptyObject(extend?.compoundVariants) ? compoundVariantsProps : flatMergeArrays(extend?.compoundVariants, compoundVariantsProps);
284
+ const component = (props) => {
285
+ if (isEmptyObject(variants) && isEmptyObject(slotProps) && isExtendedSlotsEmpty) {
286
+ return cn(base, props?.class, props?.className)(config);
287
+ }
288
+ if (compoundVariants && !Array.isArray(compoundVariants)) {
289
+ throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof compoundVariants}`);
290
+ }
291
+ if (compoundSlots && !Array.isArray(compoundSlots)) {
292
+ throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof compoundSlots}`);
293
+ }
294
+ const getVariantValue = (variant, vrs = variants, _slotKey = null, slotProps2 = null) => {
295
+ const variantObj = vrs[variant];
296
+ if (!variantObj || isEmptyObject(variantObj)) {
297
+ return null;
298
+ }
299
+ const variantProp = slotProps2?.[variant] ?? props?.[variant];
300
+ if (variantProp === null)
301
+ return null;
302
+ const variantKey = falsyToString(variantProp);
303
+ if (typeof variantKey === "object") {
304
+ return null;
305
+ }
306
+ const defaultVariantProp = defaultVariants?.[variant];
307
+ const key = variantKey != null ? variantKey : falsyToString(defaultVariantProp);
308
+ const value = variantObj[key || "false"];
309
+ return value;
310
+ };
311
+ const getVariantClassNames = () => {
312
+ if (!variants)
313
+ return null;
314
+ const keys = Object.keys(variants);
315
+ const result = [];
316
+ for (let i = 0;i < keys.length; i++) {
317
+ const value = getVariantValue(keys[i], variants);
318
+ if (value)
319
+ result.push(value);
320
+ }
321
+ return result;
322
+ };
323
+ const getVariantClassNamesBySlotKey = (slotKey, slotProps2) => {
324
+ if (!variants || typeof variants !== "object")
325
+ return null;
326
+ const result = [];
327
+ for (const variant in variants) {
328
+ const variantValue = getVariantValue(variant, variants, slotKey, slotProps2);
329
+ const value = slotKey === "base" && typeof variantValue === "string" ? variantValue : variantValue && variantValue[slotKey];
330
+ if (value)
331
+ result.push(value);
332
+ }
333
+ return result;
334
+ };
335
+ const propsWithoutUndefined = {};
336
+ for (const prop in props) {
337
+ const value = props[prop];
338
+ if (value !== undefined)
339
+ propsWithoutUndefined[prop] = value;
340
+ }
341
+ const getCompleteProps = (key, slotProps2) => {
342
+ const initialProp = typeof props?.[key] === "object" ? {
343
+ [key]: props[key]?.initial
344
+ } : {};
345
+ return {
346
+ ...defaultVariants,
347
+ ...propsWithoutUndefined,
348
+ ...initialProp,
349
+ ...slotProps2
350
+ };
351
+ };
352
+ const getCompoundVariantsValue = (cv = [], slotProps2) => {
353
+ const result = [];
354
+ const cvLength = cv.length;
355
+ for (let i = 0;i < cvLength; i++) {
356
+ const { class: tvClass, className: tvClassName, ...compoundVariantOptions } = cv[i];
357
+ let isValid = true;
358
+ const completeProps = getCompleteProps(null, slotProps2);
359
+ for (const key in compoundVariantOptions) {
360
+ const value = compoundVariantOptions[key];
361
+ const completePropsValue = completeProps[key];
362
+ if (Array.isArray(value)) {
363
+ if (!value.includes(completePropsValue)) {
364
+ isValid = false;
365
+ break;
366
+ }
367
+ } else {
368
+ if ((value == null || value === false) && (completePropsValue == null || completePropsValue === false))
369
+ continue;
370
+ if (completePropsValue !== value) {
371
+ isValid = false;
372
+ break;
373
+ }
374
+ }
375
+ }
376
+ if (isValid) {
377
+ if (tvClass)
378
+ result.push(tvClass);
379
+ if (tvClassName)
380
+ result.push(tvClassName);
381
+ }
382
+ }
383
+ return result;
384
+ };
385
+ const getCompoundVariantClassNamesBySlot = (slotProps2) => {
386
+ const compoundClassNames = getCompoundVariantsValue(compoundVariants, slotProps2);
387
+ if (!Array.isArray(compoundClassNames))
388
+ return compoundClassNames;
389
+ const result = {};
390
+ const cnFn = cn;
391
+ for (let i = 0;i < compoundClassNames.length; i++) {
392
+ const className = compoundClassNames[i];
393
+ if (typeof className === "string") {
394
+ result.base = cnFn(result.base, className)(config);
395
+ } else if (typeof className === "object") {
396
+ for (const slot in className) {
397
+ result[slot] = cnFn(result[slot], className[slot])(config);
398
+ }
399
+ }
400
+ }
401
+ return result;
402
+ };
403
+ const getCompoundSlotClassNameBySlot = (slotProps2) => {
404
+ if (compoundSlots.length < 1)
405
+ return null;
406
+ const result = {};
407
+ const completeProps = getCompleteProps(null, slotProps2);
408
+ for (let i = 0;i < compoundSlots.length; i++) {
409
+ const {
410
+ slots: slots2 = [],
411
+ class: slotClass,
412
+ className: slotClassName,
413
+ ...slotVariants
414
+ } = compoundSlots[i];
415
+ if (!isEmptyObject(slotVariants)) {
416
+ let isValid = true;
417
+ for (const key in slotVariants) {
418
+ const completePropsValue = completeProps[key];
419
+ const slotVariantValue = slotVariants[key];
420
+ if (completePropsValue === undefined || (Array.isArray(slotVariantValue) ? !slotVariantValue.includes(completePropsValue) : slotVariantValue !== completePropsValue)) {
421
+ isValid = false;
422
+ break;
423
+ }
424
+ }
425
+ if (!isValid)
426
+ continue;
427
+ }
428
+ for (let j = 0;j < slots2.length; j++) {
429
+ const slotName = slots2[j];
430
+ if (!result[slotName])
431
+ result[slotName] = [];
432
+ result[slotName].push([slotClass, slotClassName]);
433
+ }
434
+ }
435
+ return result;
436
+ };
437
+ if (!isEmptyObject(slotProps) || !isExtendedSlotsEmpty) {
438
+ const slotsFns = {};
439
+ if (typeof slots === "object" && !isEmptyObject(slots)) {
440
+ const cnFn = cn;
441
+ for (const slotKey in slots) {
442
+ slotsFns[slotKey] = (slotProps2) => {
443
+ const compoundVariantClasses = getCompoundVariantClassNamesBySlot(slotProps2);
444
+ const compoundSlotClasses = getCompoundSlotClassNameBySlot(slotProps2);
445
+ return cnFn(slots[slotKey], getVariantClassNamesBySlotKey(slotKey, slotProps2), compoundVariantClasses ? compoundVariantClasses[slotKey] : undefined, compoundSlotClasses ? compoundSlotClasses[slotKey] : undefined, slotProps2?.class, slotProps2?.className)(config);
446
+ };
447
+ }
448
+ }
449
+ return slotsFns;
450
+ }
451
+ return cn(base, getVariantClassNames(), getCompoundVariantsValue(compoundVariants), props?.class, props?.className)(config);
452
+ };
453
+ const getVariantKeys = () => {
454
+ if (!variants || typeof variants !== "object")
455
+ return;
456
+ return Object.keys(variants);
457
+ };
458
+ component.variantKeys = getVariantKeys();
459
+ component.extend = extend;
460
+ component.base = base;
461
+ component.slots = slots;
462
+ component.variants = variants;
463
+ component.defaultVariants = defaultVariants;
464
+ component.compoundSlots = compoundSlots;
465
+ component.compoundVariants = compoundVariants;
466
+ return component;
467
+ };
468
+ const createTV = (configProp) => {
469
+ return (options, config) => tv(options, config ? mergeObjects(configProp, config) : configProp);
470
+ };
471
+ return {
472
+ tv,
473
+ createTV
474
+ };
475
+ };
476
+
477
+ // node_modules/.bun/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
478
+ var concatArrays = (array1, array2) => {
479
+ const combinedArray = new Array(array1.length + array2.length);
480
+ for (let i = 0;i < array1.length; i++) {
481
+ combinedArray[i] = array1[i];
482
+ }
483
+ for (let i = 0;i < array2.length; i++) {
484
+ combinedArray[array1.length + i] = array2[i];
485
+ }
486
+ return combinedArray;
487
+ };
488
+ var createClassValidatorObject = (classGroupId, validator) => ({
489
+ classGroupId,
490
+ validator
491
+ });
492
+ var createClassPartObject = (nextPart = new Map, validators = null, classGroupId) => ({
493
+ nextPart,
494
+ validators,
495
+ classGroupId
496
+ });
497
+ var CLASS_PART_SEPARATOR = "-";
498
+ var EMPTY_CONFLICTS = [];
499
+ var ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
500
+ var createClassGroupUtils = (config) => {
501
+ const classMap = createClassMap(config);
502
+ const {
503
+ conflictingClassGroups,
504
+ conflictingClassGroupModifiers
505
+ } = config;
506
+ const getClassGroupId = (className) => {
507
+ if (className.startsWith("[") && className.endsWith("]")) {
508
+ return getGroupIdForArbitraryProperty(className);
509
+ }
510
+ const classParts = className.split(CLASS_PART_SEPARATOR);
511
+ const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
512
+ return getGroupRecursive(classParts, startIndex, classMap);
513
+ };
514
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
515
+ if (hasPostfixModifier) {
516
+ const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
517
+ const baseConflicts = conflictingClassGroups[classGroupId];
518
+ if (modifierConflicts) {
519
+ if (baseConflicts) {
520
+ return concatArrays(baseConflicts, modifierConflicts);
521
+ }
522
+ return modifierConflicts;
523
+ }
524
+ return baseConflicts || EMPTY_CONFLICTS;
525
+ }
526
+ return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
527
+ };
528
+ return {
529
+ getClassGroupId,
530
+ getConflictingClassGroupIds
531
+ };
532
+ };
533
+ var getGroupRecursive = (classParts, startIndex, classPartObject) => {
534
+ const classPathsLength = classParts.length - startIndex;
535
+ if (classPathsLength === 0) {
536
+ return classPartObject.classGroupId;
537
+ }
538
+ const currentClassPart = classParts[startIndex];
539
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
540
+ if (nextClassPartObject) {
541
+ const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
542
+ if (result)
543
+ return result;
544
+ }
545
+ const validators = classPartObject.validators;
546
+ if (validators === null) {
547
+ return;
548
+ }
549
+ const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
550
+ const validatorsLength = validators.length;
551
+ for (let i = 0;i < validatorsLength; i++) {
552
+ const validatorObj = validators[i];
553
+ if (validatorObj.validator(classRest)) {
554
+ return validatorObj.classGroupId;
555
+ }
556
+ }
557
+ return;
558
+ };
559
+ var getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? undefined : (() => {
560
+ const content = className.slice(1, -1);
561
+ const colonIndex = content.indexOf(":");
562
+ const property = content.slice(0, colonIndex);
563
+ return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;
564
+ })();
565
+ var createClassMap = (config) => {
566
+ const {
567
+ theme,
568
+ classGroups
569
+ } = config;
570
+ return processClassGroups(classGroups, theme);
571
+ };
572
+ var processClassGroups = (classGroups, theme) => {
573
+ const classMap = createClassPartObject();
574
+ for (const classGroupId in classGroups) {
575
+ const group = classGroups[classGroupId];
576
+ processClassesRecursively(group, classMap, classGroupId, theme);
577
+ }
578
+ return classMap;
579
+ };
580
+ var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
581
+ const len = classGroup.length;
582
+ for (let i = 0;i < len; i++) {
583
+ const classDefinition = classGroup[i];
584
+ processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
585
+ }
586
+ };
587
+ var processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
588
+ if (typeof classDefinition === "string") {
589
+ processStringDefinition(classDefinition, classPartObject, classGroupId);
590
+ return;
591
+ }
592
+ if (typeof classDefinition === "function") {
593
+ processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
594
+ return;
595
+ }
596
+ processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
597
+ };
598
+ var processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
599
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
600
+ classPartObjectToEdit.classGroupId = classGroupId;
601
+ };
602
+ var processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
603
+ if (isThemeGetter(classDefinition)) {
604
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
605
+ return;
606
+ }
607
+ if (classPartObject.validators === null) {
608
+ classPartObject.validators = [];
609
+ }
610
+ classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
611
+ };
612
+ var processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
613
+ const entries = Object.entries(classDefinition);
614
+ const len = entries.length;
615
+ for (let i = 0;i < len; i++) {
616
+ const [key, value] = entries[i];
617
+ processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
618
+ }
619
+ };
620
+ var getPart = (classPartObject, path) => {
621
+ let current = classPartObject;
622
+ const parts = path.split(CLASS_PART_SEPARATOR);
623
+ const len = parts.length;
624
+ for (let i = 0;i < len; i++) {
625
+ const part = parts[i];
626
+ let next = current.nextPart.get(part);
627
+ if (!next) {
628
+ next = createClassPartObject();
629
+ current.nextPart.set(part, next);
630
+ }
631
+ current = next;
632
+ }
633
+ return current;
634
+ };
635
+ var isThemeGetter = (func) => ("isThemeGetter" in func) && func.isThemeGetter === true;
636
+ var createLruCache = (maxCacheSize) => {
637
+ if (maxCacheSize < 1) {
638
+ return {
639
+ get: () => {
640
+ return;
641
+ },
642
+ set: () => {}
643
+ };
644
+ }
645
+ let cacheSize = 0;
646
+ let cache = Object.create(null);
647
+ let previousCache = Object.create(null);
648
+ const update = (key, value) => {
649
+ cache[key] = value;
650
+ cacheSize++;
651
+ if (cacheSize > maxCacheSize) {
652
+ cacheSize = 0;
653
+ previousCache = cache;
654
+ cache = Object.create(null);
655
+ }
656
+ };
657
+ return {
658
+ get(key) {
659
+ let value = cache[key];
660
+ if (value !== undefined) {
661
+ return value;
662
+ }
663
+ if ((value = previousCache[key]) !== undefined) {
664
+ update(key, value);
665
+ return value;
666
+ }
667
+ },
668
+ set(key, value) {
669
+ if (key in cache) {
670
+ cache[key] = value;
671
+ } else {
672
+ update(key, value);
673
+ }
674
+ }
675
+ };
676
+ };
677
+ var IMPORTANT_MODIFIER = "!";
678
+ var MODIFIER_SEPARATOR = ":";
679
+ var EMPTY_MODIFIERS = [];
680
+ var createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
681
+ modifiers,
682
+ hasImportantModifier,
683
+ baseClassName,
684
+ maybePostfixModifierPosition,
685
+ isExternal
686
+ });
687
+ var createParseClassName = (config) => {
688
+ const {
689
+ prefix,
690
+ experimentalParseClassName
691
+ } = config;
692
+ let parseClassName = (className) => {
693
+ const modifiers = [];
694
+ let bracketDepth = 0;
695
+ let parenDepth = 0;
696
+ let modifierStart = 0;
697
+ let postfixModifierPosition;
698
+ const len = className.length;
699
+ for (let index = 0;index < len; index++) {
700
+ const currentCharacter = className[index];
701
+ if (bracketDepth === 0 && parenDepth === 0) {
702
+ if (currentCharacter === MODIFIER_SEPARATOR) {
703
+ modifiers.push(className.slice(modifierStart, index));
704
+ modifierStart = index + 1;
705
+ continue;
706
+ }
707
+ if (currentCharacter === "/") {
708
+ postfixModifierPosition = index;
709
+ continue;
710
+ }
711
+ }
712
+ if (currentCharacter === "[")
713
+ bracketDepth++;
714
+ else if (currentCharacter === "]")
715
+ bracketDepth--;
716
+ else if (currentCharacter === "(")
717
+ parenDepth++;
718
+ else if (currentCharacter === ")")
719
+ parenDepth--;
720
+ }
721
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
722
+ let baseClassName = baseClassNameWithImportantModifier;
723
+ let hasImportantModifier = false;
724
+ if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
725
+ baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
726
+ hasImportantModifier = true;
727
+ } else if (baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {
728
+ baseClassName = baseClassNameWithImportantModifier.slice(1);
729
+ hasImportantModifier = true;
730
+ }
731
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
732
+ return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
733
+ };
734
+ if (prefix) {
735
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
736
+ const parseClassNameOriginal = parseClassName;
737
+ parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);
738
+ }
739
+ if (experimentalParseClassName) {
740
+ const parseClassNameOriginal = parseClassName;
741
+ parseClassName = (className) => experimentalParseClassName({
742
+ className,
743
+ parseClassName: parseClassNameOriginal
744
+ });
745
+ }
746
+ return parseClassName;
747
+ };
748
+ var createSortModifiers = (config) => {
749
+ const modifierWeights = new Map;
750
+ config.orderSensitiveModifiers.forEach((mod, index) => {
751
+ modifierWeights.set(mod, 1e6 + index);
752
+ });
753
+ return (modifiers) => {
754
+ const result = [];
755
+ let currentSegment = [];
756
+ for (let i = 0;i < modifiers.length; i++) {
757
+ const modifier = modifiers[i];
758
+ const isArbitrary = modifier[0] === "[";
759
+ const isOrderSensitive = modifierWeights.has(modifier);
760
+ if (isArbitrary || isOrderSensitive) {
761
+ if (currentSegment.length > 0) {
762
+ currentSegment.sort();
763
+ result.push(...currentSegment);
764
+ currentSegment = [];
765
+ }
766
+ result.push(modifier);
767
+ } else {
768
+ currentSegment.push(modifier);
769
+ }
770
+ }
771
+ if (currentSegment.length > 0) {
772
+ currentSegment.sort();
773
+ result.push(...currentSegment);
774
+ }
775
+ return result;
776
+ };
777
+ };
778
+ var createConfigUtils = (config) => ({
779
+ cache: createLruCache(config.cacheSize),
780
+ parseClassName: createParseClassName(config),
781
+ sortModifiers: createSortModifiers(config),
782
+ postfixLookupClassGroupIds: createPostfixLookupClassGroupIds(config),
783
+ ...createClassGroupUtils(config)
784
+ });
785
+ var createPostfixLookupClassGroupIds = (config) => {
786
+ const lookup = Object.create(null);
787
+ const classGroupIds = config.postfixLookupClassGroups;
788
+ if (classGroupIds) {
789
+ for (let i = 0;i < classGroupIds.length; i++) {
790
+ lookup[classGroupIds[i]] = true;
791
+ }
792
+ }
793
+ return lookup;
794
+ };
795
+ var SPLIT_CLASSES_REGEX = /\s+/;
796
+ var mergeClassList = (classList, configUtils) => {
797
+ const {
798
+ parseClassName,
799
+ getClassGroupId,
800
+ getConflictingClassGroupIds,
801
+ sortModifiers,
802
+ postfixLookupClassGroupIds
803
+ } = configUtils;
804
+ const classGroupsInConflict = [];
805
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
806
+ let result = "";
807
+ for (let index = classNames.length - 1;index >= 0; index -= 1) {
808
+ const originalClassName = classNames[index];
809
+ const {
810
+ isExternal,
811
+ modifiers,
812
+ hasImportantModifier,
813
+ baseClassName,
814
+ maybePostfixModifierPosition
815
+ } = parseClassName(originalClassName);
816
+ if (isExternal) {
817
+ result = originalClassName + (result.length > 0 ? " " + result : result);
818
+ continue;
819
+ }
820
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
821
+ let classGroupId;
822
+ if (hasPostfixModifier) {
823
+ const baseClassNameWithoutPostfix = baseClassName.substring(0, maybePostfixModifierPosition);
824
+ classGroupId = getClassGroupId(baseClassNameWithoutPostfix);
825
+ const classGroupIdWithPostfix = classGroupId && postfixLookupClassGroupIds[classGroupId] ? getClassGroupId(baseClassName) : undefined;
826
+ if (classGroupIdWithPostfix && classGroupIdWithPostfix !== classGroupId) {
827
+ classGroupId = classGroupIdWithPostfix;
828
+ hasPostfixModifier = false;
829
+ }
830
+ } else {
831
+ classGroupId = getClassGroupId(baseClassName);
832
+ }
833
+ if (!classGroupId) {
834
+ if (!hasPostfixModifier) {
835
+ result = originalClassName + (result.length > 0 ? " " + result : result);
836
+ continue;
837
+ }
838
+ classGroupId = getClassGroupId(baseClassName);
839
+ if (!classGroupId) {
840
+ result = originalClassName + (result.length > 0 ? " " + result : result);
841
+ continue;
842
+ }
843
+ hasPostfixModifier = false;
844
+ }
845
+ const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
846
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
847
+ const classId = modifierId + classGroupId;
848
+ if (classGroupsInConflict.indexOf(classId) > -1) {
849
+ continue;
850
+ }
851
+ classGroupsInConflict.push(classId);
852
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
853
+ for (let i = 0;i < conflictGroups.length; ++i) {
854
+ const group = conflictGroups[i];
855
+ classGroupsInConflict.push(modifierId + group);
856
+ }
857
+ result = originalClassName + (result.length > 0 ? " " + result : result);
858
+ }
859
+ return result;
860
+ };
861
+ var twJoin = (...classLists) => {
862
+ let index = 0;
863
+ let argument;
864
+ let resolvedValue;
865
+ let string = "";
866
+ while (index < classLists.length) {
867
+ if (argument = classLists[index++]) {
868
+ if (resolvedValue = toValue(argument)) {
869
+ string && (string += " ");
870
+ string += resolvedValue;
871
+ }
872
+ }
873
+ }
874
+ return string;
875
+ };
876
+ var toValue = (mix) => {
877
+ if (typeof mix === "string") {
878
+ return mix;
879
+ }
880
+ let resolvedValue;
881
+ let string = "";
882
+ for (let k = 0;k < mix.length; k++) {
883
+ if (mix[k]) {
884
+ if (resolvedValue = toValue(mix[k])) {
885
+ string && (string += " ");
886
+ string += resolvedValue;
887
+ }
888
+ }
889
+ }
890
+ return string;
891
+ };
892
+ var createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
893
+ let configUtils;
894
+ let cacheGet;
895
+ let cacheSet;
896
+ let functionToCall;
897
+ const initTailwindMerge = (classList) => {
898
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
899
+ configUtils = createConfigUtils(config);
900
+ cacheGet = configUtils.cache.get;
901
+ cacheSet = configUtils.cache.set;
902
+ functionToCall = tailwindMerge;
903
+ return tailwindMerge(classList);
904
+ };
905
+ const tailwindMerge = (classList) => {
906
+ const cachedResult = cacheGet(classList);
907
+ if (cachedResult) {
908
+ return cachedResult;
909
+ }
910
+ const result = mergeClassList(classList, configUtils);
911
+ cacheSet(classList, result);
912
+ return result;
913
+ };
914
+ functionToCall = initTailwindMerge;
915
+ return (...args) => functionToCall(twJoin(...args));
916
+ };
917
+ var fallbackThemeArr = [];
918
+ var fromTheme = (key) => {
919
+ const themeGetter = (theme) => theme[key] || fallbackThemeArr;
920
+ themeGetter.isThemeGetter = true;
921
+ return themeGetter;
922
+ };
923
+ var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
924
+ var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
925
+ var fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
926
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
927
+ var lengthUnitRegex = /\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$/;
928
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
929
+ var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
930
+ var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
931
+ var isFraction = (value) => fractionRegex.test(value);
932
+ var isNumber = (value) => !!value && !Number.isNaN(Number(value));
933
+ var isInteger = (value) => !!value && Number.isInteger(Number(value));
934
+ var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
935
+ var isTshirtSize = (value) => tshirtUnitRegex.test(value);
936
+ var isAny = () => true;
937
+ var isLengthOnly = (value) => lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
938
+ var isNever = () => false;
939
+ var isShadow = (value) => shadowRegex.test(value);
940
+ var isImage = (value) => imageRegex.test(value);
941
+ var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
942
+ var isNamedContainerQuery = (value) => value.startsWith("@container") && (value[10] === "/" && value[11] !== undefined || value[11] === "s" && value[16] !== undefined && value.startsWith("-size/", 10) || value[11] === "n" && value[18] !== undefined && value.startsWith("-normal/", 10));
943
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
944
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
945
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
946
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
947
+ var isArbitraryWeight = (value) => getIsArbitraryValue(value, isLabelWeight, isAny);
948
+ var isArbitraryFamilyName = (value) => getIsArbitraryValue(value, isLabelFamilyName, isNever);
949
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
950
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
951
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
952
+ var isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
953
+ var isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
954
+ var isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
955
+ var isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
956
+ var isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
957
+ var isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
958
+ var isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
959
+ var isArbitraryVariableWeight = (value) => getIsArbitraryVariable(value, isLabelWeight, true);
960
+ var getIsArbitraryValue = (value, testLabel, testValue) => {
961
+ const result = arbitraryValueRegex.exec(value);
962
+ if (result) {
963
+ if (result[1]) {
964
+ return testLabel(result[1]);
965
+ }
966
+ return testValue(result[2]);
967
+ }
968
+ return false;
969
+ };
970
+ var getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
971
+ const result = arbitraryVariableRegex.exec(value);
972
+ if (result) {
973
+ if (result[1]) {
974
+ return testLabel(result[1]);
975
+ }
976
+ return shouldMatchNoLabel;
977
+ }
978
+ return false;
979
+ };
980
+ var isLabelPosition = (label) => label === "position" || label === "percentage";
981
+ var isLabelImage = (label) => label === "image" || label === "url";
982
+ var isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
983
+ var isLabelLength = (label) => label === "length";
984
+ var isLabelNumber = (label) => label === "number";
985
+ var isLabelFamilyName = (label) => label === "family-name";
986
+ var isLabelWeight = (label) => label === "number" || label === "weight";
987
+ var isLabelShadow = (label) => label === "shadow";
988
+ var getDefaultConfig = () => {
989
+ const themeColor = fromTheme("color");
990
+ const themeFont = fromTheme("font");
991
+ const themeText = fromTheme("text");
992
+ const themeFontWeight = fromTheme("font-weight");
993
+ const themeTracking = fromTheme("tracking");
994
+ const themeLeading = fromTheme("leading");
995
+ const themeBreakpoint = fromTheme("breakpoint");
996
+ const themeContainer = fromTheme("container");
997
+ const themeSpacing = fromTheme("spacing");
998
+ const themeRadius = fromTheme("radius");
999
+ const themeShadow = fromTheme("shadow");
1000
+ const themeInsetShadow = fromTheme("inset-shadow");
1001
+ const themeTextShadow = fromTheme("text-shadow");
1002
+ const themeDropShadow = fromTheme("drop-shadow");
1003
+ const themeBlur = fromTheme("blur");
1004
+ const themePerspective = fromTheme("perspective");
1005
+ const themeAspect = fromTheme("aspect");
1006
+ const themeEase = fromTheme("ease");
1007
+ const themeAnimate = fromTheme("animate");
1008
+ const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
1009
+ const scalePosition = () => [
1010
+ "center",
1011
+ "top",
1012
+ "bottom",
1013
+ "left",
1014
+ "right",
1015
+ "top-left",
1016
+ "left-top",
1017
+ "top-right",
1018
+ "right-top",
1019
+ "bottom-right",
1020
+ "right-bottom",
1021
+ "bottom-left",
1022
+ "left-bottom"
1023
+ ];
1024
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
1025
+ const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
1026
+ const scaleOverscroll = () => ["auto", "contain", "none"];
1027
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
1028
+ const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
1029
+ const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
1030
+ const scaleGridColRowStartAndEnd = () => ["auto", {
1031
+ span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
1032
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
1033
+ const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
1034
+ const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
1035
+ const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
1036
+ const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
1037
+ const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
1038
+ const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
1039
+ const scaleSizingInline = () => [isFraction, "screen", "full", "dvw", "lvw", "svw", "min", "max", "fit", ...scaleUnambiguousSpacing()];
1040
+ const scaleSizingBlock = () => [isFraction, "screen", "full", "lh", "dvh", "lvh", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
1041
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
1042
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
1043
+ position: [isArbitraryVariable, isArbitraryValue]
1044
+ }];
1045
+ const scaleBgRepeat = () => ["no-repeat", {
1046
+ repeat: ["", "x", "y", "space", "round"]
1047
+ }];
1048
+ const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
1049
+ size: [isArbitraryVariable, isArbitraryValue]
1050
+ }];
1051
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
1052
+ const scaleRadius = () => [
1053
+ "",
1054
+ "none",
1055
+ "full",
1056
+ themeRadius,
1057
+ isArbitraryVariable,
1058
+ isArbitraryValue
1059
+ ];
1060
+ const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
1061
+ const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
1062
+ const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
1063
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
1064
+ const scaleBlur = () => [
1065
+ "",
1066
+ "none",
1067
+ themeBlur,
1068
+ isArbitraryVariable,
1069
+ isArbitraryValue
1070
+ ];
1071
+ const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
1072
+ const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
1073
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
1074
+ const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
1075
+ return {
1076
+ cacheSize: 500,
1077
+ theme: {
1078
+ animate: ["spin", "ping", "pulse", "bounce"],
1079
+ aspect: ["video"],
1080
+ blur: [isTshirtSize],
1081
+ breakpoint: [isTshirtSize],
1082
+ color: [isAny],
1083
+ container: [isTshirtSize],
1084
+ "drop-shadow": [isTshirtSize],
1085
+ ease: ["in", "out", "in-out"],
1086
+ font: [isAnyNonArbitrary],
1087
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
1088
+ "inset-shadow": [isTshirtSize],
1089
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
1090
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
1091
+ radius: [isTshirtSize],
1092
+ shadow: [isTshirtSize],
1093
+ spacing: ["px", isNumber],
1094
+ text: [isTshirtSize],
1095
+ "text-shadow": [isTshirtSize],
1096
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
1097
+ },
1098
+ classGroups: {
1099
+ aspect: [{
1100
+ aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
1101
+ }],
1102
+ container: ["container"],
1103
+ "container-type": [{
1104
+ "@container": ["", "normal", "size", isArbitraryVariable, isArbitraryValue]
1105
+ }],
1106
+ "container-named": [isNamedContainerQuery],
1107
+ columns: [{
1108
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
1109
+ }],
1110
+ "break-after": [{
1111
+ "break-after": scaleBreak()
1112
+ }],
1113
+ "break-before": [{
1114
+ "break-before": scaleBreak()
1115
+ }],
1116
+ "break-inside": [{
1117
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
1118
+ }],
1119
+ "box-decoration": [{
1120
+ "box-decoration": ["slice", "clone"]
1121
+ }],
1122
+ box: [{
1123
+ box: ["border", "content"]
1124
+ }],
1125
+ 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"],
1126
+ sr: ["sr-only", "not-sr-only"],
1127
+ float: [{
1128
+ float: ["right", "left", "none", "start", "end"]
1129
+ }],
1130
+ clear: [{
1131
+ clear: ["left", "right", "both", "none", "start", "end"]
1132
+ }],
1133
+ isolation: ["isolate", "isolation-auto"],
1134
+ "object-fit": [{
1135
+ object: ["contain", "cover", "fill", "none", "scale-down"]
1136
+ }],
1137
+ "object-position": [{
1138
+ object: scalePositionWithArbitrary()
1139
+ }],
1140
+ overflow: [{
1141
+ overflow: scaleOverflow()
1142
+ }],
1143
+ "overflow-x": [{
1144
+ "overflow-x": scaleOverflow()
1145
+ }],
1146
+ "overflow-y": [{
1147
+ "overflow-y": scaleOverflow()
1148
+ }],
1149
+ overscroll: [{
1150
+ overscroll: scaleOverscroll()
1151
+ }],
1152
+ "overscroll-x": [{
1153
+ "overscroll-x": scaleOverscroll()
1154
+ }],
1155
+ "overscroll-y": [{
1156
+ "overscroll-y": scaleOverscroll()
1157
+ }],
1158
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
1159
+ inset: [{
1160
+ inset: scaleInset()
1161
+ }],
1162
+ "inset-x": [{
1163
+ "inset-x": scaleInset()
1164
+ }],
1165
+ "inset-y": [{
1166
+ "inset-y": scaleInset()
1167
+ }],
1168
+ start: [{
1169
+ "inset-s": scaleInset(),
1170
+ start: scaleInset()
1171
+ }],
1172
+ end: [{
1173
+ "inset-e": scaleInset(),
1174
+ end: scaleInset()
1175
+ }],
1176
+ "inset-bs": [{
1177
+ "inset-bs": scaleInset()
1178
+ }],
1179
+ "inset-be": [{
1180
+ "inset-be": scaleInset()
1181
+ }],
1182
+ top: [{
1183
+ top: scaleInset()
1184
+ }],
1185
+ right: [{
1186
+ right: scaleInset()
1187
+ }],
1188
+ bottom: [{
1189
+ bottom: scaleInset()
1190
+ }],
1191
+ left: [{
1192
+ left: scaleInset()
1193
+ }],
1194
+ visibility: ["visible", "invisible", "collapse"],
1195
+ z: [{
1196
+ z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
1197
+ }],
1198
+ basis: [{
1199
+ basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
1200
+ }],
1201
+ "flex-direction": [{
1202
+ flex: ["row", "row-reverse", "col", "col-reverse"]
1203
+ }],
1204
+ "flex-wrap": [{
1205
+ flex: ["nowrap", "wrap", "wrap-reverse"]
1206
+ }],
1207
+ flex: [{
1208
+ flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
1209
+ }],
1210
+ grow: [{
1211
+ grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1212
+ }],
1213
+ shrink: [{
1214
+ shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1215
+ }],
1216
+ order: [{
1217
+ order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
1218
+ }],
1219
+ "grid-cols": [{
1220
+ "grid-cols": scaleGridTemplateColsRows()
1221
+ }],
1222
+ "col-start-end": [{
1223
+ col: scaleGridColRowStartAndEnd()
1224
+ }],
1225
+ "col-start": [{
1226
+ "col-start": scaleGridColRowStartOrEnd()
1227
+ }],
1228
+ "col-end": [{
1229
+ "col-end": scaleGridColRowStartOrEnd()
1230
+ }],
1231
+ "grid-rows": [{
1232
+ "grid-rows": scaleGridTemplateColsRows()
1233
+ }],
1234
+ "row-start-end": [{
1235
+ row: scaleGridColRowStartAndEnd()
1236
+ }],
1237
+ "row-start": [{
1238
+ "row-start": scaleGridColRowStartOrEnd()
1239
+ }],
1240
+ "row-end": [{
1241
+ "row-end": scaleGridColRowStartOrEnd()
1242
+ }],
1243
+ "grid-flow": [{
1244
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1245
+ }],
1246
+ "auto-cols": [{
1247
+ "auto-cols": scaleGridAutoColsRows()
1248
+ }],
1249
+ "auto-rows": [{
1250
+ "auto-rows": scaleGridAutoColsRows()
1251
+ }],
1252
+ gap: [{
1253
+ gap: scaleUnambiguousSpacing()
1254
+ }],
1255
+ "gap-x": [{
1256
+ "gap-x": scaleUnambiguousSpacing()
1257
+ }],
1258
+ "gap-y": [{
1259
+ "gap-y": scaleUnambiguousSpacing()
1260
+ }],
1261
+ "justify-content": [{
1262
+ justify: [...scaleAlignPrimaryAxis(), "normal"]
1263
+ }],
1264
+ "justify-items": [{
1265
+ "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
1266
+ }],
1267
+ "justify-self": [{
1268
+ "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
1269
+ }],
1270
+ "align-content": [{
1271
+ content: ["normal", ...scaleAlignPrimaryAxis()]
1272
+ }],
1273
+ "align-items": [{
1274
+ items: [...scaleAlignSecondaryAxis(), {
1275
+ baseline: ["", "last"]
1276
+ }]
1277
+ }],
1278
+ "align-self": [{
1279
+ self: ["auto", ...scaleAlignSecondaryAxis(), {
1280
+ baseline: ["", "last"]
1281
+ }]
1282
+ }],
1283
+ "place-content": [{
1284
+ "place-content": scaleAlignPrimaryAxis()
1285
+ }],
1286
+ "place-items": [{
1287
+ "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
1288
+ }],
1289
+ "place-self": [{
1290
+ "place-self": ["auto", ...scaleAlignSecondaryAxis()]
1291
+ }],
1292
+ p: [{
1293
+ p: scaleUnambiguousSpacing()
1294
+ }],
1295
+ px: [{
1296
+ px: scaleUnambiguousSpacing()
1297
+ }],
1298
+ py: [{
1299
+ py: scaleUnambiguousSpacing()
1300
+ }],
1301
+ ps: [{
1302
+ ps: scaleUnambiguousSpacing()
1303
+ }],
1304
+ pe: [{
1305
+ pe: scaleUnambiguousSpacing()
1306
+ }],
1307
+ pbs: [{
1308
+ pbs: scaleUnambiguousSpacing()
1309
+ }],
1310
+ pbe: [{
1311
+ pbe: scaleUnambiguousSpacing()
1312
+ }],
1313
+ pt: [{
1314
+ pt: scaleUnambiguousSpacing()
1315
+ }],
1316
+ pr: [{
1317
+ pr: scaleUnambiguousSpacing()
1318
+ }],
1319
+ pb: [{
1320
+ pb: scaleUnambiguousSpacing()
1321
+ }],
1322
+ pl: [{
1323
+ pl: scaleUnambiguousSpacing()
1324
+ }],
1325
+ m: [{
1326
+ m: scaleMargin()
1327
+ }],
1328
+ mx: [{
1329
+ mx: scaleMargin()
1330
+ }],
1331
+ my: [{
1332
+ my: scaleMargin()
1333
+ }],
1334
+ ms: [{
1335
+ ms: scaleMargin()
1336
+ }],
1337
+ me: [{
1338
+ me: scaleMargin()
1339
+ }],
1340
+ mbs: [{
1341
+ mbs: scaleMargin()
1342
+ }],
1343
+ mbe: [{
1344
+ mbe: scaleMargin()
1345
+ }],
1346
+ mt: [{
1347
+ mt: scaleMargin()
1348
+ }],
1349
+ mr: [{
1350
+ mr: scaleMargin()
1351
+ }],
1352
+ mb: [{
1353
+ mb: scaleMargin()
1354
+ }],
1355
+ ml: [{
1356
+ ml: scaleMargin()
1357
+ }],
1358
+ "space-x": [{
1359
+ "space-x": scaleUnambiguousSpacing()
1360
+ }],
1361
+ "space-x-reverse": ["space-x-reverse"],
1362
+ "space-y": [{
1363
+ "space-y": scaleUnambiguousSpacing()
1364
+ }],
1365
+ "space-y-reverse": ["space-y-reverse"],
1366
+ size: [{
1367
+ size: scaleSizing()
1368
+ }],
1369
+ "inline-size": [{
1370
+ inline: ["auto", ...scaleSizingInline()]
1371
+ }],
1372
+ "min-inline-size": [{
1373
+ "min-inline": ["auto", ...scaleSizingInline()]
1374
+ }],
1375
+ "max-inline-size": [{
1376
+ "max-inline": ["none", ...scaleSizingInline()]
1377
+ }],
1378
+ "block-size": [{
1379
+ block: ["auto", ...scaleSizingBlock()]
1380
+ }],
1381
+ "min-block-size": [{
1382
+ "min-block": ["auto", ...scaleSizingBlock()]
1383
+ }],
1384
+ "max-block-size": [{
1385
+ "max-block": ["none", ...scaleSizingBlock()]
1386
+ }],
1387
+ w: [{
1388
+ w: [themeContainer, "screen", ...scaleSizing()]
1389
+ }],
1390
+ "min-w": [{
1391
+ "min-w": [
1392
+ themeContainer,
1393
+ "screen",
1394
+ "none",
1395
+ ...scaleSizing()
1396
+ ]
1397
+ }],
1398
+ "max-w": [{
1399
+ "max-w": [
1400
+ themeContainer,
1401
+ "screen",
1402
+ "none",
1403
+ "prose",
1404
+ {
1405
+ screen: [themeBreakpoint]
1406
+ },
1407
+ ...scaleSizing()
1408
+ ]
1409
+ }],
1410
+ h: [{
1411
+ h: ["screen", "lh", ...scaleSizing()]
1412
+ }],
1413
+ "min-h": [{
1414
+ "min-h": ["screen", "lh", "none", ...scaleSizing()]
1415
+ }],
1416
+ "max-h": [{
1417
+ "max-h": ["screen", "lh", ...scaleSizing()]
1418
+ }],
1419
+ "font-size": [{
1420
+ text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
1421
+ }],
1422
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1423
+ "font-style": ["italic", "not-italic"],
1424
+ "font-weight": [{
1425
+ font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
1426
+ }],
1427
+ "font-stretch": [{
1428
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
1429
+ }],
1430
+ "font-family": [{
1431
+ font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
1432
+ }],
1433
+ "font-features": [{
1434
+ "font-features": [isArbitraryValue]
1435
+ }],
1436
+ "fvn-normal": ["normal-nums"],
1437
+ "fvn-ordinal": ["ordinal"],
1438
+ "fvn-slashed-zero": ["slashed-zero"],
1439
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1440
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1441
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1442
+ tracking: [{
1443
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
1444
+ }],
1445
+ "line-clamp": [{
1446
+ "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
1447
+ }],
1448
+ leading: [{
1449
+ leading: [
1450
+ themeLeading,
1451
+ ...scaleUnambiguousSpacing()
1452
+ ]
1453
+ }],
1454
+ "list-image": [{
1455
+ "list-image": ["none", isArbitraryVariable, isArbitraryValue]
1456
+ }],
1457
+ "list-style-position": [{
1458
+ list: ["inside", "outside"]
1459
+ }],
1460
+ "list-style-type": [{
1461
+ list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
1462
+ }],
1463
+ "text-alignment": [{
1464
+ text: ["left", "center", "right", "justify", "start", "end"]
1465
+ }],
1466
+ "placeholder-color": [{
1467
+ placeholder: scaleColor()
1468
+ }],
1469
+ "text-color": [{
1470
+ text: scaleColor()
1471
+ }],
1472
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1473
+ "text-decoration-style": [{
1474
+ decoration: [...scaleLineStyle(), "wavy"]
1475
+ }],
1476
+ "text-decoration-thickness": [{
1477
+ decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
1478
+ }],
1479
+ "text-decoration-color": [{
1480
+ decoration: scaleColor()
1481
+ }],
1482
+ "underline-offset": [{
1483
+ "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
1484
+ }],
1485
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1486
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1487
+ "text-wrap": [{
1488
+ text: ["wrap", "nowrap", "balance", "pretty"]
1489
+ }],
1490
+ indent: [{
1491
+ indent: scaleUnambiguousSpacing()
1492
+ }],
1493
+ "tab-size": [{
1494
+ tab: [isInteger, isArbitraryVariable, isArbitraryValue]
1495
+ }],
1496
+ "vertical-align": [{
1497
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
1498
+ }],
1499
+ whitespace: [{
1500
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1501
+ }],
1502
+ break: [{
1503
+ break: ["normal", "words", "all", "keep"]
1504
+ }],
1505
+ wrap: [{
1506
+ wrap: ["break-word", "anywhere", "normal"]
1507
+ }],
1508
+ hyphens: [{
1509
+ hyphens: ["none", "manual", "auto"]
1510
+ }],
1511
+ content: [{
1512
+ content: ["none", isArbitraryVariable, isArbitraryValue]
1513
+ }],
1514
+ "bg-attachment": [{
1515
+ bg: ["fixed", "local", "scroll"]
1516
+ }],
1517
+ "bg-clip": [{
1518
+ "bg-clip": ["border", "padding", "content", "text"]
1519
+ }],
1520
+ "bg-origin": [{
1521
+ "bg-origin": ["border", "padding", "content"]
1522
+ }],
1523
+ "bg-position": [{
1524
+ bg: scaleBgPosition()
1525
+ }],
1526
+ "bg-repeat": [{
1527
+ bg: scaleBgRepeat()
1528
+ }],
1529
+ "bg-size": [{
1530
+ bg: scaleBgSize()
1531
+ }],
1532
+ "bg-image": [{
1533
+ bg: ["none", {
1534
+ linear: [{
1535
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1536
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
1537
+ radial: ["", isArbitraryVariable, isArbitraryValue],
1538
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
1539
+ }, isArbitraryVariableImage, isArbitraryImage]
1540
+ }],
1541
+ "bg-color": [{
1542
+ bg: scaleColor()
1543
+ }],
1544
+ "gradient-from-pos": [{
1545
+ from: scaleGradientStopPosition()
1546
+ }],
1547
+ "gradient-via-pos": [{
1548
+ via: scaleGradientStopPosition()
1549
+ }],
1550
+ "gradient-to-pos": [{
1551
+ to: scaleGradientStopPosition()
1552
+ }],
1553
+ "gradient-from": [{
1554
+ from: scaleColor()
1555
+ }],
1556
+ "gradient-via": [{
1557
+ via: scaleColor()
1558
+ }],
1559
+ "gradient-to": [{
1560
+ to: scaleColor()
1561
+ }],
1562
+ rounded: [{
1563
+ rounded: scaleRadius()
1564
+ }],
1565
+ "rounded-s": [{
1566
+ "rounded-s": scaleRadius()
1567
+ }],
1568
+ "rounded-e": [{
1569
+ "rounded-e": scaleRadius()
1570
+ }],
1571
+ "rounded-t": [{
1572
+ "rounded-t": scaleRadius()
1573
+ }],
1574
+ "rounded-r": [{
1575
+ "rounded-r": scaleRadius()
1576
+ }],
1577
+ "rounded-b": [{
1578
+ "rounded-b": scaleRadius()
1579
+ }],
1580
+ "rounded-l": [{
1581
+ "rounded-l": scaleRadius()
1582
+ }],
1583
+ "rounded-ss": [{
1584
+ "rounded-ss": scaleRadius()
1585
+ }],
1586
+ "rounded-se": [{
1587
+ "rounded-se": scaleRadius()
1588
+ }],
1589
+ "rounded-ee": [{
1590
+ "rounded-ee": scaleRadius()
1591
+ }],
1592
+ "rounded-es": [{
1593
+ "rounded-es": scaleRadius()
1594
+ }],
1595
+ "rounded-tl": [{
1596
+ "rounded-tl": scaleRadius()
1597
+ }],
1598
+ "rounded-tr": [{
1599
+ "rounded-tr": scaleRadius()
1600
+ }],
1601
+ "rounded-br": [{
1602
+ "rounded-br": scaleRadius()
1603
+ }],
1604
+ "rounded-bl": [{
1605
+ "rounded-bl": scaleRadius()
1606
+ }],
1607
+ "border-w": [{
1608
+ border: scaleBorderWidth()
1609
+ }],
1610
+ "border-w-x": [{
1611
+ "border-x": scaleBorderWidth()
1612
+ }],
1613
+ "border-w-y": [{
1614
+ "border-y": scaleBorderWidth()
1615
+ }],
1616
+ "border-w-s": [{
1617
+ "border-s": scaleBorderWidth()
1618
+ }],
1619
+ "border-w-e": [{
1620
+ "border-e": scaleBorderWidth()
1621
+ }],
1622
+ "border-w-bs": [{
1623
+ "border-bs": scaleBorderWidth()
1624
+ }],
1625
+ "border-w-be": [{
1626
+ "border-be": scaleBorderWidth()
1627
+ }],
1628
+ "border-w-t": [{
1629
+ "border-t": scaleBorderWidth()
1630
+ }],
1631
+ "border-w-r": [{
1632
+ "border-r": scaleBorderWidth()
1633
+ }],
1634
+ "border-w-b": [{
1635
+ "border-b": scaleBorderWidth()
1636
+ }],
1637
+ "border-w-l": [{
1638
+ "border-l": scaleBorderWidth()
1639
+ }],
1640
+ "divide-x": [{
1641
+ "divide-x": scaleBorderWidth()
1642
+ }],
1643
+ "divide-x-reverse": ["divide-x-reverse"],
1644
+ "divide-y": [{
1645
+ "divide-y": scaleBorderWidth()
1646
+ }],
1647
+ "divide-y-reverse": ["divide-y-reverse"],
1648
+ "border-style": [{
1649
+ border: [...scaleLineStyle(), "hidden", "none"]
1650
+ }],
1651
+ "divide-style": [{
1652
+ divide: [...scaleLineStyle(), "hidden", "none"]
1653
+ }],
1654
+ "border-color": [{
1655
+ border: scaleColor()
1656
+ }],
1657
+ "border-color-x": [{
1658
+ "border-x": scaleColor()
1659
+ }],
1660
+ "border-color-y": [{
1661
+ "border-y": scaleColor()
1662
+ }],
1663
+ "border-color-s": [{
1664
+ "border-s": scaleColor()
1665
+ }],
1666
+ "border-color-e": [{
1667
+ "border-e": scaleColor()
1668
+ }],
1669
+ "border-color-bs": [{
1670
+ "border-bs": scaleColor()
1671
+ }],
1672
+ "border-color-be": [{
1673
+ "border-be": scaleColor()
1674
+ }],
1675
+ "border-color-t": [{
1676
+ "border-t": scaleColor()
1677
+ }],
1678
+ "border-color-r": [{
1679
+ "border-r": scaleColor()
1680
+ }],
1681
+ "border-color-b": [{
1682
+ "border-b": scaleColor()
1683
+ }],
1684
+ "border-color-l": [{
1685
+ "border-l": scaleColor()
1686
+ }],
1687
+ "divide-color": [{
1688
+ divide: scaleColor()
1689
+ }],
1690
+ "outline-style": [{
1691
+ outline: [...scaleLineStyle(), "none", "hidden"]
1692
+ }],
1693
+ "outline-offset": [{
1694
+ "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
1695
+ }],
1696
+ "outline-w": [{
1697
+ outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
1698
+ }],
1699
+ "outline-color": [{
1700
+ outline: scaleColor()
1701
+ }],
1702
+ shadow: [{
1703
+ shadow: [
1704
+ "",
1705
+ "none",
1706
+ themeShadow,
1707
+ isArbitraryVariableShadow,
1708
+ isArbitraryShadow
1709
+ ]
1710
+ }],
1711
+ "shadow-color": [{
1712
+ shadow: scaleColor()
1713
+ }],
1714
+ "inset-shadow": [{
1715
+ "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
1716
+ }],
1717
+ "inset-shadow-color": [{
1718
+ "inset-shadow": scaleColor()
1719
+ }],
1720
+ "ring-w": [{
1721
+ ring: scaleBorderWidth()
1722
+ }],
1723
+ "ring-w-inset": ["ring-inset"],
1724
+ "ring-color": [{
1725
+ ring: scaleColor()
1726
+ }],
1727
+ "ring-offset-w": [{
1728
+ "ring-offset": [isNumber, isArbitraryLength]
1729
+ }],
1730
+ "ring-offset-color": [{
1731
+ "ring-offset": scaleColor()
1732
+ }],
1733
+ "inset-ring-w": [{
1734
+ "inset-ring": scaleBorderWidth()
1735
+ }],
1736
+ "inset-ring-color": [{
1737
+ "inset-ring": scaleColor()
1738
+ }],
1739
+ "text-shadow": [{
1740
+ "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
1741
+ }],
1742
+ "text-shadow-color": [{
1743
+ "text-shadow": scaleColor()
1744
+ }],
1745
+ opacity: [{
1746
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
1747
+ }],
1748
+ "mix-blend": [{
1749
+ "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
1750
+ }],
1751
+ "bg-blend": [{
1752
+ "bg-blend": scaleBlendMode()
1753
+ }],
1754
+ "mask-clip": [{
1755
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
1756
+ }, "mask-no-clip"],
1757
+ "mask-composite": [{
1758
+ mask: ["add", "subtract", "intersect", "exclude"]
1759
+ }],
1760
+ "mask-image-linear-pos": [{
1761
+ "mask-linear": [isNumber]
1762
+ }],
1763
+ "mask-image-linear-from-pos": [{
1764
+ "mask-linear-from": scaleMaskImagePosition()
1765
+ }],
1766
+ "mask-image-linear-to-pos": [{
1767
+ "mask-linear-to": scaleMaskImagePosition()
1768
+ }],
1769
+ "mask-image-linear-from-color": [{
1770
+ "mask-linear-from": scaleColor()
1771
+ }],
1772
+ "mask-image-linear-to-color": [{
1773
+ "mask-linear-to": scaleColor()
1774
+ }],
1775
+ "mask-image-t-from-pos": [{
1776
+ "mask-t-from": scaleMaskImagePosition()
1777
+ }],
1778
+ "mask-image-t-to-pos": [{
1779
+ "mask-t-to": scaleMaskImagePosition()
1780
+ }],
1781
+ "mask-image-t-from-color": [{
1782
+ "mask-t-from": scaleColor()
1783
+ }],
1784
+ "mask-image-t-to-color": [{
1785
+ "mask-t-to": scaleColor()
1786
+ }],
1787
+ "mask-image-r-from-pos": [{
1788
+ "mask-r-from": scaleMaskImagePosition()
1789
+ }],
1790
+ "mask-image-r-to-pos": [{
1791
+ "mask-r-to": scaleMaskImagePosition()
1792
+ }],
1793
+ "mask-image-r-from-color": [{
1794
+ "mask-r-from": scaleColor()
1795
+ }],
1796
+ "mask-image-r-to-color": [{
1797
+ "mask-r-to": scaleColor()
1798
+ }],
1799
+ "mask-image-b-from-pos": [{
1800
+ "mask-b-from": scaleMaskImagePosition()
1801
+ }],
1802
+ "mask-image-b-to-pos": [{
1803
+ "mask-b-to": scaleMaskImagePosition()
1804
+ }],
1805
+ "mask-image-b-from-color": [{
1806
+ "mask-b-from": scaleColor()
1807
+ }],
1808
+ "mask-image-b-to-color": [{
1809
+ "mask-b-to": scaleColor()
1810
+ }],
1811
+ "mask-image-l-from-pos": [{
1812
+ "mask-l-from": scaleMaskImagePosition()
1813
+ }],
1814
+ "mask-image-l-to-pos": [{
1815
+ "mask-l-to": scaleMaskImagePosition()
1816
+ }],
1817
+ "mask-image-l-from-color": [{
1818
+ "mask-l-from": scaleColor()
1819
+ }],
1820
+ "mask-image-l-to-color": [{
1821
+ "mask-l-to": scaleColor()
1822
+ }],
1823
+ "mask-image-x-from-pos": [{
1824
+ "mask-x-from": scaleMaskImagePosition()
1825
+ }],
1826
+ "mask-image-x-to-pos": [{
1827
+ "mask-x-to": scaleMaskImagePosition()
1828
+ }],
1829
+ "mask-image-x-from-color": [{
1830
+ "mask-x-from": scaleColor()
1831
+ }],
1832
+ "mask-image-x-to-color": [{
1833
+ "mask-x-to": scaleColor()
1834
+ }],
1835
+ "mask-image-y-from-pos": [{
1836
+ "mask-y-from": scaleMaskImagePosition()
1837
+ }],
1838
+ "mask-image-y-to-pos": [{
1839
+ "mask-y-to": scaleMaskImagePosition()
1840
+ }],
1841
+ "mask-image-y-from-color": [{
1842
+ "mask-y-from": scaleColor()
1843
+ }],
1844
+ "mask-image-y-to-color": [{
1845
+ "mask-y-to": scaleColor()
1846
+ }],
1847
+ "mask-image-radial": [{
1848
+ "mask-radial": [isArbitraryVariable, isArbitraryValue]
1849
+ }],
1850
+ "mask-image-radial-from-pos": [{
1851
+ "mask-radial-from": scaleMaskImagePosition()
1852
+ }],
1853
+ "mask-image-radial-to-pos": [{
1854
+ "mask-radial-to": scaleMaskImagePosition()
1855
+ }],
1856
+ "mask-image-radial-from-color": [{
1857
+ "mask-radial-from": scaleColor()
1858
+ }],
1859
+ "mask-image-radial-to-color": [{
1860
+ "mask-radial-to": scaleColor()
1861
+ }],
1862
+ "mask-image-radial-shape": [{
1863
+ "mask-radial": ["circle", "ellipse"]
1864
+ }],
1865
+ "mask-image-radial-size": [{
1866
+ "mask-radial": [{
1867
+ closest: ["side", "corner"],
1868
+ farthest: ["side", "corner"]
1869
+ }]
1870
+ }],
1871
+ "mask-image-radial-pos": [{
1872
+ "mask-radial-at": scalePosition()
1873
+ }],
1874
+ "mask-image-conic-pos": [{
1875
+ "mask-conic": [isNumber]
1876
+ }],
1877
+ "mask-image-conic-from-pos": [{
1878
+ "mask-conic-from": scaleMaskImagePosition()
1879
+ }],
1880
+ "mask-image-conic-to-pos": [{
1881
+ "mask-conic-to": scaleMaskImagePosition()
1882
+ }],
1883
+ "mask-image-conic-from-color": [{
1884
+ "mask-conic-from": scaleColor()
1885
+ }],
1886
+ "mask-image-conic-to-color": [{
1887
+ "mask-conic-to": scaleColor()
1888
+ }],
1889
+ "mask-mode": [{
1890
+ mask: ["alpha", "luminance", "match"]
1891
+ }],
1892
+ "mask-origin": [{
1893
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
1894
+ }],
1895
+ "mask-position": [{
1896
+ mask: scaleBgPosition()
1897
+ }],
1898
+ "mask-repeat": [{
1899
+ mask: scaleBgRepeat()
1900
+ }],
1901
+ "mask-size": [{
1902
+ mask: scaleBgSize()
1903
+ }],
1904
+ "mask-type": [{
1905
+ "mask-type": ["alpha", "luminance"]
1906
+ }],
1907
+ "mask-image": [{
1908
+ mask: ["none", isArbitraryVariable, isArbitraryValue]
1909
+ }],
1910
+ filter: [{
1911
+ filter: [
1912
+ "",
1913
+ "none",
1914
+ isArbitraryVariable,
1915
+ isArbitraryValue
1916
+ ]
1917
+ }],
1918
+ blur: [{
1919
+ blur: scaleBlur()
1920
+ }],
1921
+ brightness: [{
1922
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
1923
+ }],
1924
+ contrast: [{
1925
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
1926
+ }],
1927
+ "drop-shadow": [{
1928
+ "drop-shadow": [
1929
+ "",
1930
+ "none",
1931
+ themeDropShadow,
1932
+ isArbitraryVariableShadow,
1933
+ isArbitraryShadow
1934
+ ]
1935
+ }],
1936
+ "drop-shadow-color": [{
1937
+ "drop-shadow": scaleColor()
1938
+ }],
1939
+ grayscale: [{
1940
+ grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1941
+ }],
1942
+ "hue-rotate": [{
1943
+ "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
1944
+ }],
1945
+ invert: [{
1946
+ invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1947
+ }],
1948
+ saturate: [{
1949
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
1950
+ }],
1951
+ sepia: [{
1952
+ sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1953
+ }],
1954
+ "backdrop-filter": [{
1955
+ "backdrop-filter": [
1956
+ "",
1957
+ "none",
1958
+ isArbitraryVariable,
1959
+ isArbitraryValue
1960
+ ]
1961
+ }],
1962
+ "backdrop-blur": [{
1963
+ "backdrop-blur": scaleBlur()
1964
+ }],
1965
+ "backdrop-brightness": [{
1966
+ "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
1967
+ }],
1968
+ "backdrop-contrast": [{
1969
+ "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
1970
+ }],
1971
+ "backdrop-grayscale": [{
1972
+ "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
1973
+ }],
1974
+ "backdrop-hue-rotate": [{
1975
+ "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
1976
+ }],
1977
+ "backdrop-invert": [{
1978
+ "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
1979
+ }],
1980
+ "backdrop-opacity": [{
1981
+ "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
1982
+ }],
1983
+ "backdrop-saturate": [{
1984
+ "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
1985
+ }],
1986
+ "backdrop-sepia": [{
1987
+ "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
1988
+ }],
1989
+ "border-collapse": [{
1990
+ border: ["collapse", "separate"]
1991
+ }],
1992
+ "border-spacing": [{
1993
+ "border-spacing": scaleUnambiguousSpacing()
1994
+ }],
1995
+ "border-spacing-x": [{
1996
+ "border-spacing-x": scaleUnambiguousSpacing()
1997
+ }],
1998
+ "border-spacing-y": [{
1999
+ "border-spacing-y": scaleUnambiguousSpacing()
2000
+ }],
2001
+ "table-layout": [{
2002
+ table: ["auto", "fixed"]
2003
+ }],
2004
+ caption: [{
2005
+ caption: ["top", "bottom"]
2006
+ }],
2007
+ transition: [{
2008
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
2009
+ }],
2010
+ "transition-behavior": [{
2011
+ transition: ["normal", "discrete"]
2012
+ }],
2013
+ duration: [{
2014
+ duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
2015
+ }],
2016
+ ease: [{
2017
+ ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
2018
+ }],
2019
+ delay: [{
2020
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
2021
+ }],
2022
+ animate: [{
2023
+ animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
2024
+ }],
2025
+ backface: [{
2026
+ backface: ["hidden", "visible"]
2027
+ }],
2028
+ perspective: [{
2029
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
2030
+ }],
2031
+ "perspective-origin": [{
2032
+ "perspective-origin": scalePositionWithArbitrary()
2033
+ }],
2034
+ rotate: [{
2035
+ rotate: scaleRotate()
2036
+ }],
2037
+ "rotate-x": [{
2038
+ "rotate-x": scaleRotate()
2039
+ }],
2040
+ "rotate-y": [{
2041
+ "rotate-y": scaleRotate()
2042
+ }],
2043
+ "rotate-z": [{
2044
+ "rotate-z": scaleRotate()
2045
+ }],
2046
+ scale: [{
2047
+ scale: scaleScale()
2048
+ }],
2049
+ "scale-x": [{
2050
+ "scale-x": scaleScale()
2051
+ }],
2052
+ "scale-y": [{
2053
+ "scale-y": scaleScale()
2054
+ }],
2055
+ "scale-z": [{
2056
+ "scale-z": scaleScale()
2057
+ }],
2058
+ "scale-3d": ["scale-3d"],
2059
+ skew: [{
2060
+ skew: scaleSkew()
2061
+ }],
2062
+ "skew-x": [{
2063
+ "skew-x": scaleSkew()
2064
+ }],
2065
+ "skew-y": [{
2066
+ "skew-y": scaleSkew()
2067
+ }],
2068
+ transform: [{
2069
+ transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
2070
+ }],
2071
+ "transform-origin": [{
2072
+ origin: scalePositionWithArbitrary()
2073
+ }],
2074
+ "transform-style": [{
2075
+ transform: ["3d", "flat"]
2076
+ }],
2077
+ translate: [{
2078
+ translate: scaleTranslate()
2079
+ }],
2080
+ "translate-x": [{
2081
+ "translate-x": scaleTranslate()
2082
+ }],
2083
+ "translate-y": [{
2084
+ "translate-y": scaleTranslate()
2085
+ }],
2086
+ "translate-z": [{
2087
+ "translate-z": scaleTranslate()
2088
+ }],
2089
+ "translate-none": ["translate-none"],
2090
+ zoom: [{
2091
+ zoom: [isInteger, isArbitraryVariable, isArbitraryValue]
2092
+ }],
2093
+ accent: [{
2094
+ accent: scaleColor()
2095
+ }],
2096
+ appearance: [{
2097
+ appearance: ["none", "auto"]
2098
+ }],
2099
+ "caret-color": [{
2100
+ caret: scaleColor()
2101
+ }],
2102
+ "color-scheme": [{
2103
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2104
+ }],
2105
+ cursor: [{
2106
+ 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", isArbitraryVariable, isArbitraryValue]
2107
+ }],
2108
+ "field-sizing": [{
2109
+ "field-sizing": ["fixed", "content"]
2110
+ }],
2111
+ "pointer-events": [{
2112
+ "pointer-events": ["auto", "none"]
2113
+ }],
2114
+ resize: [{
2115
+ resize: ["none", "", "y", "x"]
2116
+ }],
2117
+ "scroll-behavior": [{
2118
+ scroll: ["auto", "smooth"]
2119
+ }],
2120
+ "scrollbar-thumb-color": [{
2121
+ "scrollbar-thumb": scaleColor()
2122
+ }],
2123
+ "scrollbar-track-color": [{
2124
+ "scrollbar-track": scaleColor()
2125
+ }],
2126
+ "scrollbar-gutter": [{
2127
+ "scrollbar-gutter": ["auto", "stable", "both"]
2128
+ }],
2129
+ "scrollbar-w": [{
2130
+ scrollbar: ["auto", "thin", "none"]
2131
+ }],
2132
+ "scroll-m": [{
2133
+ "scroll-m": scaleUnambiguousSpacing()
2134
+ }],
2135
+ "scroll-mx": [{
2136
+ "scroll-mx": scaleUnambiguousSpacing()
2137
+ }],
2138
+ "scroll-my": [{
2139
+ "scroll-my": scaleUnambiguousSpacing()
2140
+ }],
2141
+ "scroll-ms": [{
2142
+ "scroll-ms": scaleUnambiguousSpacing()
2143
+ }],
2144
+ "scroll-me": [{
2145
+ "scroll-me": scaleUnambiguousSpacing()
2146
+ }],
2147
+ "scroll-mbs": [{
2148
+ "scroll-mbs": scaleUnambiguousSpacing()
2149
+ }],
2150
+ "scroll-mbe": [{
2151
+ "scroll-mbe": scaleUnambiguousSpacing()
2152
+ }],
2153
+ "scroll-mt": [{
2154
+ "scroll-mt": scaleUnambiguousSpacing()
2155
+ }],
2156
+ "scroll-mr": [{
2157
+ "scroll-mr": scaleUnambiguousSpacing()
2158
+ }],
2159
+ "scroll-mb": [{
2160
+ "scroll-mb": scaleUnambiguousSpacing()
2161
+ }],
2162
+ "scroll-ml": [{
2163
+ "scroll-ml": scaleUnambiguousSpacing()
2164
+ }],
2165
+ "scroll-p": [{
2166
+ "scroll-p": scaleUnambiguousSpacing()
2167
+ }],
2168
+ "scroll-px": [{
2169
+ "scroll-px": scaleUnambiguousSpacing()
2170
+ }],
2171
+ "scroll-py": [{
2172
+ "scroll-py": scaleUnambiguousSpacing()
2173
+ }],
2174
+ "scroll-ps": [{
2175
+ "scroll-ps": scaleUnambiguousSpacing()
2176
+ }],
2177
+ "scroll-pe": [{
2178
+ "scroll-pe": scaleUnambiguousSpacing()
2179
+ }],
2180
+ "scroll-pbs": [{
2181
+ "scroll-pbs": scaleUnambiguousSpacing()
2182
+ }],
2183
+ "scroll-pbe": [{
2184
+ "scroll-pbe": scaleUnambiguousSpacing()
2185
+ }],
2186
+ "scroll-pt": [{
2187
+ "scroll-pt": scaleUnambiguousSpacing()
2188
+ }],
2189
+ "scroll-pr": [{
2190
+ "scroll-pr": scaleUnambiguousSpacing()
2191
+ }],
2192
+ "scroll-pb": [{
2193
+ "scroll-pb": scaleUnambiguousSpacing()
2194
+ }],
2195
+ "scroll-pl": [{
2196
+ "scroll-pl": scaleUnambiguousSpacing()
2197
+ }],
2198
+ "snap-align": [{
2199
+ snap: ["start", "end", "center", "align-none"]
2200
+ }],
2201
+ "snap-stop": [{
2202
+ snap: ["normal", "always"]
2203
+ }],
2204
+ "snap-type": [{
2205
+ snap: ["none", "x", "y", "both"]
2206
+ }],
2207
+ "snap-strictness": [{
2208
+ snap: ["mandatory", "proximity"]
2209
+ }],
2210
+ touch: [{
2211
+ touch: ["auto", "none", "manipulation"]
2212
+ }],
2213
+ "touch-x": [{
2214
+ "touch-pan": ["x", "left", "right"]
2215
+ }],
2216
+ "touch-y": [{
2217
+ "touch-pan": ["y", "up", "down"]
2218
+ }],
2219
+ "touch-pz": ["touch-pinch-zoom"],
2220
+ select: [{
2221
+ select: ["none", "text", "all", "auto"]
2222
+ }],
2223
+ "will-change": [{
2224
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
2225
+ }],
2226
+ fill: [{
2227
+ fill: ["none", ...scaleColor()]
2228
+ }],
2229
+ "stroke-w": [{
2230
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
2231
+ }],
2232
+ stroke: [{
2233
+ stroke: ["none", ...scaleColor()]
2234
+ }],
2235
+ "forced-color-adjust": [{
2236
+ "forced-color-adjust": ["auto", "none"]
2237
+ }]
2238
+ },
2239
+ conflictingClassGroups: {
2240
+ "container-named": ["container-type"],
2241
+ overflow: ["overflow-x", "overflow-y"],
2242
+ overscroll: ["overscroll-x", "overscroll-y"],
2243
+ inset: ["inset-x", "inset-y", "inset-bs", "inset-be", "start", "end", "top", "right", "bottom", "left"],
2244
+ "inset-x": ["right", "left"],
2245
+ "inset-y": ["top", "bottom"],
2246
+ flex: ["basis", "grow", "shrink"],
2247
+ gap: ["gap-x", "gap-y"],
2248
+ p: ["px", "py", "ps", "pe", "pbs", "pbe", "pt", "pr", "pb", "pl"],
2249
+ px: ["pr", "pl"],
2250
+ py: ["pt", "pb"],
2251
+ m: ["mx", "my", "ms", "me", "mbs", "mbe", "mt", "mr", "mb", "ml"],
2252
+ mx: ["mr", "ml"],
2253
+ my: ["mt", "mb"],
2254
+ size: ["w", "h"],
2255
+ "font-size": ["leading"],
2256
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2257
+ "fvn-ordinal": ["fvn-normal"],
2258
+ "fvn-slashed-zero": ["fvn-normal"],
2259
+ "fvn-figure": ["fvn-normal"],
2260
+ "fvn-spacing": ["fvn-normal"],
2261
+ "fvn-fraction": ["fvn-normal"],
2262
+ "line-clamp": ["display", "overflow"],
2263
+ 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"],
2264
+ "rounded-s": ["rounded-ss", "rounded-es"],
2265
+ "rounded-e": ["rounded-se", "rounded-ee"],
2266
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2267
+ "rounded-r": ["rounded-tr", "rounded-br"],
2268
+ "rounded-b": ["rounded-br", "rounded-bl"],
2269
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2270
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2271
+ "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-bs", "border-w-be", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2272
+ "border-w-x": ["border-w-r", "border-w-l"],
2273
+ "border-w-y": ["border-w-t", "border-w-b"],
2274
+ "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-bs", "border-color-be", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2275
+ "border-color-x": ["border-color-r", "border-color-l"],
2276
+ "border-color-y": ["border-color-t", "border-color-b"],
2277
+ translate: ["translate-x", "translate-y", "translate-none"],
2278
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
2279
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mbs", "scroll-mbe", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2280
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
2281
+ "scroll-my": ["scroll-mt", "scroll-mb"],
2282
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pbs", "scroll-pbe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2283
+ "scroll-px": ["scroll-pr", "scroll-pl"],
2284
+ "scroll-py": ["scroll-pt", "scroll-pb"],
2285
+ touch: ["touch-x", "touch-y", "touch-pz"],
2286
+ "touch-x": ["touch"],
2287
+ "touch-y": ["touch"],
2288
+ "touch-pz": ["touch"]
2289
+ },
2290
+ conflictingClassGroupModifiers: {
2291
+ "font-size": ["leading"]
2292
+ },
2293
+ postfixLookupClassGroups: ["container-type"],
2294
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
2295
+ };
2296
+ };
2297
+ var mergeConfigs = (baseConfig, {
2298
+ cacheSize,
2299
+ prefix,
2300
+ experimentalParseClassName,
2301
+ extend = {},
2302
+ override = {}
2303
+ }) => {
2304
+ overrideProperty(baseConfig, "cacheSize", cacheSize);
2305
+ overrideProperty(baseConfig, "prefix", prefix);
2306
+ overrideProperty(baseConfig, "experimentalParseClassName", experimentalParseClassName);
2307
+ overrideConfigProperties(baseConfig.theme, override.theme);
2308
+ overrideConfigProperties(baseConfig.classGroups, override.classGroups);
2309
+ overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);
2310
+ overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);
2311
+ overrideProperty(baseConfig, "postfixLookupClassGroups", override.postfixLookupClassGroups);
2312
+ overrideProperty(baseConfig, "orderSensitiveModifiers", override.orderSensitiveModifiers);
2313
+ mergeConfigProperties(baseConfig.theme, extend.theme);
2314
+ mergeConfigProperties(baseConfig.classGroups, extend.classGroups);
2315
+ mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);
2316
+ mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);
2317
+ mergeArrayProperties(baseConfig, extend, "postfixLookupClassGroups");
2318
+ mergeArrayProperties(baseConfig, extend, "orderSensitiveModifiers");
2319
+ return baseConfig;
2320
+ };
2321
+ var overrideProperty = (baseObject, overrideKey, overrideValue) => {
2322
+ if (overrideValue !== undefined) {
2323
+ baseObject[overrideKey] = overrideValue;
2324
+ }
2325
+ };
2326
+ var overrideConfigProperties = (baseObject, overrideObject) => {
2327
+ if (overrideObject) {
2328
+ for (const key in overrideObject) {
2329
+ overrideProperty(baseObject, key, overrideObject[key]);
2330
+ }
2331
+ }
2332
+ };
2333
+ var mergeConfigProperties = (baseObject, mergeObject) => {
2334
+ if (mergeObject) {
2335
+ for (const key in mergeObject) {
2336
+ mergeArrayProperties(baseObject, mergeObject, key);
2337
+ }
2338
+ }
2339
+ };
2340
+ var mergeArrayProperties = (baseObject, mergeObject, key) => {
2341
+ const mergeValue = mergeObject[key];
2342
+ if (mergeValue !== undefined) {
2343
+ baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;
2344
+ }
2345
+ };
2346
+ var extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === "function" ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);
2347
+ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
2348
+
2349
+ // node_modules/.bun/tailwind-variants@3.2.2+8d1ea3a475e79781/node_modules/tailwind-variants/dist/index.js
2350
+ var createTwMerge = (cachedTwMergeConfig) => {
2351
+ return isEmptyObject(cachedTwMergeConfig) ? twMerge : extendTailwindMerge({
2352
+ ...cachedTwMergeConfig,
2353
+ extend: {
2354
+ theme: cachedTwMergeConfig.theme,
2355
+ classGroups: cachedTwMergeConfig.classGroups,
2356
+ conflictingClassGroupModifiers: cachedTwMergeConfig.conflictingClassGroupModifiers,
2357
+ conflictingClassGroups: cachedTwMergeConfig.conflictingClassGroups,
2358
+ ...cachedTwMergeConfig.extend
2359
+ }
2360
+ });
2361
+ };
2362
+ var executeMerge = (classnames, config) => {
2363
+ const base = cx(classnames);
2364
+ if (!base || !(config?.twMerge ?? true))
2365
+ return base;
2366
+ if (!state.cachedTwMerge || state.didTwMergeConfigChange) {
2367
+ state.didTwMergeConfigChange = false;
2368
+ state.cachedTwMerge = createTwMerge(state.cachedTwMergeConfig);
2369
+ }
2370
+ return state.cachedTwMerge(base) || undefined;
2371
+ };
2372
+ var cnMerge = (...classnames) => {
2373
+ return (config) => executeMerge(classnames, config);
2374
+ };
2375
+ var { createTV, tv } = getTailwindVariants(cnMerge);
2376
+
2377
+ export { tv, getTabsContext, setTabsContext, getTheme, warnThemeDeprecation };