startupjs-ui 0.1.1 → 0.1.3
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.
- package/README.mdx +62 -0
- package/UiProvider.tsx +50 -0
- package/exports/AbstractPopover.tsx +1 -0
- package/exports/Alert.tsx +1 -0
- package/exports/ArrayInput.tsx +1 -0
- package/exports/AutoSuggest.tsx +1 -0
- package/exports/Avatar.tsx +1 -0
- package/exports/Badge.tsx +1 -0
- package/exports/Br.tsx +1 -0
- package/exports/Breadcrumbs.tsx +1 -0
- package/exports/Button.tsx +1 -0
- package/exports/Card.tsx +1 -0
- package/exports/Carousel.tsx +1 -0
- package/exports/Checkbox.tsx +1 -0
- package/exports/Collapse.tsx +1 -0
- package/exports/ColorPicker.tsx +1 -0
- package/exports/Colors.tsx +1 -0
- package/exports/Content.tsx +1 -0
- package/exports/CssVariables.tsx +1 -0
- package/exports/DateTimePicker.tsx +1 -0
- package/exports/DialogsProvider.tsx +1 -0
- package/exports/Div.tsx +1 -0
- package/exports/Divider.tsx +1 -0
- package/exports/DragDropProvider.tsx +1 -0
- package/exports/Draggable.tsx +1 -0
- package/exports/Drawer.tsx +1 -0
- package/exports/DrawerSidebar.tsx +1 -0
- package/exports/Dropdown.tsx +1 -0
- package/exports/Droppable.tsx +1 -0
- package/exports/FileInput.tsx +1 -0
- package/exports/FlatList.tsx +1 -0
- package/exports/Form.tsx +1 -0
- package/exports/Icon.tsx +1 -0
- package/exports/Input.tsx +1 -0
- package/exports/Item.tsx +1 -0
- package/exports/Layout.tsx +1 -0
- package/exports/Link.tsx +1 -0
- package/exports/Loader.tsx +1 -0
- package/exports/Menu.tsx +1 -0
- package/exports/Modal.tsx +1 -0
- package/exports/MultiSelect.tsx +1 -0
- package/exports/NumberInput.tsx +1 -0
- package/exports/ObjectInput.tsx +1 -0
- package/exports/Pagination.tsx +1 -0
- package/exports/PasswordInput.tsx +1 -0
- package/exports/Popover.tsx +1 -0
- package/exports/Portal.tsx +1 -0
- package/exports/Progress.tsx +1 -0
- package/exports/Radio.tsx +1 -0
- package/exports/RangeInput.tsx +1 -0
- package/exports/Rank.tsx +1 -0
- package/exports/Rating.tsx +1 -0
- package/exports/ScrollView.tsx +1 -0
- package/exports/Select.tsx +1 -0
- package/exports/Sidebar.tsx +1 -0
- package/exports/SmartSidebar.tsx +1 -0
- package/exports/Span.tsx +1 -0
- package/exports/Table.tsx +1 -0
- package/exports/Tabs.tsx +1 -0
- package/exports/Tag.tsx +1 -0
- package/exports/Tbody.tsx +1 -0
- package/exports/Td.tsx +1 -0
- package/exports/TextInput.tsx +1 -0
- package/exports/Th.tsx +1 -0
- package/exports/Thead.tsx +1 -0
- package/exports/ThemeContext.tsx +1 -0
- package/exports/ThemeProvider.tsx +1 -0
- package/exports/Toast.tsx +1 -0
- package/exports/ToastProvider.tsx +1 -0
- package/exports/Tr.tsx +1 -0
- package/exports/UiProvider.tsx +1 -0
- package/exports/User.tsx +1 -0
- package/exports/_DEPRECATED_H1.tsx +3 -0
- package/exports/_DEPRECATED_H2.tsx +3 -0
- package/exports/_DEPRECATED_H3.tsx +3 -0
- package/exports/_DEPRECATED_H4.tsx +3 -0
- package/exports/_DEPRECATED_H5.tsx +3 -0
- package/exports/_DEPRECATED_H6.tsx +3 -0
- package/exports/_DEPRECATED_Multiselect.tsx +3 -0
- package/exports/_DEPRECATED_Row.tsx +3 -0
- package/exports/_DEPRECATED_Tooltip.tsx +3 -0
- package/exports/_alert.tsx +1 -0
- package/exports/_toast.tsx +1 -0
- package/exports/confirm.tsx +1 -0
- package/exports/deleteFile.tsx +1 -0
- package/exports/generateColors.tsx +1 -0
- package/exports/getCssVariable.tsx +1 -0
- package/exports/guessInput.tsx +1 -0
- package/exports/palette.tsx +1 -0
- package/exports/prompt.tsx +1 -0
- package/exports/themed.tsx +1 -0
- package/exports/uploadFile.tsx +1 -0
- package/exports/useColors.tsx +1 -0
- package/exports/useFormFields$.tsx +1 -0
- package/exports/useFormFields.tsx +1 -0
- package/exports/useFormProps.tsx +1 -0
- package/exports/useMedia.tsx +1 -0
- package/exports/useValidate.tsx +1 -0
- package/exports/wrapInput.tsx +1 -0
- package/index.tsx +114 -0
- package/package.json +169 -2
- package/plugin.js +44 -0
- package/CHANGELOG.md +0 -9
package/README.mdx
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# startupjs-ui
|
|
2
|
+
|
|
3
|
+
startupjs-ui is the modular UI component library for StartupJS. You can import any component directly from `startupjs-ui` or from the individual subpaths `startupjs-ui/*`.
|
|
4
|
+
|
|
5
|
+
```js
|
|
6
|
+
import { Button, Form } from 'startupjs-ui'
|
|
7
|
+
// or
|
|
8
|
+
import Button from 'startupjs-ui/Button'
|
|
9
|
+
import Form from 'startupjs-ui/Form'
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## UiProvider
|
|
13
|
+
|
|
14
|
+
UiProvider wires up theming and shared UI infrastructure (CSS variables, portal, toasts, dialogs). It is plugged in automatically as a plugin into `StartupjsProvider`, so the only thing you need at the root of your app is:
|
|
15
|
+
|
|
16
|
+
```jsx
|
|
17
|
+
import { StartupjsProvider } from 'startupjs'
|
|
18
|
+
import { Stack } from 'expo-router'
|
|
19
|
+
|
|
20
|
+
export default function RootLayout () {
|
|
21
|
+
return (
|
|
22
|
+
<StartupjsProvider>
|
|
23
|
+
<Stack />
|
|
24
|
+
</StartupjsProvider>
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
You can pass UiProvider options via `StartupjsProvider` props:
|
|
30
|
+
|
|
31
|
+
```jsx
|
|
32
|
+
import styleOverrides from './style.cssx.styl'
|
|
33
|
+
|
|
34
|
+
<StartupjsProvider
|
|
35
|
+
style={styleOverrides}
|
|
36
|
+
palette={palette}
|
|
37
|
+
colors={colors}
|
|
38
|
+
componentColors={componentColors}
|
|
39
|
+
>
|
|
40
|
+
<Stack />
|
|
41
|
+
</StartupjsProvider>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```styl
|
|
45
|
+
// style.cssx.styl
|
|
46
|
+
|
|
47
|
+
:root
|
|
48
|
+
--color-primary #0000ff
|
|
49
|
+
--color-error #ff0000
|
|
50
|
+
|
|
51
|
+
.Button
|
|
52
|
+
border-radius 12px
|
|
53
|
+
&:part(hover)
|
|
54
|
+
background-color #0000cc
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Options
|
|
58
|
+
|
|
59
|
+
- `style`: CSSX style overrides for UI components. You can also override static CSS variables by specifying them inside the `:root` section of `style`.
|
|
60
|
+
- `palette`: theme palette overrides.
|
|
61
|
+
- `colors`: theme color overrides.
|
|
62
|
+
- `componentColors`: component-level color overrides.
|
package/UiProvider.tsx
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type ReactNode } from 'react'
|
|
2
|
+
import { pug, observer } from 'startupjs'
|
|
3
|
+
import { CssVariables, useCssVariablesMeta, StyleContext } from '@startupjs-ui/core'
|
|
4
|
+
import Portal from '@startupjs-ui/portal'
|
|
5
|
+
import { ToastProvider } from '@startupjs-ui/toast'
|
|
6
|
+
import DialogsProvider from '@startupjs-ui/dialogs/DialogsProvider'
|
|
7
|
+
|
|
8
|
+
export const _PropsJsonSchema = {/* UiProviderProps */}
|
|
9
|
+
|
|
10
|
+
export interface UiProviderProps {
|
|
11
|
+
/** App content rendered inside the provider */
|
|
12
|
+
children?: ReactNode
|
|
13
|
+
/** CSSX style overrides (use ':root' for static overrides) */
|
|
14
|
+
style?: Record<string, any>
|
|
15
|
+
/** Theme palette overrides */
|
|
16
|
+
palette?: Record<string, any>
|
|
17
|
+
/** Color overrides */
|
|
18
|
+
colors?: Record<string, any>
|
|
19
|
+
/** Component color overrides */
|
|
20
|
+
componentColors?: Record<string, any>
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function UiProvider ({
|
|
24
|
+
children,
|
|
25
|
+
style,
|
|
26
|
+
palette,
|
|
27
|
+
colors,
|
|
28
|
+
componentColors
|
|
29
|
+
}: UiProviderProps): ReactNode {
|
|
30
|
+
const staticOverrides = style?.[':root']
|
|
31
|
+
const cssVariablesMeta = useCssVariablesMeta({
|
|
32
|
+
staticOverrides,
|
|
33
|
+
palette,
|
|
34
|
+
colors,
|
|
35
|
+
componentColors
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
return pug`
|
|
39
|
+
if cssVariablesMeta
|
|
40
|
+
CssVariables(meta=cssVariablesMeta)
|
|
41
|
+
|
|
42
|
+
StyleContext.Provider(value=style)
|
|
43
|
+
Portal.Provider
|
|
44
|
+
ToastProvider
|
|
45
|
+
= children
|
|
46
|
+
DialogsProvider
|
|
47
|
+
`
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default observer(UiProvider)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/abstract-popover'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/alert'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/array-input'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/auto-suggest'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/avatar'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/badge'
|
package/exports/Br.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/br'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/breadcrumbs'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/button'
|
package/exports/Card.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/card'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/carousel'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/checkbox'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/collapse'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/color-picker'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Colors as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/content'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CssVariables as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/date-time-picker'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { DialogsProvider as default } from '@startupjs-ui/dialogs'
|
package/exports/Div.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/div'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/divider'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { DragDropProvider as default } from '@startupjs-ui/draggable'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Draggable as default } from '@startupjs-ui/draggable'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/drawer'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/drawer-sidebar'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/dropdown'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Droppable as default } from '@startupjs-ui/draggable'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/file-input'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/flat-list'
|
package/exports/Form.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/form'
|
package/exports/Icon.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/icon'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/input'
|
package/exports/Item.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/item'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/layout'
|
package/exports/Link.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/link'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/loader'
|
package/exports/Menu.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/menu'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/modal'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/multi-select'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/number-input'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/object-input'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/pagination'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/password-input'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/popover'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/portal'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/progress'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/radio'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/range-input'
|
package/exports/Rank.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/rank'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/rating'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/scroll-view'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/select'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/sidebar'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/smart-sidebar'
|
package/exports/Span.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/span'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Table as default } from '@startupjs-ui/table'
|
package/exports/Tabs.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/tabs'
|
package/exports/Tag.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/tag'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Tbody as default } from '@startupjs-ui/table'
|
package/exports/Td.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Td as default } from '@startupjs-ui/table'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/text-input'
|
package/exports/Th.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Th as default } from '@startupjs-ui/table'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Thead as default } from '@startupjs-ui/table'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ThemeContext as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ThemeProvider as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Toast as default } from '@startupjs-ui/toast'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ToastProvider as default } from '@startupjs-ui/toast'
|
package/exports/Tr.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Tr as default } from '@startupjs-ui/table'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../UiProvider'
|
package/exports/User.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/user'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { alert as default } from '@startupjs-ui/dialogs'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { toast as default } from '@startupjs-ui/toast'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { confirm as default } from '@startupjs-ui/dialogs'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/file-input/deleteFile'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { generateColors as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getCssVariable as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { guessInput as default } from '@startupjs-ui/input'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Palette as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { prompt as default } from '@startupjs-ui/dialogs'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { themed as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@startupjs-ui/file-input/uploadFile'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useColors as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useFormFields$ as default } from '@startupjs-ui/form'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useFormFields as default } from '@startupjs-ui/form'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useFormProps as default } from '@startupjs-ui/form'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useMedia as default } from '@startupjs-ui/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useValidate as default } from '@startupjs-ui/form'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { wrapInput as default } from '@startupjs-ui/input'
|
package/index.tsx
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// IMPORTANT: This file exports should match package.json/exports
|
|
2
|
+
// which are used by 'babel-plugin-startupjs' to generate
|
|
3
|
+
// precise components' import paths for tree-shaking
|
|
4
|
+
//
|
|
5
|
+
export { default as Alert } from '@startupjs-ui/alert'
|
|
6
|
+
export { default as AutoSuggest } from '@startupjs-ui/auto-suggest'
|
|
7
|
+
export { default as Avatar } from '@startupjs-ui/avatar'
|
|
8
|
+
export { default as Badge } from '@startupjs-ui/badge'
|
|
9
|
+
export { default as Br } from '@startupjs-ui/br'
|
|
10
|
+
export { default as Breadcrumbs } from '@startupjs-ui/breadcrumbs'
|
|
11
|
+
export { default as Button } from '@startupjs-ui/button'
|
|
12
|
+
export { default as Card } from '@startupjs-ui/card'
|
|
13
|
+
export { default as Carousel } from '@startupjs-ui/carousel'
|
|
14
|
+
export { default as Collapse } from '@startupjs-ui/collapse'
|
|
15
|
+
export { default as Content } from '@startupjs-ui/content'
|
|
16
|
+
|
|
17
|
+
// dialogs
|
|
18
|
+
export { DialogsProvider, alert, confirm, prompt } from '@startupjs-ui/dialogs'
|
|
19
|
+
|
|
20
|
+
export { default as Div } from '@startupjs-ui/div'
|
|
21
|
+
export { default as Divider } from '@startupjs-ui/divider'
|
|
22
|
+
|
|
23
|
+
// draggable
|
|
24
|
+
export { DragDropProvider, Draggable, Droppable } from '@startupjs-ui/draggable'
|
|
25
|
+
|
|
26
|
+
export { default as DrawerSidebar } from '@startupjs-ui/drawer-sidebar'
|
|
27
|
+
export { default as FlatList } from '@startupjs-ui/flat-list'
|
|
28
|
+
|
|
29
|
+
// inputs
|
|
30
|
+
export { wrapInput, guessInput } from '@startupjs-ui/input'
|
|
31
|
+
export { default as Form, useFormProps } from '@startupjs-ui/form'
|
|
32
|
+
export { default as Input } from '@startupjs-ui/input'
|
|
33
|
+
export { default as ArrayInput } from '@startupjs-ui/array-input'
|
|
34
|
+
export { default as Checkbox } from '@startupjs-ui/checkbox'
|
|
35
|
+
export { default as ColorPicker } from '@startupjs-ui/color-picker'
|
|
36
|
+
export { default as DateTimePicker } from '@startupjs-ui/date-time-picker'
|
|
37
|
+
export { default as MultiSelect } from '@startupjs-ui/multi-select'
|
|
38
|
+
export { default as Multiselect } from './exports/_DEPRECATED_Multiselect'
|
|
39
|
+
export { default as NumberInput } from '@startupjs-ui/number-input'
|
|
40
|
+
export { default as ObjectInput } from '@startupjs-ui/object-input'
|
|
41
|
+
export { default as PasswordInput } from '@startupjs-ui/password-input'
|
|
42
|
+
export { default as Radio } from '@startupjs-ui/radio'
|
|
43
|
+
export { default as RangeInput } from '@startupjs-ui/range-input'
|
|
44
|
+
export { default as Rank } from '@startupjs-ui/rank'
|
|
45
|
+
export { default as Select } from '@startupjs-ui/select'
|
|
46
|
+
export { default as TextInput } from '@startupjs-ui/text-input'
|
|
47
|
+
export { default as FileInput } from '@startupjs-ui/file-input'
|
|
48
|
+
export { default as deleteFile } from '@startupjs-ui/file-input/deleteFile'
|
|
49
|
+
export { default as uploadFile } from '@startupjs-ui/file-input/uploadFile'
|
|
50
|
+
|
|
51
|
+
export { default as Icon } from '@startupjs-ui/icon'
|
|
52
|
+
export { default as Item } from '@startupjs-ui/item'
|
|
53
|
+
export { default as Layout } from '@startupjs-ui/layout'
|
|
54
|
+
export { default as Link } from '@startupjs-ui/link'
|
|
55
|
+
export { default as Loader } from '@startupjs-ui/loader'
|
|
56
|
+
export { default as Menu } from '@startupjs-ui/menu'
|
|
57
|
+
export { default as Modal } from '@startupjs-ui/modal'
|
|
58
|
+
export { default as Pagination } from '@startupjs-ui/pagination'
|
|
59
|
+
|
|
60
|
+
// popups
|
|
61
|
+
export { default as AbstractPopover } from '@startupjs-ui/abstract-popover'
|
|
62
|
+
export { default as Drawer } from '@startupjs-ui/drawer'
|
|
63
|
+
export { default as Popover } from '@startupjs-ui/popover'
|
|
64
|
+
export { default as Dropdown } from '@startupjs-ui/dropdown'
|
|
65
|
+
|
|
66
|
+
export { default as Portal } from '@startupjs-ui/portal'
|
|
67
|
+
export { default as Progress } from '@startupjs-ui/progress'
|
|
68
|
+
export { default as Rating } from '@startupjs-ui/rating'
|
|
69
|
+
export { default as Row } from './exports/_DEPRECATED_Row'
|
|
70
|
+
export { default as ScrollView } from '@startupjs-ui/scroll-view'
|
|
71
|
+
export { default as Sidebar } from '@startupjs-ui/sidebar'
|
|
72
|
+
export { default as SmartSidebar } from '@startupjs-ui/smart-sidebar'
|
|
73
|
+
|
|
74
|
+
// table
|
|
75
|
+
export { Table, Tbody, Td, Th, Thead, Tr } from '@startupjs-ui/table'
|
|
76
|
+
|
|
77
|
+
export { default as Tabs } from '@startupjs-ui/tabs'
|
|
78
|
+
export { default as Tag } from '@startupjs-ui/tag'
|
|
79
|
+
|
|
80
|
+
// toast
|
|
81
|
+
export { ToastProvider, Toast, toast } from '@startupjs-ui/toast'
|
|
82
|
+
|
|
83
|
+
export { default as Tooltip } from './exports/_DEPRECATED_Tooltip'
|
|
84
|
+
|
|
85
|
+
// typography
|
|
86
|
+
export { default as Span } from '@startupjs-ui/span'
|
|
87
|
+
export { default as H1 } from './exports/_DEPRECATED_H1'
|
|
88
|
+
export { default as H2 } from './exports/_DEPRECATED_H2'
|
|
89
|
+
export { default as H3 } from './exports/_DEPRECATED_H3'
|
|
90
|
+
export { default as H4 } from './exports/_DEPRECATED_H4'
|
|
91
|
+
export { default as H5 } from './exports/_DEPRECATED_H5'
|
|
92
|
+
export { default as H6 } from './exports/_DEPRECATED_H6'
|
|
93
|
+
|
|
94
|
+
export { default as User } from '@startupjs-ui/user'
|
|
95
|
+
|
|
96
|
+
// theming
|
|
97
|
+
export {
|
|
98
|
+
CssVariables,
|
|
99
|
+
palette,
|
|
100
|
+
generateColors,
|
|
101
|
+
getCssVariable,
|
|
102
|
+
Palette,
|
|
103
|
+
Colors,
|
|
104
|
+
themed,
|
|
105
|
+
ThemeProvider,
|
|
106
|
+
ThemeContext
|
|
107
|
+
} from '@startupjs-ui/core'
|
|
108
|
+
|
|
109
|
+
// hooks
|
|
110
|
+
export { useMedia, useColors } from '@startupjs-ui/core'
|
|
111
|
+
export { useFormFields, useFormFields$, useValidate } from '@startupjs-ui/form'
|
|
112
|
+
|
|
113
|
+
// UiProvider
|
|
114
|
+
export { default as UiProvider } from './UiProvider'
|
package/package.json
CHANGED
|
@@ -1,11 +1,178 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "startupjs-ui",
|
|
3
3
|
"description": "Universal React-Native and Web UI components",
|
|
4
|
+
"version": "0.1.3",
|
|
4
5
|
"publishConfig": {
|
|
5
6
|
"access": "public"
|
|
6
7
|
},
|
|
7
|
-
"version": "0.1.1",
|
|
8
8
|
"type": "module",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": "./index.tsx",
|
|
11
|
+
"./plugin": "./plugin.js",
|
|
12
|
+
"./Alert": "./exports/Alert.tsx",
|
|
13
|
+
"./AutoSuggest": "./exports/AutoSuggest.tsx",
|
|
14
|
+
"./Avatar": "./exports/Avatar.tsx",
|
|
15
|
+
"./Badge": "./exports/Badge.tsx",
|
|
16
|
+
"./Br": "./exports/Br.tsx",
|
|
17
|
+
"./Breadcrumbs": "./exports/Breadcrumbs.tsx",
|
|
18
|
+
"./Button": "./exports/Button.tsx",
|
|
19
|
+
"./Card": "./exports/Card.tsx",
|
|
20
|
+
"./Carousel": "./exports/Carousel.tsx",
|
|
21
|
+
"./Collapse": "./exports/Collapse.tsx",
|
|
22
|
+
"./Content": "./exports/Content.tsx",
|
|
23
|
+
"./DialogsProvider": "./exports/DialogsProvider.tsx",
|
|
24
|
+
"./alert": "./exports/_alert.tsx",
|
|
25
|
+
"./confirm": "./exports/confirm.tsx",
|
|
26
|
+
"./prompt": "./exports/prompt.tsx",
|
|
27
|
+
"./Div": "./exports/Div.tsx",
|
|
28
|
+
"./Divider": "./exports/Divider.tsx",
|
|
29
|
+
"./DragDropProvider": "./exports/DragDropProvider.tsx",
|
|
30
|
+
"./Draggable": "./exports/Draggable.tsx",
|
|
31
|
+
"./Droppable": "./exports/Droppable.tsx",
|
|
32
|
+
"./DrawerSidebar": "./exports/DrawerSidebar.tsx",
|
|
33
|
+
"./FlatList": "./exports/FlatList.tsx",
|
|
34
|
+
"./wrapInput": "./exports/wrapInput.tsx",
|
|
35
|
+
"./guessInput": "./exports/guessInput.tsx",
|
|
36
|
+
"./Form": "./exports/Form.tsx",
|
|
37
|
+
"./useFormProps": "./exports/useFormProps.tsx",
|
|
38
|
+
"./Input": "./exports/Input.tsx",
|
|
39
|
+
"./ArrayInput": "./exports/ArrayInput.tsx",
|
|
40
|
+
"./Checkbox": "./exports/Checkbox.tsx",
|
|
41
|
+
"./ColorPicker": "./exports/ColorPicker.tsx",
|
|
42
|
+
"./DateTimePicker": "./exports/DateTimePicker.tsx",
|
|
43
|
+
"./MultiSelect": "./exports/MultiSelect.tsx",
|
|
44
|
+
"./Multiselect": "./exports/_DEPRECATED_Multiselect.tsx",
|
|
45
|
+
"./NumberInput": "./exports/NumberInput.tsx",
|
|
46
|
+
"./ObjectInput": "./exports/ObjectInput.tsx",
|
|
47
|
+
"./PasswordInput": "./exports/PasswordInput.tsx",
|
|
48
|
+
"./Radio": "./exports/Radio.tsx",
|
|
49
|
+
"./RangeInput": "./exports/RangeInput.tsx",
|
|
50
|
+
"./Rank": "./exports/Rank.tsx",
|
|
51
|
+
"./Select": "./exports/Select.tsx",
|
|
52
|
+
"./TextInput": "./exports/TextInput.tsx",
|
|
53
|
+
"./FileInput": "./exports/FileInput.tsx",
|
|
54
|
+
"./deleteFile": "./exports/deleteFile.tsx",
|
|
55
|
+
"./uploadFile": "./exports/uploadFile.tsx",
|
|
56
|
+
"./Icon": "./exports/Icon.tsx",
|
|
57
|
+
"./Item": "./exports/Item.tsx",
|
|
58
|
+
"./Layout": "./exports/Layout.tsx",
|
|
59
|
+
"./Link": "./exports/Link.tsx",
|
|
60
|
+
"./Loader": "./exports/Loader.tsx",
|
|
61
|
+
"./Menu": "./exports/Menu.tsx",
|
|
62
|
+
"./Modal": "./exports/Modal.tsx",
|
|
63
|
+
"./Pagination": "./exports/Pagination.tsx",
|
|
64
|
+
"./AbstractPopover": "./exports/AbstractPopover.tsx",
|
|
65
|
+
"./Drawer": "./exports/Drawer.tsx",
|
|
66
|
+
"./Popover": "./exports/Popover.tsx",
|
|
67
|
+
"./Dropdown": "./exports/Dropdown.tsx",
|
|
68
|
+
"./Portal": "./exports/Portal.tsx",
|
|
69
|
+
"./Progress": "./exports/Progress.tsx",
|
|
70
|
+
"./Rating": "./exports/Rating.tsx",
|
|
71
|
+
"./Row": "./exports/_DEPRECATED_Row.tsx",
|
|
72
|
+
"./ScrollView": "./exports/ScrollView.tsx",
|
|
73
|
+
"./Sidebar": "./exports/Sidebar.tsx",
|
|
74
|
+
"./SmartSidebar": "./exports/SmartSidebar.tsx",
|
|
75
|
+
"./Table": "./exports/Table.tsx",
|
|
76
|
+
"./Tbody": "./exports/Tbody.tsx",
|
|
77
|
+
"./Td": "./exports/Td.tsx",
|
|
78
|
+
"./Th": "./exports/Th.tsx",
|
|
79
|
+
"./Thead": "./exports/Thead.tsx",
|
|
80
|
+
"./Tr": "./exports/Tr.tsx",
|
|
81
|
+
"./Tabs": "./exports/Tabs.tsx",
|
|
82
|
+
"./Tag": "./exports/Tag.tsx",
|
|
83
|
+
"./ToastProvider": "./exports/ToastProvider.tsx",
|
|
84
|
+
"./Toast": "./exports/Toast.tsx",
|
|
85
|
+
"./toast": "./exports/_toast.tsx",
|
|
86
|
+
"./Tooltip": "./exports/_DEPRECATED_Tooltip.tsx",
|
|
87
|
+
"./Span": "./exports/Span.tsx",
|
|
88
|
+
"./H1": "./exports/_DEPRECATED_H1.tsx",
|
|
89
|
+
"./H2": "./exports/_DEPRECATED_H2.tsx",
|
|
90
|
+
"./H3": "./exports/_DEPRECATED_H3.tsx",
|
|
91
|
+
"./H4": "./exports/_DEPRECATED_H4.tsx",
|
|
92
|
+
"./H5": "./exports/_DEPRECATED_H5.tsx",
|
|
93
|
+
"./H6": "./exports/_DEPRECATED_H6.tsx",
|
|
94
|
+
"./User": "./exports/User.tsx",
|
|
95
|
+
"./CssVariables": "./exports/CssVariables.tsx",
|
|
96
|
+
"./palette": "./exports/palette.tsx",
|
|
97
|
+
"./generateColors": "./exports/generateColors.tsx",
|
|
98
|
+
"./getCssVariable": "./exports/getCssVariable.tsx",
|
|
99
|
+
"./Palette": "./exports/Palette.tsx",
|
|
100
|
+
"./Colors": "./exports/Colors.tsx",
|
|
101
|
+
"./themed": "./exports/themed.tsx",
|
|
102
|
+
"./ThemeProvider": "./exports/ThemeProvider.tsx",
|
|
103
|
+
"./ThemeContext": "./exports/ThemeContext.tsx",
|
|
104
|
+
"./useMedia": "./exports/useMedia.tsx",
|
|
105
|
+
"./useColors": "./exports/useColors.tsx",
|
|
106
|
+
"./useFormFields": "./exports/useFormFields.tsx",
|
|
107
|
+
"./useFormFields$": "./exports/useFormFields$.tsx",
|
|
108
|
+
"./useValidate": "./exports/useValidate.tsx",
|
|
109
|
+
"./UiProvider": "./exports/UiProvider.tsx"
|
|
110
|
+
},
|
|
111
|
+
"dependencies": {
|
|
112
|
+
"@startupjs-ui/abstract-popover": "^0.1.3",
|
|
113
|
+
"@startupjs-ui/alert": "^0.1.3",
|
|
114
|
+
"@startupjs-ui/array-input": "^0.1.3",
|
|
115
|
+
"@startupjs-ui/auto-suggest": "^0.1.3",
|
|
116
|
+
"@startupjs-ui/avatar": "^0.1.3",
|
|
117
|
+
"@startupjs-ui/badge": "^0.1.3",
|
|
118
|
+
"@startupjs-ui/br": "^0.1.3",
|
|
119
|
+
"@startupjs-ui/breadcrumbs": "^0.1.3",
|
|
120
|
+
"@startupjs-ui/button": "^0.1.3",
|
|
121
|
+
"@startupjs-ui/card": "^0.1.3",
|
|
122
|
+
"@startupjs-ui/carousel": "^0.1.3",
|
|
123
|
+
"@startupjs-ui/checkbox": "^0.1.3",
|
|
124
|
+
"@startupjs-ui/collapse": "^0.1.3",
|
|
125
|
+
"@startupjs-ui/color-picker": "^0.1.3",
|
|
126
|
+
"@startupjs-ui/content": "^0.1.3",
|
|
127
|
+
"@startupjs-ui/core": "^0.1.3",
|
|
128
|
+
"@startupjs-ui/date-time-picker": "^0.1.3",
|
|
129
|
+
"@startupjs-ui/dialogs": "^0.1.3",
|
|
130
|
+
"@startupjs-ui/div": "^0.1.3",
|
|
131
|
+
"@startupjs-ui/divider": "^0.1.3",
|
|
132
|
+
"@startupjs-ui/draggable": "^0.1.3",
|
|
133
|
+
"@startupjs-ui/drawer": "^0.1.3",
|
|
134
|
+
"@startupjs-ui/drawer-sidebar": "^0.1.3",
|
|
135
|
+
"@startupjs-ui/dropdown": "^0.1.3",
|
|
136
|
+
"@startupjs-ui/file-input": "^0.1.3",
|
|
137
|
+
"@startupjs-ui/flat-list": "^0.1.3",
|
|
138
|
+
"@startupjs-ui/form": "^0.1.3",
|
|
139
|
+
"@startupjs-ui/icon": "^0.1.3",
|
|
140
|
+
"@startupjs-ui/input": "^0.1.3",
|
|
141
|
+
"@startupjs-ui/item": "^0.1.3",
|
|
142
|
+
"@startupjs-ui/layout": "^0.1.3",
|
|
143
|
+
"@startupjs-ui/link": "^0.1.3",
|
|
144
|
+
"@startupjs-ui/loader": "^0.1.3",
|
|
145
|
+
"@startupjs-ui/menu": "^0.1.3",
|
|
146
|
+
"@startupjs-ui/modal": "^0.1.3",
|
|
147
|
+
"@startupjs-ui/multi-select": "^0.1.3",
|
|
148
|
+
"@startupjs-ui/number-input": "^0.1.3",
|
|
149
|
+
"@startupjs-ui/object-input": "^0.1.3",
|
|
150
|
+
"@startupjs-ui/pagination": "^0.1.3",
|
|
151
|
+
"@startupjs-ui/password-input": "^0.1.3",
|
|
152
|
+
"@startupjs-ui/popover": "^0.1.3",
|
|
153
|
+
"@startupjs-ui/portal": "^0.1.3",
|
|
154
|
+
"@startupjs-ui/progress": "^0.1.3",
|
|
155
|
+
"@startupjs-ui/radio": "^0.1.3",
|
|
156
|
+
"@startupjs-ui/range-input": "^0.1.3",
|
|
157
|
+
"@startupjs-ui/rank": "^0.1.3",
|
|
158
|
+
"@startupjs-ui/rating": "^0.1.3",
|
|
159
|
+
"@startupjs-ui/scroll-view": "^0.1.3",
|
|
160
|
+
"@startupjs-ui/select": "^0.1.3",
|
|
161
|
+
"@startupjs-ui/sidebar": "^0.1.3",
|
|
162
|
+
"@startupjs-ui/smart-sidebar": "^0.1.3",
|
|
163
|
+
"@startupjs-ui/span": "^0.1.3",
|
|
164
|
+
"@startupjs-ui/table": "^0.1.3",
|
|
165
|
+
"@startupjs-ui/tabs": "^0.1.3",
|
|
166
|
+
"@startupjs-ui/tag": "^0.1.3",
|
|
167
|
+
"@startupjs-ui/text-input": "^0.1.3",
|
|
168
|
+
"@startupjs-ui/toast": "^0.1.3",
|
|
169
|
+
"@startupjs-ui/user": "^0.1.3"
|
|
170
|
+
},
|
|
171
|
+
"peerDependencies": {
|
|
172
|
+
"react": "*",
|
|
173
|
+
"react-native": "*",
|
|
174
|
+
"startupjs": "*"
|
|
175
|
+
},
|
|
9
176
|
"license": "MIT",
|
|
10
|
-
"gitHead": "
|
|
177
|
+
"gitHead": "fd964ebc3892d3dd0a6c85438c0af619cc50c3f0"
|
|
11
178
|
}
|
package/plugin.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createElement as el } from 'react'
|
|
2
|
+
import { createPlugin, ROOT_MODULE as MODULE } from 'startupjs/registry'
|
|
3
|
+
import { setCustomInputs } from '@startupjs-ui/input/globalCustomInputs'
|
|
4
|
+
import { setCustomIcons } from '@startupjs-ui/icon/globalCustomIcons'
|
|
5
|
+
import UiProvider from './UiProvider'
|
|
6
|
+
|
|
7
|
+
let hasCustomElementsInitialized = false
|
|
8
|
+
|
|
9
|
+
export default createPlugin({
|
|
10
|
+
name: 'ui',
|
|
11
|
+
enabled: true,
|
|
12
|
+
order: 'system ui',
|
|
13
|
+
client: (props) => ({
|
|
14
|
+
renderRoot ({ children }) {
|
|
15
|
+
if (!hasCustomElementsInitialized) {
|
|
16
|
+
hasCustomElementsInitialized = true
|
|
17
|
+
const mergePlugins = (hookName, errorMessage, setFunction) => {
|
|
18
|
+
const data = MODULE.hook(hookName)
|
|
19
|
+
.reduce((allItems, pluginItems = {}) => {
|
|
20
|
+
for (const item in pluginItems) {
|
|
21
|
+
if (allItems[item]) {
|
|
22
|
+
console.warn(errorMessage(item))
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return { ...allItems, ...pluginItems }
|
|
26
|
+
}, {})
|
|
27
|
+
setFunction(data)
|
|
28
|
+
}
|
|
29
|
+
mergePlugins('customIcons', ERRORS.iconAlreadyDefined, setCustomIcons)
|
|
30
|
+
mergePlugins('customInputs', ERRORS.inputAlreadyDefined, setCustomInputs)
|
|
31
|
+
}
|
|
32
|
+
return el(UiProvider, props, children)
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const ERRORS = {
|
|
38
|
+
inputAlreadyDefined: input => `
|
|
39
|
+
Custom input type "${input}" is already defined by another plugin. It will be overridden!
|
|
40
|
+
`,
|
|
41
|
+
iconAlreadyDefined: icon => `
|
|
42
|
+
Custom icons "${icon}" is already defined by another plugin. It will be overridden!
|
|
43
|
+
`
|
|
44
|
+
}
|