@contember/utilities 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 (215) hide show
  1. package/dist/development/assert-types/Predicates.js +20 -4
  2. package/dist/development/assert-types/Predicates.js.map +1 -1
  3. package/dist/development/assert-types/assert.js.map +1 -1
  4. package/dist/development/class-name/colorSchemeClassName.js +16 -0
  5. package/dist/development/class-name/colorSchemeClassName.js.map +1 -0
  6. package/dist/development/class-name/constants.js +7 -0
  7. package/dist/development/class-name/constants.js.map +1 -0
  8. package/dist/development/class-name/deduplicateClassName.js.map +1 -0
  9. package/dist/development/class-name/filterThemedClassName.js +68 -0
  10. package/dist/development/class-name/filterThemedClassName.js.map +1 -0
  11. package/dist/development/class-name/{Internal/flatClassNameList.js → flatClassNameList.js} +1 -1
  12. package/dist/development/class-name/flatClassNameList.js.map +1 -0
  13. package/dist/development/class-name/listClassName.js +2 -2
  14. package/dist/development/class-name/listClassName.js.map +1 -1
  15. package/dist/development/class-name/stateClassName.js +3 -6
  16. package/dist/development/class-name/stateClassName.js.map +1 -1
  17. package/dist/development/class-name/themeClassName.js +18 -0
  18. package/dist/development/class-name/themeClassName.js.map +1 -0
  19. package/dist/development/deprecate/currentOrDeprecated.js +20 -0
  20. package/dist/development/deprecate/currentOrDeprecated.js.map +1 -0
  21. package/dist/development/deprecate/deprecate.js +6 -0
  22. package/dist/development/deprecate/deprecate.js.map +1 -0
  23. package/dist/development/dom/stateDataAttributes.js +11 -0
  24. package/dist/development/dom/stateDataAttributes.js.map +1 -0
  25. package/dist/development/dom/svgSizeProps.js.map +1 -1
  26. package/dist/development/functional/omit.js +15 -0
  27. package/dist/development/functional/omit.js.map +1 -0
  28. package/dist/development/functional/pick.js.map +1 -1
  29. package/dist/development/index.js +31 -8
  30. package/dist/development/index.js.map +1 -1
  31. package/dist/development/string-utilities/kebabCase.js +8 -0
  32. package/dist/development/string-utilities/kebabCase.js.map +1 -0
  33. package/dist/production/assert-types/Predicates.js +20 -4
  34. package/dist/production/assert-types/Predicates.js.map +1 -1
  35. package/dist/production/assert-types/assert.js.map +1 -1
  36. package/dist/production/class-name/colorSchemeClassName.js +16 -0
  37. package/dist/production/class-name/colorSchemeClassName.js.map +1 -0
  38. package/dist/production/class-name/constants.js +7 -0
  39. package/dist/production/class-name/constants.js.map +1 -0
  40. package/dist/production/class-name/deduplicateClassName.js.map +1 -0
  41. package/dist/production/class-name/filterThemedClassName.js +68 -0
  42. package/dist/production/class-name/filterThemedClassName.js.map +1 -0
  43. package/dist/production/class-name/{Internal/flatClassNameList.js → flatClassNameList.js} +1 -1
  44. package/dist/production/class-name/flatClassNameList.js.map +1 -0
  45. package/dist/production/class-name/listClassName.js +2 -2
  46. package/dist/production/class-name/listClassName.js.map +1 -1
  47. package/dist/production/class-name/stateClassName.js +3 -6
  48. package/dist/production/class-name/stateClassName.js.map +1 -1
  49. package/dist/production/class-name/themeClassName.js +18 -0
  50. package/dist/production/class-name/themeClassName.js.map +1 -0
  51. package/dist/production/deprecate/currentOrDeprecated.js +20 -0
  52. package/dist/production/deprecate/currentOrDeprecated.js.map +1 -0
  53. package/dist/production/deprecate/deprecate.js +6 -0
  54. package/dist/production/deprecate/deprecate.js.map +1 -0
  55. package/dist/production/dom/stateDataAttributes.js +11 -0
  56. package/dist/production/dom/stateDataAttributes.js.map +1 -0
  57. package/dist/production/dom/svgSizeProps.js.map +1 -1
  58. package/dist/production/functional/omit.js +15 -0
  59. package/dist/production/functional/omit.js.map +1 -0
  60. package/dist/production/functional/pick.js.map +1 -1
  61. package/dist/production/index.js +31 -8
  62. package/dist/production/index.js.map +1 -1
  63. package/dist/production/string-utilities/kebabCase.js +8 -0
  64. package/dist/production/string-utilities/kebabCase.js.map +1 -0
  65. package/dist/types/assert-types/Predicates.d.ts +6 -2
  66. package/dist/types/assert-types/Predicates.d.ts.map +1 -1
  67. package/dist/types/assert-types/assert.d.ts +2 -1
  68. package/dist/types/assert-types/assert.d.ts.map +1 -1
  69. package/dist/types/assert-types/index.d.ts +1 -0
  70. package/dist/types/assert-types/index.d.ts.map +1 -1
  71. package/dist/types/assert-types/types.d.ts +5 -0
  72. package/dist/types/assert-types/types.d.ts.map +1 -0
  73. package/dist/types/class-name/colorSchemeClassName.d.ts +35 -0
  74. package/dist/types/class-name/colorSchemeClassName.d.ts.map +1 -0
  75. package/dist/types/class-name/constants.d.ts +42 -0
  76. package/dist/types/class-name/constants.d.ts.map +1 -0
  77. package/dist/types/class-name/deduplicateClassName.d.ts.map +1 -0
  78. package/dist/types/class-name/filterThemedClassName.d.ts +7 -0
  79. package/dist/types/class-name/filterThemedClassName.d.ts.map +1 -0
  80. package/dist/types/class-name/flatClassNameList.d.ts +3 -0
  81. package/dist/types/class-name/flatClassNameList.d.ts.map +1 -0
  82. package/dist/types/class-name/index.d.ts +7 -4
  83. package/dist/types/class-name/index.d.ts.map +1 -1
  84. package/dist/types/class-name/stateClassName.d.ts +9 -3
  85. package/dist/types/class-name/stateClassName.d.ts.map +1 -1
  86. package/dist/types/class-name/themeClassName.d.ts +87 -0
  87. package/dist/types/class-name/themeClassName.d.ts.map +1 -0
  88. package/dist/types/class-name/types.d.ts +14 -0
  89. package/dist/types/class-name/types.d.ts.map +1 -0
  90. package/dist/types/deprecate/currentOrDeprecated.d.ts +35 -0
  91. package/dist/types/deprecate/currentOrDeprecated.d.ts.map +1 -0
  92. package/dist/types/deprecate/deprecate.d.ts +19 -0
  93. package/dist/types/deprecate/deprecate.d.ts.map +1 -0
  94. package/dist/types/deprecate/index.d.ts +4 -0
  95. package/dist/types/deprecate/index.d.ts.map +1 -0
  96. package/dist/types/deprecate/types.d.ts +2 -0
  97. package/dist/types/deprecate/types.d.ts.map +1 -0
  98. package/dist/types/dom/index.d.ts +1 -0
  99. package/dist/types/dom/index.d.ts.map +1 -1
  100. package/dist/types/dom/stateDataAttributes.d.ts +4 -0
  101. package/dist/types/dom/stateDataAttributes.d.ts.map +1 -0
  102. package/dist/types/dom/svgSizeProps.d.ts.map +1 -1
  103. package/dist/types/functional/index.d.ts +1 -0
  104. package/dist/types/functional/index.d.ts.map +1 -1
  105. package/dist/types/functional/omit.d.ts +2 -0
  106. package/dist/types/functional/omit.d.ts.map +1 -0
  107. package/dist/types/functional/pick.d.ts +1 -1
  108. package/dist/types/functional/pick.d.ts.map +1 -1
  109. package/dist/types/index.d.ts +2 -1
  110. package/dist/types/index.d.ts.map +1 -1
  111. package/dist/types/string-utilities/index.d.ts +1 -0
  112. package/dist/types/string-utilities/index.d.ts.map +1 -1
  113. package/dist/types/string-utilities/kebabCase.d.ts +2 -0
  114. package/dist/types/string-utilities/kebabCase.d.ts.map +1 -0
  115. package/dist/types/tsconfig.tsbuildinfo +1 -1
  116. package/dist/types/types/DeepPartial.d.ts.map +1 -0
  117. package/dist/types/types/NonNullableRequired.d.ts.map +1 -0
  118. package/dist/types/types/NonOptional.d.ts +8 -0
  119. package/dist/types/types/NonOptional.d.ts.map +1 -0
  120. package/dist/types/types/ObjectKeyValue.d.ts.map +1 -0
  121. package/dist/types/types/PolymorphicRefs.d.ts.map +1 -0
  122. package/dist/types/types/Primitive.d.ts +2 -0
  123. package/dist/types/types/Primitive.d.ts.map +1 -0
  124. package/dist/types/types/RequiredDeepPlainObject.d.ts +4 -0
  125. package/dist/types/types/RequiredDeepPlainObject.d.ts.map +1 -0
  126. package/dist/types/types/Try.d.ts.map +1 -0
  127. package/dist/types/types/TypeofStringLiteral.d.ts +2 -0
  128. package/dist/types/types/TypeofStringLiteral.d.ts.map +1 -0
  129. package/dist/types/types/index.d.ts +11 -0
  130. package/dist/types/types/index.d.ts.map +1 -0
  131. package/package.json +4 -1
  132. package/src/assert-types/Predicates.ts +26 -5
  133. package/src/assert-types/assert.ts +2 -1
  134. package/src/assert-types/index.ts +1 -0
  135. package/src/assert-types/types.ts +5 -0
  136. package/src/class-name/colorSchemeClassName.ts +46 -0
  137. package/src/class-name/constants.ts +43 -0
  138. package/src/class-name/filterThemedClassName.ts +86 -0
  139. package/src/class-name/{Internal/flatClassNameList.ts → flatClassNameList.ts} +2 -2
  140. package/src/class-name/index.ts +7 -4
  141. package/src/class-name/listClassName.ts +2 -2
  142. package/src/class-name/stateClassName.ts +13 -8
  143. package/src/class-name/themeClassName.ts +117 -0
  144. package/src/class-name/types.ts +18 -0
  145. package/src/deprecate/currentOrDeprecated.ts +51 -0
  146. package/src/deprecate/deprecate.ts +31 -0
  147. package/src/deprecate/index.ts +3 -0
  148. package/src/deprecate/types.ts +2 -0
  149. package/src/dom/index.ts +1 -0
  150. package/src/dom/stateDataAttributes.ts +8 -0
  151. package/src/dom/svgSizeProps.ts +0 -2
  152. package/src/functional/index.ts +1 -0
  153. package/src/functional/omit.ts +13 -0
  154. package/src/functional/pick.ts +1 -1
  155. package/src/index.ts +2 -1
  156. package/src/string-utilities/index.ts +1 -0
  157. package/src/string-utilities/kebabCase.ts +5 -0
  158. package/src/types/NonOptional.ts +7 -0
  159. package/src/types/Primitive.ts +1 -0
  160. package/src/types/RequiredDeepPlainObject.ts +3 -0
  161. package/src/types/TypeofStringLiteral.ts +1 -0
  162. package/src/types/index.ts +20 -0
  163. package/dist/development/class-name/GlobalClassNamePrefixContext.js +0 -6
  164. package/dist/development/class-name/GlobalClassNamePrefixContext.js.map +0 -1
  165. package/dist/development/class-name/Internal/deduplicateClassName.js.map +0 -1
  166. package/dist/development/class-name/Internal/flatClassNameList.js.map +0 -1
  167. package/dist/development/class-name/useClassName.js +0 -18
  168. package/dist/development/class-name/useClassName.js.map +0 -1
  169. package/dist/development/class-name/useClassNameFactory.js +0 -21
  170. package/dist/development/class-name/useClassNameFactory.js.map +0 -1
  171. package/dist/production/class-name/GlobalClassNamePrefixContext.js +0 -6
  172. package/dist/production/class-name/GlobalClassNamePrefixContext.js.map +0 -1
  173. package/dist/production/class-name/Internal/deduplicateClassName.js.map +0 -1
  174. package/dist/production/class-name/Internal/flatClassNameList.js.map +0 -1
  175. package/dist/production/class-name/useClassName.js +0 -18
  176. package/dist/production/class-name/useClassName.js.map +0 -1
  177. package/dist/production/class-name/useClassNameFactory.js +0 -21
  178. package/dist/production/class-name/useClassNameFactory.js.map +0 -1
  179. package/dist/types/class-name/GlobalClassNamePrefixContext.d.ts +0 -2
  180. package/dist/types/class-name/GlobalClassNamePrefixContext.d.ts.map +0 -1
  181. package/dist/types/class-name/Internal/deduplicateClassName.d.ts.map +0 -1
  182. package/dist/types/class-name/Internal/flatClassNameList.d.ts +0 -3
  183. package/dist/types/class-name/Internal/flatClassNameList.d.ts.map +0 -1
  184. package/dist/types/class-name/Types.d.ts +0 -5
  185. package/dist/types/class-name/Types.d.ts.map +0 -1
  186. package/dist/types/class-name/useClassName.d.ts +0 -10
  187. package/dist/types/class-name/useClassName.d.ts.map +0 -1
  188. package/dist/types/class-name/useClassNameFactory.d.ts +0 -3
  189. package/dist/types/class-name/useClassNameFactory.d.ts.map +0 -1
  190. package/dist/types/typescript-utilities/DeepPartial.d.ts.map +0 -1
  191. package/dist/types/typescript-utilities/NonNullableRequired.d.ts.map +0 -1
  192. package/dist/types/typescript-utilities/ObjectKeyValue.d.ts.map +0 -1
  193. package/dist/types/typescript-utilities/PolymorphicRefs.d.ts.map +0 -1
  194. package/dist/types/typescript-utilities/Try.d.ts.map +0 -1
  195. package/dist/types/typescript-utilities/index.d.ts +0 -6
  196. package/dist/types/typescript-utilities/index.d.ts.map +0 -1
  197. package/src/class-name/GlobalClassNamePrefixContext.ts +0 -3
  198. package/src/class-name/Types.ts +0 -2
  199. package/src/class-name/useClassName.ts +0 -29
  200. package/src/class-name/useClassNameFactory.ts +0 -31
  201. package/src/typescript-utilities/index.ts +0 -5
  202. /package/dist/development/class-name/{Internal/deduplicateClassName.js → deduplicateClassName.js} +0 -0
  203. /package/dist/production/class-name/{Internal/deduplicateClassName.js → deduplicateClassName.js} +0 -0
  204. /package/dist/types/class-name/{Internal/deduplicateClassName.d.ts → deduplicateClassName.d.ts} +0 -0
  205. /package/dist/types/{typescript-utilities → types}/DeepPartial.d.ts +0 -0
  206. /package/dist/types/{typescript-utilities → types}/NonNullableRequired.d.ts +0 -0
  207. /package/dist/types/{typescript-utilities → types}/ObjectKeyValue.d.ts +0 -0
  208. /package/dist/types/{typescript-utilities → types}/PolymorphicRefs.d.ts +0 -0
  209. /package/dist/types/{typescript-utilities → types}/Try.d.ts +0 -0
  210. /package/src/class-name/{Internal/deduplicateClassName.ts → deduplicateClassName.ts} +0 -0
  211. /package/src/{typescript-utilities → types}/DeepPartial.ts +0 -0
  212. /package/src/{typescript-utilities → types}/NonNullableRequired.ts +0 -0
  213. /package/src/{typescript-utilities → types}/ObjectKeyValue.ts +0 -0
  214. /package/src/{typescript-utilities → types}/PolymorphicRefs.ts +0 -0
  215. /package/src/{typescript-utilities → types}/Try.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../src/class-name/constants.ts"],"sourcesContent":["/**\n * RegExp that matches theme class names\n *\n * @internal\n *\n * If theme is `default` then it will match:\n *\n * - theme-default\n * - theme-default:hover\n * - theme-default:active\n * - theme-default:focus\n * - theme-default-content\n * - theme-default-content:hover\n * - theme-default-content:active\n * - theme-default-content:focus\n * - theme-default-controls\n * - theme-default-controls:hover\n * - theme-default-controls:active\n * - theme-default-controls:focus\n *\n * If theme is `brand-color` then it will match:\n *\n * - theme-brand-color\n * - theme-brand-color:hover\n * - theme-brand-color:active\n * - theme-brand-color:focus\n * - theme-brand-color-content\n * - theme-brand-color-content:hover\n * - theme-brand-color-content:active\n * - theme-brand-color-content:focus\n * - theme-brand-color-controls\n * - theme-brand-color-controls:hover\n * - theme-brand-color-controls:active\n * - theme-brand-color-controls:focus\n */\n\nexport const THEME_CLASS_NAME_REG_EXP = /^theme-(?<name>[\\w-]+?)(?:-(?<scope>content|controls))?(?<state>:[\\w]+(?:[\\w-]+)?)?$/\n\n/**\n * Regular expression for testing if a string is a color scheme CSS class\n * @internal\n */\nexport const COLOR_SCHEME_CLASS_NAME_REG_EXP = /^scheme-(?<colorScheme>[a-z0-9]|[a-z0-9]+[a-z-]+[a-z])$/\n"],"names":[],"mappings":"AAoCO,MAAM,2BAA2B;AAMjC,MAAM,kCAAkC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deduplicateClassName.js","sources":["../../../src/class-name/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;"}
@@ -0,0 +1,68 @@
1
+ import { isColorSchemeClassName } from "./colorSchemeClassName.js";
2
+ import { THEME_CLASS_NAME_REG_EXP } from "./constants.js";
3
+ import { flatClassNameList } from "./flatClassNameList.js";
4
+ import { contentThemeClassName, controlsThemeClassName } from "./themeClassName.js";
5
+ function filterThemedClassName(nestedClassName, defaultColorSchemeContext) {
6
+ const theme = { content: void 0, controls: void 0 };
7
+ const stateThemes = {};
8
+ let colorScheme = void 0;
9
+ const flatClassName = flatClassNameList(nestedClassName).map((className) => {
10
+ if (isColorSchemeClassName(className)) {
11
+ colorScheme = className;
12
+ return void 0;
13
+ }
14
+ const match = className.match(THEME_CLASS_NAME_REG_EXP);
15
+ if (match) {
16
+ const name = match.groups.name;
17
+ const scope = match.groups.scope;
18
+ const state = match.groups.state;
19
+ if (state) {
20
+ stateThemes[state] = stateThemes[state] ?? { content: void 0, controls: void 0 };
21
+ if (!scope) {
22
+ stateThemes[state].content = name;
23
+ stateThemes[state].controls = name;
24
+ } else if (scope === "content") {
25
+ stateThemes[state].content = name;
26
+ } else if (scope === "controls") {
27
+ stateThemes[state].controls = name;
28
+ } else {
29
+ throw new Error(`Unknown theme scope: ${scope}`);
30
+ }
31
+ } else {
32
+ if (!scope) {
33
+ theme.content = name;
34
+ theme.controls = name;
35
+ } else if (scope === "content") {
36
+ theme.content = name;
37
+ } else if (scope === "controls") {
38
+ theme.controls = name;
39
+ } else {
40
+ throw new Error(`Unknown theme scope: ${scope}`);
41
+ }
42
+ }
43
+ return void 0;
44
+ } else {
45
+ return className;
46
+ }
47
+ }).filter(Boolean);
48
+ const themeClassNames = [];
49
+ const content = contentThemeClassName(theme.content);
50
+ const controls = controlsThemeClassName(theme.controls);
51
+ themeClassNames.push(content, controls);
52
+ for (const state in stateThemes) {
53
+ const { content: content2, controls: controls2 } = stateThemes[state];
54
+ const contentClassName = contentThemeClassName(content2, state);
55
+ const controlsClassName = controlsThemeClassName(controls2, state);
56
+ themeClassNames.push(contentClassName, controlsClassName);
57
+ }
58
+ const flatThemedClassName = flatClassNameList(themeClassNames);
59
+ if (flatThemedClassName.length > 0 || colorScheme) {
60
+ return [colorScheme ?? defaultColorSchemeContext, ...flatThemedClassName, ...flatClassName];
61
+ } else {
62
+ return flatClassName;
63
+ }
64
+ }
65
+ export {
66
+ filterThemedClassName
67
+ };
68
+ //# sourceMappingURL=filterThemedClassName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterThemedClassName.js","sources":["../../../src/class-name/filterThemedClassName.ts"],"sourcesContent":["import { KebabCase } from 'type-fest'\nimport { isColorSchemeClassName } from './colorSchemeClassName'\nimport { THEME_CLASS_NAME_REG_EXP } from './constants'\nimport { flatClassNameList } from './flatClassNameList'\nimport { contentThemeClassName, controlsThemeClassName } from './themeClassName'\nimport { ColorSchemeClassName, NestedClassName } from './types'\n\nexport type ThemeConfig = { content: string | undefined, controls: string | undefined }\n\nexport function filterThemedClassName(\n\tnestedClassName: NestedClassName,\n\tdefaultColorSchemeContext: ColorSchemeClassName,\n) {\n\tconst theme: ThemeConfig = { content: undefined, controls: undefined }\n\tconst stateThemes: Record<string, ThemeConfig> = {}\n\tlet colorScheme: ColorSchemeClassName | undefined = undefined\n\n\tconst flatClassName = flatClassNameList(nestedClassName).map(className => {\n\t\tif (isColorSchemeClassName(className)) {\n\t\t\tcolorScheme = className\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst match = className.match(THEME_CLASS_NAME_REG_EXP)\n\n\t\tif (match) {\n\t\t\tconst name = match.groups!.name as KebabCase<string>\n\t\t\tconst scope = match.groups!.scope as KebabCase<string>\n\t\t\tconst state = match.groups!.state as `:${KebabCase<string>}`\n\n\t\t\tif (state) {\n\t\t\t\tstateThemes[state] = stateThemes[state] ?? { content: undefined, controls: undefined }\n\n\t\t\t\tif (!scope) {\n\t\t\t\t\tstateThemes[state].content = name\n\t\t\t\t\tstateThemes[state].controls = name\n\t\t\t\t} else if (scope === 'content') {\n\t\t\t\t\tstateThemes[state].content = name\n\t\t\t\t} else if (scope === 'controls') {\n\t\t\t\t\tstateThemes[state].controls = name\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unknown theme scope: ${scope}`)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!scope) {\n\t\t\t\t\ttheme.content = name\n\t\t\t\t\ttheme.controls = name\n\t\t\t\t} else if (scope === 'content') {\n\t\t\t\t\ttheme.content = name\n\t\t\t\t} else if (scope === 'controls') {\n\t\t\t\t\ttheme.controls = name\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unknown theme scope: ${scope}`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn undefined\n\t\t} else {\n\t\t\treturn className\n\t\t}\n\t}).filter(Boolean) as string[]\n\n\tconst themeClassNames: (string | undefined)[] = []\n\n\tconst content = contentThemeClassName(theme.content)\n\tconst controls = controlsThemeClassName(theme.controls)\n\n\tthemeClassNames.push(content, controls)\n\n\tfor (const state in stateThemes) {\n\t\tconst { content, controls } = stateThemes[state]\n\n\t\tconst contentClassName = contentThemeClassName(content, state as `:${KebabCase<string>}`)\n\t\tconst controlsClassName = controlsThemeClassName(controls, state as `:${KebabCase<string>}`)\n\n\t\tthemeClassNames.push(contentClassName, controlsClassName)\n\t}\n\n\tconst flatThemedClassName = flatClassNameList(themeClassNames)\n\n\tif (flatThemedClassName.length > 0 || colorScheme) {\n\t\treturn [colorScheme ?? defaultColorSchemeContext, ...flatThemedClassName, ...flatClassName]\n\t} else {\n\t\treturn flatClassName\n\t}\n}\n"],"names":["content","controls"],"mappings":";;;;AASgB,SAAA,sBACf,iBACA,2BACC;AACD,QAAM,QAAqB,EAAE,SAAS,QAAW,UAAU;AAC3D,QAAM,cAA2C,CAAA;AACjD,MAAI,cAAgD;AAEpD,QAAM,gBAAgB,kBAAkB,eAAe,EAAE,IAAI,CAAa,cAAA;AACrE,QAAA,uBAAuB,SAAS,GAAG;AACxB,oBAAA;AACP,aAAA;AAAA,IACR;AAEM,UAAA,QAAQ,UAAU,MAAM,wBAAwB;AAEtD,QAAI,OAAO;AACJ,YAAA,OAAO,MAAM,OAAQ;AACrB,YAAA,QAAQ,MAAM,OAAQ;AACtB,YAAA,QAAQ,MAAM,OAAQ;AAE5B,UAAI,OAAO;AACE,oBAAA,KAAK,IAAI,YAAY,KAAK,KAAK,EAAE,SAAS,QAAW,UAAU,OAAU;AAErF,YAAI,CAAC,OAAO;AACC,sBAAA,KAAK,EAAE,UAAU;AACjB,sBAAA,KAAK,EAAE,WAAW;AAAA,QAAA,WACpB,UAAU,WAAW;AACnB,sBAAA,KAAK,EAAE,UAAU;AAAA,QAAA,WACnB,UAAU,YAAY;AACpB,sBAAA,KAAK,EAAE,WAAW;AAAA,QAAA,OACxB;AACA,gBAAA,IAAI,MAAM,wBAAwB,OAAO;AAAA,QAChD;AAAA,MAAA,OACM;AACN,YAAI,CAAC,OAAO;AACX,gBAAM,UAAU;AAChB,gBAAM,WAAW;AAAA,QAAA,WACP,UAAU,WAAW;AAC/B,gBAAM,UAAU;AAAA,QAAA,WACN,UAAU,YAAY;AAChC,gBAAM,WAAW;AAAA,QAAA,OACX;AACA,gBAAA,IAAI,MAAM,wBAAwB,OAAO;AAAA,QAChD;AAAA,MACD;AAEO,aAAA;AAAA,IAAA,OACD;AACC,aAAA;AAAA,IACR;AAAA,EAAA,CACA,EAAE,OAAO,OAAO;AAEjB,QAAM,kBAA0C,CAAA;AAE1C,QAAA,UAAU,sBAAsB,MAAM,OAAO;AAC7C,QAAA,WAAW,uBAAuB,MAAM,QAAQ;AAEtC,kBAAA,KAAK,SAAS,QAAQ;AAEtC,aAAW,SAAS,aAAa;AAChC,UAAM,EAAE,SAAAA,UAAS,UAAAC,cAAa,YAAY,KAAK;AAEzC,UAAA,mBAAmB,sBAAsBD,UAAS,KAAgC;AAClF,UAAA,oBAAoB,uBAAuBC,WAAU,KAAgC;AAE3E,oBAAA,KAAK,kBAAkB,iBAAiB;AAAA,EACzD;AAEM,QAAA,sBAAsB,kBAAkB,eAAe;AAEzD,MAAA,oBAAoB,SAAS,KAAK,aAAa;AAClD,WAAO,CAAC,eAAe,2BAA2B,GAAG,qBAAqB,GAAG,aAAa;AAAA,EAAA,OACpF;AACC,WAAA;AAAA,EACR;AACD;"}
@@ -1,4 +1,4 @@
1
- import { assertNever } from "../../assert-types/assertNever.js";
1
+ import { assertNever } from "../assert-types/assertNever.js";
2
2
  function flatClassNameList(className) {
3
3
  if (!className) {
4
4
  return [];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatClassNameList.js","sources":["../../../src/class-name/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,5 +1,5 @@
1
- import { deduplicateClassName } from "./Internal/deduplicateClassName.js";
2
- import { flatClassNameList } from "./Internal/flatClassNameList.js";
1
+ import { deduplicateClassName } from "./deduplicateClassName.js";
2
+ import { flatClassNameList } from "./flatClassNameList.js";
3
3
  function listClassName(list) {
4
4
  return deduplicateClassName(flatClassNameList(list)).join(" ");
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"listClassName.js","sources":["../../../src/class-name/listClassName.ts"],"sourcesContent":["import { deduplicateClassName } from './Internal/deduplicateClassName'\nimport { flatClassNameList } from './Internal/flatClassNameList'\n\n/**\n * Combines a list of class names into a single string, even nested\n *\n * @param list - List of class names\n * @returns Combined class names as string\n */\nexport function listClassName(list: (string | false | null | undefined)[]) {\n\treturn deduplicateClassName(flatClassNameList(list)).join(' ')\n}\n"],"names":[],"mappings":";;AASO,SAAS,cAAc,MAA6C;AAC1E,SAAO,qBAAqB,kBAAkB,IAAI,CAAC,EAAE,KAAK,GAAG;AAC9D;"}
1
+ {"version":3,"file":"listClassName.js","sources":["../../../src/class-name/listClassName.ts"],"sourcesContent":["import { deduplicateClassName } from './deduplicateClassName'\nimport { flatClassNameList } from './flatClassNameList'\n\n/**\n * Combines a list of class names into a single string, even nested\n *\n * @param list - List of class names\n * @returns Combined class names as string\n */\nexport function listClassName(list: (string | false | null | undefined)[]) {\n\treturn deduplicateClassName(flatClassNameList(list)).join(' ')\n}\n"],"names":[],"mappings":";;AASO,SAAS,cAAc,MAA6C;AAC1E,SAAO,qBAAqB,kBAAkB,IAAI,CAAC,EAAE,KAAK,GAAG;AAC9D;"}
@@ -1,10 +1,7 @@
1
- const UPPER_CASE_REG_EXP = /([A-Z])/g;
2
- function toKebabCase(value) {
3
- return value.replace(UPPER_CASE_REG_EXP, "-$1").toLowerCase();
4
- }
5
- function stateClassName(state = null, glue = "-") {
1
+ import { toKebabCase } from "../string-utilities/kebabCase.js";
2
+ function stateClassName(state = null, { glue = "-", removeFalsy = true } = {}) {
6
3
  const entries = Object.entries(state ?? []).map(
7
- ([className, value]) => value || value === 0 ? value === true ? toKebabCase(className) : `${toKebabCase(className)}${glue}${value}` : ""
4
+ ([className, value]) => value || value === 0 || !removeFalsy ? value === true ? toKebabCase(className) : `${toKebabCase(className)}${glue}${value}` : ""
8
5
  ).filter(Boolean);
9
6
  return entries;
10
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stateClassName.js","sources":["../../../src/class-name/stateClassName.ts"],"sourcesContent":["import { ClassNameStateMap } from './Types'\n\nconst UPPER_CASE_REG_EXP = /([A-Z])/g\n\nfunction toKebabCase(value: string) {\n\treturn value.replace(UPPER_CASE_REG_EXP, '-$1').toLowerCase()\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 glue - Glue to use between the class name and the value, default is '-'. Set to '' to disable.\n * @returns Combined class names as string\n */\nexport function stateClassName(state: ClassNameStateMap | null = null, glue = '-'): string[] {\n\tconst entries = Object.entries(state ?? []).map(\n\t\t([className, value]) => value || value === 0\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":"AAEA,MAAM,qBAAqB;AAE3B,SAAS,YAAY,OAAe;AACnC,SAAO,MAAM,QAAQ,oBAAoB,KAAK,EAAE,YAAY;AAC7D;AAYO,SAAS,eAAe,QAAkC,MAAM,OAAO,KAAe;AAC5F,QAAM,UAAU,OAAO,QAAQ,SAAS,CAAA,CAAE,EAAE;AAAA,IAC3C,CAAC,CAAC,WAAW,KAAK,MAAM,SAAS,UAAU,IACvC,UAAU,OAAO,YAAY,SAAS,IAAI,GAAG,YAAY,SAAS,IAAI,OAAO,UAC9E;AAAA,EAAA,EACF,OAAO,OAAO;AAET,SAAA;AACR;"}
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;"}
@@ -0,0 +1,18 @@
1
+ function contentThemeClassName(theme, state) {
2
+ return theme ? `theme-${theme}-content${state ?? ""}` : void 0;
3
+ }
4
+ function controlsThemeClassName(theme, state) {
5
+ return theme ? `theme-${theme}-controls${state ?? ""}` : void 0;
6
+ }
7
+ function themeClassName(theme, state) {
8
+ return [
9
+ contentThemeClassName(theme, state),
10
+ controlsThemeClassName(theme, state)
11
+ ];
12
+ }
13
+ export {
14
+ contentThemeClassName,
15
+ controlsThemeClassName,
16
+ themeClassName
17
+ };
18
+ //# sourceMappingURL=themeClassName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeClassName.js","sources":["../../../src/class-name/themeClassName.ts"],"sourcesContent":["import { KebabCase } from 'type-fest'\nimport { colorSchemeClassName } from './colorSchemeClassName'\nimport { ThemeContentClassName, ThemeControlsClassName } from './types'\n\n/**\n * Returns a string with a content theme class name, prefixed with `theme-` and suffixed with `-content`\n *\n * IMPORTANT: Make sure to use color scheme class in combination with theme class names.\n *\n * @param contentTheme - Theme name basis for content\n * @param state - State of the theme starting with a \":\", e.g. `\":hover\"`, `\":focus\"`, `\":active\"`, `\":focus-visible\"`\n * @returns A content theme class name\n *\n * @see {@link controlsThemeClassName}\n * @see {@link (colorSchemeClassName:3)}\n *\n * @example\n * ```tsx\n * const colorScheme = colorSchemeClassName('system')\n * // ^ 'scheme-system'\n * const contentThemeClassName = contentThemeClassName('default')\n * // ^ 'theme-default-content:hover'\n * const dangerOnMouseOverTheme = controlsThemeClassName('danger', ':hover')\n * // ^ 'theme-danger-controls:hover'\n *\n * return (\n * \t<div className={`${colorScheme} ${contentThemeClassName}`}>\n * \t\t<button className={`${colorScheme} ${dangerOnMouseOverTheme}`}>Delete</button>\n * \t</div>\n * )\n * ```\n */\nexport function contentThemeClassName<\n\tContentTheme extends KebabCase<string> = KebabCase<string>,\n\tState extends `:${KebabCase<string>}` | null | undefined = undefined,\n>(\n\ttheme: ContentTheme | null | undefined,\n\tstate?: State | null | undefined,\n) {\n\treturn theme ? `theme-${theme}-content${state ?? ''}` as ThemeContentClassName<ContentTheme, State> : undefined\n}\n\n/**\n * Returns a string with a controls theme class name, prefixed with `theme-` and suffixed with `-controls`\n *\n * IMPORTANT: Make sure to use color scheme class in combination with theme class names.\n *\n * @param theme - Theme name basis for controls\n * @param state - State of the theme starting with a \":\", e.g. `\":hover\"`, `\":focus\"`, `\":active\"`, `\":focus-visible\"`\n * @returns A controls theme class name\n *\n * @see {@link contentThemeClassName}\n * @see {@link (colorSchemeClassName:3)}\n *\n * @example\n * ```tsx\n * const colorScheme = colorSchemeClassName('system')\n * // ^ 'scheme-system'\n * const contentThemeClassName = contentThemeClassName('default')\n * // ^ 'theme-default-content:hover'\n * const dangerOnMouseOverTheme = controlsThemeClassName('danger', ':hover')\n * // ^ 'theme-danger-controls:hover'\n *\n * return (\n * \t<div className={`${colorScheme} ${contentThemeClassName}`}>\n * \t\t<button className={`${colorScheme} ${dangerOnMouseOverTheme}`}>Delete</button>\n * \t</div>\n * )\n * ```\n */\nexport function controlsThemeClassName<\n\tControlsTheme extends KebabCase<string> = KebabCase<string>,\n\tState extends `:${KebabCase<string>}` | null | undefined = undefined,\n>(\n\ttheme: ControlsTheme | null | undefined,\n\tstate?: State | null | undefined,\n) {\n\treturn theme ? `theme-${theme}-controls${state ?? ''}` as ThemeControlsClassName<ControlsTheme, State> : undefined\n}\n\n/**\n * Returns a tuple with a content theme class name and a controls theme class name, prefixed with `theme-` and suffixed with `-content` and `-controls` respectively\n *\n * IMPORTANT: Make sure to use color scheme class in combination with theme class names.\n *\n * @param theme - Theme name basis for content and controls\n * @param state - State of the theme starting with a \":\", e.g. `\":hover\"`, `\":focus\"`, `\":active\"`, `\":focus-visible\"`\n * @returns A tuple with a content theme class name and a controls theme class name\n *\n * @see {@link contentThemeClassName}\n * @see {@link controlsThemeClassName}\n * @see {@link (colorSchemeClassName:3)}\n *\n * @example\n * ```tsx\n * const colorScheme = colorSchemeClassName('system')\n * // ^ 'scheme-system'\n * const errorTheme = themeClassName('danger').join(' ')\n * // ^ 'theme-danger-content theme-danger-controls'\n *\n * return (\n * \t<div className={`${colorScheme} ${errorTheme}`}>File not found</div>\n * )\n * ```\n */\nexport function themeClassName<\n\tTheme extends KebabCase<string> = KebabCase<string>,\n\tState extends `:${KebabCase<string>}` | null | undefined = undefined,\n>(\n\t\ttheme: Theme | null | undefined,\n\t\tstate?: State | null | undefined,\n) {\n\treturn [\n\t\tcontentThemeClassName(theme, state),\n\t\tcontrolsThemeClassName(theme, state),\n\t] as const\n}\n"],"names":[],"mappings":"AAgCgB,SAAA,sBAIf,OACA,OACC;AACD,SAAO,QAAQ,SAAS,gBAAgB,SAAS,OAAqD;AACvG;AA8BgB,SAAA,uBAIf,OACA,OACC;AACD,SAAO,QAAQ,SAAS,iBAAiB,SAAS,OAAuD;AAC1G;AA2BgB,SAAA,eAId,OACA,OACA;AACM,SAAA;AAAA,IACN,sBAAsB,OAAO,KAAK;AAAA,IAClC,uBAAuB,OAAO,KAAK;AAAA,EAAA;AAErC;"}
@@ -0,0 +1,20 @@
1
+ function currentOrDeprecated(current, deprecated, shouldThrow = false) {
2
+ if (deprecated !== void 0) {
3
+ if (current !== void 0 && false) {
4
+ console.error("Current value:", current);
5
+ console.error("Deprecated value:", deprecated);
6
+ if (shouldThrow) {
7
+ throw new Error(`You are using deprecated together with current value which is mutually exclusive. Use only one of them.`);
8
+ } else {
9
+ console.error(`You are using deprecated together with current value which is mutually exclusive. Use only one of them.`);
10
+ }
11
+ }
12
+ return deprecated;
13
+ } else {
14
+ return current;
15
+ }
16
+ }
17
+ export {
18
+ currentOrDeprecated
19
+ };
20
+ //# sourceMappingURL=currentOrDeprecated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currentOrDeprecated.js","sources":["../../../src/deprecate/currentOrDeprecated.ts"],"sourcesContent":["/**\n * Resolves current or deprecated value. If both are defined, it will throw an error in development mode.\n *\n * @internal\n *\n * Errors are thrown only in development mode. In production mode, the deprecated value is returned.\n *\n * @param current - Current value that replaces deprecated value\n * @param deprecated - Deprecated value that will be removed in the next release\n * @param shouldThrow - Whether to throw an error if both current and deprecated are defined\n * @returns Deprecated value if it is defined, otherwise current value\n * @throws Error if both current and deprecated are defined\n *\n * @example\n * ```ts\n * const current = 'current'\n * const deprecated = 'deprecated'\n *\n * const value = currentOrDeprecated(current, deprecated)\n *\n * console.log(value) // 'deprecated'\n * ```\n *\n * @example\n * ```ts\n * const current = 'current'\n * const deprecated = undefined\n *\n * const value = currentOrDeprecated(current, deprecated)\n *\n * console.log(value) // 'current'\n * ```\n */\nexport function currentOrDeprecated<R, D>(current: R, deprecated: D, shouldThrow: boolean = false): R | D {\n\tif (deprecated !== undefined) {\n\t\tif (current !== undefined && import.meta.env.DEV) {\n\t\t\tconsole.error('Current value:', current)\n\t\t\tconsole.error('Deprecated value:', deprecated)\n\n\t\t\tif (shouldThrow) {\n\t\t\t\tthrow new Error(`You are using deprecated together with current value which is mutually exclusive. Use only one of them.`)\n\t\t\t} else {\n\t\t\t\tconsole.error(`You are using deprecated together with current value which is mutually exclusive. Use only one of them.`)\n\t\t\t}\n\t\t}\n\n\t\treturn deprecated\n\t} else {\n\t\treturn current\n\t}\n}\n"],"names":[],"mappings":"AAiCO,SAAS,oBAA0B,SAAY,YAAe,cAAuB,OAAc;AACzG,MAAI,eAAe,QAAW;AAC7B,QAAI,YAAY,UAAa,OAAqB;AACzC,cAAA,MAAM,kBAAkB,OAAO;AAC/B,cAAA,MAAM,qBAAqB,UAAU;AAE7C,UAAI,aAAa;AACV,cAAA,IAAI,MAAM,yGAAyG;AAAA,MAAA,OACnH;AACN,gBAAQ,MAAM,yGAAyG;AAAA,MACxH;AAAA,IACD;AAEO,WAAA;AAAA,EAAA,OACD;AACC,WAAA;AAAA,EACR;AACD;"}
@@ -0,0 +1,6 @@
1
+ function deprecate(removal, assertion, deprecated, replacement) {
2
+ }
3
+ export {
4
+ deprecate
5
+ };
6
+ //# sourceMappingURL=deprecate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecate.js","sources":["../../../src/deprecate/deprecate.ts"],"sourcesContent":["import { SemverString } from './types'\n\n/**\n * Logs a deprecation warning if the assertion is `false`.\n * @internal\n *\n * @param removal - Version when the deprecated feature will be removed\n * @param assertion - Condition that must be true to avoid the deprecation warning\n * @param deprecated - Name of the deprecated feature\n * @param replacement - Name of the feature that replaces the deprecated feature\n *\n * @example\n * ```ts\n * const { visible } = props\n * deprecate(visible !== 'default', '1.3.0', '\"default\"', '\"hidden\"')\n * // Logs: Use of \"default\" is deprecated and might be removed in the next release. Use \"hidden\" instead.\n * ```\n */\nexport function deprecate(removal: SemverString, assertion: boolean, deprecated: string, replacement: string): void {\n\tif (assertion === false) {\n\t\tif (import.meta.env.DEV) {\n\t\t\tconst shouldThrow = Boolean(import.meta.env.VITE_CONTEMBER_ADMIN_STRICT_DEPRECATIONS)\n\n\t\t\tif (shouldThrow) {\n\t\t\t\tthrow new Error(`Support for ${deprecated} was planned to be removed in the ${removal} release. Replace it with ${replacement} instead.`)\n\t\t\t} else {\n\t\t\t\tconsole.warn(`Use of ${deprecated} is deprecated and might be removed in the next release. Use ${replacement} instead.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAkBO,SAAS,UAAU,SAAuB,WAAoB,YAAoB,aAA2B;AAYpH;"}
@@ -0,0 +1,11 @@
1
+ import { dataAttribute } from "./dataAttribute.js";
2
+ import { toKebabCase } from "../string-utilities/kebabCase.js";
3
+ function stateDataAttributes(state) {
4
+ return Object.fromEntries(Object.entries(state).map(
5
+ ([key, value]) => [`data-${toKebabCase(key).toLowerCase()}`, dataAttribute(value)]
6
+ ));
7
+ }
8
+ export {
9
+ stateDataAttributes
10
+ };
11
+ //# sourceMappingURL=stateDataAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateDataAttributes.js","sources":["../../../src/dom/stateDataAttributes.ts"],"sourcesContent":["import { toKebabCase } from '../string-utilities'\nimport { dataAttribute } from './dataAttribute'\n\nexport function stateDataAttributes(state: Record<string, unknown>) {\n\treturn Object.fromEntries(Object.entries(state).map(\n\t\t([key, value]) => [`data-${toKebabCase(key).toLowerCase()}`, dataAttribute(value)],\n\t))\n}\n"],"names":[],"mappings":";;AAGO,SAAS,oBAAoB,OAAgC;AACnE,SAAO,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE;AAAA,IAC/C,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,YAAY,GAAG,EAAE,YAAiB,KAAA,cAAc,KAAK,CAAC;AAAA,EAAA,CACjF;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"svgSizeProps.js","sources":["../../../src/dom/svgSizeProps.ts"],"sourcesContent":["import { SVGProps } from 'react'\n\nexport interface SvgSizeProps {\n\twidth: number;\n\theight: number;\n\tviewBox: string;\n}\n\nexport function svgSizeProps(\n\twidth: number,\n\theight?: number,\n\tcrop: number = 0,\n): SvgSizeProps {\n\tconst viewBoxWidth = width - crop * 2\n\tconst viewBoxHeight = (height ?? width) - crop * 2\n\tconst viewBoxX = crop\n\tconst viewBoxY = crop\n\treturn {\n\t\twidth: viewBoxWidth,\n\t\theight: viewBoxHeight,\n\t\tviewBox: `${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}`,\n\t}\n}\n"],"names":[],"mappings":"AAQO,SAAS,aACf,OACA,QACA,OAAe,GACA;AACT,QAAA,eAAe,QAAQ,OAAO;AAC9B,QAAA,iBAAiB,UAAU,SAAS,OAAO;AACjD,QAAM,WAAW;AACjB,QAAM,WAAW;AACV,SAAA;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,GAAG,YAAY,YAAY,gBAAgB;AAAA,EAAA;AAEtD;"}
1
+ {"version":3,"file":"svgSizeProps.js","sources":["../../../src/dom/svgSizeProps.ts"],"sourcesContent":["export interface SvgSizeProps {\n\twidth: number;\n\theight: number;\n\tviewBox: string;\n}\n\nexport function svgSizeProps(\n\twidth: number,\n\theight?: number,\n\tcrop: number = 0,\n): SvgSizeProps {\n\tconst viewBoxWidth = width - crop * 2\n\tconst viewBoxHeight = (height ?? width) - crop * 2\n\tconst viewBoxX = crop\n\tconst viewBoxY = crop\n\treturn {\n\t\twidth: viewBoxWidth,\n\t\theight: viewBoxHeight,\n\t\tviewBox: `${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}`,\n\t}\n}\n"],"names":[],"mappings":"AAMO,SAAS,aACf,OACA,QACA,OAAe,GACA;AACT,QAAA,eAAe,QAAQ,OAAO;AAC9B,QAAA,iBAAiB,UAAU,SAAS,OAAO;AACjD,QAAM,WAAW;AACjB,QAAM,WAAW;AACV,SAAA;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,GAAG,YAAY,YAAY,gBAAgB;AAAA,EAAA;AAEtD;"}
@@ -0,0 +1,15 @@
1
+ function omit(object, properties, strict = false) {
2
+ const next = { ...object };
3
+ for (let key of properties) {
4
+ if (key in object) {
5
+ delete next[key];
6
+ } else if (strict) {
7
+ throw new Error(`Key "${String(key)}" does not exist in object ${JSON.stringify(object)}`);
8
+ }
9
+ }
10
+ return next;
11
+ }
12
+ export {
13
+ omit
14
+ };
15
+ //# sourceMappingURL=omit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omit.js","sources":["../../../src/functional/omit.ts"],"sourcesContent":["export function omit<T extends Object, K extends keyof T>(object: T, properties: ReadonlyArray<K>, strict: boolean = false): Omit<T, K> {\n const next: Partial<T> = { ...object }\n\n for (let key of properties) {\n if (key in object) {\n delete next[key]\n } else if (strict) {\n throw new Error(`Key \"${String(key)}\" does not exist in object ${JSON.stringify(object)}`)\n }\n }\n\n return next as Omit<T, K>\n}\n"],"names":[],"mappings":"AAAO,SAAS,KAA0C,QAAW,YAA8B,SAAkB,OAAmB;AAChI,QAAA,OAAmB,EAAE,GAAG;AAE9B,WAAS,OAAO,YAAY;AAC1B,QAAI,OAAO,QAAQ;AACjB,aAAO,KAAK,GAAG;AAAA,eACN,QAAQ;AACX,YAAA,IAAI,MAAM,QAAQ,OAAO,GAAG,+BAA+B,KAAK,UAAU,MAAM,GAAG;AAAA,IAC3F;AAAA,EACF;AAEO,SAAA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pick.js","sources":["../../../src/functional/pick.ts"],"sourcesContent":["export function pick<T extends Object, K extends keyof T>(object: T, properties: K[]): Pick<T, K> {\n\tconst next: Partial<Pick<T, K>> = {}\n\n\tfor (let key of properties) {\n\t\tif (key in object) {\n\t\t\tnext[key] = object[key]\n\t\t} else {\n\t\t\tthrow new Error(`Key \"${String(key)}\" does not exist in object ${JSON.stringify(object)}`)\n\t\t}\n\t}\n\n\treturn next as Pick<T, K>\n}\n"],"names":[],"mappings":"AAAgB,SAAA,KAA0C,QAAW,YAA6B;AACjG,QAAM,OAA4B,CAAA;AAElC,WAAS,OAAO,YAAY;AAC3B,QAAI,OAAO,QAAQ;AACb,WAAA,GAAG,IAAI,OAAO,GAAG;AAAA,IAAA,OAChB;AACA,YAAA,IAAI,MAAM,QAAQ,OAAO,GAAG,+BAA+B,KAAK,UAAU,MAAM,GAAG;AAAA,IAC1F;AAAA,EACD;AAEO,SAAA;AACR;"}
1
+ {"version":3,"file":"pick.js","sources":["../../../src/functional/pick.ts"],"sourcesContent":["export function pick<T extends Object, K extends keyof T>(object: T, properties: ReadonlyArray<K>): Pick<T, K> {\n\tconst next: Partial<Pick<T, K>> = {}\n\n\tfor (let key of properties) {\n\t\tif (key in object) {\n\t\t\tnext[key] = object[key]\n\t\t} else {\n\t\t\tthrow new Error(`Key \"${String(key)}\" does not exist in object ${JSON.stringify(object)}`)\n\t\t}\n\t}\n\n\treturn next as Pick<T, K>\n}\n"],"names":[],"mappings":"AAAgB,SAAA,KAA0C,QAAW,YAA0C;AAC9G,QAAM,OAA4B,CAAA;AAElC,WAAS,OAAO,YAAY;AAC3B,QAAI,OAAO,QAAQ;AACb,WAAA,GAAG,IAAI,OAAO,GAAG;AAAA,IAAA,OAChB;AACA,YAAA,IAAI,MAAM,QAAQ,OAAO,GAAG,+BAA+B,KAAK,UAAU,MAAM,GAAG;AAAA,IAC1F;AAAA,EACD;AAEO,SAAA;AACR;"}
@@ -1,33 +1,52 @@
1
1
  import { AssertionError } from "./assert-types/AssertionError.js";
2
- import { isBoolean, isDefined, isFalse, isHTMLElement, isNonEmptyString, isNonEmptyTrimmedEndString, isNonEmptyTrimmedStartString, isNonEmptyTrimmedString, isNonNegativeNumber, isNotNull, isNotNullish, isNull, isNumber, isNumericString, isObject, isOneOfFactory, isPlainObject, isString, isTrue, isUndefined } from "./assert-types/Predicates.js";
2
+ import { isArrayOfMembersSatisfyingFactory, isBoolean, isDefined, isFalse, isHTMLElement, isNonEmptyString, isNonEmptyTrimmedEndString, isNonEmptyTrimmedStartString, isNonEmptyTrimmedString, isNonNegativeNumber, isNotNull, isNotNullish, isNull, isNumber, isNumericString, isObject, isOneOfFactory, isPlainObject, isSlugString, isString, isTrue, isUndefined, satisfiesOneOfFactory } from "./assert-types/Predicates.js";
3
3
  import { assert } from "./assert-types/assert.js";
4
4
  import { assertNever } from "./assert-types/assertNever.js";
5
- import { GlobalClassNamePrefixContext } from "./class-name/GlobalClassNamePrefixContext.js";
5
+ import { colorSchemeClassName, isColorSchemeClassName } from "./class-name/colorSchemeClassName.js";
6
+ import { COLOR_SCHEME_CLASS_NAME_REG_EXP, THEME_CLASS_NAME_REG_EXP } from "./class-name/constants.js";
7
+ import { deduplicateClassName } from "./class-name/deduplicateClassName.js";
8
+ import { filterThemedClassName } from "./class-name/filterThemedClassName.js";
9
+ import { flatClassNameList } from "./class-name/flatClassNameList.js";
6
10
  import { listClassName } from "./class-name/listClassName.js";
7
11
  import { stateClassName } from "./class-name/stateClassName.js";
8
- import { useClassName } from "./class-name/useClassName.js";
9
- import { useClassNameFactory } from "./class-name/useClassNameFactory.js";
12
+ import { contentThemeClassName, controlsThemeClassName, themeClassName } from "./class-name/themeClassName.js";
10
13
  import { px } from "./css-utilities/px.js";
14
+ import { currentOrDeprecated } from "./deprecate/currentOrDeprecated.js";
15
+ import { deprecate } from "./deprecate/deprecate.js";
11
16
  import { dataAttribute } from "./dom/dataAttribute.js";
12
17
  import { getMatchingParentElement } from "./dom/getMatchingParentElement.js";
13
18
  import { getSizeFromResizeObserverEntryFactory } from "./dom/getSizeFromResizeObserverEntry.js";
14
19
  import { isScrollable } from "./dom/isScrollable.js";
15
20
  import { parseTransformMatrix } from "./dom/parseTransformMatrix.js";
21
+ import { stateDataAttributes } from "./dom/stateDataAttributes.js";
16
22
  import { svgSizeProps } from "./dom/svgSizeProps.js";
23
+ import { omit } from "./functional/omit.js";
17
24
  import { pick } from "./functional/pick.js";
18
25
  import { setHasOneOf } from "./functional/setHasOneOf.js";
19
26
  import { capitalize } from "./string-utilities/capitalize.js";
27
+ import { toKebabCase } from "./string-utilities/kebabCase.js";
20
28
  import { trimString } from "./string-utilities/trimString.js";
21
29
  export {
22
30
  AssertionError,
23
- GlobalClassNamePrefixContext,
31
+ COLOR_SCHEME_CLASS_NAME_REG_EXP,
32
+ THEME_CLASS_NAME_REG_EXP,
24
33
  assert,
25
34
  assertNever,
26
35
  capitalize,
36
+ colorSchemeClassName,
37
+ contentThemeClassName,
38
+ controlsThemeClassName,
39
+ currentOrDeprecated,
27
40
  dataAttribute,
41
+ deduplicateClassName,
42
+ deprecate,
43
+ filterThemedClassName,
44
+ flatClassNameList,
28
45
  getMatchingParentElement,
29
46
  getSizeFromResizeObserverEntryFactory,
47
+ isArrayOfMembersSatisfyingFactory,
30
48
  isBoolean,
49
+ isColorSchemeClassName,
31
50
  isDefined,
32
51
  isFalse,
33
52
  isHTMLElement,
@@ -45,18 +64,22 @@ export {
45
64
  isOneOfFactory,
46
65
  isPlainObject,
47
66
  isScrollable,
67
+ isSlugString,
48
68
  isString,
49
69
  isTrue,
50
70
  isUndefined,
51
71
  listClassName,
72
+ omit,
52
73
  parseTransformMatrix,
53
74
  pick,
54
75
  px,
76
+ satisfiesOneOfFactory,
55
77
  setHasOneOf,
56
78
  stateClassName,
79
+ stateDataAttributes,
57
80
  svgSizeProps,
58
- trimString,
59
- useClassName,
60
- useClassNameFactory
81
+ themeClassName,
82
+ toKebabCase,
83
+ trimString
61
84
  };
62
85
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ const UPPER_CASE_REG_EXP = /([A-Z])/g;
2
+ function toKebabCase(value) {
3
+ return value.replace(UPPER_CASE_REG_EXP, "-$1").toLowerCase();
4
+ }
5
+ export {
6
+ toKebabCase
7
+ };
8
+ //# sourceMappingURL=kebabCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabCase.js","sources":["../../../src/string-utilities/kebabCase.ts"],"sourcesContent":["const UPPER_CASE_REG_EXP = /([A-Z])/g\n\nexport function toKebabCase(value: string) {\n\treturn value.replace(UPPER_CASE_REG_EXP, '-$1').toLowerCase()\n}\n"],"names":[],"mappings":"AAAA,MAAM,qBAAqB;AAEpB,SAAS,YAAY,OAAe;AAC1C,SAAO,MAAM,QAAQ,oBAAoB,KAAK,EAAE,YAAY;AAC7D;"}
@@ -1,12 +1,14 @@
1
+ import { Predicate, SlugString, UnionOfPredicateTypes } from './types';
1
2
  export declare function isNull(value: unknown): value is null;
2
3
  export declare function isNotNull<T>(value: unknown): value is T;
3
4
  export declare function isUndefined(value: unknown): value is undefined;
4
- export declare function isDefined<T>(value: unknown): value is T;
5
+ export declare function isDefined<T>(value: unknown): value is Exclude<T, undefined>;
5
6
  export declare function isNotNullish<T>(value: T): value is Exclude<T, null | undefined>;
6
7
  export declare function isBoolean(value: unknown): value is boolean;
7
8
  export declare function isTrue(value: unknown): value is true;
8
9
  export declare function isFalse(value: unknown): value is false;
9
10
  export declare function isString(value: unknown): value is string;
11
+ export declare function isSlugString(value: unknown): value is SlugString;
10
12
  export declare function isNonEmptyString(value: unknown): value is string;
11
13
  export declare const isNonEmptyTrimmedString: (value: unknown) => value is string;
12
14
  export declare const isNonEmptyTrimmedStartString: (value: unknown) => value is string;
@@ -14,7 +16,9 @@ export declare const isNonEmptyTrimmedEndString: (value: unknown) => value is st
14
16
  export declare function isNumber(value: unknown): value is number;
15
17
  export declare function isNonNegativeNumber(value: unknown): value is number;
16
18
  export declare function isNumericString(value: string): value is string;
17
- export declare function isOneOfFactory<U, T = any>(options: T extends Array<U> | ReadonlyArray<U> ? T : never): (value: unknown) => value is U;
19
+ export declare function isOneOfFactory<U, T = any>(members: T extends Array<U> | ReadonlyArray<U> ? T : never): (value: unknown) => value is U;
20
+ export declare function satisfiesOneOfFactory<T extends Array<Predicate<any, any>>>(...predicates: T): Predicate<unknown, UnionOfPredicateTypes<T>>;
21
+ export declare function isArrayOfMembersSatisfyingFactory<T>(predicate: (value: unknown) => value is T): (value: unknown) => value is Array<T>;
18
22
  export declare function isHTMLElement(value: unknown): value is HTMLElement;
19
23
  export declare function isObject(value: unknown): value is Object;
20
24
  export declare function isPlainObject<T extends Record<string, unknown>>(value: unknown): value is T;
@@ -1 +1 @@
1
- {"version":3,"file":"Predicates.d.ts","sourceRoot":"","sources":["../../../src/assert-types/Predicates.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAEvD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAEvD;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAE/E;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AACD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AACD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAMD,eAAO,MAAM,uBAAuB,UAJM,OAAO,oBAIsB,CAAA;AACvE,eAAO,MAAM,4BAA4B,UALC,OAAO,oBAKsC,CAAA;AACvF,eAAO,MAAM,0BAA0B,UANG,OAAO,oBAMkC,CAAA;AACnF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEnE;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAE9D;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAIrI;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAE3F"}
1
+ {"version":3,"file":"Predicates.d.ts","sourceRoot":"","sources":["../../../src/assert-types/Predicates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEtE,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAEvD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAE3E;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAE/E;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AACD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AACD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAMD,eAAO,MAAM,uBAAuB,UAJM,OAAO,oBAIsB,CAAA;AACvE,eAAO,MAAM,4BAA4B,UALC,OAAO,oBAKsC,CAAA;AACvF,eAAO,MAAM,0BAA0B,UANG,OAAO,oBAMkC,CAAA;AACnF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEnE;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAE9D;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EACxC,OAAO,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GACxD,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAIhC;AACD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACzE,GAAG,UAAU,EAAE,CAAC,GACd,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAI9C;AACD,wBAAgB,iCAAiC,CAAC,CAAC,EAClD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GACvC,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAIvC;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAE3F"}
@@ -1,2 +1,3 @@
1
- export declare function assert<In, Out extends In>(that: string | undefined, value: In, predicate: (value: In) => value is Out): asserts value is Out;
1
+ import { Predicate } from './types';
2
+ export declare function assert<In, Out extends In>(that: string | undefined, value: In, predicate: Predicate<In, Out>): asserts value is Out;
2
3
  //# sourceMappingURL=assert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/assert-types/assert.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CACrB,EAAE,EACF,GAAG,SAAS,EAAE,EAEd,IAAI,oBAAgC,EACpC,KAAK,EAAE,EAAE,EACT,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GACpC,OAAO,CAAC,KAAK,IAAI,GAAG,CAItB"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/assert-types/assert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,wBAAgB,MAAM,CACrB,EAAE,EACF,GAAG,SAAS,EAAE,EAEd,IAAI,oBAAgC,EACpC,KAAK,EAAE,EAAE,EACT,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,GAC3B,OAAO,CAAC,KAAK,IAAI,GAAG,CAItB"}
@@ -2,4 +2,5 @@ export * from './AssertionError';
2
2
  export * from './Predicates';
3
3
  export * from './assert';
4
4
  export * from './assertNever';
5
+ export * from './types';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assert-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assert-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { Opaque } from 'type-fest';
2
+ export type Predicate<T, U extends T> = (value: T) => value is U;
3
+ export type UnionOfPredicateTypes<T> = T extends Array<(value: any) => value is infer U> ? U : never;
4
+ export type SlugString = Opaque<string, 'SlugString'>;
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/assert-types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AAChE,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACpG,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { KebabCase } from 'type-fest';
2
+ import { ColorSchemeClassName } from './types';
3
+ /**
4
+ * Returns a string with a color scheme class name, prefixed with `scheme-`
5
+ *
6
+ * @param scheme - Color scheme name
7
+ * @returns A color scheme class name
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const colorScheme = colorSchemeClassName('system')
12
+ * // ^ 'scheme-system'
13
+ *
14
+ * return (
15
+ * <div className={colorScheme}>
16
+ * <button className={controlsThemeClassName}>Click me</button>
17
+ * </div>
18
+ *
19
+ * // renders:
20
+ * // <div class="scheme-system">
21
+ * // <button class="scheme-system theme-default-controls theme-danger-controls:hover">Click me</button>
22
+ * // </div>
23
+ * ```
24
+ */
25
+ export declare function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: S): ColorSchemeClassName<S>;
26
+ export declare function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: null | undefined): undefined;
27
+ export declare function colorSchemeClassName<S extends KebabCase<string> = KebabCase<string>>(scheme: S | null | undefined): ColorSchemeClassName<S> | undefined;
28
+ /**
29
+ * Tests if a string is a color scheme CSS class
30
+ * @param value - String to test
31
+ * @returns `true` if the string is a color scheme CSS class
32
+ * @internal
33
+ */
34
+ export declare function isColorSchemeClassName<T extends string>(value: string): value is ColorSchemeClassName<T>;
35
+ //# sourceMappingURL=colorSchemeClassName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorSchemeClassName.d.ts","sourceRoot":"","sources":["../../../src/class-name/colorSchemeClassName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC1H,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;AAC3H,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AASzJ;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAExG"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * RegExp that matches theme class names
3
+ *
4
+ * @internal
5
+ *
6
+ * If theme is `default` then it will match:
7
+ *
8
+ * - theme-default
9
+ * - theme-default:hover
10
+ * - theme-default:active
11
+ * - theme-default:focus
12
+ * - theme-default-content
13
+ * - theme-default-content:hover
14
+ * - theme-default-content:active
15
+ * - theme-default-content:focus
16
+ * - theme-default-controls
17
+ * - theme-default-controls:hover
18
+ * - theme-default-controls:active
19
+ * - theme-default-controls:focus
20
+ *
21
+ * If theme is `brand-color` then it will match:
22
+ *
23
+ * - theme-brand-color
24
+ * - theme-brand-color:hover
25
+ * - theme-brand-color:active
26
+ * - theme-brand-color:focus
27
+ * - theme-brand-color-content
28
+ * - theme-brand-color-content:hover
29
+ * - theme-brand-color-content:active
30
+ * - theme-brand-color-content:focus
31
+ * - theme-brand-color-controls
32
+ * - theme-brand-color-controls:hover
33
+ * - theme-brand-color-controls:active
34
+ * - theme-brand-color-controls:focus
35
+ */
36
+ export declare const THEME_CLASS_NAME_REG_EXP: RegExp;
37
+ /**
38
+ * Regular expression for testing if a string is a color scheme CSS class
39
+ * @internal
40
+ */
41
+ export declare const COLOR_SCHEME_CLASS_NAME_REG_EXP: RegExp;
42
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/class-name/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,eAAO,MAAM,wBAAwB,QAAyF,CAAA;AAE9H;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAA4D,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deduplicateClassName.d.ts","sourceRoot":"","sources":["../../../src/class-name/deduplicateClassName.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEvE"}
@@ -0,0 +1,7 @@
1
+ import { ColorSchemeClassName, NestedClassName } from './types';
2
+ export type ThemeConfig = {
3
+ content: string | undefined;
4
+ controls: string | undefined;
5
+ };
6
+ export declare function filterThemedClassName(nestedClassName: NestedClassName, defaultColorSchemeContext: ColorSchemeClassName): string[];
7
+ //# sourceMappingURL=filterThemedClassName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterThemedClassName.d.ts","sourceRoot":"","sources":["../../../src/class-name/filterThemedClassName.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEvF,wBAAgB,qBAAqB,CACpC,eAAe,EAAE,eAAe,EAChC,yBAAyB,EAAE,oBAAoB,YA0E/C"}
@@ -0,0 +1,3 @@
1
+ import { NestedClassName } from './types';
2
+ export declare function flatClassNameList(className: NestedClassName): string[];
3
+ //# sourceMappingURL=flatClassNameList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatClassNameList.d.ts","sourceRoot":"","sources":["../../../src/class-name/flatClassNameList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,EAAE,CActE"}
@@ -1,7 +1,10 @@
1
- export * from './GlobalClassNamePrefixContext';
2
- export * from './Types';
1
+ export * from './colorSchemeClassName';
2
+ export * from './constants';
3
+ export * from './deduplicateClassName';
4
+ export * from './filterThemedClassName';
5
+ export * from './flatClassNameList';
3
6
  export * from './listClassName';
4
7
  export * from './stateClassName';
5
- export * from './useClassName';
6
- export * from './useClassNameFactory';
8
+ export * from './themeClassName';
9
+ export * from './types';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/class-name/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/class-name/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA"}