@contember/react-utils 1.2.0-beta.3 → 1.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/development/context/createOptionalContextFactory.js +13 -0
  2. package/dist/development/context/createOptionalContextFactory.js.map +1 -0
  3. package/dist/development/debug-context/Context.js +3 -3
  4. package/dist/development/debug-context/Context.js.map +1 -1
  5. package/dist/development/hooks/useAddClassNameDuringResize.js +3 -0
  6. package/dist/development/hooks/useAddClassNameDuringResize.js.map +1 -1
  7. package/dist/development/hooks/useContainerWidth.js +14 -0
  8. package/dist/development/hooks/useContainerWidth.js.map +1 -0
  9. package/dist/development/hooks/useDocumentTitle.js +22 -0
  10. package/dist/development/hooks/useDocumentTitle.js.map +1 -0
  11. package/dist/development/hooks/useExpectSameValueReference.js +7 -4
  12. package/dist/development/hooks/useExpectSameValueReference.js.map +1 -1
  13. package/dist/development/index.js +23 -0
  14. package/dist/development/index.js.map +1 -1
  15. package/dist/development/theming/ColorSchemeProvider.js +18 -0
  16. package/dist/development/theming/ColorSchemeProvider.js.map +1 -0
  17. package/dist/development/theming/GlobalClassNamePrefixContext.js +6 -0
  18. package/dist/development/theming/GlobalClassNamePrefixContext.js.map +1 -0
  19. package/dist/development/theming/contexts.js +12 -0
  20. package/dist/development/theming/contexts.js.map +1 -0
  21. package/dist/development/theming/useClassName.js +17 -0
  22. package/dist/development/theming/useClassName.js.map +1 -0
  23. package/dist/development/theming/useClassNameFactory.js +20 -0
  24. package/dist/development/theming/useClassNameFactory.js.map +1 -0
  25. package/dist/development/theming/useThemedClassName.js +17 -0
  26. package/dist/development/theming/useThemedClassName.js.map +1 -0
  27. package/dist/development/theming/useThemedClassNameFactory.js +27 -0
  28. package/dist/development/theming/useThemedClassNameFactory.js.map +1 -0
  29. package/dist/production/context/createOptionalContextFactory.js +13 -0
  30. package/dist/production/context/createOptionalContextFactory.js.map +1 -0
  31. package/dist/production/debug-context/Context.js +3 -3
  32. package/dist/production/debug-context/Context.js.map +1 -1
  33. package/dist/production/hooks/useAddClassNameDuringResize.js +3 -0
  34. package/dist/production/hooks/useAddClassNameDuringResize.js.map +1 -1
  35. package/dist/production/hooks/useContainerWidth.js +14 -0
  36. package/dist/production/hooks/useContainerWidth.js.map +1 -0
  37. package/dist/production/hooks/useDocumentTitle.js +22 -0
  38. package/dist/production/hooks/useDocumentTitle.js.map +1 -0
  39. package/dist/production/hooks/useExpectSameValueReference.js.map +1 -1
  40. package/dist/production/index.js +23 -0
  41. package/dist/production/index.js.map +1 -1
  42. package/dist/production/theming/ColorSchemeProvider.js +14 -0
  43. package/dist/production/theming/ColorSchemeProvider.js.map +1 -0
  44. package/dist/production/theming/GlobalClassNamePrefixContext.js +6 -0
  45. package/dist/production/theming/GlobalClassNamePrefixContext.js.map +1 -0
  46. package/dist/production/theming/contexts.js +12 -0
  47. package/dist/production/theming/contexts.js.map +1 -0
  48. package/dist/production/theming/useClassName.js +17 -0
  49. package/dist/production/theming/useClassName.js.map +1 -0
  50. package/dist/production/theming/useClassNameFactory.js +20 -0
  51. package/dist/production/theming/useClassNameFactory.js.map +1 -0
  52. package/dist/production/theming/useThemedClassName.js +17 -0
  53. package/dist/production/theming/useThemedClassName.js.map +1 -0
  54. package/dist/production/theming/useThemedClassNameFactory.js +27 -0
  55. package/dist/production/theming/useThemedClassNameFactory.js.map +1 -0
  56. package/dist/types/context/createOptionalContextFactory.d.ts +3 -0
  57. package/dist/types/context/createOptionalContextFactory.d.ts.map +1 -0
  58. package/dist/types/context/index.d.ts +1 -0
  59. package/dist/types/context/index.d.ts.map +1 -1
  60. package/dist/types/debug-context/Context.d.ts +2 -2
  61. package/dist/types/debug-context/Context.d.ts.map +1 -1
  62. package/dist/types/hooks/index.d.ts +2 -0
  63. package/dist/types/hooks/index.d.ts.map +1 -1
  64. package/dist/types/hooks/useAddClassNameDuringResize.d.ts.map +1 -1
  65. package/dist/types/hooks/useContainerWidth.d.ts +4 -0
  66. package/dist/types/hooks/useContainerWidth.d.ts.map +1 -0
  67. package/dist/types/hooks/useDocumentTitle.d.ts +2 -0
  68. package/dist/types/hooks/useDocumentTitle.d.ts.map +1 -0
  69. package/dist/types/hooks/useExpectSameValueReference.d.ts +22 -0
  70. package/dist/types/hooks/useExpectSameValueReference.d.ts.map +1 -1
  71. package/dist/types/index.d.ts +1 -0
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/theming/ColorSchemeProvider.d.ts +7 -0
  74. package/dist/types/theming/ColorSchemeProvider.d.ts.map +1 -0
  75. package/dist/types/theming/GlobalClassNamePrefixContext.d.ts +2 -0
  76. package/dist/types/theming/GlobalClassNamePrefixContext.d.ts.map +1 -0
  77. package/dist/types/theming/contexts.d.ts +12 -0
  78. package/dist/types/theming/contexts.d.ts.map +1 -0
  79. package/dist/types/theming/index.d.ts +8 -0
  80. package/dist/types/theming/index.d.ts.map +1 -0
  81. package/dist/types/theming/useClassName.d.ts +11 -0
  82. package/dist/types/theming/useClassName.d.ts.map +1 -0
  83. package/dist/types/theming/useClassNameFactory.d.ts +17 -0
  84. package/dist/types/theming/useClassNameFactory.d.ts.map +1 -0
  85. package/dist/types/theming/useThemedClassName.d.ts +39 -0
  86. package/dist/types/theming/useThemedClassName.d.ts.map +1 -0
  87. package/dist/types/theming/useThemedClassNameFactory.d.ts +3 -0
  88. package/dist/types/theming/useThemedClassNameFactory.d.ts.map +1 -0
  89. package/dist/types/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +2 -2
  91. package/src/context/createOptionalContextFactory.ts +13 -0
  92. package/src/context/index.ts +1 -0
  93. package/src/debug-context/Context.tsx +5 -5
  94. package/src/hooks/index.ts +2 -0
  95. package/src/hooks/useAddClassNameDuringResize.ts +4 -0
  96. package/src/hooks/useContainerWidth.ts +13 -0
  97. package/src/hooks/useDocumentTitle.ts +21 -0
  98. package/src/hooks/useExpectSameValueReference.ts +27 -2
  99. package/src/index.ts +1 -0
  100. package/src/theming/ColorSchemeProvider.tsx +19 -0
  101. package/src/theming/GlobalClassNamePrefixContext.ts +3 -0
  102. package/src/theming/contexts.ts +18 -0
  103. package/src/theming/index.ts +7 -0
  104. package/src/theming/useClassName.ts +28 -0
  105. package/src/theming/useClassNameFactory.ts +47 -0
  106. package/src/theming/useThemedClassName.ts +54 -0
  107. package/src/theming/useThemedClassNameFactory.ts +41 -0
@@ -0,0 +1,41 @@
1
+ import { NestedClassName, colorSchemeClassName, deduplicateClassName, filterThemedClassName, flatClassNameList } from '@contember/utilities'
2
+ import { useContext } from 'react'
3
+ import { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'
4
+ import { useColorScheme } from './contexts'
5
+
6
+ export function useThemedClassNameFactory(
7
+ componentClassName: NestedClassName,
8
+ glue: string | null = '-',
9
+ prefixOverride?: string | null | undefined,
10
+ ) {
11
+ const contextPrefix = useContext(GlobalClassNamePrefixContext)
12
+ const classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix
13
+
14
+ const componentClassNameList: string[] = flatClassNameList(componentClassName).map(
15
+ componentClassName => `${classNamePrefix}${componentClassName}`,
16
+ )
17
+
18
+ const colorScheme = colorSchemeClassName(useColorScheme())
19
+
20
+ return function componentClassNameFor(
21
+ suffix: string | null | undefined = null,
22
+ additionalClassName: NestedClassName = null,
23
+ ): string {
24
+ const classNameSuffix: string = suffix ?? ''
25
+
26
+ return deduplicateClassName((classNameSuffix
27
+ ? (classNameSuffix.match(/^[a-zA-Z0-9]/)
28
+ ? componentClassNameList.map(componentClassName => `${componentClassName}${glue}${classNameSuffix}`)
29
+ : componentClassNameList.map(componentClassName => `${componentClassName}${classNameSuffix}`)
30
+ )
31
+ : componentClassNameList
32
+ ).concat(
33
+ flatClassNameList(
34
+ filterThemedClassName(
35
+ additionalClassName,
36
+ colorScheme,
37
+ ),
38
+ ),
39
+ )).join(' ')
40
+ }
41
+ }