@gympass/yoga 7.133.1 → 7.134.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.
@@ -55,6 +55,7 @@ var import_styled_components = __toESM(require("styled-components"));
55
55
  var import_yoga_helpers = require("@gympass/yoga-helpers");
56
56
  var import_ActionRequirementStyles = require("./ActionRequirementStyles");
57
57
  var import_Text = __toESM(require("../../Text"));
58
+ var import_parseDescription = __toESM(require("../../utils/parseDescription"));
58
59
  var import_Box = __toESM(require("../../Box"));
59
60
  const StyledActionRequirement = import_styled_components.default.div`
60
61
  display: flex;
@@ -103,6 +104,7 @@ function ActionRequirement(props) {
103
104
  } = props;
104
105
  let primaryButton;
105
106
  let secondaryButton;
107
+ const descriptionArray = (0, import_parseDescription.default)(description);
106
108
  function defineCompoundComponents() {
107
109
  import_react.default.Children.forEach(children, (child) => {
108
110
  if (isChildFromComponent(child, import_ActionRequirementStyles.PrimaryButton))
@@ -116,7 +118,7 @@ function ActionRequirement(props) {
116
118
  illustration && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BoxIllustration, { "aria-hidden": true, children: illustration }),
117
119
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Content, { children: [
118
120
  titleAsTextDisplay ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Text.default.Display2, { as: "h1", "aria-level": ariaLevelTitle, children: title }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ActionRequirementStyles.Title, { "aria-level": ariaLevelTitle, children: title }),
119
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Text.default.Body1, { mt: "small", color: "deep", children: description }),
121
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Box.default, { display: "flex", flexDirection: "column", gap: "large", mt: "small", children: descriptionArray.map((paragraph) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Text.default.Body1, { color: "deep", children: paragraph }, paragraph == null ? void 0 : paragraph.toString().slice(0, 10))) }),
120
122
  list && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Box.default, { mt: "large", children: list }),
121
123
  checkable && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Box.default, { mt: "xxlarge", children: checkable }),
122
124
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ActionRequirementStyles.Actions, { mt: "xlarge", children: [
@@ -129,7 +131,7 @@ function ActionRequirement(props) {
129
131
  ActionRequirement.propTypes = {
130
132
  title: (0, import_prop_types.oneOfType)([(0, import_prop_types.arrayOf)(import_prop_types.node), import_prop_types.node]).isRequired,
131
133
  children: (0, import_prop_types.oneOfType)([(0, import_prop_types.arrayOf)(import_prop_types.node), import_prop_types.node]),
132
- description: import_prop_types.string.isRequired,
134
+ description: (0, import_prop_types.oneOfType)([import_prop_types.string, (0, import_prop_types.arrayOf)(import_prop_types.string)]).isRequired,
133
135
  checkable: (0, import_prop_types.oneOfType)([(0, import_prop_types.arrayOf)(import_prop_types.node), import_prop_types.node]),
134
136
  illustration: (0, import_prop_types.oneOfType)([(0, import_prop_types.arrayOf)(import_prop_types.node), import_prop_types.node]),
135
137
  list: (0, import_prop_types.oneOfType)([(0, import_prop_types.arrayOf)(import_prop_types.node), import_prop_types.node]),
@@ -90,4 +90,17 @@ describe("<ActionRequirement />", () => {
90
90
  );
91
91
  expect(container).toMatchSnapshot();
92
92
  });
93
+ it("should render multiple paragraphs when description is an array", () => {
94
+ const descriptions = [
95
+ "First requirement paragraph.",
96
+ "Second requirement giving more context.",
97
+ "Final requirement details here."
98
+ ];
99
+ const { getByText } = (0, import_react2.render)(
100
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.ThemeProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ActionRequirement.default, { title: "title", description: descriptions }) })
101
+ );
102
+ descriptions.forEach((d) => {
103
+ expect(getByText(d)).toBeTruthy();
104
+ });
105
+ });
93
106
  });
@@ -68,6 +68,7 @@ var import_Icon = __toESM(require("../../Icon"));
68
68
  var import_Box = __toESM(require("../../Box"));
69
69
  var import_Text = __toESM(require("../../Text"));
70
70
  var import_StyledFeedback = require("./StyledFeedback");
71
+ var import_parseDescription = __toESM(require("../../utils/parseDescription"));
71
72
  const ICON_SIZE = 64;
72
73
  const VARIANT_ICONS = {
73
74
  success: {
@@ -100,7 +101,7 @@ function Feedback(_a) {
100
101
  "children",
101
102
  "center"
102
103
  ]);
103
- const descriptionArray = Array.isArray(description) ? description : [description];
104
+ const descriptionArray = (0, import_parseDescription.default)(description);
104
105
  const iconProps = VARIANT_ICONS[variant];
105
106
  let primaryButton;
106
107
  let secondaryButton;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var parseDescription_exports = {};
20
+ __export(parseDescription_exports, {
21
+ default: () => parseDescription_default,
22
+ parseDescription: () => parseDescription
23
+ });
24
+ module.exports = __toCommonJS(parseDescription_exports);
25
+ function parseDescription(input) {
26
+ return (Array.isArray(input) ? input : [input]).flatMap((item) => {
27
+ if (item == null || typeof item !== "string")
28
+ return [];
29
+ const trimmed = item.trim();
30
+ return trimmed ? [trimmed] : [];
31
+ });
32
+ }
33
+ var parseDescription_default = parseDescription;
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ parseDescription
37
+ });
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_react = __toESM(require("react"));
26
+ var import_parseDescription = __toESM(require("./parseDescription"));
27
+ describe("parseDescription utility", () => {
28
+ it("should wrap single string and trim it", () => {
29
+ expect((0, import_parseDescription.default)(" hello ")).toEqual(["hello"]);
30
+ });
31
+ it("should filter empty, whitespace and null values", () => {
32
+ const input = [" ", "", null, "valid", " also valid "];
33
+ expect((0, import_parseDescription.default)(input)).toEqual(["valid", "also valid"]);
34
+ });
35
+ it("should ignore non-string items (nodes, numbers, booleans)", () => {
36
+ const node = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Node Content" });
37
+ const input = [node, 42, true, " keep ", " ", false, null];
38
+ const result = (0, import_parseDescription.default)(input);
39
+ expect(result).toEqual(["keep"]);
40
+ });
41
+ });
@@ -29,6 +29,7 @@ import {
29
29
  SecondaryButton
30
30
  } from "./ActionRequirementStyles";
31
31
  import Text from "../../Text";
32
+ import parseDescription from "../../utils/parseDescription";
32
33
  import Box from "../../Box";
33
34
  const StyledActionRequirement = styled.div`
34
35
  display: flex;
@@ -77,6 +78,7 @@ function ActionRequirement(props) {
77
78
  } = props;
78
79
  let primaryButton;
79
80
  let secondaryButton;
81
+ const descriptionArray = parseDescription(description);
80
82
  function defineCompoundComponents() {
81
83
  React.Children.forEach(children, (child) => {
82
84
  if (isChildFromComponent(child, PrimaryButton))
@@ -90,7 +92,7 @@ function ActionRequirement(props) {
90
92
  illustration && /* @__PURE__ */ jsx(BoxIllustration, { "aria-hidden": true, children: illustration }),
91
93
  /* @__PURE__ */ jsxs(Content, { children: [
92
94
  titleAsTextDisplay ? /* @__PURE__ */ jsx(Text.Display2, { as: "h1", "aria-level": ariaLevelTitle, children: title }) : /* @__PURE__ */ jsx(Title, { "aria-level": ariaLevelTitle, children: title }),
93
- /* @__PURE__ */ jsx(Text.Body1, { mt: "small", color: "deep", children: description }),
95
+ /* @__PURE__ */ jsx(Box, { display: "flex", flexDirection: "column", gap: "large", mt: "small", children: descriptionArray.map((paragraph) => /* @__PURE__ */ jsx(Text.Body1, { color: "deep", children: paragraph }, paragraph == null ? void 0 : paragraph.toString().slice(0, 10))) }),
94
96
  list && /* @__PURE__ */ jsx(Box, { mt: "large", children: list }),
95
97
  checkable && /* @__PURE__ */ jsx(Box, { mt: "xxlarge", children: checkable }),
96
98
  /* @__PURE__ */ jsxs(Actions, { mt: "xlarge", children: [
@@ -103,7 +105,7 @@ function ActionRequirement(props) {
103
105
  ActionRequirement.propTypes = {
104
106
  title: oneOfType([arrayOf(node), node]).isRequired,
105
107
  children: oneOfType([arrayOf(node), node]),
106
- description: string.isRequired,
108
+ description: oneOfType([string, arrayOf(string)]).isRequired,
107
109
  checkable: oneOfType([arrayOf(node), node]),
108
110
  illustration: oneOfType([arrayOf(node), node]),
109
111
  list: oneOfType([arrayOf(node), node]),
@@ -67,4 +67,17 @@ describe("<ActionRequirement />", () => {
67
67
  );
68
68
  expect(container).toMatchSnapshot();
69
69
  });
70
+ it("should render multiple paragraphs when description is an array", () => {
71
+ const descriptions = [
72
+ "First requirement paragraph.",
73
+ "Second requirement giving more context.",
74
+ "Final requirement details here."
75
+ ];
76
+ const { getByText } = render(
77
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(ActionRequirement, { title: "title", description: descriptions }) })
78
+ );
79
+ descriptions.forEach((d) => {
80
+ expect(getByText(d)).toBeTruthy();
81
+ });
82
+ });
70
83
  });
@@ -45,6 +45,7 @@ import {
45
45
  TextContainer,
46
46
  Caption
47
47
  } from "./StyledFeedback";
48
+ import parseDescription from "../../utils/parseDescription";
48
49
  const ICON_SIZE = 64;
49
50
  const VARIANT_ICONS = {
50
51
  success: {
@@ -77,7 +78,7 @@ function Feedback(_a) {
77
78
  "children",
78
79
  "center"
79
80
  ]);
80
- const descriptionArray = Array.isArray(description) ? description : [description];
81
+ const descriptionArray = parseDescription(description);
81
82
  const iconProps = VARIANT_ICONS[variant];
82
83
  let primaryButton;
83
84
  let secondaryButton;
@@ -0,0 +1,13 @@
1
+ function parseDescription(input) {
2
+ return (Array.isArray(input) ? input : [input]).flatMap((item) => {
3
+ if (item == null || typeof item !== "string")
4
+ return [];
5
+ const trimmed = item.trim();
6
+ return trimmed ? [trimmed] : [];
7
+ });
8
+ }
9
+ var parseDescription_default = parseDescription;
10
+ export {
11
+ parseDescription_default as default,
12
+ parseDescription
13
+ };
@@ -0,0 +1,18 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import parseDescription from "./parseDescription";
4
+ describe("parseDescription utility", () => {
5
+ it("should wrap single string and trim it", () => {
6
+ expect(parseDescription(" hello ")).toEqual(["hello"]);
7
+ });
8
+ it("should filter empty, whitespace and null values", () => {
9
+ const input = [" ", "", null, "valid", " also valid "];
10
+ expect(parseDescription(input)).toEqual(["valid", "also valid"]);
11
+ });
12
+ it("should ignore non-string items (nodes, numbers, booleans)", () => {
13
+ const node = /* @__PURE__ */ jsx("span", { children: "Node Content" });
14
+ const input = [node, 42, true, " keep ", " ", false, null];
15
+ const result = parseDescription(input);
16
+ expect(result).toEqual(["keep"]);
17
+ });
18
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gympass/yoga",
3
- "version": "7.133.1",
3
+ "version": "7.134.0",
4
4
  "description": "Gympass component library",
5
5
  "main": "./cjs",
6
6
  "types": "./typings/index.d.ts",
@@ -59,7 +59,7 @@
59
59
  "react-native": "0.72.3",
60
60
  "styled-components": "^4.4.0"
61
61
  },
62
- "gitHead": "5b89900ccb5ae4cabfaba5197857467976f37849",
62
+ "gitHead": "7d4c99e654847896367e69f3965faf1e83c0d71f",
63
63
  "module": "./esm",
64
64
  "private": false,
65
65
  "react-native": "./cjs/index.native.js"
@@ -1638,46 +1638,46 @@ declare const composeTheme: (tokens: typeof yogaTokens, customTheming?: {}) => {
1638
1638
  length: number;
1639
1639
  toString(): string;
1640
1640
  toLocaleString(): string;
1641
- pop(): 0 | 1 | 2 | undefined;
1642
- push(...items: (0 | 1 | 2)[]): number;
1643
- concat(...items: ConcatArray<0 | 1 | 2>[]): (0 | 1 | 2)[];
1644
- concat(...items: (0 | 1 | 2 | ConcatArray<0 | 1 | 2>)[]): (0 | 1 | 2)[];
1641
+ pop(): 0 | 2 | 1 | undefined;
1642
+ push(...items: (0 | 2 | 1)[]): number;
1643
+ concat(...items: ConcatArray<0 | 2 | 1>[]): (0 | 2 | 1)[];
1644
+ concat(...items: (0 | 2 | 1 | ConcatArray<0 | 2 | 1>)[]): (0 | 2 | 1)[];
1645
1645
  join(separator?: string | undefined): string;
1646
- reverse(): (0 | 1 | 2)[];
1647
- shift(): 0 | 1 | 2 | undefined;
1648
- slice(start?: number | undefined, end?: number | undefined): (0 | 1 | 2)[];
1649
- sort(compareFn?: ((a: 0 | 1 | 2, b: 0 | 1 | 2) => number) | undefined): (0 | 1 | 2)[];
1650
- splice(start: number, deleteCount?: number | undefined): (0 | 1 | 2)[];
1651
- splice(start: number, deleteCount: number, ...items: (0 | 1 | 2)[]): (0 | 1 | 2)[];
1652
- unshift(...items: (0 | 1 | 2)[]): number;
1653
- indexOf(searchElement: 0 | 1 | 2, fromIndex?: number | undefined): number;
1654
- lastIndexOf(searchElement: 0 | 1 | 2, fromIndex?: number | undefined): number;
1655
- every<S extends 0 | 1 | 2>(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => value is S, thisArg?: any): this is S[];
1656
- every(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => unknown, thisArg?: any): boolean;
1657
- some(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => unknown, thisArg?: any): boolean;
1658
- forEach(callbackfn: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => void, thisArg?: any): void;
1659
- map<U>(callbackfn: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => U, thisArg?: any): U[];
1660
- filter<S_1 extends 0 | 1 | 2>(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => value is S_1, thisArg?: any): S_1[];
1661
- filter(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => unknown, thisArg?: any): (0 | 1 | 2)[];
1662
- reduce(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2): 0 | 1 | 2;
1663
- reduce(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2, initialValue: 0 | 1 | 2): 0 | 1 | 2;
1664
- reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => U_1, initialValue: U_1): U_1;
1665
- reduceRight(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2): 0 | 1 | 2;
1666
- reduceRight(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2, initialValue: 0 | 1 | 2): 0 | 1 | 2;
1667
- reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => U_2, initialValue: U_2): U_2;
1668
- find<S_2 extends 0 | 1 | 2>(predicate: (this: void, value: 0 | 1 | 2, index: number, obj: (0 | 1 | 2)[]) => value is S_2, thisArg?: any): S_2 | undefined;
1669
- find(predicate: (value: 0 | 1 | 2, index: number, obj: (0 | 1 | 2)[]) => unknown, thisArg?: any): 0 | 1 | 2 | undefined;
1670
- findIndex(predicate: (value: 0 | 1 | 2, index: number, obj: (0 | 1 | 2)[]) => unknown, thisArg?: any): number;
1671
- fill(value: 0 | 1 | 2, start?: number | undefined, end?: number | undefined): (0 | 1 | 2)[];
1672
- copyWithin(target: number, start: number, end?: number | undefined): (0 | 1 | 2)[];
1673
- entries(): IterableIterator<[number, 0 | 1 | 2]>;
1646
+ reverse(): (0 | 2 | 1)[];
1647
+ shift(): 0 | 2 | 1 | undefined;
1648
+ slice(start?: number | undefined, end?: number | undefined): (0 | 2 | 1)[];
1649
+ sort(compareFn?: ((a: 0 | 2 | 1, b: 0 | 2 | 1) => number) | undefined): (0 | 2 | 1)[];
1650
+ splice(start: number, deleteCount?: number | undefined): (0 | 2 | 1)[];
1651
+ splice(start: number, deleteCount: number, ...items: (0 | 2 | 1)[]): (0 | 2 | 1)[];
1652
+ unshift(...items: (0 | 2 | 1)[]): number;
1653
+ indexOf(searchElement: 0 | 2 | 1, fromIndex?: number | undefined): number;
1654
+ lastIndexOf(searchElement: 0 | 2 | 1, fromIndex?: number | undefined): number;
1655
+ every<S extends 0 | 2 | 1>(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => value is S, thisArg?: any): this is S[];
1656
+ every(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => unknown, thisArg?: any): boolean;
1657
+ some(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => unknown, thisArg?: any): boolean;
1658
+ forEach(callbackfn: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => void, thisArg?: any): void;
1659
+ map<U>(callbackfn: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => U, thisArg?: any): U[];
1660
+ filter<S_1 extends 0 | 2 | 1>(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => value is S_1, thisArg?: any): S_1[];
1661
+ filter(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => unknown, thisArg?: any): (0 | 2 | 1)[];
1662
+ reduce(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1): 0 | 2 | 1;
1663
+ reduce(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1, initialValue: 0 | 2 | 1): 0 | 2 | 1;
1664
+ reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => U_1, initialValue: U_1): U_1;
1665
+ reduceRight(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1): 0 | 2 | 1;
1666
+ reduceRight(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1, initialValue: 0 | 2 | 1): 0 | 2 | 1;
1667
+ reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => U_2, initialValue: U_2): U_2;
1668
+ find<S_2 extends 0 | 2 | 1>(predicate: (this: void, value: 0 | 2 | 1, index: number, obj: (0 | 2 | 1)[]) => value is S_2, thisArg?: any): S_2 | undefined;
1669
+ find(predicate: (value: 0 | 2 | 1, index: number, obj: (0 | 2 | 1)[]) => unknown, thisArg?: any): 0 | 2 | 1 | undefined;
1670
+ findIndex(predicate: (value: 0 | 2 | 1, index: number, obj: (0 | 2 | 1)[]) => unknown, thisArg?: any): number;
1671
+ fill(value: 0 | 2 | 1, start?: number | undefined, end?: number | undefined): (0 | 2 | 1)[];
1672
+ copyWithin(target: number, start: number, end?: number | undefined): (0 | 2 | 1)[];
1673
+ entries(): IterableIterator<[number, 0 | 2 | 1]>;
1674
1674
  keys(): IterableIterator<number>;
1675
- values(): IterableIterator<0 | 1 | 2>;
1676
- includes(searchElement: 0 | 1 | 2, fromIndex?: number | undefined): boolean;
1677
- flatMap<U_3, This = undefined>(callback: (this: This, value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => U_3 | readonly U_3[], thisArg?: This | undefined): U_3[];
1675
+ values(): IterableIterator<0 | 2 | 1>;
1676
+ includes(searchElement: 0 | 2 | 1, fromIndex?: number | undefined): boolean;
1677
+ flatMap<U_3, This = undefined>(callback: (this: This, value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => U_3 | readonly U_3[], thisArg?: This | undefined): U_3[];
1678
1678
  flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
1679
- at(index: number): 0 | 1 | 2 | undefined;
1680
- [Symbol.iterator](): IterableIterator<0 | 1 | 2>;
1679
+ at(index: number): 0 | 2 | 1 | undefined;
1680
+ [Symbol.iterator](): IterableIterator<0 | 2 | 1>;
1681
1681
  [Symbol.unscopables](): {
1682
1682
  copyWithin: boolean;
1683
1683
  entries: boolean;
@@ -9,46 +9,46 @@ declare const v3theme: {
9
9
  length: number;
10
10
  toString(): string;
11
11
  toLocaleString(): string;
12
- pop(): 0 | 1 | 2 | undefined;
13
- push(...items: (0 | 1 | 2)[]): number;
14
- concat(...items: ConcatArray<0 | 1 | 2>[]): (0 | 1 | 2)[];
15
- concat(...items: (0 | 1 | 2 | ConcatArray<0 | 1 | 2>)[]): (0 | 1 | 2)[];
12
+ pop(): 0 | 2 | 1 | undefined;
13
+ push(...items: (0 | 2 | 1)[]): number;
14
+ concat(...items: ConcatArray<0 | 2 | 1>[]): (0 | 2 | 1)[];
15
+ concat(...items: (0 | 2 | 1 | ConcatArray<0 | 2 | 1>)[]): (0 | 2 | 1)[];
16
16
  join(separator?: string | undefined): string;
17
- reverse(): (0 | 1 | 2)[];
18
- shift(): 0 | 1 | 2 | undefined;
19
- slice(start?: number | undefined, end?: number | undefined): (0 | 1 | 2)[];
20
- sort(compareFn?: ((a: 0 | 1 | 2, b: 0 | 1 | 2) => number) | undefined): (0 | 1 | 2)[];
21
- splice(start: number, deleteCount?: number | undefined): (0 | 1 | 2)[];
22
- splice(start: number, deleteCount: number, ...items: (0 | 1 | 2)[]): (0 | 1 | 2)[];
23
- unshift(...items: (0 | 1 | 2)[]): number;
24
- indexOf(searchElement: 0 | 1 | 2, fromIndex?: number | undefined): number;
25
- lastIndexOf(searchElement: 0 | 1 | 2, fromIndex?: number | undefined): number;
26
- every<S extends 0 | 1 | 2>(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => value is S, thisArg?: any): this is S[];
27
- every(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => unknown, thisArg?: any): boolean;
28
- some(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => unknown, thisArg?: any): boolean;
29
- forEach(callbackfn: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => void, thisArg?: any): void;
30
- map<U>(callbackfn: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => U, thisArg?: any): U[];
31
- filter<S_1 extends 0 | 1 | 2>(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => value is S_1, thisArg?: any): S_1[];
32
- filter(predicate: (value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => unknown, thisArg?: any): (0 | 1 | 2)[];
33
- reduce(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2): 0 | 1 | 2;
34
- reduce(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2, initialValue: 0 | 1 | 2): 0 | 1 | 2;
35
- reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => U_1, initialValue: U_1): U_1;
36
- reduceRight(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2): 0 | 1 | 2;
37
- reduceRight(callbackfn: (previousValue: 0 | 1 | 2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => 0 | 1 | 2, initialValue: 0 | 1 | 2): 0 | 1 | 2;
38
- reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: 0 | 1 | 2, currentIndex: number, array: (0 | 1 | 2)[]) => U_2, initialValue: U_2): U_2;
39
- find<S_2 extends 0 | 1 | 2>(predicate: (this: void, value: 0 | 1 | 2, index: number, obj: (0 | 1 | 2)[]) => value is S_2, thisArg?: any): S_2 | undefined;
40
- find(predicate: (value: 0 | 1 | 2, index: number, obj: (0 | 1 | 2)[]) => unknown, thisArg?: any): 0 | 1 | 2 | undefined;
41
- findIndex(predicate: (value: 0 | 1 | 2, index: number, obj: (0 | 1 | 2)[]) => unknown, thisArg?: any): number;
42
- fill(value: 0 | 1 | 2, start?: number | undefined, end?: number | undefined): (0 | 1 | 2)[];
43
- copyWithin(target: number, start: number, end?: number | undefined): (0 | 1 | 2)[];
44
- entries(): IterableIterator<[number, 0 | 1 | 2]>;
17
+ reverse(): (0 | 2 | 1)[];
18
+ shift(): 0 | 2 | 1 | undefined;
19
+ slice(start?: number | undefined, end?: number | undefined): (0 | 2 | 1)[];
20
+ sort(compareFn?: ((a: 0 | 2 | 1, b: 0 | 2 | 1) => number) | undefined): (0 | 2 | 1)[];
21
+ splice(start: number, deleteCount?: number | undefined): (0 | 2 | 1)[];
22
+ splice(start: number, deleteCount: number, ...items: (0 | 2 | 1)[]): (0 | 2 | 1)[];
23
+ unshift(...items: (0 | 2 | 1)[]): number;
24
+ indexOf(searchElement: 0 | 2 | 1, fromIndex?: number | undefined): number;
25
+ lastIndexOf(searchElement: 0 | 2 | 1, fromIndex?: number | undefined): number;
26
+ every<S extends 0 | 2 | 1>(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => value is S, thisArg?: any): this is S[];
27
+ every(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => unknown, thisArg?: any): boolean;
28
+ some(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => unknown, thisArg?: any): boolean;
29
+ forEach(callbackfn: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => void, thisArg?: any): void;
30
+ map<U>(callbackfn: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => U, thisArg?: any): U[];
31
+ filter<S_1 extends 0 | 2 | 1>(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => value is S_1, thisArg?: any): S_1[];
32
+ filter(predicate: (value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => unknown, thisArg?: any): (0 | 2 | 1)[];
33
+ reduce(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1): 0 | 2 | 1;
34
+ reduce(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1, initialValue: 0 | 2 | 1): 0 | 2 | 1;
35
+ reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => U_1, initialValue: U_1): U_1;
36
+ reduceRight(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1): 0 | 2 | 1;
37
+ reduceRight(callbackfn: (previousValue: 0 | 2 | 1, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => 0 | 2 | 1, initialValue: 0 | 2 | 1): 0 | 2 | 1;
38
+ reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: 0 | 2 | 1, currentIndex: number, array: (0 | 2 | 1)[]) => U_2, initialValue: U_2): U_2;
39
+ find<S_2 extends 0 | 2 | 1>(predicate: (this: void, value: 0 | 2 | 1, index: number, obj: (0 | 2 | 1)[]) => value is S_2, thisArg?: any): S_2 | undefined;
40
+ find(predicate: (value: 0 | 2 | 1, index: number, obj: (0 | 2 | 1)[]) => unknown, thisArg?: any): 0 | 2 | 1 | undefined;
41
+ findIndex(predicate: (value: 0 | 2 | 1, index: number, obj: (0 | 2 | 1)[]) => unknown, thisArg?: any): number;
42
+ fill(value: 0 | 2 | 1, start?: number | undefined, end?: number | undefined): (0 | 2 | 1)[];
43
+ copyWithin(target: number, start: number, end?: number | undefined): (0 | 2 | 1)[];
44
+ entries(): IterableIterator<[number, 0 | 2 | 1]>;
45
45
  keys(): IterableIterator<number>;
46
- values(): IterableIterator<0 | 1 | 2>;
47
- includes(searchElement: 0 | 1 | 2, fromIndex?: number | undefined): boolean;
48
- flatMap<U_3, This = undefined>(callback: (this: This, value: 0 | 1 | 2, index: number, array: (0 | 1 | 2)[]) => U_3 | readonly U_3[], thisArg?: This | undefined): U_3[];
46
+ values(): IterableIterator<0 | 2 | 1>;
47
+ includes(searchElement: 0 | 2 | 1, fromIndex?: number | undefined): boolean;
48
+ flatMap<U_3, This = undefined>(callback: (this: This, value: 0 | 2 | 1, index: number, array: (0 | 2 | 1)[]) => U_3 | readonly U_3[], thisArg?: This | undefined): U_3[];
49
49
  flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
50
- at(index: number): 0 | 1 | 2 | undefined;
51
- [Symbol.iterator](): IterableIterator<0 | 1 | 2>;
50
+ at(index: number): 0 | 2 | 1 | undefined;
51
+ [Symbol.iterator](): IterableIterator<0 | 2 | 1>;
52
52
  [Symbol.unscopables](): {
53
53
  copyWithin: boolean;
54
54
  entries: boolean;
@@ -405,7 +405,7 @@ declare namespace ActionRequirement {
405
405
  namespace propTypes {
406
406
  export const title: prop_types.Validator<string | number | boolean | prop_types.ReactElementLike | prop_types.ReactNodeArray>;
407
407
  export const children: prop_types.Requireable<string | number | boolean | prop_types.ReactElementLike | prop_types.ReactNodeArray>;
408
- export const description: prop_types.Validator<string>;
408
+ export const description: prop_types.Validator<string | (string | null | undefined)[]>;
409
409
  export const checkable: prop_types.Requireable<string | number | boolean | prop_types.ReactElementLike | prop_types.ReactNodeArray>;
410
410
  export const illustration: prop_types.Requireable<string | number | boolean | prop_types.ReactElementLike | prop_types.ReactNodeArray>;
411
411
  export const list: prop_types.Requireable<string | number | boolean | prop_types.ReactElementLike | prop_types.ReactNodeArray>;