inferred-types 0.47.9 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/inferred-types/index.cjs +7 -0
  2. package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
  3. package/dist/runtime/dictionary/get.js +1 -1
  4. package/dist/runtime/initializers/createCssSelector.d.ts +24 -0
  5. package/dist/runtime/initializers/createCssSelector.d.ts.map +1 -0
  6. package/dist/runtime/initializers/createCssSelector.js +15 -0
  7. package/dist/runtime/initializers/index.d.ts +1 -0
  8. package/dist/runtime/initializers/index.d.ts.map +1 -1
  9. package/dist/runtime/initializers/index.js +1 -0
  10. package/dist/runtime/lists/indexOf.d.ts.map +1 -1
  11. package/dist/runtime/tsconfig.tsbuildinfo +1 -1
  12. package/dist/types/boolean-logic/branching/If.d.ts +2 -7
  13. package/dist/types/boolean-logic/branching/If.d.ts.map +1 -1
  14. package/dist/types/boolean-logic/narrowing/AsIndexOf.d.ts +2 -2
  15. package/dist/types/boolean-logic/narrowing/AsIndexOf.d.ts.map +1 -1
  16. package/dist/types/lists/IndexOf.d.ts +2 -2
  17. package/dist/types/lists/ToCSV.d.ts +2 -2
  18. package/dist/types/lists/ToCSV.d.ts.map +1 -1
  19. package/dist/types/runtime-types/TokenizeStringLiteral.d.ts +2 -2
  20. package/dist/types/string-literals/EnsureLeadingEvery.d.ts +2 -2
  21. package/dist/types/string-literals/EnsureLeadingEvery.d.ts.map +1 -1
  22. package/dist/types/string-literals/PathJoin.d.ts +9 -12
  23. package/dist/types/string-literals/PathJoin.d.ts.map +1 -1
  24. package/dist/types/string-literals/Prepend.d.ts +2 -2
  25. package/dist/types/string-literals/PrependAll.d.ts +2 -2
  26. package/dist/types/string-literals/PrependAll.d.ts.map +1 -1
  27. package/dist/types/string-literals/character-sets/Optional.d.ts +12 -0
  28. package/dist/types/string-literals/character-sets/Optional.d.ts.map +1 -1
  29. package/dist/types/string-literals/character-sets/css/html-element.d.ts +31 -0
  30. package/dist/types/string-literals/character-sets/css/html-element.d.ts.map +1 -0
  31. package/dist/types/string-literals/character-sets/css/html-element.js +1 -0
  32. package/dist/types/string-literals/character-sets/css/index.d.ts +3 -0
  33. package/dist/types/string-literals/character-sets/css/index.d.ts.map +1 -1
  34. package/dist/types/string-literals/character-sets/css/index.js +3 -0
  35. package/dist/types/string-literals/character-sets/css/pseudo-classes.d.ts +82 -0
  36. package/dist/types/string-literals/character-sets/css/pseudo-classes.d.ts.map +1 -0
  37. package/dist/types/string-literals/character-sets/css/pseudo-classes.js +2 -0
  38. package/dist/types/string-literals/character-sets/css/selector.d.ts +35 -0
  39. package/dist/types/string-literals/character-sets/css/selector.d.ts.map +1 -0
  40. package/dist/types/string-literals/character-sets/css/selector.js +1 -0
  41. package/dist/types/tsconfig.tsbuildinfo +1 -1
  42. package/dist/types/type-conversion/ToStringArray.d.ts +3 -3
  43. package/dist/types/type-conversion/ToStringArray.d.ts.map +1 -1
  44. package/package.json +1 -1
@@ -1,13 +1,8 @@
1
- import { ErrorCondition, IsBoolean, IsBooleanLiteral, IsFalse, IsNever, IsTrue, LogicFunction, Throw } from "../../index";
2
- type InvalidTest<TTest> = Throw<"invalid-test", `Call of If<TTest, ...> received an invalid TTest that does not evaluate to a boolean type!`, "If", {
3
- library: "inferred-types";
4
- test: TTest;
5
- }>;
1
+ import { ErrorCondition, IsBoolean, IsBooleanLiteral, IsFalse, IsNever, IsTrue, LogicFunction } from "../../index";
6
2
  /**
7
3
  * **If**`<TTest,[TIf],[TElse],[TMaybe]>`
8
4
  *
9
5
  * Branching utility which tests `TTest` for a boolean value.
10
6
  */
11
- export type If<TTest, TIf = true, TElse = false, TMaybe = TIf | TElse, TNever = never, TError = never> = [IsNever<TTest>] extends [true] ? TNever : [TTest] extends [ErrorCondition] ? TError : [TTest] extends [boolean] ? [IsTrue<TTest>] extends [true] ? TIf : [IsBooleanLiteral<TTest>] extends [true] ? TElse : TMaybe : [TTest] extends [LogicFunction] ? [IsTrue<ReturnType<TTest>>] extends [true] ? TIf : [IsFalse<ReturnType<TTest>>] extends [true] ? TElse : [IsBoolean<ReturnType<TTest>>] extends [true] ? TMaybe : never : InvalidTest<TTest>;
12
- export {};
7
+ export type If<TTest, TIf = true, TElse = false, TMaybe = TIf | TElse, TNever = never, TError = never> = [IsNever<TTest>] extends [true] ? TNever : [TTest] extends [ErrorCondition] ? TError : [TTest] extends [boolean] ? [IsTrue<TTest>] extends [true] ? TIf : [IsBooleanLiteral<TTest>] extends [true] ? TElse : TMaybe : [TTest] extends [LogicFunction] ? [IsTrue<ReturnType<TTest>>] extends [true] ? TIf : [IsFalse<ReturnType<TTest>>] extends [true] ? TElse : [IsBoolean<ReturnType<TTest>>] extends [true] ? TMaybe : never : never;
13
8
  //# sourceMappingURL=If.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/If.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAG,oBAAwB;AAE/H,KAAK,WAAW,CAAC,KAAK,IAAI,KAAK,CAC7B,cAAc,EACd,4FAA4F,EAC5F,IAAI,EACJ;IACE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC;CACb,CACF,CAAA;AAeD;;;;GAIG;AACH,MAAM,MAAM,EAAE,CACZ,KAAK,EACL,GAAG,GAAG,IAAI,EACV,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,GAAG,GAAG,KAAK,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,GAAG,KAAK,IACX,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAClC,MAAM,GACN,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAC9B,MAAM,GACR,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GACvB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC5B,GAAG,GACH,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACtC,KAAK,GACL,MAAM,GACV,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAC7B,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACxC,GAAG,GACL,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACzC,KAAK,GACL,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC3C,MAAM,GACN,KAAK,GACT,WAAW,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/If.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,MAAM,EACN,aAAa,EACd,oBAAwB;AAMzB;;;;GAIG;AACH,MAAM,MAAM,EAAE,CACZ,KAAK,EACL,GAAG,GAAG,IAAI,EACV,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,GAAG,GAAG,KAAK,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,GAAG,KAAK,IACX,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAClC,MAAM,GACN,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAC9B,MAAM,GACR,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GACvB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC5B,GAAG,GACH,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACtC,KAAK,GACL,MAAM,GACV,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAC7B,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACxC,GAAG,GACL,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACzC,KAAK,GACL,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC3C,MAAM,GACN,KAAK,GACT,KAAK,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { Constant } from "../../../constants/index";
2
- import { IfEqual, Dictionary, Throw, ToString, Tuple } from "../../index";
2
+ import { IfEqual, Dictionary, Throw, Tuple, AsString } from "../../index";
3
3
  /**
4
4
  * **AsIndexOf**`<T,K,[ERR]>`
5
5
  *
6
6
  * Validates that `K` is a keyof `T` and
7
7
  */
8
- export type AsIndexOf<T extends Dictionary | object | Tuple, K extends PropertyKey, ERR = Constant<"NoErr">> = K extends keyof T ? T[K] : IfEqual<ERR, Constant<"NoErr">, Throw<"invalid-key", `the key '${ToString<K>}' is not a valid key of the passed container`, "AsIndexOf">, ERR>;
8
+ export type AsIndexOf<T extends Dictionary | object | Tuple, K extends PropertyKey, ERR = Constant<"NoErr">> = K extends keyof T ? T[K] : IfEqual<ERR, Constant<"NoErr">, Throw<"invalid-key", `the key '${AsString<K>}' is not a valid key of the passed container`, "AsIndexOf">, ERR>;
9
9
  //# sourceMappingURL=AsIndexOf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsIndexOf.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/narrowing/AsIndexOf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iCAA4B;AAC/C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAwB;AAE9E;;;;GAIG;AACH,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,UAAU,GAAG,MAAM,GAAG,KAAK,EACrC,CAAC,SAAS,WAAW,EACrB,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IACrB,CAAC,SAAS,MAAM,CAAC,GACnB,CAAC,CAAC,CAAC,CAAC,GACJ,OAAO,CACL,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EACtB,KAAK,CACH,aAAa,EACb,YAAY,QAAQ,CAAC,CAAC,CAAC,8CAA8C,EACrE,WAAW,CACZ,EACD,GAAG,CACJ,CAAC"}
1
+ {"version":3,"file":"AsIndexOf.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/narrowing/AsIndexOf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iCAA4B;AAC/C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAwB;AAE9E;;;;GAIG;AACH,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,UAAU,GAAG,MAAM,GAAG,KAAK,EACrC,CAAC,SAAS,WAAW,EACrB,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IACrB,CAAC,SAAS,MAAM,CAAC,GACnB,CAAC,CAAC,CAAC,CAAC,GACJ,OAAO,CACL,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EACtB,KAAK,CACH,aAAa,EACb,YAAY,QAAQ,CAAC,CAAC,CAAC,8CAA8C,EACrE,WAAW,CACZ,EACD,GAAG,CACJ,CAAC"}
@@ -13,7 +13,7 @@ type HandleArr<TValue extends readonly unknown[], TIdx extends PropertyKey> = TI
13
13
  container: TValue;
14
14
  key: TIdx;
15
15
  library: "inferred-types";
16
- }>> : Throw<"invalid-index", `IndexOf<Tuple,${ToString<TIdx>}> failed because a tuple container must use numeric indexes!`, "IndexOf", {
16
+ }>> : Throw<"invalid-index", `IndexOf<Tuple,${AsString<TIdx>}> failed because a tuple container must use numeric indexes!`, "IndexOf", {
17
17
  container: TValue;
18
18
  key: TIdx;
19
19
  library: "inferred-types";
@@ -31,7 +31,7 @@ type Process<TValue, TIdx extends PropertyKey | null> = If<IsNull<TIdx>, TValue,
31
31
  library: "inferred-types";
32
32
  container: TValue;
33
33
  key: TIdx;
34
- }> : Throw<"invalid-index", `IndexOf<ToString<TValue>},${ToString<TIdx>}> was called but the a non-null value was used to index a non-container which will never work!`, "IndexOf", {
34
+ }> : Throw<"invalid-index", `IndexOf<ToString<TValue>},${AsString<TIdx>}> was called but the a non-null value was used to index a non-container which will never work!`, "IndexOf", {
35
35
  library: "inferred-types";
36
36
  container: TValue;
37
37
  key: TIdx;
@@ -1,5 +1,5 @@
1
- import { AfterFirst, First, Replace, StripLeading, ToString, Tuple } from "../index";
2
- type Process<T extends Tuple, TReplace extends string, TResult extends string = ""> = [] extends T ? StripLeading<TResult, ","> : Process<AfterFirst<T>, TReplace, First<T> extends string ? `${TResult},${Replace<First<T>, ",", TReplace>}` : `${TResult},${ToString<First<T>>}`>;
1
+ import { AfterFirst, AsString, First, Replace, StripLeading, Tuple } from "../index";
2
+ type Process<T extends Tuple, TReplace extends string, TResult extends string = ""> = [] extends T ? StripLeading<TResult, ","> : Process<AfterFirst<T>, TReplace, First<T> extends string ? `${TResult},${Replace<First<T>, ",", TReplace>}` : `${TResult},${AsString<First<T>>}`>;
3
3
  /**
4
4
  * **ToCSV**`<TTuple,[TReplace]>`
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ToCSV.d.ts","sourceRoot":"","sources":["../../../src/types/lists/ToCSV.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAwB;AAE5F,KAAK,OAAO,CACV,CAAC,SAAS,KAAK,EACf,QAAQ,SAAS,MAAM,EACvB,OAAO,SAAS,MAAM,GAAG,EAAE,IACzB,EAAE,SAAS,CAAC,GACd,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,GAC1B,OAAO,CACL,UAAU,CAAC,CAAC,CAAC,EACb,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,GACnB,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAChD,GAAG,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC;AAGN;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CACf,MAAM,SAAS,KAAK,EACpB,QAAQ,SAAS,MAAM,GAAG,SAAS,IACjC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"ToCSV.d.ts","sourceRoot":"","sources":["../../../src/types/lists/ToCSV.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAwB;AAE5F,KAAK,OAAO,CACV,CAAC,SAAS,KAAK,EACf,QAAQ,SAAS,MAAM,EACvB,OAAO,SAAS,MAAM,GAAG,EAAE,IACzB,EAAE,SAAS,CAAC,GACd,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,GAC1B,OAAO,CACL,UAAU,CAAC,CAAC,CAAC,EACb,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,GACnB,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAChD,GAAG,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC;AAGN;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CACf,MAAM,SAAS,KAAK,EACpB,QAAQ,SAAS,MAAM,GAAG,SAAS,IACjC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
- import { If, IsNumber, AfterFirst, First, ToString, StringLiteralToken, AllLiteral, Passthrough } from "../index";
1
+ import { If, IsNumber, AfterFirst, First, AsString, StringLiteralToken, AllLiteral, Passthrough } from "../index";
2
2
  type _Tokenize<T extends readonly (string | number | boolean)[], Results extends readonly StringLiteralToken[] = []> = [] extends T ? Results : First<T> extends StringLiteralToken ? _Tokenize<AfterFirst<T>, [...Results, First<T>]> : If<AllLiteral<[First<T>]>, _Tokenize<AfterFirst<T>, [
3
3
  ...Results,
4
- `literal:${ToString<First<T>>}`
4
+ `literal:${AsString<First<T>>}`
5
5
  ]>, _Tokenize<AfterFirst<T>, [
6
6
  ...Results,
7
7
  Passthrough<If<First<T> extends string ? true : false, "<string>", If<IsNumber<First<T>>, "<number>", "<boolean>">>, StringLiteralToken, never>
@@ -1,4 +1,4 @@
1
- import { EnsureLeading, ToString, UnionToTuple } from "../index";
1
+ import { AsString, EnsureLeading, UnionToTuple } from "../index";
2
2
  /**
3
3
  * **EnsureLeadingEvery**`<TList, TLeader>`
4
4
  *
@@ -11,6 +11,6 @@ import { EnsureLeading, ToString, UnionToTuple } from "../index";
11
11
  * **Related:** `EnsureLeading`, `EnsureTrailing`
12
12
  */
13
13
  export type EnsureLeadingEvery<TList extends readonly (string | number | boolean)[], TLeader extends string> = UnionToTuple<{
14
- [K in keyof TList]: EnsureLeading<ToString<TList[K]>, TLeader>;
14
+ [K in keyof TList]: AsString<TList[K]> extends string ? EnsureLeading<AsString<TList[K]>, TLeader> : never;
15
15
  }[number]>;
16
16
  //# sourceMappingURL=EnsureLeadingEvery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnsureLeadingEvery.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/EnsureLeadingEvery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAwB;AAGzE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,EACpD,OAAO,SAAS,MAAM,IACpB,YAAY,CAAE;KACf,CAAC,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;CAC/D,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"EnsureLeadingEvery.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/EnsureLeadingEvery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,QAAQ,EAAE,aAAa,EAAG,YAAY,EAAE,iBAAwB;AAG1E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,EACpD,OAAO,SAAS,MAAM,IACpB,YAAY,CAAE;KACf,CAAC,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACjD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAC1C,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -1,24 +1,21 @@
1
- import { Join, StartsWith, Concat, EndsWith, First, Last } from "../index";
2
- type Finalize<TSegments extends readonly string[], TPath extends string> = Concat<[
3
- StartsWith<First<TSegments>, "/"> extends true ? "/" : "",
4
- TPath,
5
- EndsWith<Last<TSegments>, "/"> extends true ? "/" : ""
6
- ]>;
1
+ import { Join, First, Last } from "../index";
2
+ export type StripSlash<T extends readonly string[]> = {
3
+ [K in keyof T]: T[K] extends `/${infer Middle}/` ? Middle : T[K] extends `/${infer Trailing}` ? Trailing : T[K] extends `${infer Leading}/` ? Leading : T[K];
4
+ };
5
+ type Process<TPath extends string, TFirst extends string, TLast extends string> = TFirst extends `/${string}` ? TLast extends `${string}/` ? `/${TPath}/` : `/${TPath}` : TLast extends `${string}/` ? `${TPath}/` : TPath;
7
6
  /**
8
7
  * **PathJoin**`<T,U>`
9
8
  *
10
9
  * Type utility meant to bring 2 or more "path" strings together into
11
10
  * a valid "path". Where a "path" is represented as nothing more than
12
- * string characters delimited by a Posix `\` character.
11
+ * string characters delimited by a Posix `/` character.
13
12
  *
14
- * Note that the first part of the path will retain it's `\` if present
15
- * and the last one will preserve it's `\` character if present. You can
13
+ * Note that the first part of the path will retain it's `/` if present
14
+ * and the last one will preserve it's `/` character if present. You can
16
15
  * combine this utility with `EnsureTrailing<T>`, `StripTrailing<T>`,
17
16
  * `EnsureStarting<T>`, and `StripStarting<T>` to further shape
18
17
  * the type.
19
18
  */
20
- export type PathJoin<TSegments extends readonly string[]> = Finalize<TSegments, Join<{
21
- [K in keyof TSegments]: TSegments[K] extends `/${infer End}` ? End extends `${infer Both}/` ? Both : End : TSegments[K] extends `${infer Start}/` ? Start : TSegments[K];
22
- }, "/">>;
19
+ export type PathJoin<TSegments extends readonly string[]> = StripSlash<TSegments> extends readonly string[] ? Process<Join<StripSlash<TSegments>, "/">, First<TSegments>, Last<TSegments>> : never;
23
20
  export {};
24
21
  //# sourceMappingURL=PathJoin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PathJoin.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/PathJoin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACL,iBAAwB;AAEzB,KAAK,QAAQ,CACX,SAAS,SAAS,SAAS,MAAM,EAAE,EACnC,KAAK,SAAS,MAAM,IAClB,MAAM,CAAC;IACT,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE;IACzD,KAAK;IACL,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE;CACvD,CAAC,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,CAClB,SAAS,SAAS,SAAS,MAAM,EAAE,IACjC,QAAQ,CACV,SAAS,EACT,IAAI,CACF;KACG,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,GAAG,EAAE,GACxD,GAAG,SAAS,GAAG,MAAM,IAAI,GAAG,GAC1B,IAAI,GACJ,GAAG,GACL,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,GACpC,KAAK,GACL,SAAS,CAAC,CAAC,CAAC;CACnB,EACD,GAAG,CACJ,CACF,CAAA"}
1
+ {"version":3,"file":"PathJoin.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/PathJoin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACL,iBAAwB;AAGzB,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,SAAS,MAAM,EAAE,IACzB;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,MAAM,GAAG,GAC5C,MAAM,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,QAAQ,EAAE,GACjC,QAAQ,GACR,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,OAAO,GAAG,GAChC,OAAO,GACP,CAAC,CAAC,CAAC,CAAC;CACT,CAAA;AAED,KAAK,OAAO,CACV,KAAK,SAAS,MAAM,EACpB,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,MAAM,IAEtB,MAAM,SAAS,IAAI,MAAM,EAAE,GACvB,KAAK,SAAS,GAAG,MAAM,GAAG,GACxB,IAAI,KAAK,GAAG,GACZ,IAAI,KAAK,EAAE,GACb,KAAK,SAAS,GAAG,MAAM,GAAG,GACxB,GAAG,KAAK,GAAG,GACX,KAAK,CAAC;AAGZ;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,CAClB,SAAS,SAAS,SAAS,MAAM,EAAE,IACjC,UAAU,CAAC,SAAS,CAAC,SAAS,SAAS,MAAM,EAAE,GACjD,OAAO,CACP,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAChC,KAAK,CAAC,SAAS,CAAC,EAChB,IAAI,CAAC,SAAS,CAAC,CAChB,GACC,KAAK,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ToString } from "../index";
1
+ import { AsString } from "../index";
2
2
  /**
3
3
  * **Prepend**`<TStr, TPrepend>`
4
4
  *
@@ -10,5 +10,5 @@ import { ToString } from "../index";
10
10
  *
11
11
  * **Related:** `EnsureLeading`
12
12
  */
13
- export type Prepend<TStr extends string, TPrepend extends string | number | boolean> = `${ToString<TPrepend>}${TStr}`;
13
+ export type Prepend<TStr extends string, TPrepend extends string | number | boolean> = `${AsString<TPrepend>}${TStr}`;
14
14
  //# sourceMappingURL=Prepend.d.ts.map
@@ -1,8 +1,8 @@
1
- import { AfterFirst, First, ToString } from "../index";
1
+ import { AfterFirst, AsString, First } from "../index";
2
2
  type PrependAcc<TList extends readonly string[], TPrepend extends string, TResults extends string[] = []> = [] extends TList ? TResults : PrependAcc<AfterFirst<TList>, TPrepend, [
3
3
  ...TResults,
4
4
  `${TPrepend}${First<TList>}`
5
5
  ]>;
6
- export type PrependAll<TList extends readonly string[], TPrepend extends string | number | boolean> = PrependAcc<TList, ToString<TPrepend>>;
6
+ export type PrependAll<TList extends readonly string[], TPrepend extends string | number | boolean> = PrependAcc<TList, AsString<TPrepend>>;
7
7
  export {};
8
8
  //# sourceMappingURL=PrependAll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrependAll.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/PrependAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAG,QAAQ,EAAE,iBAAwB;AAE/D,KAAK,UAAU,CACb,KAAK,SAAS,SAAS,MAAM,EAAE,EAC/B,QAAQ,SAAS,MAAM,EACvB,QAAQ,SAAS,MAAM,EAAE,GAAG,EAAE,IAC5B,EAAE,SAAS,KAAK,GAChB,QAAQ,GACR,UAAU,CACR,UAAU,CAAC,KAAK,CAAC,EACjB,QAAQ,EACR;IAAC,GAAG,QAAQ;IAAE,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE;CAAC,CAC5C,CAAC;AAEN,MAAM,MAAM,UAAU,CACpB,KAAK,SAAS,SAAS,MAAM,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,IACxC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"PrependAll.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/PrependAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAwB;AAE9D,KAAK,UAAU,CACb,KAAK,SAAS,SAAS,MAAM,EAAE,EAC/B,QAAQ,SAAS,MAAM,EACvB,QAAQ,SAAS,MAAM,EAAE,GAAG,EAAE,IAC5B,EAAE,SAAS,KAAK,GAChB,QAAQ,GACR,UAAU,CACR,UAAU,CAAC,KAAK,CAAC,EACjB,QAAQ,EACR;IAAC,GAAG,QAAQ;IAAE,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE;CAAC,CAC5C,CAAC;AAEN,MAAM,MAAM,UAAU,CACpB,KAAK,SAAS,SAAS,MAAM,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,IACxC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC"}
@@ -10,6 +10,18 @@ type Cascade<T extends readonly string[], TResult extends string = ""> = [] exte
10
10
  * string literal up left-to-right.
11
11
  */
12
12
  export type Optional<T extends string | readonly string[]> = T extends readonly string[] ? Cascade<T> : T | "";
13
+ /**
14
+ * **Opt**`<T>`
15
+ *
16
+ * > _alias for `Optional<T>`_
17
+ *
18
+ * String literal utility which makes the text `T` either present
19
+ * or just an _empty string_ (aka, "optional").
20
+ *
21
+ * - if you send in an array of strings they will build a
22
+ * string literal up left-to-right.
23
+ */
24
+ export type Opt<T extends string | readonly string[]> = Optional<T>;
13
25
  /**
14
26
  * an _optional_ percentage symbol
15
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Optional.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/Optional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE1C,KAAK,OAAO,CACV,CAAC,SAAS,SAAS,MAAM,EAAE,EAC3B,OAAO,SAAS,MAAM,GAAG,EAAE,IACzB,EAAE,SAAS,CAAC,GACd,OAAO,GACP,OAAO,CACL,UAAU,CAAC,CAAC,CAAC,EACb,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7B,CAAC;AAGJ;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,CAClB,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAClC,CAAC,SAAS,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,GAAG,EAAE,CAAC;AAGT;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"Optional.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/Optional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE1C,KAAK,OAAO,CACV,CAAC,SAAS,SAAS,MAAM,EAAE,EAC3B,OAAO,SAAS,MAAM,GAAG,EAAE,IACzB,EAAE,SAAS,CAAC,GACd,OAAO,GACP,OAAO,CACL,UAAU,CAAC,CAAC,CAAC,EACb,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7B,CAAC;AAGJ;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,CAClB,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAClC,CAAC,SAAS,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,GAAG,EAAE,CAAC;AAGT;;;;;;;;;;GAUG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IACpD,QAAQ,CAAC,CAAC,CAAC,CAAC;AAGZ;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ export type OldSchoolHtmlElement = "b" | "center" | "u" | "big" | "small" | "strong";
2
+ export type EsotericHtmlElement = OldSchoolHtmlElement | "base" | "bdi" | "bdo" | "datalist" | "dd" | "del" | "dir" | "dl" | "dt" | "fencedframe" | "ins" | "kbd" | "nobr" | "noembed" | "rb" | "rt" | "rtc" | "ruby" | "s" | "samp" | "map" | "marquee" | "meter" | "noframes" | "object" | "param" | "portal" | "q" | "sub" | "sup" | "tt" | "track" | "var" | "wbr" | "xmp";
3
+ export type HtmlTableElement = "col" | "colgroup" | "hgroup" | "table" | "tbody" | "td" | "tfoot" | "th" | "thead" | "time" | "tr";
4
+ export type HtmlSymantecElement = "abbr" | "acronym" | "address" | "area" | "article" | "aside" | "blockquote" | "caption" | "cite" | "details" | "dfn" | "dialog" | "fieldset" | "figure" | "figcaption" | "header" | "footer" | "legend" | "nav" | "menu" | "search" | "summary" | "section";
5
+ export type HtmlInputElement = "button" | "form" | "label" | "optgroup" | "option" | "select" | "input" | "textarea";
6
+ export type HtmlFunctionalElement = "a" | "br" | "canvas" | "code" | "data" | "embed" | "em" | "font" | "hr" | "i" | "iframe" | "img" | "mark" | "strike" | "progress" | "p" | "picture" | "plaintext" | "pre";
7
+ export type HtmlMediaElement = "audio" | "video";
8
+ export type HtmlFrameworkElement = "template" | "slot";
9
+ export type HtmlStructuralElement = "div" | `h${"1" | "2" | "3" | "4" | "5" | "6"}` | "frame" | "frameset" | "html" | "head" | "span";
10
+ export type HtmlListElement = "li" | "ol" | "ul";
11
+ export type HtmlHeaderElement = "meta" | "link" | "noscript" | "script" | "title" | "style" | "source";
12
+ export type HtmlBodyElement = "body" | "main" | HtmlListElement | HtmlStructuralElement | HtmlSymantecElement | HtmlMediaElement | HtmlInputElement | HtmlFunctionalElement | HtmlFrameworkElement | HtmlTableElement;
13
+ /**
14
+ * Combines all _common_ HTML tags for both
15
+ * the header and body of an HTML page.
16
+ *
17
+ * **Related:**
18
+ * - `HtmlElement` _(all including esoteric)_
19
+ * - `HtmlHeaderElement`
20
+ * - `HtmlBodyElement`
21
+ */
22
+ export type CommonHtmlElement = HtmlHeaderElement | HtmlBodyElement;
23
+ /**
24
+ * All HTML elements.
25
+ *
26
+ * **Related:**
27
+ * - `CommonHtmlElement` _(just the most common elements)_
28
+ * - `HtmlHeaderElement`, `HeaderBodyElement`
29
+ */
30
+ export type HtmlElement = CommonHtmlElement | EsotericHtmlElement;
31
+ //# sourceMappingURL=html-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-element.d.ts","sourceRoot":"","sources":["../../../../../src/types/string-literals/character-sets/css/html-element.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC9B,GAAG,GACH,QAAQ,GACR,GAAG,GACH,KAAK,GACL,OAAO,GACP,QAAQ,CACT;AAED,MAAM,MAAM,mBAAmB,GAC7B,oBAAoB,GACpB,MAAM,GACN,KAAK,GACL,KAAK,GACL,UAAU,GACV,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,aAAa,GACb,KAAK,GACL,KAAK,GACL,MAAM,GACN,SAAS,GACT,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,MAAM,GACN,GAAG,GACH,MAAM,GACN,KAAK,GACL,SAAS,GACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,GAAG,GACH,KAAK,GACL,KAAK,GACL,IAAI,GACJ,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAGR,MAAM,MAAM,gBAAgB,GAC1B,KAAK,GACL,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,GACP,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,OAAO,GACP,MAAM,GACN,IAAI,CAAC;AAGP,MAAM,MAAM,mBAAmB,GAC7B,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,OAAO,GACP,YAAY,GACZ,SAAS,GACT,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,CAEV;AAED,MAAM,MAAM,gBAAgB,GAC1B,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,UAAU,CACX;AAED,MAAM,MAAM,qBAAqB,GAC/B,GAAG,GACH,IAAI,GACJ,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,MAAM,GACN,IAAI,GACJ,GAAG,GACH,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,GACR,UAAU,GACV,GAAG,GACH,SAAS,GACT,WAAW,GACX,KAAK,CACN;AAED,MAAM,MAAM,gBAAgB,GAC1B,OAAO,GACP,OAAO,CACR;AAED,MAAM,MAAM,oBAAoB,GAC9B,UAAU,GACV,MAAM,CAAC;AAGT,MAAM,MAAM,qBAAqB,GAC/B,KAAK,GACL,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GACvC,OAAO,GACP,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,CACP;AAED,MAAM,MAAM,eAAe,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,CACL;AAED,MAAM,MAAM,iBAAiB,GAC3B,MAAM,GACN,MAAM,GACN,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,GACP,QAAQ,CACT;AAED,MAAM,MAAM,eAAe,GACzB,MAAM,GACN,MAAM,GACN,eAAe,GACf,qBAAqB,GACrB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,CAAC;AAEnB;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAC3B,iBAAiB,GACjB,eAAe,CAAC;AAGlB;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,mBAAmB,CAAC"}
@@ -3,4 +3,7 @@ export * from "./display-position";
3
3
  export * from "./sizing";
4
4
  export * from "./props";
5
5
  export * from "./property";
6
+ export * from "./pseudo-classes";
7
+ export * from "./selector";
8
+ export * from "./html-element";
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/types/string-literals/character-sets/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/types/string-literals/character-sets/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -3,3 +3,6 @@ export * from "./display-position.js";
3
3
  export * from "./sizing.js";
4
4
  export * from "./props.js";
5
5
  export * from "./property.js";
6
+ export * from "./pseudo-classes.js";
7
+ export * from "./selector.js";
8
+ export * from "./html-element.js";
@@ -0,0 +1,82 @@
1
+ /**
2
+ * CSS Pseudo Classes for [Display State](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#element_display_state_pseudo-classes).
3
+ */
4
+ export type CssDisplayStatePseudoClasses = ":fullscreen" | ":modal" | ":picture-in-picture";
5
+ /**
6
+ * CSS Pseudo Classes for [Input Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#input_pseudo-classes).
7
+ *
8
+ * These pseudo-classes relate to form elements, and enable selecting elements based
9
+ * on HTML attributes and the state that the field is in before and after interaction.
10
+ */
11
+ export type CssInputPseudoClasses = ":autofill" | ":enabled" | ":disabled" | ":readonly-only" | ":read-write" | ":placeholder-shown" | ":default" | ":checked" | ":indeterminate" | ":blank" | ":valid" | ":invalid" | ":in-range" | ":out-of-range" | ":required" | ":optional" | ":user-valid" | ":user-invalid";
12
+ /**
13
+ * CSS Pseudo Classes for [Linguistic Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#linguistic_pseudo-classes).
14
+ * These pseudo-classes reflect the document language and enable the selection of
15
+ * elements based on language or script direction.
16
+ */
17
+ export type CssLinguisticPseudoClasses = ":dir" | ":lang";
18
+ /**
19
+ * CSS Pseudo Classes for [Locational Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#location_pseudo-classes).
20
+ *
21
+ * These pseudo-classes relate to links, and to targeted elements within the
22
+ * current document.
23
+ */
24
+ export type CssLocationPseudoClasses = ":any-link" | ":link" | ":visited" | ":local-link" | ":target" | ":target-within" | ":scope";
25
+ /**
26
+ * CSS Pseudo Classes for [Resource State](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#resource_state_pseudo-classes).
27
+ *
28
+ * These pseudo-classes apply to media that is capable of being in a state where it
29
+ * would be described as playing, such as a video.
30
+ */
31
+ export type CssResourceStatePseudoClasses = ":playing" | ":paused";
32
+ /**
33
+ * CSS Pseudo Classes for [Time Dimensional Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#input_pseudo-classes).
34
+ *
35
+ * These pseudo-classes apply when viewing something which has timing,
36
+ * such as a [WebVTT](https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API) caption track.
37
+ */
38
+ export type CssTimePseudoClasses = ":current" | ":past" | ":future";
39
+ /**
40
+ * CSS Pseudo Classes for [Tree Structural Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#tree-structural_pseudo-classes).
41
+ *
42
+ * These pseudo-classes relate to the location of an element within the
43
+ * document tree.
44
+ */
45
+ export type CssTreePseudoClasses = ":root" | ":empty" | ":nth-child" | ":nth-last-child" | ":first-child" | ":last-child" | ":only-child" | ":nth-of-type" | ":nth-last-of-type" | ":first-of-type" | ":last-of-type" | ":only-of-type";
46
+ /**
47
+ * CSS Pseudo Classes for [User Action Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#user_action_pseudo-classes).
48
+ *
49
+ * These pseudo-classes require some interaction by the user in order for them to
50
+ * apply, such as holding a mouse pointer over an element.
51
+ */
52
+ export type CssUserActionPseudoClasses = ":hover" | ":active" | ":focus" | ":focus-visible" | ":focus-within";
53
+ /**
54
+ * CSS Pseudo Classes for [Functional Elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#functional_pseudo-classes).
55
+ *
56
+ * These pseudo-classes accept a [selector list](https://developer.mozilla.org/en-US/docs/Web/CSS/Selector_list)
57
+ * or [forgiving selector list](https://developer.mozilla.org/en-US/docs/Web/CSS/Selector_list#forgiving_selector_list)
58
+ * as a parameter.
59
+ */
60
+ export type CssFunctionalPseudoClass = ":is" | ":not" | ":where" | ":has";
61
+ /**
62
+ * Any CSS [**Pseudo Class**](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes#functional_pseudo-classes).
63
+ *
64
+ * **Related:**
65
+ * - `CssDisplayStatePseudoClasses`
66
+ * - `CssFunctionalPseudoClass`
67
+ * - `CssInputPseudoClasses`
68
+ * - `CssLinguisticPseudoClasses`
69
+ * - `CssLocationPseudoClasses`
70
+ * - `CssResourceStatePseudoClasses`
71
+ * - `CssTimePseudoClasses`
72
+ * - `CssTreePseudoClasses`
73
+ * - `CssUserActionPseudoClasses`
74
+ */
75
+ export type CssPseudoClass = CssDisplayStatePseudoClasses | CssFunctionalPseudoClass | CssInputPseudoClasses | CssLinguisticPseudoClasses | CssLocationPseudoClasses | CssResourceStatePseudoClasses | CssTimePseudoClasses | CssTreePseudoClasses | CssUserActionPseudoClasses;
76
+ /**
77
+ * **CssPseudoClassDefn**
78
+ *
79
+ * A type which incorporates a definition of _all_ CSS pseudo classes.
80
+ */
81
+ export type CssPseudoClassDefn<T extends CssPseudoClass = CssPseudoClass> = `${T}(${string})`;
82
+ //# sourceMappingURL=pseudo-classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pseudo-classes.d.ts","sourceRoot":"","sources":["../../../../../src/types/string-literals/character-sets/css/pseudo-classes.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACtC,aAAa,GACb,QAAQ,GACR,qBAAqB,CAAC;AAMxB;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC/B,WAAW,GACX,UAAU,GACV,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,oBAAoB,GACpB,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,WAAW,GACX,eAAe,GACf,WAAW,GACX,WAAW,GACX,aAAa,GACb,eAAe,CAAC;AAGlB;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GACpC,MAAM,GACN,OAAO,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAClC,WAAW,GACX,OAAO,GACP,UAAU,GACV,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,QAAQ,CAAC;AAGX;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GACvC,UAAU,GACV,SAAS,CAAC;AAEZ;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC9B,UAAU,GACV,OAAO,GACP,SAAS,CAAC;AAEZ;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC9B,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,aAAa,GACb,cAAc,GACd,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAAC;AAGlB;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GACpC,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,gBAAgB,GAChB,eAAe,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAClC,KAAK,GACL,MAAM,GACN,QAAQ,GACR,MAAM,CAAC;AAGT;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GACxB,4BAA4B,GAC5B,wBAAwB,GACxB,qBAAqB,GACrB,0BAA0B,GAC1B,wBAAwB,GACxB,6BAA6B,GAC7B,oBAAoB,GACpB,oBAAoB,GACpB,0BAA0B,CAAC;AAG7B;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,cAAc,GAAG,cAAc,IACvC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ // DISPLAY
2
+ export {};
@@ -0,0 +1,35 @@
1
+ import { AlphaNumericChar } from "../AlphaNumeric";
2
+ import { HtmlBodyElement } from "./html-element";
3
+ import { CssPseudoClass, CssPseudoClassDefn } from "./pseudo-classes";
4
+ export type CssIdSelector = `#${string}${AlphaNumericChar}`;
5
+ export type CssClassSelector = `.${string}${AlphaNumericChar}`;
6
+ /**
7
+ * A CSS Tag Selector.
8
+ *
9
+ * - acts as an alias to the `HtmlBodyElement` type.
10
+ */
11
+ export type CssTagSelector = HtmlBodyElement;
12
+ /**
13
+ * **BareCssSelector**`<TId, TClass, TTag>`
14
+ *
15
+ * A CSS Selector.
16
+ *
17
+ * A strongly typed **CSS** _selector_ which allows for
18
+ * the element selector (minus a pseudo class).
19
+ *
20
+ *
21
+ * - `TId`, `TClass`, and `TTag` provide means to _narrow_ type
22
+ * types of `CssIdSelector`'s, `CssClassSelector`'s, and
23
+ * `CssTagSelectors` respectively
24
+ *
25
+ * **Related:**
26
+ * - `CssSelector` _(adds typing for pseudo classes)_
27
+ */
28
+ export type BareCssSelector<TId extends CssIdSelector = CssIdSelector, TClass extends CssClassSelector = CssClassSelector, TTag extends CssTagSelector = CssTagSelector> = TId | TTag | TClass;
29
+ /**
30
+ * **CssSelector**`<[TId],[TClass],[TTag],[TPseudo]>`
31
+ *
32
+ * A strongly typed **CSS** _selector_.
33
+ */
34
+ export type CssSelector<TId extends CssIdSelector = CssIdSelector, TClass extends CssClassSelector = CssClassSelector, TTag extends CssTagSelector = CssTagSelector, TPseudo extends CssPseudoClass = CssPseudoClass> = TId | TClass | TTag | `${TId}${CssPseudoClassDefn<TPseudo>}` | `${TClass}${CssPseudoClassDefn<TPseudo>}` | `${TTag}${CssPseudoClassDefn<TPseudo>}`;
35
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../../../../src/types/string-literals/character-sets/css/selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAG,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,IAAI,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAC/D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,eAAe,CACzB,GAAG,SAAS,aAAa,GAAG,aAAa,EACzC,MAAM,SAAS,gBAAgB,GAAG,gBAAgB,EAClD,IAAI,SAAS,cAAc,GAAG,cAAc,IAC1C,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;AAGxB;;;;GAIG;AACH,MAAM,MAAM,WAAW,CACrB,GAAG,SAAS,aAAa,GAAG,aAAa,EACzC,MAAM,SAAS,gBAAgB,GAAG,gBAAgB,EAClD,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,OAAO,SAAS,cAAc,GAAG,cAAc,IAE/C,GAAG,GAAG,MAAM,GAAG,IAAI,GACnB,GAAG,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,GACtC,GAAG,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,GACzC,GAAG,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC"}