UNPKG

@amsterdam/design-system-react

Version:

All React components from the Amsterdam Design System. Use it to compose pages in your website or application.

889 lines (853 loc) 252 kB
'use strict'; var jsxRuntime = require('react/jsx-runtime'); var clsx = require('clsx'); var react = require('react'); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties'); var designSystemReactIcons = require('@amsterdam/design-system-react-icons'); var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray'); /** * @license EUPL-1.2+ * Copyright Gemeente Amsterdam */ var KeyboardKeys = { ArrowDown: 'ArrowDown', ArrowLeft: 'ArrowLeft', ArrowRight: 'ArrowRight', ArrowUp: 'ArrowUp', End: 'End', Home: 'Home' }; var FOCUSABLE_ELEMENTS = ['a[href]:not([disabled])', 'button:not([disabled])', 'textarea:not([disabled])', 'input[type="text"]:not([disabled])', 'input[type="radio"]:not([disabled])', 'input[type="checkbox"]:not([disabled])', 'select:not([disabled])']; var useKeyboardFocus = function useKeyboardFocus(ref, options) { var _options$directChildr = options.directChildrenOnly, directChildrenOnly = _options$directChildr === void 0 ? false : _options$directChildr, _options$focusableEle = options.focusableElements, focusableElements = _options$focusableEle === void 0 ? FOCUSABLE_ELEMENTS : _options$focusableEle, _options$horizontally = options.horizontally, horizontally = _options$horizontally === void 0 ? false : _options$horizontally, _options$rotating = options.rotating, rotating = _options$rotating === void 0 ? false : _options$rotating; var nextKey = horizontally ? KeyboardKeys.ArrowRight : KeyboardKeys.ArrowDown; var prevKey = horizontally ? KeyboardKeys.ArrowLeft : KeyboardKeys.ArrowUp; var keyDown = function keyDown(e) { if (!ref.current) return; var element = ref.current; var _document = document, activeElement = _document.activeElement; var directChildSelector = directChildrenOnly ? ':scope > ' : ''; var focusableEls = Array.from(element.querySelectorAll("".concat(directChildSelector).concat(focusableElements.join(", ".concat(directChildSelector))))); var getIndex = function getIndex(el) { return el && focusableEls.includes(el) ? focusableEls.indexOf(el) : -1; }; var targetElement; switch (e.key) { case KeyboardKeys.End: targetElement = focusableEls[focusableEls.length - 1]; break; case KeyboardKeys.Home: targetElement = focusableEls[0]; break; case nextKey: targetElement = focusableEls[getIndex(activeElement) + 1] || (rotating ? focusableEls[0] : undefined); break; case prevKey: targetElement = focusableEls[getIndex(activeElement) - 1] || (rotating ? focusableEls[focusableEls.length - 1] : undefined); break; } if (targetElement instanceof HTMLElement) { targetElement.focus(); e.preventDefault(); } }; return { keyDown: keyDown }; }; /** * @license EUPL-1.2+ * Copyright Gemeente Amsterdam */ var defaultValues$2 = { // Level 2 is set here, but it is never used. // headingLevel is a required prop in Accordion, which always overwrites it. headingLevel: 2 }; var AccordionContext = /*#__PURE__*/react.createContext(defaultValues$2); /** * @license EUPL-1.2+ * Copyright Gemeente Amsterdam */ function getHeadingTag(level) { switch (level) { case 2: return 'h2'; case 3: return 'h3'; case 4: return 'h4'; // Ensure valid HTML with invalid input outside of TypeScript. default: return 'h1'; } } var _excluded$1C = ["children", "className", "color", "level", "size"]; function ownKeys$1L(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1L(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1L(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1L(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-text-heading--docs Heading docs at Amsterdam Design System} */ var Heading = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, color = _ref.color, level = _ref.level, size = _ref.size, restProps = _objectWithoutProperties(_ref, _excluded$1C); var Tag = getHeadingTag(level); var visualLevel = size ? size.slice(-1) : level; return jsxRuntime.jsx(Tag, _objectSpread$1L(_objectSpread$1L({ className: clsx.clsx('ams-heading', "ams-heading--".concat(visualLevel), color && "ams-heading--".concat(color), className), ref: ref }, restProps), {}, { children: children })); }); Heading.displayName = 'Heading'; var _excluded$1B = ["className", "color", "size", "square", "svg"]; function ownKeys$1K(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1K(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1K(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1K(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-media-icon--docs Icon docs at Amsterdam Design System} * @see {@link https://designsystem.amsterdam/?path=/docs/brand-assets-icons--docs Icons overview at Amsterdam Design System} */ var Icon = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var className = _ref.className, color = _ref.color, size = _ref.size, square = _ref.square, svg = _ref.svg, restProps = _objectWithoutProperties(_ref, _excluded$1B); return jsxRuntime.jsx("span", _objectSpread$1K(_objectSpread$1K({ className: clsx.clsx('ams-icon', color && "ams-icon--".concat(color), size && "ams-icon--".concat(size), square && 'ams-icon--square', className), hidden // The icon is only shown when the CSS loads, so we hide it by default. : true, ref: ref }, restProps), {}, { children: typeof svg === 'function' ? svg() : svg })); }); Icon.displayName = 'Icon'; var _excluded$1A = ["children", "className", "expanded", "label"]; function ownKeys$1J(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1J(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1J(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1J(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // The 'ams-accordion__header' class is @deprecated and will be removed in a future release. var AccordionSection = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, _ref$expanded = _ref.expanded, expanded = _ref$expanded === void 0 ? false : _ref$expanded, label = _ref.label, restProps = _objectWithoutProperties(_ref, _excluded$1A); var _useContext = react.useContext(AccordionContext), headingLevel = _useContext.headingLevel, sectionAs = _useContext.sectionAs; var _useState = react.useState(expanded), _useState2 = _slicedToArray(_useState, 2), isExpanded = _useState2[0], setIsExpanded = _useState2[1]; var SectionTag = sectionAs || 'section'; var id = react.useId(); var iconSize = "heading-".concat(headingLevel); var buttonId = "button-".concat(id); var panelId = "panel-".concat(id); return jsxRuntime.jsxs("div", _objectSpread$1J(_objectSpread$1J({ className: clsx.clsx('ams-accordion__section', className), ref: ref }, restProps), {}, { children: [jsxRuntime.jsx(Heading, { className: "ams-accordion__header", level: headingLevel, children: jsxRuntime.jsxs("button", { "aria-controls": panelId, "aria-expanded": isExpanded, className: "ams-accordion__button", id: buttonId, onClick: function onClick() { return setIsExpanded(!isExpanded); }, type: "button", children: [jsxRuntime.jsx(Icon, { className: "ams-accordion__icon", size: iconSize, svg: designSystemReactIcons.ChevronDownIcon }), label] }) }), jsxRuntime.jsx(SectionTag, { "aria-labelledby": buttonId, className: clsx.clsx('ams-accordion__panel', { 'ams-accordion__panel--expanded': isExpanded }), id: panelId, children: children })] })); }); AccordionSection.displayName = 'Accordion.Section'; var AccordionRoot = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, headingLevel = _ref.headingLevel, _ref$sectionAs = _ref.sectionAs, sectionAs = _ref$sectionAs === void 0 ? 'section' : _ref$sectionAs; var innerRef = react.useRef(null); // use a passed ref if it's there, otherwise use innerRef react.useImperativeHandle(ref, function () { return innerRef.current; }); var _useKeyboardFocus = useKeyboardFocus(innerRef, { focusableElements: ['.ams-accordion__button:not([disabled])'], rotating: true }), keyDown = _useKeyboardFocus.keyDown; return jsxRuntime.jsx(AccordionContext.Provider, { value: { headingLevel: headingLevel, sectionAs: sectionAs }, children: jsxRuntime.jsx("div", { className: clsx.clsx('ams-accordion', className), onKeyDown: keyDown, ref: innerRef, children: children }) }); }); AccordionRoot.displayName = 'Accordion'; /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-containers-accordion--docs Accordion docs at Amsterdam Design System} */ var Accordion = Object.assign(AccordionRoot, { Section: AccordionSection }); var _excluded$1z = ["children", "className"]; function ownKeys$1I(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1I(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1I(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1I(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-layout-action-group--docs Action Group docs at Amsterdam Design System} */ var ActionGroup = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1z); return jsxRuntime.jsx("div", _objectSpread$1I(_objectSpread$1I({}, restProps), {}, { className: clsx.clsx('ams-action-group', className), ref: ref, role: "group", children: children })); }); ActionGroup.displayName = 'ActionGroup'; var _excluded$1y = ["className", "color", "label", "size", "svg", "type"]; function ownKeys$1H(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1H(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1H(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1H(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-buttons-icon-button--docs Icon Button docs at Amsterdam Design System} */ var IconButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var className = _ref.className, color = _ref.color, label = _ref.label, size = _ref.size, _ref$svg = _ref.svg, svg = _ref$svg === void 0 ? designSystemReactIcons.CloseIcon : _ref$svg, type = _ref.type, restProps = _objectWithoutProperties(_ref, _excluded$1y); return jsxRuntime.jsxs("button", _objectSpread$1H(_objectSpread$1H({}, restProps), {}, { className: clsx.clsx('ams-icon-button', color && "ams-icon-button--".concat(color), className), ref: ref, type: type || 'button', children: [jsxRuntime.jsx("span", { className: "ams-visually-hidden", children: label }), jsxRuntime.jsx(Icon, { size: size, square: true, svg: svg })] })); }); IconButton.displayName = 'IconButton'; var _excluded$1x = ["align", "alignVertical", "as", "children", "className", "gap", "wrap"]; function ownKeys$1G(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1G(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-layout-row--docs Row docs at Amsterdam Design System} */ var Row = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var align = _ref.align, alignVertical = _ref.alignVertical, _ref$as = _ref.as, Tag = _ref$as === void 0 ? 'div' : _ref$as, children = _ref.children, className = _ref.className, gap = _ref.gap, wrap = _ref.wrap, restProps = _objectWithoutProperties(_ref, _excluded$1x); return jsxRuntime.jsx(Tag, _objectSpread$1G(_objectSpread$1G({}, restProps), {}, { className: clsx.clsx('ams-row', align && "ams-row--align-".concat(align), alignVertical && "ams-row--align-vertical-".concat(alignVertical), gap && "ams-row--gap-".concat(gap), wrap && 'ams-row--wrap', className), ref: ref, children: children })); }); Row.displayName = 'Row'; var _excluded$1w = ["children", "className", "closeable", "closeButtonLabel", "heading", "headingId", "headingLevel", "onClose", "severity"]; function ownKeys$1F(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1F(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var iconSvgBySeverity = { error: designSystemReactIcons.ErrorFillIcon, success: designSystemReactIcons.SuccessFillIcon, warning: designSystemReactIcons.WarningFillIcon }; /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-feedback-alert--docs Alert docs at Amsterdam Design System} */ var Alert = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, closeable = _ref.closeable, _ref$closeButtonLabel = _ref.closeButtonLabel, closeButtonLabel = _ref$closeButtonLabel === void 0 ? 'Sluiten' : _ref$closeButtonLabel, heading = _ref.heading, _ref$headingId = _ref.headingId, headingId = _ref$headingId === void 0 ? 'ams-alert-heading' : _ref$headingId, headingLevel = _ref.headingLevel, onClose = _ref.onClose, severity = _ref.severity, restProps = _objectWithoutProperties(_ref, _excluded$1w); var SeverityIcon = severity ? iconSvgBySeverity[severity] : designSystemReactIcons.InfoFillIcon; return jsxRuntime.jsxs("section", _objectSpread$1F(_objectSpread$1F({}, restProps), {}, { "aria-labelledby": headingId || undefined, className: clsx.clsx('ams-alert', severity && "ams-alert--".concat(severity), className), ref: ref, children: [jsxRuntime.jsx("div", { className: "ams-alert__severity-indicator", children: jsxRuntime.jsx(Icon, { color: "inverse", size: "heading-3", svg: SeverityIcon }) }), jsxRuntime.jsxs("div", { className: "ams-alert__content", children: [jsxRuntime.jsxs(Row, { align: "between", alignVertical: "start", children: [jsxRuntime.jsx(Heading, { id: headingId || undefined, level: headingLevel, size: "level-3", children: heading }), closeable && jsxRuntime.jsx(IconButton, { label: closeButtonLabel, onClick: onClose, size: "heading-3" })] }), children] })] })); }); Alert.displayName = 'Alert'; var _excluded$1v = ["className", "color", "imageSrc", "label"]; function ownKeys$1E(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1E(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var AvatarContent = function AvatarContent(_ref) { var imageSrc = _ref.imageSrc, initials = _ref.initials; if (imageSrc) { return jsxRuntime.jsx("img", { alt: "", src: imageSrc }); } if (initials.length) { return jsxRuntime.jsx("span", { "aria-hidden": true, children: initials }); } return jsxRuntime.jsx(Icon, { size: "small", svg: designSystemReactIcons.PersonFillIcon }); }; /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-feedback-avatar--docs Avatar docs at Amsterdam Design System} */ var Avatar = /*#__PURE__*/react.forwardRef(function (_ref2, ref) { var className = _ref2.className, color = _ref2.color, imageSrc = _ref2.imageSrc, label = _ref2.label, restProps = _objectWithoutProperties(_ref2, _excluded$1v); var initials = label.slice(0, 2).toUpperCase(); var a11yLabel = initials.length === 0 ? 'Gebruiker' : "Initialen gebruiker: ".concat(initials); return jsxRuntime.jsxs("span", _objectSpread$1E(_objectSpread$1E({}, restProps), {}, { className: clsx.clsx('ams-avatar', color && "ams-avatar--".concat(color), imageSrc && 'ams-avatar--has-image', className), ref: ref, children: [jsxRuntime.jsx("span", { className: "ams-visually-hidden", children: a11yLabel }), jsxRuntime.jsx(AvatarContent, { imageSrc: imageSrc, initials: initials })] })); }); Avatar.displayName = 'Avatar'; var _excluded$1u = ["className", "color", "label"]; function ownKeys$1D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1D(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-feedback-badge--docs Badge docs at Amsterdam Design System} */ var Badge = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var className = _ref.className, color = _ref.color, label = _ref.label, restProps = _objectWithoutProperties(_ref, _excluded$1u); return jsxRuntime.jsx("span", _objectSpread$1D(_objectSpread$1D({}, restProps), {}, { className: clsx.clsx('ams-badge', color && "ams-badge--".concat(color), className), ref: ref, children: label })); }); Badge.displayName = 'Badge'; var _excluded$1t = ["children", "className", "color"]; function ownKeys$1C(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1C(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-text-blockquote--docs Blockquote docs at Amsterdam Design System} */ var Blockquote = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, color = _ref.color, restProps = _objectWithoutProperties(_ref, _excluded$1t); return jsxRuntime.jsx("blockquote", _objectSpread$1C(_objectSpread$1C({}, restProps), {}, { className: clsx.clsx('ams-blockquote', color && "ams-blockquote--".concat(color), className), ref: ref, children: children })); }); Blockquote.displayName = 'Blockquote'; var _excluded$1s = ["children", "className"]; function ownKeys$1B(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1B(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var BreadcrumbLink = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1s); return jsxRuntime.jsx("li", { className: "ams-breadcrumb__item", children: jsxRuntime.jsx("a", _objectSpread$1B(_objectSpread$1B({}, restProps), {}, { className: clsx.clsx('ams-breadcrumb__link', className), ref: ref, children: children })) }); }); BreadcrumbLink.displayName = 'Breadcrumb.Link'; var _excluded$1r = ["children", "className"]; function ownKeys$1A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1A(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var BreadcrumbRoot = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1r); return jsxRuntime.jsx("nav", _objectSpread$1A(_objectSpread$1A({}, restProps), {}, { className: clsx.clsx('ams-breadcrumb', className), ref: ref, children: jsxRuntime.jsx("ol", { className: "ams-breadcrumb__list", children: children }) })); }); BreadcrumbRoot.displayName = 'Breadcrumb'; /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-navigation-breadcrumb--docs Breadcrumb docs at Amsterdam Design System} */ var Breadcrumb = Object.assign(BreadcrumbRoot, { Link: BreadcrumbLink }); /** * @license EUPL-1.2+ * Copyright Gemeente Amsterdam */ var paddingClasses = function paddingClasses(componentName, paddingBottom, paddingTop, paddingVertical) { var classes = []; if (paddingVertical) { return ["ams-".concat(componentName, "--padding-vertical--").concat(paddingVertical)]; } if (paddingBottom) { classes.push("ams-".concat(componentName, "--padding-bottom--").concat(paddingBottom)); } if (paddingTop) { classes.push("ams-".concat(componentName, "--padding-top--").concat(paddingTop)); } return classes; }; /** * @license EUPL-1.2+ * Copyright Gemeente Amsterdam */ var addGridClass = function addGridClass(prefix, value) { if (value === 'all' || typeof value === 'number') { return ["".concat(prefix).concat(value)]; } else if (value) { var narrow = value.narrow, medium = value.medium, wide = value.wide; return ["".concat(prefix).concat(narrow), "".concat(prefix).concat(medium, "-medium"), "".concat(prefix).concat(wide, "-wide")]; } return []; }; var gridCellClasses = function gridCellClasses(colSpan, colStart) { return [].concat(_toConsumableArray(addGridClass('ams-grid__cell--span-', colSpan)), _toConsumableArray(addGridClass('ams-grid__cell--start-', colStart))); }; var breakoutCellClasses = function breakoutCellClasses(colSpan, colStart, rowSpan, rowStart) { return [].concat(_toConsumableArray(addGridClass('ams-breakout__cell--col-span-', colSpan)), _toConsumableArray(addGridClass('ams-breakout__cell--col-start-', colStart)), _toConsumableArray(addGridClass('ams-breakout__cell--row-span-', rowSpan)), _toConsumableArray(addGridClass('ams-breakout__cell--row-start-', rowStart))); }; var _excluded$1q = ["as", "children", "className", "colSpan", "colStart", "has", "rowSpan", "rowStart"]; function ownKeys$1z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1z(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var BreakoutCell = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var _ref$as = _ref.as, Tag = _ref$as === void 0 ? 'div' : _ref$as, children = _ref.children, className = _ref.className, colSpan = _ref.colSpan, colStart = _ref.colStart, has = _ref.has, rowSpan = _ref.rowSpan, rowStart = _ref.rowStart, restProps = _objectWithoutProperties(_ref, _excluded$1q); return jsxRuntime.jsx(Tag, _objectSpread$1z(_objectSpread$1z({}, restProps), {}, { className: clsx.clsx('ams-breakout__cell', breakoutCellClasses(colSpan, colStart, rowSpan, rowStart), has && "ams-breakout__cell--has-".concat(has), className), ref: ref, children: children })); }); BreakoutCell.displayName = 'Breakout.Cell'; var _excluded$1p = ["children", "className", "gapVertical", "paddingBottom", "paddingTop", "paddingVertical"]; function ownKeys$1y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1y(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var BreakoutRoot = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, gapVertical = _ref.gapVertical, paddingBottom = _ref.paddingBottom, paddingTop = _ref.paddingTop, paddingVertical = _ref.paddingVertical, restProps = _objectWithoutProperties(_ref, _excluded$1p); return jsxRuntime.jsx("div", _objectSpread$1y(_objectSpread$1y({}, restProps), {}, { className: clsx.clsx('ams-breakout', gapVertical && "ams-breakout--gap-vertical--".concat(gapVertical), paddingClasses('breakout', paddingBottom, paddingTop, paddingVertical), className), ref: ref, children: children })); }); BreakoutRoot.displayName = 'Breakout'; /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-layout-breakout--docs Breakout docs at Amsterdam Design System} */ var Breakout = Object.assign(BreakoutRoot, { Cell: BreakoutCell }); var _excluded$1o = ["children", "className", "disabled", "icon", "iconBefore", "iconOnly", "type", "variant"]; function ownKeys$1x(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1x(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-buttons-button--docs Button docs at Amsterdam Design System} */ var Button = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, disabled = _ref.disabled, icon = _ref.icon, iconBefore = _ref.iconBefore, iconOnly = _ref.iconOnly, type = _ref.type, _ref$variant = _ref.variant, variant = _ref$variant === void 0 ? 'primary' : _ref$variant, restProps = _objectWithoutProperties(_ref, _excluded$1o); return jsxRuntime.jsxs("button", _objectSpread$1x(_objectSpread$1x({}, restProps), {}, { className: clsx.clsx('ams-button', "ams-button--".concat(variant), icon && iconOnly && "ams-button--icon-only", className), disabled: disabled, ref: ref, type: type || 'button', children: [icon && (iconBefore || iconOnly) && jsxRuntime.jsx(Icon, { square: iconOnly, svg: icon }), icon && iconOnly ? jsxRuntime.jsx("span", { className: "ams-visually-hidden", children: children }) : children, icon && !iconBefore && !iconOnly && jsxRuntime.jsx(Icon, { svg: icon })] })); }); Button.displayName = 'Button'; var _excluded$1n = ["children", "className"]; function ownKeys$1w(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1w(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-navigation-call-to-action-link--docs CallToActionLink docs at Amsterdam Design System} */ var CallToActionLink = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1n); return jsxRuntime.jsx("a", _objectSpread$1w(_objectSpread$1w({}, restProps), {}, { className: clsx.clsx('ams-call-to-action-link', className), ref: ref, children: children })); }); CallToActionLink.displayName = 'CallToActionLink'; var _excluded$1m = ["children", "className", "size"]; function ownKeys$1v(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1v(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var CardHeading = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, _ref$size = _ref.size, size = _ref$size === void 0 ? 'level-3' : _ref$size, restProps = _objectWithoutProperties(_ref, _excluded$1m); return jsxRuntime.jsx(Heading, _objectSpread$1v(_objectSpread$1v({}, restProps), {}, { className: clsx.clsx('ams-card__heading', className), ref: ref, size: size, children: children })); }); CardHeading.displayName = 'Card.Heading'; var _excluded$1l = ["children", "className", "color", "size"]; function ownKeys$1u(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1u(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-text-paragraph--docs Paragraph docs at Amsterdam Design System} */ var Paragraph = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, color = _ref.color, size = _ref.size, restProps = _objectWithoutProperties(_ref, _excluded$1l); return jsxRuntime.jsx("p", _objectSpread$1u(_objectSpread$1u({ className: clsx.clsx('ams-paragraph', color && "ams-paragraph--".concat(color), size && "ams-paragraph--".concat(size), className), ref: ref }, restProps), {}, { children: children })); }); Paragraph.displayName = 'Paragraph'; var _excluded$1k = ["children", "className", "tagline"]; function ownKeys$1t(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1t(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var CardHeadingGroup = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, tagline = _ref.tagline, restProps = _objectWithoutProperties(_ref, _excluded$1k); return jsxRuntime.jsxs("hgroup", _objectSpread$1t(_objectSpread$1t({}, restProps), {}, { className: clsx.clsx('ams-card__heading-group', className), ref: ref, children: [children, jsxRuntime.jsx(Paragraph, { size: "small", children: tagline })] })); }); CardHeadingGroup.displayName = 'Card.HeadingGroup'; /** * @license EUPL-1.2+ * Copyright Gemeente Amsterdam */ var generateAspectRatioClass = function generateAspectRatioClass(aspectRatio) { return aspectRatio && "ams-aspect-ratio-".concat(aspectRatio.replace(':', '-')); }; var _excluded$1j = ["aspectRatio", "className"]; function ownKeys$1s(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1s(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-media-image--docs Image docs at Amsterdam Design System} */ var Image = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var aspectRatio = _ref.aspectRatio, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1j); return jsxRuntime.jsx("img", _objectSpread$1s(_objectSpread$1s({}, restProps), {}, { className: clsx.clsx('ams-image', generateAspectRatioClass(aspectRatio), className), ref: ref, width: 600 })); }); Image.displayName = 'Image'; var _excluded$1i = ["className"]; function ownKeys$1r(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1r(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var CardImage = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1i); return jsxRuntime.jsx(Image, _objectSpread$1r(_objectSpread$1r({}, restProps), {}, { className: clsx.clsx('ams-card__image', className), ref: ref })); }); CardImage.displayName = 'Card.Image'; var _excluded$1h = ["children", "className"]; function ownKeys$1q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1q(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var CardLink = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1h); return jsxRuntime.jsx("a", _objectSpread$1q(_objectSpread$1q({}, restProps), {}, { className: clsx.clsx('ams-card__link', className), ref: ref, children: children })); }); CardLink.displayName = 'Card.Link'; var _excluded$1g = ["children", "className"]; function ownKeys$1p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1p(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var CardRoot = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, restProps = _objectWithoutProperties(_ref, _excluded$1g); return jsxRuntime.jsx("article", _objectSpread$1p(_objectSpread$1p({}, restProps), {}, { className: clsx.clsx('ams-card', className), ref: ref, children: children })); }); CardRoot.displayName = 'Card'; /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-navigation-card--docs Card docs at Amsterdam Design System} */ var Card = Object.assign(CardRoot, { Heading: CardHeading, HeadingGroup: CardHeadingGroup, Image: CardImage, Link: CardLink }); var _excluded$1f = ["className", "length", "maxLength"]; function ownKeys$1o(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1o(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-forms-character-count--docs Character Count docs at Amsterdam Design System} */ var CharacterCount = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var className = _ref.className, length = _ref.length, maxLength = _ref.maxLength, restProps = _objectWithoutProperties(_ref, _excluded$1f); return jsxRuntime.jsx("div", _objectSpread$1o(_objectSpread$1o({}, restProps), {}, { className: clsx.clsx('ams-character-count', length > maxLength && 'ams-character-count--error', className), ref: ref, role: "status", children: "".concat(length, " van ").concat(maxLength, " tekens") })); }); CharacterCount.displayName = 'CharacterCount'; function ownKeys$1n(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1n(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1n(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1n(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var SvgCheckbox = function SvgCheckbox(props) { return jsxRuntime.jsxs("svg", _objectSpread$1n(_objectSpread$1n({ "aria-hidden": "true", focusable: "false", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, props), {}, { children: [jsxRuntime.jsx("rect", { className: "ams-checkbox__rectangle", fill: "none", height: "22", stroke: "black", strokeWidth: "2", width: "22", x: "1", y: "1" }), jsxRuntime.jsx("rect", { className: "ams-checkbox__hover-indicator", fill: "none", height: "20", stroke: "black", strokeWidth: "1", width: "20", x: "2", y: "2" }), jsxRuntime.jsx("path", { className: "ams-checkbox__checked-indicator", d: "M3.251 13.017L8.554 18.761L20.749 5.239", fill: "none", stroke: "black", strokeWidth: "3" }), jsxRuntime.jsx("line", { className: "ams-checkbox__indeterminate-indicator", fill: "none", stroke: "black", strokeWidth: "3", x1: "4", x2: "20", y1: "12", y2: "12" })] })); }; var _excluded$1e = ["children", "className", "icon", "id", "indeterminate", "invalid"]; function ownKeys$1m(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1m(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1m(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1m(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * @see {@link https://designsystem.amsterdam/?path=/docs/components-forms-checkbox--docs Checkbox docs at Amsterdam Design System} */ var Checkbox = /*#__PURE__*/react.forwardRef(function (_ref, ref) { var children = _ref.children, className = _ref.className, _ref$icon = _ref.icon, icon = _ref$icon === void 0 ? SvgCheckbox : _ref$icon, id = _ref.id, indeterminate = _ref.indeterminate, invalid = _ref.invalid, restProps = _objectWithoutProperties(_ref, _excluded$1e); var inputId = id || react.useId(); var innerRef = react.useRef(null); // use a passed ref if it's there, otherwise use innerRef react.useImperativeHandle(ref, function () { return innerRef.current; }); // set input to indeterminate react.useEffect(function () { if (innerRef.current) { innerRef.current.indeterminate = Boolean(indeterminate); } }, [innerRef, indeterminate]); return ( // This div is here because NVDA doesn't match the input to the label // without a containing element jsxRuntime.jsxs("div", { className: clsx.clsx('ams-checkbox', className), children: [jsxRuntime.jsx("input", _objectSpread$1m(_objectSpread$1m({}, restProps), {}, { "aria-invalid": invalid || undefined, className: "ams-checkbox__input", id: inputId, ref: innerRef, type: "checkbox" })), jsxRuntime.jsxs("label", { className: "ams-checkbox__label", htmlFor: inputId, children: [jsxRuntime.jsx("span", { className: "ams-checkbox__icon-container", hidden: true,