@teambit/command-bar 1.0.107 → 1.0.108

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,9 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+
3
+ export const CommandBarAspect = Aspect.create({
4
+ id: 'teambit.explorer/command-bar',
5
+ dependencies: [],
6
+ defaultConfig: {},
7
+ });
8
+
9
+ export default CommandBarAspect;
@@ -0,0 +1,3 @@
1
+ export const commandBarCommands = {
2
+ open: 'command-bar.open',
3
+ };
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
@@ -1,16 +1,16 @@
1
- import React, { ComponentType } from 'react';
1
+ import { ComponentType } from 'react';
2
2
  import { SlotRegistry } from '@teambit/harmony';
3
3
  import { UiUI } from '@teambit/ui';
4
4
  import { PubsubUI } from '@teambit/pubsub';
5
5
  import { ResultsComponentProps } from '@teambit/explorer.ui.command-bar';
6
6
  import { SearchProvider } from './searchers';
7
7
  import { Keybinding, CommandHandler, CommandId } from './types';
8
- declare type SearcherSlot = SlotRegistry<SearchProvider[]>;
9
- declare type CommandSlot = SlotRegistry<CommandEntry[]>;
10
- export declare type CommandBarConfig = {
8
+ type SearcherSlot = SlotRegistry<SearchProvider[]>;
9
+ type CommandSlot = SlotRegistry<CommandEntry[]>;
10
+ export type CommandBarConfig = {
11
11
  debounce?: number;
12
12
  };
13
- export declare type CommandEntry = {
13
+ export type CommandEntry = {
14
14
  id: CommandId;
15
15
  action: CommandHandler;
16
16
  keybinding?: Keybinding;
@@ -54,9 +54,9 @@ export declare class CommandBarUI {
54
54
  * generate the ui for command bar
55
55
  */
56
56
  CommandBar: ({ ResultComponent, onEnter, }: {
57
- ResultComponent?: React.ComponentType<ResultsComponentProps<import("@teambit/explorer.ui.command-bar").SearchResult[], any>> | undefined;
58
- onEnter?: ((value: string) => void) | undefined;
59
- }) => React.JSX.Element;
57
+ ResultComponent?: ComponentType<ResultsComponentProps>;
58
+ onEnter?: (value: string) => void;
59
+ }) => JSX.Element;
60
60
  constructor(searcherSlot: SearcherSlot, commandSlot: CommandSlot, config: CommandBarConfig);
61
61
  static dependencies: import("@teambit/harmony").Aspect[];
62
62
  static slots: (((registerFn: () => string) => SlotRegistry<SearchProvider>) | ((registerFn: () => string) => SlotRegistry<CommandEntry[]>))[];
@@ -200,14 +200,12 @@ class CommandBarUI {
200
200
  _defineProperty(this, "commandSearcher", new (_searchers().CommandSearcher)([]));
201
201
  /** Opens the command bar */
202
202
  _defineProperty(this, "open", () => {
203
- var _this$setVisibility;
204
- (_this$setVisibility = this.setVisibility) === null || _this$setVisibility === void 0 || _this$setVisibility.call(this, true);
203
+ this.setVisibility?.(true);
205
204
  return false; // aka prevent default
206
205
  });
207
206
  /** Closes the command bar */
208
207
  _defineProperty(this, "close", () => {
209
- var _this$setVisibility2;
210
- (_this$setVisibility2 = this.setVisibility) === null || _this$setVisibility2 === void 0 || _this$setVisibility2.call(this, false);
208
+ this.setVisibility?.(false);
211
209
  });
212
210
  _defineProperty(this, "trigger", key => {
213
211
  this.mousetrap.trigger(key);
@@ -215,7 +213,7 @@ class CommandBarUI {
215
213
  _defineProperty(this, "search", (term, limit = RESULT_LIMIT) => {
216
214
  const searchers = (0, _lodash().default)(this.searcherSlot.values());
217
215
  const searcher = searchers.find(x => x && x.test(term));
218
- return (searcher === null || searcher === void 0 ? void 0 : searcher.search(term, limit)) || {
216
+ return searcher?.search(term, limit) || {
219
217
  items: []
220
218
  };
221
219
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_mousetrap","_harmony","_ui","_pubsub","_reactRouter","_uiFoundationUi","_explorerUi","_commandBar","_commandBar2","_searchers","_duplicateCommandError","_mousetrapStub","_keybinding","_commandBarModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","RESULT_LIMIT","CommandBarUI","addSearcher","commandSearcher","searcherSlot","register","addCommand","originalCommands","forEach","id","commandId","getCommand","undefined","DuplicateCommandError","commands","map","x","displayName","action","keybinding","commandSlot","command","addKeybinding","updateCommandsSearcher","updaters","next","run","commandEntry","relevantCommands","values","find","filter","pop","flat","update","mousetrap","constructor","config","isBrowser","Mousetrap","MousetrapStub","CommandSearcher","_this$setVisibility","setVisibility","_this$setVisibility2","trigger","term","limit","searchers","flatten","searcher","test","search","items","ResultComponent","onEnter","visible","useState","results","useSearcher","debounce","createElement","CommandBar","className","styles","commanderUi","placeholder","ResultsComponent","onVisibilityChange","autofocus","provider","uiUi","pubsubUI","commandSlots","commandBar","commandBarCommands","open","openCommandBarKeybinding","sub","CommandBarAspect","keyboardEvent","KeyboardEvent","type","document","dispatchEvent","registerHudItem","exports","UIAspect","PubsubAspect","ReactRouterAspect","Slot","withType","UIRuntime","addRuntime"],"sources":["command-bar.ui.runtime.tsx"],"sourcesContent":["import React, { useState, ComponentType } from 'react';\nimport flatten from 'lodash.flatten';\nimport Mousetrap from 'mousetrap';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport UIAspect, { UIRuntime, UiUI } from '@teambit/ui';\nimport { PubsubAspect, PubsubUI } from '@teambit/pubsub';\nimport { ReactRouterAspect } from '@teambit/react-router';\nimport { isBrowser } from '@teambit/ui-foundation.ui.is-browser';\nimport { CommandBar, useSearcher, ResultsComponentProps } from '@teambit/explorer.ui.command-bar';\nimport { CommandBarAspect } from './command-bar.aspect';\nimport { commandBarCommands } from './command-bar.commands';\nimport { CommandSearcher, SearchProvider } from './searchers';\nimport { Keybinding, CommandHandler, CommandId } from './types';\nimport { DuplicateCommandError } from './duplicate-command-error';\nimport { KeyEvent } from './model/key-event';\nimport { MousetrapStub } from './mousetrap-stub';\nimport { openCommandBarKeybinding } from './keybinding';\nimport styles from './command-bar.module.scss';\n\nconst RESULT_LIMIT = 5;\ntype SearcherSlot = SlotRegistry<SearchProvider[]>;\ntype CommandSlot = SlotRegistry<CommandEntry[]>;\n\nexport type CommandBarConfig = {\n debounce?: number;\n};\n\nexport type CommandEntry = {\n id: CommandId;\n action: CommandHandler;\n keybinding?: Keybinding;\n displayName: string;\n};\n\n/** Quick launch actions. Use the `addSearcher` slot to extend the available actions */\nexport class CommandBarUI {\n private mousetrap = isBrowser ? new Mousetrap() : new MousetrapStub();\n private commandSearcher = new CommandSearcher([]);\n\n /** Opens the command bar */\n open = () => {\n this.setVisibility?.(true);\n return false; // aka prevent default\n };\n\n /** Closes the command bar */\n close = () => {\n this.setVisibility?.(false);\n };\n\n /** Add and autocomplete provider. To support keyboard navigation, each result should have a props `active: boolean`, and `exectue: () => any` */\n addSearcher(...commandSearcher: SearchProvider[]) {\n this.searcherSlot.register(commandSearcher);\n return this;\n }\n\n /**\n * registers a command\n */\n addCommand(...originalCommands: CommandEntry[]) {\n originalCommands.forEach(({ id: commandId }) => {\n if (this.getCommand(commandId) !== undefined) throw new DuplicateCommandError(commandId);\n });\n\n // commands could mutate later on, clone to ensure immutability 👌\n const commands = originalCommands.map((x) => ({\n id: x.id,\n displayName: x.displayName,\n action: x.action,\n keybinding: x.keybinding,\n }));\n\n this.commandSlot.register(commands);\n\n commands.forEach((command) => {\n if (command.keybinding) {\n this.addKeybinding(command.keybinding, command.id);\n }\n });\n\n this.updateCommandsSearcher();\n\n const updaters = commands.map((command) => (next: CommandHandler) => {\n command.action = next;\n });\n return updaters;\n }\n\n /**\n * executes command by name, if exists.\n * @param commandId\n */\n run(commandId: CommandId) {\n const commandEntry = this.getCommand(commandId);\n if (!commandEntry) return undefined;\n\n return commandEntry.action();\n }\n\n /**\n * executes a keyboard shortcut manually\n */\n trigger = (key: string) => {\n this.mousetrap.trigger(key);\n };\n\n private search = (term: string, limit: number = RESULT_LIMIT) => {\n const searchers = flatten(this.searcherSlot.values());\n\n const searcher = searchers.find((x) => x && x.test(term));\n return searcher?.search(term, limit) || { items: [] };\n };\n\n private getCommand(id: CommandId) {\n const relevantCommands = this.commandSlot\n .values()\n .map((commands) => commands.find((command) => command.id === id))\n .filter((x) => !!x);\n\n return relevantCommands.pop();\n }\n\n private updateCommandsSearcher() {\n const commands = this.commandSlot.values().flat();\n this.commandSearcher.update(commands);\n }\n\n private addKeybinding(key: Keybinding, command: CommandId) {\n this.mousetrap.bind(key, this.run.bind(this, command));\n }\n\n /**\n * Opens and closes the command bar UI.\n */\n setVisibility?: (visible: boolean) => void;\n\n /**\n * generate the ui for command bar\n */\n CommandBar = ({\n ResultComponent,\n onEnter,\n }: {\n ResultComponent?: ComponentType<ResultsComponentProps>;\n onEnter?: (value: string) => void;\n }) => {\n const [visible, setVisibility] = useState(false);\n this.setVisibility = setVisibility;\n\n const results = useSearcher(this.search, {\n debounce: this.config.debounce,\n });\n\n return (\n <CommandBar\n {...results}\n onEnter={onEnter}\n key=\"CommandBarUI\"\n className={styles.commanderUi}\n placeholder=\"Search anything or type > to only search commands\"\n visible={visible}\n ResultsComponent={ResultComponent}\n onVisibilityChange={setVisibility}\n autofocus\n />\n );\n };\n\n constructor(private searcherSlot: SearcherSlot, private commandSlot: CommandSlot, private config: CommandBarConfig) {}\n\n static dependencies = [UIAspect, PubsubAspect, ReactRouterAspect];\n static slots = [Slot.withType<SearchProvider>(), Slot.withType<CommandEntry[]>()];\n static defaultConfig: CommandBarConfig = {\n debounce: undefined,\n };\n\n static runtime = UIRuntime;\n\n static async provider(\n [uiUi, pubsubUI]: [UiUI | undefined, PubsubUI | undefined],\n config: CommandBarConfig,\n [searcherSlot, commandSlots]: [SearcherSlot, CommandSlot]\n ) {\n const commandBar = new CommandBarUI(searcherSlot, commandSlots, config);\n\n commandBar.addSearcher(commandBar.commandSearcher);\n commandBar.addCommand({\n id: commandBarCommands.open,\n action: commandBar.open,\n displayName: 'Open command bar',\n keybinding: openCommandBarKeybinding,\n });\n\n if (pubsubUI) {\n pubsubUI.sub(CommandBarAspect.id, (e: KeyEvent) => {\n const keyboardEvent = new KeyboardEvent(e.type, e.data);\n document.dispatchEvent(keyboardEvent);\n });\n }\n\n if (uiUi) {\n uiUi.registerHudItem(<commandBar.CommandBar key=\"commandBar\" />);\n }\n\n return commandBar;\n }\n}\n\nCommandBarAspect.addRuntime(CommandBarUI);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_mousetrap","_harmony","_ui","_pubsub","_reactRouter","_uiFoundationUi","_explorerUi","_commandBar","_commandBar2","_searchers","_duplicateCommandError","_mousetrapStub","_keybinding","_commandBarModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","RESULT_LIMIT","CommandBarUI","addSearcher","commandSearcher","searcherSlot","register","addCommand","originalCommands","forEach","id","commandId","getCommand","undefined","DuplicateCommandError","commands","map","x","displayName","action","keybinding","commandSlot","command","addKeybinding","updateCommandsSearcher","updaters","next","run","commandEntry","relevantCommands","values","find","filter","pop","flat","update","mousetrap","constructor","config","isBrowser","Mousetrap","MousetrapStub","CommandSearcher","setVisibility","trigger","term","limit","searchers","flatten","searcher","test","search","items","ResultComponent","onEnter","visible","useState","results","useSearcher","debounce","createElement","CommandBar","className","styles","commanderUi","placeholder","ResultsComponent","onVisibilityChange","autofocus","provider","uiUi","pubsubUI","commandSlots","commandBar","commandBarCommands","open","openCommandBarKeybinding","sub","CommandBarAspect","keyboardEvent","KeyboardEvent","type","document","dispatchEvent","registerHudItem","exports","UIAspect","PubsubAspect","ReactRouterAspect","Slot","withType","UIRuntime","addRuntime"],"sources":["command-bar.ui.runtime.tsx"],"sourcesContent":["import React, { useState, ComponentType } from 'react';\nimport flatten from 'lodash.flatten';\nimport Mousetrap from 'mousetrap';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport UIAspect, { UIRuntime, UiUI } from '@teambit/ui';\nimport { PubsubAspect, PubsubUI } from '@teambit/pubsub';\nimport { ReactRouterAspect } from '@teambit/react-router';\nimport { isBrowser } from '@teambit/ui-foundation.ui.is-browser';\nimport { CommandBar, useSearcher, ResultsComponentProps } from '@teambit/explorer.ui.command-bar';\nimport { CommandBarAspect } from './command-bar.aspect';\nimport { commandBarCommands } from './command-bar.commands';\nimport { CommandSearcher, SearchProvider } from './searchers';\nimport { Keybinding, CommandHandler, CommandId } from './types';\nimport { DuplicateCommandError } from './duplicate-command-error';\nimport { KeyEvent } from './model/key-event';\nimport { MousetrapStub } from './mousetrap-stub';\nimport { openCommandBarKeybinding } from './keybinding';\nimport styles from './command-bar.module.scss';\n\nconst RESULT_LIMIT = 5;\ntype SearcherSlot = SlotRegistry<SearchProvider[]>;\ntype CommandSlot = SlotRegistry<CommandEntry[]>;\n\nexport type CommandBarConfig = {\n debounce?: number;\n};\n\nexport type CommandEntry = {\n id: CommandId;\n action: CommandHandler;\n keybinding?: Keybinding;\n displayName: string;\n};\n\n/** Quick launch actions. Use the `addSearcher` slot to extend the available actions */\nexport class CommandBarUI {\n private mousetrap = isBrowser ? new Mousetrap() : new MousetrapStub();\n private commandSearcher = new CommandSearcher([]);\n\n /** Opens the command bar */\n open = () => {\n this.setVisibility?.(true);\n return false; // aka prevent default\n };\n\n /** Closes the command bar */\n close = () => {\n this.setVisibility?.(false);\n };\n\n /** Add and autocomplete provider. To support keyboard navigation, each result should have a props `active: boolean`, and `exectue: () => any` */\n addSearcher(...commandSearcher: SearchProvider[]) {\n this.searcherSlot.register(commandSearcher);\n return this;\n }\n\n /**\n * registers a command\n */\n addCommand(...originalCommands: CommandEntry[]) {\n originalCommands.forEach(({ id: commandId }) => {\n if (this.getCommand(commandId) !== undefined) throw new DuplicateCommandError(commandId);\n });\n\n // commands could mutate later on, clone to ensure immutability 👌\n const commands = originalCommands.map((x) => ({\n id: x.id,\n displayName: x.displayName,\n action: x.action,\n keybinding: x.keybinding,\n }));\n\n this.commandSlot.register(commands);\n\n commands.forEach((command) => {\n if (command.keybinding) {\n this.addKeybinding(command.keybinding, command.id);\n }\n });\n\n this.updateCommandsSearcher();\n\n const updaters = commands.map((command) => (next: CommandHandler) => {\n command.action = next;\n });\n return updaters;\n }\n\n /**\n * executes command by name, if exists.\n * @param commandId\n */\n run(commandId: CommandId) {\n const commandEntry = this.getCommand(commandId);\n if (!commandEntry) return undefined;\n\n return commandEntry.action();\n }\n\n /**\n * executes a keyboard shortcut manually\n */\n trigger = (key: string) => {\n this.mousetrap.trigger(key);\n };\n\n private search = (term: string, limit: number = RESULT_LIMIT) => {\n const searchers = flatten(this.searcherSlot.values());\n\n const searcher = searchers.find((x) => x && x.test(term));\n return searcher?.search(term, limit) || { items: [] };\n };\n\n private getCommand(id: CommandId) {\n const relevantCommands = this.commandSlot\n .values()\n .map((commands) => commands.find((command) => command.id === id))\n .filter((x) => !!x);\n\n return relevantCommands.pop();\n }\n\n private updateCommandsSearcher() {\n const commands = this.commandSlot.values().flat();\n this.commandSearcher.update(commands);\n }\n\n private addKeybinding(key: Keybinding, command: CommandId) {\n this.mousetrap.bind(key, this.run.bind(this, command));\n }\n\n /**\n * Opens and closes the command bar UI.\n */\n setVisibility?: (visible: boolean) => void;\n\n /**\n * generate the ui for command bar\n */\n CommandBar = ({\n ResultComponent,\n onEnter,\n }: {\n ResultComponent?: ComponentType<ResultsComponentProps>;\n onEnter?: (value: string) => void;\n }) => {\n const [visible, setVisibility] = useState(false);\n this.setVisibility = setVisibility;\n\n const results = useSearcher(this.search, {\n debounce: this.config.debounce,\n });\n\n return (\n <CommandBar\n {...results}\n onEnter={onEnter}\n key=\"CommandBarUI\"\n className={styles.commanderUi}\n placeholder=\"Search anything or type > to only search commands\"\n visible={visible}\n ResultsComponent={ResultComponent}\n onVisibilityChange={setVisibility}\n autofocus\n />\n );\n };\n\n constructor(private searcherSlot: SearcherSlot, private commandSlot: CommandSlot, private config: CommandBarConfig) {}\n\n static dependencies = [UIAspect, PubsubAspect, ReactRouterAspect];\n static slots = [Slot.withType<SearchProvider>(), Slot.withType<CommandEntry[]>()];\n static defaultConfig: CommandBarConfig = {\n debounce: undefined,\n };\n\n static runtime = UIRuntime;\n\n static async provider(\n [uiUi, pubsubUI]: [UiUI | undefined, PubsubUI | undefined],\n config: CommandBarConfig,\n [searcherSlot, commandSlots]: [SearcherSlot, CommandSlot]\n ) {\n const commandBar = new CommandBarUI(searcherSlot, commandSlots, config);\n\n commandBar.addSearcher(commandBar.commandSearcher);\n commandBar.addCommand({\n id: commandBarCommands.open,\n action: commandBar.open,\n displayName: 'Open command bar',\n keybinding: openCommandBarKeybinding,\n });\n\n if (pubsubUI) {\n pubsubUI.sub(CommandBarAspect.id, (e: KeyEvent) => {\n const keyboardEvent = new KeyboardEvent(e.type, e.data);\n document.dispatchEvent(keyboardEvent);\n });\n }\n\n if (uiUi) {\n uiUi.registerHudItem(<commandBar.CommandBar key=\"commandBar\" />);\n }\n\n return commandBar;\n }\n}\n\nCommandBarAspect.addRuntime(CommandBarUI);\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@1.0.107/dist/command-bar.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@1.0.107/dist/command-bar.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@1.0.108/dist/command-bar.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@1.0.108/dist/command-bar.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,7 +1,7 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { Command } from './command';
3
- declare type CommandResultProps = {
3
+ type CommandResultProps = {
4
4
  command: Command;
5
5
  };
6
- export declare function CommandResult({ command }: CommandResultProps): React.JSX.Element;
6
+ export declare function CommandResult({ command }: CommandResultProps): JSX.Element;
7
7
  export {};
@@ -1,4 +1,4 @@
1
- export declare type Command = {
1
+ export type Command = {
2
2
  id: string;
3
3
  displayName: string;
4
4
  action: Function;
package/dist/types.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare type CommandId = string;
2
- export declare type CommandHandler = Function;
3
- export declare type Keybinding = string | string[];
1
+ export type CommandId = string;
2
+ export type CommandHandler = Function;
3
+ export type Keybinding = string | string[];
@@ -0,0 +1,8 @@
1
+ import { BitError } from '@teambit/bit-error';
2
+ import { CommandId } from './types';
3
+
4
+ export class DuplicateCommandError extends BitError {
5
+ constructor(commandId: CommandId) {
6
+ super(`Command "${commandId}" is already added.`);
7
+ }
8
+ }
package/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ export { CommandBarAspect, CommandBarAspect as default } from './command-bar.aspect';
2
+ export { commandBarCommands } from './command-bar.commands';
3
+ export type { SearchProvider } from './searchers';
4
+ export type { CommandBarUI, CommandEntry } from './command-bar.ui.runtime';
5
+ export type { CommandHandler, CommandId, Keybinding } from './types';
6
+ export type { SearchResult, ResultsComponentProps, SearchResults } from '@teambit/explorer.ui.command-bar';
7
+ export type { FuzzySearchItem } from '@teambit/explorer.ui.command-bar';
8
+ export { FuzzySearcher, CommandBarItem } from '@teambit/explorer.ui.command-bar';
package/keybinding.ts ADDED
@@ -0,0 +1,5 @@
1
+ export const openCommandBarKeybinding = 'mod+k';
2
+ export const isOpenCommandBarKeybinding = (e: KeyboardEvent) => {
3
+ // TODO - use a keybinding matcher.
4
+ return (e.ctrlKey || e.metaKey) && e.key === 'k';
5
+ };
@@ -0,0 +1,20 @@
1
+ import { MousetrapInstance } from 'mousetrap';
2
+
3
+ export class MousetrapStub implements MousetrapInstance {
4
+ stopCallback() {
5
+ return false;
6
+ }
7
+ bind() {
8
+ return this;
9
+ }
10
+ unbind() {
11
+ return this;
12
+ }
13
+ trigger() {
14
+ return this;
15
+ }
16
+ handleKey() {}
17
+ reset() {
18
+ return this;
19
+ }
20
+ }
package/package.json CHANGED
@@ -1,20 +1,18 @@
1
1
  {
2
2
  "name": "@teambit/command-bar",
3
- "version": "1.0.107",
3
+ "version": "1.0.108",
4
4
  "homepage": "https://bit.cloud/teambit/explorer/command-bar",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.explorer",
8
8
  "name": "command-bar",
9
- "version": "1.0.107"
9
+ "version": "1.0.108"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash.flatten": "4.4.0",
13
13
  "mousetrap": "1.6.5",
14
- "classnames": "2.2.6",
15
14
  "is-primitive": "3.0.1",
16
- "core-js": "^3.0.0",
17
- "@babel/runtime": "7.20.0",
15
+ "classnames": "2.2.6",
18
16
  "@teambit/harmony": "0.4.6",
19
17
  "@teambit/explorer.ui.command-bar": "2.0.14",
20
18
  "@teambit/ui-foundation.ui.is-browser": "0.0.500",
@@ -22,26 +20,24 @@
22
20
  "@teambit/base-ui.text.muted-text": "1.0.1",
23
21
  "@teambit/design.ui.styles.ellipsis": "0.0.357",
24
22
  "@teambit/ui-foundation.ui.keycap": "0.0.500",
25
- "@teambit/preview": "1.0.107",
26
- "@teambit/pubsub": "1.0.107",
27
- "@teambit/react-router": "1.0.107",
28
- "@teambit/ui": "1.0.107"
23
+ "@teambit/pubsub": "1.0.108",
24
+ "@teambit/react-router": "1.0.108",
25
+ "@teambit/ui": "1.0.108"
29
26
  },
30
27
  "devDependencies": {
31
- "@types/react": "^17.0.8",
32
28
  "@types/lodash.flatten": "4.4.6",
33
29
  "@types/mousetrap": "1.6.5",
34
30
  "@types/classnames": "2.2.11",
35
31
  "@types/mocha": "9.1.0",
36
- "@types/node": "12.20.4",
37
- "@types/react-dom": "^17.0.5",
38
- "@types/jest": "^26.0.0",
39
- "@types/testing-library__jest-dom": "5.9.5"
32
+ "@types/jest": "^29.2.2",
33
+ "@types/testing-library__jest-dom": "^5.9.5",
34
+ "@teambit/harmony.envs.core-aspect-env": "0.0.13",
35
+ "@teambit/preview": "1.0.108"
40
36
  },
41
37
  "peerDependencies": {
42
- "@teambit/legacy": "1.0.624",
43
- "react": "^16.8.0 || ^17.0.0",
44
- "react-dom": "^16.8.0 || ^17.0.0"
38
+ "react": "^17.0.0 || ^18.0.0",
39
+ "@types/react": "^18.2.12",
40
+ "@teambit/legacy": "1.0.624"
45
41
  },
46
42
  "license": "Apache-2.0",
47
43
  "optionalDependencies": {},
@@ -55,7 +51,7 @@
55
51
  },
56
52
  "private": false,
57
53
  "engines": {
58
- "node": ">=12.22.0"
54
+ "node": ">=16.0.0"
59
55
  },
60
56
  "repository": {
61
57
  "type": "git",
@@ -64,12 +60,9 @@
64
60
  "keywords": [
65
61
  "bit",
66
62
  "bit-aspect",
63
+ "bit-core-aspect",
67
64
  "components",
68
65
  "collaboration",
69
- "web",
70
- "react",
71
- "react-components",
72
- "angular",
73
- "angular-components"
66
+ "web"
74
67
  ]
75
68
  }
package/tsconfig.json CHANGED
@@ -1,38 +1,33 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "lib": [
4
- "es2019",
5
- "DOM",
6
- "ES6",
7
- "DOM.Iterable",
8
- "ScriptHost"
4
+ "esnext",
5
+ "dom",
6
+ "dom.Iterable"
9
7
  ],
10
- "target": "es2015",
11
- "module": "CommonJS",
12
- "jsx": "react",
13
- "allowJs": true,
14
- "composite": true,
8
+ "target": "es2020",
9
+ "module": "es2020",
10
+ "jsx": "react-jsx",
15
11
  "declaration": true,
16
12
  "sourceMap": true,
17
- "skipLibCheck": true,
18
13
  "experimentalDecorators": true,
19
- "outDir": "dist",
14
+ "skipLibCheck": true,
20
15
  "moduleResolution": "node",
21
16
  "esModuleInterop": true,
22
- "rootDir": ".",
23
17
  "resolveJsonModule": true,
24
- "emitDeclarationOnly": true,
25
- "emitDecoratorMetadata": true,
26
- "allowSyntheticDefaultImports": true,
27
- "strictPropertyInitialization": false,
28
- "strict": true,
29
- "noImplicitAny": false,
30
- "preserveConstEnums": true
18
+ "allowJs": true,
19
+ "outDir": "dist",
20
+ "emitDeclarationOnly": true
31
21
  },
32
22
  "exclude": [
23
+ "artifacts",
24
+ "public",
33
25
  "dist",
26
+ "node_modules",
27
+ "package.json",
34
28
  "esm.mjs",
35
- "package.json"
29
+ "**/*.cjs",
30
+ "./dist"
36
31
  ],
37
32
  "include": [
38
33
  "**/*",
package/types/asset.d.ts CHANGED
@@ -5,12 +5,12 @@ declare module '*.png' {
5
5
  declare module '*.svg' {
6
6
  import type { FunctionComponent, SVGProps } from 'react';
7
7
 
8
- export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
8
+ export const ReactComponent: FunctionComponent<
9
+ SVGProps<SVGSVGElement> & { title?: string }
10
+ >;
9
11
  const src: string;
10
12
  export default src;
11
13
  }
12
-
13
- // @TODO Gilad
14
14
  declare module '*.jpg' {
15
15
  const value: any;
16
16
  export = value;
@@ -27,3 +27,15 @@ declare module '*.bmp' {
27
27
  const value: any;
28
28
  export = value;
29
29
  }
30
+ declare module '*.otf' {
31
+ const value: any;
32
+ export = value;
33
+ }
34
+ declare module '*.woff' {
35
+ const value: any;
36
+ export = value;
37
+ }
38
+ declare module '*.woff2' {
39
+ const value: any;
40
+ export = value;
41
+ }