UNPKG

@cloudquery/cloud-ui

Version:

Plugin configuration UI connector for CloudQuery Cloud App

179 lines (122 loc) 4.06 kB
# @cloudquery/cloud-ui Cloud UI for CloudQuery Cloud App. ## Description `@cloudquery/cloud-ui` is a library that provides various UI components and utilities that are used in CloudQuery Cloud App. ## Installation To install the library, you can use npm: ```bash npm install @cloudquery/cloud-ui ``` ## Documentation ### Components #### TableSelector This component is used to select one or multiple tables from a list of plugin tables. ```tsx import { TableSelector } from '@cloudquery/cloud-ui'; const tableList = []; // List of plugin tables const [value, setValue] = React.useState({}); const callbacks = React.useRef([]); const subscribeToTablesValueChange = React.useCallback((callback) => { callbacks.current.push(callback); return () => { callbacks.current = callbacks.current.filter((cb) => cb !== callback); }; }, []); const handleChange = React.useCallback((value) => { setValue(value); callbacks.forEach((callback) => callback(value)); }, []); const App = () => ( <TableSelector subscribeToTablesValueChange={subscribeToTablesValueChange} value={value} onChange={handleChange} tableList={tableList} /> ); ``` #### FormFieldGroup This component is used to visually wrap one or more form fields. ```tsx import { FormFieldGroup } from '@cloudquery/cloud-ui'; import TextField from '@mui/material/TextField'; const App = () => { return ( <FormFieldGroup> <TextField /> </FormFieldGroup> ) } ``` ### Theme #### createThemeOptions The `createThemeOptions` function is a function that returns the theme options for the theme that can be passed to the `createTheme` Material-UI function. ```ts export function createThemeOptions(): ThemeOptions ``` Example: ```tsx import { createThemeOptions } from '@cloudquery/cloud-ui'; import createMuiTheme from '@mui/material/styles/createTheme'; const themeOptions = createThemeOptions(); const theme = createMuiTheme(themeOptions); const App = () => { return ( <ThemeProvider theme={theme}> {/* your app code */} </ThemeProvider> ) } ``` #### Breakpoints The `breakpoints` object is an object that contains the breakpoint values for the theme. ```ts export const breakpoints: Record<keyof BreakpointOverrides, number> ``` #### Colors The `colors` object is an object that contains the color options for the theme. ```ts export const colors: { neutral: PaletteColor primary: PaletteColor secondary: PaletteColor error: PaletteColor warning: PaletteColor info: PaletteColor success: PaletteColor } ``` #### createThemePaletteOptions The `createThemePaletteOptions` function is a function that returns the palette options for the theme. ```ts export function createThemePaletteOptions(): PaletteOptions ``` #### createThemeTypographyOptions The `createThemeTypographyOptions` function is a function that returns the typography options for the theme. ```ts export function createThemeTypographyOptions(): TypographyOptions ``` #### createThemeShadows The `createThemeShadows` function is a function that returns the shadow options for the theme. ```ts export function createThemeShadows(): Shadows ``` #### createThemeComponents The `createThemeComponents` function is a function that returns the component options for the theme. It requires `paletteOptions` and `typographyOptions` as parameters that should satisfy the return type of `createThemePaletteOptions` and `createThemeTypographyOptions` respectively. ```ts export function createThemeComponents({ paletteOptions, typographyOptions }: { paletteOptions: ReturnType<typeof createThemePaletteOptions>; typographyOptions: TypographyOptions; }): Components ``` ## Development ### Building the Library To build the library, run: ```bash npm run build ``` ## Contributing If you encounter any issues or have feature requests, please feel free to open an issue on the [GitHub repository](https://github.com/cloudquery/cloud-ui/issues). ## License This project is licensed under the [Mozilla Public License.](LICENSE).