@ndla/ui 56.0.116-alpha.0 → 56.0.118-alpha.0
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/panda.buildinfo.json +1 -1
- package/es/Embed/CodeEmbed.js +1 -0
- package/es/FactBox/FactBox.js +22 -3
- package/es/FileList/FileList.js +5 -2
- package/lib/ContentTypeBadge/ContentTypeBadge.js +1 -2
- package/lib/ContentTypeHero/ContentTypeHero.js +1 -2
- package/lib/Embed/CodeEmbed.js +1 -0
- package/lib/Embed/index.js +1 -2
- package/lib/FactBox/FactBox.js +23 -5
- package/lib/FileList/FileList.d.ts +1 -1
- package/lib/FileList/FileList.js +5 -2
- package/lib/index.js +1 -2
- package/lib/model/index.js +1 -2
- package/package.json +11 -11
- package/src/Embed/CodeEmbed.tsx +1 -0
- package/src/Embed/RelatedContentEmbed.stories.tsx +2 -0
- package/src/FactBox/FactBox.tsx +27 -3
- package/src/FileList/FileList.tsx +11 -6
- package/src/all.scss +0 -2
package/es/Embed/CodeEmbed.js
CHANGED
|
@@ -23,6 +23,7 @@ const StyledFigCaption = styled("figcaption", {
|
|
|
23
23
|
});
|
|
24
24
|
const StyledFigure = styled(Figure, {
|
|
25
25
|
base: {
|
|
26
|
+
clear: "both",
|
|
26
27
|
// We apply margin here to allow for the float and size props on figure to work as intended.
|
|
27
28
|
"& > *:not(:where(:first-child))": {
|
|
28
29
|
marginBlockStart: "xsmall"
|
package/es/FactBox/FactBox.js
CHANGED
|
@@ -36,8 +36,16 @@ const StyledAside = styled("aside", {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"& > div": {
|
|
39
|
-
minHeight: "surface.3xsmall"
|
|
40
|
-
|
|
39
|
+
minHeight: "surface.3xsmall"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
variants: {
|
|
43
|
+
overflowHidden: {
|
|
44
|
+
true: {
|
|
45
|
+
"& > div": {
|
|
46
|
+
overflow: "hidden"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
41
49
|
}
|
|
42
50
|
}
|
|
43
51
|
});
|
|
@@ -45,7 +53,6 @@ const StyledContent = styled("div", {
|
|
|
45
53
|
base: {
|
|
46
54
|
position: "relative",
|
|
47
55
|
width: "100%",
|
|
48
|
-
overflow: "hidden",
|
|
49
56
|
// Reset the top margin of the very first child.
|
|
50
57
|
"& :first-child": {
|
|
51
58
|
marginBlockStart: "0"
|
|
@@ -114,6 +121,7 @@ const FactBox = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
114
121
|
t
|
|
115
122
|
} = useTranslation();
|
|
116
123
|
const [state, setState] = useState(defaultOpen ? "open" : "closed");
|
|
124
|
+
const [overflowHidden, setOverflowHidden] = useState(!defaultOpen);
|
|
117
125
|
const contentId = useId();
|
|
118
126
|
// Inert has existed since early 2023. It allows us to disable tabindex inside the content if it is closed, allowing us to be accessible for users with newish browsers. React 18 removes this because it doesn't recognize the attribute. This is a workaround for that.
|
|
119
127
|
// When running in React 18, we need to use an empty string instead of true.
|
|
@@ -138,6 +146,17 @@ const FactBox = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
138
146
|
"data-embed-type": "factbox",
|
|
139
147
|
...rest,
|
|
140
148
|
ref: ref,
|
|
149
|
+
overflowHidden: overflowHidden,
|
|
150
|
+
onTransitionStart: e => {
|
|
151
|
+
if (e.target === e.currentTarget && state === "closed") {
|
|
152
|
+
setOverflowHidden(true);
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
onTransitionEnd: e => {
|
|
156
|
+
if (e.target === e.currentTarget && state === "open") {
|
|
157
|
+
setOverflowHidden(false);
|
|
158
|
+
}
|
|
159
|
+
},
|
|
141
160
|
children: [/*#__PURE__*/_jsx(StyledIconButton, {
|
|
142
161
|
"data-state": state,
|
|
143
162
|
onClick: onClick,
|
package/es/FileList/FileList.js
CHANGED
|
@@ -9,12 +9,15 @@
|
|
|
9
9
|
import { ark } from "@ark-ui/react";
|
|
10
10
|
import { styled } from "@ndla/styled-system/jsx";
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
export const FileListWrapper = styled(
|
|
12
|
+
export const FileListWrapper = styled(ark.ul, {
|
|
13
13
|
base: {
|
|
14
14
|
display: "flex",
|
|
15
15
|
flexDirection: "column",
|
|
16
|
-
gap: "xsmall"
|
|
16
|
+
gap: "xsmall",
|
|
17
|
+
clear: "both"
|
|
17
18
|
}
|
|
19
|
+
}, {
|
|
20
|
+
baseComponent: true
|
|
18
21
|
});
|
|
19
22
|
export const FileListItem = styled(ark.li, {
|
|
20
23
|
base: {
|
|
@@ -9,8 +9,7 @@ var _reactI18next = require("react-i18next");
|
|
|
9
9
|
var _primitives = require("@ndla/primitives");
|
|
10
10
|
var contentTypes = _interopRequireWildcard(require("../model/ContentType"));
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
-
function
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
13
|
/**
|
|
15
14
|
* Copyright (c) 2024-present, NDLA.
|
|
16
15
|
*
|
|
@@ -8,8 +8,7 @@ var _react = require("react");
|
|
|
8
8
|
var _primitives = require("@ndla/primitives");
|
|
9
9
|
var contentTypes = _interopRequireWildcard(require("../model/ContentType"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
function
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
12
|
/**
|
|
14
13
|
* Copyright (c) 2024-present, NDLA.
|
|
15
14
|
*
|
package/lib/Embed/CodeEmbed.js
CHANGED
|
@@ -30,6 +30,7 @@ const StyledFigCaption = (0, _jsx2.styled)("figcaption", {
|
|
|
30
30
|
});
|
|
31
31
|
const StyledFigure = (0, _jsx2.styled)(_primitives.Figure, {
|
|
32
32
|
base: {
|
|
33
|
+
clear: "both",
|
|
33
34
|
// We apply margin here to allow for the float and size props on figure to work as intended.
|
|
34
35
|
"& > *:not(:where(:first-child))": {
|
|
35
36
|
marginBlockStart: "xsmall"
|
package/lib/Embed/index.js
CHANGED
|
@@ -147,5 +147,4 @@ var _CodeEmbed = _interopRequireDefault(require("./CodeEmbed"));
|
|
|
147
147
|
var _EmbedWrapper = require("./EmbedWrapper");
|
|
148
148
|
var _ConceptInlineTriggerButton = require("./ConceptInlineTriggerButton");
|
|
149
149
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
150
|
-
function
|
|
151
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
150
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
package/lib/FactBox/FactBox.js
CHANGED
|
@@ -10,8 +10,7 @@ var _icons = require("@ndla/icons");
|
|
|
10
10
|
var _primitives = require("@ndla/primitives");
|
|
11
11
|
var _jsx2 = require("@ndla/styled-system/jsx");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
14
|
/**
|
|
16
15
|
* Copyright (c) 2016-present, NDLA.
|
|
17
16
|
*
|
|
@@ -44,8 +43,16 @@ const StyledAside = (0, _jsx2.styled)("aside", {
|
|
|
44
43
|
}
|
|
45
44
|
},
|
|
46
45
|
"& > div": {
|
|
47
|
-
minHeight: "surface.3xsmall"
|
|
48
|
-
|
|
46
|
+
minHeight: "surface.3xsmall"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
variants: {
|
|
50
|
+
overflowHidden: {
|
|
51
|
+
true: {
|
|
52
|
+
"& > div": {
|
|
53
|
+
overflow: "hidden"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
});
|
|
@@ -53,7 +60,6 @@ const StyledContent = (0, _jsx2.styled)("div", {
|
|
|
53
60
|
base: {
|
|
54
61
|
position: "relative",
|
|
55
62
|
width: "100%",
|
|
56
|
-
overflow: "hidden",
|
|
57
63
|
// Reset the top margin of the very first child.
|
|
58
64
|
"& :first-child": {
|
|
59
65
|
marginBlockStart: "0"
|
|
@@ -122,6 +128,7 @@ const FactBox = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
122
128
|
t
|
|
123
129
|
} = (0, _reactI18next.useTranslation)();
|
|
124
130
|
const [state, setState] = (0, _react.useState)(defaultOpen ? "open" : "closed");
|
|
131
|
+
const [overflowHidden, setOverflowHidden] = (0, _react.useState)(!defaultOpen);
|
|
125
132
|
const contentId = (0, _react.useId)();
|
|
126
133
|
// Inert has existed since early 2023. It allows us to disable tabindex inside the content if it is closed, allowing us to be accessible for users with newish browsers. React 18 removes this because it doesn't recognize the attribute. This is a workaround for that.
|
|
127
134
|
// When running in React 18, we need to use an empty string instead of true.
|
|
@@ -146,6 +153,17 @@ const FactBox = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
146
153
|
"data-embed-type": "factbox",
|
|
147
154
|
...rest,
|
|
148
155
|
ref: ref,
|
|
156
|
+
overflowHidden: overflowHidden,
|
|
157
|
+
onTransitionStart: e => {
|
|
158
|
+
if (e.target === e.currentTarget && state === "closed") {
|
|
159
|
+
setOverflowHidden(true);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
onTransitionEnd: e => {
|
|
163
|
+
if (e.target === e.currentTarget && state === "open") {
|
|
164
|
+
setOverflowHidden(false);
|
|
165
|
+
}
|
|
166
|
+
},
|
|
149
167
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledIconButton, {
|
|
150
168
|
"data-state": state,
|
|
151
169
|
onClick: onClick,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { type ComponentPropsWithoutRef } from "react";
|
|
9
9
|
interface Props extends ComponentPropsWithoutRef<"ul"> {
|
|
10
10
|
}
|
|
11
|
-
export declare const FileListWrapper: import("@ndla/styled-system/types").StyledComponent<"
|
|
11
|
+
export declare const FileListWrapper: import("@ndla/styled-system/types").StyledComponent<import("react").ForwardRefExoticComponent<import("react").ClassAttributes<HTMLUListElement> & import("react").HTMLAttributes<HTMLUListElement> & import("@ark-ui/react").PolymorphicProps>, {}>;
|
|
12
12
|
export declare const FileListItem: import("@ndla/styled-system/types").StyledComponent<import("react").ForwardRefExoticComponent<import("react").ClassAttributes<HTMLLIElement> & import("react").LiHTMLAttributes<HTMLLIElement> & import("@ark-ui/react").PolymorphicProps>, {}>;
|
|
13
13
|
export declare const FileListEmbed: ({ children, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
export {};
|
package/lib/FileList/FileList.js
CHANGED
|
@@ -15,12 +15,15 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
15
15
|
*
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
const FileListWrapper = exports.FileListWrapper = (0, _jsx2.styled)(
|
|
18
|
+
const FileListWrapper = exports.FileListWrapper = (0, _jsx2.styled)(_react.ark.ul, {
|
|
19
19
|
base: {
|
|
20
20
|
display: "flex",
|
|
21
21
|
flexDirection: "column",
|
|
22
|
-
gap: "xsmall"
|
|
22
|
+
gap: "xsmall",
|
|
23
|
+
clear: "both"
|
|
23
24
|
}
|
|
25
|
+
}, {
|
|
26
|
+
baseComponent: true
|
|
24
27
|
});
|
|
25
28
|
const FileListItem = exports.FileListItem = (0, _jsx2.styled)(_react.ark.li, {
|
|
26
29
|
base: {
|
package/lib/index.js
CHANGED
|
@@ -597,5 +597,4 @@ var _TargetBlankIcon = require("./TargetBlankIcon");
|
|
|
597
597
|
var _ZendeskButton = require("./ZendeskButton/ZendeskButton");
|
|
598
598
|
var _licenseAttributes = require("./utils/licenseAttributes");
|
|
599
599
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
600
|
-
function
|
|
601
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
600
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
package/lib/model/index.js
CHANGED
|
@@ -8,8 +8,7 @@ var _ContentType = require("./ContentType");
|
|
|
8
8
|
var subjectCategories = _interopRequireWildcard(require("./SubjectCategories"));
|
|
9
9
|
var subjectTypes = _interopRequireWildcard(require("./SubjectTypes"));
|
|
10
10
|
var wordClass = _interopRequireWildcard(require("./WordClass"));
|
|
11
|
-
function
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
12
|
/**
|
|
14
13
|
* Copyright (c) 2017-present, NDLA.
|
|
15
14
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "56.0.
|
|
3
|
+
"version": "56.0.118-alpha.0",
|
|
4
4
|
"description": "UI component library for NDLA",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"types"
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@ndla/core": "^
|
|
36
|
-
"@ndla/icons": "^8.0.
|
|
35
|
+
"@ndla/core": "^6.0.0-alpha.0",
|
|
36
|
+
"@ndla/icons": "^8.0.56-alpha.0",
|
|
37
37
|
"@ndla/licenses": "^9.0.1",
|
|
38
|
-
"@ndla/primitives": "^1.0.
|
|
39
|
-
"@ndla/safelink": "^7.0.
|
|
40
|
-
"@ndla/styled-system": "^0.0.
|
|
38
|
+
"@ndla/primitives": "^1.0.86-alpha.0",
|
|
39
|
+
"@ndla/safelink": "^7.0.87-alpha.0",
|
|
40
|
+
"@ndla/styled-system": "^0.0.34",
|
|
41
41
|
"@ndla/util": "^5.0.7-alpha.0",
|
|
42
42
|
"html-react-parser": "^5.1.19"
|
|
43
43
|
},
|
|
@@ -49,13 +49,13 @@
|
|
|
49
49
|
"react-router-dom": "> 6.0.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@ndla/preset-panda": "^0.0.
|
|
53
|
-
"@ndla/types-backend": "^1.0.
|
|
54
|
-
"@ndla/types-embed": "^5.0.
|
|
55
|
-
"@pandacss/dev": "^0.53.
|
|
52
|
+
"@ndla/preset-panda": "^0.0.53",
|
|
53
|
+
"@ndla/types-backend": "^1.0.40",
|
|
54
|
+
"@ndla/types-embed": "^5.0.14-alpha.0",
|
|
55
|
+
"@pandacss/dev": "^0.53.6"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "c22b13dd82bf7fa206f87a6f48922b41d8eaec6a"
|
|
61
61
|
}
|
package/src/Embed/CodeEmbed.tsx
CHANGED
|
@@ -30,6 +30,7 @@ const StyledFigCaption = styled("figcaption", {
|
|
|
30
30
|
|
|
31
31
|
const StyledFigure = styled(Figure, {
|
|
32
32
|
base: {
|
|
33
|
+
clear: "both",
|
|
33
34
|
// We apply margin here to allow for the float and size props on figure to work as intended.
|
|
34
35
|
"& > *:not(:where(:first-child))": {
|
|
35
36
|
marginBlockStart: "xsmall",
|
|
@@ -108,6 +108,7 @@ const filmResourceMeta: RelatedContentMetaData = {
|
|
|
108
108
|
baseName: "Dokumentaren «Influenser»",
|
|
109
109
|
name: "Dokumentaren «Influenser»",
|
|
110
110
|
language: "nb",
|
|
111
|
+
contextids: [],
|
|
111
112
|
contentUri: "urn:article:27911",
|
|
112
113
|
path: "/subject:187c1484-84a5-474d-bf63-0c7915809a7d/topic:d792acc0-d332-48cf-9116-0db520e34f19/topic:3510fff0-fe20-4742-8e25-09262df2ac45/resource:e21cb6a7-0072-4066-894b-d5f6bb4f7ead",
|
|
113
114
|
paths: [
|
|
@@ -273,6 +274,7 @@ const learningResourceMeta: RelatedContentMetaData = {
|
|
|
273
274
|
},
|
|
274
275
|
resource: {
|
|
275
276
|
id: "urn:resource:5d81f622-1fc5-49c8-943d-690e23450e09",
|
|
277
|
+
contextids: [],
|
|
276
278
|
baseName: "Teknikker for idéutvikling",
|
|
277
279
|
language: "nb",
|
|
278
280
|
name: "Teknikker for idéutvikling",
|
package/src/FactBox/FactBox.tsx
CHANGED
|
@@ -53,7 +53,15 @@ const StyledAside = styled("aside", {
|
|
|
53
53
|
},
|
|
54
54
|
"& > div": {
|
|
55
55
|
minHeight: "surface.3xsmall",
|
|
56
|
-
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
variants: {
|
|
59
|
+
overflowHidden: {
|
|
60
|
+
true: {
|
|
61
|
+
"& > div": {
|
|
62
|
+
overflow: "hidden",
|
|
63
|
+
},
|
|
64
|
+
},
|
|
57
65
|
},
|
|
58
66
|
},
|
|
59
67
|
});
|
|
@@ -62,7 +70,6 @@ const StyledContent = styled("div", {
|
|
|
62
70
|
base: {
|
|
63
71
|
position: "relative",
|
|
64
72
|
width: "100%",
|
|
65
|
-
overflow: "hidden",
|
|
66
73
|
// Reset the top margin of the very first child.
|
|
67
74
|
"& :first-child": {
|
|
68
75
|
marginBlockStart: "0",
|
|
@@ -124,6 +131,7 @@ const FactBox = forwardRef<HTMLElement, Props>(
|
|
|
124
131
|
({ children, open, onOpenChange, defaultOpen = false, ...rest }, ref) => {
|
|
125
132
|
const { t } = useTranslation();
|
|
126
133
|
const [state, setState] = useState<"open" | "closed">(defaultOpen ? "open" : "closed");
|
|
134
|
+
const [overflowHidden, setOverflowHidden] = useState(!defaultOpen);
|
|
127
135
|
const contentId = useId();
|
|
128
136
|
// Inert has existed since early 2023. It allows us to disable tabindex inside the content if it is closed, allowing us to be accessible for users with newish browsers. React 18 removes this because it doesn't recognize the attribute. This is a workaround for that.
|
|
129
137
|
// When running in React 18, we need to use an empty string instead of true.
|
|
@@ -145,7 +153,23 @@ const FactBox = forwardRef<HTMLElement, Props>(
|
|
|
145
153
|
}, [state, onOpenChange]);
|
|
146
154
|
|
|
147
155
|
return (
|
|
148
|
-
<StyledAside
|
|
156
|
+
<StyledAside
|
|
157
|
+
data-state={state}
|
|
158
|
+
data-embed-type="factbox"
|
|
159
|
+
{...rest}
|
|
160
|
+
ref={ref}
|
|
161
|
+
overflowHidden={overflowHidden}
|
|
162
|
+
onTransitionStart={(e) => {
|
|
163
|
+
if (e.target === e.currentTarget && state === "closed") {
|
|
164
|
+
setOverflowHidden(true);
|
|
165
|
+
}
|
|
166
|
+
}}
|
|
167
|
+
onTransitionEnd={(e) => {
|
|
168
|
+
if (e.target === e.currentTarget && state === "open") {
|
|
169
|
+
setOverflowHidden(false);
|
|
170
|
+
}
|
|
171
|
+
}}
|
|
172
|
+
>
|
|
149
173
|
<StyledIconButton
|
|
150
174
|
data-state={state}
|
|
151
175
|
onClick={onClick}
|
|
@@ -12,13 +12,18 @@ import { styled } from "@ndla/styled-system/jsx";
|
|
|
12
12
|
|
|
13
13
|
interface Props extends ComponentPropsWithoutRef<"ul"> {}
|
|
14
14
|
|
|
15
|
-
export const FileListWrapper = styled(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
export const FileListWrapper = styled(
|
|
16
|
+
ark.ul,
|
|
17
|
+
{
|
|
18
|
+
base: {
|
|
19
|
+
display: "flex",
|
|
20
|
+
flexDirection: "column",
|
|
21
|
+
gap: "xsmall",
|
|
22
|
+
clear: "both",
|
|
23
|
+
},
|
|
20
24
|
},
|
|
21
|
-
}
|
|
25
|
+
{ baseComponent: true },
|
|
26
|
+
);
|
|
22
27
|
|
|
23
28
|
export const FileListItem = styled(
|
|
24
29
|
ark.li,
|
package/src/all.scss
DELETED