aeon-ui-engine 1.0.0 → 1.0.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/.changeset/config.json +2 -1
- package/CHANGELOG.md +38 -0
- package/COMPONENTS.md +7 -2
- package/INTEGRATION.md +14 -0
- package/PUBLISHING.md +20 -0
- package/README.md +8 -4
- package/apps/demo/og.config.mjs +8 -3
- package/apps/demo/public/og-aeon-ui-engine.png +0 -0
- package/apps/demo/public/og.svg +2 -2
- package/apps/demo/scripts/generate-og-png.mjs +4 -2
- package/apps/demo/src/App.tsx +2 -2
- package/apps/demo/src/aeonDiagrams.ts +17 -75
- package/apps/demo/src/components/DiagramsSection.tsx +8 -9
- package/apps/demo/src/components/HeroInstall.tsx +7 -4
- package/apps/demo/src/components/LandingFaq.tsx +1 -1
- package/apps/demo/src/components/LandingFooter.tsx +8 -0
- package/apps/demo/src/components/LandingHeader.tsx +4 -2
- package/apps/demo/src/components/LayersSection.tsx +6 -10
- package/apps/demo/src/components/MermaidDiagram.tsx +5 -3
- package/apps/demo/src/components/PhilosophySection.tsx +0 -2
- package/apps/demo/src/components/PlaygroundBlock.tsx +3 -8
- package/apps/demo/src/components/PlaygroundControlsDemo.tsx +63 -0
- package/apps/demo/src/components/PlaygroundSection.tsx +7 -91
- package/apps/demo/src/components/ThemeSwitcher.tsx +13 -10
- package/apps/demo/src/demo-layout.css +29 -0
- package/apps/demo/src/landing.css +138 -89
- package/apps/demo/src/nav.ts +3 -3
- package/apps/demo/src/site.ts +99 -228
- package/docs/MACHINES.md +6 -1
- package/package.json +1 -1
- package/packages/core/src/anatomy.ts +23 -0
- package/packages/panda/panda.config.ts +19 -1
- package/packages/panda/src/recipes/button.ts +4 -4
- package/packages/panda/src/recipes/combobox.ts +1 -1
- package/packages/panda/src/recipes/index.ts +5 -0
- package/packages/panda/src/recipes/pin-input.ts +29 -0
- package/packages/panda/src/recipes/progress.ts +44 -0
- package/packages/panda/src/recipes/radio-group.ts +51 -0
- package/packages/panda/src/recipes/select.ts +3 -1
- package/packages/panda/src/recipes/separator.ts +35 -0
- package/packages/panda/src/recipes/slider.ts +57 -0
- package/packages/panda/src/theme/tokens.ts +5 -0
- package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +28 -0
- package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +36 -0
- package/packages/panda/styled-system/recipes/aeon-progress.d.ts +28 -0
- package/packages/panda/styled-system/recipes/aeon-progress.mjs +44 -0
- package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +28 -0
- package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +48 -0
- package/packages/panda/styled-system/recipes/aeon-separator.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-separator.mjs +41 -0
- package/packages/panda/styled-system/recipes/aeon-slider.d.ts +28 -0
- package/packages/panda/styled-system/recipes/aeon-slider.mjs +48 -0
- package/packages/panda/styled-system/recipes/index.d.ts +5 -0
- package/packages/panda/styled-system/recipes/index.mjs +5 -0
- package/packages/panda/styled-system/styles.css +233 -52
- package/packages/panda/styled-system/tokens/index.mjs +32 -0
- package/packages/panda/styled-system/tokens/tokens.d.ts +2 -2
- package/packages/panda/styled-system/types/conditions.d.ts +1 -1
- package/packages/primitives/src/index.ts +1 -0
- package/packages/primitives/src/machines/slider.ts +93 -0
- package/packages/react/src/checkbox/index.tsx +14 -0
- package/packages/react/src/floating/FloatingPositioner.tsx +59 -0
- package/packages/react/src/hooks/use-anchor-position.ts +33 -5
- package/packages/react/src/hooks/use-prefers-hover.ts +16 -0
- package/packages/react/src/index.ts +5 -0
- package/packages/react/src/menu/index.tsx +38 -11
- package/packages/react/src/pin-input/index.tsx +223 -0
- package/packages/react/src/popover/index.tsx +38 -11
- package/packages/react/src/progress/index.tsx +110 -0
- package/packages/react/src/radio-group/index.tsx +199 -0
- package/packages/react/src/select/index.tsx +51 -28
- package/packages/react/src/select/select.test.tsx +21 -0
- package/packages/react/src/separator/index.tsx +23 -0
- package/packages/react/src/slider/index.tsx +264 -0
- package/packages/react/src/toast/primitives.tsx +8 -1
- package/packages/react/src/toast/toast.test.tsx +40 -0
- package/packages/react/src/tooltip/index.tsx +124 -20
- package/packages/react/src/tooltip/tooltip.test.tsx +114 -0
- package/packages/site/README.md +1 -1
- package/packages/ui/src/index.ts +5 -0
- package/packages/ui/src/pin-input.tsx +16 -0
- package/packages/ui/src/progress.tsx +21 -0
- package/packages/ui/src/radio-group.tsx +24 -0
- package/packages/ui/src/select.tsx +3 -4
- package/packages/ui/src/separator.tsx +15 -0
- package/packages/ui/src/slider.tsx +24 -0
- package/apps/demo/public/og.png +0 -0
- package/apps/demo/src/components/SceneSection.tsx +0 -157
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { defineSlotRecipe } from '@pandacss/dev'
|
|
2
|
+
|
|
3
|
+
const slots = ['root', 'track', 'range', 'label'] as const
|
|
4
|
+
|
|
5
|
+
export const progressRecipe = defineSlotRecipe({
|
|
6
|
+
className: 'aeonProgress',
|
|
7
|
+
slots,
|
|
8
|
+
base: {
|
|
9
|
+
root: {
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexDirection: 'column',
|
|
12
|
+
gap: 'gapSm',
|
|
13
|
+
fontFamily: 'ui',
|
|
14
|
+
width: '100%',
|
|
15
|
+
'&[data-aeon-state=loading] .aeonProgress__range': {
|
|
16
|
+
width: '40%!',
|
|
17
|
+
animation: 'aeonProgressIndeterminate 1.2s ease-in-out infinite',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
track: {
|
|
21
|
+
position: 'relative',
|
|
22
|
+
width: '100%',
|
|
23
|
+
height: '0.5rem',
|
|
24
|
+
borderRadius: 'full',
|
|
25
|
+
bg: 'surface',
|
|
26
|
+
borderWidth: '1px',
|
|
27
|
+
borderStyle: 'solid',
|
|
28
|
+
borderColor: 'border',
|
|
29
|
+
overflow: 'hidden',
|
|
30
|
+
},
|
|
31
|
+
range: {
|
|
32
|
+
height: '100%',
|
|
33
|
+
borderRadius: 'full',
|
|
34
|
+
bg: 'accent',
|
|
35
|
+
transitionProperty: 'width',
|
|
36
|
+
transitionDuration: 'normal',
|
|
37
|
+
},
|
|
38
|
+
label: {
|
|
39
|
+
fontSize: 'sm',
|
|
40
|
+
color: 'muted',
|
|
41
|
+
lineHeight: 'snug',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
})
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { defineSlotRecipe } from '@pandacss/dev'
|
|
2
|
+
import { fieldLabelBase, fieldRootBase } from './field-shared.js'
|
|
3
|
+
|
|
4
|
+
const slots = ['root', 'item', 'itemControl', 'itemIndicator', 'itemLabel'] as const
|
|
5
|
+
|
|
6
|
+
export const radioGroupRecipe = defineSlotRecipe({
|
|
7
|
+
className: 'aeonRadioGroup',
|
|
8
|
+
slots,
|
|
9
|
+
base: {
|
|
10
|
+
root: {
|
|
11
|
+
display: 'flex',
|
|
12
|
+
flexDirection: 'column',
|
|
13
|
+
gap: 'gapSm',
|
|
14
|
+
fontFamily: 'ui',
|
|
15
|
+
},
|
|
16
|
+
item: {
|
|
17
|
+
...fieldRootBase,
|
|
18
|
+
},
|
|
19
|
+
itemControl: {
|
|
20
|
+
display: 'inline-flex',
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
justifyContent: 'center',
|
|
23
|
+
width: '1.5rem',
|
|
24
|
+
height: '1.5rem',
|
|
25
|
+
flexShrink: 0,
|
|
26
|
+
borderRadius: 'full',
|
|
27
|
+
borderWidth: '1px',
|
|
28
|
+
borderStyle: 'solid',
|
|
29
|
+
borderColor: 'border',
|
|
30
|
+
bg: 'surface',
|
|
31
|
+
cursor: 'pointer',
|
|
32
|
+
transitionProperty: 'background-color, border-color',
|
|
33
|
+
transitionDuration: 'normal',
|
|
34
|
+
outline: 'none',
|
|
35
|
+
_focusVisible: { boxShadow: 'focusRing' },
|
|
36
|
+
_aeonSelected: {
|
|
37
|
+
borderColor: 'accent',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
itemIndicator: {
|
|
41
|
+
width: '0.625rem',
|
|
42
|
+
height: '0.625rem',
|
|
43
|
+
borderRadius: 'full',
|
|
44
|
+
bg: 'accent',
|
|
45
|
+
},
|
|
46
|
+
itemLabel: {
|
|
47
|
+
...fieldLabelBase,
|
|
48
|
+
cursor: 'pointer',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
})
|
|
@@ -16,7 +16,8 @@ export const selectRecipe = defineSlotRecipe({
|
|
|
16
16
|
justifyContent: 'space-between',
|
|
17
17
|
gap: 'gapSm',
|
|
18
18
|
width: '100%',
|
|
19
|
-
|
|
19
|
+
boxSizing: 'border-box',
|
|
20
|
+
minH: 'controlMinHSm',
|
|
20
21
|
py: 'controlY',
|
|
21
22
|
px: 'controlX',
|
|
22
23
|
borderRadius: 'sm',
|
|
@@ -62,6 +63,7 @@ export const selectRecipe = defineSlotRecipe({
|
|
|
62
63
|
borderBottom: '2px solid',
|
|
63
64
|
borderColor: 'muted',
|
|
64
65
|
transform: 'rotate(45deg) translateY(-1px)',
|
|
66
|
+
transformOrigin: 'center',
|
|
65
67
|
transitionProperty: 'transform',
|
|
66
68
|
transitionDuration: 'normal',
|
|
67
69
|
},
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { defineSlotRecipe } from '@pandacss/dev'
|
|
2
|
+
|
|
3
|
+
const slots = ['root'] as const
|
|
4
|
+
|
|
5
|
+
export const separatorRecipe = defineSlotRecipe({
|
|
6
|
+
className: 'aeonSeparator',
|
|
7
|
+
slots,
|
|
8
|
+
base: {
|
|
9
|
+
root: {
|
|
10
|
+
flexShrink: 0,
|
|
11
|
+
bg: 'border',
|
|
12
|
+
border: 'none',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
variants: {
|
|
16
|
+
orientation: {
|
|
17
|
+
horizontal: {
|
|
18
|
+
root: {
|
|
19
|
+
width: '100%',
|
|
20
|
+
height: '1px',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
vertical: {
|
|
24
|
+
root: {
|
|
25
|
+
width: '1px',
|
|
26
|
+
height: '100%',
|
|
27
|
+
alignSelf: 'stretch',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
orientation: 'horizontal',
|
|
34
|
+
},
|
|
35
|
+
})
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { defineSlotRecipe } from '@pandacss/dev'
|
|
2
|
+
|
|
3
|
+
export const sliderRecipe = defineSlotRecipe({
|
|
4
|
+
className: 'aeonSlider',
|
|
5
|
+
slots: ['root', 'track', 'range', 'thumb', 'valueText'],
|
|
6
|
+
base: {
|
|
7
|
+
root: {
|
|
8
|
+
position: 'relative',
|
|
9
|
+
display: 'flex',
|
|
10
|
+
flexDirection: 'column',
|
|
11
|
+
gap: 'gapSm',
|
|
12
|
+
width: '100%',
|
|
13
|
+
minW: '8rem',
|
|
14
|
+
},
|
|
15
|
+
track: {
|
|
16
|
+
position: 'relative',
|
|
17
|
+
height: '0.35rem',
|
|
18
|
+
borderRadius: 'full',
|
|
19
|
+
bg: 'surface',
|
|
20
|
+
borderWidth: '1px',
|
|
21
|
+
borderStyle: 'solid',
|
|
22
|
+
borderColor: 'border',
|
|
23
|
+
cursor: 'pointer',
|
|
24
|
+
touchAction: 'none',
|
|
25
|
+
},
|
|
26
|
+
range: {
|
|
27
|
+
position: 'absolute',
|
|
28
|
+
top: '0',
|
|
29
|
+
left: '0',
|
|
30
|
+
height: '100%',
|
|
31
|
+
borderRadius: 'full',
|
|
32
|
+
bg: 'accentDim',
|
|
33
|
+
pointerEvents: 'none',
|
|
34
|
+
},
|
|
35
|
+
thumb: {
|
|
36
|
+
position: 'absolute',
|
|
37
|
+
top: '50%',
|
|
38
|
+
width: '1rem',
|
|
39
|
+
height: '1rem',
|
|
40
|
+
borderRadius: 'full',
|
|
41
|
+
bg: 'accent',
|
|
42
|
+
borderWidth: '2px',
|
|
43
|
+
borderStyle: 'solid',
|
|
44
|
+
borderColor: 'surfaceRaised',
|
|
45
|
+
transform: 'translate(-50%, -50%)',
|
|
46
|
+
cursor: 'grab',
|
|
47
|
+
boxShadow: 'panel',
|
|
48
|
+
_focusVisible: { boxShadow: 'focusRing' },
|
|
49
|
+
'&[data-aeon-state=dragging]': { cursor: 'grabbing' },
|
|
50
|
+
},
|
|
51
|
+
valueText: {
|
|
52
|
+
fontSize: 'xs',
|
|
53
|
+
fontFamily: 'ui',
|
|
54
|
+
color: 'muted',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
})
|
|
@@ -25,6 +25,11 @@ export const tokens = defineTokens({
|
|
|
25
25
|
controlY: { value: '0.375rem' },
|
|
26
26
|
controlXSm: { value: '0.625rem' },
|
|
27
27
|
controlYSm: { value: '0.3125rem' },
|
|
28
|
+
/** Shared min-heights — button sizes and matching inputs align to these tiers. */
|
|
29
|
+
controlMinHXs: { value: '1.75rem' },
|
|
30
|
+
controlMinHSm: { value: '2rem' },
|
|
31
|
+
controlMinHMd: { value: '2.25rem' },
|
|
32
|
+
controlMinHLg: { value: '2.5rem' },
|
|
28
33
|
badgeX: { value: '0.5rem' },
|
|
29
34
|
badgeY: { value: '0.125rem' },
|
|
30
35
|
insetXSm: { value: '1.125rem' },
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import type { ConditionalValue } from '../types/index';
|
|
3
|
+
import type { DistributiveOmit, Pretty } from '../types/system-types';
|
|
4
|
+
|
|
5
|
+
interface AeonPinInputVariant {
|
|
6
|
+
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type AeonPinInputVariantMap = {
|
|
10
|
+
[key in keyof AeonPinInputVariant]: Array<AeonPinInputVariant[key]>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type AeonPinInputVariantProps = {
|
|
14
|
+
[key in keyof AeonPinInputVariant]?: ConditionalValue<AeonPinInputVariant[key]> | undefined
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AeonPinInputRecipe {
|
|
18
|
+
__type: AeonPinInputVariantProps
|
|
19
|
+
(props?: AeonPinInputVariantProps): Pretty<Record<"root" | "input", string>>
|
|
20
|
+
raw: (props?: AeonPinInputVariantProps) => AeonPinInputVariantProps
|
|
21
|
+
variantMap: AeonPinInputVariantMap
|
|
22
|
+
variantKeys: Array<keyof AeonPinInputVariant>
|
|
23
|
+
splitVariantProps<Props extends AeonPinInputVariantProps>(props: Props): [AeonPinInputVariantProps, Pretty<DistributiveOmit<Props, keyof AeonPinInputVariantProps>>]
|
|
24
|
+
getVariantProps: (props?: AeonPinInputVariantProps) => AeonPinInputVariantProps
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
export declare const aeonPinInput: AeonPinInputRecipe
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.mjs';
|
|
2
|
+
import { createRecipe } from './create-recipe.mjs';
|
|
3
|
+
|
|
4
|
+
const aeonPinInputDefaultVariants = {}
|
|
5
|
+
const aeonPinInputCompoundVariants = []
|
|
6
|
+
|
|
7
|
+
const aeonPinInputSlotNames = [
|
|
8
|
+
[
|
|
9
|
+
"root",
|
|
10
|
+
"aeonPinInput__root"
|
|
11
|
+
],
|
|
12
|
+
[
|
|
13
|
+
"input",
|
|
14
|
+
"aeonPinInput__input"
|
|
15
|
+
]
|
|
16
|
+
]
|
|
17
|
+
const aeonPinInputSlotFns = /* @__PURE__ */ aeonPinInputSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, aeonPinInputDefaultVariants, getSlotCompoundVariant(aeonPinInputCompoundVariants, slotName))])
|
|
18
|
+
|
|
19
|
+
const aeonPinInputFn = memo((props = {}) => {
|
|
20
|
+
return Object.fromEntries(aeonPinInputSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]))
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
const aeonPinInputVariantKeys = []
|
|
24
|
+
const getVariantProps = (variants) => ({ ...aeonPinInputDefaultVariants, ...compact(variants) })
|
|
25
|
+
|
|
26
|
+
export const aeonPinInput = /* @__PURE__ */ Object.assign(aeonPinInputFn, {
|
|
27
|
+
__recipe__: false,
|
|
28
|
+
__name__: 'aeonPinInput',
|
|
29
|
+
raw: (props) => props,
|
|
30
|
+
variantKeys: aeonPinInputVariantKeys,
|
|
31
|
+
variantMap: {},
|
|
32
|
+
splitVariantProps(props) {
|
|
33
|
+
return splitProps(props, aeonPinInputVariantKeys)
|
|
34
|
+
},
|
|
35
|
+
getVariantProps
|
|
36
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import type { ConditionalValue } from '../types/index';
|
|
3
|
+
import type { DistributiveOmit, Pretty } from '../types/system-types';
|
|
4
|
+
|
|
5
|
+
interface AeonProgressVariant {
|
|
6
|
+
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type AeonProgressVariantMap = {
|
|
10
|
+
[key in keyof AeonProgressVariant]: Array<AeonProgressVariant[key]>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type AeonProgressVariantProps = {
|
|
14
|
+
[key in keyof AeonProgressVariant]?: ConditionalValue<AeonProgressVariant[key]> | undefined
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AeonProgressRecipe {
|
|
18
|
+
__type: AeonProgressVariantProps
|
|
19
|
+
(props?: AeonProgressVariantProps): Pretty<Record<"root" | "track" | "range" | "label", string>>
|
|
20
|
+
raw: (props?: AeonProgressVariantProps) => AeonProgressVariantProps
|
|
21
|
+
variantMap: AeonProgressVariantMap
|
|
22
|
+
variantKeys: Array<keyof AeonProgressVariant>
|
|
23
|
+
splitVariantProps<Props extends AeonProgressVariantProps>(props: Props): [AeonProgressVariantProps, Pretty<DistributiveOmit<Props, keyof AeonProgressVariantProps>>]
|
|
24
|
+
getVariantProps: (props?: AeonProgressVariantProps) => AeonProgressVariantProps
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
export declare const aeonProgress: AeonProgressRecipe
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.mjs';
|
|
2
|
+
import { createRecipe } from './create-recipe.mjs';
|
|
3
|
+
|
|
4
|
+
const aeonProgressDefaultVariants = {}
|
|
5
|
+
const aeonProgressCompoundVariants = []
|
|
6
|
+
|
|
7
|
+
const aeonProgressSlotNames = [
|
|
8
|
+
[
|
|
9
|
+
"root",
|
|
10
|
+
"aeonProgress__root"
|
|
11
|
+
],
|
|
12
|
+
[
|
|
13
|
+
"track",
|
|
14
|
+
"aeonProgress__track"
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
"range",
|
|
18
|
+
"aeonProgress__range"
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
"label",
|
|
22
|
+
"aeonProgress__label"
|
|
23
|
+
]
|
|
24
|
+
]
|
|
25
|
+
const aeonProgressSlotFns = /* @__PURE__ */ aeonProgressSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, aeonProgressDefaultVariants, getSlotCompoundVariant(aeonProgressCompoundVariants, slotName))])
|
|
26
|
+
|
|
27
|
+
const aeonProgressFn = memo((props = {}) => {
|
|
28
|
+
return Object.fromEntries(aeonProgressSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]))
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const aeonProgressVariantKeys = []
|
|
32
|
+
const getVariantProps = (variants) => ({ ...aeonProgressDefaultVariants, ...compact(variants) })
|
|
33
|
+
|
|
34
|
+
export const aeonProgress = /* @__PURE__ */ Object.assign(aeonProgressFn, {
|
|
35
|
+
__recipe__: false,
|
|
36
|
+
__name__: 'aeonProgress',
|
|
37
|
+
raw: (props) => props,
|
|
38
|
+
variantKeys: aeonProgressVariantKeys,
|
|
39
|
+
variantMap: {},
|
|
40
|
+
splitVariantProps(props) {
|
|
41
|
+
return splitProps(props, aeonProgressVariantKeys)
|
|
42
|
+
},
|
|
43
|
+
getVariantProps
|
|
44
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import type { ConditionalValue } from '../types/index';
|
|
3
|
+
import type { DistributiveOmit, Pretty } from '../types/system-types';
|
|
4
|
+
|
|
5
|
+
interface AeonRadioGroupVariant {
|
|
6
|
+
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type AeonRadioGroupVariantMap = {
|
|
10
|
+
[key in keyof AeonRadioGroupVariant]: Array<AeonRadioGroupVariant[key]>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type AeonRadioGroupVariantProps = {
|
|
14
|
+
[key in keyof AeonRadioGroupVariant]?: ConditionalValue<AeonRadioGroupVariant[key]> | undefined
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AeonRadioGroupRecipe {
|
|
18
|
+
__type: AeonRadioGroupVariantProps
|
|
19
|
+
(props?: AeonRadioGroupVariantProps): Pretty<Record<"root" | "item" | "itemControl" | "itemIndicator" | "itemLabel", string>>
|
|
20
|
+
raw: (props?: AeonRadioGroupVariantProps) => AeonRadioGroupVariantProps
|
|
21
|
+
variantMap: AeonRadioGroupVariantMap
|
|
22
|
+
variantKeys: Array<keyof AeonRadioGroupVariant>
|
|
23
|
+
splitVariantProps<Props extends AeonRadioGroupVariantProps>(props: Props): [AeonRadioGroupVariantProps, Pretty<DistributiveOmit<Props, keyof AeonRadioGroupVariantProps>>]
|
|
24
|
+
getVariantProps: (props?: AeonRadioGroupVariantProps) => AeonRadioGroupVariantProps
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
export declare const aeonRadioGroup: AeonRadioGroupRecipe
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.mjs';
|
|
2
|
+
import { createRecipe } from './create-recipe.mjs';
|
|
3
|
+
|
|
4
|
+
const aeonRadioGroupDefaultVariants = {}
|
|
5
|
+
const aeonRadioGroupCompoundVariants = []
|
|
6
|
+
|
|
7
|
+
const aeonRadioGroupSlotNames = [
|
|
8
|
+
[
|
|
9
|
+
"root",
|
|
10
|
+
"aeonRadioGroup__root"
|
|
11
|
+
],
|
|
12
|
+
[
|
|
13
|
+
"item",
|
|
14
|
+
"aeonRadioGroup__item"
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
"itemControl",
|
|
18
|
+
"aeonRadioGroup__itemControl"
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
"itemIndicator",
|
|
22
|
+
"aeonRadioGroup__itemIndicator"
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
"itemLabel",
|
|
26
|
+
"aeonRadioGroup__itemLabel"
|
|
27
|
+
]
|
|
28
|
+
]
|
|
29
|
+
const aeonRadioGroupSlotFns = /* @__PURE__ */ aeonRadioGroupSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, aeonRadioGroupDefaultVariants, getSlotCompoundVariant(aeonRadioGroupCompoundVariants, slotName))])
|
|
30
|
+
|
|
31
|
+
const aeonRadioGroupFn = memo((props = {}) => {
|
|
32
|
+
return Object.fromEntries(aeonRadioGroupSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]))
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
const aeonRadioGroupVariantKeys = []
|
|
36
|
+
const getVariantProps = (variants) => ({ ...aeonRadioGroupDefaultVariants, ...compact(variants) })
|
|
37
|
+
|
|
38
|
+
export const aeonRadioGroup = /* @__PURE__ */ Object.assign(aeonRadioGroupFn, {
|
|
39
|
+
__recipe__: false,
|
|
40
|
+
__name__: 'aeonRadioGroup',
|
|
41
|
+
raw: (props) => props,
|
|
42
|
+
variantKeys: aeonRadioGroupVariantKeys,
|
|
43
|
+
variantMap: {},
|
|
44
|
+
splitVariantProps(props) {
|
|
45
|
+
return splitProps(props, aeonRadioGroupVariantKeys)
|
|
46
|
+
},
|
|
47
|
+
getVariantProps
|
|
48
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import type { ConditionalValue } from '../types/index';
|
|
3
|
+
import type { DistributiveOmit, Pretty } from '../types/system-types';
|
|
4
|
+
|
|
5
|
+
interface AeonSeparatorVariant {
|
|
6
|
+
/**
|
|
7
|
+
* @default "horizontal"
|
|
8
|
+
*/
|
|
9
|
+
orientation: "horizontal" | "vertical"
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type AeonSeparatorVariantMap = {
|
|
13
|
+
[key in keyof AeonSeparatorVariant]: Array<AeonSeparatorVariant[key]>
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type AeonSeparatorVariantProps = {
|
|
17
|
+
[key in keyof AeonSeparatorVariant]?: ConditionalValue<AeonSeparatorVariant[key]> | undefined
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface AeonSeparatorRecipe {
|
|
21
|
+
__type: AeonSeparatorVariantProps
|
|
22
|
+
(props?: AeonSeparatorVariantProps): Pretty<Record<"root", string>>
|
|
23
|
+
raw: (props?: AeonSeparatorVariantProps) => AeonSeparatorVariantProps
|
|
24
|
+
variantMap: AeonSeparatorVariantMap
|
|
25
|
+
variantKeys: Array<keyof AeonSeparatorVariant>
|
|
26
|
+
splitVariantProps<Props extends AeonSeparatorVariantProps>(props: Props): [AeonSeparatorVariantProps, Pretty<DistributiveOmit<Props, keyof AeonSeparatorVariantProps>>]
|
|
27
|
+
getVariantProps: (props?: AeonSeparatorVariantProps) => AeonSeparatorVariantProps
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
export declare const aeonSeparator: AeonSeparatorRecipe
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.mjs';
|
|
2
|
+
import { createRecipe } from './create-recipe.mjs';
|
|
3
|
+
|
|
4
|
+
const aeonSeparatorDefaultVariants = {
|
|
5
|
+
"orientation": "horizontal"
|
|
6
|
+
}
|
|
7
|
+
const aeonSeparatorCompoundVariants = []
|
|
8
|
+
|
|
9
|
+
const aeonSeparatorSlotNames = [
|
|
10
|
+
[
|
|
11
|
+
"root",
|
|
12
|
+
"aeonSeparator__root"
|
|
13
|
+
]
|
|
14
|
+
]
|
|
15
|
+
const aeonSeparatorSlotFns = /* @__PURE__ */ aeonSeparatorSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, aeonSeparatorDefaultVariants, getSlotCompoundVariant(aeonSeparatorCompoundVariants, slotName))])
|
|
16
|
+
|
|
17
|
+
const aeonSeparatorFn = memo((props = {}) => {
|
|
18
|
+
return Object.fromEntries(aeonSeparatorSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]))
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
const aeonSeparatorVariantKeys = [
|
|
22
|
+
"orientation"
|
|
23
|
+
]
|
|
24
|
+
const getVariantProps = (variants) => ({ ...aeonSeparatorDefaultVariants, ...compact(variants) })
|
|
25
|
+
|
|
26
|
+
export const aeonSeparator = /* @__PURE__ */ Object.assign(aeonSeparatorFn, {
|
|
27
|
+
__recipe__: false,
|
|
28
|
+
__name__: 'aeonSeparator',
|
|
29
|
+
raw: (props) => props,
|
|
30
|
+
variantKeys: aeonSeparatorVariantKeys,
|
|
31
|
+
variantMap: {
|
|
32
|
+
"orientation": [
|
|
33
|
+
"horizontal",
|
|
34
|
+
"vertical"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
splitVariantProps(props) {
|
|
38
|
+
return splitProps(props, aeonSeparatorVariantKeys)
|
|
39
|
+
},
|
|
40
|
+
getVariantProps
|
|
41
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import type { ConditionalValue } from '../types/index';
|
|
3
|
+
import type { DistributiveOmit, Pretty } from '../types/system-types';
|
|
4
|
+
|
|
5
|
+
interface AeonSliderVariant {
|
|
6
|
+
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type AeonSliderVariantMap = {
|
|
10
|
+
[key in keyof AeonSliderVariant]: Array<AeonSliderVariant[key]>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type AeonSliderVariantProps = {
|
|
14
|
+
[key in keyof AeonSliderVariant]?: ConditionalValue<AeonSliderVariant[key]> | undefined
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AeonSliderRecipe {
|
|
18
|
+
__type: AeonSliderVariantProps
|
|
19
|
+
(props?: AeonSliderVariantProps): Pretty<Record<"root" | "track" | "range" | "thumb" | "valueText", string>>
|
|
20
|
+
raw: (props?: AeonSliderVariantProps) => AeonSliderVariantProps
|
|
21
|
+
variantMap: AeonSliderVariantMap
|
|
22
|
+
variantKeys: Array<keyof AeonSliderVariant>
|
|
23
|
+
splitVariantProps<Props extends AeonSliderVariantProps>(props: Props): [AeonSliderVariantProps, Pretty<DistributiveOmit<Props, keyof AeonSliderVariantProps>>]
|
|
24
|
+
getVariantProps: (props?: AeonSliderVariantProps) => AeonSliderVariantProps
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
export declare const aeonSlider: AeonSliderRecipe
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.mjs';
|
|
2
|
+
import { createRecipe } from './create-recipe.mjs';
|
|
3
|
+
|
|
4
|
+
const aeonSliderDefaultVariants = {}
|
|
5
|
+
const aeonSliderCompoundVariants = []
|
|
6
|
+
|
|
7
|
+
const aeonSliderSlotNames = [
|
|
8
|
+
[
|
|
9
|
+
"root",
|
|
10
|
+
"aeonSlider__root"
|
|
11
|
+
],
|
|
12
|
+
[
|
|
13
|
+
"track",
|
|
14
|
+
"aeonSlider__track"
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
"range",
|
|
18
|
+
"aeonSlider__range"
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
"thumb",
|
|
22
|
+
"aeonSlider__thumb"
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
"valueText",
|
|
26
|
+
"aeonSlider__valueText"
|
|
27
|
+
]
|
|
28
|
+
]
|
|
29
|
+
const aeonSliderSlotFns = /* @__PURE__ */ aeonSliderSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, aeonSliderDefaultVariants, getSlotCompoundVariant(aeonSliderCompoundVariants, slotName))])
|
|
30
|
+
|
|
31
|
+
const aeonSliderFn = memo((props = {}) => {
|
|
32
|
+
return Object.fromEntries(aeonSliderSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]))
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
const aeonSliderVariantKeys = []
|
|
36
|
+
const getVariantProps = (variants) => ({ ...aeonSliderDefaultVariants, ...compact(variants) })
|
|
37
|
+
|
|
38
|
+
export const aeonSlider = /* @__PURE__ */ Object.assign(aeonSliderFn, {
|
|
39
|
+
__recipe__: false,
|
|
40
|
+
__name__: 'aeonSlider',
|
|
41
|
+
raw: (props) => props,
|
|
42
|
+
variantKeys: aeonSliderVariantKeys,
|
|
43
|
+
variantMap: {},
|
|
44
|
+
splitVariantProps(props) {
|
|
45
|
+
return splitProps(props, aeonSliderVariantKeys)
|
|
46
|
+
},
|
|
47
|
+
getVariantProps
|
|
48
|
+
})
|
|
@@ -5,6 +5,11 @@ export * from './aeon-badge';
|
|
|
5
5
|
export * from './aeon-accordion';
|
|
6
6
|
export * from './aeon-dialog';
|
|
7
7
|
export * from './aeon-tabs';
|
|
8
|
+
export * from './aeon-separator';
|
|
9
|
+
export * from './aeon-progress';
|
|
10
|
+
export * from './aeon-radio-group';
|
|
11
|
+
export * from './aeon-slider';
|
|
12
|
+
export * from './aeon-pin-input';
|
|
8
13
|
export * from './aeon-switch';
|
|
9
14
|
export * from './aeon-checkbox';
|
|
10
15
|
export * from './aeon-async';
|
|
@@ -4,6 +4,11 @@ export * from './aeon-badge.mjs';
|
|
|
4
4
|
export * from './aeon-accordion.mjs';
|
|
5
5
|
export * from './aeon-dialog.mjs';
|
|
6
6
|
export * from './aeon-tabs.mjs';
|
|
7
|
+
export * from './aeon-separator.mjs';
|
|
8
|
+
export * from './aeon-progress.mjs';
|
|
9
|
+
export * from './aeon-radio-group.mjs';
|
|
10
|
+
export * from './aeon-slider.mjs';
|
|
11
|
+
export * from './aeon-pin-input.mjs';
|
|
7
12
|
export * from './aeon-switch.mjs';
|
|
8
13
|
export * from './aeon-checkbox.mjs';
|
|
9
14
|
export * from './aeon-async.mjs';
|