@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,6 +1,174 @@
|
|
|
1
1
|
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import '
|
|
2
|
+
import { createContext, forwardRef, useMemo, useCallback } from 'react';
|
|
3
|
+
import { TextContext, Provider, Tag, TagGroup, TagList } from 'react-aria-components';
|
|
4
|
+
import { useContextProps } from '../../hooks/use-context-props/index.js';
|
|
5
|
+
import { useDefaultProps } from '../../hooks/use-defaults/index.js';
|
|
6
|
+
import { useTheme } from '../../hooks/use-theme/index.js';
|
|
7
|
+
import { bodies } from '../../styles/typography.css.js';
|
|
8
|
+
import { inlineVars } from '../../utils/css/index.js';
|
|
9
|
+
import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
|
|
10
|
+
import { AriaTextContext } from '../aria/index.js';
|
|
11
|
+
import { ButtonContext } from '../button/index.js';
|
|
12
|
+
import { chipClassNames, chipStateVars } from './chip.css.js';
|
|
13
|
+
import { jsx } from 'react/jsx-runtime';
|
|
14
|
+
|
|
15
|
+
var defaults = {
|
|
16
|
+
color: "info",
|
|
17
|
+
size: "sm"
|
|
18
|
+
};
|
|
19
|
+
var defaultMapping = {
|
|
20
|
+
font: {
|
|
21
|
+
sm: bodies.sm,
|
|
22
|
+
lg: bodies.sm
|
|
23
|
+
},
|
|
24
|
+
remove: {
|
|
25
|
+
sm: { size: "sm", variant: "icon" },
|
|
26
|
+
lg: { size: "sm", variant: "icon" }
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
function Chip(props) {
|
|
30
|
+
props = useDefaultProps(props, "Chip");
|
|
31
|
+
const {
|
|
32
|
+
children,
|
|
33
|
+
classNames: classNamesProp,
|
|
34
|
+
color = defaults.color,
|
|
35
|
+
mapping: mappingProp,
|
|
36
|
+
size = defaults.size
|
|
37
|
+
} = props;
|
|
38
|
+
const theme = useTheme();
|
|
39
|
+
const mapping = useMemo(
|
|
40
|
+
() => ({
|
|
41
|
+
...defaultMapping,
|
|
42
|
+
...mappingProp
|
|
43
|
+
}),
|
|
44
|
+
[mappingProp]
|
|
45
|
+
);
|
|
46
|
+
const classNames = useMemo(
|
|
47
|
+
() => mergeClassNames(chipClassNames, theme.Chip, classNamesProp, {
|
|
48
|
+
chip: mapping.font[size]
|
|
49
|
+
}),
|
|
50
|
+
[theme.Chip, classNamesProp, mapping, size]
|
|
51
|
+
);
|
|
52
|
+
const values = useMemo(
|
|
53
|
+
() => [[AriaTextContext, { className: classNames?.label }]],
|
|
54
|
+
[classNames?.label]
|
|
55
|
+
);
|
|
56
|
+
const style = useMemo(
|
|
57
|
+
() => inlineVars(chipStateVars, {
|
|
58
|
+
allowsRemoving: false,
|
|
59
|
+
color,
|
|
60
|
+
selectionBehavior: "toggle",
|
|
61
|
+
selectionMode: "none",
|
|
62
|
+
size,
|
|
63
|
+
isDisabled: false,
|
|
64
|
+
isFocused: false,
|
|
65
|
+
isFocusVisible: false,
|
|
66
|
+
isHovered: false,
|
|
67
|
+
isPressed: false,
|
|
68
|
+
isSelected: false
|
|
69
|
+
}),
|
|
70
|
+
[color, size]
|
|
71
|
+
);
|
|
72
|
+
return /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.container, style, children: /* @__PURE__ */ jsx("div", { className: classNames?.chip, children }) }) });
|
|
73
|
+
}
|
|
74
|
+
var ChipContext = createContext(null);
|
|
75
|
+
var ChipItem = forwardRef(function ChipItem2(props, ref) {
|
|
76
|
+
[props, ref] = useContextProps(props, ref, ChipContext);
|
|
77
|
+
props = useDefaultProps(props, "Chip");
|
|
78
|
+
const {
|
|
79
|
+
children: childrenProp,
|
|
80
|
+
id,
|
|
81
|
+
classNames: classNamesProp,
|
|
82
|
+
color = defaults.color,
|
|
83
|
+
size = defaults.size,
|
|
84
|
+
textValue,
|
|
85
|
+
mapping: mappingProp,
|
|
86
|
+
...rest
|
|
87
|
+
} = props;
|
|
88
|
+
const theme = useTheme();
|
|
89
|
+
const mapping = useMemo(
|
|
90
|
+
() => ({
|
|
91
|
+
...defaultMapping,
|
|
92
|
+
...mappingProp
|
|
93
|
+
}),
|
|
94
|
+
[mappingProp]
|
|
95
|
+
);
|
|
96
|
+
const classNames = useMemo(
|
|
97
|
+
() => mergeClassNames(chipClassNames, theme.Chip, classNamesProp, {
|
|
98
|
+
chip: mapping.font[size]
|
|
99
|
+
}),
|
|
100
|
+
[theme.Chip, classNamesProp, mapping, size]
|
|
101
|
+
);
|
|
102
|
+
const values = useMemo(
|
|
103
|
+
() => [
|
|
104
|
+
// Because ChipGroup (TagGroup) implements a TextContext, we need to block it inside of the Chip
|
|
105
|
+
// so that there isn't a conflict of with our AriaTextContext. Otherwise there are slot errors
|
|
106
|
+
[TextContext, null],
|
|
107
|
+
[AriaTextContext, { className: classNames?.label }],
|
|
108
|
+
[
|
|
109
|
+
ButtonContext,
|
|
110
|
+
{
|
|
111
|
+
...mapping.remove[size],
|
|
112
|
+
classNames: { button: classNames?.remove },
|
|
113
|
+
slot: "remove"
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
],
|
|
117
|
+
[classNames?.label, classNames?.remove, mapping, size]
|
|
118
|
+
);
|
|
119
|
+
const style = useCallback(
|
|
120
|
+
(renderProps) => inlineVars(chipStateVars, {
|
|
121
|
+
...renderProps,
|
|
122
|
+
color,
|
|
123
|
+
size
|
|
124
|
+
}),
|
|
125
|
+
[color, size]
|
|
126
|
+
);
|
|
127
|
+
const children = useCallback(
|
|
128
|
+
(renderProps) => /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.chip, children: callRenderProps(childrenProp, renderProps) }) }),
|
|
129
|
+
[values, classNames?.chip, childrenProp]
|
|
130
|
+
);
|
|
131
|
+
return /* @__PURE__ */ jsx(
|
|
132
|
+
Tag,
|
|
133
|
+
{
|
|
134
|
+
...rest,
|
|
135
|
+
ref,
|
|
136
|
+
id: id ?? textValue,
|
|
137
|
+
className: classNames?.container,
|
|
138
|
+
style,
|
|
139
|
+
textValue,
|
|
140
|
+
children
|
|
141
|
+
}
|
|
142
|
+
);
|
|
143
|
+
});
|
|
144
|
+
function ChipList({
|
|
145
|
+
classNames: classNamesProp,
|
|
146
|
+
...rest
|
|
147
|
+
}) {
|
|
148
|
+
const theme = useTheme();
|
|
149
|
+
const classNames = useMemo(
|
|
150
|
+
() => mergeClassNames(chipClassNames, theme.Chip, classNamesProp),
|
|
151
|
+
[theme.Chip, classNamesProp]
|
|
152
|
+
);
|
|
153
|
+
return /* @__PURE__ */ jsx(TagList, { ...rest, className: classNames?.list });
|
|
154
|
+
}
|
|
155
|
+
var ChipGroupContext = createContext(null);
|
|
156
|
+
var ChipGroup = forwardRef(function ChipGroup2(props, ref) {
|
|
157
|
+
[props, ref] = useContextProps(props, ref, ChipGroupContext);
|
|
158
|
+
props = useDefaultProps(props, "ChipGroup");
|
|
159
|
+
const { children, classNames: classNamesProp, color, size, ...rest } = props;
|
|
160
|
+
const theme = useTheme();
|
|
161
|
+
const classNames = useMemo(
|
|
162
|
+
() => mergeClassNames(chipClassNames, theme.Chip, classNamesProp),
|
|
163
|
+
[theme.Chip, classNamesProp]
|
|
164
|
+
);
|
|
165
|
+
const values = useMemo(
|
|
166
|
+
() => [[ChipContext, { classNames, color, size }]],
|
|
167
|
+
[classNames, color, size]
|
|
168
|
+
);
|
|
169
|
+
return /* @__PURE__ */ jsx(TagGroup, { ...rest, ref, className: classNames?.group, children: /* @__PURE__ */ jsx(Provider, { values, children }) });
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
export { Chip, ChipContext, ChipGroup, ChipGroupContext, ChipItem, ChipList };
|
|
5
173
|
//# sourceMappingURL=index.js.map
|
|
6
174
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/chip/index.tsx"],"names":["ChipItem","RACTextContext","ChipGroup"],"mappings":"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","file":"index.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 createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n Provider,\n TextContext as RACTextContext,\n Tag,\n TagGroup,\n TagList,\n type TagRenderProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport { AriaTextContext } from '../aria';\nimport { ButtonContext } from '../button';\nimport type { ButtonProps } from '../button/types';\nimport { chipClassNames, chipStateVars } from './chip.css';\nimport type {\n ChipGroupProps,\n ChipItemProps,\n ChipListProps,\n ChipMapping,\n ChipProps,\n} from './types';\n\nconst defaults: Required<Pick<ChipProps, 'color' | 'size'>> = {\n color: 'info',\n size: 'sm',\n};\n\nconst defaultMapping: ChipMapping = {\n font: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n remove: {\n sm: { size: 'sm', variant: 'icon' },\n lg: { size: 'sm', variant: 'icon' },\n },\n};\n\nexport function Chip(props: ChipProps) {\n props = useDefaultProps(props, 'Chip');\n\n const {\n children,\n classNames: classNamesProp,\n color = defaults.color,\n mapping: mappingProp,\n size = defaults.size,\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(chipClassNames, theme.Chip, classNamesProp, {\n chip: mapping.font[size],\n }),\n [theme.Chip, classNamesProp, mapping, size],\n );\n\n const values = useMemo<\n [[typeof AriaTextContext, ContextValue<TextProps, HTMLElement>]]\n >(\n () => [[AriaTextContext, { className: classNames?.label }]],\n [classNames?.label],\n );\n\n const style = useMemo(\n () =>\n inlineVars(chipStateVars, {\n allowsRemoving: false,\n color,\n selectionBehavior: 'toggle',\n selectionMode: 'none',\n size,\n isDisabled: false,\n isFocused: false,\n isFocusVisible: false,\n isHovered: false,\n isPressed: false,\n isSelected: false,\n }),\n [color, size],\n );\n\n return (\n <Provider values={values}>\n <div className={classNames?.container} style={style}>\n <div className={classNames?.chip}>{children}</div>\n </div>\n </Provider>\n );\n}\n\nexport const ChipContext =\n createContext<ContextValue<ChipItemProps, HTMLDivElement>>(null);\n\n/**\n * Must be used in conjunction with ChipList & ChipGroup and\n * cannot be used outside of ChipList, else will throw error\n *\n * Color & Size props can be passed in from ChipGroup and overriden\n * on each instance of this components\n *\n * Order of precedence (from lowest to highest):\n * Design System Defaults of Chip\n * Global Defaults of ChipGroup\n * Instance of ChipGroup\n * Global Defaults of ChipItem\n * Instance of ChipItem\n */\nexport const ChipItem = forwardRef(function ChipItem(\n props: ChipItemProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, ChipContext);\n props = useDefaultProps(props, 'Chip');\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n color = defaults.color,\n size = defaults.size,\n textValue,\n mapping: mappingProp,\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(chipClassNames, theme.Chip, classNamesProp, {\n chip: mapping.font[size],\n }),\n [theme.Chip, classNamesProp, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof RACTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n ]\n >(\n () => [\n // Because ChipGroup (TagGroup) implements a TextContext, we need to block it inside of the Chip\n // so that there isn't a conflict of with our AriaTextContext. Otherwise there are slot errors\n [RACTextContext, null],\n [AriaTextContext, { className: classNames?.label }],\n [\n ButtonContext,\n {\n ...mapping.remove[size],\n classNames: { button: classNames?.remove },\n slot: 'remove',\n },\n ],\n ],\n [classNames?.label, classNames?.remove, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: TagRenderProps) =>\n inlineVars(chipStateVars, {\n ...renderProps,\n color,\n size,\n }),\n [color, size],\n );\n\n const children = useCallback(\n (renderProps: TagRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.chip}>\n {callRenderProps(childrenProp, renderProps)}\n </div>\n </Provider>\n ),\n [values, classNames?.chip, childrenProp],\n );\n\n return (\n <Tag\n {...rest}\n ref={ref}\n id={id ?? textValue}\n className={classNames?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </Tag>\n );\n});\n\n/**\n * Must be used in conjunction with ChipItem & ChipGroup and\n * cannot be used outside of ChipGroup, else will throw error\n */\nexport function ChipList<T extends object>({\n classNames: classNamesProp,\n ...rest\n}: ChipListProps<T>) {\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(chipClassNames, theme.Chip, classNamesProp),\n [theme.Chip, classNamesProp],\n );\n\n return <TagList<T> {...rest} className={classNames?.list} />;\n}\n\nexport const ChipGroupContext =\n createContext<ContextValue<ChipGroupProps, HTMLDivElement>>(null);\n\n/**\n * Color & Size props are passed down to ChipItem but can be overridden\n * on each component if desired\n */\nexport const ChipGroup = forwardRef(function ChipGroup(\n props: ChipGroupProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, ChipGroupContext);\n props = useDefaultProps(props, 'ChipGroup');\n\n const { children, classNames: classNamesProp, color, size, ...rest } = props;\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(chipClassNames, theme.Chip, classNamesProp),\n [theme.Chip, classNamesProp],\n );\n\n const values = useMemo<\n [[typeof ChipContext, ContextValue<ChipItemProps, HTMLDivElement>]]\n >(\n () => [[ChipContext, { classNames, color, size }]],\n [classNames, color, size],\n );\n\n return (\n <TagGroup {...rest} ref={ref} className={classNames?.group}>\n <Provider values={values}>{children}</Provider>\n </TagGroup>\n );\n});\n"]}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
import '
|
|
3
|
-
import 'react';
|
|
4
|
-
import '
|
|
5
|
-
import '../merge-provider/types.js';
|
|
1
|
+
import { Collection, Node } from '@react-types/shared';
|
|
2
|
+
import { Context } from 'react';
|
|
3
|
+
import { CollectionRenderer } from 'react-aria-components';
|
|
4
|
+
import { MergeProviderProps } from '../merge-provider/types.js';
|
|
6
5
|
import '../../types/react-aria.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Replace the default collection renderer to allow for injection of
|
|
9
|
+
* context props for multiple composed components. Also enables use of
|
|
10
|
+
* Section as wrapper of list items at the top level as a styleable
|
|
11
|
+
* element within the RAC container
|
|
12
|
+
*/
|
|
13
|
+
declare function createCollectionRenderer<C extends {
|
|
14
|
+
readonly collection: Collection<Node<unknown>>;
|
|
15
|
+
}, V extends MergeProviderProps['values']>(context: Context<C>, values: V): CollectionRenderer;
|
|
16
|
+
|
|
17
|
+
export { createCollectionRenderer };
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { useCollectionRender } from '../../hooks/use-collection-render/index.js';
|
|
4
|
+
import { MergeProvider } from '../merge-provider/index.js';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function createCollectionRenderer(context, values) {
|
|
8
|
+
return {
|
|
9
|
+
// biome-ignore lint/style/useNamingConvention: intentional
|
|
10
|
+
CollectionRoot: ({ renderDropIndicator }) => /* @__PURE__ */ jsx(MergeProvider, { values, children: useCollectionRender(
|
|
11
|
+
useContext(context)?.collection,
|
|
12
|
+
null,
|
|
13
|
+
renderDropIndicator
|
|
14
|
+
) }),
|
|
15
|
+
// biome-ignore lint/style/useNamingConvention: intentional
|
|
16
|
+
CollectionBranch: ({ collection, parent, renderDropIndicator }) => /* @__PURE__ */ jsx(MergeProvider, { values, children: useCollectionRender(collection, parent, renderDropIndicator) })
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { createCollectionRenderer };
|
|
3
21
|
//# sourceMappingURL=index.js.map
|
|
4
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/collection/index.tsx"],"names":[],"mappings":";;;;;;AAyBO,SAAS,wBAAA,CAGd,SAAqB,MAA+B,EAAA;AACpD,EAAO,OAAA;AAAA;AAAA,IAEL,gBAAgB,CAAC,EAAE,qBACjB,qBAAA,GAAA,CAAC,iBAAc,MACZ,EAAA,QAAA,EAAA,mBAAA;AAAA,MACC,UAAA,CAAW,OAAO,CAAG,EAAA,UAAA;AAAA,MACrB,IAAA;AAAA,MACA;AAAA,KAEJ,EAAA,CAAA;AAAA;AAAA,IAGF,gBAAkB,EAAA,CAAC,EAAE,UAAA,EAAY,QAAQ,mBAAoB,EAAA,qBAC1D,GAAA,CAAA,aAAA,EAAA,EAAc,MACZ,EAAA,QAAA,EAAA,mBAAA,CAAoB,UAAY,EAAA,MAAA,EAAQ,mBAAmB,CAC9D,EAAA;AAAA,GAEJ;AACF","file":"index.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 { Collection, Node } from '@react-types/shared';\nimport { type Context, useContext } from 'react';\nimport type { CollectionRenderer } from 'react-aria-components';\nimport { useCollectionRender } from '../../hooks/use-collection-render';\nimport { MergeProvider } from '../merge-provider';\nimport type { MergeProviderProps } from '../merge-provider/types';\n\n/**\n * Replace the default collection renderer to allow for injection of\n * context props for multiple composed components. Also enables use of\n * Section as wrapper of list items at the top level as a styleable\n * element within the RAC container\n */\nexport function createCollectionRenderer<\n C extends { readonly collection: Collection<Node<unknown>> },\n V extends MergeProviderProps['values'],\n>(context: Context<C>, values: V): CollectionRenderer {\n return {\n // biome-ignore lint/style/useNamingConvention: intentional\n CollectionRoot: ({ renderDropIndicator }) => (\n <MergeProvider values={values}>\n {useCollectionRender(\n useContext(context)?.collection,\n null,\n renderDropIndicator,\n )}\n </MergeProvider>\n ),\n // biome-ignore lint/style/useNamingConvention: intentional\n CollectionBranch: ({ collection, parent, renderDropIndicator }) => (\n <MergeProvider values={values}>\n {useCollectionRender(collection, parent, renderDropIndicator)}\n </MergeProvider>\n ),\n };\n}\n"]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import 'react
|
|
5
|
-
import 'react';
|
|
1
|
+
import { ComboBoxClassNames, ComboBoxMapping, ComboBoxSizes, ComboBoxProps } 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';
|
|
6
5
|
import 'type-fest';
|
|
7
6
|
import '../../types/generic.js';
|
|
8
7
|
import '../../types/props.js';
|
|
@@ -11,3 +10,12 @@ import '../../types/react-aria.js';
|
|
|
11
10
|
import '../icon/types.js';
|
|
12
11
|
import '../input/types.js';
|
|
13
12
|
import '../options/types.js';
|
|
13
|
+
|
|
14
|
+
declare const ComboBoxContext: react.Context<ContextValue<ComboBoxProps<object>, HTMLDivElement>>;
|
|
15
|
+
declare const ComboBox: <T extends object>(props: Omit<react_aria_components.ComboBoxProps<T>, "className" | "style"> & {
|
|
16
|
+
classNames?: ComboBoxClassNames;
|
|
17
|
+
mapping?: Partial<ComboBoxMapping>;
|
|
18
|
+
size?: ComboBoxSizes;
|
|
19
|
+
} & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
20
|
+
|
|
21
|
+
export { ComboBox, ComboBoxContext };
|
|
@@ -1,6 +1,119 @@
|
|
|
1
1
|
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import '
|
|
2
|
+
import { createContext, forwardRef, useMemo, useCallback } from 'react';
|
|
3
|
+
import { Provider, ComboBox as ComboBox$1 } from 'react-aria-components';
|
|
4
|
+
import { useContextProps } from '../../hooks/use-context-props/index.js';
|
|
5
|
+
import { useDefaultProps } from '../../hooks/use-defaults/index.js';
|
|
6
|
+
import { useTheme } from '../../hooks/use-theme/index.js';
|
|
7
|
+
import { bodies } from '../../styles/typography.css.js';
|
|
8
|
+
import { inlineVars } from '../../utils/css/index.js';
|
|
9
|
+
import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
|
|
10
|
+
import { AriaLabelContext, AriaGroupContext, AriaTextContext, AriaFieldErrorContext } from '../aria/index.js';
|
|
11
|
+
import { ButtonContext } from '../button/index.js';
|
|
12
|
+
import { InputContext } from '../input/index.js';
|
|
13
|
+
import { OptionsContext } from '../options/index.js';
|
|
14
|
+
import { comboBoxClassNames, comboBoxStateVars } from './combo-box.css.js';
|
|
15
|
+
import { jsx } from 'react/jsx-runtime';
|
|
16
|
+
|
|
17
|
+
var defaultMapping = {
|
|
18
|
+
description: {
|
|
19
|
+
sm: bodies.xs,
|
|
20
|
+
lg: bodies.xs
|
|
21
|
+
},
|
|
22
|
+
error: {
|
|
23
|
+
sm: bodies.xs,
|
|
24
|
+
lg: bodies.xs
|
|
25
|
+
},
|
|
26
|
+
toggle: {
|
|
27
|
+
sm: { size: "sm", variant: "icon" },
|
|
28
|
+
lg: { size: "md", variant: "icon" }
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var ComboBoxContext = createContext(null);
|
|
32
|
+
var ComboBox = forwardRef(function ComboBox2(props, ref) {
|
|
33
|
+
[props, ref] = useContextProps(props, ref, ComboBoxContext);
|
|
34
|
+
props = useDefaultProps(props, "ComboBox");
|
|
35
|
+
const {
|
|
36
|
+
children: childrenProp,
|
|
37
|
+
classNames: classNamesProp,
|
|
38
|
+
mapping: mappingProp,
|
|
39
|
+
size = "lg"
|
|
40
|
+
} = props;
|
|
41
|
+
const theme = useTheme();
|
|
42
|
+
const mapping = useMemo(
|
|
43
|
+
() => ({
|
|
44
|
+
...defaultMapping,
|
|
45
|
+
...mappingProp
|
|
46
|
+
}),
|
|
47
|
+
[mappingProp]
|
|
48
|
+
);
|
|
49
|
+
const classNames = useMemo(
|
|
50
|
+
() => mergeClassNames(comboBoxClassNames, theme.ComboBox, classNamesProp, {
|
|
51
|
+
description: mapping.description[size],
|
|
52
|
+
error: mapping.error[size]
|
|
53
|
+
}),
|
|
54
|
+
[theme.ComboBox, classNamesProp, mapping, size]
|
|
55
|
+
);
|
|
56
|
+
const values = useMemo(
|
|
57
|
+
() => [
|
|
58
|
+
[
|
|
59
|
+
AriaLabelContext,
|
|
60
|
+
{
|
|
61
|
+
className: classNames?.label
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
AriaGroupContext,
|
|
66
|
+
{
|
|
67
|
+
className: classNames?.group
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
[InputContext, { classNames: classNames?.input, size }],
|
|
71
|
+
[
|
|
72
|
+
ButtonContext,
|
|
73
|
+
{
|
|
74
|
+
...mapping.toggle[size],
|
|
75
|
+
classNames: classNames?.toggle
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
AriaTextContext,
|
|
80
|
+
{
|
|
81
|
+
slots: {
|
|
82
|
+
description: { className: classNames?.description }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
[AriaFieldErrorContext, { className: classNames?.error }],
|
|
87
|
+
[OptionsContext, { classNames: classNames?.options, size }]
|
|
88
|
+
],
|
|
89
|
+
[classNames, mapping, size]
|
|
90
|
+
);
|
|
91
|
+
const style = useCallback(
|
|
92
|
+
(renderProps) => inlineVars(comboBoxStateVars, {
|
|
93
|
+
...renderProps,
|
|
94
|
+
size
|
|
95
|
+
}),
|
|
96
|
+
[size]
|
|
97
|
+
);
|
|
98
|
+
const children = useCallback(
|
|
99
|
+
(renderProps) => /* @__PURE__ */ jsx("div", { className: classNames?.comboBox, children: /* @__PURE__ */ jsx(Provider, { values, children: callRenderProps(childrenProp, {
|
|
100
|
+
...renderProps,
|
|
101
|
+
defaultChildren: null
|
|
102
|
+
}) }) }),
|
|
103
|
+
[classNames?.comboBox, values, childrenProp]
|
|
104
|
+
);
|
|
105
|
+
return /* @__PURE__ */ jsx(
|
|
106
|
+
ComboBox$1,
|
|
107
|
+
{
|
|
108
|
+
...props,
|
|
109
|
+
ref,
|
|
110
|
+
className: classNames?.container,
|
|
111
|
+
style,
|
|
112
|
+
children
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
export { ComboBox, ComboBoxContext };
|
|
5
118
|
//# sourceMappingURL=index.js.map
|
|
6
119
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/combo-box/index.tsx"],"names":["ComboBox","RACComboBox"],"mappings":"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","file":"index.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 createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ComboBoxRenderProps,\n type ContextValue,\n type FieldErrorProps,\n type LabelProps,\n Provider,\n ComboBox as RACComboBox,\n type GroupProps as RACGroupProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaFieldErrorContext,\n AriaGroupContext,\n AriaLabelContext,\n AriaTextContext,\n} from '../aria';\nimport { ButtonContext } from '../button';\nimport type { ButtonProps } from '../button/types';\nimport { InputContext } from '../input';\nimport type { InputProps } from '../input/types';\nimport { OptionsContext } from '../options';\nimport type { OptionsProps } from '../options/types';\nimport { comboBoxClassNames, comboBoxStateVars } from './combo-box.css';\nimport type { ComboBoxMapping, ComboBoxProps } from './types';\n\nconst defaultMapping: ComboBoxMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n toggle: {\n sm: { size: 'sm', variant: 'icon' },\n lg: { size: 'md', variant: 'icon' },\n },\n};\n\nexport const ComboBoxContext =\n createContext<ContextValue<ComboBoxProps<object>, HTMLDivElement>>(null);\n\nexport const ComboBox = forwardRef(function ComboBox<T extends object>(\n props: ComboBoxProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, ComboBoxContext);\n props = useDefaultProps(props, 'ComboBox');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\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(comboBoxClassNames, theme.ComboBox, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [theme.ComboBox, classNamesProp, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof AriaGroupContext, ContextValue<RACGroupProps, HTMLDivElement>],\n [typeof InputContext, ContextValue<InputProps, HTMLInputElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof OptionsContext, ContextValue<OptionsProps, HTMLElement>],\n ]\n >(\n () => [\n [\n AriaLabelContext,\n {\n className: classNames?.label,\n },\n ],\n [\n AriaGroupContext,\n {\n className: classNames?.group,\n },\n ],\n [InputContext, { classNames: classNames?.input, size }],\n [\n ButtonContext,\n {\n ...mapping.toggle[size],\n classNames: classNames?.toggle,\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [OptionsContext, { classNames: classNames?.options, size }],\n ],\n [classNames, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: ComboBoxRenderProps) =>\n inlineVars(comboBoxStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: ComboBoxRenderProps) => (\n <div className={classNames?.comboBox}>\n <Provider values={values}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </Provider>\n </div>\n ),\n [classNames?.comboBox, values, childrenProp],\n );\n\n return (\n <RACComboBox\n {...props}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </RACComboBox>\n );\n});\n"]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import 'react
|
|
5
|
-
import 'react';
|
|
1
|
+
import { DateFieldClassNames, DateFieldMapping, DateFieldSizes, DateFieldProps } from './types.js';
|
|
2
|
+
import * as react_aria_components from 'react-aria-components';
|
|
3
|
+
import { DateValue, ContextValue } from 'react-aria-components';
|
|
4
|
+
import * as react from 'react';
|
|
6
5
|
import 'type-fest';
|
|
7
6
|
import '../../types/generic.js';
|
|
8
7
|
import '../../types/props.js';
|
|
@@ -10,3 +9,12 @@ import '../date-input/types.js';
|
|
|
10
9
|
import '@react-stately/datepicker';
|
|
11
10
|
import '../../types/react-aria.js';
|
|
12
11
|
import '../icon/types.js';
|
|
12
|
+
|
|
13
|
+
declare const DateFieldContext: react.Context<ContextValue<DateFieldProps<DateValue>, HTMLDivElement>>;
|
|
14
|
+
declare const DateField: <T extends DateValue>(props: Omit<react_aria_components.DateFieldProps<T>, "className" | "style"> & {
|
|
15
|
+
classNames?: DateFieldClassNames;
|
|
16
|
+
mapping?: Partial<DateFieldMapping>;
|
|
17
|
+
size?: DateFieldSizes;
|
|
18
|
+
} & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
19
|
+
|
|
20
|
+
export { DateField, DateFieldContext };
|
|
@@ -1,5 +1,109 @@
|
|
|
1
1
|
import '../../chunk-PZ5AY32C.js';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { createContext, forwardRef, useMemo, useCallback } from 'react';
|
|
3
|
+
import { LabelContext, Provider, DateField as DateField$1 } from 'react-aria-components';
|
|
4
|
+
import { useContextProps } from '../../hooks/use-context-props/index.js';
|
|
5
|
+
import { useDefaultProps } from '../../hooks/use-defaults/index.js';
|
|
6
|
+
import { useTheme } from '../../hooks/use-theme/index.js';
|
|
7
|
+
import { bodies } from '../../styles/typography.css.js';
|
|
8
|
+
import { inlineVars } from '../../utils/css/index.js';
|
|
9
|
+
import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
|
|
10
|
+
import { AriaTextContext, AriaFieldErrorContext } from '../aria/index.js';
|
|
11
|
+
import { DateInputContext } from '../date-input/index.js';
|
|
12
|
+
import { IconContext } from '../icon/index.js';
|
|
13
|
+
import { dateFieldClassNames, dateFieldStateVars } from './date-field.css.js';
|
|
14
|
+
import { jsx } from 'react/jsx-runtime';
|
|
15
|
+
|
|
16
|
+
var defaultMapping = {
|
|
17
|
+
description: {
|
|
18
|
+
sm: bodies.xs,
|
|
19
|
+
lg: bodies.xs
|
|
20
|
+
},
|
|
21
|
+
error: {
|
|
22
|
+
sm: bodies.xs,
|
|
23
|
+
lg: bodies.xs
|
|
24
|
+
},
|
|
25
|
+
icon: {
|
|
26
|
+
sm: { size: "xs" },
|
|
27
|
+
lg: { size: "md" }
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var defaultSize = "lg";
|
|
31
|
+
var DateFieldContext = createContext(null);
|
|
32
|
+
var DateField = forwardRef(function DateField2(props, ref) {
|
|
33
|
+
[props, ref] = useContextProps(props, ref, DateFieldContext);
|
|
34
|
+
props = useDefaultProps(
|
|
35
|
+
props,
|
|
36
|
+
"DateField"
|
|
37
|
+
);
|
|
38
|
+
const {
|
|
39
|
+
children: childrenProp,
|
|
40
|
+
classNames: classNamesProp,
|
|
41
|
+
mapping: mappingProp,
|
|
42
|
+
size = defaultSize,
|
|
43
|
+
value,
|
|
44
|
+
...rest
|
|
45
|
+
} = props;
|
|
46
|
+
const theme = useTheme();
|
|
47
|
+
const mapping = useMemo(
|
|
48
|
+
() => ({
|
|
49
|
+
...defaultMapping,
|
|
50
|
+
...mappingProp
|
|
51
|
+
}),
|
|
52
|
+
[mappingProp]
|
|
53
|
+
);
|
|
54
|
+
const classNames = useMemo(
|
|
55
|
+
() => mergeClassNames(dateFieldClassNames, theme.DateField, classNamesProp, {
|
|
56
|
+
description: mapping.description[size],
|
|
57
|
+
error: mapping.error[size]
|
|
58
|
+
}),
|
|
59
|
+
[theme.DateField, classNamesProp, mapping, size]
|
|
60
|
+
);
|
|
61
|
+
const style = useCallback(
|
|
62
|
+
(renderProps) => inlineVars(dateFieldStateVars, {
|
|
63
|
+
...renderProps,
|
|
64
|
+
size
|
|
65
|
+
}),
|
|
66
|
+
[size]
|
|
67
|
+
);
|
|
68
|
+
const values = useMemo(
|
|
69
|
+
() => [
|
|
70
|
+
[DateInputContext, { classNames: classNames?.input, size }],
|
|
71
|
+
[LabelContext, { className: classNames?.label }],
|
|
72
|
+
[
|
|
73
|
+
AriaTextContext,
|
|
74
|
+
{
|
|
75
|
+
slots: {
|
|
76
|
+
description: { className: classNames?.description }
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
[AriaFieldErrorContext, { className: classNames?.error }],
|
|
81
|
+
[IconContext, { ...mapping.icon[size], classNames: classNames?.icon }]
|
|
82
|
+
],
|
|
83
|
+
[classNames, mapping, size]
|
|
84
|
+
);
|
|
85
|
+
const children = useCallback(
|
|
86
|
+
(renderProps) => {
|
|
87
|
+
return /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.dateField, children: callRenderProps(childrenProp, {
|
|
88
|
+
...renderProps,
|
|
89
|
+
defaultChildren: null
|
|
90
|
+
}) }) });
|
|
91
|
+
},
|
|
92
|
+
[childrenProp, values, classNames?.dateField]
|
|
93
|
+
);
|
|
94
|
+
return /* @__PURE__ */ jsx(
|
|
95
|
+
DateField$1,
|
|
96
|
+
{
|
|
97
|
+
...rest,
|
|
98
|
+
ref,
|
|
99
|
+
className: classNames?.container,
|
|
100
|
+
style,
|
|
101
|
+
value,
|
|
102
|
+
children
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
export { DateField, DateFieldContext };
|
|
4
108
|
//# sourceMappingURL=index.js.map
|
|
5
109
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/date-field/index.tsx"],"names":["DateField","RACDateField"],"mappings":"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","file":"index.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 createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n type DateValue,\n type FieldErrorProps,\n LabelContext,\n type LabelProps,\n Provider,\n DateField as RACDateField,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaFieldErrorContext,\n type AriaLabelContext,\n AriaTextContext,\n} from '../aria';\nimport { DateInputContext } from '../date-input';\nimport type { DateInputProps } from '../date-input/types';\nimport { IconContext } from '../icon';\nimport type { IconProps } from '../icon/types';\nimport { dateFieldClassNames, dateFieldStateVars } from './date-field.css';\nimport type {\n DateFieldMapping,\n DateFieldProps,\n DateFieldRenderProps,\n} from './types';\n\nconst defaultMapping: DateFieldMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n icon: {\n sm: { size: 'xs' },\n lg: { size: 'md' },\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const DateFieldContext =\n createContext<ContextValue<DateFieldProps<DateValue>, HTMLDivElement>>(null);\n\nexport const DateField = forwardRef(function DateField<T extends DateValue>(\n props: DateFieldProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, DateFieldContext);\n\n props = useDefaultProps(\n props as DateFieldProps<DateValue>,\n 'DateField',\n ) as DateFieldProps<T>;\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n value,\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(dateFieldClassNames, theme.DateField, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [theme.DateField, classNamesProp, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: DateFieldRenderProps) =>\n inlineVars(dateFieldStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const values = useMemo<\n [\n [typeof DateInputContext, ContextValue<DateInputProps, HTMLDivElement>],\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n ]\n >(\n () => [\n [DateInputContext, { classNames: classNames?.input, size }],\n [LabelContext, { className: classNames?.label }],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [IconContext, { ...mapping.icon[size], classNames: classNames?.icon }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: DateFieldRenderProps) => {\n return (\n <Provider values={values}>\n <div className={classNames?.dateField}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n );\n },\n [childrenProp, values, classNames?.dateField],\n );\n\n return (\n <RACDateField\n {...rest}\n ref={ref}\n className={classNames?.container}\n style={style}\n value={value}\n >\n {children}\n </RACDateField>\n );\n});\n"]}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import '
|
|
5
|
-
import 'react-aria-components';
|
|
6
|
-
import '@react-stately/datepicker';
|
|
7
|
-
import 'react';
|
|
1
|
+
import { DateInputProps, DateSegmentProps, DateInputClassNames, DateInputMapping, DateInputSizes } from './types.js';
|
|
2
|
+
import * as _react_stately_datepicker from '@react-stately/datepicker';
|
|
3
|
+
import * as react from 'react';
|
|
4
|
+
import { FC } from 'react';
|
|
5
|
+
import { ContextValue, SlotProps } from 'react-aria-components';
|
|
8
6
|
import 'type-fest';
|
|
9
7
|
import '../../types/generic.js';
|
|
10
8
|
import '../../types/react-aria.js';
|
|
11
9
|
import '../icon/types.js';
|
|
10
|
+
|
|
11
|
+
declare const DateInputContext: react.Context<ContextValue<DateInputProps, HTMLDivElement>>;
|
|
12
|
+
declare const DateInput: (props: DateInputProps & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
13
|
+
declare const DateSegments: (props: {
|
|
14
|
+
children: (segment: _react_stately_datepicker.DateSegment) => react.ReactElement;
|
|
15
|
+
} & {
|
|
16
|
+
classNames?: DateInputClassNames;
|
|
17
|
+
mapping?: DateInputMapping;
|
|
18
|
+
size?: DateInputSizes;
|
|
19
|
+
} & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
|
|
20
|
+
declare const DateSegmentContext: react.Context<ContextValue<SlotProps, HTMLDivElement>>;
|
|
21
|
+
declare const DateSegment: FC<DateSegmentProps>;
|
|
22
|
+
|
|
23
|
+
export { DateInput, DateInputContext, DateSegment, DateSegmentContext, DateSegments };
|