@shipengine/elements 2.27.0 → 2.29.0

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 (199) hide show
  1. package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +1 -0
  2. package/dist/cjs/components/forms/edit-billing-form/edit-billing-form.cjs +87 -12
  3. package/dist/cjs/components/forms/edit-billing-form/edit-billing-form.styles.cjs +15 -0
  4. package/dist/cjs/components/forms/wallet-form/index.cjs +0 -2
  5. package/dist/cjs/components/forms/wallet-form/wallet-form.cjs +153 -23
  6. package/dist/cjs/components/forms/wallet-form/wallet-form.styles.cjs +15 -0
  7. package/dist/cjs/components/forms/wallet-form/wallet-schema.cjs +8 -43
  8. package/dist/cjs/components/forms/warehouse-form/warehouse-form.cjs +10 -1
  9. package/dist/cjs/components/payment/payment-method-selector/index.cjs +7 -0
  10. package/dist/cjs/components/payment/payment-method-selector/payment-method-selector.cjs +55 -0
  11. package/dist/cjs/components/payment/payment-method-selector/payment-method-selector.styles.cjs +58 -0
  12. package/dist/cjs/components/service-card/service-card.cjs +3 -2
  13. package/dist/cjs/components/service-card/service-card.styles.cjs +4 -2
  14. package/dist/cjs/contexts/auctane-pay-session-context.cjs +158 -0
  15. package/dist/cjs/contexts/index.cjs +8 -0
  16. package/dist/cjs/elements/labels-grid/hooks/use-labels-grid.cjs +2 -2
  17. package/dist/cjs/elements/labels-grid/labels-grid.cjs +29 -9
  18. package/dist/cjs/elements/labels-grid/labels-grid.styles.cjs +5 -0
  19. package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +3 -5
  20. package/dist/cjs/elements/purchase-label/components/shipment-form/shipment-form.cjs +3 -1
  21. package/dist/cjs/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.cjs +5 -5
  22. package/dist/cjs/elements/shipments-grid/hooks/use-shipments-grid.cjs +2 -2
  23. package/dist/cjs/elements/shipments-grid/shipments-grid.cjs +20 -6
  24. package/dist/cjs/elements/shipments-grid/shipments-grid.styles.cjs +5 -0
  25. package/dist/cjs/features/manage-warehouses/manage-warehouses.cjs +9 -5
  26. package/dist/cjs/features/payment-method-settings/payment-method-settings.cjs +4 -3
  27. package/dist/cjs/hooks/financial-services/financial-service.cjs +464 -0
  28. package/dist/cjs/hooks/financial-services/index.cjs +9 -0
  29. package/dist/cjs/hooks/financial-services/use-financial-service.cjs +188 -0
  30. package/dist/cjs/hooks/use-configure-shipment.cjs +8 -0
  31. package/dist/cjs/hooks/use-get-service-data.cjs +60 -0
  32. package/dist/cjs/locales/en/list-labels.json.cjs +2 -1
  33. package/dist/cjs/locales/en/list-shipments.json.cjs +1 -1
  34. package/dist/cjs/locales/en/manage-warehouses.json.cjs +2 -0
  35. package/dist/cjs/locales/en/register-wallet.json.cjs +5 -0
  36. package/dist/cjs/package.json.cjs +1 -1
  37. package/dist/cjs/utilities/feature-flags/feature-flags.cjs +2 -1
  38. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.cjs +16 -5
  39. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +6 -6
  40. package/dist/cjs/workflows/onboarding/components/funding-step/funding-step.cjs +7 -3
  41. package/dist/cjs/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.cjs +1 -1
  42. package/dist/cjs/workflows/onboarding/onboarding.cjs +8 -5
  43. package/dist/esm/components/field/rate-select/rate-card/rate-card.js +1 -0
  44. package/dist/esm/components/forms/edit-billing-form/edit-billing-form.js +88 -13
  45. package/dist/esm/components/forms/edit-billing-form/edit-billing-form.styles.js +15 -0
  46. package/dist/esm/components/forms/wallet-form/index.js +0 -1
  47. package/dist/esm/components/forms/wallet-form/wallet-form.js +155 -25
  48. package/dist/esm/components/forms/wallet-form/wallet-form.styles.js +15 -0
  49. package/dist/esm/components/forms/wallet-form/wallet-schema.js +1 -36
  50. package/dist/esm/components/forms/warehouse-form/warehouse-form.js +10 -1
  51. package/dist/esm/components/payment/payment-method-selector/index.js +1 -0
  52. package/dist/esm/components/payment/payment-method-selector/payment-method-selector.js +53 -0
  53. package/dist/esm/components/payment/payment-method-selector/payment-method-selector.styles.js +56 -0
  54. package/dist/esm/components/service-card/service-card.js +3 -2
  55. package/dist/esm/components/service-card/service-card.styles.js +4 -2
  56. package/dist/esm/contexts/auctane-pay-session-context.js +155 -0
  57. package/dist/esm/contexts/index.js +1 -0
  58. package/dist/esm/elements/labels-grid/hooks/use-labels-grid.js +2 -2
  59. package/dist/esm/elements/labels-grid/labels-grid.js +30 -10
  60. package/dist/esm/elements/labels-grid/labels-grid.styles.js +5 -0
  61. package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +3 -5
  62. package/dist/esm/elements/purchase-label/components/shipment-form/shipment-form.js +3 -1
  63. package/dist/esm/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.js +5 -5
  64. package/dist/esm/elements/shipments-grid/hooks/use-shipments-grid.js +2 -2
  65. package/dist/esm/elements/shipments-grid/shipments-grid.js +21 -7
  66. package/dist/esm/elements/shipments-grid/shipments-grid.styles.js +5 -0
  67. package/dist/esm/features/manage-warehouses/manage-warehouses.js +9 -5
  68. package/dist/esm/features/payment-method-settings/payment-method-settings.js +5 -4
  69. package/dist/esm/hooks/financial-services/financial-service.js +462 -0
  70. package/dist/esm/hooks/financial-services/index.js +2 -0
  71. package/dist/esm/hooks/financial-services/use-financial-service.js +186 -0
  72. package/dist/esm/hooks/use-configure-shipment.js +8 -0
  73. package/dist/esm/hooks/use-get-service-data.js +58 -0
  74. package/dist/esm/locales/en/list-labels.json.js +2 -1
  75. package/dist/esm/locales/en/list-shipments.json.js +1 -1
  76. package/dist/esm/locales/en/manage-warehouses.json.js +2 -0
  77. package/dist/esm/locales/en/register-wallet.json.js +5 -0
  78. package/dist/esm/package.json.js +1 -1
  79. package/dist/esm/utilities/feature-flags/feature-flags.js +2 -1
  80. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.js +16 -5
  81. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +6 -6
  82. package/dist/esm/workflows/onboarding/components/funding-step/funding-step.js +7 -3
  83. package/dist/esm/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.js +1 -1
  84. package/dist/esm/workflows/onboarding/onboarding.js +8 -5
  85. package/dist/types/components/address-preference-context/address-preference-context.d.ts +0 -1
  86. package/dist/types/components/address-preference-context/address-preference-context.d.ts.map +1 -1
  87. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts.map +1 -1
  88. package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts +2 -2
  89. package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts.map +1 -1
  90. package/dist/types/components/forms/edit-billing-form/edit-billing-form.styles.d.ts +14 -0
  91. package/dist/types/components/forms/edit-billing-form/edit-billing-form.styles.d.ts.map +1 -1
  92. package/dist/types/components/forms/wallet-form/index.d.ts +0 -1
  93. package/dist/types/components/forms/wallet-form/index.d.ts.map +1 -1
  94. package/dist/types/components/forms/wallet-form/wallet-form.d.ts +4 -1
  95. package/dist/types/components/forms/wallet-form/wallet-form.d.ts.map +1 -1
  96. package/dist/types/components/forms/wallet-form/wallet-form.styles.d.ts +14 -0
  97. package/dist/types/components/forms/wallet-form/wallet-form.styles.d.ts.map +1 -1
  98. package/dist/types/components/forms/wallet-form/wallet-schema.d.ts +3 -43
  99. package/dist/types/components/forms/wallet-form/wallet-schema.d.ts.map +1 -1
  100. package/dist/types/components/forms/warehouse-form/warehouse-form.d.ts.map +1 -1
  101. package/dist/types/components/payment/payment-method-selector/index.d.ts +2 -0
  102. package/dist/types/components/payment/payment-method-selector/index.d.ts.map +1 -0
  103. package/dist/types/components/payment/payment-method-selector/payment-method-selector.d.ts +11 -0
  104. package/dist/types/components/payment/payment-method-selector/payment-method-selector.d.ts.map +1 -0
  105. package/dist/types/components/payment/payment-method-selector/payment-method-selector.styles.d.ts +52 -0
  106. package/dist/types/components/payment/payment-method-selector/payment-method-selector.styles.d.ts.map +1 -0
  107. package/dist/types/components/service-card/service-card.d.ts +2 -1
  108. package/dist/types/components/service-card/service-card.d.ts.map +1 -1
  109. package/dist/types/components/service-card/service-card.styles.d.ts +2 -1
  110. package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
  111. package/dist/types/contexts/auctane-pay-session-context.d.ts +54 -0
  112. package/dist/types/contexts/auctane-pay-session-context.d.ts.map +1 -0
  113. package/dist/types/contexts/index.d.ts +3 -0
  114. package/dist/types/contexts/index.d.ts.map +1 -0
  115. package/dist/types/elements/customs-form/customs-form-element.d.ts +10 -2
  116. package/dist/types/elements/customs-form/customs-form-element.d.ts.map +1 -1
  117. package/dist/types/elements/labels-grid/labels-grid.d.ts +10 -2
  118. package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
  119. package/dist/types/elements/labels-grid/labels-grid.styles.d.ts +5 -0
  120. package/dist/types/elements/labels-grid/labels-grid.styles.d.ts.map +1 -1
  121. package/dist/types/elements/manage-carriers/manage-carriers.d.ts +10 -2
  122. package/dist/types/elements/manage-carriers/manage-carriers.d.ts.map +1 -1
  123. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts +10 -2
  124. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts.map +1 -1
  125. package/dist/types/elements/manage-funding/manage-funding-element.d.ts +10 -2
  126. package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
  127. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +10 -2
  128. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts.map +1 -1
  129. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts +10 -2
  130. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
  131. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +1 -1
  132. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
  133. package/dist/types/elements/purchase-label/components/shipment-form/shipment-form.d.ts.map +1 -1
  134. package/dist/types/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.d.ts +2 -1
  135. package/dist/types/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.d.ts.map +1 -1
  136. package/dist/types/elements/purchase-label/purchase-label.d.ts +10 -2
  137. package/dist/types/elements/purchase-label/purchase-label.d.ts.map +1 -1
  138. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts +10 -2
  139. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
  140. package/dist/types/elements/shipment-summary/shipment-summary.d.ts +10 -2
  141. package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
  142. package/dist/types/elements/shipments-grid/shipments-grid.d.ts +10 -2
  143. package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
  144. package/dist/types/elements/shipments-grid/shipments-grid.styles.d.ts +5 -0
  145. package/dist/types/elements/shipments-grid/shipments-grid.styles.d.ts.map +1 -1
  146. package/dist/types/elements/theme-creator/theme-creator.d.ts +10 -2
  147. package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
  148. package/dist/types/elements/transaction-history/transaction-history-element.d.ts +10 -2
  149. package/dist/types/elements/transaction-history/transaction-history-element.d.ts.map +1 -1
  150. package/dist/types/elements/unit-settings/unit-settings-element.d.ts +10 -2
  151. package/dist/types/elements/unit-settings/unit-settings-element.d.ts.map +1 -1
  152. package/dist/types/elements/vat-settings/vat-settings-element.d.ts +10 -2
  153. package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
  154. package/dist/types/elements/void-label/void-label.d.ts +10 -2
  155. package/dist/types/elements/void-label/void-label.d.ts.map +1 -1
  156. package/dist/types/elements-provider/elements-provider.d.ts.map +1 -1
  157. package/dist/types/features/manage-warehouses/manage-warehouses.d.ts.map +1 -1
  158. package/dist/types/features/payment-method-settings/payment-method-settings.d.ts.map +1 -1
  159. package/dist/types/hooks/financial-services/financial-service.d.ts +279 -0
  160. package/dist/types/hooks/financial-services/financial-service.d.ts.map +1 -0
  161. package/dist/types/hooks/financial-services/index.d.ts +5 -0
  162. package/dist/types/hooks/financial-services/index.d.ts.map +1 -0
  163. package/dist/types/hooks/financial-services/use-financial-service.d.ts +40 -0
  164. package/dist/types/hooks/financial-services/use-financial-service.d.ts.map +1 -0
  165. package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
  166. package/dist/types/hooks/use-get-service-data.d.ts +14 -0
  167. package/dist/types/hooks/use-get-service-data.d.ts.map +1 -0
  168. package/dist/types/locales/en/index.d.ts +10 -2
  169. package/dist/types/locales/en/index.d.ts.map +1 -1
  170. package/dist/types/types/financial-services.d.ts +34 -0
  171. package/dist/types/types/financial-services.d.ts.map +1 -0
  172. package/dist/types/types/index.d.ts +1 -1
  173. package/dist/types/types/index.d.ts.map +1 -1
  174. package/dist/types/utilities/feature-flags/feature-flags.d.ts.map +1 -1
  175. package/dist/types/utilities/feature-flags/types.d.ts +4 -0
  176. package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
  177. package/dist/types/workflows/account-settings/account-settings.d.ts +10 -2
  178. package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
  179. package/dist/types/workflows/carrier-services/carrier-services.d.ts +10 -2
  180. package/dist/types/workflows/carrier-services/carrier-services.d.ts.map +1 -1
  181. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts +10 -2
  182. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts.map +1 -1
  183. package/dist/types/workflows/label-workflow/label-workflow.d.ts +10 -2
  184. package/dist/types/workflows/label-workflow/label-workflow.d.ts.map +1 -1
  185. package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.d.ts.map +1 -1
  186. package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.d.ts.map +1 -1
  187. package/dist/types/workflows/onboarding/components/funding-step/funding-step.d.ts.map +1 -1
  188. package/dist/types/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.d.ts.map +1 -1
  189. package/dist/types/workflows/onboarding/onboarding.d.ts +10 -2
  190. package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
  191. package/package.json +5 -5
  192. package/dist/cjs/components/forms/wallet-form/billing-fields.cjs +0 -71
  193. package/dist/cjs/hooks/use-get-service-name.cjs +0 -22
  194. package/dist/esm/components/forms/wallet-form/billing-fields.js +0 -69
  195. package/dist/esm/hooks/use-get-service-name.js +0 -20
  196. package/dist/types/components/forms/wallet-form/billing-fields.d.ts +0 -7
  197. package/dist/types/components/forms/wallet-form/billing-fields.d.ts.map +0 -1
  198. package/dist/types/hooks/use-get-service-name.d.ts +0 -5
  199. package/dist/types/hooks/use-get-service-name.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from '@emotion/react';
2
- import { useGetServiceName } from '../../../hooks/use-get-service-name.js';
2
+ import { useGetServiceData } from '../../../hooks/use-get-service-data.js';
3
3
  import { useListLabels, useExportLabels, useListSalesOrderShipments, useGetLabel } from '@shipengine/react-api';
4
4
  import { createLocalFileFromBlobResponse } from '../../../utilities/files.js';
5
5
  import { scopeTheme } from '../../../utilities/styles.js';
@@ -40,7 +40,7 @@ const useLabelsGrid = ({
40
40
  const theme = useTheme();
41
41
  const {
42
42
  getServiceName
43
- } = useGetServiceName();
43
+ } = useGetServiceData();
44
44
  const {
45
45
  page,
46
46
  pageSize,
@@ -1,6 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
2
+ import { useGetServiceData } from '../../hooks/use-get-service-data.js';
2
3
  import { useSortableQuery } from '../../hooks/use-sortable-query.js';
3
- import { EmptyState, Button, Tag, TagColor, TagVariant, Typography, Next } from '@shipengine/giger';
4
+ import { EmptyState, Button, Tag, TagColor, TagVariant, Skeleton, IconSize, Typography, Next } from '@shipengine/giger';
4
5
  import { toSnakeCase } from '../../utilities/formatString.js';
5
6
  import { useRef, useMemo, useEffect, useCallback } from 'react';
6
7
  import { useTranslation } from 'react-i18next';
@@ -19,6 +20,7 @@ import { useElements } from '../../elements-provider/elements-context-provider.j
19
20
  import { Spacer } from '../../components/spacer/spacer.js';
20
21
  import { PoweredByShipEngine } from '../../components/powered-by-shipengine/powered-by-shipengine.js';
21
22
  import { ErrorFallback } from '../../components/error-fallback/error-fallback.js';
23
+ import { CarrierIcon } from '../../components/carrier-icon/carrier-icon.js';
22
24
 
23
25
  const Component = ({
24
26
  labelStatus,
@@ -104,6 +106,10 @@ const Component = ({
104
106
  sortDir: sortState.dir,
105
107
  columns: columnsArray
106
108
  });
109
+ const {
110
+ getServiceInfo,
111
+ isLoadingCarriers
112
+ } = useGetServiceData();
107
113
  useEffect(() => {
108
114
  if (prevStatus.current !== labelStatus) {
109
115
  pageConfig.pagerProps.resetCurrentPage();
@@ -290,14 +296,22 @@ const Component = ({
290
296
  }
291
297
  },
292
298
  shippingService: {
293
- headerContent: t("list-labels:headers.shipping"),
299
+ headerContent: t("list-labels:headers.service"),
294
300
  renderCellContent: label => {
301
+ const serviceInfo = getServiceInfo(label);
295
302
  return jsxs(Fragment, {
296
- children: [jsx(Typography, {
297
- component: "p",
298
- css: styles.tableParagraph,
299
- variant: "body2",
300
- children: label.serviceName || label.serviceCode
303
+ children: [isLoadingCarriers ? jsx(Skeleton, {}) : jsxs("div", {
304
+ css: styles.serviceCell,
305
+ children: [serviceInfo.hasCarrierIcon && serviceInfo.carrierCode && jsx(CarrierIcon, {
306
+ carrierCode: serviceInfo.carrierCode,
307
+ carrierName: serviceInfo.serviceName || serviceInfo.carrierCode,
308
+ size: IconSize.SIZE_SMALL
309
+ }), jsx(Typography, {
310
+ component: "p",
311
+ css: styles.tableParagraph,
312
+ variant: "body2",
313
+ children: serviceInfo.serviceName || t("list-labels:none")
314
+ })]
301
315
  }), label.trackable && jsx(Next.Link, {
302
316
  bold: false,
303
317
  href: label.trackingUrl,
@@ -350,17 +364,23 @@ const Component = ({
350
364
  }
351
365
  }
352
366
  });
367
+ const labelExpired = label => {
368
+ const ninetyDaysAgo = new Date();
369
+ ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90);
370
+ return new Date(label.createdAt) < ninetyDaysAgo;
371
+ };
353
372
  // Actual actions are only allowed for completed labels
354
373
  if ((features === null || features === void 0 ? void 0 : features.showActions) && labels.some(label => label.status === "completed")) {
355
374
  cols.push({
356
375
  headerContent: "",
357
376
  renderCellContent: label => {
358
377
  var _a, _b;
378
+ const isLabelExpired = labelExpired(label);
359
379
  const isLabelDelivered = label.trackingStatus === "delivered";
360
- const isReprintAllowed = !!((_a = label.labelDownload) === null || _a === void 0 ? void 0 : _a.href) && label.status === "completed";
361
380
  const isVoidAllowed = !!onClickVoidLabel && label.status === "completed";
362
- const isPrintFormsAllowed = !!((_b = label.formDownload) === null || _b === void 0 ? void 0 : _b.href) && label.status === "completed";
363
381
  const isViewDetailsAllowed = !!onClickViewDetails;
382
+ const isReprintAllowed = !!((_a = label.labelDownload) === null || _a === void 0 ? void 0 : _a.href) && label.status === "completed" && !isLabelExpired;
383
+ const isPrintFormsAllowed = !!((_b = label.formDownload) === null || _b === void 0 ? void 0 : _b.href) && label.status === "completed" && !isLabelExpired;
364
384
  const allowActionsMenu = isReprintAllowed || isVoidAllowed || isPrintFormsAllowed || isViewDetailsAllowed;
365
385
  if (isLabelDelivered || !allowActionsMenu) {
366
386
  return null;
@@ -389,7 +409,7 @@ const Component = ({
389
409
  });
390
410
  }
391
411
  return cols;
392
- }, [t, toggleCreatedDateSort, sortState.createdAtDir, features === null || features === void 0 ? void 0 : features.columns, features === null || features === void 0 ? void 0 : features.showActions, labels, onClickExternalOrderId, onClickExternalShipmentId, onClickShipmentNumber, onClickTrackingNumber, onClickVoidLabel, onClickViewDetails, onClickPrintLabel, onClickPrintForms]);
412
+ }, [t, toggleCreatedDateSort, sortState.createdAtDir, features === null || features === void 0 ? void 0 : features.columns, features === null || features === void 0 ? void 0 : features.showActions, labels, onClickExternalOrderId, onClickExternalShipmentId, onClickShipmentNumber, getServiceInfo, isLoadingCarriers, onClickTrackingNumber, onClickVoidLabel, onClickViewDetails, onClickPrintLabel, onClickPrintForms]);
393
413
  const emptyContentComponent = useMemo(() => {
394
414
  if (isLoading) {
395
415
  return undefined;
@@ -6,6 +6,11 @@ const styles = createStyles({
6
6
  }, scopeTheme(theme).getComponentOverride("Table")),
7
7
  tableParagraph: {
8
8
  margin: 0
9
+ },
10
+ serviceCell: {
11
+ display: "flex",
12
+ alignItems: "center",
13
+ gap: "8px"
9
14
  }
10
15
  });
11
16
 
@@ -32,7 +32,6 @@ const RateView = ({
32
32
  rateOptions,
33
33
  rates,
34
34
  salesOrder,
35
- selectedRate,
36
35
  shipment,
37
36
  showVatFeatures
38
37
  }) => {
@@ -76,9 +75,8 @@ const RateView = ({
76
75
  }, [features === null || features === void 0 ? void 0 : features.enablePudoUI, pudoRateOptions, rateOptions]);
77
76
  const {
78
77
  collapsedRateOptionList,
79
- COLLAPSED_RATE_VIEW_LIMIT,
80
78
  filterVisibleRateOptions
81
- } = useFilterVisibleRateOptions(expandedRateOptionList);
79
+ } = useFilterVisibleRateOptions(expandedRateOptionList, features);
82
80
  const handleShowMoreRates = useCallback(() => {
83
81
  var _a;
84
82
  setShowHiddenRates === null || setShowHiddenRates === void 0 ? void 0 : setShowHiddenRates(!showHiddenRates);
@@ -197,8 +195,8 @@ const RateView = ({
197
195
  onClick: onSelectRate,
198
196
  onPaperlessAcknowledgementChange: onPaperlessAcknowledgementChange,
199
197
  onSelectServicePoint: onSelectServicePoint,
200
- options: showHiddenRates ? expandedRateOptionList : collapsedRateOptionList
201
- }, rateSelectCommonProps)), expandedRateOptionList.length > COLLAPSED_RATE_VIEW_LIMIT && jsx(LinkAction, {
198
+ options: showHiddenRates || !collapsedRateOptionList.length ? expandedRateOptionList : collapsedRateOptionList
199
+ }, rateSelectCommonProps)), expandedRateOptionList.length > collapsedRateOptionList.length && !!collapsedRateOptionList.length && jsx(LinkAction, {
202
200
  css: styles.showMoreOrLessRatesButton,
203
201
  icon: showHiddenRates ? "chevronTop" : "chevronBottom",
204
202
  iconPlacement: "right",
@@ -515,13 +515,15 @@ const ShipmentForm = ({
515
515
  useEffect(() => {
516
516
  hasShipFromAddressErrors && toggleIsEditShipFromAddressFormOpen();
517
517
  }, [hasShipFromAddressErrors, toggleIsEditShipFromAddressFormOpen]);
518
+ const warehouseToEdit = useMemo(() => warehouses === null || warehouses === void 0 ? void 0 : warehouses.find(w => w.warehouseId === editShipFromAddressId), [editShipFromAddressId, warehouses]);
518
519
  const [editWarehouseForm, isEditWarehouseFormOpen, toggleIsEditWarehouseFormOpen] = useNestedForm(WarehouseForm, {
519
520
  formId: "edit-warehouse-form",
520
521
  onSubmit: payload => __awaiter(void 0, void 0, void 0, function* () {
521
522
  editShipFromAddressId && (yield handleSubmitEditWarehouse(payload, editShipFromAddressId));
522
523
  }),
523
524
  submitButtonTitle: t("actions.save"),
524
- warehouse: warehouses === null || warehouses === void 0 ? void 0 : warehouses.find(w => w.warehouseId === editShipFromAddressId)
525
+ warehouse: warehouseToEdit,
526
+ shouldForceDefault: warehouseToEdit === null || warehouseToEdit === void 0 ? void 0 : warehouseToEdit.isDefault
525
527
  });
526
528
  const getFundingSourceInsuranceProviderKey = useCallback(provider => {
527
529
  if (provider === "parcelguard") {
@@ -1,7 +1,7 @@
1
1
  import { useMemo, useCallback } from 'react';
2
2
 
3
3
  const COLLAPSED_RATE_VIEW_LIMIT = 4;
4
- const filterRateOptions = rateOptions => {
4
+ const filterRateOptions = (rateOptions, showMediaMail) => {
5
5
  const hasRateAttributes = option => {
6
6
  var _a;
7
7
  return !!((_a = option.rateAttributes) === null || _a === void 0 ? void 0 : _a.length);
@@ -12,7 +12,7 @@ const filterRateOptions = rateOptions => {
12
12
  const ratesWithoutAttributes = [];
13
13
  // Classify rates (excluding Media Mail from both categories)
14
14
  for (const option of rateOptions) {
15
- if (isMediaMail(option)) {
15
+ if (!showMediaMail && isMediaMail(option)) {
16
16
  continue; // Skip Media Mail entirely - it will only show in "Show more"
17
17
  }
18
18
  if (hasRateAttributes(option)) {
@@ -40,9 +40,9 @@ const filterRateOptions = rateOptions => {
40
40
  * - Fill remaining slots with regular rates
41
41
  * - Media Mail is always excluded from the collapsed view
42
42
  */
43
- const useFilterVisibleRateOptions = rateOptions => {
44
- const collapsedRateOptionList = useMemo(() => filterRateOptions(rateOptions), [rateOptions]);
45
- const filterVisibleRateOptions = useCallback(options => filterRateOptions(options), []);
43
+ const useFilterVisibleRateOptions = (rateOptions, features) => {
44
+ const collapsedRateOptionList = useMemo(() => filterRateOptions(rateOptions, features === null || features === void 0 ? void 0 : features.showMediaMail), [rateOptions, features]);
45
+ const filterVisibleRateOptions = useCallback(options => filterRateOptions(options, features === null || features === void 0 ? void 0 : features.showMediaMail), [features]);
46
46
  return {
47
47
  COLLAPSED_RATE_VIEW_LIMIT,
48
48
  collapsedRateOptionList,
@@ -1,4 +1,4 @@
1
- import { useGetServiceName } from '../../../hooks/use-get-service-name.js';
1
+ import { useGetServiceData } from '../../../hooks/use-get-service-data.js';
2
2
  import { useListShipments, useExportShipments, useGetShipment } from '@shipengine/react-api';
3
3
  import { createLocalFileFromBlobResponse } from '../../../utilities/files.js';
4
4
  import { useState, useEffect, useMemo } from 'react';
@@ -28,7 +28,7 @@ const useShipmentsGrid = ({
28
28
  const initialFilters = getInitialFilters(showShipmentIdFilter, showCreatedDateFilter);
29
29
  const {
30
30
  getServiceName
31
- } = useGetServiceName();
31
+ } = useGetServiceData();
32
32
  const {
33
33
  page,
34
34
  pageSize,
@@ -1,7 +1,8 @@
1
1
  import { __awaiter } from '../../_virtual/_tslib.js';
2
2
  import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
3
+ import { useGetServiceData } from '../../hooks/use-get-service-data.js';
3
4
  import { useSortableQuery } from '../../hooks/use-sortable-query.js';
4
- import { EmptyState, Button, Typography, Tag, TagColor, TagVariant } from '@shipengine/giger';
5
+ import { EmptyState, Button, Typography, Skeleton, IconSize, Tag, TagColor, TagVariant } from '@shipengine/giger';
5
6
  import { useMemo } from 'react';
6
7
  import { useTranslation } from 'react-i18next';
7
8
  import { useShipmentsGrid } from './hooks/use-shipments-grid.js';
@@ -12,6 +13,7 @@ import en from '../../locales/en/index.js';
12
13
  import { createElement } from '../../create-element/create-element.js';
13
14
  import { useElements } from '../../elements-provider/elements-context-provider.js';
14
15
  import { ErrorState } from '../../components/error-state/error-state.js';
16
+ import { CarrierIcon } from '../../components/carrier-icon/carrier-icon.js';
15
17
  import { CellFormattedDate } from '../../components/grid-controller/cell-formatted-date.js';
16
18
  import { SortableHeader } from '../../components/grid-controller/sortable-header/sortable-header.js';
17
19
  import { GridController } from '../../components/grid-controller/grid-controller.js';
@@ -85,6 +87,10 @@ const Component = ({
85
87
  sortBy: sortState.by,
86
88
  sortDir: sortState.dir
87
89
  });
90
+ const {
91
+ getServiceInfo,
92
+ isLoadingCarriers
93
+ } = useGetServiceData();
88
94
  const onRowClick = shipment => __awaiter(void 0, void 0, void 0, function* () {
89
95
  setActiveShipmentId(shipment.shipmentId);
90
96
  yield onRowClickProp === null || onRowClickProp === void 0 ? void 0 : onRowClickProp(shipment);
@@ -188,13 +194,21 @@ const Component = ({
188
194
  }) : "--";
189
195
  }
190
196
  }, {
191
- headerContent: t("list-shipments:headers.shipping"),
197
+ headerContent: t("list-shipments:headers.service"),
192
198
  renderCellContent: shipment => {
193
- return jsx(Typography, {
194
- component: "p",
195
- css: styles.tableParagraph,
196
- variant: "body2",
197
- children: shipment.serviceName || t("list-shipments:none")
199
+ const serviceInfo = getServiceInfo(shipment);
200
+ return isLoadingCarriers ? jsx(Skeleton, {}) : jsxs("div", {
201
+ css: styles.serviceCell,
202
+ children: [serviceInfo.hasCarrierIcon && serviceInfo.carrierCode && jsx(CarrierIcon, {
203
+ carrierCode: serviceInfo.carrierCode,
204
+ carrierName: serviceInfo.serviceName || serviceInfo.carrierCode,
205
+ size: IconSize.SIZE_SMALL
206
+ }), jsx(Typography, {
207
+ component: "p",
208
+ css: styles.tableParagraph,
209
+ variant: "body2",
210
+ children: serviceInfo.serviceName || t("list-shipments:none")
211
+ })]
198
212
  });
199
213
  }
200
214
  }, {
@@ -6,6 +6,11 @@ const styles = createStyles({
6
6
  }, scopeTheme(theme).getComponentOverride("Table")),
7
7
  tableParagraph: {
8
8
  margin: 0
9
+ },
10
+ serviceCell: {
11
+ display: "flex",
12
+ alignItems: "center",
13
+ gap: "8px"
9
14
  }
10
15
  });
11
16
 
@@ -105,6 +105,7 @@ const ManageWarehouses = ({
105
105
  yield handleSubmitAddNewWarehouse(payload);
106
106
  toggleShowAddNewWarehouseForm(false);
107
107
  }),
108
+ shouldForceDefault: !(warehouses === null || warehouses === void 0 ? void 0 : warehouses.length),
108
109
  submitButtonTitle: t("actions.save")
109
110
  })
110
111
  }) : jsx(ButtonGroup, {
@@ -139,17 +140,20 @@ const ManageWarehouses = ({
139
140
  yield handleSubmitEditWarehouse(Object.assign(Object.assign({}, rest), warehouseData), warehouse.warehouseId);
140
141
  setEditWarehouseId(undefined);
141
142
  }),
142
- children: jsx(WarehouseForm, {
143
- onCancel: () => setEditWarehouseId(undefined),
144
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
145
- onDelete: warehouse.isDefault ? undefined : () => handleDeleteWarehouse(warehouse.warehouseId),
143
+ children: jsx(WarehouseForm
144
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
145
+ , {
146
146
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
147
147
  onSubmit: payload => __awaiter(void 0, void 0, void 0, function* () {
148
148
  yield handleSubmitEditWarehouse(payload, warehouse.warehouseId);
149
149
  setEditWarehouseId(undefined);
150
150
  }),
151
+ shouldForceDefault: warehouse.isDefault,
151
152
  submitButtonTitle: t("actions.save"),
152
- warehouse: warehouse
153
+ warehouse: warehouse,
154
+ onCancel: () => setEditWarehouseId(undefined),
155
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
156
+ onDelete: warehouse.isDefault ? undefined : () => handleDeleteWarehouse(warehouse.warehouseId)
153
157
  })
154
158
  }, warehouse.warehouseId);
155
159
  } else {
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from '../../_virtual/_tslib.js';
2
- import { jsxs, Fragment, jsx } from '@emotion/react/jsx-runtime';
2
+ import { jsxs, jsx, Fragment } from '@emotion/react/jsx-runtime';
3
+ import { AuctanePaySessionProvider } from '../../contexts/auctane-pay-session-context.js';
3
4
  import { useToggle } from '../../hooks/use-toggle.js';
4
5
  import { InlineNotification, NotificationType } from '@shipengine/giger';
5
6
  import { useUpdateFundingSource, useListFundingSources } from '@shipengine/react-api';
@@ -41,13 +42,13 @@ const PaymentMethodSettings = ({
41
42
  fundingSourceId,
42
43
  billingInfo
43
44
  } = (_a = fundingSources === null || fundingSources === void 0 ? void 0 : fundingSources[0]) !== null && _a !== void 0 ? _a : {};
44
- const handleUpdateBilling = (billingInfo, creditCardInfo) => __awaiter(void 0, void 0, void 0, function* () {
45
+ const handleUpdateBilling = (billingInfo, auctanePayInfo) => __awaiter(void 0, void 0, void 0, function* () {
45
46
  if (fundingSourceId) {
46
47
  try {
47
48
  setIsUpdatingBilling(true);
48
49
  yield updateBilling({
49
50
  billingInfo,
50
- creditCardInfo,
51
+ auctanePayInfo,
51
52
  fundingSourceId
52
53
  });
53
54
  yield refetchFundingSources();
@@ -60,7 +61,7 @@ const PaymentMethodSettings = ({
60
61
  }
61
62
  }
62
63
  });
63
- if (showEditBilling) return jsxs(Fragment, {
64
+ if (showEditBilling) return jsxs(AuctanePaySessionProvider, {
64
65
  children: [jsx(EditBillingForm, {
65
66
  billingInfo: billingInfo,
66
67
  isLoading: isUpdatingBilling,