@openmrs/esm-billing-app 1.0.2-pre.112 → 1.0.2-pre.1124

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 (241) hide show
  1. package/.eslintrc +16 -2
  2. package/README.md +54 -9
  3. package/__mocks__/bills.mock.ts +12 -0
  4. package/__mocks__/react-i18next.js +6 -5
  5. package/dist/1119.js +1 -1
  6. package/dist/1146.js +1 -2
  7. package/dist/1146.js.map +1 -1
  8. package/dist/1197.js +1 -1
  9. package/dist/1537.js +1 -0
  10. package/dist/1537.js.map +1 -0
  11. package/dist/1856.js +1 -0
  12. package/dist/1856.js.map +1 -0
  13. package/dist/2146.js +1 -1
  14. package/dist/2177.js +1 -1
  15. package/dist/2177.js.map +1 -1
  16. package/dist/2524.js +1 -0
  17. package/dist/2524.js.map +1 -0
  18. package/dist/2690.js +1 -1
  19. package/dist/3099.js +1 -1
  20. package/dist/3584.js +1 -1
  21. package/dist/3717.js +2 -0
  22. package/dist/3717.js.map +1 -0
  23. package/dist/4055.js +1 -1
  24. package/dist/4132.js +1 -1
  25. package/dist/4300.js +1 -1
  26. package/dist/4335.js +1 -1
  27. package/dist/439.js +1 -0
  28. package/dist/4618.js +1 -1
  29. package/dist/4652.js +1 -1
  30. package/dist/4724.js +1 -0
  31. package/dist/4724.js.map +1 -0
  32. package/dist/4739.js +1 -1
  33. package/dist/4739.js.map +1 -1
  34. package/dist/4944.js +1 -1
  35. package/dist/5173.js +1 -1
  36. package/dist/5241.js +1 -1
  37. package/dist/5442.js +1 -1
  38. package/dist/5661.js +1 -1
  39. package/dist/6022.js +1 -1
  40. package/dist/6468.js +1 -1
  41. package/dist/6540.js +1 -1
  42. package/dist/6540.js.map +1 -1
  43. package/dist/6589.js +1 -0
  44. package/dist/6679.js +1 -1
  45. package/dist/6840.js +1 -1
  46. package/dist/6859.js +1 -1
  47. package/dist/7097.js +1 -1
  48. package/dist/7159.js +1 -1
  49. package/dist/723.js +1 -1
  50. package/dist/7255.js +1 -1
  51. package/dist/7255.js.map +1 -1
  52. package/dist/7617.js +1 -1
  53. package/dist/795.js +1 -1
  54. package/dist/8163.js +1 -1
  55. package/dist/8349.js +1 -1
  56. package/dist/8371.js +1 -0
  57. package/dist/8572.js +1 -0
  58. package/dist/8572.js.map +1 -0
  59. package/dist/8618.js +1 -1
  60. package/dist/8708.js +2 -0
  61. package/dist/{6557.js.LICENSE.txt → 8708.js.LICENSE.txt} +22 -0
  62. package/dist/8708.js.map +1 -0
  63. package/dist/890.js +1 -1
  64. package/dist/9214.js +1 -1
  65. package/dist/9538.js +1 -1
  66. package/dist/9569.js +1 -1
  67. package/dist/961.js +1 -1
  68. package/dist/961.js.map +1 -1
  69. package/dist/986.js +1 -1
  70. package/dist/9879.js +1 -1
  71. package/dist/9895.js +1 -1
  72. package/dist/9900.js +1 -1
  73. package/dist/9913.js +1 -1
  74. package/dist/main.js +1 -1
  75. package/dist/main.js.map +1 -1
  76. package/dist/openmrs-esm-billing-app.js +1 -1
  77. package/dist/openmrs-esm-billing-app.js.buildmanifest.json +321 -249
  78. package/dist/openmrs-esm-billing-app.js.map +1 -1
  79. package/dist/routes.json +1 -1
  80. package/e2e/README.md +19 -18
  81. package/e2e/commands/billing-operations.ts +96 -0
  82. package/e2e/commands/index.ts +3 -0
  83. package/e2e/commands/patient-operations.ts +82 -0
  84. package/e2e/commands/types.ts +73 -0
  85. package/e2e/core/test.ts +12 -1
  86. package/e2e/fixtures/api.ts +2 -3
  87. package/e2e/pages/billing-dashboard-page.ts +84 -0
  88. package/e2e/pages/billing-form-page.ts +114 -0
  89. package/e2e/pages/index.ts +4 -1
  90. package/e2e/pages/invoice-page.ts +113 -0
  91. package/e2e/pages/payment-page.ts +104 -0
  92. package/e2e/specs/billing-dashboard.spec.ts +203 -0
  93. package/e2e/specs/billing-patient-chart.spec.ts +738 -0
  94. package/e2e/support/github/Dockerfile +1 -1
  95. package/e2e/support/github/run-e2e-docker-env.sh +29 -32
  96. package/example.env +15 -1
  97. package/package.json +19 -16
  98. package/playwright.config.ts +4 -2
  99. package/src/bill-history/bill-history.component.tsx +15 -17
  100. package/src/bill-history/bill-history.scss +4 -94
  101. package/src/bill-history/bill-history.test.tsx +37 -77
  102. package/src/bill-item-actions/bill-item-actions.scss +21 -5
  103. package/src/bill-item-actions/edit-bill-item.modal.tsx +227 -0
  104. package/src/bill-item-actions/edit-bill-item.test.tsx +233 -40
  105. package/src/billable-services/bill-waiver/bill-selection.component.tsx +5 -5
  106. package/src/billable-services/bill-waiver/bill-waiver-form.component.tsx +37 -39
  107. package/src/billable-services/bill-waiver/patient-bills.component.tsx +7 -7
  108. package/src/billable-services/bill-waiver/utils.ts +13 -3
  109. package/src/billable-services/{create-edit/add-billable-service.scss → billable-service-form/billable-service-form.scss} +32 -64
  110. package/src/billable-services/billable-service-form/billable-service-form.test.tsx +1099 -0
  111. package/src/billable-services/billable-service-form/billable-service-form.workspace.tsx +516 -0
  112. package/src/billable-services/billable-service.resource.ts +71 -27
  113. package/src/billable-services/billable-services-home.component.tsx +13 -42
  114. package/src/billable-services/billable-services-left-panel-link.component.tsx +50 -0
  115. package/src/billable-services/billable-services-left-panel-menu.component.tsx +48 -0
  116. package/src/billable-services/billable-services-menu-item/item.component.tsx +5 -4
  117. package/src/billable-services/billable-services.component.tsx +156 -152
  118. package/src/billable-services/billable-services.scss +29 -0
  119. package/src/billable-services/billable-services.test.tsx +6 -49
  120. package/src/billable-services/cash-point/add-cash-point.modal.tsx +170 -0
  121. package/src/billable-services/cash-point/cash-point-configuration.component.tsx +19 -193
  122. package/src/billable-services/cash-point/cash-point-configuration.scss +1 -5
  123. package/src/billable-services/dashboard/dashboard.component.tsx +0 -2
  124. package/src/billable-services/payment-modes/delete-payment-mode.modal.tsx +77 -0
  125. package/src/billable-services/payment-modes/payment-mode-form.modal.tsx +131 -0
  126. package/src/billable-services/payment-modes/payment-modes-config.component.tsx +139 -0
  127. package/src/billable-services/{payyment-modes → payment-modes}/payment-modes-config.scss +5 -4
  128. package/src/billable-services-admin-card-link.component.test.tsx +2 -2
  129. package/src/billable-services-admin-card-link.component.tsx +1 -1
  130. package/src/billing-dashboard/billing-dashboard.scss +1 -1
  131. package/src/billing-form/billing-checkin-form.component.tsx +29 -29
  132. package/src/billing-form/billing-checkin-form.scss +0 -7
  133. package/src/billing-form/billing-checkin-form.test.tsx +100 -27
  134. package/src/billing-form/billing-form.component.tsx +226 -284
  135. package/src/billing-form/billing-form.scss +143 -0
  136. package/src/billing-form/visit-attributes/visit-attributes-form.component.tsx +47 -41
  137. package/src/billing-form/visit-attributes/visit-attributes-form.scss +16 -3
  138. package/src/billing.resource.test.ts +503 -0
  139. package/src/billing.resource.ts +68 -76
  140. package/src/bills-table/bills-table.component.tsx +17 -24
  141. package/src/bills-table/bills-table.test.tsx +98 -54
  142. package/src/config-schema.ts +84 -31
  143. package/src/dashboard.meta.ts +5 -3
  144. package/src/helpers/functions.ts +5 -4
  145. package/src/index.ts +75 -13
  146. package/src/invoice/invoice-table.component.tsx +36 -70
  147. package/src/invoice/invoice-table.scss +8 -5
  148. package/src/invoice/invoice-table.test.tsx +273 -62
  149. package/src/invoice/invoice.component.tsx +44 -38
  150. package/src/invoice/invoice.scss +11 -4
  151. package/src/invoice/invoice.test.tsx +324 -120
  152. package/src/invoice/payments/invoice-breakdown/invoice-breakdown.scss +9 -9
  153. package/src/invoice/payments/payment-form/payment-form.component.tsx +45 -36
  154. package/src/invoice/payments/payment-form/payment-form.scss +5 -6
  155. package/src/invoice/payments/payment-form/payment-form.test.tsx +217 -67
  156. package/src/invoice/payments/payment-history/payment-history.component.tsx +6 -4
  157. package/src/invoice/payments/payment-history/payment-history.test.tsx +9 -14
  158. package/src/invoice/payments/payments.component.tsx +56 -68
  159. package/src/invoice/payments/payments.scss +4 -3
  160. package/src/invoice/payments/payments.test.tsx +282 -0
  161. package/src/invoice/payments/utils.ts +15 -27
  162. package/src/invoice/printable-invoice/print-receipt.component.tsx +3 -3
  163. package/src/invoice/printable-invoice/print-receipt.test.tsx +14 -25
  164. package/src/invoice/printable-invoice/printable-footer.component.tsx +2 -2
  165. package/src/invoice/printable-invoice/printable-footer.test.tsx +4 -13
  166. package/src/invoice/printable-invoice/printable-invoice-header.component.tsx +20 -11
  167. package/src/invoice/printable-invoice/printable-invoice-header.test.tsx +95 -16
  168. package/src/invoice/printable-invoice/printable-invoice.component.tsx +21 -35
  169. package/src/left-panel-link.component.tsx +9 -8
  170. package/src/left-panel-link.test.tsx +1 -4
  171. package/src/metrics-cards/metrics-cards.component.tsx +16 -6
  172. package/src/metrics-cards/metrics-cards.scss +4 -0
  173. package/src/metrics-cards/metrics-cards.test.tsx +18 -5
  174. package/src/modal/require-payment-modal.test.tsx +27 -22
  175. package/src/modal/{require-payment-modal.component.tsx → require-payment.modal.tsx} +18 -19
  176. package/src/routes.json +44 -20
  177. package/src/types/index.ts +87 -24
  178. package/translations/am.json +140 -80
  179. package/translations/ar.json +141 -81
  180. package/translations/ar_SY.json +141 -81
  181. package/translations/bn.json +143 -83
  182. package/translations/cs.json +230 -0
  183. package/translations/de.json +141 -81
  184. package/translations/en.json +142 -81
  185. package/translations/en_US.json +141 -81
  186. package/translations/es.json +140 -80
  187. package/translations/es_MX.json +141 -81
  188. package/translations/fr.json +224 -164
  189. package/translations/he.json +140 -80
  190. package/translations/hi.json +141 -81
  191. package/translations/hi_IN.json +141 -81
  192. package/translations/id.json +141 -81
  193. package/translations/it.json +166 -106
  194. package/translations/ka.json +141 -81
  195. package/translations/km.json +140 -80
  196. package/translations/ku.json +141 -81
  197. package/translations/ky.json +141 -81
  198. package/translations/lg.json +141 -81
  199. package/translations/ne.json +141 -81
  200. package/translations/pl.json +141 -81
  201. package/translations/pt.json +141 -81
  202. package/translations/pt_BR.json +141 -81
  203. package/translations/qu.json +141 -81
  204. package/translations/ro_RO.json +225 -165
  205. package/translations/ru_RU.json +141 -81
  206. package/translations/si.json +141 -81
  207. package/translations/sq.json +230 -0
  208. package/translations/sw.json +141 -81
  209. package/translations/sw_KE.json +141 -81
  210. package/translations/tr.json +141 -81
  211. package/translations/tr_TR.json +141 -81
  212. package/translations/uk.json +141 -81
  213. package/translations/uz.json +141 -81
  214. package/translations/uz@Latn.json +141 -81
  215. package/translations/uz_UZ.json +141 -81
  216. package/translations/vi.json +141 -81
  217. package/translations/zh.json +141 -81
  218. package/translations/zh_CN.json +171 -111
  219. package/translations/zh_TW.json +230 -0
  220. package/dist/1146.js.LICENSE.txt +0 -21
  221. package/dist/2352.js +0 -1
  222. package/dist/2352.js.map +0 -1
  223. package/dist/246.js +0 -1
  224. package/dist/246.js.map +0 -1
  225. package/dist/4689.js +0 -2
  226. package/dist/4689.js.map +0 -1
  227. package/dist/6557.js +0 -2
  228. package/dist/6557.js.map +0 -1
  229. package/dist/8638.js +0 -1
  230. package/dist/8638.js.map +0 -1
  231. package/dist/9968.js +0 -1
  232. package/dist/9968.js.map +0 -1
  233. package/e2e/pages/home-page.ts +0 -9
  234. package/e2e/specs/sample-test.spec.ts +0 -11
  235. package/src/bill-item-actions/edit-bill-item.component.tsx +0 -221
  236. package/src/billable-services/create-edit/add-billable-service.component.tsx +0 -401
  237. package/src/billable-services/create-edit/add-billable-service.test.tsx +0 -154
  238. package/src/billable-services/dashboard/service-metrics.component.tsx +0 -41
  239. package/src/billable-services/payyment-modes/payment-modes-config.component.tsx +0 -280
  240. package/src/invoice/payments/payments.component.test.tsx +0 -121
  241. /package/dist/{4689.js.LICENSE.txt → 3717.js.LICENSE.txt} +0 -0
@@ -1,11 +1,11 @@
1
- import React from 'react';
2
- import { Form, Stack, FormGroup, Layer, Button, NumberInput } from '@carbon/react';
1
+ import React, { useState } from 'react';
2
+ import { Button, Form, FormGroup, Layer, NumberInput, Stack } from '@carbon/react';
3
3
  import { TaskAdd } from '@carbon/react/icons';
4
- import { mutate } from 'swr';
4
+ import { useSWRConfig } from 'swr';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { showSnackbar, useConfig } from '@openmrs/esm-framework';
7
7
  import { createBillWaiverPayload } from './utils';
8
- import { convertToCurrency } from '../../helpers';
8
+ import { calculateTotalAmount, convertToCurrency } from '../../helpers';
9
9
  import { processBillPayment } from '../../billing.resource';
10
10
  import { useBillableItems } from '../../billing-form/billing-form.resource';
11
11
  import type { LineItem, MappedBill } from '../../types';
@@ -20,16 +20,17 @@ type BillWaiverFormProps = {
20
20
 
21
21
  const BillWaiverForm: React.FC<BillWaiverFormProps> = ({ bill, lineItems, setPatientUuid }) => {
22
22
  const { t } = useTranslation();
23
- const [waiverAmount, setWaiverAmount] = React.useState(0);
24
- const { lineItems: billableLineItems, isLoading: isLoadingLineItems, error: lineError } = useBillableItems();
25
- const totalAmount = lineItems.reduce((acc, curr) => acc + curr.price * curr.quantity, 0);
23
+ const [waiverAmount, setWaiverAmount] = useState(0);
24
+ const { lineItems: billableLineItems } = useBillableItems();
25
+ const totalAmount = calculateTotalAmount(lineItems);
26
26
  const { defaultCurrency } = useConfig();
27
+ const { mutate } = useSWRConfig();
27
28
 
28
29
  if (lineItems?.length === 0) {
29
30
  return null;
30
31
  }
31
32
 
32
- const handleProcessPayment = (event) => {
33
+ const handleProcessPayment = async () => {
33
34
  const waiverEndPointPayload = createBillWaiverPayload(
34
35
  bill,
35
36
  waiverAmount,
@@ -38,30 +39,26 @@ const BillWaiverForm: React.FC<BillWaiverFormProps> = ({ bill, lineItems, setPat
38
39
  billableLineItems,
39
40
  );
40
41
 
41
- processBillPayment(waiverEndPointPayload, bill.uuid).then(
42
- (resp) => {
43
- showSnackbar({
44
- title: t('billWaiver', 'Bill waiver'),
45
- subtitle: t('billWaiverSuccess', 'Bill waiver successful'),
46
- kind: 'success',
47
- timeoutInMs: 3500,
48
- isLowContrast: true,
49
- });
50
- setPatientUuid('');
51
- mutate((key) => typeof key === 'string' && key.startsWith(`${apiBasePath}bill?v=full`), undefined, {
52
- revalidate: true,
53
- });
54
- },
55
- (err) => {
56
- showSnackbar({
57
- title: t('billWaiver', 'Bill waiver'),
58
- subtitle: t('billWaiverError', 'Bill waiver failed {{error}}', { error: err.message }),
59
- kind: 'error',
60
- timeoutInMs: 3500,
61
- isLowContrast: true,
62
- });
63
- },
64
- );
42
+ try {
43
+ await processBillPayment(waiverEndPointPayload, bill.uuid);
44
+ showSnackbar({
45
+ title: t('billWaiver', 'Bill waiver'),
46
+ subtitle: t('billWaiverSuccess', 'Bill waiver successful'),
47
+ kind: 'success',
48
+ isLowContrast: true,
49
+ });
50
+ setPatientUuid('');
51
+ mutate((key) => typeof key === 'string' && key.startsWith(`${apiBasePath}bill?v=full`), undefined, {
52
+ revalidate: true,
53
+ });
54
+ } catch (error) {
55
+ showSnackbar({
56
+ title: t('billWaiver', 'Bill waiver'),
57
+ subtitle: t('billWaiverError', 'Bill waiver failed {{error}}', { error: error?.message }),
58
+ kind: 'error',
59
+ isLowContrast: true,
60
+ });
61
+ }
65
62
  };
66
63
 
67
64
  return (
@@ -72,7 +69,7 @@ const BillWaiverForm: React.FC<BillWaiverFormProps> = ({ bill, lineItems, setPat
72
69
  <section className={styles.billWaiverDescription}>
73
70
  <label className={styles.label}>{t('billItems', 'Bill Items')}</label>
74
71
  <p className={styles.value}>
75
- {t('billName', ' {{billName}} ', {
72
+ {t('billName', '{{billName}}', {
76
73
  billName: lineItems.map((item) => item.item || item.billableService).join(', ') ?? '--',
77
74
  })}
78
75
  </p>
@@ -84,16 +81,17 @@ const BillWaiverForm: React.FC<BillWaiverFormProps> = ({ bill, lineItems, setPat
84
81
 
85
82
  <Layer className={styles.formControlLayer}>
86
83
  <NumberInput
87
- label={t('amountToWaiveLabel', 'Amount to Waive')}
88
- helperText={t('amountToWaiveHelper', 'Specify the amount to be deducted from the bill')}
84
+ allowEmpty
89
85
  aria-label={t('amountToWaiveAriaLabel', 'Enter amount to waive')}
90
- hideSteppers
91
86
  disableWheel
92
- min={0}
93
- max={totalAmount}
87
+ helperText={t('amountToWaiveHelper', 'Specify the amount to be deducted from the bill')}
88
+ hideSteppers
94
89
  invalidText={t('invalidWaiverAmount', 'Invalid waiver amount')}
95
- value={waiverAmount}
90
+ label={t('amountToWaiveLabel', 'Amount to waive')}
91
+ max={totalAmount}
92
+ min={0}
96
93
  onChange={(event) => setWaiverAmount(event.target.value)}
94
+ value={waiverAmount}
97
95
  />
98
96
  </Layer>
99
97
  </FormGroup>
@@ -37,9 +37,9 @@ const PatientBills: React.FC<PatientBillsProps> = ({ patientUuid, bills, setPati
37
37
  }
38
38
 
39
39
  const tableHeaders = [
40
- { header: 'Date', key: 'date' },
41
- { header: 'Billable Service', key: 'billableService' },
42
- { header: 'Total Amount', key: 'totalAmount' },
40
+ { header: t('date', 'Date'), key: 'date' },
41
+ { header: t('billableService', 'Billable service'), key: 'billableService' },
42
+ { header: t('totalAmount', 'Total amount'), key: 'totalAmount' },
43
43
  ];
44
44
 
45
45
  const tableRows = bills.map((bill) => ({
@@ -58,7 +58,7 @@ const PatientBills: React.FC<PatientBillsProps> = ({ patientUuid, bills, setPati
58
58
  <div className={styles.illo}>
59
59
  <EmptyDataIllustration />
60
60
  </div>
61
- <p className={styles.content}>{t('noBilltoDisplay', 'There are no bills to display for this patient')}</p>
61
+ <p className={styles.content}>{t('noBillToDisplay', 'There are no bills to display for this patient')}</p>
62
62
  </Tile>
63
63
  </Layer>
64
64
  </div>
@@ -84,13 +84,13 @@ const PatientBills: React.FC<PatientBillsProps> = ({ patientUuid, bills, setPati
84
84
  getTableContainerProps,
85
85
  }) => (
86
86
  <TableContainer
87
- title={t('patientBills', 'Patient bill')}
87
+ title={t('patientBills', 'Patient bills')}
88
88
  description={t('patientBillsDescription', 'List of patient bills')}
89
89
  {...getTableContainerProps()}>
90
- <Table {...getTableProps()} aria-label="sample table">
90
+ <Table {...getTableProps()} aria-label={t('billsTable', 'Bills table')}>
91
91
  <TableHead>
92
92
  <TableRow>
93
- <TableExpandHeader enableToggle={true} {...getExpandHeaderProps()} />
93
+ <TableExpandHeader enableToggle {...getExpandHeaderProps()} />
94
94
  {headers.map((header, i) => (
95
95
  <TableHeader
96
96
  key={i}
@@ -1,6 +1,7 @@
1
1
  import { type OpenmrsResource } from '@openmrs/esm-framework';
2
- import type { LineItem, MappedBill } from '../../types';
2
+ import type { LineItem, MappedBill, PaymentPayload } from '../../types';
3
3
 
4
+ // TODO: Move this UUID to the config schema
4
5
  const WAIVER_UUID = 'eb6173cb-9678-4614-bbe1-0ccf7ed9d1d4';
5
6
 
6
7
  export const createBillWaiverPayload = (
@@ -12,7 +13,7 @@ export const createBillWaiverPayload = (
12
13
  ) => {
13
14
  const { cashier } = bill;
14
15
 
15
- const billPayment = {
16
+ const billPayment: PaymentPayload = {
16
17
  amount: parseFloat(totalAmount.toFixed(2)),
17
18
  amountTendered: parseFloat(Number(amountWaived).toFixed(2)),
18
19
  attributes: [],
@@ -25,11 +26,20 @@ export const createBillWaiverPayload = (
25
26
  paymentStatus: 'PAID',
26
27
  }));
27
28
 
29
+ // Transform existing payments to PaymentPayload format
30
+ const existingPayments: PaymentPayload[] = bill.payments.map((payment) => ({
31
+ amount: payment.amount,
32
+ amountTendered: payment.amountTendered,
33
+ attributes: payment.attributes,
34
+ instanceType: payment.instanceType.uuid,
35
+ dateCreated: payment.dateCreated,
36
+ }));
37
+
28
38
  const processedPayment = {
29
39
  cashPoint: bill.cashPointUuid,
30
40
  cashier: cashier.uuid,
31
41
  lineItems: processedLineItems,
32
- payments: [...bill.payments, billPayment],
42
+ payments: [...existingPayments, billPayment],
33
43
  patient: bill.patientUuid,
34
44
  };
35
45
 
@@ -10,33 +10,8 @@
10
10
  height: 100%;
11
11
  }
12
12
 
13
- .section {
14
- margin: layout.$spacing-03;
15
- }
16
-
17
- .sectionTitle {
18
- @include type.type-style('heading-compact-02');
19
- color: $text-02;
20
- margin-bottom: layout.$spacing-04;
21
- }
22
-
23
- .modalBody {
24
- padding-bottom: layout.$spacing-05;
25
- }
26
-
27
- .container {
28
- margin: layout.$spacing-05;
29
- }
30
-
31
- .paymentContainer {
32
- margin: layout.$layout-01;
33
- padding: layout.$layout-01;
34
- width: 70%;
35
- border-right: 1px solid colors.$cool-gray-40;
36
- }
37
-
38
13
  .paymentButtons {
39
- margin: layout.$layout-01 0;
14
+ margin: layout.$spacing-05 0;
40
15
  }
41
16
 
42
17
  .paymentMethodContainer {
@@ -48,22 +23,6 @@
48
23
  width: 100%;
49
24
  }
50
25
 
51
- .paymentTotals {
52
- margin-top: layout.$spacing-01;
53
- }
54
-
55
- .processPayments {
56
- display: flex;
57
- justify-content: flex-end;
58
- margin: layout.$spacing-05;
59
- column-gap: layout.$spacing-04;
60
- }
61
-
62
- .errorPaymentContainer {
63
- margin: layout.$spacing-04;
64
- min-height: layout.$spacing-09;
65
- }
66
-
67
26
  .removeButtonContainer {
68
27
  display: flex;
69
28
  align-self: center;
@@ -99,39 +58,48 @@
99
58
 
100
59
  .conceptLabel {
101
60
  @include type.type-style('label-02');
102
- margin: layout.$spacing-05;
61
+ margin-bottom: layout.$spacing-05;
103
62
  }
104
63
 
105
- .errorContainer {
106
- margin: layout.$spacing-05;
64
+ .errorMessage {
65
+ @include type.type-style('label-02');
66
+ color: $danger;
67
+ margin-bottom: layout.$spacing-05;
107
68
  }
108
69
 
109
- .serviceError {
110
- :global(.cds--search-input):focus {
111
- outline: 2.5px solid $danger;
70
+ .loader {
71
+ padding: layout.$spacing-04 layout.$spacing-03;
72
+ }
73
+
74
+ .serviceNameLabel {
75
+ @include type.type-style('body-compact-02');
76
+ }
77
+
78
+ .button {
79
+ height: layout.$spacing-10;
80
+ display: flex;
81
+ align-content: flex-start;
82
+ align-items: baseline;
83
+ min-width: 50%;
84
+
85
+ :global(.cds--inline-loading) {
86
+ min-height: layout.$spacing-05 !important;
112
87
  }
113
88
 
114
- :global(.cds--search-magnifier) {
115
- svg {
116
- fill: $danger;
117
- }
89
+ :global(.cds--inline-loading__text) {
90
+ @include type.type-style('body-01');
118
91
  }
119
92
  }
120
93
 
121
- .errorMessage {
122
- @include type.type-style('label-02');
123
- color: $danger;
124
- margin-top: 0.5rem;
94
+ .tablet {
95
+ padding: layout.$spacing-06 layout.$spacing-05;
96
+ background-color: $ui-02;
125
97
  }
126
98
 
127
- .spinner {
128
- &:global(.cds--inline-loading) {
129
- min-height: layout.$spacing-05;
130
- }
99
+ .desktop {
100
+ padding: 0;
131
101
  }
132
102
 
133
- .errorMessage {
134
- color: red;
135
- font-size: 0.875rem;
103
+ .stack {
104
+ margin: layout.$spacing-05;
136
105
  }
137
-