@datum-cloud/datum-ui 0.1.1 → 0.2.0-alpha.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 (61) hide show
  1. package/dist/chunk-CtajNgzt.mjs +36 -0
  2. package/dist/close.icon-DgjsP0sw.mjs +23 -0
  3. package/dist/close.icon-DgjsP0sw.mjs.map +1 -0
  4. package/dist/components/index.d.mts +27 -0
  5. package/dist/components/index.d.mts.map +1 -0
  6. package/dist/components/index.mjs +252 -0
  7. package/dist/components/index.mjs.map +1 -0
  8. package/dist/datum.provider-CsG2KNNc.d.mts +30 -0
  9. package/dist/datum.provider-CsG2KNNc.d.mts.map +1 -0
  10. package/dist/datum.provider-D6VMjSV0.mjs +38 -0
  11. package/dist/datum.provider-D6VMjSV0.mjs.map +1 -0
  12. package/dist/fonts/AllianceNo1-Medium.ttf +0 -0
  13. package/dist/fonts/AllianceNo1-Regular.ttf +0 -0
  14. package/dist/fonts/AllianceNo1-SemiBold.ttf +0 -0
  15. package/dist/fonts/FTRegolaNeue-Medium.woff2 +0 -0
  16. package/dist/fonts/FTRegolaNeue-Regular.woff2 +0 -0
  17. package/dist/fonts/FTRegolaNeue-Semibold.woff2 +0 -0
  18. package/dist/hooks/index.d.mts +3 -0
  19. package/dist/hooks/index.mjs +5 -0
  20. package/dist/icon-wrapper-BTllM5Re.mjs +62 -0
  21. package/dist/icon-wrapper-BTllM5Re.mjs.map +1 -0
  22. package/dist/icons/index.d.mts +3 -0
  23. package/dist/icons/index.mjs +5 -0
  24. package/dist/index-DH2XEEjO.d.mts +3995 -0
  25. package/dist/index-DH2XEEjO.d.mts.map +1 -0
  26. package/dist/index.d.mts +30 -89
  27. package/dist/index.d.mts.map +1 -0
  28. package/dist/index.mjs +248 -3706
  29. package/dist/index.mjs.map +1 -0
  30. package/dist/providers/index.d.mts +3 -0
  31. package/dist/providers/index.mjs +4 -0
  32. package/dist/spinner.icon-q9zisVlw.d.mts +46 -0
  33. package/dist/spinner.icon-q9zisVlw.d.mts.map +1 -0
  34. package/dist/style.css +7096 -0
  35. package/dist/style.css.map +1 -0
  36. package/dist/theme-script-B_TkiYs4.mjs +8841 -0
  37. package/dist/theme-script-B_TkiYs4.mjs.map +1 -0
  38. package/dist/theme.provider-DpFLwtHe.mjs +135 -0
  39. package/dist/theme.provider-DpFLwtHe.mjs.map +1 -0
  40. package/dist/types-BoL47uxV.d.mts +34 -0
  41. package/dist/types-BoL47uxV.d.mts.map +1 -0
  42. package/dist/use-copy-to-clipboard-D5U8bWsn.mjs +117 -0
  43. package/dist/use-copy-to-clipboard-D5U8bWsn.mjs.map +1 -0
  44. package/dist/use-debounce-BYB-jPeX.mjs +25 -0
  45. package/dist/use-debounce-BYB-jPeX.mjs.map +1 -0
  46. package/dist/use-debounce-Dg9zNz9U.d.mts +19 -0
  47. package/dist/use-debounce-Dg9zNz9U.d.mts.map +1 -0
  48. package/dist/utils/index.d.mts +3 -0
  49. package/dist/utils/index.mjs +4 -0
  50. package/package.json +128 -52
  51. package/LICENSE +0 -201
  52. package/README.md +0 -34
  53. package/dist/index.d.ts +0 -90
  54. package/dist/index.js +0 -3765
  55. package/src/styles/custom.css +0 -27
  56. package/src/styles/fonts.css +0 -51
  57. package/src/styles/root.css +0 -28
  58. package/src/styles/theme.css +0 -3
  59. package/src/styles/themes/alpha.css +0 -433
  60. package/src/styles/tokens/brand-tokens.css +0 -57
  61. package/src/styles/tokens/figma-tokens.css +0 -624
package/dist/index.mjs CHANGED
@@ -1,3719 +1,261 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
1
+ import './style.css';
2
+ import { n as __reExport, t as __exportAll } from "./chunk-CtajNgzt.mjs";
3
+ import { $ as SidebarGroupAction, $n as SheetClose, $t as FormSwitch, A as TaskPanel, An as DropdownMenuPortal, Ar as CalendarDayButton, At as getGutter, B as TaskQueueProvider, Bn as AvatarStack, Bt as useFormContext, C as localInputStringToUtc, Cn as DropzoneEmptyState, Cr as Card, Ct as startProgress, D as TaskQueueDropdown, Dn as DropdownMenuGroup, Dr as CardHeader, Dt as Col, E as zonedDateToUtcString, En as DropdownMenuContent, Er as CardFooter, Et as InputNumber, F as getContextLabel, Fn as DropdownMenuSub, Fr as badgeVariants, Ft as GRID_PREFIX, G as createOrgMetadata, Gn as Textarea, Gt as StepperControls, H as detectStorage, Hn as Autocomplete, Ht as useField, I as matchesCurrentScope, In as DropdownMenuSubContent, Ir as Alert, It as RESPONSIVE_ARRAY, J as TagsInput, Jn as TabsLinkTrigger, Jt as defineStepper, K as createProjectMetadata, Kn as Tabs, Kt as FormStep, L as useCurrentScope, Ln as DropdownMenuSubTrigger, Lr as AlertDescription, Lt as RESPONSIVE_MAP, M as TaskPanelCounter, Mn as DropdownMenuRadioItem, Mr as Button, Mt as registerMediaQuery, N as TaskPanelActions, Nn as DropdownMenuSeparator, Nr as buttonVariants, Nt as GRID_BREAKPOINTS, O as TaskSummaryDialog, On as DropdownMenuItem, Or as CardTitle, Ot as Row, P as TaskPanelHeader, Pn as DropdownMenuShortcut, Pr as Badge, Pt as GRID_COLUMNS, Q as SidebarGroup, Qn as Sheet, Qt as FormTextarea, R as useTasksWithLabels, Rn as DropdownMenuTrigger, Rr as AlertTitle, Rt as Form, S as getTimezoneOffset, Sn as DropzoneContent, Sr as Checkbox, St as configureProgress, T as utcToLocalInputString, Tn as DropdownMenuCheckboxItem, Tr as CardDescription, Tt as MoreActions, U as RedisTaskStorage, Un as LoaderOverlay, Ut as InputWithAddons, V as TaskQueue, Vn as avatarStackVariants, Vt as useFieldContext, W as LocalTaskStorage, Wn as Tooltip, Wt as StepperNavigation, X as SidebarContent, Xn as TabsTrigger, Xt as useWatch, Y as Sidebar, Yn as TabsList, Yt as FormWhen, Z as SidebarFooter, Zn as Switch, Zt as useWatchAll, _ as formatTimezoneLabel, _n as FormButton, _r as RadioGroup, _t as SidebarTrigger, a as formatDateForInput, an as FormRadioItem, ar as SheetTitle, at as SidebarMenu, b as getDefaultTimezoneOptions, bn as EmptyContent, br as Input, bt as NavMain, c as DEFAULT_PRESETS, cn as FormField, cr as SelectContent, ct as SidebarMenuButton, d as getPresetByShortcut, dn as FormDescription, dr as SelectLabel, dt as SidebarMenuSub, en as FormSubmit, er as SheetContent, et as SidebarGroupContent, f as getPresetRange, fn as FormCustom, fr as SelectScrollDownButton, ft as SidebarMenuSubButton, g as createTimezoneOption, gn as FormCheckbox, gr as SelectValue, gt as SidebarSeparator, h as CustomRangePanel, hn as Toaster, hr as SelectTrigger, ht as SidebarRail, i as TimeRangePicker, in as FormRadioGroup, ir as SheetOverlay, it as SidebarInset, j as TaskPanelItem, jn as DropdownMenuRadioGroup, jr as LinkButton, jt as getResponsiveValue, k as TaskQueueTrigger, kn as DropdownMenuLabel, kr as Calendar, kt as RowContext, l as getDefaultPreset, ln as FormError, lr as SelectGroup, lt as SidebarMenuItem, m as QuickRangesPanel, mn as useToast, mr as SelectSeparator, mt as SidebarProvider, n as ClientOnly, nn as FormSelectItem, nr as SheetFooter, nt as SidebarHeader, o as formatSingleTimeDisplay, on as FormInput, or as SheetTrigger, ot as SidebarMenuAction, p as TimezoneSelector, pn as FormCopyBox, pr as SelectScrollUpButton, pt as SidebarMenuSubItem, q as createUserMetadata, qn as TabsContent, qt as FormStepper, r as toApiTimeRange, rn as FormRoot, rr as SheetHeader, rt as SidebarInput, s as formatTimeRangeDisplay, sn as FormFieldArray, sr as Select, st as SidebarMenuBadge, t as ThemeScript, tn as FormSelect, tr as SheetDescription, tt as SidebarGroupLabel, u as getPresetByKey, un as FormDialog, ur as SelectItem, ut as SidebarMenuSkeleton, v as formatUtcForDisplay, vn as FormAutocomplete, vr as RadioGroupItem, vt as useSidebar, w as utcStringToZonedDate, wn as DropdownMenu, wr as CardContent, wt as stopProgress, x as getShortTimezoneDisplay, xn as Dropzone, xr as Dialog, xt as PageTitle, y as getBrowserTimezone, yn as FileInputButton, yr as Label, yt as AppSidebar, z as useTaskQueue, zn as CalendarDatePicker, zt as useStepper } from "./theme-script-B_TkiYs4.mjs";
4
+ import { n as SpinnerIcon, t as Icon } from "./icon-wrapper-BTllM5Re.mjs";
5
+ import { t as CloseIcon } from "./close.icon-DgjsP0sw.mjs";
6
+ import { n as toast, t as useCopyToClipboard } from "./use-copy-to-clipboard-D5U8bWsn.mjs";
7
+ import { n as useTheme, t as ThemeProvider } from "./theme.provider-DpFLwtHe.mjs";
8
+ import { t as components_exports } from "./components/index.mjs";
9
+ import { t as useDebounce } from "./use-debounce-BYB-jPeX.mjs";
10
+ import { t as DatumProvider } from "./datum.provider-D6VMjSV0.mjs";
11
+ import { cn } from "./utils/index.mjs";
32
12
 
33
- // ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
34
- function r(e) {
35
- var t, f, n = "";
36
- if ("string" == typeof e || "number" == typeof e) n += e;
37
- else if ("object" == typeof e) if (Array.isArray(e)) {
38
- var o = e.length;
39
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
40
- } else for (f in e) e[f] && (n && (n += " "), n += f);
41
- return n;
42
- }
43
- function clsx() {
44
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
45
- return n;
46
- }
13
+ export * from "@repo/shadcn/ui/breadcrumb"
47
14
 
48
- // ../../node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
49
- var concatArrays = (array1, array2) => {
50
- const combinedArray = new Array(array1.length + array2.length);
51
- for (let i = 0; i < array1.length; i++) {
52
- combinedArray[i] = array1[i];
53
- }
54
- for (let i = 0; i < array2.length; i++) {
55
- combinedArray[array1.length + i] = array2[i];
56
- }
57
- return combinedArray;
58
- };
59
- var createClassValidatorObject = (classGroupId, validator) => ({
60
- classGroupId,
61
- validator
62
- });
63
- var createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
64
- nextPart,
65
- validators,
66
- classGroupId
67
- });
68
- var CLASS_PART_SEPARATOR = "-";
69
- var EMPTY_CONFLICTS = [];
70
- var ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
71
- var createClassGroupUtils = (config) => {
72
- const classMap = createClassMap(config);
73
- const {
74
- conflictingClassGroups,
75
- conflictingClassGroupModifiers
76
- } = config;
77
- const getClassGroupId = (className) => {
78
- if (className.startsWith("[") && className.endsWith("]")) {
79
- return getGroupIdForArbitraryProperty(className);
80
- }
81
- const classParts = className.split(CLASS_PART_SEPARATOR);
82
- const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
83
- return getGroupRecursive(classParts, startIndex, classMap);
84
- };
85
- const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
86
- if (hasPostfixModifier) {
87
- const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
88
- const baseConflicts = conflictingClassGroups[classGroupId];
89
- if (modifierConflicts) {
90
- if (baseConflicts) {
91
- return concatArrays(baseConflicts, modifierConflicts);
92
- }
93
- return modifierConflicts;
94
- }
95
- return baseConflicts || EMPTY_CONFLICTS;
96
- }
97
- return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
98
- };
99
- return {
100
- getClassGroupId,
101
- getConflictingClassGroupIds
102
- };
103
- };
104
- var getGroupRecursive = (classParts, startIndex, classPartObject) => {
105
- const classPathsLength = classParts.length - startIndex;
106
- if (classPathsLength === 0) {
107
- return classPartObject.classGroupId;
108
- }
109
- const currentClassPart = classParts[startIndex];
110
- const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
111
- if (nextClassPartObject) {
112
- const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
113
- if (result) return result;
114
- }
115
- const validators = classPartObject.validators;
116
- if (validators === null) {
117
- return void 0;
118
- }
119
- const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
120
- const validatorsLength = validators.length;
121
- for (let i = 0; i < validatorsLength; i++) {
122
- const validatorObj = validators[i];
123
- if (validatorObj.validator(classRest)) {
124
- return validatorObj.classGroupId;
125
- }
126
- }
127
- return void 0;
128
- };
129
- var getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
130
- const content = className.slice(1, -1);
131
- const colonIndex = content.indexOf(":");
132
- const property = content.slice(0, colonIndex);
133
- return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
134
- })();
135
- var createClassMap = (config) => {
136
- const {
137
- theme,
138
- classGroups
139
- } = config;
140
- return processClassGroups(classGroups, theme);
141
- };
142
- var processClassGroups = (classGroups, theme) => {
143
- const classMap = createClassPartObject();
144
- for (const classGroupId in classGroups) {
145
- const group = classGroups[classGroupId];
146
- processClassesRecursively(group, classMap, classGroupId, theme);
147
- }
148
- return classMap;
149
- };
150
- var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
151
- const len = classGroup.length;
152
- for (let i = 0; i < len; i++) {
153
- const classDefinition = classGroup[i];
154
- processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
155
- }
156
- };
157
- var processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
158
- if (typeof classDefinition === "string") {
159
- processStringDefinition(classDefinition, classPartObject, classGroupId);
160
- return;
161
- }
162
- if (typeof classDefinition === "function") {
163
- processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
164
- return;
165
- }
166
- processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
167
- };
168
- var processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
169
- const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
170
- classPartObjectToEdit.classGroupId = classGroupId;
171
- };
172
- var processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
173
- if (isThemeGetter(classDefinition)) {
174
- processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
175
- return;
176
- }
177
- if (classPartObject.validators === null) {
178
- classPartObject.validators = [];
179
- }
180
- classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
181
- };
182
- var processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
183
- const entries = Object.entries(classDefinition);
184
- const len = entries.length;
185
- for (let i = 0; i < len; i++) {
186
- const [key, value] = entries[i];
187
- processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
188
- }
189
- };
190
- var getPart = (classPartObject, path) => {
191
- let current = classPartObject;
192
- const parts = path.split(CLASS_PART_SEPARATOR);
193
- const len = parts.length;
194
- for (let i = 0; i < len; i++) {
195
- const part = parts[i];
196
- let next = current.nextPart.get(part);
197
- if (!next) {
198
- next = createClassPartObject();
199
- current.nextPart.set(part, next);
200
- }
201
- current = next;
202
- }
203
- return current;
204
- };
205
- var isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
206
- var createLruCache = (maxCacheSize) => {
207
- if (maxCacheSize < 1) {
208
- return {
209
- get: () => void 0,
210
- set: () => {
211
- }
212
- };
213
- }
214
- let cacheSize = 0;
215
- let cache = /* @__PURE__ */ Object.create(null);
216
- let previousCache = /* @__PURE__ */ Object.create(null);
217
- const update = (key, value) => {
218
- cache[key] = value;
219
- cacheSize++;
220
- if (cacheSize > maxCacheSize) {
221
- cacheSize = 0;
222
- previousCache = cache;
223
- cache = /* @__PURE__ */ Object.create(null);
224
- }
225
- };
226
- return {
227
- get(key) {
228
- let value = cache[key];
229
- if (value !== void 0) {
230
- return value;
231
- }
232
- if ((value = previousCache[key]) !== void 0) {
233
- update(key, value);
234
- return value;
235
- }
236
- },
237
- set(key, value) {
238
- if (key in cache) {
239
- cache[key] = value;
240
- } else {
241
- update(key, value);
242
- }
243
- }
244
- };
245
- };
246
- var IMPORTANT_MODIFIER = "!";
247
- var MODIFIER_SEPARATOR = ":";
248
- var EMPTY_MODIFIERS = [];
249
- var createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
250
- modifiers,
251
- hasImportantModifier,
252
- baseClassName,
253
- maybePostfixModifierPosition,
254
- isExternal
255
- });
256
- var createParseClassName = (config) => {
257
- const {
258
- prefix,
259
- experimentalParseClassName
260
- } = config;
261
- let parseClassName = (className) => {
262
- const modifiers = [];
263
- let bracketDepth = 0;
264
- let parenDepth = 0;
265
- let modifierStart = 0;
266
- let postfixModifierPosition;
267
- const len = className.length;
268
- for (let index = 0; index < len; index++) {
269
- const currentCharacter = className[index];
270
- if (bracketDepth === 0 && parenDepth === 0) {
271
- if (currentCharacter === MODIFIER_SEPARATOR) {
272
- modifiers.push(className.slice(modifierStart, index));
273
- modifierStart = index + 1;
274
- continue;
275
- }
276
- if (currentCharacter === "/") {
277
- postfixModifierPosition = index;
278
- continue;
279
- }
280
- }
281
- if (currentCharacter === "[") bracketDepth++;
282
- else if (currentCharacter === "]") bracketDepth--;
283
- else if (currentCharacter === "(") parenDepth++;
284
- else if (currentCharacter === ")") parenDepth--;
285
- }
286
- const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
287
- let baseClassName = baseClassNameWithImportantModifier;
288
- let hasImportantModifier = false;
289
- if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
290
- baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
291
- hasImportantModifier = true;
292
- } else if (
293
- /**
294
- * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
295
- * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
296
- */
297
- baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)
298
- ) {
299
- baseClassName = baseClassNameWithImportantModifier.slice(1);
300
- hasImportantModifier = true;
301
- }
302
- const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
303
- return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
304
- };
305
- if (prefix) {
306
- const fullPrefix = prefix + MODIFIER_SEPARATOR;
307
- const parseClassNameOriginal = parseClassName;
308
- parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
309
- }
310
- if (experimentalParseClassName) {
311
- const parseClassNameOriginal = parseClassName;
312
- parseClassName = (className) => experimentalParseClassName({
313
- className,
314
- parseClassName: parseClassNameOriginal
315
- });
316
- }
317
- return parseClassName;
318
- };
319
- var createSortModifiers = (config) => {
320
- const modifierWeights = /* @__PURE__ */ new Map();
321
- config.orderSensitiveModifiers.forEach((mod, index) => {
322
- modifierWeights.set(mod, 1e6 + index);
323
- });
324
- return (modifiers) => {
325
- const result = [];
326
- let currentSegment = [];
327
- for (let i = 0; i < modifiers.length; i++) {
328
- const modifier = modifiers[i];
329
- const isArbitrary = modifier[0] === "[";
330
- const isOrderSensitive = modifierWeights.has(modifier);
331
- if (isArbitrary || isOrderSensitive) {
332
- if (currentSegment.length > 0) {
333
- currentSegment.sort();
334
- result.push(...currentSegment);
335
- currentSegment = [];
336
- }
337
- result.push(modifier);
338
- } else {
339
- currentSegment.push(modifier);
340
- }
341
- }
342
- if (currentSegment.length > 0) {
343
- currentSegment.sort();
344
- result.push(...currentSegment);
345
- }
346
- return result;
347
- };
348
- };
349
- var createConfigUtils = (config) => __spreadValues({
350
- cache: createLruCache(config.cacheSize),
351
- parseClassName: createParseClassName(config),
352
- sortModifiers: createSortModifiers(config)
353
- }, createClassGroupUtils(config));
354
- var SPLIT_CLASSES_REGEX = /\s+/;
355
- var mergeClassList = (classList, configUtils) => {
356
- const {
357
- parseClassName,
358
- getClassGroupId,
359
- getConflictingClassGroupIds,
360
- sortModifiers
361
- } = configUtils;
362
- const classGroupsInConflict = [];
363
- const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
364
- let result = "";
365
- for (let index = classNames.length - 1; index >= 0; index -= 1) {
366
- const originalClassName = classNames[index];
367
- const {
368
- isExternal,
369
- modifiers,
370
- hasImportantModifier,
371
- baseClassName,
372
- maybePostfixModifierPosition
373
- } = parseClassName(originalClassName);
374
- if (isExternal) {
375
- result = originalClassName + (result.length > 0 ? " " + result : result);
376
- continue;
377
- }
378
- let hasPostfixModifier = !!maybePostfixModifierPosition;
379
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
380
- if (!classGroupId) {
381
- if (!hasPostfixModifier) {
382
- result = originalClassName + (result.length > 0 ? " " + result : result);
383
- continue;
384
- }
385
- classGroupId = getClassGroupId(baseClassName);
386
- if (!classGroupId) {
387
- result = originalClassName + (result.length > 0 ? " " + result : result);
388
- continue;
389
- }
390
- hasPostfixModifier = false;
391
- }
392
- const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
393
- const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
394
- const classId = modifierId + classGroupId;
395
- if (classGroupsInConflict.indexOf(classId) > -1) {
396
- continue;
397
- }
398
- classGroupsInConflict.push(classId);
399
- const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
400
- for (let i = 0; i < conflictGroups.length; ++i) {
401
- const group = conflictGroups[i];
402
- classGroupsInConflict.push(modifierId + group);
403
- }
404
- result = originalClassName + (result.length > 0 ? " " + result : result);
405
- }
406
- return result;
407
- };
408
- var twJoin = (...classLists) => {
409
- let index = 0;
410
- let argument;
411
- let resolvedValue;
412
- let string = "";
413
- while (index < classLists.length) {
414
- if (argument = classLists[index++]) {
415
- if (resolvedValue = toValue(argument)) {
416
- string && (string += " ");
417
- string += resolvedValue;
418
- }
419
- }
420
- }
421
- return string;
422
- };
423
- var toValue = (mix) => {
424
- if (typeof mix === "string") {
425
- return mix;
426
- }
427
- let resolvedValue;
428
- let string = "";
429
- for (let k = 0; k < mix.length; k++) {
430
- if (mix[k]) {
431
- if (resolvedValue = toValue(mix[k])) {
432
- string && (string += " ");
433
- string += resolvedValue;
434
- }
435
- }
436
- }
437
- return string;
438
- };
439
- var createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
440
- let configUtils;
441
- let cacheGet;
442
- let cacheSet;
443
- let functionToCall;
444
- const initTailwindMerge = (classList) => {
445
- const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
446
- configUtils = createConfigUtils(config);
447
- cacheGet = configUtils.cache.get;
448
- cacheSet = configUtils.cache.set;
449
- functionToCall = tailwindMerge;
450
- return tailwindMerge(classList);
451
- };
452
- const tailwindMerge = (classList) => {
453
- const cachedResult = cacheGet(classList);
454
- if (cachedResult) {
455
- return cachedResult;
456
- }
457
- const result = mergeClassList(classList, configUtils);
458
- cacheSet(classList, result);
459
- return result;
460
- };
461
- functionToCall = initTailwindMerge;
462
- return (...args) => functionToCall(twJoin(...args));
463
- };
464
- var fallbackThemeArr = [];
465
- var fromTheme = (key) => {
466
- const themeGetter = (theme) => theme[key] || fallbackThemeArr;
467
- themeGetter.isThemeGetter = true;
468
- return themeGetter;
469
- };
470
- var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
471
- var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
472
- var fractionRegex = /^\d+\/\d+$/;
473
- var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
474
- 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$/;
475
- var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
476
- var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
477
- var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
478
- var isFraction = (value) => fractionRegex.test(value);
479
- var isNumber = (value) => !!value && !Number.isNaN(Number(value));
480
- var isInteger = (value) => !!value && Number.isInteger(Number(value));
481
- var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
482
- var isTshirtSize = (value) => tshirtUnitRegex.test(value);
483
- var isAny = () => true;
484
- var isLengthOnly = (value) => (
485
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
486
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
487
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
488
- lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
489
- );
490
- var isNever = () => false;
491
- var isShadow = (value) => shadowRegex.test(value);
492
- var isImage = (value) => imageRegex.test(value);
493
- var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
494
- var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
495
- var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
496
- var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
497
- var isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
498
- var isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
499
- var isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
500
- var isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
501
- var isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
502
- var isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
503
- var isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
504
- var isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
505
- var isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
506
- var isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
507
- var isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
508
- var getIsArbitraryValue = (value, testLabel, testValue) => {
509
- const result = arbitraryValueRegex.exec(value);
510
- if (result) {
511
- if (result[1]) {
512
- return testLabel(result[1]);
513
- }
514
- return testValue(result[2]);
515
- }
516
- return false;
517
- };
518
- var getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
519
- const result = arbitraryVariableRegex.exec(value);
520
- if (result) {
521
- if (result[1]) {
522
- return testLabel(result[1]);
523
- }
524
- return shouldMatchNoLabel;
525
- }
526
- return false;
527
- };
528
- var isLabelPosition = (label) => label === "position" || label === "percentage";
529
- var isLabelImage = (label) => label === "image" || label === "url";
530
- var isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
531
- var isLabelLength = (label) => label === "length";
532
- var isLabelNumber = (label) => label === "number";
533
- var isLabelFamilyName = (label) => label === "family-name";
534
- var isLabelShadow = (label) => label === "shadow";
535
- var getDefaultConfig = () => {
536
- const themeColor = fromTheme("color");
537
- const themeFont = fromTheme("font");
538
- const themeText = fromTheme("text");
539
- const themeFontWeight = fromTheme("font-weight");
540
- const themeTracking = fromTheme("tracking");
541
- const themeLeading = fromTheme("leading");
542
- const themeBreakpoint = fromTheme("breakpoint");
543
- const themeContainer = fromTheme("container");
544
- const themeSpacing = fromTheme("spacing");
545
- const themeRadius = fromTheme("radius");
546
- const themeShadow = fromTheme("shadow");
547
- const themeInsetShadow = fromTheme("inset-shadow");
548
- const themeTextShadow = fromTheme("text-shadow");
549
- const themeDropShadow = fromTheme("drop-shadow");
550
- const themeBlur = fromTheme("blur");
551
- const themePerspective = fromTheme("perspective");
552
- const themeAspect = fromTheme("aspect");
553
- const themeEase = fromTheme("ease");
554
- const themeAnimate = fromTheme("animate");
555
- const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
556
- const scalePosition = () => [
557
- "center",
558
- "top",
559
- "bottom",
560
- "left",
561
- "right",
562
- "top-left",
563
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
564
- "left-top",
565
- "top-right",
566
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
567
- "right-top",
568
- "bottom-right",
569
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
570
- "right-bottom",
571
- "bottom-left",
572
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
573
- "left-bottom"
574
- ];
575
- const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
576
- const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
577
- const scaleOverscroll = () => ["auto", "contain", "none"];
578
- const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
579
- const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
580
- const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
581
- const scaleGridColRowStartAndEnd = () => ["auto", {
582
- span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
583
- }, isInteger, isArbitraryVariable, isArbitraryValue];
584
- const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
585
- const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
586
- const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
587
- const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
588
- const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
589
- const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
590
- const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
591
- const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
592
- position: [isArbitraryVariable, isArbitraryValue]
593
- }];
594
- const scaleBgRepeat = () => ["no-repeat", {
595
- repeat: ["", "x", "y", "space", "round"]
596
- }];
597
- const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
598
- size: [isArbitraryVariable, isArbitraryValue]
599
- }];
600
- const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
601
- const scaleRadius = () => [
602
- // Deprecated since Tailwind CSS v4.0.0
603
- "",
604
- "none",
605
- "full",
606
- themeRadius,
607
- isArbitraryVariable,
608
- isArbitraryValue
609
- ];
610
- const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
611
- const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
612
- const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
613
- const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
614
- const scaleBlur = () => [
615
- // Deprecated since Tailwind CSS v4.0.0
616
- "",
617
- "none",
618
- themeBlur,
619
- isArbitraryVariable,
620
- isArbitraryValue
621
- ];
622
- const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
623
- const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
624
- const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
625
- const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
626
- return {
627
- cacheSize: 500,
628
- theme: {
629
- animate: ["spin", "ping", "pulse", "bounce"],
630
- aspect: ["video"],
631
- blur: [isTshirtSize],
632
- breakpoint: [isTshirtSize],
633
- color: [isAny],
634
- container: [isTshirtSize],
635
- "drop-shadow": [isTshirtSize],
636
- ease: ["in", "out", "in-out"],
637
- font: [isAnyNonArbitrary],
638
- "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
639
- "inset-shadow": [isTshirtSize],
640
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
641
- perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
642
- radius: [isTshirtSize],
643
- shadow: [isTshirtSize],
644
- spacing: ["px", isNumber],
645
- text: [isTshirtSize],
646
- "text-shadow": [isTshirtSize],
647
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
648
- },
649
- classGroups: {
650
- // --------------
651
- // --- Layout ---
652
- // --------------
653
- /**
654
- * Aspect Ratio
655
- * @see https://tailwindcss.com/docs/aspect-ratio
656
- */
657
- aspect: [{
658
- aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
659
- }],
660
- /**
661
- * Container
662
- * @see https://tailwindcss.com/docs/container
663
- * @deprecated since Tailwind CSS v4.0.0
664
- */
665
- container: ["container"],
666
- /**
667
- * Columns
668
- * @see https://tailwindcss.com/docs/columns
669
- */
670
- columns: [{
671
- columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
672
- }],
673
- /**
674
- * Break After
675
- * @see https://tailwindcss.com/docs/break-after
676
- */
677
- "break-after": [{
678
- "break-after": scaleBreak()
679
- }],
680
- /**
681
- * Break Before
682
- * @see https://tailwindcss.com/docs/break-before
683
- */
684
- "break-before": [{
685
- "break-before": scaleBreak()
686
- }],
687
- /**
688
- * Break Inside
689
- * @see https://tailwindcss.com/docs/break-inside
690
- */
691
- "break-inside": [{
692
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
693
- }],
694
- /**
695
- * Box Decoration Break
696
- * @see https://tailwindcss.com/docs/box-decoration-break
697
- */
698
- "box-decoration": [{
699
- "box-decoration": ["slice", "clone"]
700
- }],
701
- /**
702
- * Box Sizing
703
- * @see https://tailwindcss.com/docs/box-sizing
704
- */
705
- box: [{
706
- box: ["border", "content"]
707
- }],
708
- /**
709
- * Display
710
- * @see https://tailwindcss.com/docs/display
711
- */
712
- 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"],
713
- /**
714
- * Screen Reader Only
715
- * @see https://tailwindcss.com/docs/display#screen-reader-only
716
- */
717
- sr: ["sr-only", "not-sr-only"],
718
- /**
719
- * Floats
720
- * @see https://tailwindcss.com/docs/float
721
- */
722
- float: [{
723
- float: ["right", "left", "none", "start", "end"]
724
- }],
725
- /**
726
- * Clear
727
- * @see https://tailwindcss.com/docs/clear
728
- */
729
- clear: [{
730
- clear: ["left", "right", "both", "none", "start", "end"]
731
- }],
732
- /**
733
- * Isolation
734
- * @see https://tailwindcss.com/docs/isolation
735
- */
736
- isolation: ["isolate", "isolation-auto"],
737
- /**
738
- * Object Fit
739
- * @see https://tailwindcss.com/docs/object-fit
740
- */
741
- "object-fit": [{
742
- object: ["contain", "cover", "fill", "none", "scale-down"]
743
- }],
744
- /**
745
- * Object Position
746
- * @see https://tailwindcss.com/docs/object-position
747
- */
748
- "object-position": [{
749
- object: scalePositionWithArbitrary()
750
- }],
751
- /**
752
- * Overflow
753
- * @see https://tailwindcss.com/docs/overflow
754
- */
755
- overflow: [{
756
- overflow: scaleOverflow()
757
- }],
758
- /**
759
- * Overflow X
760
- * @see https://tailwindcss.com/docs/overflow
761
- */
762
- "overflow-x": [{
763
- "overflow-x": scaleOverflow()
764
- }],
765
- /**
766
- * Overflow Y
767
- * @see https://tailwindcss.com/docs/overflow
768
- */
769
- "overflow-y": [{
770
- "overflow-y": scaleOverflow()
771
- }],
772
- /**
773
- * Overscroll Behavior
774
- * @see https://tailwindcss.com/docs/overscroll-behavior
775
- */
776
- overscroll: [{
777
- overscroll: scaleOverscroll()
778
- }],
779
- /**
780
- * Overscroll Behavior X
781
- * @see https://tailwindcss.com/docs/overscroll-behavior
782
- */
783
- "overscroll-x": [{
784
- "overscroll-x": scaleOverscroll()
785
- }],
786
- /**
787
- * Overscroll Behavior Y
788
- * @see https://tailwindcss.com/docs/overscroll-behavior
789
- */
790
- "overscroll-y": [{
791
- "overscroll-y": scaleOverscroll()
792
- }],
793
- /**
794
- * Position
795
- * @see https://tailwindcss.com/docs/position
796
- */
797
- position: ["static", "fixed", "absolute", "relative", "sticky"],
798
- /**
799
- * Top / Right / Bottom / Left
800
- * @see https://tailwindcss.com/docs/top-right-bottom-left
801
- */
802
- inset: [{
803
- inset: scaleInset()
804
- }],
805
- /**
806
- * Right / Left
807
- * @see https://tailwindcss.com/docs/top-right-bottom-left
808
- */
809
- "inset-x": [{
810
- "inset-x": scaleInset()
811
- }],
812
- /**
813
- * Top / Bottom
814
- * @see https://tailwindcss.com/docs/top-right-bottom-left
815
- */
816
- "inset-y": [{
817
- "inset-y": scaleInset()
818
- }],
819
- /**
820
- * Start
821
- * @see https://tailwindcss.com/docs/top-right-bottom-left
822
- */
823
- start: [{
824
- start: scaleInset()
825
- }],
826
- /**
827
- * End
828
- * @see https://tailwindcss.com/docs/top-right-bottom-left
829
- */
830
- end: [{
831
- end: scaleInset()
832
- }],
833
- /**
834
- * Top
835
- * @see https://tailwindcss.com/docs/top-right-bottom-left
836
- */
837
- top: [{
838
- top: scaleInset()
839
- }],
840
- /**
841
- * Right
842
- * @see https://tailwindcss.com/docs/top-right-bottom-left
843
- */
844
- right: [{
845
- right: scaleInset()
846
- }],
847
- /**
848
- * Bottom
849
- * @see https://tailwindcss.com/docs/top-right-bottom-left
850
- */
851
- bottom: [{
852
- bottom: scaleInset()
853
- }],
854
- /**
855
- * Left
856
- * @see https://tailwindcss.com/docs/top-right-bottom-left
857
- */
858
- left: [{
859
- left: scaleInset()
860
- }],
861
- /**
862
- * Visibility
863
- * @see https://tailwindcss.com/docs/visibility
864
- */
865
- visibility: ["visible", "invisible", "collapse"],
866
- /**
867
- * Z-Index
868
- * @see https://tailwindcss.com/docs/z-index
869
- */
870
- z: [{
871
- z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
872
- }],
873
- // ------------------------
874
- // --- Flexbox and Grid ---
875
- // ------------------------
876
- /**
877
- * Flex Basis
878
- * @see https://tailwindcss.com/docs/flex-basis
879
- */
880
- basis: [{
881
- basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
882
- }],
883
- /**
884
- * Flex Direction
885
- * @see https://tailwindcss.com/docs/flex-direction
886
- */
887
- "flex-direction": [{
888
- flex: ["row", "row-reverse", "col", "col-reverse"]
889
- }],
890
- /**
891
- * Flex Wrap
892
- * @see https://tailwindcss.com/docs/flex-wrap
893
- */
894
- "flex-wrap": [{
895
- flex: ["nowrap", "wrap", "wrap-reverse"]
896
- }],
897
- /**
898
- * Flex
899
- * @see https://tailwindcss.com/docs/flex
900
- */
901
- flex: [{
902
- flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
903
- }],
904
- /**
905
- * Flex Grow
906
- * @see https://tailwindcss.com/docs/flex-grow
907
- */
908
- grow: [{
909
- grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
910
- }],
911
- /**
912
- * Flex Shrink
913
- * @see https://tailwindcss.com/docs/flex-shrink
914
- */
915
- shrink: [{
916
- shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
917
- }],
918
- /**
919
- * Order
920
- * @see https://tailwindcss.com/docs/order
921
- */
922
- order: [{
923
- order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
924
- }],
925
- /**
926
- * Grid Template Columns
927
- * @see https://tailwindcss.com/docs/grid-template-columns
928
- */
929
- "grid-cols": [{
930
- "grid-cols": scaleGridTemplateColsRows()
931
- }],
932
- /**
933
- * Grid Column Start / End
934
- * @see https://tailwindcss.com/docs/grid-column
935
- */
936
- "col-start-end": [{
937
- col: scaleGridColRowStartAndEnd()
938
- }],
939
- /**
940
- * Grid Column Start
941
- * @see https://tailwindcss.com/docs/grid-column
942
- */
943
- "col-start": [{
944
- "col-start": scaleGridColRowStartOrEnd()
945
- }],
946
- /**
947
- * Grid Column End
948
- * @see https://tailwindcss.com/docs/grid-column
949
- */
950
- "col-end": [{
951
- "col-end": scaleGridColRowStartOrEnd()
952
- }],
953
- /**
954
- * Grid Template Rows
955
- * @see https://tailwindcss.com/docs/grid-template-rows
956
- */
957
- "grid-rows": [{
958
- "grid-rows": scaleGridTemplateColsRows()
959
- }],
960
- /**
961
- * Grid Row Start / End
962
- * @see https://tailwindcss.com/docs/grid-row
963
- */
964
- "row-start-end": [{
965
- row: scaleGridColRowStartAndEnd()
966
- }],
967
- /**
968
- * Grid Row Start
969
- * @see https://tailwindcss.com/docs/grid-row
970
- */
971
- "row-start": [{
972
- "row-start": scaleGridColRowStartOrEnd()
973
- }],
974
- /**
975
- * Grid Row End
976
- * @see https://tailwindcss.com/docs/grid-row
977
- */
978
- "row-end": [{
979
- "row-end": scaleGridColRowStartOrEnd()
980
- }],
981
- /**
982
- * Grid Auto Flow
983
- * @see https://tailwindcss.com/docs/grid-auto-flow
984
- */
985
- "grid-flow": [{
986
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
987
- }],
988
- /**
989
- * Grid Auto Columns
990
- * @see https://tailwindcss.com/docs/grid-auto-columns
991
- */
992
- "auto-cols": [{
993
- "auto-cols": scaleGridAutoColsRows()
994
- }],
995
- /**
996
- * Grid Auto Rows
997
- * @see https://tailwindcss.com/docs/grid-auto-rows
998
- */
999
- "auto-rows": [{
1000
- "auto-rows": scaleGridAutoColsRows()
1001
- }],
1002
- /**
1003
- * Gap
1004
- * @see https://tailwindcss.com/docs/gap
1005
- */
1006
- gap: [{
1007
- gap: scaleUnambiguousSpacing()
1008
- }],
1009
- /**
1010
- * Gap X
1011
- * @see https://tailwindcss.com/docs/gap
1012
- */
1013
- "gap-x": [{
1014
- "gap-x": scaleUnambiguousSpacing()
1015
- }],
1016
- /**
1017
- * Gap Y
1018
- * @see https://tailwindcss.com/docs/gap
1019
- */
1020
- "gap-y": [{
1021
- "gap-y": scaleUnambiguousSpacing()
1022
- }],
1023
- /**
1024
- * Justify Content
1025
- * @see https://tailwindcss.com/docs/justify-content
1026
- */
1027
- "justify-content": [{
1028
- justify: [...scaleAlignPrimaryAxis(), "normal"]
1029
- }],
1030
- /**
1031
- * Justify Items
1032
- * @see https://tailwindcss.com/docs/justify-items
1033
- */
1034
- "justify-items": [{
1035
- "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
1036
- }],
1037
- /**
1038
- * Justify Self
1039
- * @see https://tailwindcss.com/docs/justify-self
1040
- */
1041
- "justify-self": [{
1042
- "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
1043
- }],
1044
- /**
1045
- * Align Content
1046
- * @see https://tailwindcss.com/docs/align-content
1047
- */
1048
- "align-content": [{
1049
- content: ["normal", ...scaleAlignPrimaryAxis()]
1050
- }],
1051
- /**
1052
- * Align Items
1053
- * @see https://tailwindcss.com/docs/align-items
1054
- */
1055
- "align-items": [{
1056
- items: [...scaleAlignSecondaryAxis(), {
1057
- baseline: ["", "last"]
1058
- }]
1059
- }],
1060
- /**
1061
- * Align Self
1062
- * @see https://tailwindcss.com/docs/align-self
1063
- */
1064
- "align-self": [{
1065
- self: ["auto", ...scaleAlignSecondaryAxis(), {
1066
- baseline: ["", "last"]
1067
- }]
1068
- }],
1069
- /**
1070
- * Place Content
1071
- * @see https://tailwindcss.com/docs/place-content
1072
- */
1073
- "place-content": [{
1074
- "place-content": scaleAlignPrimaryAxis()
1075
- }],
1076
- /**
1077
- * Place Items
1078
- * @see https://tailwindcss.com/docs/place-items
1079
- */
1080
- "place-items": [{
1081
- "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
1082
- }],
1083
- /**
1084
- * Place Self
1085
- * @see https://tailwindcss.com/docs/place-self
1086
- */
1087
- "place-self": [{
1088
- "place-self": ["auto", ...scaleAlignSecondaryAxis()]
1089
- }],
1090
- // Spacing
1091
- /**
1092
- * Padding
1093
- * @see https://tailwindcss.com/docs/padding
1094
- */
1095
- p: [{
1096
- p: scaleUnambiguousSpacing()
1097
- }],
1098
- /**
1099
- * Padding X
1100
- * @see https://tailwindcss.com/docs/padding
1101
- */
1102
- px: [{
1103
- px: scaleUnambiguousSpacing()
1104
- }],
1105
- /**
1106
- * Padding Y
1107
- * @see https://tailwindcss.com/docs/padding
1108
- */
1109
- py: [{
1110
- py: scaleUnambiguousSpacing()
1111
- }],
1112
- /**
1113
- * Padding Start
1114
- * @see https://tailwindcss.com/docs/padding
1115
- */
1116
- ps: [{
1117
- ps: scaleUnambiguousSpacing()
1118
- }],
1119
- /**
1120
- * Padding End
1121
- * @see https://tailwindcss.com/docs/padding
1122
- */
1123
- pe: [{
1124
- pe: scaleUnambiguousSpacing()
1125
- }],
1126
- /**
1127
- * Padding Top
1128
- * @see https://tailwindcss.com/docs/padding
1129
- */
1130
- pt: [{
1131
- pt: scaleUnambiguousSpacing()
1132
- }],
1133
- /**
1134
- * Padding Right
1135
- * @see https://tailwindcss.com/docs/padding
1136
- */
1137
- pr: [{
1138
- pr: scaleUnambiguousSpacing()
1139
- }],
1140
- /**
1141
- * Padding Bottom
1142
- * @see https://tailwindcss.com/docs/padding
1143
- */
1144
- pb: [{
1145
- pb: scaleUnambiguousSpacing()
1146
- }],
1147
- /**
1148
- * Padding Left
1149
- * @see https://tailwindcss.com/docs/padding
1150
- */
1151
- pl: [{
1152
- pl: scaleUnambiguousSpacing()
1153
- }],
1154
- /**
1155
- * Margin
1156
- * @see https://tailwindcss.com/docs/margin
1157
- */
1158
- m: [{
1159
- m: scaleMargin()
1160
- }],
1161
- /**
1162
- * Margin X
1163
- * @see https://tailwindcss.com/docs/margin
1164
- */
1165
- mx: [{
1166
- mx: scaleMargin()
1167
- }],
1168
- /**
1169
- * Margin Y
1170
- * @see https://tailwindcss.com/docs/margin
1171
- */
1172
- my: [{
1173
- my: scaleMargin()
1174
- }],
1175
- /**
1176
- * Margin Start
1177
- * @see https://tailwindcss.com/docs/margin
1178
- */
1179
- ms: [{
1180
- ms: scaleMargin()
1181
- }],
1182
- /**
1183
- * Margin End
1184
- * @see https://tailwindcss.com/docs/margin
1185
- */
1186
- me: [{
1187
- me: scaleMargin()
1188
- }],
1189
- /**
1190
- * Margin Top
1191
- * @see https://tailwindcss.com/docs/margin
1192
- */
1193
- mt: [{
1194
- mt: scaleMargin()
1195
- }],
1196
- /**
1197
- * Margin Right
1198
- * @see https://tailwindcss.com/docs/margin
1199
- */
1200
- mr: [{
1201
- mr: scaleMargin()
1202
- }],
1203
- /**
1204
- * Margin Bottom
1205
- * @see https://tailwindcss.com/docs/margin
1206
- */
1207
- mb: [{
1208
- mb: scaleMargin()
1209
- }],
1210
- /**
1211
- * Margin Left
1212
- * @see https://tailwindcss.com/docs/margin
1213
- */
1214
- ml: [{
1215
- ml: scaleMargin()
1216
- }],
1217
- /**
1218
- * Space Between X
1219
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1220
- */
1221
- "space-x": [{
1222
- "space-x": scaleUnambiguousSpacing()
1223
- }],
1224
- /**
1225
- * Space Between X Reverse
1226
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1227
- */
1228
- "space-x-reverse": ["space-x-reverse"],
1229
- /**
1230
- * Space Between Y
1231
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1232
- */
1233
- "space-y": [{
1234
- "space-y": scaleUnambiguousSpacing()
1235
- }],
1236
- /**
1237
- * Space Between Y Reverse
1238
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1239
- */
1240
- "space-y-reverse": ["space-y-reverse"],
1241
- // --------------
1242
- // --- Sizing ---
1243
- // --------------
1244
- /**
1245
- * Size
1246
- * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1247
- */
1248
- size: [{
1249
- size: scaleSizing()
1250
- }],
1251
- /**
1252
- * Width
1253
- * @see https://tailwindcss.com/docs/width
1254
- */
1255
- w: [{
1256
- w: [themeContainer, "screen", ...scaleSizing()]
1257
- }],
1258
- /**
1259
- * Min-Width
1260
- * @see https://tailwindcss.com/docs/min-width
1261
- */
1262
- "min-w": [{
1263
- "min-w": [
1264
- themeContainer,
1265
- "screen",
1266
- /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1267
- "none",
1268
- ...scaleSizing()
1269
- ]
1270
- }],
1271
- /**
1272
- * Max-Width
1273
- * @see https://tailwindcss.com/docs/max-width
1274
- */
1275
- "max-w": [{
1276
- "max-w": [
1277
- themeContainer,
1278
- "screen",
1279
- "none",
1280
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1281
- "prose",
1282
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1283
- {
1284
- screen: [themeBreakpoint]
1285
- },
1286
- ...scaleSizing()
1287
- ]
1288
- }],
1289
- /**
1290
- * Height
1291
- * @see https://tailwindcss.com/docs/height
1292
- */
1293
- h: [{
1294
- h: ["screen", "lh", ...scaleSizing()]
1295
- }],
1296
- /**
1297
- * Min-Height
1298
- * @see https://tailwindcss.com/docs/min-height
1299
- */
1300
- "min-h": [{
1301
- "min-h": ["screen", "lh", "none", ...scaleSizing()]
1302
- }],
1303
- /**
1304
- * Max-Height
1305
- * @see https://tailwindcss.com/docs/max-height
1306
- */
1307
- "max-h": [{
1308
- "max-h": ["screen", "lh", ...scaleSizing()]
1309
- }],
1310
- // ------------------
1311
- // --- Typography ---
1312
- // ------------------
1313
- /**
1314
- * Font Size
1315
- * @see https://tailwindcss.com/docs/font-size
1316
- */
1317
- "font-size": [{
1318
- text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
1319
- }],
1320
- /**
1321
- * Font Smoothing
1322
- * @see https://tailwindcss.com/docs/font-smoothing
1323
- */
1324
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
1325
- /**
1326
- * Font Style
1327
- * @see https://tailwindcss.com/docs/font-style
1328
- */
1329
- "font-style": ["italic", "not-italic"],
1330
- /**
1331
- * Font Weight
1332
- * @see https://tailwindcss.com/docs/font-weight
1333
- */
1334
- "font-weight": [{
1335
- font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
1336
- }],
1337
- /**
1338
- * Font Stretch
1339
- * @see https://tailwindcss.com/docs/font-stretch
1340
- */
1341
- "font-stretch": [{
1342
- "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
1343
- }],
1344
- /**
1345
- * Font Family
1346
- * @see https://tailwindcss.com/docs/font-family
1347
- */
1348
- "font-family": [{
1349
- font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
1350
- }],
1351
- /**
1352
- * Font Variant Numeric
1353
- * @see https://tailwindcss.com/docs/font-variant-numeric
1354
- */
1355
- "fvn-normal": ["normal-nums"],
1356
- /**
1357
- * Font Variant Numeric
1358
- * @see https://tailwindcss.com/docs/font-variant-numeric
1359
- */
1360
- "fvn-ordinal": ["ordinal"],
1361
- /**
1362
- * Font Variant Numeric
1363
- * @see https://tailwindcss.com/docs/font-variant-numeric
1364
- */
1365
- "fvn-slashed-zero": ["slashed-zero"],
1366
- /**
1367
- * Font Variant Numeric
1368
- * @see https://tailwindcss.com/docs/font-variant-numeric
1369
- */
1370
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
1371
- /**
1372
- * Font Variant Numeric
1373
- * @see https://tailwindcss.com/docs/font-variant-numeric
1374
- */
1375
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
1376
- /**
1377
- * Font Variant Numeric
1378
- * @see https://tailwindcss.com/docs/font-variant-numeric
1379
- */
1380
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1381
- /**
1382
- * Letter Spacing
1383
- * @see https://tailwindcss.com/docs/letter-spacing
1384
- */
1385
- tracking: [{
1386
- tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
1387
- }],
1388
- /**
1389
- * Line Clamp
1390
- * @see https://tailwindcss.com/docs/line-clamp
1391
- */
1392
- "line-clamp": [{
1393
- "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
1394
- }],
1395
- /**
1396
- * Line Height
1397
- * @see https://tailwindcss.com/docs/line-height
1398
- */
1399
- leading: [{
1400
- leading: [
1401
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1402
- themeLeading,
1403
- ...scaleUnambiguousSpacing()
1404
- ]
1405
- }],
1406
- /**
1407
- * List Style Image
1408
- * @see https://tailwindcss.com/docs/list-style-image
1409
- */
1410
- "list-image": [{
1411
- "list-image": ["none", isArbitraryVariable, isArbitraryValue]
1412
- }],
1413
- /**
1414
- * List Style Position
1415
- * @see https://tailwindcss.com/docs/list-style-position
1416
- */
1417
- "list-style-position": [{
1418
- list: ["inside", "outside"]
1419
- }],
1420
- /**
1421
- * List Style Type
1422
- * @see https://tailwindcss.com/docs/list-style-type
1423
- */
1424
- "list-style-type": [{
1425
- list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
1426
- }],
1427
- /**
1428
- * Text Alignment
1429
- * @see https://tailwindcss.com/docs/text-align
1430
- */
1431
- "text-alignment": [{
1432
- text: ["left", "center", "right", "justify", "start", "end"]
1433
- }],
1434
- /**
1435
- * Placeholder Color
1436
- * @deprecated since Tailwind CSS v3.0.0
1437
- * @see https://v3.tailwindcss.com/docs/placeholder-color
1438
- */
1439
- "placeholder-color": [{
1440
- placeholder: scaleColor()
1441
- }],
1442
- /**
1443
- * Text Color
1444
- * @see https://tailwindcss.com/docs/text-color
1445
- */
1446
- "text-color": [{
1447
- text: scaleColor()
1448
- }],
1449
- /**
1450
- * Text Decoration
1451
- * @see https://tailwindcss.com/docs/text-decoration
1452
- */
1453
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1454
- /**
1455
- * Text Decoration Style
1456
- * @see https://tailwindcss.com/docs/text-decoration-style
1457
- */
1458
- "text-decoration-style": [{
1459
- decoration: [...scaleLineStyle(), "wavy"]
1460
- }],
1461
- /**
1462
- * Text Decoration Thickness
1463
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1464
- */
1465
- "text-decoration-thickness": [{
1466
- decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
1467
- }],
1468
- /**
1469
- * Text Decoration Color
1470
- * @see https://tailwindcss.com/docs/text-decoration-color
1471
- */
1472
- "text-decoration-color": [{
1473
- decoration: scaleColor()
1474
- }],
1475
- /**
1476
- * Text Underline Offset
1477
- * @see https://tailwindcss.com/docs/text-underline-offset
1478
- */
1479
- "underline-offset": [{
1480
- "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
1481
- }],
1482
- /**
1483
- * Text Transform
1484
- * @see https://tailwindcss.com/docs/text-transform
1485
- */
1486
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1487
- /**
1488
- * Text Overflow
1489
- * @see https://tailwindcss.com/docs/text-overflow
1490
- */
1491
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1492
- /**
1493
- * Text Wrap
1494
- * @see https://tailwindcss.com/docs/text-wrap
1495
- */
1496
- "text-wrap": [{
1497
- text: ["wrap", "nowrap", "balance", "pretty"]
1498
- }],
1499
- /**
1500
- * Text Indent
1501
- * @see https://tailwindcss.com/docs/text-indent
1502
- */
1503
- indent: [{
1504
- indent: scaleUnambiguousSpacing()
1505
- }],
1506
- /**
1507
- * Vertical Alignment
1508
- * @see https://tailwindcss.com/docs/vertical-align
1509
- */
1510
- "vertical-align": [{
1511
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
1512
- }],
1513
- /**
1514
- * Whitespace
1515
- * @see https://tailwindcss.com/docs/whitespace
1516
- */
1517
- whitespace: [{
1518
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1519
- }],
1520
- /**
1521
- * Word Break
1522
- * @see https://tailwindcss.com/docs/word-break
1523
- */
1524
- break: [{
1525
- break: ["normal", "words", "all", "keep"]
1526
- }],
1527
- /**
1528
- * Overflow Wrap
1529
- * @see https://tailwindcss.com/docs/overflow-wrap
1530
- */
1531
- wrap: [{
1532
- wrap: ["break-word", "anywhere", "normal"]
1533
- }],
1534
- /**
1535
- * Hyphens
1536
- * @see https://tailwindcss.com/docs/hyphens
1537
- */
1538
- hyphens: [{
1539
- hyphens: ["none", "manual", "auto"]
1540
- }],
1541
- /**
1542
- * Content
1543
- * @see https://tailwindcss.com/docs/content
1544
- */
1545
- content: [{
1546
- content: ["none", isArbitraryVariable, isArbitraryValue]
1547
- }],
1548
- // -------------------
1549
- // --- Backgrounds ---
1550
- // -------------------
1551
- /**
1552
- * Background Attachment
1553
- * @see https://tailwindcss.com/docs/background-attachment
1554
- */
1555
- "bg-attachment": [{
1556
- bg: ["fixed", "local", "scroll"]
1557
- }],
1558
- /**
1559
- * Background Clip
1560
- * @see https://tailwindcss.com/docs/background-clip
1561
- */
1562
- "bg-clip": [{
1563
- "bg-clip": ["border", "padding", "content", "text"]
1564
- }],
1565
- /**
1566
- * Background Origin
1567
- * @see https://tailwindcss.com/docs/background-origin
1568
- */
1569
- "bg-origin": [{
1570
- "bg-origin": ["border", "padding", "content"]
1571
- }],
1572
- /**
1573
- * Background Position
1574
- * @see https://tailwindcss.com/docs/background-position
1575
- */
1576
- "bg-position": [{
1577
- bg: scaleBgPosition()
1578
- }],
1579
- /**
1580
- * Background Repeat
1581
- * @see https://tailwindcss.com/docs/background-repeat
1582
- */
1583
- "bg-repeat": [{
1584
- bg: scaleBgRepeat()
1585
- }],
1586
- /**
1587
- * Background Size
1588
- * @see https://tailwindcss.com/docs/background-size
1589
- */
1590
- "bg-size": [{
1591
- bg: scaleBgSize()
1592
- }],
1593
- /**
1594
- * Background Image
1595
- * @see https://tailwindcss.com/docs/background-image
1596
- */
1597
- "bg-image": [{
1598
- bg: ["none", {
1599
- linear: [{
1600
- to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1601
- }, isInteger, isArbitraryVariable, isArbitraryValue],
1602
- radial: ["", isArbitraryVariable, isArbitraryValue],
1603
- conic: [isInteger, isArbitraryVariable, isArbitraryValue]
1604
- }, isArbitraryVariableImage, isArbitraryImage]
1605
- }],
1606
- /**
1607
- * Background Color
1608
- * @see https://tailwindcss.com/docs/background-color
1609
- */
1610
- "bg-color": [{
1611
- bg: scaleColor()
1612
- }],
1613
- /**
1614
- * Gradient Color Stops From Position
1615
- * @see https://tailwindcss.com/docs/gradient-color-stops
1616
- */
1617
- "gradient-from-pos": [{
1618
- from: scaleGradientStopPosition()
1619
- }],
1620
- /**
1621
- * Gradient Color Stops Via Position
1622
- * @see https://tailwindcss.com/docs/gradient-color-stops
1623
- */
1624
- "gradient-via-pos": [{
1625
- via: scaleGradientStopPosition()
1626
- }],
1627
- /**
1628
- * Gradient Color Stops To Position
1629
- * @see https://tailwindcss.com/docs/gradient-color-stops
1630
- */
1631
- "gradient-to-pos": [{
1632
- to: scaleGradientStopPosition()
1633
- }],
1634
- /**
1635
- * Gradient Color Stops From
1636
- * @see https://tailwindcss.com/docs/gradient-color-stops
1637
- */
1638
- "gradient-from": [{
1639
- from: scaleColor()
1640
- }],
1641
- /**
1642
- * Gradient Color Stops Via
1643
- * @see https://tailwindcss.com/docs/gradient-color-stops
1644
- */
1645
- "gradient-via": [{
1646
- via: scaleColor()
1647
- }],
1648
- /**
1649
- * Gradient Color Stops To
1650
- * @see https://tailwindcss.com/docs/gradient-color-stops
1651
- */
1652
- "gradient-to": [{
1653
- to: scaleColor()
1654
- }],
1655
- // ---------------
1656
- // --- Borders ---
1657
- // ---------------
1658
- /**
1659
- * Border Radius
1660
- * @see https://tailwindcss.com/docs/border-radius
1661
- */
1662
- rounded: [{
1663
- rounded: scaleRadius()
1664
- }],
1665
- /**
1666
- * Border Radius Start
1667
- * @see https://tailwindcss.com/docs/border-radius
1668
- */
1669
- "rounded-s": [{
1670
- "rounded-s": scaleRadius()
1671
- }],
1672
- /**
1673
- * Border Radius End
1674
- * @see https://tailwindcss.com/docs/border-radius
1675
- */
1676
- "rounded-e": [{
1677
- "rounded-e": scaleRadius()
1678
- }],
1679
- /**
1680
- * Border Radius Top
1681
- * @see https://tailwindcss.com/docs/border-radius
1682
- */
1683
- "rounded-t": [{
1684
- "rounded-t": scaleRadius()
1685
- }],
1686
- /**
1687
- * Border Radius Right
1688
- * @see https://tailwindcss.com/docs/border-radius
1689
- */
1690
- "rounded-r": [{
1691
- "rounded-r": scaleRadius()
1692
- }],
1693
- /**
1694
- * Border Radius Bottom
1695
- * @see https://tailwindcss.com/docs/border-radius
1696
- */
1697
- "rounded-b": [{
1698
- "rounded-b": scaleRadius()
1699
- }],
1700
- /**
1701
- * Border Radius Left
1702
- * @see https://tailwindcss.com/docs/border-radius
1703
- */
1704
- "rounded-l": [{
1705
- "rounded-l": scaleRadius()
1706
- }],
1707
- /**
1708
- * Border Radius Start Start
1709
- * @see https://tailwindcss.com/docs/border-radius
1710
- */
1711
- "rounded-ss": [{
1712
- "rounded-ss": scaleRadius()
1713
- }],
1714
- /**
1715
- * Border Radius Start End
1716
- * @see https://tailwindcss.com/docs/border-radius
1717
- */
1718
- "rounded-se": [{
1719
- "rounded-se": scaleRadius()
1720
- }],
1721
- /**
1722
- * Border Radius End End
1723
- * @see https://tailwindcss.com/docs/border-radius
1724
- */
1725
- "rounded-ee": [{
1726
- "rounded-ee": scaleRadius()
1727
- }],
1728
- /**
1729
- * Border Radius End Start
1730
- * @see https://tailwindcss.com/docs/border-radius
1731
- */
1732
- "rounded-es": [{
1733
- "rounded-es": scaleRadius()
1734
- }],
1735
- /**
1736
- * Border Radius Top Left
1737
- * @see https://tailwindcss.com/docs/border-radius
1738
- */
1739
- "rounded-tl": [{
1740
- "rounded-tl": scaleRadius()
1741
- }],
1742
- /**
1743
- * Border Radius Top Right
1744
- * @see https://tailwindcss.com/docs/border-radius
1745
- */
1746
- "rounded-tr": [{
1747
- "rounded-tr": scaleRadius()
1748
- }],
1749
- /**
1750
- * Border Radius Bottom Right
1751
- * @see https://tailwindcss.com/docs/border-radius
1752
- */
1753
- "rounded-br": [{
1754
- "rounded-br": scaleRadius()
1755
- }],
1756
- /**
1757
- * Border Radius Bottom Left
1758
- * @see https://tailwindcss.com/docs/border-radius
1759
- */
1760
- "rounded-bl": [{
1761
- "rounded-bl": scaleRadius()
1762
- }],
1763
- /**
1764
- * Border Width
1765
- * @see https://tailwindcss.com/docs/border-width
1766
- */
1767
- "border-w": [{
1768
- border: scaleBorderWidth()
1769
- }],
1770
- /**
1771
- * Border Width X
1772
- * @see https://tailwindcss.com/docs/border-width
1773
- */
1774
- "border-w-x": [{
1775
- "border-x": scaleBorderWidth()
1776
- }],
1777
- /**
1778
- * Border Width Y
1779
- * @see https://tailwindcss.com/docs/border-width
1780
- */
1781
- "border-w-y": [{
1782
- "border-y": scaleBorderWidth()
1783
- }],
1784
- /**
1785
- * Border Width Start
1786
- * @see https://tailwindcss.com/docs/border-width
1787
- */
1788
- "border-w-s": [{
1789
- "border-s": scaleBorderWidth()
1790
- }],
1791
- /**
1792
- * Border Width End
1793
- * @see https://tailwindcss.com/docs/border-width
1794
- */
1795
- "border-w-e": [{
1796
- "border-e": scaleBorderWidth()
1797
- }],
1798
- /**
1799
- * Border Width Top
1800
- * @see https://tailwindcss.com/docs/border-width
1801
- */
1802
- "border-w-t": [{
1803
- "border-t": scaleBorderWidth()
1804
- }],
1805
- /**
1806
- * Border Width Right
1807
- * @see https://tailwindcss.com/docs/border-width
1808
- */
1809
- "border-w-r": [{
1810
- "border-r": scaleBorderWidth()
1811
- }],
1812
- /**
1813
- * Border Width Bottom
1814
- * @see https://tailwindcss.com/docs/border-width
1815
- */
1816
- "border-w-b": [{
1817
- "border-b": scaleBorderWidth()
1818
- }],
1819
- /**
1820
- * Border Width Left
1821
- * @see https://tailwindcss.com/docs/border-width
1822
- */
1823
- "border-w-l": [{
1824
- "border-l": scaleBorderWidth()
1825
- }],
1826
- /**
1827
- * Divide Width X
1828
- * @see https://tailwindcss.com/docs/border-width#between-children
1829
- */
1830
- "divide-x": [{
1831
- "divide-x": scaleBorderWidth()
1832
- }],
1833
- /**
1834
- * Divide Width X Reverse
1835
- * @see https://tailwindcss.com/docs/border-width#between-children
1836
- */
1837
- "divide-x-reverse": ["divide-x-reverse"],
1838
- /**
1839
- * Divide Width Y
1840
- * @see https://tailwindcss.com/docs/border-width#between-children
1841
- */
1842
- "divide-y": [{
1843
- "divide-y": scaleBorderWidth()
1844
- }],
1845
- /**
1846
- * Divide Width Y Reverse
1847
- * @see https://tailwindcss.com/docs/border-width#between-children
1848
- */
1849
- "divide-y-reverse": ["divide-y-reverse"],
1850
- /**
1851
- * Border Style
1852
- * @see https://tailwindcss.com/docs/border-style
1853
- */
1854
- "border-style": [{
1855
- border: [...scaleLineStyle(), "hidden", "none"]
1856
- }],
1857
- /**
1858
- * Divide Style
1859
- * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1860
- */
1861
- "divide-style": [{
1862
- divide: [...scaleLineStyle(), "hidden", "none"]
1863
- }],
1864
- /**
1865
- * Border Color
1866
- * @see https://tailwindcss.com/docs/border-color
1867
- */
1868
- "border-color": [{
1869
- border: scaleColor()
1870
- }],
1871
- /**
1872
- * Border Color X
1873
- * @see https://tailwindcss.com/docs/border-color
1874
- */
1875
- "border-color-x": [{
1876
- "border-x": scaleColor()
1877
- }],
1878
- /**
1879
- * Border Color Y
1880
- * @see https://tailwindcss.com/docs/border-color
1881
- */
1882
- "border-color-y": [{
1883
- "border-y": scaleColor()
1884
- }],
1885
- /**
1886
- * Border Color S
1887
- * @see https://tailwindcss.com/docs/border-color
1888
- */
1889
- "border-color-s": [{
1890
- "border-s": scaleColor()
1891
- }],
1892
- /**
1893
- * Border Color E
1894
- * @see https://tailwindcss.com/docs/border-color
1895
- */
1896
- "border-color-e": [{
1897
- "border-e": scaleColor()
1898
- }],
1899
- /**
1900
- * Border Color Top
1901
- * @see https://tailwindcss.com/docs/border-color
1902
- */
1903
- "border-color-t": [{
1904
- "border-t": scaleColor()
1905
- }],
1906
- /**
1907
- * Border Color Right
1908
- * @see https://tailwindcss.com/docs/border-color
1909
- */
1910
- "border-color-r": [{
1911
- "border-r": scaleColor()
1912
- }],
1913
- /**
1914
- * Border Color Bottom
1915
- * @see https://tailwindcss.com/docs/border-color
1916
- */
1917
- "border-color-b": [{
1918
- "border-b": scaleColor()
1919
- }],
1920
- /**
1921
- * Border Color Left
1922
- * @see https://tailwindcss.com/docs/border-color
1923
- */
1924
- "border-color-l": [{
1925
- "border-l": scaleColor()
1926
- }],
1927
- /**
1928
- * Divide Color
1929
- * @see https://tailwindcss.com/docs/divide-color
1930
- */
1931
- "divide-color": [{
1932
- divide: scaleColor()
1933
- }],
1934
- /**
1935
- * Outline Style
1936
- * @see https://tailwindcss.com/docs/outline-style
1937
- */
1938
- "outline-style": [{
1939
- outline: [...scaleLineStyle(), "none", "hidden"]
1940
- }],
1941
- /**
1942
- * Outline Offset
1943
- * @see https://tailwindcss.com/docs/outline-offset
1944
- */
1945
- "outline-offset": [{
1946
- "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
1947
- }],
1948
- /**
1949
- * Outline Width
1950
- * @see https://tailwindcss.com/docs/outline-width
1951
- */
1952
- "outline-w": [{
1953
- outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
1954
- }],
1955
- /**
1956
- * Outline Color
1957
- * @see https://tailwindcss.com/docs/outline-color
1958
- */
1959
- "outline-color": [{
1960
- outline: scaleColor()
1961
- }],
1962
- // ---------------
1963
- // --- Effects ---
1964
- // ---------------
1965
- /**
1966
- * Box Shadow
1967
- * @see https://tailwindcss.com/docs/box-shadow
1968
- */
1969
- shadow: [{
1970
- shadow: [
1971
- // Deprecated since Tailwind CSS v4.0.0
1972
- "",
1973
- "none",
1974
- themeShadow,
1975
- isArbitraryVariableShadow,
1976
- isArbitraryShadow
1977
- ]
1978
- }],
1979
- /**
1980
- * Box Shadow Color
1981
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
1982
- */
1983
- "shadow-color": [{
1984
- shadow: scaleColor()
1985
- }],
1986
- /**
1987
- * Inset Box Shadow
1988
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
1989
- */
1990
- "inset-shadow": [{
1991
- "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
1992
- }],
1993
- /**
1994
- * Inset Box Shadow Color
1995
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
1996
- */
1997
- "inset-shadow-color": [{
1998
- "inset-shadow": scaleColor()
1999
- }],
2000
- /**
2001
- * Ring Width
2002
- * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2003
- */
2004
- "ring-w": [{
2005
- ring: scaleBorderWidth()
2006
- }],
2007
- /**
2008
- * Ring Width Inset
2009
- * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2010
- * @deprecated since Tailwind CSS v4.0.0
2011
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2012
- */
2013
- "ring-w-inset": ["ring-inset"],
2014
- /**
2015
- * Ring Color
2016
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2017
- */
2018
- "ring-color": [{
2019
- ring: scaleColor()
2020
- }],
2021
- /**
2022
- * Ring Offset Width
2023
- * @see https://v3.tailwindcss.com/docs/ring-offset-width
2024
- * @deprecated since Tailwind CSS v4.0.0
2025
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2026
- */
2027
- "ring-offset-w": [{
2028
- "ring-offset": [isNumber, isArbitraryLength]
2029
- }],
2030
- /**
2031
- * Ring Offset Color
2032
- * @see https://v3.tailwindcss.com/docs/ring-offset-color
2033
- * @deprecated since Tailwind CSS v4.0.0
2034
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2035
- */
2036
- "ring-offset-color": [{
2037
- "ring-offset": scaleColor()
2038
- }],
2039
- /**
2040
- * Inset Ring Width
2041
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2042
- */
2043
- "inset-ring-w": [{
2044
- "inset-ring": scaleBorderWidth()
2045
- }],
2046
- /**
2047
- * Inset Ring Color
2048
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2049
- */
2050
- "inset-ring-color": [{
2051
- "inset-ring": scaleColor()
2052
- }],
2053
- /**
2054
- * Text Shadow
2055
- * @see https://tailwindcss.com/docs/text-shadow
2056
- */
2057
- "text-shadow": [{
2058
- "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
2059
- }],
2060
- /**
2061
- * Text Shadow Color
2062
- * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2063
- */
2064
- "text-shadow-color": [{
2065
- "text-shadow": scaleColor()
2066
- }],
2067
- /**
2068
- * Opacity
2069
- * @see https://tailwindcss.com/docs/opacity
2070
- */
2071
- opacity: [{
2072
- opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
2073
- }],
2074
- /**
2075
- * Mix Blend Mode
2076
- * @see https://tailwindcss.com/docs/mix-blend-mode
2077
- */
2078
- "mix-blend": [{
2079
- "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
2080
- }],
2081
- /**
2082
- * Background Blend Mode
2083
- * @see https://tailwindcss.com/docs/background-blend-mode
2084
- */
2085
- "bg-blend": [{
2086
- "bg-blend": scaleBlendMode()
2087
- }],
2088
- /**
2089
- * Mask Clip
2090
- * @see https://tailwindcss.com/docs/mask-clip
2091
- */
2092
- "mask-clip": [{
2093
- "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2094
- }, "mask-no-clip"],
2095
- /**
2096
- * Mask Composite
2097
- * @see https://tailwindcss.com/docs/mask-composite
2098
- */
2099
- "mask-composite": [{
2100
- mask: ["add", "subtract", "intersect", "exclude"]
2101
- }],
2102
- /**
2103
- * Mask Image
2104
- * @see https://tailwindcss.com/docs/mask-image
2105
- */
2106
- "mask-image-linear-pos": [{
2107
- "mask-linear": [isNumber]
2108
- }],
2109
- "mask-image-linear-from-pos": [{
2110
- "mask-linear-from": scaleMaskImagePosition()
2111
- }],
2112
- "mask-image-linear-to-pos": [{
2113
- "mask-linear-to": scaleMaskImagePosition()
2114
- }],
2115
- "mask-image-linear-from-color": [{
2116
- "mask-linear-from": scaleColor()
2117
- }],
2118
- "mask-image-linear-to-color": [{
2119
- "mask-linear-to": scaleColor()
2120
- }],
2121
- "mask-image-t-from-pos": [{
2122
- "mask-t-from": scaleMaskImagePosition()
2123
- }],
2124
- "mask-image-t-to-pos": [{
2125
- "mask-t-to": scaleMaskImagePosition()
2126
- }],
2127
- "mask-image-t-from-color": [{
2128
- "mask-t-from": scaleColor()
2129
- }],
2130
- "mask-image-t-to-color": [{
2131
- "mask-t-to": scaleColor()
2132
- }],
2133
- "mask-image-r-from-pos": [{
2134
- "mask-r-from": scaleMaskImagePosition()
2135
- }],
2136
- "mask-image-r-to-pos": [{
2137
- "mask-r-to": scaleMaskImagePosition()
2138
- }],
2139
- "mask-image-r-from-color": [{
2140
- "mask-r-from": scaleColor()
2141
- }],
2142
- "mask-image-r-to-color": [{
2143
- "mask-r-to": scaleColor()
2144
- }],
2145
- "mask-image-b-from-pos": [{
2146
- "mask-b-from": scaleMaskImagePosition()
2147
- }],
2148
- "mask-image-b-to-pos": [{
2149
- "mask-b-to": scaleMaskImagePosition()
2150
- }],
2151
- "mask-image-b-from-color": [{
2152
- "mask-b-from": scaleColor()
2153
- }],
2154
- "mask-image-b-to-color": [{
2155
- "mask-b-to": scaleColor()
2156
- }],
2157
- "mask-image-l-from-pos": [{
2158
- "mask-l-from": scaleMaskImagePosition()
2159
- }],
2160
- "mask-image-l-to-pos": [{
2161
- "mask-l-to": scaleMaskImagePosition()
2162
- }],
2163
- "mask-image-l-from-color": [{
2164
- "mask-l-from": scaleColor()
2165
- }],
2166
- "mask-image-l-to-color": [{
2167
- "mask-l-to": scaleColor()
2168
- }],
2169
- "mask-image-x-from-pos": [{
2170
- "mask-x-from": scaleMaskImagePosition()
2171
- }],
2172
- "mask-image-x-to-pos": [{
2173
- "mask-x-to": scaleMaskImagePosition()
2174
- }],
2175
- "mask-image-x-from-color": [{
2176
- "mask-x-from": scaleColor()
2177
- }],
2178
- "mask-image-x-to-color": [{
2179
- "mask-x-to": scaleColor()
2180
- }],
2181
- "mask-image-y-from-pos": [{
2182
- "mask-y-from": scaleMaskImagePosition()
2183
- }],
2184
- "mask-image-y-to-pos": [{
2185
- "mask-y-to": scaleMaskImagePosition()
2186
- }],
2187
- "mask-image-y-from-color": [{
2188
- "mask-y-from": scaleColor()
2189
- }],
2190
- "mask-image-y-to-color": [{
2191
- "mask-y-to": scaleColor()
2192
- }],
2193
- "mask-image-radial": [{
2194
- "mask-radial": [isArbitraryVariable, isArbitraryValue]
2195
- }],
2196
- "mask-image-radial-from-pos": [{
2197
- "mask-radial-from": scaleMaskImagePosition()
2198
- }],
2199
- "mask-image-radial-to-pos": [{
2200
- "mask-radial-to": scaleMaskImagePosition()
2201
- }],
2202
- "mask-image-radial-from-color": [{
2203
- "mask-radial-from": scaleColor()
2204
- }],
2205
- "mask-image-radial-to-color": [{
2206
- "mask-radial-to": scaleColor()
2207
- }],
2208
- "mask-image-radial-shape": [{
2209
- "mask-radial": ["circle", "ellipse"]
2210
- }],
2211
- "mask-image-radial-size": [{
2212
- "mask-radial": [{
2213
- closest: ["side", "corner"],
2214
- farthest: ["side", "corner"]
2215
- }]
2216
- }],
2217
- "mask-image-radial-pos": [{
2218
- "mask-radial-at": scalePosition()
2219
- }],
2220
- "mask-image-conic-pos": [{
2221
- "mask-conic": [isNumber]
2222
- }],
2223
- "mask-image-conic-from-pos": [{
2224
- "mask-conic-from": scaleMaskImagePosition()
2225
- }],
2226
- "mask-image-conic-to-pos": [{
2227
- "mask-conic-to": scaleMaskImagePosition()
2228
- }],
2229
- "mask-image-conic-from-color": [{
2230
- "mask-conic-from": scaleColor()
2231
- }],
2232
- "mask-image-conic-to-color": [{
2233
- "mask-conic-to": scaleColor()
2234
- }],
2235
- /**
2236
- * Mask Mode
2237
- * @see https://tailwindcss.com/docs/mask-mode
2238
- */
2239
- "mask-mode": [{
2240
- mask: ["alpha", "luminance", "match"]
2241
- }],
2242
- /**
2243
- * Mask Origin
2244
- * @see https://tailwindcss.com/docs/mask-origin
2245
- */
2246
- "mask-origin": [{
2247
- "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2248
- }],
2249
- /**
2250
- * Mask Position
2251
- * @see https://tailwindcss.com/docs/mask-position
2252
- */
2253
- "mask-position": [{
2254
- mask: scaleBgPosition()
2255
- }],
2256
- /**
2257
- * Mask Repeat
2258
- * @see https://tailwindcss.com/docs/mask-repeat
2259
- */
2260
- "mask-repeat": [{
2261
- mask: scaleBgRepeat()
2262
- }],
2263
- /**
2264
- * Mask Size
2265
- * @see https://tailwindcss.com/docs/mask-size
2266
- */
2267
- "mask-size": [{
2268
- mask: scaleBgSize()
2269
- }],
2270
- /**
2271
- * Mask Type
2272
- * @see https://tailwindcss.com/docs/mask-type
2273
- */
2274
- "mask-type": [{
2275
- "mask-type": ["alpha", "luminance"]
2276
- }],
2277
- /**
2278
- * Mask Image
2279
- * @see https://tailwindcss.com/docs/mask-image
2280
- */
2281
- "mask-image": [{
2282
- mask: ["none", isArbitraryVariable, isArbitraryValue]
2283
- }],
2284
- // ---------------
2285
- // --- Filters ---
2286
- // ---------------
2287
- /**
2288
- * Filter
2289
- * @see https://tailwindcss.com/docs/filter
2290
- */
2291
- filter: [{
2292
- filter: [
2293
- // Deprecated since Tailwind CSS v3.0.0
2294
- "",
2295
- "none",
2296
- isArbitraryVariable,
2297
- isArbitraryValue
2298
- ]
2299
- }],
2300
- /**
2301
- * Blur
2302
- * @see https://tailwindcss.com/docs/blur
2303
- */
2304
- blur: [{
2305
- blur: scaleBlur()
2306
- }],
2307
- /**
2308
- * Brightness
2309
- * @see https://tailwindcss.com/docs/brightness
2310
- */
2311
- brightness: [{
2312
- brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
2313
- }],
2314
- /**
2315
- * Contrast
2316
- * @see https://tailwindcss.com/docs/contrast
2317
- */
2318
- contrast: [{
2319
- contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
2320
- }],
2321
- /**
2322
- * Drop Shadow
2323
- * @see https://tailwindcss.com/docs/drop-shadow
2324
- */
2325
- "drop-shadow": [{
2326
- "drop-shadow": [
2327
- // Deprecated since Tailwind CSS v4.0.0
2328
- "",
2329
- "none",
2330
- themeDropShadow,
2331
- isArbitraryVariableShadow,
2332
- isArbitraryShadow
2333
- ]
2334
- }],
2335
- /**
2336
- * Drop Shadow Color
2337
- * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2338
- */
2339
- "drop-shadow-color": [{
2340
- "drop-shadow": scaleColor()
2341
- }],
2342
- /**
2343
- * Grayscale
2344
- * @see https://tailwindcss.com/docs/grayscale
2345
- */
2346
- grayscale: [{
2347
- grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2348
- }],
2349
- /**
2350
- * Hue Rotate
2351
- * @see https://tailwindcss.com/docs/hue-rotate
2352
- */
2353
- "hue-rotate": [{
2354
- "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2355
- }],
2356
- /**
2357
- * Invert
2358
- * @see https://tailwindcss.com/docs/invert
2359
- */
2360
- invert: [{
2361
- invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2362
- }],
2363
- /**
2364
- * Saturate
2365
- * @see https://tailwindcss.com/docs/saturate
2366
- */
2367
- saturate: [{
2368
- saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
2369
- }],
2370
- /**
2371
- * Sepia
2372
- * @see https://tailwindcss.com/docs/sepia
2373
- */
2374
- sepia: [{
2375
- sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2376
- }],
2377
- /**
2378
- * Backdrop Filter
2379
- * @see https://tailwindcss.com/docs/backdrop-filter
2380
- */
2381
- "backdrop-filter": [{
2382
- "backdrop-filter": [
2383
- // Deprecated since Tailwind CSS v3.0.0
2384
- "",
2385
- "none",
2386
- isArbitraryVariable,
2387
- isArbitraryValue
2388
- ]
2389
- }],
2390
- /**
2391
- * Backdrop Blur
2392
- * @see https://tailwindcss.com/docs/backdrop-blur
2393
- */
2394
- "backdrop-blur": [{
2395
- "backdrop-blur": scaleBlur()
2396
- }],
2397
- /**
2398
- * Backdrop Brightness
2399
- * @see https://tailwindcss.com/docs/backdrop-brightness
2400
- */
2401
- "backdrop-brightness": [{
2402
- "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
2403
- }],
2404
- /**
2405
- * Backdrop Contrast
2406
- * @see https://tailwindcss.com/docs/backdrop-contrast
2407
- */
2408
- "backdrop-contrast": [{
2409
- "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
2410
- }],
2411
- /**
2412
- * Backdrop Grayscale
2413
- * @see https://tailwindcss.com/docs/backdrop-grayscale
2414
- */
2415
- "backdrop-grayscale": [{
2416
- "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2417
- }],
2418
- /**
2419
- * Backdrop Hue Rotate
2420
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2421
- */
2422
- "backdrop-hue-rotate": [{
2423
- "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2424
- }],
2425
- /**
2426
- * Backdrop Invert
2427
- * @see https://tailwindcss.com/docs/backdrop-invert
2428
- */
2429
- "backdrop-invert": [{
2430
- "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2431
- }],
2432
- /**
2433
- * Backdrop Opacity
2434
- * @see https://tailwindcss.com/docs/backdrop-opacity
2435
- */
2436
- "backdrop-opacity": [{
2437
- "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
2438
- }],
2439
- /**
2440
- * Backdrop Saturate
2441
- * @see https://tailwindcss.com/docs/backdrop-saturate
2442
- */
2443
- "backdrop-saturate": [{
2444
- "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
2445
- }],
2446
- /**
2447
- * Backdrop Sepia
2448
- * @see https://tailwindcss.com/docs/backdrop-sepia
2449
- */
2450
- "backdrop-sepia": [{
2451
- "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2452
- }],
2453
- // --------------
2454
- // --- Tables ---
2455
- // --------------
2456
- /**
2457
- * Border Collapse
2458
- * @see https://tailwindcss.com/docs/border-collapse
2459
- */
2460
- "border-collapse": [{
2461
- border: ["collapse", "separate"]
2462
- }],
2463
- /**
2464
- * Border Spacing
2465
- * @see https://tailwindcss.com/docs/border-spacing
2466
- */
2467
- "border-spacing": [{
2468
- "border-spacing": scaleUnambiguousSpacing()
2469
- }],
2470
- /**
2471
- * Border Spacing X
2472
- * @see https://tailwindcss.com/docs/border-spacing
2473
- */
2474
- "border-spacing-x": [{
2475
- "border-spacing-x": scaleUnambiguousSpacing()
2476
- }],
2477
- /**
2478
- * Border Spacing Y
2479
- * @see https://tailwindcss.com/docs/border-spacing
2480
- */
2481
- "border-spacing-y": [{
2482
- "border-spacing-y": scaleUnambiguousSpacing()
2483
- }],
2484
- /**
2485
- * Table Layout
2486
- * @see https://tailwindcss.com/docs/table-layout
2487
- */
2488
- "table-layout": [{
2489
- table: ["auto", "fixed"]
2490
- }],
2491
- /**
2492
- * Caption Side
2493
- * @see https://tailwindcss.com/docs/caption-side
2494
- */
2495
- caption: [{
2496
- caption: ["top", "bottom"]
2497
- }],
2498
- // ---------------------------------
2499
- // --- Transitions and Animation ---
2500
- // ---------------------------------
2501
- /**
2502
- * Transition Property
2503
- * @see https://tailwindcss.com/docs/transition-property
2504
- */
2505
- transition: [{
2506
- transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
2507
- }],
2508
- /**
2509
- * Transition Behavior
2510
- * @see https://tailwindcss.com/docs/transition-behavior
2511
- */
2512
- "transition-behavior": [{
2513
- transition: ["normal", "discrete"]
2514
- }],
2515
- /**
2516
- * Transition Duration
2517
- * @see https://tailwindcss.com/docs/transition-duration
2518
- */
2519
- duration: [{
2520
- duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
2521
- }],
2522
- /**
2523
- * Transition Timing Function
2524
- * @see https://tailwindcss.com/docs/transition-timing-function
2525
- */
2526
- ease: [{
2527
- ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
2528
- }],
2529
- /**
2530
- * Transition Delay
2531
- * @see https://tailwindcss.com/docs/transition-delay
2532
- */
2533
- delay: [{
2534
- delay: [isNumber, isArbitraryVariable, isArbitraryValue]
2535
- }],
2536
- /**
2537
- * Animation
2538
- * @see https://tailwindcss.com/docs/animation
2539
- */
2540
- animate: [{
2541
- animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
2542
- }],
2543
- // ------------------
2544
- // --- Transforms ---
2545
- // ------------------
2546
- /**
2547
- * Backface Visibility
2548
- * @see https://tailwindcss.com/docs/backface-visibility
2549
- */
2550
- backface: [{
2551
- backface: ["hidden", "visible"]
2552
- }],
2553
- /**
2554
- * Perspective
2555
- * @see https://tailwindcss.com/docs/perspective
2556
- */
2557
- perspective: [{
2558
- perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
2559
- }],
2560
- /**
2561
- * Perspective Origin
2562
- * @see https://tailwindcss.com/docs/perspective-origin
2563
- */
2564
- "perspective-origin": [{
2565
- "perspective-origin": scalePositionWithArbitrary()
2566
- }],
2567
- /**
2568
- * Rotate
2569
- * @see https://tailwindcss.com/docs/rotate
2570
- */
2571
- rotate: [{
2572
- rotate: scaleRotate()
2573
- }],
2574
- /**
2575
- * Rotate X
2576
- * @see https://tailwindcss.com/docs/rotate
2577
- */
2578
- "rotate-x": [{
2579
- "rotate-x": scaleRotate()
2580
- }],
2581
- /**
2582
- * Rotate Y
2583
- * @see https://tailwindcss.com/docs/rotate
2584
- */
2585
- "rotate-y": [{
2586
- "rotate-y": scaleRotate()
2587
- }],
2588
- /**
2589
- * Rotate Z
2590
- * @see https://tailwindcss.com/docs/rotate
2591
- */
2592
- "rotate-z": [{
2593
- "rotate-z": scaleRotate()
2594
- }],
2595
- /**
2596
- * Scale
2597
- * @see https://tailwindcss.com/docs/scale
2598
- */
2599
- scale: [{
2600
- scale: scaleScale()
2601
- }],
2602
- /**
2603
- * Scale X
2604
- * @see https://tailwindcss.com/docs/scale
2605
- */
2606
- "scale-x": [{
2607
- "scale-x": scaleScale()
2608
- }],
2609
- /**
2610
- * Scale Y
2611
- * @see https://tailwindcss.com/docs/scale
2612
- */
2613
- "scale-y": [{
2614
- "scale-y": scaleScale()
2615
- }],
2616
- /**
2617
- * Scale Z
2618
- * @see https://tailwindcss.com/docs/scale
2619
- */
2620
- "scale-z": [{
2621
- "scale-z": scaleScale()
2622
- }],
2623
- /**
2624
- * Scale 3D
2625
- * @see https://tailwindcss.com/docs/scale
2626
- */
2627
- "scale-3d": ["scale-3d"],
2628
- /**
2629
- * Skew
2630
- * @see https://tailwindcss.com/docs/skew
2631
- */
2632
- skew: [{
2633
- skew: scaleSkew()
2634
- }],
2635
- /**
2636
- * Skew X
2637
- * @see https://tailwindcss.com/docs/skew
2638
- */
2639
- "skew-x": [{
2640
- "skew-x": scaleSkew()
2641
- }],
2642
- /**
2643
- * Skew Y
2644
- * @see https://tailwindcss.com/docs/skew
2645
- */
2646
- "skew-y": [{
2647
- "skew-y": scaleSkew()
2648
- }],
2649
- /**
2650
- * Transform
2651
- * @see https://tailwindcss.com/docs/transform
2652
- */
2653
- transform: [{
2654
- transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
2655
- }],
2656
- /**
2657
- * Transform Origin
2658
- * @see https://tailwindcss.com/docs/transform-origin
2659
- */
2660
- "transform-origin": [{
2661
- origin: scalePositionWithArbitrary()
2662
- }],
2663
- /**
2664
- * Transform Style
2665
- * @see https://tailwindcss.com/docs/transform-style
2666
- */
2667
- "transform-style": [{
2668
- transform: ["3d", "flat"]
2669
- }],
2670
- /**
2671
- * Translate
2672
- * @see https://tailwindcss.com/docs/translate
2673
- */
2674
- translate: [{
2675
- translate: scaleTranslate()
2676
- }],
2677
- /**
2678
- * Translate X
2679
- * @see https://tailwindcss.com/docs/translate
2680
- */
2681
- "translate-x": [{
2682
- "translate-x": scaleTranslate()
2683
- }],
2684
- /**
2685
- * Translate Y
2686
- * @see https://tailwindcss.com/docs/translate
2687
- */
2688
- "translate-y": [{
2689
- "translate-y": scaleTranslate()
2690
- }],
2691
- /**
2692
- * Translate Z
2693
- * @see https://tailwindcss.com/docs/translate
2694
- */
2695
- "translate-z": [{
2696
- "translate-z": scaleTranslate()
2697
- }],
2698
- /**
2699
- * Translate None
2700
- * @see https://tailwindcss.com/docs/translate
2701
- */
2702
- "translate-none": ["translate-none"],
2703
- // ---------------------
2704
- // --- Interactivity ---
2705
- // ---------------------
2706
- /**
2707
- * Accent Color
2708
- * @see https://tailwindcss.com/docs/accent-color
2709
- */
2710
- accent: [{
2711
- accent: scaleColor()
2712
- }],
2713
- /**
2714
- * Appearance
2715
- * @see https://tailwindcss.com/docs/appearance
2716
- */
2717
- appearance: [{
2718
- appearance: ["none", "auto"]
2719
- }],
2720
- /**
2721
- * Caret Color
2722
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2723
- */
2724
- "caret-color": [{
2725
- caret: scaleColor()
2726
- }],
2727
- /**
2728
- * Color Scheme
2729
- * @see https://tailwindcss.com/docs/color-scheme
2730
- */
2731
- "color-scheme": [{
2732
- scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2733
- }],
2734
- /**
2735
- * Cursor
2736
- * @see https://tailwindcss.com/docs/cursor
2737
- */
2738
- cursor: [{
2739
- 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]
2740
- }],
2741
- /**
2742
- * Field Sizing
2743
- * @see https://tailwindcss.com/docs/field-sizing
2744
- */
2745
- "field-sizing": [{
2746
- "field-sizing": ["fixed", "content"]
2747
- }],
2748
- /**
2749
- * Pointer Events
2750
- * @see https://tailwindcss.com/docs/pointer-events
2751
- */
2752
- "pointer-events": [{
2753
- "pointer-events": ["auto", "none"]
2754
- }],
2755
- /**
2756
- * Resize
2757
- * @see https://tailwindcss.com/docs/resize
2758
- */
2759
- resize: [{
2760
- resize: ["none", "", "y", "x"]
2761
- }],
2762
- /**
2763
- * Scroll Behavior
2764
- * @see https://tailwindcss.com/docs/scroll-behavior
2765
- */
2766
- "scroll-behavior": [{
2767
- scroll: ["auto", "smooth"]
2768
- }],
2769
- /**
2770
- * Scroll Margin
2771
- * @see https://tailwindcss.com/docs/scroll-margin
2772
- */
2773
- "scroll-m": [{
2774
- "scroll-m": scaleUnambiguousSpacing()
2775
- }],
2776
- /**
2777
- * Scroll Margin X
2778
- * @see https://tailwindcss.com/docs/scroll-margin
2779
- */
2780
- "scroll-mx": [{
2781
- "scroll-mx": scaleUnambiguousSpacing()
2782
- }],
2783
- /**
2784
- * Scroll Margin Y
2785
- * @see https://tailwindcss.com/docs/scroll-margin
2786
- */
2787
- "scroll-my": [{
2788
- "scroll-my": scaleUnambiguousSpacing()
2789
- }],
2790
- /**
2791
- * Scroll Margin Start
2792
- * @see https://tailwindcss.com/docs/scroll-margin
2793
- */
2794
- "scroll-ms": [{
2795
- "scroll-ms": scaleUnambiguousSpacing()
2796
- }],
2797
- /**
2798
- * Scroll Margin End
2799
- * @see https://tailwindcss.com/docs/scroll-margin
2800
- */
2801
- "scroll-me": [{
2802
- "scroll-me": scaleUnambiguousSpacing()
2803
- }],
2804
- /**
2805
- * Scroll Margin Top
2806
- * @see https://tailwindcss.com/docs/scroll-margin
2807
- */
2808
- "scroll-mt": [{
2809
- "scroll-mt": scaleUnambiguousSpacing()
2810
- }],
2811
- /**
2812
- * Scroll Margin Right
2813
- * @see https://tailwindcss.com/docs/scroll-margin
2814
- */
2815
- "scroll-mr": [{
2816
- "scroll-mr": scaleUnambiguousSpacing()
2817
- }],
2818
- /**
2819
- * Scroll Margin Bottom
2820
- * @see https://tailwindcss.com/docs/scroll-margin
2821
- */
2822
- "scroll-mb": [{
2823
- "scroll-mb": scaleUnambiguousSpacing()
2824
- }],
2825
- /**
2826
- * Scroll Margin Left
2827
- * @see https://tailwindcss.com/docs/scroll-margin
2828
- */
2829
- "scroll-ml": [{
2830
- "scroll-ml": scaleUnambiguousSpacing()
2831
- }],
2832
- /**
2833
- * Scroll Padding
2834
- * @see https://tailwindcss.com/docs/scroll-padding
2835
- */
2836
- "scroll-p": [{
2837
- "scroll-p": scaleUnambiguousSpacing()
2838
- }],
2839
- /**
2840
- * Scroll Padding X
2841
- * @see https://tailwindcss.com/docs/scroll-padding
2842
- */
2843
- "scroll-px": [{
2844
- "scroll-px": scaleUnambiguousSpacing()
2845
- }],
2846
- /**
2847
- * Scroll Padding Y
2848
- * @see https://tailwindcss.com/docs/scroll-padding
2849
- */
2850
- "scroll-py": [{
2851
- "scroll-py": scaleUnambiguousSpacing()
2852
- }],
2853
- /**
2854
- * Scroll Padding Start
2855
- * @see https://tailwindcss.com/docs/scroll-padding
2856
- */
2857
- "scroll-ps": [{
2858
- "scroll-ps": scaleUnambiguousSpacing()
2859
- }],
2860
- /**
2861
- * Scroll Padding End
2862
- * @see https://tailwindcss.com/docs/scroll-padding
2863
- */
2864
- "scroll-pe": [{
2865
- "scroll-pe": scaleUnambiguousSpacing()
2866
- }],
2867
- /**
2868
- * Scroll Padding Top
2869
- * @see https://tailwindcss.com/docs/scroll-padding
2870
- */
2871
- "scroll-pt": [{
2872
- "scroll-pt": scaleUnambiguousSpacing()
2873
- }],
2874
- /**
2875
- * Scroll Padding Right
2876
- * @see https://tailwindcss.com/docs/scroll-padding
2877
- */
2878
- "scroll-pr": [{
2879
- "scroll-pr": scaleUnambiguousSpacing()
2880
- }],
2881
- /**
2882
- * Scroll Padding Bottom
2883
- * @see https://tailwindcss.com/docs/scroll-padding
2884
- */
2885
- "scroll-pb": [{
2886
- "scroll-pb": scaleUnambiguousSpacing()
2887
- }],
2888
- /**
2889
- * Scroll Padding Left
2890
- * @see https://tailwindcss.com/docs/scroll-padding
2891
- */
2892
- "scroll-pl": [{
2893
- "scroll-pl": scaleUnambiguousSpacing()
2894
- }],
2895
- /**
2896
- * Scroll Snap Align
2897
- * @see https://tailwindcss.com/docs/scroll-snap-align
2898
- */
2899
- "snap-align": [{
2900
- snap: ["start", "end", "center", "align-none"]
2901
- }],
2902
- /**
2903
- * Scroll Snap Stop
2904
- * @see https://tailwindcss.com/docs/scroll-snap-stop
2905
- */
2906
- "snap-stop": [{
2907
- snap: ["normal", "always"]
2908
- }],
2909
- /**
2910
- * Scroll Snap Type
2911
- * @see https://tailwindcss.com/docs/scroll-snap-type
2912
- */
2913
- "snap-type": [{
2914
- snap: ["none", "x", "y", "both"]
2915
- }],
2916
- /**
2917
- * Scroll Snap Type Strictness
2918
- * @see https://tailwindcss.com/docs/scroll-snap-type
2919
- */
2920
- "snap-strictness": [{
2921
- snap: ["mandatory", "proximity"]
2922
- }],
2923
- /**
2924
- * Touch Action
2925
- * @see https://tailwindcss.com/docs/touch-action
2926
- */
2927
- touch: [{
2928
- touch: ["auto", "none", "manipulation"]
2929
- }],
2930
- /**
2931
- * Touch Action X
2932
- * @see https://tailwindcss.com/docs/touch-action
2933
- */
2934
- "touch-x": [{
2935
- "touch-pan": ["x", "left", "right"]
2936
- }],
2937
- /**
2938
- * Touch Action Y
2939
- * @see https://tailwindcss.com/docs/touch-action
2940
- */
2941
- "touch-y": [{
2942
- "touch-pan": ["y", "up", "down"]
2943
- }],
2944
- /**
2945
- * Touch Action Pinch Zoom
2946
- * @see https://tailwindcss.com/docs/touch-action
2947
- */
2948
- "touch-pz": ["touch-pinch-zoom"],
2949
- /**
2950
- * User Select
2951
- * @see https://tailwindcss.com/docs/user-select
2952
- */
2953
- select: [{
2954
- select: ["none", "text", "all", "auto"]
2955
- }],
2956
- /**
2957
- * Will Change
2958
- * @see https://tailwindcss.com/docs/will-change
2959
- */
2960
- "will-change": [{
2961
- "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
2962
- }],
2963
- // -----------
2964
- // --- SVG ---
2965
- // -----------
2966
- /**
2967
- * Fill
2968
- * @see https://tailwindcss.com/docs/fill
2969
- */
2970
- fill: [{
2971
- fill: ["none", ...scaleColor()]
2972
- }],
2973
- /**
2974
- * Stroke Width
2975
- * @see https://tailwindcss.com/docs/stroke-width
2976
- */
2977
- "stroke-w": [{
2978
- stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
2979
- }],
2980
- /**
2981
- * Stroke
2982
- * @see https://tailwindcss.com/docs/stroke
2983
- */
2984
- stroke: [{
2985
- stroke: ["none", ...scaleColor()]
2986
- }],
2987
- // ---------------------
2988
- // --- Accessibility ---
2989
- // ---------------------
2990
- /**
2991
- * Forced Color Adjust
2992
- * @see https://tailwindcss.com/docs/forced-color-adjust
2993
- */
2994
- "forced-color-adjust": [{
2995
- "forced-color-adjust": ["auto", "none"]
2996
- }]
2997
- },
2998
- conflictingClassGroups: {
2999
- overflow: ["overflow-x", "overflow-y"],
3000
- overscroll: ["overscroll-x", "overscroll-y"],
3001
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
3002
- "inset-x": ["right", "left"],
3003
- "inset-y": ["top", "bottom"],
3004
- flex: ["basis", "grow", "shrink"],
3005
- gap: ["gap-x", "gap-y"],
3006
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
3007
- px: ["pr", "pl"],
3008
- py: ["pt", "pb"],
3009
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
3010
- mx: ["mr", "ml"],
3011
- my: ["mt", "mb"],
3012
- size: ["w", "h"],
3013
- "font-size": ["leading"],
3014
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3015
- "fvn-ordinal": ["fvn-normal"],
3016
- "fvn-slashed-zero": ["fvn-normal"],
3017
- "fvn-figure": ["fvn-normal"],
3018
- "fvn-spacing": ["fvn-normal"],
3019
- "fvn-fraction": ["fvn-normal"],
3020
- "line-clamp": ["display", "overflow"],
3021
- 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"],
3022
- "rounded-s": ["rounded-ss", "rounded-es"],
3023
- "rounded-e": ["rounded-se", "rounded-ee"],
3024
- "rounded-t": ["rounded-tl", "rounded-tr"],
3025
- "rounded-r": ["rounded-tr", "rounded-br"],
3026
- "rounded-b": ["rounded-br", "rounded-bl"],
3027
- "rounded-l": ["rounded-tl", "rounded-bl"],
3028
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
3029
- "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3030
- "border-w-x": ["border-w-r", "border-w-l"],
3031
- "border-w-y": ["border-w-t", "border-w-b"],
3032
- "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3033
- "border-color-x": ["border-color-r", "border-color-l"],
3034
- "border-color-y": ["border-color-t", "border-color-b"],
3035
- translate: ["translate-x", "translate-y", "translate-none"],
3036
- "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3037
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3038
- "scroll-mx": ["scroll-mr", "scroll-ml"],
3039
- "scroll-my": ["scroll-mt", "scroll-mb"],
3040
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3041
- "scroll-px": ["scroll-pr", "scroll-pl"],
3042
- "scroll-py": ["scroll-pt", "scroll-pb"],
3043
- touch: ["touch-x", "touch-y", "touch-pz"],
3044
- "touch-x": ["touch"],
3045
- "touch-y": ["touch"],
3046
- "touch-pz": ["touch"]
3047
- },
3048
- conflictingClassGroupModifiers: {
3049
- "font-size": ["leading"]
3050
- },
3051
- orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3052
- };
3053
- };
3054
- var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
15
+ export * from "@repo/shadcn/ui/button-group"
3055
16
 
3056
- // ../shadcn/lib/utils.ts
3057
- function cn(...inputs) {
3058
- return twMerge(clsx(inputs));
3059
- }
17
+ export * from "@repo/shadcn/ui/chart"
3060
18
 
3061
- // src/alert/alert.tsx
3062
- import { cva } from "class-variance-authority";
3063
- import { CircleXIcon } from "lucide-react";
3064
- import * as React from "react";
3065
- import { jsx, jsxs } from "react/jsx-runtime";
3066
- var variantDefinitions = {
3067
- default: {
3068
- classes: "bg-background text-foreground",
3069
- closeButtonColor: "text-foreground"
3070
- },
3071
- secondary: {
3072
- classes: "bg-muted text-primary [&>svg]:text-primary",
3073
- closeButtonColor: "text-primary"
3074
- },
3075
- outline: {
3076
- classes: "border-muted text-muted-foreground",
3077
- closeButtonColor: "text-muted-foreground"
3078
- },
3079
- destructive: {
3080
- classes: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
3081
- closeButtonColor: "text-destructive"
3082
- },
3083
- success: {
3084
- classes: "border-success-300 bg-success-100 text-success-500",
3085
- closeButtonColor: "text-success-500"
3086
- },
3087
- info: {
3088
- classes: "border-info-300 bg-info-100 text-info-500! [&>svg]:text-info-500",
3089
- closeButtonColor: "text-info-500"
3090
- },
3091
- warning: {
3092
- classes: "border-yellow-500 bg-yellow-50 text-yellow-700! [&>svg]:text-yellow-700",
3093
- closeButtonColor: "text-yellow-700"
3094
- }
3095
- };
3096
- var alertVariants = cva(
3097
- "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
3098
- {
3099
- variants: {
3100
- variant: {
3101
- default: variantDefinitions.default.classes,
3102
- secondary: variantDefinitions.secondary.classes,
3103
- outline: variantDefinitions.outline.classes,
3104
- destructive: variantDefinitions.destructive.classes,
3105
- success: variantDefinitions.success.classes,
3106
- info: variantDefinitions.info.classes,
3107
- warning: variantDefinitions.warning.classes
3108
- }
3109
- },
3110
- defaultVariants: {
3111
- variant: "default"
3112
- }
3113
- }
3114
- );
3115
- var Alert = (_a) => {
3116
- var _b = _a, { className, variant, closable = false, onClose } = _b, props = __objRest(_b, ["className", "variant", "closable", "onClose"]);
3117
- var _a2;
3118
- const [isVisible, setIsVisible] = React.useState(true);
3119
- const handleClose = () => {
3120
- if (onClose) {
3121
- onClose();
3122
- } else {
3123
- setIsVisible(false);
3124
- }
3125
- };
3126
- if (!isVisible) {
3127
- return null;
3128
- }
3129
- return /* @__PURE__ */ jsxs(
3130
- "div",
3131
- __spreadProps(__spreadValues({
3132
- role: "alert",
3133
- className: cn(alertVariants({ variant }), closable && "pr-10", className)
3134
- }, props), {
3135
- children: [
3136
- props.children,
3137
- closable && /* @__PURE__ */ jsx(
3138
- "span",
3139
- {
3140
- onClick: handleClose,
3141
- role: "button",
3142
- tabIndex: 0,
3143
- onKeyDown: (e) => {
3144
- if (e.key === "Enter" || e.key === " ") {
3145
- e.preventDefault();
3146
- handleClose();
3147
- }
3148
- },
3149
- className: "absolute top-4 right-4 z-10 cursor-pointer opacity-70 transition-opacity hover:opacity-100",
3150
- "aria-label": "Close alert",
3151
- children: /* @__PURE__ */ jsx(
3152
- CircleXIcon,
3153
- {
3154
- className: cn("size-4", variant && ((_a2 = variantDefinitions[variant]) == null ? void 0 : _a2.closeButtonColor))
3155
- }
3156
- )
3157
- }
3158
- )
3159
- ]
3160
- })
3161
- );
3162
- };
3163
- var AlertTitle = (_a) => {
3164
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3165
- return /* @__PURE__ */ jsx(
3166
- "div",
3167
- __spreadValues({
3168
- className: cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className)
3169
- }, props)
3170
- );
3171
- };
3172
- var AlertDescription = (_a) => {
3173
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3174
- return /* @__PURE__ */ jsx(
3175
- "div",
3176
- __spreadValues({
3177
- className: cn(
3178
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
3179
- className
3180
- )
3181
- }, props)
3182
- );
3183
- };
19
+ export * from "@repo/shadcn/ui/collapsible"
3184
20
 
3185
- // src/button/button.tsx
3186
- import * as React2 from "react";
3187
- import { cva as cva3 } from "class-variance-authority";
21
+ export * from "@repo/shadcn/ui/command"
3188
22
 
3189
- // src/icons/icon-wrapper.tsx
3190
- import { jsx as jsx2 } from "react/jsx-runtime";
3191
- function Icon(_a) {
3192
- var _b = _a, {
3193
- icon: IconComponent,
3194
- strokeWidth = 1,
3195
- absoluteStrokeWidth = true,
3196
- size = 16
3197
- } = _b, props = __objRest(_b, [
3198
- "icon",
3199
- "strokeWidth",
3200
- "absoluteStrokeWidth",
3201
- "size"
3202
- ]);
3203
- return /* @__PURE__ */ jsx2(
3204
- IconComponent,
3205
- __spreadProps(__spreadValues({}, props), {
3206
- strokeWidth,
3207
- absoluteStrokeWidth,
3208
- size
3209
- })
3210
- );
3211
- }
23
+ export * from "@repo/shadcn/ui/hover-card"
3212
24
 
3213
- // src/icons/spinner-icon.tsx
3214
- import { cva as cva2 } from "class-variance-authority";
3215
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
3216
- var spinnerVariants = cva2("animate-spin", {
3217
- variants: {
3218
- size: {
3219
- xs: "size-3",
3220
- sm: "size-4",
3221
- md: "size-6",
3222
- lg: "size-8",
3223
- xl: "size-10",
3224
- "2xl": "size-12",
3225
- "3xl": "size-14",
3226
- "4xl": "size-16",
3227
- "5xl": "size-18",
3228
- "6xl": "size-20",
3229
- "7xl": "size-22",
3230
- "8xl": "size-24",
3231
- "9xl": "size-26"
3232
- }
3233
- },
3234
- defaultVariants: {
3235
- size: "md"
3236
- }
3237
- });
3238
- var SpinnerIcon = (_a) => {
3239
- var _b = _a, {
3240
- size,
3241
- className,
3242
- trackClassName = "text-border",
3243
- indicatorClassName = "text-primary"
3244
- } = _b, props = __objRest(_b, [
3245
- "size",
3246
- "className",
3247
- "trackClassName",
3248
- "indicatorClassName"
3249
- ]);
3250
- return /* @__PURE__ */ jsxs2(
3251
- "svg",
3252
- __spreadProps(__spreadValues({
3253
- viewBox: "0 0 64 64",
3254
- fill: "none",
3255
- xmlns: "http://www.w3.org/2000/svg",
3256
- className: cn(spinnerVariants({ size }), className)
3257
- }, props), {
3258
- children: [
3259
- /* @__PURE__ */ jsx3(
3260
- "path",
3261
- {
3262
- d: "M32 3C35.8083 3 39.5794 3.75011 43.0978 5.20749C46.6163 6.66488 49.8132 8.80101 52.5061 11.4939C55.199 14.1868 57.3351 17.3837 58.7925 20.9022C60.2499 24.4206 61 28.1917 61 32C61 35.8083 60.2499 39.5794 58.7925 43.0978C57.3351 46.6163 55.199 49.8132 52.5061 52.5061C49.8132 55.199 46.6163 57.3351 43.0978 58.7925C39.5794 60.2499 35.8083 61 32 61C28.1917 61 24.4206 60.2499 20.9022 58.7925C17.3837 57.3351 14.1868 55.199 11.4939 52.5061C8.801 49.8132 6.66487 46.6163 5.20749 43.0978C3.7501 39.5794 3 35.8083 3 32C3 28.1917 3.75011 24.4206 5.2075 20.9022C6.66489 17.3837 8.80101 14.1868 11.4939 11.4939C14.1868 8.80099 17.3838 6.66487 20.9022 5.20749C24.4206 3.7501 28.1917 3 32 3L32 3Z",
3263
- stroke: "currentColor",
3264
- strokeWidth: "5",
3265
- strokeLinecap: "round",
3266
- strokeLinejoin: "round",
3267
- className: trackClassName
3268
- }
3269
- ),
3270
- /* @__PURE__ */ jsx3(
3271
- "path",
3272
- {
3273
- d: "M32 3C36.5778 3 41.0906 4.08374 45.1692 6.16256C49.2477 8.24138 52.7762 11.2562 55.466 14.9605C58.1558 18.6647 59.9304 22.9531 60.6448 27.4748C61.3591 31.9965 60.9928 36.6232 59.5759 40.9762",
3274
- stroke: "currentColor",
3275
- strokeWidth: "5",
3276
- strokeLinecap: "round",
3277
- strokeLinejoin: "round",
3278
- className: indicatorClassName
3279
- }
3280
- )
3281
- ]
3282
- })
3283
- );
3284
- };
25
+ export * from "@repo/shadcn/ui/input-group"
26
+
27
+ export * from "@repo/shadcn/ui/map"
3285
28
 
3286
- // src/icons/close-icon.tsx
3287
- import { jsx as jsx4 } from "react/jsx-runtime";
3288
- var CloseIcon = ({
3289
- className,
3290
- fill = "fill-foreground"
3291
- }) => {
3292
- return /* @__PURE__ */ jsx4(
3293
- "svg",
3294
- {
3295
- width: "17",
3296
- height: "17",
3297
- viewBox: "0 0 17 17",
3298
- fill: "none",
3299
- xmlns: "http://www.w3.org/2000/svg",
3300
- className: cn("transition-opacity hover:opacity-90", className),
3301
- children: /* @__PURE__ */ jsx4(
3302
- "path",
3303
- {
3304
- opacity: "0.2",
3305
- d: "M2.38191 2.38176C5.55755 -0.793655 10.7065 -0.793755 13.8821 2.38176C17.0576 5.55733 17.0575 10.7063 13.8821 13.8819C10.7064 17.0576 5.55755 17.0575 2.38191 13.8819C-0.793671 10.7063 -0.793707 5.55738 2.38191 2.38176ZM6.76887 8.15117L4.4107 10.5093L5.76346 11.8621L8.12163 9.50393L10.486 11.8683L11.8388 10.5156L9.47439 8.15117L11.8519 5.77366L10.4991 4.42091L8.12163 6.79841L5.75034 4.42712L4.39758 5.77988L6.76887 8.15117Z",
3306
- className: fill
3307
- }
3308
- )
3309
- }
3310
- );
3311
- };
29
+ export * from "@repo/shadcn/ui/place-autocomplete"
3312
30
 
3313
- // src/button/button.tsx
3314
- import { Fragment, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
3315
- var buttonVariants = cva3(
3316
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-50",
3317
- {
3318
- variants: {
3319
- type: {
3320
- primary: "",
3321
- secondary: "",
3322
- tertiary: "",
3323
- quaternary: "",
3324
- warning: "",
3325
- danger: "",
3326
- success: ""
3327
- },
3328
- theme: {
3329
- solid: "",
3330
- light: "",
3331
- outline: "border",
3332
- borderless: "border-0 bg-transparent",
3333
- link: "text-primary underline-offset-2 underline hover:opacity-80"
3334
- },
3335
- size: {
3336
- xs: "h-7 px-2.5 text-xs",
3337
- small: "h-9 px-3 text-xs",
3338
- default: "h-9 px-4 py-2",
3339
- large: "h-11 px-8 text-base",
3340
- icon: "h-9 w-9",
3341
- link: "px-0 py-0"
3342
- },
3343
- block: {
3344
- true: "w-full",
3345
- false: ""
3346
- }
3347
- },
3348
- compoundVariants: [
3349
- // Primary button variants
3350
- {
3351
- type: "primary",
3352
- theme: "solid",
3353
- className: "bg-btn-primary border border-primary text-primary-foreground hover:bg-primary active:bg-primary disabled:bg-primary/60"
3354
- },
3355
- {
3356
- type: "primary",
3357
- theme: "light",
3358
- className: "bg-gray-200 text-primary hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:hover:bg-gray-600 dark:active:bg-gray-500"
3359
- },
3360
- {
3361
- type: "primary",
3362
- theme: "outline",
3363
- className: "border-primary text-primary hover:bg-primary hover:text-primary-foreground active:bg-primary/90 active:text-primary-foreground"
3364
- },
3365
- {
3366
- type: "primary",
3367
- theme: "borderless",
3368
- className: "text-primary hover:bg-gray-200 active:bg-gray-300 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3369
- },
3370
- // Secondary button variants
3371
- {
3372
- type: "secondary",
3373
- theme: "solid",
3374
- className: "bg-btn-secondary border border-secondary text-secondary-foreground hover:bg-secondary active:bg-secondary disabled:bg-secondary/60"
3375
- },
3376
- {
3377
- type: "secondary",
3378
- theme: "light",
3379
- className: "bg-gray-200 text-secondary hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:hover:bg-gray-600 dark:active:bg-gray-500"
3380
- },
3381
- {
3382
- type: "secondary",
3383
- theme: "outline",
3384
- className: "border-secondary/90 hover:border-secondary text-secondary active:bg-secondary/90 active:text-secondary-foreground"
3385
- },
3386
- {
3387
- type: "secondary",
3388
- theme: "borderless",
3389
- className: "text-secondary hover:bg-gray-200 active:bg-gray-300 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3390
- },
3391
- // Tertiary button variants
3392
- {
3393
- type: "tertiary",
3394
- theme: "solid",
3395
- className: "bg-btn-tertiary border border-tertiary text-tertiary-foreground hover:bg-tertiary active:bg-tertiary disabled:bg-tertiary/60"
3396
- },
3397
- {
3398
- type: "tertiary",
3399
- theme: "light",
3400
- className: "bg-gray-200 text-tertiary hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:hover:bg-gray-600 dark:active:bg-gray-500"
3401
- },
3402
- {
3403
- type: "tertiary",
3404
- theme: "outline",
3405
- className: "border-tertiary text-tertiary hover:bg-tertiary hover:text-tertiary-foreground active:bg-tertiary/90 active:text-tertiary-foreground"
3406
- },
3407
- {
3408
- type: "tertiary",
3409
- theme: "borderless",
3410
- className: "text-tertiary hover:bg-gray-200 active:bg-gray-300 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3411
- },
3412
- // Quaternary button variants
3413
- {
3414
- type: "quaternary",
3415
- theme: "solid",
3416
- className: "bg-btn-quaternary border border-quaternary text-quaternary-foreground hover:bg-quaternary active:bg-quaternary disabled:bg-quaternary/60"
3417
- },
3418
- {
3419
- type: "quaternary",
3420
- theme: "light",
3421
- className: "bg-gray-200 text-quaternary-foreground hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:hover:bg-gray-600 dark:active:bg-gray-500 dark:text-quaternary-foreground"
3422
- },
3423
- {
3424
- type: "quaternary",
3425
- theme: "outline",
3426
- className: "border-quaternary text-quaternary-foreground hover:border-btn-quaternary-hover hover:text-quaternary-foreground active:bg-quaternary/90 active:text-quaternary-foreground"
3427
- },
3428
- {
3429
- type: "quaternary",
3430
- theme: "borderless",
3431
- className: "text-quaternary-foreground hover:bg-gray-200 active:bg-gray-300 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3432
- },
3433
- // Warning button variants
3434
- {
3435
- type: "warning",
3436
- theme: "solid",
3437
- className: "bg-yellow-600 text-white hover:bg-yellow-700 active:bg-yellow-800 dark:bg-yellow-500 dark:hover:bg-yellow-600 dark:active:bg-yellow-700"
3438
- },
3439
- {
3440
- type: "warning",
3441
- theme: "light",
3442
- className: "bg-gray-200 text-yellow-600 hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:text-yellow-400 dark:hover:bg-gray-600 dark:active:bg-gray-500"
3443
- },
3444
- {
3445
- type: "warning",
3446
- theme: "outline",
3447
- className: "border-yellow-600 text-yellow-600 hover:bg-yellow-600 hover:text-white active:bg-yellow-700 active:text-white dark:border-yellow-500 dark:text-yellow-500 dark:hover:bg-yellow-500 dark:hover:text-white dark:active:bg-yellow-600 dark:active:text-white"
3448
- },
3449
- {
3450
- type: "warning",
3451
- theme: "borderless",
3452
- className: "text-yellow-600 hover:bg-gray-200 active:bg-gray-300 dark:text-yellow-400 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3453
- },
3454
- // Danger button variants
3455
- {
3456
- type: "danger",
3457
- theme: "solid",
3458
- className: "bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80"
3459
- },
3460
- {
3461
- type: "danger",
3462
- theme: "light",
3463
- className: "bg-gray-200 text-destructive hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:hover:bg-gray-600 dark:active:bg-gray-500"
3464
- },
3465
- {
3466
- type: "danger",
3467
- theme: "outline",
3468
- className: "border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground active:bg-destructive/90 active:text-destructive-foreground"
3469
- },
3470
- {
3471
- type: "danger",
3472
- theme: "borderless",
3473
- className: "text-destructive hover:bg-gray-200 active:bg-gray-300 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3474
- },
3475
- // Success button variants
3476
- {
3477
- type: "success",
3478
- theme: "solid",
3479
- className: "bg-green-600 text-white hover:bg-green-700 active:bg-green-800 dark:bg-green-500 dark:hover:bg-green-600 dark:active:bg-green-700"
3480
- },
3481
- {
3482
- type: "success",
3483
- theme: "light",
3484
- className: "bg-gray-200 text-green-600 hover:bg-gray-300 active:bg-gray-400 dark:bg-gray-700 dark:text-green-400 dark:hover:bg-gray-600 dark:active:bg-gray-500"
3485
- },
3486
- {
3487
- type: "success",
3488
- theme: "outline",
3489
- className: "border-green-600 text-green-600 hover:bg-green-600 hover:text-white active:bg-green-700 active:text-white dark:border-green-500 dark:text-green-500 dark:hover:bg-green-500 dark:hover:text-white dark:active:bg-green-600 dark:active:text-white"
3490
- },
3491
- {
3492
- type: "success",
3493
- theme: "borderless",
3494
- className: "text-green-600 hover:bg-gray-200 active:bg-gray-300 dark:text-green-400 dark:hover:bg-gray-700 dark:active:bg-gray-600"
3495
- }
3496
- ],
3497
- defaultVariants: {
3498
- type: "primary",
3499
- theme: "solid",
3500
- size: "default",
3501
- block: false
3502
- }
3503
- }
3504
- );
3505
- var Button = React2.forwardRef(
3506
- (_a, ref) => {
3507
- var _b = _a, {
3508
- className,
3509
- type,
3510
- theme,
3511
- size,
3512
- block,
3513
- loading = false,
3514
- disabled,
3515
- icon,
3516
- iconPosition = "left",
3517
- loadingIcon,
3518
- htmlType = "button",
3519
- children
3520
- } = _b, props = __objRest(_b, [
3521
- "className",
3522
- "type",
3523
- "theme",
3524
- "size",
3525
- "block",
3526
- "loading",
3527
- "disabled",
3528
- "icon",
3529
- "iconPosition",
3530
- "loadingIcon",
3531
- "htmlType",
3532
- "children"
3533
- ]);
3534
- const isDisabled = disabled || loading;
3535
- const isIconOnly = (icon || loading) && !children;
3536
- const showIcon = !loading && icon;
3537
- const getLoadingIcon = () => {
3538
- return loadingIcon || /* @__PURE__ */ jsx5(
3539
- SpinnerIcon,
3540
- {
3541
- "aria-hidden": "true",
3542
- size: size === "small" ? "xs" : size === "large" ? "sm" : "md"
3543
- }
3544
- );
3545
- };
3546
- const showLoadingIcon = loading && (isIconOnly ? getLoadingIcon() : /* @__PURE__ */ jsx5(SpinnerIcon, { size: "sm", "aria-hidden": "true" }));
3547
- const getIconOnlyClass = () => {
3548
- if (!isIconOnly || size === "icon") return "";
3549
- if (size === "small") return "w-8 px-0";
3550
- if (size === "large") return "w-11 px-0";
3551
- return "w-9 px-0";
3552
- };
3553
- return /* @__PURE__ */ jsx5(
3554
- "button",
3555
- __spreadProps(__spreadValues({
3556
- className: cn(buttonVariants({ type, theme, size, block }), getIconOnlyClass(), className),
3557
- disabled: isDisabled,
3558
- ref,
3559
- type: htmlType
3560
- }, props), {
3561
- children: isIconOnly ? loading ? showLoadingIcon : showIcon && icon : /* @__PURE__ */ jsxs3(Fragment, { children: [
3562
- showLoadingIcon && showLoadingIcon,
3563
- showIcon && iconPosition === "left" && icon,
3564
- children,
3565
- showIcon && iconPosition === "right" && icon
3566
- ] })
3567
- })
3568
- );
3569
- }
3570
- );
3571
- Button.displayName = "Button";
31
+ export * from "@repo/shadcn/ui/popover"
3572
32
 
3573
- // src/button/link-button.tsx
3574
- import * as React3 from "react";
3575
- import { Link } from "react-router";
3576
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
3577
- var LinkButton = React3.forwardRef(
3578
- (_a, ref) => {
3579
- var _b = _a, { className, type, theme, size, block, icon, iconPosition = "left", children } = _b, props = __objRest(_b, ["className", "type", "theme", "size", "block", "icon", "iconPosition", "children"]);
3580
- const isIconOnly = icon && !children;
3581
- const getIconOnlyClass = () => {
3582
- if (!isIconOnly || size === "icon") return "";
3583
- if (size === "small") return "w-8 px-0";
3584
- if (size === "large") return "w-11 px-0";
3585
- return "w-9 px-0";
3586
- };
3587
- return /* @__PURE__ */ jsx6(
3588
- Link,
3589
- __spreadProps(__spreadValues({
3590
- className: cn(buttonVariants({ type, theme, size, block }), getIconOnlyClass(), className),
3591
- ref
3592
- }, props), {
3593
- children: isIconOnly ? icon : /* @__PURE__ */ jsxs4(Fragment2, { children: [
3594
- icon && iconPosition === "left" && icon,
3595
- children,
3596
- icon && iconPosition === "right" && icon
3597
- ] })
3598
- })
3599
- );
3600
- }
3601
- );
3602
- LinkButton.displayName = "LinkButton";
33
+ export * from "@repo/shadcn/ui/separator"
3603
34
 
3604
- // src/tooltip/tooltip.tsx
3605
- import * as TooltipPrimitiveRadix from "@radix-ui/react-tooltip";
35
+ export * from "@repo/shadcn/ui/skeleton"
3606
36
 
3607
- // ../shadcn/ui/tooltip.tsx
3608
- import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3609
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
3610
- var TooltipProvider = (_a) => {
3611
- var _b = _a, {
3612
- delayDuration = 0
3613
- } = _b, props = __objRest(_b, [
3614
- "delayDuration"
3615
- ]);
3616
- return /* @__PURE__ */ jsx7(
3617
- TooltipPrimitive.Provider,
3618
- __spreadValues({
3619
- "data-slot": "tooltip-provider",
3620
- delayDuration
3621
- }, props)
3622
- );
3623
- };
3624
- var Tooltip = (_a) => {
3625
- var props = __objRest(_a, []);
3626
- return /* @__PURE__ */ jsx7(TooltipProvider, { children: /* @__PURE__ */ jsx7(TooltipPrimitive.Root, __spreadValues({ "data-slot": "tooltip" }, props)) });
3627
- };
3628
- var TooltipTrigger = (_a) => {
3629
- var props = __objRest(_a, []);
3630
- return /* @__PURE__ */ jsx7(TooltipPrimitive.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
3631
- };
37
+ export * from "@repo/shadcn/ui/spinner"
38
+
39
+ export * from "@repo/shadcn/ui/table"
40
+
41
+ export * from "@repo/shadcn/ui/visuallyhidden"
42
+
43
+ //#region src/index.ts
44
+ var src_exports = /* @__PURE__ */ __exportAll({
45
+ AbsoluteRangePanel: () => CustomRangePanel,
46
+ Alert: () => Alert,
47
+ AlertDescription: () => AlertDescription,
48
+ AlertTitle: () => AlertTitle,
49
+ AppSidebar: () => AppSidebar,
50
+ Autocomplete: () => Autocomplete,
51
+ AvatarStack: () => AvatarStack,
52
+ Badge: () => Badge,
53
+ Button: () => Button,
54
+ Calendar: () => Calendar,
55
+ CalendarDatePicker: () => CalendarDatePicker,
56
+ CalendarDayButton: () => CalendarDayButton,
57
+ Card: () => Card,
58
+ CardContent: () => CardContent,
59
+ CardDescription: () => CardDescription,
60
+ CardFooter: () => CardFooter,
61
+ CardHeader: () => CardHeader,
62
+ CardTitle: () => CardTitle,
63
+ Checkbox: () => Checkbox,
64
+ ClientOnly: () => ClientOnly,
65
+ CloseIcon: () => CloseIcon,
66
+ Col: () => Col,
67
+ CustomRangePanel: () => CustomRangePanel,
68
+ DEFAULT_PRESETS: () => DEFAULT_PRESETS,
69
+ DatumProvider: () => DatumProvider,
70
+ Dialog: () => Dialog,
71
+ DropdownMenu: () => DropdownMenu,
72
+ DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
73
+ DropdownMenuContent: () => DropdownMenuContent,
74
+ DropdownMenuGroup: () => DropdownMenuGroup,
75
+ DropdownMenuItem: () => DropdownMenuItem,
76
+ DropdownMenuLabel: () => DropdownMenuLabel,
77
+ DropdownMenuPortal: () => DropdownMenuPortal,
78
+ DropdownMenuRadioGroup: () => DropdownMenuRadioGroup,
79
+ DropdownMenuRadioItem: () => DropdownMenuRadioItem,
80
+ DropdownMenuSeparator: () => DropdownMenuSeparator,
81
+ DropdownMenuShortcut: () => DropdownMenuShortcut,
82
+ DropdownMenuSub: () => DropdownMenuSub,
83
+ DropdownMenuSubContent: () => DropdownMenuSubContent,
84
+ DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
85
+ DropdownMenuTrigger: () => DropdownMenuTrigger,
86
+ Dropzone: () => Dropzone,
87
+ DropzoneContent: () => DropzoneContent,
88
+ DropzoneEmptyState: () => DropzoneEmptyState,
89
+ EmptyContent: () => EmptyContent,
90
+ FileInputButton: () => FileInputButton,
91
+ Form: () => Form,
92
+ FormAutocomplete: () => FormAutocomplete,
93
+ FormButton: () => FormButton,
94
+ FormCheckbox: () => FormCheckbox,
95
+ FormCopyBox: () => FormCopyBox,
96
+ FormCustom: () => FormCustom,
97
+ FormDescription: () => FormDescription,
98
+ FormDialog: () => FormDialog,
99
+ FormError: () => FormError,
100
+ FormField: () => FormField,
101
+ FormFieldArray: () => FormFieldArray,
102
+ FormInput: () => FormInput,
103
+ FormRadioGroup: () => FormRadioGroup,
104
+ FormRadioItem: () => FormRadioItem,
105
+ FormRoot: () => FormRoot,
106
+ FormSelect: () => FormSelect,
107
+ FormSelectItem: () => FormSelectItem,
108
+ FormStep: () => FormStep,
109
+ FormStepper: () => FormStepper,
110
+ FormSubmit: () => FormSubmit,
111
+ FormSwitch: () => FormSwitch,
112
+ FormTextarea: () => FormTextarea,
113
+ FormWhen: () => FormWhen,
114
+ GRID_BREAKPOINTS: () => GRID_BREAKPOINTS,
115
+ GRID_COLUMNS: () => GRID_COLUMNS,
116
+ GRID_PREFIX: () => GRID_PREFIX,
117
+ Icon: () => Icon,
118
+ Input: () => Input,
119
+ InputNumber: () => InputNumber,
120
+ InputWithAddons: () => InputWithAddons,
121
+ Label: () => Label,
122
+ LinkButton: () => LinkButton,
123
+ LoaderOverlay: () => LoaderOverlay,
124
+ LocalTaskStorage: () => LocalTaskStorage,
125
+ MoreActions: () => MoreActions,
126
+ NavMain: () => NavMain,
127
+ PageTitle: () => PageTitle,
128
+ QuickRangesPanel: () => QuickRangesPanel,
129
+ RESPONSIVE_ARRAY: () => RESPONSIVE_ARRAY,
130
+ RESPONSIVE_MAP: () => RESPONSIVE_MAP,
131
+ RadioGroup: () => RadioGroup,
132
+ RadioGroupItem: () => RadioGroupItem,
133
+ RedisTaskStorage: () => RedisTaskStorage,
134
+ Row: () => Row,
135
+ RowContext: () => RowContext,
136
+ Select: () => Select,
137
+ SelectContent: () => SelectContent,
138
+ SelectGroup: () => SelectGroup,
139
+ SelectItem: () => SelectItem,
140
+ SelectLabel: () => SelectLabel,
141
+ SelectScrollDownButton: () => SelectScrollDownButton,
142
+ SelectScrollUpButton: () => SelectScrollUpButton,
143
+ SelectSeparator: () => SelectSeparator,
144
+ SelectTrigger: () => SelectTrigger,
145
+ SelectValue: () => SelectValue,
146
+ Sheet: () => Sheet,
147
+ SheetClose: () => SheetClose,
148
+ SheetContent: () => SheetContent,
149
+ SheetDescription: () => SheetDescription,
150
+ SheetFooter: () => SheetFooter,
151
+ SheetHeader: () => SheetHeader,
152
+ SheetOverlay: () => SheetOverlay,
153
+ SheetTitle: () => SheetTitle,
154
+ SheetTrigger: () => SheetTrigger,
155
+ Sidebar: () => Sidebar,
156
+ SidebarContent: () => SidebarContent,
157
+ SidebarFooter: () => SidebarFooter,
158
+ SidebarGroup: () => SidebarGroup,
159
+ SidebarGroupAction: () => SidebarGroupAction,
160
+ SidebarGroupContent: () => SidebarGroupContent,
161
+ SidebarGroupLabel: () => SidebarGroupLabel,
162
+ SidebarHeader: () => SidebarHeader,
163
+ SidebarInput: () => SidebarInput,
164
+ SidebarInset: () => SidebarInset,
165
+ SidebarMenu: () => SidebarMenu,
166
+ SidebarMenuAction: () => SidebarMenuAction,
167
+ SidebarMenuBadge: () => SidebarMenuBadge,
168
+ SidebarMenuButton: () => SidebarMenuButton,
169
+ SidebarMenuItem: () => SidebarMenuItem,
170
+ SidebarMenuSkeleton: () => SidebarMenuSkeleton,
171
+ SidebarMenuSub: () => SidebarMenuSub,
172
+ SidebarMenuSubButton: () => SidebarMenuSubButton,
173
+ SidebarMenuSubItem: () => SidebarMenuSubItem,
174
+ SidebarProvider: () => SidebarProvider,
175
+ SidebarRail: () => SidebarRail,
176
+ SidebarSeparator: () => SidebarSeparator,
177
+ SidebarTrigger: () => SidebarTrigger,
178
+ SpinnerIcon: () => SpinnerIcon,
179
+ StepperControls: () => StepperControls,
180
+ StepperNavigation: () => StepperNavigation,
181
+ Switch: () => Switch,
182
+ Tabs: () => Tabs,
183
+ TabsContent: () => TabsContent,
184
+ TabsLinkTrigger: () => TabsLinkTrigger,
185
+ TabsList: () => TabsList,
186
+ TabsTrigger: () => TabsTrigger,
187
+ TagsInput: () => TagsInput,
188
+ TaskPanel: () => TaskPanel,
189
+ TaskPanelActions: () => TaskPanelActions,
190
+ TaskPanelCounter: () => TaskPanelCounter,
191
+ TaskPanelHeader: () => TaskPanelHeader,
192
+ TaskPanelItem: () => TaskPanelItem,
193
+ TaskQueue: () => TaskQueue,
194
+ TaskQueueDropdown: () => TaskQueueDropdown,
195
+ TaskQueueProvider: () => TaskQueueProvider,
196
+ TaskQueueTrigger: () => TaskQueueTrigger,
197
+ TaskSummaryDialog: () => TaskSummaryDialog,
198
+ Textarea: () => Textarea,
199
+ ThemeProvider: () => ThemeProvider,
200
+ ThemeScript: () => ThemeScript,
201
+ TimeRangePicker: () => TimeRangePicker,
202
+ TimezoneSelector: () => TimezoneSelector,
203
+ Toaster: () => Toaster,
204
+ Tooltip: () => Tooltip,
205
+ avatarStackVariants: () => avatarStackVariants,
206
+ badgeVariants: () => badgeVariants,
207
+ buttonVariants: () => buttonVariants,
208
+ cn: () => cn,
209
+ configureProgress: () => configureProgress,
210
+ createOrgMetadata: () => createOrgMetadata,
211
+ createProjectMetadata: () => createProjectMetadata,
212
+ createTimezoneOption: () => createTimezoneOption,
213
+ createUserMetadata: () => createUserMetadata,
214
+ defineStepper: () => defineStepper,
215
+ detectStorage: () => detectStorage,
216
+ formatDateForInput: () => formatDateForInput,
217
+ formatSingleTimeDisplay: () => formatSingleTimeDisplay,
218
+ formatTimeRangeDisplay: () => formatTimeRangeDisplay,
219
+ formatTimezoneLabel: () => formatTimezoneLabel,
220
+ formatUtcForDisplay: () => formatUtcForDisplay,
221
+ getBrowserTimezone: () => getBrowserTimezone,
222
+ getContextLabel: () => getContextLabel,
223
+ getDefaultPreset: () => getDefaultPreset,
224
+ getDefaultTimezoneOptions: () => getDefaultTimezoneOptions,
225
+ getGutter: () => getGutter,
226
+ getPresetByKey: () => getPresetByKey,
227
+ getPresetByShortcut: () => getPresetByShortcut,
228
+ getPresetRange: () => getPresetRange,
229
+ getResponsiveValue: () => getResponsiveValue,
230
+ getShortTimezoneDisplay: () => getShortTimezoneDisplay,
231
+ getTimezoneOffset: () => getTimezoneOffset,
232
+ localInputStringToUtc: () => localInputStringToUtc,
233
+ matchesCurrentScope: () => matchesCurrentScope,
234
+ registerMediaQuery: () => registerMediaQuery,
235
+ startProgress: () => startProgress,
236
+ stopProgress: () => stopProgress,
237
+ toApiTimeRange: () => toApiTimeRange,
238
+ toast: () => toast,
239
+ useCopyToClipboard: () => useCopyToClipboard,
240
+ useCurrentScope: () => useCurrentScope,
241
+ useDebounce: () => useDebounce,
242
+ useField: () => useField,
243
+ useFieldContext: () => useFieldContext,
244
+ useFormContext: () => useFormContext,
245
+ useSidebar: () => useSidebar,
246
+ useStepper: () => useStepper,
247
+ useTaskQueue: () => useTaskQueue,
248
+ useTasksWithLabels: () => useTasksWithLabels,
249
+ useTheme: () => useTheme,
250
+ useToast: () => useToast,
251
+ useWatch: () => useWatch,
252
+ useWatchAll: () => useWatchAll,
253
+ utcStringToZonedDate: () => utcStringToZonedDate,
254
+ utcToLocalInputString: () => utcToLocalInputString,
255
+ zonedDateToUtcString: () => zonedDateToUtcString
256
+ });
257
+ __reExport(src_exports, components_exports);
3632
258
 
3633
- // src/tooltip/tooltip.tsx
3634
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
3635
- var TooltipContent = (_a) => {
3636
- var _b = _a, {
3637
- className,
3638
- arrowClassName,
3639
- sideOffset = 0,
3640
- children
3641
- } = _b, props = __objRest(_b, [
3642
- "className",
3643
- "arrowClassName",
3644
- "sideOffset",
3645
- "children"
3646
- ]);
3647
- return /* @__PURE__ */ jsx8(TooltipPrimitiveRadix.Portal, { children: /* @__PURE__ */ jsxs6(
3648
- TooltipPrimitiveRadix.Content,
3649
- __spreadProps(__spreadValues({
3650
- "data-slot": "tooltip-content",
3651
- sideOffset,
3652
- className: cn(
3653
- "tooltip-content",
3654
- "bg-secondary text-secondary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance",
3655
- className
3656
- )
3657
- }, props), {
3658
- children: [
3659
- children,
3660
- /* @__PURE__ */ jsx8(
3661
- TooltipPrimitiveRadix.Arrow,
3662
- {
3663
- className: cn(
3664
- "fill-secondary -my-px border-none drop-shadow-[0_1px_0_secondary]",
3665
- arrowClassName
3666
- ),
3667
- width: 12,
3668
- height: 7,
3669
- "aria-hidden": "true"
3670
- }
3671
- )
3672
- ]
3673
- })
3674
- ) });
3675
- };
3676
- var Tooltip2 = ({
3677
- message,
3678
- children,
3679
- delayDuration = 200,
3680
- side,
3681
- align,
3682
- sideOffset,
3683
- hidden,
3684
- open,
3685
- onOpenChange,
3686
- contentClassName,
3687
- arrowClassName
3688
- }) => {
3689
- return /* @__PURE__ */ jsxs6(Tooltip, { delayDuration, open, onOpenChange, children: [
3690
- /* @__PURE__ */ jsx8(TooltipTrigger, { asChild: true, children }),
3691
- /* @__PURE__ */ jsx8(
3692
- TooltipContent,
3693
- {
3694
- side,
3695
- align,
3696
- sideOffset,
3697
- hidden,
3698
- className: contentClassName,
3699
- arrowClassName,
3700
- children: /* @__PURE__ */ jsx8("span", { children: message })
3701
- }
3702
- )
3703
- ] });
3704
- };
3705
- export {
3706
- Alert,
3707
- AlertDescription,
3708
- AlertTitle,
3709
- Button,
3710
- CloseIcon,
3711
- Icon,
3712
- LinkButton,
3713
- SpinnerIcon,
3714
- Tooltip2 as Tooltip,
3715
- TooltipContent,
3716
- alertVariants,
3717
- buttonVariants,
3718
- cn
3719
- };
259
+ //#endregion
260
+ export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, Alert, AlertDescription, AlertTitle, AppSidebar, Autocomplete, AvatarStack, Badge, Button, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ClientOnly, CloseIcon, Col, DEFAULT_PRESETS, DatumProvider, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAutocomplete, FormButton, FormCheckbox, FormCopyBox, FormCustom, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormStep, FormStepper, FormSubmit, FormSwitch, FormTextarea, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, Icon, Input, InputNumber, InputWithAddons, Label, LinkButton, LoaderOverlay, LocalTaskStorage, MoreActions, NavMain, PageTitle, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SpinnerIcon, StepperControls, StepperNavigation, Switch, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Textarea, ThemeProvider, ThemeScript, TimeRangePicker, TimezoneSelector, Toaster, Tooltip, avatarStackVariants, badgeVariants, buttonVariants, cn, configureProgress, createOrgMetadata, createProjectMetadata, createTimezoneOption, createUserMetadata, defineStepper, detectStorage, formatDateForInput, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimezoneOffset, localInputStringToUtc, matchesCurrentScope, registerMediaQuery, startProgress, stopProgress, toApiTimeRange, toast, useCopyToClipboard, useCurrentScope, useDebounce, useField, useFieldContext, useFormContext, useSidebar, useStepper, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, zonedDateToUtcString };
261
+ //# sourceMappingURL=index.mjs.map