@commercetools/nimbus-mcp 3.2.0 → 3.3.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.
- package/README.md +9 -1
- package/data/docs/route-manifest.json +806 -41
- package/data/docs/routes/components-buttons-button.json +25 -2
- package/data/docs/routes/components-chat-chat-message-list.json +448 -0
- package/data/docs/routes/components-chat-chat-message.json +580 -0
- package/data/docs/routes/components-content-markdown.json +548 -0
- package/data/docs/routes/components-feedback-activity-indicator.json +396 -0
- package/data/docs/routes/components-feedback-tooltip.json +23 -1
- package/data/docs/routes/components-inputs-drop-zone.json +562 -0
- package/data/docs/routes/components-inputs-file-trigger.json +421 -0
- package/data/docs/routes/components-layout-splitter.json +3 -3
- package/data/docs/routes/components-media-avatar.json +16 -5
- package/data/docs/routes/components-navigation-menu.json +1 -1
- package/data/docs/routes/components-navigation-tabnav.json +80 -14
- package/data/docs/routes/components-navigation-tabs.json +44 -11
- package/data/docs/routes/components-navigation-tree.json +445 -0
- package/data/docs/routes/home-getting-started-mcp-server-overview.json +2 -2
- package/data/docs/routes/home-getting-started-mcp-server-setup.json +2 -2
- package/data/docs/routes/patterns-buttons-floating-action-button.json +392 -0
- package/data/docs/routes/patterns-buttons.json +58 -0
- package/data/docs/search-index.json +1 -1
- package/data/docs/types/AccordionContent.json +24 -24
- package/data/docs/types/AccordionHeader.json +88 -88
- package/data/docs/types/AccordionItem.json +20 -20
- package/data/docs/types/AccordionRoot.json +14 -14
- package/data/docs/types/ActivityIndicator.json +202 -0
- package/data/docs/types/AlertDescription.json +8 -8
- package/data/docs/types/AlertDismissButton.json +98 -81
- package/data/docs/types/AlertTitle.json +8 -8
- package/data/docs/types/Avatar.json +19 -2
- package/data/docs/types/Badge.json +2 -2
- package/data/docs/types/Body.json +6 -6
- package/data/docs/types/Box.json +6 -6
- package/data/docs/types/Button.json +106 -89
- package/data/docs/types/Calendar.json +56 -56
- package/data/docs/types/Caption.json +6 -6
- package/data/docs/types/CardRoot.json +2 -2
- package/data/docs/types/Cell.json +6 -6
- package/data/docs/types/ChatMessage.json +12 -0
- package/data/docs/types/ChatMessageActions.json +42 -0
- package/data/docs/types/ChatMessageAvatar.json +140 -0
- package/data/docs/types/ChatMessageBody.json +42 -0
- package/data/docs/types/ChatMessageList.json +12 -0
- package/data/docs/types/ChatMessageListItem.json +42 -0
- package/data/docs/types/ChatMessageListRoot.json +78 -0
- package/data/docs/types/ChatMessageMeta.json +42 -0
- package/data/docs/types/ChatMessageRoot.json +119 -0
- package/data/docs/types/ChatMessageTyping.json +42 -0
- package/data/docs/types/Checkbox.json +86 -86
- package/data/docs/types/Code.json +11 -11
- package/data/docs/types/Column.json +6 -6
- package/data/docs/types/ColumnGroup.json +6 -6
- package/data/docs/types/ColumnHeader.json +6 -6
- package/data/docs/types/ComboBoxListBox.json +70 -70
- package/data/docs/types/ComboBoxOption.json +64 -64
- package/data/docs/types/ComboBoxPopover.json +91 -70
- package/data/docs/types/ComboBoxRoot.json +8 -8
- package/data/docs/types/ComboBoxSection.json +24 -24
- package/data/docs/types/ComboBoxTrigger.json +6 -6
- package/data/docs/types/DataTable.json +2 -2
- package/data/docs/types/DataTableBody.json +20 -20
- package/data/docs/types/DataTableHeader.json +25 -25
- package/data/docs/types/DataTableRoot.json +2 -2
- package/data/docs/types/DataTableTable.json +6 -6
- package/data/docs/types/DateInput.json +73 -73
- package/data/docs/types/DatePicker.json +58 -58
- package/data/docs/types/DateRangePicker.json +86 -86
- package/data/docs/types/DateRangePickerField.json +86 -86
- package/data/docs/types/DefaultPageRoot.json +2 -2
- package/data/docs/types/DialogCloseTrigger.json +96 -79
- package/data/docs/types/DraggableListField.json +88 -60
- package/data/docs/types/DraggableListItem.json +52 -52
- package/data/docs/types/DraggableListRoot.json +88 -60
- package/data/docs/types/DrawerCloseTrigger.json +96 -79
- package/data/docs/types/DropZone.json +161 -0
- package/data/docs/types/FieldErrors.json +2 -2
- package/data/docs/types/FileTrigger.json +130 -0
- package/data/docs/types/Flex.json +22 -22
- package/data/docs/types/FloatingActionButton.json +1036 -0
- package/data/docs/types/Footer.json +6 -6
- package/data/docs/types/FormActionBar.json +1 -1
- package/data/docs/types/FormFieldRoot.json +2 -2
- package/data/docs/types/Grid.json +24 -24
- package/data/docs/types/Group.json +12 -12
- package/data/docs/types/Header.json +6 -6
- package/data/docs/types/Heading.json +8 -8
- package/data/docs/types/Icon.json +4 -4
- package/data/docs/types/IconButton.json +106 -89
- package/data/docs/types/IconToggleButton.json +71 -71
- package/data/docs/types/Image.json +43 -43
- package/data/docs/types/Indicator.json +6 -6
- package/data/docs/types/InlineSvg.json +2 -2
- package/data/docs/types/Item.json +6 -6
- package/data/docs/types/Kbd.json +8 -8
- package/data/docs/types/Link.json +14 -14
- package/data/docs/types/ListIndicator.json +6 -6
- package/data/docs/types/ListItem.json +6 -6
- package/data/docs/types/ListRoot.json +11 -11
- package/data/docs/types/LoadingSpinner.json +2 -2
- package/data/docs/types/MakeElementFocusable.json +18 -18
- package/data/docs/types/Markdown.json +183 -0
- package/data/docs/types/MenuItem.json +62 -62
- package/data/docs/types/MenuRoot.json +55 -55
- package/data/docs/types/MenuSection.json +30 -30
- package/data/docs/types/MenuSubmenuTrigger.json +4 -4
- package/data/docs/types/MenuTrigger.json +88 -88
- package/data/docs/types/MultilineTextInput.json +104 -104
- package/data/docs/types/MultilineTextInputField.json +102 -102
- package/data/docs/types/NumberInput.json +86 -86
- package/data/docs/types/NumberInputField.json +82 -82
- package/data/docs/types/PageContentColumn.json +6 -6
- package/data/docs/types/PageContentRoot.json +6 -6
- package/data/docs/types/PasswordInput.json +100 -100
- package/data/docs/types/PasswordInputField.json +100 -100
- package/data/docs/types/ProgressBar.json +13 -13
- package/data/docs/types/RadioInputOption.json +56 -56
- package/data/docs/types/RadioInputRoot.json +48 -48
- package/data/docs/types/RangeCalendar.json +58 -58
- package/data/docs/types/Region.json +6 -6
- package/data/docs/types/RegionTarget.json +6 -6
- package/data/docs/types/RichTextInput.json +2 -2
- package/data/docs/types/Root.json +11 -11
- package/data/docs/types/Row.json +6 -6
- package/data/docs/types/ScrollArea.json +2 -2
- package/data/docs/types/SearchInput.json +106 -106
- package/data/docs/types/SearchInputField.json +102 -102
- package/data/docs/types/SelectOption.json +54 -54
- package/data/docs/types/SelectOptionGroup.json +18 -18
- package/data/docs/types/SelectOptions.json +64 -64
- package/data/docs/types/SelectRoot.json +92 -92
- package/data/docs/types/Separator.json +4 -4
- package/data/docs/types/SimpleGrid.json +28 -28
- package/data/docs/types/SlidingIndicatorGeometry.json +9 -0
- package/data/docs/types/SlidingIndicatorRects.json +9 -0
- package/data/docs/types/SplitButton.json +16 -20
- package/data/docs/types/Stack.json +2 -2
- package/data/docs/types/StepsRoot.json +2 -2
- package/data/docs/types/Switch.json +34 -34
- package/data/docs/types/TabNavItem.json +5 -5
- package/data/docs/types/TabNavRoot.json +5 -5
- package/data/docs/types/TableBody.json +6 -6
- package/data/docs/types/TableCaption.json +6 -6
- package/data/docs/types/TableCell.json +6 -6
- package/data/docs/types/TableColumn.json +6 -6
- package/data/docs/types/TableColumnGroup.json +6 -6
- package/data/docs/types/TableColumnHeader.json +6 -6
- package/data/docs/types/TableFooter.json +6 -6
- package/data/docs/types/TableHeader.json +6 -6
- package/data/docs/types/TableRoot.json +19 -19
- package/data/docs/types/TableRow.json +6 -6
- package/data/docs/types/TableScrollArea.json +6 -6
- package/data/docs/types/TabsList.json +2 -2
- package/data/docs/types/TabsPanel.json +2 -2
- package/data/docs/types/TabsPanels.json +2 -2
- package/data/docs/types/TabsRoot.json +3 -3
- package/data/docs/types/TabsTab.json +2 -2
- package/data/docs/types/TagGroupRoot.json +24 -24
- package/data/docs/types/TagGroupTag.json +56 -56
- package/data/docs/types/TagGroupTagList.json +14 -14
- package/data/docs/types/Text.json +8 -8
- package/data/docs/types/TextInput.json +102 -102
- package/data/docs/types/TextInputField.json +100 -100
- package/data/docs/types/TimeInput.json +68 -68
- package/data/docs/types/ToggleButton.json +73 -73
- package/data/docs/types/ToggleButtonGroupButton.json +30 -30
- package/data/docs/types/ToggleButtonGroupRoot.json +20 -20
- package/data/docs/types/Toolbar.json +9 -9
- package/data/docs/types/TooltipContent.json +28 -28
- package/data/docs/types/TooltipRoot.json +16 -16
- package/data/docs/types/Tree.json +12 -0
- package/data/docs/types/TreeIndicator.json +828 -0
- package/data/docs/types/TreeItem.json +559 -0
- package/data/docs/types/TreeItemContent.json +27 -0
- package/data/docs/types/TreeRoot.json +636 -0
- package/data/docs/types/TreeSubTree.json +40 -0
- package/data/docs/types/VisuallyHidden.json +6 -6
- package/data/docs/types/createItemsFromCsvDrop.json +4 -4
- package/data/docs/types/createItemsFromDirectoryDrop.json +4 -4
- package/data/docs/types/createItemsFromFileDrop.json +4 -4
- package/data/docs/types/createItemsFromImageDrop.json +4 -4
- package/data/docs/types/createItemsFromJsonDrop.json +4 -4
- package/data/docs/types/manifest.json +25 -0
- package/data/docs/types/useRegion.json +2 -2
- package/data/docs/types/useSlidingIndicator.json +145 -0
- package/data/docs/types/useTree.json +267 -0
- package/data/tokens.json +21 -0
- package/data/uikit-tokens.json +894 -0
- package/dist/index.js +3298 -109
- package/package.json +8 -6
package/dist/index.js
CHANGED
|
@@ -83,6 +83,7 @@ var getSearchIndex = lazyJson(
|
|
|
83
83
|
var getDocsManifest = lazyJson("docs/docs.json");
|
|
84
84
|
var getIconCatalog = lazyJson("icons.json");
|
|
85
85
|
var getFlatTokenData = lazyJson("tokens.json");
|
|
86
|
+
var getUiKitTokenMap = lazyJson("uikit-tokens.json");
|
|
86
87
|
|
|
87
88
|
// src/utils/markdown.ts
|
|
88
89
|
function stripMarkdown(text) {
|
|
@@ -102,7 +103,30 @@ function stripMarkdown(text) {
|
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
// src/utils/relevance.ts
|
|
105
|
-
var WEIGHTS = {
|
|
106
|
+
var WEIGHTS = {
|
|
107
|
+
title: 8,
|
|
108
|
+
description: 4,
|
|
109
|
+
tags: 4,
|
|
110
|
+
content: 1
|
|
111
|
+
};
|
|
112
|
+
function toLoweredRouteFields(r) {
|
|
113
|
+
const title = r.title.toLowerCase();
|
|
114
|
+
const description = r.description.toLowerCase();
|
|
115
|
+
const tags = [...r.tags, r.exportName ?? ""].join(" ").toLowerCase();
|
|
116
|
+
return {
|
|
117
|
+
title,
|
|
118
|
+
description,
|
|
119
|
+
tags,
|
|
120
|
+
content: "",
|
|
121
|
+
combined: title + " " + description + " " + tags,
|
|
122
|
+
titleNoSpaces: title.replace(/\s+/g, ""),
|
|
123
|
+
titleWords: title.split(/\s+/).filter(Boolean),
|
|
124
|
+
descriptionNoSpaces: description.replace(/\s+/g, ""),
|
|
125
|
+
descriptionWords: description.split(/\s+/).filter(Boolean),
|
|
126
|
+
tagsNoSpaces: tags.replace(/\s+/g, ""),
|
|
127
|
+
tagsWords: tags.split(/\s+/).filter(Boolean)
|
|
128
|
+
};
|
|
129
|
+
}
|
|
106
130
|
function filterAndRankPreLowered(items, tokens, getLowered) {
|
|
107
131
|
if (items.length === 0 || tokens.length === 0) return items;
|
|
108
132
|
const scored = [];
|
|
@@ -252,6 +276,11 @@ function fuzzyResolveName(needle, candidates, getNames) {
|
|
|
252
276
|
return bestItem;
|
|
253
277
|
}
|
|
254
278
|
|
|
279
|
+
// src/utils/route.ts
|
|
280
|
+
function routePathToSlug(path) {
|
|
281
|
+
return path.replace(/^\/+|\/+$/g, "").replace(/\//g, "-");
|
|
282
|
+
}
|
|
283
|
+
|
|
255
284
|
// src/tools/get-component.ts
|
|
256
285
|
var SECTION_KEYS = [
|
|
257
286
|
"overview",
|
|
@@ -359,9 +388,6 @@ async function resolveComponent(name) {
|
|
|
359
388
|
return names;
|
|
360
389
|
});
|
|
361
390
|
}
|
|
362
|
-
function pathToSlug(path) {
|
|
363
|
-
return path.replace(/^\//, "").replace(/\//g, "-");
|
|
364
|
-
}
|
|
365
391
|
function buildMetadataResponse(entry, availableSections) {
|
|
366
392
|
const meta = {
|
|
367
393
|
name: entry.title,
|
|
@@ -404,7 +430,7 @@ function registerGetComponent(server) {
|
|
|
404
430
|
isError: true
|
|
405
431
|
};
|
|
406
432
|
}
|
|
407
|
-
const slug =
|
|
433
|
+
const slug = routePathToSlug(entry.path);
|
|
408
434
|
const routeData = await getRouteData(slug);
|
|
409
435
|
const viewSections = Object.keys(routeData.views ?? {}).map((key) => {
|
|
410
436
|
const canonical = Object.entries(VIEW_KEY_MAP).find(
|
|
@@ -594,7 +620,7 @@ function registerGetTokens(server) {
|
|
|
594
620
|
"get_tokens",
|
|
595
621
|
{
|
|
596
622
|
title: "Get Tokens",
|
|
597
|
-
description: 'Returns Nimbus design tokens. No params: lists all categories with counts. With category: returns tokens in that category (large categories are paginated by default). With value: reverse-lookup to find which tokens resolve to that value (e.g. "16px" \u2192 spacing.400).',
|
|
623
|
+
description: 'Returns Nimbus design tokens. No params: lists all categories with counts. With category: returns tokens in that category (large categories are paginated by default). With value: reverse-lookup to find which tokens resolve to that value (e.g. "16px" \u2192 spacing.400). With uikitToken: resolve a UI Kit token name (e.g. "customProperties.constraint7" or "designTokens.spacingXl") to its CSS value, find matching Nimbus tokens, and recommend the best category.',
|
|
598
624
|
inputSchema: {
|
|
599
625
|
category: z2.string().optional().describe(
|
|
600
626
|
'Token category to retrieve, e.g. "spacing", "color", "fontSize". Use "colorPalettes" to list available palette names for the colorPalette prop. Case-insensitive.'
|
|
@@ -602,6 +628,9 @@ function registerGetTokens(server) {
|
|
|
602
628
|
value: z2.string().optional().describe(
|
|
603
629
|
'Reverse-lookup: find tokens whose resolved value matches this string, e.g. "16px" or "#0969DA". Case-insensitive.'
|
|
604
630
|
),
|
|
631
|
+
uikitToken: z2.string().optional().describe(
|
|
632
|
+
'UI Kit token name to resolve, e.g. "constraint7", "spacingXl", "customProperties.constraint7", or "designTokens.spacingXl". Resolves the token to its CSS value, finds matching Nimbus tokens, and recommends the best category. Tokens whose CSS value is a var(...) reference will return an empty tokens array but still provide recommendedCategory.'
|
|
633
|
+
),
|
|
605
634
|
offset: z2.number().int().min(0).default(0).describe(
|
|
606
635
|
"Starting index for paginated results. Only applies when category is provided. Omit or pass 0 for the first page."
|
|
607
636
|
),
|
|
@@ -610,9 +639,34 @@ function registerGetTokens(server) {
|
|
|
610
639
|
)
|
|
611
640
|
}
|
|
612
641
|
},
|
|
613
|
-
async ({ category, value, offset, limit }) => {
|
|
642
|
+
async ({ category, value, uikitToken, offset, limit }) => {
|
|
614
643
|
try {
|
|
615
644
|
const data = await getFlatTokenData();
|
|
645
|
+
if (uikitToken !== void 0) {
|
|
646
|
+
const tokenMap = await getUiKitTokenMap();
|
|
647
|
+
const stripped = uikitToken.replace(/^customProperties\./, "").replace(/^designTokens\./, "");
|
|
648
|
+
const entry = Object.hasOwn(tokenMap, stripped) ? tokenMap[stripped] : void 0;
|
|
649
|
+
if (!entry) {
|
|
650
|
+
return {
|
|
651
|
+
content: [
|
|
652
|
+
{
|
|
653
|
+
type: "text",
|
|
654
|
+
text: `UI Kit token "${stripped}" not found. Pass a camelCase token name like "constraint7", "spacingXl", or "colorPrimary".`
|
|
655
|
+
}
|
|
656
|
+
]
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
const matches = reverseLookup(data, entry.cssValue);
|
|
660
|
+
const payload2 = {
|
|
661
|
+
uikitToken: stripped,
|
|
662
|
+
cssValue: entry.cssValue,
|
|
663
|
+
recommendedCategory: entry.recommendedCategory,
|
|
664
|
+
tokens: matches
|
|
665
|
+
};
|
|
666
|
+
return {
|
|
667
|
+
content: [{ type: "text", text: JSON.stringify(payload2) }]
|
|
668
|
+
};
|
|
669
|
+
}
|
|
616
670
|
if (value !== void 0) {
|
|
617
671
|
const matches = reverseLookup(data, value);
|
|
618
672
|
if (matches.length === 0) {
|
|
@@ -727,18 +781,6 @@ function toSummary(route) {
|
|
|
727
781
|
if (route.tags.length > 0) summary.tags = route.tags;
|
|
728
782
|
return summary;
|
|
729
783
|
}
|
|
730
|
-
function toLowered(r) {
|
|
731
|
-
const title = r.title.toLowerCase();
|
|
732
|
-
const description = r.description.toLowerCase();
|
|
733
|
-
const tags = [...r.tags, r.exportName ?? ""].join(" ").toLowerCase();
|
|
734
|
-
return {
|
|
735
|
-
title,
|
|
736
|
-
description,
|
|
737
|
-
tags,
|
|
738
|
-
content: "",
|
|
739
|
-
combined: title + " " + description + " " + tags
|
|
740
|
-
};
|
|
741
|
-
}
|
|
742
784
|
function registerListComponents(server) {
|
|
743
785
|
server.registerTool(
|
|
744
786
|
"list_components",
|
|
@@ -768,7 +810,7 @@ function registerListComponents(server) {
|
|
|
768
810
|
const tokens = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
769
811
|
const loweredMap = /* @__PURE__ */ new Map();
|
|
770
812
|
for (const r of routes) {
|
|
771
|
-
loweredMap.set(r,
|
|
813
|
+
loweredMap.set(r, toLoweredRouteFields(r));
|
|
772
814
|
}
|
|
773
815
|
const exactMatches = filterAndRankPreLowered(
|
|
774
816
|
routes,
|
|
@@ -821,7 +863,7 @@ function deriveToolHint(route) {
|
|
|
821
863
|
if (route.startsWith("components/") || route.startsWith("patterns/"))
|
|
822
864
|
return "get_component";
|
|
823
865
|
if (route.startsWith("icons")) return "search_icons";
|
|
824
|
-
return
|
|
866
|
+
return "get_docs_page";
|
|
825
867
|
}
|
|
826
868
|
var SNIPPET_LENGTH = 200;
|
|
827
869
|
var SNIPPET_LEAD = 80;
|
|
@@ -879,9 +921,6 @@ function extractSnippet(content, tokens) {
|
|
|
879
921
|
if (end < content.length) snippet = snippet + "\u2026";
|
|
880
922
|
return snippet;
|
|
881
923
|
}
|
|
882
|
-
function routeToSlug(route) {
|
|
883
|
-
return route.replace(/\//g, "-");
|
|
884
|
-
}
|
|
885
924
|
var viewContentCache = /* @__PURE__ */ new WeakMap();
|
|
886
925
|
function getCachedViewContent(viewObj) {
|
|
887
926
|
let cached = viewContentCache.get(viewObj);
|
|
@@ -946,7 +985,7 @@ function findCandidates(index, query, tokens, loweredMap) {
|
|
|
946
985
|
}
|
|
947
986
|
var routeViewsCache = /* @__PURE__ */ new Map();
|
|
948
987
|
async function getRouteViews(route) {
|
|
949
|
-
const slug =
|
|
988
|
+
const slug = routePathToSlug(route);
|
|
950
989
|
const cached = routeViewsCache.get(slug);
|
|
951
990
|
if (cached) return cached;
|
|
952
991
|
let routeData;
|
|
@@ -990,7 +1029,7 @@ async function getRouteViews(route) {
|
|
|
990
1029
|
return result;
|
|
991
1030
|
}
|
|
992
1031
|
function searchRouteViewsSync(route, tokens) {
|
|
993
|
-
const slug =
|
|
1032
|
+
const slug = routePathToSlug(route);
|
|
994
1033
|
const cached = routeViewsCache.get(slug);
|
|
995
1034
|
if (!cached) return null;
|
|
996
1035
|
const { views } = cached;
|
|
@@ -1026,7 +1065,7 @@ function registerSearchDocs(server) {
|
|
|
1026
1065
|
"search_docs",
|
|
1027
1066
|
{
|
|
1028
1067
|
title: "Search Docs",
|
|
1029
|
-
description: "Search all Nimbus docs (components, patterns, hooks, icons, tokens) including guidelines and accessibility views. Returns matching pages with content snippets. Props are not searchable here \u2014 use get_component with section='props' for prop details. Results include a toolHint field indicating which tool to call for deeper info (e.g. get_component, get_tokens, search_icons).",
|
|
1068
|
+
description: "Search all Nimbus docs (components, patterns, hooks, icons, tokens) including guidelines and accessibility views. Returns matching pages with content snippets. Props are not searchable here \u2014 use get_component with section='props' for prop details. Results include a toolHint field indicating which tool to call for deeper info (e.g. get_component, get_tokens, search_icons, get_docs_page).",
|
|
1030
1069
|
inputSchema: {
|
|
1031
1070
|
query: z4.string().describe(
|
|
1032
1071
|
'Search query to find relevant documentation pages. e.g. "form validation", "color tokens", "accessibility", "onChange".'
|
|
@@ -1083,7 +1122,7 @@ function registerSearchDocs(server) {
|
|
|
1083
1122
|
...category ? { category } : {},
|
|
1084
1123
|
...viewMatch && viewMatch.viewKey !== "overview" ? { matchedView: viewMatch.viewKey } : {},
|
|
1085
1124
|
snippet: viewMatch ? extractSnippet(viewMatch.content, tokens) : extractSnippet(stripMarkdown(entry.content), tokens),
|
|
1086
|
-
|
|
1125
|
+
toolHint
|
|
1087
1126
|
};
|
|
1088
1127
|
});
|
|
1089
1128
|
return {
|
|
@@ -1220,11 +1259,134 @@ function registerSearchIcons(server) {
|
|
|
1220
1259
|
);
|
|
1221
1260
|
}
|
|
1222
1261
|
|
|
1262
|
+
// src/tools/get-docs-page.ts
|
|
1263
|
+
import { z as z6 } from "zod";
|
|
1264
|
+
var viewContentCache2 = /* @__PURE__ */ new WeakMap();
|
|
1265
|
+
function getCachedStripped(viewObj) {
|
|
1266
|
+
let cached = viewContentCache2.get(viewObj);
|
|
1267
|
+
if (!cached) {
|
|
1268
|
+
cached = stripMarkdown(viewObj.mdx);
|
|
1269
|
+
viewContentCache2.set(viewObj, cached);
|
|
1270
|
+
}
|
|
1271
|
+
return cached;
|
|
1272
|
+
}
|
|
1273
|
+
function registerGetDocsPage(server) {
|
|
1274
|
+
server.registerTool(
|
|
1275
|
+
"get_docs_page",
|
|
1276
|
+
{
|
|
1277
|
+
title: "Get Docs Page",
|
|
1278
|
+
description: "Returns the full content of a Nimbus documentation page by its route path (as returned by search_docs). For tabbed pages, optionally specify a section to retrieve a single view. Use search_docs first to find the page path.",
|
|
1279
|
+
inputSchema: {
|
|
1280
|
+
path: z6.string().describe(
|
|
1281
|
+
'Route path from search_docs results, e.g. "home/getting-started/installation".'
|
|
1282
|
+
),
|
|
1283
|
+
section: z6.string().optional().describe(
|
|
1284
|
+
'For tabbed pages, which view to return (e.g. "overview", "dev", "guidelines", "a11y"). Omit to get all views concatenated.'
|
|
1285
|
+
)
|
|
1286
|
+
}
|
|
1287
|
+
},
|
|
1288
|
+
async ({ path, section }) => {
|
|
1289
|
+
try {
|
|
1290
|
+
const slug = routePathToSlug(path);
|
|
1291
|
+
let routeData;
|
|
1292
|
+
try {
|
|
1293
|
+
routeData = await getRouteData(slug);
|
|
1294
|
+
} catch {
|
|
1295
|
+
return {
|
|
1296
|
+
content: [
|
|
1297
|
+
{
|
|
1298
|
+
type: "text",
|
|
1299
|
+
text: `Page not found for path "${path}". Use search_docs to find valid page paths.`
|
|
1300
|
+
}
|
|
1301
|
+
],
|
|
1302
|
+
isError: true
|
|
1303
|
+
};
|
|
1304
|
+
}
|
|
1305
|
+
const { meta } = routeData;
|
|
1306
|
+
const availableSections = Object.keys(routeData.views ?? {});
|
|
1307
|
+
const normalizedSection = section?.toLowerCase();
|
|
1308
|
+
if (normalizedSection) {
|
|
1309
|
+
const view = routeData.views?.[normalizedSection];
|
|
1310
|
+
if (!view) {
|
|
1311
|
+
return {
|
|
1312
|
+
content: [
|
|
1313
|
+
{
|
|
1314
|
+
type: "text",
|
|
1315
|
+
text: `Section "${section}" not found for "${meta.title}". Available sections: ${availableSections.join(", ") || "none (single-page content)"}`
|
|
1316
|
+
}
|
|
1317
|
+
],
|
|
1318
|
+
isError: true
|
|
1319
|
+
};
|
|
1320
|
+
}
|
|
1321
|
+
const result2 = {
|
|
1322
|
+
title: meta.title,
|
|
1323
|
+
description: meta.description,
|
|
1324
|
+
path: meta.route,
|
|
1325
|
+
sections: availableSections,
|
|
1326
|
+
content: getCachedStripped(view)
|
|
1327
|
+
};
|
|
1328
|
+
return {
|
|
1329
|
+
content: [{ type: "text", text: JSON.stringify(result2) }]
|
|
1330
|
+
};
|
|
1331
|
+
}
|
|
1332
|
+
let content;
|
|
1333
|
+
if (availableSections.length > 0 && routeData.views) {
|
|
1334
|
+
content = Object.entries(routeData.views).map(([key, view]) => `--- ${key} ---
|
|
1335
|
+
${getCachedStripped(view)}`).join("\n\n");
|
|
1336
|
+
} else if (routeData.mdx) {
|
|
1337
|
+
content = stripMarkdown(routeData.mdx);
|
|
1338
|
+
} else {
|
|
1339
|
+
content = meta.description;
|
|
1340
|
+
}
|
|
1341
|
+
const result = {
|
|
1342
|
+
title: meta.title,
|
|
1343
|
+
description: meta.description,
|
|
1344
|
+
path: meta.route,
|
|
1345
|
+
sections: availableSections,
|
|
1346
|
+
content
|
|
1347
|
+
};
|
|
1348
|
+
return {
|
|
1349
|
+
content: [{ type: "text", text: JSON.stringify(result) }]
|
|
1350
|
+
};
|
|
1351
|
+
} catch {
|
|
1352
|
+
return {
|
|
1353
|
+
content: [
|
|
1354
|
+
{
|
|
1355
|
+
type: "text",
|
|
1356
|
+
text: "Docs data is not available in this environment."
|
|
1357
|
+
}
|
|
1358
|
+
],
|
|
1359
|
+
isError: true
|
|
1360
|
+
};
|
|
1361
|
+
}
|
|
1362
|
+
}
|
|
1363
|
+
);
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1223
1366
|
// src/tools/migrate-from-uikit.ts
|
|
1224
1367
|
import { readFile as readFile3 } from "fs/promises";
|
|
1225
|
-
import { z as
|
|
1368
|
+
import { z as z7 } from "zod";
|
|
1226
1369
|
|
|
1227
1370
|
// src/data/uikit-migration.ts
|
|
1371
|
+
var ICON_WRAPPER_BASE = {
|
|
1372
|
+
component: "Icon",
|
|
1373
|
+
importPath: "@commercetools/nimbus",
|
|
1374
|
+
defaultProps: { size: "2xs", color: "neutral.11" }
|
|
1375
|
+
};
|
|
1376
|
+
var ICON_SIZE_MAPPING = [
|
|
1377
|
+
{ from: "small", to: "2xs" },
|
|
1378
|
+
{ from: "medium", to: "xs" },
|
|
1379
|
+
{ from: "big", to: "md" },
|
|
1380
|
+
{ from: "10", to: "2xs" },
|
|
1381
|
+
{ from: "20", to: "xs" },
|
|
1382
|
+
{ from: "30", to: "sm" },
|
|
1383
|
+
{ from: "40", to: "md" }
|
|
1384
|
+
];
|
|
1385
|
+
var ICON_WRAPPER = {
|
|
1386
|
+
...ICON_WRAPPER_BASE,
|
|
1387
|
+
sizeMapping: ICON_SIZE_MAPPING
|
|
1388
|
+
};
|
|
1389
|
+
var LAYOUT_NESTING_GUIDANCE = "When you encounter nested layout components (e.g. Constraints wrapping Spacings wrapping Card), do NOT migrate each component independently. Instead, analyze the full nesting structure and migrate it as a single unit. Nimbus layout primitives (Stack, Box, Grid) can often collapse multiple nested UIKit wrappers into fewer elements. For example, a Constraints.Horizontal > Spacings.Stack > Spacings.Inset chain can become a single <Box maxWidth={...} gap={...} padding={...}>.";
|
|
1228
1390
|
var MIGRATION_DATA = [
|
|
1229
1391
|
// -------------------------------------------------------------------------
|
|
1230
1392
|
// Buttons
|
|
@@ -1238,7 +1400,16 @@ var MIGRATION_DATA = [
|
|
|
1238
1400
|
breakingChanges: [
|
|
1239
1401
|
"Remove AccessibleButton wrapper, use <Button> directly",
|
|
1240
1402
|
"label prop replaced by children"
|
|
1241
|
-
]
|
|
1403
|
+
],
|
|
1404
|
+
propMappings: [
|
|
1405
|
+
{
|
|
1406
|
+
uiKitProp: "label",
|
|
1407
|
+
nimbusProp: null,
|
|
1408
|
+
changeType: "structural",
|
|
1409
|
+
notes: "Use children instead."
|
|
1410
|
+
}
|
|
1411
|
+
],
|
|
1412
|
+
propMigrations: [{ from: "label", to: "children" }]
|
|
1242
1413
|
},
|
|
1243
1414
|
{
|
|
1244
1415
|
uiKitName: "FlatButton",
|
|
@@ -1248,9 +1419,51 @@ var MIGRATION_DATA = [
|
|
|
1248
1419
|
notes: `Use <Button variant="ghost"> for flat styling. UI Kit tone prop ('primary'|'secondary'|'inverted'|'critical') maps to Nimbus colorPalette/variant.`,
|
|
1249
1420
|
breakingChanges: [
|
|
1250
1421
|
"Replace FlatButton with <Button>",
|
|
1422
|
+
"Default color changed: UI Kit FlatButton was blue (tone='primary') by default; Nimbus Button defaults to colorPalette='neutral' (gray). Add colorPalette='primary' to preserve the blue appearance.",
|
|
1251
1423
|
"label prop replaced by children",
|
|
1252
1424
|
"tone prop replaced by variant/colorPalette",
|
|
1253
1425
|
"iconPosition prop removed; pass icon as a child of <Button>"
|
|
1426
|
+
],
|
|
1427
|
+
propMappings: [
|
|
1428
|
+
{
|
|
1429
|
+
uiKitProp: "_component",
|
|
1430
|
+
nimbusProp: "variant",
|
|
1431
|
+
changeType: "value-mapping",
|
|
1432
|
+
fixedValue: "ghost"
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
uiKitProp: "label",
|
|
1436
|
+
nimbusProp: null,
|
|
1437
|
+
changeType: "structural",
|
|
1438
|
+
notes: "Use children instead."
|
|
1439
|
+
},
|
|
1440
|
+
{
|
|
1441
|
+
uiKitProp: "tone",
|
|
1442
|
+
nimbusProp: "colorPalette",
|
|
1443
|
+
changeType: "value-mapping",
|
|
1444
|
+
valueMapping: [
|
|
1445
|
+
{ from: "primary", to: "primary" },
|
|
1446
|
+
{ from: "secondary", to: "neutral" },
|
|
1447
|
+
{ from: "critical", to: "critical" }
|
|
1448
|
+
],
|
|
1449
|
+
notes: "'inverted' has no direct equivalent; use variant/colorPalette."
|
|
1450
|
+
},
|
|
1451
|
+
{
|
|
1452
|
+
uiKitProp: "icon",
|
|
1453
|
+
nimbusProp: null,
|
|
1454
|
+
changeType: "structural",
|
|
1455
|
+
notes: "Pass icon as a child."
|
|
1456
|
+
},
|
|
1457
|
+
{
|
|
1458
|
+
uiKitProp: "iconPosition",
|
|
1459
|
+
nimbusProp: null,
|
|
1460
|
+
changeType: "removed",
|
|
1461
|
+
notes: "Pass icon as a child."
|
|
1462
|
+
}
|
|
1463
|
+
],
|
|
1464
|
+
propMigrations: [
|
|
1465
|
+
{ from: "label", to: "children" },
|
|
1466
|
+
{ from: "icon", to: "children", position: "before" }
|
|
1254
1467
|
]
|
|
1255
1468
|
},
|
|
1256
1469
|
{
|
|
@@ -1265,6 +1478,37 @@ var MIGRATION_DATA = [
|
|
|
1265
1478
|
"to prop replaced by href (or use asChild with router Link)",
|
|
1266
1479
|
"isExternal prop replaced by target='_blank' rel='noopener noreferrer'",
|
|
1267
1480
|
"iconLeft prop removed; pass icon as a child of <Button>"
|
|
1481
|
+
],
|
|
1482
|
+
propMappings: [
|
|
1483
|
+
{
|
|
1484
|
+
uiKitProp: "_component",
|
|
1485
|
+
nimbusProp: "variant",
|
|
1486
|
+
changeType: "value-mapping",
|
|
1487
|
+
fixedValue: "link"
|
|
1488
|
+
},
|
|
1489
|
+
{
|
|
1490
|
+
uiKitProp: "label",
|
|
1491
|
+
nimbusProp: null,
|
|
1492
|
+
changeType: "structural",
|
|
1493
|
+
notes: "Use children instead."
|
|
1494
|
+
},
|
|
1495
|
+
{ uiKitProp: "to", nimbusProp: "href", changeType: "rename" },
|
|
1496
|
+
{
|
|
1497
|
+
uiKitProp: "isExternal",
|
|
1498
|
+
nimbusProp: null,
|
|
1499
|
+
changeType: "removed",
|
|
1500
|
+
notes: "Use target='_blank' rel='noopener noreferrer' instead."
|
|
1501
|
+
},
|
|
1502
|
+
{
|
|
1503
|
+
uiKitProp: "iconLeft",
|
|
1504
|
+
nimbusProp: null,
|
|
1505
|
+
changeType: "removed",
|
|
1506
|
+
notes: "Pass icon as a child."
|
|
1507
|
+
}
|
|
1508
|
+
],
|
|
1509
|
+
propMigrations: [
|
|
1510
|
+
{ from: "label", to: "children" },
|
|
1511
|
+
{ from: "iconLeft", to: "children", position: "before" }
|
|
1268
1512
|
]
|
|
1269
1513
|
},
|
|
1270
1514
|
{
|
|
@@ -1275,9 +1519,51 @@ var MIGRATION_DATA = [
|
|
|
1275
1519
|
notes: 'Use <Button variant="solid">. Note: the default Button variant is "subtle", so variant="solid" must be set explicitly. UI Kit used a required label prop; Nimbus uses children for button text.',
|
|
1276
1520
|
breakingChanges: [
|
|
1277
1521
|
"Replace PrimaryButton with <Button variant='solid'>",
|
|
1522
|
+
"Default color changed: UI Kit PrimaryButton was blue (tone='primary') by default; Nimbus Button defaults to colorPalette='neutral' (gray). Add colorPalette='primary' to preserve the blue appearance.",
|
|
1278
1523
|
"label prop replaced by children",
|
|
1279
1524
|
"iconLeft/iconRight props removed; pass icon as a child of <Button>",
|
|
1280
1525
|
"tone prop ('urgent'|'primary'|'critical') replaced by colorPalette"
|
|
1526
|
+
],
|
|
1527
|
+
propMappings: [
|
|
1528
|
+
{
|
|
1529
|
+
uiKitProp: "_component",
|
|
1530
|
+
nimbusProp: "variant",
|
|
1531
|
+
changeType: "value-mapping",
|
|
1532
|
+
fixedValue: "solid"
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
uiKitProp: "label",
|
|
1536
|
+
nimbusProp: null,
|
|
1537
|
+
changeType: "structural",
|
|
1538
|
+
notes: "Use children instead."
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
uiKitProp: "tone",
|
|
1542
|
+
nimbusProp: "colorPalette",
|
|
1543
|
+
changeType: "value-mapping",
|
|
1544
|
+
valueMapping: [
|
|
1545
|
+
{ from: "primary", to: "primary" },
|
|
1546
|
+
{ from: "urgent", to: "critical" },
|
|
1547
|
+
{ from: "critical", to: "critical" }
|
|
1548
|
+
]
|
|
1549
|
+
},
|
|
1550
|
+
{
|
|
1551
|
+
uiKitProp: "iconLeft",
|
|
1552
|
+
nimbusProp: null,
|
|
1553
|
+
changeType: "removed",
|
|
1554
|
+
notes: "Pass icon as a child."
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
uiKitProp: "iconRight",
|
|
1558
|
+
nimbusProp: null,
|
|
1559
|
+
changeType: "removed",
|
|
1560
|
+
notes: "Pass icon as a child."
|
|
1561
|
+
}
|
|
1562
|
+
],
|
|
1563
|
+
propMigrations: [
|
|
1564
|
+
{ from: "label", to: "children" },
|
|
1565
|
+
{ from: "iconLeft", to: "children", position: "before" },
|
|
1566
|
+
{ from: "iconRight", to: "children", position: "after" }
|
|
1281
1567
|
]
|
|
1282
1568
|
},
|
|
1283
1569
|
{
|
|
@@ -1288,9 +1574,50 @@ var MIGRATION_DATA = [
|
|
|
1288
1574
|
notes: 'Use <Button variant="outline"> for the secondary style. UI Kit used a required label prop; Nimbus uses children.',
|
|
1289
1575
|
breakingChanges: [
|
|
1290
1576
|
"Replace SecondaryButton with <Button variant='outline'>",
|
|
1577
|
+
"Default color changed: UI Kit SecondaryButton was blue (theme='default') by default; Nimbus Button defaults to colorPalette='neutral' (gray). Add colorPalette='primary' to preserve the blue appearance.",
|
|
1291
1578
|
"label prop replaced by children",
|
|
1292
1579
|
"iconLeft/iconRight props removed; pass icon as a child of <Button>",
|
|
1293
1580
|
"theme prop ('default'|'info') replaced by colorPalette"
|
|
1581
|
+
],
|
|
1582
|
+
propMappings: [
|
|
1583
|
+
{
|
|
1584
|
+
uiKitProp: "_component",
|
|
1585
|
+
nimbusProp: "variant",
|
|
1586
|
+
changeType: "value-mapping",
|
|
1587
|
+
fixedValue: "outline"
|
|
1588
|
+
},
|
|
1589
|
+
{
|
|
1590
|
+
uiKitProp: "label",
|
|
1591
|
+
nimbusProp: null,
|
|
1592
|
+
changeType: "structural",
|
|
1593
|
+
notes: "Use children instead."
|
|
1594
|
+
},
|
|
1595
|
+
{
|
|
1596
|
+
uiKitProp: "theme",
|
|
1597
|
+
nimbusProp: "colorPalette",
|
|
1598
|
+
changeType: "value-mapping",
|
|
1599
|
+
valueMapping: [
|
|
1600
|
+
{ from: "default", to: "primary" },
|
|
1601
|
+
{ from: "info", to: "info" }
|
|
1602
|
+
]
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
uiKitProp: "iconLeft",
|
|
1606
|
+
nimbusProp: null,
|
|
1607
|
+
changeType: "removed",
|
|
1608
|
+
notes: "Pass icon as a child."
|
|
1609
|
+
},
|
|
1610
|
+
{
|
|
1611
|
+
uiKitProp: "iconRight",
|
|
1612
|
+
nimbusProp: null,
|
|
1613
|
+
changeType: "removed",
|
|
1614
|
+
notes: "Pass icon as a child."
|
|
1615
|
+
}
|
|
1616
|
+
],
|
|
1617
|
+
propMigrations: [
|
|
1618
|
+
{ from: "label", to: "children" },
|
|
1619
|
+
{ from: "iconLeft", to: "children", position: "before" },
|
|
1620
|
+
{ from: "iconRight", to: "children", position: "after" }
|
|
1294
1621
|
]
|
|
1295
1622
|
},
|
|
1296
1623
|
{
|
|
@@ -1303,7 +1630,23 @@ var MIGRATION_DATA = [
|
|
|
1303
1630
|
"label prop replaced by aria-label",
|
|
1304
1631
|
"icon prop replaced by icon as children",
|
|
1305
1632
|
"theme prop replaced by variant/colorPalette"
|
|
1306
|
-
]
|
|
1633
|
+
],
|
|
1634
|
+
propMappings: [
|
|
1635
|
+
{ uiKitProp: "label", nimbusProp: "aria-label", changeType: "rename" },
|
|
1636
|
+
{
|
|
1637
|
+
uiKitProp: "icon",
|
|
1638
|
+
nimbusProp: null,
|
|
1639
|
+
changeType: "structural",
|
|
1640
|
+
notes: "Pass icon as children."
|
|
1641
|
+
},
|
|
1642
|
+
{
|
|
1643
|
+
uiKitProp: "theme",
|
|
1644
|
+
nimbusProp: "variant",
|
|
1645
|
+
changeType: "structural",
|
|
1646
|
+
notes: "UIKit theme maps to both variant and colorPalette in Nimbus."
|
|
1647
|
+
}
|
|
1648
|
+
],
|
|
1649
|
+
propMigrations: [{ from: "icon", to: "children" }]
|
|
1307
1650
|
},
|
|
1308
1651
|
{
|
|
1309
1652
|
uiKitName: "SecondaryIconButton",
|
|
@@ -1316,7 +1659,28 @@ var MIGRATION_DATA = [
|
|
|
1316
1659
|
"color prop ('solid'|'primary'|'info') replaced by variant/colorPalette",
|
|
1317
1660
|
"icon prop replaced by icon as children",
|
|
1318
1661
|
"label prop replaced by aria-label"
|
|
1319
|
-
]
|
|
1662
|
+
],
|
|
1663
|
+
propMappings: [
|
|
1664
|
+
{
|
|
1665
|
+
uiKitProp: "color",
|
|
1666
|
+
nimbusProp: "variant",
|
|
1667
|
+
changeType: "value-mapping",
|
|
1668
|
+
valueMapping: [
|
|
1669
|
+
{ from: "solid", to: "solid" },
|
|
1670
|
+
{ from: "primary", to: "outline" },
|
|
1671
|
+
{ from: "info", to: "outline" }
|
|
1672
|
+
],
|
|
1673
|
+
notes: "Defaults to variant='outline' when no color prop is specified. 'primary'/'info' also imply a colorPalette; set colorPalette separately."
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
uiKitProp: "icon",
|
|
1677
|
+
nimbusProp: null,
|
|
1678
|
+
changeType: "structural",
|
|
1679
|
+
notes: "Pass icon as children."
|
|
1680
|
+
},
|
|
1681
|
+
{ uiKitProp: "label", nimbusProp: "aria-label", changeType: "rename" }
|
|
1682
|
+
],
|
|
1683
|
+
propMigrations: [{ from: "icon", to: "children" }]
|
|
1320
1684
|
},
|
|
1321
1685
|
{
|
|
1322
1686
|
uiKitName: "PrimaryActionDropdown",
|
|
@@ -1326,6 +1690,7 @@ var MIGRATION_DATA = [
|
|
|
1326
1690
|
notes: "SplitButton combines a primary action button with a dropdown menu. Compose using SplitButton + Menu.",
|
|
1327
1691
|
breakingChanges: [
|
|
1328
1692
|
"Rename to SplitButton",
|
|
1693
|
+
"Default color changed: UI Kit PrimaryActionDropdown was blue by default; Nimbus SplitButton defaults to colorPalette='neutral' (gray). Add colorPalette='primary' to preserve the blue appearance.",
|
|
1329
1694
|
"Menu items now use Nimbus Menu composition pattern"
|
|
1330
1695
|
]
|
|
1331
1696
|
},
|
|
@@ -1344,6 +1709,27 @@ var MIGRATION_DATA = [
|
|
|
1344
1709
|
"hasWarning prop removed",
|
|
1345
1710
|
"isAutofocussed replaced by autoFocus",
|
|
1346
1711
|
"isCondensed prop replaced by size='sm'"
|
|
1712
|
+
],
|
|
1713
|
+
propMappings: [
|
|
1714
|
+
{ uiKitProp: "hasError", nimbusProp: "isInvalid", changeType: "rename" },
|
|
1715
|
+
{ uiKitProp: "hasWarning", nimbusProp: null, changeType: "removed" },
|
|
1716
|
+
{
|
|
1717
|
+
uiKitProp: "isAutofocussed",
|
|
1718
|
+
nimbusProp: "autoFocus",
|
|
1719
|
+
changeType: "rename"
|
|
1720
|
+
},
|
|
1721
|
+
{
|
|
1722
|
+
uiKitProp: "isCondensed",
|
|
1723
|
+
nimbusProp: "size",
|
|
1724
|
+
changeType: "value-mapping",
|
|
1725
|
+
valueMapping: [{ from: "true", to: "sm" }]
|
|
1726
|
+
},
|
|
1727
|
+
{
|
|
1728
|
+
uiKitProp: "onChange",
|
|
1729
|
+
nimbusProp: "onChange",
|
|
1730
|
+
changeType: "structural",
|
|
1731
|
+
notes: "Receives string value instead of ChangeEvent."
|
|
1732
|
+
}
|
|
1347
1733
|
]
|
|
1348
1734
|
},
|
|
1349
1735
|
{
|
|
@@ -1360,6 +1746,28 @@ var MIGRATION_DATA = [
|
|
|
1360
1746
|
"warnings prop removed",
|
|
1361
1747
|
"touched prop removed",
|
|
1362
1748
|
"onChange now receives a string value instead of ChangeEvent<HTMLInputElement>"
|
|
1749
|
+
],
|
|
1750
|
+
propMappings: [
|
|
1751
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
1752
|
+
{
|
|
1753
|
+
uiKitProp: "hint",
|
|
1754
|
+
nimbusProp: "description",
|
|
1755
|
+
changeType: "rename"
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
uiKitProp: "errors",
|
|
1759
|
+
nimbusProp: "errors",
|
|
1760
|
+
changeType: "structural",
|
|
1761
|
+
notes: "Now expects FieldErrorsData (from FieldErrors) instead of a Record<string, boolean>."
|
|
1762
|
+
},
|
|
1763
|
+
{ uiKitProp: "warnings", nimbusProp: null, changeType: "removed" },
|
|
1764
|
+
{ uiKitProp: "touched", nimbusProp: null, changeType: "removed" },
|
|
1765
|
+
{
|
|
1766
|
+
uiKitProp: "onChange",
|
|
1767
|
+
nimbusProp: "onChange",
|
|
1768
|
+
changeType: "structural",
|
|
1769
|
+
notes: "Receives string value instead of ChangeEvent."
|
|
1770
|
+
}
|
|
1363
1771
|
]
|
|
1364
1772
|
},
|
|
1365
1773
|
{
|
|
@@ -1373,6 +1781,21 @@ var MIGRATION_DATA = [
|
|
|
1373
1781
|
"hasError prop replaced by isInvalid",
|
|
1374
1782
|
"hasWarning prop removed",
|
|
1375
1783
|
"isAutofocussed replaced by autoFocus"
|
|
1784
|
+
],
|
|
1785
|
+
propMappings: [
|
|
1786
|
+
{ uiKitProp: "hasError", nimbusProp: "isInvalid", changeType: "rename" },
|
|
1787
|
+
{ uiKitProp: "hasWarning", nimbusProp: null, changeType: "removed" },
|
|
1788
|
+
{
|
|
1789
|
+
uiKitProp: "isAutofocussed",
|
|
1790
|
+
nimbusProp: "autoFocus",
|
|
1791
|
+
changeType: "rename"
|
|
1792
|
+
},
|
|
1793
|
+
{
|
|
1794
|
+
uiKitProp: "onChange",
|
|
1795
|
+
nimbusProp: "onChange",
|
|
1796
|
+
changeType: "structural",
|
|
1797
|
+
notes: "Receives string value instead of ChangeEvent."
|
|
1798
|
+
}
|
|
1376
1799
|
]
|
|
1377
1800
|
},
|
|
1378
1801
|
{
|
|
@@ -1388,6 +1811,27 @@ var MIGRATION_DATA = [
|
|
|
1388
1811
|
"errors (Record) replaced by passing <FieldErrors> to the errorMessage prop",
|
|
1389
1812
|
"warnings prop removed",
|
|
1390
1813
|
"onChange now receives a string value instead of ChangeEvent<HTMLTextAreaElement>"
|
|
1814
|
+
],
|
|
1815
|
+
propMappings: [
|
|
1816
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
1817
|
+
{
|
|
1818
|
+
uiKitProp: "hint",
|
|
1819
|
+
nimbusProp: "description",
|
|
1820
|
+
changeType: "rename"
|
|
1821
|
+
},
|
|
1822
|
+
{
|
|
1823
|
+
uiKitProp: "errors",
|
|
1824
|
+
nimbusProp: "errors",
|
|
1825
|
+
changeType: "structural",
|
|
1826
|
+
notes: "Now expects FieldErrorsData (from FieldErrors) instead of a Record<string, boolean>."
|
|
1827
|
+
},
|
|
1828
|
+
{ uiKitProp: "warnings", nimbusProp: null, changeType: "removed" },
|
|
1829
|
+
{
|
|
1830
|
+
uiKitProp: "onChange",
|
|
1831
|
+
nimbusProp: "onChange",
|
|
1832
|
+
changeType: "structural",
|
|
1833
|
+
notes: "Receives string value instead of ChangeEvent."
|
|
1834
|
+
}
|
|
1391
1835
|
]
|
|
1392
1836
|
},
|
|
1393
1837
|
{
|
|
@@ -1400,6 +1844,20 @@ var MIGRATION_DATA = [
|
|
|
1400
1844
|
"onChange now receives a string value instead of ChangeEvent<HTMLInputElement>",
|
|
1401
1845
|
"hasError prop replaced by isInvalid",
|
|
1402
1846
|
"isAutofocussed replaced by autoFocus"
|
|
1847
|
+
],
|
|
1848
|
+
propMappings: [
|
|
1849
|
+
{ uiKitProp: "hasError", nimbusProp: "isInvalid", changeType: "rename" },
|
|
1850
|
+
{
|
|
1851
|
+
uiKitProp: "isAutofocussed",
|
|
1852
|
+
nimbusProp: "autoFocus",
|
|
1853
|
+
changeType: "rename"
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
uiKitProp: "onChange",
|
|
1857
|
+
nimbusProp: "onChange",
|
|
1858
|
+
changeType: "structural",
|
|
1859
|
+
notes: "Receives string value instead of ChangeEvent."
|
|
1860
|
+
}
|
|
1403
1861
|
]
|
|
1404
1862
|
},
|
|
1405
1863
|
{
|
|
@@ -1413,6 +1871,20 @@ var MIGRATION_DATA = [
|
|
|
1413
1871
|
"title prop renamed to label",
|
|
1414
1872
|
"hint prop renamed to description",
|
|
1415
1873
|
"errors (Record) replaced by passing <FieldErrors> to the errorMessage prop"
|
|
1874
|
+
],
|
|
1875
|
+
propMappings: [
|
|
1876
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
1877
|
+
{
|
|
1878
|
+
uiKitProp: "hint",
|
|
1879
|
+
nimbusProp: "description",
|
|
1880
|
+
changeType: "rename"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
uiKitProp: "errors",
|
|
1884
|
+
nimbusProp: "errors",
|
|
1885
|
+
changeType: "structural",
|
|
1886
|
+
notes: "Now expects FieldErrorsData (from FieldErrors) instead of a Record<string, boolean>."
|
|
1887
|
+
}
|
|
1416
1888
|
]
|
|
1417
1889
|
},
|
|
1418
1890
|
{
|
|
@@ -1425,6 +1897,20 @@ var MIGRATION_DATA = [
|
|
|
1425
1897
|
"Rename to ComboBox",
|
|
1426
1898
|
"options array replaced by items prop with ComboBox.Item render function",
|
|
1427
1899
|
"onChange received TCustomEvent; now receives selected key directly"
|
|
1900
|
+
],
|
|
1901
|
+
propMappings: [
|
|
1902
|
+
{
|
|
1903
|
+
uiKitProp: "loadOptions",
|
|
1904
|
+
nimbusProp: null,
|
|
1905
|
+
changeType: "structural",
|
|
1906
|
+
notes: "Replace loadOptions callback with items prop + ComboBox.Item render function."
|
|
1907
|
+
},
|
|
1908
|
+
{
|
|
1909
|
+
uiKitProp: "onChange",
|
|
1910
|
+
nimbusProp: "onSelectionChange",
|
|
1911
|
+
changeType: "structural",
|
|
1912
|
+
notes: "Receives the selected key directly instead of a TCustomEvent."
|
|
1913
|
+
}
|
|
1428
1914
|
]
|
|
1429
1915
|
},
|
|
1430
1916
|
{
|
|
@@ -1438,6 +1924,26 @@ var MIGRATION_DATA = [
|
|
|
1438
1924
|
"title prop replaced by FormField label",
|
|
1439
1925
|
"hint prop replaced by FormField description",
|
|
1440
1926
|
"errors (Record) replaced by passing <FieldErrors> as a child of FormField.Error"
|
|
1927
|
+
],
|
|
1928
|
+
propMappings: [
|
|
1929
|
+
{
|
|
1930
|
+
uiKitProp: "title",
|
|
1931
|
+
nimbusProp: null,
|
|
1932
|
+
changeType: "structural",
|
|
1933
|
+
notes: "Use the FormField label prop instead."
|
|
1934
|
+
},
|
|
1935
|
+
{
|
|
1936
|
+
uiKitProp: "hint",
|
|
1937
|
+
nimbusProp: null,
|
|
1938
|
+
changeType: "structural",
|
|
1939
|
+
notes: "Use the FormField description prop instead."
|
|
1940
|
+
},
|
|
1941
|
+
{
|
|
1942
|
+
uiKitProp: "errors",
|
|
1943
|
+
nimbusProp: null,
|
|
1944
|
+
changeType: "structural",
|
|
1945
|
+
notes: "Pass <FieldErrors> as a child of FormField.Error."
|
|
1946
|
+
}
|
|
1441
1947
|
]
|
|
1442
1948
|
},
|
|
1443
1949
|
{
|
|
@@ -1449,6 +1955,40 @@ var MIGRATION_DATA = [
|
|
|
1449
1955
|
breakingChanges: [
|
|
1450
1956
|
"Rename to ScopedSearchInput",
|
|
1451
1957
|
"scope options now use items prop with ScopedSearchInput.Item children"
|
|
1958
|
+
],
|
|
1959
|
+
propMappings: [
|
|
1960
|
+
{
|
|
1961
|
+
uiKitProp: "options",
|
|
1962
|
+
nimbusProp: "options",
|
|
1963
|
+
changeType: "structural",
|
|
1964
|
+
notes: "Shape changed to ScopedSearchInputOption[] | ScopedSearchInputOptionGroup[]."
|
|
1965
|
+
}
|
|
1966
|
+
]
|
|
1967
|
+
},
|
|
1968
|
+
{
|
|
1969
|
+
uiKitName: "SearchTextInput",
|
|
1970
|
+
nimbusEquivalent: "SearchInput",
|
|
1971
|
+
importPath: "@commercetools/nimbus",
|
|
1972
|
+
mappingType: "direct",
|
|
1973
|
+
notes: "Direct replacement. Nimbus SearchInput provides built-in clear button and search icon.",
|
|
1974
|
+
breakingChanges: [
|
|
1975
|
+
"Rename to SearchInput",
|
|
1976
|
+
"onChange receives a string value instead of ChangeEvent",
|
|
1977
|
+
"onSubmit replaced by onClear for the clear action"
|
|
1978
|
+
],
|
|
1979
|
+
propMappings: [
|
|
1980
|
+
{
|
|
1981
|
+
uiKitProp: "onChange",
|
|
1982
|
+
nimbusProp: "onChange",
|
|
1983
|
+
changeType: "structural",
|
|
1984
|
+
notes: "Receives string value instead of ChangeEvent."
|
|
1985
|
+
},
|
|
1986
|
+
{
|
|
1987
|
+
uiKitProp: "onSubmit",
|
|
1988
|
+
nimbusProp: "onClear",
|
|
1989
|
+
changeType: "structural",
|
|
1990
|
+
notes: "UIKit onSubmit (search action) has no direct equivalent. Use onClear for the clear button action."
|
|
1991
|
+
}
|
|
1452
1992
|
]
|
|
1453
1993
|
},
|
|
1454
1994
|
// -------------------------------------------------------------------------
|
|
@@ -1466,6 +2006,40 @@ var MIGRATION_DATA = [
|
|
|
1466
2006
|
"onChange received TCustomEvent (target.value); now receives selected key directly",
|
|
1467
2007
|
"isMulti support changed; check Nimbus Select API for multi-select",
|
|
1468
2008
|
"appearance prop ('default'|'quiet'|'filter') replaced by variant"
|
|
2009
|
+
],
|
|
2010
|
+
propMappings: [
|
|
2011
|
+
{
|
|
2012
|
+
uiKitProp: "appearance",
|
|
2013
|
+
nimbusProp: "variant",
|
|
2014
|
+
changeType: "value-mapping",
|
|
2015
|
+
valueMapping: [
|
|
2016
|
+
{ from: "default", to: "outline" },
|
|
2017
|
+
{ from: "quiet", to: "ghost" }
|
|
2018
|
+
],
|
|
2019
|
+
notes: "appearance='filter' has no direct equivalent."
|
|
2020
|
+
},
|
|
2021
|
+
{
|
|
2022
|
+
uiKitProp: "options",
|
|
2023
|
+
nimbusProp: null,
|
|
2024
|
+
changeType: "structural",
|
|
2025
|
+
notes: "Replace with Select.Option children inside Select.Options."
|
|
2026
|
+
},
|
|
2027
|
+
{
|
|
2028
|
+
uiKitProp: "onChange",
|
|
2029
|
+
nimbusProp: "onChange",
|
|
2030
|
+
changeType: "structural",
|
|
2031
|
+
notes: "Receives selected key instead of TCustomEvent."
|
|
2032
|
+
}
|
|
2033
|
+
],
|
|
2034
|
+
callbackAdapters: [
|
|
2035
|
+
{
|
|
2036
|
+
prop: "onChange",
|
|
2037
|
+
from: "(event: TCustomEvent) => void \u2014 access event.target.value",
|
|
2038
|
+
to: "(value: Key | null) => void \u2014 single selection only"
|
|
2039
|
+
}
|
|
2040
|
+
],
|
|
2041
|
+
typeNotes: [
|
|
2042
|
+
"Key type is string | number from @react-types/shared; Nimbus Select is single-selection only \u2014 for multi-select use cases, migrate to ComboBox instead"
|
|
1469
2043
|
]
|
|
1470
2044
|
},
|
|
1471
2045
|
{
|
|
@@ -1479,6 +2053,26 @@ var MIGRATION_DATA = [
|
|
|
1479
2053
|
"options array replaced by items prop with ComboBox.Item render function",
|
|
1480
2054
|
"onCreateOption replaced by allowsCustomOptions + custom onInputChange logic",
|
|
1481
2055
|
"onChange received TCustomEvent; now receives selected key directly"
|
|
2056
|
+
],
|
|
2057
|
+
propMappings: [
|
|
2058
|
+
{
|
|
2059
|
+
uiKitProp: "options",
|
|
2060
|
+
nimbusProp: "items",
|
|
2061
|
+
changeType: "structural",
|
|
2062
|
+
notes: "Options array replaced by items collection with a ComboBox.Item render function."
|
|
2063
|
+
},
|
|
2064
|
+
{
|
|
2065
|
+
uiKitProp: "onCreateOption",
|
|
2066
|
+
nimbusProp: null,
|
|
2067
|
+
changeType: "removed",
|
|
2068
|
+
notes: "Use allowsCustomOptions plus custom onInputChange logic instead."
|
|
2069
|
+
},
|
|
2070
|
+
{
|
|
2071
|
+
uiKitProp: "onChange",
|
|
2072
|
+
nimbusProp: "onSelectionChange",
|
|
2073
|
+
changeType: "structural",
|
|
2074
|
+
notes: "Receives the selected key directly instead of a TCustomEvent."
|
|
2075
|
+
}
|
|
1482
2076
|
]
|
|
1483
2077
|
},
|
|
1484
2078
|
{
|
|
@@ -1492,6 +2086,26 @@ var MIGRATION_DATA = [
|
|
|
1492
2086
|
"loadOptions callback replaced by onInputChange + external async fetch + items state",
|
|
1493
2087
|
"onCreateOption replaced by allowsCustomOptions + custom logic",
|
|
1494
2088
|
"onChange received TCustomEvent; now receives selected key directly"
|
|
2089
|
+
],
|
|
2090
|
+
propMappings: [
|
|
2091
|
+
{
|
|
2092
|
+
uiKitProp: "loadOptions",
|
|
2093
|
+
nimbusProp: null,
|
|
2094
|
+
changeType: "removed",
|
|
2095
|
+
notes: "Use onInputChange plus an external async fetch that updates the items state."
|
|
2096
|
+
},
|
|
2097
|
+
{
|
|
2098
|
+
uiKitProp: "onCreateOption",
|
|
2099
|
+
nimbusProp: null,
|
|
2100
|
+
changeType: "removed",
|
|
2101
|
+
notes: "Use allowsCustomOptions plus custom onInputChange logic instead."
|
|
2102
|
+
},
|
|
2103
|
+
{
|
|
2104
|
+
uiKitProp: "onChange",
|
|
2105
|
+
nimbusProp: "onSelectionChange",
|
|
2106
|
+
changeType: "structural",
|
|
2107
|
+
notes: "Receives the selected key directly instead of a TCustomEvent."
|
|
2108
|
+
}
|
|
1495
2109
|
]
|
|
1496
2110
|
},
|
|
1497
2111
|
{
|
|
@@ -1504,6 +2118,20 @@ var MIGRATION_DATA = [
|
|
|
1504
2118
|
"Rename to ComboBox",
|
|
1505
2119
|
"loadOptions callback replaced by onInputChange + external async fetch + items state",
|
|
1506
2120
|
"onChange received TCustomEvent; now receives selected key directly"
|
|
2121
|
+
],
|
|
2122
|
+
propMappings: [
|
|
2123
|
+
{
|
|
2124
|
+
uiKitProp: "loadOptions",
|
|
2125
|
+
nimbusProp: null,
|
|
2126
|
+
changeType: "removed",
|
|
2127
|
+
notes: "Use onInputChange plus an external async fetch that updates the items state."
|
|
2128
|
+
},
|
|
2129
|
+
{
|
|
2130
|
+
uiKitProp: "onChange",
|
|
2131
|
+
nimbusProp: "onSelectionChange",
|
|
2132
|
+
changeType: "structural",
|
|
2133
|
+
notes: "Receives the selected key directly instead of a TCustomEvent."
|
|
2134
|
+
}
|
|
1507
2135
|
]
|
|
1508
2136
|
},
|
|
1509
2137
|
// -------------------------------------------------------------------------
|
|
@@ -1520,6 +2148,36 @@ var MIGRATION_DATA = [
|
|
|
1520
2148
|
"value was string|number; now must be a number",
|
|
1521
2149
|
"hasError prop replaced by isInvalid",
|
|
1522
2150
|
"isAutofocussed replaced by autoFocus"
|
|
2151
|
+
],
|
|
2152
|
+
propMappings: [
|
|
2153
|
+
{ uiKitProp: "hasError", nimbusProp: "isInvalid", changeType: "rename" },
|
|
2154
|
+
{
|
|
2155
|
+
uiKitProp: "isAutofocussed",
|
|
2156
|
+
nimbusProp: "autoFocus",
|
|
2157
|
+
changeType: "rename"
|
|
2158
|
+
},
|
|
2159
|
+
{
|
|
2160
|
+
uiKitProp: "onChange",
|
|
2161
|
+
nimbusProp: "onChange",
|
|
2162
|
+
changeType: "structural",
|
|
2163
|
+
notes: "Receives a number instead of ChangeEvent."
|
|
2164
|
+
},
|
|
2165
|
+
{
|
|
2166
|
+
uiKitProp: "value",
|
|
2167
|
+
nimbusProp: "value",
|
|
2168
|
+
changeType: "structural",
|
|
2169
|
+
notes: "Was string|number; now must be a number."
|
|
2170
|
+
}
|
|
2171
|
+
],
|
|
2172
|
+
callbackAdapters: [
|
|
2173
|
+
{
|
|
2174
|
+
prop: "onChange",
|
|
2175
|
+
from: "(event: ChangeEvent<HTMLInputElement>) => void \u2014 event.target.value is a string",
|
|
2176
|
+
to: "(value: number) => void"
|
|
2177
|
+
}
|
|
2178
|
+
],
|
|
2179
|
+
typeNotes: [
|
|
2180
|
+
"value was string | number, now must be number; empty string '' is no longer valid \u2014 use NaN or conditional rendering"
|
|
1523
2181
|
]
|
|
1524
2182
|
},
|
|
1525
2183
|
{
|
|
@@ -1532,7 +2190,21 @@ var MIGRATION_DATA = [
|
|
|
1532
2190
|
"Rename to NumberInputField",
|
|
1533
2191
|
"title prop renamed to label",
|
|
1534
2192
|
"hint prop renamed to description",
|
|
1535
|
-
"errors
|
|
2193
|
+
"errors prop accepts FieldErrorsData; convert UIKit Record<string, boolean> via <FieldErrors>"
|
|
2194
|
+
],
|
|
2195
|
+
propMappings: [
|
|
2196
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
2197
|
+
{
|
|
2198
|
+
uiKitProp: "hint",
|
|
2199
|
+
nimbusProp: "description",
|
|
2200
|
+
changeType: "rename"
|
|
2201
|
+
},
|
|
2202
|
+
{
|
|
2203
|
+
uiKitProp: "errors",
|
|
2204
|
+
nimbusProp: "errors",
|
|
2205
|
+
changeType: "structural",
|
|
2206
|
+
notes: "Convert UIKit Record<string, boolean> to FieldErrorsData and pass to the errors prop."
|
|
2207
|
+
}
|
|
1536
2208
|
]
|
|
1537
2209
|
},
|
|
1538
2210
|
{
|
|
@@ -1545,6 +2217,26 @@ var MIGRATION_DATA = [
|
|
|
1545
2217
|
"onChange received TCustomEvent; now receives { amount, currencyCode } directly",
|
|
1546
2218
|
"currencies prop for available currency options unchanged",
|
|
1547
2219
|
"hasError prop replaced by isInvalid"
|
|
2220
|
+
],
|
|
2221
|
+
propMappings: [
|
|
2222
|
+
{ uiKitProp: "hasError", nimbusProp: "isInvalid", changeType: "rename" },
|
|
2223
|
+
{
|
|
2224
|
+
uiKitProp: "onChange",
|
|
2225
|
+
nimbusProp: "onChange",
|
|
2226
|
+
changeType: "structural",
|
|
2227
|
+
notes: "Receives { amount, currencyCode } directly instead of a TCustomEvent."
|
|
2228
|
+
}
|
|
2229
|
+
],
|
|
2230
|
+
callbackAdapters: [
|
|
2231
|
+
{
|
|
2232
|
+
prop: "onChange",
|
|
2233
|
+
from: "(event: TCustomEvent) => void \u2014 access event.target.value",
|
|
2234
|
+
to: "(event: CustomEvent) => void \u2014 legacy; prefer onValueChange: (value: MoneyInputValue) => void"
|
|
2235
|
+
}
|
|
2236
|
+
],
|
|
2237
|
+
typeNotes: [
|
|
2238
|
+
"Prefer onValueChange over onChange; also available: onAmountChange: (amount: string) => void and onCurrencyChange: (currencyCode: CurrencyCode) => void",
|
|
2239
|
+
"MoneyInputValue = { amount: string, currencyCode: CurrencyCode | '' }"
|
|
1548
2240
|
]
|
|
1549
2241
|
},
|
|
1550
2242
|
{
|
|
@@ -1558,6 +2250,20 @@ var MIGRATION_DATA = [
|
|
|
1558
2250
|
"title prop renamed to label",
|
|
1559
2251
|
"hint prop renamed to description",
|
|
1560
2252
|
"errors (Record) replaced by passing <FieldErrors> to the errorMessage prop"
|
|
2253
|
+
],
|
|
2254
|
+
propMappings: [
|
|
2255
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
2256
|
+
{
|
|
2257
|
+
uiKitProp: "hint",
|
|
2258
|
+
nimbusProp: "description",
|
|
2259
|
+
changeType: "rename"
|
|
2260
|
+
},
|
|
2261
|
+
{
|
|
2262
|
+
uiKitProp: "errors",
|
|
2263
|
+
nimbusProp: "errors",
|
|
2264
|
+
changeType: "structural",
|
|
2265
|
+
notes: "Now expects FieldErrorsData (from FieldErrors) instead of a Record<string, boolean>."
|
|
2266
|
+
}
|
|
1561
2267
|
]
|
|
1562
2268
|
},
|
|
1563
2269
|
// -------------------------------------------------------------------------
|
|
@@ -1574,6 +2280,31 @@ var MIGRATION_DATA = [
|
|
|
1574
2280
|
"value changed from 'YYYY-MM-DD' string to CalendarDate from @internationalized/date",
|
|
1575
2281
|
"onChange received TCustomEvent with string; now receives CalendarDate directly",
|
|
1576
2282
|
"minValue/maxValue changed from strings to CalendarDate objects"
|
|
2283
|
+
],
|
|
2284
|
+
propMappings: [
|
|
2285
|
+
{
|
|
2286
|
+
uiKitProp: "value",
|
|
2287
|
+
nimbusProp: "value",
|
|
2288
|
+
changeType: "structural",
|
|
2289
|
+
notes: "Changed from a 'YYYY-MM-DD' string to a CalendarDate from @internationalized/date."
|
|
2290
|
+
},
|
|
2291
|
+
{
|
|
2292
|
+
uiKitProp: "onChange",
|
|
2293
|
+
nimbusProp: "onChange",
|
|
2294
|
+
changeType: "structural",
|
|
2295
|
+
notes: "Receives a CalendarDate directly instead of a TCustomEvent with a string."
|
|
2296
|
+
}
|
|
2297
|
+
],
|
|
2298
|
+
callbackAdapters: [
|
|
2299
|
+
{
|
|
2300
|
+
prop: "onChange",
|
|
2301
|
+
from: "(event: TCustomEvent) => void \u2014 event.target.value is a 'YYYY-MM-DD' string",
|
|
2302
|
+
to: "(value: CalendarDate | null) => void"
|
|
2303
|
+
}
|
|
2304
|
+
],
|
|
2305
|
+
typeNotes: [
|
|
2306
|
+
"import { CalendarDate } from '@internationalized/date' is required; value and onChange use CalendarDate, not strings",
|
|
2307
|
+
"minValue/maxValue also changed from strings to CalendarDate objects"
|
|
1577
2308
|
]
|
|
1578
2309
|
},
|
|
1579
2310
|
{
|
|
@@ -1586,6 +2317,32 @@ var MIGRATION_DATA = [
|
|
|
1586
2317
|
"Rename to DatePicker",
|
|
1587
2318
|
"value must be a ZonedDateTime or CalendarDateTime",
|
|
1588
2319
|
"Use granularity prop to enable time fields"
|
|
2320
|
+
],
|
|
2321
|
+
propMappings: [
|
|
2322
|
+
{
|
|
2323
|
+
uiKitProp: "_component",
|
|
2324
|
+
nimbusProp: "granularity",
|
|
2325
|
+
changeType: "value-mapping",
|
|
2326
|
+
fixedValue: "minute",
|
|
2327
|
+
notes: "Use 'second' instead if second-level precision is required."
|
|
2328
|
+
},
|
|
2329
|
+
{
|
|
2330
|
+
uiKitProp: "value",
|
|
2331
|
+
nimbusProp: "value",
|
|
2332
|
+
changeType: "structural",
|
|
2333
|
+
notes: "Must be a ZonedDateTime or CalendarDateTime from @internationalized/date."
|
|
2334
|
+
}
|
|
2335
|
+
],
|
|
2336
|
+
callbackAdapters: [
|
|
2337
|
+
{
|
|
2338
|
+
prop: "onChange",
|
|
2339
|
+
from: "(event: TCustomEvent) => void \u2014 string-based date-time value",
|
|
2340
|
+
to: "(value: CalendarDateTime | ZonedDateTime | null) => void"
|
|
2341
|
+
}
|
|
2342
|
+
],
|
|
2343
|
+
typeNotes: [
|
|
2344
|
+
"import { CalendarDateTime, ZonedDateTime } from '@internationalized/date' is required; use CalendarDateTime for local times, ZonedDateTime for timezone-aware values",
|
|
2345
|
+
"Set granularity='minute' or 'second' on DatePicker to enable time fields"
|
|
1589
2346
|
]
|
|
1590
2347
|
},
|
|
1591
2348
|
{
|
|
@@ -1597,6 +2354,31 @@ var MIGRATION_DATA = [
|
|
|
1597
2354
|
breakingChanges: [
|
|
1598
2355
|
"Rename to DateRangePicker",
|
|
1599
2356
|
"value shape changed to { start, end } using CalendarDate"
|
|
2357
|
+
],
|
|
2358
|
+
propMappings: [
|
|
2359
|
+
{
|
|
2360
|
+
uiKitProp: "value",
|
|
2361
|
+
nimbusProp: "value",
|
|
2362
|
+
changeType: "structural",
|
|
2363
|
+
notes: "Shape changed to { start, end } using CalendarDate."
|
|
2364
|
+
},
|
|
2365
|
+
{
|
|
2366
|
+
uiKitProp: "onChange",
|
|
2367
|
+
nimbusProp: "onChange",
|
|
2368
|
+
changeType: "structural",
|
|
2369
|
+
notes: "Receives the { start, end } CalendarDate range directly."
|
|
2370
|
+
}
|
|
2371
|
+
],
|
|
2372
|
+
callbackAdapters: [
|
|
2373
|
+
{
|
|
2374
|
+
prop: "onChange",
|
|
2375
|
+
from: "(event: TCustomEvent) => void \u2014 string-based date range",
|
|
2376
|
+
to: "(value: RangeValue<CalendarDate> | null) => void \u2014 where RangeValue<T> = { start: T, end: T }"
|
|
2377
|
+
}
|
|
2378
|
+
],
|
|
2379
|
+
typeNotes: [
|
|
2380
|
+
"import { CalendarDate } from '@internationalized/date' and RangeValue from '@react-types/shared' are required",
|
|
2381
|
+
"Value type is RangeValue<CalendarDate> = { start: CalendarDate, end: CalendarDate } | null"
|
|
1600
2382
|
]
|
|
1601
2383
|
},
|
|
1602
2384
|
{
|
|
@@ -1613,7 +2395,25 @@ var MIGRATION_DATA = [
|
|
|
1613
2395
|
importPath: "@commercetools/nimbus",
|
|
1614
2396
|
mappingType: "direct",
|
|
1615
2397
|
notes: "Direct replacement. value must be a Time object from @internationalized/date.",
|
|
1616
|
-
breakingChanges: ["value must be a Time from @internationalized/date"]
|
|
2398
|
+
breakingChanges: ["value must be a Time from @internationalized/date"],
|
|
2399
|
+
propMappings: [
|
|
2400
|
+
{
|
|
2401
|
+
uiKitProp: "value",
|
|
2402
|
+
nimbusProp: "value",
|
|
2403
|
+
changeType: "structural",
|
|
2404
|
+
notes: "Must be a Time object from @internationalized/date."
|
|
2405
|
+
}
|
|
2406
|
+
],
|
|
2407
|
+
callbackAdapters: [
|
|
2408
|
+
{
|
|
2409
|
+
prop: "onChange",
|
|
2410
|
+
from: "(event: ChangeEvent<HTMLInputElement>) => void \u2014 event.target.value is a time string",
|
|
2411
|
+
to: "(value: Time | null) => void"
|
|
2412
|
+
}
|
|
2413
|
+
],
|
|
2414
|
+
typeNotes: [
|
|
2415
|
+
"import { Time } from '@internationalized/date' is required; value and onChange use Time objects, not strings"
|
|
2416
|
+
]
|
|
1617
2417
|
},
|
|
1618
2418
|
// -------------------------------------------------------------------------
|
|
1619
2419
|
// Form inputs — checkbox / radio / toggle
|
|
@@ -1628,6 +2428,26 @@ var MIGRATION_DATA = [
|
|
|
1628
2428
|
"Rename to Checkbox",
|
|
1629
2429
|
"isChecked prop renamed to isSelected",
|
|
1630
2430
|
"onChange received ChangeEvent<HTMLInputElement>; now receives boolean isSelected directly"
|
|
2431
|
+
],
|
|
2432
|
+
propMappings: [
|
|
2433
|
+
{
|
|
2434
|
+
uiKitProp: "isChecked",
|
|
2435
|
+
nimbusProp: "isSelected",
|
|
2436
|
+
changeType: "rename"
|
|
2437
|
+
},
|
|
2438
|
+
{
|
|
2439
|
+
uiKitProp: "onChange",
|
|
2440
|
+
nimbusProp: "onChange",
|
|
2441
|
+
changeType: "structural",
|
|
2442
|
+
notes: "Receives boolean isSelected instead of ChangeEvent."
|
|
2443
|
+
}
|
|
2444
|
+
],
|
|
2445
|
+
callbackAdapters: [
|
|
2446
|
+
{
|
|
2447
|
+
prop: "onChange",
|
|
2448
|
+
from: "(event: ChangeEvent<HTMLInputElement>) => void \u2014 access event.target.checked",
|
|
2449
|
+
to: "(isSelected: boolean) => void"
|
|
2450
|
+
}
|
|
1631
2451
|
]
|
|
1632
2452
|
},
|
|
1633
2453
|
{
|
|
@@ -1649,6 +2469,35 @@ var MIGRATION_DATA = [
|
|
|
1649
2469
|
"isChecked prop renamed to isSelected",
|
|
1650
2470
|
"onChange received ChangeEvent (target.checked); now receives boolean isSelected directly",
|
|
1651
2471
|
"size prop ('small'|'big') replaced by Nimbus size tokens"
|
|
2472
|
+
],
|
|
2473
|
+
propMappings: [
|
|
2474
|
+
{
|
|
2475
|
+
uiKitProp: "isChecked",
|
|
2476
|
+
nimbusProp: "isSelected",
|
|
2477
|
+
changeType: "rename"
|
|
2478
|
+
},
|
|
2479
|
+
{
|
|
2480
|
+
uiKitProp: "onChange",
|
|
2481
|
+
nimbusProp: "onChange",
|
|
2482
|
+
changeType: "structural",
|
|
2483
|
+
notes: "Receives boolean isSelected instead of ChangeEvent."
|
|
2484
|
+
},
|
|
2485
|
+
{
|
|
2486
|
+
uiKitProp: "size",
|
|
2487
|
+
nimbusProp: "size",
|
|
2488
|
+
changeType: "value-mapping",
|
|
2489
|
+
valueMapping: [
|
|
2490
|
+
{ from: "small", to: "sm" },
|
|
2491
|
+
{ from: "big", to: "md" }
|
|
2492
|
+
]
|
|
2493
|
+
}
|
|
2494
|
+
],
|
|
2495
|
+
callbackAdapters: [
|
|
2496
|
+
{
|
|
2497
|
+
prop: "onChange",
|
|
2498
|
+
from: "(event: ChangeEvent<HTMLInputElement>) => void \u2014 access event.target.checked",
|
|
2499
|
+
to: "(isSelected: boolean) => void"
|
|
2500
|
+
}
|
|
1652
2501
|
]
|
|
1653
2502
|
},
|
|
1654
2503
|
// -------------------------------------------------------------------------
|
|
@@ -1665,6 +2514,41 @@ var MIGRATION_DATA = [
|
|
|
1665
2514
|
"selectedLanguage prop replaced by defaultLocaleOrCurrency",
|
|
1666
2515
|
"value per locale replaced by valuesByLocaleOrCurrency object",
|
|
1667
2516
|
"onChange receives a LocalizedFieldChangeEvent with target.locale"
|
|
2517
|
+
],
|
|
2518
|
+
propMappings: [
|
|
2519
|
+
{
|
|
2520
|
+
uiKitProp: "_component",
|
|
2521
|
+
nimbusProp: "type",
|
|
2522
|
+
changeType: "value-mapping",
|
|
2523
|
+
fixedValue: "text"
|
|
2524
|
+
},
|
|
2525
|
+
{
|
|
2526
|
+
uiKitProp: "selectedLanguage",
|
|
2527
|
+
nimbusProp: "defaultLocaleOrCurrency",
|
|
2528
|
+
changeType: "rename"
|
|
2529
|
+
},
|
|
2530
|
+
{
|
|
2531
|
+
uiKitProp: "value",
|
|
2532
|
+
nimbusProp: "valuesByLocaleOrCurrency",
|
|
2533
|
+
changeType: "structural",
|
|
2534
|
+
notes: "Per-locale value replaced by a single valuesByLocaleOrCurrency object."
|
|
2535
|
+
},
|
|
2536
|
+
{
|
|
2537
|
+
uiKitProp: "onChange",
|
|
2538
|
+
nimbusProp: "onChange",
|
|
2539
|
+
changeType: "structural",
|
|
2540
|
+
notes: "Receives a LocalizedFieldChangeEvent with target.locale."
|
|
2541
|
+
}
|
|
2542
|
+
],
|
|
2543
|
+
callbackAdapters: [
|
|
2544
|
+
{
|
|
2545
|
+
prop: "onChange",
|
|
2546
|
+
from: "(event: ChangeEvent<HTMLLocalizedInputElement>) => void \u2014 event.target.language identifies the locale",
|
|
2547
|
+
to: "(event: LocalizedFieldChangeEvent) => void \u2014 event.target.locale identifies which locale changed"
|
|
2548
|
+
}
|
|
2549
|
+
],
|
|
2550
|
+
typeNotes: [
|
|
2551
|
+
"LocalizedFieldChangeEvent has target.locale (string), target.value (string | string[] | null), and optional target.id/name"
|
|
1668
2552
|
]
|
|
1669
2553
|
},
|
|
1670
2554
|
{
|
|
@@ -1679,6 +2563,20 @@ var MIGRATION_DATA = [
|
|
|
1679
2563
|
"hint prop renamed to description",
|
|
1680
2564
|
"errors (Record) replaced by errorsByLocaleOrCurrency",
|
|
1681
2565
|
"onChange receives a LocalizedFieldChangeEvent with target.locale"
|
|
2566
|
+
],
|
|
2567
|
+
propMappings: [
|
|
2568
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
2569
|
+
{
|
|
2570
|
+
uiKitProp: "hint",
|
|
2571
|
+
nimbusProp: "description",
|
|
2572
|
+
changeType: "rename"
|
|
2573
|
+
},
|
|
2574
|
+
{
|
|
2575
|
+
uiKitProp: "errors",
|
|
2576
|
+
nimbusProp: "errorsByLocaleOrCurrency",
|
|
2577
|
+
changeType: "structural",
|
|
2578
|
+
notes: "Record<string, boolean> replaced by errorsByLocaleOrCurrency."
|
|
2579
|
+
}
|
|
1682
2580
|
]
|
|
1683
2581
|
},
|
|
1684
2582
|
{
|
|
@@ -1692,6 +2590,41 @@ var MIGRATION_DATA = [
|
|
|
1692
2590
|
"selectedLanguage prop replaced by defaultLocaleOrCurrency",
|
|
1693
2591
|
"value per locale replaced by valuesByLocaleOrCurrency object",
|
|
1694
2592
|
"onChange receives a LocalizedFieldChangeEvent with target.locale"
|
|
2593
|
+
],
|
|
2594
|
+
propMappings: [
|
|
2595
|
+
{
|
|
2596
|
+
uiKitProp: "_component",
|
|
2597
|
+
nimbusProp: "type",
|
|
2598
|
+
changeType: "value-mapping",
|
|
2599
|
+
fixedValue: "multiLine"
|
|
2600
|
+
},
|
|
2601
|
+
{
|
|
2602
|
+
uiKitProp: "selectedLanguage",
|
|
2603
|
+
nimbusProp: "defaultLocaleOrCurrency",
|
|
2604
|
+
changeType: "rename"
|
|
2605
|
+
},
|
|
2606
|
+
{
|
|
2607
|
+
uiKitProp: "value",
|
|
2608
|
+
nimbusProp: "valuesByLocaleOrCurrency",
|
|
2609
|
+
changeType: "structural",
|
|
2610
|
+
notes: "Per-locale value replaced by a single valuesByLocaleOrCurrency object."
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
uiKitProp: "onChange",
|
|
2614
|
+
nimbusProp: "onChange",
|
|
2615
|
+
changeType: "structural",
|
|
2616
|
+
notes: "Receives a LocalizedFieldChangeEvent with target.locale."
|
|
2617
|
+
}
|
|
2618
|
+
],
|
|
2619
|
+
callbackAdapters: [
|
|
2620
|
+
{
|
|
2621
|
+
prop: "onChange",
|
|
2622
|
+
from: "(event: ChangeEvent<HTMLLocalizedInputElement>) => void \u2014 event.target.language identifies the locale",
|
|
2623
|
+
to: "(event: LocalizedFieldChangeEvent) => void \u2014 event.target.locale identifies which locale changed"
|
|
2624
|
+
}
|
|
2625
|
+
],
|
|
2626
|
+
typeNotes: [
|
|
2627
|
+
"LocalizedFieldChangeEvent has target.locale (string), target.value (string | string[] | null), and optional target.id/name"
|
|
1695
2628
|
]
|
|
1696
2629
|
},
|
|
1697
2630
|
{
|
|
@@ -1706,6 +2639,20 @@ var MIGRATION_DATA = [
|
|
|
1706
2639
|
"hint prop renamed to description",
|
|
1707
2640
|
"errors (Record) replaced by errorsByLocaleOrCurrency",
|
|
1708
2641
|
"onChange receives a LocalizedFieldChangeEvent with target.locale"
|
|
2642
|
+
],
|
|
2643
|
+
propMappings: [
|
|
2644
|
+
{ uiKitProp: "title", nimbusProp: "label", changeType: "rename" },
|
|
2645
|
+
{
|
|
2646
|
+
uiKitProp: "hint",
|
|
2647
|
+
nimbusProp: "description",
|
|
2648
|
+
changeType: "rename"
|
|
2649
|
+
},
|
|
2650
|
+
{
|
|
2651
|
+
uiKitProp: "errors",
|
|
2652
|
+
nimbusProp: "errorsByLocaleOrCurrency",
|
|
2653
|
+
changeType: "structural",
|
|
2654
|
+
notes: "Record<string, boolean> replaced by errorsByLocaleOrCurrency."
|
|
2655
|
+
}
|
|
1709
2656
|
]
|
|
1710
2657
|
},
|
|
1711
2658
|
{
|
|
@@ -1719,6 +2666,42 @@ var MIGRATION_DATA = [
|
|
|
1719
2666
|
"selectedLanguage prop replaced by defaultLocaleOrCurrency (currency code)",
|
|
1720
2667
|
"value per currency replaced by valuesByLocaleOrCurrency object",
|
|
1721
2668
|
"onChange receives a LocalizedFieldChangeEvent with target.currency"
|
|
2669
|
+
],
|
|
2670
|
+
propMappings: [
|
|
2671
|
+
{
|
|
2672
|
+
uiKitProp: "_component",
|
|
2673
|
+
nimbusProp: "type",
|
|
2674
|
+
changeType: "value-mapping",
|
|
2675
|
+
fixedValue: "money"
|
|
2676
|
+
},
|
|
2677
|
+
{
|
|
2678
|
+
uiKitProp: "selectedCurrency",
|
|
2679
|
+
nimbusProp: "defaultLocaleOrCurrency",
|
|
2680
|
+
changeType: "rename",
|
|
2681
|
+
notes: "Represents the default currency code for LocalizedMoneyInput."
|
|
2682
|
+
},
|
|
2683
|
+
{
|
|
2684
|
+
uiKitProp: "value",
|
|
2685
|
+
nimbusProp: "valuesByLocaleOrCurrency",
|
|
2686
|
+
changeType: "structural",
|
|
2687
|
+
notes: "Per-currency value replaced by a single valuesByLocaleOrCurrency object."
|
|
2688
|
+
},
|
|
2689
|
+
{
|
|
2690
|
+
uiKitProp: "onChange",
|
|
2691
|
+
nimbusProp: "onChange",
|
|
2692
|
+
changeType: "structural",
|
|
2693
|
+
notes: "Receives a LocalizedFieldChangeEvent with target.currency."
|
|
2694
|
+
}
|
|
2695
|
+
],
|
|
2696
|
+
callbackAdapters: [
|
|
2697
|
+
{
|
|
2698
|
+
prop: "onChange",
|
|
2699
|
+
from: "(event: ChangeEvent<HTMLLocalizedInputElement>) => void \u2014 event.target.language identifies the currency",
|
|
2700
|
+
to: "(event: LocalizedFieldChangeEvent) => void \u2014 event.target.currency identifies which currency changed"
|
|
2701
|
+
}
|
|
2702
|
+
],
|
|
2703
|
+
typeNotes: [
|
|
2704
|
+
"LocalizedFieldChangeEvent has target.currency (CurrencyCode), target.value (string | string[] | null), and optional target.id/name"
|
|
1722
2705
|
]
|
|
1723
2706
|
},
|
|
1724
2707
|
{
|
|
@@ -1732,6 +2715,41 @@ var MIGRATION_DATA = [
|
|
|
1732
2715
|
"selectedLanguage prop replaced by defaultLocaleOrCurrency",
|
|
1733
2716
|
"value per locale replaced by valuesByLocaleOrCurrency object",
|
|
1734
2717
|
"onChange receives a LocalizedFieldChangeEvent with target.locale"
|
|
2718
|
+
],
|
|
2719
|
+
propMappings: [
|
|
2720
|
+
{
|
|
2721
|
+
uiKitProp: "_component",
|
|
2722
|
+
nimbusProp: "type",
|
|
2723
|
+
changeType: "value-mapping",
|
|
2724
|
+
fixedValue: "richText"
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
uiKitProp: "selectedLanguage",
|
|
2728
|
+
nimbusProp: "defaultLocaleOrCurrency",
|
|
2729
|
+
changeType: "rename"
|
|
2730
|
+
},
|
|
2731
|
+
{
|
|
2732
|
+
uiKitProp: "value",
|
|
2733
|
+
nimbusProp: "valuesByLocaleOrCurrency",
|
|
2734
|
+
changeType: "structural",
|
|
2735
|
+
notes: "Per-locale value replaced by a single valuesByLocaleOrCurrency object."
|
|
2736
|
+
},
|
|
2737
|
+
{
|
|
2738
|
+
uiKitProp: "onChange",
|
|
2739
|
+
nimbusProp: "onChange",
|
|
2740
|
+
changeType: "structural",
|
|
2741
|
+
notes: "Receives a LocalizedFieldChangeEvent with target.locale."
|
|
2742
|
+
}
|
|
2743
|
+
],
|
|
2744
|
+
callbackAdapters: [
|
|
2745
|
+
{
|
|
2746
|
+
prop: "onChange",
|
|
2747
|
+
from: "(event: ChangeEvent<HTMLLocalizedInputElement>) => void \u2014 event.target.language identifies the locale",
|
|
2748
|
+
to: "(event: LocalizedFieldChangeEvent) => void \u2014 event.target.locale identifies which locale changed"
|
|
2749
|
+
}
|
|
2750
|
+
],
|
|
2751
|
+
typeNotes: [
|
|
2752
|
+
"LocalizedFieldChangeEvent has target.locale (string), target.value (string | string[] | null), and optional target.id/name"
|
|
1735
2753
|
]
|
|
1736
2754
|
},
|
|
1737
2755
|
// -------------------------------------------------------------------------
|
|
@@ -1753,6 +2771,14 @@ var MIGRATION_DATA = [
|
|
|
1753
2771
|
notes: "Compose FormField with a description prop, or use <Text size='sm' color='neutral.500'>.",
|
|
1754
2772
|
breakingChanges: [
|
|
1755
2773
|
"Replace AdditionalInfoMessage with FormField description prop or Text component"
|
|
2774
|
+
],
|
|
2775
|
+
propMappings: [
|
|
2776
|
+
{
|
|
2777
|
+
uiKitProp: "children",
|
|
2778
|
+
nimbusProp: null,
|
|
2779
|
+
changeType: "structural",
|
|
2780
|
+
notes: "Use as the FormField description prop, or as Text children."
|
|
2781
|
+
}
|
|
1756
2782
|
]
|
|
1757
2783
|
},
|
|
1758
2784
|
{
|
|
@@ -1763,6 +2789,14 @@ var MIGRATION_DATA = [
|
|
|
1763
2789
|
notes: "Use <FieldErrors> passed to a *Field component's errorMessage prop, or as a child of FormField.Error.",
|
|
1764
2790
|
breakingChanges: [
|
|
1765
2791
|
"Replace ErrorMessage with <FieldErrors> inside a Field errorMessage prop or FormField.Error"
|
|
2792
|
+
],
|
|
2793
|
+
propMappings: [
|
|
2794
|
+
{
|
|
2795
|
+
uiKitProp: "children",
|
|
2796
|
+
nimbusProp: null,
|
|
2797
|
+
changeType: "structural",
|
|
2798
|
+
notes: "Use <FieldErrors> as a child of FormField.Error, or pass to a Field's errorMessage/errors prop."
|
|
2799
|
+
}
|
|
1766
2800
|
]
|
|
1767
2801
|
},
|
|
1768
2802
|
{
|
|
@@ -1773,6 +2807,14 @@ var MIGRATION_DATA = [
|
|
|
1773
2807
|
notes: "Use <Text color='warning.500'> or a FormField description for warnings.",
|
|
1774
2808
|
breakingChanges: [
|
|
1775
2809
|
"Replace WarningMessage with Text + appropriate color token"
|
|
2810
|
+
],
|
|
2811
|
+
propMappings: [
|
|
2812
|
+
{
|
|
2813
|
+
uiKitProp: "children",
|
|
2814
|
+
nimbusProp: null,
|
|
2815
|
+
changeType: "removed",
|
|
2816
|
+
notes: "Use <Text color='warning.500'> with the message as children instead."
|
|
2817
|
+
}
|
|
1776
2818
|
]
|
|
1777
2819
|
},
|
|
1778
2820
|
// -------------------------------------------------------------------------
|
|
@@ -1804,14 +2846,44 @@ var MIGRATION_DATA = [
|
|
|
1804
2846
|
nimbusEquivalent: "Badge",
|
|
1805
2847
|
importPath: "@commercetools/nimbus",
|
|
1806
2848
|
mappingType: "direct",
|
|
1807
|
-
notes: "Rename to Badge.
|
|
2849
|
+
notes: "Rename to Badge. UI Kit used a tone prop; Nimbus uses colorPalette instead. UI Kit tones: 'critical'|'warning'|'positive'|'information'|'primary'|'secondary'. Nimbus colorPalette values: 'critical'|'warning'|'positive'|'info'|'primary'|'neutral'.",
|
|
1808
2850
|
breakingChanges: [
|
|
1809
2851
|
"Rename to Badge",
|
|
1810
|
-
"tone
|
|
1811
|
-
"tone
|
|
1812
|
-
"tone value '
|
|
1813
|
-
"tone
|
|
1814
|
-
"
|
|
2852
|
+
"Default color changed: UI Kit Stamp was blue (tone='information') by default; Nimbus Badge defaults to colorPalette='neutral' (gray). Add colorPalette='info' to preserve the blue appearance.",
|
|
2853
|
+
"tone prop replaced by colorPalette",
|
|
2854
|
+
"tone value 'positive' stays 'positive' (use colorPalette='positive')",
|
|
2855
|
+
"tone value 'critical' stays 'critical' (use colorPalette='critical')",
|
|
2856
|
+
"tone value 'warning' stays 'warning' (use colorPalette='warning')",
|
|
2857
|
+
"tone value 'information' \u2192 colorPalette='info'",
|
|
2858
|
+
"tone values 'primary' and 'secondary' \u2192 colorPalette='primary' or 'neutral'",
|
|
2859
|
+
"isCondensed prop replaced by size='xs'",
|
|
2860
|
+
"label and icon props removed; pass label text and optionally an icon as children"
|
|
2861
|
+
],
|
|
2862
|
+
propMappings: [
|
|
2863
|
+
{
|
|
2864
|
+
uiKitProp: "tone",
|
|
2865
|
+
nimbusProp: "colorPalette",
|
|
2866
|
+
changeType: "value-mapping",
|
|
2867
|
+
valueMapping: [
|
|
2868
|
+
{ from: "critical", to: "critical" },
|
|
2869
|
+
{ from: "warning", to: "warning" },
|
|
2870
|
+
{ from: "positive", to: "positive" },
|
|
2871
|
+
{ from: "information", to: "info" },
|
|
2872
|
+
{ from: "primary", to: "primary" },
|
|
2873
|
+
{ from: "secondary", to: "neutral" }
|
|
2874
|
+
]
|
|
2875
|
+
},
|
|
2876
|
+
{
|
|
2877
|
+
uiKitProp: "isCondensed",
|
|
2878
|
+
nimbusProp: "size",
|
|
2879
|
+
changeType: "value-mapping",
|
|
2880
|
+
valueMapping: [{ from: "true", to: "xs" }],
|
|
2881
|
+
notes: "Default size is 'md'."
|
|
2882
|
+
}
|
|
2883
|
+
],
|
|
2884
|
+
propMigrations: [
|
|
2885
|
+
{ from: "label", to: "children" },
|
|
2886
|
+
{ from: "icon", to: "children", position: "before" }
|
|
1815
2887
|
]
|
|
1816
2888
|
},
|
|
1817
2889
|
{
|
|
@@ -1823,6 +2895,24 @@ var MIGRATION_DATA = [
|
|
|
1823
2895
|
breakingChanges: [
|
|
1824
2896
|
"Wrap single Tag in <TagGroup.Root><TagGroup.TagList><TagGroup.Tag>...</TagGroup.Tag></TagGroup.TagList></TagGroup.Root>",
|
|
1825
2897
|
"onRemove now receives a key-based Set"
|
|
2898
|
+
],
|
|
2899
|
+
propMappings: [
|
|
2900
|
+
{
|
|
2901
|
+
uiKitProp: "children",
|
|
2902
|
+
nimbusProp: null,
|
|
2903
|
+
changeType: "structural",
|
|
2904
|
+
notes: "Restructure into TagGroup.Root > TagGroup.TagList > TagGroup.Tag."
|
|
2905
|
+
}
|
|
2906
|
+
],
|
|
2907
|
+
callbackAdapters: [
|
|
2908
|
+
{
|
|
2909
|
+
prop: "onRemove",
|
|
2910
|
+
from: "(event: MouseEvent<HTMLElement> | KeyboardEvent<HTMLElement>) => void \u2014 DOM event from remove button",
|
|
2911
|
+
to: "(keys: Set<Key>) => void \u2014 set of removed tag keys"
|
|
2912
|
+
}
|
|
2913
|
+
],
|
|
2914
|
+
typeNotes: [
|
|
2915
|
+
"onRemove receives Set<Key> (where Key = string | number), not a single key; must iterate the set or use Set.has()"
|
|
1826
2916
|
]
|
|
1827
2917
|
},
|
|
1828
2918
|
{
|
|
@@ -1834,6 +2924,14 @@ var MIGRATION_DATA = [
|
|
|
1834
2924
|
breakingChanges: [
|
|
1835
2925
|
"Rename to TagGroup (use TagGroup.Root, TagGroup.TagList, TagGroup.Tag)",
|
|
1836
2926
|
"items array replaced by TagGroup.Tag children inside TagGroup.TagList"
|
|
2927
|
+
],
|
|
2928
|
+
propMappings: [
|
|
2929
|
+
{
|
|
2930
|
+
uiKitProp: "children",
|
|
2931
|
+
nimbusProp: null,
|
|
2932
|
+
changeType: "structural",
|
|
2933
|
+
notes: "Replace with TagGroup.Tag children inside TagGroup.TagList."
|
|
2934
|
+
}
|
|
1837
2935
|
]
|
|
1838
2936
|
},
|
|
1839
2937
|
{
|
|
@@ -1857,11 +2955,63 @@ var MIGRATION_DATA = [
|
|
|
1857
2955
|
nimbusEquivalent: "DataTable",
|
|
1858
2956
|
importPath: "@commercetools/nimbus",
|
|
1859
2957
|
mappingType: "direct",
|
|
1860
|
-
notes: "Direct replacement. Column definitions
|
|
2958
|
+
notes: "Direct replacement. Column definitions require DataTableColumnItem<RowType>[] generic typing. Sort and selection callbacks have new signatures.",
|
|
1861
2959
|
breakingChanges: [
|
|
1862
|
-
"columns prop shape changed
|
|
1863
|
-
"
|
|
1864
|
-
|
|
2960
|
+
"columns prop shape changed: key\u2192id, label\u2192header, accessor required (returns cell content, can be string or JSX)",
|
|
2961
|
+
"DataTableColumnItem<T> is generic \u2014 without <T> accessors return unknown and TS rejects them as ReactNode",
|
|
2962
|
+
"onSortChange signature changed from (key, order) to (descriptor: { column, direction })",
|
|
2963
|
+
"Selection type is 'all' | Set<Key> \u2014 missing the 'all' branch silently drops select-all clicks"
|
|
2964
|
+
],
|
|
2965
|
+
propMappings: [
|
|
2966
|
+
{
|
|
2967
|
+
uiKitProp: "columns",
|
|
2968
|
+
nimbusProp: "columns",
|
|
2969
|
+
changeType: "structural",
|
|
2970
|
+
notes: "Shape changed: key\u2192id, label\u2192header. accessor is required and serves as both data getter and cell renderer: return a string for plain text or JSX for custom rendering. UI Kit's separate renderItem/render function should be merged into accessor. width must be a number (pixels), percentage string, or fr unit; CSS values like minmax() or max-content are not supported."
|
|
2971
|
+
},
|
|
2972
|
+
{
|
|
2973
|
+
uiKitProp: "onRowClick",
|
|
2974
|
+
nimbusProp: "onSelectionChange",
|
|
2975
|
+
changeType: "structural",
|
|
2976
|
+
notes: "Row interaction via onRowClick replaced by onSelectionChange with Selection = 'all' | Set<Key>."
|
|
2977
|
+
},
|
|
2978
|
+
{
|
|
2979
|
+
uiKitProp: "onSortChange",
|
|
2980
|
+
nimbusProp: "onSortChange",
|
|
2981
|
+
changeType: "structural",
|
|
2982
|
+
notes: "Signature changed from (key, order) to (descriptor: { column, direction: 'ascending' | 'descending' })."
|
|
2983
|
+
}
|
|
2984
|
+
],
|
|
2985
|
+
propShapeTransforms: [
|
|
2986
|
+
{
|
|
2987
|
+
prop: "columns",
|
|
2988
|
+
rename: { key: "id", label: "header" },
|
|
2989
|
+
addRequired: ["accessor"],
|
|
2990
|
+
drop: [
|
|
2991
|
+
"render/renderItem (merge into accessor instead)",
|
|
2992
|
+
"width if CSS string (minmax, max-content, min-content); use numeric pixels, percentage, or fr"
|
|
2993
|
+
],
|
|
2994
|
+
genericRequired: "DataTableColumnItem<RowType>[]"
|
|
2995
|
+
}
|
|
2996
|
+
],
|
|
2997
|
+
callbackAdapters: [
|
|
2998
|
+
{
|
|
2999
|
+
prop: "onSortChange",
|
|
3000
|
+
from: "(key: string, order: 'asc' | 'desc')",
|
|
3001
|
+
to: "(descriptor: { column: string, direction: 'ascending' | 'descending' })"
|
|
3002
|
+
}
|
|
3003
|
+
],
|
|
3004
|
+
typeNotes: [
|
|
3005
|
+
"Selection = 'all' | Set<Key>; handle 'all' explicitly \u2014 missing the 'all' branch silently drops the select-all header click"
|
|
3006
|
+
],
|
|
3007
|
+
codeReduction: {
|
|
3008
|
+
type: "selection-model-collapse",
|
|
3009
|
+
deletableFiles: [
|
|
3010
|
+
"**/*-selection-column-cell.tsx",
|
|
3011
|
+
"**/*-selection-column-label.tsx"
|
|
3012
|
+
],
|
|
3013
|
+
rationale: "Nimbus DataTable provides built-in selection via selectionMode='multiple'."
|
|
3014
|
+
}
|
|
1865
3015
|
},
|
|
1866
3016
|
{
|
|
1867
3017
|
uiKitName: "DataTableManager",
|
|
@@ -1881,7 +3031,16 @@ var MIGRATION_DATA = [
|
|
|
1881
3031
|
mappingType: "direct",
|
|
1882
3032
|
notes: "Direct replacement. Use asChild for router library integration.",
|
|
1883
3033
|
breakingChanges: [
|
|
3034
|
+
"Default color changed: UI Kit Link was blue (tone='primary') by default; Nimbus Link defaults to neutral (dark text). Use fontColor='primary' to preserve blue link styling.",
|
|
1884
3035
|
"isExternal prop renamed to target='_blank' + rel='noopener'"
|
|
3036
|
+
],
|
|
3037
|
+
propMappings: [
|
|
3038
|
+
{
|
|
3039
|
+
uiKitProp: "isExternal",
|
|
3040
|
+
nimbusProp: null,
|
|
3041
|
+
changeType: "removed",
|
|
3042
|
+
notes: "Use target='_blank' rel='noopener' instead."
|
|
3043
|
+
}
|
|
1885
3044
|
]
|
|
1886
3045
|
},
|
|
1887
3046
|
{
|
|
@@ -1893,7 +3052,22 @@ var MIGRATION_DATA = [
|
|
|
1893
3052
|
breakingChanges: [
|
|
1894
3053
|
"Rename to Menu (use Menu.Root, Menu.Trigger, Menu.Content, Menu.Item)",
|
|
1895
3054
|
"options array replaced by Menu.Item children inside Menu.Content",
|
|
1896
|
-
"
|
|
3055
|
+
"per-item onClick replaced by onAction on Menu.Item or Menu (receives key)"
|
|
3056
|
+
],
|
|
3057
|
+
propMappings: [
|
|
3058
|
+
{
|
|
3059
|
+
uiKitProp: "children",
|
|
3060
|
+
nimbusProp: null,
|
|
3061
|
+
changeType: "structural",
|
|
3062
|
+
notes: "Compose Menu.Root > Menu.Trigger + Menu.Content > Menu.Item."
|
|
3063
|
+
}
|
|
3064
|
+
],
|
|
3065
|
+
callbackAdapters: [
|
|
3066
|
+
{
|
|
3067
|
+
prop: "onClick",
|
|
3068
|
+
from: "per-item onClick: () => void \u2014 no arguments, set on each DropdownMenu.ListMenuItem",
|
|
3069
|
+
to: "onAction: (key: Key) => void \u2014 receives the item's key; set on Menu or individual Menu.Item"
|
|
3070
|
+
}
|
|
1897
3071
|
]
|
|
1898
3072
|
},
|
|
1899
3073
|
{
|
|
@@ -1902,7 +3076,41 @@ var MIGRATION_DATA = [
|
|
|
1902
3076
|
importPath: "@commercetools/nimbus",
|
|
1903
3077
|
mappingType: "direct",
|
|
1904
3078
|
notes: "Direct replacement. page/totalPages prop names are unchanged.",
|
|
1905
|
-
breakingChanges: ["onPageChange receives a page number directly"]
|
|
3079
|
+
breakingChanges: ["onPageChange receives a page number directly"],
|
|
3080
|
+
propMappings: [
|
|
3081
|
+
{
|
|
3082
|
+
uiKitProp: "onPageChange",
|
|
3083
|
+
nimbusProp: "onPageChange",
|
|
3084
|
+
changeType: "structural",
|
|
3085
|
+
notes: "Receives the page number directly."
|
|
3086
|
+
}
|
|
3087
|
+
]
|
|
3088
|
+
},
|
|
3089
|
+
{
|
|
3090
|
+
uiKitName: "ViewSwitcher",
|
|
3091
|
+
nimbusEquivalent: "ToggleButtonGroup",
|
|
3092
|
+
importPath: "@commercetools/nimbus",
|
|
3093
|
+
mappingType: "direct",
|
|
3094
|
+
notes: "Replace ViewSwitcher.Group with ToggleButtonGroup and ViewSwitcher.Button with ToggleButton. Nimbus ToggleButtonGroup uses selectionMode='single' for exclusive view switching.",
|
|
3095
|
+
breakingChanges: [
|
|
3096
|
+
"Replace ViewSwitcher.Group with <ToggleButtonGroup selectionMode='single'>",
|
|
3097
|
+
"Replace ViewSwitcher.Button with <ToggleButton>",
|
|
3098
|
+
"isActive prop replaced by selection state managed via selectedKeys/onSelectionChange"
|
|
3099
|
+
],
|
|
3100
|
+
propMappings: [
|
|
3101
|
+
{
|
|
3102
|
+
uiKitProp: "isActive",
|
|
3103
|
+
nimbusProp: "selectedKeys",
|
|
3104
|
+
changeType: "structural",
|
|
3105
|
+
notes: "ViewSwitcher.Button isActive is replaced by ToggleButtonGroup's selectedKeys/onSelectionChange controlled state."
|
|
3106
|
+
},
|
|
3107
|
+
{
|
|
3108
|
+
uiKitProp: "onClick",
|
|
3109
|
+
nimbusProp: "onSelectionChange",
|
|
3110
|
+
changeType: "structural",
|
|
3111
|
+
notes: "ViewSwitcher.Button onClick is replaced by ToggleButtonGroup's onSelectionChange callback."
|
|
3112
|
+
}
|
|
3113
|
+
]
|
|
1906
3114
|
},
|
|
1907
3115
|
// -------------------------------------------------------------------------
|
|
1908
3116
|
// Overlays
|
|
@@ -1915,6 +3123,14 @@ var MIGRATION_DATA = [
|
|
|
1915
3123
|
notes: "Tooltip wraps a trigger element. Use Tooltip.Root (wraps the trigger child) and Tooltip.Content composition.",
|
|
1916
3124
|
breakingChanges: [
|
|
1917
3125
|
"Compositional API: replace single prop with Tooltip.Root + Tooltip.Content"
|
|
3126
|
+
],
|
|
3127
|
+
propMappings: [
|
|
3128
|
+
{
|
|
3129
|
+
uiKitProp: "children",
|
|
3130
|
+
nimbusProp: null,
|
|
3131
|
+
changeType: "structural",
|
|
3132
|
+
notes: "Restructure into Tooltip.Root (wrapping the trigger) + Tooltip.Content."
|
|
3133
|
+
}
|
|
1918
3134
|
]
|
|
1919
3135
|
},
|
|
1920
3136
|
// -------------------------------------------------------------------------
|
|
@@ -1925,10 +3141,23 @@ var MIGRATION_DATA = [
|
|
|
1925
3141
|
nimbusEquivalent: "Alert",
|
|
1926
3142
|
importPath: "@commercetools/nimbus",
|
|
1927
3143
|
mappingType: "direct",
|
|
1928
|
-
notes: "Rename to Alert.
|
|
3144
|
+
notes: "Rename to Alert. colorPalette prop replaces type prop for semantic intent.",
|
|
1929
3145
|
breakingChanges: [
|
|
1930
3146
|
"Rename to Alert",
|
|
1931
|
-
"type prop replaced by
|
|
3147
|
+
"type prop replaced by colorPalette ('info', 'positive', 'warning', 'critical')"
|
|
3148
|
+
],
|
|
3149
|
+
propMappings: [
|
|
3150
|
+
{
|
|
3151
|
+
uiKitProp: "type",
|
|
3152
|
+
nimbusProp: "colorPalette",
|
|
3153
|
+
changeType: "value-mapping",
|
|
3154
|
+
valueMapping: [
|
|
3155
|
+
{ from: "info", to: "info" },
|
|
3156
|
+
{ from: "success", to: "positive" },
|
|
3157
|
+
{ from: "warning", to: "warning" },
|
|
3158
|
+
{ from: "danger", to: "critical" }
|
|
3159
|
+
]
|
|
3160
|
+
}
|
|
1932
3161
|
]
|
|
1933
3162
|
},
|
|
1934
3163
|
// -------------------------------------------------------------------------
|
|
@@ -1951,7 +3180,8 @@ var MIGRATION_DATA = [
|
|
|
1951
3180
|
breakingChanges: [
|
|
1952
3181
|
"Remove Constraints.Horizontal",
|
|
1953
3182
|
"Use maxWidth prop with design token values on Box or Container"
|
|
1954
|
-
]
|
|
3183
|
+
],
|
|
3184
|
+
layoutGuidance: LAYOUT_NESTING_GUIDANCE
|
|
1955
3185
|
},
|
|
1956
3186
|
{
|
|
1957
3187
|
uiKitName: "Spacings.Inline",
|
|
@@ -1962,7 +3192,8 @@ var MIGRATION_DATA = [
|
|
|
1962
3192
|
breakingChanges: [
|
|
1963
3193
|
"Replace Spacings.Inline with <Stack direction='row'>",
|
|
1964
3194
|
"Spacing values use design token scale (e.g. gap='300')"
|
|
1965
|
-
]
|
|
3195
|
+
],
|
|
3196
|
+
layoutGuidance: LAYOUT_NESTING_GUIDANCE
|
|
1966
3197
|
},
|
|
1967
3198
|
{
|
|
1968
3199
|
uiKitName: "Spacings.Inset",
|
|
@@ -1973,7 +3204,8 @@ var MIGRATION_DATA = [
|
|
|
1973
3204
|
breakingChanges: [
|
|
1974
3205
|
"Replace Spacings.Inset with padding prop on Box",
|
|
1975
3206
|
"Spacing values use design token scale"
|
|
1976
|
-
]
|
|
3207
|
+
],
|
|
3208
|
+
layoutGuidance: LAYOUT_NESTING_GUIDANCE
|
|
1977
3209
|
},
|
|
1978
3210
|
{
|
|
1979
3211
|
uiKitName: "Spacings.InsetSquish",
|
|
@@ -1983,7 +3215,8 @@ var MIGRATION_DATA = [
|
|
|
1983
3215
|
notes: "Use <Box paddingX={...} paddingY={...}> with asymmetric nimbus spacing tokens.",
|
|
1984
3216
|
breakingChanges: [
|
|
1985
3217
|
"Replace Spacings.InsetSquish with paddingX/paddingY props on Box"
|
|
1986
|
-
]
|
|
3218
|
+
],
|
|
3219
|
+
layoutGuidance: LAYOUT_NESTING_GUIDANCE
|
|
1987
3220
|
},
|
|
1988
3221
|
{
|
|
1989
3222
|
uiKitName: "Spacings.Stack",
|
|
@@ -1994,7 +3227,8 @@ var MIGRATION_DATA = [
|
|
|
1994
3227
|
breakingChanges: [
|
|
1995
3228
|
"Replace Spacings.Stack with <Stack direction='column'>",
|
|
1996
3229
|
"Spacing values use design token scale"
|
|
1997
|
-
]
|
|
3230
|
+
],
|
|
3231
|
+
layoutGuidance: LAYOUT_NESTING_GUIDANCE
|
|
1998
3232
|
},
|
|
1999
3233
|
// -------------------------------------------------------------------------
|
|
2000
3234
|
// Structure / containers
|
|
@@ -2004,9 +3238,17 @@ var MIGRATION_DATA = [
|
|
|
2004
3238
|
nimbusEquivalent: "Card",
|
|
2005
3239
|
importPath: "@commercetools/nimbus",
|
|
2006
3240
|
mappingType: "direct",
|
|
2007
|
-
notes: "Direct replacement. Composable with Card.Root, Card.Header, Card.
|
|
3241
|
+
notes: "Direct replacement. Composable with Card.Root, Card.Header, Card.Body, Card.Footer.",
|
|
2008
3242
|
breakingChanges: [
|
|
2009
|
-
"Adopt compositional slot API (Card.Root, Card.Header, Card.
|
|
3243
|
+
"Adopt compositional slot API (Card.Root, Card.Header, Card.Body, Card.Footer)"
|
|
3244
|
+
],
|
|
3245
|
+
propMappings: [
|
|
3246
|
+
{
|
|
3247
|
+
uiKitProp: "children",
|
|
3248
|
+
nimbusProp: null,
|
|
3249
|
+
changeType: "structural",
|
|
3250
|
+
notes: "Restructure into Card.Root > Card.Header + Card.Body + Card.Footer slots."
|
|
3251
|
+
}
|
|
2010
3252
|
]
|
|
2011
3253
|
},
|
|
2012
3254
|
{
|
|
@@ -2022,6 +3264,33 @@ var MIGRATION_DATA = [
|
|
|
2022
3264
|
"header prop replaced by Accordion.Header child",
|
|
2023
3265
|
"condensed prop removed",
|
|
2024
3266
|
"tone prop ('urgent'|'primary') replaced by Nimbus design tokens"
|
|
3267
|
+
],
|
|
3268
|
+
propMappings: [
|
|
3269
|
+
{
|
|
3270
|
+
uiKitProp: "isClosed",
|
|
3271
|
+
nimbusProp: null,
|
|
3272
|
+
changeType: "structural",
|
|
3273
|
+
notes: "Use Accordion.Root's expandedKeys/defaultExpandedKeys + onExpandedChange (React Aria controlled/uncontrolled pattern)."
|
|
3274
|
+
},
|
|
3275
|
+
{
|
|
3276
|
+
uiKitProp: "header",
|
|
3277
|
+
nimbusProp: null,
|
|
3278
|
+
changeType: "structural",
|
|
3279
|
+
notes: "Use an Accordion.Header child instead of a prop."
|
|
3280
|
+
},
|
|
3281
|
+
{ uiKitProp: "condensed", nimbusProp: null, changeType: "removed" },
|
|
3282
|
+
{ uiKitProp: "tone", nimbusProp: null, changeType: "removed" }
|
|
3283
|
+
],
|
|
3284
|
+
callbackAdapters: [
|
|
3285
|
+
{
|
|
3286
|
+
prop: "onToggle",
|
|
3287
|
+
from: "() => void \u2014 simple toggle callback",
|
|
3288
|
+
to: "onExpandedChange: (keys: Set<Key>) => void \u2014 receives the full set of expanded item keys"
|
|
3289
|
+
}
|
|
3290
|
+
],
|
|
3291
|
+
typeNotes: [
|
|
3292
|
+
"Controlled state uses expandedKeys: Iterable<Key> + onExpandedChange: (keys: Set<Key>) => void; each Accordion.Item needs a value (string) prop as its key",
|
|
3293
|
+
"Key type is string | number from @react-types/shared"
|
|
2025
3294
|
]
|
|
2026
3295
|
},
|
|
2027
3296
|
{
|
|
@@ -2033,6 +3302,14 @@ var MIGRATION_DATA = [
|
|
|
2033
3302
|
breakingChanges: [
|
|
2034
3303
|
"Adopt compositional API (CollapsibleMotion.Root, CollapsibleMotion.Trigger, CollapsibleMotion.Content)",
|
|
2035
3304
|
"Render prop pattern replaced by compound component children"
|
|
3305
|
+
],
|
|
3306
|
+
propMappings: [
|
|
3307
|
+
{
|
|
3308
|
+
uiKitProp: "children",
|
|
3309
|
+
nimbusProp: null,
|
|
3310
|
+
changeType: "structural",
|
|
3311
|
+
notes: "Render prop (isClosed/toggle) replaced by CollapsibleMotion.Root/Trigger/Content composition."
|
|
3312
|
+
}
|
|
2036
3313
|
]
|
|
2037
3314
|
},
|
|
2038
3315
|
// -------------------------------------------------------------------------
|
|
@@ -2044,7 +3321,16 @@ var MIGRATION_DATA = [
|
|
|
2044
3321
|
importPath: "@commercetools/nimbus",
|
|
2045
3322
|
mappingType: "variant",
|
|
2046
3323
|
notes: 'Use <Text size="md"> (default size).',
|
|
2047
|
-
breakingChanges: ["Replace Text.Body with <Text> (default size is body)"]
|
|
3324
|
+
breakingChanges: ["Replace Text.Body with <Text> (default size is body)"],
|
|
3325
|
+
propMappings: [
|
|
3326
|
+
{
|
|
3327
|
+
uiKitProp: "_component",
|
|
3328
|
+
nimbusProp: null,
|
|
3329
|
+
changeType: "value-mapping",
|
|
3330
|
+
fixedValue: "md",
|
|
3331
|
+
notes: "size='md' is Text's default, so it can usually be omitted."
|
|
3332
|
+
}
|
|
3333
|
+
]
|
|
2048
3334
|
},
|
|
2049
3335
|
{
|
|
2050
3336
|
uiKitName: "Text.Caption",
|
|
@@ -2052,7 +3338,15 @@ var MIGRATION_DATA = [
|
|
|
2052
3338
|
importPath: "@commercetools/nimbus",
|
|
2053
3339
|
mappingType: "variant",
|
|
2054
3340
|
notes: 'Use <Text size="xs"> for caption-sized text.',
|
|
2055
|
-
breakingChanges: ["Replace Text.Caption with <Text size='xs'>"]
|
|
3341
|
+
breakingChanges: ["Replace Text.Caption with <Text size='xs'>"],
|
|
3342
|
+
propMappings: [
|
|
3343
|
+
{
|
|
3344
|
+
uiKitProp: "_component",
|
|
3345
|
+
nimbusProp: null,
|
|
3346
|
+
changeType: "value-mapping",
|
|
3347
|
+
fixedValue: "xs"
|
|
3348
|
+
}
|
|
3349
|
+
]
|
|
2056
3350
|
},
|
|
2057
3351
|
{
|
|
2058
3352
|
uiKitName: "Text.Detail",
|
|
@@ -2060,7 +3354,15 @@ var MIGRATION_DATA = [
|
|
|
2060
3354
|
importPath: "@commercetools/nimbus",
|
|
2061
3355
|
mappingType: "variant",
|
|
2062
3356
|
notes: 'Use <Text size="sm"> for detail/small text.',
|
|
2063
|
-
breakingChanges: ["Replace Text.Detail with <Text size='sm'>"]
|
|
3357
|
+
breakingChanges: ["Replace Text.Detail with <Text size='sm'>"],
|
|
3358
|
+
propMappings: [
|
|
3359
|
+
{
|
|
3360
|
+
uiKitProp: "_component",
|
|
3361
|
+
nimbusProp: null,
|
|
3362
|
+
changeType: "value-mapping",
|
|
3363
|
+
fixedValue: "sm"
|
|
3364
|
+
}
|
|
3365
|
+
]
|
|
2064
3366
|
},
|
|
2065
3367
|
{
|
|
2066
3368
|
uiKitName: "Text.Headline",
|
|
@@ -2070,6 +3372,15 @@ var MIGRATION_DATA = [
|
|
|
2070
3372
|
notes: 'Use <Text size="2xl" fontWeight="bold"> or the Heading component.',
|
|
2071
3373
|
breakingChanges: [
|
|
2072
3374
|
"Replace Text.Headline with <Text size='2xl' fontWeight='bold'> or <Heading>"
|
|
3375
|
+
],
|
|
3376
|
+
propMappings: [
|
|
3377
|
+
{
|
|
3378
|
+
uiKitProp: "_component",
|
|
3379
|
+
nimbusProp: null,
|
|
3380
|
+
changeType: "value-mapping",
|
|
3381
|
+
fixedValue: "2xl",
|
|
3382
|
+
notes: "Also set fontWeight='bold', or use <Heading> instead."
|
|
3383
|
+
}
|
|
2073
3384
|
]
|
|
2074
3385
|
},
|
|
2075
3386
|
{
|
|
@@ -2078,7 +3389,15 @@ var MIGRATION_DATA = [
|
|
|
2078
3389
|
importPath: "@commercetools/nimbus",
|
|
2079
3390
|
mappingType: "variant",
|
|
2080
3391
|
notes: 'Use <Text size="xl">.',
|
|
2081
|
-
breakingChanges: ["Replace Text.Subheadline with <Text size='xl'>"]
|
|
3392
|
+
breakingChanges: ["Replace Text.Subheadline with <Text size='xl'>"],
|
|
3393
|
+
propMappings: [
|
|
3394
|
+
{
|
|
3395
|
+
uiKitProp: "_component",
|
|
3396
|
+
nimbusProp: null,
|
|
3397
|
+
changeType: "value-mapping",
|
|
3398
|
+
fixedValue: "xl"
|
|
3399
|
+
}
|
|
3400
|
+
]
|
|
2082
3401
|
},
|
|
2083
3402
|
{
|
|
2084
3403
|
uiKitName: "Text.Wrap",
|
|
@@ -2101,80 +3420,1783 @@ var MIGRATION_DATA = [
|
|
|
2101
3420
|
]
|
|
2102
3421
|
},
|
|
2103
3422
|
// -------------------------------------------------------------------------
|
|
2104
|
-
// Icons
|
|
3423
|
+
// Icons — specific UI Kit icon → Nimbus icon mappings
|
|
2105
3424
|
// -------------------------------------------------------------------------
|
|
2106
3425
|
{
|
|
2107
|
-
uiKitName: "
|
|
3426
|
+
uiKitName: "AngleDownIcon",
|
|
2108
3427
|
nimbusEquivalent: "Icon",
|
|
2109
3428
|
importPath: "@commercetools/nimbus",
|
|
2110
3429
|
mappingType: "variant",
|
|
2111
|
-
notes:
|
|
3430
|
+
notes: 'Use <Icon as={KeyboardArrowDown} /> from @commercetools/nimbus-icons. Import: import { KeyboardArrowDown } from "@commercetools/nimbus-icons";',
|
|
2112
3431
|
breakingChanges: [
|
|
2113
|
-
"Replace
|
|
2114
|
-
"
|
|
2115
|
-
|
|
3432
|
+
"Replace AngleDownIcon with <Icon as={KeyboardArrowDown} />",
|
|
3433
|
+
"Import KeyboardArrowDown from @commercetools/nimbus-icons",
|
|
3434
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3435
|
+
],
|
|
3436
|
+
iconWrapper: ICON_WRAPPER
|
|
2116
3437
|
},
|
|
2117
3438
|
{
|
|
2118
|
-
uiKitName: "
|
|
3439
|
+
uiKitName: "AngleThinLeftIcon",
|
|
2119
3440
|
nimbusEquivalent: "Icon",
|
|
2120
3441
|
importPath: "@commercetools/nimbus",
|
|
2121
3442
|
mappingType: "variant",
|
|
2122
|
-
notes:
|
|
3443
|
+
notes: 'Use <Icon as={ChevronLeft} /> from @commercetools/nimbus-icons. Import: import { ChevronLeft } from "@commercetools/nimbus-icons";',
|
|
2123
3444
|
breakingChanges: [
|
|
2124
|
-
"
|
|
2125
|
-
"
|
|
2126
|
-
|
|
3445
|
+
"Replace AngleThinLeftIcon with <Icon as={ChevronLeft} />",
|
|
3446
|
+
"Import ChevronLeft from @commercetools/nimbus-icons",
|
|
3447
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3448
|
+
],
|
|
3449
|
+
iconWrapper: ICON_WRAPPER
|
|
2127
3450
|
},
|
|
2128
3451
|
{
|
|
2129
|
-
uiKitName: "
|
|
2130
|
-
nimbusEquivalent: "
|
|
3452
|
+
uiKitName: "AngleThinRightIcon",
|
|
3453
|
+
nimbusEquivalent: "Icon",
|
|
2131
3454
|
importPath: "@commercetools/nimbus",
|
|
2132
|
-
mappingType: "
|
|
2133
|
-
notes:
|
|
2134
|
-
breakingChanges: [
|
|
3455
|
+
mappingType: "variant",
|
|
3456
|
+
notes: 'Use <Icon as={ChevronRight} /> from @commercetools/nimbus-icons. Import: import { ChevronRight } from "@commercetools/nimbus-icons";',
|
|
3457
|
+
breakingChanges: [
|
|
3458
|
+
"Replace AngleThinRightIcon with <Icon as={ChevronRight} />",
|
|
3459
|
+
"Import ChevronRight from @commercetools/nimbus-icons",
|
|
3460
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3461
|
+
],
|
|
3462
|
+
iconWrapper: ICON_WRAPPER
|
|
2135
3463
|
},
|
|
2136
3464
|
{
|
|
2137
|
-
uiKitName: "
|
|
2138
|
-
nimbusEquivalent: "
|
|
2139
|
-
importPath: "@commercetools/nimbus
|
|
2140
|
-
mappingType: "
|
|
2141
|
-
notes:
|
|
3465
|
+
uiKitName: "AngleUpDownIcon",
|
|
3466
|
+
nimbusEquivalent: "Icon",
|
|
3467
|
+
importPath: "@commercetools/nimbus",
|
|
3468
|
+
mappingType: "variant",
|
|
3469
|
+
notes: 'Use <Icon as={UnfoldMore} /> from @commercetools/nimbus-icons. Import: import { UnfoldMore } from "@commercetools/nimbus-icons";',
|
|
2142
3470
|
breakingChanges: [
|
|
2143
|
-
"
|
|
2144
|
-
"
|
|
2145
|
-
|
|
3471
|
+
"Replace AngleUpDownIcon with <Icon as={UnfoldMore} />",
|
|
3472
|
+
"Import UnfoldMore from @commercetools/nimbus-icons",
|
|
3473
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3474
|
+
],
|
|
3475
|
+
iconWrapper: ICON_WRAPPER
|
|
2146
3476
|
},
|
|
2147
|
-
// -------------------------------------------------------------------------
|
|
2148
|
-
// Accessibility utilities
|
|
2149
|
-
// -------------------------------------------------------------------------
|
|
2150
3477
|
{
|
|
2151
|
-
uiKitName: "
|
|
2152
|
-
nimbusEquivalent: "
|
|
3478
|
+
uiKitName: "AngleUpIcon",
|
|
3479
|
+
nimbusEquivalent: "Icon",
|
|
2153
3480
|
importPath: "@commercetools/nimbus",
|
|
2154
|
-
mappingType: "
|
|
2155
|
-
notes:
|
|
2156
|
-
breakingChanges: [
|
|
3481
|
+
mappingType: "variant",
|
|
3482
|
+
notes: 'Use <Icon as={ExpandLess} /> from @commercetools/nimbus-icons. Import: import { ExpandLess } from "@commercetools/nimbus-icons";',
|
|
3483
|
+
breakingChanges: [
|
|
3484
|
+
"Replace AngleUpIcon with <Icon as={ExpandLess} />",
|
|
3485
|
+
"Import ExpandLess from @commercetools/nimbus-icons",
|
|
3486
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3487
|
+
],
|
|
3488
|
+
iconWrapper: ICON_WRAPPER
|
|
2157
3489
|
},
|
|
2158
3490
|
{
|
|
2159
|
-
uiKitName: "
|
|
2160
|
-
nimbusEquivalent: "
|
|
3491
|
+
uiKitName: "ArrowDownIcon",
|
|
3492
|
+
nimbusEquivalent: "Icon",
|
|
2161
3493
|
importPath: "@commercetools/nimbus",
|
|
2162
3494
|
mappingType: "variant",
|
|
2163
|
-
notes:
|
|
2164
|
-
breakingChanges: [
|
|
3495
|
+
notes: 'Use <Icon as={ArrowDownward} /> from @commercetools/nimbus-icons. Import: import { ArrowDownward } from "@commercetools/nimbus-icons";',
|
|
3496
|
+
breakingChanges: [
|
|
3497
|
+
"Replace ArrowDownIcon with <Icon as={ArrowDownward} />",
|
|
3498
|
+
"Import ArrowDownward from @commercetools/nimbus-icons",
|
|
3499
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3500
|
+
],
|
|
3501
|
+
iconWrapper: ICON_WRAPPER
|
|
2165
3502
|
},
|
|
2166
|
-
// -------------------------------------------------------------------------
|
|
2167
|
-
// Provider
|
|
2168
|
-
// -------------------------------------------------------------------------
|
|
2169
3503
|
{
|
|
2170
|
-
uiKitName: "
|
|
2171
|
-
nimbusEquivalent: "
|
|
3504
|
+
uiKitName: "ArrowLeftIcon",
|
|
3505
|
+
nimbusEquivalent: "Icon",
|
|
2172
3506
|
importPath: "@commercetools/nimbus",
|
|
2173
|
-
mappingType: "
|
|
2174
|
-
notes:
|
|
3507
|
+
mappingType: "variant",
|
|
3508
|
+
notes: 'Use <Icon as={ArrowLeft} /> from @commercetools/nimbus-icons. Import: import { ArrowLeft } from "@commercetools/nimbus-icons";',
|
|
3509
|
+
breakingChanges: [
|
|
3510
|
+
"Replace ArrowLeftIcon with <Icon as={ArrowLeft} />",
|
|
3511
|
+
"Import ArrowLeft from @commercetools/nimbus-icons",
|
|
3512
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3513
|
+
],
|
|
3514
|
+
iconWrapper: ICON_WRAPPER
|
|
3515
|
+
},
|
|
3516
|
+
{
|
|
3517
|
+
uiKitName: "ArrowLongDownIcon",
|
|
3518
|
+
nimbusEquivalent: "Icon",
|
|
3519
|
+
importPath: "@commercetools/nimbus",
|
|
3520
|
+
mappingType: "variant",
|
|
3521
|
+
notes: 'Use <Icon as={South} /> from @commercetools/nimbus-icons. Import: import { South } from "@commercetools/nimbus-icons";',
|
|
3522
|
+
breakingChanges: [
|
|
3523
|
+
"Replace ArrowLongDownIcon with <Icon as={South} />",
|
|
3524
|
+
"Import South from @commercetools/nimbus-icons",
|
|
3525
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3526
|
+
],
|
|
3527
|
+
iconWrapper: ICON_WRAPPER
|
|
3528
|
+
},
|
|
3529
|
+
{
|
|
3530
|
+
uiKitName: "ArrowRightIcon",
|
|
3531
|
+
nimbusEquivalent: "Icon",
|
|
3532
|
+
importPath: "@commercetools/nimbus",
|
|
3533
|
+
mappingType: "variant",
|
|
3534
|
+
notes: 'Use <Icon as={ArrowRight} /> from @commercetools/nimbus-icons. Import: import { ArrowRight } from "@commercetools/nimbus-icons";',
|
|
3535
|
+
breakingChanges: [
|
|
3536
|
+
"Replace ArrowRightIcon with <Icon as={ArrowRight} />",
|
|
3537
|
+
"Import ArrowRight from @commercetools/nimbus-icons",
|
|
3538
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3539
|
+
],
|
|
3540
|
+
iconWrapper: ICON_WRAPPER
|
|
3541
|
+
},
|
|
3542
|
+
{
|
|
3543
|
+
uiKitName: "ArrowsIcon",
|
|
3544
|
+
nimbusEquivalent: "Icon",
|
|
3545
|
+
importPath: "@commercetools/nimbus",
|
|
3546
|
+
mappingType: "variant",
|
|
3547
|
+
notes: 'Use <Icon as={SwapVert} /> from @commercetools/nimbus-icons. Import: import { SwapVert } from "@commercetools/nimbus-icons";',
|
|
3548
|
+
breakingChanges: [
|
|
3549
|
+
"Replace ArrowsIcon with <Icon as={SwapVert} />",
|
|
3550
|
+
"Import SwapVert from @commercetools/nimbus-icons",
|
|
3551
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3552
|
+
],
|
|
3553
|
+
iconWrapper: ICON_WRAPPER
|
|
3554
|
+
},
|
|
3555
|
+
{
|
|
3556
|
+
uiKitName: "ArrowsMinimizeIcon",
|
|
3557
|
+
nimbusEquivalent: "Icon",
|
|
3558
|
+
importPath: "@commercetools/nimbus",
|
|
3559
|
+
mappingType: "variant",
|
|
3560
|
+
notes: 'Use <Icon as={UnfoldLess} /> from @commercetools/nimbus-icons. Import: import { UnfoldLess } from "@commercetools/nimbus-icons";',
|
|
3561
|
+
breakingChanges: [
|
|
3562
|
+
"Replace ArrowsMinimizeIcon with <Icon as={UnfoldLess} />",
|
|
3563
|
+
"Import UnfoldLess from @commercetools/nimbus-icons",
|
|
3564
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3565
|
+
],
|
|
3566
|
+
iconWrapper: ICON_WRAPPER
|
|
3567
|
+
},
|
|
3568
|
+
{
|
|
3569
|
+
uiKitName: "ArrowTriangleDownIcon",
|
|
3570
|
+
nimbusEquivalent: "Icon",
|
|
3571
|
+
importPath: "@commercetools/nimbus",
|
|
3572
|
+
mappingType: "variant",
|
|
3573
|
+
notes: 'Use <Icon as={ArrowDropDown} /> from @commercetools/nimbus-icons. Import: import { ArrowDropDown } from "@commercetools/nimbus-icons";',
|
|
3574
|
+
breakingChanges: [
|
|
3575
|
+
"Replace ArrowTriangleDownIcon with <Icon as={ArrowDropDown} />",
|
|
3576
|
+
"Import ArrowDropDown from @commercetools/nimbus-icons",
|
|
3577
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3578
|
+
],
|
|
3579
|
+
iconWrapper: ICON_WRAPPER
|
|
3580
|
+
},
|
|
3581
|
+
{
|
|
3582
|
+
uiKitName: "ArrowTriangleUpIcon",
|
|
3583
|
+
nimbusEquivalent: "Icon",
|
|
3584
|
+
importPath: "@commercetools/nimbus",
|
|
3585
|
+
mappingType: "variant",
|
|
3586
|
+
notes: 'Use <Icon as={ArrowDropUp} /> from @commercetools/nimbus-icons. Import: import { ArrowDropUp } from "@commercetools/nimbus-icons";',
|
|
3587
|
+
breakingChanges: [
|
|
3588
|
+
"Replace ArrowTriangleUpIcon with <Icon as={ArrowDropUp} />",
|
|
3589
|
+
"Import ArrowDropUp from @commercetools/nimbus-icons",
|
|
3590
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3591
|
+
],
|
|
3592
|
+
iconWrapper: ICON_WRAPPER
|
|
3593
|
+
},
|
|
3594
|
+
{
|
|
3595
|
+
uiKitName: "ArrowUpIcon",
|
|
3596
|
+
nimbusEquivalent: "Icon",
|
|
3597
|
+
importPath: "@commercetools/nimbus",
|
|
3598
|
+
mappingType: "variant",
|
|
3599
|
+
notes: 'Use <Icon as={ArrowUpward} /> from @commercetools/nimbus-icons. Import: import { ArrowUpward } from "@commercetools/nimbus-icons";',
|
|
3600
|
+
breakingChanges: [
|
|
3601
|
+
"Replace ArrowUpIcon with <Icon as={ArrowUpward} />",
|
|
3602
|
+
"Import ArrowUpward from @commercetools/nimbus-icons",
|
|
3603
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3604
|
+
],
|
|
3605
|
+
iconWrapper: ICON_WRAPPER
|
|
3606
|
+
},
|
|
3607
|
+
{
|
|
3608
|
+
uiKitName: "BackIcon",
|
|
3609
|
+
nimbusEquivalent: "Icon",
|
|
3610
|
+
importPath: "@commercetools/nimbus",
|
|
3611
|
+
mappingType: "variant",
|
|
3612
|
+
notes: 'Use <Icon as={ArrowBack} /> from @commercetools/nimbus-icons. Import: import { ArrowBack } from "@commercetools/nimbus-icons";',
|
|
3613
|
+
breakingChanges: [
|
|
3614
|
+
"Replace BackIcon with <Icon as={ArrowBack} />",
|
|
3615
|
+
"Import ArrowBack from @commercetools/nimbus-icons",
|
|
3616
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3617
|
+
],
|
|
3618
|
+
iconWrapper: ICON_WRAPPER
|
|
3619
|
+
},
|
|
3620
|
+
{
|
|
3621
|
+
uiKitName: "BagIcon",
|
|
3622
|
+
nimbusEquivalent: "Icon",
|
|
3623
|
+
importPath: "@commercetools/nimbus",
|
|
3624
|
+
mappingType: "variant",
|
|
3625
|
+
notes: 'Use <Icon as={ShoppingBag} /> from @commercetools/nimbus-icons. Import: import { ShoppingBag } from "@commercetools/nimbus-icons";',
|
|
3626
|
+
breakingChanges: [
|
|
3627
|
+
"Replace BagIcon with <Icon as={ShoppingBag} />",
|
|
3628
|
+
"Import ShoppingBag from @commercetools/nimbus-icons",
|
|
3629
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3630
|
+
],
|
|
3631
|
+
iconWrapper: ICON_WRAPPER
|
|
3632
|
+
},
|
|
3633
|
+
{
|
|
3634
|
+
uiKitName: "BidirectionalArrowIcon",
|
|
3635
|
+
nimbusEquivalent: "Icon",
|
|
3636
|
+
importPath: "@commercetools/nimbus",
|
|
3637
|
+
mappingType: "variant",
|
|
3638
|
+
notes: 'Use <Icon as={SwapHoriz} /> from @commercetools/nimbus-icons. Import: import { SwapHoriz } from "@commercetools/nimbus-icons";',
|
|
3639
|
+
breakingChanges: [
|
|
3640
|
+
"Replace BidirectionalArrowIcon with <Icon as={SwapHoriz} />",
|
|
3641
|
+
"Import SwapHoriz from @commercetools/nimbus-icons",
|
|
3642
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3643
|
+
],
|
|
3644
|
+
iconWrapper: ICON_WRAPPER
|
|
3645
|
+
},
|
|
3646
|
+
{
|
|
3647
|
+
uiKitName: "BinFilledIcon",
|
|
3648
|
+
nimbusEquivalent: "Icon",
|
|
3649
|
+
importPath: "@commercetools/nimbus",
|
|
3650
|
+
mappingType: "variant",
|
|
3651
|
+
notes: 'Use <Icon as={Delete} /> from @commercetools/nimbus-icons. Import: import { Delete } from "@commercetools/nimbus-icons";',
|
|
3652
|
+
breakingChanges: [
|
|
3653
|
+
"Replace BinFilledIcon with <Icon as={Delete} />",
|
|
3654
|
+
"Import Delete from @commercetools/nimbus-icons",
|
|
3655
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3656
|
+
],
|
|
3657
|
+
iconWrapper: ICON_WRAPPER
|
|
3658
|
+
},
|
|
3659
|
+
{
|
|
3660
|
+
uiKitName: "BoxIcon",
|
|
3661
|
+
nimbusEquivalent: "Icon",
|
|
3662
|
+
importPath: "@commercetools/nimbus",
|
|
3663
|
+
mappingType: "variant",
|
|
3664
|
+
notes: 'Use <Icon as={Inventory} /> from @commercetools/nimbus-icons. Import: import { Inventory } from "@commercetools/nimbus-icons";',
|
|
3665
|
+
breakingChanges: [
|
|
3666
|
+
"Replace BoxIcon with <Icon as={Inventory} />",
|
|
3667
|
+
"Import Inventory from @commercetools/nimbus-icons",
|
|
3668
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3669
|
+
],
|
|
3670
|
+
iconWrapper: ICON_WRAPPER
|
|
3671
|
+
},
|
|
3672
|
+
{
|
|
3673
|
+
uiKitName: "BrainIcon",
|
|
3674
|
+
nimbusEquivalent: "Icon",
|
|
3675
|
+
importPath: "@commercetools/nimbus",
|
|
3676
|
+
mappingType: "variant",
|
|
3677
|
+
notes: 'Use <Icon as={Psychology} /> from @commercetools/nimbus-icons. Import: import { Psychology } from "@commercetools/nimbus-icons";',
|
|
3678
|
+
breakingChanges: [
|
|
3679
|
+
"Replace BrainIcon with <Icon as={Psychology} />",
|
|
3680
|
+
"Import Psychology from @commercetools/nimbus-icons",
|
|
3681
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3682
|
+
],
|
|
3683
|
+
iconWrapper: ICON_WRAPPER
|
|
3684
|
+
},
|
|
3685
|
+
{
|
|
3686
|
+
uiKitName: "CalendarIcon",
|
|
3687
|
+
nimbusEquivalent: "Icon",
|
|
3688
|
+
importPath: "@commercetools/nimbus",
|
|
3689
|
+
mappingType: "variant",
|
|
3690
|
+
notes: 'Use <Icon as={CalendarToday} /> from @commercetools/nimbus-icons. Import: import { CalendarToday } from "@commercetools/nimbus-icons";',
|
|
3691
|
+
breakingChanges: [
|
|
3692
|
+
"Replace CalendarIcon with <Icon as={CalendarToday} />",
|
|
3693
|
+
"Import CalendarToday from @commercetools/nimbus-icons",
|
|
3694
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3695
|
+
],
|
|
3696
|
+
iconWrapper: ICON_WRAPPER
|
|
3697
|
+
},
|
|
3698
|
+
{
|
|
3699
|
+
uiKitName: "CameraIcon",
|
|
3700
|
+
nimbusEquivalent: "Icon",
|
|
3701
|
+
importPath: "@commercetools/nimbus",
|
|
3702
|
+
mappingType: "variant",
|
|
3703
|
+
notes: 'Use <Icon as={CameraAlt} /> from @commercetools/nimbus-icons. Import: import { CameraAlt } from "@commercetools/nimbus-icons";',
|
|
3704
|
+
breakingChanges: [
|
|
3705
|
+
"Replace CameraIcon with <Icon as={CameraAlt} />",
|
|
3706
|
+
"Import CameraAlt from @commercetools/nimbus-icons",
|
|
3707
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3708
|
+
],
|
|
3709
|
+
iconWrapper: ICON_WRAPPER
|
|
3710
|
+
},
|
|
3711
|
+
{
|
|
3712
|
+
uiKitName: "CaretDownIcon",
|
|
3713
|
+
nimbusEquivalent: "Icon",
|
|
3714
|
+
importPath: "@commercetools/nimbus",
|
|
3715
|
+
mappingType: "variant",
|
|
3716
|
+
notes: 'Use <Icon as={ArrowDropDown} /> from @commercetools/nimbus-icons. Import: import { ArrowDropDown } from "@commercetools/nimbus-icons";',
|
|
3717
|
+
breakingChanges: [
|
|
3718
|
+
"Replace CaretDownIcon with <Icon as={ArrowDropDown} />",
|
|
3719
|
+
"Import ArrowDropDown from @commercetools/nimbus-icons",
|
|
3720
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3721
|
+
],
|
|
3722
|
+
iconWrapper: ICON_WRAPPER
|
|
3723
|
+
},
|
|
3724
|
+
{
|
|
3725
|
+
uiKitName: "CaretDownSmallIcon",
|
|
3726
|
+
nimbusEquivalent: "Icon",
|
|
3727
|
+
importPath: "@commercetools/nimbus",
|
|
3728
|
+
mappingType: "variant",
|
|
3729
|
+
notes: 'Use <Icon as={ArrowDropDown} /> from @commercetools/nimbus-icons. Import: import { ArrowDropDown } from "@commercetools/nimbus-icons";',
|
|
3730
|
+
breakingChanges: [
|
|
3731
|
+
"Replace CaretDownSmallIcon with <Icon as={ArrowDropDown} />",
|
|
3732
|
+
"Import ArrowDropDown from @commercetools/nimbus-icons",
|
|
3733
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3734
|
+
],
|
|
3735
|
+
iconWrapper: ICON_WRAPPER
|
|
3736
|
+
},
|
|
3737
|
+
{
|
|
3738
|
+
uiKitName: "CaretUpIcon",
|
|
3739
|
+
nimbusEquivalent: "Icon",
|
|
3740
|
+
importPath: "@commercetools/nimbus",
|
|
3741
|
+
mappingType: "variant",
|
|
3742
|
+
notes: 'Use <Icon as={ArrowDropUp} /> from @commercetools/nimbus-icons. Import: import { ArrowDropUp } from "@commercetools/nimbus-icons";',
|
|
3743
|
+
breakingChanges: [
|
|
3744
|
+
"Replace CaretUpIcon with <Icon as={ArrowDropUp} />",
|
|
3745
|
+
"Import ArrowDropUp from @commercetools/nimbus-icons",
|
|
3746
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3747
|
+
],
|
|
3748
|
+
iconWrapper: ICON_WRAPPER
|
|
3749
|
+
},
|
|
3750
|
+
{
|
|
3751
|
+
uiKitName: "CaretUpSmallIcon",
|
|
3752
|
+
nimbusEquivalent: "Icon",
|
|
3753
|
+
importPath: "@commercetools/nimbus",
|
|
3754
|
+
mappingType: "variant",
|
|
3755
|
+
notes: 'Use <Icon as={ArrowDropUp} /> from @commercetools/nimbus-icons. Import: import { ArrowDropUp } from "@commercetools/nimbus-icons";',
|
|
3756
|
+
breakingChanges: [
|
|
3757
|
+
"Replace CaretUpSmallIcon with <Icon as={ArrowDropUp} />",
|
|
3758
|
+
"Import ArrowDropUp from @commercetools/nimbus-icons",
|
|
3759
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3760
|
+
],
|
|
3761
|
+
iconWrapper: ICON_WRAPPER
|
|
3762
|
+
},
|
|
3763
|
+
{
|
|
3764
|
+
uiKitName: "CartIcon",
|
|
3765
|
+
nimbusEquivalent: "Icon",
|
|
3766
|
+
importPath: "@commercetools/nimbus",
|
|
3767
|
+
mappingType: "variant",
|
|
3768
|
+
notes: 'Use <Icon as={ShoppingCart} /> from @commercetools/nimbus-icons. Import: import { ShoppingCart } from "@commercetools/nimbus-icons";',
|
|
3769
|
+
breakingChanges: [
|
|
3770
|
+
"Replace CartIcon with <Icon as={ShoppingCart} />",
|
|
3771
|
+
"Import ShoppingCart from @commercetools/nimbus-icons",
|
|
3772
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3773
|
+
],
|
|
3774
|
+
iconWrapper: ICON_WRAPPER
|
|
3775
|
+
},
|
|
3776
|
+
{
|
|
3777
|
+
uiKitName: "ChainBrokenIcon",
|
|
3778
|
+
nimbusEquivalent: "Icon",
|
|
3779
|
+
importPath: "@commercetools/nimbus",
|
|
3780
|
+
mappingType: "variant",
|
|
3781
|
+
notes: 'Use <Icon as={LinkOff} /> from @commercetools/nimbus-icons. Import: import { LinkOff } from "@commercetools/nimbus-icons";',
|
|
3782
|
+
breakingChanges: [
|
|
3783
|
+
"Replace ChainBrokenIcon with <Icon as={LinkOff} />",
|
|
3784
|
+
"Import LinkOff from @commercetools/nimbus-icons",
|
|
3785
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3786
|
+
],
|
|
3787
|
+
iconWrapper: ICON_WRAPPER
|
|
3788
|
+
},
|
|
3789
|
+
{
|
|
3790
|
+
uiKitName: "ChainIcon",
|
|
3791
|
+
nimbusEquivalent: "Icon",
|
|
3792
|
+
importPath: "@commercetools/nimbus",
|
|
3793
|
+
mappingType: "variant",
|
|
3794
|
+
notes: 'Use <Icon as={Link} /> from @commercetools/nimbus-icons. Import: import { Link } from "@commercetools/nimbus-icons";',
|
|
3795
|
+
breakingChanges: [
|
|
3796
|
+
"Replace ChainIcon with <Icon as={Link} />",
|
|
3797
|
+
"Import Link from @commercetools/nimbus-icons",
|
|
3798
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3799
|
+
],
|
|
3800
|
+
iconWrapper: ICON_WRAPPER
|
|
3801
|
+
},
|
|
3802
|
+
{
|
|
3803
|
+
uiKitName: "CheckActiveIcon",
|
|
3804
|
+
nimbusEquivalent: "Icon",
|
|
3805
|
+
importPath: "@commercetools/nimbus",
|
|
3806
|
+
mappingType: "variant",
|
|
3807
|
+
notes: 'Use <Icon as={CheckCircle} /> from @commercetools/nimbus-icons. Import: import { CheckCircle } from "@commercetools/nimbus-icons";',
|
|
3808
|
+
breakingChanges: [
|
|
3809
|
+
"Replace CheckActiveIcon with <Icon as={CheckCircle} />",
|
|
3810
|
+
"Import CheckCircle from @commercetools/nimbus-icons",
|
|
3811
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3812
|
+
],
|
|
3813
|
+
iconWrapper: ICON_WRAPPER
|
|
3814
|
+
},
|
|
3815
|
+
{
|
|
3816
|
+
uiKitName: "CheckBoldIcon",
|
|
3817
|
+
nimbusEquivalent: "Icon",
|
|
3818
|
+
importPath: "@commercetools/nimbus",
|
|
3819
|
+
mappingType: "variant",
|
|
3820
|
+
notes: 'Use <Icon as={Check} /> from @commercetools/nimbus-icons. Import: import { Check } from "@commercetools/nimbus-icons";',
|
|
3821
|
+
breakingChanges: [
|
|
3822
|
+
"Replace CheckBoldIcon with <Icon as={Check} />",
|
|
3823
|
+
"Import Check from @commercetools/nimbus-icons",
|
|
3824
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3825
|
+
],
|
|
3826
|
+
iconWrapper: ICON_WRAPPER
|
|
3827
|
+
},
|
|
3828
|
+
{
|
|
3829
|
+
uiKitName: "CheckInactiveIcon",
|
|
3830
|
+
nimbusEquivalent: "Icon",
|
|
3831
|
+
importPath: "@commercetools/nimbus",
|
|
3832
|
+
mappingType: "variant",
|
|
3833
|
+
notes: 'Use <Icon as={RadioButtonUnchecked} /> from @commercetools/nimbus-icons. Import: import { RadioButtonUnchecked } from "@commercetools/nimbus-icons";',
|
|
3834
|
+
breakingChanges: [
|
|
3835
|
+
"Replace CheckInactiveIcon with <Icon as={RadioButtonUnchecked} />",
|
|
3836
|
+
"Import RadioButtonUnchecked from @commercetools/nimbus-icons",
|
|
3837
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3838
|
+
],
|
|
3839
|
+
iconWrapper: ICON_WRAPPER
|
|
3840
|
+
},
|
|
3841
|
+
{
|
|
3842
|
+
uiKitName: "CheckThinIcon",
|
|
3843
|
+
nimbusEquivalent: "Icon",
|
|
3844
|
+
importPath: "@commercetools/nimbus",
|
|
3845
|
+
mappingType: "variant",
|
|
3846
|
+
notes: 'Use <Icon as={Done} /> from @commercetools/nimbus-icons. Import: import { Done } from "@commercetools/nimbus-icons";',
|
|
3847
|
+
breakingChanges: [
|
|
3848
|
+
"Replace CheckThinIcon with <Icon as={Done} />",
|
|
3849
|
+
"Import Done from @commercetools/nimbus-icons",
|
|
3850
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3851
|
+
],
|
|
3852
|
+
iconWrapper: ICON_WRAPPER
|
|
3853
|
+
},
|
|
3854
|
+
{
|
|
3855
|
+
uiKitName: "CircleIcon",
|
|
3856
|
+
nimbusEquivalent: "Icon",
|
|
3857
|
+
importPath: "@commercetools/nimbus",
|
|
3858
|
+
mappingType: "variant",
|
|
3859
|
+
notes: 'Use <Icon as={FiberManualRecord} /> from @commercetools/nimbus-icons. Import: import { FiberManualRecord } from "@commercetools/nimbus-icons";',
|
|
3860
|
+
breakingChanges: [
|
|
3861
|
+
"Replace CircleIcon with <Icon as={FiberManualRecord} />",
|
|
3862
|
+
"Import FiberManualRecord from @commercetools/nimbus-icons",
|
|
3863
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3864
|
+
],
|
|
3865
|
+
iconWrapper: ICON_WRAPPER
|
|
3866
|
+
},
|
|
3867
|
+
{
|
|
3868
|
+
uiKitName: "ClipboardIcon",
|
|
3869
|
+
nimbusEquivalent: "Icon",
|
|
3870
|
+
importPath: "@commercetools/nimbus",
|
|
3871
|
+
mappingType: "variant",
|
|
3872
|
+
notes: 'Use <Icon as={ContentPaste} /> from @commercetools/nimbus-icons. Import: import { ContentPaste } from "@commercetools/nimbus-icons";',
|
|
3873
|
+
breakingChanges: [
|
|
3874
|
+
"Replace ClipboardIcon with <Icon as={ContentPaste} />",
|
|
3875
|
+
"Import ContentPaste from @commercetools/nimbus-icons",
|
|
3876
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3877
|
+
],
|
|
3878
|
+
iconWrapper: ICON_WRAPPER
|
|
3879
|
+
},
|
|
3880
|
+
{
|
|
3881
|
+
uiKitName: "ClockIcon",
|
|
3882
|
+
nimbusEquivalent: "Icon",
|
|
3883
|
+
importPath: "@commercetools/nimbus",
|
|
3884
|
+
mappingType: "variant",
|
|
3885
|
+
notes: 'Use <Icon as={Schedule} /> from @commercetools/nimbus-icons. Import: import { Schedule } from "@commercetools/nimbus-icons";',
|
|
3886
|
+
breakingChanges: [
|
|
3887
|
+
"Replace ClockIcon with <Icon as={Schedule} />",
|
|
3888
|
+
"Import Schedule from @commercetools/nimbus-icons",
|
|
3889
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3890
|
+
],
|
|
3891
|
+
iconWrapper: ICON_WRAPPER
|
|
3892
|
+
},
|
|
3893
|
+
{
|
|
3894
|
+
uiKitName: "ClockWithArrowIcon",
|
|
3895
|
+
nimbusEquivalent: "Icon",
|
|
3896
|
+
importPath: "@commercetools/nimbus",
|
|
3897
|
+
mappingType: "variant",
|
|
3898
|
+
notes: 'Use <Icon as={History} /> from @commercetools/nimbus-icons. Import: import { History } from "@commercetools/nimbus-icons";',
|
|
3899
|
+
breakingChanges: [
|
|
3900
|
+
"Replace ClockWithArrowIcon with <Icon as={History} />",
|
|
3901
|
+
"Import History from @commercetools/nimbus-icons",
|
|
3902
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3903
|
+
],
|
|
3904
|
+
iconWrapper: ICON_WRAPPER
|
|
3905
|
+
},
|
|
3906
|
+
{
|
|
3907
|
+
uiKitName: "CloseBoldIcon",
|
|
3908
|
+
nimbusEquivalent: "Icon",
|
|
3909
|
+
importPath: "@commercetools/nimbus",
|
|
3910
|
+
mappingType: "variant",
|
|
3911
|
+
notes: 'Use <Icon as={Close} /> from @commercetools/nimbus-icons. Import: import { Close } from "@commercetools/nimbus-icons";',
|
|
3912
|
+
breakingChanges: [
|
|
3913
|
+
"Replace CloseBoldIcon with <Icon as={Close} />",
|
|
3914
|
+
"Import Close from @commercetools/nimbus-icons",
|
|
3915
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3916
|
+
],
|
|
3917
|
+
iconWrapper: ICON_WRAPPER
|
|
3918
|
+
},
|
|
3919
|
+
{
|
|
3920
|
+
uiKitName: "CloseIcon",
|
|
3921
|
+
nimbusEquivalent: "Icon",
|
|
3922
|
+
importPath: "@commercetools/nimbus",
|
|
3923
|
+
mappingType: "variant",
|
|
3924
|
+
notes: 'Use <Icon as={Close} /> from @commercetools/nimbus-icons. Import: import { Close } from "@commercetools/nimbus-icons";',
|
|
3925
|
+
breakingChanges: [
|
|
3926
|
+
"Replace CloseIcon with <Icon as={Close} />",
|
|
3927
|
+
"Import Close from @commercetools/nimbus-icons",
|
|
3928
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3929
|
+
],
|
|
3930
|
+
iconWrapper: ICON_WRAPPER
|
|
3931
|
+
},
|
|
3932
|
+
{
|
|
3933
|
+
uiKitName: "CodeViewIcon",
|
|
3934
|
+
nimbusEquivalent: "Icon",
|
|
3935
|
+
importPath: "@commercetools/nimbus",
|
|
3936
|
+
mappingType: "variant",
|
|
3937
|
+
notes: 'Use <Icon as={Code} /> from @commercetools/nimbus-icons. Import: import { Code } from "@commercetools/nimbus-icons";',
|
|
3938
|
+
breakingChanges: [
|
|
3939
|
+
"Replace CodeViewIcon with <Icon as={Code} />",
|
|
3940
|
+
"Import Code from @commercetools/nimbus-icons",
|
|
3941
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3942
|
+
],
|
|
3943
|
+
iconWrapper: ICON_WRAPPER
|
|
3944
|
+
},
|
|
3945
|
+
{
|
|
3946
|
+
uiKitName: "CoinsIcon",
|
|
3947
|
+
nimbusEquivalent: "Icon",
|
|
3948
|
+
importPath: "@commercetools/nimbus",
|
|
3949
|
+
mappingType: "variant",
|
|
3950
|
+
notes: 'Use <Icon as={MonetizationOn} /> from @commercetools/nimbus-icons. Import: import { MonetizationOn } from "@commercetools/nimbus-icons";',
|
|
3951
|
+
breakingChanges: [
|
|
3952
|
+
"Replace CoinsIcon with <Icon as={MonetizationOn} />",
|
|
3953
|
+
"Import MonetizationOn from @commercetools/nimbus-icons",
|
|
3954
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3955
|
+
],
|
|
3956
|
+
iconWrapper: ICON_WRAPPER
|
|
3957
|
+
},
|
|
3958
|
+
{
|
|
3959
|
+
uiKitName: "ColumnsIcon",
|
|
3960
|
+
nimbusEquivalent: "Icon",
|
|
3961
|
+
importPath: "@commercetools/nimbus",
|
|
3962
|
+
mappingType: "variant",
|
|
3963
|
+
notes: 'Use <Icon as={ViewColumn} /> from @commercetools/nimbus-icons. Import: import { ViewColumn } from "@commercetools/nimbus-icons";',
|
|
3964
|
+
breakingChanges: [
|
|
3965
|
+
"Replace ColumnsIcon with <Icon as={ViewColumn} />",
|
|
3966
|
+
"Import ViewColumn from @commercetools/nimbus-icons",
|
|
3967
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3968
|
+
],
|
|
3969
|
+
iconWrapper: ICON_WRAPPER
|
|
3970
|
+
},
|
|
3971
|
+
{
|
|
3972
|
+
uiKitName: "ConnectedSquareIcon",
|
|
3973
|
+
nimbusEquivalent: "Icon",
|
|
3974
|
+
importPath: "@commercetools/nimbus",
|
|
3975
|
+
mappingType: "variant",
|
|
3976
|
+
notes: 'Use <Icon as={DeviceHub} /> from @commercetools/nimbus-icons. Import: import { DeviceHub } from "@commercetools/nimbus-icons";',
|
|
3977
|
+
breakingChanges: [
|
|
3978
|
+
"Replace ConnectedSquareIcon with <Icon as={DeviceHub} />",
|
|
3979
|
+
"Import DeviceHub from @commercetools/nimbus-icons",
|
|
3980
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3981
|
+
],
|
|
3982
|
+
iconWrapper: ICON_WRAPPER
|
|
3983
|
+
},
|
|
3984
|
+
{
|
|
3985
|
+
uiKitName: "ConnectedTriangleIcon",
|
|
3986
|
+
nimbusEquivalent: "Icon",
|
|
3987
|
+
importPath: "@commercetools/nimbus",
|
|
3988
|
+
mappingType: "variant",
|
|
3989
|
+
notes: 'Use <Icon as={Share} /> from @commercetools/nimbus-icons. Import: import { Share } from "@commercetools/nimbus-icons";',
|
|
3990
|
+
breakingChanges: [
|
|
3991
|
+
"Replace ConnectedTriangleIcon with <Icon as={Share} />",
|
|
3992
|
+
"Import Share from @commercetools/nimbus-icons",
|
|
3993
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
3994
|
+
],
|
|
3995
|
+
iconWrapper: ICON_WRAPPER
|
|
3996
|
+
},
|
|
3997
|
+
{
|
|
3998
|
+
uiKitName: "CopyIcon",
|
|
3999
|
+
nimbusEquivalent: "Icon",
|
|
4000
|
+
importPath: "@commercetools/nimbus",
|
|
4001
|
+
mappingType: "variant",
|
|
4002
|
+
notes: 'Use <Icon as={ContentCopy} /> from @commercetools/nimbus-icons. Import: import { ContentCopy } from "@commercetools/nimbus-icons";',
|
|
4003
|
+
breakingChanges: [
|
|
4004
|
+
"Replace CopyIcon with <Icon as={ContentCopy} />",
|
|
4005
|
+
"Import ContentCopy from @commercetools/nimbus-icons",
|
|
4006
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4007
|
+
],
|
|
4008
|
+
iconWrapper: ICON_WRAPPER
|
|
4009
|
+
},
|
|
4010
|
+
{
|
|
4011
|
+
uiKitName: "CtCheckoutIcon",
|
|
4012
|
+
nimbusEquivalent: "Icon",
|
|
4013
|
+
importPath: "@commercetools/nimbus",
|
|
4014
|
+
mappingType: "variant",
|
|
4015
|
+
notes: 'Use <Icon as={ShoppingCartCheckout} /> from @commercetools/nimbus-icons. Import: import { ShoppingCartCheckout } from "@commercetools/nimbus-icons";',
|
|
4016
|
+
breakingChanges: [
|
|
4017
|
+
"Replace CtCheckoutIcon with <Icon as={ShoppingCartCheckout} />",
|
|
4018
|
+
"Import ShoppingCartCheckout from @commercetools/nimbus-icons",
|
|
4019
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4020
|
+
],
|
|
4021
|
+
iconWrapper: ICON_WRAPPER
|
|
4022
|
+
},
|
|
4023
|
+
{
|
|
4024
|
+
uiKitName: "CubeIcon",
|
|
4025
|
+
nimbusEquivalent: "Icon",
|
|
4026
|
+
importPath: "@commercetools/nimbus",
|
|
4027
|
+
mappingType: "variant",
|
|
4028
|
+
notes: 'Use <Icon as={ViewInAr} /> from @commercetools/nimbus-icons. Import: import { ViewInAr } from "@commercetools/nimbus-icons";',
|
|
4029
|
+
breakingChanges: [
|
|
4030
|
+
"Replace CubeIcon with <Icon as={ViewInAr} />",
|
|
4031
|
+
"Import ViewInAr from @commercetools/nimbus-icons",
|
|
4032
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4033
|
+
],
|
|
4034
|
+
iconWrapper: ICON_WRAPPER
|
|
4035
|
+
},
|
|
4036
|
+
{
|
|
4037
|
+
uiKitName: "CubesIcon",
|
|
4038
|
+
nimbusEquivalent: "Icon",
|
|
4039
|
+
importPath: "@commercetools/nimbus",
|
|
4040
|
+
mappingType: "variant",
|
|
4041
|
+
notes: 'Use <Icon as={Widgets} /> from @commercetools/nimbus-icons. Import: import { Widgets } from "@commercetools/nimbus-icons";',
|
|
4042
|
+
breakingChanges: [
|
|
4043
|
+
"Replace CubesIcon with <Icon as={Widgets} />",
|
|
4044
|
+
"Import Widgets from @commercetools/nimbus-icons",
|
|
4045
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4046
|
+
],
|
|
4047
|
+
iconWrapper: ICON_WRAPPER
|
|
4048
|
+
},
|
|
4049
|
+
{
|
|
4050
|
+
uiKitName: "DiamondIcon",
|
|
4051
|
+
nimbusEquivalent: "Icon",
|
|
4052
|
+
importPath: "@commercetools/nimbus",
|
|
4053
|
+
mappingType: "variant",
|
|
4054
|
+
notes: 'Use <Icon as={Diamond} /> from @commercetools/nimbus-icons. Import: import { Diamond } from "@commercetools/nimbus-icons";',
|
|
4055
|
+
breakingChanges: [
|
|
4056
|
+
"Replace DiamondIcon with <Icon as={Diamond} />",
|
|
4057
|
+
"Import Diamond from @commercetools/nimbus-icons",
|
|
4058
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4059
|
+
],
|
|
4060
|
+
iconWrapper: ICON_WRAPPER
|
|
4061
|
+
},
|
|
4062
|
+
{
|
|
4063
|
+
uiKitName: "DomainIcon",
|
|
4064
|
+
nimbusEquivalent: "Icon",
|
|
4065
|
+
importPath: "@commercetools/nimbus",
|
|
4066
|
+
mappingType: "variant",
|
|
4067
|
+
notes: 'Use <Icon as={Domain} /> from @commercetools/nimbus-icons. Import: import { Domain } from "@commercetools/nimbus-icons";',
|
|
4068
|
+
breakingChanges: [
|
|
4069
|
+
"Replace DomainIcon with <Icon as={Domain} />",
|
|
4070
|
+
"Import Domain from @commercetools/nimbus-icons",
|
|
4071
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4072
|
+
],
|
|
4073
|
+
iconWrapper: ICON_WRAPPER
|
|
4074
|
+
},
|
|
4075
|
+
{
|
|
4076
|
+
uiKitName: "DotIcon",
|
|
4077
|
+
nimbusEquivalent: "Icon",
|
|
4078
|
+
importPath: "@commercetools/nimbus",
|
|
4079
|
+
mappingType: "variant",
|
|
4080
|
+
notes: 'Use <Icon as={FiberManualRecord} /> from @commercetools/nimbus-icons. Import: import { FiberManualRecord } from "@commercetools/nimbus-icons";',
|
|
4081
|
+
breakingChanges: [
|
|
4082
|
+
"Replace DotIcon with <Icon as={FiberManualRecord} />",
|
|
4083
|
+
"Import FiberManualRecord from @commercetools/nimbus-icons",
|
|
4084
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4085
|
+
],
|
|
4086
|
+
iconWrapper: ICON_WRAPPER
|
|
4087
|
+
},
|
|
4088
|
+
{
|
|
4089
|
+
uiKitName: "DownloadIcon",
|
|
4090
|
+
nimbusEquivalent: "Icon",
|
|
4091
|
+
importPath: "@commercetools/nimbus",
|
|
4092
|
+
mappingType: "variant",
|
|
4093
|
+
notes: 'Use <Icon as={Download} /> from @commercetools/nimbus-icons. Import: import { Download } from "@commercetools/nimbus-icons";',
|
|
4094
|
+
breakingChanges: [
|
|
4095
|
+
"Replace DownloadIcon with <Icon as={Download} />",
|
|
4096
|
+
"Import Download from @commercetools/nimbus-icons",
|
|
4097
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4098
|
+
],
|
|
4099
|
+
iconWrapper: ICON_WRAPPER
|
|
4100
|
+
},
|
|
4101
|
+
{
|
|
4102
|
+
uiKitName: "EditIcon",
|
|
4103
|
+
nimbusEquivalent: "Icon",
|
|
4104
|
+
importPath: "@commercetools/nimbus",
|
|
4105
|
+
mappingType: "variant",
|
|
4106
|
+
notes: 'Use <Icon as={Edit} /> from @commercetools/nimbus-icons. Import: import { Edit } from "@commercetools/nimbus-icons";',
|
|
4107
|
+
breakingChanges: [
|
|
4108
|
+
"Replace EditIcon with <Icon as={Edit} />",
|
|
4109
|
+
"Import Edit from @commercetools/nimbus-icons",
|
|
4110
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4111
|
+
],
|
|
4112
|
+
iconWrapper: ICON_WRAPPER
|
|
4113
|
+
},
|
|
4114
|
+
{
|
|
4115
|
+
uiKitName: "ErrorIcon",
|
|
4116
|
+
nimbusEquivalent: "Icon",
|
|
4117
|
+
importPath: "@commercetools/nimbus",
|
|
4118
|
+
mappingType: "variant",
|
|
4119
|
+
notes: 'Use <Icon as={Error} /> from @commercetools/nimbus-icons. Import: import { Error } from "@commercetools/nimbus-icons";',
|
|
4120
|
+
breakingChanges: [
|
|
4121
|
+
"Replace ErrorIcon with <Icon as={Error} />",
|
|
4122
|
+
"Import Error from @commercetools/nimbus-icons",
|
|
4123
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4124
|
+
],
|
|
4125
|
+
iconWrapper: ICON_WRAPPER
|
|
4126
|
+
},
|
|
4127
|
+
{
|
|
4128
|
+
uiKitName: "ExpandIcon",
|
|
4129
|
+
nimbusEquivalent: "Icon",
|
|
4130
|
+
importPath: "@commercetools/nimbus",
|
|
4131
|
+
mappingType: "variant",
|
|
4132
|
+
notes: 'Use <Icon as={OpenInFull} /> from @commercetools/nimbus-icons. Import: import { OpenInFull } from "@commercetools/nimbus-icons";',
|
|
4133
|
+
breakingChanges: [
|
|
4134
|
+
"Replace ExpandIcon with <Icon as={OpenInFull} />",
|
|
4135
|
+
"Import OpenInFull from @commercetools/nimbus-icons",
|
|
4136
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4137
|
+
],
|
|
4138
|
+
iconWrapper: ICON_WRAPPER
|
|
4139
|
+
},
|
|
4140
|
+
{
|
|
4141
|
+
uiKitName: "ExternalLinkIcon",
|
|
4142
|
+
nimbusEquivalent: "Icon",
|
|
4143
|
+
importPath: "@commercetools/nimbus",
|
|
4144
|
+
mappingType: "variant",
|
|
4145
|
+
notes: 'Use <Icon as={OpenInNew} /> from @commercetools/nimbus-icons. Import: import { OpenInNew } from "@commercetools/nimbus-icons";',
|
|
4146
|
+
breakingChanges: [
|
|
4147
|
+
"Replace ExternalLinkIcon with <Icon as={OpenInNew} />",
|
|
4148
|
+
"Import OpenInNew from @commercetools/nimbus-icons",
|
|
4149
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4150
|
+
],
|
|
4151
|
+
iconWrapper: ICON_WRAPPER
|
|
4152
|
+
},
|
|
4153
|
+
{
|
|
4154
|
+
uiKitName: "EyeCrossedIcon",
|
|
4155
|
+
nimbusEquivalent: "Icon",
|
|
4156
|
+
importPath: "@commercetools/nimbus",
|
|
4157
|
+
mappingType: "variant",
|
|
4158
|
+
notes: 'Use <Icon as={VisibilityOff} /> from @commercetools/nimbus-icons. Import: import { VisibilityOff } from "@commercetools/nimbus-icons";',
|
|
4159
|
+
breakingChanges: [
|
|
4160
|
+
"Replace EyeCrossedIcon with <Icon as={VisibilityOff} />",
|
|
4161
|
+
"Import VisibilityOff from @commercetools/nimbus-icons",
|
|
4162
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4163
|
+
],
|
|
4164
|
+
iconWrapper: ICON_WRAPPER
|
|
4165
|
+
},
|
|
4166
|
+
{
|
|
4167
|
+
uiKitName: "EyeIcon",
|
|
4168
|
+
nimbusEquivalent: "Icon",
|
|
4169
|
+
importPath: "@commercetools/nimbus",
|
|
4170
|
+
mappingType: "variant",
|
|
4171
|
+
notes: 'Use <Icon as={Visibility} /> from @commercetools/nimbus-icons. Import: import { Visibility } from "@commercetools/nimbus-icons";',
|
|
4172
|
+
breakingChanges: [
|
|
4173
|
+
"Replace EyeIcon with <Icon as={Visibility} />",
|
|
4174
|
+
"Import Visibility from @commercetools/nimbus-icons",
|
|
4175
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4176
|
+
],
|
|
4177
|
+
iconWrapper: ICON_WRAPPER
|
|
4178
|
+
},
|
|
4179
|
+
{
|
|
4180
|
+
uiKitName: "FilterAndListIcon",
|
|
4181
|
+
nimbusEquivalent: "Icon",
|
|
4182
|
+
importPath: "@commercetools/nimbus",
|
|
4183
|
+
mappingType: "variant",
|
|
4184
|
+
notes: 'Use <Icon as={FilterList} /> from @commercetools/nimbus-icons. Import: import { FilterList } from "@commercetools/nimbus-icons";',
|
|
4185
|
+
breakingChanges: [
|
|
4186
|
+
"Replace FilterAndListIcon with <Icon as={FilterList} />",
|
|
4187
|
+
"Import FilterList from @commercetools/nimbus-icons",
|
|
4188
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4189
|
+
],
|
|
4190
|
+
iconWrapper: ICON_WRAPPER
|
|
4191
|
+
},
|
|
4192
|
+
{
|
|
4193
|
+
uiKitName: "FilterIcon",
|
|
4194
|
+
nimbusEquivalent: "Icon",
|
|
4195
|
+
importPath: "@commercetools/nimbus",
|
|
4196
|
+
mappingType: "variant",
|
|
4197
|
+
notes: 'Use <Icon as={FilterAlt} /> from @commercetools/nimbus-icons. Import: import { FilterAlt } from "@commercetools/nimbus-icons";',
|
|
4198
|
+
breakingChanges: [
|
|
4199
|
+
"Replace FilterIcon with <Icon as={FilterAlt} />",
|
|
4200
|
+
"Import FilterAlt from @commercetools/nimbus-icons",
|
|
4201
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4202
|
+
],
|
|
4203
|
+
iconWrapper: ICON_WRAPPER
|
|
4204
|
+
},
|
|
4205
|
+
{
|
|
4206
|
+
uiKitName: "FlagFilledIcon",
|
|
4207
|
+
nimbusEquivalent: "Icon",
|
|
4208
|
+
importPath: "@commercetools/nimbus",
|
|
4209
|
+
mappingType: "variant",
|
|
4210
|
+
notes: 'Use <Icon as={Flag} /> from @commercetools/nimbus-icons. Import: import { Flag } from "@commercetools/nimbus-icons";',
|
|
4211
|
+
breakingChanges: [
|
|
4212
|
+
"Replace FlagFilledIcon with <Icon as={Flag} />",
|
|
4213
|
+
"Import Flag from @commercetools/nimbus-icons",
|
|
4214
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4215
|
+
],
|
|
4216
|
+
iconWrapper: ICON_WRAPPER
|
|
4217
|
+
},
|
|
4218
|
+
{
|
|
4219
|
+
uiKitName: "FlagLinearIcon",
|
|
4220
|
+
nimbusEquivalent: "Icon",
|
|
4221
|
+
importPath: "@commercetools/nimbus",
|
|
4222
|
+
mappingType: "variant",
|
|
4223
|
+
notes: 'Use <Icon as={OutlinedFlag} /> from @commercetools/nimbus-icons. Import: import { OutlinedFlag } from "@commercetools/nimbus-icons";',
|
|
4224
|
+
breakingChanges: [
|
|
4225
|
+
"Replace FlagLinearIcon with <Icon as={OutlinedFlag} />",
|
|
4226
|
+
"Import OutlinedFlag from @commercetools/nimbus-icons",
|
|
4227
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4228
|
+
],
|
|
4229
|
+
iconWrapper: ICON_WRAPPER
|
|
4230
|
+
},
|
|
4231
|
+
{
|
|
4232
|
+
uiKitName: "FlameIcon",
|
|
4233
|
+
nimbusEquivalent: "Icon",
|
|
4234
|
+
importPath: "@commercetools/nimbus",
|
|
4235
|
+
mappingType: "variant",
|
|
4236
|
+
notes: 'Use <Icon as={Whatshot} /> from @commercetools/nimbus-icons. Import: import { Whatshot } from "@commercetools/nimbus-icons";',
|
|
4237
|
+
breakingChanges: [
|
|
4238
|
+
"Replace FlameIcon with <Icon as={Whatshot} />",
|
|
4239
|
+
"Import Whatshot from @commercetools/nimbus-icons",
|
|
4240
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4241
|
+
],
|
|
4242
|
+
iconWrapper: ICON_WRAPPER
|
|
4243
|
+
},
|
|
4244
|
+
{
|
|
4245
|
+
uiKitName: "FractionDigitsIcon",
|
|
4246
|
+
nimbusEquivalent: "Icon",
|
|
4247
|
+
importPath: "@commercetools/nimbus",
|
|
4248
|
+
mappingType: "variant",
|
|
4249
|
+
notes: 'Use <Icon as={Svg123} /> from @commercetools/nimbus-icons. Import: import { Svg123 } from "@commercetools/nimbus-icons";',
|
|
4250
|
+
breakingChanges: [
|
|
4251
|
+
"Replace FractionDigitsIcon with <Icon as={Svg123} />",
|
|
4252
|
+
"Import Svg123 from @commercetools/nimbus-icons",
|
|
4253
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4254
|
+
],
|
|
4255
|
+
iconWrapper: ICON_WRAPPER
|
|
4256
|
+
},
|
|
4257
|
+
{
|
|
4258
|
+
uiKitName: "FrontendStudioIcon",
|
|
4259
|
+
nimbusEquivalent: "Icon",
|
|
4260
|
+
importPath: "@commercetools/nimbus",
|
|
4261
|
+
mappingType: "variant",
|
|
4262
|
+
notes: 'Use <Icon as={Web} /> from @commercetools/nimbus-icons. Import: import { Web } from "@commercetools/nimbus-icons";',
|
|
4263
|
+
breakingChanges: [
|
|
4264
|
+
"Replace FrontendStudioIcon with <Icon as={Web} />",
|
|
4265
|
+
"Import Web from @commercetools/nimbus-icons",
|
|
4266
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4267
|
+
],
|
|
4268
|
+
iconWrapper: ICON_WRAPPER
|
|
4269
|
+
},
|
|
4270
|
+
{
|
|
4271
|
+
uiKitName: "GearIcon",
|
|
4272
|
+
nimbusEquivalent: "Icon",
|
|
4273
|
+
importPath: "@commercetools/nimbus",
|
|
4274
|
+
mappingType: "variant",
|
|
4275
|
+
notes: 'Use <Icon as={Settings} /> from @commercetools/nimbus-icons. Import: import { Settings } from "@commercetools/nimbus-icons";',
|
|
4276
|
+
breakingChanges: [
|
|
4277
|
+
"Replace GearIcon with <Icon as={Settings} />",
|
|
4278
|
+
"Import Settings from @commercetools/nimbus-icons",
|
|
4279
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4280
|
+
],
|
|
4281
|
+
iconWrapper: ICON_WRAPPER
|
|
4282
|
+
},
|
|
4283
|
+
{
|
|
4284
|
+
uiKitName: "GraduationCapIcon",
|
|
4285
|
+
nimbusEquivalent: "Icon",
|
|
4286
|
+
importPath: "@commercetools/nimbus",
|
|
4287
|
+
mappingType: "variant",
|
|
4288
|
+
notes: 'Use <Icon as={School} /> from @commercetools/nimbus-icons. Import: import { School } from "@commercetools/nimbus-icons";',
|
|
4289
|
+
breakingChanges: [
|
|
4290
|
+
"Replace GraduationCapIcon with <Icon as={School} />",
|
|
4291
|
+
"Import School from @commercetools/nimbus-icons",
|
|
4292
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4293
|
+
],
|
|
4294
|
+
iconWrapper: ICON_WRAPPER
|
|
4295
|
+
},
|
|
4296
|
+
{
|
|
4297
|
+
uiKitName: "GraphIcon",
|
|
4298
|
+
nimbusEquivalent: "Icon",
|
|
4299
|
+
importPath: "@commercetools/nimbus",
|
|
4300
|
+
mappingType: "variant",
|
|
4301
|
+
notes: 'Use <Icon as={Analytics} /> from @commercetools/nimbus-icons. Import: import { Analytics } from "@commercetools/nimbus-icons";',
|
|
4302
|
+
breakingChanges: [
|
|
4303
|
+
"Replace GraphIcon with <Icon as={Analytics} />",
|
|
4304
|
+
"Import Analytics from @commercetools/nimbus-icons",
|
|
4305
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4306
|
+
],
|
|
4307
|
+
iconWrapper: ICON_WRAPPER
|
|
4308
|
+
},
|
|
4309
|
+
{
|
|
4310
|
+
uiKitName: "GridIcon",
|
|
4311
|
+
nimbusEquivalent: "Icon",
|
|
4312
|
+
importPath: "@commercetools/nimbus",
|
|
4313
|
+
mappingType: "variant",
|
|
4314
|
+
notes: 'Use <Icon as={GridView} /> from @commercetools/nimbus-icons. Import: import { GridView } from "@commercetools/nimbus-icons";',
|
|
4315
|
+
breakingChanges: [
|
|
4316
|
+
"Replace GridIcon with <Icon as={GridView} />",
|
|
4317
|
+
"Import GridView from @commercetools/nimbus-icons",
|
|
4318
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4319
|
+
],
|
|
4320
|
+
iconWrapper: ICON_WRAPPER
|
|
4321
|
+
},
|
|
4322
|
+
{
|
|
4323
|
+
uiKitName: "GroupAddIcon",
|
|
4324
|
+
nimbusEquivalent: "Icon",
|
|
4325
|
+
importPath: "@commercetools/nimbus",
|
|
4326
|
+
mappingType: "variant",
|
|
4327
|
+
notes: 'Use <Icon as={GroupAdd} /> from @commercetools/nimbus-icons. Import: import { GroupAdd } from "@commercetools/nimbus-icons";',
|
|
4328
|
+
breakingChanges: [
|
|
4329
|
+
"Replace GroupAddIcon with <Icon as={GroupAdd} />",
|
|
4330
|
+
"Import GroupAdd from @commercetools/nimbus-icons",
|
|
4331
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4332
|
+
],
|
|
4333
|
+
iconWrapper: ICON_WRAPPER
|
|
4334
|
+
},
|
|
4335
|
+
{
|
|
4336
|
+
uiKitName: "HeartIcon",
|
|
4337
|
+
nimbusEquivalent: "Icon",
|
|
4338
|
+
importPath: "@commercetools/nimbus",
|
|
4339
|
+
mappingType: "variant",
|
|
4340
|
+
notes: 'Use <Icon as={Favorite} /> from @commercetools/nimbus-icons. Import: import { Favorite } from "@commercetools/nimbus-icons";',
|
|
4341
|
+
breakingChanges: [
|
|
4342
|
+
"Replace HeartIcon with <Icon as={Favorite} />",
|
|
4343
|
+
"Import Favorite from @commercetools/nimbus-icons",
|
|
4344
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4345
|
+
],
|
|
4346
|
+
iconWrapper: ICON_WRAPPER
|
|
4347
|
+
},
|
|
4348
|
+
{
|
|
4349
|
+
uiKitName: "HomeIcon",
|
|
4350
|
+
nimbusEquivalent: "Icon",
|
|
4351
|
+
importPath: "@commercetools/nimbus",
|
|
4352
|
+
mappingType: "variant",
|
|
4353
|
+
notes: 'Use <Icon as={Home} /> from @commercetools/nimbus-icons. Import: import { Home } from "@commercetools/nimbus-icons";',
|
|
4354
|
+
breakingChanges: [
|
|
4355
|
+
"Replace HomeIcon with <Icon as={Home} />",
|
|
4356
|
+
"Import Home from @commercetools/nimbus-icons",
|
|
4357
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4358
|
+
],
|
|
4359
|
+
iconWrapper: ICON_WRAPPER
|
|
4360
|
+
},
|
|
4361
|
+
{
|
|
4362
|
+
uiKitName: "HubIcon",
|
|
4363
|
+
nimbusEquivalent: "Icon",
|
|
4364
|
+
importPath: "@commercetools/nimbus",
|
|
4365
|
+
mappingType: "variant",
|
|
4366
|
+
notes: 'Use <Icon as={Hub} /> from @commercetools/nimbus-icons. Import: import { Hub } from "@commercetools/nimbus-icons";',
|
|
4367
|
+
breakingChanges: [
|
|
4368
|
+
"Replace HubIcon with <Icon as={Hub} />",
|
|
4369
|
+
"Import Hub from @commercetools/nimbus-icons",
|
|
4370
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4371
|
+
],
|
|
4372
|
+
iconWrapper: ICON_WRAPPER
|
|
4373
|
+
},
|
|
4374
|
+
{
|
|
4375
|
+
uiKitName: "InfoIcon",
|
|
4376
|
+
nimbusEquivalent: "Icon",
|
|
4377
|
+
importPath: "@commercetools/nimbus",
|
|
4378
|
+
mappingType: "variant",
|
|
4379
|
+
notes: 'Use <Icon as={Info} /> from @commercetools/nimbus-icons. Import: import { Info } from "@commercetools/nimbus-icons";',
|
|
4380
|
+
breakingChanges: [
|
|
4381
|
+
"Replace InfoIcon with <Icon as={Info} />",
|
|
4382
|
+
"Import Info from @commercetools/nimbus-icons",
|
|
4383
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4384
|
+
],
|
|
4385
|
+
iconWrapper: ICON_WRAPPER
|
|
4386
|
+
},
|
|
4387
|
+
{
|
|
4388
|
+
uiKitName: "LayersIcon",
|
|
4389
|
+
nimbusEquivalent: "Icon",
|
|
4390
|
+
importPath: "@commercetools/nimbus",
|
|
4391
|
+
mappingType: "variant",
|
|
4392
|
+
notes: 'Use <Icon as={Layers} /> from @commercetools/nimbus-icons. Import: import { Layers } from "@commercetools/nimbus-icons";',
|
|
4393
|
+
breakingChanges: [
|
|
4394
|
+
"Replace LayersIcon with <Icon as={Layers} />",
|
|
4395
|
+
"Import Layers from @commercetools/nimbus-icons",
|
|
4396
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4397
|
+
],
|
|
4398
|
+
iconWrapper: ICON_WRAPPER
|
|
4399
|
+
},
|
|
4400
|
+
{
|
|
4401
|
+
uiKitName: "ListIcon",
|
|
4402
|
+
nimbusEquivalent: "Icon",
|
|
4403
|
+
importPath: "@commercetools/nimbus",
|
|
4404
|
+
mappingType: "variant",
|
|
4405
|
+
notes: 'Use <Icon as={List} /> from @commercetools/nimbus-icons. Import: import { List } from "@commercetools/nimbus-icons";',
|
|
4406
|
+
breakingChanges: [
|
|
4407
|
+
"Replace ListIcon with <Icon as={List} />",
|
|
4408
|
+
"Import List from @commercetools/nimbus-icons",
|
|
4409
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4410
|
+
],
|
|
4411
|
+
iconWrapper: ICON_WRAPPER
|
|
4412
|
+
},
|
|
4413
|
+
{
|
|
4414
|
+
uiKitName: "ListWithSearchIcon",
|
|
4415
|
+
nimbusEquivalent: "Icon",
|
|
4416
|
+
importPath: "@commercetools/nimbus",
|
|
4417
|
+
mappingType: "variant",
|
|
4418
|
+
notes: 'Use <Icon as={ManageSearch} /> from @commercetools/nimbus-icons. Import: import { ManageSearch } from "@commercetools/nimbus-icons";',
|
|
4419
|
+
breakingChanges: [
|
|
4420
|
+
"Replace ListWithSearchIcon with <Icon as={ManageSearch} />",
|
|
4421
|
+
"Import ManageSearch from @commercetools/nimbus-icons",
|
|
4422
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4423
|
+
],
|
|
4424
|
+
iconWrapper: ICON_WRAPPER
|
|
4425
|
+
},
|
|
4426
|
+
{
|
|
4427
|
+
uiKitName: "LocationIcon",
|
|
4428
|
+
nimbusEquivalent: "Icon",
|
|
4429
|
+
importPath: "@commercetools/nimbus",
|
|
4430
|
+
mappingType: "variant",
|
|
4431
|
+
notes: 'Use <Icon as={Place} /> from @commercetools/nimbus-icons. Import: import { Place } from "@commercetools/nimbus-icons";',
|
|
4432
|
+
breakingChanges: [
|
|
4433
|
+
"Replace LocationIcon with <Icon as={Place} />",
|
|
4434
|
+
"Import Place from @commercetools/nimbus-icons",
|
|
4435
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4436
|
+
],
|
|
4437
|
+
iconWrapper: ICON_WRAPPER
|
|
4438
|
+
},
|
|
4439
|
+
{
|
|
4440
|
+
uiKitName: "LockIcon",
|
|
4441
|
+
nimbusEquivalent: "Icon",
|
|
4442
|
+
importPath: "@commercetools/nimbus",
|
|
4443
|
+
mappingType: "variant",
|
|
4444
|
+
notes: 'Use <Icon as={Lock} /> from @commercetools/nimbus-icons. Import: import { Lock } from "@commercetools/nimbus-icons";',
|
|
4445
|
+
breakingChanges: [
|
|
4446
|
+
"Replace LockIcon with <Icon as={Lock} />",
|
|
4447
|
+
"Import Lock from @commercetools/nimbus-icons",
|
|
4448
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4449
|
+
],
|
|
4450
|
+
iconWrapper: ICON_WRAPPER
|
|
4451
|
+
},
|
|
4452
|
+
{
|
|
4453
|
+
uiKitName: "LogoutIcon",
|
|
4454
|
+
nimbusEquivalent: "Icon",
|
|
4455
|
+
importPath: "@commercetools/nimbus",
|
|
4456
|
+
mappingType: "variant",
|
|
4457
|
+
notes: 'Use <Icon as={Logout} /> from @commercetools/nimbus-icons. Import: import { Logout } from "@commercetools/nimbus-icons";',
|
|
4458
|
+
breakingChanges: [
|
|
4459
|
+
"Replace LogoutIcon with <Icon as={Logout} />",
|
|
4460
|
+
"Import Logout from @commercetools/nimbus-icons",
|
|
4461
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4462
|
+
],
|
|
4463
|
+
iconWrapper: ICON_WRAPPER
|
|
4464
|
+
},
|
|
4465
|
+
{
|
|
4466
|
+
uiKitName: "MailIcon",
|
|
4467
|
+
nimbusEquivalent: "Icon",
|
|
4468
|
+
importPath: "@commercetools/nimbus",
|
|
4469
|
+
mappingType: "variant",
|
|
4470
|
+
notes: 'Use <Icon as={Mail} /> from @commercetools/nimbus-icons. Import: import { Mail } from "@commercetools/nimbus-icons";',
|
|
4471
|
+
breakingChanges: [
|
|
4472
|
+
"Replace MailIcon with <Icon as={Mail} />",
|
|
4473
|
+
"Import Mail from @commercetools/nimbus-icons",
|
|
4474
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4475
|
+
],
|
|
4476
|
+
iconWrapper: ICON_WRAPPER
|
|
4477
|
+
},
|
|
4478
|
+
{
|
|
4479
|
+
uiKitName: "MinimizeIcon",
|
|
4480
|
+
nimbusEquivalent: "Icon",
|
|
4481
|
+
importPath: "@commercetools/nimbus",
|
|
4482
|
+
mappingType: "variant",
|
|
4483
|
+
notes: 'Use <Icon as={CloseFullscreen} /> from @commercetools/nimbus-icons. Import: import { CloseFullscreen } from "@commercetools/nimbus-icons";',
|
|
4484
|
+
breakingChanges: [
|
|
4485
|
+
"Replace MinimizeIcon with <Icon as={CloseFullscreen} />",
|
|
4486
|
+
"Import CloseFullscreen from @commercetools/nimbus-icons",
|
|
4487
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4488
|
+
],
|
|
4489
|
+
iconWrapper: ICON_WRAPPER
|
|
4490
|
+
},
|
|
4491
|
+
{
|
|
4492
|
+
uiKitName: "NestedViewIcon",
|
|
4493
|
+
nimbusEquivalent: "Icon",
|
|
4494
|
+
importPath: "@commercetools/nimbus",
|
|
4495
|
+
mappingType: "variant",
|
|
4496
|
+
notes: 'Use <Icon as={AccountTree} /> from @commercetools/nimbus-icons. Import: import { AccountTree } from "@commercetools/nimbus-icons";',
|
|
4497
|
+
breakingChanges: [
|
|
4498
|
+
"Replace NestedViewIcon with <Icon as={AccountTree} />",
|
|
4499
|
+
"Import AccountTree from @commercetools/nimbus-icons",
|
|
4500
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4501
|
+
],
|
|
4502
|
+
iconWrapper: ICON_WRAPPER
|
|
4503
|
+
},
|
|
4504
|
+
{
|
|
4505
|
+
uiKitName: "OperationsIcon",
|
|
4506
|
+
nimbusEquivalent: "Icon",
|
|
4507
|
+
importPath: "@commercetools/nimbus",
|
|
4508
|
+
mappingType: "variant",
|
|
4509
|
+
notes: 'Use <Icon as={Engineering} /> from @commercetools/nimbus-icons. Import: import { Engineering } from "@commercetools/nimbus-icons";',
|
|
4510
|
+
breakingChanges: [
|
|
4511
|
+
"Replace OperationsIcon with <Icon as={Engineering} />",
|
|
4512
|
+
"Import Engineering from @commercetools/nimbus-icons",
|
|
4513
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4514
|
+
],
|
|
4515
|
+
iconWrapper: ICON_WRAPPER
|
|
4516
|
+
},
|
|
4517
|
+
{
|
|
4518
|
+
uiKitName: "PageGearIcon",
|
|
4519
|
+
nimbusEquivalent: "Icon",
|
|
4520
|
+
importPath: "@commercetools/nimbus",
|
|
4521
|
+
mappingType: "variant",
|
|
4522
|
+
notes: 'Use <Icon as={SettingsApplications} /> from @commercetools/nimbus-icons. Import: import { SettingsApplications } from "@commercetools/nimbus-icons";',
|
|
4523
|
+
breakingChanges: [
|
|
4524
|
+
"Replace PageGearIcon with <Icon as={SettingsApplications} />",
|
|
4525
|
+
"Import SettingsApplications from @commercetools/nimbus-icons",
|
|
4526
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4527
|
+
],
|
|
4528
|
+
iconWrapper: ICON_WRAPPER
|
|
4529
|
+
},
|
|
4530
|
+
{
|
|
4531
|
+
uiKitName: "PagesIcon",
|
|
4532
|
+
nimbusEquivalent: "Icon",
|
|
4533
|
+
importPath: "@commercetools/nimbus",
|
|
4534
|
+
mappingType: "variant",
|
|
4535
|
+
notes: 'Use <Icon as={Pages} /> from @commercetools/nimbus-icons. Import: import { Pages } from "@commercetools/nimbus-icons";',
|
|
4536
|
+
breakingChanges: [
|
|
4537
|
+
"Replace PagesIcon with <Icon as={Pages} />",
|
|
4538
|
+
"Import Pages from @commercetools/nimbus-icons",
|
|
4539
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4540
|
+
],
|
|
4541
|
+
iconWrapper: ICON_WRAPPER
|
|
4542
|
+
},
|
|
4543
|
+
{
|
|
4544
|
+
uiKitName: "PaidIcon",
|
|
4545
|
+
nimbusEquivalent: "Icon",
|
|
4546
|
+
importPath: "@commercetools/nimbus",
|
|
4547
|
+
mappingType: "variant",
|
|
4548
|
+
notes: 'Use <Icon as={Paid} /> from @commercetools/nimbus-icons. Import: import { Paid } from "@commercetools/nimbus-icons";',
|
|
4549
|
+
breakingChanges: [
|
|
4550
|
+
"Replace PaidIcon with <Icon as={Paid} />",
|
|
4551
|
+
"Import Paid from @commercetools/nimbus-icons",
|
|
4552
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4553
|
+
],
|
|
4554
|
+
iconWrapper: ICON_WRAPPER
|
|
4555
|
+
},
|
|
4556
|
+
{
|
|
4557
|
+
uiKitName: "PaperBillInvertedIcon",
|
|
4558
|
+
nimbusEquivalent: "Icon",
|
|
4559
|
+
importPath: "@commercetools/nimbus",
|
|
4560
|
+
mappingType: "variant",
|
|
4561
|
+
notes: 'Use <Icon as={Receipt} /> from @commercetools/nimbus-icons. Import: import { Receipt } from "@commercetools/nimbus-icons";',
|
|
4562
|
+
breakingChanges: [
|
|
4563
|
+
"Replace PaperBillInvertedIcon with <Icon as={Receipt} />",
|
|
4564
|
+
"Import Receipt from @commercetools/nimbus-icons",
|
|
4565
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4566
|
+
],
|
|
4567
|
+
iconWrapper: ICON_WRAPPER
|
|
4568
|
+
},
|
|
4569
|
+
{
|
|
4570
|
+
uiKitName: "PaperclipIcon",
|
|
4571
|
+
nimbusEquivalent: "Icon",
|
|
4572
|
+
importPath: "@commercetools/nimbus",
|
|
4573
|
+
mappingType: "variant",
|
|
4574
|
+
notes: 'Use <Icon as={AttachFile} /> from @commercetools/nimbus-icons. Import: import { AttachFile } from "@commercetools/nimbus-icons";',
|
|
4575
|
+
breakingChanges: [
|
|
4576
|
+
"Replace PaperclipIcon with <Icon as={AttachFile} />",
|
|
4577
|
+
"Import AttachFile from @commercetools/nimbus-icons",
|
|
4578
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4579
|
+
],
|
|
4580
|
+
iconWrapper: ICON_WRAPPER
|
|
4581
|
+
},
|
|
4582
|
+
{
|
|
4583
|
+
uiKitName: "PinFilledIcon",
|
|
4584
|
+
nimbusEquivalent: "Icon",
|
|
4585
|
+
importPath: "@commercetools/nimbus",
|
|
4586
|
+
mappingType: "variant",
|
|
4587
|
+
notes: 'Use <Icon as={PushPin} /> from @commercetools/nimbus-icons. Import: import { PushPin } from "@commercetools/nimbus-icons";',
|
|
4588
|
+
breakingChanges: [
|
|
4589
|
+
"Replace PinFilledIcon with <Icon as={PushPin} />",
|
|
4590
|
+
"Import PushPin from @commercetools/nimbus-icons",
|
|
4591
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4592
|
+
],
|
|
4593
|
+
iconWrapper: ICON_WRAPPER
|
|
4594
|
+
},
|
|
4595
|
+
{
|
|
4596
|
+
uiKitName: "PinLinearIcon",
|
|
4597
|
+
nimbusEquivalent: "Icon",
|
|
4598
|
+
importPath: "@commercetools/nimbus",
|
|
4599
|
+
mappingType: "variant",
|
|
4600
|
+
notes: 'Use <Icon as={PushPin} /> from @commercetools/nimbus-icons. Import: import { PushPin } from "@commercetools/nimbus-icons";',
|
|
4601
|
+
breakingChanges: [
|
|
4602
|
+
"Replace PinLinearIcon with <Icon as={PushPin} />",
|
|
4603
|
+
"Import PushPin from @commercetools/nimbus-icons",
|
|
4604
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4605
|
+
],
|
|
4606
|
+
iconWrapper: ICON_WRAPPER
|
|
4607
|
+
},
|
|
4608
|
+
{
|
|
4609
|
+
uiKitName: "PluginIcon",
|
|
4610
|
+
nimbusEquivalent: "Icon",
|
|
4611
|
+
importPath: "@commercetools/nimbus",
|
|
4612
|
+
mappingType: "variant",
|
|
4613
|
+
notes: 'Use <Icon as={Extension} /> from @commercetools/nimbus-icons. Import: import { Extension } from "@commercetools/nimbus-icons";',
|
|
4614
|
+
breakingChanges: [
|
|
4615
|
+
"Replace PluginIcon with <Icon as={Extension} />",
|
|
4616
|
+
"Import Extension from @commercetools/nimbus-icons",
|
|
4617
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4618
|
+
],
|
|
4619
|
+
iconWrapper: ICON_WRAPPER
|
|
4620
|
+
},
|
|
4621
|
+
{
|
|
4622
|
+
uiKitName: "PlusThinIcon",
|
|
4623
|
+
nimbusEquivalent: "Icon",
|
|
4624
|
+
importPath: "@commercetools/nimbus",
|
|
4625
|
+
mappingType: "variant",
|
|
4626
|
+
notes: 'Use <Icon as={Add} /> from @commercetools/nimbus-icons. Import: import { Add } from "@commercetools/nimbus-icons";',
|
|
4627
|
+
breakingChanges: [
|
|
4628
|
+
"Replace PlusThinIcon with <Icon as={Add} />",
|
|
4629
|
+
"Import Add from @commercetools/nimbus-icons",
|
|
4630
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4631
|
+
],
|
|
4632
|
+
iconWrapper: ICON_WRAPPER
|
|
4633
|
+
},
|
|
4634
|
+
{
|
|
4635
|
+
uiKitName: "PrivacyPolicyIcon",
|
|
4636
|
+
nimbusEquivalent: "Icon",
|
|
4637
|
+
importPath: "@commercetools/nimbus",
|
|
4638
|
+
mappingType: "variant",
|
|
4639
|
+
notes: 'Use <Icon as={Policy} /> from @commercetools/nimbus-icons. Import: import { Policy } from "@commercetools/nimbus-icons";',
|
|
4640
|
+
breakingChanges: [
|
|
4641
|
+
"Replace PrivacyPolicyIcon with <Icon as={Policy} />",
|
|
4642
|
+
"Import Policy from @commercetools/nimbus-icons",
|
|
4643
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4644
|
+
],
|
|
4645
|
+
iconWrapper: ICON_WRAPPER
|
|
4646
|
+
},
|
|
4647
|
+
{
|
|
4648
|
+
uiKitName: "RestoreIcon",
|
|
4649
|
+
nimbusEquivalent: "Icon",
|
|
4650
|
+
importPath: "@commercetools/nimbus",
|
|
4651
|
+
mappingType: "variant",
|
|
4652
|
+
notes: 'Use <Icon as={SettingsBackupRestore} /> from @commercetools/nimbus-icons. Import: import { SettingsBackupRestore } from "@commercetools/nimbus-icons";',
|
|
4653
|
+
breakingChanges: [
|
|
4654
|
+
"Replace RestoreIcon with <Icon as={SettingsBackupRestore} />",
|
|
4655
|
+
"Import SettingsBackupRestore from @commercetools/nimbus-icons",
|
|
4656
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4657
|
+
],
|
|
4658
|
+
iconWrapper: ICON_WRAPPER
|
|
4659
|
+
},
|
|
4660
|
+
{
|
|
4661
|
+
uiKitName: "ReviewIcon",
|
|
4662
|
+
nimbusEquivalent: "Icon",
|
|
4663
|
+
importPath: "@commercetools/nimbus",
|
|
4664
|
+
mappingType: "variant",
|
|
4665
|
+
notes: 'Use <Icon as={RateReview} /> from @commercetools/nimbus-icons. Import: import { RateReview } from "@commercetools/nimbus-icons";',
|
|
4666
|
+
breakingChanges: [
|
|
4667
|
+
"Replace ReviewIcon with <Icon as={RateReview} />",
|
|
4668
|
+
"Import RateReview from @commercetools/nimbus-icons",
|
|
4669
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4670
|
+
],
|
|
4671
|
+
iconWrapper: ICON_WRAPPER
|
|
4672
|
+
},
|
|
4673
|
+
{
|
|
4674
|
+
uiKitName: "RightTriangleFilledIcon",
|
|
4675
|
+
nimbusEquivalent: "Icon",
|
|
4676
|
+
importPath: "@commercetools/nimbus",
|
|
4677
|
+
mappingType: "variant",
|
|
4678
|
+
notes: 'Use <Icon as={PlayArrow} /> from @commercetools/nimbus-icons. Import: import { PlayArrow } from "@commercetools/nimbus-icons";',
|
|
4679
|
+
breakingChanges: [
|
|
4680
|
+
"Replace RightTriangleFilledIcon with <Icon as={PlayArrow} />",
|
|
4681
|
+
"Import PlayArrow from @commercetools/nimbus-icons",
|
|
4682
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4683
|
+
],
|
|
4684
|
+
iconWrapper: ICON_WRAPPER
|
|
4685
|
+
},
|
|
4686
|
+
{
|
|
4687
|
+
uiKitName: "RightTriangleLinearIcon",
|
|
4688
|
+
nimbusEquivalent: "Icon",
|
|
4689
|
+
importPath: "@commercetools/nimbus",
|
|
4690
|
+
mappingType: "variant",
|
|
4691
|
+
notes: 'Use <Icon as={PlayCircleOutline} /> from @commercetools/nimbus-icons. Import: import { PlayCircleOutline } from "@commercetools/nimbus-icons";',
|
|
4692
|
+
breakingChanges: [
|
|
4693
|
+
"Replace RightTriangleLinearIcon with <Icon as={PlayCircleOutline} />",
|
|
4694
|
+
"Import PlayCircleOutline from @commercetools/nimbus-icons",
|
|
4695
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4696
|
+
],
|
|
4697
|
+
iconWrapper: ICON_WRAPPER
|
|
4698
|
+
},
|
|
4699
|
+
{
|
|
4700
|
+
uiKitName: "RocketIcon",
|
|
4701
|
+
nimbusEquivalent: "Icon",
|
|
4702
|
+
importPath: "@commercetools/nimbus",
|
|
4703
|
+
mappingType: "variant",
|
|
4704
|
+
notes: 'Use <Icon as={RocketLaunch} /> from @commercetools/nimbus-icons. Import: import { RocketLaunch } from "@commercetools/nimbus-icons";',
|
|
4705
|
+
breakingChanges: [
|
|
4706
|
+
"Replace RocketIcon with <Icon as={RocketLaunch} />",
|
|
4707
|
+
"Import RocketLaunch from @commercetools/nimbus-icons",
|
|
4708
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4709
|
+
],
|
|
4710
|
+
iconWrapper: ICON_WRAPPER
|
|
4711
|
+
},
|
|
4712
|
+
{
|
|
4713
|
+
uiKitName: "ScreenGearIcon",
|
|
4714
|
+
nimbusEquivalent: "Icon",
|
|
4715
|
+
importPath: "@commercetools/nimbus",
|
|
4716
|
+
mappingType: "variant",
|
|
4717
|
+
notes: 'Use <Icon as={DisplaySettings} /> from @commercetools/nimbus-icons. Import: import { DisplaySettings } from "@commercetools/nimbus-icons";',
|
|
4718
|
+
breakingChanges: [
|
|
4719
|
+
"Replace ScreenGearIcon with <Icon as={DisplaySettings} />",
|
|
4720
|
+
"Import DisplaySettings from @commercetools/nimbus-icons",
|
|
4721
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4722
|
+
],
|
|
4723
|
+
iconWrapper: ICON_WRAPPER
|
|
4724
|
+
},
|
|
4725
|
+
{
|
|
4726
|
+
uiKitName: "ScreenUserIcon",
|
|
4727
|
+
nimbusEquivalent: "Icon",
|
|
4728
|
+
importPath: "@commercetools/nimbus",
|
|
4729
|
+
mappingType: "variant",
|
|
4730
|
+
notes: 'Use <Icon as={PersonalVideo} /> from @commercetools/nimbus-icons. Import: import { PersonalVideo } from "@commercetools/nimbus-icons";',
|
|
4731
|
+
breakingChanges: [
|
|
4732
|
+
"Replace ScreenUserIcon with <Icon as={PersonalVideo} />",
|
|
4733
|
+
"Import PersonalVideo from @commercetools/nimbus-icons",
|
|
4734
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4735
|
+
],
|
|
4736
|
+
iconWrapper: ICON_WRAPPER
|
|
4737
|
+
},
|
|
4738
|
+
{
|
|
4739
|
+
uiKitName: "SdkIcon",
|
|
4740
|
+
nimbusEquivalent: "Icon",
|
|
4741
|
+
importPath: "@commercetools/nimbus",
|
|
4742
|
+
mappingType: "variant",
|
|
4743
|
+
notes: 'Use <Icon as={Terminal} /> from @commercetools/nimbus-icons. Import: import { Terminal } from "@commercetools/nimbus-icons";',
|
|
4744
|
+
breakingChanges: [
|
|
4745
|
+
"Replace SdkIcon with <Icon as={Terminal} />",
|
|
4746
|
+
"Import Terminal from @commercetools/nimbus-icons",
|
|
4747
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4748
|
+
],
|
|
4749
|
+
iconWrapper: ICON_WRAPPER
|
|
4750
|
+
},
|
|
4751
|
+
{
|
|
4752
|
+
uiKitName: "SidebarCollapseIcon",
|
|
4753
|
+
nimbusEquivalent: "Icon",
|
|
4754
|
+
importPath: "@commercetools/nimbus",
|
|
4755
|
+
mappingType: "variant",
|
|
4756
|
+
notes: 'Use <Icon as={MenuOpen} /> from @commercetools/nimbus-icons. Import: import { MenuOpen } from "@commercetools/nimbus-icons";',
|
|
4757
|
+
breakingChanges: [
|
|
4758
|
+
"Replace SidebarCollapseIcon with <Icon as={MenuOpen} />",
|
|
4759
|
+
"Import MenuOpen from @commercetools/nimbus-icons",
|
|
4760
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4761
|
+
],
|
|
4762
|
+
iconWrapper: ICON_WRAPPER
|
|
4763
|
+
},
|
|
4764
|
+
{
|
|
4765
|
+
uiKitName: "SidebarExpandIcon",
|
|
4766
|
+
nimbusEquivalent: "Icon",
|
|
4767
|
+
importPath: "@commercetools/nimbus",
|
|
4768
|
+
mappingType: "variant",
|
|
4769
|
+
notes: 'Use <Icon as={Menu} /> from @commercetools/nimbus-icons. Import: import { Menu } from "@commercetools/nimbus-icons";',
|
|
4770
|
+
breakingChanges: [
|
|
4771
|
+
"Replace SidebarExpandIcon with <Icon as={Menu} />",
|
|
4772
|
+
"Import Menu from @commercetools/nimbus-icons",
|
|
4773
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4774
|
+
],
|
|
4775
|
+
iconWrapper: ICON_WRAPPER
|
|
4776
|
+
},
|
|
4777
|
+
{
|
|
4778
|
+
uiKitName: "SortingIcon",
|
|
4779
|
+
nimbusEquivalent: "Icon",
|
|
4780
|
+
importPath: "@commercetools/nimbus",
|
|
4781
|
+
mappingType: "variant",
|
|
4782
|
+
notes: 'Use <Icon as={SwapVert} /> from @commercetools/nimbus-icons. Import: import { SwapVert } from "@commercetools/nimbus-icons";',
|
|
4783
|
+
breakingChanges: [
|
|
4784
|
+
"Replace SortingIcon with <Icon as={SwapVert} />",
|
|
4785
|
+
"Import SwapVert from @commercetools/nimbus-icons",
|
|
4786
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4787
|
+
],
|
|
4788
|
+
iconWrapper: ICON_WRAPPER
|
|
4789
|
+
},
|
|
4790
|
+
{
|
|
4791
|
+
uiKitName: "SparklesIcon",
|
|
4792
|
+
nimbusEquivalent: "Icon",
|
|
4793
|
+
importPath: "@commercetools/nimbus",
|
|
4794
|
+
mappingType: "variant",
|
|
4795
|
+
notes: 'Use <Icon as={AutoAwesome} /> from @commercetools/nimbus-icons. Import: import { AutoAwesome } from "@commercetools/nimbus-icons";',
|
|
4796
|
+
breakingChanges: [
|
|
4797
|
+
"Replace SparklesIcon with <Icon as={AutoAwesome} />",
|
|
4798
|
+
"Import AutoAwesome from @commercetools/nimbus-icons",
|
|
4799
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4800
|
+
],
|
|
4801
|
+
iconWrapper: ICON_WRAPPER
|
|
4802
|
+
},
|
|
4803
|
+
{
|
|
4804
|
+
uiKitName: "SpeechBubbleIcon",
|
|
4805
|
+
nimbusEquivalent: "Icon",
|
|
4806
|
+
importPath: "@commercetools/nimbus",
|
|
4807
|
+
mappingType: "variant",
|
|
4808
|
+
notes: 'Use <Icon as={ChatBubble} /> from @commercetools/nimbus-icons. Import: import { ChatBubble } from "@commercetools/nimbus-icons";',
|
|
4809
|
+
breakingChanges: [
|
|
4810
|
+
"Replace SpeechBubbleIcon with <Icon as={ChatBubble} />",
|
|
4811
|
+
"Import ChatBubble from @commercetools/nimbus-icons",
|
|
4812
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4813
|
+
],
|
|
4814
|
+
iconWrapper: ICON_WRAPPER
|
|
4815
|
+
},
|
|
4816
|
+
{
|
|
4817
|
+
uiKitName: "SpeedometerIcon",
|
|
4818
|
+
nimbusEquivalent: "Icon",
|
|
4819
|
+
importPath: "@commercetools/nimbus",
|
|
4820
|
+
mappingType: "variant",
|
|
4821
|
+
notes: 'Use <Icon as={Speed} /> from @commercetools/nimbus-icons. Import: import { Speed } from "@commercetools/nimbus-icons";',
|
|
4822
|
+
breakingChanges: [
|
|
4823
|
+
"Replace SpeedometerIcon with <Icon as={Speed} />",
|
|
4824
|
+
"Import Speed from @commercetools/nimbus-icons",
|
|
4825
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4826
|
+
],
|
|
4827
|
+
iconWrapper: ICON_WRAPPER
|
|
4828
|
+
},
|
|
4829
|
+
{
|
|
4830
|
+
uiKitName: "SplitIcon",
|
|
4831
|
+
nimbusEquivalent: "Icon",
|
|
4832
|
+
importPath: "@commercetools/nimbus",
|
|
4833
|
+
mappingType: "variant",
|
|
4834
|
+
notes: 'Use <Icon as={CallSplit} /> from @commercetools/nimbus-icons. Import: import { CallSplit } from "@commercetools/nimbus-icons";',
|
|
4835
|
+
breakingChanges: [
|
|
4836
|
+
"Replace SplitIcon with <Icon as={CallSplit} />",
|
|
4837
|
+
"Import CallSplit from @commercetools/nimbus-icons",
|
|
4838
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4839
|
+
],
|
|
4840
|
+
iconWrapper: ICON_WRAPPER
|
|
4841
|
+
},
|
|
4842
|
+
{
|
|
4843
|
+
uiKitName: "StackIcon",
|
|
4844
|
+
nimbusEquivalent: "Icon",
|
|
4845
|
+
importPath: "@commercetools/nimbus",
|
|
4846
|
+
mappingType: "variant",
|
|
4847
|
+
notes: 'Use <Icon as={Layers} /> from @commercetools/nimbus-icons. Import: import { Layers } from "@commercetools/nimbus-icons";',
|
|
4848
|
+
breakingChanges: [
|
|
4849
|
+
"Replace StackIcon with <Icon as={Layers} />",
|
|
4850
|
+
"Import Layers from @commercetools/nimbus-icons",
|
|
4851
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4852
|
+
],
|
|
4853
|
+
iconWrapper: ICON_WRAPPER
|
|
4854
|
+
},
|
|
4855
|
+
{
|
|
4856
|
+
uiKitName: "StarIcon",
|
|
4857
|
+
nimbusEquivalent: "Icon",
|
|
4858
|
+
importPath: "@commercetools/nimbus",
|
|
4859
|
+
mappingType: "variant",
|
|
4860
|
+
notes: 'Use <Icon as={Star} /> from @commercetools/nimbus-icons. Import: import { Star } from "@commercetools/nimbus-icons";',
|
|
4861
|
+
breakingChanges: [
|
|
4862
|
+
"Replace StarIcon with <Icon as={Star} />",
|
|
4863
|
+
"Import Star from @commercetools/nimbus-icons",
|
|
4864
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4865
|
+
],
|
|
4866
|
+
iconWrapper: ICON_WRAPPER
|
|
4867
|
+
},
|
|
4868
|
+
{
|
|
4869
|
+
uiKitName: "SubdirectoryArrowIcon",
|
|
4870
|
+
nimbusEquivalent: "Icon",
|
|
4871
|
+
importPath: "@commercetools/nimbus",
|
|
4872
|
+
mappingType: "variant",
|
|
4873
|
+
notes: 'Use <Icon as={SubdirectoryArrowRight} /> from @commercetools/nimbus-icons. Import: import { SubdirectoryArrowRight } from "@commercetools/nimbus-icons";',
|
|
4874
|
+
breakingChanges: [
|
|
4875
|
+
"Replace SubdirectoryArrowIcon with <Icon as={SubdirectoryArrowRight} />",
|
|
4876
|
+
"Import SubdirectoryArrowRight from @commercetools/nimbus-icons",
|
|
4877
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4878
|
+
],
|
|
4879
|
+
iconWrapper: ICON_WRAPPER
|
|
4880
|
+
},
|
|
4881
|
+
{
|
|
4882
|
+
uiKitName: "SupportIcon",
|
|
4883
|
+
nimbusEquivalent: "Icon",
|
|
4884
|
+
importPath: "@commercetools/nimbus",
|
|
4885
|
+
mappingType: "variant",
|
|
4886
|
+
notes: 'Use <Icon as={SupportAgent} /> from @commercetools/nimbus-icons. Import: import { SupportAgent } from "@commercetools/nimbus-icons";',
|
|
4887
|
+
breakingChanges: [
|
|
4888
|
+
"Replace SupportIcon with <Icon as={SupportAgent} />",
|
|
4889
|
+
"Import SupportAgent from @commercetools/nimbus-icons",
|
|
4890
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4891
|
+
],
|
|
4892
|
+
iconWrapper: ICON_WRAPPER
|
|
4893
|
+
},
|
|
4894
|
+
{
|
|
4895
|
+
uiKitName: "SwitcherIcon",
|
|
4896
|
+
nimbusEquivalent: "Icon",
|
|
4897
|
+
importPath: "@commercetools/nimbus",
|
|
4898
|
+
mappingType: "variant",
|
|
4899
|
+
notes: 'Use <Icon as={SwapHoriz} /> from @commercetools/nimbus-icons. Import: import { SwapHoriz } from "@commercetools/nimbus-icons";',
|
|
4900
|
+
breakingChanges: [
|
|
4901
|
+
"Replace SwitcherIcon with <Icon as={SwapHoriz} />",
|
|
4902
|
+
"Import SwapHoriz from @commercetools/nimbus-icons",
|
|
4903
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4904
|
+
],
|
|
4905
|
+
iconWrapper: ICON_WRAPPER
|
|
4906
|
+
},
|
|
4907
|
+
{
|
|
4908
|
+
uiKitName: "TableIcon",
|
|
4909
|
+
nimbusEquivalent: "Icon",
|
|
4910
|
+
importPath: "@commercetools/nimbus",
|
|
4911
|
+
mappingType: "variant",
|
|
4912
|
+
notes: 'Use <Icon as={TableChart} /> from @commercetools/nimbus-icons. Import: import { TableChart } from "@commercetools/nimbus-icons";',
|
|
4913
|
+
breakingChanges: [
|
|
4914
|
+
"Replace TableIcon with <Icon as={TableChart} />",
|
|
4915
|
+
"Import TableChart from @commercetools/nimbus-icons",
|
|
4916
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4917
|
+
],
|
|
4918
|
+
iconWrapper: ICON_WRAPPER
|
|
4919
|
+
},
|
|
4920
|
+
{
|
|
4921
|
+
uiKitName: "TagIcon",
|
|
4922
|
+
nimbusEquivalent: "Icon",
|
|
4923
|
+
importPath: "@commercetools/nimbus",
|
|
4924
|
+
mappingType: "variant",
|
|
4925
|
+
notes: 'Use <Icon as={Label} /> from @commercetools/nimbus-icons. Import: import { Label } from "@commercetools/nimbus-icons";',
|
|
4926
|
+
breakingChanges: [
|
|
4927
|
+
"Replace TagIcon with <Icon as={Label} />",
|
|
4928
|
+
"Import Label from @commercetools/nimbus-icons",
|
|
4929
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4930
|
+
],
|
|
4931
|
+
iconWrapper: ICON_WRAPPER
|
|
4932
|
+
},
|
|
4933
|
+
{
|
|
4934
|
+
uiKitName: "TagMultiIcon",
|
|
4935
|
+
nimbusEquivalent: "Icon",
|
|
4936
|
+
importPath: "@commercetools/nimbus",
|
|
4937
|
+
mappingType: "variant",
|
|
4938
|
+
notes: 'Use <Icon as={Sell} /> from @commercetools/nimbus-icons. Import: import { Sell } from "@commercetools/nimbus-icons";',
|
|
4939
|
+
breakingChanges: [
|
|
4940
|
+
"Replace TagMultiIcon with <Icon as={Sell} />",
|
|
4941
|
+
"Import Sell from @commercetools/nimbus-icons",
|
|
4942
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4943
|
+
],
|
|
4944
|
+
iconWrapper: ICON_WRAPPER
|
|
4945
|
+
},
|
|
4946
|
+
{
|
|
4947
|
+
uiKitName: "TagStackedIcon",
|
|
4948
|
+
nimbusEquivalent: "Icon",
|
|
4949
|
+
importPath: "@commercetools/nimbus",
|
|
4950
|
+
mappingType: "variant",
|
|
4951
|
+
notes: 'Use <Icon as={Bookmarks} /> from @commercetools/nimbus-icons. Import: import { Bookmarks } from "@commercetools/nimbus-icons";',
|
|
4952
|
+
breakingChanges: [
|
|
4953
|
+
"Replace TagStackedIcon with <Icon as={Bookmarks} />",
|
|
4954
|
+
"Import Bookmarks from @commercetools/nimbus-icons",
|
|
4955
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4956
|
+
],
|
|
4957
|
+
iconWrapper: ICON_WRAPPER
|
|
4958
|
+
},
|
|
4959
|
+
{
|
|
4960
|
+
uiKitName: "TerminalIcon",
|
|
4961
|
+
nimbusEquivalent: "Icon",
|
|
4962
|
+
importPath: "@commercetools/nimbus",
|
|
4963
|
+
mappingType: "variant",
|
|
4964
|
+
notes: 'Use <Icon as={Terminal} /> from @commercetools/nimbus-icons. Import: import { Terminal } from "@commercetools/nimbus-icons";',
|
|
4965
|
+
breakingChanges: [
|
|
4966
|
+
"Replace TerminalIcon with <Icon as={Terminal} />",
|
|
4967
|
+
"Import Terminal from @commercetools/nimbus-icons",
|
|
4968
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4969
|
+
],
|
|
4970
|
+
iconWrapper: ICON_WRAPPER
|
|
4971
|
+
},
|
|
4972
|
+
{
|
|
4973
|
+
uiKitName: "TruckIcon",
|
|
4974
|
+
nimbusEquivalent: "Icon",
|
|
4975
|
+
importPath: "@commercetools/nimbus",
|
|
4976
|
+
mappingType: "variant",
|
|
4977
|
+
notes: 'Use <Icon as={LocalShipping} /> from @commercetools/nimbus-icons. Import: import { LocalShipping } from "@commercetools/nimbus-icons";',
|
|
4978
|
+
breakingChanges: [
|
|
4979
|
+
"Replace TruckIcon with <Icon as={LocalShipping} />",
|
|
4980
|
+
"Import LocalShipping from @commercetools/nimbus-icons",
|
|
4981
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4982
|
+
],
|
|
4983
|
+
iconWrapper: ICON_WRAPPER
|
|
4984
|
+
},
|
|
4985
|
+
{
|
|
4986
|
+
uiKitName: "TuneIcon",
|
|
4987
|
+
nimbusEquivalent: "Icon",
|
|
4988
|
+
importPath: "@commercetools/nimbus",
|
|
4989
|
+
mappingType: "variant",
|
|
4990
|
+
notes: 'Use <Icon as={Tune} /> from @commercetools/nimbus-icons. Import: import { Tune } from "@commercetools/nimbus-icons";',
|
|
4991
|
+
breakingChanges: [
|
|
4992
|
+
"Replace TuneIcon with <Icon as={Tune} />",
|
|
4993
|
+
"Import Tune from @commercetools/nimbus-icons",
|
|
4994
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
4995
|
+
],
|
|
4996
|
+
iconWrapper: ICON_WRAPPER
|
|
4997
|
+
},
|
|
4998
|
+
{
|
|
4999
|
+
uiKitName: "UserFilledIcon",
|
|
5000
|
+
nimbusEquivalent: "Icon",
|
|
5001
|
+
importPath: "@commercetools/nimbus",
|
|
5002
|
+
mappingType: "variant",
|
|
5003
|
+
notes: 'Use <Icon as={Person} /> from @commercetools/nimbus-icons. Import: import { Person } from "@commercetools/nimbus-icons";',
|
|
5004
|
+
breakingChanges: [
|
|
5005
|
+
"Replace UserFilledIcon with <Icon as={Person} />",
|
|
5006
|
+
"Import Person from @commercetools/nimbus-icons",
|
|
5007
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5008
|
+
],
|
|
5009
|
+
iconWrapper: ICON_WRAPPER
|
|
5010
|
+
},
|
|
5011
|
+
{
|
|
5012
|
+
uiKitName: "UserLinearIcon",
|
|
5013
|
+
nimbusEquivalent: "Icon",
|
|
5014
|
+
importPath: "@commercetools/nimbus",
|
|
5015
|
+
mappingType: "variant",
|
|
5016
|
+
notes: 'Use <Icon as={PersonOutline} /> from @commercetools/nimbus-icons. Import: import { PersonOutline } from "@commercetools/nimbus-icons";',
|
|
5017
|
+
breakingChanges: [
|
|
5018
|
+
"Replace UserLinearIcon with <Icon as={PersonOutline} />",
|
|
5019
|
+
"Import PersonOutline from @commercetools/nimbus-icons",
|
|
5020
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5021
|
+
],
|
|
5022
|
+
iconWrapper: ICON_WRAPPER
|
|
5023
|
+
},
|
|
5024
|
+
{
|
|
5025
|
+
uiKitName: "UsersIcon",
|
|
5026
|
+
nimbusEquivalent: "Icon",
|
|
5027
|
+
importPath: "@commercetools/nimbus",
|
|
5028
|
+
mappingType: "variant",
|
|
5029
|
+
notes: 'Use <Icon as={Group} /> from @commercetools/nimbus-icons. Import: import { Group } from "@commercetools/nimbus-icons";',
|
|
5030
|
+
breakingChanges: [
|
|
5031
|
+
"Replace UsersIcon with <Icon as={Group} />",
|
|
5032
|
+
"Import Group from @commercetools/nimbus-icons",
|
|
5033
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5034
|
+
],
|
|
5035
|
+
iconWrapper: ICON_WRAPPER
|
|
5036
|
+
},
|
|
5037
|
+
{
|
|
5038
|
+
uiKitName: "VerifiedIcon",
|
|
5039
|
+
nimbusEquivalent: "Icon",
|
|
5040
|
+
importPath: "@commercetools/nimbus",
|
|
5041
|
+
mappingType: "variant",
|
|
5042
|
+
notes: 'Use <Icon as={Verified} /> from @commercetools/nimbus-icons. Import: import { Verified } from "@commercetools/nimbus-icons";',
|
|
5043
|
+
breakingChanges: [
|
|
5044
|
+
"Replace VerifiedIcon with <Icon as={Verified} />",
|
|
5045
|
+
"Import Verified from @commercetools/nimbus-icons",
|
|
5046
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5047
|
+
],
|
|
5048
|
+
iconWrapper: ICON_WRAPPER
|
|
5049
|
+
},
|
|
5050
|
+
{
|
|
5051
|
+
uiKitName: "ViewGridPlusIcon",
|
|
5052
|
+
nimbusEquivalent: "Icon",
|
|
5053
|
+
importPath: "@commercetools/nimbus",
|
|
5054
|
+
mappingType: "variant",
|
|
5055
|
+
notes: 'Use <Icon as={DashboardCustomize} /> from @commercetools/nimbus-icons. Import: import { DashboardCustomize } from "@commercetools/nimbus-icons";',
|
|
5056
|
+
breakingChanges: [
|
|
5057
|
+
"Replace ViewGridPlusIcon with <Icon as={DashboardCustomize} />",
|
|
5058
|
+
"Import DashboardCustomize from @commercetools/nimbus-icons",
|
|
5059
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5060
|
+
],
|
|
5061
|
+
iconWrapper: ICON_WRAPPER
|
|
5062
|
+
},
|
|
5063
|
+
{
|
|
5064
|
+
uiKitName: "WindowEyeIcon",
|
|
5065
|
+
nimbusEquivalent: "Icon",
|
|
5066
|
+
importPath: "@commercetools/nimbus",
|
|
5067
|
+
mappingType: "variant",
|
|
5068
|
+
notes: 'Use <Icon as={Preview} /> from @commercetools/nimbus-icons. Import: import { Preview } from "@commercetools/nimbus-icons";',
|
|
5069
|
+
breakingChanges: [
|
|
5070
|
+
"Replace WindowEyeIcon with <Icon as={Preview} />",
|
|
5071
|
+
"Import Preview from @commercetools/nimbus-icons",
|
|
5072
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5073
|
+
],
|
|
5074
|
+
iconWrapper: ICON_WRAPPER
|
|
5075
|
+
},
|
|
5076
|
+
{
|
|
5077
|
+
uiKitName: "WorldIcon",
|
|
5078
|
+
nimbusEquivalent: "Icon",
|
|
5079
|
+
importPath: "@commercetools/nimbus",
|
|
5080
|
+
mappingType: "variant",
|
|
5081
|
+
notes: 'Use <Icon as={Public} /> from @commercetools/nimbus-icons. Import: import { Public } from "@commercetools/nimbus-icons";',
|
|
5082
|
+
breakingChanges: [
|
|
5083
|
+
"Replace WorldIcon with <Icon as={Public} />",
|
|
5084
|
+
"Import Public from @commercetools/nimbus-icons",
|
|
5085
|
+
"Wrap with <Icon> component from @commercetools/nimbus"
|
|
5086
|
+
],
|
|
5087
|
+
iconWrapper: ICON_WRAPPER
|
|
5088
|
+
},
|
|
5089
|
+
// -------------------------------------------------------------------------
|
|
5090
|
+
// Icons — generic
|
|
5091
|
+
// -------------------------------------------------------------------------
|
|
5092
|
+
{
|
|
5093
|
+
uiKitName: "CustomIcon",
|
|
5094
|
+
nimbusEquivalent: "Icon",
|
|
5095
|
+
importPath: "@commercetools/nimbus",
|
|
5096
|
+
mappingType: "variant",
|
|
5097
|
+
notes: "Use <Icon as={YourSvg}> or <Icon><YourSvg /></Icon> to wrap custom SVGs with design-system sizing and color tokens. Use InlineSvg for raw SVG markup.",
|
|
5098
|
+
breakingChanges: [
|
|
5099
|
+
"Replace CustomIcon with <Icon as={YourSvg}> or <InlineSvg>",
|
|
5100
|
+
"Prefer the as prop for the shorthand form; children also works"
|
|
5101
|
+
],
|
|
5102
|
+
propMappings: [
|
|
5103
|
+
{
|
|
5104
|
+
uiKitProp: "children",
|
|
5105
|
+
nimbusProp: "children",
|
|
5106
|
+
changeType: "structural",
|
|
5107
|
+
notes: "Prefer the as prop: <Icon as={YourSvg} />. Passing as children also works: <Icon><YourSvg /></Icon>."
|
|
5108
|
+
}
|
|
5109
|
+
],
|
|
5110
|
+
// Numeric-only sizes: CustomIcon only accepts "10"–"40", not the named aliases ("small"/"medium"/"big").
|
|
5111
|
+
iconWrapper: {
|
|
5112
|
+
...ICON_WRAPPER_BASE,
|
|
5113
|
+
sizeMapping: [
|
|
5114
|
+
{ from: "10", to: "2xs" },
|
|
5115
|
+
{ from: "20", to: "xs" },
|
|
5116
|
+
{ from: "30", to: "sm" },
|
|
5117
|
+
{ from: "40", to: "md" }
|
|
5118
|
+
]
|
|
5119
|
+
}
|
|
5120
|
+
},
|
|
5121
|
+
{
|
|
5122
|
+
uiKitName: "LeadingIcon",
|
|
5123
|
+
nimbusEquivalent: "Icon",
|
|
5124
|
+
importPath: "@commercetools/nimbus",
|
|
5125
|
+
mappingType: "variant",
|
|
5126
|
+
notes: "Pass icon as a child to the parent component (e.g. as a child of <Button>) rather than using a wrapper.",
|
|
5127
|
+
breakingChanges: [
|
|
5128
|
+
"Remove LeadingIcon wrapper",
|
|
5129
|
+
"Pass icon directly to the parent component's icon slot"
|
|
5130
|
+
],
|
|
5131
|
+
propMappings: [
|
|
5132
|
+
{
|
|
5133
|
+
uiKitProp: "children",
|
|
5134
|
+
nimbusProp: null,
|
|
5135
|
+
changeType: "structural",
|
|
5136
|
+
notes: "Remove the LeadingIcon wrapper and pass the icon directly as a child of the parent component."
|
|
5137
|
+
}
|
|
5138
|
+
]
|
|
5139
|
+
},
|
|
5140
|
+
{
|
|
5141
|
+
uiKitName: "InlineSvg",
|
|
5142
|
+
nimbusEquivalent: "InlineSvg",
|
|
5143
|
+
importPath: "@commercetools/nimbus",
|
|
5144
|
+
mappingType: "direct",
|
|
5145
|
+
notes: "Direct replacement for custom SVG icons not in the icon library.",
|
|
5146
|
+
breakingChanges: []
|
|
5147
|
+
},
|
|
5148
|
+
{
|
|
5149
|
+
uiKitName: "Icon Library",
|
|
5150
|
+
nimbusEquivalent: "Nimbus Icon Library",
|
|
5151
|
+
importPath: "@commercetools/nimbus-icons",
|
|
5152
|
+
mappingType: "pattern",
|
|
5153
|
+
notes: 'Always wrap icons in the Icon component: <Icon as={AccountCircle} size="2xs" color="neutral.11" />. Import the icon from @commercetools/nimbus-icons and the Icon wrapper from @commercetools/nimbus. Never use bare icon components \u2014 the unwrapped form skips design-system sizing and color tokens.',
|
|
5154
|
+
breakingChanges: [
|
|
5155
|
+
"Update import paths to @commercetools/nimbus-icons",
|
|
5156
|
+
"Icon names are PascalCase (e.g. Add, ChevronLeft); only icons starting with numbers use a Svg prefix (e.g. Svg123)",
|
|
5157
|
+
"Icons must be wrapped in <Icon as={...}> for correct sizing and theming"
|
|
5158
|
+
],
|
|
5159
|
+
iconWrapper: ICON_WRAPPER
|
|
5160
|
+
},
|
|
5161
|
+
// -------------------------------------------------------------------------
|
|
5162
|
+
// Accessibility utilities
|
|
5163
|
+
// -------------------------------------------------------------------------
|
|
5164
|
+
{
|
|
5165
|
+
uiKitName: "HiddenInput",
|
|
5166
|
+
nimbusEquivalent: "VisuallyHidden",
|
|
5167
|
+
importPath: "@commercetools/nimbus",
|
|
5168
|
+
mappingType: "direct",
|
|
5169
|
+
notes: "VisuallyHidden renders content that is visually hidden but accessible to screen readers.",
|
|
5170
|
+
breakingChanges: ["Rename to VisuallyHidden"]
|
|
5171
|
+
},
|
|
5172
|
+
{
|
|
5173
|
+
uiKitName: "AccessibleHidden",
|
|
5174
|
+
nimbusEquivalent: "VisuallyHidden",
|
|
5175
|
+
importPath: "@commercetools/nimbus",
|
|
5176
|
+
mappingType: "variant",
|
|
5177
|
+
notes: "Use VisuallyHidden for content that should be screen-reader accessible only.",
|
|
5178
|
+
breakingChanges: ["Replace AccessibleHidden with VisuallyHidden"]
|
|
5179
|
+
},
|
|
5180
|
+
// -------------------------------------------------------------------------
|
|
5181
|
+
// Provider
|
|
5182
|
+
// -------------------------------------------------------------------------
|
|
5183
|
+
{
|
|
5184
|
+
uiKitName: "ThemeProvider",
|
|
5185
|
+
nimbusEquivalent: "NimbusProvider",
|
|
5186
|
+
importPath: "@commercetools/nimbus",
|
|
5187
|
+
mappingType: "direct",
|
|
5188
|
+
notes: "Rename to NimbusProvider. Wrap your app root once; passes theme and i18n context.",
|
|
2175
5189
|
breakingChanges: [
|
|
2176
5190
|
"Rename to NimbusProvider",
|
|
2177
5191
|
"theme prop configuration has changed; see NimbusProvider docs"
|
|
5192
|
+
],
|
|
5193
|
+
propMappings: [
|
|
5194
|
+
{
|
|
5195
|
+
uiKitProp: "theme",
|
|
5196
|
+
nimbusProp: null,
|
|
5197
|
+
changeType: "structural",
|
|
5198
|
+
notes: "Theme configuration shape changed; see NimbusProvider's themes/forcedTheme/defaultTheme props."
|
|
5199
|
+
}
|
|
2178
5200
|
]
|
|
2179
5201
|
}
|
|
2180
5202
|
];
|
|
@@ -2322,6 +5344,20 @@ function deriveToolHint2(uiKitName, nimbusEquivalent, importPath, notes) {
|
|
|
2322
5344
|
}
|
|
2323
5345
|
return void 0;
|
|
2324
5346
|
}
|
|
5347
|
+
function buildTokenRedirect(name) {
|
|
5348
|
+
return {
|
|
5349
|
+
uiKitName: name,
|
|
5350
|
+
nimbusEquivalent: "Nimbus design tokens",
|
|
5351
|
+
importPath: "@commercetools/nimbus-tokens",
|
|
5352
|
+
mappingType: "pattern",
|
|
5353
|
+
notes: `Replace ${name}.tokenName usages with Nimbus design tokens. Use the get_tokens tool with the uikitToken parameter to resolve each token (e.g. get_tokens(uikitToken: "constraint3") or get_tokens(uikitToken: "spacingXl")).`,
|
|
5354
|
+
breakingChanges: [
|
|
5355
|
+
`Remove ${name} import from @commercetools-uikit/design-system or @commercetools-frontend/ui-kit`,
|
|
5356
|
+
"Replace each token reference with the equivalent Nimbus token value or CSS variable"
|
|
5357
|
+
],
|
|
5358
|
+
hint: `Use the get_tokens tool with the uikitToken parameter to resolve each ${name} token (e.g. get_tokens(uikitToken: "constraint3"))`
|
|
5359
|
+
};
|
|
5360
|
+
}
|
|
2325
5361
|
function buildComponentResult(uiKitName) {
|
|
2326
5362
|
const entry = getUiKitMigration(uiKitName);
|
|
2327
5363
|
if (!entry) return null;
|
|
@@ -2333,6 +5369,15 @@ function buildComponentResult(uiKitName) {
|
|
|
2333
5369
|
notes: entry.notes,
|
|
2334
5370
|
breakingChanges: entry.breakingChanges
|
|
2335
5371
|
};
|
|
5372
|
+
if (entry.propMappings) result.propMappings = entry.propMappings;
|
|
5373
|
+
if (entry.iconWrapper) result.iconWrapper = entry.iconWrapper;
|
|
5374
|
+
if (entry.propMigrations) result.propMigrations = entry.propMigrations;
|
|
5375
|
+
if (entry.codeReduction) result.codeReduction = entry.codeReduction;
|
|
5376
|
+
if (entry.propShapeTransforms)
|
|
5377
|
+
result.propShapeTransforms = entry.propShapeTransforms;
|
|
5378
|
+
if (entry.callbackAdapters) result.callbackAdapters = entry.callbackAdapters;
|
|
5379
|
+
if (entry.typeNotes) result.typeNotes = entry.typeNotes;
|
|
5380
|
+
if (entry.layoutGuidance) result.layoutGuidance = entry.layoutGuidance;
|
|
2336
5381
|
const hint = deriveToolHint2(
|
|
2337
5382
|
uiKitName,
|
|
2338
5383
|
entry.nimbusEquivalent,
|
|
@@ -2342,6 +5387,111 @@ function buildComponentResult(uiKitName) {
|
|
|
2342
5387
|
if (hint) result.hint = hint;
|
|
2343
5388
|
return result;
|
|
2344
5389
|
}
|
|
5390
|
+
function hoistLayoutGuidance(mappings) {
|
|
5391
|
+
const guidance = mappings.find((m) => m.layoutGuidance)?.layoutGuidance;
|
|
5392
|
+
if (guidance) {
|
|
5393
|
+
for (const m of mappings) delete m.layoutGuidance;
|
|
5394
|
+
}
|
|
5395
|
+
return guidance;
|
|
5396
|
+
}
|
|
5397
|
+
var GENERIC_UI_WORDS = /* @__PURE__ */ new Set([
|
|
5398
|
+
"input",
|
|
5399
|
+
"field",
|
|
5400
|
+
"text",
|
|
5401
|
+
"button",
|
|
5402
|
+
"component",
|
|
5403
|
+
"panel",
|
|
5404
|
+
"container",
|
|
5405
|
+
"label",
|
|
5406
|
+
"control",
|
|
5407
|
+
"item",
|
|
5408
|
+
"group",
|
|
5409
|
+
"list",
|
|
5410
|
+
"wrapper",
|
|
5411
|
+
"provider",
|
|
5412
|
+
"manager"
|
|
5413
|
+
]);
|
|
5414
|
+
function splitPascalCase(name) {
|
|
5415
|
+
return name.replace(/([a-z])([A-Z])/g, "$1 $2").split(/\s+/);
|
|
5416
|
+
}
|
|
5417
|
+
var _componentRoutes;
|
|
5418
|
+
var _componentLowered;
|
|
5419
|
+
async function getComponentCatalog() {
|
|
5420
|
+
if (!_componentRoutes || !_componentLowered) {
|
|
5421
|
+
const manifest = await getRouteManifest();
|
|
5422
|
+
_componentRoutes = manifest.routes.filter(
|
|
5423
|
+
(r) => r.category === "Components" && r.menu.length === 3
|
|
5424
|
+
);
|
|
5425
|
+
_componentLowered = /* @__PURE__ */ new Map();
|
|
5426
|
+
for (const r of _componentRoutes) {
|
|
5427
|
+
_componentLowered.set(r, toLoweredRouteFields(r));
|
|
5428
|
+
}
|
|
5429
|
+
}
|
|
5430
|
+
return { routes: _componentRoutes, lowered: _componentLowered };
|
|
5431
|
+
}
|
|
5432
|
+
function pickClosestByWordOverlap(candidates, uiKitWords) {
|
|
5433
|
+
const wordSet = new Set(uiKitWords);
|
|
5434
|
+
let best = null;
|
|
5435
|
+
let bestRatio = 0;
|
|
5436
|
+
for (const c of candidates) {
|
|
5437
|
+
const exportWords = splitPascalCase(c.exportName ?? c.title).map(
|
|
5438
|
+
(w) => w.toLowerCase()
|
|
5439
|
+
);
|
|
5440
|
+
const overlap = exportWords.filter((w) => wordSet.has(w)).length;
|
|
5441
|
+
const ratio = overlap / exportWords.length;
|
|
5442
|
+
if (ratio > bestRatio) {
|
|
5443
|
+
bestRatio = ratio;
|
|
5444
|
+
best = c;
|
|
5445
|
+
}
|
|
5446
|
+
}
|
|
5447
|
+
return best;
|
|
5448
|
+
}
|
|
5449
|
+
async function findNimbusSuggestion(uiKitName) {
|
|
5450
|
+
const { routes, lowered } = await getComponentCatalog();
|
|
5451
|
+
const allWords = splitPascalCase(uiKitName).map((w) => w.toLowerCase());
|
|
5452
|
+
if (allWords.length === 0) return null;
|
|
5453
|
+
const distinctive = allWords.filter((w) => !GENERIC_UI_WORDS.has(w));
|
|
5454
|
+
const usingGenericFallback = distinctive.length === 0;
|
|
5455
|
+
const tokens = usingGenericFallback ? allWords : distinctive;
|
|
5456
|
+
const exactMatches = filterAndRankPreLowered(
|
|
5457
|
+
routes,
|
|
5458
|
+
tokens,
|
|
5459
|
+
(r) => lowered.get(r)
|
|
5460
|
+
);
|
|
5461
|
+
if (exactMatches.length > 0) {
|
|
5462
|
+
const best = pickClosestByWordOverlap(exactMatches, allWords);
|
|
5463
|
+
if (!best) return null;
|
|
5464
|
+
return {
|
|
5465
|
+
name: best.exportName ?? best.title,
|
|
5466
|
+
confidence: usingGenericFallback ? "medium" : "high"
|
|
5467
|
+
};
|
|
5468
|
+
}
|
|
5469
|
+
const minFuzzyScore = tokens.length * (WEIGHTS.title / 2);
|
|
5470
|
+
const fuzzyScored = [];
|
|
5471
|
+
for (const r of routes) {
|
|
5472
|
+
const score = fuzzyScorePreLowered(lowered.get(r), tokens);
|
|
5473
|
+
if (score > 0) {
|
|
5474
|
+
fuzzyScored.push({ route: r, score });
|
|
5475
|
+
}
|
|
5476
|
+
}
|
|
5477
|
+
fuzzyScored.sort((a, b) => b.score - a.score);
|
|
5478
|
+
if (fuzzyScored.length > 0) {
|
|
5479
|
+
const best = fuzzyScored[0];
|
|
5480
|
+
if (best.score >= minFuzzyScore) {
|
|
5481
|
+
return {
|
|
5482
|
+
name: best.route.exportName ?? best.route.title,
|
|
5483
|
+
confidence: "medium"
|
|
5484
|
+
};
|
|
5485
|
+
}
|
|
5486
|
+
}
|
|
5487
|
+
return null;
|
|
5488
|
+
}
|
|
5489
|
+
async function buildUnmappedComponent(name) {
|
|
5490
|
+
const suggestion = await findNimbusSuggestion(name);
|
|
5491
|
+
const result = { name };
|
|
5492
|
+
if (suggestion) result.suggestion = suggestion;
|
|
5493
|
+
return result;
|
|
5494
|
+
}
|
|
2345
5495
|
function registerMigrateFromUiKit(server) {
|
|
2346
5496
|
server.registerTool(
|
|
2347
5497
|
"migrate_from_uikit",
|
|
@@ -2349,10 +5499,10 @@ function registerMigrateFromUiKit(server) {
|
|
|
2349
5499
|
title: "Migrate from UI Kit",
|
|
2350
5500
|
description: "Returns migration mapping data for UI Kit components to their Nimbus equivalents. Use componentName for a single lookup, or filePath to extract all UI Kit imports from a file and get mappings for each. The MCP provides data; the LLM does the actual code rewriting.",
|
|
2351
5501
|
inputSchema: {
|
|
2352
|
-
componentName:
|
|
5502
|
+
componentName: z7.string().optional().describe(
|
|
2353
5503
|
'UI Kit component name to look up, e.g. "PrimaryButton", "TextInput", "CollapsiblePanel".'
|
|
2354
5504
|
),
|
|
2355
|
-
filePath:
|
|
5505
|
+
filePath: z7.string().optional().describe(
|
|
2356
5506
|
"Absolute path to a source file. Extracts @commercetools-uikit/* imports and returns mappings for all found components."
|
|
2357
5507
|
)
|
|
2358
5508
|
}
|
|
@@ -2370,6 +5520,16 @@ function registerMigrateFromUiKit(server) {
|
|
|
2370
5520
|
};
|
|
2371
5521
|
}
|
|
2372
5522
|
if (componentName) {
|
|
5523
|
+
if (componentName === "customProperties" || componentName === "designTokens") {
|
|
5524
|
+
return {
|
|
5525
|
+
content: [
|
|
5526
|
+
{
|
|
5527
|
+
type: "text",
|
|
5528
|
+
text: JSON.stringify(buildTokenRedirect(componentName))
|
|
5529
|
+
}
|
|
5530
|
+
]
|
|
5531
|
+
};
|
|
5532
|
+
}
|
|
2373
5533
|
const result = buildComponentResult(componentName);
|
|
2374
5534
|
if (result) {
|
|
2375
5535
|
return {
|
|
@@ -2383,13 +5543,16 @@ function registerMigrateFromUiKit(server) {
|
|
|
2383
5543
|
}
|
|
2384
5544
|
const compoundEntries = getUiKitCompoundMigrations(componentName);
|
|
2385
5545
|
if (compoundEntries) {
|
|
5546
|
+
const mappings2 = compoundEntries.map(
|
|
5547
|
+
(e) => buildComponentResult(e.uiKitName)
|
|
5548
|
+
);
|
|
2386
5549
|
const response2 = {
|
|
2387
5550
|
compoundRoot: componentName,
|
|
2388
5551
|
note: `"${componentName}" is used as a namespace (e.g. ${compoundEntries.map((e) => e.uiKitName).join(", ")}). Each sub-component has its own mapping.`,
|
|
2389
|
-
mappings:
|
|
2390
|
-
(e) => buildComponentResult(e.uiKitName)
|
|
2391
|
-
)
|
|
5552
|
+
mappings: mappings2
|
|
2392
5553
|
};
|
|
5554
|
+
const guidance = hoistLayoutGuidance(mappings2);
|
|
5555
|
+
if (guidance) response2.layoutGuidance = guidance;
|
|
2393
5556
|
return {
|
|
2394
5557
|
content: [
|
|
2395
5558
|
{
|
|
@@ -2410,6 +5573,22 @@ function registerMigrateFromUiKit(server) {
|
|
|
2410
5573
|
]
|
|
2411
5574
|
};
|
|
2412
5575
|
}
|
|
5576
|
+
const suggestion = await findNimbusSuggestion(componentName);
|
|
5577
|
+
if (suggestion) {
|
|
5578
|
+
const response2 = {
|
|
5579
|
+
uiKitName: componentName,
|
|
5580
|
+
suggestion
|
|
5581
|
+
};
|
|
5582
|
+
response2.hint = `Use the get_component tool to see full API docs (e.g. get_component(name: "${suggestion.name}"))`;
|
|
5583
|
+
return {
|
|
5584
|
+
content: [
|
|
5585
|
+
{
|
|
5586
|
+
type: "text",
|
|
5587
|
+
text: JSON.stringify(response2)
|
|
5588
|
+
}
|
|
5589
|
+
]
|
|
5590
|
+
};
|
|
5591
|
+
}
|
|
2413
5592
|
return {
|
|
2414
5593
|
content: [
|
|
2415
5594
|
{
|
|
@@ -2451,8 +5630,12 @@ function registerMigrateFromUiKit(server) {
|
|
|
2451
5630
|
};
|
|
2452
5631
|
}
|
|
2453
5632
|
const mappings = [];
|
|
2454
|
-
const
|
|
5633
|
+
const unmappedNames = [];
|
|
2455
5634
|
for (const name of componentNames) {
|
|
5635
|
+
if (name === "customProperties" || name === "designTokens") {
|
|
5636
|
+
mappings.push(buildTokenRedirect(name));
|
|
5637
|
+
continue;
|
|
5638
|
+
}
|
|
2456
5639
|
const result = buildComponentResult(name);
|
|
2457
5640
|
if (result) {
|
|
2458
5641
|
mappings.push(result);
|
|
@@ -2469,13 +5652,18 @@ function registerMigrateFromUiKit(server) {
|
|
|
2469
5652
|
}
|
|
2470
5653
|
continue;
|
|
2471
5654
|
}
|
|
2472
|
-
|
|
5655
|
+
unmappedNames.push(name);
|
|
2473
5656
|
}
|
|
5657
|
+
const unmapped = await Promise.all(
|
|
5658
|
+
unmappedNames.map(buildUnmappedComponent)
|
|
5659
|
+
);
|
|
2474
5660
|
const response = {
|
|
2475
5661
|
filePath,
|
|
2476
5662
|
mappings,
|
|
2477
5663
|
unmapped
|
|
2478
5664
|
};
|
|
5665
|
+
const fileGuidance = hoistLayoutGuidance(mappings);
|
|
5666
|
+
if (fileGuidance) response.layoutGuidance = fileGuidance;
|
|
2479
5667
|
return {
|
|
2480
5668
|
content: [
|
|
2481
5669
|
{
|
|
@@ -2502,6 +5690,7 @@ function createServer() {
|
|
|
2502
5690
|
}
|
|
2503
5691
|
);
|
|
2504
5692
|
registerGetComponent(server);
|
|
5693
|
+
registerGetDocsPage(server);
|
|
2505
5694
|
registerGetTokens(server);
|
|
2506
5695
|
registerListComponents(server);
|
|
2507
5696
|
registerSearchDocs(server);
|