@biblioteksentralen/react 2.0.1 → 3.0.0-beta.2

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/index.d.ts CHANGED
@@ -1,18 +1,23 @@
1
- import { FlexProps, AlertProps, ComponentWithAs, ButtonProps, ThemeTypings, BoxProps, InputProps, FormLabelProps, LinkProps, ChakraTheme } from '@chakra-ui/react';
1
+ import * as _chakra_ui_react from '@chakra-ui/react';
2
+ import { AlertRootProps, ButtonProps, BoxProps, InputProps, FieldLabelProps, LinkProps } from '@chakra-ui/react';
2
3
  export * from '@chakra-ui/react';
3
- import React, { ReactNode, FunctionComponent, HTMLAttributes, ErrorInfo } from 'react';
4
4
  import { Modify } from '@biblioteksentralen/types';
5
+ import React, { ReactNode, FunctionComponent, HTMLAttributes, ErrorInfo } from 'react';
6
+ import { ComponentWithAs, ThemeTypings } from '@chakra-ui/system';
5
7
  export { colors } from '@biblioteksentralen/utils';
6
- import { ChakraTheme as ChakraTheme$1 } from '@chakra-ui/theme';
7
8
 
8
- type Status = Exclude<AlertProps["status"], undefined | "loading">;
9
- type Variants = "inline";
10
- interface Props$7 extends FlexProps {
9
+ type Status = "info" | "warning" | "success" | "error";
10
+ type CustomVariants = "inline";
11
+ type Variants = AlertRootProps["variant"] | CustomVariants;
12
+ interface Props$7 extends Modify<AlertRootProps, {
13
+ variant?: Variants;
14
+ }> {
11
15
  children: ReactNode;
16
+ header?: ReactNode;
12
17
  status: Status;
13
18
  variant?: Variants;
14
19
  }
15
- declare function Alert({ status, children, variant, ...rest }: Props$7): React.JSX.Element;
20
+ declare function Alert({ status, children, variant, header, ...rest }: Props$7): React.JSX.Element;
16
21
 
17
22
  type CustomButtonVariants = "primary" | "secondary" | "tertiary";
18
23
 
@@ -48,7 +53,7 @@ declare const HideWithCSS: FunctionComponent<Props$5>;
48
53
  interface Props$4 extends InputProps {
49
54
  label: string;
50
55
  hideLabel?: boolean;
51
- labelProps?: FormLabelProps;
56
+ labelProps?: FieldLabelProps;
52
57
  helperText?: string;
53
58
  errorMessage?: string;
54
59
  }
@@ -56,9 +61,9 @@ interface Props$4 extends InputProps {
56
61
  * Creating custom input-component to make sure label is always set (for accessibility)
57
62
  * Also handles some common needs (helper text and error message. For more advanced input-components we leave it to the consumers to compose custom input-components based on Chakra
58
63
  */
59
- declare const Input: React.ForwardRefExoticComponent<Props$4 & React.RefAttributes<unknown>>;
64
+ declare const Input: (props: Props$4) => React.JSX.Element;
60
65
 
61
- type CustomLinkVariants = "plain";
66
+ type CustomLinkVariants = "plain" | "underline";
62
67
 
63
68
  /**
64
69
  * Re-exporting chackras Link with a customised types
@@ -76,7 +81,6 @@ declare function VisuallyHidden({ children, ...rest }: Props$3): React.JSX.Eleme
76
81
 
77
82
  interface Props$2 {
78
83
  children: ReactNode;
79
- customTheme?: Partial<ChakraTheme>;
80
84
  }
81
85
  declare const BiblioteksentralenProvider: (props: Props$2) => React.JSX.Element;
82
86
 
@@ -95,7 +99,7 @@ declare class ErrorBoundary extends React.Component<Props$1, State> {
95
99
  hasError: boolean;
96
100
  };
97
101
  componentDidCatch(error: any, errorInfo: any): void;
98
- render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
102
+ render(): string | number | bigint | boolean | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
99
103
  }
100
104
 
101
105
  interface Props {
@@ -111,8 +115,11 @@ interface Props {
111
115
  }
112
116
  declare function HashLinkTarget(props: Props): React.JSX.Element;
113
117
 
114
- declare const withErrorBoundary: <Props>(Component: React.ComponentType<Props>, boundaryName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<Props> & React.RefAttributes<unknown>>;
118
+ declare const withErrorBoundary: <Props>(Component: React.ComponentType<Props>, boundaryName: string) => (props: Props & React.JSX.IntrinsicAttributes) => React.JSX.Element;
119
+
120
+ declare const biblioteksentralenChakraTheme: _chakra_ui_react.SystemContext;
115
121
 
116
- declare const biblioteksentralenChakraTheme: Partial<ChakraTheme$1>;
122
+ declare const toaster: any;
123
+ declare const Toaster: () => React.JSX.Element;
117
124
 
118
- export { Alert, BiblioteksentralenProvider, Button, ConditionalWrapper, ErrorBoundary, HashLinkTarget, HideWithCSS, Input, Link, VisuallyHidden, biblioteksentralenChakraTheme, withErrorBoundary };
125
+ export { Alert, BiblioteksentralenProvider, Button, ConditionalWrapper, ErrorBoundary, HashLinkTarget, HideWithCSS, Input, Link, Toaster, VisuallyHidden, biblioteksentralenChakraTheme, toaster, withErrorBoundary };
package/dist/index.js CHANGED
@@ -300,6 +300,9 @@ __export(src_exports, {
300
300
  Link: function() {
301
301
  return Link;
302
302
  },
303
+ Toaster: function() {
304
+ return Toaster;
305
+ },
303
306
  VisuallyHidden: function() {
304
307
  return VisuallyHidden;
305
308
  },
@@ -309,6 +312,9 @@ __export(src_exports, {
309
312
  colors: function() {
310
313
  return colors;
311
314
  },
315
+ toaster: function() {
316
+ return toaster;
317
+ },
312
318
  withErrorBoundary: function() {
313
319
  return withErrorBoundary;
314
320
  }
@@ -414,33 +420,21 @@ var variantStyles = {
414
420
  }
415
421
  };
416
422
  function Alert(_param) {
417
- var status = _param.status, children = _param.children, variant = _param.variant, rest = _object_without_properties(_param, [
423
+ var status = _param.status, children = _param.children, variant = _param.variant, header = _param.header, rest = _object_without_properties(_param, [
418
424
  "status",
419
425
  "children",
420
- "variant"
426
+ "variant",
427
+ "header"
421
428
  ]);
422
429
  var colors2 = colorLookup[status];
423
- return /* @__PURE__ */ import_react2.default.createElement(import_react.Flex, _object_spread({
424
- role: "alert",
425
- flexWrap: "wrap",
426
- alignItems: "center",
427
- gridGap: "0.5em 0.6em",
428
- background: "white",
430
+ return /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Root, _object_spread({
431
+ status: status,
429
432
  border: "0.1rem solid",
430
433
  borderColor: colors2.color,
431
- backgroundColor: colors2.bg,
432
- padding: "0.75rem",
433
- borderRadius: "0.3rem"
434
- }, variant ? variantStyles[variant] : {}, rest), /* @__PURE__ */ import_react2.default.createElement(import_react.Box, {
435
- color: colors2.color,
436
- flex: "0 0",
437
- marginLeft: "auto",
438
- marginRight: "auto",
439
- lineHeight: "1",
440
- fontSize: "1.5em"
441
- }, iconLookup[status]), /* @__PURE__ */ import_react2.default.createElement(import_react.Box, {
442
- flex: "1"
443
- }, children));
434
+ backgroundColor: colors2.bg
435
+ }, variant === "inline" ? variantStyles[variant] : {}, rest), /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Indicator, null, iconLookup[status]), /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Content, {
436
+ color: "black"
437
+ }, header && /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Title, null, header), /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Description, null, children)));
444
438
  }
445
439
  // src/components/Button.tsx
446
440
  var import_react3 = require("@chakra-ui/react");
@@ -503,7 +497,7 @@ function VisuallyHidden(_param) {
503
497
  }, children);
504
498
  }
505
499
  // src/components/Input.tsx
506
- var Input = (0, import_react10.forwardRef)(function(props, ref) {
500
+ var Input = function(props) {
507
501
  var labelProps = props.labelProps, label = props.label, helperText = props.helperText, errorMessage = props.errorMessage, hideLabel = props.hideLabel, inputProps = _object_without_properties(props, [
508
502
  "labelProps",
509
503
  "label",
@@ -511,26 +505,19 @@ var Input = (0, import_react10.forwardRef)(function(props, ref) {
511
505
  "errorMessage",
512
506
  "hideLabel"
513
507
  ]);
514
- var formLabel = /* @__PURE__ */ import_react10.default.createElement(import_react9.FormLabel, _object_spread({}, labelProps), label);
515
- return /* @__PURE__ */ import_react10.default.createElement(import_react9.FormControl, {
516
- isInvalid: !!errorMessage
517
- }, hideLabel ? /* @__PURE__ */ import_react10.default.createElement(VisuallyHidden, null, formLabel) : formLabel, helperText && /* @__PURE__ */ import_react10.default.createElement(import_react9.FormHelperText, {
518
- marginTop: "-0.25em",
519
- marginBottom: "0.25em"
520
- }, helperText), /* @__PURE__ */ import_react10.default.createElement(import_react9.Input, _object_spread({
521
- ref: ref
522
- }, inputProps)), errorMessage && /* @__PURE__ */ import_react10.default.createElement(import_react9.FormErrorMessage, {
523
- color: colors.statusRed,
524
- fontWeight: 600
525
- }, errorMessage));
526
- });
508
+ var formLabel = /* @__PURE__ */ import_react10.default.createElement(import_react9.Field.Label, _object_spread({}, labelProps), label);
509
+ return /* @__PURE__ */ import_react10.default.createElement(import_react9.Field.Root, {
510
+ invalid: !!errorMessage
511
+ }, hideLabel ? /* @__PURE__ */ import_react10.default.createElement(VisuallyHidden, null, formLabel) : formLabel, helperText && /* @__PURE__ */ import_react10.default.createElement(import_react9.Field.HelperText, null, helperText), /* @__PURE__ */ import_react10.default.createElement(import_react9.Input, _object_spread({}, inputProps)), errorMessage && /* @__PURE__ */ import_react10.default.createElement(import_react9.Field.ErrorText, null, errorMessage));
512
+ };
527
513
  // src/components/Link.tsx
528
514
  var import_react11 = require("@chakra-ui/react");
529
515
  var Link = import_react11.Link;
530
516
  // src/BiblioteksentralenProvider.tsx
531
- var import_react14 = require("@chakra-ui/react");
532
- var import_react15 = __toESM(require("react"));
517
+ var import_react19 = __toESM(require("react"));
518
+ var import_react20 = require("@chakra-ui/react");
533
519
  // src/styles/chakraTheme/ButtonStyles.ts
520
+ var import_react12 = require("@chakra-ui/react");
534
521
  var variants = {
535
522
  primary: {
536
523
  backgroundColor: colors.black,
@@ -541,7 +528,7 @@ var variants = {
541
528
  }
542
529
  },
543
530
  secondary: {
544
- borderColor: "currentColor",
531
+ borderColor: "currentColor !important",
545
532
  backgroundColor: "transparent",
546
533
  color: "currentColor",
547
534
  _hover: {
@@ -557,8 +544,8 @@ var variants = {
557
544
  }
558
545
  }
559
546
  };
560
- var ButtonStyles = {
561
- baseStyle: {
547
+ var ButtonStyles = (0, import_react12.defineRecipe)({
548
+ base: {
562
549
  border: "transparent 0.1em solid",
563
550
  borderRadius: "0.35em",
564
551
  fontWeight: 600,
@@ -568,181 +555,184 @@ var ButtonStyles = {
568
555
  opacity: 1
569
556
  }
570
557
  },
571
- sizes: {
572
- sm: {
573
- padding: "0.2em 0.5em",
574
- fontSize: "1rem"
558
+ variants: {
559
+ variant: _object_spread({}, variants),
560
+ sizes: {
561
+ sm: {
562
+ padding: "0.2em 0.5em",
563
+ fontSize: "1rem"
564
+ }
575
565
  }
576
566
  },
577
- variants: variants,
578
- defaultProps: {
567
+ defaultVariants: {
579
568
  variant: "primary"
580
569
  }
581
- };
582
- // src/styles/chakraTheme/CheckboxStyles.ts
583
- var import_react12 = require("@chakra-ui/react");
584
- var import_anatomy = require("@chakra-ui/anatomy");
585
- var _ref = (0, import_react12.createMultiStyleConfigHelpers)(import_anatomy.checkboxAnatomy.keys), definePartsStyle = _ref.definePartsStyle, defineMultiStyleConfigWithTypeIssue = _ref.defineMultiStyleConfig;
586
- var defineMultiStyleConfig = defineMultiStyleConfigWithTypeIssue;
587
- var baseStyle = definePartsStyle({
588
- control: {
589
- background: "white"
590
- }
591
- });
592
- var CheckboxStyles = defineMultiStyleConfig({
593
- baseStyle: baseStyle
594
570
  });
595
571
  // src/styles/chakraTheme/ContainerStyles.ts
596
- var ContainerStyles = {
597
- baseStyle: {
572
+ var import_react13 = require("@chakra-ui/react");
573
+ var ContainerStyles = (0, import_react13.defineRecipe)({
574
+ base: {
598
575
  px: ".75rem"
599
576
  }
600
- };
577
+ });
601
578
  // src/styles/chakraTheme/HeadingStyles.ts
602
- var HeadingStyles = {
603
- baseStyle: {
579
+ var import_react14 = require("@chakra-ui/react");
580
+ var HeadingStyles = (0, import_react14.defineRecipe)({
581
+ base: {
604
582
  fontWeight: "600"
605
583
  }
606
- };
584
+ });
607
585
  // src/styles/chakraTheme/InputStyles.ts
608
- var import_theme_tools = require("@chakra-ui/theme-tools");
609
- var InputStyles = {
610
- baseStyle: function(props) {
611
- return {
612
- field: {
613
- _placeholder: {
614
- color: (0, import_theme_tools.mode)("gray.500", "whiteAlpha.500")(props)
615
- }
586
+ var import_react15 = require("@chakra-ui/react");
587
+ var variants2 = {
588
+ subtle: {
589
+ backgroundColor: {
590
+ _light: "gray.200",
591
+ _dark: "whiteAlpha.100"
592
+ },
593
+ _hover: {
594
+ bg: {
595
+ _light: "gray.300",
596
+ _dark: "whiteAlpha.200"
616
597
  }
617
- };
598
+ }
618
599
  },
619
- variants: {
620
- filled: function(props) {
621
- return {
622
- field: {
623
- bg: (0, import_theme_tools.mode)("gray.200", "whiteAlpha.100")(props),
624
- _hover: {
625
- bg: (0, import_theme_tools.mode)("gray.300", "whiteAlpha.200")(props)
626
- }
627
- }
628
- };
600
+ outline: {
601
+ borderColor: {
602
+ _light: "gray.300",
603
+ _dark: "whiteAlpha.300"
629
604
  },
630
- outline: function(props) {
631
- return {
632
- field: {
633
- borderColor: (0, import_theme_tools.mode)("gray.300", "whiteAlpha.300")(props),
634
- _hover: {
635
- borderColor: (0, import_theme_tools.mode)("gray.400", "whiteAlpha.400")(props)
636
- }
637
- }
638
- };
639
- },
640
- flushed: function(props) {
641
- return {
642
- field: {
643
- borderColor: (0, import_theme_tools.mode)("gray.300", "whiteAlpha.300")(props),
644
- _hover: {
645
- borderColor: (0, import_theme_tools.mode)("gray.400", "whiteAlpha.400")(props)
646
- }
647
- }
648
- };
605
+ _hover: {
606
+ borderColor: {
607
+ _light: "gray.400",
608
+ _dark: "whiteAlpha.400"
609
+ }
649
610
  }
650
611
  },
651
- defaultProps: {
652
- variant: "filled"
612
+ flushed: {
613
+ borderColor: {
614
+ _light: "gray.300",
615
+ _dark: "whiteAlpha.300"
616
+ },
617
+ _hover: {
618
+ borderColor: {
619
+ _light: "gray.400",
620
+ _dark: "whiteAlpha.400"
621
+ }
622
+ }
653
623
  }
654
624
  };
625
+ var InputStyles = (0, import_react15.defineRecipe)({
626
+ base: {
627
+ _placeholder: {
628
+ color: {
629
+ _light: "gray.500",
630
+ _dark: "whiteAlpha.500"
631
+ }
632
+ }
633
+ },
634
+ variants: {
635
+ variant: _object_spread({}, variants2)
636
+ },
637
+ defaultVariants: {
638
+ variant: "subtle"
639
+ }
640
+ });
655
641
  // src/styles/chakraTheme/LinkStyles.ts
656
- var variants2 = {
642
+ var import_react16 = require("@chakra-ui/react");
643
+ var variants3 = {
657
644
  plain: {
658
645
  textDecoration: "none",
659
646
  _hover: {
660
647
  textDecoration: "underline"
661
648
  }
662
- }
663
- };
664
- var LinkStyles = {
665
- baseStyle: {
649
+ },
650
+ underline: {
666
651
  textDecoration: "underline",
667
652
  _hover: {
668
653
  textDecoration: "none"
669
654
  }
670
- },
671
- variants: variants2
672
- };
673
- // src/styles/chakraTheme/ModalStyles.ts
674
- var ModalStyles = {
675
- baseStyle: {
676
- // Fix for modal height on Safari iOS:
677
- // https://github.com/chakra-ui/chakra-ui/issues/4680#issuecomment-1301640929
678
- dialogContainer: {
679
- "@supports(height: -webkit-fill-available)": {},
680
- height: "100%"
681
- }
682
655
  }
683
656
  };
657
+ var LinkStyles = (0, import_react16.defineRecipe)({
658
+ variants: {
659
+ variant: _object_spread({}, variants3)
660
+ },
661
+ defaultVariants: {
662
+ variant: "underline"
663
+ }
664
+ });
684
665
  // src/styles/chakraTheme/SpinnerStyles.ts
685
- var import_react13 = require("@chakra-ui/react");
686
- var SpinnerStyles = {};
687
- import_react13.Spinner.defaultProps = _object_spread_props(_object_spread({}, import_react13.Spinner.defaultProps), {
688
- speed: ".8s",
689
- color: colors.accentBlueMedium,
690
- emptyColor: "rgba(0,0,0,.2)",
691
- thickness: ".175em"
666
+ var import_react17 = require("@chakra-ui/react");
667
+ var SpinnerStyles = (0, import_react17.defineRecipe)({
668
+ base: {
669
+ animationDuration: ".8s",
670
+ color: colors.accentBlueMedium,
671
+ // Todo: Legg til trackColor: https://chakra-ui.com/docs/components/spinner#track-color
672
+ borderWidth: ".175em"
673
+ }
692
674
  });
693
675
  // src/styles/chakraTheme/sizes.ts
694
676
  var container = {
695
- sm: "40rem",
696
- md: "48rem",
697
- lg: "56rem",
677
+ sm: {
678
+ value: "40rem"
679
+ },
680
+ md: {
681
+ value: "48rem"
682
+ },
683
+ lg: {
684
+ value: "56rem"
685
+ },
698
686
  // Forsøker 56rem som standardbredde etter testing med Katrine
699
- xl: "80rem"
687
+ xl: {
688
+ value: "80rem"
689
+ }
700
690
  };
701
691
  var sizes = {
702
692
  container: container
703
693
  };
704
694
  // src/styles/chakraTheme/biblioteksentralenChakraTheme.ts
705
- var biblioteksentralenChakraTheme = {
706
- styles: {
707
- global: {
708
- html: {
709
- fontSize: {
710
- base: "112.5%",
711
- md: "120%"
712
- },
713
- // Sørger for smooth scrolling for interne lenker som scroller til annet sted på siden,
714
- // men ikke hvis fokus er utenfor viduet, feks ved søk i tekst (ctrl + f)
715
- "&:focus-within": {
716
- scrollBehavior: "smooth !important"
717
- }
718
- }
695
+ var import_react18 = require("@chakra-ui/react");
696
+ var biblioteksentralenChakraTheme = (0, import_react18.createSystem)(import_react18.defaultConfig, {
697
+ theme: {
698
+ tokens: {
699
+ sizes: sizes
700
+ },
701
+ recipes: {
702
+ heading: HeadingStyles,
703
+ button: ButtonStyles,
704
+ input: InputStyles,
705
+ link: LinkStyles,
706
+ container: ContainerStyles,
707
+ spinner: SpinnerStyles
719
708
  }
720
709
  },
721
- components: {
722
- Heading: HeadingStyles,
723
- Spinner: SpinnerStyles,
724
- Link: LinkStyles,
725
- Button: ButtonStyles,
726
- Input: InputStyles,
727
- Container: ContainerStyles,
728
- Modal: ModalStyles,
729
- Checkbox: CheckboxStyles
730
- },
731
- sizes: sizes
732
- };
710
+ globalCss: {
711
+ html: {
712
+ fontSize: {
713
+ base: "112.5%",
714
+ md: "120%"
715
+ },
716
+ // Sørger for smooth scrolling for interne lenker som scroller til annet sted på siden,
717
+ // men ikke hvis fokus er utenfor viduet, feks ved søk i tekst (ctrl + f)
718
+ "&:focus-within": {
719
+ scrollBehavior: "smooth !important"
720
+ }
721
+ }
722
+ }
723
+ });
733
724
  // src/BiblioteksentralenProvider.tsx
734
- var emptyTheme = {};
735
- var BiblioteksentralenProvider = function(props) /* @__PURE__ */ {
736
- var _props_customTheme;
737
- return import_react15.default.createElement(import_react14.ChakraProvider, {
738
- theme: (0, import_react14.extendTheme)(biblioteksentralenChakraTheme, (_props_customTheme = props.customTheme) !== null && _props_customTheme !== void 0 ? _props_customTheme : emptyTheme)
739
- }, props.children);
725
+ var import_system = require("@chakra-ui/system");
726
+ var BiblioteksentralenProvider = function(props) {
727
+ return /* @__PURE__ */ import_react19.default.createElement(import_react20.ChakraProvider, {
728
+ value: biblioteksentralenChakraTheme
729
+ }, /* @__PURE__ */ import_react19.default.createElement(import_system.ColorModeProvider, _object_spread({}, props)));
740
730
  };
741
731
  // src/components/ErrorBoundary.tsx
742
- var import_react16 = require("@chakra-ui/react");
743
- var import_react17 = __toESM(require("react"));
732
+ var import_react21 = require("@chakra-ui/react");
733
+ var import_react22 = __toESM(require("react"));
744
734
  var StyledPre = function(props) {
745
- return /* @__PURE__ */ import_react17.default.createElement(import_react16.Box, _object_spread({
735
+ return /* @__PURE__ */ import_react22.default.createElement(import_react21.Box, _object_spread({
746
736
  as: "pre",
747
737
  paddingTop: "0.5rem",
748
738
  wordBreak: "break-all",
@@ -750,8 +740,8 @@ var StyledPre = function(props) {
750
740
  fontSize: "0.8rem"
751
741
  }, props));
752
742
  };
753
- var ErrorBoundary = /*#__PURE__*/ function(_import_react17_default_Component) {
754
- _inherits(ErrorBoundary, _import_react17_default_Component);
743
+ var ErrorBoundary = /*#__PURE__*/ function(_import_react22_default_Component) {
744
+ _inherits(ErrorBoundary, _import_react22_default_Component);
755
745
  var _super = _create_super(ErrorBoundary);
756
746
  function ErrorBoundary(props) {
757
747
  _class_call_check(this, ErrorBoundary);
@@ -785,9 +775,9 @@ var ErrorBoundary = /*#__PURE__*/ function(_import_react17_default_Component) {
785
775
  var stackTrace = (_this_state_errorInfo = this.state.errorInfo) === null || _this_state_errorInfo === void 0 ? void 0 : _this_state_errorInfo.componentStack;
786
776
  var errormsg = (_this_state_error = this.state.error) === null || _this_state_error === void 0 ? void 0 : _this_state_error.message;
787
777
  var info = this.props.boundaryName;
788
- return /* @__PURE__ */ import_react17.default.createElement("div", null, /* @__PURE__ */ import_react17.default.createElement(Alert, {
778
+ return /* @__PURE__ */ import_react22.default.createElement("div", null, /* @__PURE__ */ import_react22.default.createElement(Alert, {
789
779
  status: "error"
790
- }, /* @__PURE__ */ import_react17.default.createElement("p", null, "Beklager, det skjedde en teknisk feil."), isDevelopment() && (stackTrace || errormsg) && /* @__PURE__ */ import_react17.default.createElement("div", null, /* @__PURE__ */ import_react17.default.createElement(StyledPre, null, errormsg || ""), /* @__PURE__ */ import_react17.default.createElement(StyledPre, null, info || ""), /* @__PURE__ */ import_react17.default.createElement(StyledPre, null, stackTrace || ""))));
780
+ }, /* @__PURE__ */ import_react22.default.createElement("p", null, "Beklager, det skjedde en teknisk feil."), isDevelopment() && (stackTrace || errormsg) && /* @__PURE__ */ import_react22.default.createElement("div", null, /* @__PURE__ */ import_react22.default.createElement(StyledPre, null, errormsg || ""), /* @__PURE__ */ import_react22.default.createElement(StyledPre, null, info || ""), /* @__PURE__ */ import_react22.default.createElement(StyledPre, null, stackTrace || ""))));
791
781
  }
792
782
  return this.props.children;
793
783
  }
@@ -803,12 +793,12 @@ var ErrorBoundary = /*#__PURE__*/ function(_import_react17_default_Component) {
803
793
  }
804
794
  ]);
805
795
  return ErrorBoundary;
806
- }(import_react17.default.Component);
796
+ }(import_react22.default.Component);
807
797
  // src/components/HashLinkTarget.tsx
808
- var import_react18 = require("@chakra-ui/react");
809
- var import_react19 = __toESM(require("react"));
798
+ var import_react23 = require("@chakra-ui/react");
799
+ var import_react24 = __toESM(require("react"));
810
800
  var focusOnRelativeParentStyle = {
811
- "&:focus-within": {
801
+ _focusWithin: {
812
802
  position: "static",
813
803
  boxShadow: "none",
814
804
  "&::after": {
@@ -825,10 +815,10 @@ var focusOnRelativeParentStyle = {
825
815
  }
826
816
  };
827
817
  function HashLinkTarget(props) {
828
- return /* @__PURE__ */ import_react19.default.createElement(import_react18.Box, {
818
+ return /* @__PURE__ */ import_react24.default.createElement(import_react23.Box, {
829
819
  position: "relative",
830
- sx: props.focusOnParent ? focusOnRelativeParentStyle : void 0
831
- }, /* @__PURE__ */ import_react19.default.createElement(import_react18.Box, {
820
+ css: props.focusOnParent ? focusOnRelativeParentStyle : void 0
821
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react23.Box, {
832
822
  id: props.id,
833
823
  tabIndex: props.focusOnParent ? -1 : void 0,
834
824
  position: "absolute",
@@ -839,15 +829,41 @@ function HashLinkTarget(props) {
839
829
  }));
840
830
  }
841
831
  // src/components/withErrorBoundary.tsx
842
- var import_react20 = __toESM(require("react"));
832
+ var import_react25 = __toESM(require("react"));
843
833
  var withErrorBoundary = function(Component, boundaryName) {
844
- return import_react20.default.forwardRef(function(props, ref) {
845
- return /* @__PURE__ */ import_react20.default.createElement(ErrorBoundary, {
834
+ return function(props) {
835
+ return /* @__PURE__ */ import_react25.default.createElement(ErrorBoundary, {
846
836
  boundaryName: boundaryName
847
- }, /* @__PURE__ */ import_react20.default.createElement(Component, _object_spread_props(_object_spread({}, props), {
848
- ref: ref
849
- })));
850
- });
837
+ }, /* @__PURE__ */ import_react25.default.createElement(Component, _object_spread({}, props)));
838
+ };
839
+ };
840
+ // src/components/ui/toaster.tsx
841
+ var import_react26 = require("@chakra-ui/react");
842
+ var import_react27 = __toESM(require("react"));
843
+ var toaster = (0, import_react26.createToaster)({
844
+ placement: "bottom-end",
845
+ pauseOnPageIdle: true
846
+ });
847
+ var Toaster = function() {
848
+ return /* @__PURE__ */ import_react27.default.createElement(import_react26.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react26.Toaster, {
849
+ toaster: toaster,
850
+ insetInline: {
851
+ mdDown: "4"
852
+ }
853
+ }, function(toast) {
854
+ return /* @__PURE__ */ import_react27.default.createElement(import_react26.Toast.Root, {
855
+ width: {
856
+ md: "sm"
857
+ }
858
+ }, toast.type === "loading" ? /* @__PURE__ */ import_react27.default.createElement(import_react26.Spinner, {
859
+ size: "sm",
860
+ color: "blue.solid"
861
+ }) : /* @__PURE__ */ import_react27.default.createElement(import_react26.Toast.Indicator, null), /* @__PURE__ */ import_react27.default.createElement(import_react26.Stack, {
862
+ gap: "1",
863
+ flex: "1",
864
+ maxWidth: "100%"
865
+ }, toast.title && /* @__PURE__ */ import_react27.default.createElement(import_react26.Toast.Title, null, toast.title), toast.description && /* @__PURE__ */ import_react27.default.createElement(import_react26.Toast.Description, null, toast.description)), toast.action && /* @__PURE__ */ import_react27.default.createElement(import_react26.Toast.ActionTrigger, null, toast.action.label), toast.closable && /* @__PURE__ */ import_react27.default.createElement(import_react26.Toast.CloseTrigger, null));
866
+ }));
851
867
  };
852
868
  // Annotate the CommonJS export names for ESM import in node:
853
869
  0 && (module.exports = _object_spread({
@@ -860,9 +876,11 @@ var withErrorBoundary = function(Component, boundaryName) {
860
876
  HideWithCSS: HideWithCSS,
861
877
  Input: Input,
862
878
  Link: Link,
879
+ Toaster: Toaster,
863
880
  VisuallyHidden: VisuallyHidden,
864
881
  biblioteksentralenChakraTheme: biblioteksentralenChakraTheme,
865
882
  colors: colors,
883
+ toaster: toaster,
866
884
  withErrorBoundary: withErrorBoundary
867
885
  }, require("@chakra-ui/react")));
868
886
  //# sourceMappingURL=index.js.map