no-frills-ui 0.0.14-alpha.7 → 0.0.14-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +2 -3
  2. package/dist/index.js +926 -795
  3. package/dist/index.js.map +1 -1
  4. package/lib-esm/components/Accordion/Accordion.d.ts +9 -13
  5. package/lib-esm/components/Accordion/Accordion.js +4 -10
  6. package/lib-esm/components/Accordion/Accordion.js.map +1 -0
  7. package/lib-esm/components/Accordion/AccordionStep.d.ts +22 -22
  8. package/lib-esm/components/Accordion/AccordionStep.js +41 -35
  9. package/lib-esm/components/Accordion/AccordionStep.js.map +1 -0
  10. package/lib-esm/components/Badge/Badge.d.ts +13 -16
  11. package/lib-esm/components/Badge/Badge.js +12 -21
  12. package/lib-esm/components/Badge/Badge.js.map +1 -0
  13. package/lib-esm/components/Button/ActionButton.d.ts +9 -5
  14. package/lib-esm/components/Button/ActionButton.js +20 -4
  15. package/lib-esm/components/Button/ActionButton.js.map +1 -0
  16. package/lib-esm/components/Button/Button.d.ts +9 -5
  17. package/lib-esm/components/Button/Button.js +19 -6
  18. package/lib-esm/components/Button/Button.js.map +1 -0
  19. package/lib-esm/components/Button/IconButton.d.ts +9 -5
  20. package/lib-esm/components/Button/IconButton.js +20 -4
  21. package/lib-esm/components/Button/IconButton.js.map +1 -0
  22. package/lib-esm/components/Button/LinkButton.d.ts +9 -5
  23. package/lib-esm/components/Button/LinkButton.js +20 -4
  24. package/lib-esm/components/Button/LinkButton.js.map +1 -0
  25. package/lib-esm/components/Button/RaisedButton.d.ts +9 -5
  26. package/lib-esm/components/Button/RaisedButton.js +20 -4
  27. package/lib-esm/components/Button/RaisedButton.js.map +1 -0
  28. package/lib-esm/components/Card/Card.d.ts +4 -6
  29. package/lib-esm/components/Card/Card.js +18 -4
  30. package/lib-esm/components/Card/Card.js.map +1 -0
  31. package/lib-esm/components/Chip/Chip.d.ts +2 -2
  32. package/lib-esm/components/Chip/Chip.js +17 -10
  33. package/lib-esm/components/Chip/Chip.js.map +1 -0
  34. package/lib-esm/components/ChipInput/ChipInput.d.ts +28 -39
  35. package/lib-esm/components/ChipInput/ChipInput.js +39 -39
  36. package/lib-esm/components/ChipInput/ChipInput.js.map +1 -0
  37. package/lib-esm/components/Dialog/AlertDialog.d.ts +11 -12
  38. package/lib-esm/components/Dialog/AlertDialog.js +5 -11
  39. package/lib-esm/components/Dialog/AlertDialog.js.map +1 -0
  40. package/lib-esm/components/Dialog/ConfirmDialog.d.ts +13 -14
  41. package/lib-esm/components/Dialog/ConfirmDialog.js +5 -12
  42. package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -0
  43. package/lib-esm/components/Dialog/Dialog.d.ts +8 -14
  44. package/lib-esm/components/Dialog/Dialog.js +13 -10
  45. package/lib-esm/components/Dialog/Dialog.js.map +1 -0
  46. package/lib-esm/components/Dialog/PromptDialog.d.ts +18 -19
  47. package/lib-esm/components/Dialog/PromptDialog.js +14 -21
  48. package/lib-esm/components/Dialog/PromptDialog.js.map +1 -0
  49. package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts +37 -59
  50. package/lib-esm/components/DragAndDrop/DragAndDrop.js +26 -28
  51. package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -0
  52. package/lib-esm/components/DragAndDrop/DragItem.d.ts +2 -2
  53. package/lib-esm/components/DragAndDrop/DragItem.js +43 -40
  54. package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -0
  55. package/lib-esm/components/DragAndDrop/types.d.ts +3 -3
  56. package/lib-esm/components/DragAndDrop/types.js +1 -0
  57. package/lib-esm/components/DragAndDrop/types.js.map +1 -0
  58. package/lib-esm/components/Drawer/Drawer.d.ts +24 -31
  59. package/lib-esm/components/Drawer/Drawer.js +50 -45
  60. package/lib-esm/components/Drawer/Drawer.js.map +1 -0
  61. package/lib-esm/components/Groups/Group.d.ts +6 -8
  62. package/lib-esm/components/Groups/Group.js +15 -12
  63. package/lib-esm/components/Groups/Group.js.map +1 -0
  64. package/lib-esm/components/Groups/GroupLabel.js +2 -1
  65. package/lib-esm/components/Groups/GroupLabel.js.map +1 -0
  66. package/lib-esm/components/Input/Checkbox.d.ts +12 -15
  67. package/lib-esm/components/Input/Checkbox.js +34 -29
  68. package/lib-esm/components/Input/Checkbox.js.map +1 -0
  69. package/lib-esm/components/Input/Dropdown.d.ts +8 -18
  70. package/lib-esm/components/Input/Dropdown.js +44 -18
  71. package/lib-esm/components/Input/Dropdown.js.map +1 -0
  72. package/lib-esm/components/Input/Input.d.ts +8 -3
  73. package/lib-esm/components/Input/Input.js +24 -22
  74. package/lib-esm/components/Input/Input.js.map +1 -0
  75. package/lib-esm/components/Input/Radio.d.ts +4 -8
  76. package/lib-esm/components/Input/Radio.js +20 -16
  77. package/lib-esm/components/Input/Radio.js.map +1 -0
  78. package/lib-esm/components/Input/RadioButton.d.ts +4 -8
  79. package/lib-esm/components/Input/RadioButton.js +19 -15
  80. package/lib-esm/components/Input/RadioButton.js.map +1 -0
  81. package/lib-esm/components/Input/Select.d.ts +6 -13
  82. package/lib-esm/components/Input/Select.js +26 -22
  83. package/lib-esm/components/Input/Select.js.map +1 -0
  84. package/lib-esm/components/Input/TextArea.d.ts +6 -13
  85. package/lib-esm/components/Input/TextArea.js +33 -27
  86. package/lib-esm/components/Input/TextArea.js.map +1 -0
  87. package/lib-esm/components/Input/Toggle.d.ts +4 -9
  88. package/lib-esm/components/Input/Toggle.js +15 -12
  89. package/lib-esm/components/Input/Toggle.js.map +1 -0
  90. package/lib-esm/components/Menu/Menu.d.ts +4 -14
  91. package/lib-esm/components/Menu/Menu.js +26 -17
  92. package/lib-esm/components/Menu/Menu.js.map +1 -0
  93. package/lib-esm/components/Menu/MenuContext.d.ts +4 -4
  94. package/lib-esm/components/Menu/MenuContext.js +2 -0
  95. package/lib-esm/components/Menu/MenuContext.js.map +1 -0
  96. package/lib-esm/components/Menu/MenuItem.d.ts +10 -4
  97. package/lib-esm/components/Menu/MenuItem.js +21 -6
  98. package/lib-esm/components/Menu/MenuItem.js.map +1 -0
  99. package/lib-esm/components/Modal/Modal.d.ts +17 -23
  100. package/lib-esm/components/Modal/Modal.js +38 -34
  101. package/lib-esm/components/Modal/Modal.js.map +1 -0
  102. package/lib-esm/components/Notification/Notification.d.ts +39 -34
  103. package/lib-esm/components/Notification/Notification.js +17 -39
  104. package/lib-esm/components/Notification/Notification.js.map +1 -0
  105. package/lib-esm/components/Notification/NotificationManager.d.ts +4 -4
  106. package/lib-esm/components/Notification/NotificationManager.js +19 -14
  107. package/lib-esm/components/Notification/NotificationManager.js.map +1 -0
  108. package/lib-esm/components/Notification/index.d.ts +1 -0
  109. package/lib-esm/components/Notification/style.d.ts +2 -3
  110. package/lib-esm/components/Notification/style.js +21 -20
  111. package/lib-esm/components/Notification/style.js.map +1 -0
  112. package/lib-esm/components/Notification/types.js +1 -0
  113. package/lib-esm/components/Notification/types.js.map +1 -0
  114. package/lib-esm/components/Popover/Popover.d.ts +21 -20
  115. package/lib-esm/components/Popover/Popover.js +44 -45
  116. package/lib-esm/components/Popover/Popover.js.map +1 -0
  117. package/lib-esm/components/Spinner/Spinner.d.ts +14 -15
  118. package/lib-esm/components/Spinner/Spinner.js +14 -14
  119. package/lib-esm/components/Spinner/Spinner.js.map +1 -0
  120. package/lib-esm/components/Stepper/Step.d.ts +15 -12
  121. package/lib-esm/components/Stepper/Step.js +12 -9
  122. package/lib-esm/components/Stepper/Step.js.map +1 -0
  123. package/lib-esm/components/Stepper/Stepper.d.ts +11 -17
  124. package/lib-esm/components/Stepper/Stepper.js +30 -27
  125. package/lib-esm/components/Stepper/Stepper.js.map +1 -0
  126. package/lib-esm/components/Tabs/Tab.d.ts +10 -16
  127. package/lib-esm/components/Tabs/Tab.js +1 -8
  128. package/lib-esm/components/Tabs/Tab.js.map +1 -0
  129. package/lib-esm/components/Tabs/Tabs.d.ts +11 -22
  130. package/lib-esm/components/Tabs/Tabs.js +43 -34
  131. package/lib-esm/components/Tabs/Tabs.js.map +1 -0
  132. package/lib-esm/components/Toast/Toast.d.ts +7 -7
  133. package/lib-esm/components/Toast/Toast.js +17 -15
  134. package/lib-esm/components/Toast/Toast.js.map +1 -0
  135. package/lib-esm/components/Toast/ToastStory.d.ts +21 -24
  136. package/lib-esm/components/Tooltip/Tooltip.d.ts +11 -14
  137. package/lib-esm/components/Tooltip/Tooltip.js +14 -23
  138. package/lib-esm/components/Tooltip/Tooltip.js.map +1 -0
  139. package/lib-esm/icons/CheckCircle.js +3 -2
  140. package/lib-esm/icons/CheckCircle.js.map +1 -0
  141. package/lib-esm/icons/Close.js +1 -0
  142. package/lib-esm/icons/Close.js.map +1 -0
  143. package/lib-esm/icons/DragIndicator.js +1 -0
  144. package/lib-esm/icons/DragIndicator.js.map +1 -0
  145. package/lib-esm/icons/ErrorOutline.js +3 -2
  146. package/lib-esm/icons/ErrorOutline.js.map +1 -0
  147. package/lib-esm/icons/ExpandMore.js +1 -0
  148. package/lib-esm/icons/ExpandMore.js.map +1 -0
  149. package/lib-esm/icons/FiberManualRecord.js +1 -0
  150. package/lib-esm/icons/FiberManualRecord.js.map +1 -0
  151. package/lib-esm/icons/Info.js +3 -2
  152. package/lib-esm/icons/Info.js.map +1 -0
  153. package/lib-esm/icons/ReportProblem.js +3 -2
  154. package/lib-esm/icons/ReportProblem.js.map +1 -0
  155. package/lib-esm/index.js +43 -0
  156. package/lib-esm/index.js.map +1 -0
  157. package/lib-esm/shared/LayerManager.d.ts +5 -4
  158. package/lib-esm/shared/LayerManager.js +125 -112
  159. package/lib-esm/shared/LayerManager.js.map +1 -0
  160. package/lib-esm/shared/constants.js +1 -0
  161. package/lib-esm/shared/constants.js.map +1 -0
  162. package/lib-esm/shared/styles.js +9 -8
  163. package/lib-esm/shared/styles.js.map +1 -0
  164. package/package.json +66 -31
  165. package/lib-esm/components/index.js +0 -42
@@ -1,6 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from '@emotion/react/jsx-runtime';
2
- import React, { useState, useId, useEffect } from 'react';
3
- import PropTypes from 'prop-types';
2
+ import React, { useState, useId, useImperativeHandle, useEffect } from 'react';
4
3
  import styled from '@emotion/styled';
5
4
  import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
6
5
  import Chip from '../Chip/Chip.js';
@@ -8,8 +7,8 @@ import DragAndDrop from '../DragAndDrop/DragAndDrop.js';
8
7
  import { ORIENTATION } from '../DragAndDrop/types.js';
9
8
 
10
9
  // Label component for the ChipInput
11
- const Label = /*#__PURE__*/ styled("label", {
12
- target: "ey9yju70",
10
+ const Label$6 = /*#__PURE__*/ styled("label", {
11
+ target: "e12jan4z0",
13
12
  label: "Label"
14
13
  })("display:inline-flex;flex-direction:column;flex:1;position:relative;margin:10px 5px;color:inherit;padding:0 8px;width:250px;border-radius:3px;border:1px solid ", getThemeValue(THEME_NAME.BORDER_COLOR), ";background-color:", getThemeValue(THEME_NAME.BACKGROUND), ";&:has(:focus),&:has(:active){border-color:", getThemeValue(THEME_NAME.PRIMARY), ";box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:has(:focus) > span,&:has(:active) > span{color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:has(:disabled){border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";background-color:", getThemeValue(THEME_NAME.DISABLED_BACKGROUND), ";}&:has(:disabled) > span{color:", getThemeValue(THEME_NAME.DISABLED), ";}&:has(:focus:invalid){border-color:", getThemeValue(THEME_NAME.ERROR), ";box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.ERROR_LIGHT), ";}", (props)=>props.touched ? `
15
14
  &:has(:invalid) {
@@ -25,24 +24,28 @@ const Label = /*#__PURE__*/ styled("label", {
25
24
  & > span {
26
25
  color: ${getThemeValue(THEME_NAME.ERROR)};
27
26
  }
28
- ` : '', " \n &:has(:required) > span:after{content:'*';margin-left:2px;color:", getThemeValue(THEME_NAME.ERROR), ";}& > input{border:none;outline:none;line-height:30px;min-height:30px;max-width:95%;}& > span{position:absolute;padding:0 5px;top:0px;left:4px;font-size:14px;line-height:32px;transition:all 300ms ease;}&:has(:focus) > span,&:has(:placeholder-shown) > span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}", (props)=>props.text !== '' ? `
27
+ ` : '', " \n ", (props)=>props.required ? `& > span:after {
28
+ content: '*';
29
+ margin-left: 2px;
30
+ color: ${getThemeValue(THEME_NAME.ERROR)};
31
+ }` : '', " \n\n & > input{border:none;outline:none;line-height:30px;min-height:30px;max-width:95%;}& > span{position:absolute;padding:0 5px;top:0px;left:4px;font-size:14px;line-height:32px;transition:all 300ms ease;}&:has(:focus) > span,&:has(:placeholder-shown) > span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}", (props)=>props.text !== '' ? `
29
32
  & > span {
30
33
  top: -8px;
31
34
  background: ${getThemeValue(THEME_NAME.BACKGROUND)};
32
35
  font-size: 12px;
33
36
  line-height: 14px;
34
37
  }
35
- ` : '', "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZ2V0VGhlbWVWYWx1ZSwgVEhFTUVfTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IENoaXAgZnJvbSAnLi4vQ2hpcC9DaGlwJztcbmltcG9ydCB7IERyYWdBbmREcm9wLCBPUklFTlRBVElPTiB9IGZyb20gJy4uL0RyYWdBbmREcm9wJztcblxuLy8gUHJvcCB0eXBlcyBkZWZpbml0aW9uXG50eXBlIENoaXBJbnB1dFByb3BzID0gUHJvcFR5cGVzLkluZmVyUHJvcHM8dHlwZW9mIENoaXBJbnB1dC5wcm9wVHlwZXM+O1xuXG4vLyBMYWJlbCBjb21wb25lbnQgZm9yIHRoZSBDaGlwSW5wdXRcbmNvbnN0IExhYmVsID0gc3R5bGVkLmxhYmVsPHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdG91Y2hlZD86IGJvb2xlYW47XG4gICAgZXJyb3JUZXh0Pzogc3RyaW5nO1xufT5gXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0NPTE9SKX07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuXG4gICAgLyoqIEZvY3VzZWQgKi9cbiAgICAmOmhhcyg6Zm9jdXMpLFxuICAgICY6aGFzKDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOmFjdGl2ZSkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiogRGlzYWJsZWQgKi9cbiAgICAmOmhhcyg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5ESVNBQkxFRF9CT1JERVIpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQkFDS0dST1VORCl9O1xuICAgIH1cblxuICAgICY6aGFzKDpkaXNhYmxlZCkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG4gICAgfVxuXG4gICAgLyoqIEludmFsaWQgKi9cbiAgICAmOmhhcyg6Zm9jdXM6aW52YWxpZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUl9MSUdIVCl9O1xuICAgIH1cblxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy50b3VjaGVkXG4gICAgICAgICAgICA/IGBcbiAgICAgICAgJjpoYXMoOmludmFsaWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRVJST1IpfTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhhcyg6aW52YWxpZCkgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogRXJyb3IgKi9cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMuZXJyb3JUZXh0XG4gICAgICAgICAgICA/IGBcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogUmVxdWlyZWQgKi9cbiAgICAmOmhhcyg6cmVxdWlyZWQpID4gc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgfVxuXG4gICAgJiA+IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgfVxuXG4gICAgLyoqIExhYmVsIEFuaW1hdGlvbiAqL1xuICAgICYgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOnBsYWNlaG9sZGVyLXNob3duKSA+IHNwYW4ge1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tHUk9VTkQpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMudGV4dCAhPT0gJydcbiAgICAgICAgICAgID8gYFxuICAgICYgPiBzcGFuIHtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5CQUNLR1JPVU5EKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgfVxuICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5gO1xuXG4vLyBFcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuY29uc3QgRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG5gO1xuXG4vLyBWaXN1YWxseSBoaWRkZW4gYnV0IGFjY2Vzc2libGUgdG8gc2NyZWVuIHJlYWRlcnNcbmNvbnN0IFZpc3VhbGx5SGlkZGVuID0gc3R5bGVkLnVsYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbmA7XG5cbi8qKlxuICogQSBjaGlwIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBhZGQgYW5kIHJlbW92ZSBjaGlwcyAodGFncykgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlci5cbiAqIEBjb21wb25lbnRcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxDaGlwSW5wdXRcbiAqICAgdmFsdWU9e1sndGFnMScsICd0YWcyJ119XG4gKiAgIG9uQ2hhbmdlPXsobmV3VGFncykgPT4gY29uc29sZS5sb2cobmV3VGFncyl9XG4gKiAgIGxhYmVsPVwiQWRkIHRhZ3NcIlxuICogICBlcnJvclRleHQ9XCJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2hpcElucHV0KFxuICAgIHByb3BzOiBDaGlwSW5wdXRQcm9wcyAmIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuKSB7XG4gICAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihwcm9wcy52YWx1ZSB8fCBbXSk7XG4gICAgY29uc3QgSW5wdXRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2Fubm91bmNlbWVudCwgc2V0QW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBlcnJvcklkID0gdXNlSWQoKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgezpsYWJlbH0gcGxhY2Vob2xkZXIgaW4gdGVtcGxhdGUgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgcmVwbGFjZVBsYWNlaG9sZGVyID0gKFxuICAgICAgICB0ZW1wbGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHs6bGFiZWxcXH0vZywgbGFiZWwpO1xuICAgIH07XG5cbiAgICAvLyBTeW5jIGludGVybmFsIHZhbHVlIHdpdGggcHJvcHMudmFsdWVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBjaGlwIHZhbHVlcyBhbmQgbm90aWZ5IGNoYW5nZXMuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXcgYXJyYXkgb2YgY2hpcCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IEFycmF5LmZyb20obmV3IFNldChuZXdWYWx1ZSkpO1xuICAgICAgICBzZXRWYWx1ZShkZWR1cGVkKTtcbiAgICAgICAgcHJvcHMub25DaGFuZ2U/LihkZWR1cGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgb24gZm9jdXMuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIHNldFRvdWNoZWQodHJ1ZSk7XG4gICAgICAgIGlmIChwcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBzZXRUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBjaGlwIG9uIEVudGVyIGtleSBwcmVzcy5cbiAgICAgKiBAcGFyYW0gZSBSZWFjdCBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleVVwOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiB0ZXh0LnRyaW0oKSAhPT0gJycgJiYgSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWUsIHRleHQudHJpbSgpXTtcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHNldFRleHQoJycpO1xuICAgICAgICAgICAgc2V0QW5ub3VuY2VtZW50KHJlcGxhY2VQbGFjZWhvbGRlcihwcm9wcy5hZGRlZEFubm91bmNlbWVudFRlbXBsYXRlLCB0ZXh0LnRyaW0oKSkhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpcCBmcm9tIHRoZSBsaXN0LlxuICAgICAqIEBwYXJhbSBjaGlwVG9SZW1vdmUgVGhlIGNoaXAgdmFsdWUgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgY29uc3QgcmVtb3ZlQ2hpcCA9IChjaGlwVG9SZW1vdmU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLmZpbHRlcigoY2hpcCkgPT4gY2hpcCAhPT0gY2hpcFRvUmVtb3ZlKTtcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBzZXRBbm5vdW5jZW1lbnQocmVwbGFjZVBsYWNlaG9sZGVyKHByb3BzLnJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwgY2hpcFRvUmVtb3ZlKSEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaXAgZnJvbSBvbmUgcG9zaXRpb24gdG8gYW5vdGhlci5cbiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBpdGVtIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmRpbmcgaW5kZXggd2hlcmUgdGhlIGl0ZW0gc2hvdWxkIGJlIHBsYWNlZFxuICAgICAqL1xuICAgIGNvbnN0IG9uRHJvcCA9IChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDbG9uZSBleGlzdGluZyBlbGVtZW50c1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi52YWx1ZV07XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCB0byBiZSBtb3ZlZFxuICAgICAgICBjb25zdCBpdGVtID0gbmV3SXRlbXMuc3BsaWNlKHN0YXJ0LCAxKTtcbiAgICAgICAgLy8gQWRkIGl0IGJhY2sgYXQgdGhlIHJlcXVpcmVkIHBvc2l0aW9uXG4gICAgICAgIG5ld0l0ZW1zLnNwbGljZShlbmQsIDAsIGl0ZW1bMF0pO1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3SXRlbXMpO1xuICAgIH07XG5cbiAgICAvLyBSZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TGFiZWwgdGV4dD17dGV4dH0gdG91Y2hlZD17dG91Y2hlZH0gZXJyb3JUZXh0PXtwcm9wcy5lcnJvclRleHR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwcm9wcy5yZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e3Byb3BzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhcHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtwcm9wcy5lcnJvclRleHQgPyBlcnJvcklkIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnQW5kRHJvcCBvcmllbnRhdGlvbj17T1JJRU5UQVRJT04uSE9SSVpPTlRBTH0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5tYXAoKGNoaXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZUNsaWNrPXsoKSA9PiByZW1vdmVDaGlwKGNoaXApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VCdXR0b25BcmlhTGFiZWw9e3JlcGxhY2VQbGFjZWhvbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ0FuZERyb3A+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuZXJyb3JUZXh0ICYmIDxFcnJvckNvbnRhaW5lciBpZD17ZXJyb3JJZH0+e3Byb3BzLmVycm9yVGV4dH08L0Vycm9yQ29udGFpbmVyPn1cbiAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW4gYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgICAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbkNoaXBJbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBFcnJvciBtZXNzYWdlIGZvciB0aGUgZmllbGQgKi9cbiAgICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIFZhbHVlcyB0byBkaXNwbGF5IGFzIGNoaXBzICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIC8qKiBDYWxsYmFjayB3aGVuIGNoaXBzIGNoYW5nZSAqL1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvbiBjaGlwLiBEZWZhdWx0cyB0byBcIlJlbW92ZSB7bGFiZWx9XCIgKi9cbiAgICBjbG9zZUJ1dHRvbkFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogQW5ub3VuY2VtZW50IHRleHQgd2hlbiBhIGNoaXAgaXMgYWRkZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgYWRkZWRcIiAqL1xuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIEFubm91bmNlbWVudCB0ZXh0IHdoZW4gYSBjaGlwIGlzIHJlbW92ZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgcmVtb3ZlZFwiICovXG4gICAgcmVtb3ZlZEFubm91bmNlbWVudFRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hpcElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICB2YWx1ZTogW10sXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdSZW1vdmUgezpsYWJlbH0nLFxuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6ICd7OmxhYmVsfSB3YXMgYWRkZWQnLFxuICAgIHJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZTogJ3s6bGFiZWx9IHdhcyByZW1vdmVkJyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV2MifQ== */");
38
+ ` : '');
36
39
  // Error message container
37
- const ErrorContainer = /*#__PURE__*/ styled("div", {
38
- target: "ey9yju71",
40
+ const ErrorContainer$4 = /*#__PURE__*/ styled("div", {
41
+ target: "e12jan4z1",
39
42
  label: "ErrorContainer"
40
- })("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZ2V0VGhlbWVWYWx1ZSwgVEhFTUVfTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IENoaXAgZnJvbSAnLi4vQ2hpcC9DaGlwJztcbmltcG9ydCB7IERyYWdBbmREcm9wLCBPUklFTlRBVElPTiB9IGZyb20gJy4uL0RyYWdBbmREcm9wJztcblxuLy8gUHJvcCB0eXBlcyBkZWZpbml0aW9uXG50eXBlIENoaXBJbnB1dFByb3BzID0gUHJvcFR5cGVzLkluZmVyUHJvcHM8dHlwZW9mIENoaXBJbnB1dC5wcm9wVHlwZXM+O1xuXG4vLyBMYWJlbCBjb21wb25lbnQgZm9yIHRoZSBDaGlwSW5wdXRcbmNvbnN0IExhYmVsID0gc3R5bGVkLmxhYmVsPHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdG91Y2hlZD86IGJvb2xlYW47XG4gICAgZXJyb3JUZXh0Pzogc3RyaW5nO1xufT5gXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0NPTE9SKX07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuXG4gICAgLyoqIEZvY3VzZWQgKi9cbiAgICAmOmhhcyg6Zm9jdXMpLFxuICAgICY6aGFzKDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOmFjdGl2ZSkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiogRGlzYWJsZWQgKi9cbiAgICAmOmhhcyg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5ESVNBQkxFRF9CT1JERVIpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQkFDS0dST1VORCl9O1xuICAgIH1cblxuICAgICY6aGFzKDpkaXNhYmxlZCkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG4gICAgfVxuXG4gICAgLyoqIEludmFsaWQgKi9cbiAgICAmOmhhcyg6Zm9jdXM6aW52YWxpZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUl9MSUdIVCl9O1xuICAgIH1cblxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy50b3VjaGVkXG4gICAgICAgICAgICA/IGBcbiAgICAgICAgJjpoYXMoOmludmFsaWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRVJST1IpfTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhhcyg6aW52YWxpZCkgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogRXJyb3IgKi9cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMuZXJyb3JUZXh0XG4gICAgICAgICAgICA/IGBcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogUmVxdWlyZWQgKi9cbiAgICAmOmhhcyg6cmVxdWlyZWQpID4gc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgfVxuXG4gICAgJiA+IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgfVxuXG4gICAgLyoqIExhYmVsIEFuaW1hdGlvbiAqL1xuICAgICYgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOnBsYWNlaG9sZGVyLXNob3duKSA+IHNwYW4ge1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tHUk9VTkQpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMudGV4dCAhPT0gJydcbiAgICAgICAgICAgID8gYFxuICAgICYgPiBzcGFuIHtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5CQUNLR1JPVU5EKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgfVxuICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5gO1xuXG4vLyBFcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuY29uc3QgRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG5gO1xuXG4vLyBWaXN1YWxseSBoaWRkZW4gYnV0IGFjY2Vzc2libGUgdG8gc2NyZWVuIHJlYWRlcnNcbmNvbnN0IFZpc3VhbGx5SGlkZGVuID0gc3R5bGVkLnVsYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbmA7XG5cbi8qKlxuICogQSBjaGlwIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBhZGQgYW5kIHJlbW92ZSBjaGlwcyAodGFncykgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlci5cbiAqIEBjb21wb25lbnRcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxDaGlwSW5wdXRcbiAqICAgdmFsdWU9e1sndGFnMScsICd0YWcyJ119XG4gKiAgIG9uQ2hhbmdlPXsobmV3VGFncykgPT4gY29uc29sZS5sb2cobmV3VGFncyl9XG4gKiAgIGxhYmVsPVwiQWRkIHRhZ3NcIlxuICogICBlcnJvclRleHQ9XCJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2hpcElucHV0KFxuICAgIHByb3BzOiBDaGlwSW5wdXRQcm9wcyAmIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuKSB7XG4gICAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihwcm9wcy52YWx1ZSB8fCBbXSk7XG4gICAgY29uc3QgSW5wdXRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2Fubm91bmNlbWVudCwgc2V0QW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBlcnJvcklkID0gdXNlSWQoKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgezpsYWJlbH0gcGxhY2Vob2xkZXIgaW4gdGVtcGxhdGUgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgcmVwbGFjZVBsYWNlaG9sZGVyID0gKFxuICAgICAgICB0ZW1wbGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHs6bGFiZWxcXH0vZywgbGFiZWwpO1xuICAgIH07XG5cbiAgICAvLyBTeW5jIGludGVybmFsIHZhbHVlIHdpdGggcHJvcHMudmFsdWVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBjaGlwIHZhbHVlcyBhbmQgbm90aWZ5IGNoYW5nZXMuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXcgYXJyYXkgb2YgY2hpcCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IEFycmF5LmZyb20obmV3IFNldChuZXdWYWx1ZSkpO1xuICAgICAgICBzZXRWYWx1ZShkZWR1cGVkKTtcbiAgICAgICAgcHJvcHMub25DaGFuZ2U/LihkZWR1cGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgb24gZm9jdXMuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIHNldFRvdWNoZWQodHJ1ZSk7XG4gICAgICAgIGlmIChwcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBzZXRUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBjaGlwIG9uIEVudGVyIGtleSBwcmVzcy5cbiAgICAgKiBAcGFyYW0gZSBSZWFjdCBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleVVwOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiB0ZXh0LnRyaW0oKSAhPT0gJycgJiYgSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWUsIHRleHQudHJpbSgpXTtcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHNldFRleHQoJycpO1xuICAgICAgICAgICAgc2V0QW5ub3VuY2VtZW50KHJlcGxhY2VQbGFjZWhvbGRlcihwcm9wcy5hZGRlZEFubm91bmNlbWVudFRlbXBsYXRlLCB0ZXh0LnRyaW0oKSkhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpcCBmcm9tIHRoZSBsaXN0LlxuICAgICAqIEBwYXJhbSBjaGlwVG9SZW1vdmUgVGhlIGNoaXAgdmFsdWUgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgY29uc3QgcmVtb3ZlQ2hpcCA9IChjaGlwVG9SZW1vdmU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLmZpbHRlcigoY2hpcCkgPT4gY2hpcCAhPT0gY2hpcFRvUmVtb3ZlKTtcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBzZXRBbm5vdW5jZW1lbnQocmVwbGFjZVBsYWNlaG9sZGVyKHByb3BzLnJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwgY2hpcFRvUmVtb3ZlKSEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaXAgZnJvbSBvbmUgcG9zaXRpb24gdG8gYW5vdGhlci5cbiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBpdGVtIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmRpbmcgaW5kZXggd2hlcmUgdGhlIGl0ZW0gc2hvdWxkIGJlIHBsYWNlZFxuICAgICAqL1xuICAgIGNvbnN0IG9uRHJvcCA9IChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDbG9uZSBleGlzdGluZyBlbGVtZW50c1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi52YWx1ZV07XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCB0byBiZSBtb3ZlZFxuICAgICAgICBjb25zdCBpdGVtID0gbmV3SXRlbXMuc3BsaWNlKHN0YXJ0LCAxKTtcbiAgICAgICAgLy8gQWRkIGl0IGJhY2sgYXQgdGhlIHJlcXVpcmVkIHBvc2l0aW9uXG4gICAgICAgIG5ld0l0ZW1zLnNwbGljZShlbmQsIDAsIGl0ZW1bMF0pO1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3SXRlbXMpO1xuICAgIH07XG5cbiAgICAvLyBSZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TGFiZWwgdGV4dD17dGV4dH0gdG91Y2hlZD17dG91Y2hlZH0gZXJyb3JUZXh0PXtwcm9wcy5lcnJvclRleHR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwcm9wcy5yZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e3Byb3BzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhcHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtwcm9wcy5lcnJvclRleHQgPyBlcnJvcklkIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnQW5kRHJvcCBvcmllbnRhdGlvbj17T1JJRU5UQVRJT04uSE9SSVpPTlRBTH0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5tYXAoKGNoaXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZUNsaWNrPXsoKSA9PiByZW1vdmVDaGlwKGNoaXApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VCdXR0b25BcmlhTGFiZWw9e3JlcGxhY2VQbGFjZWhvbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ0FuZERyb3A+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuZXJyb3JUZXh0ICYmIDxFcnJvckNvbnRhaW5lciBpZD17ZXJyb3JJZH0+e3Byb3BzLmVycm9yVGV4dH08L0Vycm9yQ29udGFpbmVyPn1cbiAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW4gYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgICAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbkNoaXBJbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBFcnJvciBtZXNzYWdlIGZvciB0aGUgZmllbGQgKi9cbiAgICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIFZhbHVlcyB0byBkaXNwbGF5IGFzIGNoaXBzICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIC8qKiBDYWxsYmFjayB3aGVuIGNoaXBzIGNoYW5nZSAqL1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvbiBjaGlwLiBEZWZhdWx0cyB0byBcIlJlbW92ZSB7bGFiZWx9XCIgKi9cbiAgICBjbG9zZUJ1dHRvbkFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogQW5ub3VuY2VtZW50IHRleHQgd2hlbiBhIGNoaXAgaXMgYWRkZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgYWRkZWRcIiAqL1xuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIEFubm91bmNlbWVudCB0ZXh0IHdoZW4gYSBjaGlwIGlzIHJlbW92ZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgcmVtb3ZlZFwiICovXG4gICAgcmVtb3ZlZEFubm91bmNlbWVudFRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hpcElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICB2YWx1ZTogW10sXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdSZW1vdmUgezpsYWJlbH0nLFxuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6ICd7OmxhYmVsfSB3YXMgYWRkZWQnLFxuICAgIHJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZTogJ3s6bGFiZWx9IHdhcyByZW1vdmVkJyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUl1QiJ9 */");
43
+ })("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;");
41
44
  // Visually hidden but accessible to screen readers
42
- const VisuallyHidden = /*#__PURE__*/ styled("ul", {
43
- target: "ey9yju72",
45
+ const VisuallyHidden$1 = /*#__PURE__*/ styled("ul", {
46
+ target: "e12jan4z2",
44
47
  label: "VisuallyHidden"
45
- })("position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;& li{list-style:none;}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZ2V0VGhlbWVWYWx1ZSwgVEhFTUVfTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IENoaXAgZnJvbSAnLi4vQ2hpcC9DaGlwJztcbmltcG9ydCB7IERyYWdBbmREcm9wLCBPUklFTlRBVElPTiB9IGZyb20gJy4uL0RyYWdBbmREcm9wJztcblxuLy8gUHJvcCB0eXBlcyBkZWZpbml0aW9uXG50eXBlIENoaXBJbnB1dFByb3BzID0gUHJvcFR5cGVzLkluZmVyUHJvcHM8dHlwZW9mIENoaXBJbnB1dC5wcm9wVHlwZXM+O1xuXG4vLyBMYWJlbCBjb21wb25lbnQgZm9yIHRoZSBDaGlwSW5wdXRcbmNvbnN0IExhYmVsID0gc3R5bGVkLmxhYmVsPHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdG91Y2hlZD86IGJvb2xlYW47XG4gICAgZXJyb3JUZXh0Pzogc3RyaW5nO1xufT5gXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0NPTE9SKX07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuXG4gICAgLyoqIEZvY3VzZWQgKi9cbiAgICAmOmhhcyg6Zm9jdXMpLFxuICAgICY6aGFzKDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOmFjdGl2ZSkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiogRGlzYWJsZWQgKi9cbiAgICAmOmhhcyg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5ESVNBQkxFRF9CT1JERVIpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQkFDS0dST1VORCl9O1xuICAgIH1cblxuICAgICY6aGFzKDpkaXNhYmxlZCkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG4gICAgfVxuXG4gICAgLyoqIEludmFsaWQgKi9cbiAgICAmOmhhcyg6Zm9jdXM6aW52YWxpZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUl9MSUdIVCl9O1xuICAgIH1cblxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy50b3VjaGVkXG4gICAgICAgICAgICA/IGBcbiAgICAgICAgJjpoYXMoOmludmFsaWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRVJST1IpfTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhhcyg6aW52YWxpZCkgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogRXJyb3IgKi9cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMuZXJyb3JUZXh0XG4gICAgICAgICAgICA/IGBcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogUmVxdWlyZWQgKi9cbiAgICAmOmhhcyg6cmVxdWlyZWQpID4gc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgfVxuXG4gICAgJiA+IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgfVxuXG4gICAgLyoqIExhYmVsIEFuaW1hdGlvbiAqL1xuICAgICYgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOnBsYWNlaG9sZGVyLXNob3duKSA+IHNwYW4ge1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tHUk9VTkQpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMudGV4dCAhPT0gJydcbiAgICAgICAgICAgID8gYFxuICAgICYgPiBzcGFuIHtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5CQUNLR1JPVU5EKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgfVxuICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5gO1xuXG4vLyBFcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuY29uc3QgRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG5gO1xuXG4vLyBWaXN1YWxseSBoaWRkZW4gYnV0IGFjY2Vzc2libGUgdG8gc2NyZWVuIHJlYWRlcnNcbmNvbnN0IFZpc3VhbGx5SGlkZGVuID0gc3R5bGVkLnVsYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbmA7XG5cbi8qKlxuICogQSBjaGlwIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBhZGQgYW5kIHJlbW92ZSBjaGlwcyAodGFncykgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlci5cbiAqIEBjb21wb25lbnRcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxDaGlwSW5wdXRcbiAqICAgdmFsdWU9e1sndGFnMScsICd0YWcyJ119XG4gKiAgIG9uQ2hhbmdlPXsobmV3VGFncykgPT4gY29uc29sZS5sb2cobmV3VGFncyl9XG4gKiAgIGxhYmVsPVwiQWRkIHRhZ3NcIlxuICogICBlcnJvclRleHQ9XCJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2hpcElucHV0KFxuICAgIHByb3BzOiBDaGlwSW5wdXRQcm9wcyAmIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuKSB7XG4gICAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihwcm9wcy52YWx1ZSB8fCBbXSk7XG4gICAgY29uc3QgSW5wdXRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2Fubm91bmNlbWVudCwgc2V0QW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBlcnJvcklkID0gdXNlSWQoKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgezpsYWJlbH0gcGxhY2Vob2xkZXIgaW4gdGVtcGxhdGUgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgcmVwbGFjZVBsYWNlaG9sZGVyID0gKFxuICAgICAgICB0ZW1wbGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHs6bGFiZWxcXH0vZywgbGFiZWwpO1xuICAgIH07XG5cbiAgICAvLyBTeW5jIGludGVybmFsIHZhbHVlIHdpdGggcHJvcHMudmFsdWVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBjaGlwIHZhbHVlcyBhbmQgbm90aWZ5IGNoYW5nZXMuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXcgYXJyYXkgb2YgY2hpcCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IEFycmF5LmZyb20obmV3IFNldChuZXdWYWx1ZSkpO1xuICAgICAgICBzZXRWYWx1ZShkZWR1cGVkKTtcbiAgICAgICAgcHJvcHMub25DaGFuZ2U/LihkZWR1cGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgb24gZm9jdXMuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIHNldFRvdWNoZWQodHJ1ZSk7XG4gICAgICAgIGlmIChwcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBzZXRUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBjaGlwIG9uIEVudGVyIGtleSBwcmVzcy5cbiAgICAgKiBAcGFyYW0gZSBSZWFjdCBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleVVwOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiB0ZXh0LnRyaW0oKSAhPT0gJycgJiYgSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWUsIHRleHQudHJpbSgpXTtcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHNldFRleHQoJycpO1xuICAgICAgICAgICAgc2V0QW5ub3VuY2VtZW50KHJlcGxhY2VQbGFjZWhvbGRlcihwcm9wcy5hZGRlZEFubm91bmNlbWVudFRlbXBsYXRlLCB0ZXh0LnRyaW0oKSkhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpcCBmcm9tIHRoZSBsaXN0LlxuICAgICAqIEBwYXJhbSBjaGlwVG9SZW1vdmUgVGhlIGNoaXAgdmFsdWUgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgY29uc3QgcmVtb3ZlQ2hpcCA9IChjaGlwVG9SZW1vdmU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLmZpbHRlcigoY2hpcCkgPT4gY2hpcCAhPT0gY2hpcFRvUmVtb3ZlKTtcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBzZXRBbm5vdW5jZW1lbnQocmVwbGFjZVBsYWNlaG9sZGVyKHByb3BzLnJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwgY2hpcFRvUmVtb3ZlKSEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaXAgZnJvbSBvbmUgcG9zaXRpb24gdG8gYW5vdGhlci5cbiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBpdGVtIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmRpbmcgaW5kZXggd2hlcmUgdGhlIGl0ZW0gc2hvdWxkIGJlIHBsYWNlZFxuICAgICAqL1xuICAgIGNvbnN0IG9uRHJvcCA9IChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDbG9uZSBleGlzdGluZyBlbGVtZW50c1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi52YWx1ZV07XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCB0byBiZSBtb3ZlZFxuICAgICAgICBjb25zdCBpdGVtID0gbmV3SXRlbXMuc3BsaWNlKHN0YXJ0LCAxKTtcbiAgICAgICAgLy8gQWRkIGl0IGJhY2sgYXQgdGhlIHJlcXVpcmVkIHBvc2l0aW9uXG4gICAgICAgIG5ld0l0ZW1zLnNwbGljZShlbmQsIDAsIGl0ZW1bMF0pO1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3SXRlbXMpO1xuICAgIH07XG5cbiAgICAvLyBSZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TGFiZWwgdGV4dD17dGV4dH0gdG91Y2hlZD17dG91Y2hlZH0gZXJyb3JUZXh0PXtwcm9wcy5lcnJvclRleHR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwcm9wcy5yZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e3Byb3BzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhcHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtwcm9wcy5lcnJvclRleHQgPyBlcnJvcklkIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnQW5kRHJvcCBvcmllbnRhdGlvbj17T1JJRU5UQVRJT04uSE9SSVpPTlRBTH0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5tYXAoKGNoaXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZUNsaWNrPXsoKSA9PiByZW1vdmVDaGlwKGNoaXApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VCdXR0b25BcmlhTGFiZWw9e3JlcGxhY2VQbGFjZWhvbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ0FuZERyb3A+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuZXJyb3JUZXh0ICYmIDxFcnJvckNvbnRhaW5lciBpZD17ZXJyb3JJZH0+e3Byb3BzLmVycm9yVGV4dH08L0Vycm9yQ29udGFpbmVyPn1cbiAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW4gYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgICAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbkNoaXBJbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBFcnJvciBtZXNzYWdlIGZvciB0aGUgZmllbGQgKi9cbiAgICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIFZhbHVlcyB0byBkaXNwbGF5IGFzIGNoaXBzICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIC8qKiBDYWxsYmFjayB3aGVuIGNoaXBzIGNoYW5nZSAqL1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvbiBjaGlwLiBEZWZhdWx0cyB0byBcIlJlbW92ZSB7bGFiZWx9XCIgKi9cbiAgICBjbG9zZUJ1dHRvbkFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogQW5ub3VuY2VtZW50IHRleHQgd2hlbiBhIGNoaXAgaXMgYWRkZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgYWRkZWRcIiAqL1xuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIEFubm91bmNlbWVudCB0ZXh0IHdoZW4gYSBjaGlwIGlzIHJlbW92ZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgcmVtb3ZlZFwiICovXG4gICAgcmVtb3ZlZEFubm91bmNlbWVudFRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hpcElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICB2YWx1ZTogW10sXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdSZW1vdmUgezpsYWJlbH0nLFxuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6ICd7OmxhYmVsfSB3YXMgYWRkZWQnLFxuICAgIHJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZTogJ3s6bGFiZWx9IHdhcyByZW1vdmVkJyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEl1QiJ9 */");
48
+ })("position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;& li{list-style:none;}");
46
49
  /**
47
50
  * A chip input component that allows users to add and remove chips (tags) by typing and pressing Enter.
48
51
  * @component
@@ -55,26 +58,35 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
55
58
  * errorText="At least one tag is required"
56
59
  * />
57
60
  * ```
58
- */ function ChipInput(props) {
61
+ */ function ChipInputComponent(props, ref) {
62
+ const { value: propValue = [], closeButtonAriaLabel = `Remove {:label}`, addedAnnouncementTemplate = '{:label} was added', removedAnnouncementTemplate = '{:label} was removed' } = props;
59
63
  const [text, setText] = useState('');
60
64
  const [touched, setTouched] = useState(false);
61
- const [value, setValue] = useState(props.value || []);
65
+ const [value, setValue] = useState(propValue || []);
62
66
  const InputRef = React.useRef(null);
63
67
  const [announcement, setAnnouncement] = useState('');
64
68
  const errorId = useId();
69
+ // Forward the underlying input element.
70
+ useImperativeHandle(ref, ()=>InputRef.current);
65
71
  /**
66
72
  * Replace {:label} placeholder in template string
67
73
  */ const replacePlaceholder = (template, label)=>{
68
74
  if (!template) return undefined;
69
75
  return template.replace(/\{:label\}/g, label);
70
76
  };
77
+ const prevPropValueRef = React.useRef(undefined);
71
78
  // Sync internal value with props.value
72
79
  useEffect(()=>{
73
- if (Array.isArray(props.value)) {
74
- setValue(props.value);
80
+ if (Array.isArray(propValue)) {
81
+ const prevValue = prevPropValueRef.current;
82
+ const isEqual = prevValue && propValue.length === prevValue.length && propValue.every((val, index)=>val === prevValue[index]);
83
+ if (!isEqual) {
84
+ setValue(propValue);
85
+ prevPropValueRef.current = propValue;
86
+ }
75
87
  }
76
88
  }, [
77
- props.value
89
+ propValue
78
90
  ]);
79
91
  /**
80
92
  * Update the chip values and notify changes.
@@ -103,14 +115,14 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
103
115
  * Adds a new chip on Enter key press.
104
116
  * @param e React keyboard event
105
117
  */ const handleKeyUp = (e)=>{
106
- if (e.key === 'Enter' && text.trim() !== '' && InputRef.current.validity.valid) {
118
+ if (e.key === 'Enter' && text.trim() !== '' && InputRef.current?.validity.valid) {
107
119
  const newValue = [
108
120
  ...value,
109
121
  text.trim()
110
122
  ];
111
123
  updateValue(newValue);
112
124
  setText('');
113
- setAnnouncement(replacePlaceholder(props.addedAnnouncementTemplate, text.trim()));
125
+ setAnnouncement(replacePlaceholder(addedAnnouncementTemplate, text.trim()));
114
126
  }
115
127
  };
116
128
  /**
@@ -119,7 +131,7 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
119
131
  */ const removeChip = (chipToRemove)=>{
120
132
  const newValue = value.filter((chip)=>chip !== chipToRemove);
121
133
  updateValue(newValue);
122
- setAnnouncement(replacePlaceholder(props.removedAnnouncementTemplate, chipToRemove));
134
+ setAnnouncement(replacePlaceholder(removedAnnouncementTemplate, chipToRemove));
123
135
  };
124
136
  /**
125
137
  * Moves a chip from one position to another.
@@ -140,10 +152,11 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
140
152
  // Render the component
141
153
  return /*#__PURE__*/ jsxs(Fragment, {
142
154
  children: [
143
- /*#__PURE__*/ jsxs(Label, {
155
+ /*#__PURE__*/ jsxs(Label$6, {
144
156
  text: text,
145
157
  touched: touched,
146
158
  errorText: props.errorText,
159
+ required: props.required,
147
160
  children: [
148
161
  /*#__PURE__*/ jsx("input", {
149
162
  ...props,
@@ -164,20 +177,20 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
164
177
  children: value.map((chip)=>/*#__PURE__*/ jsx(Chip, {
165
178
  label: chip,
166
179
  onCloseClick: ()=>removeChip(chip),
167
- closeButtonAriaLabel: replacePlaceholder(props.closeButtonAriaLabel, chip)
180
+ closeButtonAriaLabel: replacePlaceholder(closeButtonAriaLabel, chip)
168
181
  }, chip))
169
182
  })
170
183
  }),
171
184
  /*#__PURE__*/ jsx("span", {
172
185
  children: props.label
173
186
  }),
174
- props.errorText && /*#__PURE__*/ jsx(ErrorContainer, {
187
+ props.errorText && /*#__PURE__*/ jsx(ErrorContainer$4, {
175
188
  id: errorId,
176
189
  children: props.errorText
177
190
  })
178
191
  ]
179
192
  }),
180
- /*#__PURE__*/ jsx(VisuallyHidden, {
193
+ /*#__PURE__*/ jsx(VisuallyHidden$1, {
181
194
  "aria-live": "polite",
182
195
  "aria-atomic": "true",
183
196
  children: announcement
@@ -185,20 +198,7 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
185
198
  ]
186
199
  });
187
200
  }
188
- ChipInput.propTypes = {
189
- /** Label for the field */ label: PropTypes.string.isRequired,
190
- /** Error message for the field */ errorText: PropTypes.string,
191
- /** Values to display as chips */ value: PropTypes.arrayOf(PropTypes.string),
192
- /** Callback when chips change */ onChange: PropTypes.func,
193
- /** Aria label for the close button on chip. Defaults to "Remove {label}" */ closeButtonAriaLabel: PropTypes.string,
194
- /** Announcement text when a chip is added. Defaults to "{label} was added" */ addedAnnouncementTemplate: PropTypes.string,
195
- /** Announcement text when a chip is removed. Defaults to "{label} was removed" */ removedAnnouncementTemplate: PropTypes.string
196
- };
197
- ChipInput.defaultProps = {
198
- value: [],
199
- closeButtonAriaLabel: 'Remove {:label}',
200
- addedAnnouncementTemplate: '{:label} was added',
201
- removedAnnouncementTemplate: '{:label} was removed'
202
- };
201
+ const ChipInput = /*#__PURE__*/ React.forwardRef(ChipInputComponent);
203
202
 
204
203
  export { ChipInput as default };
204
+ //# sourceMappingURL=ChipInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChipInput.js","sources":["../../../src/components/ChipInput/ChipInput.tsx"],"sourcesContent":["import React, { useImperativeHandle, useEffect, useId, useState } from 'react';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\nimport Chip from '../Chip/Chip';\nimport { DragAndDrop, ORIENTATION } from '../DragAndDrop';\n\n// Prop types definition\ninterface ChipInputProps {\n /** Label for the field */\n label: string;\n /** Error message for the field */\n errorText?: string;\n /**\n * Values to display as chips\n * @default []\n */\n value?: string[];\n /** Callback when chips change */\n onChange?: (newValue: string[]) => void;\n /**\n * Aria label for the close button on chip. Defaults to \"Remove {:label}\"\n * @default \"Remove {:label}\"\n */\n closeButtonAriaLabel?: string;\n /**\n * Announcement text when a chip is added. Defaults to \"{:label} was added\"\n * @default \"{:label} was added\"\n */\n addedAnnouncementTemplate?: string;\n /**\n * Announcement text when a chip is removed. Defaults to \"{:label} was removed\"\n * @default \"{:label} was removed\"\n */\n removedAnnouncementTemplate?: string;\n}\n\n// Label component for the ChipInput\nconst Label = styled.label<{\n text: string;\n touched?: boolean;\n errorText?: string;\n required?: boolean;\n}>`\n display: inline-flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n margin: 10px 5px;\n color: inherit;\n padding: 0 8px;\n width: 250px;\n border-radius: 3px;\n border: 1px solid ${getThemeValue(THEME_NAME.BORDER_COLOR)};\n background-color: ${getThemeValue(THEME_NAME.BACKGROUND)};\n\n /** Focused */\n &:has(:focus),\n &:has(:active) {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:has(:focus) > span,\n &:has(:active) > span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /** Disabled */\n &:has(:disabled) {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BACKGROUND)};\n }\n\n &:has(:disabled) > span {\n color: ${getThemeValue(THEME_NAME.DISABLED)};\n }\n\n /** Invalid */\n &:has(:focus:invalid) {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.ERROR_LIGHT)};\n }\n\n ${(props) =>\n props.touched\n ? `\n &:has(:invalid) {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n \n &:has(:invalid) > span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Error */\n ${(props) =>\n props.errorText\n ? `\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n\n & > span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Required */\n ${(props) =>\n props.required\n ? `& > span:after {\n content: '*';\n margin-left: 2px;\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }`\n : ''}\n \n\n & > input {\n border: none;\n outline: none;\n line-height: 30px;\n min-height: 30px;\n max-width: 95%;\n }\n\n /** Label Animation */\n & > span {\n position: absolute;\n padding: 0 5px;\n top: 0px;\n left: 4px;\n font-size: 14px;\n line-height: 32px;\n transition: all 300ms ease;\n }\n\n &:has(:focus) > span,\n &:has(:placeholder-shown) > span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n\n ${(props) =>\n props.text !== ''\n ? `\n & > span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n `\n : ''}\n`;\n\n// Error message container\nconst ErrorContainer = styled.div`\n color: ${getThemeValue(THEME_NAME.ERROR)};\n padding-top: 3px;\n font-size: 12px;\n line-height: 14px;\n margin-left: 3px;\n`;\n\n// Visually hidden but accessible to screen readers\nconst VisuallyHidden = styled.ul`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n\n & li {\n list-style: none;\n }\n`;\n\n/**\n * A chip input component that allows users to add and remove chips (tags) by typing and pressing Enter.\n * @component\n * @example\n * ```tsx\n * <ChipInput\n * value={['tag1', 'tag2']}\n * onChange={(newTags) => console.log(newTags)}\n * label=\"Add tags\"\n * errorText=\"At least one tag is required\"\n * />\n * ```\n */\nfunction ChipInputComponent(\n props: ChipInputProps & React.AllHTMLAttributes<HTMLInputElement>,\n ref: React.Ref<HTMLInputElement | null>,\n) {\n const {\n value: propValue = [],\n closeButtonAriaLabel = `Remove {:label}`,\n addedAnnouncementTemplate = '{:label} was added',\n removedAnnouncementTemplate = '{:label} was removed',\n } = props;\n\n const [text, setText] = useState('');\n const [touched, setTouched] = useState(false);\n const [value, setValue] = useState<string[]>(propValue || []);\n const InputRef = React.useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n const errorId = useId();\n\n // Forward the underlying input element.\n useImperativeHandle(ref, () => InputRef.current as HTMLInputElement);\n\n /**\n * Replace {:label} placeholder in template string\n */\n const replacePlaceholder = (\n template: string | undefined,\n label: string,\n ): string | undefined => {\n if (!template) return undefined;\n return template.replace(/\\{:label\\}/g, label);\n };\n\n const prevPropValueRef = React.useRef<string[]>(undefined);\n\n // Sync internal value with props.value\n useEffect(() => {\n if (Array.isArray(propValue)) {\n const prevValue = prevPropValueRef.current;\n const isEqual =\n prevValue &&\n propValue.length === prevValue.length &&\n propValue.every((val, index) => val === prevValue[index]);\n if (!isEqual) {\n setValue(propValue);\n prevPropValueRef.current = propValue;\n }\n }\n }, [propValue]);\n\n /**\n * Update the chip values and notify changes.\n * @param newValue The new array of chip values\n */\n const updateValue = (newValue: string[]) => {\n const deduped = Array.from(new Set(newValue));\n setValue(deduped);\n props.onChange?.(deduped);\n };\n\n /**\n * Marks the input as touched on focus.\n * @param e React focus event\n */\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true);\n if (props.onFocus) {\n props.onFocus(e);\n }\n };\n\n /**\n * Change handler for the input field.\n * @param e React change event\n */\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n setText(e.target.value);\n };\n\n /**\n * Adds a new chip on Enter key press.\n * @param e React keyboard event\n */\n const handleKeyUp: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === 'Enter' && text.trim() !== '' && InputRef.current?.validity.valid) {\n const newValue = [...value, text.trim()];\n updateValue(newValue);\n setText('');\n setAnnouncement(replacePlaceholder(addedAnnouncementTemplate, text.trim())!);\n }\n };\n\n /**\n * Removes a chip from the list.\n * @param chipToRemove The chip value to remove\n */\n const removeChip = (chipToRemove: string) => {\n const newValue = value.filter((chip) => chip !== chipToRemove);\n updateValue(newValue);\n setAnnouncement(replacePlaceholder(removedAnnouncementTemplate, chipToRemove)!);\n };\n\n /**\n * Moves a chip from one position to another.\n * @param start The starting index of the item to move\n * @param end The ending index where the item should be placed\n */\n const onDrop = (start: number, end: number) => {\n // Clone existing elements\n const newItems = [...value];\n // Remove the element to be moved\n const item = newItems.splice(start, 1);\n // Add it back at the required position\n newItems.splice(end, 0, item[0]);\n // Update\n updateValue(newItems);\n };\n\n // Render the component\n return (\n <>\n <Label\n text={text}\n touched={touched}\n errorText={props.errorText}\n required={props.required}\n >\n <input\n {...props}\n ref={InputRef}\n value={text}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyUp={handleKeyUp}\n required={props.required && value.length === 0}\n aria-required={props.required}\n aria-invalid={!!props.errorText}\n aria-describedby={props.errorText ? errorId : undefined}\n />\n <div>\n {value?.length > 0 && (\n <DragAndDrop orientation={ORIENTATION.HORIZONTAL} onDrop={onDrop}>\n {value.map((chip) => (\n <Chip\n key={chip}\n label={chip}\n onCloseClick={() => removeChip(chip)}\n closeButtonAriaLabel={replacePlaceholder(\n closeButtonAriaLabel,\n chip,\n )}\n />\n ))}\n </DragAndDrop>\n )}\n </div>\n <span>{props.label}</span>\n {props.errorText && <ErrorContainer id={errorId}>{props.errorText}</ErrorContainer>}\n </Label>\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </VisuallyHidden>\n </>\n );\n}\n\nconst ChipInput = React.forwardRef<\n HTMLInputElement,\n ChipInputProps & React.AllHTMLAttributes<HTMLInputElement>\n>(ChipInputComponent);\n\nexport default ChipInput;\n"],"names":["Label","styled","getThemeValue","THEME_NAME","BORDER_COLOR","BACKGROUND","PRIMARY","PRIMARY_LIGHT","DISABLED_BORDER","DISABLED_BACKGROUND","DISABLED","ERROR","ERROR_LIGHT","props","touched","errorText","required","text","ErrorContainer","VisuallyHidden","ChipInputComponent","ref","value","propValue","closeButtonAriaLabel","addedAnnouncementTemplate","removedAnnouncementTemplate","setText","useState","setTouched","setValue","InputRef","React","useRef","announcement","setAnnouncement","errorId","useId","useImperativeHandle","current","replacePlaceholder","template","label","undefined","replace","prevPropValueRef","useEffect","Array","isArray","prevValue","isEqual","length","every","val","index","updateValue","newValue","deduped","from","Set","onChange","handleFocus","e","onFocus","handleChange","target","handleKeyUp","key","trim","validity","valid","removeChip","chipToRemove","filter","chip","onDrop","start","end","newItems","item","splice","_jsxs","_Fragment","_jsx","input","onKeyUp","aria-required","aria-invalid","aria-describedby","div","DragAndDrop","orientation","ORIENTATION","HORIZONTAL","map","Chip","onCloseClick","span","id","aria-live","aria-atomic","ChipInput","forwardRef"],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
- type AlertOption = PropTypes.InferProps<typeof AlertDialog.propTypes>;
2
+ import Dialog from './Dialog';
3
+ type AlertOption = {
4
+ /** Shown as header of the dialog */
5
+ header: string;
6
+ /** Rendered in the body. */
7
+ body: React.ReactNode;
8
+ /** Accept button text */
9
+ buttonText?: string;
10
+ /** props for the dialog */
11
+ dialogProps?: React.ComponentProps<typeof Dialog>;
12
+ };
4
13
  export default class AlertDialog extends React.Component<AlertOption> {
5
14
  private dialog;
6
- static propTypes: {
7
- /** Shown as header of the dialog */
8
- header: PropTypes.Requireable<string>;
9
- /** Rendered in the body. */
10
- body: PropTypes.Validator<any>;
11
- /** Accept button text, default value is `OK` */
12
- buttonText: PropTypes.Requireable<string>;
13
- /** props for the dialog */
14
- dialogProps: PropTypes.Requireable<object>;
15
- };
16
15
  static defaultProps: {
17
16
  buttonText: string;
18
17
  };
@@ -1,9 +1,8 @@
1
1
  import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
2
  import React, { createRef } from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import Dialog from './Dialog.js';
5
4
  import { Header, Body, Footer } from '../../shared/styles.js';
6
- import StyledButton from '../Button/Button.js';
5
+ import Button from '../Button/Button.js';
7
6
 
8
7
  let dialogCounter = 0;
9
8
  class AlertDialog extends React.Component {
@@ -28,7 +27,7 @@ class AlertDialog extends React.Component {
28
27
  children: this.props.body
29
28
  }),
30
29
  /*#__PURE__*/ jsx(Footer, {
31
- children: /*#__PURE__*/ jsx(StyledButton, {
30
+ children: /*#__PURE__*/ jsx(Button, {
32
31
  onClick: this.close,
33
32
  children: this.props.buttonText
34
33
  })
@@ -40,19 +39,14 @@ class AlertDialog extends React.Component {
40
39
  super(...args), this.dialog = /*#__PURE__*/ createRef(), this.show = ()=>{
41
40
  return new Promise((resolve)=>{
42
41
  const onClose = ()=>resolve(null);
43
- this.dialog.current.open(onClose);
42
+ this.dialog.current?.open(onClose);
44
43
  });
45
- }, this.close = ()=>this.dialog.current.close();
44
+ }, this.close = ()=>this.dialog.current?.close();
46
45
  }
47
46
  }
48
- AlertDialog.propTypes = {
49
- /** Shown as header of the dialog */ header: PropTypes.string,
50
- /** Rendered in the body. */ body: PropTypes.any.isRequired,
51
- /** Accept button text, default value is `OK` */ buttonText: PropTypes.string,
52
- /** props for the dialog */ dialogProps: PropTypes.object
53
- };
54
47
  AlertDialog.defaultProps = {
55
48
  buttonText: 'OK'
56
49
  };
57
50
 
58
51
  export { AlertDialog as default };
52
+ //# sourceMappingURL=AlertDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.js","sources":["../../../src/components/Dialog/AlertDialog.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Button } from '../Button';\nimport Dialog, { DialogBody, DialogFooter, DialogHeader } from './Dialog';\n\ntype AlertOption = {\n /** Shown as header of the dialog */\n header: string;\n /** Rendered in the body. */\n body: React.ReactNode;\n /** Accept button text */\n buttonText?: string;\n /** props for the dialog */\n dialogProps?: React.ComponentProps<typeof Dialog>;\n};\n\nlet dialogCounter = 0;\n\nexport default class AlertDialog extends React.Component<AlertOption> {\n private dialog = createRef<Dialog>();\n\n static defaultProps = {\n buttonText: 'OK',\n };\n\n public show = () => {\n return new Promise((resolve) => {\n const onClose = () => resolve(null);\n this.dialog.current?.open(onClose);\n });\n };\n\n private close = () => this.dialog.current?.close();\n\n render() {\n const titleId = `nfui-alert-dialog-${dialogCounter++}-title`;\n const descriptionId = `nfui-alert-dialog-${dialogCounter++}-description`;\n\n return (\n <Dialog\n {...this.props.dialogProps}\n role=\"alertdialog\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n ref={this.dialog}\n closeOnEsc={false}\n closeOnOverlayClick={false}\n >\n {this.props.header && <DialogHeader id={titleId}>{this.props.header}</DialogHeader>}\n <DialogBody id={descriptionId}>{this.props.body}</DialogBody>\n <DialogFooter>\n <Button onClick={this.close}>{this.props.buttonText}</Button>\n </DialogFooter>\n </Dialog>\n );\n }\n}\n"],"names":["dialogCounter","AlertDialog","React","Component","render","titleId","descriptionId","_jsxs","Dialog","props","dialogProps","role","aria-labelledby","aria-describedby","ref","dialog","closeOnEsc","closeOnOverlayClick","header","_jsx","DialogHeader","id","DialogBody","body","DialogFooter","Button","onClick","close","buttonText","createRef","show","Promise","resolve","onClose","current","open","defaultProps"],"mappings":";;;;;;AAeA,IAAIA,aAAAA,GAAgB,CAAA;AAEL,MAAMC,WAAAA,SAAoBC,MAAMC,SAAS,CAAA;IAgBpDC,MAAAA,GAAS;AACL,QAAA,MAAMC,UAAU,CAAC,kBAAkB,EAAEL,aAAAA,EAAAA,CAAgB,MAAM,CAAC;AAC5D,QAAA,MAAMM,gBAAgB,CAAC,kBAAkB,EAAEN,aAAAA,EAAAA,CAAgB,YAAY,CAAC;AAExE,QAAA,qBACIO,IAAA,CAACC,MAAAA,EAAAA;AACI,YAAA,GAAG,IAAI,CAACC,KAAK,CAACC,WAAW;YAC1BC,IAAAA,EAAK,aAAA;YACLC,iBAAAA,EAAiBP,OAAAA;YACjBQ,kBAAAA,EAAkBP,aAAAA;YAClBQ,GAAAA,EAAK,IAAI,CAACC,MAAM;YAChBC,UAAAA,EAAY,KAAA;YACZC,mBAAAA,EAAqB,KAAA;;AAEpB,gBAAA,IAAI,CAACR,KAAK,CAACS,MAAM,kBAAIC,GAAA,CAACC,MAAAA,EAAAA;oBAAaC,EAAAA,EAAIhB,OAAAA;8BAAU,IAAI,CAACI,KAAK,CAACS;;8BAC7DC,GAAA,CAACG,IAAAA,EAAAA;oBAAWD,EAAAA,EAAIf,aAAAA;8BAAgB,IAAI,CAACG,KAAK,CAACc;;8BAC3CJ,GAAA,CAACK,MAAAA,EAAAA;AACG,oBAAA,QAAA,gBAAAL,GAAA,CAACM,MAAAA,EAAAA;wBAAOC,OAAAA,EAAS,IAAI,CAACC,KAAK;kCAAG,IAAI,CAAClB,KAAK,CAACmB;;;;;AAIzD,IAAA;;QArCW,KAAA,CAAA,GAAA,IAAA,CAAA,EAAA,IAAA,CACHb,MAAAA,iBAASc,kBAMVC,IAAAA,GAAO,IAAA;YACV,OAAO,IAAIC,QAAQ,CAACC,OAAAA,GAAAA;gBAChB,MAAMC,OAAAA,GAAU,IAAMD,OAAAA,CAAQ,IAAA,CAAA;AAC9B,gBAAA,IAAI,CAACjB,MAAM,CAACmB,OAAO,EAAEC,IAAAA,CAAKF,OAAAA,CAAAA;AAC9B,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,EAAA,IAAA,CAEQN,QAAQ,IAAM,IAAI,CAACZ,MAAM,CAACmB,OAAO,EAAEP,KAAAA,EAAAA;;AAwB/C;AAtCqB1B,WAAAA,CAGVmC,YAAAA,GAAe;IAClBR,UAAAA,EAAY;AAChB,CAAA;;;;"}
@@ -1,20 +1,19 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
- type ConfirmOption = PropTypes.InferProps<typeof ConfirmDialog.propTypes>;
2
+ import Dialog from './Dialog';
3
+ type ConfirmOption = {
4
+ /** Shown as header of the dialog */
5
+ header: string;
6
+ /** Rendered as body of the dialog */
7
+ body: string;
8
+ /** Accept button text */
9
+ yesText?: string;
10
+ /** Reject button text */
11
+ noText?: string;
12
+ /** Props for the dialog */
13
+ dialogProps?: React.ComponentProps<typeof Dialog>;
14
+ };
4
15
  export default class ConfirmDialog extends React.Component<ConfirmOption> {
5
16
  private dialog;
6
- static propTypes: {
7
- /** Shown as header of the dialog */
8
- header: PropTypes.Requireable<string>;
9
- /** Rendered as body of the dialog */
10
- body: PropTypes.Validator<string>;
11
- /** Accept button text */
12
- yesText: PropTypes.Requireable<string>;
13
- /** Reject button text */
14
- noText: PropTypes.Requireable<string>;
15
- /** Props for the dialog */
16
- dialogProps: PropTypes.Requireable<object>;
17
- };
18
17
  static defaultProps: {
19
18
  yesText: string;
20
19
  noText: string;
@@ -1,9 +1,8 @@
1
1
  import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
2
  import React, { createRef } from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import Dialog from './Dialog.js';
5
4
  import { Header, Body, Footer } from '../../shared/styles.js';
6
- import StyledButton from '../Button/Button.js';
5
+ import Button from '../Button/Button.js';
7
6
  import ActionButton from '../Button/ActionButton.js';
8
7
 
9
8
  class ConfirmDialog extends React.Component {
@@ -23,7 +22,7 @@ class ConfirmDialog extends React.Component {
23
22
  }),
24
23
  /*#__PURE__*/ jsxs(Footer, {
25
24
  children: [
26
- /*#__PURE__*/ jsx(StyledButton, {
25
+ /*#__PURE__*/ jsx(Button, {
27
26
  onClick: this.cancel,
28
27
  children: noText
29
28
  }),
@@ -46,21 +45,15 @@ class ConfirmDialog extends React.Component {
46
45
  reject();
47
46
  }
48
47
  };
49
- this.dialog.current.open(onClose);
48
+ this.dialog.current?.open(onClose);
50
49
  });
51
- }, this.cancel = ()=>this.dialog.current.close(false), this.confirm = ()=>this.dialog.current.close(true);
50
+ }, this.cancel = ()=>this.dialog.current?.close(false), this.confirm = ()=>this.dialog.current?.close(true);
52
51
  }
53
52
  }
54
- ConfirmDialog.propTypes = {
55
- /** Shown as header of the dialog */ header: PropTypes.string,
56
- /** Rendered as body of the dialog */ body: PropTypes.string.isRequired,
57
- /** Accept button text */ yesText: PropTypes.string,
58
- /** Reject button text */ noText: PropTypes.string,
59
- /** Props for the dialog */ dialogProps: PropTypes.object
60
- };
61
53
  ConfirmDialog.defaultProps = {
62
54
  yesText: 'Yes',
63
55
  noText: 'No'
64
56
  };
65
57
 
66
58
  export { ConfirmDialog as default };
59
+ //# sourceMappingURL=ConfirmDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmDialog.js","sources":["../../../src/components/Dialog/ConfirmDialog.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Button, ActionButton } from '../Button';\nimport Dialog, { DialogBody, DialogFooter, DialogHeader } from './Dialog';\n\ntype ConfirmOption = {\n /** Shown as header of the dialog */\n header: string;\n /** Rendered as body of the dialog */\n body: string;\n /** Accept button text */\n yesText?: string;\n /** Reject button text */\n noText?: string;\n /** Props for the dialog */\n dialogProps?: React.ComponentProps<typeof Dialog>;\n};\n\nexport default class ConfirmDialog extends React.Component<ConfirmOption> {\n private dialog = createRef<Dialog>();\n\n static defaultProps = {\n yesText: 'Yes',\n noText: 'No',\n };\n\n public show = () => {\n return new Promise((resolve, reject) => {\n const onClose = (resp: unknown) => {\n if (resp) {\n resolve(null);\n } else {\n reject();\n }\n };\n this.dialog.current?.open(onClose);\n });\n };\n\n private cancel = () => this.dialog.current?.close(false);\n private confirm = () => this.dialog.current?.close(true);\n\n render() {\n const { header, body, yesText, noText, dialogProps } = this.props;\n return (\n <Dialog\n {...dialogProps}\n ref={this.dialog}\n closeOnEsc={false}\n closeOnOverlayClick={false}\n >\n {header && <DialogHeader>{header}</DialogHeader>}\n <DialogBody>{body}</DialogBody>\n <DialogFooter>\n <Button onClick={this.cancel}>{noText}</Button>\n <ActionButton onClick={this.confirm}>{yesText}</ActionButton>\n </DialogFooter>\n </Dialog>\n );\n }\n}\n"],"names":["ConfirmDialog","React","Component","render","header","body","yesText","noText","dialogProps","props","_jsxs","Dialog","ref","dialog","closeOnEsc","closeOnOverlayClick","_jsx","DialogHeader","DialogBody","DialogFooter","Button","onClick","cancel","ActionButton","confirm","createRef","show","Promise","resolve","reject","onClose","resp","current","open","close","defaultProps"],"mappings":";;;;;;;AAiBe,MAAMA,aAAAA,SAAsBC,MAAMC,SAAS,CAAA;IAwBtDC,MAAAA,GAAS;AACL,QAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAG,IAAI,CAACC,KAAK;AACjE,QAAA,qBACIC,IAAA,CAACC,MAAAA,EAAAA;AACI,YAAA,GAAGH,WAAW;YACfI,GAAAA,EAAK,IAAI,CAACC,MAAM;YAChBC,UAAAA,EAAY,KAAA;YACZC,mBAAAA,EAAqB,KAAA;;AAEpBX,gBAAAA,MAAAA,kBAAUY,GAAA,CAACC,MAAAA,EAAAA;AAAcb,oBAAAA,QAAAA,EAAAA;;8BAC1BY,GAAA,CAACE,IAAAA,EAAAA;AAAYb,oBAAAA,QAAAA,EAAAA;;8BACbK,IAAA,CAACS,MAAAA,EAAAA;;sCACGH,GAAA,CAACI,MAAAA,EAAAA;4BAAOC,OAAAA,EAAS,IAAI,CAACC,MAAM;AAAGf,4BAAAA,QAAAA,EAAAA;;sCAC/BS,GAAA,CAACO,YAAAA,EAAAA;4BAAaF,OAAAA,EAAS,IAAI,CAACG,OAAO;AAAGlB,4BAAAA,QAAAA,EAAAA;;;;;;AAItD,IAAA;;QAzCW,KAAA,CAAA,GAAA,IAAA,CAAA,EAAA,IAAA,CACHO,MAAAA,iBAASY,kBAOVC,IAAAA,GAAO,IAAA;YACV,OAAO,IAAIC,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;AACzB,gBAAA,MAAMC,UAAU,CAACC,IAAAA,GAAAA;AACb,oBAAA,IAAIA,IAAAA,EAAM;wBACNH,OAAAA,CAAQ,IAAA,CAAA;oBACZ,CAAA,MAAO;AACHC,wBAAAA,MAAAA,EAAAA;AACJ,oBAAA;AACJ,gBAAA,CAAA;AACA,gBAAA,IAAI,CAAChB,MAAM,CAACmB,OAAO,EAAEC,IAAAA,CAAKH,OAAAA,CAAAA;AAC9B,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,EAAA,IAAA,CAEQR,SAAS,IAAM,IAAI,CAACT,MAAM,CAACmB,OAAO,EAAEE,KAAAA,CAAM,KAAA,CAAA,EAAA,IAAA,CAC1CV,OAAAA,GAAU,IAAM,IAAI,CAACX,MAAM,CAACmB,OAAO,EAAEE,KAAAA,CAAM,IAAA,CAAA;;AAoBvD;AA1CqBlC,aAAAA,CAGVmC,YAAAA,GAAe;IAClB7B,OAAAA,EAAS,KAAA;IACTC,MAAAA,EAAQ;AACZ,CAAA;;;;"}
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  export declare const DialogContainer: import("@emotion/styled").StyledComponent<{
4
- theme?: import("@emotion/react").Theme;
5
- as?: React.ElementType;
6
- } & import("../Card/Card").CardExtraProps & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
3
+ elevated?: boolean;
4
+ } & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement> & {
7
5
  theme?: import("@emotion/react").Theme;
8
6
  }, {}, {}>;
9
7
  export { Header as DialogHeader, Body as DialogBody, Footer as DialogFooter, } from '../../shared/styles';
@@ -12,18 +10,14 @@ interface DialogOptions {
12
10
  closeOnEsc?: boolean;
13
11
  /** Close layer overlay is clicked. Default value is true. */
14
12
  closeOnOverlayClick?: boolean;
13
+ /** Ref forwarded to the underlying HTMLDivElement of the dialog container */
14
+ forwardRef?: React.Ref<HTMLDivElement>;
15
15
  }
16
16
  interface DialogState {
17
17
  show: boolean;
18
- LayerComponent?: () => React.ReactPortal | null;
18
+ LayerComponent?: React.ComponentType | null;
19
19
  }
20
- declare class Dialog extends React.Component<React.PropsWithChildren<DialogOptions> & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>, DialogState> {
21
- static propTypes: {
22
- /** Flag to close dialog on `esc` click. Default value is true. */
23
- closeOnEsc: PropTypes.Requireable<boolean>;
24
- /** Close layer overlay is clicked. Default value is true. */
25
- closeOnOverlayClick: PropTypes.Requireable<boolean>;
26
- };
20
+ declare class Dialog extends React.Component<React.PropsWithChildren<DialogOptions> & React.HTMLAttributes<HTMLDivElement>, DialogState> {
27
21
  static defaultProps: {
28
22
  closeOnEsc: boolean;
29
23
  closeOnOverlayClick: boolean;
@@ -58,9 +52,9 @@ declare class Dialog extends React.Component<React.PropsWithChildren<DialogOptio
58
52
  private setInitialFocus;
59
53
  shouldComponentUpdate(nextProps: DialogOptions, nextState: DialogState): boolean;
60
54
  componentWillUnmount(): void;
61
- open: (closeCallback?: (resp: unknown) => void) => void;
55
+ open: (closeCallback?: (resp?: unknown) => void) => void;
62
56
  close: (resp?: unknown) => void;
63
57
  private closeCallback;
64
- render(): import("@emotion/react/jsx-runtime").JSX.Element;
58
+ render(): import("@emotion/react/jsx-runtime").JSX.Element | null;
65
59
  }
66
60
  export default Dialog;