@contember/utilities 1.3.0-alpha.7 → 1.3.0-alpha.9

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 (248) hide show
  1. package/dist/development/assert-types/AssertionError.cjs.map +1 -1
  2. package/dist/development/assert-types/AssertionError.js.map +1 -1
  3. package/dist/development/assert-types/Predicates.cjs +1 -102
  4. package/dist/development/assert-types/Predicates.cjs.map +1 -1
  5. package/dist/development/assert-types/Predicates.js +2 -103
  6. package/dist/development/assert-types/Predicates.js.map +1 -1
  7. package/dist/development/class-name/colorSchemeClassName.cjs +1 -5
  8. package/dist/development/class-name/colorSchemeClassName.cjs.map +1 -1
  9. package/dist/development/class-name/colorSchemeClassName.js +1 -5
  10. package/dist/development/class-name/colorSchemeClassName.js.map +1 -1
  11. package/dist/development/class-name/constants.cjs +1 -1
  12. package/dist/development/class-name/constants.cjs.map +1 -1
  13. package/dist/development/class-name/constants.js +1 -1
  14. package/dist/development/class-name/constants.js.map +1 -1
  15. package/dist/development/class-name/filterThemedClassName.cjs +8 -30
  16. package/dist/development/class-name/filterThemedClassName.cjs.map +1 -1
  17. package/dist/development/class-name/filterThemedClassName.js +8 -30
  18. package/dist/development/class-name/filterThemedClassName.js.map +1 -1
  19. package/dist/development/class-name/themeClassName.cjs +7 -7
  20. package/dist/development/class-name/themeClassName.cjs.map +1 -1
  21. package/dist/development/class-name/themeClassName.js +7 -7
  22. package/dist/development/class-name/themeClassName.js.map +1 -1
  23. package/dist/development/css-utilities/px.cjs.map +1 -1
  24. package/dist/development/css-utilities/px.js.map +1 -1
  25. package/dist/development/data-utilities/dateToStringWithoutTimezone.cjs.map +1 -1
  26. package/dist/development/data-utilities/dateToStringWithoutTimezone.js.map +1 -1
  27. package/dist/development/dom/stateDataAttributes.cjs.map +1 -1
  28. package/dist/development/dom/stateDataAttributes.js.map +1 -1
  29. package/dist/development/dom/svgSizeProps.cjs.map +1 -1
  30. package/dist/development/dom/svgSizeProps.js.map +1 -1
  31. package/dist/development/functional/omit.cjs.map +1 -1
  32. package/dist/development/functional/omit.js.map +1 -1
  33. package/dist/development/functional/pick.cjs.map +1 -1
  34. package/dist/development/functional/pick.js.map +1 -1
  35. package/dist/development/index.cjs +0 -42
  36. package/dist/development/index.cjs.map +1 -1
  37. package/dist/development/index.js +2 -44
  38. package/dist/development/index.js.map +1 -1
  39. package/dist/production/assert-types/AssertionError.cjs.map +1 -1
  40. package/dist/production/assert-types/AssertionError.js.map +1 -1
  41. package/dist/production/assert-types/Predicates.cjs +1 -102
  42. package/dist/production/assert-types/Predicates.cjs.map +1 -1
  43. package/dist/production/assert-types/Predicates.js +2 -103
  44. package/dist/production/assert-types/Predicates.js.map +1 -1
  45. package/dist/production/class-name/colorSchemeClassName.cjs +1 -5
  46. package/dist/production/class-name/colorSchemeClassName.cjs.map +1 -1
  47. package/dist/production/class-name/colorSchemeClassName.js +1 -5
  48. package/dist/production/class-name/colorSchemeClassName.js.map +1 -1
  49. package/dist/production/class-name/constants.cjs +1 -1
  50. package/dist/production/class-name/constants.cjs.map +1 -1
  51. package/dist/production/class-name/constants.js +1 -1
  52. package/dist/production/class-name/constants.js.map +1 -1
  53. package/dist/production/class-name/filterThemedClassName.cjs +8 -30
  54. package/dist/production/class-name/filterThemedClassName.cjs.map +1 -1
  55. package/dist/production/class-name/filterThemedClassName.js +8 -30
  56. package/dist/production/class-name/filterThemedClassName.js.map +1 -1
  57. package/dist/production/class-name/themeClassName.cjs +7 -7
  58. package/dist/production/class-name/themeClassName.cjs.map +1 -1
  59. package/dist/production/class-name/themeClassName.js +7 -7
  60. package/dist/production/class-name/themeClassName.js.map +1 -1
  61. package/dist/production/css-utilities/px.cjs.map +1 -1
  62. package/dist/production/css-utilities/px.js.map +1 -1
  63. package/dist/production/data-utilities/dateToStringWithoutTimezone.cjs.map +1 -1
  64. package/dist/production/data-utilities/dateToStringWithoutTimezone.js.map +1 -1
  65. package/dist/production/dom/stateDataAttributes.cjs.map +1 -1
  66. package/dist/production/dom/stateDataAttributes.js.map +1 -1
  67. package/dist/production/dom/svgSizeProps.cjs.map +1 -1
  68. package/dist/production/dom/svgSizeProps.js.map +1 -1
  69. package/dist/production/functional/omit.cjs.map +1 -1
  70. package/dist/production/functional/omit.js.map +1 -1
  71. package/dist/production/functional/pick.cjs.map +1 -1
  72. package/dist/production/functional/pick.js.map +1 -1
  73. package/dist/production/index.cjs +0 -42
  74. package/dist/production/index.cjs.map +1 -1
  75. package/dist/production/index.js +2 -44
  76. package/dist/production/index.js.map +1 -1
  77. package/dist/types/assert-types/Predicates.d.ts +0 -25
  78. package/dist/types/assert-types/Predicates.d.ts.map +1 -1
  79. package/dist/types/assert-types/types.d.ts +0 -3
  80. package/dist/types/assert-types/types.d.ts.map +1 -1
  81. package/dist/types/class-name/colorSchemeClassName.d.ts +3 -6
  82. package/dist/types/class-name/colorSchemeClassName.d.ts.map +1 -1
  83. package/dist/types/class-name/constants.d.ts.map +1 -1
  84. package/dist/types/class-name/filterThemedClassName.d.ts +2 -2
  85. package/dist/types/class-name/filterThemedClassName.d.ts.map +1 -1
  86. package/dist/types/class-name/index.d.ts +0 -1
  87. package/dist/types/class-name/index.d.ts.map +1 -1
  88. package/dist/types/class-name/themeClassName.d.ts +4 -6
  89. package/dist/types/class-name/themeClassName.d.ts.map +1 -1
  90. package/dist/types/class-name/types.d.ts +0 -4
  91. package/dist/types/class-name/types.d.ts.map +1 -1
  92. package/dist/types/css-utilities/px.d.ts +6 -4
  93. package/dist/types/css-utilities/px.d.ts.map +1 -1
  94. package/dist/types/deprecate/index.d.ts +0 -1
  95. package/dist/types/deprecate/index.d.ts.map +1 -1
  96. package/dist/types/dom/index.d.ts +0 -3
  97. package/dist/types/dom/index.d.ts.map +1 -1
  98. package/dist/types/functional/index.d.ts +0 -2
  99. package/dist/types/functional/index.d.ts.map +1 -1
  100. package/dist/types/string-utilities/index.d.ts +0 -2
  101. package/dist/types/string-utilities/index.d.ts.map +1 -1
  102. package/dist/types/tsconfig.tsbuildinfo +1 -1
  103. package/dist/types/types/Narrow.d.ts +1 -2
  104. package/dist/types/types/Narrow.d.ts.map +1 -1
  105. package/dist/types/types/PolymorphicRefs.d.ts +2 -1
  106. package/dist/types/types/PolymorphicRefs.d.ts.map +1 -1
  107. package/dist/types/types/index.d.ts +0 -9
  108. package/dist/types/types/index.d.ts.map +1 -1
  109. package/package.json +1 -4
  110. package/src/assert-types/Predicates.ts +1 -86
  111. package/src/assert-types/types.ts +0 -4
  112. package/src/class-name/colorSchemeClassName.ts +5 -12
  113. package/src/class-name/constants.ts +1 -2
  114. package/src/class-name/filterThemedClassName.ts +14 -43
  115. package/src/class-name/index.ts +0 -1
  116. package/src/class-name/themeClassName.ts +9 -36
  117. package/src/class-name/types.ts +0 -10
  118. package/src/css-utilities/px.ts +0 -7
  119. package/src/deprecate/index.ts +0 -1
  120. package/src/dom/index.ts +0 -3
  121. package/src/functional/index.ts +0 -2
  122. package/src/string-utilities/index.ts +0 -2
  123. package/src/types/Narrow.ts +1 -3
  124. package/src/types/PolymorphicRefs.ts +3 -1
  125. package/src/types/index.ts +0 -21
  126. package/dist/development/class-name/stateClassName.cjs +0 -11
  127. package/dist/development/class-name/stateClassName.cjs.map +0 -1
  128. package/dist/development/class-name/stateClassName.js +0 -11
  129. package/dist/development/class-name/stateClassName.js.map +0 -1
  130. package/dist/development/deprecate/fallback.cjs +0 -11
  131. package/dist/development/deprecate/fallback.cjs.map +0 -1
  132. package/dist/development/deprecate/fallback.js +0 -11
  133. package/dist/development/deprecate/fallback.js.map +0 -1
  134. package/dist/development/dom/getMatchingParentElement.cjs +0 -17
  135. package/dist/development/dom/getMatchingParentElement.cjs.map +0 -1
  136. package/dist/development/dom/getMatchingParentElement.js +0 -17
  137. package/dist/development/dom/getMatchingParentElement.js.map +0 -1
  138. package/dist/development/dom/isScrollable.cjs +0 -22
  139. package/dist/development/dom/isScrollable.cjs.map +0 -1
  140. package/dist/development/dom/isScrollable.js +0 -22
  141. package/dist/development/dom/isScrollable.js.map +0 -1
  142. package/dist/development/dom/parseTransformMatrix.cjs +0 -29
  143. package/dist/development/dom/parseTransformMatrix.cjs.map +0 -1
  144. package/dist/development/dom/parseTransformMatrix.js +0 -29
  145. package/dist/development/dom/parseTransformMatrix.js.map +0 -1
  146. package/dist/development/functional/extend.cjs +0 -33
  147. package/dist/development/functional/extend.cjs.map +0 -1
  148. package/dist/development/functional/extend.js +0 -33
  149. package/dist/development/functional/extend.js.map +0 -1
  150. package/dist/development/functional/setHasOneOf.cjs +0 -7
  151. package/dist/development/functional/setHasOneOf.cjs.map +0 -1
  152. package/dist/development/functional/setHasOneOf.js +0 -7
  153. package/dist/development/functional/setHasOneOf.js.map +0 -1
  154. package/dist/development/string-utilities/capitalize.cjs +0 -7
  155. package/dist/development/string-utilities/capitalize.cjs.map +0 -1
  156. package/dist/development/string-utilities/capitalize.js +0 -7
  157. package/dist/development/string-utilities/capitalize.js.map +0 -1
  158. package/dist/development/string-utilities/trimString.cjs +0 -8
  159. package/dist/development/string-utilities/trimString.cjs.map +0 -1
  160. package/dist/development/string-utilities/trimString.js +0 -8
  161. package/dist/development/string-utilities/trimString.js.map +0 -1
  162. package/dist/production/class-name/stateClassName.cjs +0 -11
  163. package/dist/production/class-name/stateClassName.cjs.map +0 -1
  164. package/dist/production/class-name/stateClassName.js +0 -11
  165. package/dist/production/class-name/stateClassName.js.map +0 -1
  166. package/dist/production/deprecate/fallback.cjs +0 -11
  167. package/dist/production/deprecate/fallback.cjs.map +0 -1
  168. package/dist/production/deprecate/fallback.js +0 -11
  169. package/dist/production/deprecate/fallback.js.map +0 -1
  170. package/dist/production/dom/getMatchingParentElement.cjs +0 -17
  171. package/dist/production/dom/getMatchingParentElement.cjs.map +0 -1
  172. package/dist/production/dom/getMatchingParentElement.js +0 -17
  173. package/dist/production/dom/getMatchingParentElement.js.map +0 -1
  174. package/dist/production/dom/isScrollable.cjs +0 -22
  175. package/dist/production/dom/isScrollable.cjs.map +0 -1
  176. package/dist/production/dom/isScrollable.js +0 -22
  177. package/dist/production/dom/isScrollable.js.map +0 -1
  178. package/dist/production/dom/parseTransformMatrix.cjs +0 -29
  179. package/dist/production/dom/parseTransformMatrix.cjs.map +0 -1
  180. package/dist/production/dom/parseTransformMatrix.js +0 -29
  181. package/dist/production/dom/parseTransformMatrix.js.map +0 -1
  182. package/dist/production/functional/extend.cjs +0 -33
  183. package/dist/production/functional/extend.cjs.map +0 -1
  184. package/dist/production/functional/extend.js +0 -33
  185. package/dist/production/functional/extend.js.map +0 -1
  186. package/dist/production/functional/setHasOneOf.cjs +0 -7
  187. package/dist/production/functional/setHasOneOf.cjs.map +0 -1
  188. package/dist/production/functional/setHasOneOf.js +0 -7
  189. package/dist/production/functional/setHasOneOf.js.map +0 -1
  190. package/dist/production/string-utilities/capitalize.cjs +0 -7
  191. package/dist/production/string-utilities/capitalize.cjs.map +0 -1
  192. package/dist/production/string-utilities/capitalize.js +0 -7
  193. package/dist/production/string-utilities/capitalize.js.map +0 -1
  194. package/dist/production/string-utilities/trimString.cjs +0 -8
  195. package/dist/production/string-utilities/trimString.cjs.map +0 -1
  196. package/dist/production/string-utilities/trimString.js +0 -8
  197. package/dist/production/string-utilities/trimString.js.map +0 -1
  198. package/dist/types/class-name/stateClassName.d.ts +0 -19
  199. package/dist/types/class-name/stateClassName.d.ts.map +0 -1
  200. package/dist/types/deprecate/fallback.d.ts +0 -2
  201. package/dist/types/deprecate/fallback.d.ts.map +0 -1
  202. package/dist/types/dom/getMatchingParentElement.d.ts +0 -2
  203. package/dist/types/dom/getMatchingParentElement.d.ts.map +0 -1
  204. package/dist/types/dom/isScrollable.d.ts +0 -7
  205. package/dist/types/dom/isScrollable.d.ts.map +0 -1
  206. package/dist/types/dom/parseTransformMatrix.d.ts +0 -15
  207. package/dist/types/dom/parseTransformMatrix.d.ts.map +0 -1
  208. package/dist/types/functional/extend.d.ts +0 -5
  209. package/dist/types/functional/extend.d.ts.map +0 -1
  210. package/dist/types/functional/setHasOneOf.d.ts +0 -2
  211. package/dist/types/functional/setHasOneOf.d.ts.map +0 -1
  212. package/dist/types/string-utilities/capitalize.d.ts +0 -2
  213. package/dist/types/string-utilities/capitalize.d.ts.map +0 -1
  214. package/dist/types/string-utilities/trimString.d.ts +0 -9
  215. package/dist/types/string-utilities/trimString.d.ts.map +0 -1
  216. package/dist/types/types/Any.d.ts +0 -4
  217. package/dist/types/types/Any.d.ts.map +0 -1
  218. package/dist/types/types/DeepPartial.d.ts +0 -4
  219. package/dist/types/types/DeepPartial.d.ts.map +0 -1
  220. package/dist/types/types/NonNullableRequired.d.ts +0 -4
  221. package/dist/types/types/NonNullableRequired.d.ts.map +0 -1
  222. package/dist/types/types/ObjectKeyValue.d.ts +0 -4
  223. package/dist/types/types/ObjectKeyValue.d.ts.map +0 -1
  224. package/dist/types/types/Primitive.d.ts +0 -2
  225. package/dist/types/types/Primitive.d.ts.map +0 -1
  226. package/dist/types/types/RequiredDeepPlainObject.d.ts +0 -4
  227. package/dist/types/types/RequiredDeepPlainObject.d.ts.map +0 -1
  228. package/dist/types/types/Try.d.ts +0 -2
  229. package/dist/types/types/Try.d.ts.map +0 -1
  230. package/dist/types/types/TypeofStringLiteral.d.ts +0 -2
  231. package/dist/types/types/TypeofStringLiteral.d.ts.map +0 -1
  232. package/src/class-name/stateClassName.ts +0 -32
  233. package/src/deprecate/fallback.ts +0 -7
  234. package/src/dom/getMatchingParentElement.ts +0 -13
  235. package/src/dom/isScrollable.ts +0 -24
  236. package/src/dom/parseTransformMatrix.ts +0 -35
  237. package/src/functional/extend.ts +0 -37
  238. package/src/functional/setHasOneOf.ts +0 -3
  239. package/src/string-utilities/capitalize.ts +0 -3
  240. package/src/string-utilities/trimString.ts +0 -12
  241. package/src/types/Any.ts +0 -3
  242. package/src/types/DeepPartial.ts +0 -7
  243. package/src/types/NonNullableRequired.ts +0 -1
  244. package/src/types/ObjectKeyValue.ts +0 -1
  245. package/src/types/Primitive.ts +0 -1
  246. package/src/types/RequiredDeepPlainObject.ts +0 -3
  247. package/src/types/Try.ts +0 -4
  248. package/src/types/TypeofStringLiteral.ts +0 -1
@@ -1,6 +1,4 @@
1
- import { KebabCase } from 'type-fest'
2
1
  import { COLOR_SCHEME_CLASS_NAME_REG_EXP } from './constants'
3
- import { ColorSchemeClassName } from './types'
4
2
 
5
3
  /**
6
4
  * Returns a string with a color scheme class name, prefixed with `scheme-`
@@ -24,15 +22,10 @@ import { ColorSchemeClassName } from './types'
24
22
  * // </div>
25
23
  * ```
26
24
  */
27
- export function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: S): ColorSchemeClassName<S>;
28
- export function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: null | undefined): undefined;
29
- export function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: S | null | undefined): ColorSchemeClassName<S> | undefined;
30
- export function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: S | null | undefined): ColorSchemeClassName<S> | undefined {
31
- if (typeof scheme === 'string') {
32
- return `scheme-${scheme}`
33
- } else {
34
- return undefined
35
- }
25
+ export function colorSchemeClassName(scheme: string): string
26
+ export function colorSchemeClassName(scheme: string | null | undefined): string | undefined
27
+ export function colorSchemeClassName(scheme: string | null | undefined): string | undefined {
28
+ return typeof scheme === 'string' ? `scheme-${scheme}` : undefined
36
29
  }
37
30
 
38
31
  /**
@@ -41,6 +34,6 @@ export function colorSchemeClassName<S extends KebabCase<string> = KebabCase<str
41
34
  * @returns `true` if the string is a color scheme CSS class
42
35
  * @internal
43
36
  */
44
- export function isColorSchemeClassName<T extends string>(value: string): value is ColorSchemeClassName<T> {
37
+ export function isColorSchemeClassName(value: string) {
45
38
  return COLOR_SCHEME_CLASS_NAME_REG_EXP.test(value)
46
39
  }
@@ -16,8 +16,7 @@
16
16
  * - theme-brand-color-controls
17
17
  */
18
18
 
19
- // TODO: v1.3.0 >>> THEME_CLASS_NAME_REG_EXP = /^theme-(?<name>[\w-]+?)(?:-(?<scope>content|controls))?$/
20
- export const THEME_CLASS_NAME_REG_EXP = /^theme-(?<name>[\w-]+?)(?:-(?<scope>content|controls))?(?<state>:[\w]+(?:[\w-]+)?)?$/
19
+ export const THEME_CLASS_NAME_REG_EXP = /^theme-(?<name>[\w-]+?)(?:-(?<scope>content|controls))?$/
21
20
 
22
21
  /**
23
22
  * Regular expression for testing if a string is a color scheme CSS class
@@ -1,20 +1,17 @@
1
- import { KebabCase } from 'type-fest'
2
- import { deprecate } from '../deprecate'
3
1
  import { isColorSchemeClassName } from './colorSchemeClassName'
4
2
  import { THEME_CLASS_NAME_REG_EXP } from './constants'
5
3
  import { flatClassNameList } from './flatClassNameList'
6
4
  import { contentThemeClassName, controlsThemeClassName } from './themeClassName'
7
- import { ColorSchemeClassName, NestedClassName } from './types'
5
+ import { NestedClassName } from './types'
8
6
 
9
7
  export type ThemeConfig = { content: string | undefined, controls: string | undefined }
10
8
 
11
9
  export function filterThemedClassName(
12
10
  nestedClassName: NestedClassName,
13
- defaultColorSchemeContext: ColorSchemeClassName,
11
+ defaultColorSchemeContext: string,
14
12
  ) {
15
13
  const theme: ThemeConfig = { content: undefined, controls: undefined }
16
- const stateThemes: Record<string, ThemeConfig> = {}
17
- let colorScheme: ColorSchemeClassName | undefined = undefined
14
+ let colorScheme: string | undefined = undefined
18
15
 
19
16
  const flatClassName = flatClassNameList(nestedClassName).map(className => {
20
17
  if (isColorSchemeClassName(className)) {
@@ -25,35 +22,18 @@ export function filterThemedClassName(
25
22
  const match = className.match(THEME_CLASS_NAME_REG_EXP)
26
23
 
27
24
  if (match) {
28
- const name = match.groups!.name as KebabCase<string>
29
- const scope = match.groups!.scope as KebabCase<string>
30
- const state = match.groups!.state as `:${KebabCase<string>}`
31
-
32
- if (state) {
33
- deprecate('1.3.0', true, 'State themes are deprecated.', null)
34
- stateThemes[state] = stateThemes[state] ?? { content: undefined, controls: undefined }
35
-
36
- if (!scope) {
37
- stateThemes[state].content = name
38
- stateThemes[state].controls = name
39
- } else if (scope === 'content') {
40
- stateThemes[state].content = name
41
- } else if (scope === 'controls') {
42
- stateThemes[state].controls = name
43
- } else {
44
- throw new Error(`Unknown theme scope: ${scope}`)
45
- }
25
+ const name = match.groups!.name
26
+ const scope = match.groups!.scope
27
+
28
+ if (!scope) {
29
+ theme.content = name
30
+ theme.controls = name
31
+ } else if (scope === 'content') {
32
+ theme.content = name
33
+ } else if (scope === 'controls') {
34
+ theme.controls = name
46
35
  } else {
47
- if (!scope) {
48
- theme.content = name
49
- theme.controls = name
50
- } else if (scope === 'content') {
51
- theme.content = name
52
- } else if (scope === 'controls') {
53
- theme.controls = name
54
- } else {
55
- throw new Error(`Unknown theme scope: ${scope}`)
56
- }
36
+ throw new Error(`Unknown theme scope: ${scope}`)
57
37
  }
58
38
 
59
39
  return undefined
@@ -69,15 +49,6 @@ export function filterThemedClassName(
69
49
 
70
50
  themeClassNames.push(content, controls)
71
51
 
72
- for (const state in stateThemes) {
73
- const { content, controls } = stateThemes[state]
74
-
75
- const contentClassName = contentThemeClassName(content, state as `:${KebabCase<string>}`)
76
- const controlsClassName = controlsThemeClassName(controls, state as `:${KebabCase<string>}`)
77
-
78
- themeClassNames.push(contentClassName, controlsClassName)
79
- }
80
-
81
52
  const flatThemedClassName = flatClassNameList(themeClassNames)
82
53
 
83
54
  if (flatThemedClassName.length > 0 || colorScheme) {
@@ -4,6 +4,5 @@ export * from './deduplicateClassName'
4
4
  export * from './filterThemedClassName'
5
5
  export * from './flatClassNameList'
6
6
  export * from './listClassName'
7
- export * from './stateClassName'
8
7
  export * from './themeClassName'
9
8
  export * from './types'
@@ -1,14 +1,9 @@
1
- import { KebabCase } from 'type-fest'
2
- import { isDefined } from '../assert-types'
3
- import { deprecate } from '../deprecate'
4
- import { ThemeContentClassName, ThemeControlsClassName } from './types'
5
-
6
1
  /**
7
2
  * Returns a string with a content theme class name, prefixed with `theme-` and suffixed with `-content`
8
3
  *
9
4
  * IMPORTANT: Make sure to use color scheme class in combination with theme class names.
10
5
  *
11
- * @param contentTheme - Theme name basis for content
6
+ * @param theme - Theme name basis for content
12
7
  * @returns A content theme class name
13
8
  *
14
9
  * @see {@link controlsThemeClassName}
@@ -28,16 +23,8 @@ import { ThemeContentClassName, ThemeControlsClassName } from './types'
28
23
  * )
29
24
  * ```
30
25
  */
31
- export function contentThemeClassName<
32
- ContentTheme extends KebabCase<string> = KebabCase<string>,
33
- State extends `:${KebabCase<string>}` | null | undefined = undefined,
34
- >(
35
- theme: ContentTheme | null | undefined,
36
- state?: State | null | undefined,
37
- ) {
38
- deprecate('1.3.0', isDefined(state), '`state` argument', null)
39
-
40
- return theme ? `theme-${theme}-content${state ?? ''}` as ThemeContentClassName<ContentTheme, State> : undefined
26
+ export function contentThemeClassName(theme: string | null | undefined): string | undefined {
27
+ return theme ? `theme-${theme}-content` : undefined
41
28
  }
42
29
 
43
30
  /**
@@ -65,16 +52,8 @@ export function contentThemeClassName<
65
52
  * )
66
53
  * ```
67
54
  */
68
- export function controlsThemeClassName<
69
- ControlsTheme extends KebabCase<string> = KebabCase<string>,
70
- State extends `:${KebabCase<string>}` | null | undefined = undefined,
71
- >(
72
- theme: ControlsTheme | null | undefined,
73
- state?: State | null | undefined,
74
- ) {
75
- deprecate('1.3.0', isDefined(state), '`state` argument', null)
76
-
77
- return theme ? `theme-${theme}-controls${state ?? ''}` as ThemeControlsClassName<ControlsTheme, State> : undefined
55
+ export function controlsThemeClassName(theme: string | null | undefined): string | undefined {
56
+ return theme ? `theme-${theme}-controls` : undefined
78
57
  }
79
58
 
80
59
  /**
@@ -101,17 +80,11 @@ export function controlsThemeClassName<
101
80
  * )
102
81
  * ```
103
82
  */
104
- export function themeClassName<
105
- Theme extends KebabCase<string> = KebabCase<string>,
106
- State extends `:${KebabCase<string>}` | null | undefined = undefined,
107
- >(
108
- theme: Theme | null | undefined,
109
- state?: State | null | undefined,
83
+ export function themeClassName(
84
+ theme: string | null | undefined,
110
85
  ) {
111
- deprecate('1.3.0', isDefined(state), '`state` argument', null)
112
-
113
86
  return [
114
- contentThemeClassName(theme, state),
115
- controlsThemeClassName(theme, state),
87
+ contentThemeClassName(theme),
88
+ controlsThemeClassName(theme),
116
89
  ] as const
117
90
  }
@@ -1,5 +1,3 @@
1
- import { KebabCase } from 'type-fest'
2
-
3
1
  export type NestedClassName = string | false | null | undefined | (string | false | null | undefined)[] | NestedClassName[]
4
2
  export type ClassNameStateMap = { [key: string]: string | number | boolean | null | undefined }
5
3
 
@@ -7,11 +5,3 @@ export interface ComponentClassNameProps {
7
5
  className?: NestedClassName;
8
6
  componentClassName?: string | string[];
9
7
  }
10
-
11
- export type ColorSchemeClassName<T extends KebabCase<string> = KebabCase<string>> = `scheme-${T}`
12
- export type ThemeContentClassName<T extends KebabCase<string> = KebabCase<string>, S extends `:${KebabCase<string>}` | null | undefined = undefined> = S extends string
13
- ? `theme-${T}-content${S}`
14
- : `theme-${T}-content`
15
- export type ThemeControlsClassName<T extends KebabCase<string> = KebabCase<string>, S extends `:${KebabCase<string>}` | null | undefined = undefined> = S extends string
16
- ? `theme-${T}-controls${S}`
17
- : `theme-${T}-controls`
@@ -1,10 +1,3 @@
1
- export function px<V extends number>(value: V): `${V}px`;
2
- export function px<V extends false>(value: V): '';
3
- export function px<V extends null>(value: V): '';
4
- export function px<V extends undefined>(value: V): '';
5
- // NOTE: Next overload fixes:
6
- // The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.
7
- export function px<V extends number | false | null | undefined>(value?: V): string;
8
1
  /**
9
2
  * Converts a value to a string in the format '10px'
10
3
  *
@@ -1,3 +1,2 @@
1
1
  export * from './deprecate'
2
- export * from './fallback'
3
2
  export * from './types'
package/src/dom/index.ts CHANGED
@@ -1,9 +1,6 @@
1
1
  export * from './dataAttribute'
2
2
  export * from './getElementDimensions'
3
- export * from './getMatchingParentElement'
4
3
  export * from './getSizeFromResizeObserverEntry'
5
- export * from './isScrollable'
6
- export * from './parseTransformMatrix'
7
4
  export * from './shouldCancelStart'
8
5
  export * from './stateDataAttributes'
9
6
  export * from './svgSizeProps'
@@ -1,5 +1,3 @@
1
- export * from './extend'
2
1
  export * from './omit'
3
2
  export * from './pick'
4
3
  export * from './range'
5
- export * from './setHasOneOf'
@@ -1,3 +1 @@
1
- export * from './capitalize'
2
1
  export * from './kebabCase'
3
- export * from './trimString'
@@ -1,5 +1,3 @@
1
- import { Try } from './Try'
2
-
3
1
  /**
4
2
  * Describes types that can be narrowed
5
3
  */
@@ -18,4 +16,4 @@ type NarrowRaw<A> =
18
16
  : NarrowRaw<A[K]> })
19
17
 
20
18
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
21
- export type Narrow<A extends any> = Try<A, [], NarrowRaw<A>>
19
+ export type Narrow<A extends any> = A extends [] ? A : NarrowRaw<A>
@@ -2,6 +2,8 @@
2
2
 
3
3
  // Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts
4
4
  // A more precise version of just React.ComponentPropsWithoutRef on its own
5
+ import { ReactNode } from 'react'
6
+
5
7
  export type PropsOf<
6
8
  C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<any>
7
9
  > = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>
@@ -64,5 +66,5 @@ export type PolymorphicComponentPropsWithRef<
64
66
  * that the component accepts.
65
67
  */
66
68
  export type PolymorphicComponent<T extends React.ElementType, P = {}> =
67
- & (<C extends React.ElementType = T>(props: PolymorphicComponentPropsWithRef<C, P>) => React.ReactElement | null)
69
+ & (<C extends React.ElementType = T>(props: PolymorphicComponentPropsWithRef<C, P>) => ReactNode)
68
70
  & { displayName?: string | undefined }
@@ -1,24 +1,3 @@
1
- export type {
2
- CamelCase,
3
- DelimiterCase,
4
- KebabCase,
5
- LiteralToPrimitiveDeep,
6
- MergeExclusive,
7
- Opaque,
8
- PascalCase,
9
- Replace,
10
- Simplify,
11
- UnionToIntersection,
12
- UnwrapOpaque,
13
- } from 'type-fest'
14
- export * from './Any'
15
- export * from './DeepPartial'
16
1
  export * from './Narrow'
17
- export * from './NonNullableRequired'
18
2
  export * from './NonOptional'
19
- export * from './ObjectKeyValue'
20
3
  export * from './PolymorphicRefs'
21
- export * from './Primitive'
22
- export * from './RequiredDeepPlainObject'
23
- export * from './Try'
24
- export * from './TypeofStringLiteral'
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const kebabCase = require("../string-utilities/kebabCase.cjs");
4
- function stateClassName(state = null, { glue = "-", removeFalsy = true } = {}) {
5
- const entries = Object.entries(state ?? []).map(
6
- ([className, value]) => value || value === 0 || !removeFalsy ? value === true ? kebabCase.toKebabCase(className) : `${kebabCase.toKebabCase(className)}${glue}${value}` : ""
7
- ).filter(Boolean);
8
- return entries;
9
- }
10
- exports.stateClassName = stateClassName;
11
- //# sourceMappingURL=stateClassName.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stateClassName.cjs","sources":["../../../src/class-name/stateClassName.ts"],"sourcesContent":["import { toKebabCase } from '../string-utilities'\nimport { ClassNameStateMap } from './types'\n\nexport interface StateClassNameOptions {\n\tglue?: string;\n\tremoveFalsy?: boolean;\n}\n\n/**\n * Combines a state map of class names into a single string\n *\n * @example\n * stateClassName({ foo: true, bar: false, baz: 1 }) // => 'foo baz-1'\n *\n * @param state - State map object with class names as keys and literals as values.\n * @param options - Options object\n * @param options.glue - Glue to use between the class name and the value, default is '-'. Set to '' to disable.\n * @param options.removeFalsy - Whether to remove falsy class names, default is true.\n * @returns Combined class names as string\n */\nexport function stateClassName(\n\tstate: ClassNameStateMap | null = null,\n\t{ glue = '-', removeFalsy = true }: StateClassNameOptions = {},\n): string[] {\n\tconst entries = Object.entries(state ?? []).map(\n\t\t([className, value]) => value || value === 0 || !removeFalsy\n\t\t\t? (value === true ? toKebabCase(className) : `${toKebabCase(className)}${glue}${value}`)\n\t\t\t: '',\n\t).filter(Boolean)\n\n\treturn entries\n}\n"],"names":["toKebabCase"],"mappings":";;;AAoBgB,SAAA,eACf,QAAkC,MAClC,EAAE,OAAO,KAAK,cAAc,KAAgC,IAAA,IACjD;AACX,QAAM,UAAU,OAAO,QAAQ,SAAS,CAAA,CAAE,EAAE;AAAA,IAC3C,CAAC,CAAC,WAAW,KAAK,MAAM,SAAS,UAAU,KAAK,CAAC,cAC7C,UAAU,OAAOA,UAAA,YAAY,SAAS,IAAI,GAAGA,UAAAA,YAAY,SAAS,IAAI,OAAO,UAC9E;AAAA,EAAA,EACF,OAAO,OAAO;AAET,SAAA;AACR;;"}
@@ -1,11 +0,0 @@
1
- import { toKebabCase } from "../string-utilities/kebabCase.js";
2
- function stateClassName(state = null, { glue = "-", removeFalsy = true } = {}) {
3
- const entries = Object.entries(state ?? []).map(
4
- ([className, value]) => value || value === 0 || !removeFalsy ? value === true ? toKebabCase(className) : `${toKebabCase(className)}${glue}${value}` : ""
5
- ).filter(Boolean);
6
- return entries;
7
- }
8
- export {
9
- stateClassName
10
- };
11
- //# sourceMappingURL=stateClassName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stateClassName.js","sources":["../../../src/class-name/stateClassName.ts"],"sourcesContent":["import { toKebabCase } from '../string-utilities'\nimport { ClassNameStateMap } from './types'\n\nexport interface StateClassNameOptions {\n\tglue?: string;\n\tremoveFalsy?: boolean;\n}\n\n/**\n * Combines a state map of class names into a single string\n *\n * @example\n * stateClassName({ foo: true, bar: false, baz: 1 }) // => 'foo baz-1'\n *\n * @param state - State map object with class names as keys and literals as values.\n * @param options - Options object\n * @param options.glue - Glue to use between the class name and the value, default is '-'. Set to '' to disable.\n * @param options.removeFalsy - Whether to remove falsy class names, default is true.\n * @returns Combined class names as string\n */\nexport function stateClassName(\n\tstate: ClassNameStateMap | null = null,\n\t{ glue = '-', removeFalsy = true }: StateClassNameOptions = {},\n): string[] {\n\tconst entries = Object.entries(state ?? []).map(\n\t\t([className, value]) => value || value === 0 || !removeFalsy\n\t\t\t? (value === true ? toKebabCase(className) : `${toKebabCase(className)}${glue}${value}`)\n\t\t\t: '',\n\t).filter(Boolean)\n\n\treturn entries\n}\n"],"names":[],"mappings":";AAoBgB,SAAA,eACf,QAAkC,MAClC,EAAE,OAAO,KAAK,cAAc,KAAgC,IAAA,IACjD;AACX,QAAM,UAAU,OAAO,QAAQ,SAAS,CAAA,CAAE,EAAE;AAAA,IAC3C,CAAC,CAAC,WAAW,KAAK,MAAM,SAAS,UAAU,KAAK,CAAC,cAC7C,UAAU,OAAO,YAAY,SAAS,IAAI,GAAG,YAAY,SAAS,IAAI,OAAO,UAC9E;AAAA,EAAA,EACF,OAAO,OAAO;AAET,SAAA;AACR;"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function fallback(current, condition, mapped) {
4
- if (condition === true) {
5
- return mapped;
6
- } else {
7
- return current;
8
- }
9
- }
10
- exports.fallback = fallback;
11
- //# sourceMappingURL=fallback.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fallback.cjs","sources":["../../../src/deprecate/fallback.ts"],"sourcesContent":["export function fallback<R>(current: R, condition: boolean, mapped: R): R {\n\tif (condition === true) {\n\t\treturn mapped\n\t} else {\n\t\treturn current\n\t}\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,SAAY,SAAY,WAAoB,QAAc;AACzE,MAAI,cAAc,MAAM;AAChB,WAAA;AAAA,EAAA,OACD;AACC,WAAA;AAAA,EACR;AACD;;"}
@@ -1,11 +0,0 @@
1
- function fallback(current, condition, mapped) {
2
- if (condition === true) {
3
- return mapped;
4
- } else {
5
- return current;
6
- }
7
- }
8
- export {
9
- fallback
10
- };
11
- //# sourceMappingURL=fallback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fallback.js","sources":["../../../src/deprecate/fallback.ts"],"sourcesContent":["export function fallback<R>(current: R, condition: boolean, mapped: R): R {\n\tif (condition === true) {\n\t\treturn mapped\n\t} else {\n\t\treturn current\n\t}\n}\n"],"names":[],"mappings":"AAAgB,SAAA,SAAY,SAAY,WAAoB,QAAc;AACzE,MAAI,cAAc,MAAM;AAChB,WAAA;AAAA,EAAA,OACD;AACC,WAAA;AAAA,EACR;AACD;"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function getMatchingParentElement(element, predicate) {
4
- if (!element || !element.parentElement) {
5
- if (document.scrollingElement instanceof HTMLElement) {
6
- return document.scrollingElement;
7
- } else {
8
- return document.body;
9
- }
10
- } else if (predicate(element.parentElement)) {
11
- return element.parentElement;
12
- } else {
13
- return getMatchingParentElement(element.parentElement, predicate);
14
- }
15
- }
16
- exports.getMatchingParentElement = getMatchingParentElement;
17
- //# sourceMappingURL=getMatchingParentElement.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getMatchingParentElement.cjs","sources":["../../../src/dom/getMatchingParentElement.ts"],"sourcesContent":["export function getMatchingParentElement(element: HTMLElement | null, predicate: (element: HTMLElement | null) => boolean | Promise<boolean>): HTMLElement {\n if (!element || !element.parentElement) {\n if (document.scrollingElement instanceof HTMLElement) {\n return document.scrollingElement\n } else {\n return document.body\n }\n } else if (predicate(element.parentElement)) {\n return element.parentElement\n } else {\n return getMatchingParentElement(element.parentElement, predicate)\n }\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,yBAAyB,SAA6B,WAAqF;AACzJ,MAAI,CAAC,WAAW,CAAC,QAAQ,eAAe;AAClC,QAAA,SAAS,4BAA4B,aAAa;AACpD,aAAO,SAAS;AAAA,IAAA,OACX;AACL,aAAO,SAAS;AAAA,IAClB;AAAA,EACS,WAAA,UAAU,QAAQ,aAAa,GAAG;AAC3C,WAAO,QAAQ;AAAA,EAAA,OACV;AACE,WAAA,yBAAyB,QAAQ,eAAe,SAAS;AAAA,EAClE;AACF;;"}
@@ -1,17 +0,0 @@
1
- function getMatchingParentElement(element, predicate) {
2
- if (!element || !element.parentElement) {
3
- if (document.scrollingElement instanceof HTMLElement) {
4
- return document.scrollingElement;
5
- } else {
6
- return document.body;
7
- }
8
- } else if (predicate(element.parentElement)) {
9
- return element.parentElement;
10
- } else {
11
- return getMatchingParentElement(element.parentElement, predicate);
12
- }
13
- }
14
- export {
15
- getMatchingParentElement
16
- };
17
- //# sourceMappingURL=getMatchingParentElement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getMatchingParentElement.js","sources":["../../../src/dom/getMatchingParentElement.ts"],"sourcesContent":["export function getMatchingParentElement(element: HTMLElement | null, predicate: (element: HTMLElement | null) => boolean | Promise<boolean>): HTMLElement {\n if (!element || !element.parentElement) {\n if (document.scrollingElement instanceof HTMLElement) {\n return document.scrollingElement\n } else {\n return document.body\n }\n } else if (predicate(element.parentElement)) {\n return element.parentElement\n } else {\n return getMatchingParentElement(element.parentElement, predicate)\n }\n}\n"],"names":[],"mappings":"AAAgB,SAAA,yBAAyB,SAA6B,WAAqF;AACzJ,MAAI,CAAC,WAAW,CAAC,QAAQ,eAAe;AAClC,QAAA,SAAS,4BAA4B,aAAa;AACpD,aAAO,SAAS;AAAA,IAAA,OACX;AACL,aAAO,SAAS;AAAA,IAClB;AAAA,EACS,WAAA,UAAU,QAAQ,aAAa,GAAG;AAC3C,WAAO,QAAQ;AAAA,EAAA,OACV;AACE,WAAA,yBAAyB,QAAQ,eAAe,SAAS;AAAA,EAClE;AACF;"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function isScrollable(element) {
4
- if (element === document.scrollingElement) {
5
- return true;
6
- } else if (element instanceof HTMLElement) {
7
- const contentOverflows = element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
8
- if (contentOverflows) {
9
- if (getComputedStyle(element).overflow === "hidden") {
10
- return false;
11
- } else {
12
- return contentOverflows;
13
- }
14
- } else {
15
- return false;
16
- }
17
- } else {
18
- return false;
19
- }
20
- }
21
- exports.isScrollable = isScrollable;
22
- //# sourceMappingURL=isScrollable.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isScrollable.cjs","sources":["../../../src/dom/isScrollable.ts"],"sourcesContent":["/**\n * Checks if an element is scrollable\n * @param element - Element to check\n * @returns Boolean indicating if the element is scrollable\n */\nexport function isScrollable(element: HTMLElement | null) {\n\tif (element === document.scrollingElement) {\n\t\treturn true\n\t} else if (element instanceof HTMLElement) {\n\t\tconst contentOverflows = element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth\n\n\t\tif (contentOverflows) {\n\t\t\tif ((getComputedStyle(element)).overflow === 'hidden') {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn contentOverflows\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\treturn false\n\t}\n}\n"],"names":[],"mappings":";;AAKO,SAAS,aAAa,SAA6B;AACrD,MAAA,YAAY,SAAS,kBAAkB;AACnC,WAAA;AAAA,EAAA,WACG,mBAAmB,aAAa;AAC1C,UAAM,mBAAmB,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,cAAc,QAAQ;AAEtG,QAAI,kBAAkB;AACrB,UAAK,iBAAiB,OAAO,EAAG,aAAa,UAAU;AAC/C,eAAA;AAAA,MAAA,OACD;AACC,eAAA;AAAA,MACR;AAAA,IAAA,OACM;AACC,aAAA;AAAA,IACR;AAAA,EAAA,OACM;AACC,WAAA;AAAA,EACR;AACD;;"}
@@ -1,22 +0,0 @@
1
- function isScrollable(element) {
2
- if (element === document.scrollingElement) {
3
- return true;
4
- } else if (element instanceof HTMLElement) {
5
- const contentOverflows = element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
6
- if (contentOverflows) {
7
- if (getComputedStyle(element).overflow === "hidden") {
8
- return false;
9
- } else {
10
- return contentOverflows;
11
- }
12
- } else {
13
- return false;
14
- }
15
- } else {
16
- return false;
17
- }
18
- }
19
- export {
20
- isScrollable
21
- };
22
- //# sourceMappingURL=isScrollable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isScrollable.js","sources":["../../../src/dom/isScrollable.ts"],"sourcesContent":["/**\n * Checks if an element is scrollable\n * @param element - Element to check\n * @returns Boolean indicating if the element is scrollable\n */\nexport function isScrollable(element: HTMLElement | null) {\n\tif (element === document.scrollingElement) {\n\t\treturn true\n\t} else if (element instanceof HTMLElement) {\n\t\tconst contentOverflows = element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth\n\n\t\tif (contentOverflows) {\n\t\t\tif ((getComputedStyle(element)).overflow === 'hidden') {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn contentOverflows\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\treturn false\n\t}\n}\n"],"names":[],"mappings":"AAKO,SAAS,aAAa,SAA6B;AACrD,MAAA,YAAY,SAAS,kBAAkB;AACnC,WAAA;AAAA,EAAA,WACG,mBAAmB,aAAa;AAC1C,UAAM,mBAAmB,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,cAAc,QAAQ;AAEtG,QAAI,kBAAkB;AACrB,UAAK,iBAAiB,OAAO,EAAG,aAAa,UAAU;AAC/C,eAAA;AAAA,MAAA,OACD;AACC,eAAA;AAAA,MACR;AAAA,IAAA,OACM;AACC,aAAA;AAAA,IACR;AAAA,EAAA,OACM;AACC,WAAA;AAAA,EACR;AACD;"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const assert = require("../assert-types/assert.cjs");
4
- const Predicates = require("../assert-types/Predicates.cjs");
5
- const MATRIX_REG_EXP = /^matrix\((.+)\)/;
6
- function isTransformMatrixTuple(value) {
7
- if (Array.isArray(value) && value.length === 6 && value.filter(Predicates.isNumber).length === 6) {
8
- return true;
9
- } else {
10
- return false;
11
- }
12
- }
13
- function parseTransformMatrix(transform = "") {
14
- let matches = null;
15
- if (matches = transform.match(MATRIX_REG_EXP)) {
16
- const vector = matches[1].split(",").map((value) => parseFloat(value));
17
- assert.assert("transform matrix is tuple of six numbers", vector, isTransformMatrixTuple);
18
- return {
19
- scaleX: vector[0],
20
- skewY: vector[1],
21
- skewX: vector[2],
22
- scaleY: vector[3],
23
- translateX: vector[4],
24
- translateY: vector[5]
25
- };
26
- }
27
- }
28
- exports.parseTransformMatrix = parseTransformMatrix;
29
- //# sourceMappingURL=parseTransformMatrix.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseTransformMatrix.cjs","sources":["../../../src/dom/parseTransformMatrix.ts"],"sourcesContent":["import { assert, isNumber } from '../assert-types'\n\nconst MATRIX_REG_EXP = /^matrix\\((.+)\\)/\n\nfunction isTransformMatrixTuple(value: unknown): value is [number, number, number, number, number, number] {\n\tif (Array.isArray(value) && value.length === 6 && value.filter(isNumber).length === 6) {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n}\n\n/**\n * Parses a CSS transform matrix string into an object.\n *\n * @param transform - CSS transform matrix string.\n * @returns Object with the transform matrix values or undefined.\n */\nexport function parseTransformMatrix(transform = '') {\n\tlet matches: RegExpMatchArray | null = null\n\n\tif (matches = transform.match(MATRIX_REG_EXP)) {\n\t\tconst vector = matches[1].split(',').map(value => parseFloat(value))\n\t\tassert('transform matrix is tuple of six numbers', vector, isTransformMatrixTuple)\n\n\t\treturn {\n\t\t\tscaleX: vector[0],\n\t\t\tskewY: vector[1],\n\t\t\tskewX: vector[2],\n\t\t\tscaleY: vector[3],\n\t\t\ttranslateX: vector[4],\n\t\t\ttranslateY: vector[5],\n\t\t}\n\t}\n}\n"],"names":["isNumber","assert"],"mappings":";;;;AAEA,MAAM,iBAAiB;AAEvB,SAAS,uBAAuB,OAA2E;AAC1G,MAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAK,MAAM,OAAOA,WAAAA,QAAQ,EAAE,WAAW,GAAG;AAC/E,WAAA;AAAA,EAAA,OACD;AACC,WAAA;AAAA,EACR;AACD;AAQgB,SAAA,qBAAqB,YAAY,IAAI;AACpD,MAAI,UAAmC;AAEvC,MAAI,UAAU,UAAU,MAAM,cAAc,GAAG;AACxC,UAAA,SAAS,QAAQ,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,CAAA,UAAS,WAAW,KAAK,CAAC;AAC5DC,WAAAA,OAAA,4CAA4C,QAAQ,sBAAsB;AAE1E,WAAA;AAAA,MACN,QAAQ,OAAO,CAAC;AAAA,MAChB,OAAO,OAAO,CAAC;AAAA,MACf,OAAO,OAAO,CAAC;AAAA,MACf,QAAQ,OAAO,CAAC;AAAA,MAChB,YAAY,OAAO,CAAC;AAAA,MACpB,YAAY,OAAO,CAAC;AAAA,IAAA;AAAA,EAEtB;AACD;;"}
@@ -1,29 +0,0 @@
1
- import { assert } from "../assert-types/assert.js";
2
- import { isNumber } from "../assert-types/Predicates.js";
3
- const MATRIX_REG_EXP = /^matrix\((.+)\)/;
4
- function isTransformMatrixTuple(value) {
5
- if (Array.isArray(value) && value.length === 6 && value.filter(isNumber).length === 6) {
6
- return true;
7
- } else {
8
- return false;
9
- }
10
- }
11
- function parseTransformMatrix(transform = "") {
12
- let matches = null;
13
- if (matches = transform.match(MATRIX_REG_EXP)) {
14
- const vector = matches[1].split(",").map((value) => parseFloat(value));
15
- assert("transform matrix is tuple of six numbers", vector, isTransformMatrixTuple);
16
- return {
17
- scaleX: vector[0],
18
- skewY: vector[1],
19
- skewX: vector[2],
20
- scaleY: vector[3],
21
- translateX: vector[4],
22
- translateY: vector[5]
23
- };
24
- }
25
- }
26
- export {
27
- parseTransformMatrix
28
- };
29
- //# sourceMappingURL=parseTransformMatrix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseTransformMatrix.js","sources":["../../../src/dom/parseTransformMatrix.ts"],"sourcesContent":["import { assert, isNumber } from '../assert-types'\n\nconst MATRIX_REG_EXP = /^matrix\\((.+)\\)/\n\nfunction isTransformMatrixTuple(value: unknown): value is [number, number, number, number, number, number] {\n\tif (Array.isArray(value) && value.length === 6 && value.filter(isNumber).length === 6) {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n}\n\n/**\n * Parses a CSS transform matrix string into an object.\n *\n * @param transform - CSS transform matrix string.\n * @returns Object with the transform matrix values or undefined.\n */\nexport function parseTransformMatrix(transform = '') {\n\tlet matches: RegExpMatchArray | null = null\n\n\tif (matches = transform.match(MATRIX_REG_EXP)) {\n\t\tconst vector = matches[1].split(',').map(value => parseFloat(value))\n\t\tassert('transform matrix is tuple of six numbers', vector, isTransformMatrixTuple)\n\n\t\treturn {\n\t\t\tscaleX: vector[0],\n\t\t\tskewY: vector[1],\n\t\t\tskewX: vector[2],\n\t\t\tscaleY: vector[3],\n\t\t\ttranslateX: vector[4],\n\t\t\ttranslateY: vector[5],\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAEA,MAAM,iBAAiB;AAEvB,SAAS,uBAAuB,OAA2E;AAC1G,MAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAK,MAAM,OAAO,QAAQ,EAAE,WAAW,GAAG;AAC/E,WAAA;AAAA,EAAA,OACD;AACC,WAAA;AAAA,EACR;AACD;AAQgB,SAAA,qBAAqB,YAAY,IAAI;AACpD,MAAI,UAAmC;AAEvC,MAAI,UAAU,UAAU,MAAM,cAAc,GAAG;AACxC,UAAA,SAAS,QAAQ,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,CAAA,UAAS,WAAW,KAAK,CAAC;AAC5D,WAAA,4CAA4C,QAAQ,sBAAsB;AAE1E,WAAA;AAAA,MACN,QAAQ,OAAO,CAAC;AAAA,MAChB,OAAO,OAAO,CAAC;AAAA,MACf,OAAO,OAAO,CAAC;AAAA,MACf,QAAQ,OAAO,CAAC;AAAA,MAChB,YAAY,OAAO,CAAC;AAAA,MACpB,YAAY,OAAO,CAAC;AAAA,IAAA;AAAA,EAEtB;AACD;"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function extend(base, extension) {
4
- base = Object.freeze(base);
5
- extension = Object.freeze(extension);
6
- if (typeof base !== typeof extension) {
7
- return extension === void 0 ? base : extension;
8
- } else {
9
- if (typeof base === "object" && typeof extension === "object") {
10
- if (Array.isArray(base) && Array.isArray(extension)) {
11
- return Object.freeze([...base, ...extension]);
12
- } else if (base && extension) {
13
- if ("$$typeof" in extension) {
14
- return extension;
15
- }
16
- const keys = [.../* @__PURE__ */ new Set([
17
- ...Object.keys(base),
18
- ...Object.keys(extension)
19
- ])];
20
- const entries = keys.map(
21
- (key) => [key, extend(base[key], extension[key])]
22
- );
23
- return Object.freeze(Object.fromEntries(entries));
24
- } else {
25
- return extension;
26
- }
27
- } else {
28
- return extension;
29
- }
30
- }
31
- }
32
- exports.extend = extend;
33
- //# sourceMappingURL=extend.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extend.cjs","sources":["../../../src/functional/extend.ts"],"sourcesContent":["/** @internal */\nexport function extend<B, E>(\n\tbase: B,\n\textension: E,\n) {\n\tbase = Object.freeze(base)\n\textension = Object.freeze(extension)\n\n\tif (typeof base !== typeof extension) {\n\t\treturn extension === undefined ? base : extension\n\t} else {\n\t\tif (typeof base === 'object' && typeof extension === 'object') {\n\t\t\tif (Array.isArray(base) && Array.isArray(extension)) {\n\t\t\t\treturn Object.freeze([...base, ...extension])\n\t\t\t} else if (base && extension) {\n\t\t\t\tif ('$$typeof' in extension) {\n\t\t\t\t\treturn extension\n\t\t\t\t}\n\n\t\t\t\tconst keys = [...new Set([\n\t\t\t\t\t...Object.keys(base),\n\t\t\t\t\t...Object.keys(extension),\n\t\t\t\t])]\n\n\t\t\t\tconst entries: [string, unknown][] = keys.map(\n\t\t\t\t\tkey => [key, extend((base as Record<string, unknown>)[key], (extension as Record<string, unknown>)[key])],\n\t\t\t\t)\n\n\t\t\t\treturn Object.freeze(Object.fromEntries(entries))\n\t\t\t} else {\n\t\t\t\treturn extension\n\t\t\t}\n\t\t} else {\n\t\t\treturn extension\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AACgB,SAAA,OACf,MACA,WACC;AACM,SAAA,OAAO,OAAO,IAAI;AACb,cAAA,OAAO,OAAO,SAAS;AAE/B,MAAA,OAAO,SAAS,OAAO,WAAW;AAC9B,WAAA,cAAc,SAAY,OAAO;AAAA,EAAA,OAClC;AACN,QAAI,OAAO,SAAS,YAAY,OAAO,cAAc,UAAU;AAC9D,UAAI,MAAM,QAAQ,IAAI,KAAK,MAAM,QAAQ,SAAS,GAAG;AACpD,eAAO,OAAO,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;AAAA,MAAA,WAClC,QAAQ,WAAW;AAC7B,YAAI,cAAc,WAAW;AACrB,iBAAA;AAAA,QACR;AAEA,cAAM,OAAO,CAAC,GAAG,oBAAI,IAAI;AAAA,UACxB,GAAG,OAAO,KAAK,IAAI;AAAA,UACnB,GAAG,OAAO,KAAK,SAAS;AAAA,QACxB,CAAA,CAAC;AAEF,cAAM,UAA+B,KAAK;AAAA,UACzC,CAAA,QAAO,CAAC,KAAK,OAAQ,KAAiC,GAAG,GAAI,UAAsC,GAAG,CAAC,CAAC;AAAA,QAAA;AAGzG,eAAO,OAAO,OAAO,OAAO,YAAY,OAAO,CAAC;AAAA,MAAA,OAC1C;AACC,eAAA;AAAA,MACR;AAAA,IAAA,OACM;AACC,aAAA;AAAA,IACR;AAAA,EACD;AACD;;"}