@norges-domstoler/dds-components 0.0.0-dev-20250122123133 → 0.0.0-dev-20250122123924

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
@@ -524,9 +524,10 @@ declare const isKeyboardEvent: (e: Event | KeyboardEvent$1<Element>) => e is Key
524
524
  * @param size antall elementer i gruppen.
525
525
  * @param active om fokus skal kontrolleres av hooken. Når status blir inaktiv vil fokusrekkefølge nullstilles.
526
526
  * @param direction retning elementene blas i.
527
+ * @param noWrap om indeksen skal 'wrappe' rundt til 0 hvis den går over size - 1, eller til size - 1 hvis den går under 0.
527
528
  * @returns hook par: indeksen til fokuserte elemenentet og funksjonen som håndterer fokus.
528
529
  */
529
- declare function useRoveFocus(size?: number, active?: boolean, direction?: Direction$1): [number, Dispatch<SetStateAction<number>>];
530
+ declare function useRoveFocus(size?: number, active?: boolean, direction?: Direction$1, noWrap?: boolean): [number, Dispatch<SetStateAction<number>>];
530
531
 
531
532
  declare enum ScreenSize {
532
533
  XSmall = 0,
package/dist/index.d.ts CHANGED
@@ -524,9 +524,10 @@ declare const isKeyboardEvent: (e: Event | KeyboardEvent$1<Element>) => e is Key
524
524
  * @param size antall elementer i gruppen.
525
525
  * @param active om fokus skal kontrolleres av hooken. Når status blir inaktiv vil fokusrekkefølge nullstilles.
526
526
  * @param direction retning elementene blas i.
527
+ * @param noWrap om indeksen skal 'wrappe' rundt til 0 hvis den går over size - 1, eller til size - 1 hvis den går under 0.
527
528
  * @returns hook par: indeksen til fokuserte elemenentet og funksjonen som håndterer fokus.
528
529
  */
529
- declare function useRoveFocus(size?: number, active?: boolean, direction?: Direction$1): [number, Dispatch<SetStateAction<number>>];
530
+ declare function useRoveFocus(size?: number, active?: boolean, direction?: Direction$1, noWrap?: boolean): [number, Dispatch<SetStateAction<number>>];
530
531
 
531
532
  declare enum ScreenSize {
532
533
  XSmall = 0,
package/dist/index.js CHANGED
@@ -2929,7 +2929,7 @@ function useReturnFocusOnBlur(active, onBlur, triggerElement) {
2929
2929
  // src/hooks/useRoveFocus.tsx
2930
2930
  var import_react22 = require("react");
2931
2931
  var isKeyboardEvent = (e) => e.key !== void 0;
2932
- function useRoveFocus(size2, active, direction = "column") {
2932
+ function useRoveFocus(size2, active, direction = "column", noWrap) {
2933
2933
  const [currentFocusIndex, setCurrentFocusIndex] = (0, import_react22.useState)(-1);
2934
2934
  const nextKey = direction === "row" ? "ArrowRight" : "ArrowDown";
2935
2935
  const previousKey = direction === "row" ? "ArrowLeft" : "ArrowUp";
@@ -2938,16 +2938,19 @@ function useRoveFocus(size2, active, direction = "column") {
2938
2938
  if (!size2 || !isKeyboardEvent(e)) return;
2939
2939
  if (e.key === nextKey) {
2940
2940
  e.preventDefault();
2941
- setCurrentFocusIndex((prev) => prev === size2 - 1 ? 0 : prev + 1);
2941
+ setCurrentFocusIndex((prev) => {
2942
+ if (prev === size2 - 1) return noWrap ? prev : 0;
2943
+ return prev + 1;
2944
+ });
2942
2945
  } else if (e.key === previousKey) {
2943
2946
  e.preventDefault();
2944
2947
  setCurrentFocusIndex((prev) => {
2945
- if (prev === -1 || prev === 0) return size2 - 1;
2948
+ if (prev === -1 || prev === 0) return noWrap ? prev : size2 - 1;
2946
2949
  return prev - 1;
2947
2950
  });
2948
2951
  }
2949
2952
  },
2950
- [size2, setCurrentFocusIndex]
2953
+ [size2, setCurrentFocusIndex, direction, noWrap]
2951
2954
  );
2952
2955
  (0, import_react22.useEffect)(() => {
2953
2956
  if (!active) {