@amsterdam/design-system-react 0.1.2 → 0.1.4

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.
Files changed (43) hide show
  1. package/README.md +3 -6
  2. package/dist/Accordion/Accordion.d.ts +17 -0
  3. package/dist/Accordion/Accordion.test.d.ts +1 -0
  4. package/dist/Accordion/AccordionContext.d.ts +8 -0
  5. package/dist/Accordion/AccordionSection.d.ts +12 -0
  6. package/dist/Accordion/AccordionSection.test.d.ts +1 -0
  7. package/dist/Accordion/index.d.ts +3 -0
  8. package/dist/Accordion/useFocusWithArrow.test.d.ts +1 -0
  9. package/dist/Accordion/useFocusWithArrows.d.ts +24 -0
  10. package/dist/Button/Button.d.ts +12 -0
  11. package/dist/Button/Button.test.d.ts +1 -0
  12. package/dist/Button/index.d.ts +2 -0
  13. package/dist/FormLabel/FormLabel.d.ts +9 -0
  14. package/dist/FormLabel/FormLabel.test.d.ts +1 -0
  15. package/dist/FormLabel/index.d.ts +1 -0
  16. package/dist/Heading/Heading.d.ts +24 -0
  17. package/dist/Heading/Heading.test.d.ts +1 -0
  18. package/dist/Heading/index.d.ts +2 -0
  19. package/dist/Icon/Icon.d.ts +12 -0
  20. package/dist/Icon/Icon.test.d.ts +1 -0
  21. package/dist/Icon/index.d.ts +2 -0
  22. package/dist/Link/Link.d.ts +15 -0
  23. package/dist/Link/Link.test.d.ts +1 -0
  24. package/dist/Link/index.d.ts +2 -0
  25. package/dist/List.d.ts +8 -5
  26. package/dist/{Paragraph.d.ts → Paragraph/Paragraph.d.ts} +12 -10
  27. package/dist/Paragraph/Paragraph.test.d.ts +1 -0
  28. package/dist/Paragraph/index.d.ts +2 -0
  29. package/dist/UnorderedList/UnorderedList.d.ts +14 -0
  30. package/dist/UnorderedList/UnorderedList.test.d.ts +1 -0
  31. package/dist/UnorderedList/index.d.ts +1 -0
  32. package/dist/index.cjs.js +313 -93
  33. package/dist/index.cjs.js.map +1 -1
  34. package/dist/index.d.ts +13 -10
  35. package/dist/index.esm.js +312 -94
  36. package/dist/index.esm.js.map +1 -1
  37. package/package.json +30 -30
  38. package/dist/Grid.d.ts +0 -5
  39. package/dist/GridItem.d.ts +0 -11
  40. package/dist/Heading.d.ts +0 -13
  41. package/dist/Icon.d.ts +0 -5
  42. package/dist/Link.d.ts +0 -9
  43. package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/index.cjs.js CHANGED
@@ -6,49 +6,13 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var clsx = require('clsx');
7
7
  var react = require('react');
8
8
  var designSystemReactIcons = require('@amsterdam/design-system-react-icons');
9
+ var componentLibraryReact = require('@utrecht/component-library-react');
10
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
9
11
 
10
- var _excluded$6 = ["children", "className"];
11
- function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
- function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
- var Grid = function Grid(_ref) {
14
- var children = _ref.children,
15
- className = _ref.className,
16
- restProps = _objectWithoutProperties(_ref, _excluded$6);
17
- return jsxRuntime.jsx("div", _objectSpread$6(_objectSpread$6({
18
- className: clsx('amsterdam-grid', className)
19
- }, restProps), {}, {
20
- children: children
21
- }));
22
- };
23
-
24
- var _excluded$5 = ["spanSmall", "startSmall", "spanLarge", "startLarge", "children", "className"];
25
- function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
- var GridItem = function GridItem(_ref) {
28
- var _ref$spanSmall = _ref.spanSmall,
29
- spanSmall = _ref$spanSmall === void 0 ? 4 : _ref$spanSmall,
30
- startSmall = _ref.startSmall,
31
- _ref$spanLarge = _ref.spanLarge,
32
- spanLarge = _ref$spanLarge === void 0 ? 12 : _ref$spanLarge,
33
- startLarge = _ref.startLarge,
34
- children = _ref.children,
35
- className = _ref.className,
36
- restProps = _objectWithoutProperties(_ref, _excluded$5);
37
- var maxSpanSmall = startSmall && 5 - startSmall;
38
- var actualSpanSmall = maxSpanSmall && spanSmall > maxSpanSmall ? maxSpanSmall : spanSmall;
39
- var maxSpanLarge = startLarge && 13 - startLarge;
40
- var actualSpanLarge = maxSpanLarge && spanLarge > maxSpanLarge ? maxSpanLarge : spanLarge;
41
- return jsxRuntime.jsx("div", _objectSpread$5(_objectSpread$5({
42
- className: clsx("amsterdam-col-span-".concat(actualSpanSmall), "amsterdam-col-span-".concat(actualSpanLarge, "--large"), startSmall && "amsterdam-col-start-".concat(startSmall), startLarge && "amsterdam-col-start-".concat(startLarge, "--large"), className)
43
- }, restProps), {}, {
44
- children: children
45
- }));
46
- };
47
-
48
- var _excluded$4 = ["level", "styleLevel", "children", "className"];
49
- function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
50
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
- function getElement(level) {
12
+ var _excluded$8 = ["children", "className", "level", "size"];
13
+ function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+ function getHeadingElement(level) {
52
16
  switch (level) {
53
17
  case 2:
54
18
  return 'h2';
@@ -56,104 +20,360 @@ function getElement(level) {
56
20
  return 'h3';
57
21
  case 4:
58
22
  return 'h4';
59
- case 5:
60
- return 'h5';
61
- case 6:
62
- return 'h6';
63
23
  default:
64
24
  return 'h1';
65
25
  }
66
26
  }
67
27
  var Heading = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
68
- var _ref$level = _ref.level,
69
- level = _ref$level === void 0 ? 1 : _ref$level,
70
- styleLevel = _ref.styleLevel,
71
- children = _ref.children,
28
+ var children = _ref.children,
72
29
  className = _ref.className,
73
- restProps = _objectWithoutProperties(_ref, _excluded$4);
74
- var HeadingX = getElement(level);
75
- return jsxRuntime.jsx(HeadingX, _objectSpread$4(_objectSpread$4({
30
+ _ref$level = _ref.level,
31
+ level = _ref$level === void 0 ? 1 : _ref$level,
32
+ size = _ref.size,
33
+ restProps = _objectWithoutProperties(_ref, _excluded$8);
34
+ var HeadingX = getHeadingElement(level);
35
+ var sizeOrLevel = size ? size.split('-')[1] : level;
36
+ return jsxRuntime.jsx(HeadingX, _objectSpread$8(_objectSpread$8({
76
37
  ref: ref,
77
- className: clsx('amsterdam-heading', "amsterdam-heading-".concat(styleLevel || level), className)
38
+ className: clsx('amsterdam-heading', "amsterdam-heading-".concat(sizeOrLevel), className)
78
39
  }, restProps), {}, {
79
40
  children: children
80
41
  }));
81
42
  });
82
43
  Heading.displayName = 'Heading';
83
44
 
84
- var _excluded$3 = ["children", "className", "size"];
45
+ var _excluded$7 = ["className", "size", "svg"];
46
+ function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
48
+ var Icon = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
49
+ var className = _ref.className,
50
+ _ref$size = _ref.size,
51
+ size = _ref$size === void 0 ? 'level-3' : _ref$size,
52
+ svg = _ref.svg,
53
+ otherProps = _objectWithoutProperties(_ref, _excluded$7);
54
+ return jsxRuntime.jsx("span", _objectSpread$7(_objectSpread$7({
55
+ ref: ref,
56
+ className: clsx('amsterdam-icon', size === 'level-3' && 'amsterdam-icon-size-3', size === 'level-4' && 'amsterdam-icon-size-4', size === 'level-5' && 'amsterdam-icon-size-5', size === 'level-6' && 'amsterdam-icon-size-6', size === 'level-7' && 'amsterdam-icon-size-7', className)
57
+ }, otherProps), {}, {
58
+ children: svg()
59
+ }));
60
+ });
61
+ Icon.displayName = 'Icon';
62
+
63
+ var _excluded$6 = ["children", "variant", "onBackground", "className"];
64
+ function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
65
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
66
+ var Link = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
67
+ var children = _ref.children,
68
+ variant = _ref.variant,
69
+ onBackground = _ref.onBackground,
70
+ className = _ref.className,
71
+ otherProps = _objectWithoutProperties(_ref, _excluded$6);
72
+ return jsxRuntime.jsxs("a", _objectSpread$6(_objectSpread$6({}, otherProps), {}, {
73
+ ref: ref,
74
+ className: clsx('amsterdam-link', {
75
+ 'amsterdam-link--inline': variant === 'inline',
76
+ 'amsterdam-link--standalone-bold': variant === 'standaloneBold',
77
+ 'amsterdam-link--in-list': variant === 'inList',
78
+ 'amsterdam-link--on-background-light': onBackground === 'light',
79
+ 'amsterdam-link--on-background-dark': onBackground === 'dark'
80
+ }, className),
81
+ children: [variant === 'inList' && jsxRuntime.jsx(Icon, {
82
+ svg: designSystemReactIcons.ChevronRight,
83
+ size: "level-7"
84
+ }), children]
85
+ }));
86
+ });
87
+ Link.displayName = 'Link';
88
+
89
+ var _excluded$5 = ["children", "disabled", "variant"];
90
+ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
91
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
92
+ function getAppearance(variant) {
93
+ switch (variant) {
94
+ case 'secondary':
95
+ return 'secondary-action-button';
96
+ case 'tertiary':
97
+ return 'subtle-button';
98
+ default:
99
+ return 'primary-action-button';
100
+ }
101
+ }
102
+ var Button = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
103
+ var children = _ref.children,
104
+ disabled = _ref.disabled,
105
+ _ref$variant = _ref.variant,
106
+ variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
107
+ restProps = _objectWithoutProperties(_ref, _excluded$5);
108
+ return jsxRuntime.jsx(componentLibraryReact.Button, _objectSpread$5(_objectSpread$5({}, restProps), {}, {
109
+ appearance: getAppearance(variant),
110
+ ref: ref,
111
+ disabled: disabled,
112
+ className: clsx('amsterdam-button', variant === 'secondary' && 'amsterdam-button--secondary'),
113
+ children: children
114
+ }));
115
+ });
116
+ Button.displayName = 'Button';
117
+
118
+ var _excluded$4 = ["children", "size", "className"];
119
+ function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
120
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
121
+ var Paragraph = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
122
+ var children = _ref.children,
123
+ size = _ref.size,
124
+ className = _ref.className,
125
+ otherProps = _objectWithoutProperties(_ref, _excluded$4);
126
+ return jsxRuntime.jsx("p", _objectSpread$4(_objectSpread$4({
127
+ ref: ref,
128
+ className: clsx('amsterdam-paragraph', size && "amsterdam-paragraph-".concat(size), className)
129
+ }, otherProps), {}, {
130
+ children: children
131
+ }));
132
+ });
133
+ Paragraph.displayName = 'Paragraph';
134
+
135
+ var _excluded$3 = ["children", "className"];
85
136
  function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
86
137
  function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
87
- var Icon = function Icon(_ref) {
138
+ var FormLabel = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
88
139
  var children = _ref.children,
89
140
  className = _ref.className,
90
- _ref$size = _ref.size,
91
- size = _ref$size === void 0 ? 'small' : _ref$size,
92
- otherProps = _objectWithoutProperties(_ref, _excluded$3);
93
- return jsxRuntime.jsx("span", _objectSpread$3(_objectSpread$3({
94
- className: clsx('amsterdam-icon', size === 'small' && 'amsterdam-icon-small', size === 'medium' && 'amsterdam-icon-medium', size === 'large' && 'amsterdam-icon-large', className)
95
- }, otherProps), {}, {
141
+ restProps = _objectWithoutProperties(_ref, _excluded$3);
142
+ return jsxRuntime.jsx("label", _objectSpread$3(_objectSpread$3({}, restProps), {}, {
143
+ ref: ref,
144
+ className: clsx('amsterdam-form-label', className),
96
145
  children: children
97
146
  }));
98
- };
147
+ });
148
+ FormLabel.displayName = 'FormLabel';
99
149
 
100
- var _excluded$2 = ["children", "className", "icon", "variant"];
150
+ var _excluded$2 = ["children", "className"],
151
+ _excluded2 = ["children", "className"];
101
152
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
102
153
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
103
- var Link = function Link(_ref) {
154
+ var UnorderedList = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
104
155
  var children = _ref.children,
105
156
  className = _ref.className,
106
- icon = _ref.icon,
107
- variant = _ref.variant,
108
157
  restProps = _objectWithoutProperties(_ref, _excluded$2);
109
- return jsxRuntime.jsxs("a", _objectSpread$2(_objectSpread$2({
110
- className: clsx('amsterdam-link', variant === 'standalone' && 'amsterdam-link-standalone', variant === 'inList' && 'amsterdam-link-inlist', variant === 'inline' && 'amsterdam-link-inline', className)
158
+ return jsxRuntime.jsx("ul", _objectSpread$2(_objectSpread$2({
159
+ ref: ref,
160
+ className: clsx('amsterdam-unordered-list', className)
111
161
  }, restProps), {}, {
112
- children: [variant === 'inList' && jsxRuntime.jsx(Icon, {
113
- size: icon ? 'medium' : 'small',
114
- children: icon ? icon : jsxRuntime.jsx(designSystemReactIcons.ChevronRight, {})
115
- }), children, variant === 'inline' && icon && jsxRuntime.jsx(Icon, {
116
- children: icon
117
- })]
162
+ children: children
118
163
  }));
164
+ });
165
+ UnorderedList.displayName = 'UnorderedList';
166
+ var UnorderedListItem = /*#__PURE__*/react.forwardRef(function (_ref2, ref) {
167
+ var children = _ref2.children,
168
+ className = _ref2.className,
169
+ restProps = _objectWithoutProperties(_ref2, _excluded2);
170
+ return jsxRuntime.jsx("li", _objectSpread$2(_objectSpread$2({
171
+ ref: ref,
172
+ className: clsx('amsterdam-unordered-list__item', className)
173
+ }, restProps), {}, {
174
+ children: children
175
+ }));
176
+ });
177
+ UnorderedListItem.displayName = 'UnorderedListItem';
178
+ UnorderedList.Item = UnorderedListItem;
179
+
180
+ var defaultValues = {
181
+ headingLevel: 1,
182
+ section: true
119
183
  };
184
+ var AccordionContext = /*#__PURE__*/react.createContext(defaultValues);
120
185
 
121
- var _excluded$1 = ["children", "className"];
186
+ var _excluded$1 = ["label", "expanded", "children", "className"];
122
187
  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
123
188
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
124
- var List = function List(_ref) {
125
- var children = _ref.children,
189
+ var AccordionSection = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
190
+ var label = _ref.label,
191
+ _ref$expanded = _ref.expanded,
192
+ expanded = _ref$expanded === void 0 ? false : _ref$expanded,
193
+ children = _ref.children,
126
194
  className = _ref.className,
127
- restProps = _objectWithoutProperties(_ref, _excluded$1);
128
- return jsxRuntime.jsx("ul", _objectSpread$1(_objectSpread$1({
129
- className: clsx('amsterdam-list', className)
130
- }, restProps), {}, {
131
- children: children
195
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
196
+ var _useContext = react.useContext(AccordionContext),
197
+ headingLevel = _useContext.headingLevel,
198
+ section = _useContext.section;
199
+ var _useState = react.useState(expanded),
200
+ _useState2 = _slicedToArray(_useState, 2),
201
+ isExpanded = _useState2[0],
202
+ setIsExpanded = _useState2[1];
203
+ var HeadingX = getHeadingElement(headingLevel);
204
+ var id = react.useId();
205
+ var buttonId = "button-".concat(id);
206
+ var panelId = "panel-".concat(id);
207
+ return jsxRuntime.jsxs("div", _objectSpread$1(_objectSpread$1({
208
+ className: clsx('amsterdam-accordion__section', className),
209
+ ref: ref
210
+ }, otherProps), {}, {
211
+ children: [jsxRuntime.jsx(HeadingX, {
212
+ className: 'amsterdam-accordion__header',
213
+ children: jsxRuntime.jsxs("button", {
214
+ "aria-controls": panelId,
215
+ "aria-expanded": isExpanded,
216
+ className: "amsterdam-accordion__button",
217
+ id: buttonId,
218
+ onClick: function onClick() {
219
+ return setIsExpanded(!isExpanded);
220
+ },
221
+ type: "button",
222
+ children: [label, jsxRuntime.jsx(Icon, {
223
+ svg: designSystemReactIcons.ChevronDown,
224
+ size: "level-5"
225
+ })]
226
+ })
227
+ }), section ? jsxRuntime.jsx("section", {
228
+ id: panelId,
229
+ "aria-labelledby": buttonId,
230
+ className: clsx('amsterdam-accordion__panel', {
231
+ 'amsterdam-accordion__panel--expanded': isExpanded
232
+ }),
233
+ children: children
234
+ }) : jsxRuntime.jsx("div", {
235
+ id: panelId,
236
+ "aria-labelledby": buttonId,
237
+ className: clsx('amsterdam-accordion__panel', {
238
+ 'amsterdam-accordion__panel--expanded': isExpanded
239
+ }),
240
+ children: children
241
+ })]
132
242
  }));
243
+ });
244
+ AccordionSection.displayName = 'AccordionSection';
245
+
246
+ /**
247
+ * @license EUPL-1.2+
248
+ * Copyright (c) 2023 Gemeente Amsterdam
249
+ */
250
+ var KeyboardKeys = {
251
+ ArrowUp: 'ArrowUp',
252
+ ArrowDown: 'ArrowDown',
253
+ ArrowRight: 'ArrowRight',
254
+ ArrowLeft: 'ArrowLeft',
255
+ Home: 'Home',
256
+ End: 'End'
257
+ };
258
+ /**
259
+ * Focus on children with arrow keys and home / end buttons.
260
+ *
261
+ * @param ref Component ref
262
+ * @param rotating Jump to first item from last or vice versa
263
+ * @param horizontally In case you need to navigate horizontally, using left / right arrow buttons
264
+ */
265
+ var useFocusWithArrows = function useFocusWithArrows(ref) {
266
+ var rotating = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
267
+ var horizontally = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
268
+ var next = horizontally ? KeyboardKeys.ArrowRight : KeyboardKeys.ArrowDown;
269
+ var previous = horizontally ? KeyboardKeys.ArrowLeft : KeyboardKeys.ArrowUp;
270
+ var keyDown = function keyDown(e) {
271
+ if (ref.current) {
272
+ var element = ref.current;
273
+ var activeElement = window.document.activeElement;
274
+ var focusableEls = Array.from(element.querySelectorAll('.amsterdam-accordion__button'));
275
+ var getIndex = function getIndex(el) {
276
+ return el && focusableEls.includes(el) ? focusableEls.indexOf(el) : 0;
277
+ };
278
+ var el;
279
+ switch (e.key) {
280
+ case next:
281
+ {
282
+ if (getIndex(activeElement) !== focusableEls.length - 1) {
283
+ el = focusableEls[getIndex(activeElement) + 1];
284
+ // If there is nothing focussed yet, set the focus on the first element
285
+ if (activeElement && !focusableEls.includes(activeElement)) {
286
+ el = focusableEls[0];
287
+ }
288
+ } else if (rotating) {
289
+ el = focusableEls[0];
290
+ }
291
+ break;
292
+ }
293
+ case previous:
294
+ {
295
+ if (getIndex(activeElement) !== 0) {
296
+ el = focusableEls[getIndex(activeElement) - 1];
297
+ } else if (rotating) {
298
+ el = focusableEls[focusableEls.length - 1];
299
+ }
300
+ break;
301
+ }
302
+ case KeyboardKeys.Home:
303
+ {
304
+ el = focusableEls[0];
305
+ break;
306
+ }
307
+ case KeyboardKeys.End:
308
+ {
309
+ el = focusableEls[focusableEls.length - 1];
310
+ break;
311
+ }
312
+ }
313
+ if ((e.key === KeyboardKeys.ArrowDown || e.key === KeyboardKeys.ArrowUp || e.key === KeyboardKeys.ArrowLeft || e.key === KeyboardKeys.ArrowRight || e.key === KeyboardKeys.Home || e.key === KeyboardKeys.End) && el instanceof HTMLElement) {
314
+ el.focus();
315
+ e.preventDefault();
316
+ }
317
+ }
318
+ };
319
+ return {
320
+ keyDown: keyDown
321
+ };
133
322
  };
134
323
 
135
- var _excluded = ["children", "variant", "className"];
324
+ var Accordion = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
325
+ var children = _ref.children,
326
+ className = _ref.className,
327
+ headingLevel = _ref.headingLevel,
328
+ _ref$section = _ref.section,
329
+ section = _ref$section === void 0 ? true : _ref$section;
330
+ var innerRef = react.useRef(null);
331
+ // use a passed ref if it's there, otherwise use innerRef
332
+ react.useImperativeHandle(ref, function () {
333
+ return innerRef.current;
334
+ });
335
+ var _useFocusWithArrows = useFocusWithArrows(innerRef, true),
336
+ keyDown = _useFocusWithArrows.keyDown;
337
+ return jsxRuntime.jsx(AccordionContext.Provider, {
338
+ value: {
339
+ headingLevel: headingLevel,
340
+ section: section
341
+ },
342
+ children: jsxRuntime.jsx("div", {
343
+ className: clsx('amsterdam-accordion', className),
344
+ onKeyDown: keyDown,
345
+ ref: innerRef,
346
+ children: children
347
+ })
348
+ });
349
+ });
350
+ Accordion.displayName = 'Accordion';
351
+ Accordion.Section = AccordionSection;
352
+ Accordion.Section.displayName = 'Accordion.Section';
353
+
354
+ var _excluded = ["children", "className"];
136
355
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
137
356
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
138
- var Paragraph = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
357
+ var List = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
139
358
  var children = _ref.children,
140
- variant = _ref.variant,
141
359
  className = _ref.className,
142
- otherProps = _objectWithoutProperties(_ref, _excluded);
143
- return jsxRuntime.jsx("p", _objectSpread(_objectSpread({
360
+ restProps = _objectWithoutProperties(_ref, _excluded);
361
+ return jsxRuntime.jsx("ul", _objectSpread(_objectSpread({
144
362
  ref: ref,
145
- className: clsx('amsterdam-paragraph', variant === 'intro' && 'amsterdam-paragraph-intro', variant === 'small' && 'amsterdam-paragraph-small', className)
146
- }, otherProps), {}, {
363
+ className: clsx('amsterdam-list', className)
364
+ }, restProps), {}, {
147
365
  children: children
148
366
  }));
149
367
  });
150
- Paragraph.displayName = 'Paragraph';
368
+ List.displayName = 'List';
151
369
 
152
- exports.Grid = Grid;
153
- exports.GridItem = GridItem;
370
+ exports.Accordion = Accordion;
371
+ exports.Button = Button;
372
+ exports.FormLabel = FormLabel;
154
373
  exports.Heading = Heading;
155
374
  exports.Icon = Icon;
156
375
  exports.Link = Link;
157
376
  exports.List = List;
158
377
  exports.Paragraph = Paragraph;
378
+ exports.UnorderedList = UnorderedList;
159
379
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,13 @@
1
- /**
2
- * @license EUPL-1.2
3
- */
4
- export { Grid } from './Grid';
5
- export { GridItem } from './GridItem';
6
- export { Heading } from './Heading';
7
- export { Icon } from './Icon';
8
- export { Link } from './Link';
9
- export { List } from './List';
10
- export { Paragraph } from './Paragraph';
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright (c) 2023 Gemeente Amsterdam
4
+ */
5
+ export * from './Heading';
6
+ export * from './Link';
7
+ export * from './Button/';
8
+ export * from './Paragraph';
9
+ export * from './FormLabel';
10
+ export * from './UnorderedList';
11
+ export * from './Icon';
12
+ export * from './Accordion';
13
+ export { List } from './List';