aeon-ui-engine 1.0.0 → 1.0.1

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.
Files changed (79) hide show
  1. package/COMPONENTS.md +7 -2
  2. package/INTEGRATION.md +14 -0
  3. package/README.md +8 -4
  4. package/apps/demo/og.config.mjs +8 -3
  5. package/apps/demo/public/og-aeon-ui-engine.png +0 -0
  6. package/apps/demo/public/og.svg +2 -2
  7. package/apps/demo/scripts/generate-og-png.mjs +4 -2
  8. package/apps/demo/src/App.tsx +2 -2
  9. package/apps/demo/src/aeonDiagrams.ts +17 -75
  10. package/apps/demo/src/components/DiagramsSection.tsx +8 -9
  11. package/apps/demo/src/components/HeroInstall.tsx +7 -4
  12. package/apps/demo/src/components/LandingFaq.tsx +1 -1
  13. package/apps/demo/src/components/LandingFooter.tsx +8 -0
  14. package/apps/demo/src/components/LandingHeader.tsx +4 -2
  15. package/apps/demo/src/components/LayersSection.tsx +6 -10
  16. package/apps/demo/src/components/MermaidDiagram.tsx +5 -3
  17. package/apps/demo/src/components/PhilosophySection.tsx +0 -2
  18. package/apps/demo/src/components/PlaygroundBlock.tsx +3 -8
  19. package/apps/demo/src/components/PlaygroundControlsDemo.tsx +63 -0
  20. package/apps/demo/src/components/PlaygroundSection.tsx +7 -91
  21. package/apps/demo/src/components/ThemeSwitcher.tsx +12 -9
  22. package/apps/demo/src/demo-layout.css +29 -0
  23. package/apps/demo/src/landing.css +136 -79
  24. package/apps/demo/src/nav.ts +3 -3
  25. package/apps/demo/src/site.ts +99 -228
  26. package/docs/MACHINES.md +6 -1
  27. package/package.json +1 -1
  28. package/packages/core/src/anatomy.ts +23 -0
  29. package/packages/panda/panda.config.ts +19 -1
  30. package/packages/panda/src/recipes/index.ts +5 -0
  31. package/packages/panda/src/recipes/pin-input.ts +29 -0
  32. package/packages/panda/src/recipes/progress.ts +44 -0
  33. package/packages/panda/src/recipes/radio-group.ts +51 -0
  34. package/packages/panda/src/recipes/select.ts +2 -0
  35. package/packages/panda/src/recipes/separator.ts +35 -0
  36. package/packages/panda/src/recipes/slider.ts +57 -0
  37. package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +28 -0
  38. package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +36 -0
  39. package/packages/panda/styled-system/recipes/aeon-progress.d.ts +28 -0
  40. package/packages/panda/styled-system/recipes/aeon-progress.mjs +44 -0
  41. package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +28 -0
  42. package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +48 -0
  43. package/packages/panda/styled-system/recipes/aeon-separator.d.ts +31 -0
  44. package/packages/panda/styled-system/recipes/aeon-separator.mjs +41 -0
  45. package/packages/panda/styled-system/recipes/aeon-slider.d.ts +28 -0
  46. package/packages/panda/styled-system/recipes/aeon-slider.mjs +48 -0
  47. package/packages/panda/styled-system/recipes/index.d.ts +5 -0
  48. package/packages/panda/styled-system/recipes/index.mjs +5 -0
  49. package/packages/panda/styled-system/styles.css +223 -46
  50. package/packages/panda/styled-system/types/conditions.d.ts +1 -1
  51. package/packages/primitives/src/index.ts +1 -0
  52. package/packages/primitives/src/machines/slider.ts +93 -0
  53. package/packages/react/src/checkbox/index.tsx +14 -0
  54. package/packages/react/src/floating/FloatingPositioner.tsx +59 -0
  55. package/packages/react/src/hooks/use-anchor-position.ts +33 -5
  56. package/packages/react/src/hooks/use-prefers-hover.ts +16 -0
  57. package/packages/react/src/index.ts +5 -0
  58. package/packages/react/src/menu/index.tsx +38 -11
  59. package/packages/react/src/pin-input/index.tsx +223 -0
  60. package/packages/react/src/popover/index.tsx +38 -11
  61. package/packages/react/src/progress/index.tsx +110 -0
  62. package/packages/react/src/radio-group/index.tsx +199 -0
  63. package/packages/react/src/select/index.tsx +51 -28
  64. package/packages/react/src/select/select.test.tsx +21 -0
  65. package/packages/react/src/separator/index.tsx +23 -0
  66. package/packages/react/src/slider/index.tsx +264 -0
  67. package/packages/react/src/toast/primitives.tsx +8 -1
  68. package/packages/react/src/toast/toast.test.tsx +40 -0
  69. package/packages/react/src/tooltip/index.tsx +124 -20
  70. package/packages/react/src/tooltip/tooltip.test.tsx +114 -0
  71. package/packages/site/README.md +1 -1
  72. package/packages/ui/src/index.ts +5 -0
  73. package/packages/ui/src/pin-input.tsx +16 -0
  74. package/packages/ui/src/progress.tsx +21 -0
  75. package/packages/ui/src/radio-group.tsx +24 -0
  76. package/packages/ui/src/separator.tsx +15 -0
  77. package/packages/ui/src/slider.tsx +24 -0
  78. package/apps/demo/public/og.png +0 -0
  79. package/apps/demo/src/components/SceneSection.tsx +0 -157
@@ -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,6 +16,7 @@ export const selectRecipe = defineSlotRecipe({
16
16
  justifyContent: 'space-between',
17
17
  gap: 'gapSm',
18
18
  width: '100%',
19
+ boxSizing: 'border-box',
19
20
  minH: '2rem',
20
21
  py: 'controlY',
21
22
  px: 'controlX',
@@ -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
+ })
@@ -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';