@unocss/preset-mini 0.18.0 → 0.20.1

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.
@@ -45,23 +45,30 @@ const PseudoElements = [
45
45
  "first-line",
46
46
  "selection"
47
47
  ];
48
+ const PseudoClassFunctions = [
49
+ "not",
50
+ "is",
51
+ "where",
52
+ "has"
53
+ ];
48
54
  const PartClassesRE = /(part-\[(.+)]:)(.+)/;
49
55
  const PseudoElementsRE = new RegExp(`^(${PseudoElements.join("|")})[:-]`);
50
56
  const PseudoClassesStr = Object.keys(PseudoClasses).join("|");
57
+ const PseudoClassFunctionsStr = PseudoClassFunctions.join("|");
51
58
  const PseudoClassesRE = new RegExp(`^(${PseudoClassesStr})[:-]`);
52
- const PseudoClassesNotRE = new RegExp(`^not-(${PseudoClassesStr})[:-]`);
59
+ const PseudoClassFunctionsRE = new RegExp(`^(${PseudoClassFunctionsStr})-(${PseudoClassesStr})[:-]`);
53
60
  function shouldAdd(entires) {
54
61
  return !entires.find((i) => i[0] === CONTROL_BYPASS_PSEUDO_CLASS) || void 0;
55
62
  }
56
- function taggedPseudoClassMatcher(tag, parent, combinator) {
57
- const re = new RegExp(`^${tag}-((not-)?(${PseudoClassesStr}))[:-]`);
63
+ const taggedPseudoClassMatcher = (tag, parent, combinator) => {
64
+ const re = new RegExp(`^${tag}-((?:(${PseudoClassFunctionsStr})-)?(${PseudoClassesStr}))[:-]`);
58
65
  const rawRe = new RegExp(`^${escapeRegExp(parent)}:`);
59
66
  return (input) => {
60
67
  const match = input.match(re);
61
68
  if (match) {
62
69
  let pseudo = PseudoClasses[match[3]] || match[3];
63
70
  if (match[2])
64
- pseudo = `not(:${pseudo})`;
71
+ pseudo = `${match[2]}(:${pseudo})`;
65
72
  return {
66
73
  matcher: input.slice(match[1].length + tag.length + 2),
67
74
  selector: (s, body) => {
@@ -70,7 +77,7 @@ function taggedPseudoClassMatcher(tag, parent, combinator) {
70
77
  };
71
78
  }
72
79
  };
73
- }
80
+ };
74
81
  const variantPseudoElements = (input) => {
75
82
  const match = input.match(PseudoElementsRE);
76
83
  if (match) {
@@ -82,7 +89,7 @@ const variantPseudoElements = (input) => {
82
89
  };
83
90
  const variantPseudoClasses = {
84
91
  match: (input) => {
85
- let match = input.match(PseudoClassesRE);
92
+ const match = input.match(PseudoClassesRE);
86
93
  if (match) {
87
94
  const pseudo = PseudoClasses[match[1]] || match[1];
88
95
  return {
@@ -90,29 +97,34 @@ const variantPseudoClasses = {
90
97
  selector: (s, body) => shouldAdd(body) && `${s}:${pseudo}`
91
98
  };
92
99
  }
93
- match = input.match(PseudoClassesNotRE);
100
+ },
101
+ multiPass: true
102
+ };
103
+ const variantPseudoClassFunctions = {
104
+ match: (input) => {
105
+ const match = input.match(PseudoClassFunctionsRE);
94
106
  if (match) {
95
- const pseudo = PseudoClasses[match[1]] || match[1];
107
+ const fn = match[1];
108
+ const pseudo = PseudoClasses[match[2]] || match[2];
96
109
  return {
97
- matcher: input.slice(match[1].length + 5),
98
- selector: (s, body) => shouldAdd(body) && `${s}:not(:${pseudo})`
110
+ matcher: input.slice(match[1].length + match[2].length + 2),
111
+ selector: (s, body) => shouldAdd(body) && `${s}:${fn}(:${pseudo})`
99
112
  };
100
113
  }
101
114
  },
102
115
  multiPass: true
103
116
  };
104
- const variantTaggedPseudoClasses = (options = {}) => ({
105
- match: (input) => {
106
- const attributify = !!options?.attributifyPseudo;
107
- const g = taggedPseudoClassMatcher("group", attributify ? '[group=""]' : ".group", " ")(input);
117
+ const variantTaggedPseudoClasses = {
118
+ match: (input, { options: { attributifyPseudo } }) => {
119
+ const g = taggedPseudoClassMatcher("group", attributifyPseudo ? '[group=""]' : ".group", " ")(input);
108
120
  if (g)
109
121
  return g;
110
- const p = taggedPseudoClassMatcher("peer", attributify ? '[peer=""]' : ".peer", "~")(input);
122
+ const p = taggedPseudoClassMatcher("peer", attributifyPseudo ? '[peer=""]' : ".peer", "~")(input);
111
123
  if (p)
112
124
  return p;
113
125
  },
114
126
  multiPass: true
115
- });
127
+ };
116
128
  const partClasses = {
117
129
  match: (input) => {
118
130
  const match = input.match(PartClassesRE);
@@ -129,4 +141,4 @@ const partClasses = {
129
141
  multiPass: true
130
142
  };
131
143
 
132
- export { CONTROL_BYPASS_PSEUDO_CLASS as C, PseudoClasses as P, variantTaggedPseudoClasses as a, variantPseudoElements as b, partClasses as p, variantPseudoClasses as v };
144
+ export { CONTROL_BYPASS_PSEUDO_CLASS as C, variantPseudoClassFunctions as a, variantTaggedPseudoClasses as b, variantPseudoElements as c, partClasses as p, variantPseudoClasses as v };
@@ -225,8 +225,10 @@ const parseColor = (body, theme) => {
225
225
  const bracketOrMain = bracket || main;
226
226
  if (bracketOrMain.startsWith("#"))
227
227
  color = bracketOrMain.slice(1);
228
- if (bracketOrMain.startsWith("hex-"))
228
+ else if (bracketOrMain.startsWith("hex-"))
229
229
  color = bracketOrMain.slice(4);
230
+ else if (main.startsWith("$"))
231
+ color = handler.cssvar(main);
230
232
  color = color || bracket;
231
233
  let no = "DEFAULT";
232
234
  if (!color) {
@@ -271,7 +273,7 @@ const colorResolver = (property, varName) => ([, body], { theme }) => {
271
273
  };
272
274
  } else {
273
275
  return {
274
- [`--un-${varName}-opacity`]: 1,
276
+ [`--un-${varName}-opacity`]: (opacity && handler.cssvar(opacity)) ?? 1,
275
277
  [property]: `rgba(${rgba.slice(0, 3).join(",")},var(--un-${varName}-opacity))`
276
278
  };
277
279
  }
@@ -223,8 +223,10 @@ const parseColor = (body, theme) => {
223
223
  const bracketOrMain = bracket || main;
224
224
  if (bracketOrMain.startsWith("#"))
225
225
  color = bracketOrMain.slice(1);
226
- if (bracketOrMain.startsWith("hex-"))
226
+ else if (bracketOrMain.startsWith("hex-"))
227
227
  color = bracketOrMain.slice(4);
228
+ else if (main.startsWith("$"))
229
+ color = handler.cssvar(main);
228
230
  color = color || bracket;
229
231
  let no = "DEFAULT";
230
232
  if (!color) {
@@ -269,7 +271,7 @@ const colorResolver = (property, varName) => ([, body], { theme }) => {
269
271
  };
270
272
  } else {
271
273
  return {
272
- [`--un-${varName}-opacity`]: 1,
274
+ [`--un-${varName}-opacity`]: (opacity && handler.cssvar(opacity)) ?? 1,
273
275
  [property]: `rgba(${rgba.slice(0, 3).join(",")},var(--un-${varName}-opacity))`
274
276
  };
275
277
  }
@@ -1,16 +1,31 @@
1
1
  'use strict';
2
2
 
3
+ const core = require('@unocss/core');
4
+
3
5
  const variantMatcher = (name, selector) => {
4
- const re = new RegExp(`^(${name})[:-]`);
6
+ const re = new RegExp(`^${core.escapeRegExp(name)}[:-]`);
5
7
  return (input) => {
6
8
  const match = input.match(re);
7
9
  if (match) {
8
10
  return {
9
- matcher: input.slice(match[1].length + 1),
11
+ matcher: input.slice(match[0].length),
10
12
  selector
11
13
  };
12
14
  }
13
15
  };
14
16
  };
17
+ const variantParentMatcher = (name, parent) => {
18
+ const re = new RegExp(`^${core.escapeRegExp(name)}[:-]`);
19
+ return (input) => {
20
+ const match = input.match(re);
21
+ if (match) {
22
+ return {
23
+ matcher: input.slice(match[0].length),
24
+ parent
25
+ };
26
+ }
27
+ };
28
+ };
15
29
 
16
30
  exports.variantMatcher = variantMatcher;
31
+ exports.variantParentMatcher = variantParentMatcher;
@@ -1,14 +1,28 @@
1
+ import { escapeRegExp } from '@unocss/core';
2
+
1
3
  const variantMatcher = (name, selector) => {
2
- const re = new RegExp(`^(${name})[:-]`);
4
+ const re = new RegExp(`^${escapeRegExp(name)}[:-]`);
3
5
  return (input) => {
4
6
  const match = input.match(re);
5
7
  if (match) {
6
8
  return {
7
- matcher: input.slice(match[1].length + 1),
9
+ matcher: input.slice(match[0].length),
8
10
  selector
9
11
  };
10
12
  }
11
13
  };
12
14
  };
15
+ const variantParentMatcher = (name, parent) => {
16
+ const re = new RegExp(`^${escapeRegExp(name)}[:-]`);
17
+ return (input) => {
18
+ const match = input.match(re);
19
+ if (match) {
20
+ return {
21
+ matcher: input.slice(match[0].length),
22
+ parent
23
+ };
24
+ }
25
+ };
26
+ };
13
27
 
14
- export { variantMatcher as v };
28
+ export { variantParentMatcher as a, variantMatcher as v };
@@ -1,4 +1,4 @@
1
- import { T as Theme } from './types-7963d0b3';
1
+ import { T as Theme } from './types-a2d2b52f';
2
2
 
3
3
  declare const colors: Theme['colors'];
4
4
 
package/dist/colors.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { c as colors } from './colors-d6b5a5b4';
2
- import './types-7963d0b3';
1
+ export { c as colors } from './colors-6d634692';
2
+ import './types-a2d2b52f';
@@ -1,4 +1,4 @@
1
- import { T as Theme } from './types-7963d0b3';
1
+ import { T as Theme } from './types-a2d2b52f';
2
2
 
3
3
  declare const theme: Theme;
4
4
 
package/dist/index.cjs CHANGED
@@ -11,13 +11,27 @@ require('@unocss/core');
11
11
  require('./chunks/pseudo.cjs');
12
12
  require('./chunks/variants.cjs');
13
13
 
14
- const presetMini = (options = {}) => ({
15
- name: "@unocss/preset-mini",
16
- theme: _default.theme,
17
- rules: _default$1.rules,
18
- variants: _default$2.variants(options),
19
- options
20
- });
14
+ const presetMini = (options = {}) => {
15
+ options.dark = options.dark ?? "class";
16
+ options.attributifyPseudo = options.attributifyPseudo ?? false;
17
+ return {
18
+ name: "@unocss/preset-mini",
19
+ theme: _default.theme,
20
+ rules: _default$1.rules,
21
+ variants: _default$2.variants,
22
+ options,
23
+ postprocess: options.variablePrefix && options.variablePrefix !== "un-" ? VarPrefixPostprocessor(options.variablePrefix) : void 0
24
+ };
25
+ };
26
+ function VarPrefixPostprocessor(prefix) {
27
+ return (obj) => {
28
+ obj.entries.forEach((i) => {
29
+ i[0] = i[0].replace(/^--un-/, `--${prefix}`);
30
+ if (typeof i[1] === "string")
31
+ i[1] = i[1].replace(/var\(--un-/g, `var(--${prefix}`);
32
+ });
33
+ };
34
+ }
21
35
 
22
36
  exports.theme = _default.theme;
23
37
  exports.colors = colors.colors;
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { Preset } from '@unocss/core';
2
- import { T as Theme } from './types-7963d0b3';
3
- export { T as Theme } from './types-7963d0b3';
4
- export { t as theme } from './default-c7c67d23';
5
- export { c as colors } from './colors-d6b5a5b4';
1
+ import { PresetOptions, Preset } from '@unocss/core';
2
+ import { T as Theme } from './types-a2d2b52f';
3
+ export { T as Theme, a as ThemeAnimation } from './types-a2d2b52f';
4
+ export { t as theme } from './default-958434b6';
5
+ export { c as colors } from './colors-6d634692';
6
6
 
7
- interface PresetMiniOptions {
7
+ interface PresetMiniOptions extends PresetOptions {
8
8
  /**
9
9
  * @default 'class'
10
10
  */
@@ -13,6 +13,10 @@ interface PresetMiniOptions {
13
13
  * @default false
14
14
  */
15
15
  attributifyPseudo?: Boolean;
16
+ /**
17
+ * @default 'un-'
18
+ */
19
+ variablePrefix?: string;
16
20
  }
17
21
  declare const presetMini: (options?: PresetMiniOptions) => Preset<Theme>;
18
22
 
package/dist/index.mjs CHANGED
@@ -8,12 +8,26 @@ import '@unocss/core';
8
8
  import './chunks/pseudo.mjs';
9
9
  import './chunks/variants.mjs';
10
10
 
11
- const presetMini = (options = {}) => ({
12
- name: "@unocss/preset-mini",
13
- theme,
14
- rules,
15
- variants: variants(options),
16
- options
17
- });
11
+ const presetMini = (options = {}) => {
12
+ options.dark = options.dark ?? "class";
13
+ options.attributifyPseudo = options.attributifyPseudo ?? false;
14
+ return {
15
+ name: "@unocss/preset-mini",
16
+ theme,
17
+ rules,
18
+ variants,
19
+ options,
20
+ postprocess: options.variablePrefix && options.variablePrefix !== "un-" ? VarPrefixPostprocessor(options.variablePrefix) : void 0
21
+ };
22
+ };
23
+ function VarPrefixPostprocessor(prefix) {
24
+ return (obj) => {
25
+ obj.entries.forEach((i) => {
26
+ i[0] = i[0].replace(/^--un-/, `--${prefix}`);
27
+ if (typeof i[1] === "string")
28
+ i[1] = i[1].replace(/var\(--un-/g, `var(--${prefix}`);
29
+ });
30
+ };
31
+ }
18
32
 
19
33
  export { presetMini as default, presetMini };
package/dist/rules.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Rule } from '@unocss/core';
2
- import { T as Theme } from './types-7963d0b3';
2
+ import { T as Theme } from './types-a2d2b52f';
3
3
 
4
4
  declare const verticalAligns: Rule[];
5
5
  declare const textAligns: Rule[];
package/dist/theme.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { c as colors } from './colors-d6b5a5b4';
2
- export { t as theme } from './default-c7c67d23';
3
- import { T as Theme } from './types-7963d0b3';
4
- export { T as Theme } from './types-7963d0b3';
1
+ export { c as colors } from './colors-6d634692';
2
+ export { t as theme } from './default-958434b6';
3
+ import { T as Theme } from './types-a2d2b52f';
4
+ export { T as Theme, a as ThemeAnimation } from './types-a2d2b52f';
5
5
 
6
6
  declare const blur: {
7
7
  DEFAULT: string;
@@ -1,3 +1,9 @@
1
+ interface ThemeAnimation {
2
+ keyframes?: Record<string, string>;
3
+ durations?: Record<string, string>;
4
+ timingFns?: Record<string, string>;
5
+ properties?: Record<string, object>;
6
+ }
1
7
  interface Theme {
2
8
  width?: Record<string, string>;
3
9
  height?: Record<string, string>;
@@ -19,6 +25,7 @@ interface Theme {
19
25
  textStrokeWidth?: Record<string, string>;
20
26
  blur?: Record<string, string>;
21
27
  dropShadow?: Record<string, string | string[]>;
28
+ animation?: ThemeAnimation;
22
29
  }
23
30
 
24
- export { Theme as T };
31
+ export { Theme as T, ThemeAnimation as a };
package/dist/utils.cjs CHANGED
@@ -19,3 +19,4 @@ exports.parseColor = utilities.parseColor;
19
19
  exports.valueHandlers = utilities.valueHandlers;
20
20
  exports.xyzMap = utilities.xyzMap;
21
21
  exports.variantMatcher = variants.variantMatcher;
22
+ exports.variantParentMatcher = variants.variantParentMatcher;
package/dist/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _unocss_core from '@unocss/core';
2
2
  import { VariantHandler, DynamicMatcher, ParsedColorValue } from '@unocss/core';
3
- import { T as Theme } from './types-7963d0b3';
3
+ import { T as Theme } from './types-a2d2b52f';
4
4
 
5
5
  declare const directionMap: Record<string, string[]>;
6
6
  declare const cornerMap: Record<string, string[]>;
@@ -52,6 +52,7 @@ declare const handler: _unocss_core.ValueHandler<"number" | "auto" | "numberWith
52
52
  declare const h: _unocss_core.ValueHandler<"number" | "auto" | "numberWithUnit" | "rem" | "px" | "percent" | "fraction" | "bracket" | "cssvar" | "time" | "global" | "properties">;
53
53
 
54
54
  declare const variantMatcher: (name: string, selector?: ((input: string) => string | undefined) | undefined) => (input: string) => VariantHandler | undefined;
55
+ declare const variantParentMatcher: (name: string, parent: string) => (input: string) => VariantHandler | undefined;
55
56
 
56
57
  declare function capitalize<T extends string>(str: T): Capitalize<T>;
57
58
  /**
@@ -105,4 +106,4 @@ declare const parseColor: (body: string, theme: Theme) => ParsedColorValue | und
105
106
  */
106
107
  declare const colorResolver: (property: string, varName: string) => DynamicMatcher;
107
108
 
108
- export { capitalize, colorResolver, cornerMap, directionMap, directionSize, h, handler, parseColor, handlers as valueHandlers, variantMatcher, xyzMap };
109
+ export { capitalize, colorResolver, cornerMap, directionMap, directionSize, h, handler, parseColor, handlers as valueHandlers, variantMatcher, variantParentMatcher, xyzMap };
package/dist/utils.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  export { b as capitalize, c as colorResolver, a as cornerMap, d as directionMap, e as directionSize, f as h, h as handler, p as parseColor, v as valueHandlers, x as xyzMap } from './chunks/utilities.mjs';
2
- export { v as variantMatcher } from './chunks/variants.mjs';
2
+ export { v as variantMatcher, a as variantParentMatcher } from './chunks/variants.mjs';
3
3
  import '@unocss/core';
package/dist/variants.cjs CHANGED
@@ -10,16 +10,16 @@ require('@unocss/core');
10
10
 
11
11
 
12
12
  exports.variantBreakpoints = _default.variantBreakpoints;
13
- exports.variantColorsClass = _default.variantColorsClass;
14
- exports.variantColorsMedia = _default.variantColorsMedia;
13
+ exports.variantColorsMediaOrClass = _default.variantColorsMediaOrClass;
15
14
  exports.variantCombinators = _default.variantCombinators;
16
15
  exports.variantImportant = _default.variantImportant;
17
16
  exports.variantNegative = _default.variantNegative;
17
+ exports.variantPrint = _default.variantPrint;
18
18
  exports.variantSpace = _default.variantSpace;
19
19
  exports.variants = _default.variants;
20
20
  exports.CONTROL_BYPASS_PSEUDO_CLASS = pseudo.CONTROL_BYPASS_PSEUDO_CLASS;
21
- exports.PseudoClasses = pseudo.PseudoClasses;
22
21
  exports.partClasses = pseudo.partClasses;
22
+ exports.variantPseudoClassFunctions = pseudo.variantPseudoClassFunctions;
23
23
  exports.variantPseudoClasses = pseudo.variantPseudoClasses;
24
24
  exports.variantPseudoElements = pseudo.variantPseudoElements;
25
25
  exports.variantTaggedPseudoClasses = pseudo.variantTaggedPseudoClasses;
@@ -1,27 +1,26 @@
1
+ import * as _unocss_core from '@unocss/core';
1
2
  import { Variant, VariantFunction, VariantObject } from '@unocss/core';
2
- import { T as Theme } from './types-7963d0b3';
3
- import { PresetMiniOptions } from './index';
4
- import './default-c7c67d23';
5
- import './colors-d6b5a5b4';
3
+ import { T as Theme } from './types-a2d2b52f';
6
4
 
7
5
  declare const variantBreakpoints: Variant<Theme>;
8
6
 
9
7
  declare const variantCombinators: Variant[];
10
8
 
11
- declare const variantColorsClass: Variant[];
12
- declare const variantColorsMedia: Variant[];
9
+ declare const variantColorsMediaOrClass: Variant[];
13
10
 
14
- declare const variants: (options: PresetMiniOptions) => Variant<Theme>[];
11
+ declare const variants: Variant<Theme>[];
15
12
 
16
13
  declare const variantImportant: Variant;
17
14
  declare const variantNegative: Variant;
18
15
  declare const variantSpace: Variant;
19
16
 
17
+ declare const variantPrint: (input: string) => _unocss_core.VariantHandler | undefined;
18
+
20
19
  declare const CONTROL_BYPASS_PSEUDO_CLASS = "$$no-pseudo";
21
- declare const PseudoClasses: Record<string, string | undefined>;
22
20
  declare const variantPseudoElements: VariantFunction;
23
21
  declare const variantPseudoClasses: VariantObject;
24
- declare const variantTaggedPseudoClasses: (options?: PresetMiniOptions) => VariantObject;
22
+ declare const variantPseudoClassFunctions: VariantObject;
23
+ declare const variantTaggedPseudoClasses: VariantObject;
25
24
  declare const partClasses: VariantObject;
26
25
 
27
- export { CONTROL_BYPASS_PSEUDO_CLASS, PseudoClasses, partClasses, variantBreakpoints, variantColorsClass, variantColorsMedia, variantCombinators, variantImportant, variantNegative, variantPseudoClasses, variantPseudoElements, variantSpace, variantTaggedPseudoClasses, variants };
26
+ export { CONTROL_BYPASS_PSEUDO_CLASS, partClasses, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantImportant, variantNegative, variantPrint, variantPseudoClassFunctions, variantPseudoClasses, variantPseudoElements, variantSpace, variantTaggedPseudoClasses, variants };
package/dist/variants.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { a as variantBreakpoints, c as variantColorsClass, d as variantColorsMedia, b as variantCombinators, e as variantImportant, f as variantNegative, g as variantSpace, v as variants } from './chunks/default3.mjs';
2
- export { C as CONTROL_BYPASS_PSEUDO_CLASS, P as PseudoClasses, p as partClasses, v as variantPseudoClasses, b as variantPseudoElements, a as variantTaggedPseudoClasses } from './chunks/pseudo.mjs';
1
+ export { a as variantBreakpoints, c as variantColorsMediaOrClass, b as variantCombinators, d as variantImportant, e as variantNegative, g as variantPrint, f as variantSpace, v as variants } from './chunks/default3.mjs';
2
+ export { C as CONTROL_BYPASS_PSEUDO_CLASS, p as partClasses, a as variantPseudoClassFunctions, v as variantPseudoClasses, c as variantPseudoElements, b as variantTaggedPseudoClasses } from './chunks/pseudo.mjs';
3
3
  import './chunks/variants.mjs';
4
4
  import '@unocss/core';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unocss/preset-mini",
3
- "version": "0.18.0",
3
+ "version": "0.20.1",
4
4
  "description": "The minimal preset for UnoCSS",
5
5
  "keywords": [
6
6
  "unocss",
@@ -61,7 +61,7 @@
61
61
  "*.css"
62
62
  ],
63
63
  "dependencies": {
64
- "@unocss/core": "0.18.0"
64
+ "@unocss/core": "0.20.1"
65
65
  },
66
66
  "scripts": {
67
67
  "build": "unbuild",