@inceptionbg/iui 2.0.25 → 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 (202) hide show
  1. package/dist/icons/index.d.ts +3 -1
  2. package/dist/icons/index.js +1 -1
  3. package/dist/index.d.ts +44 -31
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/iui.css +1 -1
  7. package/package.json +1 -1
  8. package/src/assets/icons/duotone/faBell.ts +17 -17
  9. package/src/assets/icons/duotone/faCircleUser.ts +17 -17
  10. package/src/assets/icons/index.ts +26 -25
  11. package/src/assets/icons/light/faArrowDownShortWide.ts +15 -15
  12. package/src/assets/icons/light/faArrowDownWideShort.ts +15 -15
  13. package/src/assets/icons/light/faArrowLeft.ts +15 -15
  14. package/src/assets/icons/light/faArrowRight.ts +15 -15
  15. package/src/assets/icons/light/faArrowUpArrowDown.ts +15 -15
  16. package/src/assets/icons/light/faArrowUpRightFromSquare.ts +15 -15
  17. package/src/assets/icons/light/faArrowsToLine.ts +15 -15
  18. package/src/assets/icons/light/faArrowsUpDown.ts +15 -15
  19. package/src/assets/icons/light/faBell.ts +15 -15
  20. package/src/assets/icons/light/faBookmark.ts +15 -15
  21. package/src/assets/icons/light/faBookmarkSlash.ts +15 -15
  22. package/src/assets/icons/light/faCalendarPlus.ts +15 -15
  23. package/src/assets/icons/light/faCheck.ts +15 -15
  24. package/src/assets/icons/light/faChevronDown.ts +15 -15
  25. package/src/assets/icons/light/faChevronRight.ts +15 -15
  26. package/src/assets/icons/light/faCircleCheck.ts +15 -0
  27. package/src/assets/icons/light/faCircleInfo.ts +15 -15
  28. package/src/assets/icons/light/faCircleXmark.ts +15 -15
  29. package/src/assets/icons/light/faClipboardCheck.ts +15 -15
  30. package/src/assets/icons/light/faClockRotateLeft.ts +15 -15
  31. package/src/assets/icons/light/faEllipsisVertical.ts +15 -15
  32. package/src/assets/icons/light/faEnvelope.ts +15 -15
  33. package/src/assets/icons/light/faEye.ts +15 -15
  34. package/src/assets/icons/light/faEyeSlash.ts +15 -15
  35. package/src/assets/icons/light/faFilter.ts +15 -15
  36. package/src/assets/icons/light/faGear.ts +15 -15
  37. package/src/assets/icons/light/faHouse.ts +15 -15
  38. package/src/assets/icons/light/faIdBadge.ts +15 -15
  39. package/src/assets/icons/light/faLineColumns.ts +15 -15
  40. package/src/assets/icons/light/faLink.ts +15 -15
  41. package/src/assets/icons/light/faMagnifyingGlass.ts +15 -15
  42. package/src/assets/icons/light/faPen.ts +15 -15
  43. package/src/assets/icons/light/faPrint.ts +15 -15
  44. package/src/assets/icons/light/faQuestion.ts +15 -15
  45. package/src/assets/icons/light/faRotateRight.ts +15 -15
  46. package/src/assets/icons/light/faTrashCan.ts +15 -15
  47. package/src/assets/icons/light/faTriangleExclamation.ts +15 -15
  48. package/src/assets/icons/light/faXmark.ts +15 -15
  49. package/src/assets/icons/regular/faArrowLeft.ts +15 -15
  50. package/src/assets/icons/regular/faArrowRightArrowLeft.ts +15 -15
  51. package/src/assets/icons/regular/faCircleCheck.ts +15 -15
  52. package/src/assets/icons/regular/faCircleExclamation.ts +15 -15
  53. package/src/assets/icons/regular/faCircleInfo.ts +15 -15
  54. package/src/assets/icons/regular/faFileArrowDown.ts +15 -15
  55. package/src/assets/icons/regular/faFilterCircleXmark.ts +15 -15
  56. package/src/assets/icons/regular/faTriangleExclamation.ts +15 -15
  57. package/src/assets/icons/solid/faAngleLeft.ts +15 -15
  58. package/src/assets/icons/solid/faAngleRight.ts +15 -15
  59. package/src/assets/icons/solid/faArrowDownWideShort.ts +15 -15
  60. package/src/assets/icons/solid/faCaretDown.ts +15 -15
  61. package/src/assets/icons/solid/faCheck.ts +15 -15
  62. package/src/assets/icons/solid/faEllipsisVertical.ts +15 -15
  63. package/src/assets/icons/solid/faEnvelopeDot.ts +15 -15
  64. package/src/assets/icons/solid/faFilter.ts +15 -15
  65. package/src/assets/icons/solid/faFloppyDisk.ts +15 -15
  66. package/src/assets/icons/solid/faGripDotsVertical.ts +15 -15
  67. package/src/assets/icons/solid/faListUl.ts +15 -15
  68. package/src/assets/icons/solid/faMinus.ts +15 -15
  69. package/src/assets/icons/solid/faPlus.ts +15 -15
  70. package/src/assets/icons/solid/faPrint.ts +15 -15
  71. package/src/assets/icons/solid/faRotateRight.ts +15 -15
  72. package/src/assets/icons/solid/faXmark.ts +15 -15
  73. package/src/components/Accordions/Accordions.tsx +75 -75
  74. package/src/components/Alert/Alert.tsx +31 -31
  75. package/src/components/Badge/DotBadge.tsx +16 -16
  76. package/src/components/Badge/NotificationBadge.tsx +29 -29
  77. package/src/components/Badge/PillBadge.tsx +13 -13
  78. package/src/components/Button/Button.tsx +56 -56
  79. package/src/components/Button/IconButton.tsx +51 -51
  80. package/src/components/Button/SplitButton.tsx +91 -91
  81. package/src/components/Dashboard/Dashboard.tsx +9 -9
  82. package/src/components/Dashboard/DashboardWidget.tsx +44 -44
  83. package/src/components/Dashboard/FastLinksWidget/FastLinksWidget.tsx +37 -37
  84. package/src/components/Dialog/Dialog.tsx +166 -166
  85. package/src/components/Dialog/components/DialogFooter.tsx +100 -100
  86. package/src/components/Header/Components/EnvBadge.tsx +17 -17
  87. package/src/components/Header/Components/ModuleSelect.tsx +68 -68
  88. package/src/components/Header/Components/Notifications.tsx +202 -202
  89. package/src/components/Header/Components/UserMenu.tsx +52 -52
  90. package/src/components/Header/Header.tsx +45 -37
  91. package/src/components/Helper/Collapse.tsx +53 -53
  92. package/src/components/Inputs/Checkbox.tsx +53 -53
  93. package/src/components/Inputs/CurrencyInput.tsx +124 -124
  94. package/src/components/Inputs/DateInput/DateInput.tsx +184 -184
  95. package/src/components/Inputs/DateInput/components/DatePartInput.tsx +159 -159
  96. package/src/components/Inputs/InputWrapper.tsx +95 -95
  97. package/src/components/Inputs/NumberInput.tsx +86 -86
  98. package/src/components/Inputs/PasswordInput.tsx +40 -40
  99. package/src/components/Inputs/PhoneInput/PhoneInput.tsx +108 -108
  100. package/src/components/Inputs/PhoneInput/utils/countryCode.ts +20 -20
  101. package/src/components/Inputs/Radio.tsx +59 -59
  102. package/src/components/Inputs/RadioGroup.tsx +48 -48
  103. package/src/components/Inputs/RadioLarge.tsx +39 -39
  104. package/src/components/Inputs/SearchInput.tsx +46 -46
  105. package/src/components/Inputs/Selects/Select.tsx +17 -17
  106. package/src/components/Inputs/Selects/components/CustomSelectComponents.tsx +19 -19
  107. package/src/components/Inputs/Selects/components/SelectWrapper.tsx +118 -118
  108. package/src/components/Inputs/Selects/utils/selectStyles.ts +101 -101
  109. package/src/components/Inputs/TextAreaInput.tsx +68 -68
  110. package/src/components/Inputs/TextInput.tsx +100 -100
  111. package/src/components/Inputs/TimeInput/TimeInput.tsx +81 -81
  112. package/src/components/List/List.tsx +21 -21
  113. package/src/components/List/ListItem.tsx +70 -70
  114. package/src/components/Loader/Loader.tsx +59 -59
  115. package/src/components/Loader/ProgressBar.tsx +41 -41
  116. package/src/components/Menu/Menu.tsx +81 -81
  117. package/src/components/Menu/MenuItem.tsx +46 -46
  118. package/src/components/Menu/NewMenu.tsx +63 -63
  119. package/src/components/Menu/hooks/useMenuPosition.tsx +116 -116
  120. package/src/components/PageComponents/ScrollableContent.tsx +11 -0
  121. package/src/components/Pullover/Pullover.tsx +197 -197
  122. package/src/components/Router/Router.tsx +52 -52
  123. package/src/components/Sidebar/AddButton.tsx +22 -22
  124. package/src/components/Sidebar/Sidebar.tsx +85 -85
  125. package/src/components/Sidebar/SidebarItem.tsx +84 -84
  126. package/src/components/Sidebar/types/ISidebar.ts +28 -28
  127. package/src/components/Table/Table.tsx +259 -259
  128. package/src/components/Table/components/columns/ColumnsList.tsx +60 -60
  129. package/src/components/Table/components/columns/TableColumnsEdit.tsx +114 -114
  130. package/src/components/Table/components/edit/TableEditRow.tsx +78 -78
  131. package/src/components/Table/components/filters/FilterItem.tsx +15 -15
  132. package/src/components/Table/components/filters/TableFilters.tsx +126 -126
  133. package/src/components/Table/components/footer/TableFooter.tsx +126 -126
  134. package/src/components/Table/components/header/TableHeader.tsx +40 -40
  135. package/src/components/Table/components/header/TableHeaderRow.tsx +57 -57
  136. package/src/components/Table/components/items/TableItemActions.tsx +78 -78
  137. package/src/components/Table/components/print/TablePrint.tsx +200 -200
  138. package/src/components/Table/components/select/TableSelect.tsx +50 -50
  139. package/src/components/Table/components/sort/TableSort.tsx +73 -73
  140. package/src/components/Table/components/templates/CreateTemplateDialog.tsx +58 -58
  141. package/src/components/Table/components/templates/TableTemplates.tsx +65 -65
  142. package/src/components/Table/components/templates/TemplatesPullover.tsx +88 -88
  143. package/src/components/Table/contexts/TableContext.tsx +116 -116
  144. package/src/components/Table/hooks/localHooks/useLocalTableColumns.tsx +70 -70
  145. package/src/components/Table/hooks/localHooks/useLocalTableData.tsx +84 -84
  146. package/src/components/Table/hooks/localHooks/useLocalTableKeyboard.ts +176 -176
  147. package/src/components/Table/hooks/localHooks/useLocalTablePagination.ts +12 -12
  148. package/src/components/Table/hooks/useTableColumns.ts +34 -34
  149. package/src/components/Table/hooks/useTableEdit.tsx +140 -140
  150. package/src/components/Table/hooks/useTableFilterFields.tsx +150 -150
  151. package/src/components/Table/hooks/useTablePagination.ts +19 -19
  152. package/src/components/Table/hooks/useTablePrint.ts +83 -83
  153. package/src/components/Table/hooks/useTableSearch.ts +31 -31
  154. package/src/components/Table/hooks/useTableSelect.ts +19 -19
  155. package/src/components/Table/hooks/useTableSort.ts +8 -8
  156. package/src/components/Tabs/Tabs.tsx +68 -68
  157. package/src/components/Tooltip/Tooltip.tsx +191 -191
  158. package/src/components/Tree/Tree.tsx +22 -22
  159. package/src/components/Tree/TreeItem.tsx +57 -57
  160. package/src/components/Wrappers/AppLayout.tsx +17 -17
  161. package/src/components/Wrappers/ConditionalWrapper.tsx +10 -10
  162. package/src/components/Wrappers/FormWrapper.tsx +84 -84
  163. package/src/components/Wrappers/PageLayout.tsx +164 -156
  164. package/src/hooks/useBackgroundClose.ts +19 -19
  165. package/src/hooks/useGetFocusableElements.ts +43 -43
  166. package/src/hooks/useIsMenuOpen.ts +11 -11
  167. package/src/hooks/useLocalPopoverControl.ts +32 -32
  168. package/src/hooks/usePopupControl.ts +22 -22
  169. package/src/hooks/useZendesk.ts +21 -21
  170. package/src/index.ts +381 -379
  171. package/src/pages/NoAccessPage.tsx +27 -27
  172. package/src/pages/NotFoundPage.tsx +26 -26
  173. package/src/styles/common/helpers/_color.scss +3 -0
  174. package/src/styles/components/_page.scss +0 -13
  175. package/src/types/IBasic.ts +32 -32
  176. package/src/types/IHeader.ts +40 -40
  177. package/src/types/IInfo.ts +1 -1
  178. package/src/types/IKeyboard.ts +33 -33
  179. package/src/types/IMenu.ts +19 -19
  180. package/src/types/INotifications.ts +15 -15
  181. package/src/types/IPopup.ts +17 -17
  182. package/src/types/IRouter.ts +6 -6
  183. package/src/types/ISelect.ts +54 -54
  184. package/src/types/ITab.ts +10 -10
  185. package/src/types/ITable.ts +290 -290
  186. package/src/utils/InputPatternValidation.ts +12 -12
  187. package/src/utils/dateUtils.ts +32 -32
  188. package/src/utils/fileUtils.ts +177 -177
  189. package/src/utils/i18n/i18nIUICyrilic.ts +119 -119
  190. package/src/utils/i18n/i18nIUILatin.ts +120 -120
  191. package/src/utils/i18n/i18nIUIMe.ts +118 -118
  192. package/src/utils/icons.ts +13 -13
  193. package/src/utils/localStorageHelper.ts +24 -24
  194. package/src/utils/logoUtils.ts +7 -7
  195. package/src/utils/numberUtils.ts +21 -21
  196. package/src/utils/objectUtils.ts +114 -114
  197. package/src/utils/popupUtils.ts +82 -82
  198. package/src/utils/rootDir.ts +1 -1
  199. package/src/utils/stringUtils.ts +18 -18
  200. package/src/utils/tableUtils.ts +130 -130
  201. package/src/utils/toasts.ts +6 -6
  202. package/src/utils/urlUtils.ts +4 -4
@@ -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
+ );