@bbl-digital/snorre 4.0.21 → 4.0.23
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/bundle.js +117 -31
- package/esm/core/BoxedTable/TableBody/index.js +10 -0
- package/esm/core/BoxedTable/TableBody/styles.js +16 -0
- package/esm/core/Button/Button.stories.js +51 -49
- package/esm/core/Card/index.js +4 -3
- package/esm/core/Checkbox/index.js +32 -9
- package/esm/core/CollapseList/Item.js +4 -3
- package/esm/core/CollapseList/index.js +4 -3
- package/esm/core/Datepicker/Datepicker.stories.js +7 -6
- package/esm/core/DatepickerRange/DatepickerRange.stories.js +4 -3
- package/esm/core/Dropdown/index.js +0 -1
- package/esm/core/DropdownMenu/DropdownMenu.stories.js +34 -26
- package/esm/core/DropdownMenu/DropdownMenuOption.js +2 -0
- package/esm/core/DropdownMenu/index.js +16 -0
- package/esm/core/Editor/Editor.stories.js +31 -30
- package/esm/core/FileInput/index.js +7 -1
- package/esm/core/GoogleButton/GoogleButton.stories.js +4 -4
- package/esm/core/Header/Header.stories.js +42 -45
- package/esm/core/HighlightText/HighlightText.stories.js +11 -11
- package/esm/core/Image/index.js +19 -4
- package/esm/core/ImagePicker/ImagePicker.stories.js +2 -1
- package/esm/core/ImagePicker/index.js +4 -0
- package/esm/core/ImageViewer/index.js +15 -5
- package/esm/core/InfoButton/InfoButton.stories.js +23 -22
- package/esm/core/InfoButton/index.js +4 -0
- package/esm/core/Input/index.js +4 -0
- package/esm/core/private/ButtonOrLink.js +4 -3
- package/lib/core/Autocomplete/styles.d.ts +39 -1
- package/lib/core/Autocomplete/styles.d.ts.map +1 -1
- package/lib/core/Box/styles.d.ts +39 -1
- package/lib/core/Box/styles.d.ts.map +1 -1
- package/lib/core/BoxedTable/TableBody/index.d.ts +7 -0
- package/lib/core/BoxedTable/TableBody/index.d.ts.map +1 -0
- package/lib/core/BoxedTable/TableBody/index.js +10 -0
- package/lib/core/BoxedTable/TableBody/styles.d.ts +6 -0
- package/lib/core/BoxedTable/TableBody/styles.d.ts.map +1 -0
- package/lib/core/BoxedTable/TableBody/styles.js +16 -0
- package/lib/core/Button/Button.stories.d.ts +20 -63
- package/lib/core/Button/Button.stories.d.ts.map +1 -1
- package/lib/core/Button/Button.stories.js +51 -49
- package/lib/core/Button/index.d.ts +54 -3
- package/lib/core/Button/index.d.ts.map +1 -1
- package/lib/core/Card/index.d.ts +14 -15
- package/lib/core/Card/index.d.ts.map +1 -1
- package/lib/core/Card/index.js +4 -3
- package/lib/core/Checkbox/index.d.ts +3 -3
- package/lib/core/Checkbox/index.d.ts.map +1 -1
- package/lib/core/Checkbox/index.js +32 -9
- package/lib/core/CollapseList/Item.d.ts +1 -1
- package/lib/core/CollapseList/Item.d.ts.map +1 -1
- package/lib/core/CollapseList/Item.js +4 -3
- package/lib/core/CollapseList/index.d.ts +1 -1
- package/lib/core/CollapseList/index.d.ts.map +1 -1
- package/lib/core/CollapseList/index.js +4 -3
- package/lib/core/CollapseList/styles.d.ts +39 -1
- package/lib/core/CollapseList/styles.d.ts.map +1 -1
- package/lib/core/Datepicker/Datepicker.stories.d.ts +6 -6
- package/lib/core/Datepicker/Datepicker.stories.d.ts.map +1 -1
- package/lib/core/Datepicker/Datepicker.stories.js +7 -6
- package/lib/core/DatepickerRange/DatepickerRange.stories.d.ts +6 -7
- package/lib/core/DatepickerRange/DatepickerRange.stories.d.ts.map +1 -1
- package/lib/core/DatepickerRange/DatepickerRange.stories.js +4 -3
- package/lib/core/Dropdown/index.d.ts.map +1 -1
- package/lib/core/Dropdown/index.js +0 -1
- package/lib/core/DropdownMenu/DropdownMenu.stories.d.ts +8 -15
- package/lib/core/DropdownMenu/DropdownMenu.stories.d.ts.map +1 -1
- package/lib/core/DropdownMenu/DropdownMenu.stories.js +34 -26
- package/lib/core/DropdownMenu/DropdownMenuOption.d.ts.map +1 -1
- package/lib/core/DropdownMenu/DropdownMenuOption.js +2 -0
- package/lib/core/DropdownMenu/index.d.ts.map +1 -1
- package/lib/core/DropdownMenu/index.js +16 -0
- package/lib/core/Editor/Editor.stories.d.ts +10 -23
- package/lib/core/Editor/Editor.stories.d.ts.map +1 -1
- package/lib/core/Editor/Editor.stories.js +31 -30
- package/lib/core/FileInput/index.d.ts +3 -1
- package/lib/core/FileInput/index.d.ts.map +1 -1
- package/lib/core/FileInput/index.js +7 -1
- package/lib/core/FileInput/styles.d.ts +39 -1
- package/lib/core/FileInput/styles.d.ts.map +1 -1
- package/lib/core/GoogleButton/GoogleButton.stories.d.ts +6 -7
- package/lib/core/GoogleButton/GoogleButton.stories.d.ts.map +1 -1
- package/lib/core/GoogleButton/GoogleButton.stories.js +4 -4
- package/lib/core/Header/Header.stories.d.ts +13 -35
- package/lib/core/Header/Header.stories.d.ts.map +1 -1
- package/lib/core/Header/Header.stories.js +42 -45
- package/lib/core/HighlightText/HighlightText.stories.d.ts +7 -11
- package/lib/core/HighlightText/HighlightText.stories.d.ts.map +1 -1
- package/lib/core/HighlightText/HighlightText.stories.js +11 -11
- package/lib/core/Image/index.d.ts +1 -0
- package/lib/core/Image/index.d.ts.map +1 -1
- package/lib/core/Image/index.js +19 -4
- package/lib/core/ImagePicker/ImagePicker.stories.d.ts +6 -17
- package/lib/core/ImagePicker/ImagePicker.stories.d.ts.map +1 -1
- package/lib/core/ImagePicker/ImagePicker.stories.js +2 -1
- package/lib/core/ImagePicker/index.d.ts.map +1 -1
- package/lib/core/ImagePicker/index.js +4 -0
- package/lib/core/ImageViewer/index.d.ts.map +1 -1
- package/lib/core/ImageViewer/index.js +15 -5
- package/lib/core/InfoButton/InfoButton.stories.d.ts +10 -23
- package/lib/core/InfoButton/InfoButton.stories.d.ts.map +1 -1
- package/lib/core/InfoButton/InfoButton.stories.js +23 -22
- package/lib/core/InfoButton/index.d.ts.map +1 -1
- package/lib/core/InfoButton/index.js +4 -0
- package/lib/core/InfoButton/styles.d.ts +39 -1
- package/lib/core/InfoButton/styles.d.ts.map +1 -1
- package/lib/core/Input/index.d.ts +1 -1
- package/lib/core/Input/index.d.ts.map +1 -1
- package/lib/core/Input/index.js +4 -0
- package/lib/core/private/ButtonOrLink.d.ts +46 -3
- package/lib/core/private/ButtonOrLink.d.ts.map +1 -1
- package/lib/core/private/ButtonOrLink.js +4 -3
- package/lib/layout/Footer/FooterButton/styles.d.ts +3 -3
- package/lib/layout/Footer/FooterLink/styles.d.ts +3 -3
- package/lib/layout/Menu/MenuTop/styles.d.ts +3 -3
- package/package.json +1 -1
- package/esm/core/Autocomplete/utils/useHandleOptionsHeight.js +0 -16
- package/esm/core/CheckboxController/index.js +0 -22
- package/esm/core/Datepicker/yearMonthForm.js +0 -56
- package/esm/core/EditorOld/config.js +0 -69
- package/esm/core/EditorOld/index.js +0 -147
- package/esm/core/EditorOld/styles.js +0 -65
- package/esm/core/ImageCarousel/index.js +0 -70
- package/esm/core/ImageCarousel/styles.js +0 -58
- package/esm/enums/ModifierKey.js +0 -13
- package/lib/core/Autocomplete/utils/useHandleOptionsHeight.d.ts +0 -7
- package/lib/core/Autocomplete/utils/useHandleOptionsHeight.d.ts.map +0 -1
- package/lib/core/Autocomplete/utils/useHandleOptionsHeight.js +0 -16
- package/lib/core/CheckboxController/index.d.ts +0 -1
- package/lib/core/CheckboxController/index.d.ts.map +0 -1
- package/lib/core/CheckboxController/index.js +0 -22
- package/lib/core/Datepicker/yearMonthForm.d.ts +0 -10
- package/lib/core/Datepicker/yearMonthForm.d.ts.map +0 -1
- package/lib/core/Datepicker/yearMonthForm.js +0 -56
- package/lib/core/EditorOld/config.d.ts +0 -56
- package/lib/core/EditorOld/config.d.ts.map +0 -1
- package/lib/core/EditorOld/config.js +0 -69
- package/lib/core/EditorOld/index.d.ts +0 -39
- package/lib/core/EditorOld/index.d.ts.map +0 -1
- package/lib/core/EditorOld/index.js +0 -147
- package/lib/core/EditorOld/styles.d.ts +0 -23
- package/lib/core/EditorOld/styles.d.ts.map +0 -1
- package/lib/core/EditorOld/styles.js +0 -65
- package/lib/core/ImageCarousel/index.d.ts +0 -11
- package/lib/core/ImageCarousel/index.d.ts.map +0 -1
- package/lib/core/ImageCarousel/index.js +0 -70
- package/lib/core/ImageCarousel/styles.d.ts +0 -26
- package/lib/core/ImageCarousel/styles.d.ts.map +0 -1
- package/lib/core/ImageCarousel/styles.js +0 -58
- package/lib/enums/ModifierKey.d.ts +0 -12
- package/lib/enums/ModifierKey.d.ts.map +0 -1
- package/lib/enums/ModifierKey.js +0 -13
package/lib/core/Input/index.js
CHANGED
@@ -62,12 +62,14 @@ const Input = /*#__PURE__*/React.forwardRef(({
|
|
62
62
|
return _jsxs("div", {
|
63
63
|
css: styles.relative,
|
64
64
|
children: [_jsxs("label", {
|
65
|
+
htmlFor: props.id,
|
65
66
|
css: theme => [styles.default(theme), props.highlight && styles.highligted(height), type === 'search' && styles.searchLabel(theme), (props.invalid || props.invalidMessage) && styles.invalid(theme), height && styles.height(height)],
|
66
67
|
className: className,
|
67
68
|
children: [props.label && _jsx("span", {
|
68
69
|
css: info && styles.pr4,
|
69
70
|
children: props.label
|
70
71
|
}), _jsx("input", {
|
72
|
+
id: props.id,
|
71
73
|
type: type,
|
72
74
|
...(type !== 'password' && {
|
73
75
|
value
|
@@ -81,6 +83,7 @@ const Input = /*#__PURE__*/React.forwardRef(({
|
|
81
83
|
maxLength: maxlength,
|
82
84
|
ref: ref,
|
83
85
|
name: props.name,
|
86
|
+
"aria-describedby": props.invalidMessage ? 'input-error-message' : undefined,
|
84
87
|
css: theme => [type === 'text' && styles.text(theme), type === 'search' && styles.search(theme), type === 'password' && styles.password(theme), type === 'number' && styles.number(theme), props.disabled && styles.disabled(theme), cardInput && styles.cardInput(theme)],
|
85
88
|
children: React.Children.map(props.children, child => {
|
86
89
|
if (!child) {
|
@@ -91,6 +94,7 @@ const Input = /*#__PURE__*/React.forwardRef(({
|
|
91
94
|
}), type === 'search' && _jsx(IconSearch, {}), props.invalidMessage && _jsx(IconErrorOutline, {
|
92
95
|
size: "16px"
|
93
96
|
}), props.invalidMessage && _jsx("span", {
|
97
|
+
id: "input-error-message",
|
94
98
|
css: theme => [styles.errorMessage(theme), !props?.label && styles.errorMessageNoLabel],
|
95
99
|
children: props.invalidMessage
|
96
100
|
})]
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
export declare type ButtonOrLinkTypes = HTMLAnchorElement | HTMLButtonElement;
|
3
3
|
export declare type Props = React.HTMLAttributes<ButtonOrLinkTypes> & {
|
4
|
-
[prop: string]: unknown;
|
5
4
|
/** Icon to display at the end the content. */
|
6
5
|
afterIcon?: React.ReactNode;
|
7
6
|
/** Icon to display at the start the content. */
|
@@ -19,10 +18,11 @@ export declare type Props = React.HTMLAttributes<ButtonOrLinkTypes> & {
|
|
19
18
|
/** Callback fired when the element is released. */
|
20
19
|
onMouseUp?: (event: React.MouseEvent<ButtonOrLinkTypes>) => void;
|
21
20
|
/** Keypress handler, to handle any wanted eventlistener button clicks */
|
22
|
-
|
21
|
+
onCustomKeyPress?: {
|
23
22
|
key: string;
|
24
23
|
action: (event: KeyboardEvent) => void;
|
25
24
|
};
|
25
|
+
onKeyPress?: (event: KeyboardEvent) => void;
|
26
26
|
/** Callback fired when the enter key is released. */
|
27
27
|
onEnterKeyPress?: (event: KeyboardEvent) => void;
|
28
28
|
/** Callback fired when the escape key is released. */
|
@@ -44,6 +44,49 @@ export declare type Props = React.HTMLAttributes<ButtonOrLinkTypes> & {
|
|
44
44
|
/** Set tabindex */
|
45
45
|
tabIndex?: number;
|
46
46
|
};
|
47
|
-
declare const ButtonOrLink: React.ForwardRefExoticComponent<
|
47
|
+
declare const ButtonOrLink: React.ForwardRefExoticComponent<React.HTMLAttributes<ButtonOrLinkTypes> & {
|
48
|
+
/** Icon to display at the end the content. */
|
49
|
+
afterIcon?: React.ReactNode;
|
50
|
+
/** Icon to display at the start the content. */
|
51
|
+
beforeIcon?: React.ReactNode;
|
52
|
+
/** Content within the button or link. */
|
53
|
+
children: NonNullable<React.ReactNode>;
|
54
|
+
/** Whether the element is disabled. */
|
55
|
+
disabled?: boolean | undefined;
|
56
|
+
/** Render as an anchor link with a URL. */
|
57
|
+
href?: string | undefined;
|
58
|
+
/** Whether the element is loading. */
|
59
|
+
loading?: boolean | undefined;
|
60
|
+
/** Callback fired when the element is clicked. */
|
61
|
+
onClick?: ((event: React.MouseEvent<ButtonOrLinkTypes>) => void) | undefined;
|
62
|
+
/** Callback fired when the element is released. */
|
63
|
+
onMouseUp?: ((event: React.MouseEvent<ButtonOrLinkTypes>) => void) | undefined;
|
64
|
+
/** Keypress handler, to handle any wanted eventlistener button clicks */
|
65
|
+
onCustomKeyPress?: {
|
66
|
+
key: string;
|
67
|
+
action: (event: KeyboardEvent) => void;
|
68
|
+
} | undefined;
|
69
|
+
onKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
70
|
+
/** Callback fired when the enter key is released. */
|
71
|
+
onEnterKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
72
|
+
/** Callback fired when the escape key is released. */
|
73
|
+
onEscapeKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
74
|
+
/** When a link, open the target in a new window. */
|
75
|
+
openInNewWindow?: boolean | undefined;
|
76
|
+
/** Rel attribute override for if the component has an href */
|
77
|
+
rel?: string | undefined;
|
78
|
+
/** Add a data-tracking-event attribute. */
|
79
|
+
trackingEvent?: string | undefined;
|
80
|
+
/** Add a data-tracking-name attribute. */
|
81
|
+
trackingName?: string | undefined;
|
82
|
+
/** When a button, the type of button. */
|
83
|
+
type?: "button" | "submit" | "reset" | undefined;
|
84
|
+
/** Link target */
|
85
|
+
target?: string | undefined;
|
86
|
+
/** Specifies the link as a download link . */
|
87
|
+
download?: any;
|
88
|
+
/** Set tabindex */
|
89
|
+
tabIndex?: number | undefined;
|
90
|
+
} & React.RefAttributes<any>>;
|
48
91
|
export default ButtonOrLink;
|
49
92
|
//# sourceMappingURL=ButtonOrLink.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ButtonOrLink.d.ts","sourceRoot":"","sources":["../../../src/packages/core/private/ButtonOrLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,oBAAY,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAErE,oBAAY,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG;IAC5D,
|
1
|
+
{"version":3,"file":"ButtonOrLink.d.ts","sourceRoot":"","sources":["../../../src/packages/core/private/ButtonOrLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,oBAAY,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAErE,oBAAY,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG;IAC5D,8CAA8C;IAC9C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,gDAAgD;IAChD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,yCAAyC;IACzC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACtC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;IAC9D,mDAAmD;IACnD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;IAChE,yEAAyE;IACzE,gBAAgB,CAAC,EAAE;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;KACvC,CAAA;IACD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3C,qDAAqD;IACrD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACjD,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,QAAA,MAAM,YAAY;IA5ChB,8CAA8C;gBAClC,MAAM,SAAS;IAC3B,gDAAgD;iBACnC,MAAM,SAAS;IAC5B,yCAAyC;cAC/B,YAAY,MAAM,SAAS,CAAC;IACtC,uCAAuC;;IAEvC,2CAA2C;;IAE3C,sCAAsC;;IAEtC,kDAAkD;uBAChC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,IAAI;IAC9D,mDAAmD;yBAC/B,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,IAAI;IAChE,yEAAyE;;aAElE,MAAM;wBACK,aAAa,KAAK,IAAI;;0BAEnB,aAAa,KAAK,IAAI;IAC3C,qDAAqD;+BAC3B,aAAa,KAAK,IAAI;IAChD,uDAAuD;gCAC5B,aAAa,KAAK,IAAI;IACjD,oDAAoD;;IAEpD,8DAA8D;;IAE9D,2CAA2C;;IAE3C,0CAA0C;;IAE1C,yCAAyC;;IAEzC,kBAAkB;;IAElB,8CAA8C;eACnC,GAAG;IACd,mBAAmB;;6BAoHpB,CAAA;AAED,eAAe,YAAY,CAAA"}
|
@@ -7,7 +7,6 @@ const ButtonOrLink = /*#__PURE__*/React.forwardRef(({
|
|
7
7
|
beforeIcon,
|
8
8
|
children,
|
9
9
|
disabled = false,
|
10
|
-
flexAlign,
|
11
10
|
href = '',
|
12
11
|
loading = false,
|
13
12
|
openInNewWindow = false,
|
@@ -22,6 +21,7 @@ const ButtonOrLink = /*#__PURE__*/React.forwardRef(({
|
|
22
21
|
onMouseUp,
|
23
22
|
onEnterKeyPress,
|
24
23
|
onEscapeKeyPress,
|
24
|
+
onCustomKeyPress,
|
25
25
|
onKeyPress,
|
26
26
|
...restProps
|
27
27
|
}, ref) => {
|
@@ -44,10 +44,11 @@ const ButtonOrLink = /*#__PURE__*/React.forwardRef(({
|
|
44
44
|
const handleKeyPress = event => {
|
45
45
|
if (onEnterKeyPress && event.key === 'Enter') onEnterKeyPress(event);
|
46
46
|
if (onEscapeKeyPress && event.key === 'Escape') onEscapeKeyPress(event);
|
47
|
-
if (
|
47
|
+
if (onCustomKeyPress && event.key === onCustomKeyPress.key) onCustomKeyPress.action(event);
|
48
|
+
if (onKeyPress) onKeyPress(event);
|
48
49
|
};
|
49
50
|
useEffect(() => {
|
50
|
-
const hasKeyPressEvents = onEnterKeyPress || onEscapeKeyPress || onKeyPress;
|
51
|
+
const hasKeyPressEvents = onEnterKeyPress || onEscapeKeyPress || onKeyPress || onCustomKeyPress;
|
51
52
|
if (!hasKeyPressEvents) return;
|
52
53
|
window.addEventListener('keyup', handleKeyPress);
|
53
54
|
return () => {
|
@@ -1,6 +1,5 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
export declare const Wrapper: import("@emotion/styled").StyledComponent<import("react").HTMLAttributes<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes> & {
|
3
|
-
[prop: string]: unknown;
|
4
3
|
afterIcon?: import("react").ReactNode;
|
5
4
|
beforeIcon?: import("react").ReactNode;
|
6
5
|
children: string | number | boolean | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | import("react").ReactPortal;
|
@@ -9,17 +8,18 @@ export declare const Wrapper: import("@emotion/styled").StyledComponent<import("
|
|
9
8
|
loading?: boolean | undefined;
|
10
9
|
onClick?: ((event: import("react").MouseEvent<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes, MouseEvent>) => void) | undefined;
|
11
10
|
onMouseUp?: ((event: import("react").MouseEvent<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes, MouseEvent>) => void) | undefined;
|
12
|
-
|
11
|
+
onCustomKeyPress?: {
|
13
12
|
key: string;
|
14
13
|
action: (event: KeyboardEvent) => void;
|
15
14
|
} | undefined;
|
15
|
+
onKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
16
16
|
onEnterKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
17
17
|
onEscapeKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
18
18
|
openInNewWindow?: boolean | undefined;
|
19
19
|
rel?: string | undefined;
|
20
20
|
trackingEvent?: string | undefined;
|
21
21
|
trackingName?: string | undefined;
|
22
|
-
type?: "button" | "
|
22
|
+
type?: "button" | "submit" | "reset" | undefined;
|
23
23
|
target?: string | undefined;
|
24
24
|
download?: any;
|
25
25
|
tabIndex?: number | undefined;
|
@@ -1,6 +1,5 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
export declare const Wrapper: import("@emotion/styled").StyledComponent<import("react").HTMLAttributes<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes> & {
|
3
|
-
[prop: string]: unknown;
|
4
3
|
afterIcon?: import("react").ReactNode;
|
5
4
|
beforeIcon?: import("react").ReactNode;
|
6
5
|
children: string | number | boolean | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | import("react").ReactPortal;
|
@@ -9,17 +8,18 @@ export declare const Wrapper: import("@emotion/styled").StyledComponent<import("
|
|
9
8
|
loading?: boolean | undefined;
|
10
9
|
onClick?: ((event: import("react").MouseEvent<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes, MouseEvent>) => void) | undefined;
|
11
10
|
onMouseUp?: ((event: import("react").MouseEvent<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes, MouseEvent>) => void) | undefined;
|
12
|
-
|
11
|
+
onCustomKeyPress?: {
|
13
12
|
key: string;
|
14
13
|
action: (event: KeyboardEvent) => void;
|
15
14
|
} | undefined;
|
15
|
+
onKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
16
16
|
onEnterKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
17
17
|
onEscapeKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
18
18
|
openInNewWindow?: boolean | undefined;
|
19
19
|
rel?: string | undefined;
|
20
20
|
trackingEvent?: string | undefined;
|
21
21
|
trackingName?: string | undefined;
|
22
|
-
type?: "button" | "
|
22
|
+
type?: "button" | "submit" | "reset" | undefined;
|
23
23
|
target?: string | undefined;
|
24
24
|
download?: any;
|
25
25
|
tabIndex?: number | undefined;
|
@@ -1,6 +1,5 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
export declare const StyledLink: import("@emotion/styled").StyledComponent<import("react").HTMLAttributes<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes> & {
|
3
|
-
[prop: string]: unknown;
|
4
3
|
afterIcon?: import("react").ReactNode;
|
5
4
|
beforeIcon?: import("react").ReactNode;
|
6
5
|
children: string | number | boolean | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | import("react").ReactPortal;
|
@@ -9,17 +8,18 @@ export declare const StyledLink: import("@emotion/styled").StyledComponent<impor
|
|
9
8
|
loading?: boolean | undefined;
|
10
9
|
onClick?: ((event: import("react").MouseEvent<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes, MouseEvent>) => void) | undefined;
|
11
10
|
onMouseUp?: ((event: import("react").MouseEvent<import("../../../core/private/ButtonOrLink").ButtonOrLinkTypes, MouseEvent>) => void) | undefined;
|
12
|
-
|
11
|
+
onCustomKeyPress?: {
|
13
12
|
key: string;
|
14
13
|
action: (event: KeyboardEvent) => void;
|
15
14
|
} | undefined;
|
15
|
+
onKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
16
16
|
onEnterKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
17
17
|
onEscapeKeyPress?: ((event: KeyboardEvent) => void) | undefined;
|
18
18
|
openInNewWindow?: boolean | undefined;
|
19
19
|
rel?: string | undefined;
|
20
20
|
trackingEvent?: string | undefined;
|
21
21
|
trackingName?: string | undefined;
|
22
|
-
type?: "button" | "
|
22
|
+
type?: "button" | "submit" | "reset" | undefined;
|
23
23
|
target?: string | undefined;
|
24
24
|
download?: any;
|
25
25
|
tabIndex?: number | undefined;
|
package/package.json
CHANGED
@@ -1,16 +0,0 @@
|
|
1
|
-
import { createRef, useEffect, useState } from 'react';
|
2
|
-
|
3
|
-
const useHandleOptionsHeight = () => {
|
4
|
-
const [optionsHeight, setOptionsHeight] = useState(0);
|
5
|
-
const optionsRef = /*#__PURE__*/createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const rect = optionsRef.current?.getBoundingClientRect();
|
8
|
-
setOptionsHeight(rect?.height || 0); // eslint-disable-next-line react-hooks/exhaustive-deps
|
9
|
-
}, [optionsRef.current]);
|
10
|
-
return {
|
11
|
-
optionsHeight,
|
12
|
-
optionsRef
|
13
|
-
};
|
14
|
-
};
|
15
|
-
|
16
|
-
export default useHandleOptionsHeight;
|
@@ -1,22 +0,0 @@
|
|
1
|
-
// import React from 'react'
|
2
|
-
// interface IProps {
|
3
|
-
// /** Function children in which CheckBox components can be rendered. */
|
4
|
-
// children: (component: React.ComponentType, values: string[], id: string) => void;
|
5
|
-
// /** Unique name of the field. */
|
6
|
-
// name: string,;
|
7
|
-
// /** Callback that is triggered when a child CheckBox is clicked. */
|
8
|
-
// onChange: (values: string[], event: React.ChangeEvent<HTMLInputElement>) => void;
|
9
|
-
// /** Default checked values. */
|
10
|
-
// value?: string,[];
|
11
|
-
// }
|
12
|
-
// const CheckboxController: React.FC<IProps> = props => {
|
13
|
-
// const type: string = 'checkbox'
|
14
|
-
// const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
15
|
-
// if (props.onChange) {
|
16
|
-
// props.onChange(e.target.checked)
|
17
|
-
// }
|
18
|
-
// }
|
19
|
-
// return (
|
20
|
-
// )
|
21
|
-
// }
|
22
|
-
// export default Checkbox
|
@@ -1,56 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { MONTHS } from '../../utils/dates';
|
3
|
-
import { StyledSelect, Div } from './styles';
|
4
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
5
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
6
|
-
|
7
|
-
const YearMonthForm = ({
|
8
|
-
onChange,
|
9
|
-
date,
|
10
|
-
fromDate,
|
11
|
-
toDate
|
12
|
-
}) => {
|
13
|
-
const months = MONTHS;
|
14
|
-
const years = [];
|
15
|
-
|
16
|
-
for (let i = fromDate.getFullYear(); i <= toDate.getFullYear(); i += 1) {
|
17
|
-
years.push(i);
|
18
|
-
}
|
19
|
-
|
20
|
-
const changeMonth = e => {
|
21
|
-
let newDate = date;
|
22
|
-
newDate.setMonth(e.target.value);
|
23
|
-
if (newDate > toDate) newDate = toDate;
|
24
|
-
onChange(newDate);
|
25
|
-
};
|
26
|
-
|
27
|
-
const changeYear = e => {
|
28
|
-
let newDate = date;
|
29
|
-
newDate.setFullYear(e.target.value);
|
30
|
-
if (newDate > toDate) newDate = toDate;
|
31
|
-
onChange(newDate);
|
32
|
-
};
|
33
|
-
|
34
|
-
return /*#__PURE__*/_jsxs(Div, {
|
35
|
-
className: "DayPicker-Caption",
|
36
|
-
children: [/*#__PURE__*/_jsx(StyledSelect, {
|
37
|
-
name: "month",
|
38
|
-
onChange: changeMonth,
|
39
|
-
value: date.getMonth(),
|
40
|
-
children: months.map((month, i) => /*#__PURE__*/_jsx("option", {
|
41
|
-
value: i,
|
42
|
-
children: month
|
43
|
-
}, month))
|
44
|
-
}), /*#__PURE__*/_jsx(StyledSelect, {
|
45
|
-
name: "year",
|
46
|
-
onChange: changeYear,
|
47
|
-
value: date.getFullYear(),
|
48
|
-
children: years.map(year => /*#__PURE__*/_jsx("option", {
|
49
|
-
value: year,
|
50
|
-
children: year
|
51
|
-
}, year))
|
52
|
-
})]
|
53
|
-
});
|
54
|
-
};
|
55
|
-
|
56
|
-
export default YearMonthForm;
|
@@ -1,69 +0,0 @@
|
|
1
|
-
export const basicToolbar = {
|
2
|
-
options: ['inline', 'list'],
|
3
|
-
inline: {
|
4
|
-
options: ['bold', 'italic', 'underline']
|
5
|
-
}
|
6
|
-
};
|
7
|
-
export const richToolbar = {
|
8
|
-
options: ['blockType', 'inline', 'list', 'textAlign', 'link'],
|
9
|
-
inline: {
|
10
|
-
options: ['bold', 'italic', 'underline']
|
11
|
-
},
|
12
|
-
textAlign: {
|
13
|
-
options: ['left', 'center', 'right', 'justify']
|
14
|
-
},
|
15
|
-
blockType: {
|
16
|
-
inDropdown: true,
|
17
|
-
options: ['Normal', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6']
|
18
|
-
},
|
19
|
-
link: {
|
20
|
-
showOpenOptionOnHover: true,
|
21
|
-
defaultTargetOption: '_blank',
|
22
|
-
options: ['link', 'unlink']
|
23
|
-
}
|
24
|
-
};
|
25
|
-
export const htmlToEntity = (nodeName, node, createEntity) => {
|
26
|
-
if (nodeName === 'a') {
|
27
|
-
return createEntity('LINK', 'MUTABLE', {
|
28
|
-
url: node.href
|
29
|
-
});
|
30
|
-
}
|
31
|
-
};
|
32
|
-
export const getStrippedHtml = html => {
|
33
|
-
return html.replace(/<img[^>]*>/g, '');
|
34
|
-
};
|
35
|
-
export const editorLabels = {
|
36
|
-
// Generic
|
37
|
-
'generic.add': 'Legg til',
|
38
|
-
'generic.cancel': 'Avbryt',
|
39
|
-
// Inline
|
40
|
-
'components.controls.inline.bold': 'Fet',
|
41
|
-
'components.controls.inline.italic': 'Kursiv',
|
42
|
-
'components.controls.inline.underline': 'Understrek',
|
43
|
-
// List
|
44
|
-
'components.controls.list.unordered': 'Punktliste',
|
45
|
-
'components.controls.list.ordered': 'Nummerliste',
|
46
|
-
'components.controls.list.indent': 'Innrykk',
|
47
|
-
'components.controls.list.outdent': 'Utrykk',
|
48
|
-
// Text align
|
49
|
-
'components.controls.textAlign.left': 'Venstrejuster',
|
50
|
-
'components.controls.textAlign.center': 'Midtstill',
|
51
|
-
'components.controls.textAlign.right': 'Høyrejuster',
|
52
|
-
'components.controls.textAlign.justify': 'Blokkjuster',
|
53
|
-
// Block type
|
54
|
-
'components.controls.blocktype.normal': 'Avsnitt',
|
55
|
-
'components.controls.blocktype.h1': 'Overskrift 1',
|
56
|
-
'components.controls.blocktype.h2': 'Overskrift 2',
|
57
|
-
'components.controls.blocktype.h3': 'Overskrift 3',
|
58
|
-
'components.controls.blocktype.h4': 'Overskrift 4',
|
59
|
-
'components.controls.blocktype.h5': 'Overskrift 5',
|
60
|
-
'components.controls.blocktype.h6': 'Overskrift 6',
|
61
|
-
// Link
|
62
|
-
'components.controls.link.linkTitle': 'Tittel',
|
63
|
-
'components.controls.link.linkTarget': 'URL',
|
64
|
-
'components.controls.link.linkTargetOption': 'Åpne i ny fane',
|
65
|
-
'components.controls.link.link': 'Legg til lenke',
|
66
|
-
'components.controls.link.unlink': 'Fjern lenke',
|
67
|
-
// Remove
|
68
|
-
'components.controls.remove.remove': 'Fjern'
|
69
|
-
};
|
@@ -1,147 +0,0 @@
|
|
1
|
-
/** @jsxImportSource @emotion/react */
|
2
|
-
import React, { useState } from 'react';
|
3
|
-
import { Editor as Wysiwyg } from 'react-draft-wysiwyg';
|
4
|
-
import { convertToRaw, EditorState, Modifier } from 'draft-js';
|
5
|
-
import { stateFromHTML } from 'draft-js-import-html';
|
6
|
-
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
|
7
|
-
import { CounterWrapper, ErrorWrapper, Label, RelativeDiv, styles } from './styles';
|
8
|
-
import { basicToolbar, editorLabels, getStrippedHtml, htmlToEntity, richToolbar } from './config';
|
9
|
-
import { convertToHTML, convertFromHTML } from 'draft-convert';
|
10
|
-
import Text from '../Text';
|
11
|
-
import { useTheme } from '@emotion/react';
|
12
|
-
import IconErrorOutline from '../../icons/General/IconErrorOutline';
|
13
|
-
import draftToHtml from 'draftjs-to-html';
|
14
|
-
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
15
|
-
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
16
|
-
|
17
|
-
/**
|
18
|
-
*
|
19
|
-
* TODO: REMOVE AND CLEANUP PACKAGES
|
20
|
-
*
|
21
|
-
*/
|
22
|
-
const EditorOld = ({
|
23
|
-
initialValue,
|
24
|
-
height = 300,
|
25
|
-
maxHeight,
|
26
|
-
maxlength,
|
27
|
-
maxlengthType = 'plaintext',
|
28
|
-
maxlengthText,
|
29
|
-
withCounter,
|
30
|
-
invalidMessage,
|
31
|
-
label,
|
32
|
-
customToolbar,
|
33
|
-
type = 'basic',
|
34
|
-
onChange,
|
35
|
-
onBlur
|
36
|
-
}) => {
|
37
|
-
const theme = useTheme();
|
38
|
-
const [maxlengthError, setMaxlengthError] = useState(null);
|
39
|
-
const [charCount, setCharCount] = useState(0);
|
40
|
-
const [editorState, setEditorState] = useState(initialValue ? EditorState.createWithContent(convertFromHTML({
|
41
|
-
htmlToEntity
|
42
|
-
})(initialValue)) : EditorState.createEmpty());
|
43
|
-
|
44
|
-
const handleEditorChange = state => {
|
45
|
-
handleValidity(state);
|
46
|
-
setEditorState(state);
|
47
|
-
const plainText = state.getCurrentContent().getPlainText();
|
48
|
-
const html = draftToHtml(convertToRaw(state.getCurrentContent()));
|
49
|
-
onChange(plainText.length > 0 ? html : ''); // return empty if no content
|
50
|
-
|
51
|
-
if (withCounter && maxlength) {
|
52
|
-
setCharCount(maxlengthType === 'html' ? html.length : plainText.length);
|
53
|
-
}
|
54
|
-
};
|
55
|
-
|
56
|
-
const handleValidity = state => {
|
57
|
-
if (!maxlength) {
|
58
|
-
setMaxlengthError(null);
|
59
|
-
return;
|
60
|
-
}
|
61
|
-
|
62
|
-
const plaintext = state.getCurrentContent().getPlainText();
|
63
|
-
const html = convertToHTML(state.getCurrentContent());
|
64
|
-
|
65
|
-
if (maxlengthType === 'html' && html.length > maxlength) {
|
66
|
-
setMaxlengthError(maxlengthText ? maxlengthText : 'Text is too long');
|
67
|
-
return;
|
68
|
-
}
|
69
|
-
|
70
|
-
if (maxlengthType === 'plaintext' && plaintext.length > maxlength) {
|
71
|
-
setMaxlengthError(maxlengthText ? maxlengthText : 'Text is too long');
|
72
|
-
return;
|
73
|
-
}
|
74
|
-
|
75
|
-
setMaxlengthError(null);
|
76
|
-
};
|
77
|
-
|
78
|
-
const Counter = _jsx(CounterWrapper, {
|
79
|
-
children: _jsxs(Text, {
|
80
|
-
children: [charCount, "/", maxlength]
|
81
|
-
})
|
82
|
-
});
|
83
|
-
|
84
|
-
const handlePaste = (text, html, editorState, onChange) => {
|
85
|
-
if (!html) return false;
|
86
|
-
const strippedHtml = getStrippedHtml(html);
|
87
|
-
const blockMap = stateFromHTML(strippedHtml).blockMap;
|
88
|
-
const newState = Modifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), blockMap);
|
89
|
-
onChange(EditorState.push(editorState, newState, 'insert-fragment'));
|
90
|
-
return true;
|
91
|
-
};
|
92
|
-
|
93
|
-
const getToolbar = () => {
|
94
|
-
switch (type) {
|
95
|
-
case 'basic':
|
96
|
-
return basicToolbar;
|
97
|
-
|
98
|
-
case 'rich':
|
99
|
-
return richToolbar;
|
100
|
-
|
101
|
-
case 'custom':
|
102
|
-
return customToolbar;
|
103
|
-
|
104
|
-
default:
|
105
|
-
return undefined;
|
106
|
-
}
|
107
|
-
};
|
108
|
-
|
109
|
-
return _jsxs("div", {
|
110
|
-
css: theme => [styles.default(theme, height), maxHeight && styles.maxHeight(maxHeight)],
|
111
|
-
children: [label && _jsx(Label, {
|
112
|
-
children: label
|
113
|
-
}), _jsxs(RelativeDiv, {
|
114
|
-
children: [_jsx(Wysiwyg, {
|
115
|
-
editorState: editorState,
|
116
|
-
toolbarClassName: "toolbar-wrapper",
|
117
|
-
wrapperClassName: "editor-wrapper",
|
118
|
-
editorClassName: "content-wrapper",
|
119
|
-
onEditorStateChange: handleEditorChange,
|
120
|
-
toolbar: getToolbar(),
|
121
|
-
localization: {
|
122
|
-
locale: 'nb_NO',
|
123
|
-
translations: editorLabels
|
124
|
-
},
|
125
|
-
stripPastedStyles: type !== 'rich',
|
126
|
-
onBlur: () => onBlur && onBlur(),
|
127
|
-
handlePastedText: handlePaste
|
128
|
-
}), maxlength && withCounter && Counter]
|
129
|
-
}), (maxlengthError || invalidMessage) && _jsxs(ErrorWrapper, {
|
130
|
-
children: [maxlengthError && _jsxs(Text, {
|
131
|
-
color: theme.alert,
|
132
|
-
children: [_jsx(IconErrorOutline, {
|
133
|
-
size: "16px",
|
134
|
-
color: theme.alert
|
135
|
-
}), ' ', maxlengthError]
|
136
|
-
}), invalidMessage && _jsxs(Text, {
|
137
|
-
color: theme.alert,
|
138
|
-
children: [_jsx(IconErrorOutline, {
|
139
|
-
size: "16px",
|
140
|
-
color: theme.alert
|
141
|
-
}), ' ', invalidMessage]
|
142
|
-
})]
|
143
|
-
})]
|
144
|
-
});
|
145
|
-
};
|
146
|
-
|
147
|
-
export default EditorOld;
|