@altinn/altinn-components 0.19.1 → 0.19.3
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/assets/PageTabs.css +1 -1
- package/dist/components/Dialog/DialogList.js +15 -14
- package/dist/components/Page/PageTabs.js +7 -7
- package/dist/hooks/useMenu.js +10 -9
- package/dist/types/lib/components/Dialog/DialogList.d.ts +2 -1
- package/dist/types/lib/components/Dialog/DialogList.stories.d.ts +3 -2
- package/dist/types/lib/components/Page/PageTabs.d.ts +2 -3
- package/dist/types/lib/components/Page/PageTabs.stories.d.ts +23 -0
- package/dist/types/lib/hooks/useMenu.d.ts +2 -1
- package/package.json +1 -1
package/dist/assets/PageTabs.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._list_gp6cp_1{display:flex;width:100%;row-gap:.5rem;flex-direction:column;list-style:none;padding:0;margin:0}@media (min-width: 1024px){._list_gp6cp_1{flex-direction:row;align-items:center;justify-content:start;column-gap:.5rem;width:auto}}._item_gp6cp_21{margin:0;border-top:2px solid;border-bottom:2px solid;border-color:transparent}._item_gp6cp_21[data-selected=true]{background-color:transparent;border-bottom-color:var(--ds-color-base-default)}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
2
2
|
import { createElement as t } from "react";
|
|
3
3
|
import "../../index-L8X2o7IH.js";
|
|
4
|
-
import { useMenu as
|
|
4
|
+
import { useMenu as l } from "../../hooks/useMenu.js";
|
|
5
5
|
import "../RootProvider/RootProvider.js";
|
|
6
|
-
import { DialogListGroup as
|
|
7
|
-
import { DialogListItem as
|
|
6
|
+
import { DialogListGroup as y } from "./DialogListGroup.js";
|
|
7
|
+
import { DialogListItem as d } from "./DialogListItem.js";
|
|
8
8
|
import "../Search/AutocompleteBase.js";
|
|
9
9
|
import "../Snackbar/useSnackbar.js";
|
|
10
|
-
import { Section as
|
|
11
|
-
const
|
|
12
|
-
const { menu: r } =
|
|
10
|
+
import { Section as g } from "../Page/Section.js";
|
|
11
|
+
const j = ({ items: i, groups: m = {}, sortGroupBy: e }) => {
|
|
12
|
+
const { menu: r } = l({
|
|
13
13
|
items: i,
|
|
14
14
|
groups: m,
|
|
15
15
|
groupByKey: "groupId",
|
|
16
|
-
keyboardEvents: !1
|
|
16
|
+
keyboardEvents: !1,
|
|
17
|
+
sortGroupBy: e
|
|
17
18
|
});
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
-
const
|
|
20
|
-
return /* @__PURE__ */ t(
|
|
21
|
-
const
|
|
22
|
-
return /* @__PURE__ */ t(
|
|
19
|
+
return /* @__PURE__ */ f(g, { spacing: 3, margin: "section", children: r == null ? void 0 : r.map((o, p) => {
|
|
20
|
+
const s = o.props || {};
|
|
21
|
+
return /* @__PURE__ */ t(y, { ...s, key: p }, o == null ? void 0 : o.items.map((n, a) => {
|
|
22
|
+
const c = n.props || {};
|
|
23
|
+
return /* @__PURE__ */ t(d, { ...c, key: a });
|
|
23
24
|
}));
|
|
24
25
|
}) });
|
|
25
26
|
};
|
|
26
27
|
export {
|
|
27
|
-
|
|
28
|
+
j as DialogList
|
|
28
29
|
};
|
|
@@ -2,14 +2,14 @@ import { jsx as t } from "react/jsx-runtime";
|
|
|
2
2
|
import "../../index-L8X2o7IH.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import "../RootProvider/RootProvider.js";
|
|
5
|
-
import { MenuItem as
|
|
5
|
+
import { MenuItem as p } from "../Menu/MenuItem.js";
|
|
6
6
|
import "../Search/AutocompleteBase.js";
|
|
7
7
|
import "../Snackbar/useSnackbar.js";
|
|
8
|
-
import { Flex as
|
|
9
|
-
import '../../assets/PageTabs.css';const
|
|
10
|
-
list:
|
|
11
|
-
item:
|
|
12
|
-
},
|
|
8
|
+
import { Flex as l } from "./Flex.js";
|
|
9
|
+
import '../../assets/PageTabs.css';const n = "_list_gp6cp_1", c = "_item_gp6cp_21", i = {
|
|
10
|
+
list: n,
|
|
11
|
+
item: c
|
|
12
|
+
}, N = ({ theme: m = "transparent", color: e, items: s = [], padding: o = 0 }) => /* @__PURE__ */ t(l, { theme: m, color: e, padding: o, children: /* @__PURE__ */ t("ul", { className: i.list, children: s.map((r) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ t(p, { ...r, className: i.item }) }, r.id)) }) });
|
|
13
13
|
export {
|
|
14
|
-
|
|
14
|
+
N as PageTabs
|
|
15
15
|
};
|
package/dist/hooks/useMenu.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useState as
|
|
3
|
-
const
|
|
2
|
+
import { useState as w, useMemo as x, useCallback as i, useEffect as k } from "react";
|
|
3
|
+
const I = ({
|
|
4
4
|
items: n,
|
|
5
5
|
groups: f,
|
|
6
6
|
groupByKey: u,
|
|
7
|
-
keyboardEvents: a = !1
|
|
7
|
+
keyboardEvents: a = !1,
|
|
8
|
+
sortGroupBy: p
|
|
8
9
|
}) => {
|
|
9
|
-
const [l, d] =
|
|
10
|
+
const [l, d] = w(-1), h = x(() => {
|
|
10
11
|
const r = n.reduce(
|
|
11
12
|
(o, s) => {
|
|
12
13
|
const e = u && s[u] ? s[u] : "ungrouped";
|
|
@@ -14,7 +15,7 @@ const v = ({
|
|
|
14
15
|
},
|
|
15
16
|
{}
|
|
16
17
|
), t = Object.values(r).flat();
|
|
17
|
-
return Object.entries(r).map(([o, s]) => ({
|
|
18
|
+
return Object.entries(r).sort(p || (() => 0)).map(([o, s]) => ({
|
|
18
19
|
items: s.map((e) => ({
|
|
19
20
|
menuIndex: t.indexOf(e),
|
|
20
21
|
active: l === t.indexOf(e),
|
|
@@ -22,19 +23,19 @@ const v = ({
|
|
|
22
23
|
})),
|
|
23
24
|
props: f[o] || {}
|
|
24
25
|
}));
|
|
25
|
-
}, [n, u, l, f]), c =
|
|
26
|
+
}, [n, u, l, f]), c = i(
|
|
26
27
|
(r) => {
|
|
27
28
|
r.key === "ArrowDown" ? d((t) => (t + 1) % n.length) : r.key === "ArrowUp" && d((t) => (t - 1 + n.length) % n.length);
|
|
28
29
|
},
|
|
29
30
|
[n.length]
|
|
30
31
|
);
|
|
31
|
-
return
|
|
32
|
+
return k(() => {
|
|
32
33
|
if (a)
|
|
33
34
|
return d(0), document.addEventListener("keydown", c), () => {
|
|
34
35
|
document.removeEventListener("keydown", c);
|
|
35
36
|
};
|
|
36
|
-
}, [c, a]), { menu:
|
|
37
|
+
}, [c, a]), { menu: h, activeIndex: l, setActiveIndex: d };
|
|
37
38
|
};
|
|
38
39
|
export {
|
|
39
|
-
|
|
40
|
+
I as useMenu
|
|
40
41
|
};
|
|
@@ -2,5 +2,6 @@ import { DialogListGroupProps, DialogListItemProps } from '../';
|
|
|
2
2
|
export interface DialogListProps {
|
|
3
3
|
items: DialogListItemProps[];
|
|
4
4
|
groups?: Record<string, DialogListGroupProps>;
|
|
5
|
+
sortGroupBy?: (a: [string, DialogListItemProps[]], b: [string, DialogListItemProps[]]) => number;
|
|
5
6
|
}
|
|
6
|
-
export declare const DialogList: ({ items, groups }: DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const DialogList: ({ items, groups, sortGroupBy }: DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StoryObj } from '@storybook/react';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ items, groups }: import('./DialogList').DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
component: ({ items, groups, sortGroupBy }: import('./DialogList').DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
tags: string[];
|
|
6
6
|
parameters: {
|
|
7
7
|
layout: string;
|
|
@@ -12,4 +12,5 @@ declare const meta: {
|
|
|
12
12
|
};
|
|
13
13
|
export default meta;
|
|
14
14
|
type Story = StoryObj<typeof meta>;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const GroupedByDate: Story;
|
|
16
|
+
export declare const GroupedByRoute: Story;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { MenuItemColor, MenuItemProps } from '..';
|
|
2
|
-
export type PageTabsTheme = 'transparent' | 'base';
|
|
1
|
+
import { MenuItemColor, MenuItemProps, MenuTheme } from '..';
|
|
3
2
|
export type PageTabsPadding = 0 | 2;
|
|
4
3
|
export type PageTabsVariant = 'card' | undefined;
|
|
5
4
|
export interface PageTabsProps {
|
|
6
|
-
theme?:
|
|
5
|
+
theme?: MenuTheme;
|
|
7
6
|
color?: MenuItemColor;
|
|
8
7
|
padding?: PageTabsPadding;
|
|
9
8
|
items?: MenuItemProps[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: ({ theme, color, items, padding }: import('./PageTabs').PageTabsProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
tags: string[];
|
|
6
|
+
parameters: {};
|
|
7
|
+
args: {
|
|
8
|
+
items: ({
|
|
9
|
+
id: string;
|
|
10
|
+
href: string;
|
|
11
|
+
title: string;
|
|
12
|
+
selected: true;
|
|
13
|
+
} | {
|
|
14
|
+
id: string;
|
|
15
|
+
href: string;
|
|
16
|
+
title: string;
|
|
17
|
+
selected?: undefined;
|
|
18
|
+
})[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default meta;
|
|
22
|
+
type Story = StoryObj<typeof meta>;
|
|
23
|
+
export declare const Default: Story;
|
|
@@ -17,5 +17,6 @@ export interface UseMenuInput<T, V> {
|
|
|
17
17
|
groups: Record<string, V>;
|
|
18
18
|
groupByKey?: keyof T;
|
|
19
19
|
keyboardEvents?: boolean;
|
|
20
|
+
sortGroupBy?: (a: [string, T[]], b: [string, T[]]) => number;
|
|
20
21
|
}
|
|
21
|
-
export declare const useMenu: <T, V>({ items, groups, groupByKey, keyboardEvents, }: UseMenuInput<T, V>) => UseMenuOutput<T, V>;
|
|
22
|
+
export declare const useMenu: <T, V>({ items, groups, groupByKey, keyboardEvents, sortGroupBy, }: UseMenuInput<T, V>) => UseMenuOutput<T, V>;
|