diff --git a/src/index.js b/src/index.js index 2d4f79e20..8e5c056a4 100644 --- a/src/index.js +++ b/src/index.js @@ -46,3 +46,140 @@ export {default as AndroidDevice} from './devices/AndroidDevice.tsx'; export {default as ArchivedDevice} from './devices/ArchivedDevice.tsx'; export {default as IOSDevice} from './devices/IOSDevice.tsx'; export type {OS} from './devices/BaseDevice.tsx'; + +export {default as Button} from './ui/components/Button.tsx'; +export {default as ToggleButton} from './ui/components/ToggleSwitch.tsx'; +export { + default as ButtonNavigationGroup, +} from './ui/components/ButtonNavigationGroup.tsx'; +export {default as ButtonGroup} from './ui/components/ButtonGroup.tsx'; +export { + default as ButtonGroupChain, +} from './ui/components/ButtonGroupChain.tsx'; +export {colors, darkColors, brandColors} from './ui/components/colors.tsx'; +export {default as Glyph} from './ui/components/Glyph.tsx'; +export { + default as LoadingIndicator, +} from './ui/components/LoadingIndicator.tsx'; +export {default as Popover} from './ui/components/Popover.tsx'; +export { + TableColumns, + TableRows, + TableRows_immutable, + TableBodyColumn, + TableBodyRow, + TableHighlightedRows, + TableRowSortOrder, + TableColumnOrder, + TableColumnOrderVal, + TableColumnSizes, +} from './ui/components/table/types.js'; +export {default as ManagedTable} from './ui/components/table/ManagedTable.js'; +export {ManagedTableProps} from './ui/components/table/ManagedTable.js'; +export { + default as ManagedTable_immutable, +} from './ui/components/table/ManagedTable_immutable.js'; +export { + ManagedTableProps_immutable, +} from './ui/components/table/ManagedTable_immutable.js'; +export {Value} from './ui/components/table/TypeBasedValueRenderer.js'; +export {renderValue} from './ui/components/table/TypeBasedValueRenderer.js'; +export { + DataValueExtractor, + DataInspectorExpanded, +} from './ui/components/data-inspector/DataInspector.js'; +export { + default as DataInspector, +} from './ui/components/data-inspector/DataInspector.js'; +export { + default as ManagedDataInspector, +} from './ui/components/data-inspector/ManagedDataInspector.js'; +export { + default as DataDescription, +} from './ui/components/data-inspector/DataDescription.js'; +export {default as Tabs} from './ui/components/Tabs.tsx'; +export {default as Tab} from './ui/components/Tab.tsx'; +export {default as Input} from './ui/components/Input.tsx'; +export {default as Textarea} from './ui/components/Textarea.tsx'; +export {default as Select} from './ui/components/Select.tsx'; +export {default as Checkbox} from './ui/components/Checkbox.tsx'; +export {default as CodeBlock} from './ui/components/CodeBlock.tsx'; +export {default as ErrorBlock} from './ui/components/ErrorBlock.tsx'; +export {ErrorBlockContainer} from './ui/components/ErrorBlock.tsx'; +export {default as ErrorBoundary} from './ui/components/ErrorBoundary.tsx'; +export {OrderableOrder} from './ui/components/Orderable.tsx'; +export {default as Interactive} from './ui/components/Interactive.tsx'; +export {default as Orderable} from './ui/components/Orderable.tsx'; +export {default as VirtualList} from './ui/components/VirtualList.tsx'; +export {Component, PureComponent} from 'react'; +export { + default as ContextMenuProvider, +} from './ui/components/ContextMenuProvider.tsx'; +export {default as ContextMenu} from './ui/components/ContextMenu.tsx'; +export {FileListFile, FileListFiles} from './ui/components/FileList.tsx'; +export {default as FileList} from './ui/components/FileList.tsx'; +export {default as File} from './ui/components/File.tsx'; +export { + DesktopDropdownItem, + DesktopDropdownSelectedItem, + DesktopDropdown, +} from './ui/components/desktop-toolbar.tsx'; +export {default as View} from './ui/components/View.tsx'; +export {default as ViewWithSize} from './ui/components/ViewWithSize.tsx'; +export {default as Block} from './ui/components/Block.tsx'; +export {default as FocusableBox} from './ui/components/FocusableBox.tsx'; +export {default as Sidebar} from './ui/components/Sidebar.tsx'; +export {default as SidebarLabel} from './ui/components/SidebarLabel.tsx'; +export {default as Box} from './ui/components/Box.tsx'; +export {default as FlexBox} from './ui/components/FlexBox.tsx'; +export {default as FlexRow} from './ui/components/FlexRow.tsx'; +export {default as FlexColumn} from './ui/components/FlexColumn.tsx'; +export {default as FlexCenter} from './ui/components/FlexCenter.tsx'; +export {default as Toolbar, Spacer} from './ui/components/Toolbar.tsx'; +export {default as Panel} from './ui/components/Panel.tsx'; +export {default as Text} from './ui/components/Text.tsx'; +export {default as TextParagraph} from './ui/components/TextParagraph.tsx'; +export {default as Link} from './ui/components/Link.tsx'; +export {default as PathBreadcrumbs} from './ui/components/PathBreadcrumbs.tsx'; +export {default as ModalOverlay} from './ui/components/ModalOverlay.tsx'; +export {default as Tooltip} from './ui/components/Tooltip.tsx'; +export {default as TooltipProvider} from './ui/components/TooltipProvider.tsx'; +export {default as ResizeSensor} from './ui/components/ResizeSensor.tsx'; +export {default as StatusIndicator} from './ui/components/StatusIndicator.tsx'; +export {default as HorizontalRule} from './ui/components/HorizontalRule.tsx'; +export {default as VerticalRule} from './ui/components/VerticalRule.tsx'; +export {default as Label} from './ui/components/Label.tsx'; +export {default as Heading} from './ui/components/Heading.tsx'; +export {Filter} from './ui/components/filter/types.tsx'; +export {default as MarkerTimeline} from './ui/components/MarkerTimeline.tsx'; +export {default as StackTrace} from './ui/components/StackTrace.tsx'; +export { + SearchBox, + SearchInput, + SearchIcon, + default as Searchable, +} from './ui/components/searchable/Searchable.js'; +export { + default as SearchableTable, +} from './ui/components/searchable/SearchableTable.js'; +export { + default as SearchableTable_immutable, +} from './ui/components/searchable/SearchableTable_immutable.js'; +export {SearchableProps} from './ui/components/searchable/Searchable.js'; +export { + ElementID, + ElementData, + ElementAttribute, + Element, + ElementSearchResultSet, +} from './ui/components/elements-inspector/ElementsInspector.js'; +export {Elements} from './ui/components/elements-inspector/elements.js'; +export { + ContextMenuExtension, +} from './ui/components/elements-inspector/elements.js'; +export { + default as ElementsInspector, +} from './ui/components/elements-inspector/ElementsInspector.js'; +export {InspectorSidebar} from './ui/components/elements-inspector/sidebar.js'; +export {Console} from './ui/components/console.tsx'; +export {default as Sheet} from './ui/components/Sheet.tsx'; diff --git a/src/ui/components/ContextMenu.tsx b/src/ui/components/ContextMenu.tsx index 466a5cc17..1d4c6faf5 100644 --- a/src/ui/components/ContextMenu.tsx +++ b/src/ui/components/ContextMenu.tsx @@ -21,6 +21,7 @@ type Props = { children: React.ReactNode; /** The component that is used to wrap the children. Defaults to `FlexColumn`. */ component: React.ComponentType | string; + onMouseDown: (e: React.MouseEvent) => any; }; /** diff --git a/src/ui/components/filter/FilterRow.js b/src/ui/components/filter/FilterRow.tsx similarity index 79% rename from src/ui/components/filter/FilterRow.js rename to src/ui/components/filter/FilterRow.tsx index 08abe231a..05d6a31ff 100644 --- a/src/ui/components/filter/FilterRow.js +++ b/src/ui/components/filter/FilterRow.tsx @@ -5,12 +5,12 @@ * @format */ -import type {Filter} from './types.js'; -import {PureComponent} from 'react'; -import ContextMenu from '../ContextMenu.tsx'; -import textContent from '../../../utils/textContent.tsx'; -import styled from '../../styled/index.js'; -import {colors} from '../colors.tsx'; +import {Filter} from './types.js'; +import React, {PureComponent} from 'react'; +import ContextMenu from '../ContextMenu'; +import textContent from '../../../utils/textContent'; +import styled from 'react-emotion'; +import {colors} from '../colors'; const FilterText = styled('div')({ display: 'flex', @@ -40,13 +40,13 @@ const FilterText = styled('div')({ }); type Props = { - children: React.Node, - addFilter: (filter: Filter) => void, - filterKey: string, + children: React.ReactNode; + addFilter: (filter: Filter) => void; + filterKey: string; }; export default class FilterRow extends PureComponent { - onClick = (e: SyntheticMouseEvent<>) => { + onClick = (e: React.MouseEvent) => { if (e.button === 0) { this.props.addFilter({ type: e.metaKey || e.altKey ? 'exclude' : 'include', diff --git a/src/ui/components/filter/types.js b/src/ui/components/filter/types.js deleted file mode 100644 index 4ba2b0d4a..000000000 --- a/src/ui/components/filter/types.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2018-present Facebook. - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * @format - */ - -export type Filter = - | { - key: string, - value: string, - type: 'include' | 'exclude', - } - | { - key: string, - value: Array, - type: 'enum', - enum: Array<{ - label: string, - color?: string, - value: string, - }>, - persistent?: boolean, - }; diff --git a/src/ui/components/filter/types.tsx b/src/ui/components/filter/types.tsx new file mode 100644 index 000000000..4faa27c04 --- /dev/null +++ b/src/ui/components/filter/types.tsx @@ -0,0 +1,24 @@ +/** + * Copyright 2018-present Facebook. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * @format + */ + +export type Filter = + | { + key: string; + value: string; + type: 'include' | 'exclude'; + } + | { + key: string; + value: Array; + type: 'enum'; + enum: Array<{ + label: string; + color?: string; + value: string; + }>; + persistent?: boolean; + }; diff --git a/src/ui/components/table/TableRow.js b/src/ui/components/table/TableRow.js index 72947ecbb..52b376d0e 100644 --- a/src/ui/components/table/TableRow.js +++ b/src/ui/components/table/TableRow.js @@ -13,7 +13,7 @@ import type { } from './types.js'; import React from 'react'; -import FilterRow from '../filter/FilterRow.js'; +import FilterRow from '../filter/FilterRow.tsx'; import styled from '../../styled/index.js'; import FlexRow from '../FlexRow.tsx'; import {colors} from '../colors.tsx'; diff --git a/src/ui/components/table/types.js b/src/ui/components/table/types.js index fd9bbe858..fd4dc2deb 100644 --- a/src/ui/components/table/types.js +++ b/src/ui/components/table/types.js @@ -5,7 +5,7 @@ * @format */ -import type {Filter} from '../filter/types.js'; +import type {Filter} from '../filter/types.tsx'; import {List} from 'immutable'; diff --git a/src/ui/index.js b/src/ui/index.js index 5680ec406..94a395617 100644 --- a/src/ui/index.js +++ b/src/ui/index.js @@ -142,7 +142,7 @@ export {default as Label} from './components/Label.tsx'; export {default as Heading} from './components/Heading.tsx'; // filters -export type {Filter} from './components/filter/types.js'; +export type {Filter} from './components/filter/types.tsx'; export {default as MarkerTimeline} from './components/MarkerTimeline.tsx';