@abgov/react-components 3.4.0-beta.2 → 3.4.0-beta.23

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 (42) hide show
  1. package/experimental/badge/badge.component.d.ts +10 -0
  2. package/experimental/common.d.ts +3 -0
  3. package/experimental/form/form.actions.component.d.ts +3 -0
  4. package/experimental/form/form.component.d.ts +10 -0
  5. package/experimental/form/form.item.component.d.ts +7 -0
  6. package/experimental/{experimental/form → form}/formFieldValidator.d.ts +0 -0
  7. package/experimental/icons/icon.component.d.ts +12 -0
  8. package/experimental/icons/iconButton.component.d.ts +13 -0
  9. package/experimental/icons/index.d.ts +2 -0
  10. package/experimental/index.d.ts +8 -0
  11. package/experimental/{experimental/input → input}/input.component.d.ts +0 -0
  12. package/experimental/modal/modal.component.d.ts +18 -0
  13. package/experimental/react-components.esm.js +1741 -1777
  14. package/experimental/react-components.umd.js +1744 -1782
  15. package/experimental/scrollable/scrollable.component.d.ts +12 -0
  16. package/experimental/transitions/index.d.ts +2 -0
  17. package/experimental/transitions/transition.d.ts +9 -0
  18. package/experimental/transitions/transitionSequence.d.ts +9 -0
  19. package/index.d.ts +13 -6
  20. package/lib/_common/errorState.d.ts +5 -0
  21. package/{experimental/experimental → lib}/element-loader/element-loader.d.ts +1 -1
  22. package/{experimental/experimental → lib}/page-loader/page-loader.d.ts +0 -0
  23. package/lib/radio-group/radio-group.d.ts +6 -31
  24. package/lib/radio-group/radio.d.ts +13 -0
  25. package/{experimental/experimental → lib}/skeleton/skeleton-element.d.ts +0 -0
  26. package/{experimental/experimental → lib}/skeleton/skeleton-grid-column.d.ts +0 -0
  27. package/{experimental/experimental → lib}/skeleton/skeleton-image-content.d.ts +0 -0
  28. package/{experimental/experimental → lib}/skeleton/skeleton-titled-content.d.ts +0 -0
  29. package/package.json +1 -1
  30. package/react-components.esm.js +310 -779
  31. package/react-components.umd.js +308 -783
  32. package/experimental/experimental/badge/badge.component.d.ts +0 -8
  33. package/experimental/experimental/form/container/form.button.component.d.ts +0 -7
  34. package/experimental/experimental/form/container/form.container.component.d.ts +0 -7
  35. package/experimental/experimental/form/container/form.item.component.d.ts +0 -18
  36. package/experimental/experimental/form/form.component.d.ts +0 -32
  37. package/experimental/experimental/icons.d.ts +0 -8
  38. package/experimental/experimental/index.d.ts +0 -11
  39. package/experimental/experimental/modal/modal.component.d.ts +0 -40
  40. package/experimental/experimental/scrollable/scrollable.component.d.ts +0 -13
  41. package/lib/radio-group/radio/radio.d.ts +0 -17
  42. package/lib/radio-group/radio-group.context.d.ts +0 -6
@@ -0,0 +1,12 @@
1
+ import { FC } from 'react';
2
+ import { TestProps } from '../common';
3
+ import './scrollable.css';
4
+ interface Props {
5
+ vertical?: boolean;
6
+ horizontal?: boolean;
7
+ hPadding?: number;
8
+ vPadding?: number;
9
+ height?: number;
10
+ }
11
+ export declare const GoAScrollable: FC<Props & TestProps>;
12
+ export default GoAScrollable;
@@ -0,0 +1,2 @@
1
+ export * from './transitionSequence';
2
+ export * from './transition';
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import './transitions.css';
3
+ export interface GoATransitionProps {
4
+ name: string;
5
+ active: boolean;
6
+ onComplete?: () => void;
7
+ }
8
+ export declare const GoATransition: FC<GoATransitionProps>;
9
+ export default GoATransition;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ declare type TransitionType = 'fade-in' | 'fade-out' | 'slide-in-up' | 'slide-out-up' | 'slide-in-down' | 'slide-out-down' | 'slide-in-left' | 'slide-out-left' | 'slide-in-right' | 'slide-out-right';
3
+ interface Props {
4
+ transitions: string[] | TransitionType[];
5
+ transitionIndex: number;
6
+ onComplete?: (index: number, done: boolean) => void;
7
+ }
8
+ export declare const GoATransitionSequence: FC<Props>;
9
+ export {};
package/index.d.ts CHANGED
@@ -1,15 +1,22 @@
1
+ /**
2
+ * IMPORTANT: Do NOT export experimental components in this file.
3
+ */
1
4
  import GoACallout from './lib/callout/callout';
2
5
  import GoANotification from './lib/notification/notification';
3
6
  import GoAButton from './lib/button/button';
4
7
  import GoAHeader from './lib/header/header';
5
8
  import GoAMicrositeLogo from './lib/microsite-logo/microsite-logo';
6
9
  import GoAHeroBanner from './lib/hero-banner/hero-banner.component';
7
- import GoAHeroBannerContent from './lib/hero-banner/content/hero-banner-content.component';
8
- import GoAHeroBannerLink from './lib/hero-banner/link/hero-banner-link.component';
9
- import GoACard from './lib/card/card.component';
10
+ import { GoADropdown, GoAOption, GoAOptionGroup } from './lib/dropdown/dropdown.component';
10
11
  import { GoARadioGroup, GoARadio } from './lib/radio-group/radio-group';
12
+ import { GoASkeletonContent } from './lib/skeleton/skeleton-titled-content';
13
+ import { GoASkeletonGridColumnContent } from './lib/skeleton/skeleton-grid-column';
14
+ import { GoASkeletonImageContent } from './lib/skeleton/skeleton-image-content';
15
+ import GoACard from './lib/card/card.component';
11
16
  import GoACardGroup from './lib/card-group/card.group.component';
12
- import { GoADropdown, GoAOption, GoAOptionGroup } from './lib/dropdown/dropdown.component';
13
17
  import GoACheckbox from './lib/checkbox/checkbox';
14
- import { GoABadge, GoAPageLoader, GoAElementLoader, GoASkeletonContent, GoASkeletonGridColumnContent, GoASkeletonImageContent, GoAFormItem, GoAFormButton, GoAFormContainer, GoAForm, GoAInput } from './experimental';
15
- export { GoABadge, GoAPageLoader, GoAElementLoader, GoASkeletonContent, GoASkeletonGridColumnContent, GoASkeletonImageContent, GoAFormItem, GoAFormButton, GoAForm, GoAInput, GoAFormContainer, GoANotification, GoARadioGroup, GoARadio, GoACallout, GoAButton, GoAHeader, GoAMicrositeLogo, GoAHeroBanner, GoAHeroBannerContent, GoAHeroBannerLink, GoACard, GoACardGroup, GoADropdown, GoAOption, GoAOptionGroup, GoACheckbox, };
18
+ import GoAHeroBannerContent from './lib/hero-banner/content/hero-banner-content.component';
19
+ import GoAHeroBannerLink from './lib/hero-banner/link/hero-banner-link.component';
20
+ import GoAPageLoader from './lib/page-loader/page-loader';
21
+ import { GoAElementLoader } from './lib/element-loader/element-loader';
22
+ export { GoAPageLoader, GoAElementLoader, GoASkeletonContent, GoASkeletonGridColumnContent, GoASkeletonImageContent, GoANotification, GoARadioGroup, GoARadio, GoACallout, GoAButton, GoAHeader, GoAMicrositeLogo, GoAHeroBanner, GoAHeroBannerContent, GoAHeroBannerLink, GoACard, GoACardGroup, GoADropdown, GoAOption, GoAOptionGroup, GoACheckbox, };
@@ -0,0 +1,5 @@
1
+ declare type FormInputState = 'error' | 'valid';
2
+ export interface ErrorProps {
3
+ state?: FormInputState;
4
+ }
5
+ export {};
@@ -5,7 +5,7 @@ export interface ElementLoaderProps {
5
5
  visible?: boolean;
6
6
  baseColour: string;
7
7
  spinnerColour: string;
8
- size: number;
8
+ size?: string;
9
9
  }
10
10
  export declare const GoAElementLoader: {
11
11
  ({ visible, baseColour, spinnerColour, size, }: ElementLoaderProps): JSX.Element;
@@ -1,51 +1,26 @@
1
- import React, { ReactNode, FC } from 'react';
2
- import { Data as RadioItem, LabelPosition } from './radio/radio';
3
- import './radio-group.scss';
4
- export * from './radio/radio';
1
+ import { FC } from 'react';
2
+ export * from './radio';
5
3
  interface Props {
6
- children?: ReactNode;
7
4
  /**
8
5
  * Name of the form value
9
6
  */
10
7
  name: string;
11
- /**
12
- * Help text of the radio item
13
- */
14
- helperText?: string;
15
- /**
16
- * List of radio buttons to select
17
- */
18
- items?: RadioItem[];
19
- /**
20
- * Is the radio button selection required.
21
- */
22
- required?: boolean;
23
- /**
24
- * Error messages
25
- */
26
- requiredErrorMessage?: string;
27
- /**
28
- * Title of the radio item
29
- */
30
- title?: string;
31
8
  /**
32
9
  * Initial data value
33
10
  */
34
11
  value?: string;
35
- /**
36
- * Where is the label positioned
37
- */
38
- labelPosition?: LabelPosition;
39
12
  /**
40
13
  * Disable radio buttons
41
14
  */
42
15
  disabled?: boolean;
16
+ /**
17
+ * Orientation of the radio buttons
18
+ */
19
+ orientation: 'horizontal' | 'vertical';
43
20
  /**
44
21
  * Callback function containing the newly selected value
45
22
  */
46
23
  onChange: (value: string) => void;
47
24
  }
48
- export declare const RadioContext: React.Context<string>;
49
- export declare const RadioUpdateContext: React.Context<(value: string) => void>;
50
25
  export declare const GoARadioGroup: FC<Props>;
51
26
  export default GoARadioGroup;
@@ -0,0 +1,13 @@
1
+ import { FC } from 'react';
2
+ import './radio.scss';
3
+ import { ErrorProps } from '../_common/errorState';
4
+ import { TestProps } from '../../experimental/common';
5
+ interface Props {
6
+ value: string;
7
+ name?: string;
8
+ disabled?: boolean;
9
+ checked: boolean;
10
+ onChange?: (value: string) => void;
11
+ }
12
+ export declare const GoARadio: FC<Props & ErrorProps & TestProps>;
13
+ export default GoARadio;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/react-components",
3
- "version": "3.4.0-beta.2",
3
+ "version": "3.4.0-beta.23",
4
4
  "description": "Government of Alberta - DIO - Shared UI components for React JS",
5
5
  "bugs": {
6
6
  "url": "https://github.com/GovAlta/ui-components/issues"
@@ -1,4 +1,4 @@
1
- import React, { useState, Fragment as Fragment$1, useContext, Children, createContext, useEffect, useRef } from 'react';
1
+ import React, { useState, Fragment as Fragment$1, createContext, useContext, useEffect, Children, useRef } from 'react';
2
2
  import classnames from 'classnames';
3
3
 
4
4
  function _defineProperty(obj, key, value) {
@@ -90,22 +90,10 @@ function _slicedToArray(arr, i) {
90
90
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
91
91
  }
92
92
 
93
- function _toConsumableArray(arr) {
94
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
95
- }
96
-
97
- function _arrayWithoutHoles(arr) {
98
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
99
- }
100
-
101
93
  function _arrayWithHoles(arr) {
102
94
  if (Array.isArray(arr)) return arr;
103
95
  }
104
96
 
105
- function _iterableToArray(iter) {
106
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
107
- }
108
-
109
97
  function _iterableToArrayLimit(arr, i) {
110
98
  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
111
99
  var _arr = [];
@@ -150,10 +138,6 @@ function _arrayLikeToArray(arr, len) {
150
138
  return arr2;
151
139
  }
152
140
 
153
- function _nonIterableSpread() {
154
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
155
- }
156
-
157
141
  function _nonIterableRest() {
158
142
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
159
143
  }
@@ -1528,249 +1512,13 @@ GoAHeroBanner.defaultProps = {
1528
1512
  linkUrl: ''
1529
1513
  };
1530
1514
 
1531
- var css_248z$a = "/* Palette */\n/* Semantic usages */\n@use '../variables/main.css';\n/* Palette */\n/* Semantic usages */\n@-webkit-keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n@keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n\n[data-skeleton] {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n [data-skeleton] * {\n border-color: #ddd !important;\n color: transparent !important; }\n [data-skeleton] p,\n [data-skeleton] a {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n display: inline;\n line-height: 0 !important;\n font-size: 50% !important; }\n [data-skeleton] p::after,\n [data-skeleton] a::after {\n content: '' !important;\n display: block !important;\n margin-bottom: 1rem !important;\n background-size: contain; }\n [data-skeleton] h1,\n [data-skeleton] h2,\n [data-skeleton] h3,\n [data-skeleton] h4,\n [data-skeleton] h5,\n [data-skeleton] h6 {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n margin-bottom: 1rem; }\n [data-skeleton] h1 {\n height: calc(0.6 * var(--fs-3xl)) !important; }\n [data-skeleton] h2 {\n height: calc(0.6 * var(--fs-2xl)) !important; }\n [data-skeleton] h3 {\n height: calc(0.6 * var(--fs-xl)) !important; }\n [data-skeleton] h4 {\n height: calc(0.6 * var(--fs-lg)) !important; }\n [data-skeleton] img {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out; }\n\n/* basic styles */\n.skeleton {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n background: #dcdcdc;\n overflow: hidden;\n margin: 10px 0; }\n\n.skeleton.text {\n width: 100%;\n height: 12px; }\n\n.skeleton.paragraph {\n width: 100%;\n height: 70px; }\n\n.skeleton.title {\n width: 50%;\n height: 20px;\n margin-bottom: 15px; }\n\n.skeleton.avatar {\n width: 100px;\n height: 100px;\n border-radius: 50%; }\n\n.skeleton.thumbnail {\n width: 100px;\n height: 100px; }\n\n/* skeleton image text */\n.skeleton-image-content {\n display: flex;\n flex-direction: row;\n gap: 30px; }\n\n.skeleton-image-content__text {\n flex: 1 1 auto; }\n\n/* skeleton content */\n.skeleton-content {\n display: grid;\n grid-template-columns: 1fr;\n gap: 30px;\n align-items: left; }\n\n.goa-card {\n box-sizing: border-box;\n background: #fff;\n border: 1px solid #dcdcdc;\n transition: opacity 300ms ease-in-out;\n /* size variants ***/ }\n .goa-card .card-content {\n padding: 24px 16px;\n border-top: 8px solid #0081a2; }\n .goa-card .card-content .goa-title,\n .goa-card .card-content .goa-text,\n .goa-card .card-content .goa-content {\n margin-bottom: 28px; }\n .goa-card .card-content .goa-text {\n color: #333;\n font-size: var(--fs-base);\n line-height: 28px; }\n .goa-card .card-content .goa-footer {\n font-size: var(--fs-base); }\n .goa-card .card-content .goa-title {\n font-size: var(--fs-xl);\n font-weight: 400;\n line-height: 32px; }\n .goa-card .goa-poster {\n position: relative;\n display: block;\n padding: 56.25% 0 0;\n overflow: hidden;\n background: #e5e5e5; }\n .goa-card .goa-poster:empty {\n display: none; }\n .goa-card .goa-poster img,\n .goa-card .goa-poster iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: none; }\n .goa-card .goa-poster-image img {\n display: block;\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover; }\n .goa-card.card-auto {\n width: auto; }\n .goa-card.card-auto .card {\n flex-basis: auto;\n width: auto; }\n .goa-card a:hover {\n color: #004f84;\n text-decoration: none; }\n .goa-card a:focus {\n outline: 3px solid #feba35;\n outline-offset: 0; }\n\n.goa-card[data-skeleton] .goa-poster-image {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n padding-bottom: 56.25%; }\n .goa-card[data-skeleton] .goa-poster-image img {\n display: none; }\n\n.goa-card[data-skeleton] .goa-title {\n margin-bottom: 1rem; }\n\n.goa-card[data-skeleton] .goa-footer {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n max-height: 1rem; }\n";
1532
- styleInject(css_248z$a);
1533
-
1534
- var GoACard = function GoACard(_ref) {
1535
- var title = _ref.title,
1536
- content = _ref.content,
1537
- _ref$description = _ref.description,
1538
- description = _ref$description === void 0 ? null : _ref$description,
1539
- _ref$cardImageUrl = _ref.cardImageUrl,
1540
- cardImageUrl = _ref$cardImageUrl === void 0 ? null : _ref$cardImageUrl,
1541
- _ref$titleUrl = _ref.titleUrl,
1542
- titleUrl = _ref$titleUrl === void 0 ? null : _ref$titleUrl,
1543
- _ref$children = _ref.children,
1544
- children = _ref$children === void 0 ? null : _ref$children,
1545
- _ref$minWidth = _ref.minWidth,
1546
- minWidth = _ref$minWidth === void 0 ? 'auto' : _ref$minWidth,
1547
- _ref$maxWidth = _ref.maxWidth,
1548
- maxWidth = _ref$maxWidth === void 0 ? 'auto' : _ref$maxWidth,
1549
- other = _objectWithoutProperties(_ref, ["title", "content", "description", "cardImageUrl", "titleUrl", "children", "minWidth", "maxWidth"]);
1550
-
1551
- var _useState = useState(null),
1552
- _useState2 = _slicedToArray(_useState, 2),
1553
- imgHeight = _useState2[0],
1554
- setImgHeight = _useState2[1];
1555
-
1556
- return /*#__PURE__*/React.createElement("div", Object.assign({
1557
- className: "goa-card",
1558
- "data-testid": "card-container",
1559
- style: {
1560
- minWidth: minWidth,
1561
- maxWidth: maxWidth
1562
- }
1563
- }, other), cardImageUrl && /*#__PURE__*/React.createElement("div", {
1564
- className: "goa-poster-image",
1565
- "data-testid": "card-img"
1566
- }, /*#__PURE__*/React.createElement("img", {
1567
- height: imgHeight,
1568
- src: cardImageUrl,
1569
- alt: "Card cardImageUrl"
1570
- })), /*#__PURE__*/React.createElement("div", {
1571
- className: "card-content"
1572
- }, /*#__PURE__*/React.createElement("div", {
1573
- className: "goa-title",
1574
- "data-testid": "card-title"
1575
- }, titleUrl ? /*#__PURE__*/React.createElement("a", {
1576
- href: titleUrl,
1577
- "data-testid": "card-title-link"
1578
- }, title) : /*#__PURE__*/React.createElement("div", null, title)), /*#__PURE__*/React.createElement("p", {
1579
- className: "goa-text",
1580
- "data-testid": "card-content"
1581
- }, content !== null && content !== void 0 ? content : description), children && /*#__PURE__*/React.createElement("div", {
1582
- className: "goa-footer",
1583
- "data-testid": "card-footer"
1584
- }, children)));
1585
- };
1586
-
1587
- var css_248z$b = "/* Palette */\n/* Semantic usages */\n.goa-radio {\n margin-bottom: 10px; }\n .goa-radio input[type='radio'] {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none; }\n .goa-radio .goa-radio-label {\n z-index: 2;\n box-sizing: border-box;\n margin: 0;\n padding: 0 0 0 8px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .goa-radio.goa-radio-disabled {\n opacity: 30%; }\n .goa-radio.goa-radio-disabled .goa-radio-label {\n cursor: default; }\n .goa-radio.has-error .goa-radio-container {\n border: solid 2px #fc1921;\n color: #fc1921; }\n .goa-radio.has-error .goa-radio-container svg {\n fill: #fc1921; }\n .goa-radio .goa-radio-container {\n z-index: 2;\n box-sizing: border-box;\n margin: 0;\n border: 1px solid #666;\n border-radius: 12px;\n height: 24px;\n width: 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 3px; }\n .goa-radio .goa-radio-container svg {\n fill: #fff; }\n .goa-radio .goa-radio-container.goa-radio-selected {\n background-color: #0070c4; }\n .goa-radio .goa-radio-container.goa-radio-selected .goa-radiomark {\n display: block !important; }\n .goa-radio .goa-radio-container:hover:not(.goa-radio-selected) {\n background-color: #f1f1f1; }\n .goa-radio .goa-radio-container:focus-within {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n .goa-radio.goa-radio-label-before .goa-radio-container {\n order: 1;\n margin-left: 8px;\n margin-right: auto; }\n\n.goa-radio-layout {\n display: flex;\n flex-direction: row;\n align-items: center; }\n\n.goa-radio-inline-block {\n display: inline-block;\n margin-bottom: 5px;\n margin-top: 5px;\n margin-left: 5px; }\n";
1588
- styleInject(css_248z$b);
1589
-
1590
- var GoARadio = function GoARadio(_ref) {
1591
- var name = _ref.name,
1592
- value = _ref.value,
1593
- disabled = _ref.disabled,
1594
- _ref$labelPosition = _ref.labelPosition,
1595
- labelPosition = _ref$labelPosition === void 0 ? 'after' : _ref$labelPosition,
1596
- required = _ref.required,
1597
- children = _ref.children;
1598
- var selectedValue = useContext(RadioContext);
1599
- var updateSelectedValue = useContext(RadioUpdateContext);
1600
-
1601
- function hasError() {
1602
- return required && !selectedValue;
1603
- }
1604
-
1605
- function getSelectedCss() {
1606
- return classnames({
1607
- 'goa-radio-container': true,
1608
- 'goa-radio-selected': isChecked()
1609
- });
1610
- }
1611
-
1612
- function getRootCssClasses() {
1613
- return classnames({
1614
- 'goa-radio': true,
1615
- 'goa-radio-disabled': disabled,
1616
- 'has-error': hasError(),
1617
- 'goa-radio-label-before': labelPosition === 'before'
1618
- });
1619
- }
1620
-
1621
- function isChecked() {
1622
- return selectedValue === value;
1623
- }
1624
-
1625
- function onRadioChange(e) {
1626
- updateSelectedValue(e.target.value);
1627
- }
1628
-
1629
- return /*#__PURE__*/React.createElement("div", {
1630
- className: getRootCssClasses()
1631
- }, /*#__PURE__*/React.createElement("div", {
1632
- className: "goa-radio-inline-block"
1633
- }, /*#__PURE__*/React.createElement("label", {
1634
- className: "goa-radio-layout"
1635
- }, /*#__PURE__*/React.createElement("div", {
1636
- className: getSelectedCss()
1637
- }, /*#__PURE__*/React.createElement("input", {
1638
- type: "radio",
1639
- name: name,
1640
- value: value,
1641
- checked: isChecked(),
1642
- disabled: disabled,
1643
- onChange: onRadioChange
1644
- }), isChecked() && /*#__PURE__*/React.createElement("svg", {
1645
- xmlns: "http://www.w3.org/2000/svg",
1646
- width: "12",
1647
- height: "12",
1648
- viewBox: "0 0 12 12"
1649
- }, /*#__PURE__*/React.createElement("circle", {
1650
- cx: "6",
1651
- cy: "6",
1652
- r: "6",
1653
- fill: "#fff"
1654
- }))), /*#__PURE__*/React.createElement("span", {
1655
- className: "goa-radio-label"
1656
- }, children))));
1657
- };
1658
-
1659
- var css_248z$c = "/* Palette */\n/* Semantic usages */\n.goa-radio-group {\n margin-top: 28px; }\n .goa-radio-group.goa-radio-group-disabled.goa-radios {\n opacity: 30%;\n cursor: default; }\n .goa-radio-group .radio-group-title {\n font-size: 18px;\n font-weight: bold;\n color: #333;\n line-height: 28px; }\n .goa-radio-group .helper-text {\n font-size: 14px;\n font-weight: normal;\n color: #333;\n margin-bottom: 20px; }\n .goa-radio-group .required-label {\n margin-left: 8px;\n font-size: 14px;\n color: #666; }\n .goa-radio-group .error-text {\n color: #fc1921;\n font-size: 14px;\n margin-bottom: 20px; }\n";
1660
- styleInject(css_248z$c);
1661
-
1662
- var RadioContext = React.createContext('');
1663
- var RadioUpdateContext = React.createContext( // eslint-disable-next-line @typescript-eslint/no-empty-function
1664
- function () {});
1665
- var GoARadioGroup = function GoARadioGroup(_ref) {
1666
- var helperText = _ref.helperText,
1667
- onChange = _ref.onChange,
1668
- required = _ref.required,
1669
- requiredErrorMessage = _ref.requiredErrorMessage,
1670
- title = _ref.title,
1671
- value = _ref.value,
1672
- items = _ref.items,
1673
- children = _ref.children,
1674
- childAttrs = _objectWithoutProperties(_ref, ["helperText", "onChange", "required", "requiredErrorMessage", "title", "value", "items", "children"]);
1675
-
1676
- var _useState = useState(value),
1677
- _useState2 = _slicedToArray(_useState, 2),
1678
- selectedValue = _useState2[0],
1679
- setSelectedValue = _useState2[1];
1680
-
1681
- function handleOnChange(val) {
1682
- setSelectedValue(val);
1683
- onChange(val);
1684
- }
1685
-
1686
- function hasError() {
1687
- return required && !selectedValue;
1688
- }
1689
-
1690
- function getChildren() {
1691
- if (children) {
1692
- return Children.map(children, function (child) {
1693
- var key = "".concat(childAttrs.name, "-").concat(child.props.value);
1694
- return React.cloneElement(child, _objectSpread2(_objectSpread2({}, childAttrs), {}, {
1695
- key: key,
1696
- required: required
1697
- }));
1698
- });
1699
- }
1700
-
1701
- return items.map(function (item) {
1702
- return /*#__PURE__*/React.createElement(GoARadio, {
1703
- key: "".concat(childAttrs.name, "-").concat(item.value),
1704
- labelPosition: childAttrs.labelPosition,
1705
- name: childAttrs.name,
1706
- disabled: childAttrs.disabled,
1707
- value: item.value,
1708
- children: item.text,
1709
- required: required
1710
- });
1711
- });
1712
- }
1713
-
1714
- return /*#__PURE__*/React.createElement("div", {
1715
- className: "goa-radio-group"
1716
- }, title && /*#__PURE__*/React.createElement("span", {
1717
- className: "radio-group-title"
1718
- }, title), required && /*#__PURE__*/React.createElement("span", {
1719
- className: "required-label"
1720
- }, "(Required)"), helperText && /*#__PURE__*/React.createElement("div", {
1721
- className: "helper-text"
1722
- }, helperText), /*#__PURE__*/React.createElement(RadioContext.Provider, {
1723
- value: selectedValue
1724
- }, /*#__PURE__*/React.createElement(RadioUpdateContext.Provider, {
1725
- value: handleOnChange
1726
- }, /*#__PURE__*/React.createElement("div", {
1727
- className: "goa-radios"
1728
- }, getChildren()))), hasError() && /*#__PURE__*/React.createElement("div", {
1729
- className: "error-text"
1730
- }, requiredErrorMessage));
1731
- };
1732
-
1733
- var css_248z$d = "/* Palette */\n/* Semantic usages */\n.goa-card-group {\n margin-top: 14px;\n vertical-align: top; }\n .goa-card-group .card-group-title {\n font-size: 28px;\n font-weight: bold;\n color: #333; }\n .goa-card-group .card-group-basic {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-basic > div {\n margin: 14px 10px; }\n .goa-card-group .card-group-basic-vue > div {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-basic-vue > div > div {\n margin: 14px 10px; }\n .goa-card-group .card-group-column {\n display: inline-block;\n flex-direction: column;\n -moz-column-count: 3;\n column-count: 3;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-column > div {\n margin: 14px; }\n .goa-card-group .card-group-column-vue > div {\n display: inline-block;\n flex-direction: column;\n -moz-column-count: 3;\n column-count: 3;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-column > div > div {\n margin: 14px; }\n";
1734
- styleInject(css_248z$d);
1735
-
1736
- var GoACardGroup = function GoACardGroup(_ref) {
1737
- var _ref$title = _ref.title,
1738
- title = _ref$title === void 0 ? null : _ref$title,
1739
- _ref$children = _ref.children,
1740
- children = _ref$children === void 0 ? null : _ref$children,
1741
- _ref$layout = _ref.layout,
1742
- layout = _ref$layout === void 0 ? 'basic' : _ref$layout,
1743
- _ref$cardItems = _ref.cardItems,
1744
- cardItems = _ref$cardItems === void 0 ? null : _ref$cardItems;
1745
-
1746
- function getCards() {
1747
- if (children) {
1748
- return children;
1749
- }
1750
-
1751
- return cardItems.map(function (item, index) {
1752
- return /*#__PURE__*/React.createElement(GoACard, Object.assign({}, item, {
1753
- key: index
1754
- }), item.children);
1755
- });
1756
- }
1757
-
1758
- return /*#__PURE__*/React.createElement("div", {
1759
- className: "goa-card-group"
1760
- }, /*#__PURE__*/React.createElement("div", {
1761
- className: "card-group-title"
1762
- }, title), /*#__PURE__*/React.createElement("div", {
1763
- className: "card-group-".concat(layout)
1764
- }, getCards()));
1765
- };
1766
-
1767
1515
  /** Used to store the options in the dropdown */
1768
1516
 
1769
1517
  // eslint-disable-next-line @typescript-eslint/naming-convention
1770
1518
  var DropdownContext = createContext({});
1771
1519
 
1772
- var css_248z$e = "/* Palette */\n/* Semantic usages */\n/* This style is from the alberta design system */\n/* Palette */\n/* Semantic usages */\n.dropdown-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0; }\n\n.dropdown-menu {\n border: solid 1px #dcdcdc;\n border-radius: 4px;\n background: #fff;\n padding: 0;\n margin-top: 3px;\n width: 100%;\n overflow-y: auto; }\n .dropdown-menu .option-group .option-group-label {\n font-weight: bold;\n padding: 4px 12px; }\n .dropdown-menu .option-group .option {\n font-weight: normal;\n padding: 4px 24px; }\n .dropdown-menu .option {\n padding: 4px 12px;\n color: #0070c4;\n border: 1px solid #f1f1f1; }\n .dropdown-menu .option.selected {\n background-color: #0070c4;\n color: #fff; }\n .dropdown-menu .option.selected.active {\n background-color: #004f84;\n color: #fff; }\n .dropdown-menu .option.active {\n background-color: #f1f1f1;\n color: #333; }\n\n.goa-dropdown {\n position: relative;\n /* add chevron */ }\n .goa-dropdown .dropdown-grouping input[type=text] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-right: 30px !important; }\n .goa-dropdown .dropdown-grouping.disabled {\n opacity: 30%; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox {\n /* remove default arrow IE */ }\n .goa-dropdown .dropdown-grouping .dropdown-textbox {\n box-sizing: border-box;\n width: 100%;\n margin: 8px 0 0;\n padding: 12px;\n padding-right: 8px;\n border-radius: 4px;\n border: 1px solid #666;\n font-size: 18px;\n font-weight: 400;\n color: #0070c4;\n /* removes default arrow */\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox:disabled {\n opacity: 0.3;\n pointer-events: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox::-ms-expand {\n display: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox:hover {\n border: 1px solid #0070c4; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox:focus {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox.margin-override {\n margin: 0; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter {\n /* remove default arrow IE */\n font-size: 14px !important;\n border: none !important;\n margin: 0 !important; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter {\n box-sizing: border-box;\n width: 100%;\n margin: 8px 0 0;\n padding: 12px;\n padding-right: 8px;\n border-radius: 4px;\n border: 1px solid #666;\n font-size: 18px;\n font-weight: 400;\n color: #0070c4;\n /* removes default arrow */\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:disabled {\n opacity: 0.3;\n pointer-events: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter::-ms-expand {\n display: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:hover {\n border: 1px solid #0070c4; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:focus {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:focus {\n box-shadow: none !important;\n outline: none; }\n .goa-dropdown i.goa-select-icon {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='' opacity='1' d='M11.29,15.7a1,1,0,0,0,1.41,0l6-6A1,1,0,1,0,17.29,8.3L12,13.58,6.71,8.3a1,1,0,0,0-1.42,0,1,1,0,0,0,0,1.41Z'/%3E%3C/svg%3E%0A\");\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center center;\n left: auto;\n right: 8px;\n width: 24px;\n height: 24px;\n pointer-events: none;\n position: absolute;\n margin-top: 16px;\n color: #0070c4; }\n .goa-dropdown.disabled i.goa-select-icon {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='' opacity='0.3' d='M11.29,15.7a1,1,0,0,0,1.41,0l6-6A1,1,0,1,0,17.29,8.3L12,13.58,6.71,8.3a1,1,0,0,0-1.42,0,1,1,0,0,0,0,1.41Z'/%3E%3C/svg%3E%0A\");\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center center; }\n .goa-dropdown.opened i.goa-select-icon {\n transform: rotate(180deg); }\n .goa-dropdown.has-error .dropdown-grouping .dropdown-textbox {\n border: solid 2px #fc1921; }\n .goa-dropdown .dropdown-label {\n font-size: 18px;\n font-weight: bold;\n color: #333; }\n .goa-dropdown .required-label {\n margin-left: 8px;\n font-size: 14px;\n color: #666; }\n .goa-dropdown .helper-text {\n font-size: 14px;\n font-weight: normal;\n color: #333; }\n .goa-dropdown .error-text {\n color: #fc1921;\n font-size: 14px; }\n";
1773
- styleInject(css_248z$e);
1520
+ var css_248z$a = "/* Palette */\n/* Semantic usages */\n/* This style is from the alberta design system */\n/* Palette */\n/* Semantic usages */\n.dropdown-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0; }\n\n.dropdown-menu {\n border: solid 1px #dcdcdc;\n border-radius: 4px;\n background: #fff;\n padding: 0;\n margin-top: 3px;\n width: 100%;\n overflow-y: auto; }\n .dropdown-menu .option-group .option-group-label {\n font-weight: bold;\n padding: 4px 12px; }\n .dropdown-menu .option-group .option {\n font-weight: normal;\n padding: 4px 24px; }\n .dropdown-menu .option {\n padding: 4px 12px;\n color: #0070c4;\n border: 1px solid #f1f1f1; }\n .dropdown-menu .option.selected {\n background-color: #0070c4;\n color: #fff; }\n .dropdown-menu .option.selected.active {\n background-color: #004f84;\n color: #fff; }\n .dropdown-menu .option.active {\n background-color: #f1f1f1;\n color: #333; }\n\n.goa-dropdown {\n position: relative;\n /* add chevron */ }\n .goa-dropdown .dropdown-grouping input[type=text] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-right: 30px !important; }\n .goa-dropdown .dropdown-grouping.disabled {\n opacity: 30%; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox {\n /* remove default arrow IE */ }\n .goa-dropdown .dropdown-grouping .dropdown-textbox {\n box-sizing: border-box;\n width: 100%;\n margin: 8px 0 0;\n padding: 12px;\n padding-right: 8px;\n border-radius: 4px;\n border: 1px solid #666;\n font-size: 18px;\n font-weight: 400;\n color: #0070c4;\n /* removes default arrow */\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox:disabled {\n opacity: 0.3;\n pointer-events: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox::-ms-expand {\n display: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox:hover {\n border: 1px solid #0070c4; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox:focus {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox.margin-override {\n margin: 0; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter {\n /* remove default arrow IE */\n font-size: 14px !important;\n border: none !important;\n margin: 0 !important; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter {\n box-sizing: border-box;\n width: 100%;\n margin: 8px 0 0;\n padding: 12px;\n padding-right: 8px;\n border-radius: 4px;\n border: 1px solid #666;\n font-size: 18px;\n font-weight: 400;\n color: #0070c4;\n /* removes default arrow */\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:disabled {\n opacity: 0.3;\n pointer-events: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter::-ms-expand {\n display: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:hover {\n border: 1px solid #0070c4; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:focus {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n .goa-dropdown .dropdown-grouping .dropdown-textbox-filter:focus {\n box-shadow: none !important;\n outline: none; }\n .goa-dropdown i.goa-select-icon {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='' opacity='1' d='M11.29,15.7a1,1,0,0,0,1.41,0l6-6A1,1,0,1,0,17.29,8.3L12,13.58,6.71,8.3a1,1,0,0,0-1.42,0,1,1,0,0,0,0,1.41Z'/%3E%3C/svg%3E%0A\");\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center center;\n left: auto;\n right: 8px;\n width: 24px;\n height: 24px;\n pointer-events: none;\n position: absolute;\n margin-top: 16px;\n color: #0070c4; }\n .goa-dropdown.disabled i.goa-select-icon {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='' opacity='0.3' d='M11.29,15.7a1,1,0,0,0,1.41,0l6-6A1,1,0,1,0,17.29,8.3L12,13.58,6.71,8.3a1,1,0,0,0-1.42,0,1,1,0,0,0,0,1.41Z'/%3E%3C/svg%3E%0A\");\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center center; }\n .goa-dropdown.opened i.goa-select-icon {\n transform: rotate(180deg); }\n .goa-dropdown.has-error .dropdown-grouping .dropdown-textbox {\n border: solid 2px #fc1921; }\n .goa-dropdown .dropdown-label {\n font-size: 18px;\n font-weight: bold;\n color: #333; }\n .goa-dropdown .required-label {\n margin-left: 8px;\n font-size: 14px;\n color: #666; }\n .goa-dropdown .helper-text {\n font-size: 14px;\n font-weight: normal;\n color: #333; }\n .goa-dropdown .error-text {\n color: #fc1921;\n font-size: 14px; }\n";
1521
+ styleInject(css_248z$a);
1774
1522
 
1775
1523
  var GoAOption = function GoAOption(props) {
1776
1524
  var label = props.label,
@@ -1930,7 +1678,7 @@ var GoADropdown = function GoADropdown(_ref) {
1930
1678
  value: {
1931
1679
  selectionChanged: selectionChanged
1932
1680
  }
1933
- }, /*#__PURE__*/React.createElement("div", {
1681
+ }, canOpen(isOpen, open) && /*#__PURE__*/React.createElement("div", {
1934
1682
  className: "dropdown-overlay",
1935
1683
  "data-testid": "dropdown-container",
1936
1684
  ref: overlayRef,
@@ -1982,530 +1730,301 @@ GoADropdown.defaultProps = {
1982
1730
  description: null
1983
1731
  };
1984
1732
 
1985
- var css_248z$f = "/* Palette */\n/* Semantic usages */\n.goa-checkbox input[type='checkbox'] {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none; }\n\n.goa-checkbox .goa-checkbox-label {\n z-index: 2;\n box-sizing: border-box;\n margin: 0;\n padding: 0 0 0 8px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n height: 46px;\n display: flex;\n align-items: center; }\n\n.goa-checkbox.goa-checkbox-disabled {\n opacity: 30%; }\n .goa-checkbox.goa-checkbox-disabled .goa-checkbox-label {\n cursor: default; }\n\n.goa-checkbox.has-error .goa-checkbox-container {\n border: solid 2px #fc1921;\n color: #fc1921; }\n .goa-checkbox.has-error .goa-checkbox-container svg {\n fill: #fc1921; }\n\n.goa-checkbox .goa-checkbox-container {\n box-sizing: border-box;\n border: 1px solid #666;\n border-radius: 2px;\n height: 24px;\n line-height: 24px;\n width: 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 3px; }\n .goa-checkbox .goa-checkbox-container svg {\n display: none;\n flex: 1 1 auto;\n fill: #fff; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-selected {\n background-color: #0070c4; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-selected .goa-checkmark {\n display: block !important; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-selected .goa-indeterminate {\n display: none !important; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-indeterminate {\n background-color: #0070c4; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-indeterminate .goa-checkmark {\n display: none; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-indeterminate .goa-indeterminate {\n display: block; }\n .goa-checkbox .goa-checkbox-container:hover:not(.goa-checkbox-selected):not(.goa-checkbox-indeterminate) {\n background-color: #f1f1f1; }\n .goa-checkbox .goa-checkbox-container:focus-within {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n\n.goa-checkbox.goa-checkbox-label-before .goa-checkbox-container {\n order: 1;\n margin-left: 8px;\n margin-right: auto; }\n\n.goa-checkbox-layout {\n display: inline-flex;\n align-items: center; }\n";
1986
- styleInject(css_248z$f);
1987
-
1988
- var GoACheckbox = function GoACheckbox(_ref) {
1989
- var _ref$checked = _ref.checked,
1990
- checked = _ref$checked === void 0 ? false : _ref$checked,
1991
- _ref$required = _ref.required,
1992
- required = _ref$required === void 0 ? false : _ref$required,
1993
- _ref$disabled = _ref.disabled,
1994
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1995
- _ref$indeterminate = _ref.indeterminate,
1996
- indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
1997
- _ref$labelPosition = _ref.labelPosition,
1998
- labelPosition = _ref$labelPosition === void 0 ? 'before' : _ref$labelPosition,
1999
- _ref$value = _ref.value,
2000
- value = _ref$value === void 0 ? '' : _ref$value,
2001
- content = _ref.content,
2002
- children = _ref.children,
2003
- selectionChange = _ref.selectionChange;
1733
+ var css_248z$b = ":root {\n /* base colors */\n --color-gray-l5: hsla(0, 0%, 95%, 1);\n /* #f1f1f1 */\n --color-gray-l4: hsla(0, 0%, 90%, 1);\n --color-gray-l3: hsla(0, 0%, 80%, 1);\n /* #ccc */\n --color-gray-l2: hsla(0, 0%, 70%, 1);\n --color-gray-l1: hsla(0, 0%, 60%, 1);\n /* #999 */\n --color-gray: hsla(0, 0%, 50%, 1);\n --color-gray-d1: hsla(0, 0%, 40%, 1);\n /* #666 */\n --color-gray-d2: hsla(0, 0%, 30%, 1);\n --color-gray-d3: hsla(0, 0%, 20%, 1);\n /* #333 */\n --color-gray-d4: hsla(0, 0%, 10%, 1);\n --color-gray-d5: hsla(0, 0%, 5%, 1);\n --color-red-l2: hsla(0, 100%, 70%, 1);\n --color-red-l1: hsla(0, 100%, 60%, 1);\n --color-red: hsla(0, 100%, 50%, 1);\n --color-red-d1: hsla(0, 100%, 40%, 1);\n --color-red-d2: hsla(0, 100%, 30%, 1);\n --color-orange-l2: hsla(40, 100%, 70%, 1);\n --color-orange-l1: hsla(40, 100%, 60%, 1);\n --color-orange: hsla(40, 100%, 50%, 1);\n --color-orange-d1: hsla(40, 100%, 40%, 1);\n --color-orange-d2: hsla(40, 100%, 30%, 1);\n --color-primary-l2: hsla(206, 100%, 58%, 1);\n --color-primary-l1: hsla(206, 100%, 48%, 1);\n --color-primary: hsla(206, 100%, 38%, 1);\n --color-primary-d1: hsla(206, 100%, 26%, 1);\n --color-primary-d2: hsla(206, 100%, 16%, 1);\n /* named colors */\n --color-primary--hover: var(--color-primary-d1);\n --color-text: var(--color-gray-d3);\n --color-error: var(--color-red);\n --color-disabled: var(--color-gray-l5);\n --color-input-border: var(--color-gray-d1);\n --color-input--focused: var(--color-orange);\n --color-button-primary: var(--color-primary);\n --color-button-primary--hover: var(--color-primary-d1);\n --color-button-tertiary: var(--color-gray-l4);\n --color-button-tertiary--hover: var(--color-gray-l5); }\n\n/* Radio Group */\n.goa-radio-group--horizontal {\n display: flex;\n flex-direction: row; }\n\n.goa-radio-group--vertical {\n display: inline-flex;\n flex-direction: column; }\n\n/* Radio */\n.goa-radio {\n --goa-border-color: var(--color-input-border);\n --goa-border-color--checked: var(--color-primary);\n --goa-radio-color--error: var(--color-error);\n --goa-radio-outline-color: var(--color-input--focused);\n --goa-radio-outline-width: 3px;\n --goa-radio-diameter: 1.5rem;\n --goa-radio-border-width: 1px;\n --goa-radio-border-width--checked: 7px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n min-height: 3rem; }\n\n.goa-radio:hover {\n cursor: pointer; }\n\n.goa-radio *,\n.goa-radio *:before,\n.goa-radio *:after {\n box-sizing: border-box; }\n\n.goa-radio input[type='radio'] {\n display: none; }\n\n.goa-radio-label {\n padding: 0.5rem 1.5rem 0.5rem 0.5rem; }\n\n.goa-radio-icon {\n display: inline-block;\n height: var(--goa-radio-diameter);\n width: var(--goa-radio-diameter);\n border-radius: 50%;\n transition: box-shadow 100ms ease-in-out; }\n\n.goa-radio:hover > input:not(:disabled) ~ .goa-radio-icon {\n box-shadow: 0 0 0 var(--goa-radio-outline-width) var(--goa-radio-outline-color); }\n\n.goa-radio--disabled:hover {\n cursor: default; }\n\n/* States */\n/* Checked */\ninput[type='radio']:checked ~ .goa-radio-icon {\n border: var(--goa-radio-border-width--checked) solid var(--goa-border-color--checked); }\n\n/* Not checked */\ninput[type='radio']:not(:checked) ~ .goa-radio-icon {\n border: var(--goa-radio-border-width) solid var(--goa-border-color); }\n\n/* Disabled */\ninput[type='radio']:disabled ~ .goa-radio-icon {\n border: var(--goa-radio-border-width) solid var(--goa-border-color);\n opacity: 0.3; }\n\n/* Disabled and checked */\ninput[type='radio']:disabled:checked ~ .goa-radio-icon {\n border: var(--goa-radio-border-width--checked) solid var(--goa-border-color--checked);\n opacity: 0.3; }\n\n/* Error */\n.goa-error input[type='radio']:checked ~ .goa-radio-icon {\n border: var(--goa-radio-border-width--checked) solid var(--goa-radio-color--error); }\n\n.goa-error input[type='radio']:not(:checked) ~ .goa-radio-icon {\n border: var(--goa-radio-border-width) solid var(--goa-radio-color--error); }\n";
1734
+ styleInject(css_248z$b);
2004
1735
 
2005
- var hasError = function hasError() {
2006
- return required && !checked;
2007
- };
1736
+ var GoARadio = function GoARadio(_ref) {
1737
+ var _ref$state = _ref.state,
1738
+ state = _ref$state === void 0 ? 'valid' : _ref$state,
1739
+ props = _objectWithoutProperties(_ref, ["state"]);
2008
1740
 
2009
- var rootCss = function rootCss() {
1741
+ function getCss() {
2010
1742
  return classnames({
2011
- 'goa-checkbox': true,
2012
- 'goa-checkbox-disabled': disabled,
2013
- 'has-error': hasError(),
2014
- 'goa-checkbox-label-before': labelPosition === 'before'
1743
+ 'goa-radio': true,
1744
+ 'goa-radio--disabled': props.disabled,
1745
+ 'goa-error': state === 'error'
2015
1746
  });
2016
- };
1747
+ }
2017
1748
 
2018
- var checkboxCss = function checkboxCss() {
2019
- return classnames({
2020
- 'goa-checkbox-container': true,
2021
- 'goa-checkbox-selected': !indeterminate && checked,
2022
- 'goa-checkbox-indeterminate': indeterminate && checked
2023
- });
2024
- };
1749
+ function onRadioChange(e) {
1750
+ props.onChange(e.target.value);
1751
+ }
2025
1752
 
2026
- return /*#__PURE__*/React.createElement("div", {
2027
- className: rootCss()
2028
- }, /*#__PURE__*/React.createElement("label", {
2029
- className: "goa-checkbox-layout"
2030
- }, /*#__PURE__*/React.createElement("div", {
2031
- className: checkboxCss()
1753
+ return /*#__PURE__*/React.createElement("label", {
1754
+ className: getCss()
2032
1755
  }, /*#__PURE__*/React.createElement("input", {
2033
- type: "checkbox",
2034
- checked: checked,
2035
- disabled: disabled,
2036
- required: required,
2037
- value: value,
2038
- onChange: function onChange(e) {
2039
- return selectionChange(e.target.checked);
2040
- }
2041
- }), indeterminate && checked && /*#__PURE__*/React.createElement("svg", {
2042
- id: "dashmark",
2043
- xmlns: "http://www.w3.org/2000/svg",
2044
- viewBox: "0 0 15 2",
2045
- className: "goa-indeterminate"
2046
- }, /*#__PURE__*/React.createElement("rect", {
2047
- width: "15",
2048
- height: "2"
2049
- })), !indeterminate && checked && /*#__PURE__*/React.createElement("svg", {
2050
- id: "checkmark",
2051
- xmlns: "http://www.w3.org/2000/svg",
2052
- viewBox: "0 0 16 12.18",
2053
- className: "goa-checkmark"
2054
- }, /*#__PURE__*/React.createElement("path", {
2055
- d: "M5.09,9.64,1.27,5.82,0,7.09l5.09,5.09L16,1.27,14.73,0Z"
2056
- }))), /*#__PURE__*/React.createElement("span", {
2057
- className: "goa-checkbox-label"
2058
- }, content || children)));
2059
- };
2060
-
2061
- var css_248z$g = "/* Palette */\n/* Semantic usages */\n.goa-badge-icon {\n margin-left: 4px;\n margin-right: 0px;\n position: relative;\n top: -5px;\n height: 14px;\n width: 14px;\n font-size: 14px !important; }\n\n.badge-module_goa-badge__3F6Ve {\n line-height: 24px;\n font-size: 14px;\n font-weight: 400 !important; }\n\n.badge-module_goa-badge__3F6Ve {\n display: inline-block;\n border-radius: 4px;\n margin: 4px;\n padding-top: 4px;\n padding-left: 4px;\n padding-right: 4px;\n height: 20px; }\n .badge-module_goa-badge__3F6Ve * {\n margin-left: 4px;\n margin-right: 4px; }\n .badge-module_goa-badge__3F6Ve .badge-module_goa-badge-content__3UN-3 {\n position: relative;\n top: -5px;\n height: 14px;\n display: inline; }\n .badge-module_goa-badge__3F6Ve mat-icon {\n margin-left: 4px;\n margin-right: 4px;\n position: relative;\n top: -3px;\n height: 14px;\n width: 14px;\n font-size: 14px !important; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-information__2r_Eq {\n background-color: #0070c4;\n color: #fff; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-success__18wcm {\n background-color: #00853f;\n color: #fff; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-warning__20BNM {\n background-color: #feba35;\n color: #333; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-emergency__E4mHn {\n background-color: #ec040b;\n color: #fff; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-dark__1thw- {\n background-color: #0070c4;\n color: #fff; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-midtone__1Gt4T {\n background-color: #767676;\n color: #fff; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-light__B8ZMt {\n background-color: #fff;\n color: #333; }\n\n.badge-module_goa-badge__3F6Ve.badge-module_badge-inactive__35PEw {\n background-color: #fff;\n color: #333; }\n";
2062
- var styles = {"goa-badge":"badge-module_goa-badge__3F6Ve","goa-badge-content":"badge-module_goa-badge-content__3UN-3","badge-information":"badge-module_badge-information__2r_Eq","badge-success":"badge-module_badge-success__18wcm","badge-warning":"badge-module_badge-warning__20BNM","badge-emergency":"badge-module_badge-emergency__E4mHn","badge-dark":"badge-module_badge-dark__1thw-","badge-midtone":"badge-module_badge-midtone__1Gt4T","badge-light":"badge-module_badge-light__B8ZMt","badge-inactive":"badge-module_badge-inactive__35PEw"};
2063
- styleInject(css_248z$g);
2064
-
2065
- var GoABadge = function GoABadge(_ref) {
2066
- var type = _ref.type,
2067
- content = _ref.content,
2068
- icon = _ref.icon;
2069
- return /*#__PURE__*/React.createElement("div", {
2070
- className: classnames(styles['goa-badge'], styles["badge-".concat(type)])
2071
- }, icon, /*#__PURE__*/React.createElement("span", {
2072
- className: classnames(styles['goa-badge-content'])
2073
- }, content));
2074
- };
2075
- GoABadge.defaultProps = {
2076
- type: 'information'
1756
+ type: "radio",
1757
+ name: props.name,
1758
+ value: props.value,
1759
+ checked: props.checked,
1760
+ disabled: props.disabled,
1761
+ onChange: onRadioChange
1762
+ }), /*#__PURE__*/React.createElement("div", {
1763
+ className: "goa-radio-icon"
1764
+ }), /*#__PURE__*/React.createElement("span", {
1765
+ className: "goa-radio-label"
1766
+ }, props.children));
2077
1767
  };
2078
1768
 
2079
- var css_248z$h = "/* Palette */\n/* Semantic usages */\n/* Palette */\n/* Semantic usages */\n.svg {\n max-width: 100px; }\n\n.svg--small {\n max-width: 65px; }\n\n@-webkit-keyframes circle-animation {\n 0% {\n stroke-dashoffset: 75;\n transform: rotate(0); }\n 100% {\n stroke-dashoffset: 75;\n transform: rotate(360deg); } }\n\n@keyframes circle-animation {\n 0% {\n stroke-dashoffset: 75;\n transform: rotate(0); }\n 100% {\n stroke-dashoffset: 75;\n transform: rotate(360deg); } }\n\n.base-circle {\n display: block;\n fill: transparent;\n stroke: #c8eef9;\n stroke-width: 7px; }\n\n.progress-circle, .progress-circle--infinite {\n display: block;\n fill: transparent;\n stroke: #0070c4;\n stroke-linecap: round;\n stroke-dasharray: 283;\n stroke-dashoffset: 280;\n stroke-width: 7px;\n transform-origin: 50% 50%; }\n .progress-circle--infinite {\n -webkit-animation: circle-animation 1.2s linear infinite;\n animation: circle-animation 1.2s linear infinite; }\n\n.progress-message, .progress-message--large, .progress-message--small {\n font-style: normal;\n font-weight: normal; }\n .progress-message--large {\n margin-top: 32px;\n font-size: 24px;\n color: #000; }\n .progress-message--small {\n margin-top: 18px;\n font-size: 18px;\n color: #000; }\n\n.progress-container, .progress-container--small, .progress-container--large {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: white; }\n .progress-container--large {\n width: 100%;\n height: 100%; }\n\n@-webkit-keyframes rotate {\n 100% {\n transform: rotate(360deg); } }\n\n@keyframes rotate {\n 100% {\n transform: rotate(360deg); } }\n\n.circular-loader {\n -webkit-animation: rotate 1s linear infinite;\n animation: rotate 1s linear infinite; }\n";
2080
- styleInject(css_248z$h);
1769
+ var GoARadioGroup = function GoARadioGroup(_ref) {
1770
+ var onChange = _ref.onChange,
1771
+ value = _ref.value,
1772
+ children = _ref.children,
1773
+ orientation = _ref.orientation,
1774
+ childAttrs = _objectWithoutProperties(_ref, ["onChange", "value", "children", "orientation"]);
2081
1775
 
2082
- var GoAElementLoader = function GoAElementLoader(_ref) {
2083
- var _ref$visible = _ref.visible,
2084
- visible = _ref$visible === void 0 ? false : _ref$visible,
2085
- _ref$baseColour = _ref.baseColour,
2086
- baseColour = _ref$baseColour === void 0 ? '#c8eef9' : _ref$baseColour,
2087
- _ref$spinnerColour = _ref.spinnerColour,
2088
- spinnerColour = _ref$spinnerColour === void 0 ? '#0070c4' : _ref$spinnerColour,
2089
- _ref$size = _ref.size,
2090
- size = _ref$size === void 0 ? 25 : _ref$size;
2091
- var radius = size;
2092
- var diameter = radius * 2;
2093
-
2094
- var boxView = function boxView() {
2095
- return "0 0 ".concat(diameter, " ").concat(diameter);
2096
- };
2097
- /**
2098
- * Generates the value for an SVG arc.
2099
- * @param current Current value.
2100
- * @param total Maximum value.
2101
- * @param pathRadius Radius of the SVG path.
2102
- * @param elementRadius Radius of the SVG container.
2103
- * @param isSemicircle Whether the element should be a semicircle.
2104
- */
2105
-
2106
-
2107
- function getArc(current, total, pathRadius, elementRadius) {
2108
- var isSemicircle = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
2109
- var value = Math.max(0, Math.min(current || 0, total));
2110
- var maxAngle = isSemicircle ? 180 : 359.9999;
2111
- var percentage = total === 0 ? maxAngle : value / total * maxAngle;
2112
-
2113
- var start = _polarToCartesian(elementRadius, pathRadius, percentage);
2114
-
2115
- var end = _polarToCartesian(elementRadius, pathRadius, 0);
2116
-
2117
- var arcSweep = percentage <= 180 ? 0 : 1;
2118
- return "M ".concat(start, " A ").concat(pathRadius, " ").concat(pathRadius, " 0 ").concat(arcSweep, " 0 ").concat(end);
2119
- }
2120
-
2121
- var DEGREE_IN_RADIANS = Math.PI / 180;
2122
- /**
2123
- * Converts polar cooradinates to Cartesian.
2124
- * @param elementRadius Radius of the wrapper element.
2125
- * @param pathRadius Radius of the path being described.
2126
- * @param angleInDegrees Degree to be converted.
2127
- */
2128
-
2129
- function _polarToCartesian(elementRadius, pathRadius, angleInDegrees) {
2130
- var angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;
2131
- var x = elementRadius + pathRadius * Math.cos(angleInRadians);
2132
- var y = elementRadius + pathRadius * Math.sin(angleInRadians);
2133
- return x + ' ' + y;
1776
+ function getChildren() {
1777
+ return Children.map(children, function (child) {
1778
+ var key = "".concat(childAttrs.name, "-").concat(child.props.value);
1779
+ return React.cloneElement(child, _objectSpread2(_objectSpread2({}, childAttrs), {}, {
1780
+ checked: child.props.value === value,
1781
+ onChange: onChange,
1782
+ key: key
1783
+ }));
1784
+ });
2134
1785
  }
2135
1786
 
2136
- return visible && /*#__PURE__*/React.createElement("svg", {
2137
- className: "circular-loader",
2138
- fill: "none",
2139
- viewBox: boxView(),
2140
- width: "".concat(size),
2141
- height: "".concat(size),
2142
- xmlns: "http://www.w3.org/2000/svg"
2143
- }, /*#__PURE__*/React.createElement("circle", {
2144
- cx: "".concat(radius),
2145
- cy: "".concat(radius),
2146
- stroke: "".concat(baseColour),
2147
- strokeWidth: "7",
2148
- r: "".concat(radius - 7 / 2)
2149
- }), /*#__PURE__*/React.createElement("path", {
2150
- d: getArc(75, 100, radius - 7 / 2, radius, false),
2151
- strokeWidth: "7",
2152
- stroke: "".concat(spinnerColour),
2153
- strokeLinecap: "round"
2154
- }));
2155
- };
2156
- GoAElementLoader.propTypes = {
2157
- visible: propTypes.bool,
2158
- baseColour: propTypes.string,
2159
- spinnerColour: propTypes.string,
2160
- size: propTypes.number
1787
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
1788
+ className: "goa-radio-group--".concat(orientation)
1789
+ }, getChildren()));
2161
1790
  };
2162
1791
 
2163
- var css_248z$i = "/* Palette */\n/* Semantic usages */\n.goa-form {\n margin: auto;\n width: 40.25rem; }\n\n.goa-form-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: stretch;\n -moz-column-gap: 1rem;\n column-gap: 1rem; }\n\n.goa-form-container > div {\n margin: 0;\n flex: 1;\n width: 100%; }\n\n.goa-form-container > div + div {\n margin-left: 1rem; }\n\n@media (max-width: 640px) {\n .goa-form {\n margin: auto;\n width: 95%; }\n .goa-form-container > div {\n min-width: 100%; }\n .goa-form-container > div + div {\n margin-left: 0rem; } }\n\n.goa-form-items {\n margin-bottom: 0.5rem;\n margin-top: 0.5rem; }\n .goa-form-items label {\n display: block;\n font-weight: bold;\n color: #333; }\n .goa-form-items input,\n .goa-form-items textarea {\n display: block;\n width: 100%;\n padding: 0.5rem; }\n\n.goa-form-button {\n margin-top: 2rem; }\n @media (min-width: 640px) {\n .goa-form-button {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end; }\n .goa-form-button button {\n min-width: 6rem; }\n .goa-form-button button + button,\n .goa-form-button button + .goa-link-button,\n .goa-form-button .goa-link-button + button,\n .goa-form-button .goa-link-button + .goa-link-button {\n margin-left: 0.5rem; } }\n .goa-form-button button {\n margin: 0; }\n";
2164
- styleInject(css_248z$i);
2165
-
2166
- var GoAFormItem = function GoAFormItem(_ref) {
2167
- var name = _ref.name,
2168
- _ref$validators = _ref.validators,
2169
- validators = _ref$validators === void 0 ? [] : _ref$validators,
2170
- _ref$onChange = _ref.onChange,
2171
- onChange = _ref$onChange === void 0 ? null : _ref$onChange,
2172
- _ref$children = _ref.children,
2173
- children = _ref$children === void 0 ? null : _ref$children;
1792
+ var css_248z$c = "@use '../variables/main.css';\n/* Palette */\n/* Semantic usages */\n@-webkit-keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n@keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n\n[data-skeleton] {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n [data-skeleton] * {\n border-color: #ddd !important;\n color: transparent !important; }\n [data-skeleton] p,\n [data-skeleton] a {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n display: inline;\n line-height: 0 !important;\n font-size: 50% !important; }\n [data-skeleton] p::after,\n [data-skeleton] a::after {\n content: '' !important;\n display: block !important;\n margin-bottom: 1rem !important;\n background-size: contain; }\n [data-skeleton] h1,\n [data-skeleton] h2,\n [data-skeleton] h3,\n [data-skeleton] h4,\n [data-skeleton] h5,\n [data-skeleton] h6 {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n margin-bottom: 1rem; }\n [data-skeleton] h1 {\n height: calc(0.6 * var(--fs-3xl)) !important; }\n [data-skeleton] h2 {\n height: calc(0.6 * var(--fs-2xl)) !important; }\n [data-skeleton] h3 {\n height: calc(0.6 * var(--fs-xl)) !important; }\n [data-skeleton] h4 {\n height: calc(0.6 * var(--fs-lg)) !important; }\n [data-skeleton] img {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out; }\n\n/* basic styles */\n.skeleton {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n background: #dcdcdc;\n overflow: hidden;\n margin: 10px 0; }\n\n.skeleton.text {\n width: 100%;\n height: 12px;\n border-radius: 4px; }\n\n.skeleton.paragraph {\n width: 100%;\n height: 70px;\n border-radius: 4px; }\n\n.skeleton.title {\n width: 50%;\n height: 20px;\n margin-bottom: 15px;\n border-radius: 4px; }\n\n.skeleton.avatar {\n width: 100px;\n height: 100px;\n border-radius: 50%; }\n\n.skeleton.thumbnail {\n width: 100px;\n height: 100px;\n border-radius: 4px; }\n\n/* skeleton image text */\n.skeleton-image-content {\n display: flex;\n flex-direction: row;\n gap: 30px; }\n\n.skeleton-image-content__text {\n flex: 1 1 auto; }\n\n/* skeleton content */\n.skeleton-content {\n display: grid;\n grid-template-columns: 1fr;\n gap: 30px;\n align-items: left; }\n";
1793
+ styleInject(css_248z$c);
2174
1794
 
2175
- var _useContext = useContext(FormContext),
2176
- errors = _useContext.errors,
2177
- navigator = _useContext.navigator,
2178
- setFieldValue = _useContext.setFieldValue,
2179
- registerInput = _useContext.registerInput;
1795
+ var GoASkeletonElement = function GoASkeletonElement(_ref) {
1796
+ var _ref$type = _ref.type,
1797
+ type = _ref$type === void 0 ? 'text' : _ref$type;
1798
+ var classes = "skeleton ".concat(type);
1799
+ return /*#__PURE__*/React.createElement("div", {
1800
+ className: classes
1801
+ });
1802
+ };
2180
1803
 
2181
- useEffect(function () {
2182
- return registerInput({
2183
- name: name,
2184
- validators: validators
2185
- });
2186
- }, []);
1804
+ var GoASkeletonContent = function GoASkeletonContent(_ref) {
1805
+ var _ref$rows = _ref.rows,
1806
+ rows = _ref$rows === void 0 ? 1 : _ref$rows;
1807
+ var elements = [];
2187
1808
 
2188
- var handleChange = function handleChange(val) {
2189
- if (typeof val === 'string') {
2190
- setFieldValue(name, val);
2191
- } else {
2192
- setFieldValue(name, val.target.value);
2193
- }
1809
+ for (var i = 0; i < rows; i++) {
1810
+ elements.push( /*#__PURE__*/React.createElement(GoASkeletonElement, {
1811
+ type: "text"
1812
+ }));
1813
+ }
2194
1814
 
2195
- if (onChange) {
2196
- onChange(val);
2197
- }
2198
- };
1815
+ return /*#__PURE__*/React.createElement("div", {
1816
+ className: "skeleton-content"
1817
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(GoASkeletonElement, {
1818
+ type: "title"
1819
+ }), elements));
1820
+ };
2199
1821
 
2200
- var message = errors[name] || [];
2201
- var navigateTo = navigator && navigator.name && navigator.name === name;
1822
+ var GoASkeletonGridColumnContent = function GoASkeletonGridColumnContent(_ref) {
1823
+ var _ref$rows = _ref.rows,
1824
+ rows = _ref$rows === void 0 ? 1 : _ref$rows;
1825
+ var elements = [];
2202
1826
 
2203
- function renderChildren() {
2204
- return Children.map(children, function (child) {
2205
- if (child.props.originalType !== 'label') {
2206
- return React.cloneElement(child, {
2207
- onChange: handleChange,
2208
- message: message.toString(),
2209
- id: name,
2210
- navigator: navigateTo
2211
- });
2212
- } else {
2213
- return child;
2214
- }
2215
- });
1827
+ for (var i = 0; i < rows; i++) {
1828
+ elements.push( /*#__PURE__*/React.createElement(GoASkeletonElement, {
1829
+ type: "text"
1830
+ }));
2216
1831
  }
2217
1832
 
2218
1833
  return /*#__PURE__*/React.createElement("div", {
2219
- id: name,
2220
- className: "goa-form-items"
2221
- }, renderChildren());
2222
- };
2223
- GoAFormItem.propTypes = {
2224
- name: propTypes.string,
2225
- onChange: propTypes.func,
2226
- validators: propTypes.array
1834
+ className: "skeleton-content"
1835
+ }, /*#__PURE__*/React.createElement("div", null, elements));
2227
1836
  };
2228
1837
 
2229
- var GoAFormButton = function GoAFormButton(_ref) {
2230
- var _ref$children = _ref.children,
2231
- children = _ref$children === void 0 ? null : _ref$children;
2232
- return /*#__PURE__*/React.createElement("div", {
2233
- className: "goa-form-button"
2234
- }, children);
2235
- };
1838
+ var GoASkeletonImageContent = function GoASkeletonImageContent(_ref) {
1839
+ var _ref$rows = _ref.rows,
1840
+ rows = _ref$rows === void 0 ? 1 : _ref$rows;
1841
+ var elements = [];
1842
+
1843
+ for (var i = 0; i < rows; i++) {
1844
+ elements.push( /*#__PURE__*/React.createElement(GoASkeletonElement, {
1845
+ type: "text"
1846
+ }));
1847
+ }
2236
1848
 
2237
- var GoAFormContainer = function GoAFormContainer(_ref) {
2238
- var _ref$children = _ref.children,
2239
- children = _ref$children === void 0 ? null : _ref$children;
2240
1849
  return /*#__PURE__*/React.createElement("div", {
2241
- className: "goa-form-container"
2242
- }, children);
1850
+ className: "skeleton-image-content"
1851
+ }, /*#__PURE__*/React.createElement(GoASkeletonElement, {
1852
+ type: "thumbnail"
1853
+ }), /*#__PURE__*/React.createElement("div", {
1854
+ className: "skeleton-image-content__text"
1855
+ }, /*#__PURE__*/React.createElement(GoASkeletonElement, {
1856
+ type: "title"
1857
+ }), elements));
2243
1858
  };
2244
1859
 
2245
- var initState = {
2246
- data: {},
2247
- validators: {},
2248
- errors: {},
2249
- navigator: {}
2250
- };
2251
- var FormContext;
2252
-
2253
- var _FormContext = FormContext = React.createContext({}),
2254
- Provider = _FormContext.Provider;
2255
- var GoAForm = function GoAForm(_ref) {
2256
- var _ref$formTitle = _ref.formTitle,
2257
- formTitle = _ref$formTitle === void 0 ? '' : _ref$formTitle,
2258
- _ref$formDescription = _ref.formDescription,
2259
- formDescription = _ref$formDescription === void 0 ? '' : _ref$formDescription,
2260
- onFormSubmit = _ref.onFormSubmit,
1860
+ var css_248z$d = "/* Palette */\n/* Semantic usages */\n@use '../variables/main.css';\n/* Palette */\n/* Semantic usages */\n@-webkit-keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n@keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n\n[data-skeleton] {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n [data-skeleton] * {\n border-color: #ddd !important;\n color: transparent !important; }\n [data-skeleton] p,\n [data-skeleton] a {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n display: inline;\n line-height: 0 !important;\n font-size: 50% !important; }\n [data-skeleton] p::after,\n [data-skeleton] a::after {\n content: '' !important;\n display: block !important;\n margin-bottom: 1rem !important;\n background-size: contain; }\n [data-skeleton] h1,\n [data-skeleton] h2,\n [data-skeleton] h3,\n [data-skeleton] h4,\n [data-skeleton] h5,\n [data-skeleton] h6 {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n margin-bottom: 1rem; }\n [data-skeleton] h1 {\n height: calc(0.6 * var(--fs-3xl)) !important; }\n [data-skeleton] h2 {\n height: calc(0.6 * var(--fs-2xl)) !important; }\n [data-skeleton] h3 {\n height: calc(0.6 * var(--fs-xl)) !important; }\n [data-skeleton] h4 {\n height: calc(0.6 * var(--fs-lg)) !important; }\n [data-skeleton] img {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out; }\n\n/* basic styles */\n.skeleton {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n background: #dcdcdc;\n overflow: hidden;\n margin: 10px 0; }\n\n.skeleton.text {\n width: 100%;\n height: 12px;\n border-radius: 4px; }\n\n.skeleton.paragraph {\n width: 100%;\n height: 70px;\n border-radius: 4px; }\n\n.skeleton.title {\n width: 50%;\n height: 20px;\n margin-bottom: 15px;\n border-radius: 4px; }\n\n.skeleton.avatar {\n width: 100px;\n height: 100px;\n border-radius: 50%; }\n\n.skeleton.thumbnail {\n width: 100px;\n height: 100px;\n border-radius: 4px; }\n\n/* skeleton image text */\n.skeleton-image-content {\n display: flex;\n flex-direction: row;\n gap: 30px; }\n\n.skeleton-image-content__text {\n flex: 1 1 auto; }\n\n/* skeleton content */\n.skeleton-content {\n display: grid;\n grid-template-columns: 1fr;\n gap: 30px;\n align-items: left; }\n\n.goa-card {\n box-sizing: border-box;\n background: #fff;\n border: 1px solid #dcdcdc;\n transition: opacity 300ms ease-in-out;\n /* size variants ***/ }\n .goa-card .card-content {\n padding: 28px 16px;\n border-top: 8px solid #0081a2; }\n .goa-card .card-content .goa-title,\n .goa-card .card-content .goa-text,\n .goa-card .card-content .goa-content {\n margin-bottom: 28px; }\n .goa-card .card-content .goa-text {\n color: #333;\n font-size: var(--fs-base);\n line-height: 28px; }\n .goa-card .card-content .goa-footer {\n font-size: var(--fs-base); }\n .goa-card .card-content .goa-title {\n font-size: var(--fs-xl);\n font-weight: 400;\n line-height: 32px; }\n .goa-card .goa-poster {\n position: relative;\n display: block;\n padding: 56.25% 0 0;\n overflow: hidden;\n background: #e5e5e5; }\n .goa-card .goa-poster:empty {\n display: none; }\n .goa-card .goa-poster img,\n .goa-card .goa-poster iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: none; }\n .goa-card .goa-poster-image img {\n display: block;\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover; }\n .goa-card.card-auto {\n width: auto; }\n .goa-card.card-auto .card {\n flex-basis: auto;\n width: auto; }\n .goa-card a:hover {\n color: #004f84;\n text-decoration: none; }\n .goa-card a:focus {\n outline: 3px solid #feba35;\n outline-offset: 0; }\n\n.goa-card[data-skeleton] .goa-poster-image {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n padding-bottom: 56.25%; }\n .goa-card[data-skeleton] .goa-poster-image img {\n display: none; }\n\n.goa-card[data-skeleton] .goa-title {\n margin-bottom: 1rem; }\n\n.goa-card[data-skeleton] .goa-footer {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n max-height: 1rem; }\n";
1861
+ styleInject(css_248z$d);
1862
+
1863
+ var GoACard = function GoACard(_ref) {
1864
+ var title = _ref.title,
1865
+ content = _ref.content,
1866
+ _ref$description = _ref.description,
1867
+ description = _ref$description === void 0 ? null : _ref$description,
1868
+ _ref$cardImageUrl = _ref.cardImageUrl,
1869
+ cardImageUrl = _ref$cardImageUrl === void 0 ? null : _ref$cardImageUrl,
1870
+ _ref$titleUrl = _ref.titleUrl,
1871
+ titleUrl = _ref$titleUrl === void 0 ? null : _ref$titleUrl,
2261
1872
  _ref$children = _ref.children,
2262
1873
  children = _ref$children === void 0 ? null : _ref$children,
2263
- props = _objectWithoutProperties(_ref, ["formTitle", "formDescription", "onFormSubmit", "children"]);
1874
+ _ref$minWidth = _ref.minWidth,
1875
+ minWidth = _ref$minWidth === void 0 ? 'auto' : _ref$minWidth,
1876
+ _ref$maxWidth = _ref.maxWidth,
1877
+ maxWidth = _ref$maxWidth === void 0 ? 'auto' : _ref$maxWidth,
1878
+ other = _objectWithoutProperties(_ref, ["title", "content", "description", "cardImageUrl", "titleUrl", "children", "minWidth", "maxWidth"]);
2264
1879
 
2265
- var _useState = useState(initState),
1880
+ var _useState = useState(null),
2266
1881
  _useState2 = _slicedToArray(_useState, 2),
2267
- formState = _useState2[0],
2268
- setFormState = _useState2[1];
2269
-
2270
- var _useState3 = useState([]),
2271
- _useState4 = _slicedToArray(_useState3, 2),
2272
- formErrors = _useState4[0],
2273
- setFormErrors = _useState4[1];
2274
-
2275
- var onSubmit = function onSubmit(e) {
2276
- e.preventDefault();
1882
+ imgHeight = _useState2[0],
1883
+ setImgHeight = _useState2[1];
2277
1884
 
2278
- if (validate()) {
2279
- onFormSubmit(formState.data);
1885
+ return /*#__PURE__*/React.createElement("div", Object.assign({
1886
+ className: "goa-card",
1887
+ "data-testid": "card-container",
1888
+ style: {
1889
+ minWidth: minWidth,
1890
+ maxWidth: maxWidth
2280
1891
  }
2281
- };
2282
-
2283
- var validate = function validate() {
2284
- var validators = formState.validators;
2285
- setFormState(function (state) {
2286
- return _objectSpread2(_objectSpread2({}, state), {}, {
2287
- errors: {}
2288
- });
2289
- });
2290
- var formErrors = Object.entries(validators).reduce(function (errors, _ref2) {
2291
- var _ref3 = _slicedToArray(_ref2, 2),
2292
- name = _ref3[0],
2293
- validators = _ref3[1];
2294
-
2295
- var data = formState.data;
2296
-
2297
- if (validators.length > 0) {
2298
- var messages = validators.reduce(function (result, validator) {
2299
- var value = data[name];
2300
- var err = validator(value, data);
2301
- return [].concat(_toConsumableArray(result), _toConsumableArray(err));
2302
- }, []);
2303
-
2304
- if (messages.length > 0) {
2305
- errors[name] = "".concat(messages, " ").concat(name.toLocaleLowerCase());
2306
- }
2307
-
2308
- var errorNames = [];
2309
-
2310
- for (var key in errors) {
2311
- if (errors[key].length > 0) {
2312
- errorNames.push(key);
2313
- }
2314
- }
1892
+ }, other), cardImageUrl && /*#__PURE__*/React.createElement("div", {
1893
+ className: "goa-poster-image",
1894
+ "data-testid": "card-img"
1895
+ }, /*#__PURE__*/React.createElement("img", {
1896
+ height: imgHeight,
1897
+ src: cardImageUrl,
1898
+ alt: "Card cardImageUrl"
1899
+ })), /*#__PURE__*/React.createElement("div", {
1900
+ className: "card-content"
1901
+ }, /*#__PURE__*/React.createElement("div", {
1902
+ className: "goa-title",
1903
+ "data-testid": "card-title"
1904
+ }, titleUrl ? /*#__PURE__*/React.createElement("a", {
1905
+ href: titleUrl,
1906
+ "data-testid": "card-title-link"
1907
+ }, title) : /*#__PURE__*/React.createElement("div", null, title)), /*#__PURE__*/React.createElement("p", {
1908
+ className: "goa-text",
1909
+ "data-testid": "card-content"
1910
+ }, content !== null && content !== void 0 ? content : description), children && /*#__PURE__*/React.createElement("div", {
1911
+ className: "goa-footer",
1912
+ "data-testid": "card-footer"
1913
+ }, children)));
1914
+ };
2315
1915
 
2316
- setFormErrors(errorNames);
2317
- }
1916
+ var css_248z$e = "/* Palette */\n/* Semantic usages */\n.goa-card-group {\n margin-top: 14px;\n vertical-align: top; }\n .goa-card-group .card-group-title {\n font-size: 24px;\n font-weight: bold;\n color: #333; }\n .goa-card-group .card-group-basic {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-basic > div {\n margin: 14px 10px; }\n .goa-card-group .card-group-basic-vue > div {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-basic-vue > div > div {\n margin: 14px 10px; }\n .goa-card-group .card-group-column {\n display: inline-block;\n flex-direction: column;\n -moz-column-count: 3;\n column-count: 3;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-column > div {\n margin: 14px; }\n .goa-card-group .card-group-column-vue > div {\n display: inline-block;\n flex-direction: column;\n -moz-column-count: 3;\n column-count: 3;\n flex-wrap: wrap;\n align-items: stretch; }\n .goa-card-group .card-group-column > div > div {\n margin: 14px; }\n";
1917
+ styleInject(css_248z$e);
2318
1918
 
2319
- return errors;
2320
- }, {});
1919
+ var GoACardGroup = function GoACardGroup(_ref) {
1920
+ var _ref$title = _ref.title,
1921
+ title = _ref$title === void 0 ? null : _ref$title,
1922
+ _ref$children = _ref.children,
1923
+ children = _ref$children === void 0 ? null : _ref$children,
1924
+ _ref$layout = _ref.layout,
1925
+ layout = _ref$layout === void 0 ? 'basic' : _ref$layout,
1926
+ _ref$cardItems = _ref.cardItems,
1927
+ cardItems = _ref$cardItems === void 0 ? null : _ref$cardItems;
2321
1928
 
2322
- if (Object.keys(formErrors).length === 0) {
2323
- return true;
1929
+ function getCards() {
1930
+ if (children) {
1931
+ return children;
2324
1932
  }
2325
1933
 
2326
- setFormState(function (state) {
2327
- return _objectSpread2(_objectSpread2({}, state), {}, {
2328
- errors: formErrors
2329
- });
2330
- });
2331
- return false;
2332
- };
2333
-
2334
- var setFieldValue = function setFieldValue(name, value) {
2335
- setFormState(function (state) {
2336
- return _objectSpread2(_objectSpread2({}, state), {}, {
2337
- data: _objectSpread2(_objectSpread2({}, state.data), {}, _defineProperty({}, name, value)),
2338
- errors: _objectSpread2(_objectSpread2({}, state.errors), {}, _defineProperty({}, name, []))
2339
- });
2340
- });
2341
- };
2342
-
2343
- var registerInput = function registerInput(_ref4) {
2344
- var name = _ref4.name,
2345
- validators = _ref4.validators;
2346
- setFormState(function (state) {
2347
- return _objectSpread2(_objectSpread2({}, state), {}, {
2348
- validators: _objectSpread2(_objectSpread2({}, state.validators), {}, _defineProperty({}, name, validators || [])),
2349
- errors: _objectSpread2(_objectSpread2({}, state.errors), {}, _defineProperty({}, name, []))
2350
- });
2351
- });
2352
- return function () {
2353
- setFormState(function (state) {
2354
- var _state = _objectSpread2({}, state),
2355
- data = _state.data,
2356
- errors = _state.errors,
2357
- currentValidators = _state.validators,
2358
- navigator = _state.navigator;
2359
-
2360
- delete data[name];
2361
- delete errors[name];
2362
- delete currentValidators[name];
2363
- delete navigator[name];
2364
- return {
2365
- data: data,
2366
- errors: errors,
2367
- validators: currentValidators,
2368
- navigator: navigator
2369
- };
2370
- });
2371
- };
2372
- };
2373
-
2374
- var formProviderValue = {
2375
- errors: formState.errors,
2376
- data: formState.data,
2377
- navigator: formState.navigator,
2378
- setFieldValue: setFieldValue,
2379
- registerInput: registerInput
2380
- };
2381
-
2382
- function addNavigator(error) {
2383
- setFormState(function (state) {
2384
- return _objectSpread2(_objectSpread2({}, state), {}, {
2385
- navigator: {
2386
- name: error
2387
- }
2388
- });
1934
+ return cardItems.map(function (item, index) {
1935
+ return /*#__PURE__*/React.createElement(GoACard, Object.assign({}, item, {
1936
+ key: index
1937
+ }), item.children);
2389
1938
  });
2390
1939
  }
2391
1940
 
2392
- var renderErrorList = function renderErrorList() {
2393
- return /*#__PURE__*/React.createElement(GoACallout, {
2394
- type: "emergency",
2395
- title: "Please fix following errors:"
2396
- }, /*#__PURE__*/React.createElement("ul", null, formErrors.map(function (error) {
2397
- return /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("a", {
2398
- href: "#".concat(error),
2399
- onClick: function onClick() {
2400
- return addNavigator(error);
2401
- }
2402
- }, error));
2403
- })));
2404
- };
2405
-
2406
- return /*#__PURE__*/React.createElement(Provider, {
2407
- value: formProviderValue
1941
+ return /*#__PURE__*/React.createElement("div", {
1942
+ className: "goa-card-group"
2408
1943
  }, /*#__PURE__*/React.createElement("div", {
2409
- className: "goa-form"
2410
- }, /*#__PURE__*/React.createElement("h2", null, formTitle), /*#__PURE__*/React.createElement("p", null, formDescription), onFormSubmit ? /*#__PURE__*/React.createElement("form", {
2411
- onSubmit: onSubmit
2412
- }, children, formErrors.length > 0 && renderErrorList(), /*#__PURE__*/React.createElement(GoAFormButton, null, /*#__PURE__*/React.createElement(GoAButton, {
2413
- buttonType: "tertiary",
2414
- type: "button"
2415
- }, "Cancel"), /*#__PURE__*/React.createElement(GoAButton, {
2416
- buttonType: "primary",
2417
- type: "submit"
2418
- }, "Submit"))) : children));
2419
- };
2420
- GoAForm.propTypes = {
2421
- formTitle: propTypes.string,
2422
- formDescription: propTypes.string,
2423
- onSubmit: propTypes.func,
2424
- children: propTypes.node
1944
+ className: "card-group-title"
1945
+ }, title), /*#__PURE__*/React.createElement("div", {
1946
+ className: "card-group-".concat(layout)
1947
+ }, getCards()));
2425
1948
  };
2426
1949
 
2427
- var css_248z$j = "/* Palette */\n/* Semantic usages */\n.goa-input {\n position: relative; }\n\n.goa-input-error-message {\n font-size: var(--fs-sm);\n font-weight: 300;\n color: red;\n margin: 0; }\n\n.goa-input-help-text-message {\n font-size: var(--fs-sm);\n font-weight: 200;\n color: #333;\n margin: 0; }\n\n.goa-input-field {\n border: 1px solid #666666;\n border-radius: 4px; }\n\n.goa-input-field-error {\n border: 1px solid #ec040b;\n border-radius: 4px; }\n\n.goa-input-highlight-error {\n border: 4px solid #ec040b;\n border-radius: 4px; }\n";
2428
- styleInject(css_248z$j);
1950
+ var css_248z$f = "/* Palette */\n/* Semantic usages */\n.goa-checkbox input[type='checkbox'] {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none; }\n\n.goa-checkbox .goa-checkbox-label {\n z-index: 2;\n box-sizing: border-box;\n margin: 0;\n padding: 0 0 0 8px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n height: 46px;\n display: flex;\n align-items: center; }\n\n.goa-checkbox.goa-checkbox-disabled {\n opacity: 30%; }\n .goa-checkbox.goa-checkbox-disabled .goa-checkbox-label {\n cursor: default; }\n\n.goa-checkbox.has-error .goa-checkbox-container {\n border: solid 2px #fc1921;\n color: #fc1921; }\n .goa-checkbox.has-error .goa-checkbox-container svg {\n fill: #fc1921; }\n\n.goa-checkbox .goa-checkbox-container {\n box-sizing: border-box;\n border: 1px solid #666;\n border-radius: 2px;\n height: 24px;\n line-height: 24px;\n width: 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 3px; }\n .goa-checkbox .goa-checkbox-container svg {\n display: none;\n flex: 1 1 auto;\n fill: #fff; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-selected {\n background-color: #0070c4; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-selected .goa-checkmark {\n display: block !important; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-selected .goa-indeterminate {\n display: none !important; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-indeterminate {\n background-color: #0070c4; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-indeterminate .goa-checkmark {\n display: none; }\n .goa-checkbox .goa-checkbox-container.goa-checkbox-indeterminate .goa-indeterminate {\n display: block; }\n .goa-checkbox .goa-checkbox-container:hover:not(.goa-checkbox-selected):not(.goa-checkbox-indeterminate) {\n background-color: #f1f1f1; }\n .goa-checkbox .goa-checkbox-container:focus-within {\n box-shadow: 0 0 0 3px #feba35;\n outline: none; }\n\n.goa-checkbox.goa-checkbox-label-before .goa-checkbox-container {\n order: 1;\n margin-left: 8px;\n margin-right: auto; }\n\n.goa-checkbox-layout {\n display: inline-flex;\n align-items: center; }\n";
1951
+ styleInject(css_248z$f);
2429
1952
 
2430
- var GoAInput = function GoAInput(_ref) {
2431
- var _ref$validate = _ref.validate,
2432
- validate = _ref$validate === void 0 ? null : _ref$validate,
2433
- _ref$name = _ref.name,
2434
- name = _ref$name === void 0 ? '' : _ref$name,
2435
- _ref$type = _ref.type,
2436
- type = _ref$type === void 0 ? '' : _ref$type,
2437
- _ref$message = _ref.message,
2438
- message = _ref$message === void 0 ? '' : _ref$message,
1953
+ var GoACheckbox = function GoACheckbox(_ref) {
1954
+ var _ref$checked = _ref.checked,
1955
+ checked = _ref$checked === void 0 ? false : _ref$checked,
2439
1956
  _ref$required = _ref.required,
2440
1957
  required = _ref$required === void 0 ? false : _ref$required,
2441
- _ref$helpText = _ref.helpText,
2442
- helpText = _ref$helpText === void 0 ? '' : _ref$helpText,
2443
- _ref$multiLine = _ref.multiLine,
2444
- multiLine = _ref$multiLine === void 0 ? false : _ref$multiLine,
2445
- _ref$navigator = _ref.navigator,
2446
- navigator = _ref$navigator === void 0 ? false : _ref$navigator,
2447
- onChange = _ref.onChange;
2448
-
2449
- var _useState = useState(true),
2450
- _useState2 = _slicedToArray(_useState, 2),
2451
- valid = _useState2[0],
2452
- setValid = _useState2[1];
2453
-
2454
- var _useState3 = useState(''),
2455
- _useState4 = _slicedToArray(_useState3, 2),
2456
- value = _useState4[0],
2457
- setValue = _useState4[1];
1958
+ _ref$disabled = _ref.disabled,
1959
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1960
+ _ref$indeterminate = _ref.indeterminate,
1961
+ indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
1962
+ _ref$labelPosition = _ref.labelPosition,
1963
+ labelPosition = _ref$labelPosition === void 0 ? 'before' : _ref$labelPosition,
1964
+ _ref$value = _ref.value,
1965
+ value = _ref$value === void 0 ? '' : _ref$value,
1966
+ content = _ref.content,
1967
+ children = _ref.children,
1968
+ selectionChange = _ref.selectionChange;
2458
1969
 
2459
- var handleInput = function handleInput(e) {
2460
- var value = e.target.value;
2461
- setValue(value);
1970
+ var hasError = function hasError() {
1971
+ return required && !checked;
1972
+ };
2462
1973
 
2463
- if (validate) {
2464
- setValid(validate(value));
2465
- }
1974
+ var rootCss = function rootCss() {
1975
+ return classnames({
1976
+ 'goa-checkbox': true,
1977
+ 'goa-checkbox-disabled': disabled,
1978
+ 'has-error': hasError(),
1979
+ 'goa-checkbox-label-before': labelPosition === 'before'
1980
+ });
1981
+ };
2466
1982
 
2467
- onChange(value);
1983
+ var checkboxCss = function checkboxCss() {
1984
+ return classnames({
1985
+ 'goa-checkbox-container': true,
1986
+ 'goa-checkbox-selected': !indeterminate && checked,
1987
+ 'goa-checkbox-indeterminate': indeterminate && checked
1988
+ });
2468
1989
  };
2469
1990
 
2470
- var inputFieldClass = !message ? 'goa-input-field' : !navigator ? 'goa-input-field-error' : 'goa-input-highlight-error';
2471
- return /*#__PURE__*/React.createElement("div", null, multiLine ? /*#__PURE__*/React.createElement("textarea", {
2472
- placeholder: name,
2473
- onChange: handleInput,
2474
- className: inputFieldClass
2475
- }, value) : /*#__PURE__*/React.createElement("input", {
2476
- type: type,
1991
+ return /*#__PURE__*/React.createElement("div", {
1992
+ className: rootCss()
1993
+ }, /*#__PURE__*/React.createElement("label", {
1994
+ className: "goa-checkbox-layout"
1995
+ }, /*#__PURE__*/React.createElement("div", {
1996
+ className: checkboxCss()
1997
+ }, /*#__PURE__*/React.createElement("input", {
1998
+ type: "checkbox",
1999
+ checked: checked,
2000
+ disabled: disabled,
2477
2001
  required: required,
2478
- name: name,
2479
2002
  value: value,
2480
- onChange: handleInput,
2481
- className: inputFieldClass,
2482
- placeholder: name
2483
- }), message && /*#__PURE__*/React.createElement("p", {
2484
- className: "goa-input-error-message"
2485
- }, message), helpText && /*#__PURE__*/React.createElement("p", {
2486
- className: "goa-input-help-text-message"
2487
- }, helpText));
2488
- };
2489
- GoAInput.propTypes = {
2490
- validate: propTypes.func,
2491
- name: propTypes.string,
2492
- type: propTypes.string,
2493
- message: propTypes.string,
2494
- required: propTypes.bool,
2495
- helpText: propTypes.string,
2496
- multiLine: propTypes.bool,
2497
- navigator: propTypes.bool,
2498
- onChange: propTypes.func
2003
+ onChange: function onChange(e) {
2004
+ return selectionChange(e.target.checked);
2005
+ }
2006
+ }), indeterminate && checked && /*#__PURE__*/React.createElement("svg", {
2007
+ id: "dashmark",
2008
+ xmlns: "http://www.w3.org/2000/svg",
2009
+ viewBox: "0 0 15 2",
2010
+ className: "goa-indeterminate"
2011
+ }, /*#__PURE__*/React.createElement("rect", {
2012
+ width: "15",
2013
+ height: "2"
2014
+ })), !indeterminate && checked && /*#__PURE__*/React.createElement("svg", {
2015
+ id: "checkmark",
2016
+ xmlns: "http://www.w3.org/2000/svg",
2017
+ viewBox: "0 0 16 12.18",
2018
+ className: "goa-checkmark"
2019
+ }, /*#__PURE__*/React.createElement("path", {
2020
+ d: "M5.09,9.64,1.27,5.82,0,7.09l5.09,5.09L16,1.27,14.73,0Z"
2021
+ }))), /*#__PURE__*/React.createElement("span", {
2022
+ className: "goa-checkbox-label"
2023
+ }, content || children)));
2499
2024
  };
2500
2025
 
2501
- var css_248z$k = ".goa-scrollable {\n overflow: hidden;\n height: 100%;\n}\n\n.goa-scrollable > div::-webkit-scrollbar {\n width: 6px;\n}\n\n.goa-scrollable > div::-webkit-scrollbar-track {\n background: #f1f1f1;\n}\n\n.goa-scrollable > div::-webkit-scrollbar-thumb {\n background: #888;\n}\n\n.goa-scrollable > div::-webkit-scrollbar-thumb:hover {\n background: #555;\n}\n";
2502
- styleInject(css_248z$k);
2503
-
2504
- var css_248z$l = "/* Root ============================================================================== */\n\n.modal-root {\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Modal ============================================================================== */\n\n.modal {\n position: relative;\n background: #fff;\n transition: opacity 150ms ease-in;\n z-index: 1001;\n}\n\n@media (max-width: 639px) {\n .modal {\n width: 100vw;\n height: 100vh;\n }\n}\n\n@media (min-width: 640px) {\n .modal {\n box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n margin: 1rem;\n max-height: 80vh;\n width: 600px;\n }\n}\n@media (min-width: 1024px) {\n .modal {\n width: 65ch;\n }\n}\n\n/* Modal Content ============================================================================== */\n\n.modal-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n/* Modal Actions ============================================================================== */\n\n.modal-actions {\n text-align: right;\n margin: 1rem;\n}\n\n@media (max-width: 639px) {\n .modal-actions button + button {\n margin-top: 0.5rem;\n }\n .modal-actions button {\n display: block;\n width: 100%;\n }\n}\n\n@media (min-width: 640px) {\n .modal-actions > button {\n margin-right: 0;\n }\n .modal-actions > button + button {\n margin-left: 0.5rem;\n }\n}\n\n/* Modal Title ============================================================================ */\n\n.modal-title {\n font-size: var(--fs-xl);\n padding: 1rem;\n margin-right: 40px; /* close icon spacing */\n}\n\n/* Modal Background ======================================================================= */\n\n.modal-background {\n position: fixed;\n inset: 0;\n opacity: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n transition: opacity 100ms ease-in;\n}\n\n/* Modal Close ============================================================================ */\n\n.modal-close {\n padding: 0.5rem;\n top: 0.5rem;\n right: 0.5rem;\n position: absolute;\n cursor: pointer;\n height: 20px;\n width: 20px;\n border-radius: 999px;\n transition: background 200ms ease-in;\n}\n\n.modal-close:hover {\n background: rgba(0, 0, 0, 0.1);\n}\n";
2505
- styleInject(css_248z$l);
2506
-
2507
- var css_248z$m = "/* Palette */\n/* Semantic usages */\n.svg {\n max-width: 100px; }\n\n.svg--small {\n max-width: 65px; }\n\n@-webkit-keyframes circle-animation {\n 0% {\n stroke-dashoffset: 75;\n transform: rotate(0); }\n 100% {\n stroke-dashoffset: 75;\n transform: rotate(360deg); } }\n\n@keyframes circle-animation {\n 0% {\n stroke-dashoffset: 75;\n transform: rotate(0); }\n 100% {\n stroke-dashoffset: 75;\n transform: rotate(360deg); } }\n\n.base-circle {\n display: block;\n fill: transparent;\n stroke: #c8eef9;\n stroke-width: 7px; }\n\n.progress-circle, .progress-circle--infinite {\n display: block;\n fill: transparent;\n stroke: #0070c4;\n stroke-linecap: round;\n stroke-dasharray: 283;\n stroke-dashoffset: 280;\n stroke-width: 7px;\n transform-origin: 50% 50%; }\n .progress-circle--infinite {\n -webkit-animation: circle-animation 1.2s linear infinite;\n animation: circle-animation 1.2s linear infinite; }\n\n.progress-message, .progress-message--large, .progress-message--small {\n font-style: normal;\n font-weight: normal; }\n .progress-message--large {\n margin-top: 32px;\n font-size: 24px;\n color: #000; }\n .progress-message--small {\n margin-top: 18px;\n font-size: 18px;\n color: #000; }\n\n.progress-container, .progress-container--small, .progress-container--large {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: white; }\n .progress-container--large {\n width: 100%;\n height: 100%; }\n";
2508
- styleInject(css_248z$m);
2026
+ var css_248z$g = "/* Palette */\n/* Semantic usages */\n.svg {\n max-width: 100px; }\n\n.svg--small {\n max-width: 65px; }\n\n@-webkit-keyframes circle-animation {\n 0% {\n stroke-dashoffset: 75;\n transform: rotate(0); }\n 100% {\n stroke-dashoffset: 75;\n transform: rotate(360deg); } }\n\n@keyframes circle-animation {\n 0% {\n stroke-dashoffset: 75;\n transform: rotate(0); }\n 100% {\n stroke-dashoffset: 75;\n transform: rotate(360deg); } }\n\n.base-circle {\n display: block;\n fill: transparent;\n stroke: #c8eef9;\n stroke-width: 7px; }\n\n.progress-circle, .progress-circle--infinite {\n display: block;\n fill: transparent;\n stroke: #0070c4;\n stroke-linecap: round;\n stroke-dasharray: 283;\n stroke-dashoffset: 280;\n stroke-width: 7px;\n transform-origin: 50% 50%; }\n .progress-circle--infinite {\n -webkit-animation: circle-animation 1.2s linear infinite;\n animation: circle-animation 1.2s linear infinite; }\n\n.progress-message, .progress-message--large, .progress-message--small {\n font-style: normal;\n font-weight: normal; }\n .progress-message--large {\n margin-top: 32px;\n font-size: 24px;\n color: #000; }\n .progress-message--small {\n margin-top: 18px;\n font-size: 18px;\n color: #000; }\n\n.progress-container, .progress-container--small, .progress-container--large {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: white; }\n .progress-container--large {\n width: 100%;\n height: 100%; }\n";
2027
+ styleInject(css_248z$g);
2509
2028
 
2510
2029
  var GoAPageLoader = function GoAPageLoader(_ref) {
2511
2030
  var _ref$type = _ref.type,
@@ -2604,72 +2123,84 @@ GoAPageLoader.propTypes = {
2604
2123
  displayType: propTypes.string
2605
2124
  };
2606
2125
 
2607
- var css_248z$n = "@use '../variables/main.css';\n/* Palette */\n/* Semantic usages */\n@-webkit-keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n@keyframes pulse {\n 0% {\n opacity: 0.5; }\n 50% {\n opacity: 1; }\n 100% {\n opacity: 0.5; } }\n\n[data-skeleton] {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n [data-skeleton] * {\n border-color: #ddd !important;\n color: transparent !important; }\n [data-skeleton] p,\n [data-skeleton] a {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n display: inline;\n line-height: 0 !important;\n font-size: 50% !important; }\n [data-skeleton] p::after,\n [data-skeleton] a::after {\n content: '' !important;\n display: block !important;\n margin-bottom: 1rem !important;\n background-size: contain; }\n [data-skeleton] h1,\n [data-skeleton] h2,\n [data-skeleton] h3,\n [data-skeleton] h4,\n [data-skeleton] h5,\n [data-skeleton] h6 {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n margin-bottom: 1rem; }\n [data-skeleton] h1 {\n height: calc(0.6 * var(--fs-3xl)) !important; }\n [data-skeleton] h2 {\n height: calc(0.6 * var(--fs-2xl)) !important; }\n [data-skeleton] h3 {\n height: calc(0.6 * var(--fs-xl)) !important; }\n [data-skeleton] h4 {\n height: calc(0.6 * var(--fs-lg)) !important; }\n [data-skeleton] img {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out; }\n\n/* basic styles */\n.skeleton {\n background-color: #ddd !important;\n -webkit-animation: pulse 2s infinite ease-in-out;\n animation: pulse 2s infinite ease-in-out;\n background: #dcdcdc;\n overflow: hidden;\n margin: 10px 0; }\n\n.skeleton.text {\n width: 100%;\n height: 12px; }\n\n.skeleton.paragraph {\n width: 100%;\n height: 70px; }\n\n.skeleton.title {\n width: 50%;\n height: 20px;\n margin-bottom: 15px; }\n\n.skeleton.avatar {\n width: 100px;\n height: 100px;\n border-radius: 50%; }\n\n.skeleton.thumbnail {\n width: 100px;\n height: 100px; }\n\n/* skeleton image text */\n.skeleton-image-content {\n display: flex;\n flex-direction: row;\n gap: 30px; }\n\n.skeleton-image-content__text {\n flex: 1 1 auto; }\n\n/* skeleton content */\n.skeleton-content {\n display: grid;\n grid-template-columns: 1fr;\n gap: 30px;\n align-items: left; }\n";
2608
- styleInject(css_248z$n);
2609
-
2610
- var GoASkeletonElement = function GoASkeletonElement(_ref) {
2611
- var _ref$type = _ref.type,
2612
- type = _ref$type === void 0 ? 'text' : _ref$type;
2613
- var classes = "skeleton ".concat(type);
2614
- return /*#__PURE__*/React.createElement("div", {
2615
- className: classes
2616
- });
2617
- };
2126
+ var css_248z$h = "@-webkit-keyframes rotate {\n 100% {\n transform: rotate(360deg); } }\n\n@keyframes rotate {\n 100% {\n transform: rotate(360deg); } }\n\n.circular-loader {\n -webkit-animation: rotate 1s linear infinite;\n animation: rotate 1s linear infinite; }\n\n.base-circle {\n display: block;\n fill: transparent;\n stroke-width: 7px; }\n\n.rotating-circle {\n -webkit-animation: rotate 1s linear infinite;\n animation: rotate 1s linear infinite;\n display: block;\n fill: transparent;\n stroke-linecap: round;\n stroke-width: 7px;\n transform-origin: 50% 50%; }\n";
2127
+ styleInject(css_248z$h);
2618
2128
 
2619
- var GoASkeletonContent = function GoASkeletonContent(_ref) {
2620
- var _ref$rows = _ref.rows,
2621
- rows = _ref$rows === void 0 ? 1 : _ref$rows;
2622
- var elements = [];
2129
+ var GoAElementLoader = function GoAElementLoader(_ref) {
2130
+ var _ref$visible = _ref.visible,
2131
+ visible = _ref$visible === void 0 ? false : _ref$visible,
2132
+ _ref$baseColour = _ref.baseColour,
2133
+ baseColour = _ref$baseColour === void 0 ? '#c8eef9' : _ref$baseColour,
2134
+ _ref$spinnerColour = _ref.spinnerColour,
2135
+ spinnerColour = _ref$spinnerColour === void 0 ? '#0070c4' : _ref$spinnerColour,
2136
+ _ref$size = _ref.size,
2137
+ size = _ref$size === void 0 ? 'default' : _ref$size;
2138
+ var radius = size === 'small' ? 16 : 18;
2139
+ var diameter = radius * 2;
2140
+ var boxView = "0 0 ".concat(diameter, " ").concat(diameter);
2141
+ /**
2142
+ * Generates the value for an SVG arc.
2143
+ * @param current Current value.
2144
+ * @param total Maximum value.
2145
+ * @param pathRadius Radius of the SVG path.
2146
+ * @param elementRadius Radius of the SVG container.
2147
+ * @param isSemicircle Whether the element should be a semicircle.
2148
+ */
2623
2149
 
2624
- for (var i = 0; i < rows; i++) {
2625
- elements.push( /*#__PURE__*/React.createElement(GoASkeletonElement, {
2626
- type: "text"
2627
- }));
2628
- }
2150
+ function getArc(current, total, pathRadius, elementRadius) {
2151
+ var isSemicircle = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
2152
+ var value = Math.max(0, Math.min(current || 0, total));
2153
+ var maxAngle = isSemicircle ? 180 : 359.9999;
2154
+ var percentage = total === 0 ? maxAngle : value / total * maxAngle;
2629
2155
 
2630
- return /*#__PURE__*/React.createElement("div", {
2631
- className: "skeleton-content"
2632
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(GoASkeletonElement, {
2633
- type: "title"
2634
- }), elements));
2635
- };
2156
+ var start = _polarToCartesian(elementRadius, pathRadius, percentage);
2636
2157
 
2637
- var GoASkeletonGridColumnContent = function GoASkeletonGridColumnContent(_ref) {
2638
- var _ref$rows = _ref.rows,
2639
- rows = _ref$rows === void 0 ? 1 : _ref$rows;
2640
- var elements = [];
2158
+ var end = _polarToCartesian(elementRadius, pathRadius, 0);
2641
2159
 
2642
- for (var i = 0; i < rows; i++) {
2643
- elements.push( /*#__PURE__*/React.createElement(GoASkeletonElement, {
2644
- type: "text"
2645
- }));
2160
+ var arcSweep = percentage <= 180 ? 0 : 1;
2161
+ return "M ".concat(start, " A ").concat(pathRadius, " ").concat(pathRadius, " 0 ").concat(arcSweep, " 0 ").concat(end);
2646
2162
  }
2647
2163
 
2648
- return /*#__PURE__*/React.createElement("div", {
2649
- className: "skeleton-content"
2650
- }, /*#__PURE__*/React.createElement("div", null, elements));
2651
- };
2652
-
2653
- var GoASkeletonImageContent = function GoASkeletonImageContent(_ref) {
2654
- var _ref$rows = _ref.rows,
2655
- rows = _ref$rows === void 0 ? 1 : _ref$rows;
2656
- var elements = [];
2164
+ var DEGREE_IN_RADIANS = Math.PI / 180;
2165
+ /**
2166
+ * Converts polar cooradinates to Cartesian.
2167
+ * @param elementRadius Radius of the wrapper element.
2168
+ * @param pathRadius Radius of the path being described.
2169
+ * @param angleInDegrees Degree to be converted.
2170
+ */
2657
2171
 
2658
- for (var i = 0; i < rows; i++) {
2659
- elements.push( /*#__PURE__*/React.createElement(GoASkeletonElement, {
2660
- type: "text"
2661
- }));
2172
+ function _polarToCartesian(elementRadius, pathRadius, angleInDegrees) {
2173
+ var angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;
2174
+ var x = elementRadius + pathRadius * Math.cos(angleInRadians);
2175
+ var y = elementRadius + pathRadius * Math.sin(angleInRadians);
2176
+ return x + ' ' + y;
2662
2177
  }
2663
2178
 
2664
- return /*#__PURE__*/React.createElement("div", {
2665
- className: "skeleton-image-content"
2666
- }, /*#__PURE__*/React.createElement(GoASkeletonElement, {
2667
- type: "thumbnail"
2668
- }), /*#__PURE__*/React.createElement("div", {
2669
- className: "skeleton-image-content__text"
2670
- }, /*#__PURE__*/React.createElement(GoASkeletonElement, {
2671
- type: "title"
2672
- }), elements));
2179
+ return visible && /*#__PURE__*/React.createElement("svg", {
2180
+ className: "circular-loader",
2181
+ fill: "none",
2182
+ viewBox: boxView,
2183
+ width: radius,
2184
+ height: radius,
2185
+ xmlns: "http://www.w3.org/2000/svg"
2186
+ }, /*#__PURE__*/React.createElement("circle", {
2187
+ cx: radius,
2188
+ cy: radius,
2189
+ stroke: baseColour,
2190
+ strokeWidth: "7",
2191
+ r: radius - 4
2192
+ }), /*#__PURE__*/React.createElement("path", {
2193
+ d: getArc(75, 100, radius - 4, radius, false),
2194
+ strokeWidth: "7",
2195
+ stroke: spinnerColour,
2196
+ strokeLinecap: "round"
2197
+ }));
2198
+ };
2199
+ GoAElementLoader.propTypes = {
2200
+ visible: propTypes.bool,
2201
+ baseColour: propTypes.string,
2202
+ spinnerColour: propTypes.string,
2203
+ size: propTypes.number
2673
2204
  };
2674
2205
 
2675
- export { GoABadge, GoAButton, GoACallout, GoACard, GoACardGroup, GoACheckbox, GoADropdown, GoAElementLoader, GoAForm, GoAFormButton, GoAFormContainer, GoAFormItem, GoAHeader, GoAHeroBanner, GoAHeroBannerContent, GoAHeroBannerLink, GoAInput, MicrositeLogo as GoAMicrositeLogo, GoANotification, GoAOption, GoAOptionGroup, GoAPageLoader, GoARadio, GoARadioGroup, GoASkeletonContent, GoASkeletonGridColumnContent, GoASkeletonImageContent };
2206
+ export { GoAButton, GoACallout, GoACard, GoACardGroup, GoACheckbox, GoADropdown, GoAElementLoader, GoAHeader, GoAHeroBanner, GoAHeroBannerContent, GoAHeroBannerLink, MicrositeLogo as GoAMicrositeLogo, GoANotification, GoAOption, GoAOptionGroup, GoAPageLoader, GoARadio, GoARadioGroup, GoASkeletonContent, GoASkeletonGridColumnContent, GoASkeletonImageContent };