@dreamcommerce/aurora 2.4.2-1 → 2.4.3-1

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 (200) hide show
  1. package/build/cjs/packages/aurora/src/components/color_picker/components/label.js +3 -2
  2. package/build/cjs/packages/aurora/src/components/color_picker/components/label.js.map +1 -1
  3. package/build/cjs/packages/aurora/src/components/color_picker/css_classes.js +1 -5
  4. package/build/cjs/packages/aurora/src/components/color_picker/css_classes.js.map +1 -1
  5. package/build/cjs/packages/aurora/src/components/controls/components/helper.js +23 -0
  6. package/build/cjs/packages/aurora/src/components/{typography/index.js.map → controls/components/helper.js.map} +1 -1
  7. package/build/cjs/packages/aurora/src/components/controls/components/input.js +1 -2
  8. package/build/cjs/packages/aurora/src/components/controls/components/input.js.map +1 -1
  9. package/build/cjs/packages/aurora/src/components/controls/components/label.js +2 -2
  10. package/build/cjs/packages/aurora/src/components/controls/css_classes.js +5 -1
  11. package/build/cjs/packages/aurora/src/components/controls/css_classes.js.map +1 -1
  12. package/build/cjs/packages/aurora/src/components/controls/hoc/control_cell_selector/index.js +2 -2
  13. package/build/cjs/packages/aurora/src/components/controls/hoc/control_checkbox/index.js +9 -5
  14. package/build/cjs/packages/aurora/src/components/controls/hoc/control_checkbox/index.js.map +1 -1
  15. package/build/cjs/packages/aurora/src/components/controls/hoc/control_checkbox_switch/index.js +2 -2
  16. package/build/cjs/packages/aurora/src/components/controls/hoc/control_color_picker/index.js +2 -2
  17. package/build/cjs/packages/aurora/src/components/controls/hoc/control_date_picker/index.js +2 -2
  18. package/build/cjs/packages/aurora/src/components/controls/hoc/control_file_picker/index.js +2 -2
  19. package/build/cjs/packages/aurora/src/components/controls/hoc/control_input/index.js +3 -2
  20. package/build/cjs/packages/aurora/src/components/controls/hoc/control_input/index.js.map +1 -1
  21. package/build/cjs/packages/aurora/src/components/controls/hoc/control_multi_select/index.js +2 -2
  22. package/build/cjs/packages/aurora/src/components/controls/hoc/control_radio/index.js +5 -4
  23. package/build/cjs/packages/aurora/src/components/controls/hoc/control_radio/index.js.map +1 -1
  24. package/build/cjs/packages/aurora/src/components/controls/hoc/control_radio_group/index.js +2 -2
  25. package/build/cjs/packages/aurora/src/components/controls/hoc/control_range/index.js +2 -2
  26. package/build/cjs/packages/aurora/src/components/controls/hoc/control_select/index.js +2 -2
  27. package/build/cjs/packages/aurora/src/components/controls/hoc/control_tags_selector/index.js +2 -2
  28. package/build/cjs/packages/aurora/src/components/controls/hoc/control_textarea/index.js +3 -2
  29. package/build/cjs/packages/aurora/src/components/controls/hoc/control_textarea/index.js.map +1 -1
  30. package/build/cjs/packages/aurora/src/components/controls/index.js +6 -4
  31. package/build/cjs/packages/aurora/src/components/controls/index.js.map +1 -1
  32. package/build/cjs/packages/aurora/src/components/dropdown/components/content.js +56 -29
  33. package/build/cjs/packages/aurora/src/components/dropdown/components/content.js.map +1 -1
  34. package/build/cjs/packages/aurora/src/components/dropdown/hoc/multiselect/index.js +2 -2
  35. package/build/cjs/packages/aurora/src/components/dropdown/hooks/use_toggle.js +1 -3
  36. package/build/cjs/packages/aurora/src/components/dropdown/hooks/use_toggle.js.map +1 -1
  37. package/build/cjs/packages/aurora/src/components/dropdown/index.js +2 -2
  38. package/build/cjs/packages/aurora/src/components/file_picker/components/selected_file_preview.js +3 -3
  39. package/build/cjs/packages/aurora/src/components/flash_messenger/components/flash_message.js +6 -4
  40. package/build/cjs/packages/aurora/src/components/flash_messenger/components/flash_message.js.map +1 -1
  41. package/build/cjs/packages/aurora/src/components/heading/index.js +5 -4
  42. package/build/cjs/packages/aurora/src/components/heading/index.js.map +1 -1
  43. package/build/cjs/packages/aurora/src/components/label/css_classes.js +1 -3
  44. package/build/cjs/packages/aurora/src/components/label/css_classes.js.map +1 -1
  45. package/build/cjs/packages/aurora/src/components/label/index.js +2 -5
  46. package/build/cjs/packages/aurora/src/components/label/index.js.map +1 -1
  47. package/build/cjs/packages/aurora/src/components/loader/constants.js +6 -8
  48. package/build/cjs/packages/aurora/src/components/loader/constants.js.map +1 -1
  49. package/build/cjs/packages/aurora/src/components/loader/css_classes.js +0 -2
  50. package/build/cjs/packages/aurora/src/components/loader/css_classes.js.map +1 -1
  51. package/build/cjs/packages/aurora/src/components/loader/index.js +2 -2
  52. package/build/cjs/packages/aurora/src/components/slide/components/{slide_header.js → slide_close_btn_wrapper.js} +5 -5
  53. package/build/cjs/packages/aurora/src/components/slide/css_classes.js +1 -1
  54. package/build/cjs/packages/aurora/src/components/stack/index.js +4 -4
  55. package/build/cjs/packages/aurora/src/components/stack/stack_constants.js +1 -19
  56. package/build/cjs/packages/aurora/src/components/stack/stack_constants.js.map +1 -1
  57. package/build/cjs/packages/aurora/src/components/tooltip/css_classes.js +10 -0
  58. package/build/{esm/packages/aurora/src/components/typography/index.js.map → cjs/packages/aurora/src/components/tooltip/css_classes.js.map} +1 -1
  59. package/build/cjs/packages/aurora/src/components/tooltip/index.js +20 -14
  60. package/build/cjs/packages/aurora/src/components/tooltip/index.js.map +1 -1
  61. package/build/cjs/packages/aurora/src/css/checkbox/main.module.less.js +1 -1
  62. package/build/cjs/packages/aurora/src/css/color_picker/main.module.less.js +2 -2
  63. package/build/cjs/packages/aurora/src/css/controls/main.module.less.js +1 -1
  64. package/build/cjs/packages/aurora/src/css/heading/main.module.less.js +2 -2
  65. package/build/cjs/packages/aurora/src/css/helper/main.module.less.js +12 -0
  66. package/build/cjs/packages/aurora/src/css/hint/main.module.less.js +1 -1
  67. package/build/cjs/packages/aurora/src/css/label/main.module.less.js +2 -2
  68. package/build/cjs/packages/aurora/src/css/loader/main.module.less.js +2 -2
  69. package/build/cjs/packages/aurora/src/css/message-box/main.module.less.js +2 -2
  70. package/build/cjs/packages/aurora/src/css/slide/main.module.less.js +2 -2
  71. package/build/cjs/packages/aurora/src/css/stack/main.module.less.js +2 -2
  72. package/build/cjs/packages/aurora/src/css/tooltip/main.module.less.js +2 -2
  73. package/build/cjs/packages/aurora/src/index.js +45 -47
  74. package/build/cjs/packages/aurora/src/index.js.map +1 -1
  75. package/build/cjs/packages/utilities/build/esm/packages/utilities/src/file_utils.js +26 -0
  76. package/build/cjs/packages/utilities/build/esm/packages/utilities/src/file_utils.js.map +1 -0
  77. package/build/esm/packages/aurora/src/components/color_picker/components/label.js +4 -3
  78. package/build/esm/packages/aurora/src/components/color_picker/components/label.js.map +1 -1
  79. package/build/esm/packages/aurora/src/components/color_picker/css_classes.d.ts +0 -2
  80. package/build/esm/packages/aurora/src/components/color_picker/css_classes.js +2 -4
  81. package/build/esm/packages/aurora/src/components/color_picker/css_classes.js.map +1 -1
  82. package/build/esm/packages/aurora/src/components/controls/components/helper.d.ts +4 -0
  83. package/build/esm/packages/aurora/src/components/controls/components/helper.js +14 -0
  84. package/build/esm/packages/aurora/src/components/controls/components/helper.js.map +1 -0
  85. package/build/esm/packages/aurora/src/components/controls/components/input.js +1 -2
  86. package/build/esm/packages/aurora/src/components/controls/components/input.js.map +1 -1
  87. package/build/esm/packages/aurora/src/components/controls/components/label.js +2 -2
  88. package/build/esm/packages/aurora/src/components/controls/css_classes.d.ts +2 -0
  89. package/build/esm/packages/aurora/src/components/controls/css_classes.js +4 -2
  90. package/build/esm/packages/aurora/src/components/controls/css_classes.js.map +1 -1
  91. package/build/esm/packages/aurora/src/components/controls/hoc/control_cell_selector/index.js +2 -2
  92. package/build/esm/packages/aurora/src/components/controls/hoc/control_checkbox/index.js +6 -2
  93. package/build/esm/packages/aurora/src/components/controls/hoc/control_checkbox/index.js.map +1 -1
  94. package/build/esm/packages/aurora/src/components/controls/hoc/control_checkbox_switch/index.js +2 -2
  95. package/build/esm/packages/aurora/src/components/controls/hoc/control_color_picker/index.js +2 -2
  96. package/build/esm/packages/aurora/src/components/controls/hoc/control_date_picker/index.js +2 -2
  97. package/build/esm/packages/aurora/src/components/controls/hoc/control_file_picker/index.js +2 -2
  98. package/build/esm/packages/aurora/src/components/controls/hoc/control_input/index.js +3 -2
  99. package/build/esm/packages/aurora/src/components/controls/hoc/control_input/index.js.map +1 -1
  100. package/build/esm/packages/aurora/src/components/controls/hoc/control_multi_select/index.js +2 -2
  101. package/build/esm/packages/aurora/src/components/controls/hoc/control_radio/index.js +5 -4
  102. package/build/esm/packages/aurora/src/components/controls/hoc/control_radio/index.js.map +1 -1
  103. package/build/esm/packages/aurora/src/components/controls/hoc/control_radio_group/index.js +2 -2
  104. package/build/esm/packages/aurora/src/components/controls/hoc/control_range/index.js +2 -2
  105. package/build/esm/packages/aurora/src/components/controls/hoc/control_select/index.js +2 -2
  106. package/build/esm/packages/aurora/src/components/controls/hoc/control_tags_selector/index.js +2 -2
  107. package/build/esm/packages/aurora/src/components/controls/hoc/control_textarea/index.js +3 -2
  108. package/build/esm/packages/aurora/src/components/controls/hoc/control_textarea/index.js.map +1 -1
  109. package/build/esm/packages/aurora/src/components/controls/index.js +6 -4
  110. package/build/esm/packages/aurora/src/components/controls/index.js.map +1 -1
  111. package/build/esm/packages/aurora/src/components/controls/types.d.ts +10 -15
  112. package/build/esm/packages/aurora/src/components/controls/types.js +0 -1
  113. package/build/esm/packages/aurora/src/components/controls/types.js.map +1 -1
  114. package/build/esm/packages/aurora/src/components/date_picker/types.d.ts +1 -2
  115. package/build/esm/packages/aurora/src/components/date_picker/types.js.map +1 -1
  116. package/build/esm/packages/aurora/src/components/dropdown/components/content.js +56 -29
  117. package/build/esm/packages/aurora/src/components/dropdown/components/content.js.map +1 -1
  118. package/build/esm/packages/aurora/src/components/dropdown/context/types.d.ts +0 -2
  119. package/build/esm/packages/aurora/src/components/dropdown/hoc/multiselect/index.js +2 -2
  120. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_toggle.d.ts +1 -1
  121. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_toggle.js +1 -3
  122. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_toggle.js.map +1 -1
  123. package/build/esm/packages/aurora/src/components/dropdown/index.js +2 -2
  124. package/build/esm/packages/aurora/src/components/dropdown/types.d.ts +4 -0
  125. package/build/esm/packages/aurora/src/components/file_picker/components/selected_file_preview.js +1 -1
  126. package/build/esm/packages/aurora/src/components/flash_messenger/components/flash_message.js +6 -4
  127. package/build/esm/packages/aurora/src/components/flash_messenger/components/flash_message.js.map +1 -1
  128. package/build/esm/packages/aurora/src/components/heading/index.js +5 -4
  129. package/build/esm/packages/aurora/src/components/heading/index.js.map +1 -1
  130. package/build/esm/packages/aurora/src/components/label/css_classes.d.ts +0 -1
  131. package/build/esm/packages/aurora/src/components/label/css_classes.js +2 -3
  132. package/build/esm/packages/aurora/src/components/label/css_classes.js.map +1 -1
  133. package/build/esm/packages/aurora/src/components/label/index.js +3 -6
  134. package/build/esm/packages/aurora/src/components/label/index.js.map +1 -1
  135. package/build/esm/packages/aurora/src/components/label/types.d.ts +1 -2
  136. package/build/esm/packages/aurora/src/components/label/types.js.map +1 -1
  137. package/build/esm/packages/aurora/src/components/loader/constants.d.ts +6 -8
  138. package/build/esm/packages/aurora/src/components/loader/constants.js +7 -9
  139. package/build/esm/packages/aurora/src/components/loader/constants.js.map +1 -1
  140. package/build/esm/packages/aurora/src/components/loader/css_classes.d.ts +0 -1
  141. package/build/esm/packages/aurora/src/components/loader/css_classes.js +1 -2
  142. package/build/esm/packages/aurora/src/components/loader/css_classes.js.map +1 -1
  143. package/build/esm/packages/aurora/src/components/loader/index.js +2 -2
  144. package/build/esm/packages/aurora/src/components/loader/types.d.ts +0 -1
  145. package/build/esm/packages/aurora/src/components/slide/components/slide_close_btn_wrapper.d.ts +4 -0
  146. package/build/esm/packages/aurora/src/components/slide/components/{slide_header.js → slide_close_btn_wrapper.js} +5 -5
  147. package/build/esm/packages/aurora/src/components/slide/css_classes.d.ts +1 -1
  148. package/build/esm/packages/aurora/src/components/slide/css_classes.js +1 -1
  149. package/build/esm/packages/aurora/src/components/stack/index.js +5 -5
  150. package/build/esm/packages/aurora/src/components/stack/stack_constants.d.ts +1 -5
  151. package/build/esm/packages/aurora/src/components/stack/stack_constants.js +2 -18
  152. package/build/esm/packages/aurora/src/components/stack/stack_constants.js.map +1 -1
  153. package/build/esm/packages/aurora/src/components/stack/stack_types.d.ts +2 -4
  154. package/build/esm/packages/aurora/src/components/tooltip/css_classes.d.ts +2 -0
  155. package/build/esm/packages/aurora/src/components/tooltip/css_classes.js +5 -0
  156. package/build/esm/packages/aurora/src/components/tooltip/css_classes.js.map +1 -0
  157. package/build/esm/packages/aurora/src/components/tooltip/index.js +20 -14
  158. package/build/esm/packages/aurora/src/components/tooltip/index.js.map +1 -1
  159. package/build/esm/packages/aurora/src/components/tooltip/tooltip_types.d.ts +3 -3
  160. package/build/esm/packages/aurora/src/components/tooltip/tooltip_types.js +1 -0
  161. package/build/esm/packages/aurora/src/components/tooltip/tooltip_types.js.map +1 -1
  162. package/build/esm/packages/aurora/src/css/checkbox/main.module.less.js +1 -1
  163. package/build/esm/packages/aurora/src/css/color_picker/main.module.less.js +2 -2
  164. package/build/esm/packages/aurora/src/css/controls/main.module.less.js +1 -1
  165. package/build/esm/packages/aurora/src/css/heading/main.module.less.js +2 -2
  166. package/build/esm/packages/aurora/src/css/helper/main.module.less.js +8 -0
  167. package/build/esm/packages/aurora/src/css/hint/main.module.less.js +1 -1
  168. package/build/esm/packages/aurora/src/css/label/main.module.less.js +2 -2
  169. package/build/esm/packages/aurora/src/css/loader/main.module.less.js +2 -2
  170. package/build/esm/packages/aurora/src/css/message-box/main.module.less.js +2 -2
  171. package/build/esm/packages/aurora/src/css/slide/main.module.less.js +2 -2
  172. package/build/esm/packages/aurora/src/css/stack/main.module.less.js +2 -2
  173. package/build/esm/packages/aurora/src/css/tooltip/main.module.less.js +2 -2
  174. package/build/esm/packages/aurora/src/hooks/use_portal_child_position.d.ts +9 -0
  175. package/build/esm/packages/aurora/src/hooks/use_portal_child_position.js +25 -0
  176. package/build/esm/packages/aurora/src/hooks/use_portal_child_position.js.map +1 -0
  177. package/build/esm/packages/aurora/src/index.d.ts +2 -3
  178. package/build/esm/packages/aurora/src/index.js +3 -4
  179. package/build/esm/packages/aurora/src/index.js.map +1 -1
  180. package/build/esm/packages/utilities/build/esm/packages/utilities/src/file_utils.js +22 -0
  181. package/build/esm/packages/utilities/build/esm/packages/utilities/src/file_utils.js.map +1 -0
  182. package/package.json +2 -2
  183. package/build/cjs/packages/aurora/src/components/typography/index.js +0 -25
  184. package/build/cjs/packages/aurora/src/components/typography/typography_constants.js +0 -68
  185. package/build/cjs/packages/aurora/src/components/typography/typography_constants.js.map +0 -1
  186. package/build/cjs/packages/aurora/src/css/typography/main.module.less.js +0 -12
  187. package/build/esm/packages/aurora/src/components/slide/components/slide_header.d.ts +0 -4
  188. package/build/esm/packages/aurora/src/components/typography/index.d.ts +0 -4
  189. package/build/esm/packages/aurora/src/components/typography/index.js +0 -16
  190. package/build/esm/packages/aurora/src/components/typography/typography_constants.d.ts +0 -52
  191. package/build/esm/packages/aurora/src/components/typography/typography_constants.js +0 -56
  192. package/build/esm/packages/aurora/src/components/typography/typography_constants.js.map +0 -1
  193. package/build/esm/packages/aurora/src/components/typography/typography_types.d.ts +0 -17
  194. package/build/esm/packages/aurora/src/components/typography/typography_types.js +0 -4
  195. package/build/esm/packages/aurora/src/components/typography/typography_types.js.map +0 -1
  196. package/build/esm/packages/aurora/src/css/typography/main.module.less.js +0 -8
  197. /package/build/cjs/packages/aurora/src/components/slide/components/{slide_header.js.map → slide_close_btn_wrapper.js.map} +0 -0
  198. /package/build/cjs/packages/aurora/src/css/{typography → helper}/main.module.less.js.map +0 -0
  199. /package/build/esm/packages/aurora/src/components/slide/components/{slide_header.js.map → slide_close_btn_wrapper.js.map} +0 -0
  200. /package/build/esm/packages/aurora/src/css/{typography → helper}/main.module.less.js.map +0 -0
@@ -15,12 +15,12 @@ import Hint from '../../../hint/index.js';
15
15
  * />
16
16
  * )
17
17
  */
18
- const ControlCheckboxSwitch = ({ id, label, name, hint, hintOptions = { isFixed: true }, value, initiallyChecked, disabled, onChange, errors, labelAdditionalInfo }) => {
18
+ const ControlCheckboxSwitch = ({ id, label, name, hint, hintOptions = { isFixed: true }, value, initiallyChecked, disabled, onChange, errors }) => {
19
19
  return (React.createElement(Control, { errors: errors, name: name, id: id },
20
20
  React.createElement(Control.Content, null,
21
21
  React.createElement(Control.Element, { type: "checkbox" },
22
22
  React.createElement(Control.CheckboxSwitch, { id: id, name: name, value: value, initiallyChecked: initiallyChecked, disabled: disabled, onChange: onChange }),
23
- React.createElement(Label, { htmlFor: id, additionalInfo: labelAdditionalInfo },
23
+ React.createElement(Label, { htmlFor: id },
24
24
  label,
25
25
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, hint: hint, spacingLeft: true })))),
26
26
  React.createElement(Control.Errors, null)));
@@ -20,13 +20,13 @@ import Dropdown from '../../../dropdown/index.js';
20
20
  * />
21
21
  * )
22
22
  */
23
- const ControlColorPicker = ({ initialColor = '#FFFFFF', name, isRequired, label, id, onChange, hideChooseCancelButtons, errors, hint, hintOptions = { isFixed: true }, labelAdditionalInfo }) => {
23
+ const ControlColorPicker = ({ initialColor = '#FFFFFF', name, isRequired, label, id, onChange, hideChooseCancelButtons, errors, hint, hintOptions = { isFixed: true } }) => {
24
24
  const colorPickerContext = useColorPicker({ initialColorHex: initialColor, onChange });
25
25
  return (React.createElement(ColorPickerContext.Provider, { value: colorPickerContext },
26
26
  React.createElement(Dropdown, null,
27
27
  React.createElement(Dropdown.CustomLabel, null,
28
28
  React.createElement(Control, { errors: errors, name: name, id: id },
29
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
29
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
30
30
  label,
31
31
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
32
32
  React.createElement(Control.Content, null,
@@ -25,7 +25,7 @@ const DatepickerViews = {
25
25
  * />
26
26
  * )
27
27
  */
28
- const ControlDatepicker = ({ onChange, label, name, isRequired, id = 'datepicker-id', type = 'single', defaultDate, defaultRange, maxDate, minDate, maxRange, minRange, className, showDefaultRanges = true, showButtons = true, errors, hint, labelAdditionalInfo }) => {
28
+ const ControlDatepicker = ({ onChange, label, name, isRequired, id = 'datepicker-id', type = 'single', defaultDate, defaultRange, maxDate, minDate, maxRange, minRange, className, showDefaultRanges = true, showButtons = true, errors, hint }) => {
29
29
  const valueController = useValueController({
30
30
  type,
31
31
  defaultDate,
@@ -44,7 +44,7 @@ const ControlDatepicker = ({ onChange, label, name, isRequired, id = 'datepicker
44
44
  return (React.createElement(DatepickerContext.Provider, { value: valueController },
45
45
  React.createElement(Dropdown.CustomLabel, null,
46
46
  React.createElement(Control, { errors: errors, name: name, id: id },
47
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
47
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
48
48
  label,
49
49
  hint && React.createElement(Hint, { fixed: true, spacingLeft: true, hint: hint }))),
50
50
  React.createElement(Control.Content, null,
@@ -3,9 +3,9 @@ import Control from '../../index.js';
3
3
  import Hint from '../../../hint/index.js';
4
4
  import FilePicker from '../../../file_picker/index.js';
5
5
 
6
- const ControlFilePicker = ({ label, isRequired, id, name, onChange, allowedExtensions, initialFile, className, errors, hint, hintOptions = { isFixed: true }, labelAdditionalInfo }) => {
6
+ const ControlFilePicker = ({ label, isRequired, id, name, onChange, allowedExtensions, initialFile, className, errors, hint, hintOptions = { isFixed: true } }) => {
7
7
  return (React.createElement(Control, { errors: errors, name: name, id: id },
8
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
8
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
9
9
  label,
10
10
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
11
11
  React.createElement(Control.Content, null,
@@ -17,11 +17,12 @@ import Hint from '../../../hint/index.js';
17
17
  * />
18
18
  * )
19
19
  */
20
- const ControlInput = ({ label, isRequired, id, name, value, placeholder, prefix, postfix, disabled, onChange, onKeyPress, onKeyUp, hint, hintOptions = { isFixed: true }, errors, labelAdditionalInfo, additionalInfo, ...props }) => {
20
+ const ControlInput = ({ label, isRequired, id, name, value, placeholder, prefix, postfix, disabled, onChange, onKeyPress, onKeyUp, hint, hintOptions = { isFixed: true }, errors, helper, additionalInfo, ...props }) => {
21
21
  return (React.createElement(Control, { errors: errors, name: name, id: id },
22
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
22
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
23
23
  label,
24
24
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
25
+ helper && React.createElement(Control.Helper, { hasError: !!(errors === null || errors === void 0 ? void 0 : errors.length) }, helper),
25
26
  React.createElement(Control.Content, null,
26
27
  React.createElement(Control.Element, { prefix: prefix, postfix: postfix },
27
28
  React.createElement(Control.Input, { id: id, name: name, value: value, placeholder: placeholder, disabled: disabled, onChange: onChange, onKeyPress: onKeyPress, onKeyUp: onKeyUp, ...props }))),
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,9 +3,9 @@ import Control from '../../index.js';
3
3
  import Hint from '../../../hint/index.js';
4
4
  import Multiple from '../../../dropdown/hoc/multiselect/index.js';
5
5
 
6
- const ControlMultiSelect = ({ label, isRequired, id, name, defaultValues, options, isWithGroups, isWithSearch, defaultIsOpen, defaultCloseOnClick, isReadonly, isDisabled, onChange, onToggle, errors, hint, hintOptions = { isFixed: true }, hasCloseIcon, labelAdditionalInfo }) => {
6
+ const ControlMultiSelect = ({ label, isRequired, id, name, defaultValues, options, isWithGroups, isWithSearch, defaultIsOpen, defaultCloseOnClick, isReadonly, isDisabled, onChange, onToggle, errors, hint, hintOptions = { isFixed: true }, hasCloseIcon }) => {
7
7
  return (React.createElement(Control, { errors: errors, name: name, id: id },
8
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
8
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
9
9
  label,
10
10
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
11
11
  React.createElement(Control.Content, null,
@@ -16,15 +16,16 @@ import Hint from '../../../hint/index.js';
16
16
  * />
17
17
  * )
18
18
  */
19
- const ControlRadio = ({ id, label, hint, hintOptions = { isFixed: true }, name, value, defaultChecked, checked, disabled, onClick, errors, labelAdditionalInfo }) => {
19
+ const ControlRadio = ({ id, label, hint, hintOptions = { isFixed: true }, name, value, defaultChecked, checked, disabled, onClick, errors, additionalInfo }) => {
20
20
  return (React.createElement(Control, { errors: errors, name: name, id: id },
21
21
  React.createElement(Control.Content, null,
22
- React.createElement(Control.Element, { type: "radio", verticalPosition: labelAdditionalInfo ? VERTICAL_POSITION.top : undefined },
22
+ React.createElement(Control.Element, { type: "radio", verticalPosition: additionalInfo ? VERTICAL_POSITION.top : undefined },
23
23
  React.createElement(Control.Radio, { id: id, name: name, value: value, defaultChecked: defaultChecked, checked: checked, disabled: disabled, onClick: onClick }),
24
- React.createElement(Label, { additionalInfo: labelAdditionalInfo, htmlFor: id },
24
+ React.createElement(Label, { htmlFor: id },
25
25
  label,
26
26
  " ",
27
- hint && React.createElement(Hint, { fixed: hintOptions.isFixed, hint: hint, spacingLeft: true })))),
27
+ hint && React.createElement(Hint, { fixed: hintOptions.isFixed, hint: hint, spacingLeft: true }),
28
+ additionalInfo && React.createElement(Control.AdditionalInfo, null, additionalInfo)))),
28
29
  React.createElement(Control.Errors, null)));
29
30
  };
30
31
 
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,9 +3,9 @@ import Control from '../../index.js';
3
3
  import Hint from '../../../hint/index.js';
4
4
  import ControlRadio from '../control_radio/index.js';
5
5
 
6
- const ControlRadioGroup = ({ id, name, onClick, checkedValue, defaultCheckedValue, label, hint, hintOptions = { isFixed: true }, options, errors, isRequired, labelAdditionalInfo }) => {
6
+ const ControlRadioGroup = ({ id, name, onClick, checkedValue, defaultCheckedValue, label, hint, hintOptions = { isFixed: true }, options, errors, isRequired }) => {
7
7
  return (React.createElement(Control, { errors: errors, name: name, id: id },
8
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
8
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
9
9
  label,
10
10
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
11
11
  options.map(({ value, label, hint, disabled }) => (React.createElement(ControlRadio, { key: `RadioGroup${id}-RadioElement-${value}`, label: label, id: `RadioGroup${id}-Radio-${value}`, value: value, hint: hint, disabled: disabled, name: name, defaultChecked: defaultCheckedValue ? defaultCheckedValue === value : undefined, checked: checkedValue ? checkedValue === value : undefined, onClick: onClick }))),
@@ -3,9 +3,9 @@ import Control from '../../index.js';
3
3
  import Hint from '../../../hint/index.js';
4
4
  import Range from '../../../range/index.js';
5
5
 
6
- const ControlRange = ({ label, hint, hintOptions = { isFixed: true }, isRequired, id, name, isDisabled, onChange, initialValue, step, max, min, errors, labelAdditionalInfo }) => {
6
+ const ControlRange = ({ label, hint, hintOptions = { isFixed: true }, isRequired, id, name, isDisabled, onChange, initialValue, step, max, min, errors }) => {
7
7
  return (React.createElement(Control, { errors: errors, name: name, id: id },
8
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
8
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
9
9
  label,
10
10
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
11
11
  React.createElement(Control.Content, null,
@@ -18,9 +18,9 @@ import Select from '../../../dropdown/hoc/select/index.js';
18
18
  * />
19
19
  * )
20
20
  */
21
- const ControlSelect = ({ label, isRequired, id, name, defaultValues, options, isWithGroups, isWithSearch, defaultIsOpen, defaultCloseOnClick, isReadonly, isDisabled, onChange, onToggle, errors, hint, hintOptions = { isFixed: true }, placeholder, additionalInfo, onScroll, innerAdditionalContent, hasCloseIcon, labelAdditionalInfo }) => {
21
+ const ControlSelect = ({ label, isRequired, id, name, defaultValues, options, isWithGroups, isWithSearch, defaultIsOpen, defaultCloseOnClick, isReadonly, isDisabled, onChange, onToggle, errors, hint, hintOptions = { isFixed: true }, placeholder, additionalInfo, onScroll, innerAdditionalContent, hasCloseIcon }) => {
22
22
  return (React.createElement(Control, { errors: errors, name: name, id: id },
23
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
23
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
24
24
  label,
25
25
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
26
26
  React.createElement(Control.Content, null,
@@ -3,9 +3,9 @@ import Control from '../../index.js';
3
3
  import Hint from '../../../hint/index.js';
4
4
  import TagsSelector from '../../../tags_selector/index.js';
5
5
 
6
- const ControlTagsSelector = ({ id, name, label, isRequired, placeholder, minTagLength, withList, defaultTags, defaultListTags, onChange, onListItemClick, errors, hint, hintOptions = { isFixed: true }, labelAdditionalInfo }) => {
6
+ const ControlTagsSelector = ({ id, name, label, isRequired, placeholder, minTagLength, withList, defaultTags, defaultListTags, onChange, onListItemClick, errors, hint, hintOptions = { isFixed: true } }) => {
7
7
  return (React.createElement(Control, { errors: errors, name: name, id: id },
8
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
8
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
9
9
  label,
10
10
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
11
11
  React.createElement(Control.Content, null,
@@ -17,11 +17,12 @@ import Hint from '../../../hint/index.js';
17
17
  * />
18
18
  * )
19
19
  */
20
- const ControlTextarea = React.forwardRef(({ label, isRequired, id, name, value, defaultValue, placeholder, disabled, readOnly, onChange, onFocus, onBlur, onKeyPress, errors, hint, hintOptions = { isFixed: true }, labelAdditionalInfo }, ref) => {
20
+ const ControlTextarea = React.forwardRef(({ label, isRequired, id, name, value, defaultValue, placeholder, disabled, readOnly, onChange, onFocus, onBlur, onKeyPress, errors, hint, hintOptions = { isFixed: true }, helper }, ref) => {
21
21
  return (React.createElement(Control, { errors: errors, name: name, id: id },
22
- (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
22
+ (label || hint) && (React.createElement(Control.Label, { id: id, isRequired: isRequired },
23
23
  label,
24
24
  hint && React.createElement(Hint, { fixed: hintOptions.isFixed, spacingLeft: true, hint: hint }))),
25
+ helper && React.createElement(Control.Helper, { hasError: !!(errors === null || errors === void 0 ? void 0 : errors.length) }, helper),
25
26
  React.createElement(Control.Content, null,
26
27
  React.createElement(Control.Element, null,
27
28
  React.createElement(Control.Textarea, { id: id, name: name, value: value, defaultValue: defaultValue, placeholder: placeholder, disabled: disabled, readOnly: readOnly, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyPress: onKeyPress, ref: ref }))),
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { cssControls, cssControlsError } from './css_classes.js';
3
3
  import { ControlContext } from './context.js';
4
- import cssStyles from '../../css/controls/main.module.less.js';
5
4
  import Input from './components/input.js';
5
+ import cssStyles from '../../css/controls/main.module.less.js';
6
6
  import { AdditionalInfo } from './components/additional_info.js';
7
7
  import Checkbox from './components/checkbox.js';
8
8
  import CheckboxSwitch from './components/checkbox_switch.js';
@@ -10,12 +10,13 @@ import Content from './components/content.js';
10
10
  import ControlLabel from './components/label.js';
11
11
  import Element from './components/element.js';
12
12
  import Errors from './components/errors.js';
13
+ import Helper from './components/helper.js';
13
14
  import Radio from './components/radio.js';
14
15
  import Textarea from './components/textarea.js';
15
16
 
16
- const Control = ({ children, errors, name, id, onClick }) => {
17
+ const Control = ({ children, errors, name, id }) => {
17
18
  return (React.createElement(ControlContext.Provider, { value: { errors, name, id } },
18
- React.createElement("div", { onClick: onClick, className: `${cssStyles[cssControls]} ${errors ? cssStyles[cssControlsError] : ''}` }, children)));
19
+ React.createElement("div", { className: `${cssStyles[cssControls]} ${errors ? cssStyles[cssControlsError] : ''}` }, children)));
19
20
  };
20
21
  Control.Label = ControlLabel;
21
22
  Control.Input = Input;
@@ -26,7 +27,8 @@ Control.Content = Content;
26
27
  Control.Element = Element;
27
28
  Control.Textarea = Textarea;
28
29
  Control.Errors = Errors;
29
- Control.AdditionalInfo = AdditionalInfo;
30
+ Control.AdditionalInfo = AdditionalInfo;
31
+ Control.Helper = Helper;
30
32
 
31
33
  export default Control;
32
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -4,7 +4,6 @@ import { IColorPickerProps } from "../color_picker/types";
4
4
  import { IFilePicker } from "../file_picker/types";
5
5
  import { IRange } from "../range/types";
6
6
  import { TVerticalPosition } from "../../typings/general";
7
- import React from 'react';
8
7
  export declare type TControlErrors = string[] | null | undefined;
9
8
  export interface IControlContext {
10
9
  errors?: TControlErrors;
@@ -22,13 +21,13 @@ export interface IControlComposition {
22
21
  Textarea: React.FC<ITextareaProps>;
23
22
  Errors: React.FC;
24
23
  AdditionalInfo: React.FC;
24
+ Helper: React.FC<IControlHelperProps>;
25
25
  }
26
26
  export interface IControlProps {
27
27
  children: ReactNode;
28
28
  errors?: TControlErrors;
29
29
  name?: string;
30
30
  id?: string;
31
- onClick?: (event: React.MouseEvent) => void;
32
31
  }
33
32
  interface IControlCommonProps {
34
33
  errors?: TControlErrors;
@@ -54,7 +53,6 @@ export interface IControlTagsSelectorProps extends IControlCommonProps {
54
53
  id?: string;
55
54
  name?: string;
56
55
  label?: string;
57
- labelAdditionalInfo?: string | ReactNode;
58
56
  isRequired?: boolean;
59
57
  placeholder?: string;
60
58
  minTagLength?: number;
@@ -93,7 +91,6 @@ export interface IControlLabelProps {
93
91
  id?: string;
94
92
  isRequired?: boolean;
95
93
  children: any;
96
- additionalInfo?: string | ReactNode;
97
94
  }
98
95
  export interface ICheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
99
96
  id?: string;
@@ -105,11 +102,14 @@ export interface IControlInputProps extends IInputProps, IControlCommonProps {
105
102
  postfix?: string;
106
103
  label?: string;
107
104
  isRequired?: boolean;
108
- labelAdditionalInfo?: string | ReactNode;
105
+ helper?: React.ReactNode;
109
106
  }
110
107
  export interface IControlCheckboxProps extends ICheckboxProps, IControlCommonProps {
111
108
  label: string;
112
- labelAdditionalInfo?: string | ReactNode;
109
+ helper?: React.ReactNode;
110
+ hintTopOptions?: TControlHintOptions;
111
+ labelTop?: string;
112
+ hintTop?: string;
113
113
  }
114
114
  export interface IRadioProps extends InputHTMLAttributes<HTMLInputElement> {
115
115
  id: string;
@@ -117,7 +117,6 @@ export interface IRadioProps extends InputHTMLAttributes<HTMLInputElement> {
117
117
  }
118
118
  export interface IControlRadioProps extends IRadioProps, IControlCommonProps {
119
119
  label: string;
120
- labelAdditionalInfo?: string | ReactNode;
121
120
  }
122
121
  export interface IControlRadioGroupOption {
123
122
  value: string;
@@ -133,7 +132,6 @@ export interface IControlRadioGroup extends IControlCommonProps {
133
132
  id: string;
134
133
  name: string;
135
134
  label: string;
136
- labelAdditionalInfo?: string | ReactNode;
137
135
  }
138
136
  export interface IControlColorPickerProps extends IColorPickerProps, IControlCommonProps {
139
137
  id: string;
@@ -141,37 +139,32 @@ export interface IControlColorPickerProps extends IColorPickerProps, IControlCom
141
139
  label?: string;
142
140
  isRequired?: boolean;
143
141
  hideChooseCancelButtons?: boolean;
144
- labelAdditionalInfo?: string | React.ReactNode;
145
142
  }
146
143
  export interface IControlTextareaProps extends ITextareaProps, IControlCommonProps {
147
144
  label?: string;
148
145
  isRequired?: boolean;
149
- labelAdditionalInfo?: string | ReactNode;
146
+ helper?: React.ReactNode;
150
147
  }
151
148
  export interface IControlSelectProps extends ISelectProps, IControlCommonProps {
152
149
  id?: string;
153
150
  label?: string;
154
151
  isRequired?: boolean;
155
- labelAdditionalInfo?: string | ReactNode;
156
152
  }
157
153
  export interface IControlMultiSelectProps extends IMultiSelectProps, IControlCommonProps {
158
154
  id?: string;
159
155
  label?: string;
160
156
  isRequired?: boolean;
161
- labelAdditionalInfo?: string | ReactNode;
162
157
  }
163
158
  export interface IControlRange extends IRange, IControlCommonProps {
164
159
  id?: string;
165
160
  label?: string;
166
161
  isRequired?: boolean;
167
162
  name?: string;
168
- labelAdditionalInfo?: string | ReactNode;
169
163
  }
170
164
  export interface IControlFilePicker extends IFilePicker, IControlCommonProps {
171
165
  label?: string;
172
166
  isRequired?: boolean;
173
167
  name?: string;
174
- labelAdditionalInfo?: string | ReactNode;
175
168
  }
176
169
  export interface ICellSelector {
177
170
  rows?: number;
@@ -186,6 +179,8 @@ export interface IControlCellSelector extends ICellSelector, IControlCommonProps
186
179
  label?: string;
187
180
  id?: string;
188
181
  isRequired?: boolean;
189
- labelAdditionalInfo?: string | ReactNode;
182
+ }
183
+ export interface IControlHelperProps {
184
+ hasError?: boolean;
190
185
  }
191
186
  export {};
@@ -4,5 +4,4 @@ import '@auroraComponents/color_picker/types';
4
4
  import '@auroraComponents/file_picker/types';
5
5
  import '@auroraComponents/range/types';
6
6
  import '@auroraTypings/general';
7
- import 'react';
8
7
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/controls/types.ts"],"names":[],"mappings":"AAAA,OAA4F,OAAO,CAAC;AACpG,OAAgD,kCAAkC,CAAC;AAEnF,OAAkC,sCAAsC,CAAC;AACzE,OAA4B,qCAAqC,CAAC;AAClE,OAAuB,+BAA+B,CAAC;AACvD,OAAkC,wBAAwB,CAAC;AAC3D,OAAkB,OAAO,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/controls/types.ts"],"names":[],"mappings":"AAAA,OAA4F,OAAO,CAAC;AACpG,OAAgD,kCAAkC,CAAC;AAEnF,OAAkC,sCAAsC,CAAC;AACzE,OAA4B,qCAAqC,CAAC;AAClE,OAAuB,+BAA+B,CAAC;AACvD,OAAkC,wBAAwB,CAAC"}
@@ -1,4 +1,4 @@
1
- import React, { Dispatch, SetStateAction } from 'react';
1
+ import { Dispatch, SetStateAction } from 'react';
2
2
  import { TControlErrors } from "../controls/types";
3
3
  export interface IMonthYear {
4
4
  month: number;
@@ -70,7 +70,6 @@ export interface IDatepickerProps {
70
70
  showButtons?: boolean;
71
71
  hint?: string;
72
72
  errors?: TControlErrors;
73
- labelAdditionalInfo?: string | React.ReactNode;
74
73
  }
75
74
  export interface IDatepickerLabelProps {
76
75
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/date_picker/types.ts"],"names":[],"mappings":"AAAA,OAAgD,OAAO,CAAC;AACxD,OAA+B,kCAAkC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/date_picker/types.ts"],"names":[],"mappings":"AAAA,OAAyC,OAAO,CAAC;AACjD,OAA+B,kCAAkC,CAAC"}
@@ -14,7 +14,6 @@ import cssClasses from '../../../css/dropdown/main.module.less.js';
14
14
  import { getXYModifiersForNestedDropdowns, isChildOfModal } from '../utilities.js';
15
15
  import { useClickOutside } from '../../../hooks/use_click_outside.js';
16
16
  import IconArrow from '../../../assets/icon_arrow.js';
17
- import { UiDomUtils } from '@dreamcommerce/utilities';
18
17
 
19
18
  /**
20
19
  * Dropdown.Content component. This togglable part of dropdown.
@@ -22,26 +21,38 @@ import { UiDomUtils } from '@dreamcommerce/utilities';
22
21
  * @example
23
22
  * <Dropdown.Content> ... </Dropdown.Content>
24
23
  */
25
- const Content = ({ headerComponent, headerGoBackText, headerGoBackIcon, children, arrowSide = 'left', portalContainer }) => {
24
+ const Content = ({ headerComponent, headerGoBackText, headerGoBackIcon, children, arrowSide = 'left', horizontalPosition = 'left', verticalPosition = 'bottom', wrapperWidth, cssClass, portalContainer }) => {
26
25
  const [t] = useTranslation();
27
26
  const contentRef = useRef(null);
28
- const { wrapperRef, toggleDropdown, isOpen, closeDropdown } = useDropdownContext();
27
+ const { wrapperRef, toggleDropdown, isOpen } = useDropdownContext();
29
28
  const [styles, setStyles] = useState({
30
- left: '0px',
31
29
  top: '0px',
32
30
  bottom: '0px',
31
+ left: '0px',
33
32
  zIndex: DROPDOWN_Z_INDEX
34
33
  });
35
- const windowHeightMinusYOffset = window.innerHeight - window.pageYOffset;
36
- const checkIfIsOutsideBottomViewport = (elem) => {
37
- const bounding = elem.getBoundingClientRect();
38
- return bounding.bottom > windowHeightMinusYOffset;
34
+ const windowYScroll = window.scrollY;
35
+ const windowHeightMinusYOffset = window.innerHeight - windowYScroll;
36
+ const checkIfIsOutsideTopViewport = () => {
37
+ if (!contentRef.current)
38
+ return;
39
+ const bounding = contentRef.current.getBoundingClientRect();
40
+ return bounding.top <= 0;
39
41
  };
40
- const dropdownIsOutsideBottomViewport = contentRef.current && checkIfIsOutsideBottomViewport(contentRef.current);
42
+ const checkIfIsOutsideBottomViewport = () => {
43
+ if (!contentRef.current)
44
+ return;
45
+ const element = contentRef.current;
46
+ const elementHeight = element.getBoundingClientRect().height;
47
+ return elementHeight + element.offsetTop > window.innerHeight + windowYScroll;
48
+ };
49
+ const dropdownIsOutsideTopViewport = checkIfIsOutsideTopViewport();
50
+ const dropdownIsOutsideBottomViewport = checkIfIsOutsideBottomViewport();
41
51
  const contentClassName = classNames([
42
52
  cssDropdownContent,
43
53
  arrowSide === 'right' && cssDropdownArrowHorizontalDirectionRight,
44
- dropdownIsOutsideBottomViewport && cssDropdownArrowVerticalDirectionBottom
54
+ dropdownIsOutsideBottomViewport && cssDropdownArrowVerticalDirectionBottom,
55
+ cssClass
45
56
  ], cssClasses);
46
57
  const screenWidthName = useScreenDetect();
47
58
  const refs = [contentRef];
@@ -54,34 +65,50 @@ const Content = ({ headerComponent, headerGoBackText, headerGoBackIcon, children
54
65
  }
55
66
  });
56
67
  useEffect(() => {
57
- if (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current) {
68
+ if ((wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current) && contentRef.current) {
58
69
  const { x, y, height } = wrapperRef.current.getBoundingClientRect();
70
+ const { width: contentWidth } = contentRef.current.getBoundingClientRect();
59
71
  const yOffset = 10;
60
72
  const { xModifier, yModifier } = getXYModifiersForNestedDropdowns(portalContainer === null || portalContainer === void 0 ? void 0 : portalContainer.current);
61
- const positionTop = height + y + yOffset - yModifier;
73
+ const positionTop = height + y + windowYScroll + yOffset - yModifier;
62
74
  const positionBottom = windowHeightMinusYOffset - y + yOffset;
63
75
  const positionLeft = x - xModifier;
64
76
  const isInModal = isChildOfModal(wrapperRef);
65
77
  const zIndex = isInModal ? DROPDOWN_ON_MODAL_Z_INDEX : DROPDOWN_Z_INDEX;
66
- const topPositionValue = !dropdownIsOutsideBottomViewport ? `${positionTop}px` : 'auto';
67
- const bottomPositionValue = dropdownIsOutsideBottomViewport ? `${positionBottom}px` : 'auto';
78
+ let topPositionValue = '';
79
+ let bottomPositionValue = '';
80
+ let leftPositionValue = '';
81
+ let leftPositionStickedToRightBorderValue;
82
+ if (horizontalPosition === 'right' && !wrapperWidth) {
83
+ throw new Error(`To use horizontal right position you must set "wrapperWidth" value`);
84
+ }
85
+ if (wrapperWidth) {
86
+ leftPositionStickedToRightBorderValue = x + wrapperWidth - contentWidth;
87
+ }
88
+ horizontalPosition === 'left'
89
+ ? (leftPositionValue = `${positionLeft}px`)
90
+ : (leftPositionValue = `${leftPositionStickedToRightBorderValue}px`);
91
+ if (verticalPosition === 'top') {
92
+ topPositionValue = 'auto';
93
+ bottomPositionValue = `${positionBottom}px`;
94
+ if (dropdownIsOutsideTopViewport) {
95
+ topPositionValue = `${positionTop}px`;
96
+ bottomPositionValue = 'auto';
97
+ }
98
+ }
99
+ if (verticalPosition === 'bottom') {
100
+ topPositionValue = `${positionTop}px`;
101
+ bottomPositionValue = 'auto';
102
+ if (dropdownIsOutsideBottomViewport) {
103
+ topPositionValue = 'auto';
104
+ bottomPositionValue = `${positionBottom}px`;
105
+ }
106
+ }
68
107
  screenWidthName === SCREEN_XS
69
- ? setStyles({ left: `0px`, top: `0px`, bottom: 'auto', zIndex })
70
- : setStyles({ left: `${positionLeft}px`, top: topPositionValue, bottom: bottomPositionValue, zIndex });
108
+ ? setStyles({ top: `0px`, bottom: 'auto', left: `0px`, zIndex })
109
+ : setStyles({ top: topPositionValue, bottom: bottomPositionValue, left: leftPositionValue, zIndex });
71
110
  }
72
- }, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideBottomViewport]);
73
- useEffect(() => {
74
- var _a;
75
- if (!(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current) || !isOpen)
76
- return;
77
- const scrollableParent = (_a = UiDomUtils.getFirstScrollableParent(wrapperRef.current)) !== null && _a !== void 0 ? _a : document.body;
78
- const handleWindowScroll = () => {
79
- if (typeof closeDropdown === 'function') {
80
- closeDropdown();
81
- }
82
- };
83
- scrollableParent.addEventListener('scroll', handleWindowScroll, { once: true });
84
- }, [isOpen]);
111
+ }, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, wrapperWidth]);
85
112
  return createPortal(React.createElement(TransitionGroup, { component: null }, isOpen === true ? (React.createElement(CSSTransition, { timeout: 200, classNames: {
86
113
  enter: cssClasses['dropdown-enter'],
87
114
  enterActive: cssClasses['dropdown-enter-active'],
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,oEAAwE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,oEAAwE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,6 +3,4 @@ export interface IDropdownContext {
3
3
  wrapperRef?: React.RefObject<HTMLDivElement>;
4
4
  isOpen?: boolean;
5
5
  toggleDropdown?: () => void;
6
- openDropdown?: () => void;
7
- closeDropdown?: () => void;
8
6
  }
@@ -79,7 +79,7 @@ onChange, hasCloseIcon }) => {
79
79
  /**
80
80
  * isOpen provides state if dropdown is open(visible), toggleDropdown is a function which toggles dropdown content
81
81
  */
82
- const [isOpen, toggleDropdown, openDropdown, closeDropdown] = useToggle(defaultIsOpen, onToggle);
82
+ const [isOpen, toggleDropdown] = useToggle(defaultIsOpen, onToggle);
83
83
  /**
84
84
  * hook with option list state, and method to change option list
85
85
  */
@@ -91,7 +91,7 @@ onChange, hasCloseIcon }) => {
91
91
  /**
92
92
  * context values, they may be used with useContext in any component which is part of Dropdown composition
93
93
  */
94
- const value = React.useMemo(() => ({ wrapperRef, isOpen, toggleDropdown, openDropdown, closeDropdown }), [isOpen, toggleDropdown, openDropdown, closeDropdown]);
94
+ const value = React.useMemo(() => ({ wrapperRef, isOpen, toggleDropdown }), [isOpen, toggleDropdown]);
95
95
  /**
96
96
  * hook which resets options list to default on close if select has search and it was used
97
97
  */
@@ -4,4 +4,4 @@
4
4
  * @param onToggleCb callback onToggle
5
5
  * @returns {Array} tuple - open state and and method to change open state
6
6
  */
7
- export declare function useToggle(defaultIsOpen?: boolean, onToggleCb?: (isOpen: boolean) => void): [boolean, () => void, () => void, () => void];
7
+ export declare function useToggle(defaultIsOpen?: boolean, onToggleCb?: (isOpen: boolean) => void): [boolean, () => void];
@@ -10,14 +10,12 @@ import { useEffectAfterMount } from '../../../hooks/use_effect_after_mount.js';
10
10
  function useToggle(defaultIsOpen = false, onToggleCb) {
11
11
  const [isOpen, setIsOpen] = useState(defaultIsOpen);
12
12
  const onToggle = useCallback(() => setIsOpen((oldIsOpen) => !oldIsOpen), []);
13
- const open = useCallback(() => setIsOpen(true), []);
14
- const close = useCallback(() => setIsOpen(false), []);
15
13
  useEffectAfterMount(() => {
16
14
  if (typeof onToggleCb === 'function') {
17
15
  onToggleCb(isOpen);
18
16
  }
19
17
  }, [isOpen]);
20
- return [isOpen, onToggle, open, close];
18
+ return [isOpen, onToggle];
21
19
  }
22
20
 
23
21
  export { useToggle };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -36,11 +36,11 @@ import { useToggle } from './hooks/use_toggle.js';
36
36
  */
37
37
  const Dropdown = ({ defaultIsOpen = false, onToggle, children }) => {
38
38
  const wrapperRef = useRef(null);
39
- const [isOpen, toggleDropdown, openDropdown, closeDropdown] = useToggle(defaultIsOpen, onToggle);
39
+ const [isOpen, toggleDropdown] = useToggle(defaultIsOpen, onToggle);
40
40
  /**
41
41
  * context values, they may be used with useContext in any component which is part of Dropdown composition
42
42
  */
43
- const value = React.useMemo(() => ({ wrapperRef, isOpen, toggleDropdown, openDropdown, closeDropdown }), [isOpen, toggleDropdown, openDropdown, closeDropdown]);
43
+ const value = React.useMemo(() => ({ wrapperRef, isOpen, toggleDropdown }), [isOpen, toggleDropdown]);
44
44
  return (React.createElement(DropdownContext.Provider, { value: value },
45
45
  React.createElement("div", { ref: wrapperRef, className: cssClasses.dropdown }, children)));
46
46
  };
@@ -44,6 +44,10 @@ export interface IDropdownContentProps {
44
44
  headerGoBackIcon?: JSX.Element;
45
45
  portalContainer?: RefObject<HTMLElement>;
46
46
  arrowSide?: 'left' | 'right';
47
+ horizontalPosition?: 'left' | 'right';
48
+ verticalPosition?: 'top' | 'bottom';
49
+ wrapperWidth?: number;
50
+ cssClass?: string;
47
51
  }
48
52
  export interface IDropdownItemWithHover {
49
53
  children?: ReactNode;