@openedx/paragon 22.0.0-alpha.21 → 22.0.0-alpha.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 (183) hide show
  1. package/bin/paragon-scripts.js +12 -1
  2. package/dist/Modal/_ModalDialog.scss +12 -20
  3. package/dist/SelectableBox/index.js +9 -5
  4. package/dist/SelectableBox/index.js.map +1 -1
  5. package/dist/core.css +16776 -0
  6. package/dist/core.css.map +1 -0
  7. package/dist/core.min.css +2 -0
  8. package/dist/theme-urls.json +6 -0
  9. package/icons/.svgrrc.js +1 -1
  10. package/icons/es5/Accessible.js +2 -1
  11. package/icons/es5/AccessibleForward.js +2 -1
  12. package/icons/es5/AssistWalker.js +2 -1
  13. package/icons/es5/Attribution.js +2 -1
  14. package/icons/es5/Bathtub.js +2 -1
  15. package/icons/es5/Biotech.js +2 -1
  16. package/icons/es5/Blind.js +2 -1
  17. package/icons/es5/BlurOff.js +16 -8
  18. package/icons/es5/Brightness1.js +2 -1
  19. package/icons/es5/BubbleChart.js +6 -3
  20. package/icons/es5/CameraAlt.js +2 -1
  21. package/icons/es5/Category.js +2 -1
  22. package/icons/es5/CheckCircleLightOutline.js +12 -17
  23. package/icons/es5/ChildCare.js +4 -2
  24. package/icons/es5/CoPresent.js +2 -1
  25. package/icons/es5/CoffeeMaker.js +2 -1
  26. package/icons/es5/CompassCalibration.js +2 -1
  27. package/icons/es5/ControlCamera.js +2 -1
  28. package/icons/es5/Deblur.js +24 -12
  29. package/icons/es5/Diversity1.js +4 -2
  30. package/icons/es5/EmojiPeople.js +2 -1
  31. package/icons/es5/EmojiSymbols.js +4 -2
  32. package/icons/es5/Face2.js +4 -2
  33. package/icons/es5/Face3.js +4 -2
  34. package/icons/es5/Face4.js +4 -2
  35. package/icons/es5/Face5.js +44 -22
  36. package/icons/es5/Face6.js +4 -2
  37. package/icons/es5/FaceRetouchingNatural.js +4 -2
  38. package/icons/es5/FaceRetouchingOff.js +2 -1
  39. package/icons/es5/FiberManualRecord.js +2 -1
  40. package/icons/es5/FiberSmartRecord.js +2 -1
  41. package/icons/es5/FireHydrantAlt.js +2 -1
  42. package/icons/es5/Garage.js +4 -2
  43. package/icons/es5/GolfCourse.js +2 -1
  44. package/icons/es5/HotTub.js +2 -1
  45. package/icons/es5/LinkedCamera.js +2 -1
  46. package/icons/es5/LocalSee.js +2 -1
  47. package/icons/es5/Man.js +2 -1
  48. package/icons/es5/Man2.js +2 -1
  49. package/icons/es5/Man4.js +2 -1
  50. package/icons/es5/ManageAccounts.js +2 -1
  51. package/icons/es5/MarkUnreadChatAlt.js +2 -1
  52. package/icons/es5/NoiseAware.js +2 -1
  53. package/icons/es5/NoiseControlOff.js +2 -1
  54. package/icons/es5/PeopleAlt.js +2 -1
  55. package/icons/es5/PersonSearch.js +2 -1
  56. package/icons/es5/Pets.js +8 -4
  57. package/icons/es5/Plagiarism.js +2 -1
  58. package/icons/es5/Policy.js +2 -1
  59. package/icons/es5/Pool.js +2 -1
  60. package/icons/es5/PriorityHigh.js +2 -1
  61. package/icons/es5/RecordVoiceOver.js +2 -1
  62. package/icons/es5/RememberMe.js +2 -1
  63. package/icons/es5/ReportGmailerrorred.js +2 -1
  64. package/icons/es5/RssFeed.js +2 -1
  65. package/icons/es5/ScatterPlot.js +6 -3
  66. package/icons/es5/ScreenSearchDesktop.js +2 -1
  67. package/icons/es5/SelfImprovement.js +2 -1
  68. package/icons/es5/SentimentDissatisfied.js +4 -2
  69. package/icons/es5/SentimentSatisfied.js +4 -2
  70. package/icons/es5/SentimentSatisfiedAlt.js +4 -2
  71. package/icons/es5/SentimentSlightlyDissatisfied.js +4 -2
  72. package/icons/es5/SettingsApplications.js +2 -1
  73. package/icons/es5/Shower.js +12 -6
  74. package/icons/es5/SpatialAudio.js +2 -1
  75. package/icons/es5/SpatialAudioOff.js +2 -1
  76. package/icons/es5/SpatialTracking.js +2 -1
  77. package/icons/es5/SpeakerGroup.js +2 -1
  78. package/icons/es5/Sports.js +2 -1
  79. package/icons/es5/SportsCricket.js +2 -1
  80. package/icons/es5/SportsGolf.js +6 -3
  81. package/icons/es5/SportsKabaddi.js +2 -1
  82. package/icons/es5/SportsMartialArts.js +2 -1
  83. package/icons/es5/Stream.js +8 -4
  84. package/icons/es5/Streetview.js +2 -1
  85. package/icons/es5/Subway.js +4 -2
  86. package/icons/es5/SupportAgent.js +4 -2
  87. package/icons/es5/WindPower.js +2 -1
  88. package/icons/es5/Woman.js +2 -1
  89. package/icons/es5/Woman2.js +2 -1
  90. package/icons/es5/Yard.js +2 -1
  91. package/icons/es5/index.js +2 -2
  92. package/icons/jsx/Accessible.jsx +1 -1
  93. package/icons/jsx/AccessibleForward.jsx +1 -1
  94. package/icons/jsx/AssistWalker.jsx +1 -1
  95. package/icons/jsx/Attribution.jsx +1 -1
  96. package/icons/jsx/Bathtub.jsx +1 -1
  97. package/icons/jsx/Biotech.jsx +1 -1
  98. package/icons/jsx/Blind.jsx +1 -1
  99. package/icons/jsx/BlurOff.jsx +8 -8
  100. package/icons/jsx/Brightness1.jsx +1 -1
  101. package/icons/jsx/BubbleChart.jsx +3 -3
  102. package/icons/jsx/CameraAlt.jsx +1 -1
  103. package/icons/jsx/Category.jsx +1 -1
  104. package/icons/jsx/CheckCircleLightOutline.jsx +9 -16
  105. package/icons/jsx/ChildCare.jsx +2 -2
  106. package/icons/jsx/CoPresent.jsx +1 -1
  107. package/icons/jsx/CoffeeMaker.jsx +1 -1
  108. package/icons/jsx/CompassCalibration.jsx +1 -1
  109. package/icons/jsx/ControlCamera.jsx +1 -1
  110. package/icons/jsx/Deblur.jsx +12 -12
  111. package/icons/jsx/Diversity1.jsx +2 -2
  112. package/icons/jsx/EmojiPeople.jsx +1 -1
  113. package/icons/jsx/EmojiSymbols.jsx +2 -2
  114. package/icons/jsx/Face2.jsx +2 -2
  115. package/icons/jsx/Face3.jsx +2 -2
  116. package/icons/jsx/Face4.jsx +2 -2
  117. package/icons/jsx/Face5.jsx +22 -22
  118. package/icons/jsx/Face6.jsx +2 -2
  119. package/icons/jsx/FaceRetouchingNatural.jsx +2 -2
  120. package/icons/jsx/FaceRetouchingOff.jsx +1 -1
  121. package/icons/jsx/FiberManualRecord.jsx +1 -1
  122. package/icons/jsx/FiberSmartRecord.jsx +1 -1
  123. package/icons/jsx/FireHydrantAlt.jsx +1 -1
  124. package/icons/jsx/Garage.jsx +2 -2
  125. package/icons/jsx/GolfCourse.jsx +1 -1
  126. package/icons/jsx/HotTub.jsx +1 -1
  127. package/icons/jsx/LinkedCamera.jsx +1 -1
  128. package/icons/jsx/LocalSee.jsx +1 -1
  129. package/icons/jsx/Man.jsx +1 -1
  130. package/icons/jsx/Man2.jsx +1 -1
  131. package/icons/jsx/Man4.jsx +1 -1
  132. package/icons/jsx/ManageAccounts.jsx +1 -1
  133. package/icons/jsx/MarkUnreadChatAlt.jsx +1 -1
  134. package/icons/jsx/NoiseAware.jsx +1 -1
  135. package/icons/jsx/NoiseControlOff.jsx +1 -1
  136. package/icons/jsx/PeopleAlt.jsx +1 -1
  137. package/icons/jsx/PersonSearch.jsx +1 -1
  138. package/icons/jsx/Pets.jsx +4 -4
  139. package/icons/jsx/Plagiarism.jsx +1 -1
  140. package/icons/jsx/Policy.jsx +1 -1
  141. package/icons/jsx/Pool.jsx +1 -1
  142. package/icons/jsx/PriorityHigh.jsx +1 -1
  143. package/icons/jsx/RecordVoiceOver.jsx +1 -1
  144. package/icons/jsx/RememberMe.jsx +1 -1
  145. package/icons/jsx/ReportGmailerrorred.jsx +1 -1
  146. package/icons/jsx/RssFeed.jsx +1 -1
  147. package/icons/jsx/ScatterPlot.jsx +3 -3
  148. package/icons/jsx/ScreenSearchDesktop.jsx +1 -1
  149. package/icons/jsx/SelfImprovement.jsx +1 -1
  150. package/icons/jsx/SentimentDissatisfied.jsx +2 -2
  151. package/icons/jsx/SentimentSatisfied.jsx +2 -2
  152. package/icons/jsx/SentimentSatisfiedAlt.jsx +2 -2
  153. package/icons/jsx/SentimentSlightlyDissatisfied.jsx +2 -2
  154. package/icons/jsx/SettingsApplications.jsx +1 -1
  155. package/icons/jsx/Shower.jsx +6 -6
  156. package/icons/jsx/SpatialAudio.jsx +1 -1
  157. package/icons/jsx/SpatialAudioOff.jsx +1 -1
  158. package/icons/jsx/SpatialTracking.jsx +1 -1
  159. package/icons/jsx/SpeakerGroup.jsx +1 -1
  160. package/icons/jsx/Sports.jsx +1 -1
  161. package/icons/jsx/SportsCricket.jsx +1 -1
  162. package/icons/jsx/SportsGolf.jsx +3 -3
  163. package/icons/jsx/SportsKabaddi.jsx +1 -1
  164. package/icons/jsx/SportsMartialArts.jsx +1 -1
  165. package/icons/jsx/Stream.jsx +4 -4
  166. package/icons/jsx/Streetview.jsx +1 -1
  167. package/icons/jsx/Subway.jsx +2 -2
  168. package/icons/jsx/SupportAgent.jsx +2 -2
  169. package/icons/jsx/WindPower.jsx +1 -1
  170. package/icons/jsx/Woman.jsx +1 -1
  171. package/icons/jsx/Woman2.jsx +1 -1
  172. package/icons/jsx/Yard.jsx +1 -1
  173. package/icons/svg/check_circle_light_outline.svg +13 -0
  174. package/lib/version.js +9 -0
  175. package/package.json +1 -1
  176. package/src/Button/README.md +5 -24
  177. package/src/DataTable/README.md +1 -1
  178. package/src/Modal/_ModalDialog.scss +12 -20
  179. package/src/SelectableBox/README.md +103 -71
  180. package/src/SelectableBox/index.jsx +5 -1
  181. package/src/SelectableBox/tests/SelectableBox.test.jsx +7 -0
  182. package/src/Tabs/README.md +76 -0
  183. package/styles/scss/core/core.scss +1 -1
@@ -6,6 +6,12 @@ const buildTokensCommand = require('../lib/build-tokens');
6
6
  const replaceVariablesCommand = require('../lib/replace-variables');
7
7
  const buildScssCommand = require('../lib/build-scss');
8
8
  const { sendTrackInfo } = require('../utils');
9
+ const versionCommand = require('../lib/version');
10
+
11
+ const commandAliases = {
12
+ '-v': 'version',
13
+ '--version': 'version',
14
+ };
9
15
 
10
16
  const COMMANDS = {
11
17
  /**
@@ -162,6 +168,10 @@ const COMMANDS = {
162
168
  ],
163
169
  description: 'Displays help for available commands.',
164
170
  },
171
+ version: {
172
+ executor: versionCommand,
173
+ description: 'Displays the current version of Paragon CLI.',
174
+ },
165
175
  };
166
176
 
167
177
  /**
@@ -172,7 +182,8 @@ const COMMANDS = {
172
182
  */
173
183
  (async () => {
174
184
  const [command, ...commandArgs] = process.argv.slice(2);
175
- const executor = COMMANDS[command];
185
+ const resolvedCommand = commandAliases[command] || command;
186
+ const executor = COMMANDS[resolvedCommand];
176
187
 
177
188
  if (!executor) {
178
189
  // eslint-disable-next-line no-console
@@ -26,6 +26,18 @@
26
26
  max-height: none;
27
27
  margin: var(--pgn-spacing-modal-dialog-margin);
28
28
  }
29
+
30
+ .pgn__modal-header {
31
+ padding-bottom: calc(var(--pgn-spacing-modal-inner-padding-base) / 2);
32
+ }
33
+
34
+ .pgn__modal-body {
35
+ padding: calc(var(--pgn-spacing-modal-inner-padding-base) / 2) var(--pgn-spacing-modal-inner-padding-base);
36
+
37
+ &::before {
38
+ top: calc(var(--pgn-spacing-modal-inner-padding-base) / 2 * -1);
39
+ }
40
+ }
29
41
  }
30
42
 
31
43
  // Sizes
@@ -232,22 +244,6 @@
232
244
 
233
245
  // Color Variants
234
246
 
235
- .pgn__modal-default {
236
- // Default style modals don't have a background on the header which
237
- // ends up looking spaced too far away from the body content.
238
- .pgn__modal-header {
239
- padding-bottom: calc(var(--pgn-spacing-modal-inner-padding-base) / 2);
240
- }
241
-
242
- .pgn__modal-body {
243
- padding: calc(var(--pgn-spacing-modal-inner-padding-base) / 2) var(--pgn-spacing-modal-inner-padding-base);
244
-
245
- &::before {
246
- top: calc(var(--pgn-spacing-modal-inner-padding-base) / 2 * -1);
247
- }
248
- }
249
- }
250
-
251
247
  .pgn__modal-dark {
252
248
  .pgn__modal-header,
253
249
  .pgn__modal-hero {
@@ -258,10 +254,6 @@
258
254
  color: inherit;
259
255
  }
260
256
  }
261
-
262
- .pgn__modal-header {
263
- border-bottom: solid 1px var(--pgn-color-light-base);
264
- }
265
257
  }
266
258
 
267
259
  .pgn__modal-warning .pgn__modal-header {
@@ -1,4 +1,4 @@
1
- const _excluded = ["type", "value", "checked", "children", "isIndeterminate", "isInvalid", "onClick", "onFocus", "inputHidden", "className"];
1
+ const _excluded = ["type", "value", "checked", "children", "isIndeterminate", "isInvalid", "onClick", "onFocus", "inputHidden", "className", "showActiveBoxState"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -26,7 +26,8 @@ const SelectableBox = /*#__PURE__*/React.forwardRef((_ref, ref) => {
26
26
  onClick,
27
27
  onFocus,
28
28
  inputHidden,
29
- className
29
+ className,
30
+ showActiveBoxState
30
31
  } = _ref,
31
32
  props = _objectWithoutProperties(_ref, _excluded);
32
33
  const inputType = getInputType('SelectableBox', type);
@@ -68,7 +69,7 @@ const SelectableBox = /*#__PURE__*/React.forwardRef((_ref, ref) => {
68
69
  onClick: () => inputRef.current.click(),
69
70
  onFocus: onFocus,
70
71
  className: classNames('pgn__selectable_box', className, {
71
- 'pgn__selectable_box-active': isChecked() || checked,
72
+ 'pgn__selectable_box-active': !inputHidden && !showActiveBoxState ? false : isChecked() || checked,
72
73
  'pgn__selectable_box-invalid': isInvalid
73
74
  }),
74
75
  tabIndex: 0,
@@ -95,7 +96,9 @@ SelectableBox.propTypes = {
95
96
  /** Adds errors styles to the `SelectableBox`. */
96
97
  isInvalid: PropTypes.bool,
97
98
  /** A class that is appended to the base element. */
98
- className: PropTypes.string
99
+ className: PropTypes.string,
100
+ /** Controls the visibility of the active state for the `SelectableBox`. */
101
+ showActiveBoxState: PropTypes.bool
99
102
  };
100
103
  SelectableBox.defaultProps = {
101
104
  value: undefined,
@@ -106,7 +109,8 @@ SelectableBox.defaultProps = {
106
109
  inputHidden: true,
107
110
  isIndeterminate: false,
108
111
  isInvalid: false,
109
- className: undefined
112
+ className: undefined,
113
+ showActiveBoxState: true
110
114
  };
111
115
  SelectableBox.Set = SelectableBoxSet;
112
116
  export default SelectableBox;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useRef","useEffect","PropTypes","classNames","SelectableBoxSet","useCheckboxSetContext","useRadioSetContext","getInputType","INPUT_TYPES","SelectableBox","forwardRef","_ref","ref","type","value","checked","children","isIndeterminate","isInvalid","onClick","onFocus","inputHidden","className","props","_objectWithoutProperties","_excluded","inputType","radioValue","checkboxValues","isChecked","includes","inputRef","input","createElement","_objectSpread","hidden","tabIndex","onChange","current","onclick","_extends","role","onKeyPress","click","propTypes","node","isRequired","oneOfType","string","number","bool","oneOf","func","defaultProps","undefined","Set"],"sources":["../../src/SelectableBox/index.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport SelectableBoxSet from './SelectableBoxSet';\nimport { useCheckboxSetContext } from '../Form/FormCheckboxSetContext';\nimport { useRadioSetContext } from '../Form/FormRadioSetContext';\nimport { getInputType } from './utils';\n\nconst INPUT_TYPES = [\n 'radio',\n 'checkbox',\n];\n\nconst SelectableBox = React.forwardRef(({\n type,\n value,\n checked,\n children,\n isIndeterminate,\n isInvalid,\n onClick,\n onFocus,\n inputHidden,\n className,\n ...props\n}, ref) => {\n const inputType = getInputType('SelectableBox', type);\n const { value: radioValue } = useRadioSetContext();\n const { value: checkboxValues = [] } = useCheckboxSetContext();\n\n const isChecked = () => {\n switch (type) {\n case 'radio':\n return radioValue === value;\n case 'checkbox':\n return checkboxValues.includes(value);\n default:\n return radioValue === value;\n }\n };\n\n const inputRef = useRef(null);\n const input = React.createElement(inputType, {\n value,\n checked,\n hidden: inputHidden,\n ref: inputRef,\n tabIndex: -1,\n onChange: () => {},\n ...(type === 'checkbox' ? { ...props, isIndeterminate } : { ...props }),\n }, null);\n\n useEffect(() => {\n if (onClick && inputRef.current) {\n inputRef.current.onclick = () => onClick(inputRef.current);\n }\n }, [onClick]);\n\n return (\n <div\n role=\"button\"\n onKeyPress={() => inputRef.current.click()}\n onClick={() => inputRef.current.click()}\n onFocus={onFocus}\n className={classNames('pgn__selectable_box', className, {\n 'pgn__selectable_box-active': isChecked() || checked,\n 'pgn__selectable_box-invalid': isInvalid,\n })}\n tabIndex={0}\n ref={ref}\n {...props}\n >\n {input}\n {children}\n </div>\n );\n});\n\nSelectableBox.propTypes = {\n /** Content of the `SelectableBox`. */\n children: PropTypes.node.isRequired,\n /** A value that is passed to the input tag. */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Controls whether `SelectableBox` is checked. */\n checked: PropTypes.bool,\n /** Indicates the input type: checkbox or radio. */\n type: PropTypes.oneOf(INPUT_TYPES),\n /** Function that is called when the `SelectableBox` is clicked. */\n onClick: PropTypes.func,\n /** Function that is called when the `SelectableBox` is focused. */\n onFocus: PropTypes.func,\n /** Controls display of the input (checkbox or radio button) on the `SelectableBox`. */\n inputHidden: PropTypes.bool,\n /** Indicates a state for the 'checkbox' `type` when `SelectableBox` is neither checked nor unchecked. */\n isIndeterminate: PropTypes.bool,\n /** Adds errors styles to the `SelectableBox`. */\n isInvalid: PropTypes.bool,\n /** A class that is appended to the base element. */\n className: PropTypes.string,\n};\n\nSelectableBox.defaultProps = {\n value: undefined,\n checked: false,\n type: 'radio',\n onClick: () => {},\n onFocus: () => {},\n inputHidden: true,\n isIndeterminate: false,\n isInvalid: false,\n className: undefined,\n};\n\nSelectableBox.Set = SelectableBoxSet;\nexport default SelectableBox;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useRef","useEffect","PropTypes","classNames","SelectableBoxSet","useCheckboxSetContext","useRadioSetContext","getInputType","INPUT_TYPES","SelectableBox","forwardRef","_ref","ref","type","value","checked","children","isIndeterminate","isInvalid","onClick","onFocus","inputHidden","className","showActiveBoxState","props","_objectWithoutProperties","_excluded","inputType","radioValue","checkboxValues","isChecked","includes","inputRef","input","createElement","_objectSpread","hidden","tabIndex","onChange","current","onclick","_extends","role","onKeyPress","click","propTypes","node","isRequired","oneOfType","string","number","bool","oneOf","func","defaultProps","undefined","Set"],"sources":["../../src/SelectableBox/index.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport SelectableBoxSet from './SelectableBoxSet';\nimport { useCheckboxSetContext } from '../Form/FormCheckboxSetContext';\nimport { useRadioSetContext } from '../Form/FormRadioSetContext';\nimport { getInputType } from './utils';\n\nconst INPUT_TYPES = [\n 'radio',\n 'checkbox',\n];\n\nconst SelectableBox = React.forwardRef(({\n type,\n value,\n checked,\n children,\n isIndeterminate,\n isInvalid,\n onClick,\n onFocus,\n inputHidden,\n className,\n showActiveBoxState,\n ...props\n}, ref) => {\n const inputType = getInputType('SelectableBox', type);\n const { value: radioValue } = useRadioSetContext();\n const { value: checkboxValues = [] } = useCheckboxSetContext();\n\n const isChecked = () => {\n switch (type) {\n case 'radio':\n return radioValue === value;\n case 'checkbox':\n return checkboxValues.includes(value);\n default:\n return radioValue === value;\n }\n };\n\n const inputRef = useRef(null);\n const input = React.createElement(inputType, {\n value,\n checked,\n hidden: inputHidden,\n ref: inputRef,\n tabIndex: -1,\n onChange: () => {},\n ...(type === 'checkbox' ? { ...props, isIndeterminate } : { ...props }),\n }, null);\n\n useEffect(() => {\n if (onClick && inputRef.current) {\n inputRef.current.onclick = () => onClick(inputRef.current);\n }\n }, [onClick]);\n\n return (\n <div\n role=\"button\"\n onKeyPress={() => inputRef.current.click()}\n onClick={() => inputRef.current.click()}\n onFocus={onFocus}\n className={classNames('pgn__selectable_box', className, {\n 'pgn__selectable_box-active': (!inputHidden && !showActiveBoxState) ? false : isChecked() || checked,\n 'pgn__selectable_box-invalid': isInvalid,\n })}\n tabIndex={0}\n ref={ref}\n {...props}\n >\n {input}\n {children}\n </div>\n );\n});\n\nSelectableBox.propTypes = {\n /** Content of the `SelectableBox`. */\n children: PropTypes.node.isRequired,\n /** A value that is passed to the input tag. */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Controls whether `SelectableBox` is checked. */\n checked: PropTypes.bool,\n /** Indicates the input type: checkbox or radio. */\n type: PropTypes.oneOf(INPUT_TYPES),\n /** Function that is called when the `SelectableBox` is clicked. */\n onClick: PropTypes.func,\n /** Function that is called when the `SelectableBox` is focused. */\n onFocus: PropTypes.func,\n /** Controls display of the input (checkbox or radio button) on the `SelectableBox`. */\n inputHidden: PropTypes.bool,\n /** Indicates a state for the 'checkbox' `type` when `SelectableBox` is neither checked nor unchecked. */\n isIndeterminate: PropTypes.bool,\n /** Adds errors styles to the `SelectableBox`. */\n isInvalid: PropTypes.bool,\n /** A class that is appended to the base element. */\n className: PropTypes.string,\n /** Controls the visibility of the active state for the `SelectableBox`. */\n showActiveBoxState: PropTypes.bool,\n};\n\nSelectableBox.defaultProps = {\n value: undefined,\n checked: false,\n type: 'radio',\n onClick: () => {},\n onFocus: () => {},\n inputHidden: true,\n isIndeterminate: false,\n isInvalid: false,\n className: undefined,\n showActiveBoxState: true,\n};\n\nSelectableBox.Set = SelectableBoxSet;\nexport default SelectableBox;\n"],"mappings":"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"}