@biblioteksentralen/react 2.0.1 → 3.0.0-beta.10

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.js CHANGED
@@ -209,6 +209,7 @@ function _create_super(Derived) {
209
209
  return _possible_constructor_return(this, result);
210
210
  };
211
211
  }
212
+ var _import_react13_defaultConfig_theme_recipes_button_variants, _import_react13_defaultConfig_theme_recipes_button, _import_react13_defaultConfig_theme_recipes, _import_react13_defaultConfig_theme;
212
213
  var __create = Object.create;
213
214
  var __defProp = Object.defineProperty;
214
215
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -294,21 +295,27 @@ __export(src_exports, {
294
295
  HideWithCSS: function() {
295
296
  return HideWithCSS;
296
297
  },
298
+ IconButton: function() {
299
+ return IconButton;
300
+ },
297
301
  Input: function() {
298
302
  return Input;
299
303
  },
300
304
  Link: function() {
301
305
  return Link;
302
306
  },
307
+ Toaster: function() {
308
+ return Toaster;
309
+ },
303
310
  VisuallyHidden: function() {
304
311
  return VisuallyHidden;
305
312
  },
306
- biblioteksentralenChakraTheme: function() {
307
- return biblioteksentralenChakraTheme;
308
- },
309
313
  colors: function() {
310
314
  return colors;
311
315
  },
316
+ toaster: function() {
317
+ return toaster;
318
+ },
312
319
  withErrorBoundary: function() {
313
320
  return withErrorBoundary;
314
321
  }
@@ -414,46 +421,42 @@ var variantStyles = {
414
421
  }
415
422
  };
416
423
  function Alert(_param) {
417
- var status = _param.status, children = _param.children, variant = _param.variant, rest = _object_without_properties(_param, [
424
+ var status = _param.status, children = _param.children, variant = _param.variant, header = _param.header, rest = _object_without_properties(_param, [
418
425
  "status",
419
426
  "children",
420
- "variant"
427
+ "variant",
428
+ "header"
421
429
  ]);
422
430
  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",
431
+ return /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Root, _object_spread({
432
+ status: status,
433
+ fontSize: "md",
429
434
  border: "0.1rem solid",
430
435
  borderColor: colors2.color,
431
436
  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));
437
+ display: "flex",
438
+ flexWrap: "wrap"
439
+ }, variant === "inline" ? variantStyles[variant] : {}, rest), /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Indicator, {
440
+ marginX: "auto"
441
+ }, iconLookup[status]), /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Content, {
442
+ color: "black"
443
+ }, header && /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Title, null, header), /* @__PURE__ */ import_react2.default.createElement(import_react.Alert.Description, null, children)));
444
444
  }
445
445
  // src/components/Button.tsx
446
446
  var import_react3 = require("@chakra-ui/react");
447
447
  var Button = import_react3.Button;
448
+ // src/components/IconButton.tsx
449
+ var import_react4 = require("@chakra-ui/react");
450
+ var IconButton = import_react4.IconButton;
448
451
  // src/components/ConditionalWrapper.tsx
449
- var import_react4 = __toESM(require("react"));
452
+ var import_react5 = __toESM(require("react"));
450
453
  var ConditionalWrapper = function(param) {
451
454
  var condition = param.condition, children = param.children, Wrapper = param.wrapper;
452
- return condition ? /* @__PURE__ */ import_react4.default.createElement(Wrapper, null, children) : /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, children);
455
+ return condition ? /* @__PURE__ */ import_react5.default.createElement(Wrapper, null, children) : /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, children);
453
456
  };
454
457
  // src/components/HideWithCSS.tsx
455
- var import_react5 = require("@chakra-ui/react");
456
- var import_react6 = __toESM(require("react"));
458
+ var import_react6 = require("@chakra-ui/react");
459
+ var import_react7 = __toESM(require("react"));
457
460
  var HideWithCSS = function(_param) {
458
461
  var children = _param.children, above = _param.above, below = _param.below, chakraProps = _object_without_properties(_param, [
459
462
  "children",
@@ -463,22 +466,22 @@ var HideWithCSS = function(_param) {
463
466
  var display = _object_spread({}, !!below ? _define_property({
464
467
  base: "none"
465
468
  }, below, "block") : {}, !!above ? _define_property({}, above, "none") : {});
466
- return /* @__PURE__ */ import_react6.default.createElement(import_react5.Box, _object_spread_props(_object_spread({}, chakraProps), {
469
+ return /* @__PURE__ */ import_react7.default.createElement(import_react6.Box, _object_spread_props(_object_spread({}, chakraProps), {
467
470
  display: display
468
471
  }), children);
469
472
  };
470
473
  // src/components/Input.tsx
471
- var import_react9 = require("@chakra-ui/react");
472
- var import_react10 = __toESM(require("react"));
474
+ var import_react10 = require("@chakra-ui/react");
475
+ var import_react11 = __toESM(require("react"));
473
476
  // src/components/VisuallyHidden.tsx
474
- var import_react7 = __toESM(require("react"));
475
- var import_react8 = require("@chakra-ui/react");
477
+ var import_react8 = __toESM(require("react"));
478
+ var import_react9 = require("@chakra-ui/react");
476
479
  function VisuallyHidden(_param) {
477
480
  var children = _param.children, rest = _object_without_properties(_param, [
478
481
  "children"
479
482
  ]);
480
- var _import_react7_default_useState = _sliced_to_array(import_react7.default.useState(false), 2), forceShow = _import_react7_default_useState[0], setForceShow = _import_react7_default_useState[1];
481
- (0, import_react7.useEffect)(function() {
483
+ var _import_react8_default_useState = _sliced_to_array(import_react8.default.useState(false), 2), forceShow = _import_react8_default_useState[0], setForceShow = _import_react8_default_useState[1];
484
+ (0, import_react8.useEffect)(function() {
482
485
  if (isDevelopment()) {
483
486
  var handleKeyDown = function(ev) {
484
487
  if (ev.key === "Alt") {
@@ -498,12 +501,12 @@ function VisuallyHidden(_param) {
498
501
  };
499
502
  }
500
503
  }, []);
501
- return forceShow ? /* @__PURE__ */ import_react7.default.createElement("span", null, children) : /* @__PURE__ */ import_react7.default.createElement(import_react8.VisuallyHidden, {
504
+ return forceShow ? /* @__PURE__ */ import_react8.default.createElement("span", null, children) : /* @__PURE__ */ import_react8.default.createElement(import_react9.VisuallyHidden, {
502
505
  position: "fixed"
503
506
  }, children);
504
507
  }
505
508
  // src/components/Input.tsx
506
- var Input = (0, import_react10.forwardRef)(function(props, ref) {
509
+ var Input = function(props) {
507
510
  var labelProps = props.labelProps, label = props.label, helperText = props.helperText, errorMessage = props.errorMessage, hideLabel = props.hideLabel, inputProps = _object_without_properties(props, [
508
511
  "labelProps",
509
512
  "label",
@@ -511,27 +514,22 @@ var Input = (0, import_react10.forwardRef)(function(props, ref) {
511
514
  "errorMessage",
512
515
  "hideLabel"
513
516
  ]);
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
- });
517
+ var formLabel = /* @__PURE__ */ import_react11.default.createElement(import_react10.Field.Label, _object_spread({}, labelProps), label);
518
+ return /* @__PURE__ */ import_react11.default.createElement(import_react10.Field.Root, {
519
+ invalid: !!errorMessage
520
+ }, hideLabel ? /* @__PURE__ */ import_react11.default.createElement(VisuallyHidden, null, formLabel) : formLabel, helperText && /* @__PURE__ */ import_react11.default.createElement(import_react10.Field.HelperText, null, helperText), /* @__PURE__ */ import_react11.default.createElement(import_react10.Input, _object_spread({}, inputProps)), errorMessage && /* @__PURE__ */ import_react11.default.createElement(import_react10.Field.ErrorText, null, errorMessage));
521
+ };
527
522
  // src/components/Link.tsx
528
- var import_react11 = require("@chakra-ui/react");
529
- var Link = import_react11.Link;
523
+ var import_react12 = require("@chakra-ui/react");
524
+ var Link = import_react12.Link;
530
525
  // src/BiblioteksentralenProvider.tsx
531
- var import_react14 = require("@chakra-ui/react");
532
- var import_react15 = __toESM(require("react"));
526
+ var import_react20 = __toESM(require("react"));
527
+ var import_react21 = require("@chakra-ui/react");
528
+ // src/styles/chakraTheme/biblioteksentralenChakraTheme.ts
529
+ var import_react19 = require("@chakra-ui/react");
533
530
  // src/styles/chakraTheme/ButtonStyles.ts
534
- var variants = {
531
+ var import_react13 = require("@chakra-ui/react");
532
+ var variants = _object_spread({
535
533
  primary: {
536
534
  backgroundColor: colors.black,
537
535
  color: "white",
@@ -541,208 +539,229 @@ var variants = {
541
539
  }
542
540
  },
543
541
  secondary: {
544
- borderColor: "currentColor",
545
- backgroundColor: "transparent",
546
- color: "currentColor",
547
- _hover: {
548
- backgroundColor: "hsla(0deg, 0%, 50%, 0.15)"
549
- }
542
+ borderColor: "currentColor"
550
543
  },
551
- tertiary: {
552
- backgroundColor: "transparent",
544
+ tertiary: {}
545
+ }, (_import_react13_defaultConfig_theme = import_react13.defaultConfig.theme) === null || _import_react13_defaultConfig_theme === void 0 ? void 0 : (_import_react13_defaultConfig_theme_recipes = _import_react13_defaultConfig_theme.recipes) === null || _import_react13_defaultConfig_theme_recipes === void 0 ? void 0 : (_import_react13_defaultConfig_theme_recipes_button = _import_react13_defaultConfig_theme_recipes.button) === null || _import_react13_defaultConfig_theme_recipes_button === void 0 ? void 0 : (_import_react13_defaultConfig_theme_recipes_button_variants = _import_react13_defaultConfig_theme_recipes_button.variants) === null || _import_react13_defaultConfig_theme_recipes_button_variants === void 0 ? void 0 : _import_react13_defaultConfig_theme_recipes_button_variants.variant);
546
+ var ButtonStyles = (0, import_react13.defineRecipe)({
547
+ base: {
548
+ borderColor: "transparent",
549
+ borderWidth: "0.1em",
550
+ fontWeight: 600,
553
551
  color: "currentColor",
552
+ backgroundColor: "transparent",
554
553
  _hover: {
555
- backgroundColor: "hsla(0deg, 0%, 50%, 0.15)",
556
- color: "currentColor"
557
- }
558
- }
559
- };
560
- var ButtonStyles = {
561
- baseStyle: {
562
- border: "transparent 0.1em solid",
563
- borderRadius: "0.35em",
564
- fontWeight: 600,
554
+ backgroundColor: "currentColor/7"
555
+ },
565
556
  _disabled: {
566
- backgroundColor: "".concat(colors.grey45, " !important"),
567
- color: "white !important",
557
+ backgroundColor: "".concat(colors.grey45),
558
+ color: "white",
568
559
  opacity: 1
569
560
  }
570
561
  },
571
- sizes: {
572
- sm: {
573
- padding: "0.2em 0.5em",
574
- fontSize: "1rem"
562
+ variants: {
563
+ variant: variants,
564
+ size: {
565
+ sm: {
566
+ h: "8",
567
+ px: "2",
568
+ textStyle: "md"
569
+ },
570
+ md: {
571
+ textStyle: "md"
572
+ },
573
+ lg: {
574
+ h: "12",
575
+ textStyle: "lg"
576
+ }
575
577
  }
576
578
  },
577
- variants: variants,
578
- defaultProps: {
579
- variant: "primary"
580
- }
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"
579
+ defaultVariants: {
580
+ variant: "primary",
581
+ size: "md"
590
582
  }
591
583
  });
592
- var CheckboxStyles = defineMultiStyleConfig({
593
- baseStyle: baseStyle
594
- });
595
584
  // src/styles/chakraTheme/ContainerStyles.ts
596
- var ContainerStyles = {
597
- baseStyle: {
585
+ var import_react14 = require("@chakra-ui/react");
586
+ var ContainerStyles = (0, import_react14.defineRecipe)({
587
+ base: {
598
588
  px: ".75rem"
599
589
  }
600
- };
590
+ });
601
591
  // src/styles/chakraTheme/HeadingStyles.ts
602
- var HeadingStyles = {
603
- baseStyle: {
592
+ var import_react15 = require("@chakra-ui/react");
593
+ var HeadingStyles = (0, import_react15.defineRecipe)({
594
+ base: {
604
595
  fontWeight: "600"
605
596
  }
606
- };
597
+ });
607
598
  // 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
- }
599
+ var import_react16 = require("@chakra-ui/react");
600
+ var variants2 = {
601
+ subtle: {
602
+ backgroundColor: {
603
+ _light: "gray.200",
604
+ _dark: "whiteAlpha.100"
605
+ },
606
+ _hover: {
607
+ bg: {
608
+ _light: "gray.300",
609
+ _dark: "whiteAlpha.200"
616
610
  }
617
- };
611
+ }
618
612
  },
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
- };
629
- },
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
- };
613
+ outline: {
614
+ borderColor: {
615
+ _light: "gray.300",
616
+ _dark: "whiteAlpha.300"
639
617
  },
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
- };
618
+ _hover: {
619
+ borderColor: {
620
+ _light: "gray.400",
621
+ _dark: "whiteAlpha.400"
622
+ }
649
623
  }
650
624
  },
651
- defaultProps: {
652
- variant: "filled"
625
+ flushed: {
626
+ borderColor: {
627
+ _light: "gray.300",
628
+ _dark: "whiteAlpha.300"
629
+ },
630
+ _hover: {
631
+ borderColor: {
632
+ _light: "gray.400",
633
+ _dark: "whiteAlpha.400"
634
+ }
635
+ }
653
636
  }
654
637
  };
638
+ var InputStyles = (0, import_react16.defineRecipe)({
639
+ base: {
640
+ _placeholder: {
641
+ color: {
642
+ _light: "gray.500",
643
+ _dark: "whiteAlpha.500"
644
+ }
645
+ }
646
+ },
647
+ variants: {
648
+ variant: variants2
649
+ },
650
+ defaultVariants: {
651
+ variant: "subtle"
652
+ }
653
+ });
655
654
  // src/styles/chakraTheme/LinkStyles.ts
656
- var variants2 = {
655
+ var import_react17 = require("@chakra-ui/react");
656
+ var variants3 = {
657
657
  plain: {
658
+ color: "currentColor",
658
659
  textDecoration: "none",
660
+ textDecorationColor: "currentColor/30",
659
661
  _hover: {
660
662
  textDecoration: "underline"
661
663
  }
662
- }
663
- };
664
- var LinkStyles = {
665
- baseStyle: {
664
+ },
665
+ underline: {
666
+ color: "currentColor",
666
667
  textDecoration: "underline",
668
+ textDecorationColor: "currentColor/30",
667
669
  _hover: {
668
670
  textDecoration: "none"
669
671
  }
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
672
  }
683
673
  };
674
+ var LinkStyles = (0, import_react17.defineRecipe)({
675
+ variants: {
676
+ variant: variants3
677
+ },
678
+ defaultVariants: {
679
+ variant: "underline"
680
+ }
681
+ });
684
682
  // 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"
683
+ var import_react18 = require("@chakra-ui/react");
684
+ var SpinnerStyles = (0, import_react18.defineRecipe)({
685
+ base: {
686
+ animationDuration: ".8s",
687
+ color: colors.accentBlueMedium,
688
+ // Todo: Legg til trackColor: https://chakra-ui.com/docs/components/spinner#track-color
689
+ borderWidth: ".175em"
690
+ }
692
691
  });
693
692
  // src/styles/chakraTheme/sizes.ts
694
693
  var container = {
695
- sm: "40rem",
696
- md: "48rem",
697
- lg: "56rem",
694
+ sm: {
695
+ value: "40rem"
696
+ },
697
+ md: {
698
+ value: "48rem"
699
+ },
700
+ lg: {
701
+ value: "56rem"
702
+ },
698
703
  // Forsøker 56rem som standardbredde etter testing med Katrine
699
- xl: "80rem"
704
+ xl: {
705
+ value: "80rem"
706
+ }
700
707
  };
701
708
  var sizes = {
702
709
  container: container
703
710
  };
704
711
  // 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
- }
719
- }
720
- },
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
- },
712
+ var tokens = (0, import_react19.defineTokens)({
731
713
  sizes: sizes
714
+ });
715
+ var globalHyphens = {
716
+ hyphens: "auto",
717
+ hyphenateLimitChars: "8 5 3"
718
+ };
719
+ var focusStyle = {
720
+ outline: "none !important",
721
+ boxShadow: "0 0 0 .1rem white, 0 0 0 .2rem black, 0 0 0 .3rem white !important",
722
+ transition: "box-shadow 0.1s ease-out"
732
723
  };
724
+ var biblioteksentralenChakraTheme = (0, import_react19.defineConfig)({
725
+ theme: {
726
+ tokens: tokens,
727
+ recipes: {
728
+ heading: HeadingStyles,
729
+ button: ButtonStyles,
730
+ input: InputStyles,
731
+ link: LinkStyles,
732
+ container: ContainerStyles,
733
+ spinner: SpinnerStyles
734
+ }
735
+ },
736
+ globalCss: {
737
+ html: {
738
+ fontSize: {
739
+ base: "112.5%",
740
+ md: "120%"
741
+ },
742
+ // Sørger for smooth scrolling for interne lenker som scroller til annet sted på siden,
743
+ // men ikke hvis fokus er utenfor viduet, feks ved søk i tekst (ctrl + f)
744
+ "&:focus-within": {
745
+ scrollBehavior: "smooth !important"
746
+ }
747
+ },
748
+ body: _object_spread({}, globalHyphens),
749
+ // Felles fokus-styling for alle elementer for å sikre at de har en tydelig og uniform visuell indikasjon når de er i fokus
750
+ "*:focus-visible": focusStyle
751
+ }
752
+ });
733
753
  // 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);
754
+ var import_system = require("@chakra-ui/system");
755
+ var BiblioteksentralenProvider = function(props) {
756
+ return /* @__PURE__ */ import_react20.default.createElement(import_react21.ChakraProvider, {
757
+ value: (0, import_react21.createSystem)(import_react21.defaultConfig, biblioteksentralenChakraTheme, props.customTheme || {})
758
+ }, /* @__PURE__ */ import_react20.default.createElement(import_system.ColorModeProvider, _object_spread({}, props)));
740
759
  };
741
760
  // src/components/ErrorBoundary.tsx
742
- var import_react16 = require("@chakra-ui/react");
743
- var import_react17 = __toESM(require("react"));
761
+ var import_react22 = require("@chakra-ui/react");
762
+ var import_react23 = __toESM(require("react"));
744
763
  var StyledPre = function(props) {
745
- return /* @__PURE__ */ import_react17.default.createElement(import_react16.Box, _object_spread({
764
+ return /* @__PURE__ */ import_react23.default.createElement(import_react22.Box, _object_spread({
746
765
  as: "pre",
747
766
  paddingTop: "0.5rem",
748
767
  wordBreak: "break-all",
@@ -750,8 +769,8 @@ var StyledPre = function(props) {
750
769
  fontSize: "0.8rem"
751
770
  }, props));
752
771
  };
753
- var ErrorBoundary = /*#__PURE__*/ function(_import_react17_default_Component) {
754
- _inherits(ErrorBoundary, _import_react17_default_Component);
772
+ var ErrorBoundary = /*#__PURE__*/ function(_import_react23_default_Component) {
773
+ _inherits(ErrorBoundary, _import_react23_default_Component);
755
774
  var _super = _create_super(ErrorBoundary);
756
775
  function ErrorBoundary(props) {
757
776
  _class_call_check(this, ErrorBoundary);
@@ -785,9 +804,9 @@ var ErrorBoundary = /*#__PURE__*/ function(_import_react17_default_Component) {
785
804
  var stackTrace = (_this_state_errorInfo = this.state.errorInfo) === null || _this_state_errorInfo === void 0 ? void 0 : _this_state_errorInfo.componentStack;
786
805
  var errormsg = (_this_state_error = this.state.error) === null || _this_state_error === void 0 ? void 0 : _this_state_error.message;
787
806
  var info = this.props.boundaryName;
788
- return /* @__PURE__ */ import_react17.default.createElement("div", null, /* @__PURE__ */ import_react17.default.createElement(Alert, {
807
+ return /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement(Alert, {
789
808
  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 || ""))));
809
+ }, /* @__PURE__ */ import_react23.default.createElement("p", null, "Beklager, det skjedde en teknisk feil."), isDevelopment() && (stackTrace || errormsg) && /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement(StyledPre, null, errormsg || ""), /* @__PURE__ */ import_react23.default.createElement(StyledPre, null, info || ""), /* @__PURE__ */ import_react23.default.createElement(StyledPre, null, stackTrace || ""))));
791
810
  }
792
811
  return this.props.children;
793
812
  }
@@ -803,15 +822,15 @@ var ErrorBoundary = /*#__PURE__*/ function(_import_react17_default_Component) {
803
822
  }
804
823
  ]);
805
824
  return ErrorBoundary;
806
- }(import_react17.default.Component);
825
+ }(import_react23.default.Component);
807
826
  // src/components/HashLinkTarget.tsx
808
- var import_react18 = require("@chakra-ui/react");
809
- var import_react19 = __toESM(require("react"));
827
+ var import_react24 = require("@chakra-ui/react");
828
+ var import_react25 = __toESM(require("react"));
810
829
  var focusOnRelativeParentStyle = {
811
- "&:focus-within": {
830
+ _focusWithin: {
812
831
  position: "static",
813
832
  boxShadow: "none",
814
- "&::after": {
833
+ "&::after": _object_spread({
815
834
  content: '""',
816
835
  position: "absolute",
817
836
  top: 0,
@@ -819,16 +838,15 @@ var focusOnRelativeParentStyle = {
819
838
  height: "100%",
820
839
  width: "100%",
821
840
  pointerEvents: "none",
822
- borderRadius: "0.25rem",
823
- boxShadow: "var(--chakra-shadows-outline)"
824
- }
841
+ borderRadius: "0.25rem"
842
+ }, focusStyle)
825
843
  }
826
844
  };
827
845
  function HashLinkTarget(props) {
828
- return /* @__PURE__ */ import_react19.default.createElement(import_react18.Box, {
846
+ return /* @__PURE__ */ import_react25.default.createElement(import_react24.Box, {
829
847
  position: "relative",
830
- sx: props.focusOnParent ? focusOnRelativeParentStyle : void 0
831
- }, /* @__PURE__ */ import_react19.default.createElement(import_react18.Box, {
848
+ css: props.focusOnParent ? focusOnRelativeParentStyle : void 0
849
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react24.Box, {
832
850
  id: props.id,
833
851
  tabIndex: props.focusOnParent ? -1 : void 0,
834
852
  position: "absolute",
@@ -839,15 +857,49 @@ function HashLinkTarget(props) {
839
857
  }));
840
858
  }
841
859
  // src/components/withErrorBoundary.tsx
842
- var import_react20 = __toESM(require("react"));
860
+ var import_react26 = __toESM(require("react"));
843
861
  var withErrorBoundary = function(Component, boundaryName) {
844
- return import_react20.default.forwardRef(function(props, ref) {
845
- return /* @__PURE__ */ import_react20.default.createElement(ErrorBoundary, {
862
+ return function(props) {
863
+ return /* @__PURE__ */ import_react26.default.createElement(ErrorBoundary, {
846
864
  boundaryName: boundaryName
847
- }, /* @__PURE__ */ import_react20.default.createElement(Component, _object_spread_props(_object_spread({}, props), {
848
- ref: ref
849
- })));
850
- });
865
+ }, /* @__PURE__ */ import_react26.default.createElement(Component, _object_spread({}, props)));
866
+ };
867
+ };
868
+ // src/components/ui/toaster.tsx
869
+ var import_react27 = require("@chakra-ui/react");
870
+ var import_react28 = __toESM(require("react"));
871
+ var toaster = (0, import_react27.createToaster)({
872
+ pauseOnPageIdle: true,
873
+ offsets: {
874
+ left: "50%",
875
+ top: "50%",
876
+ right: "50%",
877
+ bottom: "50%"
878
+ }
879
+ });
880
+ var Toaster = function() {
881
+ return /* @__PURE__ */ import_react28.default.createElement(import_react27.Portal, null, /* @__PURE__ */ import_react28.default.createElement(import_react27.Toaster, {
882
+ toaster: toaster,
883
+ insetInline: {
884
+ mdDown: "4"
885
+ }
886
+ }, function(toast) {
887
+ if (typeof toast.render === "function") {
888
+ return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, toast.render());
889
+ }
890
+ return /* @__PURE__ */ import_react28.default.createElement(import_react27.Toast.Root, {
891
+ width: {
892
+ md: "sm"
893
+ }
894
+ }, toast.type === "loading" ? /* @__PURE__ */ import_react28.default.createElement(import_react27.Spinner, {
895
+ size: "sm",
896
+ color: "blue.solid"
897
+ }) : /* @__PURE__ */ import_react28.default.createElement(import_react27.Toast.Indicator, null), /* @__PURE__ */ import_react28.default.createElement(import_react27.Stack, {
898
+ gap: "1",
899
+ flex: "1",
900
+ maxWidth: "100%"
901
+ }, toast.title && /* @__PURE__ */ import_react28.default.createElement(import_react27.Toast.Title, null, toast.title), toast.description && /* @__PURE__ */ import_react28.default.createElement(import_react27.Toast.Description, null, toast.description)), toast.action && /* @__PURE__ */ import_react28.default.createElement(import_react27.Toast.ActionTrigger, null, toast.action.label), toast.closable && /* @__PURE__ */ import_react28.default.createElement(import_react27.Toast.CloseTrigger, null));
902
+ }));
851
903
  };
852
904
  // Annotate the CommonJS export names for ESM import in node:
853
905
  0 && (module.exports = _object_spread({
@@ -858,11 +910,13 @@ var withErrorBoundary = function(Component, boundaryName) {
858
910
  ErrorBoundary: ErrorBoundary,
859
911
  HashLinkTarget: HashLinkTarget,
860
912
  HideWithCSS: HideWithCSS,
913
+ IconButton: IconButton,
861
914
  Input: Input,
862
915
  Link: Link,
916
+ Toaster: Toaster,
863
917
  VisuallyHidden: VisuallyHidden,
864
- biblioteksentralenChakraTheme: biblioteksentralenChakraTheme,
865
918
  colors: colors,
919
+ toaster: toaster,
866
920
  withErrorBoundary: withErrorBoundary
867
921
  }, require("@chakra-ui/react")));
868
922
  //# sourceMappingURL=index.js.map