@contember/utilities 1.2.0-rc.0 → 1.2.0-rc.2

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 (125) hide show
  1. package/dist/development/assert-types/Predicates.js.map +1 -1
  2. package/dist/development/class-name/colorSchemeClassName.js +16 -0
  3. package/dist/development/class-name/colorSchemeClassName.js.map +1 -0
  4. package/dist/development/class-name/constants.js +7 -0
  5. package/dist/development/class-name/constants.js.map +1 -0
  6. package/dist/development/class-name/deduplicateClassName.js.map +1 -0
  7. package/dist/development/class-name/filterThemedClassName.js +68 -0
  8. package/dist/development/class-name/filterThemedClassName.js.map +1 -0
  9. package/dist/development/class-name/{Internal/flatClassNameList.js → flatClassNameList.js} +1 -1
  10. package/dist/development/class-name/flatClassNameList.js.map +1 -0
  11. package/dist/development/class-name/listClassName.js +2 -2
  12. package/dist/development/class-name/listClassName.js.map +1 -1
  13. package/dist/development/class-name/stateClassName.js.map +1 -1
  14. package/dist/development/class-name/themeClassName.js +18 -0
  15. package/dist/development/class-name/themeClassName.js.map +1 -0
  16. package/dist/development/deprecate/currentOrDeprecated.js +20 -0
  17. package/dist/development/deprecate/currentOrDeprecated.js.map +1 -0
  18. package/dist/development/deprecate/deprecate.js +6 -0
  19. package/dist/development/deprecate/deprecate.js.map +1 -0
  20. package/dist/development/index.js +21 -7
  21. package/dist/development/index.js.map +1 -1
  22. package/dist/production/assert-types/Predicates.js.map +1 -1
  23. package/dist/production/class-name/colorSchemeClassName.js +16 -0
  24. package/dist/production/class-name/colorSchemeClassName.js.map +1 -0
  25. package/dist/production/class-name/constants.js +7 -0
  26. package/dist/production/class-name/constants.js.map +1 -0
  27. package/dist/production/class-name/deduplicateClassName.js.map +1 -0
  28. package/dist/production/class-name/filterThemedClassName.js +68 -0
  29. package/dist/production/class-name/filterThemedClassName.js.map +1 -0
  30. package/dist/production/class-name/{Internal/flatClassNameList.js → flatClassNameList.js} +1 -1
  31. package/dist/production/class-name/flatClassNameList.js.map +1 -0
  32. package/dist/production/class-name/listClassName.js +2 -2
  33. package/dist/production/class-name/listClassName.js.map +1 -1
  34. package/dist/production/class-name/stateClassName.js.map +1 -1
  35. package/dist/production/class-name/themeClassName.js +18 -0
  36. package/dist/production/class-name/themeClassName.js.map +1 -0
  37. package/dist/production/deprecate/currentOrDeprecated.js +20 -0
  38. package/dist/production/deprecate/currentOrDeprecated.js.map +1 -0
  39. package/dist/production/deprecate/deprecate.js +6 -0
  40. package/dist/production/deprecate/deprecate.js.map +1 -0
  41. package/dist/production/index.js +21 -7
  42. package/dist/production/index.js.map +1 -1
  43. package/dist/types/assert-types/Predicates.d.ts +1 -1
  44. package/dist/types/assert-types/Predicates.d.ts.map +1 -1
  45. package/dist/types/class-name/colorSchemeClassName.d.ts +35 -0
  46. package/dist/types/class-name/colorSchemeClassName.d.ts.map +1 -0
  47. package/dist/types/class-name/constants.d.ts +42 -0
  48. package/dist/types/class-name/constants.d.ts.map +1 -0
  49. package/dist/types/class-name/deduplicateClassName.d.ts.map +1 -0
  50. package/dist/types/class-name/filterThemedClassName.d.ts +7 -0
  51. package/dist/types/class-name/filterThemedClassName.d.ts.map +1 -0
  52. package/dist/types/class-name/flatClassNameList.d.ts +3 -0
  53. package/dist/types/class-name/flatClassNameList.d.ts.map +1 -0
  54. package/dist/types/class-name/index.d.ts +7 -4
  55. package/dist/types/class-name/index.d.ts.map +1 -1
  56. package/dist/types/class-name/stateClassName.d.ts +1 -1
  57. package/dist/types/class-name/themeClassName.d.ts +87 -0
  58. package/dist/types/class-name/themeClassName.d.ts.map +1 -0
  59. package/dist/types/class-name/types.d.ts +14 -0
  60. package/dist/types/class-name/types.d.ts.map +1 -0
  61. package/dist/types/deprecate/currentOrDeprecated.d.ts +35 -0
  62. package/dist/types/deprecate/currentOrDeprecated.d.ts.map +1 -0
  63. package/dist/types/deprecate/deprecate.d.ts +19 -0
  64. package/dist/types/deprecate/deprecate.d.ts.map +1 -0
  65. package/dist/types/deprecate/index.d.ts +4 -0
  66. package/dist/types/deprecate/index.d.ts.map +1 -0
  67. package/dist/types/deprecate/types.d.ts +2 -0
  68. package/dist/types/deprecate/types.d.ts.map +1 -0
  69. package/dist/types/index.d.ts +1 -0
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/tsconfig.tsbuildinfo +1 -1
  72. package/dist/types/types/index.d.ts +1 -1
  73. package/dist/types/types/index.d.ts.map +1 -1
  74. package/package.json +1 -1
  75. package/src/assert-types/Predicates.ts +1 -1
  76. package/src/class-name/colorSchemeClassName.ts +46 -0
  77. package/src/class-name/constants.ts +43 -0
  78. package/src/class-name/filterThemedClassName.ts +86 -0
  79. package/src/class-name/{Internal/flatClassNameList.ts → flatClassNameList.ts} +2 -2
  80. package/src/class-name/index.ts +7 -4
  81. package/src/class-name/listClassName.ts +2 -2
  82. package/src/class-name/stateClassName.ts +1 -1
  83. package/src/class-name/themeClassName.ts +117 -0
  84. package/src/class-name/types.ts +18 -0
  85. package/src/deprecate/currentOrDeprecated.ts +51 -0
  86. package/src/deprecate/deprecate.ts +31 -0
  87. package/src/deprecate/index.ts +3 -0
  88. package/src/deprecate/types.ts +2 -0
  89. package/src/index.ts +1 -0
  90. package/src/types/index.ts +2 -0
  91. package/dist/development/class-name/GlobalClassNamePrefixContext.js +0 -6
  92. package/dist/development/class-name/GlobalClassNamePrefixContext.js.map +0 -1
  93. package/dist/development/class-name/Internal/deduplicateClassName.js.map +0 -1
  94. package/dist/development/class-name/Internal/flatClassNameList.js.map +0 -1
  95. package/dist/development/class-name/useClassName.js +0 -18
  96. package/dist/development/class-name/useClassName.js.map +0 -1
  97. package/dist/development/class-name/useClassNameFactory.js +0 -21
  98. package/dist/development/class-name/useClassNameFactory.js.map +0 -1
  99. package/dist/production/class-name/GlobalClassNamePrefixContext.js +0 -6
  100. package/dist/production/class-name/GlobalClassNamePrefixContext.js.map +0 -1
  101. package/dist/production/class-name/Internal/deduplicateClassName.js.map +0 -1
  102. package/dist/production/class-name/Internal/flatClassNameList.js.map +0 -1
  103. package/dist/production/class-name/useClassName.js +0 -18
  104. package/dist/production/class-name/useClassName.js.map +0 -1
  105. package/dist/production/class-name/useClassNameFactory.js +0 -21
  106. package/dist/production/class-name/useClassNameFactory.js.map +0 -1
  107. package/dist/types/class-name/GlobalClassNamePrefixContext.d.ts +0 -2
  108. package/dist/types/class-name/GlobalClassNamePrefixContext.d.ts.map +0 -1
  109. package/dist/types/class-name/Internal/deduplicateClassName.d.ts.map +0 -1
  110. package/dist/types/class-name/Internal/flatClassNameList.d.ts +0 -3
  111. package/dist/types/class-name/Internal/flatClassNameList.d.ts.map +0 -1
  112. package/dist/types/class-name/Types.d.ts +0 -10
  113. package/dist/types/class-name/Types.d.ts.map +0 -1
  114. package/dist/types/class-name/useClassName.d.ts +0 -10
  115. package/dist/types/class-name/useClassName.d.ts.map +0 -1
  116. package/dist/types/class-name/useClassNameFactory.d.ts +0 -3
  117. package/dist/types/class-name/useClassNameFactory.d.ts.map +0 -1
  118. package/src/class-name/GlobalClassNamePrefixContext.ts +0 -3
  119. package/src/class-name/Types.ts +0 -9
  120. package/src/class-name/useClassName.ts +0 -29
  121. package/src/class-name/useClassNameFactory.ts +0 -31
  122. /package/dist/development/class-name/{Internal/deduplicateClassName.js → deduplicateClassName.js} +0 -0
  123. /package/dist/production/class-name/{Internal/deduplicateClassName.js → deduplicateClassName.js} +0 -0
  124. /package/dist/types/class-name/{Internal/deduplicateClassName.d.ts → deduplicateClassName.d.ts} +0 -0
  125. /package/src/class-name/{Internal/deduplicateClassName.ts → deduplicateClassName.ts} +0 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Resolves current or deprecated value. If both are defined, it will throw an error in development mode.
3
+ *
4
+ * @internal
5
+ *
6
+ * Errors are thrown only in development mode. In production mode, the deprecated value is returned.
7
+ *
8
+ * @param current - Current value that replaces deprecated value
9
+ * @param deprecated - Deprecated value that will be removed in the next release
10
+ * @param shouldThrow - Whether to throw an error if both current and deprecated are defined
11
+ * @returns Deprecated value if it is defined, otherwise current value
12
+ * @throws Error if both current and deprecated are defined
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const current = 'current'
17
+ * const deprecated = 'deprecated'
18
+ *
19
+ * const value = currentOrDeprecated(current, deprecated)
20
+ *
21
+ * console.log(value) // 'deprecated'
22
+ * ```
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const current = 'current'
27
+ * const deprecated = undefined
28
+ *
29
+ * const value = currentOrDeprecated(current, deprecated)
30
+ *
31
+ * console.log(value) // 'current'
32
+ * ```
33
+ */
34
+ export function currentOrDeprecated<R, D>(current: R, deprecated: D, shouldThrow: boolean = false): R | D {
35
+ if (deprecated !== undefined) {
36
+ if (current !== undefined && import.meta.env.DEV) {
37
+ console.error('Current value:', current)
38
+ console.error('Deprecated value:', deprecated)
39
+
40
+ if (shouldThrow) {
41
+ throw new Error(`You are using deprecated together with current value which is mutually exclusive. Use only one of them.`)
42
+ } else {
43
+ console.error(`You are using deprecated together with current value which is mutually exclusive. Use only one of them.`)
44
+ }
45
+ }
46
+
47
+ return deprecated
48
+ } else {
49
+ return current
50
+ }
51
+ }
@@ -0,0 +1,31 @@
1
+ import { SemverString } from './types'
2
+
3
+ /**
4
+ * Logs a deprecation warning if the assertion is `false`.
5
+ * @internal
6
+ *
7
+ * @param removal - Version when the deprecated feature will be removed
8
+ * @param assertion - Condition that must be true to avoid the deprecation warning
9
+ * @param deprecated - Name of the deprecated feature
10
+ * @param replacement - Name of the feature that replaces the deprecated feature
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const { visible } = props
15
+ * deprecate(visible !== 'default', '1.3.0', '"default"', '"hidden"')
16
+ * // Logs: Use of "default" is deprecated and might be removed in the next release. Use "hidden" instead.
17
+ * ```
18
+ */
19
+ export function deprecate(removal: SemverString, assertion: boolean, deprecated: string, replacement: string): void {
20
+ if (assertion === false) {
21
+ if (import.meta.env.DEV) {
22
+ const shouldThrow = Boolean(import.meta.env.VITE_CONTEMBER_ADMIN_STRICT_DEPRECATIONS)
23
+
24
+ if (shouldThrow) {
25
+ throw new Error(`Support for ${deprecated} was planned to be removed in the ${removal} release. Replace it with ${replacement} instead.`)
26
+ } else {
27
+ console.warn(`Use of ${deprecated} is deprecated and might be removed in the next release. Use ${replacement} instead.`)
28
+ }
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,3 @@
1
+ export * from './currentOrDeprecated'
2
+ export * from './deprecate'
3
+ export * from './types'
@@ -0,0 +1,2 @@
1
+
2
+ export type SemverString = `${number}.${number}.${number}` | `v${number}.${number}.${number}`
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './assert-types'
2
2
  export * from './class-name'
3
3
  export * from './css-utilities'
4
+ export * from './deprecate'
4
5
  export * from './dom'
5
6
  export * from './functional'
6
7
  export * from './string-utilities'
@@ -3,9 +3,11 @@ export type {
3
3
  DelimiterCase,
4
4
  KebabCase,
5
5
  LiteralToPrimitiveDeep,
6
+ Opaque,
6
7
  PascalCase,
7
8
  Replace,
8
9
  UnionToIntersection,
10
+ UnwrapOpaque,
9
11
  } from 'type-fest'
10
12
  export * from './DeepPartial'
11
13
  export * from './NonNullableRequired'
@@ -1,6 +0,0 @@
1
- import { createContext } from "react";
2
- const GlobalClassNamePrefixContext = createContext("cui-");
3
- export {
4
- GlobalClassNamePrefixContext
5
- };
6
- //# sourceMappingURL=GlobalClassNamePrefixContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalClassNamePrefixContext.js","sources":["../../../src/class-name/GlobalClassNamePrefixContext.ts"],"sourcesContent":["import { createContext } from 'react'\n\nexport const GlobalClassNamePrefixContext = createContext<string>('cui-')\n"],"names":[],"mappings":";AAEa,MAAA,+BAA+B,cAAsB,MAAM;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deduplicateClassName.js","sources":["../../../../src/class-name/Internal/deduplicateClassName.ts"],"sourcesContent":["export function deduplicateClassName(classNameArray: string[]): string[] {\n\treturn [...new Set(classNameArray)]\n}\n"],"names":[],"mappings":"AAAO,SAAS,qBAAqB,gBAAoC;AACxE,SAAO,CAAC,GAAG,IAAI,IAAI,cAAc,CAAC;AACnC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatClassNameList.js","sources":["../../../../src/class-name/Internal/flatClassNameList.ts"],"sourcesContent":["import { assertNever } from '../../assert-types'\nimport { NestedClassName } from '../Types'\n\nexport function flatClassNameList(className: NestedClassName): string[] {\n\tif (!className) {\n\t\treturn []\n\t} else if (typeof className === 'string') {\n\t\treturn className.split(' ').filter(Boolean)\n\t} else if (Array.isArray(className)) {\n\t\treturn className.flatMap(flatClassNameList)\n\t} else {\n\t\tif (import.meta.env.DEV) {\n\t\t\tconsole.error(`Unexpected className: ${JSON.stringify(className)}`)\n\t\t}\n\n\t\tassertNever(className)\n\t}\n}\n"],"names":[],"mappings":";AAGO,SAAS,kBAAkB,WAAsC;AACvE,MAAI,CAAC,WAAW;AACf,WAAO;EAAC,WACE,OAAO,cAAc,UAAU;AACzC,WAAO,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EAChC,WAAA,MAAM,QAAQ,SAAS,GAAG;AAC7B,WAAA,UAAU,QAAQ,iBAAiB;AAAA,EAAA,OACpC;AAKN,gBAAqB;AAAA,EACtB;AACD;"}
@@ -1,18 +0,0 @@
1
- import { useContext } from "react";
2
- import { GlobalClassNamePrefixContext } from "./GlobalClassNamePrefixContext.js";
3
- import { deduplicateClassName } from "./Internal/deduplicateClassName.js";
4
- import { flatClassNameList } from "./Internal/flatClassNameList.js";
5
- const useClassName = (componentClassName, additionalClassName = null, prefixOverride) => {
6
- const contextPrefix = useContext(GlobalClassNamePrefixContext);
7
- const classNamePrefix = prefixOverride === null || prefixOverride === "" ? "" : prefixOverride || contextPrefix;
8
- const componentClassNameList = flatClassNameList(componentClassName).map(
9
- (componentClassName2) => `${classNamePrefix}${componentClassName2}`
10
- );
11
- return deduplicateClassName(componentClassNameList.concat(
12
- flatClassNameList(additionalClassName)
13
- )).join(" ");
14
- };
15
- export {
16
- useClassName
17
- };
18
- //# sourceMappingURL=useClassName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClassName.js","sources":["../../../src/class-name/useClassName.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'\nimport { deduplicateClassName } from './Internal/deduplicateClassName'\nimport { flatClassNameList } from './Internal/flatClassNameList'\nimport { NestedClassName } from './Types'\n\n/**\n * Prefixes leaf component class name\n *\n * @param componentClassName - Component class name.\n * @param additionalClassName - Additional class name.\n * @returns Prefixed component class name.\n */\nexport const useClassName = (\n\tcomponentClassName: NestedClassName,\n\tadditionalClassName: NestedClassName = null,\n\tprefixOverride?: string | null | undefined,\n) => {\n\tconst contextPrefix = useContext(GlobalClassNamePrefixContext)\n\tconst classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix\n\n\tconst componentClassNameList: string[] = flatClassNameList(componentClassName).map(\n\t\tcomponentClassName => `${classNamePrefix}${componentClassName}`,\n\t)\n\n\treturn deduplicateClassName(componentClassNameList.concat(\n\t\tflatClassNameList(additionalClassName),\n\t)).join(' ')\n}\n"],"names":["componentClassName"],"mappings":";;;;AAaO,MAAM,eAAe,CAC3B,oBACA,sBAAuC,MACvC,mBACI;AACE,QAAA,gBAAgB,WAAW,4BAA4B;AAC7D,QAAM,kBAA0B,mBAAmB,QAAQ,mBAAmB,KAAK,KAAK,kBAAkB;AAEpG,QAAA,yBAAmC,kBAAkB,kBAAkB,EAAE;AAAA,IAC9E,CAAAA,wBAAsB,GAAG,kBAAkBA;AAAAA,EAAA;AAG5C,SAAO,qBAAqB,uBAAuB;AAAA,IAClD,kBAAkB,mBAAmB;AAAA,EAAA,CACrC,EAAE,KAAK,GAAG;AACZ;"}
@@ -1,21 +0,0 @@
1
- import { useContext } from "react";
2
- import { GlobalClassNamePrefixContext } from "./GlobalClassNamePrefixContext.js";
3
- import { deduplicateClassName } from "./Internal/deduplicateClassName.js";
4
- import { flatClassNameList } from "./Internal/flatClassNameList.js";
5
- function useClassNameFactory(componentClassName, glue = "-", prefixOverride) {
6
- const contextPrefix = useContext(GlobalClassNamePrefixContext);
7
- const classNamePrefix = prefixOverride === null || prefixOverride === "" ? "" : prefixOverride || contextPrefix;
8
- const componentClassNameList = flatClassNameList(componentClassName).map(
9
- (componentClassName2) => `${classNamePrefix}${componentClassName2}`
10
- );
11
- return function componentClassNameFor(suffix = null, additionalClassName = null) {
12
- const classNameSuffix = !suffix ? "" : suffix || contextPrefix;
13
- return deduplicateClassName((classNameSuffix ? classNameSuffix.match(/^[a-zA-Z0-9]/) ? componentClassNameList.map((componentClassName2) => `${componentClassName2}${glue}${classNameSuffix}`) : componentClassNameList.map((componentClassName2) => `${componentClassName2}${classNameSuffix}`) : componentClassNameList).concat(
14
- flatClassNameList(additionalClassName)
15
- )).join(" ");
16
- };
17
- }
18
- export {
19
- useClassNameFactory
20
- };
21
- //# sourceMappingURL=useClassNameFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClassNameFactory.js","sources":["../../../src/class-name/useClassNameFactory.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'\nimport { deduplicateClassName } from './Internal/deduplicateClassName'\nimport { flatClassNameList } from './Internal/flatClassNameList'\nimport { NestedClassName } from './Types'\n\nexport function useClassNameFactory(componentClassName: NestedClassName, glue: string | null = '-', prefixOverride?: string | null | undefined) {\n\tconst contextPrefix = useContext(GlobalClassNamePrefixContext)\n\tconst classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix\n\n\tconst componentClassNameList: string[] = flatClassNameList(componentClassName).map(\n\t\tcomponentClassName => `${classNamePrefix}${componentClassName}`,\n\t)\n\n\treturn function componentClassNameFor(\n\t\tsuffix: string | null | undefined = null,\n\t\tadditionalClassName: NestedClassName = null,\n\t): string {\n\t\tconst classNameSuffix: string = !suffix ? '' : (suffix || contextPrefix)\n\n\t\treturn deduplicateClassName((classNameSuffix\n\t\t\t? (classNameSuffix.match(/^[a-zA-Z0-9]/)\n\t\t\t\t? componentClassNameList.map(componentClassName => `${componentClassName}${glue}${classNameSuffix}`)\n\t\t\t\t: componentClassNameList.map(componentClassName => `${componentClassName}${classNameSuffix}`)\n\t\t\t)\n\t\t\t: componentClassNameList\n\t\t).concat(\n\t\t\tflatClassNameList(additionalClassName),\n\t\t)).join(' ')\n\t}\n}\n"],"names":["componentClassName"],"mappings":";;;;AAMO,SAAS,oBAAoB,oBAAqC,OAAsB,KAAK,gBAA4C;AACzI,QAAA,gBAAgB,WAAW,4BAA4B;AAC7D,QAAM,kBAA0B,mBAAmB,QAAQ,mBAAmB,KAAK,KAAK,kBAAkB;AAEpG,QAAA,yBAAmC,kBAAkB,kBAAkB,EAAE;AAAA,IAC9E,CAAAA,wBAAsB,GAAG,kBAAkBA;AAAAA,EAAA;AAG5C,SAAO,SAAS,sBACf,SAAoC,MACpC,sBAAuC,MAC9B;AACT,UAAM,kBAA0B,CAAC,SAAS,KAAM,UAAU;AAEnD,WAAA,sBAAsB,kBACzB,gBAAgB,MAAM,cAAc,IACpC,uBAAuB,IAAI,CAAAA,wBAAsB,GAAGA,sBAAqB,OAAO,iBAAiB,IACjG,uBAAuB,IAAI,CAAAA,wBAAsB,GAAGA,sBAAqB,iBAAiB,IAE3F,wBACD;AAAA,MACD,kBAAkB,mBAAmB;AAAA,IAAA,CACrC,EAAE,KAAK,GAAG;AAAA,EAAA;AAEb;"}
@@ -1,6 +0,0 @@
1
- import { createContext } from "react";
2
- const GlobalClassNamePrefixContext = createContext("cui-");
3
- export {
4
- GlobalClassNamePrefixContext
5
- };
6
- //# sourceMappingURL=GlobalClassNamePrefixContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalClassNamePrefixContext.js","sources":["../../../src/class-name/GlobalClassNamePrefixContext.ts"],"sourcesContent":["import { createContext } from 'react'\n\nexport const GlobalClassNamePrefixContext = createContext<string>('cui-')\n"],"names":[],"mappings":";AAEa,MAAA,+BAA+B,cAAsB,MAAM;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deduplicateClassName.js","sources":["../../../../src/class-name/Internal/deduplicateClassName.ts"],"sourcesContent":["export function deduplicateClassName(classNameArray: string[]): string[] {\n\treturn [...new Set(classNameArray)]\n}\n"],"names":[],"mappings":"AAAO,SAAS,qBAAqB,gBAAoC;AACxE,SAAO,CAAC,GAAG,IAAI,IAAI,cAAc,CAAC;AACnC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatClassNameList.js","sources":["../../../../src/class-name/Internal/flatClassNameList.ts"],"sourcesContent":["import { assertNever } from '../../assert-types'\nimport { NestedClassName } from '../Types'\n\nexport function flatClassNameList(className: NestedClassName): string[] {\n\tif (!className) {\n\t\treturn []\n\t} else if (typeof className === 'string') {\n\t\treturn className.split(' ').filter(Boolean)\n\t} else if (Array.isArray(className)) {\n\t\treturn className.flatMap(flatClassNameList)\n\t} else {\n\t\tif (import.meta.env.DEV) {\n\t\t\tconsole.error(`Unexpected className: ${JSON.stringify(className)}`)\n\t\t}\n\n\t\tassertNever(className)\n\t}\n}\n"],"names":[],"mappings":";AAGO,SAAS,kBAAkB,WAAsC;AACvE,MAAI,CAAC,WAAW;AACf,WAAO;EAAC,WACE,OAAO,cAAc,UAAU;AACzC,WAAO,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EAChC,WAAA,MAAM,QAAQ,SAAS,GAAG;AAC7B,WAAA,UAAU,QAAQ,iBAAiB;AAAA,EAAA,OACpC;AAKN,gBAAqB;AAAA,EACtB;AACD;"}
@@ -1,18 +0,0 @@
1
- import { useContext } from "react";
2
- import { GlobalClassNamePrefixContext } from "./GlobalClassNamePrefixContext.js";
3
- import { deduplicateClassName } from "./Internal/deduplicateClassName.js";
4
- import { flatClassNameList } from "./Internal/flatClassNameList.js";
5
- const useClassName = (componentClassName, additionalClassName = null, prefixOverride) => {
6
- const contextPrefix = useContext(GlobalClassNamePrefixContext);
7
- const classNamePrefix = prefixOverride === null || prefixOverride === "" ? "" : prefixOverride || contextPrefix;
8
- const componentClassNameList = flatClassNameList(componentClassName).map(
9
- (componentClassName2) => `${classNamePrefix}${componentClassName2}`
10
- );
11
- return deduplicateClassName(componentClassNameList.concat(
12
- flatClassNameList(additionalClassName)
13
- )).join(" ");
14
- };
15
- export {
16
- useClassName
17
- };
18
- //# sourceMappingURL=useClassName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClassName.js","sources":["../../../src/class-name/useClassName.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'\nimport { deduplicateClassName } from './Internal/deduplicateClassName'\nimport { flatClassNameList } from './Internal/flatClassNameList'\nimport { NestedClassName } from './Types'\n\n/**\n * Prefixes leaf component class name\n *\n * @param componentClassName - Component class name.\n * @param additionalClassName - Additional class name.\n * @returns Prefixed component class name.\n */\nexport const useClassName = (\n\tcomponentClassName: NestedClassName,\n\tadditionalClassName: NestedClassName = null,\n\tprefixOverride?: string | null | undefined,\n) => {\n\tconst contextPrefix = useContext(GlobalClassNamePrefixContext)\n\tconst classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix\n\n\tconst componentClassNameList: string[] = flatClassNameList(componentClassName).map(\n\t\tcomponentClassName => `${classNamePrefix}${componentClassName}`,\n\t)\n\n\treturn deduplicateClassName(componentClassNameList.concat(\n\t\tflatClassNameList(additionalClassName),\n\t)).join(' ')\n}\n"],"names":["componentClassName"],"mappings":";;;;AAaO,MAAM,eAAe,CAC3B,oBACA,sBAAuC,MACvC,mBACI;AACE,QAAA,gBAAgB,WAAW,4BAA4B;AAC7D,QAAM,kBAA0B,mBAAmB,QAAQ,mBAAmB,KAAK,KAAK,kBAAkB;AAEpG,QAAA,yBAAmC,kBAAkB,kBAAkB,EAAE;AAAA,IAC9E,CAAAA,wBAAsB,GAAG,kBAAkBA;AAAAA,EAAA;AAG5C,SAAO,qBAAqB,uBAAuB;AAAA,IAClD,kBAAkB,mBAAmB;AAAA,EAAA,CACrC,EAAE,KAAK,GAAG;AACZ;"}
@@ -1,21 +0,0 @@
1
- import { useContext } from "react";
2
- import { GlobalClassNamePrefixContext } from "./GlobalClassNamePrefixContext.js";
3
- import { deduplicateClassName } from "./Internal/deduplicateClassName.js";
4
- import { flatClassNameList } from "./Internal/flatClassNameList.js";
5
- function useClassNameFactory(componentClassName, glue = "-", prefixOverride) {
6
- const contextPrefix = useContext(GlobalClassNamePrefixContext);
7
- const classNamePrefix = prefixOverride === null || prefixOverride === "" ? "" : prefixOverride || contextPrefix;
8
- const componentClassNameList = flatClassNameList(componentClassName).map(
9
- (componentClassName2) => `${classNamePrefix}${componentClassName2}`
10
- );
11
- return function componentClassNameFor(suffix = null, additionalClassName = null) {
12
- const classNameSuffix = !suffix ? "" : suffix || contextPrefix;
13
- return deduplicateClassName((classNameSuffix ? classNameSuffix.match(/^[a-zA-Z0-9]/) ? componentClassNameList.map((componentClassName2) => `${componentClassName2}${glue}${classNameSuffix}`) : componentClassNameList.map((componentClassName2) => `${componentClassName2}${classNameSuffix}`) : componentClassNameList).concat(
14
- flatClassNameList(additionalClassName)
15
- )).join(" ");
16
- };
17
- }
18
- export {
19
- useClassNameFactory
20
- };
21
- //# sourceMappingURL=useClassNameFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClassNameFactory.js","sources":["../../../src/class-name/useClassNameFactory.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'\nimport { deduplicateClassName } from './Internal/deduplicateClassName'\nimport { flatClassNameList } from './Internal/flatClassNameList'\nimport { NestedClassName } from './Types'\n\nexport function useClassNameFactory(componentClassName: NestedClassName, glue: string | null = '-', prefixOverride?: string | null | undefined) {\n\tconst contextPrefix = useContext(GlobalClassNamePrefixContext)\n\tconst classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix\n\n\tconst componentClassNameList: string[] = flatClassNameList(componentClassName).map(\n\t\tcomponentClassName => `${classNamePrefix}${componentClassName}`,\n\t)\n\n\treturn function componentClassNameFor(\n\t\tsuffix: string | null | undefined = null,\n\t\tadditionalClassName: NestedClassName = null,\n\t): string {\n\t\tconst classNameSuffix: string = !suffix ? '' : (suffix || contextPrefix)\n\n\t\treturn deduplicateClassName((classNameSuffix\n\t\t\t? (classNameSuffix.match(/^[a-zA-Z0-9]/)\n\t\t\t\t? componentClassNameList.map(componentClassName => `${componentClassName}${glue}${classNameSuffix}`)\n\t\t\t\t: componentClassNameList.map(componentClassName => `${componentClassName}${classNameSuffix}`)\n\t\t\t)\n\t\t\t: componentClassNameList\n\t\t).concat(\n\t\t\tflatClassNameList(additionalClassName),\n\t\t)).join(' ')\n\t}\n}\n"],"names":["componentClassName"],"mappings":";;;;AAMO,SAAS,oBAAoB,oBAAqC,OAAsB,KAAK,gBAA4C;AACzI,QAAA,gBAAgB,WAAW,4BAA4B;AAC7D,QAAM,kBAA0B,mBAAmB,QAAQ,mBAAmB,KAAK,KAAK,kBAAkB;AAEpG,QAAA,yBAAmC,kBAAkB,kBAAkB,EAAE;AAAA,IAC9E,CAAAA,wBAAsB,GAAG,kBAAkBA;AAAAA,EAAA;AAG5C,SAAO,SAAS,sBACf,SAAoC,MACpC,sBAAuC,MAC9B;AACT,UAAM,kBAA0B,CAAC,SAAS,KAAM,UAAU;AAEnD,WAAA,sBAAsB,kBACzB,gBAAgB,MAAM,cAAc,IACpC,uBAAuB,IAAI,CAAAA,wBAAsB,GAAGA,sBAAqB,OAAO,iBAAiB,IACjG,uBAAuB,IAAI,CAAAA,wBAAsB,GAAGA,sBAAqB,iBAAiB,IAE3F,wBACD;AAAA,MACD,kBAAkB,mBAAmB;AAAA,IAAA,CACrC,EAAE,KAAK,GAAG;AAAA,EAAA;AAEb;"}
@@ -1,2 +0,0 @@
1
- export declare const GlobalClassNamePrefixContext: import("react").Context<string>;
2
- //# sourceMappingURL=GlobalClassNamePrefixContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalClassNamePrefixContext.d.ts","sourceRoot":"","sources":["../../../src/class-name/GlobalClassNamePrefixContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,iCAAgC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deduplicateClassName.d.ts","sourceRoot":"","sources":["../../../../src/class-name/Internal/deduplicateClassName.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEvE"}
@@ -1,3 +0,0 @@
1
- import { NestedClassName } from '../Types';
2
- export declare function flatClassNameList(className: NestedClassName): string[];
3
- //# sourceMappingURL=flatClassNameList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatClassNameList.d.ts","sourceRoot":"","sources":["../../../../src/class-name/Internal/flatClassNameList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,EAAE,CActE"}
@@ -1,10 +0,0 @@
1
- import { PropsWithChildren } from 'react';
2
- export type NestedClassName = string | false | null | undefined | (string | false | null | undefined)[] | NestedClassName[];
3
- export type ClassNameStateMap = {
4
- [key: string]: string | number | boolean | null | undefined;
5
- };
6
- export type ComponentClassNameProps = PropsWithChildren<{
7
- className?: NestedClassName;
8
- componentClassName?: string | string[];
9
- }>;
10
- //# sourceMappingURL=Types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/class-name/Types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,eAAe,EAAE,CAAA;AAC3H,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,CAAA;AAE/F,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACvC,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- import { NestedClassName } from './Types';
2
- /**
3
- * Prefixes leaf component class name
4
- *
5
- * @param componentClassName - Component class name.
6
- * @param additionalClassName - Additional class name.
7
- * @returns Prefixed component class name.
8
- */
9
- export declare const useClassName: (componentClassName: NestedClassName, additionalClassName?: NestedClassName, prefixOverride?: string | null | undefined) => string;
10
- //# sourceMappingURL=useClassName.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClassName.d.ts","sourceRoot":"","sources":["../../../src/class-name/useClassName.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,uBACJ,eAAe,wBACd,eAAe,mBACnB,MAAM,GAAG,IAAI,GAAG,SAAS,WAY1C,CAAA"}
@@ -1,3 +0,0 @@
1
- import { NestedClassName } from './Types';
2
- export declare function useClassNameFactory(componentClassName: NestedClassName, glue?: string | null, prefixOverride?: string | null | undefined): (suffix?: string | null | undefined, additionalClassName?: NestedClassName) => string;
3
- //# sourceMappingURL=useClassNameFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClassNameFactory.d.ts","sourceRoot":"","sources":["../../../src/class-name/useClassNameFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,GAAE,MAAM,GAAG,IAAU,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,aASpI,MAAM,GAAG,IAAI,GAAG,SAAS,wBACZ,eAAe,KAClC,MAAM,CAaT"}
@@ -1,3 +0,0 @@
1
- import { createContext } from 'react'
2
-
3
- export const GlobalClassNamePrefixContext = createContext<string>('cui-')
@@ -1,9 +0,0 @@
1
- import { PropsWithChildren } from 'react'
2
-
3
- export type NestedClassName = string | false | null | undefined | (string | false | null | undefined)[] | NestedClassName[]
4
- export type ClassNameStateMap = { [key: string]: string | number | boolean | null | undefined }
5
-
6
- export type ComponentClassNameProps = PropsWithChildren<{
7
- className?: NestedClassName;
8
- componentClassName?: string | string[];
9
- }>
@@ -1,29 +0,0 @@
1
- import { useContext } from 'react'
2
- import { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'
3
- import { deduplicateClassName } from './Internal/deduplicateClassName'
4
- import { flatClassNameList } from './Internal/flatClassNameList'
5
- import { NestedClassName } from './Types'
6
-
7
- /**
8
- * Prefixes leaf component class name
9
- *
10
- * @param componentClassName - Component class name.
11
- * @param additionalClassName - Additional class name.
12
- * @returns Prefixed component class name.
13
- */
14
- export const useClassName = (
15
- componentClassName: NestedClassName,
16
- additionalClassName: NestedClassName = null,
17
- prefixOverride?: string | null | undefined,
18
- ) => {
19
- const contextPrefix = useContext(GlobalClassNamePrefixContext)
20
- const classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix
21
-
22
- const componentClassNameList: string[] = flatClassNameList(componentClassName).map(
23
- componentClassName => `${classNamePrefix}${componentClassName}`,
24
- )
25
-
26
- return deduplicateClassName(componentClassNameList.concat(
27
- flatClassNameList(additionalClassName),
28
- )).join(' ')
29
- }
@@ -1,31 +0,0 @@
1
- import { useContext } from 'react'
2
- import { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'
3
- import { deduplicateClassName } from './Internal/deduplicateClassName'
4
- import { flatClassNameList } from './Internal/flatClassNameList'
5
- import { NestedClassName } from './Types'
6
-
7
- export function useClassNameFactory(componentClassName: NestedClassName, glue: string | null = '-', prefixOverride?: string | null | undefined) {
8
- const contextPrefix = useContext(GlobalClassNamePrefixContext)
9
- const classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix
10
-
11
- const componentClassNameList: string[] = flatClassNameList(componentClassName).map(
12
- componentClassName => `${classNamePrefix}${componentClassName}`,
13
- )
14
-
15
- return function componentClassNameFor(
16
- suffix: string | null | undefined = null,
17
- additionalClassName: NestedClassName = null,
18
- ): string {
19
- const classNameSuffix: string = !suffix ? '' : (suffix || contextPrefix)
20
-
21
- return deduplicateClassName((classNameSuffix
22
- ? (classNameSuffix.match(/^[a-zA-Z0-9]/)
23
- ? componentClassNameList.map(componentClassName => `${componentClassName}${glue}${classNameSuffix}`)
24
- : componentClassNameList.map(componentClassName => `${componentClassName}${classNameSuffix}`)
25
- )
26
- : componentClassNameList
27
- ).concat(
28
- flatClassNameList(additionalClassName),
29
- )).join(' ')
30
- }
31
- }