@shipengine/elements 1.0.0 → 1.1.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 (39) hide show
  1. package/README.md +15 -0
  2. package/index.cjs +2868 -3267
  3. package/index.js +2868 -3270
  4. package/package.json +6 -2
  5. package/src/components/carrier-icon/carrier-icon.d.ts +13 -0
  6. package/src/components/carrier-icon/index.d.ts +1 -0
  7. package/src/components/collapsible-panel/collapsible-panel.styles.d.ts +1 -1
  8. package/src/components/display-term/display-term.styles.d.ts +2 -2
  9. package/src/components/grid-controller/cell-formatted-date.d.ts +4 -0
  10. package/src/components/grid-controller/grid-controller.d.ts +22 -0
  11. package/src/components/grid-controller/grid-controller.styles.d.ts +61 -0
  12. package/src/components/grid-controller/hooks/use-grid.d.ts +43 -0
  13. package/src/components/grid-controller/index.d.ts +2 -0
  14. package/src/components/history/history-card-extension/history-card-extension.styles.d.ts +2 -2
  15. package/src/components/index.d.ts +2 -0
  16. package/src/components/label-layout/label-layout.styles.d.ts +8 -5
  17. package/src/components/powered-by-shipengine/powered-by-shipengine.styles.d.ts +2 -2
  18. package/src/components/save-status/save-status-styles.d.ts +4 -9
  19. package/src/components/section/section.d.ts +2 -2
  20. package/src/components/templates/connect-carrier/connect-carrier.d.ts +1 -0
  21. package/src/components/templates/connect-carrier/connect-carrier.styles.d.ts +1 -0
  22. package/src/components/templates/connect-carrier/index.d.ts +1 -0
  23. package/src/components/templates/connect-carrier-form/connect-carrier-form.d.ts +4 -0
  24. package/src/components/templates/connect-carrier-form/connect-carrier-form.styles.d.ts +60 -0
  25. package/src/components/templates/connect-carrier-form/index.d.ts +1 -0
  26. package/src/components/templates/display-carrier-terms/display-carrier-terms.styles.d.ts +2 -2
  27. package/src/elements/account-settings/account-settings.d.ts +13 -7
  28. package/src/elements/configure-shipment/hooks/use-rates-form.d.ts +1 -1
  29. package/src/elements/connect-carrier/connect-carrier.d.ts +685 -0
  30. package/src/elements/connect-carrier/index.d.ts +1 -0
  31. package/src/elements/labels-grid/index.d.ts +1 -0
  32. package/src/elements/labels-grid/labels-grid.d.ts +687 -0
  33. package/src/elements/purchase-label/purchase-label.d.ts +20 -2
  34. package/src/elements/view-shipment/view-shipment.d.ts +17 -1
  35. package/src/elements/void-label/void-label.d.ts +13 -6
  36. package/src/features/wallet-history/wallet-history.styles.d.ts +2 -2
  37. package/src/locales/en/index.d.ts +13 -0
  38. package/src/workflows/onboarding/components/carrier-recovery-form/carrier-recovery-form-schema.d.ts +29 -29
  39. package/src/workflows/onboarding/onboarding.d.ts +55 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipengine/elements",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "peerDependencies": {
5
5
  "@shipengine/alchemy": "5.x.x",
6
6
  "@emotion/react": "11.x",
@@ -22,9 +22,12 @@
22
22
  "@faker-js/faker": "7.6.0",
23
23
  "@hookform/resolvers": "2.9.1",
24
24
  "@jest/globals": "28.1.3",
25
+ "@rjsf/core": "5.16.1",
26
+ "@rjsf/utils": "5.16.1",
27
+ "@rjsf/validator-ajv8": "5.16.1",
25
28
  "@shipengine/giger": "1.0.1",
26
29
  "@shipengine/giger-theme": "1.0.1",
27
- "@shipengine/js-api": "0.41.2",
30
+ "@shipengine/js-api": "0.48.2",
28
31
  "@storybook/addons": "6.5.16",
29
32
  "@storybook/components": "7.0.0-rc.1",
30
33
  "@storybook/core-events": "7.0.0-rc.1",
@@ -44,6 +47,7 @@
44
47
  "lodash": "4.17.21",
45
48
  "react-datepicker": "4.11.0",
46
49
  "react-hook-form": "7.40.0",
50
+ "rollup-plugin-copy": "3.4.0",
47
51
  "zod": "3.19.1"
48
52
  }
49
53
  }
@@ -0,0 +1,13 @@
1
+ declare const iconSize: {
2
+ small: string;
3
+ medium: string;
4
+ regular: string;
5
+ large: string;
6
+ extra_large: string;
7
+ };
8
+ export type CarrierIconProps = {
9
+ carrierCode: string;
10
+ size?: keyof typeof iconSize;
11
+ };
12
+ export declare const CarrierIcon: ({ carrierCode, size }: CarrierIconProps) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./carrier-icon";
@@ -9,7 +9,7 @@ export declare const styles: {
9
9
  padding: string;
10
10
  };
11
11
  icon: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
12
- color: "#006fbb";
12
+ color: string;
13
13
  };
14
14
  link: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
15
15
  ":hover": {
@@ -5,9 +5,9 @@ export declare const styles: {
5
5
  gap: number;
6
6
  padding: string;
7
7
  };
8
- link: {
8
+ link: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
9
9
  "&:visited": {
10
- color: "#006fbb";
10
+ color: string;
11
11
  };
12
12
  };
13
13
  termLink: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
@@ -0,0 +1,4 @@
1
+ export declare const CellFormattedDate: ({ date, short }: {
2
+ date: string;
3
+ short?: boolean | undefined;
4
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from "react";
2
+ import { PageableResult } from "@shipengine/alchemy";
3
+ type ColumnProps<T> = {
4
+ columnOrder: number;
5
+ headerContent: ReactNode;
6
+ renderCellContent: (data: T) => ReactNode;
7
+ };
8
+ type ColumnsConfig<T extends object> = {
9
+ [K in keyof T]: ColumnProps<T>;
10
+ };
11
+ type GridProps<T extends object> = {
12
+ columns: Partial<ColumnsConfig<T>>;
13
+ currentPageSize: number;
14
+ data: T[];
15
+ onPageSelect: (page: number) => void;
16
+ onPageSizeSelect: (rowsPerPage: number) => void;
17
+ onRowClick?: (data: T) => void;
18
+ pagingData: PageableResult;
19
+ rowCountSelection?: Array<number>;
20
+ };
21
+ export declare const GridController: <T extends object>({ currentPageSize, columns, data, pagingData, rowCountSelection, onPageSelect, onPageSizeSelect, onRowClick, }: GridProps<T>) => import("@emotion/react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,61 @@
1
+ export declare const styles: {
2
+ footer: {
3
+ "> *": {
4
+ borderTop: string;
5
+ };
6
+ alignItems: "center";
7
+ display: "flex";
8
+ justifyContent: "space-between";
9
+ };
10
+ leftFooter: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
11
+ display: "flex";
12
+ margin: number;
13
+ span: {
14
+ fontWeight: number;
15
+ };
16
+ };
17
+ rowCount: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
18
+ alignItems: "center";
19
+ display: "flex";
20
+ marginRight: number;
21
+ whiteSpace: "pre";
22
+ };
23
+ rowCountDropDown: {
24
+ "> * > *": {
25
+ justifyContent: "center !important";
26
+ };
27
+ };
28
+ rowsActions: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
29
+ "#selected-row": {
30
+ ":hover": {
31
+ backgroundColor: "transparent";
32
+ };
33
+ borderRadius: string;
34
+ color: string;
35
+ padding: number;
36
+ paddingRight: number;
37
+ };
38
+ alignItems: "baseline";
39
+ display: "flex";
40
+ span: {
41
+ alignSelf: "center";
42
+ };
43
+ };
44
+ table: {
45
+ "*": {
46
+ overflow: "hidden";
47
+ textOverflow: "clip !important";
48
+ };
49
+ };
50
+ tableHeader: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
51
+ "> :nth-of-type(1)": {
52
+ width: number;
53
+ };
54
+ "> :nth-of-type(2)": {
55
+ width: number;
56
+ };
57
+ "> :nth-of-type(7)": {
58
+ width: number;
59
+ };
60
+ };
61
+ };
@@ -0,0 +1,43 @@
1
+ /// <reference types="react" />
2
+ import { UseQueryResult } from "@tanstack/react-query";
3
+ import { Label, LinkedResource, PageableQuery, PageableResult, Shipment } from "@shipengine/js-api";
4
+ export type Column<T> = {
5
+ columnOrder: number;
6
+ headerContent: string;
7
+ renderCellContent: (data: T) => React.ReactNode;
8
+ };
9
+ type UseGridProps<T extends object, O extends PageableQuery, R extends PageableResult, E> = {
10
+ columns: {
11
+ [key in keyof T]?: Column<T>;
12
+ };
13
+ dataUNI: "shipments" | "labels";
14
+ fetchData: (options: O) => UseQueryResult<R, E[]>;
15
+ initialOptions: O;
16
+ };
17
+ export declare function useGrid<T extends object, O extends PageableQuery, R extends PageableResult & {
18
+ labels?: Label[];
19
+ shipments?: Shipment[];
20
+ }, E>({ columns, fetchData, initialOptions, dataUNI }: UseGridProps<T, O, R, E>): {
21
+ gridProps: {
22
+ columns: { [key in keyof T]?: Column<T> | undefined; };
23
+ currentPageSize: number;
24
+ data: Label[] | Shipment[];
25
+ error: E[] | null;
26
+ isError: boolean;
27
+ isLoading: boolean;
28
+ onPageSelect: (page: number) => void;
29
+ onPageSizeSelect: (pageSize: number) => void;
30
+ pagingData: {
31
+ links: {
32
+ first: LinkedResource;
33
+ last: LinkedResource;
34
+ next: LinkedResource;
35
+ prev: LinkedResource;
36
+ };
37
+ page: number;
38
+ pages: number;
39
+ total: number;
40
+ };
41
+ };
42
+ };
43
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from "./grid-controller";
2
+ export * from "./cell-formatted-date";
@@ -2,8 +2,8 @@ export declare const styles: {
2
2
  chevronTypography: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
3
3
  color: string;
4
4
  };
5
- detailsBottomContainer: {
6
- backgroundColor: "#f4f6f8";
5
+ detailsBottomContainer: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
6
+ backgroundColor: string;
7
7
  padding: string;
8
8
  };
9
9
  detailsRow: {
@@ -3,6 +3,7 @@ export * from "./add-funds-form";
3
3
  export * from "./auto-funding-form";
4
4
  export * from "./button-group";
5
5
  export * from "./carrier-balance";
6
+ export * from "./carrier-icon";
6
7
  export * from "./carrier-logo";
7
8
  export * from "./copy";
8
9
  export * from "./cube";
@@ -26,3 +27,4 @@ export * from "./section";
26
27
  export * from "./spacer";
27
28
  export * from "./spread";
28
29
  export * from "./story-notes";
30
+ export * from "./grid-controller";
@@ -38,13 +38,13 @@ export declare const styles: {
38
38
  width: number;
39
39
  };
40
40
  letterLabel: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
41
- backgroundColor: "#95C2E0";
41
+ backgroundColor: string;
42
42
  height: number;
43
43
  margin: number;
44
44
  };
45
45
  selectedLetter: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
46
46
  alignItems: "center";
47
- backgroundColor: "#EAF6FF";
47
+ backgroundColor: string;
48
48
  border: string;
49
49
  borderRadius: string;
50
50
  boxShadow: `0 0 0 3px ${string}`;
@@ -59,7 +59,7 @@ export declare const styles: {
59
59
  };
60
60
  selectedThermal: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
61
61
  alignItems: "center";
62
- backgroundColor: "#EAF6FF";
62
+ backgroundColor: string;
63
63
  border: string;
64
64
  borderRadius: string;
65
65
  boxShadow: `0 0 0 3px ${string}`;
@@ -70,6 +70,9 @@ export declare const styles: {
70
70
  position: "relative";
71
71
  width: number;
72
72
  };
73
+ text: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
74
+ color: string;
75
+ };
73
76
  thermal: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
74
77
  ":hover": {
75
78
  border: string;
@@ -85,7 +88,7 @@ export declare const styles: {
85
88
  width: number;
86
89
  };
87
90
  thermalIcon: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
88
- backgroundColor: "#95C2E0";
91
+ backgroundColor: string;
89
92
  height: number;
90
93
  width: number;
91
94
  };
@@ -99,7 +102,7 @@ export declare const styles: {
99
102
  width: number;
100
103
  };
101
104
  thermalLabel: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
102
- backgroundColor: "#95C2E0";
105
+ backgroundColor: string;
103
106
  height: number;
104
107
  width: number;
105
108
  };
@@ -1,7 +1,7 @@
1
1
  export declare const styles: {
2
- poweredByShipEngine: {
2
+ poweredByShipEngine: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
3
3
  alignItems: "center";
4
- color: "#818F9C";
4
+ color: string;
5
5
  display: "flex";
6
6
  gap: string;
7
7
  justifyContent: "center";
@@ -1,14 +1,9 @@
1
- export declare const colors: {
2
- green: string;
3
- grey: string;
4
- red: string;
5
- };
6
1
  export declare const styles: {
7
- checkmark: () => {
2
+ checkmark: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
8
3
  animation: `${string} forwards`;
9
4
  borderRadius: string;
10
5
  height: string;
11
- stroke: "#fff";
6
+ stroke: string;
12
7
  width: string;
13
8
  };
14
9
  checkmarkCheck: () => {
@@ -30,14 +25,14 @@ export declare const styles: {
30
25
  saving: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
31
26
  marginLeft: string;
32
27
  };
33
- savingContainer: () => {
28
+ savingContainer: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
34
29
  alignItems: "center";
35
30
  color: string;
36
31
  display: "flex";
37
32
  justifyContent: "flex-start";
38
33
  };
39
34
  savingFailed: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
40
- color: "#EE3B3F";
35
+ color: string;
41
36
  marginLeft: string;
42
37
  };
43
38
  };
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { ReactNode } from "react";
2
2
  import { WithChildrenCommonProps } from "@shipengine/giger";
3
3
  /**
4
4
  * @internal
@@ -10,7 +10,7 @@ export type SectionProps = WithChildrenCommonProps<{
10
10
  /** Element to render at the right part of the summary */
11
11
  rightContent?: JSX.Element;
12
12
  /** Title to show */
13
- title?: string;
13
+ title?: ReactNode;
14
14
  }>;
15
15
  /**
16
16
  * @internal
@@ -0,0 +1 @@
1
+ export declare const ConnectCarrier: () => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const styles: {};
@@ -0,0 +1 @@
1
+ export * from "./connect-carrier";
@@ -0,0 +1,4 @@
1
+ export type ConnectCarrierFormProps = {
2
+ apiCode: string;
3
+ };
4
+ export declare const ConnectCarrierForm: ({ apiCode }: ConnectCarrierFormProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,60 @@
1
+ export declare const styles: {
2
+ body: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
3
+ flexGrow: number;
4
+ fontSize: string;
5
+ height: string;
6
+ maxHeight: string;
7
+ overflow: "auto";
8
+ };
9
+ form: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
10
+ ".checkbox": {
11
+ "> input": {
12
+ marginRight: number;
13
+ };
14
+ "> label": {
15
+ alignItems: "center";
16
+ display: "flex";
17
+ marginBottom: number;
18
+ };
19
+ };
20
+ ".control-label": {
21
+ fontSize: string;
22
+ fontWeight: number;
23
+ marginRight: number;
24
+ };
25
+ ".custom-description-field": {
26
+ marginBottom: number;
27
+ };
28
+ ".form-group": {
29
+ display: "flex";
30
+ flexDirection: "column";
31
+ marginBottom: number;
32
+ };
33
+ ".help-block": {
34
+ color: string;
35
+ };
36
+ ".required": {
37
+ color: string;
38
+ };
39
+ display: "flex";
40
+ fieldset: {
41
+ border: number;
42
+ padding: number;
43
+ };
44
+ flexDirection: "column";
45
+ height: string;
46
+ legend: {
47
+ borderBottom: string;
48
+ display: "block";
49
+ fontSize: string;
50
+ fontWeight: number;
51
+ marginBottom: number;
52
+ width: string;
53
+ };
54
+ };
55
+ terms: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
56
+ display: "flex";
57
+ flexDirection: "column";
58
+ gap: number;
59
+ };
60
+ };
@@ -0,0 +1 @@
1
+ export * from "./connect-carrier-form";
@@ -1,7 +1,7 @@
1
1
  export declare const styles: {
2
- link: {
2
+ link: (theme: import("@shipengine/giger-theme/dist/lib/Theme").Theme) => {
3
3
  "&:visited": {
4
- color: "#006fbb";
4
+ color: string;
5
5
  };
6
6
  border: string;
7
7
  };
@@ -455,17 +455,11 @@ export declare const Element: ({ resources, ...props }: ComponentProps & {
455
455
  cancel: string;
456
456
  close: string;
457
457
  confirm: string;
458
+ connect: string;
458
459
  continue: string;
459
460
  delete: string;
460
461
  edit: string;
461
462
  hide: string;
462
- /**
463
- * # Account Settings Component Props
464
- *
465
- * - These are the base props that will be passed into the `<AccountSettings />` component.
466
- *
467
- * @see {@link AccountSettings.Component | This prop types usage in the `<AccountSettings /> component`}
468
- */
469
463
  parse: string;
470
464
  purchase: string;
471
465
  remove: string;
@@ -615,6 +609,11 @@ export declare const Element: ({ resources, ...props }: ComponentProps & {
615
609
  unknown: string;
616
610
  validation: string;
617
611
  };
612
+ grid: {
613
+ "row-count_one": string;
614
+ "row-count_other": string;
615
+ rows: string;
616
+ };
618
617
  insuranceProviders: {
619
618
  carrier: string;
620
619
  none: string;
@@ -723,6 +722,13 @@ export declare const Element: ({ resources, ...props }: ComponentProps & {
723
722
  "QSBzaGlwcGluZyBjYXJyaWVyIGVycm9yIG9jY3VycmVkOiBNaXNzaW5nIG9yIGludmFsaWQgc2hpcCB0byBTdGF0ZVByb3ZpbmNlQ29kZQ==": string;
724
723
  "QSBzaGlwcGluZyBjYXJyaWVyIGVycm9yIG9jY3VycmVkOiBJbnZhbGlkIHNvbGQgdG8gc3RhdGUgcHJvdmluY2UgY29kZS4gVmFsaWQgbGVuZ3RoIGlzIDAgdG8gNSBhbHBoYW51bWVyaWM=": string;
725
724
  };
725
+ "connect-carrier": {
726
+ registrationForm: {
727
+ title: string;
728
+ isLoading: string;
729
+ betaWarning: string;
730
+ };
731
+ };
726
732
  "account-settings": {
727
733
  title: string;
728
734
  sections: {
@@ -27,7 +27,7 @@ export declare const useRatesForm: ({ getPreferredRates, onBeforeRateSaved, onBe
27
27
  errors: SE.CodedError[] | undefined;
28
28
  isLoading: boolean;
29
29
  labelErrors: string[] | undefined;
30
- labels: SE.Label[] | undefined;
30
+ labels: SE.Label[];
31
31
  labelsLoading: boolean;
32
32
  onSave: ({ carrierId, serviceCode }: Pick<SE.Rate, "carrierId" | "serviceCode">) => Promise<void>;
33
33
  onSubmit: (rateId: string) => Promise<void>;