@accelint/design-system 0.8.1 → 0.9.0
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/dist/components/aria/index.d.ts +32 -3
- package/dist/components/aria/index.js +36 -1
- package/dist/components/aria/index.js.map +1 -1
- package/dist/components/button/index.d.ts +45 -6
- package/dist/components/button/index.js +105 -3
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +28 -7
- package/dist/components/checkbox/index.js +124 -3
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/chip/index.d.ts +36 -6
- package/dist/components/chip/index.js +171 -3
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/collection/index.d.ts +16 -5
- package/dist/components/collection/index.js +19 -1
- package/dist/components/collection/index.js.map +1 -1
- package/dist/components/combo-box/index.d.ts +13 -5
- package/dist/components/combo-box/index.js +116 -3
- package/dist/components/combo-box/index.js.map +1 -1
- package/dist/components/date-field/index.d.ts +13 -5
- package/dist/components/date-field/index.js +106 -2
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-input/index.d.ts +19 -7
- package/dist/components/date-input/index.js +134 -2
- package/dist/components/date-input/index.js.map +1 -1
- package/dist/components/dialog/index.d.ts +24 -6
- package/dist/components/dialog/index.js +187 -3
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/drawer/index.d.ts +19 -7
- package/dist/components/drawer/index.js +306 -3
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/element/index.d.ts +15 -4
- package/dist/components/element/index.js +21 -2
- package/dist/components/element/index.js.map +1 -1
- package/dist/components/group/index.d.ts +15 -5
- package/dist/components/group/index.js +60 -3
- package/dist/components/group/index.js.map +1 -1
- package/dist/components/icon/index.d.ts +17 -5
- package/dist/components/icon/index.js +39 -3
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/index.d.ts +35 -35
- package/dist/components/index.js +58 -28
- package/dist/components/input/index.d.ts +12 -5
- package/dist/components/input/index.js +141 -3
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/menu/index.d.ts +29 -5
- package/dist/components/menu/index.js +253 -3
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/merge-provider/index.d.ts +18 -3
- package/dist/components/merge-provider/index.js +43 -2
- package/dist/components/merge-provider/index.js.map +1 -1
- package/dist/components/number-field/index.d.ts +14 -6
- package/dist/components/number-field/index.js +127 -2
- package/dist/components/number-field/index.js.map +1 -1
- package/dist/components/number-field/number-field.css.d.ts +1 -1
- package/dist/components/number-field/types.d.ts +1 -1
- package/dist/components/options/index.d.ts +25 -5
- package/dist/components/options/index.js +254 -3
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/picker/index.d.ts +23 -5
- package/dist/components/picker/index.js +113 -3
- package/dist/components/picker/index.js.map +1 -1
- package/dist/components/popover/index.d.ts +14 -6
- package/dist/components/popover/index.js +140 -3
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/query-builder/group.js +1 -1
- package/dist/components/query-builder/group.js.map +1 -1
- package/dist/components/query-builder/index.d.ts +7 -7
- package/dist/components/query-builder/index.js +198 -5
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/query-builder/rule.js +1 -1
- package/dist/components/query-builder/rule.js.map +1 -1
- package/dist/components/query-builder/value-editor.js.map +1 -1
- package/dist/components/query-builder/value-selector.js +1 -1
- package/dist/components/query-builder/value-selector.js.map +1 -1
- package/dist/components/radio/index.d.ts +22 -6
- package/dist/components/radio/index.js +114 -3
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/search-field/index.d.ts +15 -6
- package/dist/components/search-field/index.js +92 -3
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/select/index.d.ts +13 -5
- package/dist/components/select/index.js +109 -3
- package/dist/components/select/index.js.map +1 -1
- package/dist/components/slider/index.d.ts +41 -7
- package/dist/components/slider/index.js +232 -3
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/slider.css.d.ts +1 -1
- package/dist/components/slider/types.d.ts +1 -1
- package/dist/components/switch/index.d.ts +9 -5
- package/dist/components/switch/index.js +60 -3
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/tabs/index.d.ts +74 -7
- package/dist/components/tabs/index.js +259 -3
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/text-field/index.d.ts +61 -6
- package/dist/components/text-field/index.js +93 -2
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/components/textarea/index.d.ts +18 -5
- package/dist/components/textarea/index.js +134 -3
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/time-field/index.d.ts +14 -6
- package/dist/components/time-field/index.js +103 -2
- package/dist/components/time-field/index.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +29 -6
- package/dist/components/tooltip/index.js +112 -3
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tree/index.d.ts +17 -5
- package/dist/components/tree/index.js +491 -3
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/utils.js.map +1 -1
- package/dist/hooks/index.d.ts +12 -12
- package/dist/hooks/use-collection-render/index.d.ts +11 -3
- package/dist/hooks/use-collection-render/index.js +25 -1
- package/dist/hooks/use-collection-render/index.js.map +1 -1
- package/dist/hooks/use-context-props/index.d.ts +10 -3
- package/dist/hooks/use-context-props/index.js +15 -1
- package/dist/hooks/use-context-props/index.js.map +1 -1
- package/dist/hooks/use-defaults/index.d.ts +99 -31
- package/dist/hooks/use-defaults/index.js +33 -2
- package/dist/hooks/use-defaults/index.js.map +1 -1
- package/dist/hooks/use-defaults/types.d.ts +6 -6
- package/dist/hooks/use-propagating-press/index.d.ts +13 -2
- package/dist/hooks/use-propagating-press/index.js +19 -1
- package/dist/hooks/use-propagating-press/index.js.map +1 -1
- package/dist/hooks/use-slot/index.d.ts +16 -2
- package/dist/hooks/use-slot/index.js +18 -1
- package/dist/hooks/use-slot/index.js.map +1 -1
- package/dist/hooks/use-theme/index.d.ts +37 -8
- package/dist/hooks/use-theme/index.js +105 -2
- package/dist/hooks/use-theme/index.js.map +1 -1
- package/dist/hooks/use-theme/types.d.ts +2 -2
- package/dist/hooks/use-tree/index.d.ts +5 -2
- package/dist/hooks/use-tree/index.js +259 -1
- package/dist/hooks/use-tree/index.js.map +1 -1
- package/dist/hooks/use-tree/utils.js.map +1 -1
- package/dist/hooks/use-update-effect/index.d.ts +3 -1
- package/dist/hooks/use-update-effect/index.js +20 -1
- package/dist/hooks/use-update-effect/index.js.map +1 -1
- package/dist/index.css +119 -119
- package/dist/index.d.ts +47 -47
- package/dist/ladle/actions.js.map +1 -1
- package/dist/styles/layers.css.d.ts +3 -3
- package/dist/styles/surfaces.css.d.ts +1 -1
- package/dist/test/setup.js +78 -8
- package/dist/test/setup.js.map +1 -1
- package/dist/utils/{css.d.ts → css/index.d.ts} +2 -2
- package/dist/utils/{css.js → css/index.js} +5 -5
- package/dist/utils/css/index.js.map +1 -0
- package/dist/utils/events/index.js +10 -0
- package/dist/utils/events/index.js.map +1 -0
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.js +4 -4
- package/dist/utils/{props.d.ts → props/index.d.ts} +2 -2
- package/dist/utils/{props.js → props/index.js} +3 -3
- package/dist/utils/props/index.js.map +1 -0
- package/dist/utils/{validators.d.ts → validators/index.d.ts} +1 -1
- package/dist/utils/{validators.js → validators/index.js} +3 -3
- package/dist/utils/validators/index.js.map +1 -0
- package/dist/vanilla.d.ts +1 -1
- package/dist/vanilla.js +1 -1
- package/package.json +7 -8
- package/dist/components/aria/aria.d.ts +0 -32
- package/dist/components/aria/aria.js +0 -39
- package/dist/components/aria/aria.js.map +0 -1
- package/dist/components/button/button.d.ts +0 -47
- package/dist/components/button/button.js +0 -104
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/checkbox/checkbox.d.ts +0 -30
- package/dist/components/checkbox/checkbox.js +0 -123
- package/dist/components/checkbox/checkbox.js.map +0 -1
- package/dist/components/chip/chip.d.ts +0 -41
- package/dist/components/chip/chip.js +0 -171
- package/dist/components/chip/chip.js.map +0 -1
- package/dist/components/collection/collection.d.ts +0 -17
- package/dist/components/collection/collection.js +0 -22
- package/dist/components/collection/collection.js.map +0 -1
- package/dist/components/combo-box/combo-box.d.ts +0 -21
- package/dist/components/combo-box/combo-box.js +0 -116
- package/dist/components/combo-box/combo-box.js.map +0 -1
- package/dist/components/date-field/date-field.d.ts +0 -20
- package/dist/components/date-field/date-field.js +0 -106
- package/dist/components/date-field/date-field.js.map +0 -1
- package/dist/components/date-input/date-input.d.ts +0 -42
- package/dist/components/date-input/date-input.js +0 -128
- package/dist/components/date-input/date-input.js.map +0 -1
- package/dist/components/dialog/dialog.d.ts +0 -29
- package/dist/components/dialog/dialog.js +0 -186
- package/dist/components/dialog/dialog.js.map +0 -1
- package/dist/components/drawer/drawer.d.ts +0 -28
- package/dist/components/drawer/drawer.js +0 -305
- package/dist/components/drawer/drawer.js.map +0 -1
- package/dist/components/element/element.d.ts +0 -16
- package/dist/components/element/element.js +0 -24
- package/dist/components/element/element.js.map +0 -1
- package/dist/components/group/group.d.ts +0 -16
- package/dist/components/group/group.js +0 -61
- package/dist/components/group/group.js.map +0 -1
- package/dist/components/icon/icon.d.ts +0 -17
- package/dist/components/icon/icon.js +0 -39
- package/dist/components/icon/icon.js.map +0 -1
- package/dist/components/input/input.d.ts +0 -13
- package/dist/components/input/input.js +0 -141
- package/dist/components/input/input.js.map +0 -1
- package/dist/components/menu/menu.d.ts +0 -32
- package/dist/components/menu/menu.js +0 -252
- package/dist/components/menu/menu.js.map +0 -1
- package/dist/components/merge-provider/merge-provider.d.ts +0 -20
- package/dist/components/merge-provider/merge-provider.js +0 -46
- package/dist/components/merge-provider/merge-provider.js.map +0 -1
- package/dist/components/number-field/number-field.d.ts +0 -20
- package/dist/components/number-field/number-field.js +0 -125
- package/dist/components/number-field/number-field.js.map +0 -1
- package/dist/components/options/options.d.ts +0 -28
- package/dist/components/options/options.js +0 -253
- package/dist/components/options/options.js.map +0 -1
- package/dist/components/picker/picker.d.ts +0 -24
- package/dist/components/picker/picker.js +0 -113
- package/dist/components/picker/picker.js.map +0 -1
- package/dist/components/popover/popover.d.ts +0 -22
- package/dist/components/popover/popover.js +0 -139
- package/dist/components/popover/popover.js.map +0 -1
- package/dist/components/query-builder/query-builder.d.ts +0 -23
- package/dist/components/query-builder/query-builder.js +0 -200
- package/dist/components/query-builder/query-builder.js.map +0 -1
- package/dist/components/radio/radio.d.ts +0 -23
- package/dist/components/radio/radio.js +0 -114
- package/dist/components/radio/radio.js.map +0 -1
- package/dist/components/search-field/search-field.d.ts +0 -21
- package/dist/components/search-field/search-field.js +0 -92
- package/dist/components/search-field/search-field.js.map +0 -1
- package/dist/components/select/select.d.ts +0 -20
- package/dist/components/select/select.js +0 -109
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/slider/slider.d.ts +0 -49
- package/dist/components/slider/slider.js +0 -230
- package/dist/components/slider/slider.js.map +0 -1
- package/dist/components/switch/switch.d.ts +0 -10
- package/dist/components/switch/switch.js +0 -60
- package/dist/components/switch/switch.js.map +0 -1
- package/dist/components/tabs/tabs.d.ts +0 -75
- package/dist/components/tabs/tabs.js +0 -258
- package/dist/components/tabs/tabs.js.map +0 -1
- package/dist/components/text-field/text-field.d.ts +0 -64
- package/dist/components/text-field/text-field.js +0 -92
- package/dist/components/text-field/text-field.js.map +0 -1
- package/dist/components/textarea/textarea.d.ts +0 -19
- package/dist/components/textarea/textarea.js +0 -134
- package/dist/components/textarea/textarea.js.map +0 -1
- package/dist/components/time-field/time-field.d.ts +0 -21
- package/dist/components/time-field/time-field.js +0 -106
- package/dist/components/time-field/time-field.js.map +0 -1
- package/dist/components/tooltip/tooltip.d.ts +0 -30
- package/dist/components/tooltip/tooltip.js +0 -112
- package/dist/components/tooltip/tooltip.js.map +0 -1
- package/dist/components/tree/tree.d.ts +0 -29
- package/dist/components/tree/tree.js +0 -491
- package/dist/components/tree/tree.js.map +0 -1
- package/dist/hooks/use-collection-render/use-collection-render.d.ts +0 -11
- package/dist/hooks/use-collection-render/use-collection-render.js +0 -28
- package/dist/hooks/use-collection-render/use-collection-render.js.map +0 -1
- package/dist/hooks/use-context-props/use-context-props.d.ts +0 -10
- package/dist/hooks/use-context-props/use-context-props.js +0 -18
- package/dist/hooks/use-context-props/use-context-props.js.map +0 -1
- package/dist/hooks/use-defaults/use-defaults.d.ts +0 -110
- package/dist/hooks/use-defaults/use-defaults.js +0 -36
- package/dist/hooks/use-defaults/use-defaults.js.map +0 -1
- package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +0 -13
- package/dist/hooks/use-propagating-press/use-propagating-press.js +0 -21
- package/dist/hooks/use-propagating-press/use-propagating-press.js.map +0 -1
- package/dist/hooks/use-slot/use-slot.d.ts +0 -16
- package/dist/hooks/use-slot/use-slot.js +0 -21
- package/dist/hooks/use-slot/use-slot.js.map +0 -1
- package/dist/hooks/use-theme/use-theme.d.ts +0 -77
- package/dist/hooks/use-theme/use-theme.js +0 -108
- package/dist/hooks/use-theme/use-theme.js.map +0 -1
- package/dist/hooks/use-tree/use-tree.d.ts +0 -7
- package/dist/hooks/use-tree/use-tree.js +0 -262
- package/dist/hooks/use-tree/use-tree.js.map +0 -1
- package/dist/hooks/use-update-effect/use-update-effect.d.ts +0 -3
- package/dist/hooks/use-update-effect/use-update-effect.js +0 -23
- package/dist/hooks/use-update-effect/use-update-effect.js.map +0 -1
- package/dist/utils/css.js.map +0 -1
- package/dist/utils/events.js +0 -10
- package/dist/utils/events.js.map +0 -1
- package/dist/utils/props.js.map +0 -1
- package/dist/utils/validators.js.map +0 -1
- /package/dist/utils/{events.d.ts → events/index.d.ts} +0 -0
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
import { useFocusRing } from '@react-aria/focus';
|
|
3
|
-
import { useHover } from '@react-aria/interactions';
|
|
4
|
-
import { useControlledState } from '@react-stately/utils';
|
|
5
|
-
import { createContext, forwardRef, useMemo, useCallback } from 'react';
|
|
6
|
-
import { InputContext as InputContext$1 } from 'react-aria-components';
|
|
7
|
-
import { useContextProps, useDefaultProps, useTheme } from '../../hooks/index.js';
|
|
8
|
-
import { inputs } from '../../styles/index.js';
|
|
9
|
-
import { mergeClassNames, mergeProps, inlineVars } from '../../utils/index.js';
|
|
10
|
-
import { inputClassNames, inputStateVars } from './input.css.js';
|
|
11
|
-
import { jsx } from 'react/jsx-runtime';
|
|
12
|
-
|
|
13
|
-
var defaultMapping = {
|
|
14
|
-
sizer: {
|
|
15
|
-
sm: inputs.sm,
|
|
16
|
-
lg: inputs.lg
|
|
17
|
-
},
|
|
18
|
-
input: {
|
|
19
|
-
sm: inputs.sm,
|
|
20
|
-
lg: inputs.lg
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
var InputContext = createContext(null);
|
|
24
|
-
var Input = forwardRef(function Input2(props, ref) {
|
|
25
|
-
[props, ref] = useContextProps(props, ref, InputContext$1);
|
|
26
|
-
props.className = void 0;
|
|
27
|
-
props.style = void 0;
|
|
28
|
-
[props, ref] = useContextProps(props, ref, InputContext);
|
|
29
|
-
props = useDefaultProps(props, "Input");
|
|
30
|
-
const {
|
|
31
|
-
classNames: classNamesProp,
|
|
32
|
-
defaultValue = "",
|
|
33
|
-
disabled: isDisabled = false,
|
|
34
|
-
mapping: mappingProp,
|
|
35
|
-
placeholder,
|
|
36
|
-
readOnly: isReadOnly = false,
|
|
37
|
-
required: isRequired = false,
|
|
38
|
-
size = "lg",
|
|
39
|
-
type = "text",
|
|
40
|
-
value: valueProp,
|
|
41
|
-
onChange,
|
|
42
|
-
onHoverStart,
|
|
43
|
-
onHoverChange,
|
|
44
|
-
onHoverEnd,
|
|
45
|
-
"aria-invalid": ariaInvalid,
|
|
46
|
-
...rest
|
|
47
|
-
} = props;
|
|
48
|
-
const [value, setValue] = useControlledState(valueProp, defaultValue);
|
|
49
|
-
const length = (`${value ?? ""}`.length || placeholder?.length) ?? 0;
|
|
50
|
-
const isInvalid = !!ariaInvalid && ariaInvalid !== "false";
|
|
51
|
-
const isPlaceholder = !!placeholder && !value;
|
|
52
|
-
const isEmpty = !value;
|
|
53
|
-
const { isFocused, isFocusVisible, focusProps } = useFocusRing({
|
|
54
|
-
autoFocus: props.autoFocus,
|
|
55
|
-
isTextInput: true
|
|
56
|
-
});
|
|
57
|
-
const { hoverProps, isHovered } = useHover({
|
|
58
|
-
isDisabled,
|
|
59
|
-
onHoverStart,
|
|
60
|
-
onHoverChange,
|
|
61
|
-
onHoverEnd
|
|
62
|
-
});
|
|
63
|
-
const theme = useTheme();
|
|
64
|
-
const mapping = useMemo(
|
|
65
|
-
() => ({
|
|
66
|
-
...defaultMapping,
|
|
67
|
-
...mappingProp
|
|
68
|
-
}),
|
|
69
|
-
[mappingProp]
|
|
70
|
-
);
|
|
71
|
-
const classNames = useMemo(
|
|
72
|
-
() => mergeClassNames(inputClassNames, theme.Input, classNamesProp, {
|
|
73
|
-
sizer: mapping.sizer[size],
|
|
74
|
-
input: mapping.input[size]
|
|
75
|
-
}),
|
|
76
|
-
[theme.Input, classNamesProp, mapping, size]
|
|
77
|
-
);
|
|
78
|
-
const mergedProps = useMemo(
|
|
79
|
-
() => mergeProps(rest, focusProps, hoverProps),
|
|
80
|
-
[focusProps, hoverProps, rest]
|
|
81
|
-
);
|
|
82
|
-
const style = useMemo(
|
|
83
|
-
() => inlineVars(inputStateVars, {
|
|
84
|
-
length,
|
|
85
|
-
size,
|
|
86
|
-
type,
|
|
87
|
-
isDisabled,
|
|
88
|
-
isEmpty,
|
|
89
|
-
isFocused,
|
|
90
|
-
isFocusVisible,
|
|
91
|
-
isHovered,
|
|
92
|
-
isInvalid,
|
|
93
|
-
isPlaceholder,
|
|
94
|
-
isReadOnly,
|
|
95
|
-
isRequired
|
|
96
|
-
}),
|
|
97
|
-
[
|
|
98
|
-
length,
|
|
99
|
-
size,
|
|
100
|
-
type,
|
|
101
|
-
isDisabled,
|
|
102
|
-
isEmpty,
|
|
103
|
-
isFocused,
|
|
104
|
-
isFocusVisible,
|
|
105
|
-
isHovered,
|
|
106
|
-
isInvalid,
|
|
107
|
-
isPlaceholder,
|
|
108
|
-
isReadOnly,
|
|
109
|
-
isRequired
|
|
110
|
-
]
|
|
111
|
-
);
|
|
112
|
-
const handleChange = useCallback(
|
|
113
|
-
(event) => {
|
|
114
|
-
onChange?.(event);
|
|
115
|
-
if (!event.defaultPrevented) {
|
|
116
|
-
setValue(event.target.value);
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
[onChange, setValue]
|
|
120
|
-
);
|
|
121
|
-
return /* @__PURE__ */ jsx("div", { className: classNames?.container, style, children: /* @__PURE__ */ jsx("div", { className: classNames?.sizer, children: /* @__PURE__ */ jsx(
|
|
122
|
-
"input",
|
|
123
|
-
{
|
|
124
|
-
...mergedProps,
|
|
125
|
-
ref,
|
|
126
|
-
className: classNames?.input,
|
|
127
|
-
disabled: isDisabled,
|
|
128
|
-
placeholder,
|
|
129
|
-
readOnly: isReadOnly,
|
|
130
|
-
required: isRequired,
|
|
131
|
-
type,
|
|
132
|
-
value,
|
|
133
|
-
onChange: handleChange,
|
|
134
|
-
"aria-invalid": ariaInvalid
|
|
135
|
-
}
|
|
136
|
-
) }) });
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
export { Input, InputContext };
|
|
140
|
-
//# sourceMappingURL=input.js.map
|
|
141
|
-
//# sourceMappingURL=input.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/input/input.tsx"],"names":["Input","RACInputContext"],"mappings":"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","file":"input.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useFocusRing } from '@react-aria/focus';\nimport { useHover } from '@react-aria/interactions';\nimport { useControlledState } from '@react-stately/utils';\nimport {\n type ChangeEvent,\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n InputContext as RACInputContext,\n type InputProps as RACInputProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { inputs } from '../../styles';\nimport { inlineVars, mergeClassNames, mergeProps } from '../../utils';\nimport { inputClassNames, inputStateVars } from './input.css';\nimport type { InputMapping, InputProps } from './types';\n\nconst defaultMapping: InputMapping = {\n sizer: {\n sm: inputs.sm,\n lg: inputs.lg,\n },\n input: {\n sm: inputs.sm,\n lg: inputs.lg,\n },\n};\n\nexport const InputContext =\n createContext<ContextValue<InputProps, HTMLInputElement>>(null);\n\n/**\n * Only intended for generic text-like inputs, see types in props for list\n * Other more specific inputs should be handled by other components\n */\nexport const Input = forwardRef(function Input(\n props: InputProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n [props, ref] = useContextProps(props, ref, RACInputContext);\n\n // Disallow props possibly provided by React Aria context\n // could be render props functions we don't want to support\n (props as RACInputProps).className = undefined;\n (props as RACInputProps).style = undefined;\n\n // Duplicate context prop merging to support React Aria's context\n // and our own which establishes a superset type for the props\n [props, ref] = useContextProps(props, ref, InputContext);\n\n props = useDefaultProps(props, 'Input');\n\n const {\n classNames: classNamesProp,\n defaultValue = '',\n disabled: isDisabled = false,\n mapping: mappingProp,\n placeholder,\n readOnly: isReadOnly = false,\n required: isRequired = false,\n size = 'lg',\n type = 'text',\n value: valueProp,\n onChange,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n 'aria-invalid': ariaInvalid,\n ...rest\n } = props;\n\n const [value, setValue] = useControlledState(valueProp, defaultValue);\n const length = (`${value ?? ''}`.length || placeholder?.length) ?? 0;\n const isInvalid = !!ariaInvalid && ariaInvalid !== 'false';\n const isPlaceholder = !!placeholder && !value;\n const isEmpty = !value;\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n autoFocus: props.autoFocus,\n isTextInput: true,\n });\n\n const { hoverProps, isHovered } = useHover({\n isDisabled,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(inputClassNames, theme.Input, classNamesProp, {\n sizer: mapping.sizer[size],\n input: mapping.input[size],\n }),\n [theme.Input, classNamesProp, mapping, size],\n );\n\n const mergedProps = useMemo(\n () => mergeProps(rest, focusProps, hoverProps),\n [focusProps, hoverProps, rest],\n );\n\n const style = useMemo(\n () =>\n inlineVars(inputStateVars, {\n length,\n size,\n type,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n }),\n [\n length,\n size,\n type,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n ],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n\n if (!event.defaultPrevented) {\n setValue(event.target.value);\n }\n },\n [onChange, setValue],\n );\n\n return (\n <div className={classNames?.container} style={style}>\n <div className={classNames?.sizer}>\n <input\n {...mergedProps}\n ref={ref}\n className={classNames?.input}\n disabled={isDisabled}\n placeholder={placeholder}\n readOnly={isReadOnly}\n required={isRequired}\n type={type}\n value={value}\n onChange={handleChange}\n aria-invalid={ariaInvalid}\n />\n </div>\n </div>\n );\n});\n"]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { MenuClassNames, MenuMapping, MenuSizes, MenuProps, MenuItemProps, MenuListProps } from './types.js';
|
|
2
|
-
import * as react_aria_components from 'react-aria-components';
|
|
3
|
-
import { ContextValue } from 'react-aria-components';
|
|
4
|
-
import * as react from 'react';
|
|
5
|
-
import 'type-fest';
|
|
6
|
-
import '../../types/generic.js';
|
|
7
|
-
import '../icon/types.js';
|
|
8
|
-
|
|
9
|
-
declare const MenuContext: react.Context<ContextValue<MenuProps, HTMLElement>>;
|
|
10
|
-
/**
|
|
11
|
-
* Menu component that supports display and selection of menu items via a trigger (right-click or click)
|
|
12
|
-
* Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html
|
|
13
|
-
*/
|
|
14
|
-
declare const Menu: (props: Omit<react_aria_components.PopoverProps, "className" | "style"> & {
|
|
15
|
-
classNames?: MenuClassNames;
|
|
16
|
-
mapping?: Partial<MenuMapping>;
|
|
17
|
-
size?: MenuSizes;
|
|
18
|
-
} & react.RefAttributes<HTMLElement>) => react.ReactElement | null;
|
|
19
|
-
declare const MenuListContext: react.Context<ContextValue<MenuListProps<unknown>, HTMLDivElement>>;
|
|
20
|
-
declare const MenuList: <T extends object>(props: Omit<react_aria_components.MenuProps<T>, "className" | "style"> & {
|
|
21
|
-
classNames?: MenuClassNames;
|
|
22
|
-
mapping?: Partial<MenuMapping>;
|
|
23
|
-
size?: MenuSizes;
|
|
24
|
-
} & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
25
|
-
declare const MenuItemContext: react.Context<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>;
|
|
26
|
-
declare const MenuItem: <T extends object>(props: Omit<react_aria_components.MenuItemProps<T>, "className" | "style"> & {
|
|
27
|
-
classNames?: MenuClassNames;
|
|
28
|
-
mapping?: Partial<MenuMapping>;
|
|
29
|
-
size?: MenuSizes;
|
|
30
|
-
} & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
31
|
-
|
|
32
|
-
export { Menu, MenuContext, MenuItem, MenuItemContext, MenuList, MenuListContext };
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
import { createContext, forwardRef, useMemo, useCallback } from 'react';
|
|
3
|
-
import { Provider, Popover, Collection, MenuStateContext, UNSTABLE_CollectionRendererContext, Menu as Menu$1, DEFAULT_SLOT, MenuItem as MenuItem$1 } from 'react-aria-components';
|
|
4
|
-
import { useContextProps, useDefaultProps, useTheme, useSlot } from '../../hooks/index.js';
|
|
5
|
-
import { bodies, headings } from '../../styles/index.js';
|
|
6
|
-
import { mergeClassNames, inlineVars, callRenderProps } from '../../utils/index.js';
|
|
7
|
-
import { AriaSectionContext, AriaHeaderContext, AriaSeparatorContext, AriaSection, AriaTextContext, AriaKeyboardContext, AriaText } from '../aria/index.js';
|
|
8
|
-
import { createCollectionRenderer } from '../collection/index.js';
|
|
9
|
-
import { IconContext } from '../icon/index.js';
|
|
10
|
-
import { menuClassNames, menuStateVars, menuItemStateVars } from './menu.css.js';
|
|
11
|
-
import { jsx } from 'react/jsx-runtime';
|
|
12
|
-
|
|
13
|
-
var defaultMapping = {
|
|
14
|
-
description: {
|
|
15
|
-
sm: bodies.xs,
|
|
16
|
-
lg: bodies.xs
|
|
17
|
-
},
|
|
18
|
-
header: {
|
|
19
|
-
sm: headings.v4,
|
|
20
|
-
lg: headings.v5
|
|
21
|
-
},
|
|
22
|
-
label: {
|
|
23
|
-
sm: bodies.sm,
|
|
24
|
-
lg: bodies.sm
|
|
25
|
-
},
|
|
26
|
-
shortcut: {
|
|
27
|
-
sm: bodies.xs,
|
|
28
|
-
lg: bodies.xs
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
var defaultSize = "lg";
|
|
32
|
-
var MenuContext = createContext(null);
|
|
33
|
-
var Menu = forwardRef(function Menu2(props, ref) {
|
|
34
|
-
[props, ref] = useContextProps(props, ref, MenuContext);
|
|
35
|
-
props = useDefaultProps(props, "Menu");
|
|
36
|
-
const {
|
|
37
|
-
children: childrenProp,
|
|
38
|
-
classNames: classNamesProp,
|
|
39
|
-
mapping: mappingProp,
|
|
40
|
-
size = defaultSize,
|
|
41
|
-
...rest
|
|
42
|
-
} = props;
|
|
43
|
-
const theme = useTheme();
|
|
44
|
-
const classNames = useMemo(
|
|
45
|
-
() => mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {
|
|
46
|
-
menu: { container: theme.className }
|
|
47
|
-
// required to consume global theme within Popover
|
|
48
|
-
}),
|
|
49
|
-
[classNamesProp, theme.Menu, theme.className]
|
|
50
|
-
);
|
|
51
|
-
const mapping = useMemo(
|
|
52
|
-
() => ({
|
|
53
|
-
...defaultMapping,
|
|
54
|
-
...mappingProp
|
|
55
|
-
}),
|
|
56
|
-
[mappingProp]
|
|
57
|
-
);
|
|
58
|
-
const style = useCallback(
|
|
59
|
-
(renderProps) => ({
|
|
60
|
-
...theme.style,
|
|
61
|
-
// required to consume global styles within Popover
|
|
62
|
-
...inlineVars(menuStateVars, {
|
|
63
|
-
...renderProps,
|
|
64
|
-
size
|
|
65
|
-
})
|
|
66
|
-
}),
|
|
67
|
-
[theme.style, size]
|
|
68
|
-
);
|
|
69
|
-
const values = useMemo(
|
|
70
|
-
() => [[MenuListContext, { classNames, mapping, size }]],
|
|
71
|
-
[classNames, mapping, size]
|
|
72
|
-
);
|
|
73
|
-
const children = useCallback(
|
|
74
|
-
(renderProps) => /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.menu?.menu, children: callRenderProps(childrenProp, {
|
|
75
|
-
...renderProps,
|
|
76
|
-
size,
|
|
77
|
-
defaultChildren: null
|
|
78
|
-
}) }) }),
|
|
79
|
-
[childrenProp, classNames?.menu?.menu, size, values]
|
|
80
|
-
);
|
|
81
|
-
return /* @__PURE__ */ jsx(
|
|
82
|
-
Popover,
|
|
83
|
-
{
|
|
84
|
-
...rest,
|
|
85
|
-
ref,
|
|
86
|
-
className: classNames?.menu?.container,
|
|
87
|
-
style,
|
|
88
|
-
children
|
|
89
|
-
}
|
|
90
|
-
);
|
|
91
|
-
});
|
|
92
|
-
var MenuListContext = createContext(null);
|
|
93
|
-
var MenuList = forwardRef(function MenuList2(props, ref) {
|
|
94
|
-
[props, ref] = useContextProps(props, ref, MenuListContext);
|
|
95
|
-
props = useDefaultProps(props, "Menu");
|
|
96
|
-
const {
|
|
97
|
-
children: childrenProp,
|
|
98
|
-
classNames: classNamesProp,
|
|
99
|
-
items,
|
|
100
|
-
mapping: mappingProp,
|
|
101
|
-
selectionMode = "single",
|
|
102
|
-
size = defaultSize,
|
|
103
|
-
"aria-label": ariaLabel,
|
|
104
|
-
"aria-labelledby": ariaLabelledBy,
|
|
105
|
-
...rest
|
|
106
|
-
} = props;
|
|
107
|
-
const theme = useTheme();
|
|
108
|
-
const mapping = useMemo(
|
|
109
|
-
() => ({
|
|
110
|
-
...defaultMapping,
|
|
111
|
-
...mappingProp
|
|
112
|
-
}),
|
|
113
|
-
[mappingProp]
|
|
114
|
-
);
|
|
115
|
-
const classNames = useMemo(
|
|
116
|
-
() => mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {
|
|
117
|
-
list: { header: mapping.header[size] }
|
|
118
|
-
}),
|
|
119
|
-
[theme.Menu, classNamesProp, mapping.header, size]
|
|
120
|
-
);
|
|
121
|
-
const values = useMemo(
|
|
122
|
-
() => [
|
|
123
|
-
[MenuItemContext, { classNames, mapping, size }],
|
|
124
|
-
[AriaSectionContext, { className: classNames?.list?.section }],
|
|
125
|
-
[AriaHeaderContext, { className: classNames?.list?.header }],
|
|
126
|
-
[AriaSeparatorContext, { className: classNames?.list?.separator }]
|
|
127
|
-
],
|
|
128
|
-
[classNames, mapping, size]
|
|
129
|
-
);
|
|
130
|
-
const children = useMemo(() => {
|
|
131
|
-
if (!(childrenProp || items)) {
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
return /* @__PURE__ */ jsx(AriaSection, { className: classNames?.list?.list, children: typeof childrenProp === "function" ? /* @__PURE__ */ jsx(Collection, { items, children: childrenProp }) : childrenProp });
|
|
135
|
-
}, [childrenProp, classNames?.list?.list, items]);
|
|
136
|
-
const renderer = useMemo(
|
|
137
|
-
() => createCollectionRenderer(MenuStateContext, values),
|
|
138
|
-
[values]
|
|
139
|
-
);
|
|
140
|
-
return /* @__PURE__ */ jsx(UNSTABLE_CollectionRendererContext.Provider, { value: renderer, children: /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx(
|
|
141
|
-
Menu$1,
|
|
142
|
-
{
|
|
143
|
-
...rest,
|
|
144
|
-
ref,
|
|
145
|
-
className: classNames?.list?.container,
|
|
146
|
-
items,
|
|
147
|
-
selectionMode,
|
|
148
|
-
"aria-label": ariaLabel,
|
|
149
|
-
"aria-labelledby": ariaLabelledBy,
|
|
150
|
-
children
|
|
151
|
-
}
|
|
152
|
-
) }) });
|
|
153
|
-
});
|
|
154
|
-
var MenuItemContext = createContext(null);
|
|
155
|
-
var MenuItem = forwardRef(function MenuItem2(props, ref) {
|
|
156
|
-
[props, ref] = useContextProps(props, ref, MenuItemContext);
|
|
157
|
-
props = useDefaultProps(props, "MenuItem");
|
|
158
|
-
const {
|
|
159
|
-
id,
|
|
160
|
-
children: childrenProp,
|
|
161
|
-
classNames: classNamesProp,
|
|
162
|
-
mapping: mappingProp,
|
|
163
|
-
size = defaultSize,
|
|
164
|
-
textValue = typeof childrenProp === "string" ? childrenProp : void 0,
|
|
165
|
-
...rest
|
|
166
|
-
} = props;
|
|
167
|
-
const theme = useTheme();
|
|
168
|
-
const mapping = useMemo(
|
|
169
|
-
() => ({
|
|
170
|
-
...defaultMapping,
|
|
171
|
-
...mappingProp
|
|
172
|
-
}),
|
|
173
|
-
[mappingProp]
|
|
174
|
-
);
|
|
175
|
-
const classNames = useMemo(
|
|
176
|
-
() => mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {
|
|
177
|
-
item: {
|
|
178
|
-
description: mapping.description[size],
|
|
179
|
-
label: mapping.label[size],
|
|
180
|
-
shortcut: mapping.shortcut[size]
|
|
181
|
-
}
|
|
182
|
-
}),
|
|
183
|
-
[theme.Menu, classNamesProp, mapping, size]
|
|
184
|
-
);
|
|
185
|
-
const [descriptionRef, hasDescription] = useSlot();
|
|
186
|
-
const style = useCallback(
|
|
187
|
-
(renderProps) => inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }),
|
|
188
|
-
[hasDescription, size]
|
|
189
|
-
);
|
|
190
|
-
const values = useMemo(
|
|
191
|
-
() => [
|
|
192
|
-
[
|
|
193
|
-
AriaTextContext,
|
|
194
|
-
{
|
|
195
|
-
slots: {
|
|
196
|
-
[DEFAULT_SLOT]: {},
|
|
197
|
-
label: { className: classNames?.item?.label },
|
|
198
|
-
description: {
|
|
199
|
-
ref: descriptionRef,
|
|
200
|
-
className: classNames?.item?.description
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
],
|
|
205
|
-
[
|
|
206
|
-
IconContext,
|
|
207
|
-
{
|
|
208
|
-
slots: {
|
|
209
|
-
[DEFAULT_SLOT]: { classNames: classNames?.item?.icon },
|
|
210
|
-
more: { classNames: classNames?.item?.more }
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
],
|
|
214
|
-
[AriaKeyboardContext, { className: classNames?.item?.shortcut }]
|
|
215
|
-
],
|
|
216
|
-
[
|
|
217
|
-
classNames?.item?.label,
|
|
218
|
-
descriptionRef,
|
|
219
|
-
classNames?.item?.description,
|
|
220
|
-
classNames?.item?.icon,
|
|
221
|
-
classNames?.item?.more,
|
|
222
|
-
classNames?.item?.shortcut
|
|
223
|
-
]
|
|
224
|
-
);
|
|
225
|
-
const children = useCallback(
|
|
226
|
-
(renderProps) => {
|
|
227
|
-
const content = callRenderProps(childrenProp, {
|
|
228
|
-
...renderProps,
|
|
229
|
-
size,
|
|
230
|
-
defaultChildren: null
|
|
231
|
-
});
|
|
232
|
-
return /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.item?.item, children: typeof content === "string" ? /* @__PURE__ */ jsx(AriaText, { slot: "label", children: content }) : content }) });
|
|
233
|
-
},
|
|
234
|
-
[childrenProp, classNames?.item?.item, size, values]
|
|
235
|
-
);
|
|
236
|
-
return /* @__PURE__ */ jsx(
|
|
237
|
-
MenuItem$1,
|
|
238
|
-
{
|
|
239
|
-
...rest,
|
|
240
|
-
id: id ?? textValue,
|
|
241
|
-
ref,
|
|
242
|
-
className: classNames?.item?.container,
|
|
243
|
-
style,
|
|
244
|
-
textValue,
|
|
245
|
-
children
|
|
246
|
-
}
|
|
247
|
-
);
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
export { Menu, MenuContext, MenuItem, MenuItemContext, MenuList, MenuListContext };
|
|
251
|
-
//# sourceMappingURL=menu.js.map
|
|
252
|
-
//# sourceMappingURL=menu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/menu/menu.tsx"],"names":["Menu","MenuList","RACMenu","MenuItem","RACMenuItem"],"mappings":"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","file":"menu.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type CollectionRenderer,\n type ContextValue,\n DEFAULT_SLOT,\n MenuStateContext,\n Popover,\n type PopoverRenderProps,\n Provider,\n Menu as RACMenu,\n MenuItem as RACMenuItem,\n type MenuItemRenderProps as RACMenuItemRenderProps,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n UNSTABLE_CollectionRendererContext,\n} from 'react-aria-components';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { bodies, headings } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext, type IconProps } from '../icon';\nimport { menuClassNames, menuItemStateVars, menuStateVars } from './menu.css';\nimport type {\n MenuItemProps,\n MenuListProps,\n MenuMapping,\n MenuProps,\n} from './types';\n\nconst defaultMapping: MenuMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const MenuContext =\n createContext<ContextValue<MenuProps, HTMLElement>>(null);\n\n/**\n * Menu component that supports display and selection of menu items via a trigger (right-click or click)\n * Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n menu: { container: theme.className }, // required to consume global theme within Popover\n }),\n [classNamesProp, theme.Menu, theme.className],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n (renderProps: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(menuStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof MenuListContext,\n ContextValue<MenuListProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[MenuListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.menu?.menu}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.menu?.menu, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.menu?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const MenuListContext =\n createContext<ContextValue<MenuListProps<unknown>, HTMLDivElement>>(null);\n\ntype MenuListContexts = [\n [\n typeof MenuItemContext,\n ContextValue<MenuItemProps<unknown>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const MenuList = forwardRef(function MenuList<T extends object>(\n props: MenuListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuListContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Menu, classNamesProp, mapping.header, size],\n );\n\n const values = useMemo<MenuListContexts>(\n () => [\n [MenuItemContext, { classNames, mapping, size }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [childrenProp, classNames?.list?.list, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n () => createCollectionRenderer(MenuStateContext, values),\n [values],\n );\n\n return (\n <UNSTABLE_CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <RACMenu<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </RACMenu>\n </Provider>\n </UNSTABLE_CollectionRendererContext.Provider>\n );\n});\n\nexport const MenuItemContext =\n createContext<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>(null);\n\nexport const MenuItem = forwardRef(function MenuItem<T extends object>(\n props: MenuItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuItemContext);\n props = useDefaultProps(props, 'MenuItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Menu, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: RACMenuItemRenderProps) =>\n inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [\n IconContext,\n {\n slots: {\n [DEFAULT_SLOT]: { classNames: classNames?.item?.icon },\n more: { classNames: classNames?.item?.more },\n },\n },\n ],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.more,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: RACMenuItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <RACMenuItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref as ForwardedRef<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </RACMenuItem>\n );\n});\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { MergeProviderProps } from './types.js';
|
|
3
|
-
import 'react';
|
|
4
|
-
import '../../types/react-aria.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Merges provided contexts with parent contexts, if available and of the same structure
|
|
8
|
-
* If parent context doesn't exist or differs in structure (slotted vs non-slotted) from
|
|
9
|
-
* the context being provided, the provided context will override the parent context
|
|
10
|
-
*
|
|
11
|
-
* This is typically used in conjunction with React Aria Component's contexts, where a
|
|
12
|
-
* RAC may provide a slotted context (ex: ButtonContext, with a slot of "remove") where
|
|
13
|
-
* that slot has a number of attributes and event listeners, but we want to merge in our
|
|
14
|
-
* own to supplement things for stylistic or additional functionality purposes
|
|
15
|
-
*
|
|
16
|
-
* See tests for examples
|
|
17
|
-
*/
|
|
18
|
-
declare function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({ values, children, }: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>): react_jsx_runtime.JSX.Element;
|
|
19
|
-
|
|
20
|
-
export { MergeProvider };
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
import { mergeProps } from '../../utils/index.js';
|
|
3
|
-
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
function merge(context, next, children) {
|
|
6
|
-
return function Consumer(prev) {
|
|
7
|
-
let merged = next;
|
|
8
|
-
if (prev != null && next != null && typeof prev === "object" && typeof next === "object") {
|
|
9
|
-
const prevSlots = "slots" in prev && prev.slots;
|
|
10
|
-
const nextSlots = "slots" in next && next.slots;
|
|
11
|
-
if (prevSlots && nextSlots) {
|
|
12
|
-
merged = {
|
|
13
|
-
...prev,
|
|
14
|
-
...next,
|
|
15
|
-
slots: {
|
|
16
|
-
...prevSlots,
|
|
17
|
-
...nextSlots,
|
|
18
|
-
...Reflect.ownKeys(nextSlots).reduce((acc, key) => {
|
|
19
|
-
const value = nextSlots[key];
|
|
20
|
-
if (Object.hasOwn(prevSlots, key)) {
|
|
21
|
-
acc[key] = mergeProps(prevSlots[key], value);
|
|
22
|
-
}
|
|
23
|
-
return acc;
|
|
24
|
-
}, {})
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
} else if (!(prevSlots || nextSlots)) {
|
|
28
|
-
merged = mergeProps(prev, next);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return /* @__PURE__ */ jsx(context.Provider, { value: merged, children });
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function MergeProvider({
|
|
35
|
-
values,
|
|
36
|
-
children
|
|
37
|
-
}) {
|
|
38
|
-
for (const [context, next] of values) {
|
|
39
|
-
children = /* @__PURE__ */ jsx(context.Consumer, { children: merge(context, next, children) });
|
|
40
|
-
}
|
|
41
|
-
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export { MergeProvider };
|
|
45
|
-
//# sourceMappingURL=merge-provider.js.map
|
|
46
|
-
//# sourceMappingURL=merge-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/merge-provider/merge-provider.tsx"],"names":[],"mappings":";;;;AAgBA,SAAS,KAAA,CAAS,OAAqB,EAAA,IAAA,EAAS,QAAqB,EAAA;AACnE,EAAO,OAAA,SAAS,SAAS,IAAS,EAAA;AAChC,IAAA,IAAI,MAAS,GAAA,IAAA;AAEb,IACE,IAAA,IAAA,IAAQ,QACR,IAAQ,IAAA,IAAA,IACR,OAAO,IAAS,KAAA,QAAA,IAChB,OAAO,IAAA,KAAS,QAChB,EAAA;AACA,MAAM,MAAA,SAAA,GACJ,OAAW,IAAA,IAAA,IAAS,IAAK,CAAA,KAAA;AAE3B,MAAM,MAAA,SAAA,GACJ,OAAW,IAAA,IAAA,IAAS,IAAK,CAAA,KAAA;AAE3B,MAAA,IAAI,aAAa,SAAW,EAAA;AAC1B,QAAS,MAAA,GAAA;AAAA,UACP,GAAG,IAAA;AAAA,UACH,GAAG,IAAA;AAAA,UACH,KAAO,EAAA;AAAA,YACL,GAAG,SAAA;AAAA,YACH,GAAG,SAAA;AAAA,YACH,GAAG,QAAQ,OAAQ,CAAA,SAAS,EAAE,MAE5B,CAAA,CAAC,KAAK,GAAQ,KAAA;AACd,cAAM,MAAA,KAAA,GAAQ,UAAU,GAAG,CAAA;AAE3B,cAAA,IAAI,MAAO,CAAA,MAAA,CAAO,SAAW,EAAA,GAAG,CAAG,EAAA;AACjC,gBAAA,GAAA,CAAI,GAAG,CAAI,GAAA,UAAA,CAAW,SAAU,CAAA,GAAG,GAAG,KAAK,CAAA;AAAA;AAG7C,cAAO,OAAA,GAAA;AAAA,aACT,EAAG,EAAE;AAAA;AACP,SACF;AAAA,OACF,MAAA,IAAW,EAAE,SAAA,IAAa,SAAY,CAAA,EAAA;AACpC,QAAS,MAAA,GAAA,UAAA,CAAW,MAAgB,IAAc,CAAA;AAAA;AACpD;AAGF,IAAA,2BAAQ,OAAQ,CAAA,QAAA,EAAR,EAAiB,KAAA,EAAO,QAAS,QAAS,EAAA,CAAA;AAAA,GACpD;AACF;AAcO,SAAS,aAA+C,CAAA;AAAA,EAC7D,MAAA;AAAA,EACA;AACF,CAAwD,EAAA;AACtD,EAAA,KAAA,MAAW,CAAC,OAAA,EAAS,IAAI,CAAA,IAAK,MAAQ,EAAA;AACpC,IACE,QAAA,mBAAA,GAAA,CAAC,QAAQ,QAAR,EAAA,EACE,gBAAM,OAAiC,EAAA,IAAA,EAAM,QAAQ,CACxD,EAAA,CAAA;AAAA;AAIJ,EAAA,uCAAU,QAAS,EAAA,CAAA;AACrB","file":"merge-provider.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Context, ReactNode } from 'react';\nimport { mergeProps } from '../../utils';\nimport type { MergeProviderProps } from './types';\n\nfunction merge<T>(context: Context<T>, next: T, children: ReactNode) {\n return function Consumer(prev: T) {\n let merged = next;\n\n if (\n prev != null &&\n next != null &&\n typeof prev === 'object' &&\n typeof next === 'object'\n ) {\n const prevSlots =\n 'slots' in prev && (prev.slots as Record<string | symbol, object>);\n\n const nextSlots =\n 'slots' in next && (next.slots as Record<string | symbol, object>);\n\n if (prevSlots && nextSlots) {\n merged = {\n ...prev,\n ...next,\n slots: {\n ...prevSlots,\n ...nextSlots,\n ...Reflect.ownKeys(nextSlots).reduce<\n Record<string | symbol, object>\n >((acc, key) => {\n const value = nextSlots[key];\n\n if (Object.hasOwn(prevSlots, key)) {\n acc[key] = mergeProps(prevSlots[key], value);\n }\n\n return acc;\n }, {}),\n },\n } as T;\n } else if (!(prevSlots || nextSlots)) {\n merged = mergeProps(prev as object, next as object) as T;\n }\n }\n\n return <context.Provider value={merged}>{children}</context.Provider>;\n };\n}\n\n/**\n * Merges provided contexts with parent contexts, if available and of the same structure\n * If parent context doesn't exist or differs in structure (slotted vs non-slotted) from\n * the context being provided, the provided context will override the parent context\n *\n * This is typically used in conjunction with React Aria Component's contexts, where a\n * RAC may provide a slotted context (ex: ButtonContext, with a slot of \"remove\") where\n * that slot has a number of attributes and event listeners, but we want to merge in our\n * own to supplement things for stylistic or additional functionality purposes\n *\n * See tests for examples\n */\nexport function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({\n values,\n children,\n}: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>) {\n for (const [context, next] of values) {\n children = (\n <context.Consumer>\n {merge(context as Context<typeof next>, next, children)}\n </context.Consumer>\n );\n }\n\n return <>{children}</>;\n}\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NumberFieldClassNames, NumberFieldMapping, NumberFieldSizes, NumberFieldProps } from './types.js';
|
|
2
|
-
import * as react_aria_components from 'react-aria-components';
|
|
3
|
-
import { ContextValue } from 'react-aria-components';
|
|
4
|
-
import * as react from 'react';
|
|
5
|
-
import 'type-fest';
|
|
6
|
-
import '../button/types.js';
|
|
7
|
-
import '../../types/props.js';
|
|
8
|
-
import '../../types/react-aria.js';
|
|
9
|
-
import '../icon/types.js';
|
|
10
|
-
import '../input/types.js';
|
|
11
|
-
import '../../types/generic.js';
|
|
12
|
-
|
|
13
|
-
declare const NumberFieldContext: react.Context<ContextValue<NumberFieldProps, HTMLDivElement>>;
|
|
14
|
-
declare const NumberField: (props: Omit<react_aria_components.NumberFieldProps, "className" | "style"> & {
|
|
15
|
-
classNames?: NumberFieldClassNames;
|
|
16
|
-
mapping?: Partial<NumberFieldMapping>;
|
|
17
|
-
size?: NumberFieldSizes;
|
|
18
|
-
} & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
19
|
-
|
|
20
|
-
export { NumberField, NumberFieldContext };
|