@shipengine/elements 2.24.1 → 2.26.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 (300) hide show
  1. package/README.md +187 -6
  2. package/dist/cjs/components/display-term/display-term.cjs +13 -4
  3. package/dist/cjs/components/field/credit-card-input/credit-card-input.cjs +46 -29
  4. package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +29 -5
  5. package/dist/cjs/components/field/rate-select/rate-card/rate-card.styles.cjs +8 -3
  6. package/dist/cjs/components/field/rate-select/rate-select.cjs +26 -5
  7. package/dist/cjs/components/forms/address-form/address-form-schema.cjs +3 -3
  8. package/dist/cjs/components/forms/edit-billing-form/edit-billing-form.cjs +57 -4
  9. package/dist/cjs/components/grid-controller/error-banner/error-banner.cjs +74 -0
  10. package/dist/cjs/components/{error-display/error-display.styles.cjs → grid-controller/error-banner/error-banner.styles.cjs} +8 -4
  11. package/dist/cjs/components/grid-controller/error-banner/index.cjs +7 -0
  12. package/dist/cjs/components/grid-controller/grid-controller.cjs +49 -3
  13. package/dist/cjs/components/grid-controller/grid-controller.styles.cjs +11 -1
  14. package/dist/cjs/components/history/history-card/history-card.cjs +1 -1
  15. package/dist/cjs/components/history/history-card-extension/history-card-extension.cjs +0 -1
  16. package/dist/cjs/components/service-card/service-card.cjs +4 -4
  17. package/dist/cjs/components/service-card/service-card.styles.cjs +5 -2
  18. package/dist/cjs/components/service-point-display/service-point-display.cjs +1 -36
  19. package/dist/cjs/components/service-point-display/service-point-display.styles.cjs +0 -12
  20. package/dist/cjs/components/shipment-not-found-error/index.cjs +7 -0
  21. package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.cjs +40 -0
  22. package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.styles.cjs +24 -0
  23. package/dist/cjs/components/suspend-purchase/suspend-purchase.cjs +11 -3
  24. package/dist/cjs/components/ups-terms-disclosure/index.cjs +7 -0
  25. package/dist/cjs/components/ups-terms-disclosure/ups-terms-disclosure.cjs +35 -0
  26. package/dist/cjs/elements/labels-grid/hooks/use-labels-grid.cjs +45 -5
  27. package/dist/cjs/elements/labels-grid/labels-grid.cjs +24 -6
  28. package/dist/cjs/elements/purchase-label/components/rate-form/rate-form.cjs +13 -3
  29. package/dist/cjs/elements/purchase-label/components/rate-form/rate-schema.cjs +7 -2
  30. package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +2 -0
  31. package/dist/cjs/elements/purchase-label/hooks/use-rate-options.cjs +31 -2
  32. package/dist/cjs/elements/purchase-label/hooks/use-rates-form.cjs +14 -18
  33. package/dist/cjs/elements/purchase-label/hooks/use-request-rates.cjs +20 -20
  34. package/dist/cjs/elements/purchase-label/purchase-label.cjs +4 -1
  35. package/dist/cjs/elements/shipment-summary/components/label-display/label-card.cjs +16 -31
  36. package/dist/cjs/elements/shipment-summary/components/label-display/label-card.styles.cjs +0 -19
  37. package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.cjs +54 -0
  38. package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.styles.cjs +27 -0
  39. package/dist/cjs/elements/shipments-grid/hooks/use-shipments-grid.cjs +41 -3
  40. package/dist/cjs/elements/shipments-grid/shipments-grid.cjs +18 -3
  41. package/dist/cjs/features/manage-carriers/hooks/use-list-funding-source-carriers.cjs +9 -10
  42. package/dist/cjs/features/manage-carriers/manage-carriers-row/manage-carriers-row.cjs +6 -1
  43. package/dist/cjs/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.cjs +3 -3
  44. package/dist/cjs/features/payment-method-settings/payment-method-settings.cjs +56 -18
  45. package/dist/cjs/hooks/use-configure-shipment.cjs +32 -11
  46. package/dist/cjs/hooks/use-helpers.cjs +4 -1
  47. package/dist/cjs/index.cjs +15 -12
  48. package/dist/cjs/locales/en/account-settings.json.cjs +6 -0
  49. package/dist/cjs/locales/en/common.json.cjs +2 -0
  50. package/dist/cjs/locales/en/grid-controller.json.cjs +13 -0
  51. package/dist/cjs/locales/en/index.cjs +2 -1
  52. package/dist/cjs/locales/en/onboarding.json.cjs +5 -0
  53. package/dist/cjs/locales/en/purchase-label.json.cjs +5 -3
  54. package/dist/cjs/package.json.cjs +1 -1
  55. package/dist/cjs/utilities/address.cjs +29 -0
  56. package/dist/cjs/utilities/files.cjs +35 -0
  57. package/dist/cjs/utilities/formatString.cjs +9 -0
  58. package/dist/cjs/utilities/index.cjs +5 -0
  59. package/dist/cjs/utilities/money.cjs +14 -0
  60. package/dist/cjs/utilities/rate-warning-messages.cjs +25 -0
  61. package/dist/cjs/utilities/shipengine/warehouses.cjs +2 -1
  62. package/dist/cjs/workflows/connect-external-carrier/connect-external-carrier.cjs +7 -3
  63. package/dist/cjs/workflows/label-workflow/label-workflow.cjs +11 -3
  64. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.cjs +1 -1
  65. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +17 -1
  66. package/dist/cjs/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.cjs +4 -1
  67. package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs +18 -11
  68. package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.cjs +0 -3
  69. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs +36 -12
  70. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.cjs +10 -4
  71. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs +12 -12
  72. package/dist/esm/components/display-term/display-term.js +14 -5
  73. package/dist/esm/components/field/credit-card-input/credit-card-input.js +47 -30
  74. package/dist/esm/components/field/rate-select/rate-card/rate-card.js +30 -6
  75. package/dist/esm/components/field/rate-select/rate-card/rate-card.styles.js +8 -3
  76. package/dist/esm/components/field/rate-select/rate-select.js +26 -5
  77. package/dist/esm/components/forms/address-form/address-form-schema.js +3 -3
  78. package/dist/esm/components/forms/edit-billing-form/edit-billing-form.js +58 -5
  79. package/dist/esm/components/grid-controller/error-banner/error-banner.js +72 -0
  80. package/dist/esm/components/{error-display/error-display.styles.js → grid-controller/error-banner/error-banner.styles.js} +8 -4
  81. package/dist/esm/components/grid-controller/error-banner/index.js +1 -0
  82. package/dist/esm/components/grid-controller/grid-controller.js +51 -5
  83. package/dist/esm/components/grid-controller/grid-controller.styles.js +11 -1
  84. package/dist/esm/components/history/history-card/history-card.js +1 -1
  85. package/dist/esm/components/history/history-card-extension/history-card-extension.js +0 -1
  86. package/dist/esm/components/service-card/service-card.js +4 -4
  87. package/dist/esm/components/service-card/service-card.styles.js +5 -2
  88. package/dist/esm/components/service-point-display/service-point-display.js +2 -37
  89. package/dist/esm/components/service-point-display/service-point-display.styles.js +0 -12
  90. package/dist/esm/components/shipment-not-found-error/index.js +1 -0
  91. package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.js +38 -0
  92. package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.styles.js +22 -0
  93. package/dist/esm/components/suspend-purchase/suspend-purchase.js +11 -3
  94. package/dist/esm/components/ups-terms-disclosure/index.js +1 -0
  95. package/dist/esm/components/ups-terms-disclosure/ups-terms-disclosure.js +33 -0
  96. package/dist/esm/elements/labels-grid/hooks/use-labels-grid.js +46 -6
  97. package/dist/esm/elements/labels-grid/labels-grid.js +24 -6
  98. package/dist/esm/elements/purchase-label/components/rate-form/rate-form.js +14 -4
  99. package/dist/esm/elements/purchase-label/components/rate-form/rate-schema.js +7 -2
  100. package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +2 -0
  101. package/dist/esm/elements/purchase-label/hooks/use-rate-options.js +31 -2
  102. package/dist/esm/elements/purchase-label/hooks/use-rates-form.js +14 -18
  103. package/dist/esm/elements/purchase-label/hooks/use-request-rates.js +20 -20
  104. package/dist/esm/elements/purchase-label/purchase-label.js +4 -1
  105. package/dist/esm/elements/shipment-summary/components/label-display/label-card.js +18 -33
  106. package/dist/esm/elements/shipment-summary/components/label-display/label-card.styles.js +0 -19
  107. package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.js +52 -0
  108. package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.styles.js +25 -0
  109. package/dist/esm/elements/shipments-grid/hooks/use-shipments-grid.js +42 -4
  110. package/dist/esm/elements/shipments-grid/shipments-grid.js +18 -3
  111. package/dist/esm/features/manage-carriers/hooks/use-list-funding-source-carriers.js +9 -10
  112. package/dist/esm/features/manage-carriers/manage-carriers-row/manage-carriers-row.js +7 -2
  113. package/dist/esm/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.js +3 -3
  114. package/dist/esm/features/payment-method-settings/payment-method-settings.js +57 -19
  115. package/dist/esm/hooks/use-configure-shipment.js +33 -12
  116. package/dist/esm/hooks/use-helpers.js +4 -1
  117. package/dist/esm/index.js +1 -0
  118. package/dist/esm/locales/en/account-settings.json.js +6 -0
  119. package/dist/esm/locales/en/common.json.js +2 -0
  120. package/dist/esm/locales/en/grid-controller.json.js +11 -0
  121. package/dist/esm/locales/en/index.js +2 -1
  122. package/dist/esm/locales/en/onboarding.json.js +5 -0
  123. package/dist/esm/locales/en/purchase-label.json.js +5 -3
  124. package/dist/esm/package.json.js +1 -1
  125. package/dist/esm/utilities/address.js +26 -0
  126. package/dist/esm/utilities/files.js +32 -0
  127. package/dist/esm/utilities/formatString.js +9 -1
  128. package/dist/esm/utilities/index.js +2 -0
  129. package/dist/esm/utilities/money.js +14 -1
  130. package/dist/esm/utilities/rate-warning-messages.js +23 -0
  131. package/dist/esm/utilities/shipengine/warehouses.js +2 -1
  132. package/dist/esm/workflows/connect-external-carrier/connect-external-carrier.js +7 -3
  133. package/dist/esm/workflows/label-workflow/label-workflow.js +11 -3
  134. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.js +1 -1
  135. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +17 -1
  136. package/dist/esm/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.js +4 -1
  137. package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.js +18 -11
  138. package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.js +0 -3
  139. package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.js +37 -13
  140. package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.js +10 -4
  141. package/dist/esm/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.js +12 -12
  142. package/dist/types/components/display-term/display-term.d.ts +3 -3
  143. package/dist/types/components/display-term/display-term.d.ts.map +1 -1
  144. package/dist/types/components/field/credit-card-input/credit-card-input.d.ts.map +1 -1
  145. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts +4 -2
  146. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts.map +1 -1
  147. package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts +7 -2
  148. package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts.map +1 -1
  149. package/dist/types/components/field/rate-select/rate-select.d.ts +1 -0
  150. package/dist/types/components/field/rate-select/rate-select.d.ts.map +1 -1
  151. package/dist/types/components/forms/address-form/address-form-schema.d.ts.map +1 -1
  152. package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts +2 -1
  153. package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts.map +1 -1
  154. package/dist/types/components/grid-controller/error-banner/error-banner.d.ts +10 -0
  155. package/dist/types/components/grid-controller/error-banner/error-banner.d.ts.map +1 -0
  156. package/dist/types/components/grid-controller/error-banner/error-banner.styles.d.ts +24 -0
  157. package/dist/types/components/grid-controller/error-banner/error-banner.styles.d.ts.map +1 -0
  158. package/dist/types/components/grid-controller/error-banner/index.d.ts +2 -0
  159. package/dist/types/components/grid-controller/error-banner/index.d.ts.map +1 -0
  160. package/dist/types/components/grid-controller/grid-controller.d.ts +8 -1
  161. package/dist/types/components/grid-controller/grid-controller.d.ts.map +1 -1
  162. package/dist/types/components/grid-controller/grid-controller.styles.d.ts +10 -0
  163. package/dist/types/components/grid-controller/grid-controller.styles.d.ts.map +1 -1
  164. package/dist/types/components/history/history-card-extension/history-card-extension.d.ts.map +1 -1
  165. package/dist/types/components/service-card/service-card.d.ts +1 -1
  166. package/dist/types/components/service-card/service-card.d.ts.map +1 -1
  167. package/dist/types/components/service-card/service-card.styles.d.ts +4 -1
  168. package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
  169. package/dist/types/components/service-point-display/service-point-display.d.ts.map +1 -1
  170. package/dist/types/components/service-point-display/service-point-display.styles.d.ts +0 -12
  171. package/dist/types/components/service-point-display/service-point-display.styles.d.ts.map +1 -1
  172. package/dist/types/components/shipment-not-found-error/index.d.ts +2 -0
  173. package/dist/types/components/shipment-not-found-error/index.d.ts.map +1 -0
  174. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts +6 -0
  175. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts.map +1 -0
  176. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts +19 -0
  177. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts.map +1 -0
  178. package/dist/types/components/suspend-purchase/suspend-purchase.d.ts +4 -2
  179. package/dist/types/components/suspend-purchase/suspend-purchase.d.ts.map +1 -1
  180. package/dist/types/components/ups-terms-disclosure/index.d.ts +2 -0
  181. package/dist/types/components/ups-terms-disclosure/index.d.ts.map +1 -0
  182. package/dist/types/components/ups-terms-disclosure/ups-terms-disclosure.d.ts +2 -0
  183. package/dist/types/components/ups-terms-disclosure/ups-terms-disclosure.d.ts.map +1 -0
  184. package/dist/types/elements/labels-grid/hooks/use-labels-grid.d.ts +7 -2
  185. package/dist/types/elements/labels-grid/hooks/use-labels-grid.d.ts.map +1 -1
  186. package/dist/types/elements/labels-grid/labels-grid.d.ts +29 -3
  187. package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
  188. package/dist/types/elements/manage-carriers/manage-carriers.d.ts +23 -1
  189. package/dist/types/elements/manage-carriers/manage-carriers.d.ts.map +1 -1
  190. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts +23 -1
  191. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts.map +1 -1
  192. package/dist/types/elements/manage-funding/manage-funding-element.d.ts +23 -1
  193. package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
  194. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +23 -1
  195. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts.map +1 -1
  196. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts +23 -1
  197. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
  198. package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts +1 -1
  199. package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts.map +1 -1
  200. package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts +10 -1
  201. package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts.map +1 -1
  202. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +2 -1
  203. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
  204. package/dist/types/elements/purchase-label/hooks/use-rate-options.d.ts.map +1 -1
  205. package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts +2 -2
  206. package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts.map +1 -1
  207. package/dist/types/elements/purchase-label/hooks/use-request-rates.d.ts.map +1 -1
  208. package/dist/types/elements/purchase-label/purchase-label.d.ts +23 -1
  209. package/dist/types/elements/purchase-label/purchase-label.d.ts.map +1 -1
  210. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts +23 -1
  211. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
  212. package/dist/types/elements/shipment-summary/components/label-display/label-card.d.ts.map +1 -1
  213. package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts +0 -19
  214. package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts.map +1 -1
  215. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts +8 -0
  216. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts.map +1 -0
  217. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts +22 -0
  218. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts.map +1 -0
  219. package/dist/types/elements/shipment-summary/shipment-summary.d.ts +23 -1
  220. package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
  221. package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts +6 -1
  222. package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts.map +1 -1
  223. package/dist/types/elements/shipments-grid/shipments-grid.d.ts +32 -2
  224. package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
  225. package/dist/types/elements/theme-creator/theme-creator.d.ts +23 -1
  226. package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
  227. package/dist/types/elements/transaction-history/transaction-history-element.d.ts +23 -1
  228. package/dist/types/elements/transaction-history/transaction-history-element.d.ts.map +1 -1
  229. package/dist/types/elements/unit-settings/unit-settings-element.d.ts +23 -1
  230. package/dist/types/elements/unit-settings/unit-settings-element.d.ts.map +1 -1
  231. package/dist/types/elements/vat-settings/vat-settings-element.d.ts +23 -1
  232. package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
  233. package/dist/types/elements/void-label/void-label.d.ts +23 -1
  234. package/dist/types/elements/void-label/void-label.d.ts.map +1 -1
  235. package/dist/types/features/manage-carriers/hooks/use-list-funding-source-carriers.d.ts.map +1 -1
  236. package/dist/types/features/manage-carriers/manage-carriers-row/manage-carriers-row.d.ts.map +1 -1
  237. package/dist/types/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.d.ts +3 -2
  238. package/dist/types/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.d.ts.map +1 -1
  239. package/dist/types/features/payment-method-settings/payment-method-settings.d.ts.map +1 -1
  240. package/dist/types/hooks/use-configure-shipment.d.ts +1 -0
  241. package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
  242. package/dist/types/hooks/use-helpers.d.ts +2 -0
  243. package/dist/types/hooks/use-helpers.d.ts.map +1 -1
  244. package/dist/types/index.d.ts +1 -1
  245. package/dist/types/index.d.ts.map +1 -1
  246. package/dist/types/locales/en/index.d.ts +23 -1
  247. package/dist/types/locales/en/index.d.ts.map +1 -1
  248. package/dist/types/types/index.d.ts +5 -4
  249. package/dist/types/types/index.d.ts.map +1 -1
  250. package/dist/types/types/rates.d.ts +1 -0
  251. package/dist/types/types/rates.d.ts.map +1 -1
  252. package/dist/types/types/terms-with-disclosure.d.ts +7 -0
  253. package/dist/types/types/terms-with-disclosure.d.ts.map +1 -0
  254. package/dist/types/utilities/address.d.ts +21 -0
  255. package/dist/types/utilities/address.d.ts.map +1 -0
  256. package/dist/types/utilities/feature-flags/types.d.ts +5 -1
  257. package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
  258. package/dist/types/utilities/files.d.ts +12 -0
  259. package/dist/types/utilities/files.d.ts.map +1 -0
  260. package/dist/types/utilities/formatString.d.ts +8 -0
  261. package/dist/types/utilities/formatString.d.ts.map +1 -1
  262. package/dist/types/utilities/index.d.ts +2 -0
  263. package/dist/types/utilities/index.d.ts.map +1 -1
  264. package/dist/types/utilities/money.d.ts +6 -0
  265. package/dist/types/utilities/money.d.ts.map +1 -1
  266. package/dist/types/utilities/rate-warning-messages.d.ts +15 -0
  267. package/dist/types/utilities/rate-warning-messages.d.ts.map +1 -0
  268. package/dist/types/workflows/account-settings/account-settings.d.ts +23 -1
  269. package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
  270. package/dist/types/workflows/carrier-services/carrier-services.d.ts +23 -1
  271. package/dist/types/workflows/carrier-services/carrier-services.d.ts.map +1 -1
  272. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts +23 -1
  273. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts.map +1 -1
  274. package/dist/types/workflows/label-workflow/label-workflow.d.ts +23 -1
  275. package/dist/types/workflows/label-workflow/label-workflow.d.ts.map +1 -1
  276. package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.d.ts.map +1 -1
  277. package/dist/types/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.d.ts.map +1 -1
  278. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts +4 -2
  279. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts.map +1 -1
  280. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.d.ts +0 -3
  281. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.d.ts.map +1 -1
  282. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts +3 -1
  283. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts.map +1 -1
  284. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.d.ts +8 -2
  285. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.d.ts.map +1 -1
  286. package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts +1 -0
  287. package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts.map +1 -1
  288. package/dist/types/workflows/onboarding/onboarding.d.ts +23 -1
  289. package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
  290. package/package.json +3 -3
  291. package/dist/cjs/components/error-display/error-display.cjs +0 -34
  292. package/dist/cjs/components/error-display/index.cjs +0 -7
  293. package/dist/esm/components/error-display/error-display.js +0 -32
  294. package/dist/esm/components/error-display/index.js +0 -1
  295. package/dist/types/components/error-display/error-display.d.ts +0 -7
  296. package/dist/types/components/error-display/error-display.d.ts.map +0 -1
  297. package/dist/types/components/error-display/error-display.styles.d.ts +0 -20
  298. package/dist/types/components/error-display/error-display.styles.d.ts.map +0 -1
  299. package/dist/types/components/error-display/index.d.ts +0 -2
  300. package/dist/types/components/error-display/index.d.ts.map +0 -1
@@ -0,0 +1,52 @@
1
+ import { jsxs, jsx, Fragment } from '@emotion/react/jsx-runtime';
2
+ import { Next, ButtonVariant, Icon, IconSize, Typography } from '@shipengine/giger';
3
+ import { IconNames } from '@shipengine/giger-theme';
4
+ import { useTranslation } from 'react-i18next';
5
+ import { styles } from './paperless-label-display.styles.js';
6
+ import { Spacer } from '../../../../components/spacer/spacer.js';
7
+
8
+ const PaperlessLabelDisplay = ({
9
+ handoffCode,
10
+ href,
11
+ instructions
12
+ }) => {
13
+ const {
14
+ t
15
+ } = useTranslation();
16
+ return jsxs("div", {
17
+ css: styles.paperlessDownloadwrapper,
18
+ children: [jsxs("div", {
19
+ css: styles.codewrapper,
20
+ children: [jsx("img", {
21
+ alt: "paperless code",
22
+ css: styles.codeImage,
23
+ src: href
24
+ }), handoffCode && jsx("div", {
25
+ css: styles.handoffCode,
26
+ children: handoffCode
27
+ }), jsxs(Next.Link, {
28
+ buttonProps: {
29
+ variant: ButtonVariant.OUTLINED
30
+ },
31
+ css: styles.button,
32
+ download: true,
33
+ href: href,
34
+ isButton: true,
35
+ children: [jsx(Icon, {
36
+ name: IconNames.PRINTER,
37
+ size: IconSize.SIZE_SMALL
38
+ }), jsx("span", {
39
+ children: t("view-shipment:actions.download")
40
+ })]
41
+ })]
42
+ }), instructions && jsxs(Fragment, {
43
+ children: [jsx(Spacer, {
44
+ multiplier: 2
45
+ }), " ", jsx(Typography, {
46
+ children: instructions
47
+ })]
48
+ })]
49
+ });
50
+ };
51
+
52
+ export { PaperlessLabelDisplay };
@@ -0,0 +1,25 @@
1
+ import { createStyles, scopeTheme } from '../../../../utilities/styles.js';
2
+
3
+ const styles = createStyles({
4
+ button: () => ({
5
+ cursor: "pointer"
6
+ }),
7
+ codeImage: () => ({
8
+ height: "120px",
9
+ maxWidth: "200px",
10
+ width: "auto"
11
+ }),
12
+ codewrapper: () => ({
13
+ alignItems: "center",
14
+ display: "flex",
15
+ flexDirection: "column"
16
+ }),
17
+ handoffCode: theme => ({
18
+ margin: `${scopeTheme(theme).spacing(2)}px 0`
19
+ }),
20
+ paperlessDownloadwrapper: theme => ({
21
+ padding: scopeTheme(theme).spacing(2)
22
+ })
23
+ });
24
+
25
+ export { styles };
@@ -1,5 +1,6 @@
1
1
  import { useGetServiceName } from '../../../hooks/use-get-service-name.js';
2
- import { useListShipments, useGetShipment } from '@shipengine/react-api';
2
+ import { useListShipments, useExportShipments, useGetShipment } from '@shipengine/react-api';
3
+ import { createLocalFileFromBlobResponse } from '../../../utilities/files.js';
3
4
  import { useState, useEffect, useMemo } from 'react';
4
5
  import { getCreatedDateFilterValue, filterDateAndShipmentDateIsSameOrWithinInterval } from '../utils/created-date-value.js';
5
6
  import { usePager } from '../../../components/pager/usePager.js';
@@ -20,9 +21,10 @@ const useShipmentsGrid = ({
20
21
  showShipmentIdFilter = true,
21
22
  showCreatedDateFilter = true,
22
23
  sortBy,
23
- sortDir
24
+ sortDir,
25
+ columns
24
26
  }) => {
25
- var _a, _b, _c, _d;
27
+ var _a, _b, _c, _d, _e, _f, _g, _h;
26
28
  const initialFilters = getInitialFilters(showShipmentIdFilter, showCreatedDateFilter);
27
29
  const {
28
30
  getServiceName
@@ -33,6 +35,7 @@ const useShipmentsGrid = ({
33
35
  pagerProps
34
36
  } = usePager(PAGE_SIZE);
35
37
  const [activeShipmentId, setActiveShipmentId] = useState();
38
+ const [enabled, setEnabled] = useState(false);
36
39
  const [filters, setFilters] = useState(initialFilters);
37
40
  const clearAllFilters = () => {
38
41
  setFilters(initialFilters);
@@ -64,6 +67,37 @@ const useShipmentsGrid = ({
64
67
  sortBy: sortBy,
65
68
  sortDir: sortDir
66
69
  }, getCreatedDateFilterValue((_b = (_a = filters.createdDate) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.start, (_d = (_c = filters.createdDate) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.end)));
70
+ const {
71
+ data: exportShipmentsData,
72
+ isInitialLoading: isExportShipmentsinitialLoading,
73
+ isRefetching,
74
+ isError: isExportShipmentsError
75
+ } = useExportShipments({
76
+ enabled,
77
+ queryFnParams: Object.assign({
78
+ shipmentId: filters.shipmentId.value || undefined,
79
+ sortDir: sortDir !== null && sortDir !== void 0 ? sortDir : "desc",
80
+ columns
81
+ }, getCreatedDateFilterValue((_f = (_e = filters.createdDate) === null || _e === void 0 ? void 0 : _e.value) === null || _f === void 0 ? void 0 : _f.start, (_h = (_g = filters.createdDate) === null || _g === void 0 ? void 0 : _g.value) === null || _h === void 0 ? void 0 : _h.end))
82
+ });
83
+ useEffect(() => {
84
+ if (exportShipmentsData && !isExportShipmentsinitialLoading && !isRefetching) {
85
+ createLocalFileFromBlobResponse("shipment", exportShipmentsData);
86
+ setEnabled(false);
87
+ }
88
+ }, [isExportShipmentsinitialLoading, isRefetching, exportShipmentsData]);
89
+ // This function will be called when the error display duration ends
90
+ const onExportErrorDurationEnd = () => {
91
+ setEnabled(false);
92
+ };
93
+ const onClickDownloadShipmentsCSV = () => {
94
+ if (exportShipmentsData) {
95
+ createLocalFileFromBlobResponse("shipment", exportShipmentsData);
96
+ setEnabled(false);
97
+ } else {
98
+ setEnabled(true);
99
+ }
100
+ };
67
101
  const shipments = useMemo(() => data === null || data === void 0 ? void 0 : data.shipments.map(shipment => Object.assign(Object.assign({}, shipment), {
68
102
  disableOnRowClick: shipment.shipmentStatus === "cancelled",
69
103
  isLoading: activeShipmentId === shipment.shipmentId,
@@ -120,12 +154,15 @@ const useShipmentsGrid = ({
120
154
  return [];
121
155
  };
122
156
  return {
157
+ onClickDownloadShipmentsCSV,
123
158
  clearAllFilters,
124
159
  filters,
125
160
  getGridData,
126
161
  isAnyFilterActive,
162
+ isExportShipmentsError,
127
163
  isError,
128
164
  isLoading: isLoadingShipments || isLoadingShipment,
165
+ onExportErrorDurationEnd,
129
166
  pageConfig: {
130
167
  currentPage: shipmentFilteredById ? 1 : (data === null || data === void 0 ? void 0 : data.page) || 0,
131
168
  pagerProps,
@@ -137,7 +174,8 @@ const useShipmentsGrid = ({
137
174
  setActiveShipmentId,
138
175
  setFilters: onSetFilters,
139
176
  shipments,
140
- shouldShowFilters: isAnyFilterEnabled
177
+ shouldShowFilters: isAnyFilterEnabled,
178
+ isExportShipmentsLoading: isExportShipmentsinitialLoading || isRefetching
141
179
  };
142
180
  };
143
181
 
@@ -46,7 +46,9 @@ const Component = ({
46
46
  onClickCancelShipment,
47
47
  shipmentStatus,
48
48
  showShipmentIdFilter = true,
49
- showCreatedDateFilter = true
49
+ showCreatedDateFilter = true,
50
+ onShipmentsCSVExportClick,
51
+ showExportCSVButton = false
50
52
  }) => {
51
53
  const {
52
54
  globalFeatures
@@ -71,7 +73,11 @@ const Component = ({
71
73
  isAnyFilterActive,
72
74
  shouldShowFilters,
73
75
  clearAllFilters,
74
- setActiveShipmentId
76
+ setActiveShipmentId,
77
+ onClickDownloadShipmentsCSV,
78
+ isExportShipmentsError,
79
+ isExportShipmentsLoading,
80
+ onExportErrorDurationEnd
75
81
  } = useShipmentsGrid({
76
82
  shipmentStatus,
77
83
  showCreatedDateFilter,
@@ -254,8 +260,17 @@ const Component = ({
254
260
  showPagination: pageConfig.showPagination,
255
261
  total: pageConfig.totalElements
256
262
  }),
263
+ hasExportCSVError: isExportShipmentsError,
264
+ isExportCSVLoading: isExportShipmentsLoading,
257
265
  isLoading: isLoading,
258
- onRowClick: onRowClick
266
+ onClickExportCSV: () => {
267
+ onClickDownloadShipmentsCSV();
268
+ onShipmentsCSVExportClick === null || onShipmentsCSVExportClick === void 0 ? void 0 : onShipmentsCSVExportClick();
269
+ },
270
+ onExportErrorDurationEnd: onExportErrorDurationEnd,
271
+ onRowClick: onRowClick,
272
+ showExportCSV: showExportCSVButton,
273
+ totalAmountGridItems: pageConfig.totalElements
259
274
  }), globalFeatures.poweredByShipEngine && jsxs(Fragment, {
260
275
  children: [jsx(Spacer, {}), jsx(PoweredByShipEngine, {})]
261
276
  })]
@@ -43,22 +43,21 @@ const useListFundingSourceCarriers = () => {
43
43
  }, getInsuranceProviderWithFriendlyName(t.termType));
44
44
  });
45
45
  }, [optionalTerms, insuranceProviderAcceptedTerms]);
46
- const normalizeConnectedCarrierCodes = new Set(connectedCarriers === null || connectedCarriers === void 0 ? void 0 : connectedCarriers.map(c => {
47
- var _a;
48
- return c.carrierCode === "usps" || ((_a = c.nickname) === null || _a === void 0 ? void 0 : _a.includes("free")) ? "stamps_com" : c.carrierCode;
49
- }));
50
- const fundingSourceCarrierMetadata = carrierProfiles === null || carrierProfiles === void 0 ? void 0 : carrierProfiles.map(cp => {
46
+ const normalizeCarrierCode = (carrierCode, nickname) => carrierCode === "usps" || (nickname === null || nickname === void 0 ? void 0 : nickname.includes("free")) ? "stamps_com" : carrierCode;
47
+ const normalizeConnectedCarrierCodes = new Set(connectedCarriers === null || connectedCarriers === void 0 ? void 0 : connectedCarriers.map(c => normalizeCarrierCode(c.carrierCode, c.nickname)));
48
+ const fundingSourceCarriersData = carrierProfiles === null || carrierProfiles === void 0 ? void 0 : carrierProfiles.map(cp => {
51
49
  var _a, _b;
52
- return {
50
+ const carrier = {
53
51
  carrierProfile: cp,
54
52
  friendlyName: (_b = (_a = carrierMetadata[cp.carrierCode]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : cp.carrierCode
55
53
  };
54
+ return {
55
+ carrier,
56
+ isConnected: normalizeConnectedCarrierCodes.has(cp.carrierCode)
57
+ };
56
58
  });
57
59
  return {
58
- data: fundingSourceCarrierMetadata === null || fundingSourceCarrierMetadata === void 0 ? void 0 : fundingSourceCarrierMetadata.map(m => ({
59
- carrier: m,
60
- isConnected: normalizeConnectedCarrierCodes.has(m.carrierProfile.carrierCode)
61
- })),
60
+ data: fundingSourceCarriersData,
62
61
  error: error,
63
62
  insuranceProviderProfiles,
64
63
  isLoading: isInitialLoading || isFundingSourceMetadataLoading || isInsuranceProviderAcceptedTermsLoading,
@@ -1,10 +1,11 @@
1
1
  import { __awaiter, __rest } from '../../../_virtual/_tslib.js';
2
- import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import { jsx, jsxs } from '@emotion/react/jsx-runtime';
3
3
  import { IconSize, Typography } from '@shipengine/giger';
4
4
  import { SE } from '@shipengine/react-api';
5
5
  import { useState } from 'react';
6
6
  import { useTranslation } from 'react-i18next';
7
7
  import { styles } from './manage-carriers-row.styles.js';
8
+ import { UPSTermsDisclosure } from '../../../components/ups-terms-disclosure/ups-terms-disclosure.js';
8
9
  import { AddressPreferenceProvider } from '../../../components/address-preference-context/address-preference-context.js';
9
10
  import { RegisterFundingSourceCarrierForm } from '../register-funding-source-carrier-form/register-funding-source-carrier-form.js';
10
11
  import { CarrierIcon } from '../../../components/carrier-icon/carrier-icon.js';
@@ -32,6 +33,10 @@ const ManageCarriersRow = ({
32
33
  const requirementTypes = carrierProfile.registrationRequirements.map(r => r.requirementType);
33
34
  const requiresAddress = requirementTypes.includes(SE.MetadataRequirement.PickupAddress);
34
35
  const requiresTermsAcceptance = carrierProfile.requiredTerms.length > 0;
36
+ const requiredCarrierTerms = {
37
+ links: carrierProfile.requiredTerms.flatMap(term => term.links),
38
+ disclosure: carrierProfile.carrierCode === "ups_walleted" ? jsx(UPSTermsDisclosure, {}) : undefined
39
+ };
35
40
  const handleRegister = values => __awaiter(void 0, void 0, void 0, function* () {
36
41
  setIsSubmitting(true);
37
42
  showDropDown && setShowDropDown(false);
@@ -94,7 +99,7 @@ const ManageCarriersRow = ({
94
99
  onCancel: () => setShowDropDown(false),
95
100
  onSubmit: handleRegister,
96
101
  requirementTypes: requirementTypes,
97
- terms: carrierProfile.requiredTerms
102
+ terms: requiredCarrierTerms
98
103
  })
99
104
  })
100
105
  })]
@@ -149,9 +149,9 @@ const RegisterFundingSourceCarrierForm = ({
149
149
  children: [jsx(Typography, {
150
150
  variant: "heading4",
151
151
  children: t("terms.carriersTitle")
152
- }), terms.map((term, index) => jsx(DisplayTerm, {
153
- term: term
154
- }, index))]
152
+ }), jsx(DisplayTerm, {
153
+ terms: terms
154
+ })]
155
155
  }), jsx(ButtonGroup, {
156
156
  justify: "end",
157
157
  children: jsx(Button, {
@@ -1,11 +1,14 @@
1
1
  import { __awaiter } from '../../_virtual/_tslib.js';
2
- import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { jsxs, Fragment, jsx } from '@emotion/react/jsx-runtime';
3
3
  import { useToggle } from '../../hooks/use-toggle.js';
4
+ import { InlineNotification, NotificationType } from '@shipengine/giger';
4
5
  import { useUpdateFundingSource, useListFundingSources } from '@shipengine/react-api';
5
6
  import { useState } from 'react';
6
7
  import { useTranslation } from 'react-i18next';
7
8
  import { EditBillingForm } from '../../components/forms/edit-billing-form/edit-billing-form.js';
8
9
  import { WalletCard } from '../../components/wallet-card/wallet-card.js';
10
+ import { useElements } from '../../elements-provider/elements-context-provider.js';
11
+ import { Spacer } from '../../components/spacer/spacer.js';
9
12
  import { Loader } from '../../components/loader/loader.js';
10
13
  import { ZeroState } from '../../components/zero-state/zero-state.js';
11
14
 
@@ -16,37 +19,72 @@ const PaymentMethodSettings = ({
16
19
  const {
17
20
  t
18
21
  } = useTranslation();
22
+ const {
23
+ globalFeatures
24
+ } = useElements();
25
+ const {
26
+ supportEmailAddress
27
+ } = globalFeatures;
19
28
  const [showEditBilling, toggleShowEditBilling] = useToggle(false);
20
29
  const [isUpdatingBilling, setIsUpdatingBilling] = useState(false);
21
30
  const {
22
- mutateAsync: updateBilling
31
+ error: updateBillingError,
32
+ mutateAsync: updateBilling,
33
+ reset: resetUpdateFundingSource
23
34
  } = useUpdateFundingSource();
24
35
  const {
25
36
  data: fundingSources,
26
37
  refetch: refetchFundingSources,
27
38
  isLoading: fundingSourceLoading
28
39
  } = useListFundingSources();
29
- const fundingSourceId = (_a = fundingSources === null || fundingSources === void 0 ? void 0 : fundingSources[0]) === null || _a === void 0 ? void 0 : _a.fundingSourceId;
40
+ const {
41
+ fundingSourceId,
42
+ billingInfo
43
+ } = (_a = fundingSources === null || fundingSources === void 0 ? void 0 : fundingSources[0]) !== null && _a !== void 0 ? _a : {};
30
44
  const handleUpdateBilling = (billingInfo, creditCardInfo) => __awaiter(void 0, void 0, void 0, function* () {
31
45
  if (fundingSourceId) {
32
- setIsUpdatingBilling(true);
33
- yield updateBilling({
34
- billingInfo,
35
- creditCardInfo,
36
- fundingSourceId
37
- });
38
- yield refetchFundingSources();
39
- toggleShowEditBilling(false);
40
- setIsUpdatingBilling(false);
46
+ try {
47
+ setIsUpdatingBilling(true);
48
+ yield updateBilling({
49
+ billingInfo,
50
+ creditCardInfo,
51
+ fundingSourceId
52
+ });
53
+ yield refetchFundingSources();
54
+ toggleShowEditBilling(false);
55
+ } catch (error) {
56
+ console.error("Error updating billing:", error);
57
+ // error is handled by the mutation
58
+ } finally {
59
+ setIsUpdatingBilling(false);
60
+ }
41
61
  }
42
62
  });
43
- if (showEditBilling) return jsx(EditBillingForm, {
44
- isLoading: isUpdatingBilling,
45
- onCancel: () => {
46
- toggleShowEditBilling(false);
47
- },
48
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
49
- onSubmit: handleUpdateBilling
63
+ if (showEditBilling) return jsxs(Fragment, {
64
+ children: [jsx(EditBillingForm, {
65
+ billingInfo: billingInfo,
66
+ isLoading: isUpdatingBilling,
67
+ onCancel: () => {
68
+ toggleShowEditBilling(false);
69
+ resetUpdateFundingSource();
70
+ },
71
+ onSubmit: (billingInfo, creditCardInfo) => {
72
+ void handleUpdateBilling(billingInfo, creditCardInfo);
73
+ }
74
+ }), (updateBillingError === null || updateBillingError === void 0 ? void 0 : updateBillingError.length) && jsxs(Fragment, {
75
+ children: [jsx(Spacer, {
76
+ multiplier: 2
77
+ }), jsx(InlineNotification, {
78
+ css: {
79
+ textAlign: "left"
80
+ },
81
+ title: t("account-settings:errors.paymentMethod.title"),
82
+ type: NotificationType.ERROR,
83
+ children: t("account-settings:errors.paymentMethod.description", {
84
+ email: supportEmailAddress
85
+ })
86
+ })]
87
+ })]
50
88
  });else {
51
89
  if (fundingSourceLoading) return jsx(Loader, {
52
90
  message: t("loading.paymentMethod")
@@ -4,7 +4,7 @@ import { getDefaultShipFromAddress } from '../utilities/shipengine/address.js';
4
4
  import { getIsCustomsRequiredForSalesOrder, getCustomsFromSalesOrder } from '../utilities/shipengine/sales-order.js';
5
5
  import { getShipmentByStatus } from '../utilities/shipengine/shipment.js';
6
6
  import { getDefaultWarehouse, getWarehouseById } from '../utilities/shipengine/warehouses.js';
7
- import { useMemo, useCallback, useEffect } from 'react';
7
+ import { useState, useMemo, useCallback, useEffect } from 'react';
8
8
  import { useImportSalesOrder } from './use-import-sales-order.js';
9
9
 
10
10
  const useConfigureShipment = ({
@@ -20,6 +20,8 @@ const useConfigureShipment = ({
20
20
  warehouseId,
21
21
  useWarehouses = true
22
22
  }) => {
23
+ // Track when we've created a replacement shipment for a "not found" case
24
+ const [replacementShipmentId, setReplacementShipmentId] = useState();
23
25
  // Queue of incomplete requirement keys (i.e., Ship From addresses, Warehouses, Carriers)
24
26
  const incompleteRequirementsKeys = useMemo(() => [], []);
25
27
  const {
@@ -75,7 +77,7 @@ const useConfigureShipment = ({
75
77
  salesOrderIds: salesOrderId ? [salesOrderId] : salesOrder ? [salesOrder.salesOrderId] :
76
78
  // TODO: current workaround - revert to being undefined rather than empty list
77
79
  [],
78
- shipmentIds: shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined
80
+ shipmentIds: replacementShipmentId ? [replacementShipmentId] : shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined
79
81
  });
80
82
  const {
81
83
  error: createSalesOrderShipmentErrors,
@@ -88,6 +90,19 @@ const useConfigureShipment = ({
88
90
  const cancelledShipment = getShipmentByStatus("cancelled", salesOrderShipments);
89
91
  const defaultWarehouse = getDefaultWarehouse(warehouses);
90
92
  const defaultShipFromAddress = getDefaultShipFromAddress(shipFromAddresses);
93
+ // Common function to create a V1 shipment
94
+ const createV1ShipmentWithDefaults = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
95
+ const v1Shipment = yield createV1Shipment(Object.assign({}, (defaultShipFromAddress === null || defaultShipFromAddress === void 0 ? void 0 : defaultShipFromAddress.originAddress) ? {
96
+ shipFrom: defaultShipFromAddress.originAddress
97
+ } : {
98
+ warehouseId: warehouseId ? warehouseId : defaultWarehouse.warehouseId
99
+ }));
100
+ if (v1Shipment) {
101
+ yield refetchSalesOrderShipments();
102
+ return v1Shipment;
103
+ }
104
+ return null;
105
+ }), [createV1Shipment, defaultShipFromAddress, defaultWarehouse, warehouseId, refetchSalesOrderShipments]);
91
106
  // Handles the creation of new shipments for the sales order flow and one-off flow
92
107
  const handleShipmentCreation = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
93
108
  var _a, _b, _c;
@@ -137,16 +152,17 @@ const useConfigureShipment = ({
137
152
  }
138
153
  // Create a Shipment for one-off flow
139
154
  if (!salesOrderId && !externalOrderId && !externalOrderNumber && !orderSourceCode && !shipmentId && !externalShipmentId) {
140
- const v1Shipment = yield createV1Shipment(Object.assign({}, (defaultShipFromAddress === null || defaultShipFromAddress === void 0 ? void 0 : defaultShipFromAddress.originAddress) ? {
141
- shipFrom: defaultShipFromAddress.originAddress
142
- } : {
143
- warehouseId: warehouseId ? warehouseId : defaultWarehouse.warehouseId
144
- }));
145
- if (v1Shipment) {
146
- yield refetchSalesOrderShipments();
147
- }
155
+ yield createV1ShipmentWithDefaults();
156
+ }
157
+ }), [createSalesOrderShipment, createV1ShipmentWithDefaults, creatingSalesOrderShipment, creatingV1Shipment, defaultShipFromAddress, defaultWarehouse, externalOrderId, externalOrderNumber, externalShipmentId, incompleteRequirementsKeys, isExternalShipmentFetching, isExternalShipmentInitialLoading, isFetchingWarehouses, isInitialLoadingWarehouses, labelPurchasedSalesOrderShipment, listSalesOrderShipmentsInitiallyLoading, listSalesOrderShipmentsIsFetching, orderSourceCode, pendingSalesOrderShipment, salesOrder, salesOrderId, salesOrderShipmentCreated, shipFromAddresses === null || shipFromAddresses === void 0 ? void 0 : shipFromAddresses.length, shipmentId, useWarehouses, v1shipmentCreated, warehouseId, warehouses]);
158
+ const createNewShipmentForNotFound = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
159
+ // Force create a new shipment even if shipmentId exists (for shipment_not_found case)
160
+ const v1Shipment = yield createV1ShipmentWithDefaults();
161
+ if (v1Shipment) {
162
+ // Store the new shipment ID to override the stale one
163
+ setReplacementShipmentId(v1Shipment.shipments[0].shipmentId);
148
164
  }
149
- }), [createSalesOrderShipment, createV1Shipment, creatingSalesOrderShipment, creatingV1Shipment, defaultShipFromAddress, defaultWarehouse, externalOrderId, externalOrderNumber, externalShipmentId, incompleteRequirementsKeys, isExternalShipmentFetching, isExternalShipmentInitialLoading, isFetchingWarehouses, isInitialLoadingWarehouses, labelPurchasedSalesOrderShipment, listSalesOrderShipmentsInitiallyLoading, listSalesOrderShipmentsIsFetching, orderSourceCode, pendingSalesOrderShipment, refetchSalesOrderShipments, salesOrder, salesOrderId, salesOrderShipmentCreated, shipFromAddresses === null || shipFromAddresses === void 0 ? void 0 : shipFromAddresses.length, shipmentId, useWarehouses, v1shipmentCreated, warehouseId, warehouses]);
165
+ }), [createV1ShipmentWithDefaults]);
150
166
  const refetchPendingSalesOrderShipments = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
151
167
  const {
152
168
  data: shipments
@@ -178,13 +194,18 @@ const useConfigureShipment = ({
178
194
  errorCode: "invalid_status",
179
195
  errorSource: "elements",
180
196
  errorType: "business_rules"
181
- })] : []), ...(incompleteRequirementsKeys.length > 0 ? [new CodedError(incompleteRequirementsKeys.length > 1 ? "no_carriers_and_warehouses" : incompleteRequirementsKeys[0], {
197
+ })] : []), ...(incompleteRequirementsKeys.length > 0 ? [new CodedError(incompleteRequirementsKeys.length === 1 ? "no_carriers_and_warehouses" : incompleteRequirementsKeys[0], {
182
198
  errorCode: "unknown",
183
199
  errorSource: "elements",
184
200
  errorType: "business_rules"
201
+ })] : []), ...((salesOrderShipments === null || salesOrderShipments === void 0 ? void 0 : salesOrderShipments.length) === 0 && shipmentId ? [new CodedError("shipment_not_found", {
202
+ errorCode: "invalid_status",
203
+ errorSource: "elements",
204
+ errorType: "business_rules"
185
205
  })] : [])];
186
206
  return {
187
207
  carriers,
208
+ createNewShipmentForNotFound,
188
209
  errors: errors.length > 0 ? errors : undefined,
189
210
  isLoading: (isSalesOrderLoading || !(salesOrderShipments === null || salesOrderShipments === void 0 ? void 0 : salesOrderShipments.length) || creatingSalesOrderShipment) && errors.length === 0,
190
211
  refetchPendingSalesOrderShipments,
@@ -1,4 +1,5 @@
1
1
  import { useListCarriers, useListWarehouses } from '@shipengine/react-api';
2
+ import { getUsStates, getCountries } from '../utilities/address.js';
2
3
  import { isOnboarded, validateShipFromAddress } from '../utilities/checks.js';
3
4
 
4
5
  const useHelpers = () => {
@@ -15,7 +16,9 @@ const useHelpers = () => {
15
16
  return {
16
17
  helpersReady,
17
18
  sellerOnboarded,
18
- validateShipFromAddress
19
+ validateShipFromAddress,
20
+ getCountries,
21
+ getUsStates
19
22
  };
20
23
  };
21
24
 
package/dist/esm/index.js CHANGED
@@ -2,6 +2,7 @@ export * from '@shipengine/react-api';
2
2
  export { createStyles, scopeTheme } from './utilities/styles.js';
3
3
  export { getDefaultFeatures } from './utilities/feature-flags/feature-flags.js';
4
4
  export { getSellerIdFromToken, isOnboarded, validateShipFromAddress } from './utilities/checks.js';
5
+ export { getCountries, getUsStates } from './utilities/address.js';
5
6
  export { Country, UsState, UsaCity, addressNameRegex, countries, countryCodes, euCountryCodes, postalCodeRegex, usCities, usStateCodes, usStates } from './constants/shipengine/address.js';
6
7
  import * as manageCarriers from './elements/manage-carriers/manage-carriers.js';
7
8
  export { manageCarriers as ManageCarriers };
@@ -24,6 +24,12 @@ var accoutSettings = {
24
24
  labelLayout: "Shipping Label Layout",
25
25
  unitSettings: "Units of Measure",
26
26
  vatSettings: "Tax Settings"
27
+ },
28
+ errors: {
29
+ paymentMethod: {
30
+ title: "Error Updating Payment Method",
31
+ description: "There was an error updating your payment method. Ensure your payment information is correct and try again. If the problem persists, contact support at {{email}}."
32
+ }
27
33
  }
28
34
  }
29
35
  };
@@ -161,10 +161,12 @@ var common = {
161
161
  total: "Total"
162
162
  },
163
163
  errorMessages: {
164
+ fundingSourceCreationFailed: "Please check your payment and billing details, and confirm that your bank hasn’t blocked the payment method. If the issue persists, please contact support at {{email}}.",
164
165
  contactSupport: "Your transaction may not have processed as expected. Please contact support at {{email}}.",
165
166
  invalidNameOrCompany: "Recipient name and company name (if provided) must have two characters in first and last name.",
166
167
  parsingFailure: "Parsing failed. Please check address and try again.",
167
168
  incompleteLabelPurchaseRequirements: "Please add your {{requirements}} to continue purchasing a label.",
169
+ shipmentNotFound: "Cannot find shipment with ID: {{id}}.",
168
170
  shipmentCancelled: "This shipment is Cancelled in ShipStation. Log into ShipStation to restore the order to Awaiting Shipment status.",
169
171
  unableToLoad: {
170
172
  accountSettings: "Unable to load account settings",
@@ -0,0 +1,11 @@
1
+ var gridController = {
2
+ "grid-controller": {
3
+ showExportCSV: {
4
+ button: "Export CSV",
5
+ "generic-error-message": "We couldn’t export your CSV. Please try again.",
6
+ "limit-error": "We're sorry, but exporting more than {{LIMIT_GRID_ITEMS_EXPORT}} items is not supported at this time."
7
+ }
8
+ }
9
+ };
10
+
11
+ export { gridController as default };
@@ -1,6 +1,7 @@
1
1
  import accoutSettings from './account-settings.json.js';
2
2
  import common from './common.json.js';
3
3
  import connectCarriers from './connect-carrier.json.js';
4
+ import gridController from './grid-controller.json.js';
4
5
  import listLabels from './list-labels.json.js';
5
6
  import listShipments from './list-shipments.json.js';
6
7
  import manageCarriers from './manage-carriers.json.js';
@@ -18,6 +19,6 @@ import viewShipment from './view-shipment.json.js';
18
19
  import voidLabel from './void-label.json.js';
19
20
  import walletHistory from './wallet-history.json.js';
20
21
 
21
- var en = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, accoutSettings), common), connectCarriers), listLabels), listShipments), manageDefaults), manageDefaults), manageFunding), manageWarehouses), onboarding), paymentMethod), purchaseLabel), rateDetails), registerCarrier), registerWallet), manageCarriers), vatSettings), viewShipment), voidLabel), walletHistory);
22
+ var en = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, accoutSettings), common), connectCarriers), listLabels), listShipments), manageDefaults), manageDefaults), manageFunding), manageWarehouses), onboarding), paymentMethod), purchaseLabel), rateDetails), registerCarrier), registerWallet), manageCarriers), vatSettings), viewShipment), voidLabel), walletHistory), gridController);
22
23
 
23
24
  export { en as default };
@@ -22,6 +22,11 @@ var onboarding = {
22
22
  title: "Activate ShipEngine Services",
23
23
  subtitle: "Your account includes access to services from these partners."
24
24
  },
25
+ upsDisclosure: {
26
+ title: "UPS Promotional Rates and Technology Agreements",
27
+ line1: "I have read and agree to the Terms and Conditions and the Privacy Policy, and I confirm that information I have provided is accurate and truthful.",
28
+ line2: "To start shipping with UPS, you must first agree to the following: UPS®, the UPS brandmark, UPS Ready® and the color brown are trademarks of the United Parcel Service of America, Inc. All Rights Reserved."
29
+ },
25
30
  warehouse: {
26
31
  title: "Ship From Address",
27
32
  subtitle: "Enter your default Ship From Address",
@@ -10,7 +10,8 @@ var purchaseLabel = {
10
10
  showItems: "Show items",
11
11
  showMoreRates: "Show more rates",
12
12
  showFewerRates: "Show fewer rates",
13
- saveRate: "Save Rate"
13
+ saveRate: "Save Rate",
14
+ createNewShipment: "Create New Shipment"
14
15
  },
15
16
  balance: {
16
17
  currentBalance: "Available Funds:",
@@ -127,7 +128,6 @@ var purchaseLabel = {
127
128
  otherLocations: "Other drop off points near you:",
128
129
  noServicePointsForService: "There are no drop off locations for this service within 10km of your search area.",
129
130
  error: "Unable to find drop off locations within 10km of your search area.",
130
- paperless: "Print & Paperless",
131
131
  localTimeDisclaimer: "Hours shown in local time"
132
132
  },
133
133
  shipToAddressFormFields: "Ship To Address Form Fields",
@@ -141,7 +141,9 @@ var purchaseLabel = {
141
141
  },
142
142
  warnings: {
143
143
  parcelGuardShipDate: "ParcelGuard must be purchased within 48 hours of the ship date. Please update the ship date to continue."
144
- }
144
+ },
145
+ paperlessAvailable: "Paperless available",
146
+ usePaperlessLabel: "Use Paperless Label (QR Code)"
145
147
  }
146
148
  };
147
149
 
@@ -1,3 +1,3 @@
1
- var version = "2.24.1";
1
+ var version = "2.26.0";
2
2
 
3
3
  export { version };