formica-ui-lib 1.0.252 → 1.0.255

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.
@@ -0,0 +1,5 @@
1
+ export type SpinnerSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
2
+ export interface SpinnerProps {
3
+ label?: string;
4
+ size?: SpinnerSize;
5
+ }
@@ -2,6 +2,7 @@ export interface RecommendedNextStepCardProps {
2
2
  title: string;
3
3
  description: string;
4
4
  recalculateLabel?: string;
5
+ recalculating?: boolean;
5
6
  ariaLabel?: string;
6
7
  onRecalculateClick?: () => void;
7
8
  }
@@ -134,6 +134,8 @@ export interface AdminDataIssuesTemplateProps {
134
134
  pageTitle: string;
135
135
  pageDescription?: string;
136
136
  lastScanLabel?: string;
137
+ recalculateLabel?: string;
138
+ recalculateStatus?: AdminDataIssuesOperationStatus;
137
139
  updateCacheLabel?: string;
138
140
  deleteAndRebuildLabel?: string;
139
141
  changeProductDataLabel?: string;
@@ -1,68 +1,176 @@
1
1
  import type { DynamicFormFieldConfig, DynamicFormFieldValue } from "../../../organisms/forms/dynamicform/DynamicFormProps";
2
2
  import type { LocalizationMarketItem } from "../../../organisms/collections/localizationmarketcollection/LocalizationMarketCollectionProps";
3
3
  import type { LocalizationStatusCardClickPayload } from "../../../molecules/cards/localizationstatuscard/LocalizationStatusCardProps";
4
- import type { CommerceSyncPanelProps } from "../../../organisms/sections/commercesyncpanel/CommerceSyncPanelProps";
5
4
  import type { AdminSideNavProps } from "../../../organisms/navigation/AdminSideNavProps";
6
- export type MarketReadinessTabId = string;
7
- export interface MarketReadinessProduct {
5
+ export type MarketReadinessTabId = "decor" | "sheets" | "samples";
6
+ export type MarketReadinessSaveStatus = "saved" | "unsaved" | "saving" | "error";
7
+ export type MarketReadinessSkuMode = "edit" | "create";
8
+ export type MarketReadinessSkuVariantDimension = "grade" | "finish" | "size";
9
+ export type MarketReadinessSampleVariantDimension = "finish" | "size";
10
+ export interface MarketReadinessSaveStatusProps {
11
+ status: MarketReadinessSaveStatus;
12
+ label: string;
13
+ errorMessage?: string;
14
+ lastSavedLabel?: string;
15
+ }
16
+ export interface MarketReadinessDecor {
17
+ id: string;
8
18
  name: string;
9
- sku: string;
10
- partNumber: string;
11
- imageUrl: string;
12
- imageAlt: string;
13
- statusLabel: string;
14
- completedLocalizationCount: number;
15
- requiredLocalizationCount: number;
16
- requiredMarketsLabel: string;
17
- hierarchy?: MarketReadinessHierarchy;
18
- }
19
- export interface MarketReadinessHierarchy {
20
- parentId: string;
21
- levelLabel: string;
22
- status: "valid" | "missing";
23
- statusLabel: string;
24
- }
25
- export interface MarketReadinessActiveRecord {
19
+ decorCode: string;
20
+ rangeCode: string;
21
+ imageUrl?: string;
22
+ imageAlt?: string;
23
+ statusLabel?: string;
24
+ }
25
+ export interface MarketReadinessDecorLocalization {
26
26
  id: string;
27
27
  heading: string;
28
- completionStatus: "complete" | "incomplete";
29
- completionStatusLabel: string;
30
28
  saveStatus: MarketReadinessSaveStatus;
31
29
  saveStatusLabel: string;
32
30
  saveErrorMessage?: string;
33
31
  lastSavedLabel?: string;
34
- missingRequiredFieldLabels: string[];
35
32
  }
36
- export type MarketReadinessSaveStatus = "saved" | "unsaved" | "saving" | "error";
37
- interface MarketReadinessTabBase {
38
- id: MarketReadinessTabId;
33
+ export interface MarketReadinessEditorControls {
34
+ saveLabel: string;
35
+ saveDisabled?: boolean;
36
+ cancelLabel: string;
37
+ cancelDisabled?: boolean;
38
+ }
39
+ export interface MarketReadinessDecorEditor {
40
+ sharedTitle?: string;
41
+ sharedDescription?: string;
42
+ sharedFields: DynamicFormFieldConfig[];
43
+ localizationDescription?: string;
44
+ localizedFields: DynamicFormFieldConfig[];
45
+ decorFlagFieldId?: string;
46
+ searchColorFieldId?: string;
47
+ markets: LocalizationMarketItem[];
48
+ activeLocalization: MarketReadinessDecorLocalization;
49
+ controls: MarketReadinessEditorControls;
50
+ deleteLabel?: string;
51
+ deleteDisabled?: boolean;
52
+ }
53
+ export interface MarketReadinessSkuVariantOption {
54
+ value: string;
39
55
  label: string;
40
- heading?: string;
41
- description?: string;
56
+ disabled?: boolean;
42
57
  }
43
- export interface MarketReadinessFormTab extends MarketReadinessTabBase {
44
- type: "form";
45
- fields: DynamicFormFieldConfig[];
58
+ export interface MarketReadinessVariantOptionsProps {
59
+ title: string;
60
+ dimension: MarketReadinessSkuVariantDimension;
61
+ options: MarketReadinessSkuVariantOption[];
62
+ selectedValue?: string;
63
+ readOnly: boolean;
64
+ onSelect?: (dimension: MarketReadinessSkuVariantDimension, value: string) => void;
65
+ }
66
+ export interface MarketReadinessSkuListItem {
67
+ id: string;
68
+ sku: string;
69
+ partNumber?: string;
70
+ grade: string;
71
+ finish: string;
72
+ size: string;
73
+ statusLabel?: string;
46
74
  }
47
- export interface MarketReadinessInformationTab extends MarketReadinessTabBase {
48
- type: "information";
75
+ export interface MarketReadinessSkuIntegration {
76
+ lxId?: string;
77
+ bigCommerceId?: string;
78
+ availabilityLabel?: string;
79
+ lastSynchronizedLabel?: string;
80
+ }
81
+ export interface MarketReadinessSkuGuideSegment {
82
+ pattern: string;
83
+ length: number;
84
+ label: string;
85
+ example: string;
86
+ }
87
+ export interface MarketReadinessSkuGuide {
88
+ title: string;
89
+ formatLabel: string;
90
+ format: string;
91
+ exampleLabel: string;
92
+ example: string;
93
+ segments: MarketReadinessSkuGuideSegment[];
94
+ coreNote?: string;
95
+ sampleNote?: string;
96
+ }
97
+ export interface MarketReadinessSkuGuideProps {
98
+ guide: MarketReadinessSkuGuide;
99
+ }
100
+ export interface MarketReadinessSkuEditor {
101
+ mode: MarketReadinessSkuMode;
102
+ saveStatus: MarketReadinessSaveStatus;
103
+ saveStatusLabel: string;
104
+ saveErrorMessage?: string;
105
+ lastSavedLabel?: string;
106
+ searchValue: string;
107
+ selectedSkuId?: string;
108
+ newSkuValue?: string;
109
+ selectedGrade?: string;
110
+ selectedFinish?: string;
111
+ selectedSize?: string;
112
+ gradeOptions: MarketReadinessSkuVariantOption[];
113
+ finishOptions: MarketReadinessSkuVariantOption[];
114
+ sizeOptions: MarketReadinessSkuVariantOption[];
49
115
  fields: DynamicFormFieldConfig[];
116
+ integration?: MarketReadinessSkuIntegration;
117
+ controls: MarketReadinessEditorControls;
118
+ addSkuLabel?: string;
119
+ createLabel?: string;
120
+ createDisabled?: boolean;
121
+ archiveLabel?: string;
122
+ archiveDisabled?: boolean;
123
+ duplicateMessage?: string;
50
124
  }
51
- export interface MarketReadinessCommerceSyncTab extends MarketReadinessTabBase {
52
- type: "commerceSync";
53
- panel: Omit<CommerceSyncPanelProps, "onLxSyncClick" | "onBigCommerceSyncClick" | "onRefreshClick">;
125
+ export interface MarketReadinessSampleListItem {
126
+ id: string;
127
+ sku: string;
128
+ sourceIdentifier?: string;
129
+ finish: string;
130
+ size: string;
131
+ statusLabel?: string;
54
132
  }
55
- export type MarketReadinessTab = MarketReadinessFormTab | MarketReadinessInformationTab | MarketReadinessCommerceSyncTab;
56
- export interface MarketReadinessSaveControls {
57
- cancelLabel: string;
58
- cancelDisabled?: boolean;
59
- saveLabel: string;
60
- saveDisabled: boolean;
61
- saveAndNextLabel: string;
62
- saveAndNextHelpText?: string;
63
- saveAndNextDisabled: boolean;
64
- localizationSelectionDisabled?: boolean;
65
- tabSelectionDisabled?: boolean;
133
+ export interface MarketReadinessSampleGuideExample {
134
+ sku: string;
135
+ likelySize: string;
136
+ }
137
+ export interface MarketReadinessSampleGuide {
138
+ title: string;
139
+ formatLabel: string;
140
+ format: string;
141
+ canonicalSkuNote: string;
142
+ parsingNote: string;
143
+ sizeRuleLabel: string;
144
+ sizeRule: string;
145
+ examples: MarketReadinessSampleGuideExample[];
146
+ caution: string;
147
+ }
148
+ export interface MarketReadinessSampleGuideProps {
149
+ guide: MarketReadinessSampleGuide;
150
+ }
151
+ export interface MarketReadinessSampleEditor {
152
+ mode: MarketReadinessSkuMode;
153
+ saveStatus: MarketReadinessSaveStatus;
154
+ saveStatusLabel: string;
155
+ saveErrorMessage?: string;
156
+ lastSavedLabel?: string;
157
+ searchValue: string;
158
+ selectedSampleId?: string;
159
+ newSkuValue?: string;
160
+ selectedFinish?: string;
161
+ selectedSize?: string;
162
+ finishOptions: MarketReadinessSkuVariantOption[];
163
+ sizeOptions: MarketReadinessSkuVariantOption[];
164
+ identifierHelpText: string;
165
+ fields: DynamicFormFieldConfig[];
166
+ controls: MarketReadinessEditorControls;
167
+ addLabel?: string;
168
+ createLabel?: string;
169
+ createDisabled?: boolean;
170
+ archiveLabel?: string;
171
+ archiveDisabled?: boolean;
172
+ emptyTitle: string;
173
+ emptyMessage: string;
66
174
  }
67
175
  export interface MarketReadinessNotice {
68
176
  tone: "info" | "warning" | "error" | "success";
@@ -73,43 +181,110 @@ export interface MarketReadinessNotice {
73
181
  export interface MarketReadinessTemplateData {
74
182
  pageTitle: string;
75
183
  pageDescription?: string;
76
- product: MarketReadinessProduct;
77
- localization: MarketReadinessActiveRecord;
78
- markets: LocalizationMarketItem[];
79
- tabs: MarketReadinessTab[];
80
184
  activeTabId: MarketReadinessTabId;
81
- saveControls: MarketReadinessSaveControls;
185
+ decor: MarketReadinessDecor;
186
+ decorEditor: MarketReadinessDecorEditor;
187
+ skus: MarketReadinessSkuListItem[];
188
+ skuEditor: MarketReadinessSkuEditor;
189
+ skuGuide?: MarketReadinessSkuGuide;
190
+ samples: MarketReadinessSampleListItem[];
191
+ sampleEditor: MarketReadinessSampleEditor;
192
+ sampleGuide?: MarketReadinessSampleGuide;
82
193
  notice?: MarketReadinessNotice;
83
194
  }
84
- export interface MarketReadinessFieldChangePayload {
85
- localizationId: string;
195
+ export interface MarketReadinessTabSelectPayload {
86
196
  tabId: MarketReadinessTabId;
197
+ }
198
+ export interface MarketReadinessDecorFieldChangePayload {
199
+ decorId: string;
200
+ localizationId?: string;
201
+ scope: "shared" | "localized";
87
202
  fieldId: string;
88
203
  value: DynamicFormFieldValue;
89
204
  }
90
- export interface MarketReadinessTabSelectPayload {
91
- tabId: MarketReadinessTabId;
92
- label: string;
93
- }
94
- export interface MarketReadinessActionPayload {
205
+ export interface MarketReadinessDecorActionPayload {
206
+ decorId: string;
95
207
  localizationId: string;
96
208
  }
97
- export interface MarketReadinessSyncActionPayload {
98
- localizationId: string;
209
+ export interface MarketReadinessDecorDeletePayload {
210
+ decorId: string;
211
+ }
212
+ export interface MarketReadinessSkuSearchPayload {
213
+ value: string;
214
+ }
215
+ export interface MarketReadinessSkuSelectPayload {
216
+ skuId: string;
99
217
  sku: string;
100
218
  }
219
+ export interface MarketReadinessSkuVariantSelectPayload {
220
+ dimension: MarketReadinessSkuVariantDimension;
221
+ value: string;
222
+ }
223
+ export interface MarketReadinessSkuFieldChangePayload {
224
+ skuId?: string;
225
+ fieldId: string;
226
+ value: DynamicFormFieldValue;
227
+ }
228
+ export interface MarketReadinessSkuEditorActionPayload {
229
+ skuId: string;
230
+ }
231
+ export interface MarketReadinessSkuCreatePayload {
232
+ sku: string;
233
+ grade: string;
234
+ finish: string;
235
+ size: string;
236
+ }
237
+ export interface MarketReadinessSampleSelectPayload {
238
+ sampleId: string;
239
+ sku: string;
240
+ }
241
+ export interface MarketReadinessSampleFieldChangePayload {
242
+ sampleId?: string;
243
+ fieldId: string;
244
+ value: DynamicFormFieldValue;
245
+ }
246
+ export interface MarketReadinessSampleVariantSelectPayload {
247
+ dimension: MarketReadinessSampleVariantDimension;
248
+ value: string;
249
+ }
250
+ export interface MarketReadinessSampleActionPayload {
251
+ sampleId: string;
252
+ }
253
+ export interface MarketReadinessSampleCreatePayload {
254
+ sku: string;
255
+ finish: string;
256
+ size: string;
257
+ }
101
258
  interface MarketReadinessTemplateCallbacks {
102
259
  sideNavProps?: AdminSideNavProps;
103
260
  data: MarketReadinessTemplateData;
104
- onLocalizationSelect?: (payload: LocalizationStatusCardClickPayload) => void;
105
261
  onTabSelect?: (payload: MarketReadinessTabSelectPayload) => void;
106
- onFieldChange?: (payload: MarketReadinessFieldChangePayload) => void;
107
- onSave?: (payload: MarketReadinessActionPayload) => void;
108
- onCancel?: (payload: MarketReadinessActionPayload) => void;
109
- onSaveAndNext?: (payload: MarketReadinessActionPayload) => void;
110
- onLxSyncClick?: (payload: MarketReadinessSyncActionPayload) => void;
111
- onBigCommerceSyncClick?: (payload: MarketReadinessSyncActionPayload) => void;
112
- onCommerceRefreshClick?: (payload: MarketReadinessSyncActionPayload) => void;
262
+ onLocalizationSelect?: (payload: LocalizationStatusCardClickPayload) => void;
263
+ onDecorFieldChange?: (payload: MarketReadinessDecorFieldChangePayload) => void;
264
+ onDecorSave?: (payload: MarketReadinessDecorActionPayload) => void;
265
+ onDecorCancel?: (payload: MarketReadinessDecorActionPayload) => void;
266
+ onDeleteDecorClick?: (payload: MarketReadinessDecorDeletePayload) => void;
267
+ onSkuSearchChange?: (payload: MarketReadinessSkuSearchPayload) => void;
268
+ onSkuSelect?: (payload: MarketReadinessSkuSelectPayload) => void;
269
+ onAddSkuClick?: () => void;
270
+ onSkuVariantSelect?: (payload: MarketReadinessSkuVariantSelectPayload) => void;
271
+ onNewSkuChange?: (payload: MarketReadinessSkuSearchPayload) => void;
272
+ onSkuFieldChange?: (payload: MarketReadinessSkuFieldChangePayload) => void;
273
+ onSkuSave?: (payload: MarketReadinessSkuEditorActionPayload) => void;
274
+ onSkuCancel?: () => void;
275
+ onSkuCreate?: (payload: MarketReadinessSkuCreatePayload) => void;
276
+ onSkuArchive?: (payload: MarketReadinessSkuEditorActionPayload) => void;
277
+ onIntegrationRefresh?: (payload: MarketReadinessSkuEditorActionPayload) => void;
278
+ onSampleSearchChange?: (payload: MarketReadinessSkuSearchPayload) => void;
279
+ onSampleSelect?: (payload: MarketReadinessSampleSelectPayload) => void;
280
+ onAddSampleClick?: () => void;
281
+ onSampleVariantSelect?: (payload: MarketReadinessSampleVariantSelectPayload) => void;
282
+ onNewSampleSkuChange?: (payload: MarketReadinessSkuSearchPayload) => void;
283
+ onSampleFieldChange?: (payload: MarketReadinessSampleFieldChangePayload) => void;
284
+ onSampleSave?: (payload: MarketReadinessSampleActionPayload) => void;
285
+ onSampleCancel?: () => void;
286
+ onSampleCreate?: (payload: MarketReadinessSampleCreatePayload) => void;
287
+ onSampleArchive?: (payload: MarketReadinessSampleActionPayload) => void;
113
288
  onNoticeActionClick?: () => void;
114
289
  }
115
290
  export type MarketReadinessTemplateProps = (MarketReadinessTemplateCallbacks & {
@@ -1,15 +1,15 @@
1
1
  import type { AdminSideNavProps } from "../../../organisms/navigation/AdminSideNavProps";
2
2
  import type { SearchComboboxOption, SearchComboboxSelectPayload } from "../../../molecules/searchcombobox/SearchComboboxProps";
3
3
  export type MarketReadinessLandingStatus = "idle" | "checking" | "error";
4
- export interface MarketReadinessSkuChangePayload {
4
+ export interface MarketReadinessLandingDecorCodeChangePayload {
5
5
  value: string;
6
6
  }
7
- export interface MarketReadinessSkuActionPayload {
8
- sku: string;
7
+ export interface MarketReadinessLandingDecorActionPayload {
8
+ decorCode: string;
9
9
  }
10
- export interface MarketReadinessCopySkuActionPayload {
11
- sourceSku: string;
12
- newSku: string;
10
+ export interface MarketReadinessLandingCopyDecorActionPayload {
11
+ sourceDecorCode: string;
12
+ newDecorCode: string;
13
13
  }
14
14
  export interface MarketReadinessLandingTemplateProps {
15
15
  pageTitle: string;
@@ -17,12 +17,12 @@ export interface MarketReadinessLandingTemplateProps {
17
17
  sideNavProps: AdminSideNavProps;
18
18
  getStartedTitle?: string;
19
19
  getStartedDescription?: string;
20
- skuValue: string;
21
- skuOptions?: SearchComboboxOption[];
22
- skuLabel?: string;
23
- skuPlaceholder?: string;
24
- skuEmptyMessage?: string;
25
- skuHelpText?: string;
20
+ decorCodeValue: string;
21
+ decorCodeOptions?: SearchComboboxOption[];
22
+ decorCodeLabel?: string;
23
+ decorCodePlaceholder?: string;
24
+ decorCodeEmptyMessage?: string;
25
+ decorCodeHelpText?: string;
26
26
  status: MarketReadinessLandingStatus;
27
27
  statusMessage?: string;
28
28
  openExistingLabel?: string;
@@ -32,27 +32,27 @@ export interface MarketReadinessLandingTemplateProps {
32
32
  createNewLabel?: string;
33
33
  createNewHelpText?: string;
34
34
  createNewDisabled?: boolean;
35
- copySkuTitle?: string;
36
- copySkuDescription?: string;
37
- sourceSkuValue: string;
38
- sourceSkuOptions?: SearchComboboxOption[];
39
- sourceSkuLabel?: string;
40
- sourceSkuPlaceholder?: string;
41
- sourceSkuEmptyMessage?: string;
42
- newSkuValue: string;
43
- newSkuLabel?: string;
44
- newSkuPlaceholder?: string;
45
- copySkuLabel?: string;
46
- copySkuHelpText?: string;
47
- copySkuDisabled?: boolean;
35
+ copyDecorTitle?: string;
36
+ copyDecorDescription?: string;
37
+ sourceDecorCodeValue: string;
38
+ sourceDecorCodeOptions?: SearchComboboxOption[];
39
+ sourceDecorCodeLabel?: string;
40
+ sourceDecorCodePlaceholder?: string;
41
+ sourceDecorCodeEmptyMessage?: string;
42
+ newDecorCodeValue: string;
43
+ newDecorCodeLabel?: string;
44
+ newDecorCodePlaceholder?: string;
45
+ copyDecorLabel?: string;
46
+ copyDecorHelpText?: string;
47
+ copyDecorDisabled?: boolean;
48
48
  retryLabel?: string;
49
- onSkuChange: (payload: MarketReadinessSkuChangePayload) => void;
50
- onSkuOptionSelect?: (payload: SearchComboboxSelectPayload) => void;
51
- onOpenExistingClick: (payload: MarketReadinessSkuActionPayload) => void;
52
- onCreateNewClick: (payload: MarketReadinessSkuActionPayload) => void;
53
- onSourceSkuChange: (payload: MarketReadinessSkuChangePayload) => void;
54
- onSourceSkuOptionSelect?: (payload: SearchComboboxSelectPayload) => void;
55
- onNewSkuChange: (payload: MarketReadinessSkuChangePayload) => void;
56
- onCopySkuClick: (payload: MarketReadinessCopySkuActionPayload) => void;
49
+ onDecorCodeChange: (payload: MarketReadinessLandingDecorCodeChangePayload) => void;
50
+ onDecorCodeOptionSelect?: (payload: SearchComboboxSelectPayload) => void;
51
+ onOpenExistingClick: (payload: MarketReadinessLandingDecorActionPayload) => void;
52
+ onCreateNewClick: (payload: MarketReadinessLandingDecorActionPayload) => void;
53
+ onSourceDecorCodeChange: (payload: MarketReadinessLandingDecorCodeChangePayload) => void;
54
+ onSourceDecorCodeOptionSelect?: (payload: SearchComboboxSelectPayload) => void;
55
+ onNewDecorCodeChange: (payload: MarketReadinessLandingDecorCodeChangePayload) => void;
56
+ onCopyDecorClick: (payload: MarketReadinessLandingCopyDecorActionPayload) => void;
57
57
  onRetryClick?: () => void;
58
58
  }
@@ -10,18 +10,6 @@ export interface AdminProductGuideValidationIssue {
10
10
  path: string;
11
11
  message: string;
12
12
  }
13
- export interface AdminProductGuideSummary {
14
- schemaVersion: number;
15
- productCount: number;
16
- offeringSetCount: number;
17
- rangeProductCounts: Record<string, number>;
18
- }
19
- export interface AdminProductGuideStorage {
20
- source: "bundled" | "runtime-upload";
21
- durable: boolean;
22
- updatedAt: string | null;
23
- updatedBy: string | null;
24
- }
25
13
  export interface AdminProductGuideLogo {
26
14
  src: string;
27
15
  alt?: string;
@@ -33,11 +21,6 @@ export interface AdminProductGuideCard {
33
21
  logo?: AdminProductGuideLogo;
34
22
  availability?: AdminProductGuideAvailability;
35
23
  availabilityMessage?: string;
36
- edition?: string;
37
- effectiveDate?: string;
38
- sourceFileName?: string;
39
- summary?: AdminProductGuideSummary;
40
- storage?: AdminProductGuideStorage;
41
24
  selectedFile?: AdminProductGuideSelectedFile;
42
25
  actionStatus?: AdminProductGuideActionStatus;
43
26
  actionStatusMessage?: string;