@c15t/react 0.0.1-rc.9 → 1.0.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.
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.cjs +41 -20
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.js +34 -6
- package/dist/components/consent-manager-dialog/atoms/dialog-card.cjs +67 -32
- package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts +9 -3
- package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts.map +1 -1
- package/dist/components/consent-manager-dialog/atoms/dialog-card.js +26 -12
- package/dist/components/consent-manager-dialog/atoms/overlay.cjs +20 -19
- package/dist/components/consent-manager-dialog/atoms/overlay.d.ts.map +1 -1
- package/dist/components/consent-manager-dialog/atoms/overlay.js +7 -4
- package/dist/components/consent-manager-dialog/consent-manager-dialog.cjs +20 -16
- package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts +0 -2
- package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts.map +1 -1
- package/dist/components/consent-manager-dialog/consent-manager-dialog.js +10 -2
- package/dist/components/consent-manager-dialog/consent-manager-dialog.module.cjs +12 -10
- package/dist/components/consent-manager-dialog/consent-manager-dialog.module.js +4 -2
- package/dist/components/consent-manager-dialog/consent-manager-dialog_module.css +29 -15
- package/dist/components/consent-manager-dialog/index.cjs +43 -17
- package/dist/components/consent-manager-dialog/theme.cjs +3 -4
- package/dist/components/consent-manager-widget/__tests__/styles.spec.cjs +41 -20
- package/dist/components/consent-manager-widget/__tests__/styles.spec.js +34 -6
- package/dist/components/consent-manager-widget/atoms/accordion.cjs +50 -24
- package/dist/components/consent-manager-widget/atoms/accordion.d.ts.map +1 -1
- package/dist/components/consent-manager-widget/atoms/button.cjs +27 -13
- package/dist/components/consent-manager-widget/atoms/footer.cjs +19 -17
- package/dist/components/consent-manager-widget/atoms/root.cjs +10 -8
- package/dist/components/consent-manager-widget/consent-manager-widget.cjs +11 -22
- package/dist/components/consent-manager-widget/consent-manager-widget.d.ts.map +1 -1
- package/dist/components/consent-manager-widget/consent-manager-widget.js +3 -14
- package/dist/components/consent-manager-widget/consent-manager-widget.module.cjs +12 -13
- package/dist/components/consent-manager-widget/consent-manager-widget.module.js +4 -5
- package/dist/components/consent-manager-widget/consent-manager-widget_module.css +24 -29
- package/dist/components/consent-manager-widget/index.cjs +87 -29
- package/dist/components/consent-manager-widget/theme.cjs +3 -4
- package/dist/components/consent-manager-widget/types.cjs +3 -4
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.cjs +189 -0
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.d.ts +2 -0
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.d.ts.map +1 -0
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.js +183 -0
- package/dist/components/cookie-banner/__tests__/styles.spec.cjs +35 -20
- package/dist/components/cookie-banner/__tests__/styles.spec.js +28 -6
- package/dist/components/cookie-banner/atoms/overlay.cjs +18 -18
- package/dist/components/cookie-banner/atoms/overlay.d.ts.map +1 -1
- package/dist/components/cookie-banner/atoms/overlay.js +7 -5
- package/dist/components/cookie-banner/atoms/root.cjs +17 -17
- package/dist/components/cookie-banner/atoms/root.d.ts +14 -0
- package/dist/components/cookie-banner/atoms/root.d.ts.map +1 -1
- package/dist/components/cookie-banner/atoms/root.js +6 -4
- package/dist/components/cookie-banner/components.cjs +69 -28
- package/dist/components/cookie-banner/components.d.ts.map +1 -1
- package/dist/components/cookie-banner/components.js +14 -3
- package/dist/components/cookie-banner/cookie-banner.cjs +11 -9
- package/dist/components/cookie-banner/cookie-banner.d.ts +12 -0
- package/dist/components/cookie-banner/cookie-banner.d.ts.map +1 -1
- package/dist/components/cookie-banner/cookie-banner.js +3 -1
- package/dist/components/cookie-banner/cookie-banner.module.cjs +10 -10
- package/dist/components/cookie-banner/cookie-banner.module.js +2 -2
- package/dist/components/cookie-banner/cookie-banner_module.css +7 -7
- package/dist/components/cookie-banner/error-boundary.cjs +8 -9
- package/dist/components/cookie-banner/error-boundary.d.ts +1 -1
- package/dist/components/cookie-banner/error-boundary.js +0 -1
- package/dist/components/cookie-banner/index.cjs +65 -23
- package/dist/components/cookie-banner/theme.cjs +3 -4
- package/dist/components/shared/libs/polymorphic.cjs +3 -4
- package/dist/components/shared/libs/polymorphic.d.ts +1 -7
- package/dist/components/shared/libs/polymorphic.d.ts.map +1 -1
- package/dist/components/shared/libs/recursive-clone-children.cjs +8 -8
- package/dist/components/shared/primitives/box.cjs +10 -10
- package/dist/components/shared/primitives/box.d.ts.map +1 -1
- package/dist/components/shared/primitives/box.js +3 -3
- package/dist/components/shared/primitives/button.cjs +9 -9
- package/dist/components/shared/primitives/button.d.ts +2 -102
- package/dist/components/shared/primitives/button.d.ts.map +1 -1
- package/dist/components/shared/primitives/button.js +2 -2
- package/dist/components/shared/primitives/button.types.cjs +3 -4
- package/dist/components/shared/primitives/button.types.d.ts +1 -8
- package/dist/components/shared/primitives/button.types.d.ts.map +1 -1
- package/dist/components/shared/ui/accordion/accordion.cjs +25 -17
- package/dist/components/shared/ui/accordion/accordion.d.ts.map +1 -1
- package/dist/components/shared/ui/accordion/accordion.js +8 -8
- package/dist/components/shared/ui/accordion/accordion.module.cjs +11 -11
- package/dist/components/shared/ui/accordion/accordion.module.js +3 -3
- package/dist/components/shared/ui/accordion/accordion.types.cjs +3 -4
- package/dist/components/shared/ui/accordion/accordion.types.d.ts +0 -10
- package/dist/components/shared/ui/accordion/accordion.types.d.ts.map +1 -1
- package/dist/components/shared/ui/accordion/accordion_module.css +39 -19
- package/dist/components/shared/ui/accordion/index.cjs +7 -14
- package/dist/components/shared/ui/button/button.cjs +16 -16
- package/dist/components/shared/ui/button/button.d.ts +4 -204
- package/dist/components/shared/ui/button/button.d.ts.map +1 -1
- package/dist/components/shared/ui/button/button.module.cjs +10 -10
- package/dist/components/shared/ui/button/button.module.js +2 -2
- package/dist/components/shared/ui/button/button.types.cjs +3 -4
- package/dist/components/shared/ui/button/button_module.css +40 -19
- package/dist/components/shared/ui/button/index.cjs +7 -14
- package/dist/components/shared/ui/icon.cjs +8 -8
- package/dist/components/shared/ui/icon.d.ts.map +1 -1
- package/dist/components/shared/ui/logo.cjs +43 -54
- package/dist/components/shared/ui/logo.d.ts +3 -2
- package/dist/components/shared/ui/logo.d.ts.map +1 -1
- package/dist/components/shared/ui/logo.js +32 -46
- package/dist/components/shared/ui/switch/index.cjs +7 -14
- package/dist/components/shared/ui/switch/switch.cjs +11 -15
- package/dist/components/shared/ui/switch/switch.d.ts.map +1 -1
- package/dist/components/shared/ui/switch/switch.js +3 -3
- package/dist/components/shared/ui/switch/switch.module.cjs +10 -10
- package/dist/components/shared/ui/switch/switch.module.js +2 -2
- package/dist/components/shared/ui/switch/switch.types.cjs +3 -4
- package/dist/components/shared/ui/switch/switch_module.css +32 -10
- package/dist/context/consent-manager-context.cjs +9 -9
- package/dist/context/consent-manager-context.d.ts +29 -10
- package/dist/context/consent-manager-context.d.ts.map +1 -1
- package/dist/context/consent-manager-context.js +1 -1
- package/dist/context/theme-context.cjs +17 -9
- package/dist/context/theme-context.d.ts +16 -1
- package/dist/context/theme-context.d.ts.map +1 -1
- package/dist/context/theme-context.js +7 -1
- package/dist/hooks/__tests__/use-consent-manager.test.cjs +76 -0
- package/dist/hooks/__tests__/use-consent-manager.test.d.ts +2 -0
- package/dist/hooks/__tests__/use-consent-manager.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/use-consent-manager.test.js +70 -0
- package/dist/hooks/__tests__/use-styles.test.cjs +76 -0
- package/dist/hooks/__tests__/use-styles.test.d.ts +2 -0
- package/dist/hooks/__tests__/use-styles.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/use-styles.test.js +70 -0
- package/dist/hooks/__tests__/use-theme.test.cjs +86 -0
- package/dist/hooks/__tests__/use-theme.test.d.ts +2 -0
- package/dist/hooks/__tests__/use-theme.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/use-theme.test.js +80 -0
- package/dist/hooks/index.cjs +23 -21
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/use-color-scheme.cjs +66 -0
- package/dist/hooks/use-color-scheme.d.ts +16 -0
- package/dist/hooks/use-color-scheme.d.ts.map +1 -0
- package/dist/hooks/use-color-scheme.js +32 -0
- package/dist/hooks/use-consent-manager.cjs +13 -9
- package/dist/hooks/use-consent-manager.d.ts +13 -5
- package/dist/hooks/use-consent-manager.d.ts.map +1 -1
- package/dist/hooks/use-consent-manager.js +5 -1
- package/dist/hooks/use-focus-trap.cjs +76 -0
- package/dist/hooks/use-focus-trap.d.ts +15 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.js +42 -0
- package/dist/hooks/use-scroll-lock.cjs +55 -0
- package/dist/hooks/use-scroll-lock.d.ts +26 -0
- package/dist/hooks/use-scroll-lock.d.ts.map +1 -0
- package/dist/hooks/use-scroll-lock.js +21 -0
- package/dist/{utils → hooks}/use-styles.cjs +13 -13
- package/dist/{utils → hooks}/use-styles.d.ts.map +1 -1
- package/dist/{utils → hooks}/use-styles.js +5 -5
- package/dist/hooks/use-theme.cjs +10 -12
- package/dist/hooks/use-theme.d.ts.map +1 -1
- package/dist/hooks/use-theme.js +2 -4
- package/dist/hooks/use-translations.cjs +8 -8
- package/dist/index.cjs +66 -30
- package/dist/index.d.ts +9 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/providers/__tests__/provider-basic.test.cjs +127 -0
- package/dist/providers/__tests__/provider-basic.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-basic.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-basic.test.js +121 -0
- package/dist/providers/__tests__/provider-context.test.cjs +139 -0
- package/dist/providers/__tests__/provider-context.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-context.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-context.test.js +133 -0
- package/dist/providers/__tests__/provider-errors.test.cjs +98 -0
- package/dist/providers/__tests__/provider-errors.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-errors.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-errors.test.js +92 -0
- package/dist/providers/__tests__/test-helpers.cjs +171 -0
- package/dist/providers/__tests__/test-helpers.d.ts +6 -0
- package/dist/providers/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/providers/__tests__/test-helpers.js +134 -0
- package/dist/providers/consent-manager-provider.cjs +95 -38
- package/dist/providers/consent-manager-provider.d.ts +16 -2
- package/dist/providers/consent-manager-provider.d.ts.map +1 -1
- package/dist/providers/consent-manager-provider.js +87 -30
- package/dist/types/consent-manager.cjs +3 -4
- package/dist/types/consent-manager.d.ts +47 -72
- package/dist/types/consent-manager.d.ts.map +1 -1
- package/dist/types/theme/index.cjs +7 -14
- package/dist/types/theme/style-keys.cjs +3 -4
- package/dist/types/theme/style-types.cjs +3 -4
- package/dist/utils/cn.cjs +10 -16
- package/dist/utils/cn.d.ts +1 -5
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/cn.js +1 -2
- package/dist/utils/merge-styles.cjs +8 -8
- package/dist/utils/test-helpers.cjs +70 -0
- package/dist/utils/test-helpers.d.ts +30 -0
- package/dist/utils/test-helpers.d.ts.map +1 -0
- package/dist/utils/test-helpers.js +33 -0
- package/dist/utils/translations.cjs +12 -8
- package/package.json +13 -12
- package/dist/components/consent-manager-dialog/__tests__/utils.cjs +0 -68
- package/dist/components/consent-manager-dialog/__tests__/utils.d.ts +0 -13
- package/dist/components/consent-manager-dialog/__tests__/utils.d.ts.map +0 -1
- package/dist/components/consent-manager-dialog/__tests__/utils.js +0 -34
- package/dist/components/consent-manager-widget/__tests__/utils.cjs +0 -68
- package/dist/components/consent-manager-widget/__tests__/utils.d.ts +0 -13
- package/dist/components/consent-manager-widget/__tests__/utils.d.ts.map +0 -1
- package/dist/components/consent-manager-widget/__tests__/utils.js +0 -34
- package/dist/components/consent-manager-widget/atoms/logo.cjs +0 -101
- package/dist/components/consent-manager-widget/atoms/logo.d.ts +0 -8
- package/dist/components/consent-manager-widget/atoms/logo.d.ts.map +0 -1
- package/dist/components/consent-manager-widget/atoms/logo.js +0 -67
- package/dist/components/cookie-banner/__tests__/utils.cjs +0 -67
- package/dist/components/cookie-banner/__tests__/utils.d.ts +0 -13
- package/dist/components/cookie-banner/__tests__/utils.d.ts.map +0 -1
- package/dist/components/cookie-banner/__tests__/utils.js +0 -33
- /package/dist/{utils → hooks}/use-styles.d.ts +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__ from "vitest-browser-react";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_f2c81711__ from "../../providers/consent-manager-provider.js";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__use_consent_manager_js_56ece2ee__ from "../use-consent-manager.js";
|
|
6
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('c15t', async ()=>{
|
|
7
|
+
const originalModule = await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.importActual('c15t');
|
|
8
|
+
return {
|
|
9
|
+
...originalModule,
|
|
10
|
+
configureConsentManager: ()=>({
|
|
11
|
+
getCallbacks: ()=>({}),
|
|
12
|
+
setCallbacks: ()=>({}),
|
|
13
|
+
showConsentBanner: async ()=>({
|
|
14
|
+
ok: true,
|
|
15
|
+
data: {
|
|
16
|
+
showConsentBanner: true
|
|
17
|
+
},
|
|
18
|
+
error: null,
|
|
19
|
+
response: null
|
|
20
|
+
}),
|
|
21
|
+
setConsent: async ()=>({
|
|
22
|
+
ok: true,
|
|
23
|
+
data: {
|
|
24
|
+
success: true
|
|
25
|
+
},
|
|
26
|
+
error: null,
|
|
27
|
+
response: null
|
|
28
|
+
}),
|
|
29
|
+
verifyConsent: async ()=>({
|
|
30
|
+
ok: true,
|
|
31
|
+
data: {
|
|
32
|
+
valid: true
|
|
33
|
+
},
|
|
34
|
+
error: null,
|
|
35
|
+
response: null
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('useConsentManager', ()=>{
|
|
41
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('returns consent state and methods when used within provider', ()=>{
|
|
42
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_consent_manager_js_56ece2ee__.useConsentManager)(), {
|
|
43
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_f2c81711__.ConsentManagerProvider, {
|
|
44
|
+
options: {
|
|
45
|
+
mode: 'offline',
|
|
46
|
+
react: {
|
|
47
|
+
noStyle: false
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
children: children
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current).toBeDefined();
|
|
54
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(typeof result.current.showPopup).toBe('boolean');
|
|
55
|
+
});
|
|
56
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('provides manager object when configured', ()=>{
|
|
57
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_consent_manager_js_56ece2ee__.useConsentManager)(), {
|
|
58
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_f2c81711__.ConsentManagerProvider, {
|
|
59
|
+
options: {
|
|
60
|
+
mode: 'offline',
|
|
61
|
+
react: {
|
|
62
|
+
noStyle: false
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
children: children
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.manager).toBeDefined();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_exports__ = {};
|
|
3
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
4
|
+
const external_vitest_namespaceObject = require("vitest");
|
|
5
|
+
const external_vitest_browser_react_namespaceObject = require("vitest-browser-react");
|
|
6
|
+
const theme_context_cjs_namespaceObject = require("../../context/theme-context.cjs");
|
|
7
|
+
const external_use_styles_cjs_namespaceObject = require("../use-styles.cjs");
|
|
8
|
+
(0, external_vitest_namespaceObject.describe)('useStyles', ()=>{
|
|
9
|
+
const mockTheme = {
|
|
10
|
+
noStyle: false,
|
|
11
|
+
theme: {
|
|
12
|
+
'dialog.root': {
|
|
13
|
+
className: 'theme-class',
|
|
14
|
+
style: {
|
|
15
|
+
color: 'blue'
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
(0, external_vitest_namespaceObject.test)('returns component styles when no theme is provided', ()=>{
|
|
21
|
+
const componentStyle = {
|
|
22
|
+
className: 'component-class',
|
|
23
|
+
style: {
|
|
24
|
+
backgroundColor: 'red'
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_styles_cjs_namespaceObject.useStyles)('dialog.root', componentStyle), {
|
|
28
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.GlobalThemeContext.Provider, {
|
|
29
|
+
value: {
|
|
30
|
+
noStyle: false,
|
|
31
|
+
theme: {}
|
|
32
|
+
},
|
|
33
|
+
children: children
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
(0, external_vitest_namespaceObject.expect)(result.current.className).toContain('component-class');
|
|
37
|
+
(0, external_vitest_namespaceObject.expect)(result.current.style).toEqual({
|
|
38
|
+
backgroundColor: 'red'
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
(0, external_vitest_namespaceObject.test)('merges theme and component styles correctly', ()=>{
|
|
42
|
+
const componentStyle = {
|
|
43
|
+
className: 'component-class',
|
|
44
|
+
style: {
|
|
45
|
+
backgroundColor: 'red'
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_styles_cjs_namespaceObject.useStyles)('dialog.root', componentStyle), {
|
|
49
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.GlobalThemeContext.Provider, {
|
|
50
|
+
value: mockTheme,
|
|
51
|
+
children: children
|
|
52
|
+
})
|
|
53
|
+
});
|
|
54
|
+
(0, external_vitest_namespaceObject.expect)(result.current.className).toContain('theme-class');
|
|
55
|
+
(0, external_vitest_namespaceObject.expect)(result.current.className).toContain('component-class');
|
|
56
|
+
(0, external_vitest_namespaceObject.expect)(result.current.style).toEqual({
|
|
57
|
+
color: 'blue',
|
|
58
|
+
backgroundColor: 'red'
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, external_vitest_namespaceObject.test)('handles string className correctly', ()=>{
|
|
62
|
+
const componentStyle = 'component-class';
|
|
63
|
+
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_styles_cjs_namespaceObject.useStyles)('dialog.root', componentStyle), {
|
|
64
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.GlobalThemeContext.Provider, {
|
|
65
|
+
value: mockTheme,
|
|
66
|
+
children: children
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
(0, external_vitest_namespaceObject.expect)(result.current.className).toContain('theme-class');
|
|
70
|
+
(0, external_vitest_namespaceObject.expect)(result.current.className).toContain('component-class');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
74
|
+
Object.defineProperty(exports, '__esModule', {
|
|
75
|
+
value: true
|
|
76
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-styles.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__tests__/use-styles.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__ from "vitest-browser-react";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__ from "../../context/theme-context.js";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__use_styles_js_020efb58__ from "../use-styles.js";
|
|
6
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('useStyles', ()=>{
|
|
7
|
+
const mockTheme = {
|
|
8
|
+
noStyle: false,
|
|
9
|
+
theme: {
|
|
10
|
+
'dialog.root': {
|
|
11
|
+
className: 'theme-class',
|
|
12
|
+
style: {
|
|
13
|
+
color: 'blue'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('returns component styles when no theme is provided', ()=>{
|
|
19
|
+
const componentStyle = {
|
|
20
|
+
className: 'component-class',
|
|
21
|
+
style: {
|
|
22
|
+
backgroundColor: 'red'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_styles_js_020efb58__.useStyles)('dialog.root', componentStyle), {
|
|
26
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.GlobalThemeContext.Provider, {
|
|
27
|
+
value: {
|
|
28
|
+
noStyle: false,
|
|
29
|
+
theme: {}
|
|
30
|
+
},
|
|
31
|
+
children: children
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.className).toContain('component-class');
|
|
35
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.style).toEqual({
|
|
36
|
+
backgroundColor: 'red'
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('merges theme and component styles correctly', ()=>{
|
|
40
|
+
const componentStyle = {
|
|
41
|
+
className: 'component-class',
|
|
42
|
+
style: {
|
|
43
|
+
backgroundColor: 'red'
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_styles_js_020efb58__.useStyles)('dialog.root', componentStyle), {
|
|
47
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.GlobalThemeContext.Provider, {
|
|
48
|
+
value: mockTheme,
|
|
49
|
+
children: children
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.className).toContain('theme-class');
|
|
53
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.className).toContain('component-class');
|
|
54
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.style).toEqual({
|
|
55
|
+
color: 'blue',
|
|
56
|
+
backgroundColor: 'red'
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('handles string className correctly', ()=>{
|
|
60
|
+
const componentStyle = 'component-class';
|
|
61
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_styles_js_020efb58__.useStyles)('dialog.root', componentStyle), {
|
|
62
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.GlobalThemeContext.Provider, {
|
|
63
|
+
value: mockTheme,
|
|
64
|
+
children: children
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.className).toContain('theme-class');
|
|
68
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current.className).toContain('component-class');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_exports__ = {};
|
|
3
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
4
|
+
const external_vitest_namespaceObject = require("vitest");
|
|
5
|
+
const external_vitest_browser_react_namespaceObject = require("vitest-browser-react");
|
|
6
|
+
const theme_context_cjs_namespaceObject = require("../../context/theme-context.cjs");
|
|
7
|
+
const external_use_theme_cjs_namespaceObject = require("../use-theme.cjs");
|
|
8
|
+
(0, external_vitest_namespaceObject.describe)('useTheme', ()=>{
|
|
9
|
+
(0, external_vitest_namespaceObject.test)('returns global theme when no local theme is provided', ()=>{
|
|
10
|
+
const globalTheme = {
|
|
11
|
+
noStyle: false,
|
|
12
|
+
theme: {
|
|
13
|
+
'dialog.root': 'global-style'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_theme_cjs_namespaceObject.useTheme)(), {
|
|
17
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.GlobalThemeContext.Provider, {
|
|
18
|
+
value: globalTheme,
|
|
19
|
+
children: children
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
(0, external_vitest_namespaceObject.expect)(result.current).toEqual(globalTheme);
|
|
23
|
+
});
|
|
24
|
+
(0, external_vitest_namespaceObject.test)('merges global and local themes correctly', ()=>{
|
|
25
|
+
const globalTheme = {
|
|
26
|
+
noStyle: false,
|
|
27
|
+
theme: {
|
|
28
|
+
'dialog.root': 'global-style',
|
|
29
|
+
'dialog.title': 'global-title'
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const localTheme = {
|
|
33
|
+
theme: {
|
|
34
|
+
'dialog.root': 'local-style',
|
|
35
|
+
'dialog.content': 'local-content'
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_theme_cjs_namespaceObject.useTheme)(), {
|
|
39
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.GlobalThemeContext.Provider, {
|
|
40
|
+
value: globalTheme,
|
|
41
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.LocalThemeContext.Provider, {
|
|
42
|
+
value: localTheme,
|
|
43
|
+
children: children
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
(0, external_vitest_namespaceObject.expect)(result.current).toEqual({
|
|
48
|
+
noStyle: false,
|
|
49
|
+
theme: {
|
|
50
|
+
'dialog.root': 'local-style',
|
|
51
|
+
'dialog.title': 'global-title',
|
|
52
|
+
'dialog.content': 'local-content'
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, external_vitest_namespaceObject.test)('local theme takes precedence over global theme', ()=>{
|
|
57
|
+
const globalTheme = {
|
|
58
|
+
noStyle: false,
|
|
59
|
+
theme: {
|
|
60
|
+
'dialog.root': 'global-style'
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const localTheme = {
|
|
64
|
+
noStyle: true,
|
|
65
|
+
theme: {
|
|
66
|
+
'dialog.root': 'local-style'
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_theme_cjs_namespaceObject.useTheme)(), {
|
|
70
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.GlobalThemeContext.Provider, {
|
|
71
|
+
value: globalTheme,
|
|
72
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.LocalThemeContext.Provider, {
|
|
73
|
+
value: localTheme,
|
|
74
|
+
children: children
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
const theme = result.current;
|
|
79
|
+
(0, external_vitest_namespaceObject.expect)(theme.theme['dialog.root']).toBe('local-style');
|
|
80
|
+
(0, external_vitest_namespaceObject.expect)(theme.noStyle).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
84
|
+
Object.defineProperty(exports, '__esModule', {
|
|
85
|
+
value: true
|
|
86
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-theme.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__tests__/use-theme.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__ from "vitest-browser-react";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__ from "../../context/theme-context.js";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__use_theme_js_0009fd1b__ from "../use-theme.js";
|
|
6
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('useTheme', ()=>{
|
|
7
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('returns global theme when no local theme is provided', ()=>{
|
|
8
|
+
const globalTheme = {
|
|
9
|
+
noStyle: false,
|
|
10
|
+
theme: {
|
|
11
|
+
'dialog.root': 'global-style'
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_theme_js_0009fd1b__.useTheme)(), {
|
|
15
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.GlobalThemeContext.Provider, {
|
|
16
|
+
value: globalTheme,
|
|
17
|
+
children: children
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current).toEqual(globalTheme);
|
|
21
|
+
});
|
|
22
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('merges global and local themes correctly', ()=>{
|
|
23
|
+
const globalTheme = {
|
|
24
|
+
noStyle: false,
|
|
25
|
+
theme: {
|
|
26
|
+
'dialog.root': 'global-style',
|
|
27
|
+
'dialog.title': 'global-title'
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const localTheme = {
|
|
31
|
+
theme: {
|
|
32
|
+
'dialog.root': 'local-style',
|
|
33
|
+
'dialog.content': 'local-content'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_theme_js_0009fd1b__.useTheme)(), {
|
|
37
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.GlobalThemeContext.Provider, {
|
|
38
|
+
value: globalTheme,
|
|
39
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.LocalThemeContext.Provider, {
|
|
40
|
+
value: localTheme,
|
|
41
|
+
children: children
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(result.current).toEqual({
|
|
46
|
+
noStyle: false,
|
|
47
|
+
theme: {
|
|
48
|
+
'dialog.root': 'local-style',
|
|
49
|
+
'dialog.title': 'global-title',
|
|
50
|
+
'dialog.content': 'local-content'
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('local theme takes precedence over global theme', ()=>{
|
|
55
|
+
const globalTheme = {
|
|
56
|
+
noStyle: false,
|
|
57
|
+
theme: {
|
|
58
|
+
'dialog.root': 'global-style'
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const localTheme = {
|
|
62
|
+
noStyle: true,
|
|
63
|
+
theme: {
|
|
64
|
+
'dialog.root': 'local-style'
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_theme_js_0009fd1b__.useTheme)(), {
|
|
68
|
+
wrapper: ({ children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.GlobalThemeContext.Provider, {
|
|
69
|
+
value: globalTheme,
|
|
70
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__context_theme_context_js_ba151654__.LocalThemeContext.Provider, {
|
|
71
|
+
value: localTheme,
|
|
72
|
+
children: children
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
const theme = result.current;
|
|
77
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(theme.theme['dialog.root']).toBe('local-style');
|
|
78
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(theme.noStyle).toBe(true);
|
|
79
|
+
});
|
|
80
|
+
});
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -3,7 +3,10 @@ var __webpack_modules__ = {
|
|
|
3
3
|
"./use-consent-manager": function(module) {
|
|
4
4
|
module.exports = require("./use-consent-manager.cjs");
|
|
5
5
|
},
|
|
6
|
-
"./use-
|
|
6
|
+
"./use-focus-trap": function(module) {
|
|
7
|
+
module.exports = require("./use-focus-trap.cjs");
|
|
8
|
+
},
|
|
9
|
+
"~/hooks/use-theme": function(module) {
|
|
7
10
|
module.exports = require("./use-theme.cjs");
|
|
8
11
|
},
|
|
9
12
|
"./use-translations": function(module) {
|
|
@@ -21,12 +24,8 @@ function __webpack_require__(moduleId) {
|
|
|
21
24
|
return module.exports;
|
|
22
25
|
}
|
|
23
26
|
(()=>{
|
|
24
|
-
__webpack_require__.n =
|
|
25
|
-
var getter = module && module.__esModule ?
|
|
26
|
-
return module['default'];
|
|
27
|
-
} : function() {
|
|
28
|
-
return module;
|
|
29
|
-
};
|
|
27
|
+
__webpack_require__.n = (module)=>{
|
|
28
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
30
29
|
__webpack_require__.d(getter, {
|
|
31
30
|
a: getter
|
|
32
31
|
});
|
|
@@ -34,7 +33,7 @@ function __webpack_require__(moduleId) {
|
|
|
34
33
|
};
|
|
35
34
|
})();
|
|
36
35
|
(()=>{
|
|
37
|
-
__webpack_require__.d =
|
|
36
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
38
37
|
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
39
38
|
enumerable: true,
|
|
40
39
|
get: definition[key]
|
|
@@ -42,12 +41,10 @@ function __webpack_require__(moduleId) {
|
|
|
42
41
|
};
|
|
43
42
|
})();
|
|
44
43
|
(()=>{
|
|
45
|
-
__webpack_require__.o =
|
|
46
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
47
|
-
};
|
|
44
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
48
45
|
})();
|
|
49
46
|
(()=>{
|
|
50
|
-
__webpack_require__.r =
|
|
47
|
+
__webpack_require__.r = (exports1)=>{
|
|
51
48
|
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
52
49
|
value: 'Module'
|
|
53
50
|
});
|
|
@@ -65,21 +62,26 @@ var __webpack_exports__ = {};
|
|
|
65
62
|
return _use_consent_manager__WEBPACK_IMPORTED_MODULE_0__[key];
|
|
66
63
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
67
64
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
68
|
-
var
|
|
65
|
+
var _use_focus_trap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./use-focus-trap");
|
|
66
|
+
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
67
|
+
for(var __WEBPACK_IMPORT_KEY__ in _use_focus_trap__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
68
|
+
return _use_focus_trap__WEBPACK_IMPORTED_MODULE_1__[key];
|
|
69
|
+
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
70
|
+
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
71
|
+
var _use_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("~/hooks/use-theme");
|
|
69
72
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
70
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
71
|
-
return
|
|
73
|
+
for(var __WEBPACK_IMPORT_KEY__ in _use_theme__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
74
|
+
return _use_theme__WEBPACK_IMPORTED_MODULE_2__[key];
|
|
72
75
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
73
76
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
74
|
-
var
|
|
77
|
+
var _use_translations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./use-translations");
|
|
75
78
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
76
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
77
|
-
return
|
|
79
|
+
for(var __WEBPACK_IMPORT_KEY__ in _use_translations__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
80
|
+
return _use_translations__WEBPACK_IMPORTED_MODULE_3__[key];
|
|
78
81
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
79
82
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
80
83
|
})();
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
|
|
84
|
+
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
85
|
+
Object.defineProperty(exports, '__esModule', {
|
|
84
86
|
value: true
|
|
85
87
|
});
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
useColorScheme: ()=>useColorScheme
|
|
28
|
+
});
|
|
29
|
+
const external_react_namespaceObject = require("react");
|
|
30
|
+
function useColorScheme(colorScheme) {
|
|
31
|
+
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
32
|
+
const updateSystemTheme = ()=>{
|
|
33
|
+
const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
34
|
+
document.documentElement.classList.toggle('c15t-dark', isDark);
|
|
35
|
+
};
|
|
36
|
+
switch(colorScheme){
|
|
37
|
+
case 'light':
|
|
38
|
+
localStorage.setItem('c15tTheme', 'light');
|
|
39
|
+
document.documentElement.classList.remove('c15t-dark');
|
|
40
|
+
break;
|
|
41
|
+
case 'dark':
|
|
42
|
+
localStorage.setItem('c15tTheme', 'dark');
|
|
43
|
+
document.documentElement.classList.add('c15t-dark');
|
|
44
|
+
break;
|
|
45
|
+
default:
|
|
46
|
+
localStorage.removeItem('c15tTheme');
|
|
47
|
+
updateSystemTheme();
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
51
|
+
const handleChange = ()=>{
|
|
52
|
+
if ('system' === colorScheme) updateSystemTheme();
|
|
53
|
+
};
|
|
54
|
+
mediaQuery.addEventListener('change', handleChange);
|
|
55
|
+
return ()=>mediaQuery.removeEventListener('change', handleChange);
|
|
56
|
+
}, [
|
|
57
|
+
colorScheme
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
exports.useColorScheme = __webpack_exports__.useColorScheme;
|
|
61
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
62
|
+
"useColorScheme"
|
|
63
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
64
|
+
Object.defineProperty(exports, '__esModule', {
|
|
65
|
+
value: true
|
|
66
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ColorScheme = 'light' | 'dark' | 'system';
|
|
2
|
+
/**
|
|
3
|
+
* Manage color scheme preferences for components
|
|
4
|
+
*
|
|
5
|
+
* @param colorScheme - 'light' | 'dark' | 'system'
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* function App() {
|
|
10
|
+
* useColorScheme('system');
|
|
11
|
+
* return <div>Content</div>;
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function useColorScheme(colorScheme: ColorScheme): void;
|
|
16
|
+
//# sourceMappingURL=use-color-scheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-color-scheme.d.ts","sourceRoot":"","sources":["../../src/hooks/use-color-scheme.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,QAsCtD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
2
|
+
function useColorScheme(colorScheme) {
|
|
3
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
4
|
+
const updateSystemTheme = ()=>{
|
|
5
|
+
const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
6
|
+
document.documentElement.classList.toggle('c15t-dark', isDark);
|
|
7
|
+
};
|
|
8
|
+
switch(colorScheme){
|
|
9
|
+
case 'light':
|
|
10
|
+
localStorage.setItem('c15tTheme', 'light');
|
|
11
|
+
document.documentElement.classList.remove('c15t-dark');
|
|
12
|
+
break;
|
|
13
|
+
case 'dark':
|
|
14
|
+
localStorage.setItem('c15tTheme', 'dark');
|
|
15
|
+
document.documentElement.classList.add('c15t-dark');
|
|
16
|
+
break;
|
|
17
|
+
default:
|
|
18
|
+
localStorage.removeItem('c15tTheme');
|
|
19
|
+
updateSystemTheme();
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
23
|
+
const handleChange = ()=>{
|
|
24
|
+
if ('system' === colorScheme) updateSystemTheme();
|
|
25
|
+
};
|
|
26
|
+
mediaQuery.addEventListener('change', handleChange);
|
|
27
|
+
return ()=>mediaQuery.removeEventListener('change', handleChange);
|
|
28
|
+
}, [
|
|
29
|
+
colorScheme
|
|
30
|
+
]);
|
|
31
|
+
}
|
|
32
|
+
export { useColorScheme };
|