@norges-domstoler/dds-components 0.0.0-dev-20260505082349 → 0.0.0-dev-20260507105230

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.mts CHANGED
@@ -4598,7 +4598,7 @@ declare const ModalActions: {
4598
4598
  };
4599
4599
 
4600
4600
  declare const OverflowMenu: {
4601
- ({ placement, offset, className, htmlProps, ref, style, ...rest }: OverflowMenuProps): react_jsx_runtime.JSX.Element;
4601
+ ({ placement, offset, parentElement, portal, className, htmlProps, ref, style, ...rest }: OverflowMenuProps): react_jsx_runtime.JSX.Element;
4602
4602
  displayName: string;
4603
4603
  };
4604
4604
 
@@ -4615,6 +4615,17 @@ type OverflowMenuProps = Omit<BaseComponentPropsWithChildren<HTMLDivElement, {
4615
4615
  * @default 2
4616
4616
  */
4617
4617
  offset?: number;
4618
+ /**Angir rotnode hvor menyen skal rendres hvis portal=false.
4619
+ * Hvis parentElement ikke er satt vil menyen rendres i det elementet som OverflowMenu er plassert i.
4620
+ * Hvis portal er true, vil parentElement bli ignorert.
4621
+ * @default themeProviderRef
4622
+ */
4623
+ parentElement?: HTMLElement;
4624
+ /**Angir om menyen skal rendres i en portal eller ikke.
4625
+ * Hvis portal er false, vil parentElement bli brukt hvis det er satt.
4626
+ * @default true
4627
+ */
4628
+ portal?: boolean;
4618
4629
  }>, 'id'>;
4619
4630
 
4620
4631
  declare const OverflowMenuButton: {
package/dist/index.d.ts CHANGED
@@ -4598,7 +4598,7 @@ declare const ModalActions: {
4598
4598
  };
4599
4599
 
4600
4600
  declare const OverflowMenu: {
4601
- ({ placement, offset, className, htmlProps, ref, style, ...rest }: OverflowMenuProps): react_jsx_runtime.JSX.Element;
4601
+ ({ placement, offset, parentElement, portal, className, htmlProps, ref, style, ...rest }: OverflowMenuProps): react_jsx_runtime.JSX.Element;
4602
4602
  displayName: string;
4603
4603
  };
4604
4604
 
@@ -4615,6 +4615,17 @@ type OverflowMenuProps = Omit<BaseComponentPropsWithChildren<HTMLDivElement, {
4615
4615
  * @default 2
4616
4616
  */
4617
4617
  offset?: number;
4618
+ /**Angir rotnode hvor menyen skal rendres hvis portal=false.
4619
+ * Hvis parentElement ikke er satt vil menyen rendres i det elementet som OverflowMenu er plassert i.
4620
+ * Hvis portal er true, vil parentElement bli ignorert.
4621
+ * @default themeProviderRef
4622
+ */
4623
+ parentElement?: HTMLElement;
4624
+ /**Angir om menyen skal rendres i en portal eller ikke.
4625
+ * Hvis portal er false, vil parentElement bli brukt hvis det er satt.
4626
+ * @default true
4627
+ */
4628
+ portal?: boolean;
4618
4629
  }>, 'id'>;
4619
4630
 
4620
4631
  declare const OverflowMenuButton: {
package/dist/index.js CHANGED
@@ -4852,6 +4852,7 @@ var texts2 = createTexts({
4852
4852
 
4853
4853
  // src/components/OverflowMenu/OverflowMenu.tsx
4854
4854
  var import_react21 = require("react");
4855
+ var import_react_dom2 = require("react-dom");
4855
4856
 
4856
4857
  // src/components/OverflowMenu/OverflowMenu.context.tsx
4857
4858
  var import_react20 = require("react");
@@ -4901,6 +4902,8 @@ var import_jsx_runtime210 = require("react/jsx-runtime");
4901
4902
  var OverflowMenu = ({
4902
4903
  placement = "bottom-end",
4903
4904
  offset = 2,
4905
+ parentElement,
4906
+ portal = true,
4904
4907
  className,
4905
4908
  htmlProps = {},
4906
4909
  ref,
@@ -4908,11 +4911,16 @@ var OverflowMenu = ({
4908
4911
  ...rest
4909
4912
  }) => {
4910
4913
  const { isOpen, floatStyling, setFloatOptions, menuRef, menuId } = useOverflowMenuContext();
4914
+ const themeContext = (0, import_react21.useContext)(ThemeContext);
4915
+ if (portal && !themeContext) {
4916
+ throw new Error("OverflowMenu must be used within a DdsProvider");
4917
+ }
4918
+ const portalTarget = parentElement != null ? parentElement : themeContext == null ? void 0 : themeContext.el;
4911
4919
  (0, import_react21.useEffect)(() => {
4912
4920
  setFloatOptions == null ? void 0 : setFloatOptions({ placement, offset });
4913
4921
  }, [placement, offset]);
4914
4922
  const openCn = isOpen ? "open" : "closed";
4915
- return /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
4923
+ const menu = /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
4916
4924
  Paper,
4917
4925
  {
4918
4926
  overflowY: "auto",
@@ -4939,6 +4947,7 @@ var OverflowMenu = ({
4939
4947
  border: "border-default"
4940
4948
  }
4941
4949
  );
4950
+ return portal && portalTarget ? (0, import_react_dom2.createPortal)(menu, portalTarget) : menu;
4942
4951
  };
4943
4952
  OverflowMenu.displayName = "OverflowMenu";
4944
4953
 
@@ -5426,7 +5435,7 @@ var Breadcrumbs = ({
5426
5435
  "aria-label": bChildrenTruncated.length > 1 ? t(texts3.showHiddenTo(bChildren.length - 1)) : t(texts3.showHidden)
5427
5436
  }
5428
5437
  ),
5429
- /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(OverflowMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(OverflowMenuList, { children: bChildrenTruncated }) })
5438
+ /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(OverflowMenu, { portal: false, children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(OverflowMenuList, { children: bChildrenTruncated }) })
5430
5439
  ] })
5431
5440
  ] }),
5432
5441
  /* @__PURE__ */ (0, import_jsx_runtime222.jsxs)(HStack, { ...responsiveLiProps, children: [
@@ -6810,7 +6819,7 @@ function isLeapYear(date) {
6810
6819
 
6811
6820
  // src/components/date-inputs/DatePicker/CalendarPopover.tsx
6812
6821
  var import_react41 = require("react");
6813
- var import_react_dom2 = require("react-dom");
6822
+ var import_react_dom3 = require("react-dom");
6814
6823
  var import_jsx_runtime242 = require("react/jsx-runtime");
6815
6824
  var CalendarPopoverContext = (0, import_react41.createContext)({
6816
6825
  anchorRef: null,
@@ -6892,7 +6901,7 @@ var CalendarPopoverContent = ({
6892
6901
  padding: "x0.75"
6893
6902
  };
6894
6903
  return /* @__PURE__ */ (0, import_jsx_runtime242.jsxs)(import_jsx_runtime242.Fragment, { children: [
6895
- portalTarget && hasBreakpoint && (0, import_react_dom2.createPortal)(
6904
+ portalTarget && hasBreakpoint && (0, import_react_dom3.createPortal)(
6896
6905
  /* @__PURE__ */ (0, import_jsx_runtime242.jsx)(ShowHide, { showBelow: smallScreenBreakpoint, children: /* @__PURE__ */ (0, import_jsx_runtime242.jsx)(Backdrop, { zIndex: "modal", isMounted, children: /* @__PURE__ */ (0, import_jsx_runtime242.jsxs)(
6897
6906
  Paper,
6898
6907
  {
@@ -8123,7 +8132,7 @@ DetailListTerm.displayName = "DetailListTerm";
8123
8132
 
8124
8133
  // src/components/Drawer/Drawer.tsx
8125
8134
  var import_react53 = require("react");
8126
- var import_react_dom3 = require("react-dom");
8135
+ var import_react_dom4 = require("react-dom");
8127
8136
 
8128
8137
  // src/components/Drawer/Drawer.module.css
8129
8138
  var Drawer_default = {
@@ -8291,7 +8300,7 @@ var Drawer = ({
8291
8300
  children: drawer
8292
8301
  }
8293
8302
  ) : drawer;
8294
- return (isOpen || hasTransitionedIn) && portalTarget ? (0, import_react_dom3.createPortal)(component, portalTarget) : null;
8303
+ return (isOpen || hasTransitionedIn) && portalTarget ? (0, import_react_dom4.createPortal)(component, portalTarget) : null;
8295
8304
  };
8296
8305
  Drawer.displayName = "Drawer";
8297
8306
 
@@ -9389,13 +9398,21 @@ var fileUploaderReducer = (state, action) => {
9389
9398
  case "dragEnter":
9390
9399
  return {
9391
9400
  ...state,
9401
+ dragCounter: state.dragCounter + 1,
9392
9402
  isDragActive: true
9393
9403
  };
9394
- case "dragLeave":
9395
- return { ...state, isDragActive: false };
9404
+ case "dragLeave": {
9405
+ const newCounter = Math.max(0, state.dragCounter - 1);
9406
+ return {
9407
+ ...state,
9408
+ dragCounter: newCounter,
9409
+ isDragActive: newCounter > 0
9410
+ };
9411
+ }
9396
9412
  case "onSetFiles":
9397
9413
  return {
9398
9414
  ...state,
9415
+ dragCounter: 0,
9399
9416
  isDragActive: false,
9400
9417
  files: action.payload
9401
9418
  };
@@ -9502,6 +9519,7 @@ var useFileUploader = (props) => {
9502
9519
  isFocused: false,
9503
9520
  isFileDialogActive: false,
9504
9521
  isDragActive: false,
9522
+ dragCounter: 0,
9505
9523
  rootErrors: calcRootErrors(
9506
9524
  t(texts17.invalidFileAmount),
9507
9525
  initialFileUploaderFiles,
@@ -9550,16 +9568,13 @@ var useFileUploader = (props) => {
9550
9568
  );
9551
9569
  const onRootBlur = (0, import_react61.useCallback)(() => dispatch({ type: "blur" }), [dispatch]);
9552
9570
  const onRootDragEnter = (0, import_react61.useCallback)(
9553
- async (evt) => {
9571
+ (evt) => {
9554
9572
  preventDefaults(evt);
9555
9573
  if (isEventWithFiles(evt)) {
9556
- const files = await (0, import_file_selector.fromEvent)(evt);
9557
- const fileCount = files.length;
9558
- if (fileCount === 0) return;
9559
9574
  dispatch({ type: "dragEnter" });
9560
9575
  }
9561
9576
  },
9562
- [dispatch, accept, maxFiles]
9577
+ [dispatch]
9563
9578
  );
9564
9579
  const onRootDragOver = (0, import_react61.useCallback)((evt) => {
9565
9580
  preventDefaults(evt);
@@ -9574,7 +9589,6 @@ var useFileUploader = (props) => {
9574
9589
  const onRootDragLeave = (0, import_react61.useCallback)(
9575
9590
  (evt) => {
9576
9591
  preventDefaults(evt);
9577
- if (evt.currentTarget.contains(evt.relatedTarget)) return;
9578
9592
  dispatch({ type: "dragLeave" });
9579
9593
  },
9580
9594
  [dispatch]
@@ -10885,7 +10899,7 @@ LocalMessage.displayName = "LocalMessage";
10885
10899
 
10886
10900
  // src/components/Modal/Modal.tsx
10887
10901
  var import_react72 = require("react");
10888
- var import_react_dom4 = require("react-dom");
10902
+ var import_react_dom5 = require("react-dom");
10889
10903
 
10890
10904
  // src/components/Modal/Modal.module.css
10891
10905
  var Modal_default = {
@@ -10949,7 +10963,7 @@ var Modal = ({
10949
10963
  };
10950
10964
  useOnKeyDown(["Escape", "Esc"], () => handleClose());
10951
10965
  const hasTransitionedIn = useMountTransition(isOpen, 200);
10952
- return (isOpen || hasTransitionedIn) && portalTarget ? (0, import_react_dom4.createPortal)(
10966
+ return (isOpen || hasTransitionedIn) && portalTarget ? (0, import_react_dom5.createPortal)(
10953
10967
  /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(
10954
10968
  Backdrop,
10955
10969
  {
@@ -12849,7 +12863,7 @@ var texts23 = createTexts({
12849
12863
 
12850
12864
  // src/components/Popover/Popover.tsx
12851
12865
  var import_react79 = require("react");
12852
- var import_react_dom5 = require("react-dom");
12866
+ var import_react_dom6 = require("react-dom");
12853
12867
 
12854
12868
  // src/components/Popover/Popover.module.css
12855
12869
  var Popover_default = {
@@ -13007,7 +13021,7 @@ var Popover = ({
13007
13021
  ]
13008
13022
  }
13009
13023
  );
13010
- return isOpen || hasTransitionedIn ? portal && portalTarget ? (0, import_react_dom5.createPortal)(popover, portalTarget) : popover : null;
13024
+ return isOpen || hasTransitionedIn ? portal && portalTarget ? (0, import_react_dom6.createPortal)(popover, portalTarget) : popover : null;
13011
13025
  };
13012
13026
  Popover.displayName = "Popover";
13013
13027