@pega/cosmos-react-core 8.0.0-build.1.0 → 8.0.0-build.2.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.
|
@@ -1,23 +1,67 @@
|
|
|
1
|
-
import type { MenuProps
|
|
1
|
+
import type { MenuProps } from './Menu.types';
|
|
2
|
+
type BasicItemOrGroup = {
|
|
3
|
+
id: unknown;
|
|
4
|
+
primary?: unknown;
|
|
5
|
+
items?: {
|
|
6
|
+
id: unknown;
|
|
7
|
+
primary?: unknown;
|
|
8
|
+
}[] | undefined;
|
|
9
|
+
};
|
|
10
|
+
type BasicSelectable = {
|
|
11
|
+
id: unknown;
|
|
12
|
+
primary?: unknown;
|
|
13
|
+
selected?: boolean | undefined;
|
|
14
|
+
items?: {
|
|
15
|
+
id: unknown;
|
|
16
|
+
primary?: unknown;
|
|
17
|
+
selected?: boolean | undefined;
|
|
18
|
+
}[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
type ExtractItem<T> = Extract<T, {
|
|
21
|
+
primary: unknown;
|
|
22
|
+
}>;
|
|
23
|
+
type GenericItemOrGroup<T> = T | (T extends {
|
|
24
|
+
items?: (infer U)[] | undefined;
|
|
25
|
+
} ? U extends {
|
|
26
|
+
id: unknown;
|
|
27
|
+
} ? U : never : never);
|
|
28
|
+
type GenericItem<T> = ExtractItem<T> | ExtractItem<GenericItemOrGroup<T>>;
|
|
29
|
+
type PickId<T extends {
|
|
30
|
+
id: unknown;
|
|
31
|
+
}> = [T] extends [never] ? unknown : GenericItemOrGroup<T>['id'];
|
|
2
32
|
declare const helpers: {
|
|
3
|
-
isItem(item:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
33
|
+
isItem<T extends object>(item: T): item is Extract<T, {
|
|
34
|
+
primary: unknown;
|
|
35
|
+
}>;
|
|
36
|
+
getItem<T_1 extends BasicItemOrGroup>(items: T_1[], id: PickId<T_1>): GenericItem<T_1> | undefined;
|
|
37
|
+
getPath<T_2 extends BasicItemOrGroup>(items: T_2[], id: PickId<T_2>): GenericItemOrGroup<T_2>[];
|
|
38
|
+
setItem<T_3 extends BasicItemOrGroup>(items: T_3[], id: PickId<T_3>, newItem: GenericItemOrGroup<T_3>): T_3[];
|
|
39
|
+
mapItem<T_4 extends BasicItemOrGroup>(items: T_4[], id: PickId<T_4>, fn: (item: Extract<T_4, {
|
|
40
|
+
primary: unknown;
|
|
41
|
+
}>, index: number, array: T_4[]) => Extract<T_4, {
|
|
42
|
+
primary: unknown;
|
|
43
|
+
}>): T_4[];
|
|
44
|
+
mapTree<T_5 extends BasicItemOrGroup>(items: T_5[], fn: (item: Extract<T_5, {
|
|
45
|
+
primary: unknown;
|
|
46
|
+
}>, index: number, array: T_5[]) => Extract<T_5, {
|
|
47
|
+
primary: unknown;
|
|
48
|
+
}>): GenericItemOrGroup<T_5>[];
|
|
49
|
+
flatten<T_6 extends BasicItemOrGroup>(items: T_6[], ancestors?: GenericItemOrGroup<T_6>[], options?: {
|
|
10
50
|
parentFirst?: boolean;
|
|
11
|
-
}):
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
51
|
+
}): Extract<T_6, {
|
|
52
|
+
primary: unknown;
|
|
53
|
+
}>[];
|
|
54
|
+
toggleSelected<T_7 extends BasicSelectable>(items: T_7[], id: PickId<T_7>, mode?: MenuProps['mode'], bool?: boolean): T_7[];
|
|
55
|
+
selectItem<T_8 extends BasicSelectable>(items: T_8[], id: PickId<T_8>, mode?: MenuProps['mode']): T_8[];
|
|
56
|
+
deselectItem<T_9 extends BasicSelectable>(items: T_9[], id: PickId<T_9>, mode?: MenuProps['mode']): T_9[];
|
|
57
|
+
getSelected<T_10 extends BasicSelectable>(items: T_10[]): Extract<T_10, {
|
|
58
|
+
primary: unknown;
|
|
59
|
+
}>[];
|
|
60
|
+
prependTo<T_11 extends BasicItemOrGroup>(items: T_11[], newItems: GenericItemOrGroup<T_11>[], id?: PickId<T_11> | undefined): GenericItemOrGroup<T_11>[];
|
|
61
|
+
appendTo<T_12 extends BasicItemOrGroup>(items: T_12[], newItems: GenericItemOrGroup<T_12>[], id?: PickId<T_12> | undefined): GenericItemOrGroup<T_12>[];
|
|
62
|
+
getNextItem<T_13 extends BasicItemOrGroup>(items: T_13[], itemId?: PickId<T_13> | undefined): GenericItemOrGroup<T_13> | undefined;
|
|
63
|
+
getPrevItem<T_14 extends BasicItemOrGroup>(items: T_14[], itemId?: PickId<T_14> | undefined): GenericItemOrGroup<T_14> | undefined;
|
|
64
|
+
getParentItem<T_15 extends BasicItemOrGroup>(items: T_15[], itemId?: PickId<T_15> | undefined): GenericItemOrGroup<T_15> | undefined;
|
|
21
65
|
};
|
|
22
66
|
export default helpers;
|
|
23
67
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Menu/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Menu/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;CAC1F,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEvD,KAAK,kBAAkB,CAAC,CAAC,IACrB,CAAC,GACD,CAAC,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,SAAS,CAAA;CAAE,GAC1C,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,GACvB,CAAC,GACD,KAAK,GACP,KAAK,CAAC,CAAC;AAEf,KAAK,WAAW,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E,KAAK,MAAM,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACxD,OAAO,GACP,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEhC,QAAA,MAAM,OAAO;;iBAhB+B,OAAO;;;;;;iBAAP,OAAO;eAkFb,MAAM;iBAlFA,OAAO;;;iBAAP,OAAO;eAwGb,MAAM;iBAxGA,OAAO;;yGA2HtC;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;iBA3HM,OAAO;;sFAsJxC,SAAS,CAAC,MAAM,CAAC,SACjB,OAAO;kFAuBwD,SAAS,CAAC,MAAM,CAAC;oFAOhF,SAAS,CAAC,MAAM,CAAC;;iBArLgB,OAAO;;;;;;;CAqQlD,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/Menu/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { hasProp } from '../../utils';\n\nimport type { MenuProps, MenuObjectProps, MenuItemProps, MenuGroupProps } from './Menu.types';\n\nconst helpers = {\n isItem(item: MenuItemProps | MenuGroupProps): item is MenuItemProps {\n return hasProp(item, 'primary');\n },\n\n getItem(items: MenuProps['items'], id: MenuObjectProps['id']): MenuItemProps | undefined {\n let found: MenuItemProps | undefined;\n items.some(item => {\n if (this.isItem(item) && item.id === id) {\n found = item;\n return true;\n }\n\n if (item.items) {\n found = this.getItem(item.items, id);\n return !!found;\n }\n\n return false;\n });\n\n return found;\n },\n\n getPath(items: MenuProps['items'], id: MenuObjectProps['id']): MenuProps['items'] {\n let path: (MenuItemProps | MenuGroupProps)[] = [];\n items.some(item => {\n if (item.id === id) {\n path = [item];\n return true;\n }\n\n if (item.items) {\n const innerPath = this.getPath(item.items, id);\n if (innerPath.length) path = innerPath.concat(item);\n return !!path.length;\n }\n\n return false;\n });\n\n return path;\n },\n\n setItem(\n items: MenuProps['items'],\n id: MenuItemProps['id'],\n newItem: MenuItemProps\n ): MenuProps['items'] {\n return items.map((item: MenuItemProps | MenuGroupProps) => {\n if (item.id === id) return { ...newItem };\n\n if (item.items) {\n return {\n ...item,\n items: this.setItem(item.items, id, newItem) as MenuItemProps[]\n };\n }\n\n return item;\n });\n },\n\n mapItem(\n items: MenuProps['items'],\n id: MenuItemProps['id'],\n fn: (item: MenuItemProps, index: number, array: MenuProps['items']) => MenuItemProps\n ): MenuProps['items'] {\n return items.map((item, index, array) => {\n let newItem = item;\n\n if (item.items) {\n newItem = {\n ...newItem,\n items: this.mapItem(item.items, id, fn) as MenuItemProps[]\n };\n }\n\n if (this.isItem(newItem) && item.id === id) {\n newItem = fn(newItem, index, array);\n }\n\n return newItem;\n });\n },\n\n mapTree(\n items: MenuProps['items'],\n fn: (item: MenuItemProps, index: number, array: MenuProps['items']) => MenuItemProps\n ): MenuProps['items'] {\n return items.map((item, index, array) => {\n let newItem = item;\n\n if (item.items) {\n newItem = {\n ...newItem,\n items: this.mapTree(item.items, fn) as MenuItemProps[]\n };\n }\n\n return this.isItem(newItem) ? fn(newItem, index, array) : newItem;\n });\n },\n\n flatten(\n items: (MenuItemProps | MenuGroupProps)[],\n ancestors: (MenuItemProps | MenuGroupProps)[] = [],\n options: { parentFirst?: boolean } = { parentFirst: false }\n ): MenuItemProps[] {\n let allItems: MenuItemProps[] = [];\n let leafItems: MenuItemProps[] = [];\n\n items.forEach(item => {\n if (this.isItem(item)) {\n allItems.push(ancestors.length > 0 ? { ...item, ancestors } : item);\n }\n\n if (item.items) {\n const children = this.flatten(item.items, [...ancestors, item], options);\n\n if (options.parentFirst) {\n leafItems = [...leafItems, ...children];\n } else {\n allItems = [...allItems, ...children];\n }\n }\n });\n\n return options.parentFirst ? [...allItems, ...leafItems] : allItems;\n },\n\n toggleSelected(\n items: MenuProps['items'],\n id: MenuItemProps['id'],\n mode?: MenuProps['mode'],\n bool?: boolean\n ): MenuProps['items'] {\n return this.mapTree(items, item => {\n if (this.isItem(item)) {\n if (item.id === id) {\n return {\n ...item,\n selected: bool !== undefined ? bool : !item.selected\n };\n }\n\n if (mode === 'single-select') {\n return {\n ...item,\n selected: false\n };\n }\n }\n\n return item;\n });\n },\n\n selectItem(\n items: MenuProps['items'],\n id: MenuItemProps['id'],\n mode?: MenuProps['mode']\n ): MenuProps['items'] {\n return this.toggleSelected(items, id, mode, true);\n },\n\n deselectItem(\n items: MenuProps['items'],\n id: MenuItemProps['id'],\n mode?: MenuProps['mode']\n ): MenuProps['items'] {\n return this.toggleSelected(items, id, mode, false);\n },\n\n getSelected(items: MenuProps['items']): MenuItemProps[] {\n return items.reduce<MenuItemProps[]>((selections, item) => {\n if (this.isItem(item) && item.selected) {\n selections = [...selections, item];\n }\n\n if (item.items) {\n selections = [...selections, ...this.getSelected(item.items)];\n }\n return selections;\n }, []);\n },\n\n prependTo(\n items: MenuProps['items'],\n newItems: MenuProps['items'],\n id?: MenuObjectProps['id']\n ): MenuProps['items'] {\n if (id) {\n return this.mapItem(items, id, item => ({\n ...item,\n items: [...newItems, ...(item.items ?? [])]\n }));\n }\n return [...newItems, ...items];\n },\n\n appendTo(\n items: MenuProps['items'],\n newItems: MenuProps['items'],\n id?: MenuObjectProps['id']\n ): MenuProps['items'] {\n if (id) {\n return this.mapItem(items, id, item => ({\n ...item,\n items: [...(item.items ?? []), ...newItems]\n }));\n }\n return [...items, ...newItems];\n },\n\n getNextItem(\n items: MenuProps['items'],\n itemId?: MenuObjectProps['id']\n ): MenuItemProps | MenuGroupProps | undefined {\n if (!itemId) return items[0];\n let nextItem: MenuItemProps | MenuGroupProps | undefined;\n this.mapItem(items, itemId, (item, index, list) => {\n nextItem = list[index + 1];\n return item;\n });\n return nextItem;\n },\n\n getPrevItem(\n items: MenuProps['items'],\n itemId?: MenuObjectProps['id']\n ): MenuItemProps | MenuGroupProps | undefined {\n if (!itemId) return items[0];\n let prevItem: MenuItemProps | MenuGroupProps | undefined;\n this.mapItem(items, itemId, (item, index, list) => {\n prevItem = list[index - 1];\n return item;\n });\n return prevItem;\n },\n\n getParentItem(\n items: MenuProps['items'],\n itemId?: MenuItemProps['id']\n ): MenuItemProps | MenuGroupProps | undefined {\n if (!itemId) return undefined;\n const [, parentItem] = this.getPath(items, itemId);\n return parentItem;\n }\n};\n\nexport default helpers;\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/Menu/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { hasProp } from '../../utils';\n\nimport type { MenuProps } from './Menu.types';\n\ntype BasicItemOrGroup = {\n id: unknown;\n primary?: unknown;\n items?: { id: unknown; primary?: unknown }[] | undefined;\n};\n\ntype BasicSelectable = {\n id: unknown;\n primary?: unknown;\n selected?: boolean | undefined;\n items?: { id: unknown; primary?: unknown; selected?: boolean | undefined }[] | undefined;\n};\n\ntype ExtractItem<T> = Extract<T, { primary: unknown }>;\n\ntype GenericItemOrGroup<T> =\n | T\n | (T extends { items?: (infer U)[] | undefined }\n ? U extends { id: unknown }\n ? U\n : never\n : never);\n\ntype GenericItem<T> = ExtractItem<T> | ExtractItem<GenericItemOrGroup<T>>;\n\ntype PickId<T extends { id: unknown }> = [T] extends [never]\n ? unknown\n : GenericItemOrGroup<T>['id'];\n\nconst helpers = {\n isItem<T extends object>(item: T): item is ExtractItem<T> {\n return hasProp(item, 'primary');\n },\n\n getItem<T extends BasicItemOrGroup>(items: T[], id: PickId<T>): GenericItem<T> | undefined {\n let found: GenericItem<T> | undefined;\n items.some(item => {\n if (this.isItem(item) && item.id === id) {\n found = item;\n return true;\n }\n\n if (item.items) {\n found = this.getItem(item.items, id);\n return !!found;\n }\n\n return false;\n });\n\n return found;\n },\n\n getPath<T extends BasicItemOrGroup>(items: T[], id: PickId<T>): GenericItemOrGroup<T>[] {\n let path: GenericItemOrGroup<T>[] = [];\n items.some(item => {\n if (item.id === id) {\n path = [item];\n return true;\n }\n\n if (item.items) {\n const innerPath = this.getPath(item.items as GenericItemOrGroup<T>[], id);\n if (innerPath.length) path = innerPath.concat(item);\n return !!path.length;\n }\n\n return false;\n });\n\n return path;\n },\n\n setItem<T extends BasicItemOrGroup>(\n items: T[],\n id: PickId<T>,\n newItem: GenericItemOrGroup<T>\n ): T[] {\n return items.map(item => {\n if (item.id === id) return { ...newItem };\n\n if (item.items) {\n return {\n ...item,\n items: this.setItem(item.items, id, newItem)\n };\n }\n\n return item;\n });\n },\n\n mapItem<T extends BasicItemOrGroup>(\n items: T[],\n id: PickId<T>,\n fn: (item: ExtractItem<T>, index: number, array: T[]) => ExtractItem<T>\n ): T[] {\n return items.map((item, index, array) => {\n let newItem = item;\n\n if (item.items) {\n newItem = {\n ...newItem,\n items: this.mapItem(item.items as GenericItemOrGroup<T>[], id, fn)\n };\n }\n\n if (this.isItem(newItem) && item.id === id) {\n newItem = fn(newItem, index, array);\n }\n\n return newItem;\n });\n },\n\n mapTree<T extends BasicItemOrGroup>(\n items: T[],\n fn: (item: ExtractItem<T>, index: number, array: T[]) => ExtractItem<T>\n ): GenericItemOrGroup<T>[] {\n return items.map((item, index, array) => {\n let newItem = item;\n\n if (item.items) {\n newItem = {\n ...newItem,\n items: this.mapTree(item.items as GenericItemOrGroup<T>[], fn)\n };\n }\n\n return this.isItem(newItem) ? fn(newItem, index, array) : newItem;\n });\n },\n\n flatten<T extends BasicItemOrGroup>(\n items: T[],\n ancestors: GenericItemOrGroup<T>[] = [],\n options: { parentFirst?: boolean } = { parentFirst: false }\n ): ExtractItem<T>[] {\n let allItems: ExtractItem<T>[] = [];\n let leafItems: ExtractItem<T>[] = [];\n\n items.forEach(item => {\n if (this.isItem(item)) {\n allItems.push(ancestors.length > 0 ? { ...item, ancestors } : item);\n }\n\n if (item.items) {\n const children = this.flatten(item.items, [...ancestors, item], options);\n\n if (options.parentFirst) {\n leafItems = [...leafItems, ...children];\n } else {\n allItems = [...allItems, ...children];\n }\n }\n });\n\n return options.parentFirst ? [...allItems, ...leafItems] : allItems;\n },\n\n toggleSelected<T extends BasicSelectable>(\n items: T[],\n id: PickId<T>,\n mode?: MenuProps['mode'],\n bool?: boolean\n ): T[] {\n return this.mapTree(items, item => {\n if (this.isItem(item)) {\n if (item.id === id) {\n return {\n ...item,\n selected: bool !== undefined ? bool : !item.selected\n };\n }\n\n if (mode === 'single-select') {\n return {\n ...item,\n selected: false\n };\n }\n }\n\n return item;\n });\n },\n\n selectItem<T extends BasicSelectable>(items: T[], id: PickId<T>, mode?: MenuProps['mode']): T[] {\n return this.toggleSelected(items, id, mode, true);\n },\n\n deselectItem<T extends BasicSelectable>(\n items: T[],\n id: PickId<T>,\n mode?: MenuProps['mode']\n ): T[] {\n return this.toggleSelected(items, id, mode, false);\n },\n\n getSelected<T extends BasicSelectable>(items: T[]): ExtractItem<T>[] {\n return items.reduce<ExtractItem<T>[]>((selections, item) => {\n if (this.isItem(item) && item.selected) {\n selections = [...selections, item];\n }\n\n if (item.items) {\n selections = [...selections, ...this.getSelected(item.items)];\n }\n return selections;\n }, []);\n },\n\n prependTo<T extends BasicItemOrGroup>(\n items: T[],\n newItems: GenericItemOrGroup<T>[],\n id?: PickId<T>\n ): GenericItemOrGroup<T>[] {\n if (id) {\n return this.mapItem(items, id, item => ({\n ...item,\n items: [...newItems, ...(item.items ?? [])]\n }));\n }\n return [...newItems, ...items];\n },\n\n appendTo<T extends BasicItemOrGroup>(\n items: T[],\n newItems: GenericItemOrGroup<T>[],\n id?: PickId<T>\n ): GenericItemOrGroup<T>[] {\n if (id) {\n return this.mapItem(items, id, item => ({\n ...item,\n items: [...(item.items ?? []), ...newItems]\n }));\n }\n return [...items, ...newItems];\n },\n\n getNextItem<T extends BasicItemOrGroup>(\n items: T[],\n itemId?: PickId<T>\n ): GenericItemOrGroup<T> | undefined {\n if (!itemId) return items[0];\n let nextItem: GenericItemOrGroup<T> | undefined;\n this.mapItem(items, itemId, (item, index, list) => {\n nextItem = list[index + 1];\n return item;\n });\n return nextItem;\n },\n\n getPrevItem<T extends BasicItemOrGroup>(\n items: T[],\n itemId?: PickId<T>\n ): GenericItemOrGroup<T> | undefined {\n if (!itemId) return items[0];\n let prevItem: GenericItemOrGroup<T> | undefined;\n this.mapItem(items, itemId, (item, index, list) => {\n prevItem = list[index - 1];\n return item;\n });\n return prevItem;\n },\n\n getParentItem<T extends BasicItemOrGroup>(\n items: T[],\n itemId?: PickId<T>\n ): GenericItemOrGroup<T> | undefined {\n if (!itemId) return undefined;\n const [, parentItem] = this.getPath(items, itemId);\n return parentItem;\n }\n};\n\nexport default helpers;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-core",
|
|
3
|
-
"version": "8.0.0-build.
|
|
3
|
+
"version": "8.0.0-build.2.0",
|
|
4
4
|
"description": "Cosmos is a visual design system and UI component collection. Its goal is to empower application developers in their pursuit to create engaging and rewarding user experiences.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|