@page-speed/lightbox 0.1.3 → 0.1.4

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.
@@ -637,8 +637,8 @@ var require_pdf = __commonJS({
637
637
  exports2.FeatureTest = FeatureTest;
638
638
  const hexNumbers = [...Array(256).keys()].map((n) => n.toString(16).padStart(2, "0"));
639
639
  class Util {
640
- static makeHexColor(r, g, b) {
641
- return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;
640
+ static makeHexColor(r2, g, b) {
641
+ return `#${hexNumbers[r2]}${hexNumbers[g]}${hexNumbers[b]}`;
642
642
  }
643
643
  static scaleMinMax(transform, minMax) {
644
644
  let temp;
@@ -698,11 +698,11 @@ var require_pdf = __commonJS({
698
698
  const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
699
699
  return [xt, yt];
700
700
  }
701
- static getAxialAlignedBoundingBox(r, m) {
702
- const p1 = this.applyTransform(r, m);
703
- const p2 = this.applyTransform(r.slice(2, 4), m);
704
- const p3 = this.applyTransform([r[0], r[3]], m);
705
- const p4 = this.applyTransform([r[2], r[1]], m);
701
+ static getAxialAlignedBoundingBox(r2, m) {
702
+ const p1 = this.applyTransform(r2, m);
703
+ const p2 = this.applyTransform(r2.slice(2, 4), m);
704
+ const p3 = this.applyTransform([r2[0], r2[3]], m);
705
+ const p4 = this.applyTransform([r2[2], r2[1]], m);
706
706
  return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
707
707
  }
708
708
  static inverseTransform(m) {
@@ -722,16 +722,16 @@ var require_pdf = __commonJS({
722
722
  return [Math.sqrt(sx), Math.sqrt(sy)];
723
723
  }
724
724
  static normalizeRect(rect) {
725
- const r = rect.slice(0);
725
+ const r2 = rect.slice(0);
726
726
  if (rect[0] > rect[2]) {
727
- r[0] = rect[2];
728
- r[2] = rect[0];
727
+ r2[0] = rect[2];
728
+ r2[2] = rect[0];
729
729
  }
730
730
  if (rect[1] > rect[3]) {
731
- r[1] = rect[3];
732
- r[3] = rect[1];
731
+ r2[1] = rect[3];
732
+ r2[3] = rect[1];
733
733
  }
734
- return r;
734
+ return r2;
735
735
  }
736
736
  static intersect(rect1, rect2) {
737
737
  const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));
@@ -7916,13 +7916,13 @@ var require_pdf = __commonJS({
7916
7916
  this.current.fillColor = this.getColorN_Pattern(arguments);
7917
7917
  this.current.patternFill = true;
7918
7918
  }
7919
- setStrokeRGBColor(r, g, b) {
7920
- const color = _util2.Util.makeHexColor(r, g, b);
7919
+ setStrokeRGBColor(r2, g, b) {
7920
+ const color = _util2.Util.makeHexColor(r2, g, b);
7921
7921
  this.ctx.strokeStyle = color;
7922
7922
  this.current.strokeColor = color;
7923
7923
  }
7924
- setFillRGBColor(r, g, b) {
7925
- const color = _util2.Util.makeHexColor(r, g, b);
7924
+ setFillRGBColor(r2, g, b) {
7925
+ const color = _util2.Util.makeHexColor(r2, g, b);
7926
7926
  this.ctx.fillStyle = color;
7927
7927
  this.current.fillColor = color;
7928
7928
  this.current.patternFill = false;
@@ -11930,14 +11930,14 @@ var require_pdf = __commonJS({
11930
11930
  setStrokeAlpha(strokeAlpha) {
11931
11931
  this.current.strokeAlpha = strokeAlpha;
11932
11932
  }
11933
- setStrokeRGBColor(r, g, b) {
11934
- this.current.strokeColor = _util2.Util.makeHexColor(r, g, b);
11933
+ setStrokeRGBColor(r2, g, b) {
11934
+ this.current.strokeColor = _util2.Util.makeHexColor(r2, g, b);
11935
11935
  }
11936
11936
  setFillAlpha(fillAlpha) {
11937
11937
  this.current.fillAlpha = fillAlpha;
11938
11938
  }
11939
- setFillRGBColor(r, g, b) {
11940
- this.current.fillColor = _util2.Util.makeHexColor(r, g, b);
11939
+ setFillRGBColor(r2, g, b) {
11940
+ this.current.fillColor = _util2.Util.makeHexColor(r2, g, b);
11941
11941
  this.current.tspan = this.svgFactory.createElement("svg:tspan");
11942
11942
  this.current.xcoords = [];
11943
11943
  this.current.ycoords = [];
@@ -16250,8 +16250,8 @@ var require_pdf = __commonJS({
16250
16250
  const G = makeColorComp(g);
16251
16251
  return `#${G}${G}${G}`;
16252
16252
  }
16253
- static RGB_G([r, g, b]) {
16254
- return ["G", 0.3 * r + 0.59 * g + 0.11 * b];
16253
+ static RGB_G([r2, g, b]) {
16254
+ return ["G", 0.3 * r2 + 0.59 * g + 0.11 * b];
16255
16255
  }
16256
16256
  static RGB_rgb(color) {
16257
16257
  return color.map(scaleAndClamp);
@@ -16275,8 +16275,8 @@ var require_pdf = __commonJS({
16275
16275
  const rgb = this.CMYK_RGB(components).slice(1);
16276
16276
  return this.RGB_HTML(rgb);
16277
16277
  }
16278
- static RGB_CMYK([r, g, b]) {
16279
- const c = 1 - r;
16278
+ static RGB_CMYK([r2, g, b]) {
16279
+ const c = 1 - r2;
16280
16280
  const m = 1 - g;
16281
16281
  const y = 1 - b;
16282
16282
  const k = Math.min(c, m, y);
@@ -18069,7 +18069,7 @@ var require_pdf = __commonJS({
18069
18069
  }
18070
18070
  });
18071
18071
 
18072
- // node_modules/.pnpm/@page-speed+pdf-viewer@0.1.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@page-speed/pdf-viewer/dist/index.js
18072
+ // node_modules/.pnpm/@page-speed+pdf-viewer@0.1.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@page-speed/pdf-viewer/dist/index.js
18073
18073
  var dist_exports = {};
18074
18074
  __export(dist_exports, {
18075
18075
  PDFCanvas: () => PDFCanvas,
@@ -18685,7 +18685,7 @@ function createProgressiveFetchHandler(onProgress) {
18685
18685
  }
18686
18686
  var DEFAULT_SCALE, CACHE_SIZE, MIN_ZOOM, MAX_ZOOM, ZOOM_STEP, PDFViewer_default, linearizedPDFConfig;
18687
18687
  var init_dist = __esm({
18688
- "node_modules/.pnpm/@page-speed+pdf-viewer@0.1.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@page-speed/pdf-viewer/dist/index.js"() {
18688
+ "node_modules/.pnpm/@page-speed+pdf-viewer@0.1.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@page-speed/pdf-viewer/dist/index.js"() {
18689
18689
  "use client";
18690
18690
  DEFAULT_SCALE = 1.5;
18691
18691
  CACHE_SIZE = 50 * 1024 * 1024;
@@ -18807,48 +18807,3041 @@ function useResponsiveness() {
18807
18807
  };
18808
18808
  }
18809
18809
 
18810
- // src/styles/Lightbox.module.css
18811
- var Lightbox_default = {
18812
- lightboxPortal: "Lightbox_lightboxPortal3",
18813
- overlay: "Lightbox_overlay3",
18814
- horizontalLayoutRoot: "Lightbox_horizontalLayoutRoot3",
18815
- horizontalLayoutContainer: "Lightbox_horizontalLayoutContainer3",
18816
- mainContent: "Lightbox_mainContent3",
18817
- toolbar: "Lightbox_toolbar3",
18818
- media: "Lightbox_media3",
18819
- chrome: "Lightbox_chrome3",
18820
- chromeSection: "Lightbox_chromeSection3",
18821
- navButton: "Lightbox_navButton3",
18822
- closeButton: "Lightbox_closeButton3",
18823
- counter: "Lightbox_counter3",
18824
- captionContainer: "Lightbox_captionContainer3",
18825
- captionTitle: "Lightbox_captionTitle3",
18826
- captionText: "Lightbox_captionText3",
18827
- pdfContainer: "Lightbox_pdfContainer3",
18828
- pdfFallback: "Lightbox_pdfFallback3",
18829
- verticalSplitLayoutRoot: "Lightbox_verticalSplitLayoutRoot3",
18830
- verticalSplitLayoutContainer: "Lightbox_verticalSplitLayoutContainer3",
18831
- verticalSplitContent: "Lightbox_verticalSplitContent3",
18832
- verticalSplitSidebar: "Lightbox_verticalSplitSidebar3",
18833
- customSlideLayoutRoot: "Lightbox_customSlideLayoutRoot3",
18834
- customSlideLayoutContainer: "Lightbox_customSlideLayoutContainer3",
18835
- customSlideContent: "Lightbox_customSlideContent3",
18836
- customSlideChrome: "Lightbox_customSlideChrome3",
18837
- fullscreenLayoutRoot: "Lightbox_fullscreenLayoutRoot3",
18838
- fullscreenLayoutContainer: "Lightbox_fullscreenLayoutContainer3",
18839
- fullscreenContent: "Lightbox_fullscreenContent3",
18840
- fullscreenChrome: "Lightbox_fullscreenChrome3",
18841
- inlineLayoutRoot: "Lightbox_inlineLayoutRoot3",
18842
- inlineLayoutContainer: "Lightbox_inlineLayoutContainer3",
18843
- inlineContent: "Lightbox_inlineContent3",
18844
- inlineToolbar: "Lightbox_inlineToolbar3"
18810
+ // node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
18811
+ function r(e) {
18812
+ var t, f, n = "";
18813
+ if ("string" == typeof e || "number" == typeof e) n += e;
18814
+ else if ("object" == typeof e) if (Array.isArray(e)) {
18815
+ var o = e.length;
18816
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
18817
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
18818
+ return n;
18819
+ }
18820
+ function clsx() {
18821
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
18822
+ return n;
18823
+ }
18824
+
18825
+ // node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
18826
+ var concatArrays = (array1, array2) => {
18827
+ const combinedArray = new Array(array1.length + array2.length);
18828
+ for (let i = 0; i < array1.length; i++) {
18829
+ combinedArray[i] = array1[i];
18830
+ }
18831
+ for (let i = 0; i < array2.length; i++) {
18832
+ combinedArray[array1.length + i] = array2[i];
18833
+ }
18834
+ return combinedArray;
18835
+ };
18836
+ var createClassValidatorObject = (classGroupId, validator) => ({
18837
+ classGroupId,
18838
+ validator
18839
+ });
18840
+ var createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
18841
+ nextPart,
18842
+ validators,
18843
+ classGroupId
18844
+ });
18845
+ var CLASS_PART_SEPARATOR = "-";
18846
+ var EMPTY_CONFLICTS = [];
18847
+ var ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
18848
+ var createClassGroupUtils = (config) => {
18849
+ const classMap = createClassMap(config);
18850
+ const {
18851
+ conflictingClassGroups,
18852
+ conflictingClassGroupModifiers
18853
+ } = config;
18854
+ const getClassGroupId = (className) => {
18855
+ if (className.startsWith("[") && className.endsWith("]")) {
18856
+ return getGroupIdForArbitraryProperty(className);
18857
+ }
18858
+ const classParts = className.split(CLASS_PART_SEPARATOR);
18859
+ const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
18860
+ return getGroupRecursive(classParts, startIndex, classMap);
18861
+ };
18862
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
18863
+ if (hasPostfixModifier) {
18864
+ const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
18865
+ const baseConflicts = conflictingClassGroups[classGroupId];
18866
+ if (modifierConflicts) {
18867
+ if (baseConflicts) {
18868
+ return concatArrays(baseConflicts, modifierConflicts);
18869
+ }
18870
+ return modifierConflicts;
18871
+ }
18872
+ return baseConflicts || EMPTY_CONFLICTS;
18873
+ }
18874
+ return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
18875
+ };
18876
+ return {
18877
+ getClassGroupId,
18878
+ getConflictingClassGroupIds
18879
+ };
18880
+ };
18881
+ var getGroupRecursive = (classParts, startIndex, classPartObject) => {
18882
+ const classPathsLength = classParts.length - startIndex;
18883
+ if (classPathsLength === 0) {
18884
+ return classPartObject.classGroupId;
18885
+ }
18886
+ const currentClassPart = classParts[startIndex];
18887
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
18888
+ if (nextClassPartObject) {
18889
+ const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
18890
+ if (result) return result;
18891
+ }
18892
+ const validators = classPartObject.validators;
18893
+ if (validators === null) {
18894
+ return void 0;
18895
+ }
18896
+ const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
18897
+ const validatorsLength = validators.length;
18898
+ for (let i = 0; i < validatorsLength; i++) {
18899
+ const validatorObj = validators[i];
18900
+ if (validatorObj.validator(classRest)) {
18901
+ return validatorObj.classGroupId;
18902
+ }
18903
+ }
18904
+ return void 0;
18905
+ };
18906
+ var getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
18907
+ const content = className.slice(1, -1);
18908
+ const colonIndex = content.indexOf(":");
18909
+ const property = content.slice(0, colonIndex);
18910
+ return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
18911
+ })();
18912
+ var createClassMap = (config) => {
18913
+ const {
18914
+ theme,
18915
+ classGroups
18916
+ } = config;
18917
+ return processClassGroups(classGroups, theme);
18918
+ };
18919
+ var processClassGroups = (classGroups, theme) => {
18920
+ const classMap = createClassPartObject();
18921
+ for (const classGroupId in classGroups) {
18922
+ const group = classGroups[classGroupId];
18923
+ processClassesRecursively(group, classMap, classGroupId, theme);
18924
+ }
18925
+ return classMap;
18926
+ };
18927
+ var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
18928
+ const len = classGroup.length;
18929
+ for (let i = 0; i < len; i++) {
18930
+ const classDefinition = classGroup[i];
18931
+ processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
18932
+ }
18933
+ };
18934
+ var processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
18935
+ if (typeof classDefinition === "string") {
18936
+ processStringDefinition(classDefinition, classPartObject, classGroupId);
18937
+ return;
18938
+ }
18939
+ if (typeof classDefinition === "function") {
18940
+ processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
18941
+ return;
18942
+ }
18943
+ processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
18944
+ };
18945
+ var processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
18946
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
18947
+ classPartObjectToEdit.classGroupId = classGroupId;
18948
+ };
18949
+ var processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
18950
+ if (isThemeGetter(classDefinition)) {
18951
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
18952
+ return;
18953
+ }
18954
+ if (classPartObject.validators === null) {
18955
+ classPartObject.validators = [];
18956
+ }
18957
+ classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
18958
+ };
18959
+ var processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
18960
+ const entries = Object.entries(classDefinition);
18961
+ const len = entries.length;
18962
+ for (let i = 0; i < len; i++) {
18963
+ const [key, value] = entries[i];
18964
+ processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
18965
+ }
18966
+ };
18967
+ var getPart = (classPartObject, path) => {
18968
+ let current = classPartObject;
18969
+ const parts = path.split(CLASS_PART_SEPARATOR);
18970
+ const len = parts.length;
18971
+ for (let i = 0; i < len; i++) {
18972
+ const part = parts[i];
18973
+ let next = current.nextPart.get(part);
18974
+ if (!next) {
18975
+ next = createClassPartObject();
18976
+ current.nextPart.set(part, next);
18977
+ }
18978
+ current = next;
18979
+ }
18980
+ return current;
18981
+ };
18982
+ var isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
18983
+ var createLruCache = (maxCacheSize) => {
18984
+ if (maxCacheSize < 1) {
18985
+ return {
18986
+ get: () => void 0,
18987
+ set: () => {
18988
+ }
18989
+ };
18990
+ }
18991
+ let cacheSize = 0;
18992
+ let cache = /* @__PURE__ */ Object.create(null);
18993
+ let previousCache = /* @__PURE__ */ Object.create(null);
18994
+ const update = (key, value) => {
18995
+ cache[key] = value;
18996
+ cacheSize++;
18997
+ if (cacheSize > maxCacheSize) {
18998
+ cacheSize = 0;
18999
+ previousCache = cache;
19000
+ cache = /* @__PURE__ */ Object.create(null);
19001
+ }
19002
+ };
19003
+ return {
19004
+ get(key) {
19005
+ let value = cache[key];
19006
+ if (value !== void 0) {
19007
+ return value;
19008
+ }
19009
+ if ((value = previousCache[key]) !== void 0) {
19010
+ update(key, value);
19011
+ return value;
19012
+ }
19013
+ },
19014
+ set(key, value) {
19015
+ if (key in cache) {
19016
+ cache[key] = value;
19017
+ } else {
19018
+ update(key, value);
19019
+ }
19020
+ }
19021
+ };
19022
+ };
19023
+ var IMPORTANT_MODIFIER = "!";
19024
+ var MODIFIER_SEPARATOR = ":";
19025
+ var EMPTY_MODIFIERS = [];
19026
+ var createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
19027
+ modifiers,
19028
+ hasImportantModifier,
19029
+ baseClassName,
19030
+ maybePostfixModifierPosition,
19031
+ isExternal
19032
+ });
19033
+ var createParseClassName = (config) => {
19034
+ const {
19035
+ prefix,
19036
+ experimentalParseClassName
19037
+ } = config;
19038
+ let parseClassName = (className) => {
19039
+ const modifiers = [];
19040
+ let bracketDepth = 0;
19041
+ let parenDepth = 0;
19042
+ let modifierStart = 0;
19043
+ let postfixModifierPosition;
19044
+ const len = className.length;
19045
+ for (let index = 0; index < len; index++) {
19046
+ const currentCharacter = className[index];
19047
+ if (bracketDepth === 0 && parenDepth === 0) {
19048
+ if (currentCharacter === MODIFIER_SEPARATOR) {
19049
+ modifiers.push(className.slice(modifierStart, index));
19050
+ modifierStart = index + 1;
19051
+ continue;
19052
+ }
19053
+ if (currentCharacter === "/") {
19054
+ postfixModifierPosition = index;
19055
+ continue;
19056
+ }
19057
+ }
19058
+ if (currentCharacter === "[") bracketDepth++;
19059
+ else if (currentCharacter === "]") bracketDepth--;
19060
+ else if (currentCharacter === "(") parenDepth++;
19061
+ else if (currentCharacter === ")") parenDepth--;
19062
+ }
19063
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
19064
+ let baseClassName = baseClassNameWithImportantModifier;
19065
+ let hasImportantModifier = false;
19066
+ if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
19067
+ baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
19068
+ hasImportantModifier = true;
19069
+ } else if (
19070
+ /**
19071
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
19072
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
19073
+ */
19074
+ baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)
19075
+ ) {
19076
+ baseClassName = baseClassNameWithImportantModifier.slice(1);
19077
+ hasImportantModifier = true;
19078
+ }
19079
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
19080
+ return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
19081
+ };
19082
+ if (prefix) {
19083
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
19084
+ const parseClassNameOriginal = parseClassName;
19085
+ parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
19086
+ }
19087
+ if (experimentalParseClassName) {
19088
+ const parseClassNameOriginal = parseClassName;
19089
+ parseClassName = (className) => experimentalParseClassName({
19090
+ className,
19091
+ parseClassName: parseClassNameOriginal
19092
+ });
19093
+ }
19094
+ return parseClassName;
19095
+ };
19096
+ var createSortModifiers = (config) => {
19097
+ const modifierWeights = /* @__PURE__ */ new Map();
19098
+ config.orderSensitiveModifiers.forEach((mod, index) => {
19099
+ modifierWeights.set(mod, 1e6 + index);
19100
+ });
19101
+ return (modifiers) => {
19102
+ const result = [];
19103
+ let currentSegment = [];
19104
+ for (let i = 0; i < modifiers.length; i++) {
19105
+ const modifier = modifiers[i];
19106
+ const isArbitrary = modifier[0] === "[";
19107
+ const isOrderSensitive = modifierWeights.has(modifier);
19108
+ if (isArbitrary || isOrderSensitive) {
19109
+ if (currentSegment.length > 0) {
19110
+ currentSegment.sort();
19111
+ result.push(...currentSegment);
19112
+ currentSegment = [];
19113
+ }
19114
+ result.push(modifier);
19115
+ } else {
19116
+ currentSegment.push(modifier);
19117
+ }
19118
+ }
19119
+ if (currentSegment.length > 0) {
19120
+ currentSegment.sort();
19121
+ result.push(...currentSegment);
19122
+ }
19123
+ return result;
19124
+ };
19125
+ };
19126
+ var createConfigUtils = (config) => ({
19127
+ cache: createLruCache(config.cacheSize),
19128
+ parseClassName: createParseClassName(config),
19129
+ sortModifiers: createSortModifiers(config),
19130
+ ...createClassGroupUtils(config)
19131
+ });
19132
+ var SPLIT_CLASSES_REGEX = /\s+/;
19133
+ var mergeClassList = (classList, configUtils) => {
19134
+ const {
19135
+ parseClassName,
19136
+ getClassGroupId,
19137
+ getConflictingClassGroupIds,
19138
+ sortModifiers
19139
+ } = configUtils;
19140
+ const classGroupsInConflict = [];
19141
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
19142
+ let result = "";
19143
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
19144
+ const originalClassName = classNames[index];
19145
+ const {
19146
+ isExternal,
19147
+ modifiers,
19148
+ hasImportantModifier,
19149
+ baseClassName,
19150
+ maybePostfixModifierPosition
19151
+ } = parseClassName(originalClassName);
19152
+ if (isExternal) {
19153
+ result = originalClassName + (result.length > 0 ? " " + result : result);
19154
+ continue;
19155
+ }
19156
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
19157
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
19158
+ if (!classGroupId) {
19159
+ if (!hasPostfixModifier) {
19160
+ result = originalClassName + (result.length > 0 ? " " + result : result);
19161
+ continue;
19162
+ }
19163
+ classGroupId = getClassGroupId(baseClassName);
19164
+ if (!classGroupId) {
19165
+ result = originalClassName + (result.length > 0 ? " " + result : result);
19166
+ continue;
19167
+ }
19168
+ hasPostfixModifier = false;
19169
+ }
19170
+ const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
19171
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
19172
+ const classId = modifierId + classGroupId;
19173
+ if (classGroupsInConflict.indexOf(classId) > -1) {
19174
+ continue;
19175
+ }
19176
+ classGroupsInConflict.push(classId);
19177
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
19178
+ for (let i = 0; i < conflictGroups.length; ++i) {
19179
+ const group = conflictGroups[i];
19180
+ classGroupsInConflict.push(modifierId + group);
19181
+ }
19182
+ result = originalClassName + (result.length > 0 ? " " + result : result);
19183
+ }
19184
+ return result;
19185
+ };
19186
+ var twJoin = (...classLists) => {
19187
+ let index = 0;
19188
+ let argument;
19189
+ let resolvedValue;
19190
+ let string = "";
19191
+ while (index < classLists.length) {
19192
+ if (argument = classLists[index++]) {
19193
+ if (resolvedValue = toValue(argument)) {
19194
+ string && (string += " ");
19195
+ string += resolvedValue;
19196
+ }
19197
+ }
19198
+ }
19199
+ return string;
19200
+ };
19201
+ var toValue = (mix) => {
19202
+ if (typeof mix === "string") {
19203
+ return mix;
19204
+ }
19205
+ let resolvedValue;
19206
+ let string = "";
19207
+ for (let k = 0; k < mix.length; k++) {
19208
+ if (mix[k]) {
19209
+ if (resolvedValue = toValue(mix[k])) {
19210
+ string && (string += " ");
19211
+ string += resolvedValue;
19212
+ }
19213
+ }
19214
+ }
19215
+ return string;
19216
+ };
19217
+ var createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
19218
+ let configUtils;
19219
+ let cacheGet2;
19220
+ let cacheSet2;
19221
+ let functionToCall;
19222
+ const initTailwindMerge = (classList) => {
19223
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
19224
+ configUtils = createConfigUtils(config);
19225
+ cacheGet2 = configUtils.cache.get;
19226
+ cacheSet2 = configUtils.cache.set;
19227
+ functionToCall = tailwindMerge;
19228
+ return tailwindMerge(classList);
19229
+ };
19230
+ const tailwindMerge = (classList) => {
19231
+ const cachedResult = cacheGet2(classList);
19232
+ if (cachedResult) {
19233
+ return cachedResult;
19234
+ }
19235
+ const result = mergeClassList(classList, configUtils);
19236
+ cacheSet2(classList, result);
19237
+ return result;
19238
+ };
19239
+ functionToCall = initTailwindMerge;
19240
+ return (...args) => functionToCall(twJoin(...args));
19241
+ };
19242
+ var fallbackThemeArr = [];
19243
+ var fromTheme = (key) => {
19244
+ const themeGetter = (theme) => theme[key] || fallbackThemeArr;
19245
+ themeGetter.isThemeGetter = true;
19246
+ return themeGetter;
19247
+ };
19248
+ var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
19249
+ var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
19250
+ var fractionRegex = /^\d+\/\d+$/;
19251
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
19252
+ 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$/;
19253
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
19254
+ var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
19255
+ var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
19256
+ var isFraction = (value) => fractionRegex.test(value);
19257
+ var isNumber = (value) => !!value && !Number.isNaN(Number(value));
19258
+ var isInteger = (value) => !!value && Number.isInteger(Number(value));
19259
+ var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
19260
+ var isTshirtSize = (value) => tshirtUnitRegex.test(value);
19261
+ var isAny = () => true;
19262
+ var isLengthOnly = (value) => (
19263
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
19264
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
19265
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
19266
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
19267
+ );
19268
+ var isNever = () => false;
19269
+ var isShadow = (value) => shadowRegex.test(value);
19270
+ var isImage = (value) => imageRegex.test(value);
19271
+ var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
19272
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
19273
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
19274
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
19275
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
19276
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
19277
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
19278
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
19279
+ var isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
19280
+ var isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
19281
+ var isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
19282
+ var isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
19283
+ var isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
19284
+ var isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
19285
+ var isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
19286
+ var getIsArbitraryValue = (value, testLabel, testValue) => {
19287
+ const result = arbitraryValueRegex.exec(value);
19288
+ if (result) {
19289
+ if (result[1]) {
19290
+ return testLabel(result[1]);
19291
+ }
19292
+ return testValue(result[2]);
19293
+ }
19294
+ return false;
19295
+ };
19296
+ var getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
19297
+ const result = arbitraryVariableRegex.exec(value);
19298
+ if (result) {
19299
+ if (result[1]) {
19300
+ return testLabel(result[1]);
19301
+ }
19302
+ return shouldMatchNoLabel;
19303
+ }
19304
+ return false;
18845
19305
  };
19306
+ var isLabelPosition = (label) => label === "position" || label === "percentage";
19307
+ var isLabelImage = (label) => label === "image" || label === "url";
19308
+ var isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
19309
+ var isLabelLength = (label) => label === "length";
19310
+ var isLabelNumber = (label) => label === "number";
19311
+ var isLabelFamilyName = (label) => label === "family-name";
19312
+ var isLabelShadow = (label) => label === "shadow";
19313
+ var getDefaultConfig = () => {
19314
+ const themeColor = fromTheme("color");
19315
+ const themeFont = fromTheme("font");
19316
+ const themeText = fromTheme("text");
19317
+ const themeFontWeight = fromTheme("font-weight");
19318
+ const themeTracking = fromTheme("tracking");
19319
+ const themeLeading = fromTheme("leading");
19320
+ const themeBreakpoint = fromTheme("breakpoint");
19321
+ const themeContainer = fromTheme("container");
19322
+ const themeSpacing = fromTheme("spacing");
19323
+ const themeRadius = fromTheme("radius");
19324
+ const themeShadow = fromTheme("shadow");
19325
+ const themeInsetShadow = fromTheme("inset-shadow");
19326
+ const themeTextShadow = fromTheme("text-shadow");
19327
+ const themeDropShadow = fromTheme("drop-shadow");
19328
+ const themeBlur = fromTheme("blur");
19329
+ const themePerspective = fromTheme("perspective");
19330
+ const themeAspect = fromTheme("aspect");
19331
+ const themeEase = fromTheme("ease");
19332
+ const themeAnimate = fromTheme("animate");
19333
+ const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
19334
+ const scalePosition = () => [
19335
+ "center",
19336
+ "top",
19337
+ "bottom",
19338
+ "left",
19339
+ "right",
19340
+ "top-left",
19341
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
19342
+ "left-top",
19343
+ "top-right",
19344
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
19345
+ "right-top",
19346
+ "bottom-right",
19347
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
19348
+ "right-bottom",
19349
+ "bottom-left",
19350
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
19351
+ "left-bottom"
19352
+ ];
19353
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
19354
+ const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
19355
+ const scaleOverscroll = () => ["auto", "contain", "none"];
19356
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
19357
+ const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
19358
+ const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
19359
+ const scaleGridColRowStartAndEnd = () => ["auto", {
19360
+ span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
19361
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
19362
+ const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
19363
+ const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
19364
+ const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
19365
+ const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
19366
+ const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
19367
+ const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
19368
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
19369
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
19370
+ position: [isArbitraryVariable, isArbitraryValue]
19371
+ }];
19372
+ const scaleBgRepeat = () => ["no-repeat", {
19373
+ repeat: ["", "x", "y", "space", "round"]
19374
+ }];
19375
+ const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
19376
+ size: [isArbitraryVariable, isArbitraryValue]
19377
+ }];
19378
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
19379
+ const scaleRadius = () => [
19380
+ // Deprecated since Tailwind CSS v4.0.0
19381
+ "",
19382
+ "none",
19383
+ "full",
19384
+ themeRadius,
19385
+ isArbitraryVariable,
19386
+ isArbitraryValue
19387
+ ];
19388
+ const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
19389
+ const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
19390
+ const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
19391
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
19392
+ const scaleBlur = () => [
19393
+ // Deprecated since Tailwind CSS v4.0.0
19394
+ "",
19395
+ "none",
19396
+ themeBlur,
19397
+ isArbitraryVariable,
19398
+ isArbitraryValue
19399
+ ];
19400
+ const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
19401
+ const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
19402
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
19403
+ const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
19404
+ return {
19405
+ cacheSize: 500,
19406
+ theme: {
19407
+ animate: ["spin", "ping", "pulse", "bounce"],
19408
+ aspect: ["video"],
19409
+ blur: [isTshirtSize],
19410
+ breakpoint: [isTshirtSize],
19411
+ color: [isAny],
19412
+ container: [isTshirtSize],
19413
+ "drop-shadow": [isTshirtSize],
19414
+ ease: ["in", "out", "in-out"],
19415
+ font: [isAnyNonArbitrary],
19416
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
19417
+ "inset-shadow": [isTshirtSize],
19418
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
19419
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
19420
+ radius: [isTshirtSize],
19421
+ shadow: [isTshirtSize],
19422
+ spacing: ["px", isNumber],
19423
+ text: [isTshirtSize],
19424
+ "text-shadow": [isTshirtSize],
19425
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
19426
+ },
19427
+ classGroups: {
19428
+ // --------------
19429
+ // --- Layout ---
19430
+ // --------------
19431
+ /**
19432
+ * Aspect Ratio
19433
+ * @see https://tailwindcss.com/docs/aspect-ratio
19434
+ */
19435
+ aspect: [{
19436
+ aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
19437
+ }],
19438
+ /**
19439
+ * Container
19440
+ * @see https://tailwindcss.com/docs/container
19441
+ * @deprecated since Tailwind CSS v4.0.0
19442
+ */
19443
+ container: ["container"],
19444
+ /**
19445
+ * Columns
19446
+ * @see https://tailwindcss.com/docs/columns
19447
+ */
19448
+ columns: [{
19449
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
19450
+ }],
19451
+ /**
19452
+ * Break After
19453
+ * @see https://tailwindcss.com/docs/break-after
19454
+ */
19455
+ "break-after": [{
19456
+ "break-after": scaleBreak()
19457
+ }],
19458
+ /**
19459
+ * Break Before
19460
+ * @see https://tailwindcss.com/docs/break-before
19461
+ */
19462
+ "break-before": [{
19463
+ "break-before": scaleBreak()
19464
+ }],
19465
+ /**
19466
+ * Break Inside
19467
+ * @see https://tailwindcss.com/docs/break-inside
19468
+ */
19469
+ "break-inside": [{
19470
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
19471
+ }],
19472
+ /**
19473
+ * Box Decoration Break
19474
+ * @see https://tailwindcss.com/docs/box-decoration-break
19475
+ */
19476
+ "box-decoration": [{
19477
+ "box-decoration": ["slice", "clone"]
19478
+ }],
19479
+ /**
19480
+ * Box Sizing
19481
+ * @see https://tailwindcss.com/docs/box-sizing
19482
+ */
19483
+ box: [{
19484
+ box: ["border", "content"]
19485
+ }],
19486
+ /**
19487
+ * Display
19488
+ * @see https://tailwindcss.com/docs/display
19489
+ */
19490
+ 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"],
19491
+ /**
19492
+ * Screen Reader Only
19493
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
19494
+ */
19495
+ sr: ["sr-only", "not-sr-only"],
19496
+ /**
19497
+ * Floats
19498
+ * @see https://tailwindcss.com/docs/float
19499
+ */
19500
+ float: [{
19501
+ float: ["right", "left", "none", "start", "end"]
19502
+ }],
19503
+ /**
19504
+ * Clear
19505
+ * @see https://tailwindcss.com/docs/clear
19506
+ */
19507
+ clear: [{
19508
+ clear: ["left", "right", "both", "none", "start", "end"]
19509
+ }],
19510
+ /**
19511
+ * Isolation
19512
+ * @see https://tailwindcss.com/docs/isolation
19513
+ */
19514
+ isolation: ["isolate", "isolation-auto"],
19515
+ /**
19516
+ * Object Fit
19517
+ * @see https://tailwindcss.com/docs/object-fit
19518
+ */
19519
+ "object-fit": [{
19520
+ object: ["contain", "cover", "fill", "none", "scale-down"]
19521
+ }],
19522
+ /**
19523
+ * Object Position
19524
+ * @see https://tailwindcss.com/docs/object-position
19525
+ */
19526
+ "object-position": [{
19527
+ object: scalePositionWithArbitrary()
19528
+ }],
19529
+ /**
19530
+ * Overflow
19531
+ * @see https://tailwindcss.com/docs/overflow
19532
+ */
19533
+ overflow: [{
19534
+ overflow: scaleOverflow()
19535
+ }],
19536
+ /**
19537
+ * Overflow X
19538
+ * @see https://tailwindcss.com/docs/overflow
19539
+ */
19540
+ "overflow-x": [{
19541
+ "overflow-x": scaleOverflow()
19542
+ }],
19543
+ /**
19544
+ * Overflow Y
19545
+ * @see https://tailwindcss.com/docs/overflow
19546
+ */
19547
+ "overflow-y": [{
19548
+ "overflow-y": scaleOverflow()
19549
+ }],
19550
+ /**
19551
+ * Overscroll Behavior
19552
+ * @see https://tailwindcss.com/docs/overscroll-behavior
19553
+ */
19554
+ overscroll: [{
19555
+ overscroll: scaleOverscroll()
19556
+ }],
19557
+ /**
19558
+ * Overscroll Behavior X
19559
+ * @see https://tailwindcss.com/docs/overscroll-behavior
19560
+ */
19561
+ "overscroll-x": [{
19562
+ "overscroll-x": scaleOverscroll()
19563
+ }],
19564
+ /**
19565
+ * Overscroll Behavior Y
19566
+ * @see https://tailwindcss.com/docs/overscroll-behavior
19567
+ */
19568
+ "overscroll-y": [{
19569
+ "overscroll-y": scaleOverscroll()
19570
+ }],
19571
+ /**
19572
+ * Position
19573
+ * @see https://tailwindcss.com/docs/position
19574
+ */
19575
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
19576
+ /**
19577
+ * Top / Right / Bottom / Left
19578
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19579
+ */
19580
+ inset: [{
19581
+ inset: scaleInset()
19582
+ }],
19583
+ /**
19584
+ * Right / Left
19585
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19586
+ */
19587
+ "inset-x": [{
19588
+ "inset-x": scaleInset()
19589
+ }],
19590
+ /**
19591
+ * Top / Bottom
19592
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19593
+ */
19594
+ "inset-y": [{
19595
+ "inset-y": scaleInset()
19596
+ }],
19597
+ /**
19598
+ * Start
19599
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19600
+ */
19601
+ start: [{
19602
+ start: scaleInset()
19603
+ }],
19604
+ /**
19605
+ * End
19606
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19607
+ */
19608
+ end: [{
19609
+ end: scaleInset()
19610
+ }],
19611
+ /**
19612
+ * Top
19613
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19614
+ */
19615
+ top: [{
19616
+ top: scaleInset()
19617
+ }],
19618
+ /**
19619
+ * Right
19620
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19621
+ */
19622
+ right: [{
19623
+ right: scaleInset()
19624
+ }],
19625
+ /**
19626
+ * Bottom
19627
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19628
+ */
19629
+ bottom: [{
19630
+ bottom: scaleInset()
19631
+ }],
19632
+ /**
19633
+ * Left
19634
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
19635
+ */
19636
+ left: [{
19637
+ left: scaleInset()
19638
+ }],
19639
+ /**
19640
+ * Visibility
19641
+ * @see https://tailwindcss.com/docs/visibility
19642
+ */
19643
+ visibility: ["visible", "invisible", "collapse"],
19644
+ /**
19645
+ * Z-Index
19646
+ * @see https://tailwindcss.com/docs/z-index
19647
+ */
19648
+ z: [{
19649
+ z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
19650
+ }],
19651
+ // ------------------------
19652
+ // --- Flexbox and Grid ---
19653
+ // ------------------------
19654
+ /**
19655
+ * Flex Basis
19656
+ * @see https://tailwindcss.com/docs/flex-basis
19657
+ */
19658
+ basis: [{
19659
+ basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
19660
+ }],
19661
+ /**
19662
+ * Flex Direction
19663
+ * @see https://tailwindcss.com/docs/flex-direction
19664
+ */
19665
+ "flex-direction": [{
19666
+ flex: ["row", "row-reverse", "col", "col-reverse"]
19667
+ }],
19668
+ /**
19669
+ * Flex Wrap
19670
+ * @see https://tailwindcss.com/docs/flex-wrap
19671
+ */
19672
+ "flex-wrap": [{
19673
+ flex: ["nowrap", "wrap", "wrap-reverse"]
19674
+ }],
19675
+ /**
19676
+ * Flex
19677
+ * @see https://tailwindcss.com/docs/flex
19678
+ */
19679
+ flex: [{
19680
+ flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
19681
+ }],
19682
+ /**
19683
+ * Flex Grow
19684
+ * @see https://tailwindcss.com/docs/flex-grow
19685
+ */
19686
+ grow: [{
19687
+ grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
19688
+ }],
19689
+ /**
19690
+ * Flex Shrink
19691
+ * @see https://tailwindcss.com/docs/flex-shrink
19692
+ */
19693
+ shrink: [{
19694
+ shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
19695
+ }],
19696
+ /**
19697
+ * Order
19698
+ * @see https://tailwindcss.com/docs/order
19699
+ */
19700
+ order: [{
19701
+ order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
19702
+ }],
19703
+ /**
19704
+ * Grid Template Columns
19705
+ * @see https://tailwindcss.com/docs/grid-template-columns
19706
+ */
19707
+ "grid-cols": [{
19708
+ "grid-cols": scaleGridTemplateColsRows()
19709
+ }],
19710
+ /**
19711
+ * Grid Column Start / End
19712
+ * @see https://tailwindcss.com/docs/grid-column
19713
+ */
19714
+ "col-start-end": [{
19715
+ col: scaleGridColRowStartAndEnd()
19716
+ }],
19717
+ /**
19718
+ * Grid Column Start
19719
+ * @see https://tailwindcss.com/docs/grid-column
19720
+ */
19721
+ "col-start": [{
19722
+ "col-start": scaleGridColRowStartOrEnd()
19723
+ }],
19724
+ /**
19725
+ * Grid Column End
19726
+ * @see https://tailwindcss.com/docs/grid-column
19727
+ */
19728
+ "col-end": [{
19729
+ "col-end": scaleGridColRowStartOrEnd()
19730
+ }],
19731
+ /**
19732
+ * Grid Template Rows
19733
+ * @see https://tailwindcss.com/docs/grid-template-rows
19734
+ */
19735
+ "grid-rows": [{
19736
+ "grid-rows": scaleGridTemplateColsRows()
19737
+ }],
19738
+ /**
19739
+ * Grid Row Start / End
19740
+ * @see https://tailwindcss.com/docs/grid-row
19741
+ */
19742
+ "row-start-end": [{
19743
+ row: scaleGridColRowStartAndEnd()
19744
+ }],
19745
+ /**
19746
+ * Grid Row Start
19747
+ * @see https://tailwindcss.com/docs/grid-row
19748
+ */
19749
+ "row-start": [{
19750
+ "row-start": scaleGridColRowStartOrEnd()
19751
+ }],
19752
+ /**
19753
+ * Grid Row End
19754
+ * @see https://tailwindcss.com/docs/grid-row
19755
+ */
19756
+ "row-end": [{
19757
+ "row-end": scaleGridColRowStartOrEnd()
19758
+ }],
19759
+ /**
19760
+ * Grid Auto Flow
19761
+ * @see https://tailwindcss.com/docs/grid-auto-flow
19762
+ */
19763
+ "grid-flow": [{
19764
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
19765
+ }],
19766
+ /**
19767
+ * Grid Auto Columns
19768
+ * @see https://tailwindcss.com/docs/grid-auto-columns
19769
+ */
19770
+ "auto-cols": [{
19771
+ "auto-cols": scaleGridAutoColsRows()
19772
+ }],
19773
+ /**
19774
+ * Grid Auto Rows
19775
+ * @see https://tailwindcss.com/docs/grid-auto-rows
19776
+ */
19777
+ "auto-rows": [{
19778
+ "auto-rows": scaleGridAutoColsRows()
19779
+ }],
19780
+ /**
19781
+ * Gap
19782
+ * @see https://tailwindcss.com/docs/gap
19783
+ */
19784
+ gap: [{
19785
+ gap: scaleUnambiguousSpacing()
19786
+ }],
19787
+ /**
19788
+ * Gap X
19789
+ * @see https://tailwindcss.com/docs/gap
19790
+ */
19791
+ "gap-x": [{
19792
+ "gap-x": scaleUnambiguousSpacing()
19793
+ }],
19794
+ /**
19795
+ * Gap Y
19796
+ * @see https://tailwindcss.com/docs/gap
19797
+ */
19798
+ "gap-y": [{
19799
+ "gap-y": scaleUnambiguousSpacing()
19800
+ }],
19801
+ /**
19802
+ * Justify Content
19803
+ * @see https://tailwindcss.com/docs/justify-content
19804
+ */
19805
+ "justify-content": [{
19806
+ justify: [...scaleAlignPrimaryAxis(), "normal"]
19807
+ }],
19808
+ /**
19809
+ * Justify Items
19810
+ * @see https://tailwindcss.com/docs/justify-items
19811
+ */
19812
+ "justify-items": [{
19813
+ "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
19814
+ }],
19815
+ /**
19816
+ * Justify Self
19817
+ * @see https://tailwindcss.com/docs/justify-self
19818
+ */
19819
+ "justify-self": [{
19820
+ "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
19821
+ }],
19822
+ /**
19823
+ * Align Content
19824
+ * @see https://tailwindcss.com/docs/align-content
19825
+ */
19826
+ "align-content": [{
19827
+ content: ["normal", ...scaleAlignPrimaryAxis()]
19828
+ }],
19829
+ /**
19830
+ * Align Items
19831
+ * @see https://tailwindcss.com/docs/align-items
19832
+ */
19833
+ "align-items": [{
19834
+ items: [...scaleAlignSecondaryAxis(), {
19835
+ baseline: ["", "last"]
19836
+ }]
19837
+ }],
19838
+ /**
19839
+ * Align Self
19840
+ * @see https://tailwindcss.com/docs/align-self
19841
+ */
19842
+ "align-self": [{
19843
+ self: ["auto", ...scaleAlignSecondaryAxis(), {
19844
+ baseline: ["", "last"]
19845
+ }]
19846
+ }],
19847
+ /**
19848
+ * Place Content
19849
+ * @see https://tailwindcss.com/docs/place-content
19850
+ */
19851
+ "place-content": [{
19852
+ "place-content": scaleAlignPrimaryAxis()
19853
+ }],
19854
+ /**
19855
+ * Place Items
19856
+ * @see https://tailwindcss.com/docs/place-items
19857
+ */
19858
+ "place-items": [{
19859
+ "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
19860
+ }],
19861
+ /**
19862
+ * Place Self
19863
+ * @see https://tailwindcss.com/docs/place-self
19864
+ */
19865
+ "place-self": [{
19866
+ "place-self": ["auto", ...scaleAlignSecondaryAxis()]
19867
+ }],
19868
+ // Spacing
19869
+ /**
19870
+ * Padding
19871
+ * @see https://tailwindcss.com/docs/padding
19872
+ */
19873
+ p: [{
19874
+ p: scaleUnambiguousSpacing()
19875
+ }],
19876
+ /**
19877
+ * Padding X
19878
+ * @see https://tailwindcss.com/docs/padding
19879
+ */
19880
+ px: [{
19881
+ px: scaleUnambiguousSpacing()
19882
+ }],
19883
+ /**
19884
+ * Padding Y
19885
+ * @see https://tailwindcss.com/docs/padding
19886
+ */
19887
+ py: [{
19888
+ py: scaleUnambiguousSpacing()
19889
+ }],
19890
+ /**
19891
+ * Padding Start
19892
+ * @see https://tailwindcss.com/docs/padding
19893
+ */
19894
+ ps: [{
19895
+ ps: scaleUnambiguousSpacing()
19896
+ }],
19897
+ /**
19898
+ * Padding End
19899
+ * @see https://tailwindcss.com/docs/padding
19900
+ */
19901
+ pe: [{
19902
+ pe: scaleUnambiguousSpacing()
19903
+ }],
19904
+ /**
19905
+ * Padding Top
19906
+ * @see https://tailwindcss.com/docs/padding
19907
+ */
19908
+ pt: [{
19909
+ pt: scaleUnambiguousSpacing()
19910
+ }],
19911
+ /**
19912
+ * Padding Right
19913
+ * @see https://tailwindcss.com/docs/padding
19914
+ */
19915
+ pr: [{
19916
+ pr: scaleUnambiguousSpacing()
19917
+ }],
19918
+ /**
19919
+ * Padding Bottom
19920
+ * @see https://tailwindcss.com/docs/padding
19921
+ */
19922
+ pb: [{
19923
+ pb: scaleUnambiguousSpacing()
19924
+ }],
19925
+ /**
19926
+ * Padding Left
19927
+ * @see https://tailwindcss.com/docs/padding
19928
+ */
19929
+ pl: [{
19930
+ pl: scaleUnambiguousSpacing()
19931
+ }],
19932
+ /**
19933
+ * Margin
19934
+ * @see https://tailwindcss.com/docs/margin
19935
+ */
19936
+ m: [{
19937
+ m: scaleMargin()
19938
+ }],
19939
+ /**
19940
+ * Margin X
19941
+ * @see https://tailwindcss.com/docs/margin
19942
+ */
19943
+ mx: [{
19944
+ mx: scaleMargin()
19945
+ }],
19946
+ /**
19947
+ * Margin Y
19948
+ * @see https://tailwindcss.com/docs/margin
19949
+ */
19950
+ my: [{
19951
+ my: scaleMargin()
19952
+ }],
19953
+ /**
19954
+ * Margin Start
19955
+ * @see https://tailwindcss.com/docs/margin
19956
+ */
19957
+ ms: [{
19958
+ ms: scaleMargin()
19959
+ }],
19960
+ /**
19961
+ * Margin End
19962
+ * @see https://tailwindcss.com/docs/margin
19963
+ */
19964
+ me: [{
19965
+ me: scaleMargin()
19966
+ }],
19967
+ /**
19968
+ * Margin Top
19969
+ * @see https://tailwindcss.com/docs/margin
19970
+ */
19971
+ mt: [{
19972
+ mt: scaleMargin()
19973
+ }],
19974
+ /**
19975
+ * Margin Right
19976
+ * @see https://tailwindcss.com/docs/margin
19977
+ */
19978
+ mr: [{
19979
+ mr: scaleMargin()
19980
+ }],
19981
+ /**
19982
+ * Margin Bottom
19983
+ * @see https://tailwindcss.com/docs/margin
19984
+ */
19985
+ mb: [{
19986
+ mb: scaleMargin()
19987
+ }],
19988
+ /**
19989
+ * Margin Left
19990
+ * @see https://tailwindcss.com/docs/margin
19991
+ */
19992
+ ml: [{
19993
+ ml: scaleMargin()
19994
+ }],
19995
+ /**
19996
+ * Space Between X
19997
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
19998
+ */
19999
+ "space-x": [{
20000
+ "space-x": scaleUnambiguousSpacing()
20001
+ }],
20002
+ /**
20003
+ * Space Between X Reverse
20004
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
20005
+ */
20006
+ "space-x-reverse": ["space-x-reverse"],
20007
+ /**
20008
+ * Space Between Y
20009
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
20010
+ */
20011
+ "space-y": [{
20012
+ "space-y": scaleUnambiguousSpacing()
20013
+ }],
20014
+ /**
20015
+ * Space Between Y Reverse
20016
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
20017
+ */
20018
+ "space-y-reverse": ["space-y-reverse"],
20019
+ // --------------
20020
+ // --- Sizing ---
20021
+ // --------------
20022
+ /**
20023
+ * Size
20024
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
20025
+ */
20026
+ size: [{
20027
+ size: scaleSizing()
20028
+ }],
20029
+ /**
20030
+ * Width
20031
+ * @see https://tailwindcss.com/docs/width
20032
+ */
20033
+ w: [{
20034
+ w: [themeContainer, "screen", ...scaleSizing()]
20035
+ }],
20036
+ /**
20037
+ * Min-Width
20038
+ * @see https://tailwindcss.com/docs/min-width
20039
+ */
20040
+ "min-w": [{
20041
+ "min-w": [
20042
+ themeContainer,
20043
+ "screen",
20044
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
20045
+ "none",
20046
+ ...scaleSizing()
20047
+ ]
20048
+ }],
20049
+ /**
20050
+ * Max-Width
20051
+ * @see https://tailwindcss.com/docs/max-width
20052
+ */
20053
+ "max-w": [{
20054
+ "max-w": [
20055
+ themeContainer,
20056
+ "screen",
20057
+ "none",
20058
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
20059
+ "prose",
20060
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
20061
+ {
20062
+ screen: [themeBreakpoint]
20063
+ },
20064
+ ...scaleSizing()
20065
+ ]
20066
+ }],
20067
+ /**
20068
+ * Height
20069
+ * @see https://tailwindcss.com/docs/height
20070
+ */
20071
+ h: [{
20072
+ h: ["screen", "lh", ...scaleSizing()]
20073
+ }],
20074
+ /**
20075
+ * Min-Height
20076
+ * @see https://tailwindcss.com/docs/min-height
20077
+ */
20078
+ "min-h": [{
20079
+ "min-h": ["screen", "lh", "none", ...scaleSizing()]
20080
+ }],
20081
+ /**
20082
+ * Max-Height
20083
+ * @see https://tailwindcss.com/docs/max-height
20084
+ */
20085
+ "max-h": [{
20086
+ "max-h": ["screen", "lh", ...scaleSizing()]
20087
+ }],
20088
+ // ------------------
20089
+ // --- Typography ---
20090
+ // ------------------
20091
+ /**
20092
+ * Font Size
20093
+ * @see https://tailwindcss.com/docs/font-size
20094
+ */
20095
+ "font-size": [{
20096
+ text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
20097
+ }],
20098
+ /**
20099
+ * Font Smoothing
20100
+ * @see https://tailwindcss.com/docs/font-smoothing
20101
+ */
20102
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
20103
+ /**
20104
+ * Font Style
20105
+ * @see https://tailwindcss.com/docs/font-style
20106
+ */
20107
+ "font-style": ["italic", "not-italic"],
20108
+ /**
20109
+ * Font Weight
20110
+ * @see https://tailwindcss.com/docs/font-weight
20111
+ */
20112
+ "font-weight": [{
20113
+ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
20114
+ }],
20115
+ /**
20116
+ * Font Stretch
20117
+ * @see https://tailwindcss.com/docs/font-stretch
20118
+ */
20119
+ "font-stretch": [{
20120
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
20121
+ }],
20122
+ /**
20123
+ * Font Family
20124
+ * @see https://tailwindcss.com/docs/font-family
20125
+ */
20126
+ "font-family": [{
20127
+ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
20128
+ }],
20129
+ /**
20130
+ * Font Variant Numeric
20131
+ * @see https://tailwindcss.com/docs/font-variant-numeric
20132
+ */
20133
+ "fvn-normal": ["normal-nums"],
20134
+ /**
20135
+ * Font Variant Numeric
20136
+ * @see https://tailwindcss.com/docs/font-variant-numeric
20137
+ */
20138
+ "fvn-ordinal": ["ordinal"],
20139
+ /**
20140
+ * Font Variant Numeric
20141
+ * @see https://tailwindcss.com/docs/font-variant-numeric
20142
+ */
20143
+ "fvn-slashed-zero": ["slashed-zero"],
20144
+ /**
20145
+ * Font Variant Numeric
20146
+ * @see https://tailwindcss.com/docs/font-variant-numeric
20147
+ */
20148
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
20149
+ /**
20150
+ * Font Variant Numeric
20151
+ * @see https://tailwindcss.com/docs/font-variant-numeric
20152
+ */
20153
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
20154
+ /**
20155
+ * Font Variant Numeric
20156
+ * @see https://tailwindcss.com/docs/font-variant-numeric
20157
+ */
20158
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
20159
+ /**
20160
+ * Letter Spacing
20161
+ * @see https://tailwindcss.com/docs/letter-spacing
20162
+ */
20163
+ tracking: [{
20164
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
20165
+ }],
20166
+ /**
20167
+ * Line Clamp
20168
+ * @see https://tailwindcss.com/docs/line-clamp
20169
+ */
20170
+ "line-clamp": [{
20171
+ "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
20172
+ }],
20173
+ /**
20174
+ * Line Height
20175
+ * @see https://tailwindcss.com/docs/line-height
20176
+ */
20177
+ leading: [{
20178
+ leading: [
20179
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
20180
+ themeLeading,
20181
+ ...scaleUnambiguousSpacing()
20182
+ ]
20183
+ }],
20184
+ /**
20185
+ * List Style Image
20186
+ * @see https://tailwindcss.com/docs/list-style-image
20187
+ */
20188
+ "list-image": [{
20189
+ "list-image": ["none", isArbitraryVariable, isArbitraryValue]
20190
+ }],
20191
+ /**
20192
+ * List Style Position
20193
+ * @see https://tailwindcss.com/docs/list-style-position
20194
+ */
20195
+ "list-style-position": [{
20196
+ list: ["inside", "outside"]
20197
+ }],
20198
+ /**
20199
+ * List Style Type
20200
+ * @see https://tailwindcss.com/docs/list-style-type
20201
+ */
20202
+ "list-style-type": [{
20203
+ list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
20204
+ }],
20205
+ /**
20206
+ * Text Alignment
20207
+ * @see https://tailwindcss.com/docs/text-align
20208
+ */
20209
+ "text-alignment": [{
20210
+ text: ["left", "center", "right", "justify", "start", "end"]
20211
+ }],
20212
+ /**
20213
+ * Placeholder Color
20214
+ * @deprecated since Tailwind CSS v3.0.0
20215
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
20216
+ */
20217
+ "placeholder-color": [{
20218
+ placeholder: scaleColor()
20219
+ }],
20220
+ /**
20221
+ * Text Color
20222
+ * @see https://tailwindcss.com/docs/text-color
20223
+ */
20224
+ "text-color": [{
20225
+ text: scaleColor()
20226
+ }],
20227
+ /**
20228
+ * Text Decoration
20229
+ * @see https://tailwindcss.com/docs/text-decoration
20230
+ */
20231
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
20232
+ /**
20233
+ * Text Decoration Style
20234
+ * @see https://tailwindcss.com/docs/text-decoration-style
20235
+ */
20236
+ "text-decoration-style": [{
20237
+ decoration: [...scaleLineStyle(), "wavy"]
20238
+ }],
20239
+ /**
20240
+ * Text Decoration Thickness
20241
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
20242
+ */
20243
+ "text-decoration-thickness": [{
20244
+ decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
20245
+ }],
20246
+ /**
20247
+ * Text Decoration Color
20248
+ * @see https://tailwindcss.com/docs/text-decoration-color
20249
+ */
20250
+ "text-decoration-color": [{
20251
+ decoration: scaleColor()
20252
+ }],
20253
+ /**
20254
+ * Text Underline Offset
20255
+ * @see https://tailwindcss.com/docs/text-underline-offset
20256
+ */
20257
+ "underline-offset": [{
20258
+ "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
20259
+ }],
20260
+ /**
20261
+ * Text Transform
20262
+ * @see https://tailwindcss.com/docs/text-transform
20263
+ */
20264
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
20265
+ /**
20266
+ * Text Overflow
20267
+ * @see https://tailwindcss.com/docs/text-overflow
20268
+ */
20269
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
20270
+ /**
20271
+ * Text Wrap
20272
+ * @see https://tailwindcss.com/docs/text-wrap
20273
+ */
20274
+ "text-wrap": [{
20275
+ text: ["wrap", "nowrap", "balance", "pretty"]
20276
+ }],
20277
+ /**
20278
+ * Text Indent
20279
+ * @see https://tailwindcss.com/docs/text-indent
20280
+ */
20281
+ indent: [{
20282
+ indent: scaleUnambiguousSpacing()
20283
+ }],
20284
+ /**
20285
+ * Vertical Alignment
20286
+ * @see https://tailwindcss.com/docs/vertical-align
20287
+ */
20288
+ "vertical-align": [{
20289
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
20290
+ }],
20291
+ /**
20292
+ * Whitespace
20293
+ * @see https://tailwindcss.com/docs/whitespace
20294
+ */
20295
+ whitespace: [{
20296
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
20297
+ }],
20298
+ /**
20299
+ * Word Break
20300
+ * @see https://tailwindcss.com/docs/word-break
20301
+ */
20302
+ break: [{
20303
+ break: ["normal", "words", "all", "keep"]
20304
+ }],
20305
+ /**
20306
+ * Overflow Wrap
20307
+ * @see https://tailwindcss.com/docs/overflow-wrap
20308
+ */
20309
+ wrap: [{
20310
+ wrap: ["break-word", "anywhere", "normal"]
20311
+ }],
20312
+ /**
20313
+ * Hyphens
20314
+ * @see https://tailwindcss.com/docs/hyphens
20315
+ */
20316
+ hyphens: [{
20317
+ hyphens: ["none", "manual", "auto"]
20318
+ }],
20319
+ /**
20320
+ * Content
20321
+ * @see https://tailwindcss.com/docs/content
20322
+ */
20323
+ content: [{
20324
+ content: ["none", isArbitraryVariable, isArbitraryValue]
20325
+ }],
20326
+ // -------------------
20327
+ // --- Backgrounds ---
20328
+ // -------------------
20329
+ /**
20330
+ * Background Attachment
20331
+ * @see https://tailwindcss.com/docs/background-attachment
20332
+ */
20333
+ "bg-attachment": [{
20334
+ bg: ["fixed", "local", "scroll"]
20335
+ }],
20336
+ /**
20337
+ * Background Clip
20338
+ * @see https://tailwindcss.com/docs/background-clip
20339
+ */
20340
+ "bg-clip": [{
20341
+ "bg-clip": ["border", "padding", "content", "text"]
20342
+ }],
20343
+ /**
20344
+ * Background Origin
20345
+ * @see https://tailwindcss.com/docs/background-origin
20346
+ */
20347
+ "bg-origin": [{
20348
+ "bg-origin": ["border", "padding", "content"]
20349
+ }],
20350
+ /**
20351
+ * Background Position
20352
+ * @see https://tailwindcss.com/docs/background-position
20353
+ */
20354
+ "bg-position": [{
20355
+ bg: scaleBgPosition()
20356
+ }],
20357
+ /**
20358
+ * Background Repeat
20359
+ * @see https://tailwindcss.com/docs/background-repeat
20360
+ */
20361
+ "bg-repeat": [{
20362
+ bg: scaleBgRepeat()
20363
+ }],
20364
+ /**
20365
+ * Background Size
20366
+ * @see https://tailwindcss.com/docs/background-size
20367
+ */
20368
+ "bg-size": [{
20369
+ bg: scaleBgSize()
20370
+ }],
20371
+ /**
20372
+ * Background Image
20373
+ * @see https://tailwindcss.com/docs/background-image
20374
+ */
20375
+ "bg-image": [{
20376
+ bg: ["none", {
20377
+ linear: [{
20378
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
20379
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
20380
+ radial: ["", isArbitraryVariable, isArbitraryValue],
20381
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
20382
+ }, isArbitraryVariableImage, isArbitraryImage]
20383
+ }],
20384
+ /**
20385
+ * Background Color
20386
+ * @see https://tailwindcss.com/docs/background-color
20387
+ */
20388
+ "bg-color": [{
20389
+ bg: scaleColor()
20390
+ }],
20391
+ /**
20392
+ * Gradient Color Stops From Position
20393
+ * @see https://tailwindcss.com/docs/gradient-color-stops
20394
+ */
20395
+ "gradient-from-pos": [{
20396
+ from: scaleGradientStopPosition()
20397
+ }],
20398
+ /**
20399
+ * Gradient Color Stops Via Position
20400
+ * @see https://tailwindcss.com/docs/gradient-color-stops
20401
+ */
20402
+ "gradient-via-pos": [{
20403
+ via: scaleGradientStopPosition()
20404
+ }],
20405
+ /**
20406
+ * Gradient Color Stops To Position
20407
+ * @see https://tailwindcss.com/docs/gradient-color-stops
20408
+ */
20409
+ "gradient-to-pos": [{
20410
+ to: scaleGradientStopPosition()
20411
+ }],
20412
+ /**
20413
+ * Gradient Color Stops From
20414
+ * @see https://tailwindcss.com/docs/gradient-color-stops
20415
+ */
20416
+ "gradient-from": [{
20417
+ from: scaleColor()
20418
+ }],
20419
+ /**
20420
+ * Gradient Color Stops Via
20421
+ * @see https://tailwindcss.com/docs/gradient-color-stops
20422
+ */
20423
+ "gradient-via": [{
20424
+ via: scaleColor()
20425
+ }],
20426
+ /**
20427
+ * Gradient Color Stops To
20428
+ * @see https://tailwindcss.com/docs/gradient-color-stops
20429
+ */
20430
+ "gradient-to": [{
20431
+ to: scaleColor()
20432
+ }],
20433
+ // ---------------
20434
+ // --- Borders ---
20435
+ // ---------------
20436
+ /**
20437
+ * Border Radius
20438
+ * @see https://tailwindcss.com/docs/border-radius
20439
+ */
20440
+ rounded: [{
20441
+ rounded: scaleRadius()
20442
+ }],
20443
+ /**
20444
+ * Border Radius Start
20445
+ * @see https://tailwindcss.com/docs/border-radius
20446
+ */
20447
+ "rounded-s": [{
20448
+ "rounded-s": scaleRadius()
20449
+ }],
20450
+ /**
20451
+ * Border Radius End
20452
+ * @see https://tailwindcss.com/docs/border-radius
20453
+ */
20454
+ "rounded-e": [{
20455
+ "rounded-e": scaleRadius()
20456
+ }],
20457
+ /**
20458
+ * Border Radius Top
20459
+ * @see https://tailwindcss.com/docs/border-radius
20460
+ */
20461
+ "rounded-t": [{
20462
+ "rounded-t": scaleRadius()
20463
+ }],
20464
+ /**
20465
+ * Border Radius Right
20466
+ * @see https://tailwindcss.com/docs/border-radius
20467
+ */
20468
+ "rounded-r": [{
20469
+ "rounded-r": scaleRadius()
20470
+ }],
20471
+ /**
20472
+ * Border Radius Bottom
20473
+ * @see https://tailwindcss.com/docs/border-radius
20474
+ */
20475
+ "rounded-b": [{
20476
+ "rounded-b": scaleRadius()
20477
+ }],
20478
+ /**
20479
+ * Border Radius Left
20480
+ * @see https://tailwindcss.com/docs/border-radius
20481
+ */
20482
+ "rounded-l": [{
20483
+ "rounded-l": scaleRadius()
20484
+ }],
20485
+ /**
20486
+ * Border Radius Start Start
20487
+ * @see https://tailwindcss.com/docs/border-radius
20488
+ */
20489
+ "rounded-ss": [{
20490
+ "rounded-ss": scaleRadius()
20491
+ }],
20492
+ /**
20493
+ * Border Radius Start End
20494
+ * @see https://tailwindcss.com/docs/border-radius
20495
+ */
20496
+ "rounded-se": [{
20497
+ "rounded-se": scaleRadius()
20498
+ }],
20499
+ /**
20500
+ * Border Radius End End
20501
+ * @see https://tailwindcss.com/docs/border-radius
20502
+ */
20503
+ "rounded-ee": [{
20504
+ "rounded-ee": scaleRadius()
20505
+ }],
20506
+ /**
20507
+ * Border Radius End Start
20508
+ * @see https://tailwindcss.com/docs/border-radius
20509
+ */
20510
+ "rounded-es": [{
20511
+ "rounded-es": scaleRadius()
20512
+ }],
20513
+ /**
20514
+ * Border Radius Top Left
20515
+ * @see https://tailwindcss.com/docs/border-radius
20516
+ */
20517
+ "rounded-tl": [{
20518
+ "rounded-tl": scaleRadius()
20519
+ }],
20520
+ /**
20521
+ * Border Radius Top Right
20522
+ * @see https://tailwindcss.com/docs/border-radius
20523
+ */
20524
+ "rounded-tr": [{
20525
+ "rounded-tr": scaleRadius()
20526
+ }],
20527
+ /**
20528
+ * Border Radius Bottom Right
20529
+ * @see https://tailwindcss.com/docs/border-radius
20530
+ */
20531
+ "rounded-br": [{
20532
+ "rounded-br": scaleRadius()
20533
+ }],
20534
+ /**
20535
+ * Border Radius Bottom Left
20536
+ * @see https://tailwindcss.com/docs/border-radius
20537
+ */
20538
+ "rounded-bl": [{
20539
+ "rounded-bl": scaleRadius()
20540
+ }],
20541
+ /**
20542
+ * Border Width
20543
+ * @see https://tailwindcss.com/docs/border-width
20544
+ */
20545
+ "border-w": [{
20546
+ border: scaleBorderWidth()
20547
+ }],
20548
+ /**
20549
+ * Border Width X
20550
+ * @see https://tailwindcss.com/docs/border-width
20551
+ */
20552
+ "border-w-x": [{
20553
+ "border-x": scaleBorderWidth()
20554
+ }],
20555
+ /**
20556
+ * Border Width Y
20557
+ * @see https://tailwindcss.com/docs/border-width
20558
+ */
20559
+ "border-w-y": [{
20560
+ "border-y": scaleBorderWidth()
20561
+ }],
20562
+ /**
20563
+ * Border Width Start
20564
+ * @see https://tailwindcss.com/docs/border-width
20565
+ */
20566
+ "border-w-s": [{
20567
+ "border-s": scaleBorderWidth()
20568
+ }],
20569
+ /**
20570
+ * Border Width End
20571
+ * @see https://tailwindcss.com/docs/border-width
20572
+ */
20573
+ "border-w-e": [{
20574
+ "border-e": scaleBorderWidth()
20575
+ }],
20576
+ /**
20577
+ * Border Width Top
20578
+ * @see https://tailwindcss.com/docs/border-width
20579
+ */
20580
+ "border-w-t": [{
20581
+ "border-t": scaleBorderWidth()
20582
+ }],
20583
+ /**
20584
+ * Border Width Right
20585
+ * @see https://tailwindcss.com/docs/border-width
20586
+ */
20587
+ "border-w-r": [{
20588
+ "border-r": scaleBorderWidth()
20589
+ }],
20590
+ /**
20591
+ * Border Width Bottom
20592
+ * @see https://tailwindcss.com/docs/border-width
20593
+ */
20594
+ "border-w-b": [{
20595
+ "border-b": scaleBorderWidth()
20596
+ }],
20597
+ /**
20598
+ * Border Width Left
20599
+ * @see https://tailwindcss.com/docs/border-width
20600
+ */
20601
+ "border-w-l": [{
20602
+ "border-l": scaleBorderWidth()
20603
+ }],
20604
+ /**
20605
+ * Divide Width X
20606
+ * @see https://tailwindcss.com/docs/border-width#between-children
20607
+ */
20608
+ "divide-x": [{
20609
+ "divide-x": scaleBorderWidth()
20610
+ }],
20611
+ /**
20612
+ * Divide Width X Reverse
20613
+ * @see https://tailwindcss.com/docs/border-width#between-children
20614
+ */
20615
+ "divide-x-reverse": ["divide-x-reverse"],
20616
+ /**
20617
+ * Divide Width Y
20618
+ * @see https://tailwindcss.com/docs/border-width#between-children
20619
+ */
20620
+ "divide-y": [{
20621
+ "divide-y": scaleBorderWidth()
20622
+ }],
20623
+ /**
20624
+ * Divide Width Y Reverse
20625
+ * @see https://tailwindcss.com/docs/border-width#between-children
20626
+ */
20627
+ "divide-y-reverse": ["divide-y-reverse"],
20628
+ /**
20629
+ * Border Style
20630
+ * @see https://tailwindcss.com/docs/border-style
20631
+ */
20632
+ "border-style": [{
20633
+ border: [...scaleLineStyle(), "hidden", "none"]
20634
+ }],
20635
+ /**
20636
+ * Divide Style
20637
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
20638
+ */
20639
+ "divide-style": [{
20640
+ divide: [...scaleLineStyle(), "hidden", "none"]
20641
+ }],
20642
+ /**
20643
+ * Border Color
20644
+ * @see https://tailwindcss.com/docs/border-color
20645
+ */
20646
+ "border-color": [{
20647
+ border: scaleColor()
20648
+ }],
20649
+ /**
20650
+ * Border Color X
20651
+ * @see https://tailwindcss.com/docs/border-color
20652
+ */
20653
+ "border-color-x": [{
20654
+ "border-x": scaleColor()
20655
+ }],
20656
+ /**
20657
+ * Border Color Y
20658
+ * @see https://tailwindcss.com/docs/border-color
20659
+ */
20660
+ "border-color-y": [{
20661
+ "border-y": scaleColor()
20662
+ }],
20663
+ /**
20664
+ * Border Color S
20665
+ * @see https://tailwindcss.com/docs/border-color
20666
+ */
20667
+ "border-color-s": [{
20668
+ "border-s": scaleColor()
20669
+ }],
20670
+ /**
20671
+ * Border Color E
20672
+ * @see https://tailwindcss.com/docs/border-color
20673
+ */
20674
+ "border-color-e": [{
20675
+ "border-e": scaleColor()
20676
+ }],
20677
+ /**
20678
+ * Border Color Top
20679
+ * @see https://tailwindcss.com/docs/border-color
20680
+ */
20681
+ "border-color-t": [{
20682
+ "border-t": scaleColor()
20683
+ }],
20684
+ /**
20685
+ * Border Color Right
20686
+ * @see https://tailwindcss.com/docs/border-color
20687
+ */
20688
+ "border-color-r": [{
20689
+ "border-r": scaleColor()
20690
+ }],
20691
+ /**
20692
+ * Border Color Bottom
20693
+ * @see https://tailwindcss.com/docs/border-color
20694
+ */
20695
+ "border-color-b": [{
20696
+ "border-b": scaleColor()
20697
+ }],
20698
+ /**
20699
+ * Border Color Left
20700
+ * @see https://tailwindcss.com/docs/border-color
20701
+ */
20702
+ "border-color-l": [{
20703
+ "border-l": scaleColor()
20704
+ }],
20705
+ /**
20706
+ * Divide Color
20707
+ * @see https://tailwindcss.com/docs/divide-color
20708
+ */
20709
+ "divide-color": [{
20710
+ divide: scaleColor()
20711
+ }],
20712
+ /**
20713
+ * Outline Style
20714
+ * @see https://tailwindcss.com/docs/outline-style
20715
+ */
20716
+ "outline-style": [{
20717
+ outline: [...scaleLineStyle(), "none", "hidden"]
20718
+ }],
20719
+ /**
20720
+ * Outline Offset
20721
+ * @see https://tailwindcss.com/docs/outline-offset
20722
+ */
20723
+ "outline-offset": [{
20724
+ "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
20725
+ }],
20726
+ /**
20727
+ * Outline Width
20728
+ * @see https://tailwindcss.com/docs/outline-width
20729
+ */
20730
+ "outline-w": [{
20731
+ outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
20732
+ }],
20733
+ /**
20734
+ * Outline Color
20735
+ * @see https://tailwindcss.com/docs/outline-color
20736
+ */
20737
+ "outline-color": [{
20738
+ outline: scaleColor()
20739
+ }],
20740
+ // ---------------
20741
+ // --- Effects ---
20742
+ // ---------------
20743
+ /**
20744
+ * Box Shadow
20745
+ * @see https://tailwindcss.com/docs/box-shadow
20746
+ */
20747
+ shadow: [{
20748
+ shadow: [
20749
+ // Deprecated since Tailwind CSS v4.0.0
20750
+ "",
20751
+ "none",
20752
+ themeShadow,
20753
+ isArbitraryVariableShadow,
20754
+ isArbitraryShadow
20755
+ ]
20756
+ }],
20757
+ /**
20758
+ * Box Shadow Color
20759
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
20760
+ */
20761
+ "shadow-color": [{
20762
+ shadow: scaleColor()
20763
+ }],
20764
+ /**
20765
+ * Inset Box Shadow
20766
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
20767
+ */
20768
+ "inset-shadow": [{
20769
+ "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
20770
+ }],
20771
+ /**
20772
+ * Inset Box Shadow Color
20773
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
20774
+ */
20775
+ "inset-shadow-color": [{
20776
+ "inset-shadow": scaleColor()
20777
+ }],
20778
+ /**
20779
+ * Ring Width
20780
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
20781
+ */
20782
+ "ring-w": [{
20783
+ ring: scaleBorderWidth()
20784
+ }],
20785
+ /**
20786
+ * Ring Width Inset
20787
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
20788
+ * @deprecated since Tailwind CSS v4.0.0
20789
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
20790
+ */
20791
+ "ring-w-inset": ["ring-inset"],
20792
+ /**
20793
+ * Ring Color
20794
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
20795
+ */
20796
+ "ring-color": [{
20797
+ ring: scaleColor()
20798
+ }],
20799
+ /**
20800
+ * Ring Offset Width
20801
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
20802
+ * @deprecated since Tailwind CSS v4.0.0
20803
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
20804
+ */
20805
+ "ring-offset-w": [{
20806
+ "ring-offset": [isNumber, isArbitraryLength]
20807
+ }],
20808
+ /**
20809
+ * Ring Offset Color
20810
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
20811
+ * @deprecated since Tailwind CSS v4.0.0
20812
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
20813
+ */
20814
+ "ring-offset-color": [{
20815
+ "ring-offset": scaleColor()
20816
+ }],
20817
+ /**
20818
+ * Inset Ring Width
20819
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
20820
+ */
20821
+ "inset-ring-w": [{
20822
+ "inset-ring": scaleBorderWidth()
20823
+ }],
20824
+ /**
20825
+ * Inset Ring Color
20826
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
20827
+ */
20828
+ "inset-ring-color": [{
20829
+ "inset-ring": scaleColor()
20830
+ }],
20831
+ /**
20832
+ * Text Shadow
20833
+ * @see https://tailwindcss.com/docs/text-shadow
20834
+ */
20835
+ "text-shadow": [{
20836
+ "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
20837
+ }],
20838
+ /**
20839
+ * Text Shadow Color
20840
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
20841
+ */
20842
+ "text-shadow-color": [{
20843
+ "text-shadow": scaleColor()
20844
+ }],
20845
+ /**
20846
+ * Opacity
20847
+ * @see https://tailwindcss.com/docs/opacity
20848
+ */
20849
+ opacity: [{
20850
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
20851
+ }],
20852
+ /**
20853
+ * Mix Blend Mode
20854
+ * @see https://tailwindcss.com/docs/mix-blend-mode
20855
+ */
20856
+ "mix-blend": [{
20857
+ "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
20858
+ }],
20859
+ /**
20860
+ * Background Blend Mode
20861
+ * @see https://tailwindcss.com/docs/background-blend-mode
20862
+ */
20863
+ "bg-blend": [{
20864
+ "bg-blend": scaleBlendMode()
20865
+ }],
20866
+ /**
20867
+ * Mask Clip
20868
+ * @see https://tailwindcss.com/docs/mask-clip
20869
+ */
20870
+ "mask-clip": [{
20871
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
20872
+ }, "mask-no-clip"],
20873
+ /**
20874
+ * Mask Composite
20875
+ * @see https://tailwindcss.com/docs/mask-composite
20876
+ */
20877
+ "mask-composite": [{
20878
+ mask: ["add", "subtract", "intersect", "exclude"]
20879
+ }],
20880
+ /**
20881
+ * Mask Image
20882
+ * @see https://tailwindcss.com/docs/mask-image
20883
+ */
20884
+ "mask-image-linear-pos": [{
20885
+ "mask-linear": [isNumber]
20886
+ }],
20887
+ "mask-image-linear-from-pos": [{
20888
+ "mask-linear-from": scaleMaskImagePosition()
20889
+ }],
20890
+ "mask-image-linear-to-pos": [{
20891
+ "mask-linear-to": scaleMaskImagePosition()
20892
+ }],
20893
+ "mask-image-linear-from-color": [{
20894
+ "mask-linear-from": scaleColor()
20895
+ }],
20896
+ "mask-image-linear-to-color": [{
20897
+ "mask-linear-to": scaleColor()
20898
+ }],
20899
+ "mask-image-t-from-pos": [{
20900
+ "mask-t-from": scaleMaskImagePosition()
20901
+ }],
20902
+ "mask-image-t-to-pos": [{
20903
+ "mask-t-to": scaleMaskImagePosition()
20904
+ }],
20905
+ "mask-image-t-from-color": [{
20906
+ "mask-t-from": scaleColor()
20907
+ }],
20908
+ "mask-image-t-to-color": [{
20909
+ "mask-t-to": scaleColor()
20910
+ }],
20911
+ "mask-image-r-from-pos": [{
20912
+ "mask-r-from": scaleMaskImagePosition()
20913
+ }],
20914
+ "mask-image-r-to-pos": [{
20915
+ "mask-r-to": scaleMaskImagePosition()
20916
+ }],
20917
+ "mask-image-r-from-color": [{
20918
+ "mask-r-from": scaleColor()
20919
+ }],
20920
+ "mask-image-r-to-color": [{
20921
+ "mask-r-to": scaleColor()
20922
+ }],
20923
+ "mask-image-b-from-pos": [{
20924
+ "mask-b-from": scaleMaskImagePosition()
20925
+ }],
20926
+ "mask-image-b-to-pos": [{
20927
+ "mask-b-to": scaleMaskImagePosition()
20928
+ }],
20929
+ "mask-image-b-from-color": [{
20930
+ "mask-b-from": scaleColor()
20931
+ }],
20932
+ "mask-image-b-to-color": [{
20933
+ "mask-b-to": scaleColor()
20934
+ }],
20935
+ "mask-image-l-from-pos": [{
20936
+ "mask-l-from": scaleMaskImagePosition()
20937
+ }],
20938
+ "mask-image-l-to-pos": [{
20939
+ "mask-l-to": scaleMaskImagePosition()
20940
+ }],
20941
+ "mask-image-l-from-color": [{
20942
+ "mask-l-from": scaleColor()
20943
+ }],
20944
+ "mask-image-l-to-color": [{
20945
+ "mask-l-to": scaleColor()
20946
+ }],
20947
+ "mask-image-x-from-pos": [{
20948
+ "mask-x-from": scaleMaskImagePosition()
20949
+ }],
20950
+ "mask-image-x-to-pos": [{
20951
+ "mask-x-to": scaleMaskImagePosition()
20952
+ }],
20953
+ "mask-image-x-from-color": [{
20954
+ "mask-x-from": scaleColor()
20955
+ }],
20956
+ "mask-image-x-to-color": [{
20957
+ "mask-x-to": scaleColor()
20958
+ }],
20959
+ "mask-image-y-from-pos": [{
20960
+ "mask-y-from": scaleMaskImagePosition()
20961
+ }],
20962
+ "mask-image-y-to-pos": [{
20963
+ "mask-y-to": scaleMaskImagePosition()
20964
+ }],
20965
+ "mask-image-y-from-color": [{
20966
+ "mask-y-from": scaleColor()
20967
+ }],
20968
+ "mask-image-y-to-color": [{
20969
+ "mask-y-to": scaleColor()
20970
+ }],
20971
+ "mask-image-radial": [{
20972
+ "mask-radial": [isArbitraryVariable, isArbitraryValue]
20973
+ }],
20974
+ "mask-image-radial-from-pos": [{
20975
+ "mask-radial-from": scaleMaskImagePosition()
20976
+ }],
20977
+ "mask-image-radial-to-pos": [{
20978
+ "mask-radial-to": scaleMaskImagePosition()
20979
+ }],
20980
+ "mask-image-radial-from-color": [{
20981
+ "mask-radial-from": scaleColor()
20982
+ }],
20983
+ "mask-image-radial-to-color": [{
20984
+ "mask-radial-to": scaleColor()
20985
+ }],
20986
+ "mask-image-radial-shape": [{
20987
+ "mask-radial": ["circle", "ellipse"]
20988
+ }],
20989
+ "mask-image-radial-size": [{
20990
+ "mask-radial": [{
20991
+ closest: ["side", "corner"],
20992
+ farthest: ["side", "corner"]
20993
+ }]
20994
+ }],
20995
+ "mask-image-radial-pos": [{
20996
+ "mask-radial-at": scalePosition()
20997
+ }],
20998
+ "mask-image-conic-pos": [{
20999
+ "mask-conic": [isNumber]
21000
+ }],
21001
+ "mask-image-conic-from-pos": [{
21002
+ "mask-conic-from": scaleMaskImagePosition()
21003
+ }],
21004
+ "mask-image-conic-to-pos": [{
21005
+ "mask-conic-to": scaleMaskImagePosition()
21006
+ }],
21007
+ "mask-image-conic-from-color": [{
21008
+ "mask-conic-from": scaleColor()
21009
+ }],
21010
+ "mask-image-conic-to-color": [{
21011
+ "mask-conic-to": scaleColor()
21012
+ }],
21013
+ /**
21014
+ * Mask Mode
21015
+ * @see https://tailwindcss.com/docs/mask-mode
21016
+ */
21017
+ "mask-mode": [{
21018
+ mask: ["alpha", "luminance", "match"]
21019
+ }],
21020
+ /**
21021
+ * Mask Origin
21022
+ * @see https://tailwindcss.com/docs/mask-origin
21023
+ */
21024
+ "mask-origin": [{
21025
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
21026
+ }],
21027
+ /**
21028
+ * Mask Position
21029
+ * @see https://tailwindcss.com/docs/mask-position
21030
+ */
21031
+ "mask-position": [{
21032
+ mask: scaleBgPosition()
21033
+ }],
21034
+ /**
21035
+ * Mask Repeat
21036
+ * @see https://tailwindcss.com/docs/mask-repeat
21037
+ */
21038
+ "mask-repeat": [{
21039
+ mask: scaleBgRepeat()
21040
+ }],
21041
+ /**
21042
+ * Mask Size
21043
+ * @see https://tailwindcss.com/docs/mask-size
21044
+ */
21045
+ "mask-size": [{
21046
+ mask: scaleBgSize()
21047
+ }],
21048
+ /**
21049
+ * Mask Type
21050
+ * @see https://tailwindcss.com/docs/mask-type
21051
+ */
21052
+ "mask-type": [{
21053
+ "mask-type": ["alpha", "luminance"]
21054
+ }],
21055
+ /**
21056
+ * Mask Image
21057
+ * @see https://tailwindcss.com/docs/mask-image
21058
+ */
21059
+ "mask-image": [{
21060
+ mask: ["none", isArbitraryVariable, isArbitraryValue]
21061
+ }],
21062
+ // ---------------
21063
+ // --- Filters ---
21064
+ // ---------------
21065
+ /**
21066
+ * Filter
21067
+ * @see https://tailwindcss.com/docs/filter
21068
+ */
21069
+ filter: [{
21070
+ filter: [
21071
+ // Deprecated since Tailwind CSS v3.0.0
21072
+ "",
21073
+ "none",
21074
+ isArbitraryVariable,
21075
+ isArbitraryValue
21076
+ ]
21077
+ }],
21078
+ /**
21079
+ * Blur
21080
+ * @see https://tailwindcss.com/docs/blur
21081
+ */
21082
+ blur: [{
21083
+ blur: scaleBlur()
21084
+ }],
21085
+ /**
21086
+ * Brightness
21087
+ * @see https://tailwindcss.com/docs/brightness
21088
+ */
21089
+ brightness: [{
21090
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
21091
+ }],
21092
+ /**
21093
+ * Contrast
21094
+ * @see https://tailwindcss.com/docs/contrast
21095
+ */
21096
+ contrast: [{
21097
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
21098
+ }],
21099
+ /**
21100
+ * Drop Shadow
21101
+ * @see https://tailwindcss.com/docs/drop-shadow
21102
+ */
21103
+ "drop-shadow": [{
21104
+ "drop-shadow": [
21105
+ // Deprecated since Tailwind CSS v4.0.0
21106
+ "",
21107
+ "none",
21108
+ themeDropShadow,
21109
+ isArbitraryVariableShadow,
21110
+ isArbitraryShadow
21111
+ ]
21112
+ }],
21113
+ /**
21114
+ * Drop Shadow Color
21115
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
21116
+ */
21117
+ "drop-shadow-color": [{
21118
+ "drop-shadow": scaleColor()
21119
+ }],
21120
+ /**
21121
+ * Grayscale
21122
+ * @see https://tailwindcss.com/docs/grayscale
21123
+ */
21124
+ grayscale: [{
21125
+ grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
21126
+ }],
21127
+ /**
21128
+ * Hue Rotate
21129
+ * @see https://tailwindcss.com/docs/hue-rotate
21130
+ */
21131
+ "hue-rotate": [{
21132
+ "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
21133
+ }],
21134
+ /**
21135
+ * Invert
21136
+ * @see https://tailwindcss.com/docs/invert
21137
+ */
21138
+ invert: [{
21139
+ invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
21140
+ }],
21141
+ /**
21142
+ * Saturate
21143
+ * @see https://tailwindcss.com/docs/saturate
21144
+ */
21145
+ saturate: [{
21146
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
21147
+ }],
21148
+ /**
21149
+ * Sepia
21150
+ * @see https://tailwindcss.com/docs/sepia
21151
+ */
21152
+ sepia: [{
21153
+ sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
21154
+ }],
21155
+ /**
21156
+ * Backdrop Filter
21157
+ * @see https://tailwindcss.com/docs/backdrop-filter
21158
+ */
21159
+ "backdrop-filter": [{
21160
+ "backdrop-filter": [
21161
+ // Deprecated since Tailwind CSS v3.0.0
21162
+ "",
21163
+ "none",
21164
+ isArbitraryVariable,
21165
+ isArbitraryValue
21166
+ ]
21167
+ }],
21168
+ /**
21169
+ * Backdrop Blur
21170
+ * @see https://tailwindcss.com/docs/backdrop-blur
21171
+ */
21172
+ "backdrop-blur": [{
21173
+ "backdrop-blur": scaleBlur()
21174
+ }],
21175
+ /**
21176
+ * Backdrop Brightness
21177
+ * @see https://tailwindcss.com/docs/backdrop-brightness
21178
+ */
21179
+ "backdrop-brightness": [{
21180
+ "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
21181
+ }],
21182
+ /**
21183
+ * Backdrop Contrast
21184
+ * @see https://tailwindcss.com/docs/backdrop-contrast
21185
+ */
21186
+ "backdrop-contrast": [{
21187
+ "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
21188
+ }],
21189
+ /**
21190
+ * Backdrop Grayscale
21191
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
21192
+ */
21193
+ "backdrop-grayscale": [{
21194
+ "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
21195
+ }],
21196
+ /**
21197
+ * Backdrop Hue Rotate
21198
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
21199
+ */
21200
+ "backdrop-hue-rotate": [{
21201
+ "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
21202
+ }],
21203
+ /**
21204
+ * Backdrop Invert
21205
+ * @see https://tailwindcss.com/docs/backdrop-invert
21206
+ */
21207
+ "backdrop-invert": [{
21208
+ "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
21209
+ }],
21210
+ /**
21211
+ * Backdrop Opacity
21212
+ * @see https://tailwindcss.com/docs/backdrop-opacity
21213
+ */
21214
+ "backdrop-opacity": [{
21215
+ "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
21216
+ }],
21217
+ /**
21218
+ * Backdrop Saturate
21219
+ * @see https://tailwindcss.com/docs/backdrop-saturate
21220
+ */
21221
+ "backdrop-saturate": [{
21222
+ "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
21223
+ }],
21224
+ /**
21225
+ * Backdrop Sepia
21226
+ * @see https://tailwindcss.com/docs/backdrop-sepia
21227
+ */
21228
+ "backdrop-sepia": [{
21229
+ "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
21230
+ }],
21231
+ // --------------
21232
+ // --- Tables ---
21233
+ // --------------
21234
+ /**
21235
+ * Border Collapse
21236
+ * @see https://tailwindcss.com/docs/border-collapse
21237
+ */
21238
+ "border-collapse": [{
21239
+ border: ["collapse", "separate"]
21240
+ }],
21241
+ /**
21242
+ * Border Spacing
21243
+ * @see https://tailwindcss.com/docs/border-spacing
21244
+ */
21245
+ "border-spacing": [{
21246
+ "border-spacing": scaleUnambiguousSpacing()
21247
+ }],
21248
+ /**
21249
+ * Border Spacing X
21250
+ * @see https://tailwindcss.com/docs/border-spacing
21251
+ */
21252
+ "border-spacing-x": [{
21253
+ "border-spacing-x": scaleUnambiguousSpacing()
21254
+ }],
21255
+ /**
21256
+ * Border Spacing Y
21257
+ * @see https://tailwindcss.com/docs/border-spacing
21258
+ */
21259
+ "border-spacing-y": [{
21260
+ "border-spacing-y": scaleUnambiguousSpacing()
21261
+ }],
21262
+ /**
21263
+ * Table Layout
21264
+ * @see https://tailwindcss.com/docs/table-layout
21265
+ */
21266
+ "table-layout": [{
21267
+ table: ["auto", "fixed"]
21268
+ }],
21269
+ /**
21270
+ * Caption Side
21271
+ * @see https://tailwindcss.com/docs/caption-side
21272
+ */
21273
+ caption: [{
21274
+ caption: ["top", "bottom"]
21275
+ }],
21276
+ // ---------------------------------
21277
+ // --- Transitions and Animation ---
21278
+ // ---------------------------------
21279
+ /**
21280
+ * Transition Property
21281
+ * @see https://tailwindcss.com/docs/transition-property
21282
+ */
21283
+ transition: [{
21284
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
21285
+ }],
21286
+ /**
21287
+ * Transition Behavior
21288
+ * @see https://tailwindcss.com/docs/transition-behavior
21289
+ */
21290
+ "transition-behavior": [{
21291
+ transition: ["normal", "discrete"]
21292
+ }],
21293
+ /**
21294
+ * Transition Duration
21295
+ * @see https://tailwindcss.com/docs/transition-duration
21296
+ */
21297
+ duration: [{
21298
+ duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
21299
+ }],
21300
+ /**
21301
+ * Transition Timing Function
21302
+ * @see https://tailwindcss.com/docs/transition-timing-function
21303
+ */
21304
+ ease: [{
21305
+ ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
21306
+ }],
21307
+ /**
21308
+ * Transition Delay
21309
+ * @see https://tailwindcss.com/docs/transition-delay
21310
+ */
21311
+ delay: [{
21312
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
21313
+ }],
21314
+ /**
21315
+ * Animation
21316
+ * @see https://tailwindcss.com/docs/animation
21317
+ */
21318
+ animate: [{
21319
+ animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
21320
+ }],
21321
+ // ------------------
21322
+ // --- Transforms ---
21323
+ // ------------------
21324
+ /**
21325
+ * Backface Visibility
21326
+ * @see https://tailwindcss.com/docs/backface-visibility
21327
+ */
21328
+ backface: [{
21329
+ backface: ["hidden", "visible"]
21330
+ }],
21331
+ /**
21332
+ * Perspective
21333
+ * @see https://tailwindcss.com/docs/perspective
21334
+ */
21335
+ perspective: [{
21336
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
21337
+ }],
21338
+ /**
21339
+ * Perspective Origin
21340
+ * @see https://tailwindcss.com/docs/perspective-origin
21341
+ */
21342
+ "perspective-origin": [{
21343
+ "perspective-origin": scalePositionWithArbitrary()
21344
+ }],
21345
+ /**
21346
+ * Rotate
21347
+ * @see https://tailwindcss.com/docs/rotate
21348
+ */
21349
+ rotate: [{
21350
+ rotate: scaleRotate()
21351
+ }],
21352
+ /**
21353
+ * Rotate X
21354
+ * @see https://tailwindcss.com/docs/rotate
21355
+ */
21356
+ "rotate-x": [{
21357
+ "rotate-x": scaleRotate()
21358
+ }],
21359
+ /**
21360
+ * Rotate Y
21361
+ * @see https://tailwindcss.com/docs/rotate
21362
+ */
21363
+ "rotate-y": [{
21364
+ "rotate-y": scaleRotate()
21365
+ }],
21366
+ /**
21367
+ * Rotate Z
21368
+ * @see https://tailwindcss.com/docs/rotate
21369
+ */
21370
+ "rotate-z": [{
21371
+ "rotate-z": scaleRotate()
21372
+ }],
21373
+ /**
21374
+ * Scale
21375
+ * @see https://tailwindcss.com/docs/scale
21376
+ */
21377
+ scale: [{
21378
+ scale: scaleScale()
21379
+ }],
21380
+ /**
21381
+ * Scale X
21382
+ * @see https://tailwindcss.com/docs/scale
21383
+ */
21384
+ "scale-x": [{
21385
+ "scale-x": scaleScale()
21386
+ }],
21387
+ /**
21388
+ * Scale Y
21389
+ * @see https://tailwindcss.com/docs/scale
21390
+ */
21391
+ "scale-y": [{
21392
+ "scale-y": scaleScale()
21393
+ }],
21394
+ /**
21395
+ * Scale Z
21396
+ * @see https://tailwindcss.com/docs/scale
21397
+ */
21398
+ "scale-z": [{
21399
+ "scale-z": scaleScale()
21400
+ }],
21401
+ /**
21402
+ * Scale 3D
21403
+ * @see https://tailwindcss.com/docs/scale
21404
+ */
21405
+ "scale-3d": ["scale-3d"],
21406
+ /**
21407
+ * Skew
21408
+ * @see https://tailwindcss.com/docs/skew
21409
+ */
21410
+ skew: [{
21411
+ skew: scaleSkew()
21412
+ }],
21413
+ /**
21414
+ * Skew X
21415
+ * @see https://tailwindcss.com/docs/skew
21416
+ */
21417
+ "skew-x": [{
21418
+ "skew-x": scaleSkew()
21419
+ }],
21420
+ /**
21421
+ * Skew Y
21422
+ * @see https://tailwindcss.com/docs/skew
21423
+ */
21424
+ "skew-y": [{
21425
+ "skew-y": scaleSkew()
21426
+ }],
21427
+ /**
21428
+ * Transform
21429
+ * @see https://tailwindcss.com/docs/transform
21430
+ */
21431
+ transform: [{
21432
+ transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
21433
+ }],
21434
+ /**
21435
+ * Transform Origin
21436
+ * @see https://tailwindcss.com/docs/transform-origin
21437
+ */
21438
+ "transform-origin": [{
21439
+ origin: scalePositionWithArbitrary()
21440
+ }],
21441
+ /**
21442
+ * Transform Style
21443
+ * @see https://tailwindcss.com/docs/transform-style
21444
+ */
21445
+ "transform-style": [{
21446
+ transform: ["3d", "flat"]
21447
+ }],
21448
+ /**
21449
+ * Translate
21450
+ * @see https://tailwindcss.com/docs/translate
21451
+ */
21452
+ translate: [{
21453
+ translate: scaleTranslate()
21454
+ }],
21455
+ /**
21456
+ * Translate X
21457
+ * @see https://tailwindcss.com/docs/translate
21458
+ */
21459
+ "translate-x": [{
21460
+ "translate-x": scaleTranslate()
21461
+ }],
21462
+ /**
21463
+ * Translate Y
21464
+ * @see https://tailwindcss.com/docs/translate
21465
+ */
21466
+ "translate-y": [{
21467
+ "translate-y": scaleTranslate()
21468
+ }],
21469
+ /**
21470
+ * Translate Z
21471
+ * @see https://tailwindcss.com/docs/translate
21472
+ */
21473
+ "translate-z": [{
21474
+ "translate-z": scaleTranslate()
21475
+ }],
21476
+ /**
21477
+ * Translate None
21478
+ * @see https://tailwindcss.com/docs/translate
21479
+ */
21480
+ "translate-none": ["translate-none"],
21481
+ // ---------------------
21482
+ // --- Interactivity ---
21483
+ // ---------------------
21484
+ /**
21485
+ * Accent Color
21486
+ * @see https://tailwindcss.com/docs/accent-color
21487
+ */
21488
+ accent: [{
21489
+ accent: scaleColor()
21490
+ }],
21491
+ /**
21492
+ * Appearance
21493
+ * @see https://tailwindcss.com/docs/appearance
21494
+ */
21495
+ appearance: [{
21496
+ appearance: ["none", "auto"]
21497
+ }],
21498
+ /**
21499
+ * Caret Color
21500
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
21501
+ */
21502
+ "caret-color": [{
21503
+ caret: scaleColor()
21504
+ }],
21505
+ /**
21506
+ * Color Scheme
21507
+ * @see https://tailwindcss.com/docs/color-scheme
21508
+ */
21509
+ "color-scheme": [{
21510
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
21511
+ }],
21512
+ /**
21513
+ * Cursor
21514
+ * @see https://tailwindcss.com/docs/cursor
21515
+ */
21516
+ cursor: [{
21517
+ 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]
21518
+ }],
21519
+ /**
21520
+ * Field Sizing
21521
+ * @see https://tailwindcss.com/docs/field-sizing
21522
+ */
21523
+ "field-sizing": [{
21524
+ "field-sizing": ["fixed", "content"]
21525
+ }],
21526
+ /**
21527
+ * Pointer Events
21528
+ * @see https://tailwindcss.com/docs/pointer-events
21529
+ */
21530
+ "pointer-events": [{
21531
+ "pointer-events": ["auto", "none"]
21532
+ }],
21533
+ /**
21534
+ * Resize
21535
+ * @see https://tailwindcss.com/docs/resize
21536
+ */
21537
+ resize: [{
21538
+ resize: ["none", "", "y", "x"]
21539
+ }],
21540
+ /**
21541
+ * Scroll Behavior
21542
+ * @see https://tailwindcss.com/docs/scroll-behavior
21543
+ */
21544
+ "scroll-behavior": [{
21545
+ scroll: ["auto", "smooth"]
21546
+ }],
21547
+ /**
21548
+ * Scroll Margin
21549
+ * @see https://tailwindcss.com/docs/scroll-margin
21550
+ */
21551
+ "scroll-m": [{
21552
+ "scroll-m": scaleUnambiguousSpacing()
21553
+ }],
21554
+ /**
21555
+ * Scroll Margin X
21556
+ * @see https://tailwindcss.com/docs/scroll-margin
21557
+ */
21558
+ "scroll-mx": [{
21559
+ "scroll-mx": scaleUnambiguousSpacing()
21560
+ }],
21561
+ /**
21562
+ * Scroll Margin Y
21563
+ * @see https://tailwindcss.com/docs/scroll-margin
21564
+ */
21565
+ "scroll-my": [{
21566
+ "scroll-my": scaleUnambiguousSpacing()
21567
+ }],
21568
+ /**
21569
+ * Scroll Margin Start
21570
+ * @see https://tailwindcss.com/docs/scroll-margin
21571
+ */
21572
+ "scroll-ms": [{
21573
+ "scroll-ms": scaleUnambiguousSpacing()
21574
+ }],
21575
+ /**
21576
+ * Scroll Margin End
21577
+ * @see https://tailwindcss.com/docs/scroll-margin
21578
+ */
21579
+ "scroll-me": [{
21580
+ "scroll-me": scaleUnambiguousSpacing()
21581
+ }],
21582
+ /**
21583
+ * Scroll Margin Top
21584
+ * @see https://tailwindcss.com/docs/scroll-margin
21585
+ */
21586
+ "scroll-mt": [{
21587
+ "scroll-mt": scaleUnambiguousSpacing()
21588
+ }],
21589
+ /**
21590
+ * Scroll Margin Right
21591
+ * @see https://tailwindcss.com/docs/scroll-margin
21592
+ */
21593
+ "scroll-mr": [{
21594
+ "scroll-mr": scaleUnambiguousSpacing()
21595
+ }],
21596
+ /**
21597
+ * Scroll Margin Bottom
21598
+ * @see https://tailwindcss.com/docs/scroll-margin
21599
+ */
21600
+ "scroll-mb": [{
21601
+ "scroll-mb": scaleUnambiguousSpacing()
21602
+ }],
21603
+ /**
21604
+ * Scroll Margin Left
21605
+ * @see https://tailwindcss.com/docs/scroll-margin
21606
+ */
21607
+ "scroll-ml": [{
21608
+ "scroll-ml": scaleUnambiguousSpacing()
21609
+ }],
21610
+ /**
21611
+ * Scroll Padding
21612
+ * @see https://tailwindcss.com/docs/scroll-padding
21613
+ */
21614
+ "scroll-p": [{
21615
+ "scroll-p": scaleUnambiguousSpacing()
21616
+ }],
21617
+ /**
21618
+ * Scroll Padding X
21619
+ * @see https://tailwindcss.com/docs/scroll-padding
21620
+ */
21621
+ "scroll-px": [{
21622
+ "scroll-px": scaleUnambiguousSpacing()
21623
+ }],
21624
+ /**
21625
+ * Scroll Padding Y
21626
+ * @see https://tailwindcss.com/docs/scroll-padding
21627
+ */
21628
+ "scroll-py": [{
21629
+ "scroll-py": scaleUnambiguousSpacing()
21630
+ }],
21631
+ /**
21632
+ * Scroll Padding Start
21633
+ * @see https://tailwindcss.com/docs/scroll-padding
21634
+ */
21635
+ "scroll-ps": [{
21636
+ "scroll-ps": scaleUnambiguousSpacing()
21637
+ }],
21638
+ /**
21639
+ * Scroll Padding End
21640
+ * @see https://tailwindcss.com/docs/scroll-padding
21641
+ */
21642
+ "scroll-pe": [{
21643
+ "scroll-pe": scaleUnambiguousSpacing()
21644
+ }],
21645
+ /**
21646
+ * Scroll Padding Top
21647
+ * @see https://tailwindcss.com/docs/scroll-padding
21648
+ */
21649
+ "scroll-pt": [{
21650
+ "scroll-pt": scaleUnambiguousSpacing()
21651
+ }],
21652
+ /**
21653
+ * Scroll Padding Right
21654
+ * @see https://tailwindcss.com/docs/scroll-padding
21655
+ */
21656
+ "scroll-pr": [{
21657
+ "scroll-pr": scaleUnambiguousSpacing()
21658
+ }],
21659
+ /**
21660
+ * Scroll Padding Bottom
21661
+ * @see https://tailwindcss.com/docs/scroll-padding
21662
+ */
21663
+ "scroll-pb": [{
21664
+ "scroll-pb": scaleUnambiguousSpacing()
21665
+ }],
21666
+ /**
21667
+ * Scroll Padding Left
21668
+ * @see https://tailwindcss.com/docs/scroll-padding
21669
+ */
21670
+ "scroll-pl": [{
21671
+ "scroll-pl": scaleUnambiguousSpacing()
21672
+ }],
21673
+ /**
21674
+ * Scroll Snap Align
21675
+ * @see https://tailwindcss.com/docs/scroll-snap-align
21676
+ */
21677
+ "snap-align": [{
21678
+ snap: ["start", "end", "center", "align-none"]
21679
+ }],
21680
+ /**
21681
+ * Scroll Snap Stop
21682
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
21683
+ */
21684
+ "snap-stop": [{
21685
+ snap: ["normal", "always"]
21686
+ }],
21687
+ /**
21688
+ * Scroll Snap Type
21689
+ * @see https://tailwindcss.com/docs/scroll-snap-type
21690
+ */
21691
+ "snap-type": [{
21692
+ snap: ["none", "x", "y", "both"]
21693
+ }],
21694
+ /**
21695
+ * Scroll Snap Type Strictness
21696
+ * @see https://tailwindcss.com/docs/scroll-snap-type
21697
+ */
21698
+ "snap-strictness": [{
21699
+ snap: ["mandatory", "proximity"]
21700
+ }],
21701
+ /**
21702
+ * Touch Action
21703
+ * @see https://tailwindcss.com/docs/touch-action
21704
+ */
21705
+ touch: [{
21706
+ touch: ["auto", "none", "manipulation"]
21707
+ }],
21708
+ /**
21709
+ * Touch Action X
21710
+ * @see https://tailwindcss.com/docs/touch-action
21711
+ */
21712
+ "touch-x": [{
21713
+ "touch-pan": ["x", "left", "right"]
21714
+ }],
21715
+ /**
21716
+ * Touch Action Y
21717
+ * @see https://tailwindcss.com/docs/touch-action
21718
+ */
21719
+ "touch-y": [{
21720
+ "touch-pan": ["y", "up", "down"]
21721
+ }],
21722
+ /**
21723
+ * Touch Action Pinch Zoom
21724
+ * @see https://tailwindcss.com/docs/touch-action
21725
+ */
21726
+ "touch-pz": ["touch-pinch-zoom"],
21727
+ /**
21728
+ * User Select
21729
+ * @see https://tailwindcss.com/docs/user-select
21730
+ */
21731
+ select: [{
21732
+ select: ["none", "text", "all", "auto"]
21733
+ }],
21734
+ /**
21735
+ * Will Change
21736
+ * @see https://tailwindcss.com/docs/will-change
21737
+ */
21738
+ "will-change": [{
21739
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
21740
+ }],
21741
+ // -----------
21742
+ // --- SVG ---
21743
+ // -----------
21744
+ /**
21745
+ * Fill
21746
+ * @see https://tailwindcss.com/docs/fill
21747
+ */
21748
+ fill: [{
21749
+ fill: ["none", ...scaleColor()]
21750
+ }],
21751
+ /**
21752
+ * Stroke Width
21753
+ * @see https://tailwindcss.com/docs/stroke-width
21754
+ */
21755
+ "stroke-w": [{
21756
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
21757
+ }],
21758
+ /**
21759
+ * Stroke
21760
+ * @see https://tailwindcss.com/docs/stroke
21761
+ */
21762
+ stroke: [{
21763
+ stroke: ["none", ...scaleColor()]
21764
+ }],
21765
+ // ---------------------
21766
+ // --- Accessibility ---
21767
+ // ---------------------
21768
+ /**
21769
+ * Forced Color Adjust
21770
+ * @see https://tailwindcss.com/docs/forced-color-adjust
21771
+ */
21772
+ "forced-color-adjust": [{
21773
+ "forced-color-adjust": ["auto", "none"]
21774
+ }]
21775
+ },
21776
+ conflictingClassGroups: {
21777
+ overflow: ["overflow-x", "overflow-y"],
21778
+ overscroll: ["overscroll-x", "overscroll-y"],
21779
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
21780
+ "inset-x": ["right", "left"],
21781
+ "inset-y": ["top", "bottom"],
21782
+ flex: ["basis", "grow", "shrink"],
21783
+ gap: ["gap-x", "gap-y"],
21784
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
21785
+ px: ["pr", "pl"],
21786
+ py: ["pt", "pb"],
21787
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
21788
+ mx: ["mr", "ml"],
21789
+ my: ["mt", "mb"],
21790
+ size: ["w", "h"],
21791
+ "font-size": ["leading"],
21792
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
21793
+ "fvn-ordinal": ["fvn-normal"],
21794
+ "fvn-slashed-zero": ["fvn-normal"],
21795
+ "fvn-figure": ["fvn-normal"],
21796
+ "fvn-spacing": ["fvn-normal"],
21797
+ "fvn-fraction": ["fvn-normal"],
21798
+ "line-clamp": ["display", "overflow"],
21799
+ 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"],
21800
+ "rounded-s": ["rounded-ss", "rounded-es"],
21801
+ "rounded-e": ["rounded-se", "rounded-ee"],
21802
+ "rounded-t": ["rounded-tl", "rounded-tr"],
21803
+ "rounded-r": ["rounded-tr", "rounded-br"],
21804
+ "rounded-b": ["rounded-br", "rounded-bl"],
21805
+ "rounded-l": ["rounded-tl", "rounded-bl"],
21806
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
21807
+ "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"],
21808
+ "border-w-x": ["border-w-r", "border-w-l"],
21809
+ "border-w-y": ["border-w-t", "border-w-b"],
21810
+ "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"],
21811
+ "border-color-x": ["border-color-r", "border-color-l"],
21812
+ "border-color-y": ["border-color-t", "border-color-b"],
21813
+ translate: ["translate-x", "translate-y", "translate-none"],
21814
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
21815
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
21816
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
21817
+ "scroll-my": ["scroll-mt", "scroll-mb"],
21818
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
21819
+ "scroll-px": ["scroll-pr", "scroll-pl"],
21820
+ "scroll-py": ["scroll-pt", "scroll-pb"],
21821
+ touch: ["touch-x", "touch-y", "touch-pz"],
21822
+ "touch-x": ["touch"],
21823
+ "touch-y": ["touch"],
21824
+ "touch-pz": ["touch"]
21825
+ },
21826
+ conflictingClassGroupModifiers: {
21827
+ "font-size": ["leading"]
21828
+ },
21829
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
21830
+ };
21831
+ };
21832
+ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
21833
+
21834
+ // src/lib/utils.ts
21835
+ function cn(...inputs) {
21836
+ return twMerge(clsx(inputs));
21837
+ }
18846
21838
 
18847
21839
  // src/components/LightboxOverlay.tsx
18848
21840
  import { jsx } from "react/jsx-runtime";
18849
21841
  function LightboxOverlay({
18850
21842
  onClose,
18851
- closeOnBackdropClick = true
21843
+ closeOnBackdropClick = true,
21844
+ className
18852
21845
  }) {
18853
21846
  const handleClick = (event) => {
18854
21847
  if (!closeOnBackdropClick) return;
@@ -18858,7 +21851,12 @@ function LightboxOverlay({
18858
21851
  return /* @__PURE__ */ jsx(
18859
21852
  "div",
18860
21853
  {
18861
- className: Lightbox_default.overlay,
21854
+ className: cn(
21855
+ "fixed inset-0 bg-black/90",
21856
+ "bg-[linear-gradient(to_right,rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(to_bottom,rgba(255,255,255,0.03)_1px,transparent_1px)]",
21857
+ "bg-[size:24px_24px]",
21858
+ className
21859
+ ),
18862
21860
  "aria-hidden": "true",
18863
21861
  onClick: handleClick
18864
21862
  }
@@ -19472,13 +22470,13 @@ var LegacyImg = ({ mediaId, cdnHost, sizes, onImageData, loading, decoding, alt,
19472
22470
  return `${base}.${ext}`;
19473
22471
  }, [data, picture]);
19474
22472
  if (!hasMediaId) {
19475
- const r = { ...rest };
19476
- return _jsx("img", { ref: imgRef, src: directSrc, loading: loadingAttr, decoding: decodingAttr, alt: altAttr, title: titleAttr, width: r.width, height: r.height, ...r });
22473
+ const r2 = { ...rest };
22474
+ return _jsx("img", { ref: imgRef, src: directSrc, loading: loadingAttr, decoding: decodingAttr, alt: altAttr, title: titleAttr, width: r2.width, height: r2.height, ...r2 });
19477
22475
  }
19478
22476
  const placeholderSrc = buildPlaceholderImageUrl(mediaId, cdnHost);
19479
22477
  if (!data || !picture || !isInView) {
19480
- const r = { ...rest };
19481
- return _jsx("img", { ref: imgRef, src: placeholderSrc, loading: loadingAttr, decoding: decodingAttr, alt: altAttr, title: titleAttr, width: r.width ?? widthAttr, height: r.height ?? heightAttr, ...r });
22478
+ const r2 = { ...rest };
22479
+ return _jsx("img", { ref: imgRef, src: placeholderSrc, loading: loadingAttr, decoding: decodingAttr, alt: altAttr, title: titleAttr, width: r2.width ?? widthAttr, height: r2.height ?? heightAttr, ...r2 });
19482
22480
  }
19483
22481
  const sizesAttr = sizes ?? DEFAULT_SIZES;
19484
22482
  const { webp, avif, jpeg, toSrcSet, fallback } = picture;
@@ -19524,7 +22522,7 @@ function ImageRenderer({ item, optixFlowConfig }) {
19524
22522
  return /* @__PURE__ */ jsx2(
19525
22523
  Img2,
19526
22524
  {
19527
- className: Lightbox_default.media,
22525
+ className: "max-w-full max-h-full w-auto h-auto object-contain",
19528
22526
  src: item.src,
19529
22527
  alt: item.alt || item.title || "",
19530
22528
  loading: "lazy",
@@ -19540,7 +22538,7 @@ function VideoRenderer({ item }) {
19540
22538
  return /* @__PURE__ */ jsx3(
19541
22539
  "video",
19542
22540
  {
19543
- className: Lightbox_default.media,
22541
+ className: "max-w-full max-h-full w-auto h-auto object-contain rounded-lg",
19544
22542
  src: item.src,
19545
22543
  controls: true,
19546
22544
  playsInline: true
@@ -19562,10 +22560,10 @@ var LazyPDFViewer = React.lazy(loadPDFViewer);
19562
22560
  var AnyPDFViewer = LazyPDFViewer;
19563
22561
  function PDFRenderer({ item }) {
19564
22562
  if (!item.src) return null;
19565
- return /* @__PURE__ */ jsx5("div", { className: Lightbox_default.pdfContainer, children: /* @__PURE__ */ jsx5(
22563
+ return /* @__PURE__ */ jsx5("div", { className: "w-full h-full flex items-center justify-center p-4", children: /* @__PURE__ */ jsx5(
19566
22564
  Suspense,
19567
22565
  {
19568
- fallback: /* @__PURE__ */ jsx5("div", { className: Lightbox_default.pdfFallback, children: "Loading document..." }),
22566
+ fallback: /* @__PURE__ */ jsx5("div", { className: "flex items-center justify-center text-neutral-500 text-sm", children: "Loading document..." }),
19569
22567
  children: /* @__PURE__ */ jsx5(AnyPDFViewer, { url: item.src })
19570
22568
  }
19571
22569
  ) });
@@ -19605,7 +22603,7 @@ function LightboxContent({ item, layout, optixFlowConfig }) {
19605
22603
  }
19606
22604
 
19607
22605
  // src/components/LightboxChrome.tsx
19608
- import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
22606
+ import { Fragment, jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
19609
22607
  var DEFAULT_CONTROLS = {
19610
22608
  navigation: true,
19611
22609
  keyboard: true,
@@ -19623,6 +22621,38 @@ var DEFAULT_CONTROLS = {
19623
22621
  function mergeControls(overrides) {
19624
22622
  return { ...DEFAULT_CONTROLS, ...overrides || {} };
19625
22623
  }
22624
+ var IconButton = ({
22625
+ onClick,
22626
+ disabled,
22627
+ ariaLabel,
22628
+ children,
22629
+ className
22630
+ }) => /* @__PURE__ */ jsx8(
22631
+ "button",
22632
+ {
22633
+ type: "button",
22634
+ onClick,
22635
+ disabled,
22636
+ "aria-label": ariaLabel,
22637
+ className: cn(
22638
+ "flex items-center justify-center",
22639
+ "w-10 h-10 rounded-full",
22640
+ "bg-neutral-800/80 hover:bg-neutral-700/90",
22641
+ "text-white/90 hover:text-white",
22642
+ "transition-colors duration-200",
22643
+ "disabled:opacity-40 disabled:cursor-not-allowed",
22644
+ "focus:outline-none focus:ring-2 focus:ring-white/30",
22645
+ className
22646
+ ),
22647
+ children
22648
+ }
22649
+ );
22650
+ var ArrowLeftIcon = () => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M19 12H5M12 19l-7-7 7-7" }) });
22651
+ var ArrowRightIcon = () => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M5 12h14M12 5l7 7-7 7" }) });
22652
+ var CloseIcon = () => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M18 6L6 18M6 6l12 12" }) });
22653
+ var FullscreenIcon = () => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" }) });
22654
+ var DownloadIcon = () => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" }) });
22655
+ var ShareIcon = () => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8M16 6l-4-4-4 4M12 2v13" }) });
19626
22656
  function LightboxChrome({
19627
22657
  currentIndex,
19628
22658
  totalItems,
@@ -19632,54 +22662,70 @@ function LightboxChrome({
19632
22662
  controls,
19633
22663
  onNext,
19634
22664
  onPrev,
19635
- onClose
22665
+ onClose,
22666
+ className,
22667
+ variant = "floating"
19636
22668
  }) {
19637
22669
  const resolved = mergeControls(controls);
19638
- return /* @__PURE__ */ jsxs4("div", { className: Lightbox_default.chrome, children: [
19639
- resolved.navigation && /* @__PURE__ */ jsxs4("div", { className: Lightbox_default.chromeSection, children: [
19640
- /* @__PURE__ */ jsx8(
19641
- "button",
19642
- {
19643
- type: "button",
19644
- className: Lightbox_default.navButton,
19645
- onClick: onPrev,
19646
- disabled: !canPrev,
19647
- "aria-label": "Previous item",
19648
- children: "\u2039"
19649
- }
19650
- ),
19651
- /* @__PURE__ */ jsx8(
19652
- "button",
19653
- {
19654
- type: "button",
19655
- className: Lightbox_default.navButton,
19656
- onClick: onNext,
19657
- disabled: !canNext,
19658
- "aria-label": "Next item",
19659
- children: "\u203A"
19660
- }
19661
- )
22670
+ if (variant === "toolbar") {
22671
+ return /* @__PURE__ */ jsxs4("div", { className: cn(
22672
+ "flex items-center justify-between",
22673
+ "px-3 py-2",
22674
+ "bg-black/50 text-white",
22675
+ "border-t border-white/10",
22676
+ className
22677
+ ), children: [
22678
+ resolved.navigation && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
22679
+ /* @__PURE__ */ jsx8(IconButton, { onClick: onPrev, disabled: !canPrev, ariaLabel: "Previous item", children: /* @__PURE__ */ jsx8(ArrowLeftIcon, {}) }),
22680
+ /* @__PURE__ */ jsx8(IconButton, { onClick: onNext, disabled: !canNext, ariaLabel: "Next item", children: /* @__PURE__ */ jsx8(ArrowRightIcon, {}) })
22681
+ ] }),
22682
+ /* @__PURE__ */ jsx8("div", { className: "flex flex-col", children: resolved.captions && currentItem && /* @__PURE__ */ jsxs4(Fragment, { children: [
22683
+ currentItem.title && /* @__PURE__ */ jsx8("div", { className: "text-sm font-semibold", children: currentItem.title }),
22684
+ currentItem.caption && /* @__PURE__ */ jsx8("div", { className: "text-xs text-white/70", children: currentItem.caption })
22685
+ ] }) }),
22686
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
22687
+ resolved.counter && totalItems > 0 && /* @__PURE__ */ jsxs4("span", { className: "text-xs text-white/70", children: [
22688
+ currentIndex + 1,
22689
+ " / ",
22690
+ totalItems
22691
+ ] }),
22692
+ resolved.closeButton && /* @__PURE__ */ jsx8(IconButton, { onClick: onClose, ariaLabel: "Close lightbox", children: /* @__PURE__ */ jsx8(CloseIcon, {}) })
22693
+ ] })
22694
+ ] });
22695
+ }
22696
+ return /* @__PURE__ */ jsxs4(Fragment, { children: [
22697
+ /* @__PURE__ */ jsxs4("div", { className: cn(
22698
+ "fixed top-4 right-4 z-50",
22699
+ "flex items-center gap-2",
22700
+ className
22701
+ ), children: [
22702
+ resolved.share && /* @__PURE__ */ jsx8(IconButton, { ariaLabel: "Share", children: /* @__PURE__ */ jsx8(ShareIcon, {}) }),
22703
+ resolved.fullscreen && /* @__PURE__ */ jsx8(IconButton, { ariaLabel: "Fullscreen", children: /* @__PURE__ */ jsx8(FullscreenIcon, {}) }),
22704
+ resolved.download && /* @__PURE__ */ jsx8(IconButton, { ariaLabel: "Download", children: /* @__PURE__ */ jsx8(DownloadIcon, {}) }),
22705
+ resolved.closeButton && /* @__PURE__ */ jsx8(IconButton, { onClick: onClose, ariaLabel: "Close lightbox", children: /* @__PURE__ */ jsx8(CloseIcon, {}) })
22706
+ ] }),
22707
+ resolved.navigation && /* @__PURE__ */ jsxs4("div", { className: "fixed bottom-6 right-6 z-50 flex items-center gap-3", children: [
22708
+ /* @__PURE__ */ jsx8(IconButton, { onClick: onPrev, disabled: !canPrev, ariaLabel: "Previous item", children: /* @__PURE__ */ jsx8(ArrowLeftIcon, {}) }),
22709
+ /* @__PURE__ */ jsx8(IconButton, { onClick: onNext, disabled: !canNext, ariaLabel: "Next item", children: /* @__PURE__ */ jsx8(ArrowRightIcon, {}) })
19662
22710
  ] }),
19663
- /* @__PURE__ */ jsx8("div", { className: Lightbox_default.chromeSection, children: resolved.captions && currentItem && /* @__PURE__ */ jsxs4("div", { className: Lightbox_default.captionContainer, children: [
19664
- currentItem.title && /* @__PURE__ */ jsx8("div", { className: Lightbox_default.captionTitle, children: currentItem.title }),
19665
- currentItem.caption && /* @__PURE__ */ jsx8("div", { className: Lightbox_default.captionText, children: currentItem.caption })
19666
- ] }) }),
19667
- /* @__PURE__ */ jsxs4("div", { className: Lightbox_default.chromeSection, children: [
19668
- resolved.counter && totalItems > 0 && /* @__PURE__ */ jsxs4("span", { className: Lightbox_default.counter, children: [
22711
+ resolved.captions && currentItem && (currentItem.title || currentItem.caption) && /* @__PURE__ */ jsxs4("div", { className: cn(
22712
+ "fixed bottom-6 left-6 z-50",
22713
+ "max-w-md p-4",
22714
+ "bg-white rounded-xl shadow-lg",
22715
+ "text-neutral-900"
22716
+ ), children: [
22717
+ currentItem.title && /* @__PURE__ */ jsx8("div", { className: "text-base font-semibold leading-tight", children: currentItem.title }),
22718
+ currentItem.caption && /* @__PURE__ */ jsx8("div", { className: "mt-1 text-sm text-neutral-600 leading-relaxed", children: currentItem.caption }),
22719
+ resolved.counter && totalItems > 1 && /* @__PURE__ */ jsxs4("div", { className: "mt-2 text-xs text-neutral-400", children: [
19669
22720
  currentIndex + 1,
19670
- " / ",
22721
+ " of ",
19671
22722
  totalItems
19672
- ] }),
19673
- resolved.closeButton && /* @__PURE__ */ jsx8(
19674
- "button",
19675
- {
19676
- type: "button",
19677
- className: Lightbox_default.closeButton,
19678
- onClick: onClose,
19679
- "aria-label": "Close lightbox",
19680
- children: "\xD7"
19681
- }
19682
- )
22723
+ ] })
22724
+ ] }),
22725
+ resolved.counter && totalItems > 1 && !(resolved.captions && currentItem && (currentItem.title || currentItem.caption)) && /* @__PURE__ */ jsxs4("div", { className: "fixed bottom-6 left-6 z-50 px-3 py-1.5 bg-black/70 rounded-full text-white text-sm", children: [
22726
+ currentIndex + 1,
22727
+ " / ",
22728
+ totalItems
19683
22729
  ] })
19684
22730
  ] });
19685
22731
  }
@@ -19699,19 +22745,33 @@ function HorizontalLayout({
19699
22745
  height,
19700
22746
  ...style
19701
22747
  };
19702
- return /* @__PURE__ */ jsx9("div", { className: Lightbox_default.horizontalLayoutRoot, style: containerStyle, children: /* @__PURE__ */ jsxs5(
22748
+ return /* @__PURE__ */ jsx9(
19703
22749
  "div",
19704
22750
  {
19705
- className: [
19706
- Lightbox_default.horizontalLayoutContainer,
19707
- className || ""
19708
- ].join(" ").trim(),
19709
- children: [
19710
- /* @__PURE__ */ jsx9("div", { className: Lightbox_default.mainContent, children: content }),
19711
- /* @__PURE__ */ jsx9("div", { className: Lightbox_default.toolbar, children: chrome })
19712
- ]
22751
+ className: "fixed inset-0 z-50 flex items-center justify-center p-4 md:p-8",
22752
+ style: containerStyle,
22753
+ children: /* @__PURE__ */ jsxs5(
22754
+ "div",
22755
+ {
22756
+ className: cn(
22757
+ "relative flex flex-col",
22758
+ "w-full max-w-6xl max-h-full",
22759
+ "overflow-hidden",
22760
+ className
22761
+ ),
22762
+ children: [
22763
+ /* @__PURE__ */ jsx9("div", { className: cn(
22764
+ "relative flex-1 min-h-0",
22765
+ "flex items-center justify-center",
22766
+ "overflow-hidden rounded-xl",
22767
+ "bg-white shadow-2xl"
22768
+ ), children: content }),
22769
+ chrome
22770
+ ]
22771
+ }
22772
+ )
19713
22773
  }
19714
- ) });
22774
+ );
19715
22775
  }
19716
22776
 
19717
22777
  // src/components/Layouts/VerticalSplitLayout.tsx
@@ -19719,6 +22779,7 @@ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
19719
22779
  function VerticalSplitLayout({
19720
22780
  content,
19721
22781
  chrome,
22782
+ sidebar,
19722
22783
  height,
19723
22784
  maxWidth,
19724
22785
  className,
@@ -19729,19 +22790,38 @@ function VerticalSplitLayout({
19729
22790
  height,
19730
22791
  ...style
19731
22792
  };
19732
- return /* @__PURE__ */ jsx10("div", { className: Lightbox_default.verticalSplitLayoutRoot, style: containerStyle, children: /* @__PURE__ */ jsxs6(
22793
+ return /* @__PURE__ */ jsx10(
19733
22794
  "div",
19734
22795
  {
19735
- className: [
19736
- Lightbox_default.verticalSplitLayoutContainer,
19737
- className || ""
19738
- ].join(" ").trim(),
19739
- children: [
19740
- /* @__PURE__ */ jsx10("div", { className: Lightbox_default.verticalSplitContent, children: content }),
19741
- /* @__PURE__ */ jsx10("div", { className: Lightbox_default.verticalSplitSidebar, children: chrome })
19742
- ]
22796
+ className: "fixed inset-0 z-50 flex items-center justify-center p-4 md:p-8",
22797
+ style: containerStyle,
22798
+ children: /* @__PURE__ */ jsxs6(
22799
+ "div",
22800
+ {
22801
+ className: cn(
22802
+ "relative flex flex-col md:flex-row",
22803
+ "w-full max-w-7xl max-h-full",
22804
+ "gap-4",
22805
+ className
22806
+ ),
22807
+ children: [
22808
+ /* @__PURE__ */ jsx10("div", { className: cn(
22809
+ "relative flex-1 min-h-0 md:min-w-0",
22810
+ "flex items-center justify-center",
22811
+ "overflow-hidden rounded-xl",
22812
+ "bg-neutral-900"
22813
+ ), children: content }),
22814
+ sidebar && /* @__PURE__ */ jsx10("div", { className: cn(
22815
+ "w-full md:w-80 lg:w-96",
22816
+ "flex flex-col gap-4",
22817
+ "overflow-y-auto"
22818
+ ), children: sidebar }),
22819
+ chrome
22820
+ ]
22821
+ }
22822
+ )
19743
22823
  }
19744
- ) });
22824
+ );
19745
22825
  }
19746
22826
 
19747
22827
  // src/components/Layouts/CustomSlideLayout.tsx
@@ -19759,19 +22839,32 @@ function CustomSlideLayout({
19759
22839
  height,
19760
22840
  ...style
19761
22841
  };
19762
- return /* @__PURE__ */ jsx11("div", { className: Lightbox_default.customSlideLayoutRoot, style: containerStyle, children: /* @__PURE__ */ jsxs7(
22842
+ return /* @__PURE__ */ jsx11(
19763
22843
  "div",
19764
22844
  {
19765
- className: [
19766
- Lightbox_default.customSlideLayoutContainer,
19767
- className || ""
19768
- ].join(" ").trim(),
19769
- children: [
19770
- /* @__PURE__ */ jsx11("div", { className: Lightbox_default.customSlideContent, children: content }),
19771
- /* @__PURE__ */ jsx11("div", { className: Lightbox_default.customSlideChrome, children: chrome })
19772
- ]
22845
+ className: "fixed inset-0 z-50 flex items-center justify-center p-4 md:p-8 lg:p-12",
22846
+ style: containerStyle,
22847
+ children: /* @__PURE__ */ jsxs7(
22848
+ "div",
22849
+ {
22850
+ className: cn(
22851
+ "relative flex flex-col items-center justify-center",
22852
+ "w-full max-w-5xl max-h-full",
22853
+ className
22854
+ ),
22855
+ children: [
22856
+ /* @__PURE__ */ jsx11("div", { className: cn(
22857
+ "relative w-full",
22858
+ "flex items-center justify-center",
22859
+ "overflow-hidden rounded-2xl",
22860
+ "bg-white shadow-2xl"
22861
+ ), children: content }),
22862
+ chrome
22863
+ ]
22864
+ }
22865
+ )
19773
22866
  }
19774
- ) });
22867
+ );
19775
22868
  }
19776
22869
 
19777
22870
  // src/components/Layouts/FullscreenLayout.tsx
@@ -19782,19 +22875,27 @@ function FullscreenLayout({
19782
22875
  className,
19783
22876
  style
19784
22877
  }) {
19785
- return /* @__PURE__ */ jsx12("div", { className: Lightbox_default.fullscreenLayoutRoot, style, children: /* @__PURE__ */ jsxs8(
22878
+ return /* @__PURE__ */ jsx12(
19786
22879
  "div",
19787
22880
  {
19788
- className: [
19789
- Lightbox_default.fullscreenLayoutContainer,
19790
- className || ""
19791
- ].join(" ").trim(),
19792
- children: [
19793
- /* @__PURE__ */ jsx12("div", { className: Lightbox_default.fullscreenContent, children: content }),
19794
- /* @__PURE__ */ jsx12("div", { className: Lightbox_default.fullscreenChrome, children: chrome })
19795
- ]
22881
+ className: "fixed inset-0 z-50 flex flex-col",
22882
+ style,
22883
+ children: /* @__PURE__ */ jsxs8(
22884
+ "div",
22885
+ {
22886
+ className: cn(
22887
+ "relative flex-1 min-h-0",
22888
+ "flex items-center justify-center",
22889
+ className
22890
+ ),
22891
+ children: [
22892
+ /* @__PURE__ */ jsx12("div", { className: "w-full h-full flex items-center justify-center", children: content }),
22893
+ chrome
22894
+ ]
22895
+ }
22896
+ )
19796
22897
  }
19797
- ) });
22898
+ );
19798
22899
  }
19799
22900
 
19800
22901
  // src/components/Layouts/InlineLayout.tsx
@@ -19812,19 +22913,27 @@ function InlineLayout({
19812
22913
  height,
19813
22914
  ...style
19814
22915
  };
19815
- return /* @__PURE__ */ jsx13("div", { className: Lightbox_default.inlineLayoutRoot, style: containerStyle, children: /* @__PURE__ */ jsxs9(
22916
+ return /* @__PURE__ */ jsxs9(
19816
22917
  "div",
19817
22918
  {
19818
- className: [
19819
- Lightbox_default.inlineLayoutContainer,
19820
- className || ""
19821
- ].join(" ").trim(),
22919
+ className: cn(
22920
+ "relative w-full",
22921
+ "overflow-hidden rounded-xl",
22922
+ "bg-neutral-100",
22923
+ className
22924
+ ),
22925
+ style: containerStyle,
19822
22926
  children: [
19823
- /* @__PURE__ */ jsx13("div", { className: Lightbox_default.inlineContent, children: content }),
19824
- /* @__PURE__ */ jsx13("div", { className: Lightbox_default.inlineToolbar, children: chrome })
22927
+ /* @__PURE__ */ jsx13("div", { className: "relative w-full", children: content }),
22928
+ /* @__PURE__ */ jsx13("div", { className: cn(
22929
+ "flex items-center justify-between",
22930
+ "px-3 py-2",
22931
+ "bg-neutral-900/90 text-white",
22932
+ "border-t border-white/10"
22933
+ ), children: chrome })
19825
22934
  ]
19826
22935
  }
19827
- ) });
22936
+ );
19828
22937
  }
19829
22938
 
19830
22939
  // src/components/Lightbox.tsx
@@ -19947,7 +23056,7 @@ function Lightbox(props) {
19947
23056
  layoutComponent = /* @__PURE__ */ jsx14(HorizontalLayout, { ...layoutProps });
19948
23057
  break;
19949
23058
  }
19950
- const lightboxContent = /* @__PURE__ */ jsxs10("div", { className: Lightbox_default.lightboxPortal, role: "dialog", "aria-modal": "true", children: [
23059
+ const lightboxContent = /* @__PURE__ */ jsxs10("div", { className: "fixed inset-0 z-50", role: "dialog", "aria-modal": "true", children: [
19951
23060
  /* @__PURE__ */ jsx14(
19952
23061
  LightboxOverlay,
19953
23062
  {