@unocss/preset-uno 0.4.15 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,7 +50,7 @@ var transitionSizeProps = [
50
50
  "letter-spacing",
51
51
  "word-spacing"
52
52
  ];
53
- var transitionSwtichProps = ["all", "none"];
53
+ var transitionSwitchProps = ["all", "none"];
54
54
  var transitionEnhanceProps = ["stroke", "filter", "backdrop-filter", "fill", "mask", "mask-size", "mask-border", "clip-path", "clip"];
55
55
  var transitionProps = [
56
56
  ...transitionBasicProps,
@@ -60,7 +60,7 @@ var transitionProps = [
60
60
  ];
61
61
  var transitionPropsStr = transitionProps.join(", ");
62
62
  var validateProperty = (prop) => {
63
- if (prop && ![...transitionProps, ...transitionSwtichProps].includes(prop))
63
+ if (prop && ![...transitionProps, ...transitionSwitchProps].includes(prop))
64
64
  return;
65
65
  return prop || transitionPropsStr;
66
66
  };
@@ -132,6 +132,7 @@ var xyzMap = {
132
132
  var handlers_exports = {};
133
133
  __export(handlers_exports, {
134
134
  bracket: () => bracket,
135
+ cssvar: () => cssvar,
135
136
  fraction: () => fraction,
136
137
  number: () => number,
137
138
  percent: () => percent,
@@ -188,6 +189,10 @@ function bracket(str) {
188
189
  if (str[0] === "[" && str[str.length - 1] === "]")
189
190
  return str.slice(1, -1);
190
191
  }
192
+ function cssvar(str) {
193
+ if (str.startsWith("$"))
194
+ return `var(--${str.slice(1)})`;
195
+ }
191
196
 
192
197
  // src/utils/handlers/shorthand.ts
193
198
  var handlersNames = Object.keys(handlers_exports);
@@ -276,11 +281,11 @@ var colorResolver = (attribute, varName) => ([, body], { theme }) => {
276
281
  }
277
282
  };
278
283
  var opacity = [
279
- [/^op(?:acity)?-?(.+)$/, ([, d]) => ({ opacity: handler.bracket.percent(d) })]
284
+ [/^op(?:acity)?-?(.+)$/, ([, d]) => ({ opacity: handler.bracket.percent.cssvar(d) })]
280
285
  ];
281
286
  var textColors = [
282
287
  [/^(?:text|color|c)-(.+)$/, colorResolver("color", "text")],
283
- [/^(?:text|color|c)-op(?:acity)?-?(.+)$/m, ([, opacity2]) => ({ "--un-text-opacity": handler.bracket.percent(opacity2) })]
288
+ [/^(?:text|color|c)-op(?:acity)?-?(.+)$/m, ([, opacity2]) => ({ "--un-text-opacity": handler.bracket.percent.cssvar(opacity2) })]
284
289
  ];
285
290
  var textDecorationColors = [
286
291
  [/^underline-(.+)$/, (match, ctx) => {
@@ -786,7 +791,7 @@ var placeItems = basicSet.map((i) => [`place-items-${i}`, { "place-items": i }])
786
791
  var placeSelfs = basicSet.map((i) => [`place-self-${i}`, { "place-self": i }]);
787
792
  function handleInsetValue(v) {
788
793
  var _a;
789
- return (_a = { auto: "auto", full: "100%" }[v]) != null ? _a : handler.bracket.fraction.rem(v);
794
+ return (_a = { auto: "auto", full: "100%" }[v]) != null ? _a : handler.bracket.fraction.cssvar.rem(v);
790
795
  }
791
796
  var insets = [
792
797
  [/^(top|left|right|bottom|inset)-(.+)$/, ([, d, v]) => ({ [d]: handleInsetValue(v) })],
@@ -918,17 +923,28 @@ var sizes = [
918
923
  ["h-full", { height: "100%" }],
919
924
  ["w-screen", { width: "100vw" }],
920
925
  ["h-screen", { height: "100vh" }],
921
- [/^w-([^-]+)$/, ([, s]) => ({ width: handler.bracket.fraction.rem(s) })],
922
- [/^h-([^-]+)$/, ([, s]) => ({ height: handler.bracket.fraction.rem(s) })],
923
- [/^max-w-([^-]+)$/, ([, s]) => ({ "max-width": handler.bracket.fraction.rem(s) })],
924
- [/^max-h-([^-]+)$/, ([, s]) => ({ "max-height": handler.bracket.fraction.rem(s) })],
925
- [/^max-w-screen-([a-z]+)$/, ([, s], { theme }) => {
926
+ ["max-w-full", { "max-height": "100%" }],
927
+ ["min-h-full", { "min-height": "100%" }],
928
+ ["max-w-screnn", { "max-height": "100vw" }],
929
+ ["min-h-screen", { "min-height": "100vh" }],
930
+ [/^(((min|max)-)?(w|h))-([^-]+)$/, ([, , , m, w, s]) => ({ [getPropName(m, w)]: handler.bracket.fraction.rem(s) })],
931
+ [/^(((min|max)-)?(w))-screen-([a-z]+)$/, ([, , , m, w, s], { theme }) => {
926
932
  var _a;
927
933
  const v = (_a = theme.breakpoints) == null ? void 0 : _a[s];
928
934
  if (v != null)
929
- return { "max-width": v };
935
+ return { [getPropName(m, w)]: v };
930
936
  }]
931
937
  ];
938
+ function getPropName(minmax, hw) {
939
+ var _a;
940
+ const minMaxMap = {
941
+ w: "width",
942
+ h: "height",
943
+ min: "min-",
944
+ max: "max-"
945
+ };
946
+ return `${(_a = minMaxMap[minmax]) != null ? _a : ""}${minMaxMap[hw]}`;
947
+ }
932
948
 
933
949
  // src/rules/spacing.ts
934
950
  var directionSize = (prefix) => ([_, direction, size]) => {
@@ -1170,6 +1186,60 @@ function handleRotate([, b]) {
1170
1186
  }
1171
1187
 
1172
1188
  // src/rules/behaviors.ts
1189
+ var outlineStyle = [
1190
+ "none",
1191
+ "auto",
1192
+ "dotted",
1193
+ "dashed",
1194
+ "solid",
1195
+ "double",
1196
+ "groove",
1197
+ "ridge",
1198
+ "inset",
1199
+ "outset",
1200
+ "inherit",
1201
+ "initial",
1202
+ "revert",
1203
+ "unset"
1204
+ ];
1205
+ var parseOutlineSize = (s) => {
1206
+ const propName = ["width", "offset"].find((item) => s.startsWith(item)) || "width";
1207
+ const size = handler.bracket.fraction.rem(s.replace(/^(offset\-|width\-)/, ""));
1208
+ if (size) {
1209
+ return {
1210
+ [`outline-${propName}`]: size
1211
+ };
1212
+ }
1213
+ };
1214
+ var outline = [
1215
+ ["outline", { "outline-style": "solid" }],
1216
+ [
1217
+ /^outline-(.+)$/,
1218
+ (match, config) => {
1219
+ const [, d] = match;
1220
+ if (d === "none") {
1221
+ return {
1222
+ "outline": "2px solid transparent",
1223
+ "outline-offset": "2px"
1224
+ };
1225
+ }
1226
+ if (outlineStyle.includes(d)) {
1227
+ return {
1228
+ "outline-style": d
1229
+ };
1230
+ }
1231
+ const sizeSheet = parseOutlineSize(d);
1232
+ if (sizeSheet)
1233
+ return sizeSheet;
1234
+ const colorSheet = colorResolver("outline-color", "outline-color")([
1235
+ match[0],
1236
+ match[1].replace(/^color-/, "")
1237
+ ], config);
1238
+ if (colorSheet)
1239
+ return colorSheet;
1240
+ }
1241
+ ]
1242
+ ];
1173
1243
  var listStyleProps = [
1174
1244
  "none",
1175
1245
  "disc",
@@ -1275,7 +1345,7 @@ ${constructCSS({ animation: `${name} 1s linear infinite` })}`;
1275
1345
 
1276
1346
  // src/rules/variables.ts
1277
1347
  var variablesAbbrMap = {
1278
- "w": "with",
1348
+ "w": "width",
1279
1349
  "h": "height",
1280
1350
  "max-w": "max-width",
1281
1351
  "max-h": "max-height",
@@ -1300,7 +1370,7 @@ var variablesAbbrMap = {
1300
1370
  "bg-position": "background-position",
1301
1371
  "bg-repeat": "background-repeat",
1302
1372
  "bg-size": "background-size",
1303
- "border-opacity": "background-opacity",
1373
+ "bg-opacity": "background-opacity",
1304
1374
  "tab": "tab-size",
1305
1375
  "underline": "text-decoration-thickness",
1306
1376
  "underline-offset": "text-underline-offset",
@@ -1330,6 +1400,18 @@ var cssVariables = [[
1330
1400
  }
1331
1401
  ]];
1332
1402
 
1403
+ // src/rules/question-mark.ts
1404
+ var questionMark = [
1405
+ [
1406
+ /^(\?)$/,
1407
+ (_, { constructCSS, generator }) => {
1408
+ if (generator.config.envMode === "dev")
1409
+ return `@keyframes __un_qm {0% {box-shadow: inset 4px 4px #ff1e90, inset -4px -4px #ff1e90;} 100% {box-shadow: inset 8px 8px #3399ff, inset -8px -8px #3399ff;}}
1410
+ ${constructCSS({ animation: "__un_qm 0.5s ease-in-out alternate infinite" })}`;
1411
+ }
1412
+ ]
1413
+ ];
1414
+
1333
1415
  // src/rules/index.ts
1334
1416
  var rules = [
1335
1417
  cssVariables,
@@ -1388,6 +1470,7 @@ var rules = [
1388
1470
  caretOpacity,
1389
1471
  imageRenderings,
1390
1472
  appearance,
1473
+ outline,
1391
1474
  placeholder,
1392
1475
  overscrolls,
1393
1476
  breaks,
@@ -1414,7 +1497,8 @@ var rules = [
1414
1497
  transitions,
1415
1498
  filters,
1416
1499
  tables,
1417
- transforms
1500
+ transforms,
1501
+ questionMark
1418
1502
  ].flat(1);
1419
1503
 
1420
1504
  export {
@@ -50,7 +50,7 @@ var transitionSizeProps = [
50
50
  "letter-spacing",
51
51
  "word-spacing"
52
52
  ];
53
- var transitionSwtichProps = ["all", "none"];
53
+ var transitionSwitchProps = ["all", "none"];
54
54
  var transitionEnhanceProps = ["stroke", "filter", "backdrop-filter", "fill", "mask", "mask-size", "mask-border", "clip-path", "clip"];
55
55
  var transitionProps = [
56
56
  ...transitionBasicProps,
@@ -60,7 +60,7 @@ var transitionProps = [
60
60
  ];
61
61
  var transitionPropsStr = transitionProps.join(", ");
62
62
  var validateProperty = (prop) => {
63
- if (prop && ![...transitionProps, ...transitionSwtichProps].includes(prop))
63
+ if (prop && ![...transitionProps, ...transitionSwitchProps].includes(prop))
64
64
  return;
65
65
  return prop || transitionPropsStr;
66
66
  };
@@ -132,6 +132,7 @@ var xyzMap = {
132
132
  var handlers_exports = {};
133
133
  _chunkOFR2H3GIjs.__export.call(void 0, handlers_exports, {
134
134
  bracket: () => bracket,
135
+ cssvar: () => cssvar,
135
136
  fraction: () => fraction,
136
137
  number: () => number,
137
138
  percent: () => percent,
@@ -188,6 +189,10 @@ function bracket(str) {
188
189
  if (str[0] === "[" && str[str.length - 1] === "]")
189
190
  return str.slice(1, -1);
190
191
  }
192
+ function cssvar(str) {
193
+ if (str.startsWith("$"))
194
+ return `var(--${str.slice(1)})`;
195
+ }
191
196
 
192
197
  // src/utils/handlers/shorthand.ts
193
198
  var handlersNames = Object.keys(handlers_exports);
@@ -276,11 +281,11 @@ var colorResolver = (attribute, varName) => ([, body], { theme }) => {
276
281
  }
277
282
  };
278
283
  var opacity = [
279
- [/^op(?:acity)?-?(.+)$/, ([, d]) => ({ opacity: handler.bracket.percent(d) })]
284
+ [/^op(?:acity)?-?(.+)$/, ([, d]) => ({ opacity: handler.bracket.percent.cssvar(d) })]
280
285
  ];
281
286
  var textColors = [
282
287
  [/^(?:text|color|c)-(.+)$/, colorResolver("color", "text")],
283
- [/^(?:text|color|c)-op(?:acity)?-?(.+)$/m, ([, opacity2]) => ({ "--un-text-opacity": handler.bracket.percent(opacity2) })]
288
+ [/^(?:text|color|c)-op(?:acity)?-?(.+)$/m, ([, opacity2]) => ({ "--un-text-opacity": handler.bracket.percent.cssvar(opacity2) })]
284
289
  ];
285
290
  var textDecorationColors = [
286
291
  [/^underline-(.+)$/, (match, ctx) => {
@@ -786,7 +791,7 @@ var placeItems = basicSet.map((i) => [`place-items-${i}`, { "place-items": i }])
786
791
  var placeSelfs = basicSet.map((i) => [`place-self-${i}`, { "place-self": i }]);
787
792
  function handleInsetValue(v) {
788
793
  var _a;
789
- return (_a = { auto: "auto", full: "100%" }[v]) != null ? _a : handler.bracket.fraction.rem(v);
794
+ return (_a = { auto: "auto", full: "100%" }[v]) != null ? _a : handler.bracket.fraction.cssvar.rem(v);
790
795
  }
791
796
  var insets = [
792
797
  [/^(top|left|right|bottom|inset)-(.+)$/, ([, d, v]) => ({ [d]: handleInsetValue(v) })],
@@ -918,17 +923,28 @@ var sizes = [
918
923
  ["h-full", { height: "100%" }],
919
924
  ["w-screen", { width: "100vw" }],
920
925
  ["h-screen", { height: "100vh" }],
921
- [/^w-([^-]+)$/, ([, s]) => ({ width: handler.bracket.fraction.rem(s) })],
922
- [/^h-([^-]+)$/, ([, s]) => ({ height: handler.bracket.fraction.rem(s) })],
923
- [/^max-w-([^-]+)$/, ([, s]) => ({ "max-width": handler.bracket.fraction.rem(s) })],
924
- [/^max-h-([^-]+)$/, ([, s]) => ({ "max-height": handler.bracket.fraction.rem(s) })],
925
- [/^max-w-screen-([a-z]+)$/, ([, s], { theme }) => {
926
+ ["max-w-full", { "max-height": "100%" }],
927
+ ["min-h-full", { "min-height": "100%" }],
928
+ ["max-w-screnn", { "max-height": "100vw" }],
929
+ ["min-h-screen", { "min-height": "100vh" }],
930
+ [/^(((min|max)-)?(w|h))-([^-]+)$/, ([, , , m, w, s]) => ({ [getPropName(m, w)]: handler.bracket.fraction.rem(s) })],
931
+ [/^(((min|max)-)?(w))-screen-([a-z]+)$/, ([, , , m, w, s], { theme }) => {
926
932
  var _a;
927
933
  const v = (_a = theme.breakpoints) == null ? void 0 : _a[s];
928
934
  if (v != null)
929
- return { "max-width": v };
935
+ return { [getPropName(m, w)]: v };
930
936
  }]
931
937
  ];
938
+ function getPropName(minmax, hw) {
939
+ var _a;
940
+ const minMaxMap = {
941
+ w: "width",
942
+ h: "height",
943
+ min: "min-",
944
+ max: "max-"
945
+ };
946
+ return `${(_a = minMaxMap[minmax]) != null ? _a : ""}${minMaxMap[hw]}`;
947
+ }
932
948
 
933
949
  // src/rules/spacing.ts
934
950
  var directionSize = (prefix) => ([_, direction, size]) => {
@@ -1170,6 +1186,60 @@ function handleRotate([, b]) {
1170
1186
  }
1171
1187
 
1172
1188
  // src/rules/behaviors.ts
1189
+ var outlineStyle = [
1190
+ "none",
1191
+ "auto",
1192
+ "dotted",
1193
+ "dashed",
1194
+ "solid",
1195
+ "double",
1196
+ "groove",
1197
+ "ridge",
1198
+ "inset",
1199
+ "outset",
1200
+ "inherit",
1201
+ "initial",
1202
+ "revert",
1203
+ "unset"
1204
+ ];
1205
+ var parseOutlineSize = (s) => {
1206
+ const propName = ["width", "offset"].find((item) => s.startsWith(item)) || "width";
1207
+ const size = handler.bracket.fraction.rem(s.replace(/^(offset\-|width\-)/, ""));
1208
+ if (size) {
1209
+ return {
1210
+ [`outline-${propName}`]: size
1211
+ };
1212
+ }
1213
+ };
1214
+ var outline = [
1215
+ ["outline", { "outline-style": "solid" }],
1216
+ [
1217
+ /^outline-(.+)$/,
1218
+ (match, config) => {
1219
+ const [, d] = match;
1220
+ if (d === "none") {
1221
+ return {
1222
+ "outline": "2px solid transparent",
1223
+ "outline-offset": "2px"
1224
+ };
1225
+ }
1226
+ if (outlineStyle.includes(d)) {
1227
+ return {
1228
+ "outline-style": d
1229
+ };
1230
+ }
1231
+ const sizeSheet = parseOutlineSize(d);
1232
+ if (sizeSheet)
1233
+ return sizeSheet;
1234
+ const colorSheet = colorResolver("outline-color", "outline-color")([
1235
+ match[0],
1236
+ match[1].replace(/^color-/, "")
1237
+ ], config);
1238
+ if (colorSheet)
1239
+ return colorSheet;
1240
+ }
1241
+ ]
1242
+ ];
1173
1243
  var listStyleProps = [
1174
1244
  "none",
1175
1245
  "disc",
@@ -1275,7 +1345,7 @@ ${constructCSS({ animation: `${name} 1s linear infinite` })}`;
1275
1345
 
1276
1346
  // src/rules/variables.ts
1277
1347
  var variablesAbbrMap = {
1278
- "w": "with",
1348
+ "w": "width",
1279
1349
  "h": "height",
1280
1350
  "max-w": "max-width",
1281
1351
  "max-h": "max-height",
@@ -1300,7 +1370,7 @@ var variablesAbbrMap = {
1300
1370
  "bg-position": "background-position",
1301
1371
  "bg-repeat": "background-repeat",
1302
1372
  "bg-size": "background-size",
1303
- "border-opacity": "background-opacity",
1373
+ "bg-opacity": "background-opacity",
1304
1374
  "tab": "tab-size",
1305
1375
  "underline": "text-decoration-thickness",
1306
1376
  "underline-offset": "text-underline-offset",
@@ -1330,6 +1400,18 @@ var cssVariables = [[
1330
1400
  }
1331
1401
  ]];
1332
1402
 
1403
+ // src/rules/question-mark.ts
1404
+ var questionMark = [
1405
+ [
1406
+ /^(\?)$/,
1407
+ (_, { constructCSS, generator }) => {
1408
+ if (generator.config.envMode === "dev")
1409
+ return `@keyframes __un_qm {0% {box-shadow: inset 4px 4px #ff1e90, inset -4px -4px #ff1e90;} 100% {box-shadow: inset 8px 8px #3399ff, inset -8px -8px #3399ff;}}
1410
+ ${constructCSS({ animation: "__un_qm 0.5s ease-in-out alternate infinite" })}`;
1411
+ }
1412
+ ]
1413
+ ];
1414
+
1333
1415
  // src/rules/index.ts
1334
1416
  var rules = [
1335
1417
  cssVariables,
@@ -1388,6 +1470,7 @@ var rules = [
1388
1470
  caretOpacity,
1389
1471
  imageRenderings,
1390
1472
  appearance,
1473
+ outline,
1391
1474
  placeholder,
1392
1475
  overscrolls,
1393
1476
  breaks,
@@ -1414,7 +1497,8 @@ var rules = [
1414
1497
  transitions,
1415
1498
  filters,
1416
1499
  tables,
1417
- transforms
1500
+ transforms,
1501
+ questionMark
1418
1502
  ].flat(1);
1419
1503
 
1420
1504
 
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkXMP675O2js = require('./chunk-XMP675O2.js');
3
+ var _chunkKHFQBJ3Gjs = require('./chunk-KHFQBJ3G.js');
4
4
 
5
5
 
6
6
 
@@ -13,7 +13,7 @@ require('./chunk-OFR2H3GI.js');
13
13
  // src/index.ts
14
14
  var preset = () => ({
15
15
  theme: _chunk262SCYXBjs.theme,
16
- rules: _chunkXMP675O2js.rules,
16
+ rules: _chunkKHFQBJ3Gjs.rules,
17
17
  variants: _chunkY3JRCRGSjs.variants
18
18
  });
19
19
  var src_default = preset;
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rules
3
- } from "./chunk-EI7OPLC7.mjs";
3
+ } from "./chunk-K5WMT3AD.mjs";
4
4
  import {
5
5
  colors,
6
6
  theme
package/dist/rules.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkXMP675O2js = require('./chunk-XMP675O2.js');
3
+ var _chunkKHFQBJ3Gjs = require('./chunk-KHFQBJ3G.js');
4
4
  require('./chunk-OFR2H3GI.js');
5
5
 
6
6
 
7
- exports.rules = _chunkXMP675O2js.rules;
7
+ exports.rules = _chunkKHFQBJ3Gjs.rules;
package/dist/rules.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rules
3
- } from "./chunk-EI7OPLC7.mjs";
3
+ } from "./chunk-K5WMT3AD.mjs";
4
4
  import "./chunk-YI4MPAID.mjs";
5
5
  export {
6
6
  rules
package/package.json CHANGED
@@ -1,15 +1,19 @@
1
1
  {
2
2
  "name": "@unocss/preset-uno",
3
- "version": "0.4.15",
4
- "description": "",
5
- "keywords": [],
6
- "homepage": "https://github.com/antfu/unocss#readme",
3
+ "version": "0.6.0",
4
+ "description": "The default preset for UnoCSS",
5
+ "keywords": [
6
+ "unocss",
7
+ "unocss-preset"
8
+ ],
9
+ "homepage": "https://github.com/antfu/unocss/tree/main/packages/preset-uno#readme",
7
10
  "bugs": {
8
11
  "url": "https://github.com/antfu/unocss/issues"
9
12
  },
10
13
  "repository": {
11
14
  "type": "git",
12
- "url": "git+https://github.com/antfu/unocss.git"
15
+ "url": "git+https://github.com/antfu/unocss.git",
16
+ "directory": "packages/preset-uno"
13
17
  },
14
18
  "funding": "https://github.com/sponsors/antfu",
15
19
  "license": "MIT",
@@ -41,7 +45,7 @@
41
45
  "*.css"
42
46
  ],
43
47
  "dependencies": {
44
- "@unocss/core": "0.4.15"
48
+ "@unocss/core": "0.6.0"
45
49
  },
46
50
  "scripts": {
47
51
  "build": "tsup",