@geneui/components 2.11.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 (154) hide show
  1. package/ActionableList.js +1761 -0
  2. package/AdvancedSearch.js +872 -0
  3. package/Alert.js +98 -0
  4. package/Avatar.js +77 -0
  5. package/Badge.js +76 -0
  6. package/Breadcrumb.js +128 -0
  7. package/BusyLoader.js +69 -0
  8. package/Button.js +130 -0
  9. package/CHANGELOG.md +424 -0
  10. package/Card.js +513 -0
  11. package/CardList.js +705 -0
  12. package/CellMeasurerCache-c11cec83.js +229 -0
  13. package/Charts.js +99 -0
  14. package/Checkbox.js +232 -0
  15. package/CheckboxGroup.js +206 -0
  16. package/CheckboxGroupWithSearch.js +279 -0
  17. package/Collapse.js +196 -0
  18. package/ColorPicker.js +210 -0
  19. package/ComboBox.js +99 -0
  20. package/Counter.js +99 -0
  21. package/DateFilter.js +179 -0
  22. package/DatePicker.js +1231 -0
  23. package/DatePickerInput.js +30 -0
  24. package/Divider.js +56 -0
  25. package/Drawer.js +264 -0
  26. package/Dropdown.js +99 -0
  27. package/Editor.js +22965 -0
  28. package/Empty.js +132 -0
  29. package/ExtendedInput.js +578 -0
  30. package/Form.js +116 -0
  31. package/FormContainer.js +189 -0
  32. package/FormableCheckbox.js +27 -0
  33. package/FormableDatePicker.js +39 -0
  34. package/FormableDropdown.js +105 -0
  35. package/FormableEditor.js +24 -0
  36. package/FormableHOC-21051057.js +83 -0
  37. package/FormableMultiSelectDropdown.js +105 -0
  38. package/FormableNumberInput.js +31 -0
  39. package/FormableRadio.js +23 -0
  40. package/FormableSwitcher.js +23 -0
  41. package/FormableTextInput.js +31 -0
  42. package/FormableUploader.js +40 -0
  43. package/GeneUIProvider.js +256 -0
  44. package/Grid.js +166 -0
  45. package/Holder.js +99 -0
  46. package/Icon.js +63 -0
  47. package/Image.js +130 -0
  48. package/ImagePreview.js +99 -0
  49. package/KeyValue.js +63 -0
  50. package/Label.js +58 -0
  51. package/LinkButton.js +104 -0
  52. package/Menu.js +277 -0
  53. package/MobileNavigation.js +95 -0
  54. package/MobilePopup.js +180 -0
  55. package/Modal.js +251 -0
  56. package/ModuleTitle.js +99 -0
  57. package/NavigationMenu.js +212 -0
  58. package/Notification.js +120 -0
  59. package/Option.js +186 -0
  60. package/Overlay.js +99 -0
  61. package/Overspread.js +343 -0
  62. package/Pagination.js +258 -0
  63. package/Paper.js +97 -0
  64. package/Popover-f4d1cac0.js +411 -0
  65. package/Popover.js +20 -0
  66. package/PopoverV2.js +19 -0
  67. package/Portal.js +58 -0
  68. package/Products.js +115 -0
  69. package/Profile.js +99 -0
  70. package/Progress.js +200 -0
  71. package/QRCode.js +816 -0
  72. package/README.md +90 -0
  73. package/Radio.js +152 -0
  74. package/RadioGroup.js +105 -0
  75. package/Range.js +14 -0
  76. package/RichEditor-b7928765.js +228 -0
  77. package/RichEditor.js +13 -0
  78. package/Scrollbar.js +1587 -0
  79. package/Search.js +72 -0
  80. package/SearchWithDropdown.js +195 -0
  81. package/Section.js +62 -0
  82. package/SkeletonLoader.js +82 -0
  83. package/Slider.js +256 -0
  84. package/Status.js +104 -0
  85. package/Steps.js +312 -0
  86. package/SuggestionList.js +15 -0
  87. package/Switcher.js +194 -0
  88. package/Table.js +102 -0
  89. package/TableCompositions.js +17028 -0
  90. package/Tabs.js +236 -0
  91. package/Tag.js +103 -0
  92. package/TextLink.js +22 -0
  93. package/Textarea.js +239 -0
  94. package/Time.js +63 -0
  95. package/TimePicker.js +99 -0
  96. package/Timeline.js +114 -0
  97. package/Title.js +66 -0
  98. package/Toaster.js +116 -0
  99. package/Tooltip.js +157 -0
  100. package/TransferList.js +502 -0
  101. package/Uploader.js +32 -0
  102. package/ValidatableCheckbox.js +126 -0
  103. package/ValidatableDatePicker.js +312 -0
  104. package/ValidatableDropdown.js +99 -0
  105. package/ValidatableElements.js +99 -0
  106. package/ValidatableMultiSelectDropdown.js +99 -0
  107. package/ValidatableNumberInput.js +194 -0
  108. package/ValidatableRadio.js +117 -0
  109. package/ValidatableSwitcher.js +94 -0
  110. package/ValidatableTextInput.js +164 -0
  111. package/ValidatableTimeInput.js +171 -0
  112. package/ValidatableUploader.js +94 -0
  113. package/Widget.js +99 -0
  114. package/_commonjsHelpers-24198af3.js +35 -0
  115. package/_rollupPluginBabelHelpers-e8fb2e5c.js +16 -0
  116. package/checkTimeValidation-e56771be.js +16 -0
  117. package/checkboxRadioSwitcher-5b69d7bd.js +4 -0
  118. package/clsx.m-2bb6df4b.js +3 -0
  119. package/configs-91c86664.js +96 -0
  120. package/configs.js +131 -0
  121. package/dateValidation-67caec66.js +225 -0
  122. package/debounce-4419bc2f.js +17 -0
  123. package/globalStyling-9c60a159.js +4 -0
  124. package/guid-8ddf77b3.js +16 -0
  125. package/index-00fe8887.js +193 -0
  126. package/index-0cf65939.js +30991 -0
  127. package/index-122432cd.js +270 -0
  128. package/index-262edd7a.js +77 -0
  129. package/index-5cea9a7d.js +407 -0
  130. package/index-5e722d91.js +867 -0
  131. package/index-67f4d4d1.js +6568 -0
  132. package/index-6ff23041.js +66 -0
  133. package/index-702bf24a.js +1938 -0
  134. package/index-a4635754.js +329 -0
  135. package/index-a59530cd.js +4 -0
  136. package/index-ac59cb10.js +169 -0
  137. package/index-b7a33c58.js +11 -0
  138. package/index-d9e8a888.js +987 -0
  139. package/index-e0af0caf.js +1182 -0
  140. package/index-e8776f3d.js +807 -0
  141. package/index.js +128 -0
  142. package/localization-4ba17032.js +46 -0
  143. package/objectWithoutPropertiesLoose-299691d8.js +78 -0
  144. package/package.json +190 -0
  145. package/rangeAndSlider-20599da4.js +8839 -0
  146. package/react-beautiful-dnd.esm-38c37304.js +10117 -0
  147. package/style-inject.es-746bb8ed.js +28 -0
  148. package/useClickOutside-5183e396.js +25 -0
  149. package/useDeviceType-dd51db38.js +15 -0
  150. package/useEllipsisDetection-ef536015.js +23 -0
  151. package/useKeyDown-38102ae7.js +21 -0
  152. package/useMount-6fef51a5.js +9 -0
  153. package/useWidth-9f4647f8.js +15 -0
  154. package/useWindowSize-80369d76.js +33 -0
package/Alert.js ADDED
@@ -0,0 +1,98 @@
1
+ import { _ as _extends } from './_rollupPluginBabelHelpers-e8fb2e5c.js';
2
+ import React__default from 'react';
3
+ import { p as propTypesExports } from './index-e0af0caf.js';
4
+ import { c as classnames } from './index-6ff23041.js';
5
+ import { s as screenTypes } from './configs-91c86664.js';
6
+ import './dateValidation-67caec66.js';
7
+ import 'react-dom';
8
+ import { u as useDeviceType } from './useDeviceType-dd51db38.js';
9
+ import Icon from './Icon.js';
10
+ import './globalStyling-9c60a159.js';
11
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
12
+ import './_commonjsHelpers-24198af3.js';
13
+ import './useWindowSize-80369d76.js';
14
+
15
+ var css_248z = "[data-gene-ui-version=\"2.11.0\"] .alert-holder{background:var(--background);border-radius:.6rem;width:100%;word-break:break-word}[data-gene-ui-version=\"2.11.0\"] .toaster-holder.top .alert-holder.mobile-view:first-child,[data-gene-ui-version=\"2.11.0\"] .toaster-holder.top .alert-holder.mobile-view:first-child .alert-box{border-top-left-radius:0;border-top-right-radius:0}[data-gene-ui-version=\"2.11.0\"] .toaster-holder.bottom .alert-holder.mobile-view:last-child,[data-gene-ui-version=\"2.11.0\"] .toaster-holder.bottom .alert-holder.mobile-view:last-child .alert-box{border-bottom-left-radius:0;border-bottom-right-radius:0}[data-gene-ui-version=\"2.11.0\"] .alert-box{background:rgba(var(--confirm-rgb),.1);border:1px solid var(--confirm);border-radius:.6rem;display:flex;min-height:4.2rem;padding:.8rem .7rem;width:100%}[data-gene-ui-version=\"2.11.0\"] .alert-box.type-info{--confirm:var(--hero);--confirm-hover:var(--hero-hover);--confirm-sc:var(--hero-sc);--confirm-rgb:var(--hero-rgb);--confirm-sc-rgb:var(--hero-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .alert-box.type-warning{--confirm:var(--warning);--confirm-hover:var(--warning-hover);--confirm-sc:var(--warning-sc);--confirm-rgb:var(--warning-rgb);--confirm-sc-rgb:var(--warning-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .alert-box.type-error{--confirm:var(--danger);--confirm-hover:var(--danger-hover);--confirm-sc:var(--danger-sc);--confirm-rgb:var(--danger-rgb);--confirm-sc-rgb:var(--danger-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .alert-box.type-note{--confirm:var(--note);--confirm-hover:var(--note-hover);--confirm-sc:var(--note-sc);--confirm-rgb:var(--note-rgb);--confirm-sc-rgb:var(--note-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .alert-box.type-message{--confirm:var(--message);--confirm-hover:var(--message-hover);--confirm-sc:var(--message-sc);--confirm-rgb:var(--message-rgb);--confirm-sc-rgb:var(--message-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .alert-holder.mobile-view .alert-box{border-bottom-color:rgba(var(--background-sc-rgb),.1);border-width:0 0 1px}[data-gene-ui-version=\"2.11.0\"] .toaster-holder:not(.top,.bottom,.center) .alert-holder.mobile-view .alert-box{border-radius:0}[data-gene-ui-version=\"2.11.0\"] .alert-box>li{flex-shrink:0;padding:0 .7rem}[data-gene-ui-version=\"2.11.0\"] .alert-box>li.ab-c-c{align-self:center;flex:auto;margin:.4rem 0}[data-gene-ui-version=\"2.11.0\"] .alert-box>li.ab-bc-icon-c{max-width:100%}[data-gene-ui-version=\"2.11.0\"] .alert-box>li a,[data-gene-ui-version=\"2.11.0\"] .alert-box>li.ab-bc-icon-c{color:var(--confirm)}[data-gene-ui-version=\"2.11.0\"] .alert-box .bc-icon-close{cursor:pointer}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .alert-box .bc-icon-close:hover{color:var(--confirm)}}[data-gene-ui-version=\"2.11.0\"] .alert-box a{color:var(--hero);font-weight:600}[data-gene-ui-version=\"2.11.0\"] .alert-box-title{font:600 1.4rem/1.8rem var(--font-family)}[data-gene-ui-version=\"2.11.0\"] .alert-text{font:600 1.2rem/1.42 var(--font-family);margin:.8rem 0 0}";
16
+ styleInject(css_248z);
17
+
18
+ const alertTypes = ['success', 'info', 'warning', 'error', 'note', 'message'];
19
+ function Alert(_ref) {
20
+ let {
21
+ type,
22
+ title,
23
+ onClose,
24
+ message,
25
+ screenType,
26
+ iconProps,
27
+ swapIcon,
28
+ className,
29
+ ...rest
30
+ } = _ref;
31
+ const {
32
+ isMobile
33
+ } = useDeviceType(screenType);
34
+ return /*#__PURE__*/React__default.createElement("div", _extends({
35
+ className: classnames('alert-holder', {
36
+ 'mobile-view': isMobile
37
+ }, className)
38
+ }, rest), /*#__PURE__*/React__default.createElement("ul", {
39
+ className: classnames('alert-box', "type-".concat(type))
40
+ }, (swapIcon || iconProps) && /*#__PURE__*/React__default.createElement("li", {
41
+ className: "ab-bc-icon-c"
42
+ }, swapIcon || /*#__PURE__*/React__default.createElement(Icon, {
43
+ type: "bc-icon-".concat(type === 'warning' ? 'info' : type).concat(iconProps.isFilled ? '-fill' : '')
44
+ })), /*#__PURE__*/React__default.createElement("li", {
45
+ className: "ab-c-c"
46
+ }, /*#__PURE__*/React__default.createElement("div", {
47
+ className: "alert-box-title"
48
+ }, title), message && /*#__PURE__*/React__default.createElement("div", {
49
+ className: "alert-text"
50
+ }, message)), !!onClose && /*#__PURE__*/React__default.createElement("li", {
51
+ className: "ab-action-c",
52
+ onClick: onClose
53
+ }, /*#__PURE__*/React__default.createElement(Icon, {
54
+ type: "bc-icon-close"
55
+ }))));
56
+ }
57
+ Alert.propTypes = {
58
+ /**
59
+ * Alert type is for specifying information message to be delivered. Also a corresponding "Icon" atom will be displayed
60
+ */
61
+ type: propTypesExports.oneOf(alertTypes),
62
+ /**
63
+ * Main field to describe alert information. Any valid React node
64
+ */
65
+ title: propTypesExports.node.isRequired,
66
+ /**
67
+ * Additional classname
68
+ */
69
+ className: propTypesExports.string,
70
+ /**
71
+ * Use this field for describing information more verbose. Any valid React node
72
+ */
73
+ message: propTypesExports.node,
74
+ /**
75
+ * The switch between mobile and desktop version of Alert will be applied automatically, when the prop is not specified.
76
+ * When the prop is present it must be changed from outside.
77
+ */
78
+ screenType: propTypesExports.oneOf(screenTypes),
79
+ /**
80
+ * When function is passed an "Icon" atom("type": "bc-icon-close") will be displayed((event: Event) => void).
81
+ */
82
+ onClose: propTypesExports.func,
83
+ /**
84
+ * Same as "Icon" atom props
85
+ */
86
+ iconProps: propTypesExports.shape({
87
+ ...Icon.propTypes
88
+ }),
89
+ /**
90
+ * Use this prop for replace main "Icon". Note that when the prop is specified "type" prop will not work(will be overlooked).
91
+ */
92
+ swapIcon: propTypesExports.node
93
+ };
94
+ Alert.defaultProps = {
95
+ type: 'info'
96
+ };
97
+
98
+ export { alertTypes, Alert as default };
package/Avatar.js ADDED
@@ -0,0 +1,77 @@
1
+ import React__default from 'react';
2
+ import { p as propTypesExports } from './index-e0af0caf.js';
3
+ import { c as classnames } from './index-6ff23041.js';
4
+ import { g as getInitials, n as noop } from './index-ac59cb10.js';
5
+ import './globalStyling-9c60a159.js';
6
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
+ import './dateValidation-67caec66.js';
8
+ import './_commonjsHelpers-24198af3.js';
9
+ import 'react-dom';
10
+
11
+ var css_248z = "[data-gene-ui-version=\"2.11.0\"] .user-avatar-c{--size:2.6rem;background:var(--background-sc) no-repeat 50% 50%/cover;border-radius:.3rem;box-shadow:0 0 0 0 rgba(var(--background-sc-rgb),.2);color:var(--background);font:600 calc(var(--size)/2.3)/var(--size) var(--font-family);height:var(--size);text-align:center;transition:box-shadow .3s;width:var(--size)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.clickable{cursor:pointer}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.clickable:hover{box-shadow:0 0 0 .3rem rgba(var(--background-sc-rgb),.2)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c:not(.color-default){background:var(--background) no-repeat 50% 50%/cover;box-shadow:0 0 0 0 rgba(var(--background-rgb),.2);color:var(--background-sc)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c:not(.color-default).clickable:hover{box-shadow:0 0 0 .3rem rgba(var(--background-rgb),.2)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.color-green{--background:var(--confirm);--background-hover:var(--confirm-hover);--background-sc:var(--confirm-sc);--background-rgb:var(--confirm-rgb);--background-sc-rgb:var(--confirm-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.color-red{--background:var(--danger);--background-hover:var(--danger-hover);--background-sc:var(--danger-sc);--background-rgb:var(--danger-rgb);--background-sc-rgb:var(--danger-sc-rgb)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.shape-circle{border-radius:100%}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.text-small{font-size:calc(var(--size)/2.5)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c[class*=bc-icon-]{font-size:calc(var(--size)/2);line-height:var(--size)}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.size-small{--size:2.2rem}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.size-medium{--size:3.6rem}[data-gene-ui-version=\"2.11.0\"] .user-avatar-c.size-big{--size:4.6rem}";
12
+ styleInject(css_248z);
13
+
14
+ function Avatar(_ref) {
15
+ let {
16
+ src,
17
+ icon,
18
+ size,
19
+ color,
20
+ shape,
21
+ onClick,
22
+ children
23
+ } = _ref;
24
+ return /*#__PURE__*/React__default.createElement("div", {
25
+ className: classnames('user-avatar-c', {
26
+ ["size-".concat(size)]: size,
27
+ ["color-".concat(color)]: color,
28
+ ["shape-".concat(shape)]: shape,
29
+ [icon]: !src && icon,
30
+ 'text-small': typeof children === 'string' && children.length > 1,
31
+ clickable: !!onClick
32
+ }),
33
+ style: {
34
+ backgroundImage: src ? "url(".concat(src, ")") : ''
35
+ },
36
+ onClick: onClick
37
+ }, !src && !icon && children && getInitials(children));
38
+ }
39
+ Avatar.propTypes = {
40
+ /**
41
+ * Background image source
42
+ */
43
+ src: propTypesExports.string,
44
+ /**
45
+ * The property will show icon. This property will work when "src" is not specified.
46
+ */
47
+ icon: propTypesExports.string,
48
+ /**
49
+ * The property will show first two letters in upper case. This will work when "src" or "icon" are not specified.
50
+ */
51
+ children: propTypesExports.string,
52
+ /**
53
+ * Avatar size
54
+ */
55
+ size: propTypesExports.oneOf(['small', 'default', 'medium', 'big']),
56
+ /**
57
+ * Avatar color
58
+ */
59
+ color: propTypesExports.oneOf(['default', 'green', 'red']),
60
+ /**
61
+ * Avatar shape
62
+ */
63
+ shape: propTypesExports.oneOf(['circle', 'square']),
64
+ /**
65
+ *
66
+ * Handle click event on avatar component((event: Event) => void 0).
67
+ */
68
+ onClick: propTypesExports.func
69
+ };
70
+ Avatar.defaultProps = {
71
+ onClick: noop,
72
+ size: 'default',
73
+ color: 'default',
74
+ shape: 'circle'
75
+ };
76
+
77
+ export { Avatar as default };
package/Badge.js ADDED
@@ -0,0 +1,76 @@
1
+ import { _ as _extends } from './_rollupPluginBabelHelpers-e8fb2e5c.js';
2
+ import React__default, { useMemo } from 'react';
3
+ import { p as propTypesExports } from './index-e0af0caf.js';
4
+ import { c as classnames } from './index-6ff23041.js';
5
+ import './globalStyling-9c60a159.js';
6
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
+ import { badgeConfig } from './configs.js';
8
+
9
+ var css_248z = "[data-gene-ui-version=\"2.11.0\"] .badge{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;position:relative}[data-gene-ui-version=\"2.11.0\"] .badge__content{background:var(--danger);border-radius:3rem;color:var(--danger-sc);display:block;font:600 1rem/1.6rem var(--font-family);min-width:1.6rem;padding:0 .5rem;text-align:center}[data-gene-ui-version=\"2.11.0\"] .badge__content-children{position:absolute;top:-.8rem}html:not([dir=rtl]) .badge__content-children{right:-.8rem}html[dir=rtl] .badge__content-children{left:-.8rem}[data-gene-ui-version=\"2.11.0\"] .badge__content-dot{height:1rem;min-height:1rem;min-width:1rem;top:-.5rem;width:1rem}html:not([dir=rtl]) .badge__content-dot{right:-.5rem}html[dir=rtl] .badge__content-dot{left:-.5rem}[data-gene-ui-version=\"2.11.0\"] .badge__content-medium{line-height:1.8rem;min-height:1.8rem;min-width:1.8rem}[data-gene-ui-version=\"2.11.0\"] .badge__content-big{line-height:2.2rem;min-height:2.2rem;min-width:2.2rem}[data-gene-ui-version=\"2.11.0\"] .badge__content-huge{font-size:1.3rem;line-height:2.6rem;min-height:2.6rem;min-width:2.6rem}[data-gene-ui-version=\"2.11.0\"] .badge__content-big,[data-gene-ui-version=\"2.11.0\"] .badge__content-huge,[data-gene-ui-version=\"2.11.0\"] .badge__content-medium{top:-1rem}html:not([dir=rtl]) .badge__content-big,html:not([dir=rtl]) .badge__content-huge,html:not([dir=rtl]) .badge__content-medium{right:-1rem}html[dir=rtl] .badge__content-big,html[dir=rtl] .badge__content-huge,html[dir=rtl] .badge__content-medium{left:-1rem}[data-gene-ui-version=\"2.11.0\"] .badge__content-primary{background:var(--hero)}";
10
+ styleInject(css_248z);
11
+
12
+ const getShowValue = (count, maxCount) => {
13
+ if (count !== 0 && !count) return null;
14
+ if (!maxCount) return count;
15
+ return count > maxCount ? "".concat(maxCount, "+") : count;
16
+ };
17
+ function Badge(_ref) {
18
+ let {
19
+ children,
20
+ size,
21
+ color,
22
+ count,
23
+ dot,
24
+ maxCount,
25
+ className,
26
+ ...restProps
27
+ } = _ref;
28
+ const show = useMemo(() => dot ? '' : getShowValue(count, maxCount), [dot, count, maxCount]);
29
+ return /*#__PURE__*/React__default.createElement("div", _extends({
30
+ className: "badge"
31
+ }, restProps), show !== null && /*#__PURE__*/React__default.createElement("span", {
32
+ className: classnames('badge__content', className, {
33
+ ["badge__content-".concat(size)]: size,
34
+ ["badge__content-".concat(color)]: color,
35
+ ["badge__content-dot"]: dot,
36
+ ["badge__content-children"]: children
37
+ })
38
+ }, show), children);
39
+ }
40
+ Badge.propTypes = {
41
+ /**
42
+ * Any valid React node
43
+ */
44
+ children: propTypesExports.node,
45
+ /**
46
+ * Any custom class name
47
+ */
48
+ className: propTypesExports.string,
49
+ /**
50
+ * Badge size
51
+ */
52
+ size: propTypesExports.oneOf(badgeConfig.size),
53
+ /**
54
+ * Badge color
55
+ */
56
+ color: propTypesExports.oneOf(badgeConfig.color),
57
+ /**
58
+ * Shows the specified number on the badge
59
+ */
60
+ count: propTypesExports.number,
61
+ /**
62
+ * Set this property to have only dot instead of number
63
+ */
64
+ dot: propTypesExports.bool,
65
+ /**
66
+ * When the "count" is greater than "maxCount" Badge will show "maxCount" value and "+"
67
+ */
68
+ maxCount: propTypesExports.number
69
+ };
70
+ Badge.defaultProps = {
71
+ dot: false,
72
+ size: badgeConfig.size[0],
73
+ color: badgeConfig.color[0]
74
+ };
75
+
76
+ export { Badge as default };
package/Breadcrumb.js ADDED
@@ -0,0 +1,128 @@
1
+ import { _ as _extends } from './_rollupPluginBabelHelpers-e8fb2e5c.js';
2
+ import React__default, { useState, useCallback, Fragment } from 'react';
3
+ import { p as propTypesExports } from './index-e0af0caf.js';
4
+ import { c as classnames } from './index-6ff23041.js';
5
+ import { n as noop } from './index-ac59cb10.js';
6
+ import Button from './Button.js';
7
+ import { P as Popover } from './index-a4635754.js';
8
+ import Icon from './Icon.js';
9
+ import Menu from './Menu.js';
10
+ import './globalStyling-9c60a159.js';
11
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
12
+ import './dateValidation-67caec66.js';
13
+ import './_commonjsHelpers-24198af3.js';
14
+ import 'react-dom';
15
+ import './Popover-f4d1cac0.js';
16
+ import './index-122432cd.js';
17
+ import './useDeviceType-dd51db38.js';
18
+ import './configs-91c86664.js';
19
+ import './useWindowSize-80369d76.js';
20
+ import './GeneUIProvider.js';
21
+ import './Portal.js';
22
+ import './Scrollbar.js';
23
+ import './guid-8ddf77b3.js';
24
+ import './Option.js';
25
+ import './useEllipsisDetection-ef536015.js';
26
+ import './Tooltip.js';
27
+
28
+ function BreadcrumbItem(_ref) {
29
+ let {
30
+ data,
31
+ active,
32
+ onClick
33
+ } = _ref;
34
+ return /*#__PURE__*/React__default.createElement("button", {
35
+ onClick: onClick,
36
+ className: classnames('breadcrumbs-link', {
37
+ active
38
+ })
39
+ }, data.title);
40
+ }
41
+
42
+ var css_248z = "[data-gene-ui-version=\"2.11.0\"] .bread-crumbs-holder{align-items:center;display:flex;font-weight:600;justify-content:flex-start;min-height:3.6rem;width:100%}[data-gene-ui-version=\"2.11.0\"] .bread-crumbs-holder>*+:not(button){margin:0 0 0 1rem}html[dir=rtl] .bread-crumbs-holder>*+:not(button){margin:0 1rem 0 0}[data-gene-ui-version=\"2.11.0\"] .bread-crumbs-holder>button{margin:0 .4rem}[data-gene-ui-version=\"2.11.0\"] .bread-crumbs-holder>button+.icon,html[dir=rtl] .bread-crumbs-holder>button+.icon{margin:0}[data-gene-ui-version=\"2.11.0\"] .breadcrumbs-link{color:inherit;cursor:pointer}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .breadcrumbs-link:hover{color:var(--hero)}}[data-gene-ui-version=\"2.11.0\"] .breadcrumbs-link.active{color:var(--hero)}";
43
+ styleInject(css_248z);
44
+
45
+ function Breadcrumb(_ref) {
46
+ let {
47
+ data,
48
+ onClick,
49
+ collapsed,
50
+ className,
51
+ separator,
52
+ ...restProps
53
+ } = _ref;
54
+ const [isPopoverOpen, setIsPopoverOpen] = useState(false);
55
+ const [firstItem, ...others] = data;
56
+ const handlePopoverItemClick = useCallback((_, item) => {
57
+ onClick(item);
58
+ setIsPopoverOpen(false);
59
+ }, [onClick]);
60
+ const handlePopoverToggle = useCallback(() => {
61
+ setIsPopoverOpen(prev => !prev);
62
+ }, []);
63
+ return /*#__PURE__*/React__default.createElement("div", _extends({
64
+ className: classnames('bread-crumbs-holder', className)
65
+ }, restProps), collapsed && data.length > 4 ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(BreadcrumbItem, {
66
+ onClick: () => onClick(firstItem),
67
+ data: firstItem
68
+ }), separator, /*#__PURE__*/React__default.createElement(Popover, {
69
+ isOpen: isPopoverOpen,
70
+ align: "start",
71
+ extendTargetWidth: false,
72
+ Content: /*#__PURE__*/React__default.createElement(Menu, {
73
+ onSelect: handlePopoverItemClick,
74
+ data: others.slice(0, -2)
75
+ })
76
+ }, /*#__PURE__*/React__default.createElement(Button, {
77
+ onClick: handlePopoverToggle,
78
+ icon: "bc-icon-more-horizontal",
79
+ appearance: "minimal",
80
+ color: "default"
81
+ })), separator, others.slice(-2).map((item, i) => /*#__PURE__*/React__default.createElement(Fragment, {
82
+ key: item.slug
83
+ }, /*#__PURE__*/React__default.createElement(BreadcrumbItem, {
84
+ onClick: () => onClick(item),
85
+ active: i === 1,
86
+ key: item.slug,
87
+ data: item
88
+ }), i !== 1 && separator))) : data.map((item, i) => /*#__PURE__*/React__default.createElement(Fragment, {
89
+ key: item.slug
90
+ }, /*#__PURE__*/React__default.createElement(BreadcrumbItem, {
91
+ onClick: () => onClick(item),
92
+ active: data.length - 1 === i,
93
+ data: item
94
+ }), data.length - 1 !== i && separator)));
95
+ }
96
+ Breadcrumb.propTypes = {
97
+ /**
98
+ * Data items to display
99
+ */
100
+ data: propTypesExports.arrayOf(propTypesExports.shape({
101
+ title: propTypesExports.node.isRequired
102
+ })).isRequired,
103
+ /**
104
+ * Additional className
105
+ */
106
+ className: propTypesExports.string,
107
+ /**
108
+ * Breadcrumbs will render collapsed view when "data" length is greater than 4, when set to "true"
109
+ */
110
+ collapsed: propTypesExports.bool,
111
+ /**
112
+ * Fires an event on breadcrumb item click((item: data[item] => void))
113
+ */
114
+ onClick: propTypesExports.func,
115
+ /**
116
+ * Use this prop to define the middle component between breadcrumb items.
117
+ */
118
+ separator: propTypesExports.node
119
+ };
120
+ Breadcrumb.defaultProps = {
121
+ collapsed: false,
122
+ onClick: noop,
123
+ separator: /*#__PURE__*/React__default.createElement(Icon, {
124
+ type: "bc-icon-arrow-right"
125
+ })
126
+ };
127
+
128
+ export { Breadcrumb as default };
package/BusyLoader.js ADDED
@@ -0,0 +1,69 @@
1
+ import React__default from 'react';
2
+ import { p as propTypesExports } from './index-e0af0caf.js';
3
+ import { c as classnames } from './index-6ff23041.js';
4
+ import Icon from './Icon.js';
5
+ import './globalStyling-9c60a159.js';
6
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
+ import './_rollupPluginBabelHelpers-e8fb2e5c.js';
8
+
9
+ var css_248z = "[data-gene-ui-version=\"2.11.0\"] .loader-holder{align-items:center;color:var(--hero);display:flex;flex-direction:column;margin:auto;position:relative;text-align:center}[data-gene-ui-version=\"2.11.0\"] .loader-holder.p-static{margin:6rem}[data-gene-ui-version=\"2.11.0\"] .loader-holder.p-absolute{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}[data-gene-ui-version=\"2.11.0\"] .loader-holder .s-medium{font-size:2.8rem}[data-gene-ui-version=\"2.11.0\"] .loader-holder .s-big{font-size:5.4rem}[data-gene-ui-version=\"2.11.0\"] .loader-text{font:600 1.6rem/2rem var(--font-family);margin:1rem 0 0}[data-gene-ui-version=\"2.11.0\"] .bubble-loader{animation:sk-rotate 2s linear infinite;height:6.6rem;position:relative;width:6.6rem}@keyframes sk-rotate{to{transform:rotate(1turn)}}[data-gene-ui-version=\"2.11.0\"] .bubble-loader .dot{animation:sk-bounce 2s ease-in-out infinite;background:var(--hero);border-radius:100%;height:60%;position:absolute;top:0;width:60%}@keyframes sk-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}[data-gene-ui-version=\"2.11.0\"] .bubble-loader .dot2{animation-delay:-1s;bottom:0;top:auto}[data-gene-ui-version=\"2.11.0\"] .bar-loader{height:.6rem;left:0;overflow:hidden;position:fixed;top:calc(var(--header-height, .6rem) - .6rem);width:100%}[data-gene-ui-version=\"2.11.0\"] .bar-loader:before{animation:bar-loader .8s linear infinite;background:linear-gradient(270deg,#7eb8ff 30%,#8d14e6 50%,#7eb8ff 70%) no-repeat 50% 50%/100vw .6rem;content:\"\";display:block;height:100%;left:50%;max-width:0;opacity:0;overflow:hidden;position:absolute;top:0;transform:translateX(-50%);width:100%}@keyframes bar-loader{0%,to{opacity:0}10%,90%{opacity:1}0%{max-width:0}to{max-width:100%}}";
10
+ styleInject(css_248z);
11
+
12
+ function BubbleLoader() {
13
+ return /*#__PURE__*/React__default.createElement("div", {
14
+ className: "bubble-loader"
15
+ }, /*#__PURE__*/React__default.createElement("div", {
16
+ className: "dot dot1"
17
+ }), /*#__PURE__*/React__default.createElement("div", {
18
+ className: "dot dot2"
19
+ }));
20
+ }
21
+ function BusyLoader(props) {
22
+ const {
23
+ type,
24
+ isBusy,
25
+ children,
26
+ className,
27
+ loadingText,
28
+ spinnerSize
29
+ } = props;
30
+ return type === 'bar' ? /*#__PURE__*/React__default.createElement("div", {
31
+ className: "bar-loader"
32
+ }) : isBusy ? /*#__PURE__*/React__default.createElement("div", {
33
+ className: classnames('loader-holder', className)
34
+ }, type === 'spinner' ? /*#__PURE__*/React__default.createElement(Icon, {
35
+ type: "bc-icon-loader s-".concat(spinnerSize)
36
+ }) : /*#__PURE__*/React__default.createElement(BubbleLoader, null), loadingText && /*#__PURE__*/React__default.createElement("div", {
37
+ className: "loader-text"
38
+ }, loadingText)) : children;
39
+ }
40
+ BusyLoader.propTypes = {
41
+ /**
42
+ * Show loader
43
+ */
44
+ isBusy: propTypesExports.bool,
45
+ /**
46
+ * Any valid React node. Renders when "isBusy" is set to false
47
+ */
48
+ children: propTypesExports.node,
49
+ /**
50
+ * Show some text when loading
51
+ */
52
+ loadingText: propTypesExports.string,
53
+ /**
54
+ * Loader available type/style
55
+ */
56
+ type: propTypesExports.oneOf(['spinner', 'bubbles', 'bar']),
57
+ /**
58
+ * Loader size
59
+ */
60
+ spinnerSize: propTypesExports.oneOf(['small', 'medium', 'big'])
61
+ };
62
+ BusyLoader.defaultProps = {
63
+ isBusy: true,
64
+ children: null,
65
+ type: 'spinner',
66
+ spinnerSize: 'small'
67
+ };
68
+
69
+ export { BusyLoader as default };
package/Button.js ADDED
@@ -0,0 +1,130 @@
1
+ import { _ as _extends } from './_rollupPluginBabelHelpers-e8fb2e5c.js';
2
+ import React__default, { forwardRef } from 'react';
3
+ import { p as propTypesExports } from './index-e0af0caf.js';
4
+ import { c as classnames } from './index-6ff23041.js';
5
+ import Icon from './Icon.js';
6
+ import './globalStyling-9c60a159.js';
7
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
8
+
9
+ var css_248z = "[data-gene-ui-version=\"2.11.0\"] .btn{--size:3.6rem;align-items:center;border:1px solid #0000;border-radius:var(--button-external-border-radius,var(--button-external-size,var(--size)));color:inherit;cursor:pointer;display:flex;font:600 1.4rem/2rem var(--font-family);justify-content:center;min-height:var(--button-external-size,var(--size));min-width:var(--button-external-size,var(--size));position:relative;transition:color .3s,background .3s,opacity .2s;-webkit-user-select:none;user-select:none}[data-gene-ui-version=\"2.11.0\"] .btn:focus-visible{border-radius:var(--button-external-border-radius,var(--button-external-size,var(--size)));outline:.2rem var(--hero) solid}[data-gene-ui-version=\"2.11.0\"] .btn:disabled{opacity:.5;pointer-events:none}[data-gene-ui-version=\"2.11.0\"] .btn.s-medium{--size:3.2rem;font-size:1.2rem}[data-gene-ui-version=\"2.11.0\"] .btn.s-big{--size:4.2rem}[data-gene-ui-version=\"2.11.0\"] .btn.cr-smooth{border-radius:var(--button-external-border-radius,.4rem)}[data-gene-ui-version=\"2.11.0\"] .btn>*+*{margin:0 0 0 .4rem}html[dir=rtl] .btn>*+*{margin:0 .4rem 0 0}[data-gene-ui-version=\"2.11.0\"] .btn.id-end{flex-direction:row-reverse}[data-gene-ui-version=\"2.11.0\"] .btn.id-end>*+*{margin:0 .7rem 0 0}html[dir=rtl] .btn.id-end>*+*{margin:0 0 0 .7rem}[data-gene-ui-version=\"2.11.0\"] .btn:not(.c-icon){padding:0 2rem}[data-gene-ui-version=\"2.11.0\"] .btn:not(.c-icon).f-content-size{padding:0 1.3rem}[data-gene-ui-version=\"2.11.0\"] .btn:not(.c-icon).f-default{min-width:10rem}[data-gene-ui-version=\"2.11.0\"] .btn:not(.c-icon).f-full-width{width:100%}[data-gene-ui-version=\"2.11.0\"] .btn:not(.c-icon).loading-padding{padding:0 .6rem}[data-gene-ui-version=\"2.11.0\"] .btn.c-confirm{--hero:var(--confirm);--hero-sc:var(--confirm-sc);--hero-hover:var(--confirm-hover)}[data-gene-ui-version=\"2.11.0\"] .btn.c-danger{--hero:var(--danger);--hero-sc:var(--danger-sc);--hero-hover:var(--danger-hover)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-outline{border-color:var(--hero);color:var(--hero)}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-outline:hover{background:var(--hero);color:var(--hero-sc)}}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-outline:active{background:var(--hero);color:var(--hero-sc)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-minimal:not(.c-default){color:var(--hero)}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-minimal:hover{background:rgba(var(--background-sc-rgb),.03)}}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-minimal.active{background:rgba(var(--background-sc-rgb),.03)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-grayscale:not(:disabled){background:rgba(var(--background-sc-rgb),.01)}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-grayscale:not(:disabled):hover{background:rgba(var(--background-sc-rgb),.03)}}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-grayscale:not(:disabled).active{background:rgba(var(--background-sc-rgb),.03)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-grayscale:not(.c-default){color:var(--hero)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-clean:not(.c-default){color:rgba(var(--background-sc-rgb),.6)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-clean:not(:disabled){background:rgba(var(--hero-rgb),.1);color:var(--hero)}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-clean:not(:disabled):hover{background:var(--hero);color:var(--hero-sc)}}[data-gene-ui-version=\"2.11.0\"] .btn:not(.active).a-clean:not(:disabled).active{background:var(--hero);color:var(--hero-sc)}[data-gene-ui-version=\"2.11.0\"] .btn:not(.a-grayscale).with-shadow{box-shadow:0 .2rem .4rem 0 #0000001a}[data-gene-ui-version=\"2.11.0\"] .btn.a-grayscale:not(:disabled){box-shadow:0 1px 0 0 #00000029}[data-gene-ui-version=\"2.11.0\"] .btn.a-default,[data-gene-ui-version=\"2.11.0\"] .btn.active{background:var(--hero);color:var(--hero-sc)}@media (hover:hover){[data-gene-ui-version=\"2.11.0\"] .btn.a-default:hover,[data-gene-ui-version=\"2.11.0\"] .btn.active:hover{background:var(--hero-hover)}}[data-gene-ui-version=\"2.11.0\"] .btn.loading-state>:not(.btn-loader-holder){color:#0000!important}[data-gene-ui-version=\"2.11.0\"] .btn .btn-loader-holder{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}";
10
+ styleInject(css_248z);
11
+
12
+ const Button = /*#__PURE__*/forwardRef((_ref, ref) => {
13
+ let {
14
+ children,
15
+ appearance,
16
+ size,
17
+ flexibility,
18
+ color,
19
+ itemsDirection,
20
+ cornerRadius,
21
+ icon,
22
+ active,
23
+ className,
24
+ withShadow,
25
+ loading,
26
+ ariaLabel,
27
+ ...restProps
28
+ } = _ref;
29
+ const noChildren = !children && children !== 0;
30
+ return /*#__PURE__*/React__default.createElement("button", _extends({
31
+ className: classnames('btn', className, "a-".concat(appearance), "s-".concat(size), "f-".concat(flexibility), "c-".concat(color), "id-".concat(itemsDirection), "cr-".concat(cornerRadius), {
32
+ active,
33
+ 'c-icon': !!icon && noChildren,
34
+ 'with-shadow': withShadow,
35
+ 'loading-padding': !noChildren && !icon && loading
36
+ }),
37
+ ref: ref
38
+ }, ariaLabel ? {
39
+ 'aria-label': ariaLabel
40
+ } : {}, restProps), icon && (loading ? /*#__PURE__*/React__default.createElement(Icon, {
41
+ type: "bc-icon-loader"
42
+ }) : /*#__PURE__*/React__default.createElement(Icon, {
43
+ type: icon
44
+ })), !noChildren && (!icon && loading ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Icon, {
45
+ type: "bc-icon-loader"
46
+ }), /*#__PURE__*/React__default.createElement("span", null, children)) : /*#__PURE__*/React__default.createElement("span", {
47
+ className: "ellipsis-text"
48
+ }, children)), loading && noChildren && /*#__PURE__*/React__default.createElement("div", {
49
+ className: "btn-loader-holder"
50
+ }, /*#__PURE__*/React__default.createElement(Icon, {
51
+ type: "bc-icon-loader"
52
+ })));
53
+ });
54
+ const ButtonConfig = {
55
+ appearance: ['default', 'outline', 'minimal', 'grayscale', 'clean'],
56
+ size: ['default', 'medium', 'big'],
57
+ color: ['primary', 'confirm', 'danger', 'default'],
58
+ flexibility: ['default', 'content-size', 'full-width'],
59
+ itemsDirection: ['start', 'end'],
60
+ cornerRadius: ['round', 'smooth']
61
+ };
62
+ Button.propTypes = {
63
+ /**
64
+ * Any valid React node
65
+ */
66
+ children: propTypesExports.node,
67
+ /**
68
+ * The way how the Button should be displayed
69
+ */
70
+ appearance: propTypesExports.oneOf(ButtonConfig.appearance),
71
+ /**
72
+ * Button size
73
+ */
74
+ size: propTypesExports.oneOf(ButtonConfig.size),
75
+ /**
76
+ * How to display inscription in relation to it's parent in Button
77
+ */
78
+ flexibility: propTypesExports.oneOf(ButtonConfig.flexibility),
79
+ /**
80
+ * Button color
81
+ */
82
+ color: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(ButtonConfig.color)]),
83
+ /**
84
+ * Button children direction either from the start, or from the end
85
+ */
86
+ itemsDirection: propTypesExports.oneOf(ButtonConfig.itemsDirection),
87
+ /**
88
+ * Button corner radius
89
+ */
90
+ cornerRadius: propTypesExports.oneOf(ButtonConfig.cornerRadius),
91
+ /**
92
+ * The property will add an "Icon" as Button child. The valid values can be found in "Icon" atom
93
+ */
94
+ icon: propTypesExports.string,
95
+ /**
96
+ * Button disabled state
97
+ */
98
+ disabled: propTypesExports.bool,
99
+ /**
100
+ * Button active state
101
+ */
102
+ active: propTypesExports.bool,
103
+ /**
104
+ * Adding shadow to button
105
+ */
106
+ withShadow: propTypesExports.bool,
107
+ /**
108
+ * Button additianl className
109
+ */
110
+ className: propTypesExports.string,
111
+ /**
112
+ * Button text transforms to spinner
113
+ */
114
+ loading: propTypesExports.bool,
115
+ /**
116
+ * aria-label for button.
117
+ */
118
+ ariaLabel: propTypesExports.string
119
+ };
120
+ Button.defaultProps = {
121
+ appearance: ButtonConfig.appearance[0],
122
+ size: ButtonConfig.size[0],
123
+ flexibility: ButtonConfig.flexibility[0],
124
+ color: ButtonConfig.color[0],
125
+ itemsDirection: ButtonConfig.itemsDirection[0],
126
+ cornerRadius: ButtonConfig.cornerRadius[0]
127
+ };
128
+ Button.displayName = 'Button';
129
+
130
+ export { Button as default };