@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
@@ -96,22 +96,10 @@
96
96
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
97
97
  }
98
98
 
99
- function _toConsumableArray(arr) {
100
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
101
- }
102
-
103
- function _arrayWithoutHoles(arr) {
104
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
105
- }
106
-
107
99
  function _arrayWithHoles(arr) {
108
100
  if (Array.isArray(arr)) return arr;
109
101
  }
110
102
 
111
- function _iterableToArray(iter) {
112
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
113
- }
114
-
115
103
  function _iterableToArrayLimit(arr, i) {
116
104
  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
117
105
  var _arr = [];
@@ -156,10 +144,6 @@
156
144
  return arr2;
157
145
  }
158
146
 
159
- function _nonIterableSpread() {
160
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
161
- }
162
-
163
147
  function _nonIterableRest() {
164
148
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
165
149
  }
@@ -1534,249 +1518,13 @@
1534
1518
  linkUrl: ''
1535
1519
  };
1536
1520
 
1537
- 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";
1538
- styleInject(css_248z$a);
1539
-
1540
- var GoACard = function GoACard(_ref) {
1541
- var title = _ref.title,
1542
- content = _ref.content,
1543
- _ref$description = _ref.description,
1544
- description = _ref$description === void 0 ? null : _ref$description,
1545
- _ref$cardImageUrl = _ref.cardImageUrl,
1546
- cardImageUrl = _ref$cardImageUrl === void 0 ? null : _ref$cardImageUrl,
1547
- _ref$titleUrl = _ref.titleUrl,
1548
- titleUrl = _ref$titleUrl === void 0 ? null : _ref$titleUrl,
1549
- _ref$children = _ref.children,
1550
- children = _ref$children === void 0 ? null : _ref$children,
1551
- _ref$minWidth = _ref.minWidth,
1552
- minWidth = _ref$minWidth === void 0 ? 'auto' : _ref$minWidth,
1553
- _ref$maxWidth = _ref.maxWidth,
1554
- maxWidth = _ref$maxWidth === void 0 ? 'auto' : _ref$maxWidth,
1555
- other = _objectWithoutProperties(_ref, ["title", "content", "description", "cardImageUrl", "titleUrl", "children", "minWidth", "maxWidth"]);
1556
-
1557
- var _useState = React.useState(null),
1558
- _useState2 = _slicedToArray(_useState, 2),
1559
- imgHeight = _useState2[0],
1560
- setImgHeight = _useState2[1];
1561
-
1562
- return /*#__PURE__*/React__default.createElement("div", Object.assign({
1563
- className: "goa-card",
1564
- "data-testid": "card-container",
1565
- style: {
1566
- minWidth: minWidth,
1567
- maxWidth: maxWidth
1568
- }
1569
- }, other), cardImageUrl && /*#__PURE__*/React__default.createElement("div", {
1570
- className: "goa-poster-image",
1571
- "data-testid": "card-img"
1572
- }, /*#__PURE__*/React__default.createElement("img", {
1573
- height: imgHeight,
1574
- src: cardImageUrl,
1575
- alt: "Card cardImageUrl"
1576
- })), /*#__PURE__*/React__default.createElement("div", {
1577
- className: "card-content"
1578
- }, /*#__PURE__*/React__default.createElement("div", {
1579
- className: "goa-title",
1580
- "data-testid": "card-title"
1581
- }, titleUrl ? /*#__PURE__*/React__default.createElement("a", {
1582
- href: titleUrl,
1583
- "data-testid": "card-title-link"
1584
- }, title) : /*#__PURE__*/React__default.createElement("div", null, title)), /*#__PURE__*/React__default.createElement("p", {
1585
- className: "goa-text",
1586
- "data-testid": "card-content"
1587
- }, content !== null && content !== void 0 ? content : description), children && /*#__PURE__*/React__default.createElement("div", {
1588
- className: "goa-footer",
1589
- "data-testid": "card-footer"
1590
- }, children)));
1591
- };
1592
-
1593
- 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";
1594
- styleInject(css_248z$b);
1595
-
1596
- var GoARadio = function GoARadio(_ref) {
1597
- var name = _ref.name,
1598
- value = _ref.value,
1599
- disabled = _ref.disabled,
1600
- _ref$labelPosition = _ref.labelPosition,
1601
- labelPosition = _ref$labelPosition === void 0 ? 'after' : _ref$labelPosition,
1602
- required = _ref.required,
1603
- children = _ref.children;
1604
- var selectedValue = React.useContext(RadioContext);
1605
- var updateSelectedValue = React.useContext(RadioUpdateContext);
1606
-
1607
- function hasError() {
1608
- return required && !selectedValue;
1609
- }
1610
-
1611
- function getSelectedCss() {
1612
- return classnames({
1613
- 'goa-radio-container': true,
1614
- 'goa-radio-selected': isChecked()
1615
- });
1616
- }
1617
-
1618
- function getRootCssClasses() {
1619
- return classnames({
1620
- 'goa-radio': true,
1621
- 'goa-radio-disabled': disabled,
1622
- 'has-error': hasError(),
1623
- 'goa-radio-label-before': labelPosition === 'before'
1624
- });
1625
- }
1626
-
1627
- function isChecked() {
1628
- return selectedValue === value;
1629
- }
1630
-
1631
- function onRadioChange(e) {
1632
- updateSelectedValue(e.target.value);
1633
- }
1634
-
1635
- return /*#__PURE__*/React__default.createElement("div", {
1636
- className: getRootCssClasses()
1637
- }, /*#__PURE__*/React__default.createElement("div", {
1638
- className: "goa-radio-inline-block"
1639
- }, /*#__PURE__*/React__default.createElement("label", {
1640
- className: "goa-radio-layout"
1641
- }, /*#__PURE__*/React__default.createElement("div", {
1642
- className: getSelectedCss()
1643
- }, /*#__PURE__*/React__default.createElement("input", {
1644
- type: "radio",
1645
- name: name,
1646
- value: value,
1647
- checked: isChecked(),
1648
- disabled: disabled,
1649
- onChange: onRadioChange
1650
- }), isChecked() && /*#__PURE__*/React__default.createElement("svg", {
1651
- xmlns: "http://www.w3.org/2000/svg",
1652
- width: "12",
1653
- height: "12",
1654
- viewBox: "0 0 12 12"
1655
- }, /*#__PURE__*/React__default.createElement("circle", {
1656
- cx: "6",
1657
- cy: "6",
1658
- r: "6",
1659
- fill: "#fff"
1660
- }))), /*#__PURE__*/React__default.createElement("span", {
1661
- className: "goa-radio-label"
1662
- }, children))));
1663
- };
1664
-
1665
- 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";
1666
- styleInject(css_248z$c);
1667
-
1668
- var RadioContext = React__default.createContext('');
1669
- var RadioUpdateContext = React__default.createContext( // eslint-disable-next-line @typescript-eslint/no-empty-function
1670
- function () {});
1671
- var GoARadioGroup = function GoARadioGroup(_ref) {
1672
- var helperText = _ref.helperText,
1673
- onChange = _ref.onChange,
1674
- required = _ref.required,
1675
- requiredErrorMessage = _ref.requiredErrorMessage,
1676
- title = _ref.title,
1677
- value = _ref.value,
1678
- items = _ref.items,
1679
- children = _ref.children,
1680
- childAttrs = _objectWithoutProperties(_ref, ["helperText", "onChange", "required", "requiredErrorMessage", "title", "value", "items", "children"]);
1681
-
1682
- var _useState = React.useState(value),
1683
- _useState2 = _slicedToArray(_useState, 2),
1684
- selectedValue = _useState2[0],
1685
- setSelectedValue = _useState2[1];
1686
-
1687
- function handleOnChange(val) {
1688
- setSelectedValue(val);
1689
- onChange(val);
1690
- }
1691
-
1692
- function hasError() {
1693
- return required && !selectedValue;
1694
- }
1695
-
1696
- function getChildren() {
1697
- if (children) {
1698
- return React.Children.map(children, function (child) {
1699
- var key = "".concat(childAttrs.name, "-").concat(child.props.value);
1700
- return React__default.cloneElement(child, _objectSpread2(_objectSpread2({}, childAttrs), {}, {
1701
- key: key,
1702
- required: required
1703
- }));
1704
- });
1705
- }
1706
-
1707
- return items.map(function (item) {
1708
- return /*#__PURE__*/React__default.createElement(GoARadio, {
1709
- key: "".concat(childAttrs.name, "-").concat(item.value),
1710
- labelPosition: childAttrs.labelPosition,
1711
- name: childAttrs.name,
1712
- disabled: childAttrs.disabled,
1713
- value: item.value,
1714
- children: item.text,
1715
- required: required
1716
- });
1717
- });
1718
- }
1719
-
1720
- return /*#__PURE__*/React__default.createElement("div", {
1721
- className: "goa-radio-group"
1722
- }, title && /*#__PURE__*/React__default.createElement("span", {
1723
- className: "radio-group-title"
1724
- }, title), required && /*#__PURE__*/React__default.createElement("span", {
1725
- className: "required-label"
1726
- }, "(Required)"), helperText && /*#__PURE__*/React__default.createElement("div", {
1727
- className: "helper-text"
1728
- }, helperText), /*#__PURE__*/React__default.createElement(RadioContext.Provider, {
1729
- value: selectedValue
1730
- }, /*#__PURE__*/React__default.createElement(RadioUpdateContext.Provider, {
1731
- value: handleOnChange
1732
- }, /*#__PURE__*/React__default.createElement("div", {
1733
- className: "goa-radios"
1734
- }, getChildren()))), hasError() && /*#__PURE__*/React__default.createElement("div", {
1735
- className: "error-text"
1736
- }, requiredErrorMessage));
1737
- };
1738
-
1739
- 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";
1740
- styleInject(css_248z$d);
1741
-
1742
- var GoACardGroup = function GoACardGroup(_ref) {
1743
- var _ref$title = _ref.title,
1744
- title = _ref$title === void 0 ? null : _ref$title,
1745
- _ref$children = _ref.children,
1746
- children = _ref$children === void 0 ? null : _ref$children,
1747
- _ref$layout = _ref.layout,
1748
- layout = _ref$layout === void 0 ? 'basic' : _ref$layout,
1749
- _ref$cardItems = _ref.cardItems,
1750
- cardItems = _ref$cardItems === void 0 ? null : _ref$cardItems;
1751
-
1752
- function getCards() {
1753
- if (children) {
1754
- return children;
1755
- }
1756
-
1757
- return cardItems.map(function (item, index) {
1758
- return /*#__PURE__*/React__default.createElement(GoACard, Object.assign({}, item, {
1759
- key: index
1760
- }), item.children);
1761
- });
1762
- }
1763
-
1764
- return /*#__PURE__*/React__default.createElement("div", {
1765
- className: "goa-card-group"
1766
- }, /*#__PURE__*/React__default.createElement("div", {
1767
- className: "card-group-title"
1768
- }, title), /*#__PURE__*/React__default.createElement("div", {
1769
- className: "card-group-".concat(layout)
1770
- }, getCards()));
1771
- };
1772
-
1773
1521
  /** Used to store the options in the dropdown */
1774
1522
 
1775
1523
  // eslint-disable-next-line @typescript-eslint/naming-convention
1776
1524
  var DropdownContext = React.createContext({});
1777
1525
 
1778
- 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";
1779
- styleInject(css_248z$e);
1526
+ 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";
1527
+ styleInject(css_248z$a);
1780
1528
 
1781
1529
  var GoAOption = function GoAOption(props) {
1782
1530
  var label = props.label,
@@ -1936,7 +1684,7 @@
1936
1684
  value: {
1937
1685
  selectionChanged: selectionChanged
1938
1686
  }
1939
- }, /*#__PURE__*/React__default.createElement("div", {
1687
+ }, canOpen(isOpen, open) && /*#__PURE__*/React__default.createElement("div", {
1940
1688
  className: "dropdown-overlay",
1941
1689
  "data-testid": "dropdown-container",
1942
1690
  ref: overlayRef,
@@ -1988,530 +1736,301 @@
1988
1736
  description: null
1989
1737
  };
1990
1738
 
1991
- 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";
1992
- styleInject(css_248z$f);
1993
-
1994
- var GoACheckbox = function GoACheckbox(_ref) {
1995
- var _ref$checked = _ref.checked,
1996
- checked = _ref$checked === void 0 ? false : _ref$checked,
1997
- _ref$required = _ref.required,
1998
- required = _ref$required === void 0 ? false : _ref$required,
1999
- _ref$disabled = _ref.disabled,
2000
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
2001
- _ref$indeterminate = _ref.indeterminate,
2002
- indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
2003
- _ref$labelPosition = _ref.labelPosition,
2004
- labelPosition = _ref$labelPosition === void 0 ? 'before' : _ref$labelPosition,
2005
- _ref$value = _ref.value,
2006
- value = _ref$value === void 0 ? '' : _ref$value,
2007
- content = _ref.content,
2008
- children = _ref.children,
2009
- selectionChange = _ref.selectionChange;
1739
+ 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";
1740
+ styleInject(css_248z$b);
2010
1741
 
2011
- var hasError = function hasError() {
2012
- return required && !checked;
2013
- };
1742
+ var GoARadio = function GoARadio(_ref) {
1743
+ var _ref$state = _ref.state,
1744
+ state = _ref$state === void 0 ? 'valid' : _ref$state,
1745
+ props = _objectWithoutProperties(_ref, ["state"]);
2014
1746
 
2015
- var rootCss = function rootCss() {
1747
+ function getCss() {
2016
1748
  return classnames({
2017
- 'goa-checkbox': true,
2018
- 'goa-checkbox-disabled': disabled,
2019
- 'has-error': hasError(),
2020
- 'goa-checkbox-label-before': labelPosition === 'before'
1749
+ 'goa-radio': true,
1750
+ 'goa-radio--disabled': props.disabled,
1751
+ 'goa-error': state === 'error'
2021
1752
  });
2022
- };
1753
+ }
2023
1754
 
2024
- var checkboxCss = function checkboxCss() {
2025
- return classnames({
2026
- 'goa-checkbox-container': true,
2027
- 'goa-checkbox-selected': !indeterminate && checked,
2028
- 'goa-checkbox-indeterminate': indeterminate && checked
2029
- });
2030
- };
1755
+ function onRadioChange(e) {
1756
+ props.onChange(e.target.value);
1757
+ }
2031
1758
 
2032
- return /*#__PURE__*/React__default.createElement("div", {
2033
- className: rootCss()
2034
- }, /*#__PURE__*/React__default.createElement("label", {
2035
- className: "goa-checkbox-layout"
2036
- }, /*#__PURE__*/React__default.createElement("div", {
2037
- className: checkboxCss()
1759
+ return /*#__PURE__*/React__default.createElement("label", {
1760
+ className: getCss()
2038
1761
  }, /*#__PURE__*/React__default.createElement("input", {
2039
- type: "checkbox",
2040
- checked: checked,
2041
- disabled: disabled,
2042
- required: required,
2043
- value: value,
2044
- onChange: function onChange(e) {
2045
- return selectionChange(e.target.checked);
2046
- }
2047
- }), indeterminate && checked && /*#__PURE__*/React__default.createElement("svg", {
2048
- id: "dashmark",
2049
- xmlns: "http://www.w3.org/2000/svg",
2050
- viewBox: "0 0 15 2",
2051
- className: "goa-indeterminate"
2052
- }, /*#__PURE__*/React__default.createElement("rect", {
2053
- width: "15",
2054
- height: "2"
2055
- })), !indeterminate && checked && /*#__PURE__*/React__default.createElement("svg", {
2056
- id: "checkmark",
2057
- xmlns: "http://www.w3.org/2000/svg",
2058
- viewBox: "0 0 16 12.18",
2059
- className: "goa-checkmark"
2060
- }, /*#__PURE__*/React__default.createElement("path", {
2061
- d: "M5.09,9.64,1.27,5.82,0,7.09l5.09,5.09L16,1.27,14.73,0Z"
2062
- }))), /*#__PURE__*/React__default.createElement("span", {
2063
- className: "goa-checkbox-label"
2064
- }, content || children)));
2065
- };
2066
-
2067
- 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";
2068
- 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"};
2069
- styleInject(css_248z$g);
2070
-
2071
- var GoABadge = function GoABadge(_ref) {
2072
- var type = _ref.type,
2073
- content = _ref.content,
2074
- icon = _ref.icon;
2075
- return /*#__PURE__*/React__default.createElement("div", {
2076
- className: classnames(styles['goa-badge'], styles["badge-".concat(type)])
2077
- }, icon, /*#__PURE__*/React__default.createElement("span", {
2078
- className: classnames(styles['goa-badge-content'])
2079
- }, content));
2080
- };
2081
- GoABadge.defaultProps = {
2082
- type: 'information'
1762
+ type: "radio",
1763
+ name: props.name,
1764
+ value: props.value,
1765
+ checked: props.checked,
1766
+ disabled: props.disabled,
1767
+ onChange: onRadioChange
1768
+ }), /*#__PURE__*/React__default.createElement("div", {
1769
+ className: "goa-radio-icon"
1770
+ }), /*#__PURE__*/React__default.createElement("span", {
1771
+ className: "goa-radio-label"
1772
+ }, props.children));
2083
1773
  };
2084
1774
 
2085
- 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";
2086
- styleInject(css_248z$h);
1775
+ var GoARadioGroup = function GoARadioGroup(_ref) {
1776
+ var onChange = _ref.onChange,
1777
+ value = _ref.value,
1778
+ children = _ref.children,
1779
+ orientation = _ref.orientation,
1780
+ childAttrs = _objectWithoutProperties(_ref, ["onChange", "value", "children", "orientation"]);
2087
1781
 
2088
- var GoAElementLoader = function GoAElementLoader(_ref) {
2089
- var _ref$visible = _ref.visible,
2090
- visible = _ref$visible === void 0 ? false : _ref$visible,
2091
- _ref$baseColour = _ref.baseColour,
2092
- baseColour = _ref$baseColour === void 0 ? '#c8eef9' : _ref$baseColour,
2093
- _ref$spinnerColour = _ref.spinnerColour,
2094
- spinnerColour = _ref$spinnerColour === void 0 ? '#0070c4' : _ref$spinnerColour,
2095
- _ref$size = _ref.size,
2096
- size = _ref$size === void 0 ? 25 : _ref$size;
2097
- var radius = size;
2098
- var diameter = radius * 2;
2099
-
2100
- var boxView = function boxView() {
2101
- return "0 0 ".concat(diameter, " ").concat(diameter);
2102
- };
2103
- /**
2104
- * Generates the value for an SVG arc.
2105
- * @param current Current value.
2106
- * @param total Maximum value.
2107
- * @param pathRadius Radius of the SVG path.
2108
- * @param elementRadius Radius of the SVG container.
2109
- * @param isSemicircle Whether the element should be a semicircle.
2110
- */
2111
-
2112
-
2113
- function getArc(current, total, pathRadius, elementRadius) {
2114
- var isSemicircle = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
2115
- var value = Math.max(0, Math.min(current || 0, total));
2116
- var maxAngle = isSemicircle ? 180 : 359.9999;
2117
- var percentage = total === 0 ? maxAngle : value / total * maxAngle;
2118
-
2119
- var start = _polarToCartesian(elementRadius, pathRadius, percentage);
2120
-
2121
- var end = _polarToCartesian(elementRadius, pathRadius, 0);
2122
-
2123
- var arcSweep = percentage <= 180 ? 0 : 1;
2124
- return "M ".concat(start, " A ").concat(pathRadius, " ").concat(pathRadius, " 0 ").concat(arcSweep, " 0 ").concat(end);
2125
- }
2126
-
2127
- var DEGREE_IN_RADIANS = Math.PI / 180;
2128
- /**
2129
- * Converts polar cooradinates to Cartesian.
2130
- * @param elementRadius Radius of the wrapper element.
2131
- * @param pathRadius Radius of the path being described.
2132
- * @param angleInDegrees Degree to be converted.
2133
- */
2134
-
2135
- function _polarToCartesian(elementRadius, pathRadius, angleInDegrees) {
2136
- var angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;
2137
- var x = elementRadius + pathRadius * Math.cos(angleInRadians);
2138
- var y = elementRadius + pathRadius * Math.sin(angleInRadians);
2139
- return x + ' ' + y;
1782
+ function getChildren() {
1783
+ return React.Children.map(children, function (child) {
1784
+ var key = "".concat(childAttrs.name, "-").concat(child.props.value);
1785
+ return React__default.cloneElement(child, _objectSpread2(_objectSpread2({}, childAttrs), {}, {
1786
+ checked: child.props.value === value,
1787
+ onChange: onChange,
1788
+ key: key
1789
+ }));
1790
+ });
2140
1791
  }
2141
1792
 
2142
- return visible && /*#__PURE__*/React__default.createElement("svg", {
2143
- className: "circular-loader",
2144
- fill: "none",
2145
- viewBox: boxView(),
2146
- width: "".concat(size),
2147
- height: "".concat(size),
2148
- xmlns: "http://www.w3.org/2000/svg"
2149
- }, /*#__PURE__*/React__default.createElement("circle", {
2150
- cx: "".concat(radius),
2151
- cy: "".concat(radius),
2152
- stroke: "".concat(baseColour),
2153
- strokeWidth: "7",
2154
- r: "".concat(radius - 7 / 2)
2155
- }), /*#__PURE__*/React__default.createElement("path", {
2156
- d: getArc(75, 100, radius - 7 / 2, radius, false),
2157
- strokeWidth: "7",
2158
- stroke: "".concat(spinnerColour),
2159
- strokeLinecap: "round"
2160
- }));
2161
- };
2162
- GoAElementLoader.propTypes = {
2163
- visible: propTypes.bool,
2164
- baseColour: propTypes.string,
2165
- spinnerColour: propTypes.string,
2166
- size: propTypes.number
1793
+ return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", {
1794
+ className: "goa-radio-group--".concat(orientation)
1795
+ }, getChildren()));
2167
1796
  };
2168
1797
 
2169
- 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";
2170
- styleInject(css_248z$i);
2171
-
2172
- var GoAFormItem = function GoAFormItem(_ref) {
2173
- var name = _ref.name,
2174
- _ref$validators = _ref.validators,
2175
- validators = _ref$validators === void 0 ? [] : _ref$validators,
2176
- _ref$onChange = _ref.onChange,
2177
- onChange = _ref$onChange === void 0 ? null : _ref$onChange,
2178
- _ref$children = _ref.children,
2179
- children = _ref$children === void 0 ? null : _ref$children;
1798
+ 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";
1799
+ styleInject(css_248z$c);
2180
1800
 
2181
- var _useContext = React.useContext(FormContext),
2182
- errors = _useContext.errors,
2183
- navigator = _useContext.navigator,
2184
- setFieldValue = _useContext.setFieldValue,
2185
- registerInput = _useContext.registerInput;
1801
+ var GoASkeletonElement = function GoASkeletonElement(_ref) {
1802
+ var _ref$type = _ref.type,
1803
+ type = _ref$type === void 0 ? 'text' : _ref$type;
1804
+ var classes = "skeleton ".concat(type);
1805
+ return /*#__PURE__*/React__default.createElement("div", {
1806
+ className: classes
1807
+ });
1808
+ };
2186
1809
 
2187
- React.useEffect(function () {
2188
- return registerInput({
2189
- name: name,
2190
- validators: validators
2191
- });
2192
- }, []);
1810
+ var GoASkeletonContent = function GoASkeletonContent(_ref) {
1811
+ var _ref$rows = _ref.rows,
1812
+ rows = _ref$rows === void 0 ? 1 : _ref$rows;
1813
+ var elements = [];
2193
1814
 
2194
- var handleChange = function handleChange(val) {
2195
- if (typeof val === 'string') {
2196
- setFieldValue(name, val);
2197
- } else {
2198
- setFieldValue(name, val.target.value);
2199
- }
1815
+ for (var i = 0; i < rows; i++) {
1816
+ elements.push( /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
1817
+ type: "text"
1818
+ }));
1819
+ }
2200
1820
 
2201
- if (onChange) {
2202
- onChange(val);
2203
- }
2204
- };
1821
+ return /*#__PURE__*/React__default.createElement("div", {
1822
+ className: "skeleton-content"
1823
+ }, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
1824
+ type: "title"
1825
+ }), elements));
1826
+ };
2205
1827
 
2206
- var message = errors[name] || [];
2207
- var navigateTo = navigator && navigator.name && navigator.name === name;
1828
+ var GoASkeletonGridColumnContent = function GoASkeletonGridColumnContent(_ref) {
1829
+ var _ref$rows = _ref.rows,
1830
+ rows = _ref$rows === void 0 ? 1 : _ref$rows;
1831
+ var elements = [];
2208
1832
 
2209
- function renderChildren() {
2210
- return React.Children.map(children, function (child) {
2211
- if (child.props.originalType !== 'label') {
2212
- return React__default.cloneElement(child, {
2213
- onChange: handleChange,
2214
- message: message.toString(),
2215
- id: name,
2216
- navigator: navigateTo
2217
- });
2218
- } else {
2219
- return child;
2220
- }
2221
- });
1833
+ for (var i = 0; i < rows; i++) {
1834
+ elements.push( /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
1835
+ type: "text"
1836
+ }));
2222
1837
  }
2223
1838
 
2224
1839
  return /*#__PURE__*/React__default.createElement("div", {
2225
- id: name,
2226
- className: "goa-form-items"
2227
- }, renderChildren());
2228
- };
2229
- GoAFormItem.propTypes = {
2230
- name: propTypes.string,
2231
- onChange: propTypes.func,
2232
- validators: propTypes.array
1840
+ className: "skeleton-content"
1841
+ }, /*#__PURE__*/React__default.createElement("div", null, elements));
2233
1842
  };
2234
1843
 
2235
- var GoAFormButton = function GoAFormButton(_ref) {
2236
- var _ref$children = _ref.children,
2237
- children = _ref$children === void 0 ? null : _ref$children;
2238
- return /*#__PURE__*/React__default.createElement("div", {
2239
- className: "goa-form-button"
2240
- }, children);
2241
- };
1844
+ var GoASkeletonImageContent = function GoASkeletonImageContent(_ref) {
1845
+ var _ref$rows = _ref.rows,
1846
+ rows = _ref$rows === void 0 ? 1 : _ref$rows;
1847
+ var elements = [];
1848
+
1849
+ for (var i = 0; i < rows; i++) {
1850
+ elements.push( /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
1851
+ type: "text"
1852
+ }));
1853
+ }
2242
1854
 
2243
- var GoAFormContainer = function GoAFormContainer(_ref) {
2244
- var _ref$children = _ref.children,
2245
- children = _ref$children === void 0 ? null : _ref$children;
2246
1855
  return /*#__PURE__*/React__default.createElement("div", {
2247
- className: "goa-form-container"
2248
- }, children);
1856
+ className: "skeleton-image-content"
1857
+ }, /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
1858
+ type: "thumbnail"
1859
+ }), /*#__PURE__*/React__default.createElement("div", {
1860
+ className: "skeleton-image-content__text"
1861
+ }, /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
1862
+ type: "title"
1863
+ }), elements));
2249
1864
  };
2250
1865
 
2251
- var initState = {
2252
- data: {},
2253
- validators: {},
2254
- errors: {},
2255
- navigator: {}
2256
- };
2257
- var FormContext;
2258
-
2259
- var _FormContext = FormContext = React__default.createContext({}),
2260
- Provider = _FormContext.Provider;
2261
- var GoAForm = function GoAForm(_ref) {
2262
- var _ref$formTitle = _ref.formTitle,
2263
- formTitle = _ref$formTitle === void 0 ? '' : _ref$formTitle,
2264
- _ref$formDescription = _ref.formDescription,
2265
- formDescription = _ref$formDescription === void 0 ? '' : _ref$formDescription,
2266
- onFormSubmit = _ref.onFormSubmit,
1866
+ 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";
1867
+ styleInject(css_248z$d);
1868
+
1869
+ var GoACard = function GoACard(_ref) {
1870
+ var title = _ref.title,
1871
+ content = _ref.content,
1872
+ _ref$description = _ref.description,
1873
+ description = _ref$description === void 0 ? null : _ref$description,
1874
+ _ref$cardImageUrl = _ref.cardImageUrl,
1875
+ cardImageUrl = _ref$cardImageUrl === void 0 ? null : _ref$cardImageUrl,
1876
+ _ref$titleUrl = _ref.titleUrl,
1877
+ titleUrl = _ref$titleUrl === void 0 ? null : _ref$titleUrl,
2267
1878
  _ref$children = _ref.children,
2268
1879
  children = _ref$children === void 0 ? null : _ref$children,
2269
- props = _objectWithoutProperties(_ref, ["formTitle", "formDescription", "onFormSubmit", "children"]);
1880
+ _ref$minWidth = _ref.minWidth,
1881
+ minWidth = _ref$minWidth === void 0 ? 'auto' : _ref$minWidth,
1882
+ _ref$maxWidth = _ref.maxWidth,
1883
+ maxWidth = _ref$maxWidth === void 0 ? 'auto' : _ref$maxWidth,
1884
+ other = _objectWithoutProperties(_ref, ["title", "content", "description", "cardImageUrl", "titleUrl", "children", "minWidth", "maxWidth"]);
2270
1885
 
2271
- var _useState = React.useState(initState),
1886
+ var _useState = React.useState(null),
2272
1887
  _useState2 = _slicedToArray(_useState, 2),
2273
- formState = _useState2[0],
2274
- setFormState = _useState2[1];
2275
-
2276
- var _useState3 = React.useState([]),
2277
- _useState4 = _slicedToArray(_useState3, 2),
2278
- formErrors = _useState4[0],
2279
- setFormErrors = _useState4[1];
2280
-
2281
- var onSubmit = function onSubmit(e) {
2282
- e.preventDefault();
1888
+ imgHeight = _useState2[0],
1889
+ setImgHeight = _useState2[1];
2283
1890
 
2284
- if (validate()) {
2285
- onFormSubmit(formState.data);
1891
+ return /*#__PURE__*/React__default.createElement("div", Object.assign({
1892
+ className: "goa-card",
1893
+ "data-testid": "card-container",
1894
+ style: {
1895
+ minWidth: minWidth,
1896
+ maxWidth: maxWidth
2286
1897
  }
2287
- };
2288
-
2289
- var validate = function validate() {
2290
- var validators = formState.validators;
2291
- setFormState(function (state) {
2292
- return _objectSpread2(_objectSpread2({}, state), {}, {
2293
- errors: {}
2294
- });
2295
- });
2296
- var formErrors = Object.entries(validators).reduce(function (errors, _ref2) {
2297
- var _ref3 = _slicedToArray(_ref2, 2),
2298
- name = _ref3[0],
2299
- validators = _ref3[1];
2300
-
2301
- var data = formState.data;
2302
-
2303
- if (validators.length > 0) {
2304
- var messages = validators.reduce(function (result, validator) {
2305
- var value = data[name];
2306
- var err = validator(value, data);
2307
- return [].concat(_toConsumableArray(result), _toConsumableArray(err));
2308
- }, []);
2309
-
2310
- if (messages.length > 0) {
2311
- errors[name] = "".concat(messages, " ").concat(name.toLocaleLowerCase());
2312
- }
2313
-
2314
- var errorNames = [];
2315
-
2316
- for (var key in errors) {
2317
- if (errors[key].length > 0) {
2318
- errorNames.push(key);
2319
- }
2320
- }
1898
+ }, other), cardImageUrl && /*#__PURE__*/React__default.createElement("div", {
1899
+ className: "goa-poster-image",
1900
+ "data-testid": "card-img"
1901
+ }, /*#__PURE__*/React__default.createElement("img", {
1902
+ height: imgHeight,
1903
+ src: cardImageUrl,
1904
+ alt: "Card cardImageUrl"
1905
+ })), /*#__PURE__*/React__default.createElement("div", {
1906
+ className: "card-content"
1907
+ }, /*#__PURE__*/React__default.createElement("div", {
1908
+ className: "goa-title",
1909
+ "data-testid": "card-title"
1910
+ }, titleUrl ? /*#__PURE__*/React__default.createElement("a", {
1911
+ href: titleUrl,
1912
+ "data-testid": "card-title-link"
1913
+ }, title) : /*#__PURE__*/React__default.createElement("div", null, title)), /*#__PURE__*/React__default.createElement("p", {
1914
+ className: "goa-text",
1915
+ "data-testid": "card-content"
1916
+ }, content !== null && content !== void 0 ? content : description), children && /*#__PURE__*/React__default.createElement("div", {
1917
+ className: "goa-footer",
1918
+ "data-testid": "card-footer"
1919
+ }, children)));
1920
+ };
2321
1921
 
2322
- setFormErrors(errorNames);
2323
- }
1922
+ 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";
1923
+ styleInject(css_248z$e);
2324
1924
 
2325
- return errors;
2326
- }, {});
1925
+ var GoACardGroup = function GoACardGroup(_ref) {
1926
+ var _ref$title = _ref.title,
1927
+ title = _ref$title === void 0 ? null : _ref$title,
1928
+ _ref$children = _ref.children,
1929
+ children = _ref$children === void 0 ? null : _ref$children,
1930
+ _ref$layout = _ref.layout,
1931
+ layout = _ref$layout === void 0 ? 'basic' : _ref$layout,
1932
+ _ref$cardItems = _ref.cardItems,
1933
+ cardItems = _ref$cardItems === void 0 ? null : _ref$cardItems;
2327
1934
 
2328
- if (Object.keys(formErrors).length === 0) {
2329
- return true;
1935
+ function getCards() {
1936
+ if (children) {
1937
+ return children;
2330
1938
  }
2331
1939
 
2332
- setFormState(function (state) {
2333
- return _objectSpread2(_objectSpread2({}, state), {}, {
2334
- errors: formErrors
2335
- });
2336
- });
2337
- return false;
2338
- };
2339
-
2340
- var setFieldValue = function setFieldValue(name, value) {
2341
- setFormState(function (state) {
2342
- return _objectSpread2(_objectSpread2({}, state), {}, {
2343
- data: _objectSpread2(_objectSpread2({}, state.data), {}, _defineProperty({}, name, value)),
2344
- errors: _objectSpread2(_objectSpread2({}, state.errors), {}, _defineProperty({}, name, []))
2345
- });
2346
- });
2347
- };
2348
-
2349
- var registerInput = function registerInput(_ref4) {
2350
- var name = _ref4.name,
2351
- validators = _ref4.validators;
2352
- setFormState(function (state) {
2353
- return _objectSpread2(_objectSpread2({}, state), {}, {
2354
- validators: _objectSpread2(_objectSpread2({}, state.validators), {}, _defineProperty({}, name, validators || [])),
2355
- errors: _objectSpread2(_objectSpread2({}, state.errors), {}, _defineProperty({}, name, []))
2356
- });
2357
- });
2358
- return function () {
2359
- setFormState(function (state) {
2360
- var _state = _objectSpread2({}, state),
2361
- data = _state.data,
2362
- errors = _state.errors,
2363
- currentValidators = _state.validators,
2364
- navigator = _state.navigator;
2365
-
2366
- delete data[name];
2367
- delete errors[name];
2368
- delete currentValidators[name];
2369
- delete navigator[name];
2370
- return {
2371
- data: data,
2372
- errors: errors,
2373
- validators: currentValidators,
2374
- navigator: navigator
2375
- };
2376
- });
2377
- };
2378
- };
2379
-
2380
- var formProviderValue = {
2381
- errors: formState.errors,
2382
- data: formState.data,
2383
- navigator: formState.navigator,
2384
- setFieldValue: setFieldValue,
2385
- registerInput: registerInput
2386
- };
2387
-
2388
- function addNavigator(error) {
2389
- setFormState(function (state) {
2390
- return _objectSpread2(_objectSpread2({}, state), {}, {
2391
- navigator: {
2392
- name: error
2393
- }
2394
- });
1940
+ return cardItems.map(function (item, index) {
1941
+ return /*#__PURE__*/React__default.createElement(GoACard, Object.assign({}, item, {
1942
+ key: index
1943
+ }), item.children);
2395
1944
  });
2396
1945
  }
2397
1946
 
2398
- var renderErrorList = function renderErrorList() {
2399
- return /*#__PURE__*/React__default.createElement(GoACallout, {
2400
- type: "emergency",
2401
- title: "Please fix following errors:"
2402
- }, /*#__PURE__*/React__default.createElement("ul", null, formErrors.map(function (error) {
2403
- return /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("a", {
2404
- href: "#".concat(error),
2405
- onClick: function onClick() {
2406
- return addNavigator(error);
2407
- }
2408
- }, error));
2409
- })));
2410
- };
2411
-
2412
- return /*#__PURE__*/React__default.createElement(Provider, {
2413
- value: formProviderValue
1947
+ return /*#__PURE__*/React__default.createElement("div", {
1948
+ className: "goa-card-group"
2414
1949
  }, /*#__PURE__*/React__default.createElement("div", {
2415
- className: "goa-form"
2416
- }, /*#__PURE__*/React__default.createElement("h2", null, formTitle), /*#__PURE__*/React__default.createElement("p", null, formDescription), onFormSubmit ? /*#__PURE__*/React__default.createElement("form", {
2417
- onSubmit: onSubmit
2418
- }, children, formErrors.length > 0 && renderErrorList(), /*#__PURE__*/React__default.createElement(GoAFormButton, null, /*#__PURE__*/React__default.createElement(GoAButton, {
2419
- buttonType: "tertiary",
2420
- type: "button"
2421
- }, "Cancel"), /*#__PURE__*/React__default.createElement(GoAButton, {
2422
- buttonType: "primary",
2423
- type: "submit"
2424
- }, "Submit"))) : children));
2425
- };
2426
- GoAForm.propTypes = {
2427
- formTitle: propTypes.string,
2428
- formDescription: propTypes.string,
2429
- onSubmit: propTypes.func,
2430
- children: propTypes.node
1950
+ className: "card-group-title"
1951
+ }, title), /*#__PURE__*/React__default.createElement("div", {
1952
+ className: "card-group-".concat(layout)
1953
+ }, getCards()));
2431
1954
  };
2432
1955
 
2433
- 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";
2434
- styleInject(css_248z$j);
1956
+ 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";
1957
+ styleInject(css_248z$f);
2435
1958
 
2436
- var GoAInput = function GoAInput(_ref) {
2437
- var _ref$validate = _ref.validate,
2438
- validate = _ref$validate === void 0 ? null : _ref$validate,
2439
- _ref$name = _ref.name,
2440
- name = _ref$name === void 0 ? '' : _ref$name,
2441
- _ref$type = _ref.type,
2442
- type = _ref$type === void 0 ? '' : _ref$type,
2443
- _ref$message = _ref.message,
2444
- message = _ref$message === void 0 ? '' : _ref$message,
1959
+ var GoACheckbox = function GoACheckbox(_ref) {
1960
+ var _ref$checked = _ref.checked,
1961
+ checked = _ref$checked === void 0 ? false : _ref$checked,
2445
1962
  _ref$required = _ref.required,
2446
1963
  required = _ref$required === void 0 ? false : _ref$required,
2447
- _ref$helpText = _ref.helpText,
2448
- helpText = _ref$helpText === void 0 ? '' : _ref$helpText,
2449
- _ref$multiLine = _ref.multiLine,
2450
- multiLine = _ref$multiLine === void 0 ? false : _ref$multiLine,
2451
- _ref$navigator = _ref.navigator,
2452
- navigator = _ref$navigator === void 0 ? false : _ref$navigator,
2453
- onChange = _ref.onChange;
2454
-
2455
- var _useState = React.useState(true),
2456
- _useState2 = _slicedToArray(_useState, 2),
2457
- valid = _useState2[0],
2458
- setValid = _useState2[1];
2459
-
2460
- var _useState3 = React.useState(''),
2461
- _useState4 = _slicedToArray(_useState3, 2),
2462
- value = _useState4[0],
2463
- setValue = _useState4[1];
1964
+ _ref$disabled = _ref.disabled,
1965
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1966
+ _ref$indeterminate = _ref.indeterminate,
1967
+ indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
1968
+ _ref$labelPosition = _ref.labelPosition,
1969
+ labelPosition = _ref$labelPosition === void 0 ? 'before' : _ref$labelPosition,
1970
+ _ref$value = _ref.value,
1971
+ value = _ref$value === void 0 ? '' : _ref$value,
1972
+ content = _ref.content,
1973
+ children = _ref.children,
1974
+ selectionChange = _ref.selectionChange;
2464
1975
 
2465
- var handleInput = function handleInput(e) {
2466
- var value = e.target.value;
2467
- setValue(value);
1976
+ var hasError = function hasError() {
1977
+ return required && !checked;
1978
+ };
2468
1979
 
2469
- if (validate) {
2470
- setValid(validate(value));
2471
- }
1980
+ var rootCss = function rootCss() {
1981
+ return classnames({
1982
+ 'goa-checkbox': true,
1983
+ 'goa-checkbox-disabled': disabled,
1984
+ 'has-error': hasError(),
1985
+ 'goa-checkbox-label-before': labelPosition === 'before'
1986
+ });
1987
+ };
2472
1988
 
2473
- onChange(value);
1989
+ var checkboxCss = function checkboxCss() {
1990
+ return classnames({
1991
+ 'goa-checkbox-container': true,
1992
+ 'goa-checkbox-selected': !indeterminate && checked,
1993
+ 'goa-checkbox-indeterminate': indeterminate && checked
1994
+ });
2474
1995
  };
2475
1996
 
2476
- var inputFieldClass = !message ? 'goa-input-field' : !navigator ? 'goa-input-field-error' : 'goa-input-highlight-error';
2477
- return /*#__PURE__*/React__default.createElement("div", null, multiLine ? /*#__PURE__*/React__default.createElement("textarea", {
2478
- placeholder: name,
2479
- onChange: handleInput,
2480
- className: inputFieldClass
2481
- }, value) : /*#__PURE__*/React__default.createElement("input", {
2482
- type: type,
1997
+ return /*#__PURE__*/React__default.createElement("div", {
1998
+ className: rootCss()
1999
+ }, /*#__PURE__*/React__default.createElement("label", {
2000
+ className: "goa-checkbox-layout"
2001
+ }, /*#__PURE__*/React__default.createElement("div", {
2002
+ className: checkboxCss()
2003
+ }, /*#__PURE__*/React__default.createElement("input", {
2004
+ type: "checkbox",
2005
+ checked: checked,
2006
+ disabled: disabled,
2483
2007
  required: required,
2484
- name: name,
2485
2008
  value: value,
2486
- onChange: handleInput,
2487
- className: inputFieldClass,
2488
- placeholder: name
2489
- }), message && /*#__PURE__*/React__default.createElement("p", {
2490
- className: "goa-input-error-message"
2491
- }, message), helpText && /*#__PURE__*/React__default.createElement("p", {
2492
- className: "goa-input-help-text-message"
2493
- }, helpText));
2494
- };
2495
- GoAInput.propTypes = {
2496
- validate: propTypes.func,
2497
- name: propTypes.string,
2498
- type: propTypes.string,
2499
- message: propTypes.string,
2500
- required: propTypes.bool,
2501
- helpText: propTypes.string,
2502
- multiLine: propTypes.bool,
2503
- navigator: propTypes.bool,
2504
- onChange: propTypes.func
2009
+ onChange: function onChange(e) {
2010
+ return selectionChange(e.target.checked);
2011
+ }
2012
+ }), indeterminate && checked && /*#__PURE__*/React__default.createElement("svg", {
2013
+ id: "dashmark",
2014
+ xmlns: "http://www.w3.org/2000/svg",
2015
+ viewBox: "0 0 15 2",
2016
+ className: "goa-indeterminate"
2017
+ }, /*#__PURE__*/React__default.createElement("rect", {
2018
+ width: "15",
2019
+ height: "2"
2020
+ })), !indeterminate && checked && /*#__PURE__*/React__default.createElement("svg", {
2021
+ id: "checkmark",
2022
+ xmlns: "http://www.w3.org/2000/svg",
2023
+ viewBox: "0 0 16 12.18",
2024
+ className: "goa-checkmark"
2025
+ }, /*#__PURE__*/React__default.createElement("path", {
2026
+ d: "M5.09,9.64,1.27,5.82,0,7.09l5.09,5.09L16,1.27,14.73,0Z"
2027
+ }))), /*#__PURE__*/React__default.createElement("span", {
2028
+ className: "goa-checkbox-label"
2029
+ }, content || children)));
2505
2030
  };
2506
2031
 
2507
- 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";
2508
- styleInject(css_248z$k);
2509
-
2510
- 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";
2511
- styleInject(css_248z$l);
2512
-
2513
- 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";
2514
- styleInject(css_248z$m);
2032
+ 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";
2033
+ styleInject(css_248z$g);
2515
2034
 
2516
2035
  var GoAPageLoader = function GoAPageLoader(_ref) {
2517
2036
  var _ref$type = _ref.type,
@@ -2610,75 +2129,86 @@
2610
2129
  displayType: propTypes.string
2611
2130
  };
2612
2131
 
2613
- 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";
2614
- styleInject(css_248z$n);
2615
-
2616
- var GoASkeletonElement = function GoASkeletonElement(_ref) {
2617
- var _ref$type = _ref.type,
2618
- type = _ref$type === void 0 ? 'text' : _ref$type;
2619
- var classes = "skeleton ".concat(type);
2620
- return /*#__PURE__*/React__default.createElement("div", {
2621
- className: classes
2622
- });
2623
- };
2132
+ 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";
2133
+ styleInject(css_248z$h);
2624
2134
 
2625
- var GoASkeletonContent = function GoASkeletonContent(_ref) {
2626
- var _ref$rows = _ref.rows,
2627
- rows = _ref$rows === void 0 ? 1 : _ref$rows;
2628
- var elements = [];
2135
+ var GoAElementLoader = function GoAElementLoader(_ref) {
2136
+ var _ref$visible = _ref.visible,
2137
+ visible = _ref$visible === void 0 ? false : _ref$visible,
2138
+ _ref$baseColour = _ref.baseColour,
2139
+ baseColour = _ref$baseColour === void 0 ? '#c8eef9' : _ref$baseColour,
2140
+ _ref$spinnerColour = _ref.spinnerColour,
2141
+ spinnerColour = _ref$spinnerColour === void 0 ? '#0070c4' : _ref$spinnerColour,
2142
+ _ref$size = _ref.size,
2143
+ size = _ref$size === void 0 ? 'default' : _ref$size;
2144
+ var radius = size === 'small' ? 16 : 18;
2145
+ var diameter = radius * 2;
2146
+ var boxView = "0 0 ".concat(diameter, " ").concat(diameter);
2147
+ /**
2148
+ * Generates the value for an SVG arc.
2149
+ * @param current Current value.
2150
+ * @param total Maximum value.
2151
+ * @param pathRadius Radius of the SVG path.
2152
+ * @param elementRadius Radius of the SVG container.
2153
+ * @param isSemicircle Whether the element should be a semicircle.
2154
+ */
2629
2155
 
2630
- for (var i = 0; i < rows; i++) {
2631
- elements.push( /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
2632
- type: "text"
2633
- }));
2634
- }
2156
+ function getArc(current, total, pathRadius, elementRadius) {
2157
+ var isSemicircle = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
2158
+ var value = Math.max(0, Math.min(current || 0, total));
2159
+ var maxAngle = isSemicircle ? 180 : 359.9999;
2160
+ var percentage = total === 0 ? maxAngle : value / total * maxAngle;
2635
2161
 
2636
- return /*#__PURE__*/React__default.createElement("div", {
2637
- className: "skeleton-content"
2638
- }, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
2639
- type: "title"
2640
- }), elements));
2641
- };
2162
+ var start = _polarToCartesian(elementRadius, pathRadius, percentage);
2642
2163
 
2643
- var GoASkeletonGridColumnContent = function GoASkeletonGridColumnContent(_ref) {
2644
- var _ref$rows = _ref.rows,
2645
- rows = _ref$rows === void 0 ? 1 : _ref$rows;
2646
- var elements = [];
2164
+ var end = _polarToCartesian(elementRadius, pathRadius, 0);
2647
2165
 
2648
- for (var i = 0; i < rows; i++) {
2649
- elements.push( /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
2650
- type: "text"
2651
- }));
2166
+ var arcSweep = percentage <= 180 ? 0 : 1;
2167
+ return "M ".concat(start, " A ").concat(pathRadius, " ").concat(pathRadius, " 0 ").concat(arcSweep, " 0 ").concat(end);
2652
2168
  }
2653
2169
 
2654
- return /*#__PURE__*/React__default.createElement("div", {
2655
- className: "skeleton-content"
2656
- }, /*#__PURE__*/React__default.createElement("div", null, elements));
2657
- };
2658
-
2659
- var GoASkeletonImageContent = function GoASkeletonImageContent(_ref) {
2660
- var _ref$rows = _ref.rows,
2661
- rows = _ref$rows === void 0 ? 1 : _ref$rows;
2662
- var elements = [];
2170
+ var DEGREE_IN_RADIANS = Math.PI / 180;
2171
+ /**
2172
+ * Converts polar cooradinates to Cartesian.
2173
+ * @param elementRadius Radius of the wrapper element.
2174
+ * @param pathRadius Radius of the path being described.
2175
+ * @param angleInDegrees Degree to be converted.
2176
+ */
2663
2177
 
2664
- for (var i = 0; i < rows; i++) {
2665
- elements.push( /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
2666
- type: "text"
2667
- }));
2178
+ function _polarToCartesian(elementRadius, pathRadius, angleInDegrees) {
2179
+ var angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;
2180
+ var x = elementRadius + pathRadius * Math.cos(angleInRadians);
2181
+ var y = elementRadius + pathRadius * Math.sin(angleInRadians);
2182
+ return x + ' ' + y;
2668
2183
  }
2669
2184
 
2670
- return /*#__PURE__*/React__default.createElement("div", {
2671
- className: "skeleton-image-content"
2672
- }, /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
2673
- type: "thumbnail"
2674
- }), /*#__PURE__*/React__default.createElement("div", {
2675
- className: "skeleton-image-content__text"
2676
- }, /*#__PURE__*/React__default.createElement(GoASkeletonElement, {
2677
- type: "title"
2678
- }), elements));
2185
+ return visible && /*#__PURE__*/React__default.createElement("svg", {
2186
+ className: "circular-loader",
2187
+ fill: "none",
2188
+ viewBox: boxView,
2189
+ width: radius,
2190
+ height: radius,
2191
+ xmlns: "http://www.w3.org/2000/svg"
2192
+ }, /*#__PURE__*/React__default.createElement("circle", {
2193
+ cx: radius,
2194
+ cy: radius,
2195
+ stroke: baseColour,
2196
+ strokeWidth: "7",
2197
+ r: radius - 4
2198
+ }), /*#__PURE__*/React__default.createElement("path", {
2199
+ d: getArc(75, 100, radius - 4, radius, false),
2200
+ strokeWidth: "7",
2201
+ stroke: spinnerColour,
2202
+ strokeLinecap: "round"
2203
+ }));
2204
+ };
2205
+ GoAElementLoader.propTypes = {
2206
+ visible: propTypes.bool,
2207
+ baseColour: propTypes.string,
2208
+ spinnerColour: propTypes.string,
2209
+ size: propTypes.number
2679
2210
  };
2680
2211
 
2681
- exports.GoABadge = GoABadge;
2682
2212
  exports.GoAButton = GoAButton;
2683
2213
  exports.GoACallout = GoACallout;
2684
2214
  exports.GoACard = GoACard;
@@ -2686,15 +2216,10 @@
2686
2216
  exports.GoACheckbox = GoACheckbox;
2687
2217
  exports.GoADropdown = GoADropdown;
2688
2218
  exports.GoAElementLoader = GoAElementLoader;
2689
- exports.GoAForm = GoAForm;
2690
- exports.GoAFormButton = GoAFormButton;
2691
- exports.GoAFormContainer = GoAFormContainer;
2692
- exports.GoAFormItem = GoAFormItem;
2693
2219
  exports.GoAHeader = GoAHeader;
2694
2220
  exports.GoAHeroBanner = GoAHeroBanner;
2695
2221
  exports.GoAHeroBannerContent = GoAHeroBannerContent;
2696
2222
  exports.GoAHeroBannerLink = GoAHeroBannerLink;
2697
- exports.GoAInput = GoAInput;
2698
2223
  exports.GoAMicrositeLogo = MicrositeLogo;
2699
2224
  exports.GoANotification = GoANotification;
2700
2225
  exports.GoAOption = GoAOption;