@inceptionbg/iui 2.0.24 → 2.0.26

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 (208) hide show
  1. package/dist/NoAccessPage-DTPU8bP2.js +2 -0
  2. package/dist/{NoAccessPage-CJisyKrk.js.map → NoAccessPage-DTPU8bP2.js.map} +1 -1
  3. package/dist/NotFoundPage-PZunMooy.js +2 -0
  4. package/dist/{NotFoundPage-BeRit0kr.js.map → NotFoundPage-PZunMooy.js.map} +1 -1
  5. package/dist/icons/index.d.ts +3 -1
  6. package/dist/icons/index.js +1 -1
  7. package/dist/index.d.ts +44 -31
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/iui.css +1 -1
  11. package/package.json +1 -1
  12. package/src/assets/icons/duotone/faBell.ts +17 -17
  13. package/src/assets/icons/duotone/faCircleUser.ts +17 -17
  14. package/src/assets/icons/index.ts +26 -25
  15. package/src/assets/icons/light/faArrowDownShortWide.ts +15 -15
  16. package/src/assets/icons/light/faArrowDownWideShort.ts +15 -15
  17. package/src/assets/icons/light/faArrowLeft.ts +15 -15
  18. package/src/assets/icons/light/faArrowRight.ts +15 -15
  19. package/src/assets/icons/light/faArrowUpArrowDown.ts +15 -15
  20. package/src/assets/icons/light/faArrowUpRightFromSquare.ts +15 -15
  21. package/src/assets/icons/light/faArrowsToLine.ts +15 -15
  22. package/src/assets/icons/light/faArrowsUpDown.ts +15 -15
  23. package/src/assets/icons/light/faBell.ts +15 -15
  24. package/src/assets/icons/light/faBookmark.ts +15 -15
  25. package/src/assets/icons/light/faBookmarkSlash.ts +15 -15
  26. package/src/assets/icons/light/faCalendarPlus.ts +15 -15
  27. package/src/assets/icons/light/faCheck.ts +15 -15
  28. package/src/assets/icons/light/faChevronDown.ts +15 -15
  29. package/src/assets/icons/light/faChevronRight.ts +15 -15
  30. package/src/assets/icons/light/faCircleCheck.ts +15 -0
  31. package/src/assets/icons/light/faCircleInfo.ts +15 -15
  32. package/src/assets/icons/light/faCircleXmark.ts +15 -15
  33. package/src/assets/icons/light/faClipboardCheck.ts +15 -15
  34. package/src/assets/icons/light/faClockRotateLeft.ts +15 -15
  35. package/src/assets/icons/light/faEllipsisVertical.ts +15 -15
  36. package/src/assets/icons/light/faEnvelope.ts +15 -15
  37. package/src/assets/icons/light/faEye.ts +15 -15
  38. package/src/assets/icons/light/faEyeSlash.ts +15 -15
  39. package/src/assets/icons/light/faFilter.ts +15 -15
  40. package/src/assets/icons/light/faGear.ts +15 -15
  41. package/src/assets/icons/light/faHouse.ts +15 -15
  42. package/src/assets/icons/light/faIdBadge.ts +15 -15
  43. package/src/assets/icons/light/faLineColumns.ts +15 -15
  44. package/src/assets/icons/light/faLink.ts +15 -15
  45. package/src/assets/icons/light/faMagnifyingGlass.ts +15 -15
  46. package/src/assets/icons/light/faPen.ts +15 -15
  47. package/src/assets/icons/light/faPrint.ts +15 -15
  48. package/src/assets/icons/light/faQuestion.ts +15 -15
  49. package/src/assets/icons/light/faRotateRight.ts +15 -15
  50. package/src/assets/icons/light/faTrashCan.ts +15 -15
  51. package/src/assets/icons/light/faTriangleExclamation.ts +15 -15
  52. package/src/assets/icons/light/faXmark.ts +15 -15
  53. package/src/assets/icons/regular/faArrowLeft.ts +15 -15
  54. package/src/assets/icons/regular/faArrowRightArrowLeft.ts +15 -15
  55. package/src/assets/icons/regular/faCircleCheck.ts +15 -15
  56. package/src/assets/icons/regular/faCircleExclamation.ts +15 -15
  57. package/src/assets/icons/regular/faCircleInfo.ts +15 -15
  58. package/src/assets/icons/regular/faFileArrowDown.ts +15 -15
  59. package/src/assets/icons/regular/faFilterCircleXmark.ts +15 -15
  60. package/src/assets/icons/regular/faTriangleExclamation.ts +15 -15
  61. package/src/assets/icons/solid/faAngleLeft.ts +15 -15
  62. package/src/assets/icons/solid/faAngleRight.ts +15 -15
  63. package/src/assets/icons/solid/faArrowDownWideShort.ts +15 -15
  64. package/src/assets/icons/solid/faCaretDown.ts +15 -15
  65. package/src/assets/icons/solid/faCheck.ts +15 -15
  66. package/src/assets/icons/solid/faEllipsisVertical.ts +15 -15
  67. package/src/assets/icons/solid/faEnvelopeDot.ts +15 -15
  68. package/src/assets/icons/solid/faFilter.ts +15 -15
  69. package/src/assets/icons/solid/faFloppyDisk.ts +15 -15
  70. package/src/assets/icons/solid/faGripDotsVertical.ts +15 -15
  71. package/src/assets/icons/solid/faListUl.ts +15 -15
  72. package/src/assets/icons/solid/faMinus.ts +15 -15
  73. package/src/assets/icons/solid/faPlus.ts +15 -15
  74. package/src/assets/icons/solid/faPrint.ts +15 -15
  75. package/src/assets/icons/solid/faRotateRight.ts +15 -15
  76. package/src/assets/icons/solid/faXmark.ts +15 -15
  77. package/src/components/Accordions/Accordions.tsx +75 -75
  78. package/src/components/Alert/Alert.tsx +31 -31
  79. package/src/components/Badge/DotBadge.tsx +16 -16
  80. package/src/components/Badge/NotificationBadge.tsx +29 -29
  81. package/src/components/Badge/PillBadge.tsx +13 -13
  82. package/src/components/Button/Button.tsx +56 -56
  83. package/src/components/Button/IconButton.tsx +51 -51
  84. package/src/components/Button/SplitButton.tsx +91 -91
  85. package/src/components/Dashboard/Dashboard.tsx +9 -9
  86. package/src/components/Dashboard/DashboardWidget.tsx +44 -44
  87. package/src/components/Dashboard/FastLinksWidget/FastLinksWidget.tsx +37 -37
  88. package/src/components/Dialog/Dialog.tsx +166 -166
  89. package/src/components/Dialog/components/DialogFooter.tsx +100 -100
  90. package/src/components/Header/Components/EnvBadge.tsx +17 -17
  91. package/src/components/Header/Components/ModuleSelect.tsx +68 -68
  92. package/src/components/Header/Components/Notifications.tsx +202 -202
  93. package/src/components/Header/Components/UserMenu.tsx +52 -52
  94. package/src/components/Header/Header.tsx +45 -37
  95. package/src/components/Helper/Collapse.tsx +53 -53
  96. package/src/components/Inputs/Checkbox.tsx +53 -53
  97. package/src/components/Inputs/CurrencyInput.tsx +124 -124
  98. package/src/components/Inputs/DateInput/DateInput.tsx +184 -184
  99. package/src/components/Inputs/DateInput/components/DatePartInput.tsx +159 -159
  100. package/src/components/Inputs/InputWrapper.tsx +95 -95
  101. package/src/components/Inputs/NumberInput.tsx +86 -86
  102. package/src/components/Inputs/PasswordInput.tsx +40 -40
  103. package/src/components/Inputs/PhoneInput/PhoneInput.tsx +108 -108
  104. package/src/components/Inputs/PhoneInput/utils/countryCode.ts +20 -20
  105. package/src/components/Inputs/Radio.tsx +59 -59
  106. package/src/components/Inputs/RadioGroup.tsx +48 -48
  107. package/src/components/Inputs/RadioLarge.tsx +39 -39
  108. package/src/components/Inputs/SearchInput.tsx +46 -46
  109. package/src/components/Inputs/Selects/Select.tsx +17 -17
  110. package/src/components/Inputs/Selects/components/CustomSelectComponents.tsx +19 -20
  111. package/src/components/Inputs/Selects/components/SelectWrapper.tsx +118 -118
  112. package/src/components/Inputs/Selects/utils/selectStyles.ts +101 -101
  113. package/src/components/Inputs/TextAreaInput.tsx +68 -68
  114. package/src/components/Inputs/TextInput.tsx +100 -100
  115. package/src/components/Inputs/TimeInput/TimeInput.tsx +81 -81
  116. package/src/components/List/List.tsx +21 -21
  117. package/src/components/List/ListItem.tsx +70 -70
  118. package/src/components/Loader/Loader.tsx +59 -59
  119. package/src/components/Loader/ProgressBar.tsx +41 -41
  120. package/src/components/Menu/Menu.tsx +81 -81
  121. package/src/components/Menu/MenuItem.tsx +46 -46
  122. package/src/components/Menu/NewMenu.tsx +63 -63
  123. package/src/components/Menu/hooks/useMenuPosition.tsx +116 -116
  124. package/src/components/PageComponents/ScrollableContent.tsx +11 -0
  125. package/src/components/Pullover/Pullover.tsx +197 -197
  126. package/src/components/Router/Router.tsx +52 -52
  127. package/src/components/Sidebar/AddButton.tsx +22 -22
  128. package/src/components/Sidebar/Sidebar.tsx +85 -85
  129. package/src/components/Sidebar/SidebarItem.tsx +84 -84
  130. package/src/components/Sidebar/types/ISidebar.ts +28 -28
  131. package/src/components/Table/Table.tsx +259 -259
  132. package/src/components/Table/components/columns/ColumnsList.tsx +60 -60
  133. package/src/components/Table/components/columns/TableColumnsEdit.tsx +114 -114
  134. package/src/components/Table/components/edit/TableEditRow.tsx +78 -78
  135. package/src/components/Table/components/filters/FilterItem.tsx +15 -15
  136. package/src/components/Table/components/filters/TableFilters.tsx +126 -126
  137. package/src/components/Table/components/footer/TableFooter.tsx +126 -126
  138. package/src/components/Table/components/header/TableHeader.tsx +40 -40
  139. package/src/components/Table/components/header/TableHeaderRow.tsx +57 -57
  140. package/src/components/Table/components/items/TableItemActions.tsx +78 -78
  141. package/src/components/Table/components/print/TablePrint.tsx +200 -200
  142. package/src/components/Table/components/select/TableSelect.tsx +50 -50
  143. package/src/components/Table/components/sort/TableSort.tsx +73 -73
  144. package/src/components/Table/components/templates/CreateTemplateDialog.tsx +58 -58
  145. package/src/components/Table/components/templates/TableTemplates.tsx +65 -65
  146. package/src/components/Table/components/templates/TemplatesPullover.tsx +88 -88
  147. package/src/components/Table/contexts/TableContext.tsx +116 -116
  148. package/src/components/Table/hooks/localHooks/useLocalTableColumns.tsx +70 -70
  149. package/src/components/Table/hooks/localHooks/useLocalTableData.tsx +84 -84
  150. package/src/components/Table/hooks/localHooks/useLocalTableKeyboard.ts +176 -176
  151. package/src/components/Table/hooks/localHooks/useLocalTablePagination.ts +12 -12
  152. package/src/components/Table/hooks/useTableColumns.ts +34 -34
  153. package/src/components/Table/hooks/useTableEdit.tsx +140 -140
  154. package/src/components/Table/hooks/useTableFilterFields.tsx +150 -150
  155. package/src/components/Table/hooks/useTablePagination.ts +19 -19
  156. package/src/components/Table/hooks/useTablePrint.ts +83 -83
  157. package/src/components/Table/hooks/useTableSearch.ts +31 -31
  158. package/src/components/Table/hooks/useTableSelect.ts +19 -19
  159. package/src/components/Table/hooks/useTableSort.ts +8 -8
  160. package/src/components/Tabs/Tabs.tsx +68 -68
  161. package/src/components/Tooltip/Tooltip.tsx +191 -191
  162. package/src/components/Tree/Tree.tsx +22 -22
  163. package/src/components/Tree/TreeItem.tsx +57 -57
  164. package/src/components/Wrappers/AppLayout.tsx +17 -17
  165. package/src/components/Wrappers/ConditionalWrapper.tsx +10 -10
  166. package/src/components/Wrappers/FormWrapper.tsx +84 -84
  167. package/src/components/Wrappers/PageLayout.tsx +164 -156
  168. package/src/hooks/useBackgroundClose.ts +19 -19
  169. package/src/hooks/useGetFocusableElements.ts +43 -43
  170. package/src/hooks/useIsMenuOpen.ts +11 -11
  171. package/src/hooks/useLocalPopoverControl.ts +32 -32
  172. package/src/hooks/usePopupControl.ts +22 -22
  173. package/src/hooks/useZendesk.ts +21 -21
  174. package/src/index.ts +381 -379
  175. package/src/pages/NoAccessPage.tsx +27 -27
  176. package/src/pages/NotFoundPage.tsx +26 -26
  177. package/src/styles/common/helpers/_color.scss +3 -0
  178. package/src/styles/components/_page.scss +0 -13
  179. package/src/types/IBasic.ts +32 -32
  180. package/src/types/IHeader.ts +40 -40
  181. package/src/types/IInfo.ts +1 -1
  182. package/src/types/IKeyboard.ts +33 -33
  183. package/src/types/IMenu.ts +19 -19
  184. package/src/types/INotifications.ts +15 -15
  185. package/src/types/IPopup.ts +17 -17
  186. package/src/types/IRouter.ts +6 -6
  187. package/src/types/ISelect.ts +54 -54
  188. package/src/types/ITab.ts +10 -10
  189. package/src/types/ITable.ts +290 -290
  190. package/src/utils/InputPatternValidation.ts +12 -12
  191. package/src/utils/dateUtils.ts +32 -32
  192. package/src/utils/fileUtils.ts +177 -177
  193. package/src/utils/i18n/i18nIUICyrilic.ts +119 -119
  194. package/src/utils/i18n/i18nIUILatin.ts +120 -120
  195. package/src/utils/i18n/i18nIUIMe.ts +118 -118
  196. package/src/utils/icons.ts +13 -13
  197. package/src/utils/localStorageHelper.ts +24 -24
  198. package/src/utils/logoUtils.ts +7 -7
  199. package/src/utils/numberUtils.ts +21 -21
  200. package/src/utils/objectUtils.ts +114 -114
  201. package/src/utils/popupUtils.ts +82 -82
  202. package/src/utils/rootDir.ts +1 -1
  203. package/src/utils/stringUtils.ts +18 -18
  204. package/src/utils/tableUtils.ts +130 -130
  205. package/src/utils/toasts.ts +6 -6
  206. package/src/utils/urlUtils.ts +4 -4
  207. package/dist/NoAccessPage-CJisyKrk.js +0 -2
  208. package/dist/NotFoundPage-BeRit0kr.js +0 -2
@@ -1,75 +1,75 @@
1
- import type { FC } from 'react';
2
- import type { ITab } from '../../types/ITab';
3
- import { useState } from 'react';
4
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
- import clsx from 'clsx';
6
- import { faArrowsToLine } from '../../assets/icons/light/faArrowsToLine';
7
- import { faArrowsUpDown } from '../../assets/icons/light/faArrowsUpDown';
8
- import { Collapse } from '../Helper/Collapse';
9
-
10
- interface Props {
11
- tabs: ITab[];
12
- initialValue?: string;
13
- compact?: boolean;
14
- keepContentInDom?: boolean;
15
- control?: {
16
- value: string;
17
- setValue: (value: string) => void;
18
- };
19
- className?: string;
20
- classNameContent?: string;
21
- }
22
- export const Accordions: FC<Props> = ({
23
- tabs: allTabs,
24
- initialValue,
25
- compact,
26
- keepContentInDom,
27
- control,
28
- className,
29
- classNameContent,
30
- }) => {
31
- const tabs = allTabs.filter(tab => !tab.hidden);
32
- const [selected, setSelected] = useState(initialValue || '');
33
-
34
- return tabs.length > 0 ? (
35
- <div className={clsx('iui-accordions', className)}>
36
- {tabs.map(tab => {
37
- const isOpen = (control?.value ?? selected) === tab.value;
38
- return (
39
- <div
40
- key={tab.value}
41
- className={clsx('iui-accordion', {
42
- selected: isOpen,
43
- compact,
44
- })}
45
- >
46
- <div
47
- className={clsx('summary clickable', {
48
- disabled: tab.disabled,
49
- })}
50
- onClick={
51
- tab.disabled
52
- ? undefined
53
- : () => (control?.setValue ?? setSelected)(isOpen ? '' : tab.value)
54
- }
55
- >
56
- <div className="flex center">
57
- {tab.icon && <FontAwesomeIcon icon={tab.icon} className="iui-icon" />}
58
- {tab.label}
59
- </div>
60
- <FontAwesomeIcon
61
- icon={isOpen ? faArrowsToLine : faArrowsUpDown}
62
- className="collapse-icon"
63
- />
64
- </div>
65
- <Collapse isOpen={isOpen} keepContentInDom={keepContentInDom}>
66
- <div className={clsx('iui-accordion-content', classNameContent)}>
67
- {tab.component}
68
- </div>
69
- </Collapse>
70
- </div>
71
- );
72
- })}
73
- </div>
74
- ) : null;
75
- };
1
+ import type { FC } from 'react';
2
+ import type { ITab } from '../../types/ITab';
3
+ import { useState } from 'react';
4
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
+ import clsx from 'clsx';
6
+ import { faArrowsToLine } from '../../assets/icons/light/faArrowsToLine';
7
+ import { faArrowsUpDown } from '../../assets/icons/light/faArrowsUpDown';
8
+ import { Collapse } from '../Helper/Collapse';
9
+
10
+ interface Props {
11
+ tabs: ITab[];
12
+ initialValue?: string;
13
+ compact?: boolean;
14
+ keepContentInDom?: boolean;
15
+ control?: {
16
+ value: string;
17
+ setValue: (value: string) => void;
18
+ };
19
+ className?: string;
20
+ classNameContent?: string;
21
+ }
22
+ export const Accordions: FC<Props> = ({
23
+ tabs: allTabs,
24
+ initialValue,
25
+ compact,
26
+ keepContentInDom,
27
+ control,
28
+ className,
29
+ classNameContent,
30
+ }) => {
31
+ const tabs = allTabs.filter(tab => !tab.hidden);
32
+ const [selected, setSelected] = useState(initialValue || '');
33
+
34
+ return tabs.length > 0 ? (
35
+ <div className={clsx('iui-accordions', className)}>
36
+ {tabs.map(tab => {
37
+ const isOpen = (control?.value ?? selected) === tab.value;
38
+ return (
39
+ <div
40
+ key={tab.value}
41
+ className={clsx('iui-accordion', {
42
+ selected: isOpen,
43
+ compact,
44
+ })}
45
+ >
46
+ <div
47
+ className={clsx('summary clickable', {
48
+ disabled: tab.disabled,
49
+ })}
50
+ onClick={
51
+ tab.disabled
52
+ ? undefined
53
+ : () => (control?.setValue ?? setSelected)(isOpen ? '' : tab.value)
54
+ }
55
+ >
56
+ <div className="flex center">
57
+ {tab.icon && <FontAwesomeIcon icon={tab.icon} className="iui-icon" />}
58
+ {tab.label}
59
+ </div>
60
+ <FontAwesomeIcon
61
+ icon={isOpen ? faArrowsToLine : faArrowsUpDown}
62
+ className="collapse-icon"
63
+ />
64
+ </div>
65
+ <Collapse isOpen={isOpen} keepContentInDom={keepContentInDom}>
66
+ <div className={clsx('iui-accordion-content', classNameContent)}>
67
+ {tab.component}
68
+ </div>
69
+ </Collapse>
70
+ </div>
71
+ );
72
+ })}
73
+ </div>
74
+ ) : null;
75
+ };
@@ -1,31 +1,31 @@
1
- import type { FC, ReactNode } from 'react';
2
- import type { IInfoType } from '../../types/IInfo';
3
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
- import clsx from 'clsx';
5
- import { infoIcons } from '../../utils/icons';
6
-
7
- export interface IAlertProps {
8
- text?: string;
9
- severity: IInfoType;
10
- fitContent?: boolean;
11
- className?: string;
12
- children?: ReactNode;
13
- }
14
-
15
- export const Alert: FC<IAlertProps> = ({
16
- text,
17
- severity,
18
- fitContent,
19
- className,
20
- children,
21
- }) => (
22
- <div
23
- className={clsx('iui-alert', severity, className, {
24
- 'width-fit': fitContent,
25
- })}
26
- >
27
- <FontAwesomeIcon icon={infoIcons[severity]} />
28
- {text && <p>{text}</p>}
29
- {children}
30
- </div>
31
- );
1
+ import type { FC, ReactNode } from 'react';
2
+ import type { IInfoType } from '../../types/IInfo';
3
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
+ import clsx from 'clsx';
5
+ import { infoIcons } from '../../utils/icons';
6
+
7
+ export interface IAlertProps {
8
+ text?: string;
9
+ severity: IInfoType;
10
+ fitContent?: boolean;
11
+ className?: string;
12
+ children?: ReactNode;
13
+ }
14
+
15
+ export const Alert: FC<IAlertProps> = ({
16
+ text,
17
+ severity,
18
+ fitContent,
19
+ className,
20
+ children,
21
+ }) => (
22
+ <div
23
+ className={clsx('iui-alert', severity, className, {
24
+ 'width-fit': fitContent,
25
+ })}
26
+ >
27
+ <FontAwesomeIcon icon={infoIcons[severity]} />
28
+ {text && <p>{text}</p>}
29
+ {children}
30
+ </div>
31
+ );
@@ -1,16 +1,16 @@
1
- import type { FC } from 'react';
2
- import type { IInfoType } from '../../types/IInfo';
3
- import clsx from 'clsx';
4
-
5
- interface Props {
6
- label: string;
7
- color: IInfoType | 'gray';
8
- className?: string;
9
- }
10
-
11
- export const DotBadge: FC<Props> = ({ label, color, className }) => (
12
- <div className="flex align-center gap-2">
13
- <div className={clsx('iui-dot-badge', color, className)} />
14
- {label}
15
- </div>
16
- );
1
+ import type { FC } from 'react';
2
+ import type { IInfoType } from '../../types/IInfo';
3
+ import clsx from 'clsx';
4
+
5
+ interface Props {
6
+ label: string;
7
+ color: IInfoType | 'gray';
8
+ className?: string;
9
+ }
10
+
11
+ export const DotBadge: FC<Props> = ({ label, color, className }) => (
12
+ <div className="flex align-center gap-2">
13
+ <div className={clsx('iui-dot-badge', color, className)} />
14
+ {label}
15
+ </div>
16
+ );
@@ -1,29 +1,29 @@
1
- import type { FC, ReactNode } from 'react';
2
- import type { IInfoType } from '../../types/IInfo';
3
- import clsx from 'clsx';
4
-
5
- interface Props {
6
- number?: number;
7
- className?: string;
8
- size?: 's' | 'm';
9
- children?: ReactNode;
10
- color?: IInfoType | 'primary';
11
- }
12
-
13
- export const NotificationBadge: FC<Props> = ({
14
- number,
15
- className,
16
- size = 'm',
17
- children,
18
- color = 'primary',
19
- }) =>
20
- !!number && number > 0 ? (
21
- <div className="iui-badge-parent">
22
- {children}
23
- <div className={clsx('iui-badge', color, className, size)}>
24
- {number > 99 ? '99+' : number}
25
- </div>
26
- </div>
27
- ) : (
28
- children
29
- );
1
+ import type { FC, ReactNode } from 'react';
2
+ import type { IInfoType } from '../../types/IInfo';
3
+ import clsx from 'clsx';
4
+
5
+ interface Props {
6
+ number?: number;
7
+ className?: string;
8
+ size?: 's' | 'm';
9
+ children?: ReactNode;
10
+ color?: IInfoType | 'primary';
11
+ }
12
+
13
+ export const NotificationBadge: FC<Props> = ({
14
+ number,
15
+ className,
16
+ size = 'm',
17
+ children,
18
+ color = 'primary',
19
+ }) =>
20
+ !!number && number > 0 ? (
21
+ <div className="iui-badge-parent">
22
+ {children}
23
+ <div className={clsx('iui-badge', color, className, size)}>
24
+ {number > 99 ? '99+' : number}
25
+ </div>
26
+ </div>
27
+ ) : (
28
+ children
29
+ );
@@ -1,13 +1,13 @@
1
- import type { FC } from 'react';
2
- import type { IInfoType } from '../../types/IInfo';
3
- import clsx from 'clsx';
4
-
5
- interface Props {
6
- label: string;
7
- color: IInfoType | 'gray';
8
- className?: string;
9
- }
10
-
11
- export const PillBadge: FC<Props> = ({ label, color, className }) => (
12
- <div className={clsx('iui-pill-badge', color, className)}>{label}</div>
13
- );
1
+ import type { FC } from 'react';
2
+ import type { IInfoType } from '../../types/IInfo';
3
+ import clsx from 'clsx';
4
+
5
+ interface Props {
6
+ label: string;
7
+ color: IInfoType | 'gray';
8
+ className?: string;
9
+ }
10
+
11
+ export const PillBadge: FC<Props> = ({ label, color, className }) => (
12
+ <div className={clsx('iui-pill-badge', color, className)}>{label}</div>
13
+ );
@@ -1,56 +1,56 @@
1
- import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
- import type { ButtonHTMLAttributes, FC, MouseEventHandler, Ref } from 'react';
3
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
- import clsx from 'clsx';
5
-
6
- export type IButtonColor = 'primary' | 'neutral' | 'danger';
7
- export type IButtonVariant = 'solid' | 'outlined' | 'simple';
8
-
9
- export interface IButtonProps {
10
- label: string;
11
- icon?: IconDefinition;
12
- iconEnd?: IconDefinition;
13
- onClick?: MouseEventHandler<HTMLButtonElement>;
14
- variant?: IButtonVariant;
15
- color?: IButtonColor;
16
- size?: 'xs' | 's' | 'm' | 'l';
17
- disabled?: boolean;
18
- active?: boolean;
19
- type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
20
- className?: string;
21
- buttonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
22
- ref?: Ref<HTMLButtonElement>;
23
- }
24
-
25
- export const Button: FC<IButtonProps> = ({
26
- label,
27
- icon,
28
- iconEnd,
29
- onClick,
30
- variant = 'solid',
31
- color,
32
- size = 'm',
33
- disabled,
34
- active,
35
- type = 'button',
36
- className,
37
- buttonProps,
38
- ref,
39
- }) => (
40
- <button
41
- ref={ref}
42
- disabled={disabled}
43
- className={clsx('iui-btn iui-text-btn', variant, color, size, className, {
44
- active,
45
- primary: !color && variant === 'solid',
46
- neutral: !color && variant !== 'solid',
47
- })}
48
- onClick={onClick}
49
- type={type}
50
- {...buttonProps}
51
- >
52
- {icon && <FontAwesomeIcon icon={icon} />}
53
- <div className="iui-btn-label">{label}</div>
54
- {iconEnd && <FontAwesomeIcon icon={iconEnd} />}
55
- </button>
56
- );
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import type { ButtonHTMLAttributes, FC, MouseEventHandler, Ref } from 'react';
3
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
+ import clsx from 'clsx';
5
+
6
+ export type IButtonColor = 'primary' | 'neutral' | 'danger';
7
+ export type IButtonVariant = 'solid' | 'outlined' | 'simple';
8
+
9
+ export interface IButtonProps {
10
+ label: string;
11
+ icon?: IconDefinition;
12
+ iconEnd?: IconDefinition;
13
+ onClick?: MouseEventHandler<HTMLButtonElement>;
14
+ variant?: IButtonVariant;
15
+ color?: IButtonColor;
16
+ size?: 'xs' | 's' | 'm' | 'l';
17
+ disabled?: boolean;
18
+ active?: boolean;
19
+ type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
20
+ className?: string;
21
+ buttonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
22
+ ref?: Ref<HTMLButtonElement>;
23
+ }
24
+
25
+ export const Button: FC<IButtonProps> = ({
26
+ label,
27
+ icon,
28
+ iconEnd,
29
+ onClick,
30
+ variant = 'solid',
31
+ color,
32
+ size = 'm',
33
+ disabled,
34
+ active,
35
+ type = 'button',
36
+ className,
37
+ buttonProps,
38
+ ref,
39
+ }) => (
40
+ <button
41
+ ref={ref}
42
+ disabled={disabled}
43
+ className={clsx('iui-btn iui-text-btn', variant, color, size, className, {
44
+ active,
45
+ primary: !color && variant === 'solid',
46
+ neutral: !color && variant !== 'solid',
47
+ })}
48
+ onClick={onClick}
49
+ type={type}
50
+ {...buttonProps}
51
+ >
52
+ {icon && <FontAwesomeIcon icon={icon} />}
53
+ <div className="iui-btn-label">{label}</div>
54
+ {iconEnd && <FontAwesomeIcon icon={iconEnd} />}
55
+ </button>
56
+ );
@@ -1,51 +1,51 @@
1
- import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
- import type { ButtonHTMLAttributes, FC, MouseEventHandler, Ref } from 'react';
3
- import type { IButtonColor, IButtonVariant } from './Button';
4
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
- import clsx from 'clsx';
6
- import { Tooltip } from '../Tooltip/Tooltip';
7
-
8
- export interface IIconButtonProps {
9
- icon: IconDefinition;
10
- onClick?: MouseEventHandler<HTMLButtonElement>;
11
- variant?: IButtonVariant;
12
- color?: IButtonColor;
13
- size?: 's' | 'm' | 'l';
14
- disabled?: boolean;
15
- active?: boolean;
16
- tooltip?: string;
17
- type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
18
- className?: string;
19
- buttonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
20
- ref?: Ref<HTMLButtonElement>;
21
- }
22
-
23
- export const IconButton: FC<IIconButtonProps> = ({
24
- icon,
25
- onClick,
26
- variant = 'simple',
27
- color = 'primary',
28
- size = 'm',
29
- disabled,
30
- active,
31
- tooltip,
32
- type = 'button',
33
- className,
34
- buttonProps,
35
- ref,
36
- }) => (
37
- <Tooltip label={tooltip} disabled={disabled}>
38
- <button
39
- ref={ref}
40
- disabled={disabled}
41
- className={clsx('iui-btn iui-icon-btn', variant, color, size, className, {
42
- active,
43
- })}
44
- onClick={onClick}
45
- type={type}
46
- {...buttonProps}
47
- >
48
- <FontAwesomeIcon icon={icon} />
49
- </button>
50
- </Tooltip>
51
- );
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import type { ButtonHTMLAttributes, FC, MouseEventHandler, Ref } from 'react';
3
+ import type { IButtonColor, IButtonVariant } from './Button';
4
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
+ import clsx from 'clsx';
6
+ import { Tooltip } from '../Tooltip/Tooltip';
7
+
8
+ export interface IIconButtonProps {
9
+ icon: IconDefinition;
10
+ onClick?: MouseEventHandler<HTMLButtonElement>;
11
+ variant?: IButtonVariant;
12
+ color?: IButtonColor;
13
+ size?: 's' | 'm' | 'l';
14
+ disabled?: boolean;
15
+ active?: boolean;
16
+ tooltip?: string;
17
+ type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
18
+ className?: string;
19
+ buttonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
20
+ ref?: Ref<HTMLButtonElement>;
21
+ }
22
+
23
+ export const IconButton: FC<IIconButtonProps> = ({
24
+ icon,
25
+ onClick,
26
+ variant = 'simple',
27
+ color = 'primary',
28
+ size = 'm',
29
+ disabled,
30
+ active,
31
+ tooltip,
32
+ type = 'button',
33
+ className,
34
+ buttonProps,
35
+ ref,
36
+ }) => (
37
+ <Tooltip label={tooltip} disabled={disabled}>
38
+ <button
39
+ ref={ref}
40
+ disabled={disabled}
41
+ className={clsx('iui-btn iui-icon-btn', variant, color, size, className, {
42
+ active,
43
+ })}
44
+ onClick={onClick}
45
+ type={type}
46
+ {...buttonProps}
47
+ >
48
+ <FontAwesomeIcon icon={icon} />
49
+ </button>
50
+ </Tooltip>
51
+ );