@saas-ui/react 3.0.0-alpha.1 → 3.0.0-alpha.2
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/CHANGELOG.md +12 -0
- package/dist/components/app-shell/index.d.cts +1 -1
- package/dist/components/app-shell/index.d.ts +1 -1
- package/dist/components/navbar/index.d.cts +3 -3
- package/dist/components/navbar/index.d.ts +3 -3
- package/dist/components/persona/index.d.cts +1 -1
- package/dist/components/persona/index.d.ts +1 -1
- package/dist/components/sidebar/index.d.cts +12 -12
- package/dist/components/sidebar/index.d.ts +12 -12
- package/dist/index.cjs +2 -12
- package/dist/index.js +2 -12
- package/package.json +4 -6
- package/src/components/app-shell/app-shell.recipe.ts +0 -52
- package/src/components/app-shell/app-shell.stories.tsx +0 -51
- package/src/components/app-shell/app-shell.tsx +0 -94
- package/src/components/app-shell/index.ts +0 -3
- package/src/components/breadcrumbs/breadcrumb.stories.tsx +0 -17
- package/src/components/breadcrumbs/breadcrumb.tsx +0 -36
- package/src/components/breadcrumbs/index.ts +0 -1
- package/src/components/breadcrumbs/namespace.ts +0 -8
- package/src/components/button/button.recipe.ts +0 -182
- package/src/components/button/button.stories.tsx +0 -99
- package/src/components/button/button.tsx +0 -55
- package/src/components/button/index.ts +0 -2
- package/src/components/checkbox/checkbox.tsx +0 -26
- package/src/components/checkbox/index.ts +0 -2
- package/src/components/close-button/close-button.stories.tsx +0 -12
- package/src/components/close-button/close-button.tsx +0 -18
- package/src/components/close-button/index.ts +0 -2
- package/src/components/command/command.recipe.ts +0 -17
- package/src/components/command/command.stories.tsx +0 -47
- package/src/components/command/command.tsx +0 -50
- package/src/components/command/index.ts +0 -1
- package/src/components/dialog/dialog.tsx +0 -67
- package/src/components/dialog/index.ts +0 -1
- package/src/components/dialog/namespace.ts +0 -18
- package/src/components/drawer/drawer.tsx +0 -57
- package/src/components/drawer/index.ts +0 -3
- package/src/components/drawer/namespace.ts +0 -19
- package/src/components/grid-list/grid-list.recipe.ts +0 -113
- package/src/components/icon-badge/icon-badge.recipe.ts +0 -57
- package/src/components/icon-badge/icon-badge.stories.tsx +0 -38
- package/src/components/icon-badge/icon-badge.tsx +0 -59
- package/src/components/icon-badge/index.ts +0 -2
- package/src/components/icons/create-icon.tsx +0 -41
- package/src/components/icons/icons.tsx +0 -119
- package/src/components/icons/index.ts +0 -1
- package/src/components/input-group/index.ts +0 -1
- package/src/components/input-group/input-group.tsx +0 -46
- package/src/components/link/index.ts +0 -2
- package/src/components/link/link.stories.tsx +0 -17
- package/src/components/link/link.test.tsx +0 -33
- package/src/components/link/link.tsx +0 -27
- package/src/components/loading-overlay/index.ts +0 -1
- package/src/components/loading-overlay/loading-overlay.recipe.ts +0 -61
- package/src/components/loading-overlay/loading-overlay.stories.tsx +0 -68
- package/src/components/loading-overlay/loading-overlay.tsx +0 -54
- package/src/components/loading-overlay/namespace.ts +0 -7
- package/src/components/navbar/index.ts +0 -1
- package/src/components/navbar/namespace.ts +0 -9
- package/src/components/navbar/navbar.recipe.ts +0 -109
- package/src/components/navbar/navbar.stories.tsx +0 -435
- package/src/components/navbar/navbar.test.tsx +0 -49
- package/src/components/navbar/navbar.tsx +0 -39
- package/src/components/number-input/index.ts +0 -2
- package/src/components/number-input/number-input.tsx +0 -41
- package/src/components/password-input/index.ts +0 -2
- package/src/components/password-input/password-input.tsx +0 -93
- package/src/components/persona/index.ts +0 -2
- package/src/components/persona/namespace.ts +0 -18
- package/src/components/persona/persona-primitive.tsx +0 -220
- package/src/components/persona/persona.recipe.ts +0 -94
- package/src/components/persona/persona.stories.tsx +0 -101
- package/src/components/persona/persona.tsx +0 -142
- package/src/components/pin-input/index.ts +0 -2
- package/src/components/pin-input/pin-input.tsx +0 -36
- package/src/components/radio/index.ts +0 -2
- package/src/components/radio/radio.tsx +0 -27
- package/src/components/search-input/index.ts +0 -2
- package/src/components/search-input/search-input.stories.tsx +0 -63
- package/src/components/search-input/search-input.tsx +0 -134
- package/src/components/select/index.ts +0 -1
- package/src/components/select/namespace.ts +0 -18
- package/src/components/select/select.tsx +0 -135
- package/src/components/sidebar/index.ts +0 -7
- package/src/components/sidebar/namespace.ts +0 -27
- package/src/components/sidebar/sidebar-item.recipe.ts +0 -65
- package/src/components/sidebar/sidebar.recipe.ts +0 -237
- package/src/components/sidebar/sidebar.stories.tsx +0 -903
- package/src/components/sidebar/sidebar.tsx +0 -208
- package/src/components/spinner/index.ts +0 -2
- package/src/components/spinner/spinner.stories.tsx +0 -19
- package/src/components/spinner/spinner.tsx +0 -21
- package/src/components/steps/index.ts +0 -1
- package/src/components/steps/namespace.ts +0 -16
- package/src/components/steps/steps.tsx +0 -82
- package/src/components/switch/index.ts +0 -3
- package/src/components/switch/switch.tsx +0 -39
- package/src/compositions/accordion.tsx +0 -47
- package/src/compositions/action-bar.tsx +0 -40
- package/src/compositions/alert.tsx +0 -51
- package/src/compositions/avatar.tsx +0 -74
- package/src/compositions/blockquote.tsx +0 -31
- package/src/compositions/checkbox-card.tsx +0 -57
- package/src/compositions/checkbox.tsx +0 -25
- package/src/compositions/clipboard.tsx +0 -107
- package/src/compositions/color-mode.tsx +0 -65
- package/src/compositions/data-list.tsx +0 -37
- package/src/compositions/empty-state.tsx +0 -34
- package/src/compositions/field.tsx +0 -33
- package/src/compositions/file-button.tsx +0 -166
- package/src/compositions/hover-card.tsx +0 -35
- package/src/compositions/link-button.tsx +0 -12
- package/src/compositions/menu.tsx +0 -108
- package/src/compositions/native-select.tsx +0 -57
- package/src/compositions/pagination.tsx +0 -207
- package/src/compositions/popover.tsx +0 -58
- package/src/compositions/progress-circle.tsx +0 -37
- package/src/compositions/progress.tsx +0 -40
- package/src/compositions/prose.tsx +0 -264
- package/src/compositions/provider.tsx +0 -12
- package/src/compositions/radio-card.tsx +0 -57
- package/src/compositions/radio.tsx +0 -24
- package/src/compositions/rating.tsx +0 -27
- package/src/compositions/segmented-control.tsx +0 -47
- package/src/compositions/skeleton.tsx +0 -44
- package/src/compositions/slider.tsx +0 -53
- package/src/compositions/stat.tsx +0 -75
- package/src/compositions/status.tsx +0 -29
- package/src/compositions/stepper-input.tsx +0 -49
- package/src/compositions/tag.tsx +0 -39
- package/src/compositions/timeline.tsx +0 -17
- package/src/compositions/toaster.tsx +0 -43
- package/src/compositions/toggle-tip.tsx +0 -62
- package/src/compositions/tooltip.tsx +0 -46
- package/src/index.ts +0 -7
- package/src/preset.ts +0 -9
- package/src/provider/index.ts +0 -4
- package/src/provider/sui-provider.tsx +0 -34
- package/src/provider/use-link.test.tsx +0 -60
- package/src/provider/use-link.tsx +0 -13
- package/src/styled-system/create-recipe-context.tsx +0 -91
- package/src/styled-system/create-slot-recipe-context.tsx +0 -188
- package/src/styled-system/empty.ts +0 -7
- package/src/styled-system/factory.types.ts +0 -11
- package/src/theme/animation-styles.ts +0 -53
- package/src/theme/breakpoints.ts +0 -11
- package/src/theme/conditions.ts +0 -26
- package/src/theme/fluid-font-sizes.ts +0 -65
- package/src/theme/global-css.ts +0 -94
- package/src/theme/index.ts +0 -72
- package/src/theme/layer-styles.ts +0 -116
- package/src/theme/recipes/chakra/accordion.ts +0 -145
- package/src/theme/recipes/chakra/action-bar.ts +0 -62
- package/src/theme/recipes/chakra/alert.ts +0 -157
- package/src/theme/recipes/chakra/avatar.ts +0 -141
- package/src/theme/recipes/chakra/badge.ts +0 -67
- package/src/theme/recipes/chakra/blockquote.ts +0 -83
- package/src/theme/recipes/chakra/breadcrumb.ts +0 -94
- package/src/theme/recipes/chakra/card.ts +0 -99
- package/src/theme/recipes/chakra/checkbox-card.ts +0 -212
- package/src/theme/recipes/chakra/checkbox.ts +0 -70
- package/src/theme/recipes/chakra/checkmark.ts +0 -83
- package/src/theme/recipes/chakra/code.ts +0 -17
- package/src/theme/recipes/chakra/collapsible.ts +0 -20
- package/src/theme/recipes/chakra/container.ts +0 -26
- package/src/theme/recipes/chakra/data-list.ts +0 -80
- package/src/theme/recipes/chakra/dialog.ts +0 -225
- package/src/theme/recipes/chakra/drawer.ts +0 -201
- package/src/theme/recipes/chakra/editable.ts +0 -88
- package/src/theme/recipes/chakra/empty-state.ts +0 -88
- package/src/theme/recipes/chakra/field.ts +0 -68
- package/src/theme/recipes/chakra/fieldset.ts +0 -62
- package/src/theme/recipes/chakra/file-upload.ts +0 -96
- package/src/theme/recipes/chakra/heading.ts +0 -27
- package/src/theme/recipes/chakra/hover-card.ts +0 -68
- package/src/theme/recipes/chakra/icon.ts +0 -30
- package/src/theme/recipes/chakra/input-addon.ts +0 -40
- package/src/theme/recipes/chakra/input.ts +0 -96
- package/src/theme/recipes/chakra/kbd.ts +0 -60
- package/src/theme/recipes/chakra/link.ts +0 -37
- package/src/theme/recipes/chakra/list.ts +0 -67
- package/src/theme/recipes/chakra/mark.ts +0 -27
- package/src/theme/recipes/chakra/menu.ts +0 -124
- package/src/theme/recipes/chakra/native-select.ts +0 -140
- package/src/theme/recipes/chakra/number-input.ts +0 -115
- package/src/theme/recipes/chakra/pin-input.ts +0 -27
- package/src/theme/recipes/chakra/popover.ts +0 -86
- package/src/theme/recipes/chakra/progress-circle.ts +0 -94
- package/src/theme/recipes/chakra/progress.ts +0 -127
- package/src/theme/recipes/chakra/radio-card.ts +0 -220
- package/src/theme/recipes/chakra/radio-group.ts +0 -72
- package/src/theme/recipes/chakra/radiomark.ts +0 -107
- package/src/theme/recipes/chakra/rating-group.ts +0 -94
- package/src/theme/recipes/chakra/segment-group.ts +0 -117
- package/src/theme/recipes/chakra/select.ts +0 -282
- package/src/theme/recipes/chakra/separator.ts +0 -51
- package/src/theme/recipes/chakra/skeleton.ts +0 -53
- package/src/theme/recipes/chakra/skip-nav-link.ts +0 -34
- package/src/theme/recipes/chakra/slider.ts +0 -178
- package/src/theme/recipes/chakra/spinner.ts +0 -32
- package/src/theme/recipes/chakra/stat.ts +0 -79
- package/src/theme/recipes/chakra/status.ts +0 -48
- package/src/theme/recipes/chakra/steps.ts +0 -218
- package/src/theme/recipes/chakra/switch.ts +0 -167
- package/src/theme/recipes/chakra/table.ts +0 -172
- package/src/theme/recipes/chakra/tabs.ts +0 -280
- package/src/theme/recipes/chakra/tag.ts +0 -131
- package/src/theme/recipes/chakra/textarea.ts +0 -88
- package/src/theme/recipes/chakra/timeline.ts +0 -138
- package/src/theme/recipes/chakra/toast.ts +0 -96
- package/src/theme/recipes/chakra/tooltip.ts +0 -40
- package/src/theme/recipes.ts +0 -46
- package/src/theme/semantic-tokens/colors.ts +0 -403
- package/src/theme/semantic-tokens/radii.ts +0 -7
- package/src/theme/semantic-tokens/shadows.ts +0 -52
- package/src/theme/slot-recipes.ts +0 -104
- package/src/theme/text-styles.ts +0 -39
- package/src/theme/tokens/animations.ts +0 -8
- package/src/theme/tokens/aspect-ratios.ts +0 -10
- package/src/theme/tokens/blurs.ts +0 -12
- package/src/theme/tokens/borders.ts +0 -9
- package/src/theme/tokens/colors.ts +0 -177
- package/src/theme/tokens/cursor.ts +0 -12
- package/src/theme/tokens/durations.ts +0 -11
- package/src/theme/tokens/easings.ts +0 -10
- package/src/theme/tokens/font-sizes.ts +0 -20
- package/src/theme/tokens/font-weights.ts +0 -13
- package/src/theme/tokens/fonts.ts +0 -15
- package/src/theme/tokens/keyframes.ts +0 -173
- package/src/theme/tokens/letter-spacing.ts +0 -9
- package/src/theme/tokens/line-heights.ts +0 -19
- package/src/theme/tokens/radius.ts +0 -18
- package/src/theme/tokens/sizes.ts +0 -71
- package/src/theme/tokens/spacing.ts +0 -38
- package/src/theme/tokens/z-indices.ts +0 -34
- package/src/theme/utils.ts +0 -46
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from 'react'
|
|
2
|
-
|
|
3
|
-
import type { ButtonProps as ButtonPrimitiveProps } from '@chakra-ui/react'
|
|
4
|
-
import {
|
|
5
|
-
AbsoluteCenter,
|
|
6
|
-
Button as ButtonPrimitive,
|
|
7
|
-
Span,
|
|
8
|
-
Spinner,
|
|
9
|
-
} from '@chakra-ui/react'
|
|
10
|
-
|
|
11
|
-
interface ButtonLoadingProps {
|
|
12
|
-
loading?: boolean
|
|
13
|
-
loadingText?: React.ReactNode
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ButtonProps extends ButtonPrimitiveProps, ButtonLoadingProps {}
|
|
17
|
-
|
|
18
|
-
export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
|
19
|
-
function Button(props, ref) {
|
|
20
|
-
const {
|
|
21
|
-
loading,
|
|
22
|
-
disabled,
|
|
23
|
-
loadingText,
|
|
24
|
-
children,
|
|
25
|
-
variant = 'glass',
|
|
26
|
-
colorPalette = variant === 'glass' ? 'accent' : 'gray',
|
|
27
|
-
...rest
|
|
28
|
-
} = props
|
|
29
|
-
return (
|
|
30
|
-
<ButtonPrimitive
|
|
31
|
-
colorPalette={colorPalette}
|
|
32
|
-
disabled={loading || disabled}
|
|
33
|
-
variant={variant as any}
|
|
34
|
-
ref={ref}
|
|
35
|
-
{...rest}
|
|
36
|
-
>
|
|
37
|
-
{loading && !loadingText ? (
|
|
38
|
-
<>
|
|
39
|
-
<AbsoluteCenter display="inline-flex">
|
|
40
|
-
<Spinner size="inherit" color="inherit" />
|
|
41
|
-
</AbsoluteCenter>
|
|
42
|
-
<Span opacity={0}>{children}</Span>
|
|
43
|
-
</>
|
|
44
|
-
) : loading && loadingText ? (
|
|
45
|
-
<>
|
|
46
|
-
<Spinner size="inherit" color="inherit" />
|
|
47
|
-
{loadingText}
|
|
48
|
-
</>
|
|
49
|
-
) : (
|
|
50
|
-
children
|
|
51
|
-
)}
|
|
52
|
-
</ButtonPrimitive>
|
|
53
|
-
)
|
|
54
|
-
},
|
|
55
|
-
)
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from 'react'
|
|
2
|
-
|
|
3
|
-
import { Checkbox as ChakraCheckbox } from '@chakra-ui/react'
|
|
4
|
-
|
|
5
|
-
export interface CheckboxProps extends ChakraCheckbox.RootProps {
|
|
6
|
-
icon?: React.ReactNode
|
|
7
|
-
inputProps?: React.InputHTMLAttributes<HTMLInputElement>
|
|
8
|
-
rootRef?: React.Ref<HTMLLabelElement>
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
|
|
12
|
-
function Checkbox(props, ref) {
|
|
13
|
-
const { icon, children, inputProps, rootRef, ...rest } = props
|
|
14
|
-
return (
|
|
15
|
-
<ChakraCheckbox.Root ref={rootRef} {...rest}>
|
|
16
|
-
<ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />
|
|
17
|
-
<ChakraCheckbox.Control>
|
|
18
|
-
{icon || <ChakraCheckbox.Indicator />}
|
|
19
|
-
</ChakraCheckbox.Control>
|
|
20
|
-
{children != null && (
|
|
21
|
-
<ChakraCheckbox.Label>{children}</ChakraCheckbox.Label>
|
|
22
|
-
)}
|
|
23
|
-
</ChakraCheckbox.Root>
|
|
24
|
-
)
|
|
25
|
-
},
|
|
26
|
-
)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from 'react'
|
|
2
|
-
|
|
3
|
-
import type { ButtonProps } from '@chakra-ui/react'
|
|
4
|
-
import { IconButton as ChakraIconButton } from '@chakra-ui/react'
|
|
5
|
-
|
|
6
|
-
import { CloseIcon } from '../icons/icons.tsx'
|
|
7
|
-
|
|
8
|
-
export interface CloseButtonProps extends ButtonProps {}
|
|
9
|
-
|
|
10
|
-
export const CloseButton = forwardRef<HTMLButtonElement, CloseButtonProps>(
|
|
11
|
-
function CloseButton(props, ref) {
|
|
12
|
-
return (
|
|
13
|
-
<ChakraIconButton variant="ghost" aria-label="Close" ref={ref} {...props}>
|
|
14
|
-
{props.children ?? <CloseIcon />}
|
|
15
|
-
</ChakraIconButton>
|
|
16
|
-
)
|
|
17
|
-
},
|
|
18
|
-
)
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { defineRecipe } from '@chakra-ui/react'
|
|
2
|
-
|
|
3
|
-
export const commandRecipe = defineRecipe({
|
|
4
|
-
className: 'sui-command',
|
|
5
|
-
base: {
|
|
6
|
-
display: 'inline-flex',
|
|
7
|
-
gap: 1,
|
|
8
|
-
'[role=tooltip] > &': {
|
|
9
|
-
ms: 1,
|
|
10
|
-
_before: {
|
|
11
|
-
content: '"•"',
|
|
12
|
-
me: 1,
|
|
13
|
-
fontSize: 'xs',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
})
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { Button, Center, Tooltip, VStack } from '@chakra-ui/react'
|
|
4
|
-
|
|
5
|
-
import { Command } from './command'
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
title: 'Components/Command',
|
|
9
|
-
decorators: [
|
|
10
|
-
(Story: any) => (
|
|
11
|
-
<Center height="100%">
|
|
12
|
-
<Story />
|
|
13
|
-
</Center>
|
|
14
|
-
),
|
|
15
|
-
],
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const Basic = {
|
|
19
|
-
render: () => (
|
|
20
|
-
<VStack>
|
|
21
|
-
<Command>shift+X</Command>
|
|
22
|
-
<Command>A then B</Command>
|
|
23
|
-
<Command>alt or option</Command>
|
|
24
|
-
</VStack>
|
|
25
|
-
),
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export const TooltipCommand = {
|
|
29
|
-
render: () => (
|
|
30
|
-
<Tooltip.Root>
|
|
31
|
-
<Tooltip.Trigger>
|
|
32
|
-
<Button>Inbox</Button>
|
|
33
|
-
</Tooltip.Trigger>
|
|
34
|
-
<Tooltip.Positioner>
|
|
35
|
-
<Tooltip.Content>
|
|
36
|
-
<Tooltip.Arrow>
|
|
37
|
-
<Tooltip.ArrowTip />
|
|
38
|
-
</Tooltip.Arrow>
|
|
39
|
-
|
|
40
|
-
<>
|
|
41
|
-
Inbox <Command>G then I</Command>
|
|
42
|
-
</>
|
|
43
|
-
</Tooltip.Content>
|
|
44
|
-
</Tooltip.Positioner>
|
|
45
|
-
</Tooltip.Root>
|
|
46
|
-
),
|
|
47
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import * as React from 'react'
|
|
2
|
-
|
|
3
|
-
import { Kbd } from '@chakra-ui/react'
|
|
4
|
-
import {
|
|
5
|
-
type HTMLChakraProps,
|
|
6
|
-
type RecipeProps,
|
|
7
|
-
UnstyledProp,
|
|
8
|
-
createRecipeContext,
|
|
9
|
-
} from '@chakra-ui/react'
|
|
10
|
-
|
|
11
|
-
const { withContext } = createRecipeContext({
|
|
12
|
-
key: 'command',
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
export interface CommandBaseProps extends RecipeProps<'span'>, UnstyledProp {}
|
|
16
|
-
|
|
17
|
-
export interface CommandProps
|
|
18
|
-
extends HTMLChakraProps<'span', CommandBaseProps> {}
|
|
19
|
-
|
|
20
|
-
const Key: React.FC<HTMLChakraProps<'span'>> = ({ children }) => {
|
|
21
|
-
if (typeof children !== 'string') {
|
|
22
|
-
return <>{children}</>
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (['then', 'or', '+'].includes(children)) {
|
|
26
|
-
return <span>{children}</span>
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return <Kbd>{children}</Kbd>
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export const Command: React.FC<HTMLChakraProps<'span'>> = (props) => {
|
|
33
|
-
const { children, ...rest } = props
|
|
34
|
-
|
|
35
|
-
if (typeof children !== 'string') {
|
|
36
|
-
return <>{children}</>
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const keys = children.split(/\s|\+/)
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<CommandRoot {...rest}>
|
|
43
|
-
{keys.map((key) => (
|
|
44
|
-
<Key key={key}>{key}</Key>
|
|
45
|
-
))}
|
|
46
|
-
</CommandRoot>
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const CommandRoot = withContext('span')
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Command } from './command'
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from 'react'
|
|
2
|
-
|
|
3
|
-
import { Dialog as ChakraDialog, Portal } from '@chakra-ui/react'
|
|
4
|
-
|
|
5
|
-
import { CloseButton } from '#components/close-button'
|
|
6
|
-
|
|
7
|
-
export { DialogContext } from '@ark-ui/react/dialog'
|
|
8
|
-
|
|
9
|
-
export interface DialogContentProps extends ChakraDialog.ContentProps {
|
|
10
|
-
portalled?: boolean
|
|
11
|
-
portalRef?: React.RefObject<HTMLElement>
|
|
12
|
-
backdrop?: boolean
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(
|
|
16
|
-
function DialogContent(props, ref) {
|
|
17
|
-
const {
|
|
18
|
-
children,
|
|
19
|
-
portalled = true,
|
|
20
|
-
portalRef,
|
|
21
|
-
backdrop = true,
|
|
22
|
-
...rest
|
|
23
|
-
} = props
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<Portal disabled={!portalled} container={portalRef}>
|
|
27
|
-
{backdrop && <ChakraDialog.Backdrop />}
|
|
28
|
-
<ChakraDialog.Positioner>
|
|
29
|
-
<ChakraDialog.Content ref={ref} {...rest} asChild={false}>
|
|
30
|
-
{children}
|
|
31
|
-
</ChakraDialog.Content>
|
|
32
|
-
</ChakraDialog.Positioner>
|
|
33
|
-
</Portal>
|
|
34
|
-
)
|
|
35
|
-
},
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
export const DialogCloseTrigger = forwardRef<
|
|
39
|
-
HTMLButtonElement,
|
|
40
|
-
ChakraDialog.CloseTriggerProps
|
|
41
|
-
>(function DialogCloseTrigger(props, ref) {
|
|
42
|
-
return (
|
|
43
|
-
<ChakraDialog.CloseTrigger
|
|
44
|
-
position="absolute"
|
|
45
|
-
top="2"
|
|
46
|
-
insetEnd="2"
|
|
47
|
-
{...props}
|
|
48
|
-
asChild
|
|
49
|
-
>
|
|
50
|
-
<CloseButton size="sm" ref={ref}>
|
|
51
|
-
{props.children}
|
|
52
|
-
</CloseButton>
|
|
53
|
-
</ChakraDialog.CloseTrigger>
|
|
54
|
-
)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
export type DialogRootProps = ChakraDialog.RootProps
|
|
58
|
-
|
|
59
|
-
export const DialogRoot = ChakraDialog.Root
|
|
60
|
-
export const DialogFooter = ChakraDialog.Footer
|
|
61
|
-
export const DialogHeader = ChakraDialog.Header
|
|
62
|
-
export const DialogBody = ChakraDialog.Body
|
|
63
|
-
export const DialogBackdrop = ChakraDialog.Backdrop
|
|
64
|
-
export const DialogTitle = ChakraDialog.Title
|
|
65
|
-
export const DialogDescription = ChakraDialog.Description
|
|
66
|
-
export const DialogTrigger = ChakraDialog.Trigger
|
|
67
|
-
export const DialogActionTrigger = ChakraDialog.ActionTrigger
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * as Dialog from './namespace.ts'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
DialogRoot as Root,
|
|
3
|
-
DialogContent as Content,
|
|
4
|
-
DialogCloseTrigger as CloseTrigger,
|
|
5
|
-
DialogHeader as Header,
|
|
6
|
-
DialogBody as Body,
|
|
7
|
-
DialogFooter as Footer,
|
|
8
|
-
DialogActionTrigger as ActionTrigger,
|
|
9
|
-
DialogBackdrop as Backdrop,
|
|
10
|
-
DialogDescription as Description,
|
|
11
|
-
DialogTitle as Title,
|
|
12
|
-
DialogTrigger as Trigger,
|
|
13
|
-
DialogContext as Context,
|
|
14
|
-
} from './dialog.tsx'
|
|
15
|
-
export type {
|
|
16
|
-
DialogContentProps as ContentProps,
|
|
17
|
-
DialogRootProps as RootProps,
|
|
18
|
-
} from './dialog.tsx'
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from 'react'
|
|
2
|
-
|
|
3
|
-
import { DialogContext } from '@ark-ui/react/dialog'
|
|
4
|
-
import { Drawer as ChakraDrawer, Portal } from '@chakra-ui/react'
|
|
5
|
-
|
|
6
|
-
import { CloseButton } from '#components/close-button'
|
|
7
|
-
|
|
8
|
-
export interface DrawerContentProps extends ChakraDrawer.ContentProps {
|
|
9
|
-
portalled?: boolean
|
|
10
|
-
portalRef?: React.RefObject<HTMLElement>
|
|
11
|
-
offset?: ChakraDrawer.ContentProps['padding']
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(
|
|
15
|
-
function DrawerContent(props, ref) {
|
|
16
|
-
const { children, portalled = true, portalRef, offset, ...rest } = props
|
|
17
|
-
return (
|
|
18
|
-
<Portal disabled={!portalled} container={portalRef}>
|
|
19
|
-
<ChakraDrawer.Positioner padding={offset}>
|
|
20
|
-
<ChakraDrawer.Content ref={ref} {...rest} asChild={false}>
|
|
21
|
-
{children}
|
|
22
|
-
</ChakraDrawer.Content>
|
|
23
|
-
</ChakraDrawer.Positioner>
|
|
24
|
-
</Portal>
|
|
25
|
-
)
|
|
26
|
-
},
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
export const DrawerCloseTrigger = forwardRef<
|
|
30
|
-
HTMLButtonElement,
|
|
31
|
-
ChakraDrawer.CloseTriggerProps
|
|
32
|
-
>(function DrawerCloseTrigger(props, ref) {
|
|
33
|
-
return (
|
|
34
|
-
<ChakraDrawer.CloseTrigger
|
|
35
|
-
position="absolute"
|
|
36
|
-
top="2"
|
|
37
|
-
insetEnd="2"
|
|
38
|
-
{...props}
|
|
39
|
-
asChild
|
|
40
|
-
>
|
|
41
|
-
<CloseButton size="sm" ref={ref} />
|
|
42
|
-
</ChakraDrawer.CloseTrigger>
|
|
43
|
-
)
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
export const DrawerTrigger = ChakraDrawer.Trigger
|
|
47
|
-
export const DrawerRoot = ChakraDrawer.Root
|
|
48
|
-
export const DrawerFooter = ChakraDrawer.Footer
|
|
49
|
-
export const DrawerHeader = ChakraDrawer.Header
|
|
50
|
-
export const DrawerBody = ChakraDrawer.Body
|
|
51
|
-
export const DrawerBackdrop = ChakraDrawer.Backdrop
|
|
52
|
-
export const DrawerDescription = ChakraDrawer.Description
|
|
53
|
-
export const DrawerTitle = ChakraDrawer.Title
|
|
54
|
-
export const DrawerActionTrigger = ChakraDrawer.ActionTrigger
|
|
55
|
-
export const DrawerContext = DialogContext
|
|
56
|
-
|
|
57
|
-
export type DrawerRootProps = ChakraDrawer.RootProps
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
DrawerRoot as Root,
|
|
3
|
-
DrawerContent as Content,
|
|
4
|
-
DrawerCloseTrigger as CloseTrigger,
|
|
5
|
-
DrawerHeader as Header,
|
|
6
|
-
DrawerBody as Body,
|
|
7
|
-
DrawerFooter as Footer,
|
|
8
|
-
DrawerActionTrigger as ActionTrigger,
|
|
9
|
-
DrawerBackdrop as Backdrop,
|
|
10
|
-
DrawerDescription as Description,
|
|
11
|
-
DrawerTitle as Title,
|
|
12
|
-
DrawerTrigger as Trigger,
|
|
13
|
-
DrawerContext as Context,
|
|
14
|
-
} from './drawer.tsx'
|
|
15
|
-
|
|
16
|
-
export type {
|
|
17
|
-
DrawerContentProps as ContentProps,
|
|
18
|
-
DrawerRootProps as RootProps,
|
|
19
|
-
} from './drawer.tsx'
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { defineSlotRecipe } from '@chakra-ui/react'
|
|
2
|
-
|
|
3
|
-
export const gridListSlotRecipe = defineSlotRecipe({
|
|
4
|
-
className: 'sui-grid-list',
|
|
5
|
-
slots: ['root', 'item', 'header', 'icon'],
|
|
6
|
-
base: {
|
|
7
|
-
root: {
|
|
8
|
-
py: 2,
|
|
9
|
-
position: 'relative',
|
|
10
|
-
},
|
|
11
|
-
item: {
|
|
12
|
-
display: 'flex',
|
|
13
|
-
flexDirection: 'row',
|
|
14
|
-
alignItems: 'center',
|
|
15
|
-
justifyContent: 'space-between',
|
|
16
|
-
flex: 1,
|
|
17
|
-
cursor: 'pointer',
|
|
18
|
-
userSelect: 'none',
|
|
19
|
-
transitionProperty: 'common',
|
|
20
|
-
transitionDuration: 'normal',
|
|
21
|
-
borderRadius: 'inherit',
|
|
22
|
-
outline: 'none',
|
|
23
|
-
_hover: {
|
|
24
|
-
bg: 'blackAlpha.50',
|
|
25
|
-
_dark: {
|
|
26
|
-
bg: 'whiteAlpha.50',
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
_focusVisible: {
|
|
30
|
-
boxShadow: 'outline',
|
|
31
|
-
},
|
|
32
|
-
_focus: {
|
|
33
|
-
bg: 'blackAlpha.50',
|
|
34
|
-
_dark: {
|
|
35
|
-
bg: 'whiteAlpha.50',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
_active: {
|
|
39
|
-
bg: 'blackAlpha.100',
|
|
40
|
-
_dark: {
|
|
41
|
-
bg: 'whiteAlpha.100',
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
_disabled: {
|
|
45
|
-
cursor: 'inherit',
|
|
46
|
-
opacity: 0.5,
|
|
47
|
-
_hover: {
|
|
48
|
-
bg: 'transparent',
|
|
49
|
-
_dark: {
|
|
50
|
-
bg: 'transparent',
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
_active: {
|
|
54
|
-
bg: 'transparent',
|
|
55
|
-
_dark: {
|
|
56
|
-
bg: 'transparent',
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
header: {
|
|
62
|
-
display: 'flex',
|
|
63
|
-
flexDirection: 'row',
|
|
64
|
-
position: 'sticky',
|
|
65
|
-
fontSize: 'md',
|
|
66
|
-
fontWeight: 'semibold',
|
|
67
|
-
color: 'muted',
|
|
68
|
-
},
|
|
69
|
-
icon: {
|
|
70
|
-
display: 'flex',
|
|
71
|
-
flexShrink: 0,
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
variants: {
|
|
75
|
-
size: {
|
|
76
|
-
sm: {
|
|
77
|
-
root: {
|
|
78
|
-
fontSize: 'sm',
|
|
79
|
-
},
|
|
80
|
-
item: {
|
|
81
|
-
py: 1,
|
|
82
|
-
px: 1,
|
|
83
|
-
},
|
|
84
|
-
header: {
|
|
85
|
-
py: 1,
|
|
86
|
-
px: 1,
|
|
87
|
-
},
|
|
88
|
-
cell: {
|
|
89
|
-
px: 1,
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
md: {
|
|
93
|
-
root: {
|
|
94
|
-
fontSize: 'md',
|
|
95
|
-
},
|
|
96
|
-
item: {
|
|
97
|
-
py: 2,
|
|
98
|
-
px: 2,
|
|
99
|
-
},
|
|
100
|
-
header: {
|
|
101
|
-
py: 2,
|
|
102
|
-
px: 2,
|
|
103
|
-
},
|
|
104
|
-
cell: {
|
|
105
|
-
px: 2,
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
defaultVariants: {
|
|
111
|
-
size: 'md',
|
|
112
|
-
},
|
|
113
|
-
})
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { defineRecipe } from '@chakra-ui/react'
|
|
2
|
-
|
|
3
|
-
export const iconBadgeRecipe = defineRecipe({
|
|
4
|
-
className: 'sui-icon-badge',
|
|
5
|
-
base: {
|
|
6
|
-
display: 'inline-flex',
|
|
7
|
-
alignItems: 'center',
|
|
8
|
-
justifyContent: 'center',
|
|
9
|
-
},
|
|
10
|
-
variants: {
|
|
11
|
-
variant: {
|
|
12
|
-
outline: {
|
|
13
|
-
borderWidth: '1px',
|
|
14
|
-
borderColor: 'colorPalette.subtle',
|
|
15
|
-
color: 'colorPalette.fg',
|
|
16
|
-
},
|
|
17
|
-
solid: {
|
|
18
|
-
bg: 'colorPalette.solid',
|
|
19
|
-
color: 'white',
|
|
20
|
-
},
|
|
21
|
-
subtle: {
|
|
22
|
-
bg: 'colorPalette.subtle',
|
|
23
|
-
color: 'colorPalette.fg',
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
size: {
|
|
27
|
-
sm: {
|
|
28
|
-
borderRadius: 'sm',
|
|
29
|
-
fontSize: '0.9em',
|
|
30
|
-
w: 6,
|
|
31
|
-
h: 6,
|
|
32
|
-
},
|
|
33
|
-
md: {
|
|
34
|
-
borderRadius: 'md',
|
|
35
|
-
fontSize: '1.1em',
|
|
36
|
-
w: 8,
|
|
37
|
-
h: 8,
|
|
38
|
-
},
|
|
39
|
-
lg: {
|
|
40
|
-
borderRadius: 'md',
|
|
41
|
-
fontSize: '1.3em',
|
|
42
|
-
w: 10,
|
|
43
|
-
h: 10,
|
|
44
|
-
},
|
|
45
|
-
xl: {
|
|
46
|
-
borderRadius: 'md',
|
|
47
|
-
fontSize: '1.5em',
|
|
48
|
-
w: 12,
|
|
49
|
-
h: 12,
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
defaultVariants: {
|
|
54
|
-
variant: 'outline',
|
|
55
|
-
size: 'md',
|
|
56
|
-
},
|
|
57
|
-
})
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/react'
|
|
2
|
-
import { LuUser } from 'react-icons/lu'
|
|
3
|
-
|
|
4
|
-
import { IconBadge } from './index.ts'
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
title: 'Components/IconBadge',
|
|
8
|
-
component: IconBadge,
|
|
9
|
-
} as Meta
|
|
10
|
-
|
|
11
|
-
type Story = StoryObj<typeof IconBadge>
|
|
12
|
-
|
|
13
|
-
export const Default: Story = {
|
|
14
|
-
args: {
|
|
15
|
-
icon: <LuUser />,
|
|
16
|
-
},
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const SolidVariant: Story = {
|
|
20
|
-
args: {
|
|
21
|
-
variant: 'solid',
|
|
22
|
-
icon: <LuUser />,
|
|
23
|
-
},
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const SubtleVariant: Story = {
|
|
27
|
-
args: {
|
|
28
|
-
variant: 'subtle',
|
|
29
|
-
icon: <LuUser />,
|
|
30
|
-
},
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export const Rounded: Story = {
|
|
34
|
-
args: {
|
|
35
|
-
borderRadius: 'full',
|
|
36
|
-
icon: <LuUser />,
|
|
37
|
-
},
|
|
38
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import * as React from 'react'
|
|
4
|
-
import { cloneElement, isValidElement } from 'react'
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
type HTMLChakraProps,
|
|
8
|
-
RecipeProps,
|
|
9
|
-
chakra,
|
|
10
|
-
useRecipe,
|
|
11
|
-
} from '@chakra-ui/react'
|
|
12
|
-
import { cx } from '@saas-ui/core/utils'
|
|
13
|
-
|
|
14
|
-
////////////////////////////////////////////////////////////////////////////////////
|
|
15
|
-
|
|
16
|
-
export interface IconBadgeProps
|
|
17
|
-
extends HTMLChakraProps<'div'>,
|
|
18
|
-
RecipeProps<'iconBadge'> {
|
|
19
|
-
/**
|
|
20
|
-
* The icon to display
|
|
21
|
-
*/
|
|
22
|
-
icon: React.ReactNode
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* A11y: A label that describes the icon
|
|
26
|
-
*/
|
|
27
|
-
'aria-label'?: string
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export const IconBadge = React.forwardRef<HTMLDivElement, IconBadgeProps>(
|
|
31
|
-
(props, ref) => {
|
|
32
|
-
const { icon, children, ...rest } = props
|
|
33
|
-
const recipe = useRecipe({ key: 'iconBadge', recipe: props.recipe })
|
|
34
|
-
const [variantProps, localProps] = recipe.splitVariantProps(rest)
|
|
35
|
-
const styles = recipe(variantProps)
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Passing the icon as prop or children should work
|
|
39
|
-
*/
|
|
40
|
-
const element = icon || children
|
|
41
|
-
const _children = isValidElement(element)
|
|
42
|
-
? cloneElement(element as any, {
|
|
43
|
-
'aria-hidden': true,
|
|
44
|
-
focusable: false,
|
|
45
|
-
})
|
|
46
|
-
: null
|
|
47
|
-
|
|
48
|
-
return (
|
|
49
|
-
<chakra.div
|
|
50
|
-
ref={ref}
|
|
51
|
-
{...localProps}
|
|
52
|
-
css={[styles, props.css]}
|
|
53
|
-
className={cx(recipe.className, props.className)}
|
|
54
|
-
>
|
|
55
|
-
{_children}
|
|
56
|
-
</chakra.div>
|
|
57
|
-
)
|
|
58
|
-
},
|
|
59
|
-
)
|