@licklist/design 0.66.8-dev.2 → 0.66.9-dev.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 (212) hide show
  1. package/dist/affiliate/card/AffiliateCard.js +9 -7
  2. package/dist/auth/AccessDenied/AccessDenied.js +6 -3
  3. package/dist/auth/Social/SocialFormComponent.d.ts.map +1 -1
  4. package/dist/auth/Social/SocialFormComponent.js +1 -0
  5. package/dist/collapsible-input-group/CollapsibleInputGroup.d.ts.map +1 -1
  6. package/dist/collapsible-input-group/CollapsibleInputGroup.js +5 -5
  7. package/dist/custom-fields/constants.d.ts +2 -2
  8. package/dist/custom-fields/constants.d.ts.map +1 -1
  9. package/dist/custom-fields/constants.js +4 -8
  10. package/dist/custom-fields/field/FieldItem.d.ts +1 -2
  11. package/dist/custom-fields/field/FieldItem.d.ts.map +1 -1
  12. package/dist/custom-fields/field/FieldItem.js +6 -1
  13. package/dist/custom-fields/forms/DropdownForm.js +9 -5
  14. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.js +2 -2
  15. package/dist/events/edit-recurrent-event-modal/EditRecurrentEventModal.js +4 -3
  16. package/dist/events/event-card/EventCard.d.ts.map +1 -1
  17. package/dist/events/event-card/EventCard.js +16 -6
  18. package/dist/events/event-statistic-modal/EventStatisticModal.js +5 -3
  19. package/dist/events/event-venue-map/components/ZoomButtons/ZoomButtons.js +6 -3
  20. package/dist/file-upload/FilePreview.js +11 -6
  21. package/dist/help/popover/HelpPopover.js +6 -3
  22. package/dist/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.d.ts.map +1 -1
  23. package/dist/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.js +9 -6
  24. package/dist/iframe/event/event-navigation-footer/EventNavigationFooter.d.ts.map +1 -1
  25. package/dist/iframe/event/event-navigation-footer/EventNavigationFooter.js +11 -7
  26. package/dist/iframe/order-process/components/BookingSummary/components/ToggleHeader/ToggleHeader.js +8 -9
  27. package/dist/iframe/order-process/components/CalendarStepsForm/components/CategoryProductModal.js +5 -2
  28. package/dist/iframe/order-process/components/ErrorModal/ErrorModal.js +5 -2
  29. package/dist/iframe/order-process/components/NavigationFooter/NavigationFooter.js +8 -3
  30. package/dist/iframe/order-process/components/PaymentCard/PaymentCard.js +5 -2
  31. package/dist/iframe/order-process/components/Timer/Timer.js +5 -2
  32. package/dist/iframe/payment/order-items-table/OrderItemsTable.js +2 -1
  33. package/dist/iframe/payment/payment-form/PaymentForm.js +2 -1
  34. package/dist/iframe/payment/payment-page/PaymentPage.js +1 -1
  35. package/dist/iframe/payment/payment-page/PaymentTimer.js +1 -1
  36. package/dist/iframe/payment/payment-status-page/PaymentStatusPage.js +1 -1
  37. package/dist/index.js +1 -1
  38. package/dist/modals/confirmation/ConfirmModal.js +4 -3
  39. package/dist/modals/fullscreen/FullscreenModal.js +4 -3
  40. package/dist/notification/email-template/card/EmailTemplateCard.js +8 -3
  41. package/dist/notification/sms-template/card/SmsTemplateCard.js +8 -3
  42. package/dist/product-set/card/ProductSetCard.d.ts.map +1 -1
  43. package/dist/product-set/card/ProductSetCard.js +9 -7
  44. package/dist/product-set/control/DateAndRecurrenceInput.d.ts.map +1 -1
  45. package/dist/product-set/control/DateAndRecurrenceInput.js +5 -3
  46. package/dist/product-set/control/DateInput.js +5 -3
  47. package/dist/product-set/control/ProductSetRecurrenceControl.d.ts.map +1 -1
  48. package/dist/product-set/control/ProductSetRecurrenceControl.js +8 -5
  49. package/dist/product-set/control/ProductSetRecurrenceOverridesControl.d.ts.map +1 -1
  50. package/dist/product-set/control/ProductSetRecurrenceOverridesControl.js +8 -5
  51. package/dist/product-set/control/TutorialGifCard.d.ts.map +1 -1
  52. package/dist/product-set/control/TutorialGifCard.js +10 -6
  53. package/dist/product-set/elements/DeleteFieldButton.d.ts.map +1 -1
  54. package/dist/product-set/elements/DeleteFieldButton.js +4 -3
  55. package/dist/product-set/form/MobileFooter.d.ts.map +1 -1
  56. package/dist/product-set/form/ProductsControl.js +2 -2
  57. package/dist/product-set/form/SelectCategoryModal.d.ts.map +1 -1
  58. package/dist/product-set/form/SelectCategoryModal.js +23 -30
  59. package/dist/product-set/form/SubProductsControl.js +1 -1
  60. package/dist/product-set/item/CreateProductSetItem.d.ts.map +1 -1
  61. package/dist/product-set/item/CreateProductSetItem.js +6 -3
  62. package/dist/product-set/popover/ProductSetPopover.js +5 -3
  63. package/dist/product-set/product/ProductControl.d.ts.map +1 -1
  64. package/dist/product-set/product/ProductControl.js +4 -3
  65. package/dist/product-set/product/booking-management/ProductBookingManagementControl.js +4 -3
  66. package/dist/product-set/product/deposit/ProductDepositControl.js +4 -3
  67. package/dist/product-set/product/price/ProductPriceControl.js +4 -3
  68. package/dist/report/card/ReportCard.d.ts +2 -1
  69. package/dist/report/card/ReportCard.d.ts.map +1 -1
  70. package/dist/report/card/ReportCard.js +16 -6
  71. package/dist/sales/booking/results/components/ResultCard.js +5 -4
  72. package/dist/sales/manual-booking/number-input-horizontal/NumberInputHorizontal.d.ts.map +1 -1
  73. package/dist/sales/manual-booking/number-input-horizontal/NumberInputHorizontal.js +6 -3
  74. package/dist/sales/modals/payment-modal/PaymentModal.js +4 -3
  75. package/dist/sales/modals/refund-modal/RefundModal.js +4 -3
  76. package/dist/sales/notes/NotesTable.d.ts.map +1 -1
  77. package/dist/sales/notes/NotesTable.js +6 -4
  78. package/dist/sales/notes/NotesTableRow.js +9 -7
  79. package/dist/setting/admin/AdminSettingForm.d.ts.map +1 -1
  80. package/dist/setting/admin/AdminSettingForm.js +6 -3
  81. package/dist/setting/admin/PaymentFeeForm.d.ts.map +1 -1
  82. package/dist/setting/admin/PaymentFeeForm.js +26 -11
  83. package/dist/setting/dashboard/FinancialDataForm.d.ts.map +1 -1
  84. package/dist/setting/dashboard/ProviderSettingForm.d.ts.map +1 -1
  85. package/dist/setting/dashboard/ProviderSettingForm.js +6 -3
  86. package/dist/setting/dashboard/snippet-templates/card/SnippetTemplateCard.js +5 -2
  87. package/dist/setting/dashboard/snippets/card/SnippetCard.js +9 -7
  88. package/dist/sidebar/elements/ReturnBack.js +5 -2
  89. package/dist/slide-curtain/SlideCurtain.d.ts.map +1 -1
  90. package/dist/slide-curtain/SlideCurtain.js +4 -3
  91. package/dist/snippet/snippet-template/preview/Preview.js +1 -1
  92. package/dist/snippet/snippet-template/settings/SettingButton.js +6 -3
  93. package/dist/sortable-list/CreateSortableListItem.d.ts.map +1 -1
  94. package/dist/sortable-list/CreateSortableListItem.js +6 -3
  95. package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
  96. package/dist/sortable-tree/SortableTreeItem.js +10 -6
  97. package/dist/static/Icon.d.ts +13 -0
  98. package/dist/static/Icon.d.ts.map +1 -0
  99. package/dist/static/Icon.js +22 -0
  100. package/dist/static/RestrictedAccess.js +4 -3
  101. package/dist/static/SocialButton.d.ts +1 -0
  102. package/dist/static/SocialButton.d.ts.map +1 -1
  103. package/dist/static/SocialButton.js +10 -7
  104. package/dist/static/UserBadge.d.ts.map +1 -1
  105. package/dist/static/date-range-input/DateRangeInput.d.ts.map +1 -1
  106. package/dist/static/date-range-input/DateRangeInput.js +5 -3
  107. package/dist/static/index.d.ts +1 -0
  108. package/dist/static/index.d.ts.map +1 -1
  109. package/dist/static/index.js +1 -1
  110. package/dist/static/number-input/NumberInput.js +7 -5
  111. package/dist/striped-static-table/StripedStaticTable.js +2 -1
  112. package/dist/table/MenuButton.d.ts +3 -3
  113. package/dist/table/MenuButton.d.ts.map +1 -1
  114. package/dist/table/MenuButton.js +8 -3
  115. package/dist/table/PaginationHelperComponent.d.ts.map +1 -1
  116. package/dist/table/PaginationHelperComponent.js +8 -5
  117. package/dist/tiptap-editor/TipTapMenu/TipTapMenu.d.ts.map +1 -1
  118. package/dist/tiptap-editor/TipTapMenu/TipTapMenu.js +16 -17
  119. package/dist/tiptap-editor/TipTapMenu/components/TipTapMenuItem.d.ts +3 -3
  120. package/dist/tiptap-editor/TipTapMenu/components/TipTapMenuItem.d.ts.map +1 -1
  121. package/dist/tiptap-editor/TipTapMenu/components/TipTapMenuItem.js +8 -2
  122. package/dist/venue-map-sets/card/VenueMapSetCard.js +9 -7
  123. package/dist/venue-map-sets/form/components/VenueMapControl.d.ts.map +1 -1
  124. package/dist/venue-map-sets/form/components/VenueMapControl.js +8 -5
  125. package/dist/venue-map-sets/form/components/VenueMapModal.js +4 -3
  126. package/dist/zone/card/ZoneCard.js +9 -7
  127. package/dist/zone/form/components/ZoneRecurrenceControl.d.ts.map +1 -1
  128. package/dist/zone/form/components/ZoneRecurrenceControl.js +8 -5
  129. package/dist/zone/form/components/ZoneRecurrencesControl.d.ts.map +1 -1
  130. package/dist/zone/form/components/ZoneRecurrencesControl.js +5 -3
  131. package/package.json +5 -4
  132. package/src/affiliate/card/AffiliateCard.tsx +4 -4
  133. package/src/auth/AccessDenied/AccessDenied.tsx +2 -2
  134. package/src/auth/Social/SocialFormComponent.tsx +1 -0
  135. package/src/collapsible-input-group/CollapsibleInputGroup.tsx +4 -7
  136. package/src/custom-fields/{constants.tsx → constants.ts} +2 -3
  137. package/src/custom-fields/field/FieldItem.tsx +3 -4
  138. package/src/custom-fields/forms/DropdownForm.tsx +3 -3
  139. package/src/events/edit-recurrent-event-modal/EditRecurrentEventModal.tsx +2 -2
  140. package/src/events/event-card/EventCard.tsx +6 -13
  141. package/src/events/event-statistic-modal/EventStatisticModal.tsx +2 -2
  142. package/src/events/event-venue-map/components/ZoomButtons/ZoomButtons.tsx +2 -2
  143. package/src/file-upload/FilePreview.tsx +8 -4
  144. package/src/header/Header.stories.tsx +2 -1
  145. package/src/help/popover/HelpPopover.tsx +2 -2
  146. package/src/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.tsx +9 -4
  147. package/src/iframe/event/event-navigation-footer/EventNavigationFooter.tsx +4 -5
  148. package/src/iframe/order-process/components/BookingSummary/components/ToggleHeader/ToggleHeader.tsx +15 -11
  149. package/src/iframe/order-process/components/CalendarStepsForm/components/CategoryProductModal.tsx +2 -2
  150. package/src/iframe/order-process/components/ErrorModal/ErrorModal.tsx +2 -2
  151. package/src/iframe/order-process/components/NavigationFooter/NavigationFooter.tsx +3 -3
  152. package/src/iframe/order-process/components/PaymentCard/PaymentCard.tsx +2 -2
  153. package/src/iframe/order-process/components/Timer/Timer.tsx +2 -2
  154. package/src/image-radio-input/ImageRadioInput.stories.tsx +3 -3
  155. package/src/modals/confirmation/ConfirmModal.tsx +2 -2
  156. package/src/modals/fullscreen/FullscreenModal.tsx +2 -2
  157. package/src/notification/email-template/card/EmailTemplateCard.tsx +3 -3
  158. package/src/notification/sms-template/card/SmsTemplateCard.tsx +3 -3
  159. package/src/product-set/card/ProductSetCard.tsx +5 -4
  160. package/src/product-set/control/DateAndRecurrenceInput.tsx +4 -3
  161. package/src/product-set/control/DateInput.tsx +4 -4
  162. package/src/product-set/control/ProductSetRecurrenceControl.tsx +7 -6
  163. package/src/product-set/control/ProductSetRecurrenceOverridesControl.tsx +8 -5
  164. package/src/product-set/control/TutorialGifCard.tsx +12 -5
  165. package/src/product-set/elements/DeleteFieldButton.tsx +2 -2
  166. package/src/product-set/form/MobileFooter.tsx +36 -6
  167. package/src/product-set/form/ProductSetForm.tsx +1 -1
  168. package/src/product-set/form/SelectCategoryModal.tsx +19 -24
  169. package/src/product-set/item/CreateProductSetItem.tsx +7 -2
  170. package/src/product-set/popover/ProductSetPopover.tsx +2 -2
  171. package/src/product-set/product/ProductControl.tsx +5 -2
  172. package/src/product-set/product/booking-management/ProductBookingManagementControl.tsx +2 -2
  173. package/src/product-set/product/deposit/ProductDepositControl.tsx +2 -2
  174. package/src/product-set/product/price/ProductPriceControl.tsx +2 -2
  175. package/src/report/card/ReportCard.tsx +10 -0
  176. package/src/sales/booking/results/components/ResultCard.tsx +2 -2
  177. package/src/sales/manual-booking/number-input-horizontal/NumberInputHorizontal.tsx +9 -3
  178. package/src/sales/modals/payment-modal/PaymentModal.tsx +2 -2
  179. package/src/sales/modals/refund-modal/RefundModal.tsx +2 -2
  180. package/src/sales/notes/NotesTable.tsx +2 -2
  181. package/src/sales/notes/NotesTableRow.tsx +4 -4
  182. package/src/setting/admin/AdminSettingForm.tsx +7 -2
  183. package/src/setting/admin/PaymentFeeForm.tsx +32 -7
  184. package/src/setting/dashboard/FinancialDataForm.tsx +19 -4
  185. package/src/setting/dashboard/ProviderSettingForm.tsx +7 -2
  186. package/src/setting/dashboard/components/IpInput.tsx +2 -2
  187. package/src/setting/dashboard/snippet-templates/card/SnippetTemplateCard.tsx +2 -2
  188. package/src/setting/dashboard/snippets/card/SnippetCard.tsx +4 -4
  189. package/src/sidebar/elements/ReturnBack.tsx +2 -2
  190. package/src/slide-curtain/SlideCurtain.tsx +6 -2
  191. package/src/snippet/snippet-template/settings/SettingButton.tsx +2 -2
  192. package/src/sortable-list/CreateSortableListItem.tsx +7 -2
  193. package/src/sortable-tree/SortableTreeItem.tsx +5 -4
  194. package/src/static/Icon.tsx +37 -0
  195. package/src/static/RestrictedAccess.tsx +2 -2
  196. package/src/static/SocialButton.tsx +5 -4
  197. package/src/static/Static.stories.tsx +2 -2
  198. package/src/static/UserBadge.tsx +6 -2
  199. package/src/static/date-range-input/DateRangeInput.tsx +6 -2
  200. package/src/static/index.ts +1 -0
  201. package/src/static/number-input/NumberInput.tsx +3 -3
  202. package/src/table/MenuButton.tsx +8 -4
  203. package/src/table/PaginationHelperComponent.tsx +4 -3
  204. package/src/tiptap-editor/TipTapMenu/TipTapMenu.tsx +16 -24
  205. package/src/tiptap-editor/TipTapMenu/components/TipTapMenuItem.tsx +7 -4
  206. package/src/venue-map-sets/card/VenueMapSetCard.tsx +4 -4
  207. package/src/venue-map-sets/form/components/VenueMapControl.tsx +8 -3
  208. package/src/venue-map-sets/form/components/VenueMapModal.tsx +2 -2
  209. package/src/zone/card/ZoneCard.tsx +4 -4
  210. package/src/zone/form/components/ZoneRecurrenceControl.tsx +11 -3
  211. package/src/zone/form/components/ZoneRecurrencesControl.tsx +6 -2
  212. package/yarn.lock +127 -114
@@ -11,7 +11,7 @@ import Col from "react-bootstrap/Col";
11
11
  import { Link } from "react-router-dom";
12
12
  import HookFormService from "@licklist/plugins/dist/services/Form/HookFormService";
13
13
  import { ProvidableType } from "@licklist/core/dist/DataMapper/Provider/ProvidableDataMapper";
14
- import { FaCommentAlt } from "react-icons/fa";
14
+ import Icon from "../../static/Icon";
15
15
  import { PaymentFeeForm, PaymentFeeFormFieldValues } from "./PaymentFeeForm";
16
16
  import { Currency } from "../../types/currency";
17
17
 
@@ -74,7 +74,12 @@ export const AdminSettingForm = ({
74
74
  <InputGroup>
75
75
  <InputGroup.Prepend>
76
76
  <InputGroup.Text>
77
- <FaCommentAlt size={16} />
77
+ <Icon
78
+ type="comment-alt"
79
+ style={{
80
+ width: "1rem",
81
+ }}
82
+ />
78
83
  </InputGroup.Text>
79
84
  </InputGroup.Prepend>
80
85
 
@@ -6,8 +6,8 @@ import InputGroup from "react-bootstrap/InputGroup";
6
6
  import Row from "react-bootstrap/Row";
7
7
  import { useFormContext } from "react-hook-form";
8
8
  import { useTranslation } from "react-i18next";
9
- import { FaPercentage, FaPoundSign } from "react-icons/fa";
10
- import { WarningMessage } from "../../static";
9
+
10
+ import { WarningMessage, Icon } from "../../static";
11
11
 
12
12
  export type PaymentFeeFormFieldValues = {
13
13
  feeInPercent: number;
@@ -64,7 +64,12 @@ export function PaymentFeeForm({ isLoading = false }: PaymentFeeFormProps) {
64
64
  <InputGroup hasValidation>
65
65
  <InputGroup.Prepend>
66
66
  <InputGroup.Text>
67
- <FaPercentage size={10} />
67
+ <Icon
68
+ type="percentage"
69
+ style={{
70
+ width: ".7rem",
71
+ }}
72
+ />
68
73
  </InputGroup.Text>
69
74
  </InputGroup.Prepend>
70
75
 
@@ -112,7 +117,12 @@ export function PaymentFeeForm({ isLoading = false }: PaymentFeeFormProps) {
112
117
  <InputGroup hasValidation>
113
118
  <InputGroup.Prepend>
114
119
  <InputGroup.Text>
115
- <FaPoundSign size={10} />
120
+ <Icon
121
+ type="pound-sign"
122
+ style={{
123
+ width: ".7rem",
124
+ }}
125
+ />
116
126
  </InputGroup.Text>
117
127
  </InputGroup.Prepend>
118
128
 
@@ -157,7 +167,12 @@ export function PaymentFeeForm({ isLoading = false }: PaymentFeeFormProps) {
157
167
  <InputGroup hasValidation>
158
168
  <InputGroup.Prepend>
159
169
  <InputGroup.Text>
160
- <FaPoundSign size={10} />
170
+ <Icon
171
+ type="pound-sign"
172
+ style={{
173
+ width: ".7rem",
174
+ }}
175
+ />
161
176
  </InputGroup.Text>
162
177
  </InputGroup.Prepend>
163
178
 
@@ -214,7 +229,12 @@ export function PaymentFeeForm({ isLoading = false }: PaymentFeeFormProps) {
214
229
  <InputGroup hasValidation>
215
230
  <InputGroup.Prepend>
216
231
  <InputGroup.Text>
217
- <FaPercentage size={10} />
232
+ <Icon
233
+ type="percentage"
234
+ style={{
235
+ width: ".7rem",
236
+ }}
237
+ />
218
238
  </InputGroup.Text>
219
239
  </InputGroup.Prepend>
220
240
 
@@ -259,7 +279,12 @@ export function PaymentFeeForm({ isLoading = false }: PaymentFeeFormProps) {
259
279
  <InputGroup hasValidation>
260
280
  <InputGroup.Prepend>
261
281
  <InputGroup.Text>
262
- <FaPoundSign size={10} />
282
+ <Icon
283
+ type="pound-sign"
284
+ style={{
285
+ width: ".7rem",
286
+ }}
287
+ />
263
288
  </InputGroup.Text>
264
289
  </InputGroup.Prepend>
265
290
 
@@ -5,7 +5,7 @@ import InputGroup from "react-bootstrap/InputGroup";
5
5
  import Row from "react-bootstrap/Row";
6
6
  import { useFormContext } from "react-hook-form";
7
7
  import { useTranslation } from "react-i18next";
8
- import { FaIdBadge, FaMoneyCheckAlt, FaUser } from "react-icons/fa";
8
+ import Icon from "../../static/Icon";
9
9
 
10
10
  export type FinancialDataFormFieldValues = {
11
11
  accountName: string;
@@ -45,7 +45,12 @@ export function FinancialDataForm({
45
45
  <InputGroup>
46
46
  <InputGroup.Prepend>
47
47
  <InputGroup.Text>
48
- <FaUser size={16} />
48
+ <Icon
49
+ type="user"
50
+ style={{
51
+ width: "1rem",
52
+ }}
53
+ />
49
54
  </InputGroup.Text>
50
55
  </InputGroup.Prepend>
51
56
 
@@ -59,7 +64,12 @@ export function FinancialDataForm({
59
64
  <InputGroup hasValidation>
60
65
  <InputGroup.Prepend>
61
66
  <InputGroup.Text>
62
- <FaIdBadge size={16} />
67
+ <Icon
68
+ type="id-badge"
69
+ style={{
70
+ width: "1rem",
71
+ }}
72
+ />
63
73
  </InputGroup.Text>
64
74
  </InputGroup.Prepend>
65
75
 
@@ -105,7 +115,12 @@ export function FinancialDataForm({
105
115
  <InputGroup hasValidation>
106
116
  <InputGroup.Prepend>
107
117
  <InputGroup.Text>
108
- <FaMoneyCheckAlt size={28} />
118
+ <Icon
119
+ type="money-check-alt"
120
+ style={{
121
+ width: "1.7rem",
122
+ }}
123
+ />
109
124
  </InputGroup.Text>
110
125
  </InputGroup.Prepend>
111
126
 
@@ -6,7 +6,7 @@ import InputGroup from "react-bootstrap/InputGroup";
6
6
  import Row from "react-bootstrap/Row";
7
7
  import { useFormContext } from "react-hook-form";
8
8
  import { useTranslation } from "react-i18next";
9
- import { FaPhone } from "react-icons/fa";
9
+ import Icon from "../../static/Icon";
10
10
  import { SelectItem } from "../../types/generic/SelectItem";
11
11
  // @TODO not for first release
12
12
  // import { Button } from "react-bootstrap";
@@ -113,7 +113,12 @@ export const ProviderSettingForm = ({
113
113
  <InputGroup>
114
114
  <InputGroup.Prepend>
115
115
  <InputGroup.Text>
116
- <FaPhone size={16} />
116
+ <Icon
117
+ type="phone"
118
+ style={{
119
+ width: "1rem",
120
+ }}
121
+ />
117
122
  </InputGroup.Text>
118
123
  </InputGroup.Prepend>
119
124
 
@@ -12,7 +12,7 @@ import {
12
12
  import { Button, FormControl, InputGroup } from "react-bootstrap";
13
13
  import { FormProvider, useForm, useWatch } from "react-hook-form";
14
14
  import { useTranslation } from "react-i18next";
15
- import { FaTimes } from "react-icons/fa";
15
+ import { Icon } from "../../../static";
16
16
 
17
17
  export interface IpInputProps {
18
18
  onChange: (value: string) => void;
@@ -154,7 +154,7 @@ export function IpInput({ onChange, onRemove, value }: IpInputProps) {
154
154
  disabled={!isRemovable}
155
155
  onClick={onRemove}
156
156
  >
157
- <FaTimes size={14} color="red" />
157
+ <Icon type="times" width=".55rem" height=".9rem" color="red" />
158
158
  </Button>
159
159
  </InputGroup.Text>
160
160
  <FormControl.Feedback type="invalid">
@@ -1,7 +1,7 @@
1
1
  import { Link } from "react-router-dom";
2
2
  import { HasPermissionProp } from "@licklist/plugins/dist/types/permission/Permission";
3
3
  import { useTranslation } from "react-i18next";
4
- import { FaTrashAlt } from "react-icons/fa";
4
+ import { Icon } from "../../../../static";
5
5
 
6
6
  export interface SnippetTemplateCardProps extends HasPermissionProp {
7
7
  name: string;
@@ -31,7 +31,7 @@ export function SnippetTemplateCard({
31
31
  className="snippet-template-card-button"
32
32
  onClick={onRemove}
33
33
  >
34
- <FaTrashAlt />
34
+ <Icon type="trash-alt" />
35
35
  </button>
36
36
  )}
37
37
  </div>
@@ -5,9 +5,9 @@ import RouteService from "@licklist/plugins/dist/services/Route/RouteService";
5
5
  import clsx from "clsx";
6
6
  import { OverlayTrigger, Popover, ListGroup } from "react-bootstrap";
7
7
  import { useId } from "@react-aria/utils";
8
- import { FaEllipsisH, FaEye, FaTrashAlt } from "react-icons/fa";
9
8
  import { MenuButton } from "../../../../table";
10
9
  import { ConfirmModal } from "../../../../modals";
10
+ import { Icon } from "../../../../static";
11
11
 
12
12
  export interface SnippetCardProps extends HasPermissionProp {
13
13
  name: string;
@@ -42,7 +42,7 @@ export function SnippetCard({
42
42
  <div className="d-flex align-items-center">
43
43
  {isDefault && <div className="mr-4">{t("Design:default")}</div>}
44
44
  <div className="product-set-card-menu-eye-container">
45
- <FaEye color="#0E8CE2" size={20} />
45
+ <Icon type="eye" color="#0E8CE2" width="20" />
46
46
  </div>
47
47
  <OverlayTrigger
48
48
  trigger="click"
@@ -70,7 +70,7 @@ export function SnippetCard({
70
70
  confirm(onRemove);
71
71
  }}
72
72
  name={t("remove")}
73
- icon={<FaTrashAlt size={12} />}
73
+ icon="trash-alt"
74
74
  className="product-set-card-menu-item-text d-flex w-100 align-items-center"
75
75
  rightIcon
76
76
  />
@@ -90,7 +90,7 @@ export function SnippetCard({
90
90
  setIsOverlayVisible(true);
91
91
  }}
92
92
  >
93
- <FaEllipsisH />
93
+ <Icon type="ellipsis-h" />
94
94
  </button>
95
95
  </OverlayTrigger>
96
96
  </div>
@@ -1,6 +1,6 @@
1
1
  import { Button } from "react-bootstrap";
2
2
  import { useTranslation } from "react-i18next";
3
- import { FaChevronLeft } from "react-icons/fa";
3
+ import Icon from "../../static/Icon";
4
4
 
5
5
  export interface ReturnBackProps {
6
6
  onClick: () => void;
@@ -12,7 +12,7 @@ function ReturnBack({ onClick }: ReturnBackProps) {
12
12
  return (
13
13
  <div className="sidebar-return-back-container">
14
14
  <Button onClick={onClick} variant="outline-primary">
15
- <FaChevronLeft />
15
+ <Icon type="chevron-left" height="1rem" />
16
16
  <span className="sidebar-return-back__title">{t("backToCompany")}</span>
17
17
  </Button>
18
18
  </div>
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useRef, useState } from "react";
2
- import { FaEllipsisH } from "react-icons/fa";
3
2
  import { useSwipeable } from "react-swipeable";
3
+ import Icon from "../static/Icon";
4
4
 
5
5
  const formOffsetBuffer = 90;
6
6
 
@@ -52,7 +52,11 @@ export function SlideCurtain({ children }) {
52
52
  {...handlers}
53
53
  ref={passRefToSwieable}
54
54
  >
55
- <FaEllipsisH size={24} className="slide-form__swipe-trigger__icon" />
55
+ <Icon
56
+ type="ellipsis-h"
57
+ height="1.5rem"
58
+ className="slide-form__swipe-trigger__icon"
59
+ />
56
60
  </div>
57
61
  <div className="slide-form__content">{children}</div>
58
62
  </div>
@@ -1,6 +1,6 @@
1
1
  import Button from "react-bootstrap/Button";
2
2
  import clsx from "clsx";
3
- import { FaCog } from "react-icons/fa";
3
+ import Icon from "../../../static/Icon";
4
4
  import { snippetTemplateViews } from "../context/snippetTemplateView";
5
5
 
6
6
  export interface SettingButtonProps extends React.PropsWithChildren<unknown> {
@@ -27,7 +27,7 @@ export const SettingButton = ({
27
27
  className={clsx("snippet-template__setting d-inline", className)}
28
28
  onClick={() => onClick(view as keyof typeof snippetTemplateViews)}
29
29
  >
30
- <FaCog size={16} />
30
+ <Icon type="cog" style={{ width: 16 }} />
31
31
  </Button>
32
32
  </div>
33
33
  );
@@ -1,4 +1,4 @@
1
- import { FaPlus } from "react-icons/fa";
1
+ import { Icon } from "../static";
2
2
 
3
3
  interface CreateSortableListItemProps {
4
4
  onClick: () => void;
@@ -16,7 +16,12 @@ export function CreateSortableListItem({
16
16
  type="button"
17
17
  >
18
18
  <span>{title}</span>
19
- <FaPlus size={32} className="rounded sortable-list-item-icon p-2" />
19
+ <Icon
20
+ type="plus"
21
+ height="2rem"
22
+ width="2rem"
23
+ className="rounded sortable-list-item-icon p-2"
24
+ />
20
25
  </button>
21
26
  );
22
27
  }
@@ -9,8 +9,9 @@ import { CSS } from "@dnd-kit/utilities";
9
9
  import { Button, Collapse, Modal } from "react-bootstrap";
10
10
  import { useTranslation } from "react-i18next";
11
11
  import clsx from "clsx";
12
- import { FaEllipsisH, FaGripVertical, FaMinus } from "react-icons/fa";
12
+
13
13
  import { ConfirmModal } from "../modals";
14
+ import Icon from "../static/Icon";
14
15
  import { DeleteFieldButton } from "../product-set/elements/DeleteFieldButton";
15
16
 
16
17
  const DRAG_RADIUS_LIMIT = 5;
@@ -204,7 +205,7 @@ export function SortableTreeItem({
204
205
  onMouseUp={onHandleExpand}
205
206
  >
206
207
  {expanded ? (
207
- <FaMinus size={10} />
208
+ <Icon type="minus" width=".7rem" />
208
209
  ) : (
209
210
  <div className="expand-icon-container">
210
211
  <div />
@@ -250,7 +251,7 @@ export function SortableTreeItem({
250
251
  {...attributes}
251
252
  {...listeners}
252
253
  >
253
- <FaGripVertical />
254
+ <Icon type="grip-vertical" />
254
255
  </Button>
255
256
  )}
256
257
  <Button
@@ -290,7 +291,7 @@ export function SortableTreeItem({
290
291
  onClick={(e) => onEdit(e)}
291
292
  onKeyDown={(e) => e.stopPropagation()}
292
293
  >
293
- <FaEllipsisH color="#0E8CE2" size={16} />
294
+ <Icon type="ellipsis-h" color="#0E8CE2" height="1rem" />
294
295
  </div>
295
296
  </Button>
296
297
  </div>
@@ -0,0 +1,37 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ import { config, IconProp, library } from "@fortawesome/fontawesome-svg-core";
3
+ import { fab } from "@fortawesome/free-brands-svg-icons";
4
+ import { fas } from "@fortawesome/free-solid-svg-icons";
5
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
6
+ import { CSSProperties } from "react";
7
+
8
+ config.autoAddCss = false;
9
+
10
+ // @ts-ignore
11
+ library.add(fas, fab);
12
+
13
+ type Props = {
14
+ type: IconProp | string | [string, string];
15
+ style?: CSSProperties;
16
+ color?: string;
17
+ height?: string;
18
+ width?: string;
19
+ className?: string;
20
+ };
21
+
22
+ function Icon(props: Props) {
23
+ const { type, style, color, height, width, className } = props;
24
+
25
+ return (
26
+ <FontAwesomeIcon
27
+ icon={type as IconProp}
28
+ style={style}
29
+ color={color}
30
+ height={height}
31
+ width={width}
32
+ className={className}
33
+ />
34
+ );
35
+ }
36
+
37
+ export default Icon;
@@ -1,7 +1,7 @@
1
1
  import { Button } from "react-bootstrap";
2
2
  import RouteService from "@licklist/plugins/dist/services/Route/RouteService";
3
3
  import { useTranslation } from "react-i18next";
4
- import { FaArrowLeft } from "react-icons/fa";
4
+ import Icon from "./Icon";
5
5
 
6
6
  function RestrictedAccess() {
7
7
  const { t } = useTranslation("Design");
@@ -13,7 +13,7 @@ function RestrictedAccess() {
13
13
  variant="link"
14
14
  onClick={() => RouteService.goBack()}
15
15
  >
16
- <FaArrowLeft size={25} />
16
+ <Icon type="arrow-left" width="25" />
17
17
  </Button>
18
18
  <div className="container d-flex justify-content-center pt-5">
19
19
  <div className="text-center">
@@ -2,20 +2,22 @@
2
2
  /* eslint-disable jsx-a11y/click-events-have-key-events */
3
3
  /* eslint-disable jsx-a11y/anchor-is-valid */
4
4
  import { ReactNode } from "react";
5
- import { FaFacebookF, FaTwitter } from "react-icons/fa";
5
+ import Icon from "./Icon";
6
6
 
7
7
  interface Props {
8
8
  children?: ReactNode | ReactNode[];
9
9
  onClick?: () => void;
10
10
  className?: string;
11
11
  type?: string;
12
+ icon?: string;
12
13
  disabled?: boolean;
13
14
  }
14
15
 
15
16
  function SocialButton(props: Props) {
16
- const { children, className, onClick, type, disabled } = props;
17
+ const { children, className, onClick, type, icon, disabled } = props;
17
18
 
18
19
  const defaultType = "twitter";
20
+ const defaultIcon = "twitter";
19
21
 
20
22
  const handleClick = () => {
21
23
  if (onClick) {
@@ -36,8 +38,7 @@ function SocialButton(props: Props) {
36
38
  onClick={handleClick}
37
39
  >
38
40
  <span className="separator">
39
- {type === "facebook" && <FaFacebookF />}
40
- {type === "twitter" && <FaTwitter />}
41
+ <Icon type={["fab", icon ?? defaultIcon]} />
41
42
  </span>
42
43
  {children}
43
44
  </a>
@@ -4,10 +4,10 @@ import InputGroup from "react-bootstrap/InputGroup";
4
4
  import Row from "react-bootstrap/Row";
5
5
  import Input from "react-phone-number-input/input";
6
6
  import { FormProvider, useForm } from "react-hook-form";
7
- import { FaSearch } from "react-icons/fa";
8
7
  import CountrySelect from "./CountrySelect";
9
8
  import CountryCodeSelect from "./CountryCodeSelect";
10
9
  import FormCard from "./FormCard";
10
+ import Icon from "./Icon";
11
11
  import Image from "./Image";
12
12
  import SocialButton from "./SocialButton";
13
13
  import StyledButton from "./StyledButton";
@@ -72,7 +72,7 @@ _RestrictedAccess.story = {
72
72
  name: "RestrictedAccess",
73
73
  };
74
74
 
75
- export const _Icon = () => <FaSearch />;
75
+ export const _Icon = () => <Icon type="search" />;
76
76
 
77
77
  _Icon.story = {
78
78
  parameters: {
@@ -1,7 +1,7 @@
1
1
  import { Button } from "react-bootstrap";
2
2
  import { useTranslation } from "react-i18next";
3
- import { FaLongArrowAltDown } from "react-icons/fa";
4
3
  import { useIntl } from "react-intl";
4
+ import { Icon } from ".";
5
5
 
6
6
  interface UserBadgeProps {
7
7
  userName: string;
@@ -35,7 +35,11 @@ export function UserBadge({
35
35
  </p>
36
36
  </div>
37
37
  </div>
38
- <FaLongArrowAltDown size={24} className="user-badge-down-icon" />
38
+ <Icon
39
+ type="long-arrow-alt-down"
40
+ height="1.5rem"
41
+ className="user-badge-down-icon"
42
+ />
39
43
  </Button>
40
44
  );
41
45
  }
@@ -5,7 +5,7 @@ import { useClickAway } from "react-use";
5
5
  import { useTranslation } from "react-i18next";
6
6
  import { Modifier } from "@popperjs/core";
7
7
  import { useId } from "@react-aria/utils";
8
- import { FaCalendar } from "react-icons/fa";
8
+ import { Icon } from "..";
9
9
  import {
10
10
  stringDatesToJSDates,
11
11
  rangeDatesToStringDates,
@@ -151,7 +151,11 @@ export const DateRangeInput = ({
151
151
  className="date-range-input"
152
152
  value={stringDatesToInputValue({ startDate, endDate })}
153
153
  />
154
- <FaCalendar size={16} className="date-range-input-icon" />
154
+ <Icon
155
+ type="calendar"
156
+ height="1rem"
157
+ className="date-range-input-icon"
158
+ />
155
159
  </div>
156
160
  </OverlayTrigger>
157
161
  </div>
@@ -12,6 +12,7 @@ export * from "./text-expand";
12
12
  export { Tabs } from "./tabs";
13
13
  export { default as CountrySelect } from "./CountrySelect";
14
14
  export { default as FormCard } from "./FormCard";
15
+ export { default as Icon } from "./Icon";
15
16
  export { default as Image } from "./Image";
16
17
  export { default as SocialButton } from "./SocialButton";
17
18
  export { default as StyledButton } from "./StyledButton";
@@ -1,6 +1,6 @@
1
1
  import clsx from "clsx";
2
2
  import { FormControl } from "react-bootstrap";
3
- import { FaChevronDown, FaChevronUp } from "react-icons/fa";
3
+ import Icon from "../Icon";
4
4
 
5
5
  interface NumberInputProps {
6
6
  disabled?: boolean;
@@ -63,7 +63,7 @@ export function NumberInput({
63
63
  className="licklist-number-input__btn-up"
64
64
  disabled={disabled}
65
65
  >
66
- <FaChevronUp size={16} />
66
+ <Icon type="chevron-up" width="1rem" />
67
67
  </button>
68
68
  <button
69
69
  type="button"
@@ -71,7 +71,7 @@ export function NumberInput({
71
71
  className="licklist-number-input__btn-down"
72
72
  disabled={disabled}
73
73
  >
74
- <FaChevronDown size={16} />
74
+ <Icon type="chevron-down" width="1rem" />
75
75
  </button>
76
76
  </div>
77
77
  );
@@ -1,5 +1,5 @@
1
1
  import clsx from "clsx";
2
- import { ReactElement } from "react";
2
+ import Icon from "../static/Icon";
3
3
 
4
4
  export type MenuButtonProps = {
5
5
  onClick?: () => void;
@@ -7,7 +7,8 @@ export type MenuButtonProps = {
7
7
  rightIcon?: boolean;
8
8
  name: string;
9
9
  className?: string;
10
- icon?: ReactElement;
10
+ icon?: string;
11
+ iconWidth?: string;
11
12
  };
12
13
 
13
14
  export const MenuButton = ({
@@ -17,7 +18,10 @@ export const MenuButton = ({
17
18
  icon,
18
19
  leftIcon,
19
20
  rightIcon,
21
+ iconWidth = "12",
20
22
  }: MenuButtonProps) => {
23
+ const iconComponent = icon ? <Icon type={icon} width={iconWidth} /> : null;
24
+
21
25
  return (
22
26
  <>
23
27
  <button
@@ -28,7 +32,7 @@ export const MenuButton = ({
28
32
  }}
29
33
  className={clsx(className)}
30
34
  >
31
- {leftIcon && icon}
35
+ {leftIcon && iconComponent}
32
36
  <span
33
37
  className={clsx(
34
38
  icon && leftIcon && "ml-3",
@@ -37,7 +41,7 @@ export const MenuButton = ({
37
41
  >
38
42
  {name}
39
43
  </span>
40
- {rightIcon && icon}
44
+ {rightIcon && iconComponent}
41
45
  </button>
42
46
  </>
43
47
  );
@@ -5,7 +5,8 @@ import { useTranslation } from "react-i18next";
5
5
  import ILengthAwarePaginator from "@licklist/plugins/dist/types/services/Table/ILengthAwarePaginator";
6
6
  import PaginationService from "@licklist/plugins/dist/services/Table/PaginationService";
7
7
  import clsx from "clsx";
8
- import { FaArrowLeft, FaArrowRight } from "react-icons/fa";
8
+
9
+ import { Icon } from "../static";
9
10
 
10
11
  export interface PaginationHelperComponentProps {
11
12
  displayShowingSection?: boolean;
@@ -58,7 +59,7 @@ function PaginationHelperComponent({
58
59
  className="border-0"
59
60
  onClick={() => onPageChange(paginationService.getPrevPage())}
60
61
  >
61
- <FaArrowLeft size={14} color="black" />
62
+ <Icon type="arrow-left" width="0.9rem" color="black" />
62
63
  </button>
63
64
 
64
65
  {paginationService.getElements().map((element) => {
@@ -83,7 +84,7 @@ function PaginationHelperComponent({
83
84
  className="border-0"
84
85
  onClick={() => onPageChange(paginationService.getNextPage())}
85
86
  >
86
- <FaArrowRight size={14} color="black" />
87
+ <Icon type="arrow-right" width="0.9rem" color="black" />
87
88
  </button>
88
89
  </Pagination>
89
90
  ),