@navikt/ds-react 7.4.3 → 7.5.0
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/cjs/accordion/Accordion.d.ts +1 -0
- package/cjs/accordion/Accordion.js.map +1 -1
- package/cjs/accordion/AccordionContent.js +3 -1
- package/cjs/accordion/AccordionContent.js.map +1 -1
- package/cjs/accordion/AccordionHeader.js +8 -1
- package/cjs/accordion/AccordionHeader.js.map +1 -1
- package/cjs/accordion/AccordionItem.js +1 -1
- package/cjs/accordion/AccordionItem.js.map +1 -1
- package/cjs/chips/Toggle.js +2 -2
- package/cjs/chips/Toggle.js.map +1 -1
- package/cjs/date/datepicker/DatePicker.js +4 -3
- package/cjs/date/datepicker/DatePicker.js.map +1 -1
- package/cjs/date/monthpicker/MonthPicker.js +4 -3
- package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
- package/cjs/form/combobox/Combobox.d.ts +1 -1
- package/cjs/form/combobox/Input/InputController.d.ts +1 -1
- package/cjs/form/error-summary/ErrorSummary.d.ts +1 -1
- package/cjs/form/error-summary/ErrorSummary.js +1 -1
- package/cjs/overlays/action-menu/ActionMenu.js +11 -11
- package/cjs/overlays/action-menu/ActionMenu.js.map +1 -1
- package/cjs/provider/index.d.ts +1 -0
- package/cjs/provider/index.js +4 -1
- package/cjs/provider/index.js.map +1 -1
- package/cjs/provider/theme/AkselTheme.d.ts +11 -0
- package/cjs/provider/theme/AkselTheme.js +50 -0
- package/cjs/provider/theme/AkselTheme.js.map +1 -0
- package/esm/accordion/Accordion.d.ts +1 -0
- package/esm/accordion/Accordion.js.map +1 -1
- package/esm/accordion/AccordionContent.js +3 -1
- package/esm/accordion/AccordionContent.js.map +1 -1
- package/esm/accordion/AccordionHeader.js +8 -1
- package/esm/accordion/AccordionHeader.js.map +1 -1
- package/esm/accordion/AccordionItem.js +1 -1
- package/esm/accordion/AccordionItem.js.map +1 -1
- package/esm/chips/Toggle.js +2 -2
- package/esm/chips/Toggle.js.map +1 -1
- package/esm/date/datepicker/DatePicker.js +5 -4
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/monthpicker/MonthPicker.js +5 -4
- package/esm/date/monthpicker/MonthPicker.js.map +1 -1
- package/esm/form/combobox/Combobox.d.ts +1 -1
- package/esm/form/combobox/Input/InputController.d.ts +1 -1
- package/esm/form/error-summary/ErrorSummary.d.ts +1 -1
- package/esm/form/error-summary/ErrorSummary.js +1 -1
- package/esm/overlays/action-menu/ActionMenu.js +11 -11
- package/esm/overlays/action-menu/ActionMenu.js.map +1 -1
- package/esm/provider/index.d.ts +1 -0
- package/esm/provider/index.js +1 -0
- package/esm/provider/index.js.map +1 -1
- package/esm/provider/theme/AkselTheme.d.ts +11 -0
- package/esm/provider/theme/AkselTheme.js +20 -0
- package/esm/provider/theme/AkselTheme.js.map +1 -0
- package/package.json +5 -5
- package/src/accordion/Accordion.tsx +1 -0
- package/src/accordion/AccordionContent.tsx +8 -1
- package/src/accordion/AccordionHeader.tsx +11 -1
- package/src/accordion/AccordionItem.tsx +1 -0
- package/src/chips/Toggle.tsx +2 -1
- package/src/date/datepicker/DatePicker.tsx +5 -4
- package/src/date/monthpicker/MonthPicker.tsx +5 -4
- package/src/form/error-summary/ErrorSummary.tsx +1 -1
- package/src/overlays/action-menu/ActionMenu.tsx +11 -11
- package/src/provider/index.ts +4 -0
- package/src/provider/theme/AkselTheme.tsx +52 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import cl from "clsx";
|
|
2
|
+
import React, { forwardRef } from "react";
|
|
3
|
+
import { createContext } from "../../util/create-context";
|
|
4
|
+
|
|
5
|
+
type AkselThemeContext = {
|
|
6
|
+
theme: "light" | "dark";
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const [ThemeProvider, useAkselTheme] = createContext<AkselThemeContext>({
|
|
10
|
+
errorMessage: "useAkselTheme must be used within AkselThemeProvider",
|
|
11
|
+
hookName: "useAkselTheme",
|
|
12
|
+
name: "AkselThemeProvider",
|
|
13
|
+
providerName: "AkselThemeProvider",
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
type AkselThemeProps = {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
hasBackground?: boolean;
|
|
20
|
+
} & AkselThemeContext;
|
|
21
|
+
|
|
22
|
+
const AkselTheme = forwardRef<HTMLDivElement, AkselThemeProps>(
|
|
23
|
+
(props: AkselThemeProps, ref) => {
|
|
24
|
+
const context = useAkselTheme(false);
|
|
25
|
+
|
|
26
|
+
const {
|
|
27
|
+
children,
|
|
28
|
+
className,
|
|
29
|
+
theme = context?.theme ?? "light",
|
|
30
|
+
hasBackground: hasBackgroundProp = true,
|
|
31
|
+
} = props;
|
|
32
|
+
|
|
33
|
+
const isRoot = context === undefined;
|
|
34
|
+
|
|
35
|
+
const hasBackground =
|
|
36
|
+
hasBackgroundProp ?? (isRoot || props.theme !== undefined);
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<ThemeProvider theme={theme}>
|
|
40
|
+
<div
|
|
41
|
+
ref={ref}
|
|
42
|
+
className={cl("navds-theme", className, theme)}
|
|
43
|
+
data-background={hasBackground}
|
|
44
|
+
>
|
|
45
|
+
{children}
|
|
46
|
+
</div>
|
|
47
|
+
</ThemeProvider>
|
|
48
|
+
);
|
|
49
|
+
},
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
export { AkselTheme, useAkselTheme };
|