@camped-ui/command 3.0.3 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,83 @@
1
+ import * as React from "react";
2
+ import { type DialogProps } from "@radix-ui/react-dialog";
3
+ declare const Command: React.ForwardRefExoticComponent<Omit<{
4
+ children?: React.ReactNode;
5
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
6
+ ref?: React.Ref<HTMLDivElement>;
7
+ } & {
8
+ asChild?: boolean;
9
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
10
+ label?: string;
11
+ shouldFilter?: boolean;
12
+ filter?: (value: string, search: string, keywords?: string[]) => number;
13
+ defaultValue?: string;
14
+ value?: string;
15
+ onValueChange?: (value: string) => void;
16
+ loop?: boolean;
17
+ disablePointerSelection?: boolean;
18
+ vimBindings?: boolean;
19
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
+ interface CommandDialogProps extends DialogProps {
21
+ }
22
+ declare const CommandDialog: ({ children, ...props }: CommandDialogProps) => import("react/jsx-runtime").JSX.Element;
23
+ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & {
24
+ ref?: React.Ref<HTMLInputElement>;
25
+ } & {
26
+ asChild?: boolean;
27
+ }, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "value" | "type"> & {
28
+ value?: string;
29
+ onValueChange?: (search: string) => void;
30
+ } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
31
+ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
32
+ children?: React.ReactNode;
33
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
34
+ ref?: React.Ref<HTMLDivElement>;
35
+ } & {
36
+ asChild?: boolean;
37
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
38
+ label?: string;
39
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
40
+ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
41
+ children?: React.ReactNode;
42
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
43
+ ref?: React.Ref<HTMLDivElement>;
44
+ } & {
45
+ asChild?: boolean;
46
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
47
+ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
48
+ children?: React.ReactNode;
49
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
50
+ ref?: React.Ref<HTMLDivElement>;
51
+ } & {
52
+ asChild?: boolean;
53
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
54
+ heading?: React.ReactNode;
55
+ value?: string;
56
+ forceMount?: boolean;
57
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
58
+ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
59
+ ref?: React.Ref<HTMLDivElement>;
60
+ } & {
61
+ asChild?: boolean;
62
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
63
+ alwaysRender?: boolean;
64
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
65
+ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
66
+ children?: React.ReactNode;
67
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
68
+ ref?: React.Ref<HTMLDivElement>;
69
+ } & {
70
+ asChild?: boolean;
71
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "value" | "disabled"> & {
72
+ disabled?: boolean;
73
+ onSelect?: (value: string) => void;
74
+ value?: string;
75
+ keywords?: string[];
76
+ forceMount?: boolean;
77
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
+ declare const CommandShortcut: {
79
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
80
+ displayName: string;
81
+ };
82
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOzD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;sFAYX,CAAA;AAGF,UAAU,kBAAmB,SAAQ,WAAW;CAAG;AAEnD,QAAA,MAAM,aAAa,2BAA4B,kBAAkB,4CAUhE,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;0FAehB,CAAA;AAIF,QAAA,MAAM,WAAW;;;;;;;;sFASf,CAAA;AAIF,QAAA,MAAM,YAAY;;;;;;uJAShB,CAAA;AAIF,QAAA,MAAM,YAAY;;;;;;;;;;sFAYhB,CAAA;AAIF,QAAA,MAAM,gBAAgB;;;;;;sFASpB,CAAA;AAGF,QAAA,MAAM,WAAW;;;;;;;;;;;;sFAYf,CAAA;AAIF,QAAA,MAAM,eAAe;8BAGlB,MAAM,cAAc,CAAC,eAAe,CAAC;;CAUvC,CAAA;AAGD,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __rest = (this && this.__rest) || function (s, e) {
27
+ var t = {};
28
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
29
+ t[p] = s[p];
30
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
31
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
32
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
33
+ t[p[i]] = s[p[i]];
34
+ }
35
+ return t;
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.CommandSeparator = exports.CommandShortcut = exports.CommandItem = exports.CommandGroup = exports.CommandEmpty = exports.CommandList = exports.CommandInput = exports.CommandDialog = exports.Command = void 0;
39
+ const jsx_runtime_1 = require("react/jsx-runtime");
40
+ const React = __importStar(require("react"));
41
+ const lucide_react_1 = require("lucide-react");
42
+ const cmdk_1 = require("cmdk");
43
+ const dialog_1 = require("@camped-ui/dialog");
44
+ const lib_1 = require("@camped-ui/lib");
45
+ const Command = React.forwardRef((_a, ref) => {
46
+ var { className } = _a, props = __rest(_a, ["className"]);
47
+ return ((0, jsx_runtime_1.jsx)(cmdk_1.Command, Object.assign({ ref: ref, className: (0, lib_1.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", className) }, props)));
48
+ });
49
+ exports.Command = Command;
50
+ Command.displayName = cmdk_1.Command.displayName;
51
+ const CommandDialog = (_a) => {
52
+ var { children } = _a, props = __rest(_a, ["children"]);
53
+ return ((0, jsx_runtime_1.jsx)(dialog_1.Dialog, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)(dialog_1.DialogContent, { className: "overflow-hidden p-0", children: (0, jsx_runtime_1.jsx)(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: children }) }) })));
54
+ };
55
+ exports.CommandDialog = CommandDialog;
56
+ const CommandInput = React.forwardRef((_a, ref) => {
57
+ var { className } = _a, props = __rest(_a, ["className"]);
58
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), (0, jsx_runtime_1.jsx)(cmdk_1.Command.Input, Object.assign({ ref: ref, className: (0, lib_1.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", className) }, props))] }));
59
+ });
60
+ exports.CommandInput = CommandInput;
61
+ CommandInput.displayName = cmdk_1.Command.Input.displayName;
62
+ const CommandList = React.forwardRef((_a, ref) => {
63
+ var { className } = _a, props = __rest(_a, ["className"]);
64
+ return ((0, jsx_runtime_1.jsx)(cmdk_1.Command.List, Object.assign({ ref: ref, className: (0, lib_1.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden", className) }, props)));
65
+ });
66
+ exports.CommandList = CommandList;
67
+ CommandList.displayName = cmdk_1.Command.List.displayName;
68
+ const CommandEmpty = React.forwardRef((props, ref) => ((0, jsx_runtime_1.jsx)(cmdk_1.Command.Empty, Object.assign({ ref: ref, className: "py-6 text-center text-sm" }, props))));
69
+ exports.CommandEmpty = CommandEmpty;
70
+ CommandEmpty.displayName = cmdk_1.Command.Empty.displayName;
71
+ const CommandGroup = React.forwardRef((_a, ref) => {
72
+ var { className } = _a, props = __rest(_a, ["className"]);
73
+ return ((0, jsx_runtime_1.jsx)(cmdk_1.Command.Group, Object.assign({ ref: ref, className: (0, lib_1.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", className) }, props)));
74
+ });
75
+ exports.CommandGroup = CommandGroup;
76
+ CommandGroup.displayName = cmdk_1.Command.Group.displayName;
77
+ const CommandSeparator = React.forwardRef((_a, ref) => {
78
+ var { className } = _a, props = __rest(_a, ["className"]);
79
+ return ((0, jsx_runtime_1.jsx)(cmdk_1.Command.Separator, Object.assign({ ref: ref, className: (0, lib_1.cn)("-mx-1 h-px bg-border", className) }, props)));
80
+ });
81
+ exports.CommandSeparator = CommandSeparator;
82
+ CommandSeparator.displayName = cmdk_1.Command.Separator.displayName;
83
+ const CommandItem = React.forwardRef((_a, ref) => {
84
+ var { className } = _a, props = __rest(_a, ["className"]);
85
+ return ((0, jsx_runtime_1.jsx)(cmdk_1.Command.Item, Object.assign({ ref: ref, className: (0, lib_1.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50", className) }, props)));
86
+ });
87
+ exports.CommandItem = CommandItem;
88
+ CommandItem.displayName = cmdk_1.Command.Item.displayName;
89
+ const CommandShortcut = (_a) => {
90
+ var { className } = _a, props = __rest(_a, ["className"]);
91
+ return ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: (0, lib_1.cn)("ml-auto text-xs tracking-widest text-muted-foreground", className) }, props)));
92
+ };
93
+ exports.CommandShortcut = CommandShortcut;
94
+ CommandShortcut.displayName = "CommandShortcut";
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEZ,6CAA8B;AAE9B,+CAAqC;AACrC,+BAAkD;AAElD,8CAA0D;AAC1D,wCAAoC;AAEpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,EAAuB,EAAE,GAAG,EAAE,EAAE;QAAhC,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IAAY,OAAA,CAClC,uBAAC,cAAgB,kBACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,QAAE,EACX,2FAA2F,EAC3F,SAAS,CACV,IACG,KAAK,EACT,CACH,CAAA;CAAA,CAAC,CAAA;AA2HA,0BAAO;AA1HT,OAAO,CAAC,WAAW,GAAG,cAAgB,CAAC,WAAW,CAAA;AAIlD,MAAM,aAAa,GAAG,CAAC,EAA0C,EAAE,EAAE;QAA9C,EAAE,QAAQ,OAAgC,EAA3B,KAAK,cAApB,YAAsB,CAAF;IACzC,OAAO,CACL,uBAAC,eAAM,oBAAK,KAAK,cACf,uBAAC,sBAAa,IAAC,SAAS,EAAC,qBAAqB,YAC5C,uBAAC,OAAO,IAAC,SAAS,EAAC,6WAA6W,YAC7X,QAAQ,GACD,GACI,IACT,CACV,CAAA;AACH,CAAC,CAAA;AA6GC,sCAAa;AA3Gf,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAuB,EAAE,GAAG,EAAE,EAAE;QAAhC,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IAAY,OAAA,CAClC,iCAAK,SAAS,EAAC,iCAAiC,wBAAoB,EAAE,aACpE,uBAAC,qBAAM,IAAC,SAAS,EAAC,kCAAkC,GAAG,EACvD,uBAAC,cAAgB,CAAC,KAAK,kBACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,QAAE,EACX,wJAAwJ,EACxJ,SAAS,CACV,IACG,KAAK,EACT,IACE,CACP,CAAA;CAAA,CAAC,CAAA;AA6FA,oCAAY;AA3Fd,YAAY,CAAC,WAAW,GAAG,cAAgB,CAAC,KAAK,CAAC,WAAW,CAAA;AAE7D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAuB,EAAE,GAAG,EAAE,EAAE;QAAhC,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IAAY,OAAA,CAClC,uBAAC,cAAgB,CAAC,IAAI,kBACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,QAAE,EAAC,iDAAiD,EAAE,SAAS,CAAC,IACvE,KAAK,EACT,CACH,CAAA;CAAA,CAAC,CAAA;AAiFA,kCAAW;AA/Eb,WAAW,CAAC,WAAW,GAAG,cAAgB,CAAC,IAAI,CAAC,WAAW,CAAA;AAE3D,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAChB,uBAAC,cAAgB,CAAC,KAAK,kBACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,0BAA0B,IAChC,KAAK,EACT,CACH,CAAC,CAAA;AAqEA,oCAAY;AAnEd,YAAY,CAAC,WAAW,GAAG,cAAgB,CAAC,KAAK,CAAC,WAAW,CAAA;AAE7D,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAuB,EAAE,GAAG,EAAE,EAAE;QAAhC,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IAAY,OAAA,CAClC,uBAAC,cAAgB,CAAC,KAAK,kBACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,QAAE,EACX,wNAAwN,EACxN,SAAS,CACV,IACG,KAAK,EACT,CACH,CAAA;CAAA,CAAC,CAAA;AAsDA,oCAAY;AApDd,YAAY,CAAC,WAAW,GAAG,cAAgB,CAAC,KAAK,CAAC,WAAW,CAAA;AAE7D,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAuB,EAAE,GAAG,EAAE,EAAE;QAAhC,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IAAY,OAAA,CAClC,uBAAC,cAAgB,CAAC,SAAS,kBACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,QAAE,EAAC,sBAAsB,EAAE,SAAS,CAAC,IAC5C,KAAK,EACT,CACH,CAAA;CAAA,CAAC,CAAA;AA4CA,4CAAgB;AA3ClB,gBAAgB,CAAC,WAAW,GAAG,cAAgB,CAAC,SAAS,CAAC,WAAW,CAAA;AAErE,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAuB,EAAE,GAAG,EAAE,EAAE;QAAhC,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IAAY,OAAA,CAClC,uBAAC,cAAgB,CAAC,IAAI,kBACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,QAAE,EACX,uPAAuP,EACvP,SAAS,CACV,IACG,KAAK,EACT,CACH,CAAA;CAAA,CAAC,CAAA;AA2BA,kCAAW;AAzBb,WAAW,CAAC,WAAW,GAAG,cAAgB,CAAC,IAAI,CAAC,WAAW,CAAA;AAE3D,MAAM,eAAe,GAAG,CAAC,EAGe,EAAE,EAAE;QAHnB,EACvB,SAAS,OAE6B,EADnC,KAAK,cAFe,aAGxB,CADS;IAER,OAAO,CACL,+CACE,SAAS,EAAE,IAAA,QAAE,EACX,uDAAuD,EACvD,SAAS,CACV,IACG,KAAK,EACT,CACH,CAAA;AACH,CAAC,CAAA;AAWC,0CAAe;AAVjB,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camped-ui/command",
3
- "version": "3.0.3",
3
+ "version": "3.0.5",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "publish-package": "npm publish --access public",
@@ -10,9 +10,10 @@
10
10
  "dependencies": {
11
11
  "@radix-ui/react-dialog": "^1.0.2",
12
12
  "cmdk": "1.0.0",
13
- "@camped-ui/dialog": "2.0.2"
13
+ "@camped-ui/dialog": "2.1.3"
14
14
  },
15
15
  "peerDependencies": {
16
+ "lucide-react": "*",
16
17
  "react": "*",
17
18
  "@camped-ui/lib": "*"
18
19
  },