@navikt/ds-react 7.4.2 → 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/date/parts/DateInput.js +1 -1
- package/cjs/date/parts/DateInput.js.map +1 -1
- package/cjs/form/ReadOnlyIcon.d.ts +2 -4
- package/cjs/form/ReadOnlyIcon.js +5 -7
- package/cjs/form/ReadOnlyIcon.js.map +1 -1
- package/cjs/form/checkbox/Checkbox.js +1 -1
- package/cjs/form/checkbox/Checkbox.js.map +1 -1
- package/cjs/form/combobox/Combobox.d.ts +1 -1
- package/cjs/form/combobox/Combobox.js +1 -1
- package/cjs/form/combobox/Combobox.js.map +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/form/fieldset/Fieldset.js +2 -1
- package/cjs/form/fieldset/Fieldset.js.map +1 -1
- package/cjs/form/select/Select.js +1 -1
- package/cjs/form/select/Select.js.map +1 -1
- package/cjs/form/switch/Switch.js +9 -9
- package/cjs/form/switch/Switch.js.map +1 -1
- package/cjs/form/textarea/Textarea.d.ts +0 -3
- package/cjs/form/textarea/Textarea.js +1 -1
- package/cjs/form/textarea/Textarea.js.map +1 -1
- package/cjs/form/textfield/TextField.js +1 -1
- package/cjs/form/textfield/TextField.js.map +1 -1
- package/cjs/overlays/action-menu/ActionMenu.js +11 -11
- package/cjs/overlays/action-menu/ActionMenu.js.map +1 -1
- package/cjs/pagination/Pagination.d.ts +9 -3
- package/cjs/pagination/Pagination.js +7 -3
- package/cjs/pagination/Pagination.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/cjs/util/i18n/locales/en.d.ts +1 -0
- package/cjs/util/i18n/locales/en.js +1 -0
- package/cjs/util/i18n/locales/en.js.map +1 -1
- package/cjs/util/i18n/locales/nb.d.ts +1 -0
- package/cjs/util/i18n/locales/nb.js +1 -0
- package/cjs/util/i18n/locales/nb.js.map +1 -1
- package/cjs/util/i18n/locales/nn.d.ts +1 -0
- package/cjs/util/i18n/locales/nn.js +1 -0
- package/cjs/util/i18n/locales/nn.js.map +1 -1
- 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/date/parts/DateInput.js +1 -1
- package/esm/date/parts/DateInput.js.map +1 -1
- package/esm/form/ReadOnlyIcon.d.ts +2 -4
- package/esm/form/ReadOnlyIcon.js +3 -6
- package/esm/form/ReadOnlyIcon.js.map +1 -1
- package/esm/form/checkbox/Checkbox.js +2 -2
- package/esm/form/checkbox/Checkbox.js.map +1 -1
- package/esm/form/combobox/Combobox.d.ts +1 -1
- package/esm/form/combobox/Combobox.js +2 -2
- package/esm/form/combobox/Combobox.js.map +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/form/fieldset/Fieldset.js +3 -2
- package/esm/form/fieldset/Fieldset.js.map +1 -1
- package/esm/form/select/Select.js +2 -2
- package/esm/form/select/Select.js.map +1 -1
- package/esm/form/switch/Switch.js +10 -10
- package/esm/form/switch/Switch.js.map +1 -1
- package/esm/form/textarea/Textarea.d.ts +0 -3
- package/esm/form/textarea/Textarea.js +1 -1
- package/esm/form/textarea/Textarea.js.map +1 -1
- package/esm/form/textfield/TextField.js +1 -1
- package/esm/form/textfield/TextField.js.map +1 -1
- package/esm/overlays/action-menu/ActionMenu.js +11 -11
- package/esm/overlays/action-menu/ActionMenu.js.map +1 -1
- package/esm/pagination/Pagination.d.ts +9 -3
- package/esm/pagination/Pagination.js +7 -3
- package/esm/pagination/Pagination.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/esm/util/i18n/locales/en.d.ts +1 -0
- package/esm/util/i18n/locales/en.js +1 -0
- package/esm/util/i18n/locales/en.js.map +1 -1
- package/esm/util/i18n/locales/nb.d.ts +1 -0
- package/esm/util/i18n/locales/nb.js +1 -0
- package/esm/util/i18n/locales/nb.js.map +1 -1
- package/esm/util/i18n/locales/nn.d.ts +1 -0
- package/esm/util/i18n/locales/nn.js +1 -0
- package/esm/util/i18n/locales/nn.js.map +1 -1
- 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/date/parts/DateInput.tsx +1 -1
- package/src/form/ReadOnlyIcon.tsx +14 -17
- package/src/form/checkbox/Checkbox.tsx +2 -4
- package/src/form/combobox/Combobox.tsx +2 -2
- package/src/form/error-summary/ErrorSummary.tsx +1 -1
- package/src/form/fieldset/Fieldset.tsx +3 -2
- package/src/form/select/Select.tsx +2 -2
- package/src/form/switch/Switch.tsx +9 -10
- package/src/form/textarea/Textarea.tsx +1 -4
- package/src/form/textfield/TextField.tsx +1 -1
- package/src/overlays/action-menu/ActionMenu.tsx +11 -11
- package/src/pagination/Pagination.tsx +16 -6
- package/src/provider/index.ts +4 -0
- package/src/provider/theme/AkselTheme.tsx +52 -0
- package/src/util/i18n/locales/en.ts +1 -0
- package/src/util/i18n/locales/nb.ts +1 -0
- package/src/util/i18n/locales/nn.ts +1 -0
|
@@ -9,6 +9,17 @@ import PaginationItem, {
|
|
|
9
9
|
PaginationItemType,
|
|
10
10
|
} from "./PaginationItem";
|
|
11
11
|
|
|
12
|
+
interface RenderItemProps
|
|
13
|
+
extends Pick<
|
|
14
|
+
PaginationItemProps,
|
|
15
|
+
"className" | "disabled" | "selected" | "icon" | "iconPosition"
|
|
16
|
+
> {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
19
|
+
page: number;
|
|
20
|
+
size: Exclude<PaginationProps["size"], undefined>;
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
|
|
13
24
|
/**
|
|
14
25
|
* Current page.
|
|
@@ -46,9 +57,9 @@ export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
46
57
|
prevNextTexts?: boolean;
|
|
47
58
|
/**
|
|
48
59
|
* Override pagination item rendering.
|
|
49
|
-
* @default
|
|
60
|
+
* @default PaginationItem
|
|
50
61
|
*/
|
|
51
|
-
renderItem?: (item:
|
|
62
|
+
renderItem?: (item: RenderItemProps) => ReturnType<React.FC>;
|
|
52
63
|
/**
|
|
53
64
|
* Pagination heading. We recommend adding heading instead of `aria-label` to help assistive technologies with an extra navigation-stop.
|
|
54
65
|
*/
|
|
@@ -111,7 +122,7 @@ export const getSteps = ({
|
|
|
111
122
|
* ```jsx
|
|
112
123
|
* <Pagination
|
|
113
124
|
* page={pageState}
|
|
114
|
-
* onPageChange={
|
|
125
|
+
* onPageChange={setPageState}
|
|
115
126
|
* count={9}
|
|
116
127
|
* boundaryCount={1}
|
|
117
128
|
* siblingCount={1}
|
|
@@ -131,9 +142,7 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
|
|
|
131
142
|
prevNextTexts = false,
|
|
132
143
|
srHeading,
|
|
133
144
|
"aria-labelledby": ariaLabelledBy,
|
|
134
|
-
renderItem: Item =
|
|
135
|
-
<PaginationItem {...item} />
|
|
136
|
-
),
|
|
145
|
+
renderItem: Item = PaginationItem,
|
|
137
146
|
...rest
|
|
138
147
|
},
|
|
139
148
|
ref,
|
|
@@ -218,6 +227,7 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
|
|
|
218
227
|
) : (
|
|
219
228
|
<li key={step}>
|
|
220
229
|
<Item
|
|
230
|
+
/* Remember to update RenderItemProps if you make changes to props sent into Item */
|
|
221
231
|
onClick={() => onPageChange?.(n)}
|
|
222
232
|
selected={page === n}
|
|
223
233
|
page={n}
|
package/src/provider/index.ts
CHANGED
|
@@ -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 };
|