@mindlogic-ai/logician-ui 3.0.0-alpha.34 → 3.0.0-alpha.35
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/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +7 -20
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/Pagination.mjs +7 -20
- package/dist/components/Pagination/Pagination.mjs.map +1 -1
- package/dist/components/Select/Combobox.d.ts +28 -0
- package/dist/components/Select/Combobox.d.ts.map +1 -0
- package/dist/components/Select/Combobox.js +47 -0
- package/dist/components/Select/Combobox.js.map +1 -0
- package/dist/components/Select/Combobox.mjs +45 -0
- package/dist/components/Select/Combobox.mjs.map +1 -0
- package/dist/components/Select/ComboboxField.d.ts +12 -0
- package/dist/components/Select/ComboboxField.d.ts.map +1 -0
- package/dist/components/Select/ComboboxField.js +34 -0
- package/dist/components/Select/ComboboxField.js.map +1 -0
- package/dist/components/Select/ComboboxField.mjs +32 -0
- package/dist/components/Select/ComboboxField.mjs.map +1 -0
- package/dist/components/Select/Select.d.ts +29 -3
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +41 -156
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/Select.mjs +43 -158
- package/dist/components/Select/Select.mjs.map +1 -1
- package/dist/components/Select/Select.styles.d.ts +91 -62
- package/dist/components/Select/Select.styles.d.ts.map +1 -1
- package/dist/components/Select/Select.styles.js +67 -69
- package/dist/components/Select/Select.styles.js.map +1 -1
- package/dist/components/Select/Select.styles.mjs +63 -66
- package/dist/components/Select/Select.styles.mjs.map +1 -1
- package/dist/components/Select/Select.types.d.ts +31 -8
- package/dist/components/Select/Select.types.d.ts.map +1 -1
- package/dist/components/Select/SelectField.d.ts +11 -0
- package/dist/components/Select/SelectField.d.ts.map +1 -0
- package/dist/components/Select/SelectField.js +32 -0
- package/dist/components/Select/SelectField.js.map +1 -0
- package/dist/components/Select/SelectField.mjs +30 -0
- package/dist/components/Select/SelectField.mjs.map +1 -0
- package/dist/components/Select/index.d.ts +4 -0
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/index.js +27 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -3
- package/src/components/FormIntegration/FormIntegration.stories.tsx +7 -13
- package/src/components/FormIntegration/README.md +1 -1
- package/src/components/Pagination/Pagination.tsx +7 -26
- package/src/components/Select/Combobox.stories.tsx +172 -0
- package/src/components/Select/Combobox.tsx +69 -0
- package/src/components/Select/ComboboxField.tsx +86 -0
- package/src/components/Select/Comparison.stories.tsx +38 -321
- package/src/components/Select/Select.stories.tsx +691 -404
- package/src/components/Select/Select.styles.ts +64 -76
- package/src/components/Select/Select.tsx +76 -202
- package/src/components/Select/Select.types.ts +33 -13
- package/src/components/Select/SelectField.tsx +87 -0
- package/src/components/Select/index.ts +8 -0
- package/dist/components/Select/MenuList/MenuList.d.ts +0 -4
- package/dist/components/Select/MenuList/MenuList.d.ts.map +0 -1
- package/dist/components/Select/MenuList/MenuList.types.d.ts +0 -9
- package/dist/components/Select/MenuList/MenuList.types.d.ts.map +0 -1
- package/dist/components/Select/MenuList/VirtualizedMenuList.d.ts +0 -4
- package/dist/components/Select/MenuList/VirtualizedMenuList.d.ts.map +0 -1
- package/dist/components/Select/MenuList/VirtualizedMenuListContext.d.ts +0 -9
- package/dist/components/Select/MenuList/VirtualizedMenuListContext.d.ts.map +0 -1
- package/dist/components/Select/MenuList/index.d.ts +0 -4
- package/dist/components/Select/MenuList/index.d.ts.map +0 -1
- package/dist/components/Select/_utils/resolveStyle.d.ts +0 -5
- package/dist/components/Select/_utils/resolveStyle.d.ts.map +0 -1
- package/src/components/Select/MenuList/MenuList.tsx +0 -87
- package/src/components/Select/MenuList/MenuList.types.ts +0 -21
- package/src/components/Select/MenuList/VirtualizedMenuList.tsx +0 -136
- package/src/components/Select/MenuList/VirtualizedMenuListContext.tsx +0 -35
- package/src/components/Select/MenuList/index.ts +0 -3
- package/src/components/Select/_utils/resolveStyle.ts +0 -21
|
@@ -2,165 +2,50 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var react = require('@chakra-ui/react');
|
|
7
|
+
var mergeCss = require('../../utils/mergeCss.js');
|
|
7
8
|
var Select_styles = require('./Select.styles.js');
|
|
8
9
|
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const focusOutlineColor = invalid ? dangerColor : primaryColor;
|
|
49
|
-
const merged = {
|
|
50
|
-
...base,
|
|
51
|
-
...Select_styles.getControlStyles(effectiveVariant, colors),
|
|
52
|
-
width: '100%',
|
|
53
|
-
border: `1px solid ${invalid ? dangerColor : state.isFocused ? primaryColor : gray400}`,
|
|
54
|
-
boxShadow: 'none',
|
|
55
|
-
outline: state.isFocused
|
|
56
|
-
? `1px solid ${focusOutlineColor}`
|
|
57
|
-
: 'none',
|
|
58
|
-
outlineOffset: 0,
|
|
59
|
-
// react-select sets a 0.1s `transition: all` on the control,
|
|
60
|
-
// which causes the border-color and outline (none -> solid +
|
|
61
|
-
// transparent -> primary) to interpolate awkwardly — a brief
|
|
62
|
-
// dark blink during focus. Disable to match Input, which
|
|
63
|
-
// toggles its focus ring instantly via :focus-visible.
|
|
64
|
-
transition: 'none',
|
|
65
|
-
'&:hover': {
|
|
66
|
-
borderColor: invalid
|
|
67
|
-
? dangerColor
|
|
68
|
-
: state.isFocused
|
|
69
|
-
? primaryColor
|
|
70
|
-
: primaryLighter,
|
|
71
|
-
},
|
|
72
|
-
...(state.isDisabled && {
|
|
73
|
-
backgroundColor: gray50,
|
|
74
|
-
color: gray1000,
|
|
75
|
-
fontWeight: 600,
|
|
76
|
-
cursor: 'not-allowed',
|
|
77
|
-
}),
|
|
78
|
-
};
|
|
79
|
-
return styles?.control ? styles.control(merged, state) : merged;
|
|
80
|
-
},
|
|
81
|
-
placeholder: (base, state) => {
|
|
82
|
-
const merged = { ...base, ...Select_styles.getPlaceholderStyles(colors) };
|
|
83
|
-
return styles?.placeholder
|
|
84
|
-
? styles.placeholder(merged, state)
|
|
85
|
-
: merged;
|
|
86
|
-
},
|
|
87
|
-
menu: (base, state) => {
|
|
88
|
-
const merged = { ...base, ...Select_styles.getMenuStyles(colors) };
|
|
89
|
-
return styles?.menu ? styles.menu(merged, state) : merged;
|
|
90
|
-
},
|
|
91
|
-
menuList: (base, state) => {
|
|
92
|
-
const merged = { ...base, padding: '0px 4px' };
|
|
93
|
-
return styles?.menuList ? styles.menuList(merged, state) : merged;
|
|
94
|
-
},
|
|
95
|
-
option: (base, state) => {
|
|
96
|
-
const merged = {
|
|
97
|
-
...base,
|
|
98
|
-
...Select_styles.getOptionStyles({
|
|
99
|
-
isSelected: state.isSelected,
|
|
100
|
-
isDisabled: state.isDisabled,
|
|
101
|
-
colors,
|
|
102
|
-
}),
|
|
103
|
-
};
|
|
104
|
-
return styles?.option ? styles.option(merged, state) : merged;
|
|
105
|
-
},
|
|
106
|
-
singleValue: (base, state) => {
|
|
107
|
-
// Match Input text color (gray.1300, inherited from body in Input).
|
|
108
|
-
// When disabled, mirror Input's _disabled color (gray.1000).
|
|
109
|
-
const merged = {
|
|
110
|
-
...base,
|
|
111
|
-
margin: 0,
|
|
112
|
-
color: state.isDisabled ? gray1000 : gray1300,
|
|
113
|
-
};
|
|
114
|
-
return styles?.singleValue
|
|
115
|
-
? styles.singleValue(merged, state)
|
|
116
|
-
: merged;
|
|
117
|
-
},
|
|
118
|
-
valueContainer: (base, state) => {
|
|
119
|
-
// Zero internal padding so the visible text starts after the
|
|
120
|
-
// control's own 12px paddingLeft (matches Input's `px: 3` =
|
|
121
|
-
// 12px). react-select's default valueContainer padding is
|
|
122
|
-
// `2px 8px`, which would otherwise stack on top.
|
|
123
|
-
const merged = {
|
|
124
|
-
...base,
|
|
125
|
-
display: 'flex',
|
|
126
|
-
alignItems: 'center',
|
|
127
|
-
textAlign: 'left',
|
|
128
|
-
padding: 0,
|
|
129
|
-
};
|
|
130
|
-
return styles?.valueContainer
|
|
131
|
-
? styles.valueContainer(merged, state)
|
|
132
|
-
: merged;
|
|
133
|
-
},
|
|
134
|
-
indicatorSeparator: (base, state) => {
|
|
135
|
-
const merged = { ...base, display: 'none' };
|
|
136
|
-
return styles?.indicatorSeparator
|
|
137
|
-
? styles.indicatorSeparator(merged, state)
|
|
138
|
-
: merged;
|
|
139
|
-
},
|
|
140
|
-
dropdownIndicator: (base, state) => {
|
|
141
|
-
// Lighter than the body text color so the chevron doesn't
|
|
142
|
-
// visually outweigh Input's right-side icons (which are
|
|
143
|
-
// typically outline-style and read as gray.600-ish).
|
|
144
|
-
const merged = { ...base, color: gray600 };
|
|
145
|
-
return styles?.dropdownIndicator
|
|
146
|
-
? styles.dropdownIndicator(merged, state)
|
|
147
|
-
: merged;
|
|
148
|
-
},
|
|
149
|
-
indicatorsContainer: (base, state) => {
|
|
150
|
-
const merged = {
|
|
151
|
-
...base,
|
|
152
|
-
display: 'flex',
|
|
153
|
-
alignItems: 'center',
|
|
154
|
-
};
|
|
155
|
-
return styles?.indicatorsContainer
|
|
156
|
-
? styles.indicatorsContainer(merged, state)
|
|
157
|
-
: merged;
|
|
158
|
-
},
|
|
159
|
-
menuPortal: (base, state) => {
|
|
160
|
-
const merged = { ...base, zIndex: 9999 };
|
|
161
|
-
return styles?.menuPortal ? styles.menuPortal(merged, state) : merged;
|
|
162
|
-
},
|
|
163
|
-
} }));
|
|
10
|
+
const Trigger = React.forwardRef(function SelectTrigger({ css, ...props }, ref) {
|
|
11
|
+
return (jsxRuntime.jsx(react.Select.Trigger, { ref: ref, ...props, css: mergeCss.mergeCss(Select_styles.triggerStyles, css) }));
|
|
12
|
+
});
|
|
13
|
+
const Content = React.forwardRef(function SelectContent({ css, ...props }, ref) {
|
|
14
|
+
return (jsxRuntime.jsx(react.Select.Content, { ref: ref, ...props, css: mergeCss.mergeCss(Select_styles.contentStyles, css) }));
|
|
15
|
+
});
|
|
16
|
+
const Item = React.forwardRef(function SelectItem({ css, ...props }, ref) {
|
|
17
|
+
return (jsxRuntime.jsx(react.Select.Item, { ref: ref, ...props, css: mergeCss.mergeCss(Select_styles.itemStyles, css) }));
|
|
18
|
+
});
|
|
19
|
+
const Indicator = React.forwardRef(function SelectIndicator({ css, ...props }, ref) {
|
|
20
|
+
return (jsxRuntime.jsx(react.Select.Indicator, { ref: ref, ...props, css: mergeCss.mergeCss(Select_styles.indicatorStyles, css) }));
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Compound Select primitives — Chakra's `Select` namespace with the Logician
|
|
24
|
+
* design-system styling baked into the visual parts (`Trigger`, `Content`,
|
|
25
|
+
* `Item`, `Indicator`). Use these directly for full compositional control
|
|
26
|
+
* (multi-select, grouped options, custom layouts); use `SelectField` for the
|
|
27
|
+
* common single-select case.
|
|
28
|
+
*/
|
|
29
|
+
const Select = {
|
|
30
|
+
Root: react.Select.Root,
|
|
31
|
+
PropsProvider: react.Select.PropsProvider,
|
|
32
|
+
Context: react.Select.Context,
|
|
33
|
+
Label: react.Select.Label,
|
|
34
|
+
Control: react.Select.Control,
|
|
35
|
+
Trigger,
|
|
36
|
+
ValueText: react.Select.ValueText,
|
|
37
|
+
IndicatorGroup: react.Select.IndicatorGroup,
|
|
38
|
+
Indicator,
|
|
39
|
+
ClearTrigger: react.Select.ClearTrigger,
|
|
40
|
+
HiddenSelect: react.Select.HiddenSelect,
|
|
41
|
+
Positioner: react.Select.Positioner,
|
|
42
|
+
Content,
|
|
43
|
+
ItemGroup: react.Select.ItemGroup,
|
|
44
|
+
ItemGroupLabel: react.Select.ItemGroupLabel,
|
|
45
|
+
Item,
|
|
46
|
+
ItemText: react.Select.ItemText,
|
|
47
|
+
ItemIndicator: react.Select.ItemIndicator,
|
|
48
|
+
ItemContext: react.Select.ItemContext,
|
|
164
49
|
};
|
|
165
50
|
|
|
166
51
|
exports.Select = Select;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":[null],"names":["forwardRef","_jsx","ChakraSelect","mergeCss","triggerStyles","contentStyles","itemStyles","indicatorStyles"],"mappings":";;;;;;;;;AAYA,MAAM,OAAO,GAAGA,gBAAU,CACxB,SAAS,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IAC3C,QACEC,eAACC,YAAY,CAAC,OAAO,EAAA,EACnB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,GAAG,EAAEC,iBAAQ,CAACC,2BAAa,EAAE,GAAG,CAAC,EAAA,CACjC;AAEN,CAAC,CACF;AAED,MAAM,OAAO,GAAGJ,gBAAU,CACxB,SAAS,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IAC3C,QACEC,eAACC,YAAY,CAAC,OAAO,EAAA,EACnB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,GAAG,EAAEC,iBAAQ,CAACE,2BAAa,EAAE,GAAG,CAAC,EAAA,CACjC;AAEN,CAAC,CACF;AAED,MAAM,IAAI,GAAGL,gBAAU,CACrB,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IACxC,QACEC,eAACC,YAAY,CAAC,IAAI,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAE,GAAG,EAAEC,iBAAQ,CAACG,wBAAU,EAAE,GAAG,CAAC,EAAA,CAAI;AAE9E,CAAC,CACF;AAED,MAAM,SAAS,GAAGN,gBAAU,CAC1B,SAAS,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IAC7C,QACEC,eAACC,YAAY,CAAC,SAAS,EAAA,EACrB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,GAAG,EAAEC,iBAAQ,CAACI,6BAAe,EAAE,GAAG,CAAC,EAAA,CACnC;AAEN,CAAC,CACF;AAED;;;;;;AAMG;AACI,MAAM,MAAM,GAAG;IACpB,IAAI,EAAEL,YAAY,CAAC,IAAI;IACvB,aAAa,EAAEA,YAAY,CAAC,aAAa;IACzC,OAAO,EAAEA,YAAY,CAAC,OAAO;IAC7B,KAAK,EAAEA,YAAY,CAAC,KAAK;IACzB,OAAO,EAAEA,YAAY,CAAC,OAAO;IAC7B,OAAO;IACP,SAAS,EAAEA,YAAY,CAAC,SAAS;IACjC,cAAc,EAAEA,YAAY,CAAC,cAAc;IAC3C,SAAS;IACT,YAAY,EAAEA,YAAY,CAAC,YAAY;IACvC,YAAY,EAAEA,YAAY,CAAC,YAAY;IACvC,UAAU,EAAEA,YAAY,CAAC,UAAU;IACnC,OAAO;IACP,SAAS,EAAEA,YAAY,CAAC,SAAS;IACjC,cAAc,EAAEA,YAAY,CAAC,cAAc;IAC3C,IAAI;IACJ,QAAQ,EAAEA,YAAY,CAAC,QAAQ;IAC/B,aAAa,EAAEA,YAAY,CAAC,aAAa;IACzC,WAAW,EAAEA,YAAY,CAAC,WAAW;;;;;"}
|
|
@@ -1,164 +1,49 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { Select as Select$1 } from '@chakra-ui/react';
|
|
5
|
+
import { mergeCss } from '../../utils/mergeCss.mjs';
|
|
6
|
+
import { triggerStyles, contentStyles, itemStyles, indicatorStyles } from './Select.styles.mjs';
|
|
6
7
|
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const focusOutlineColor = invalid ? dangerColor : primaryColor;
|
|
47
|
-
const merged = {
|
|
48
|
-
...base,
|
|
49
|
-
...getControlStyles(effectiveVariant, colors),
|
|
50
|
-
width: '100%',
|
|
51
|
-
border: `1px solid ${invalid ? dangerColor : state.isFocused ? primaryColor : gray400}`,
|
|
52
|
-
boxShadow: 'none',
|
|
53
|
-
outline: state.isFocused
|
|
54
|
-
? `1px solid ${focusOutlineColor}`
|
|
55
|
-
: 'none',
|
|
56
|
-
outlineOffset: 0,
|
|
57
|
-
// react-select sets a 0.1s `transition: all` on the control,
|
|
58
|
-
// which causes the border-color and outline (none -> solid +
|
|
59
|
-
// transparent -> primary) to interpolate awkwardly — a brief
|
|
60
|
-
// dark blink during focus. Disable to match Input, which
|
|
61
|
-
// toggles its focus ring instantly via :focus-visible.
|
|
62
|
-
transition: 'none',
|
|
63
|
-
'&:hover': {
|
|
64
|
-
borderColor: invalid
|
|
65
|
-
? dangerColor
|
|
66
|
-
: state.isFocused
|
|
67
|
-
? primaryColor
|
|
68
|
-
: primaryLighter,
|
|
69
|
-
},
|
|
70
|
-
...(state.isDisabled && {
|
|
71
|
-
backgroundColor: gray50,
|
|
72
|
-
color: gray1000,
|
|
73
|
-
fontWeight: 600,
|
|
74
|
-
cursor: 'not-allowed',
|
|
75
|
-
}),
|
|
76
|
-
};
|
|
77
|
-
return styles?.control ? styles.control(merged, state) : merged;
|
|
78
|
-
},
|
|
79
|
-
placeholder: (base, state) => {
|
|
80
|
-
const merged = { ...base, ...getPlaceholderStyles(colors) };
|
|
81
|
-
return styles?.placeholder
|
|
82
|
-
? styles.placeholder(merged, state)
|
|
83
|
-
: merged;
|
|
84
|
-
},
|
|
85
|
-
menu: (base, state) => {
|
|
86
|
-
const merged = { ...base, ...getMenuStyles(colors) };
|
|
87
|
-
return styles?.menu ? styles.menu(merged, state) : merged;
|
|
88
|
-
},
|
|
89
|
-
menuList: (base, state) => {
|
|
90
|
-
const merged = { ...base, padding: '0px 4px' };
|
|
91
|
-
return styles?.menuList ? styles.menuList(merged, state) : merged;
|
|
92
|
-
},
|
|
93
|
-
option: (base, state) => {
|
|
94
|
-
const merged = {
|
|
95
|
-
...base,
|
|
96
|
-
...getOptionStyles({
|
|
97
|
-
isSelected: state.isSelected,
|
|
98
|
-
isDisabled: state.isDisabled,
|
|
99
|
-
colors,
|
|
100
|
-
}),
|
|
101
|
-
};
|
|
102
|
-
return styles?.option ? styles.option(merged, state) : merged;
|
|
103
|
-
},
|
|
104
|
-
singleValue: (base, state) => {
|
|
105
|
-
// Match Input text color (gray.1300, inherited from body in Input).
|
|
106
|
-
// When disabled, mirror Input's _disabled color (gray.1000).
|
|
107
|
-
const merged = {
|
|
108
|
-
...base,
|
|
109
|
-
margin: 0,
|
|
110
|
-
color: state.isDisabled ? gray1000 : gray1300,
|
|
111
|
-
};
|
|
112
|
-
return styles?.singleValue
|
|
113
|
-
? styles.singleValue(merged, state)
|
|
114
|
-
: merged;
|
|
115
|
-
},
|
|
116
|
-
valueContainer: (base, state) => {
|
|
117
|
-
// Zero internal padding so the visible text starts after the
|
|
118
|
-
// control's own 12px paddingLeft (matches Input's `px: 3` =
|
|
119
|
-
// 12px). react-select's default valueContainer padding is
|
|
120
|
-
// `2px 8px`, which would otherwise stack on top.
|
|
121
|
-
const merged = {
|
|
122
|
-
...base,
|
|
123
|
-
display: 'flex',
|
|
124
|
-
alignItems: 'center',
|
|
125
|
-
textAlign: 'left',
|
|
126
|
-
padding: 0,
|
|
127
|
-
};
|
|
128
|
-
return styles?.valueContainer
|
|
129
|
-
? styles.valueContainer(merged, state)
|
|
130
|
-
: merged;
|
|
131
|
-
},
|
|
132
|
-
indicatorSeparator: (base, state) => {
|
|
133
|
-
const merged = { ...base, display: 'none' };
|
|
134
|
-
return styles?.indicatorSeparator
|
|
135
|
-
? styles.indicatorSeparator(merged, state)
|
|
136
|
-
: merged;
|
|
137
|
-
},
|
|
138
|
-
dropdownIndicator: (base, state) => {
|
|
139
|
-
// Lighter than the body text color so the chevron doesn't
|
|
140
|
-
// visually outweigh Input's right-side icons (which are
|
|
141
|
-
// typically outline-style and read as gray.600-ish).
|
|
142
|
-
const merged = { ...base, color: gray600 };
|
|
143
|
-
return styles?.dropdownIndicator
|
|
144
|
-
? styles.dropdownIndicator(merged, state)
|
|
145
|
-
: merged;
|
|
146
|
-
},
|
|
147
|
-
indicatorsContainer: (base, state) => {
|
|
148
|
-
const merged = {
|
|
149
|
-
...base,
|
|
150
|
-
display: 'flex',
|
|
151
|
-
alignItems: 'center',
|
|
152
|
-
};
|
|
153
|
-
return styles?.indicatorsContainer
|
|
154
|
-
? styles.indicatorsContainer(merged, state)
|
|
155
|
-
: merged;
|
|
156
|
-
},
|
|
157
|
-
menuPortal: (base, state) => {
|
|
158
|
-
const merged = { ...base, zIndex: 9999 };
|
|
159
|
-
return styles?.menuPortal ? styles.menuPortal(merged, state) : merged;
|
|
160
|
-
},
|
|
161
|
-
} }));
|
|
8
|
+
const Trigger = forwardRef(function SelectTrigger({ css, ...props }, ref) {
|
|
9
|
+
return (jsx(Select$1.Trigger, { ref: ref, ...props, css: mergeCss(triggerStyles, css) }));
|
|
10
|
+
});
|
|
11
|
+
const Content = forwardRef(function SelectContent({ css, ...props }, ref) {
|
|
12
|
+
return (jsx(Select$1.Content, { ref: ref, ...props, css: mergeCss(contentStyles, css) }));
|
|
13
|
+
});
|
|
14
|
+
const Item = forwardRef(function SelectItem({ css, ...props }, ref) {
|
|
15
|
+
return (jsx(Select$1.Item, { ref: ref, ...props, css: mergeCss(itemStyles, css) }));
|
|
16
|
+
});
|
|
17
|
+
const Indicator = forwardRef(function SelectIndicator({ css, ...props }, ref) {
|
|
18
|
+
return (jsx(Select$1.Indicator, { ref: ref, ...props, css: mergeCss(indicatorStyles, css) }));
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Compound Select primitives — Chakra's `Select` namespace with the Logician
|
|
22
|
+
* design-system styling baked into the visual parts (`Trigger`, `Content`,
|
|
23
|
+
* `Item`, `Indicator`). Use these directly for full compositional control
|
|
24
|
+
* (multi-select, grouped options, custom layouts); use `SelectField` for the
|
|
25
|
+
* common single-select case.
|
|
26
|
+
*/
|
|
27
|
+
const Select = {
|
|
28
|
+
Root: Select$1.Root,
|
|
29
|
+
PropsProvider: Select$1.PropsProvider,
|
|
30
|
+
Context: Select$1.Context,
|
|
31
|
+
Label: Select$1.Label,
|
|
32
|
+
Control: Select$1.Control,
|
|
33
|
+
Trigger,
|
|
34
|
+
ValueText: Select$1.ValueText,
|
|
35
|
+
IndicatorGroup: Select$1.IndicatorGroup,
|
|
36
|
+
Indicator,
|
|
37
|
+
ClearTrigger: Select$1.ClearTrigger,
|
|
38
|
+
HiddenSelect: Select$1.HiddenSelect,
|
|
39
|
+
Positioner: Select$1.Positioner,
|
|
40
|
+
Content,
|
|
41
|
+
ItemGroup: Select$1.ItemGroup,
|
|
42
|
+
ItemGroupLabel: Select$1.ItemGroupLabel,
|
|
43
|
+
Item,
|
|
44
|
+
ItemText: Select$1.ItemText,
|
|
45
|
+
ItemIndicator: Select$1.ItemIndicator,
|
|
46
|
+
ItemContext: Select$1.ItemContext,
|
|
162
47
|
};
|
|
163
48
|
|
|
164
49
|
export { Select };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.mjs","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Select.mjs","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":[null],"names":["_jsx","ChakraSelect"],"mappings":";;;;;;;AAYA,MAAM,OAAO,GAAG,UAAU,CACxB,SAAS,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IAC3C,QACEA,IAACC,QAAY,CAAC,OAAO,EAAA,EACnB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,GAAG,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,EAAA,CACjC;AAEN,CAAC,CACF;AAED,MAAM,OAAO,GAAG,UAAU,CACxB,SAAS,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IAC3C,QACED,IAACC,QAAY,CAAC,OAAO,EAAA,EACnB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,GAAG,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,EAAA,CACjC;AAEN,CAAC,CACF;AAED,MAAM,IAAI,GAAG,UAAU,CACrB,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IACxC,QACED,IAACC,QAAY,CAAC,IAAI,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,EAAA,CAAI;AAE9E,CAAC,CACF;AAED,MAAM,SAAS,GAAG,UAAU,CAC1B,SAAS,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAA;IAC7C,QACED,IAACC,QAAY,CAAC,SAAS,EAAA,EACrB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,GAAG,EAAE,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,EAAA,CACnC;AAEN,CAAC,CACF;AAED;;;;;;AAMG;AACI,MAAM,MAAM,GAAG;IACpB,IAAI,EAAEA,QAAY,CAAC,IAAI;IACvB,aAAa,EAAEA,QAAY,CAAC,aAAa;IACzC,OAAO,EAAEA,QAAY,CAAC,OAAO;IAC7B,KAAK,EAAEA,QAAY,CAAC,KAAK;IACzB,OAAO,EAAEA,QAAY,CAAC,OAAO;IAC7B,OAAO;IACP,SAAS,EAAEA,QAAY,CAAC,SAAS;IACjC,cAAc,EAAEA,QAAY,CAAC,cAAc;IAC3C,SAAS;IACT,YAAY,EAAEA,QAAY,CAAC,YAAY;IACvC,YAAY,EAAEA,QAAY,CAAC,YAAY;IACvC,UAAU,EAAEA,QAAY,CAAC,UAAU;IACnC,OAAO;IACP,SAAS,EAAEA,QAAY,CAAC,SAAS;IACjC,cAAc,EAAEA,QAAY,CAAC,cAAc;IAC3C,IAAI;IACJ,QAAQ,EAAEA,QAAY,CAAC,QAAQ;IAC/B,aAAa,EAAEA,QAAY,CAAC,aAAa;IACzC,WAAW,EAAEA,QAAY,CAAC,WAAW;;;;;"}
|
|
@@ -1,74 +1,103 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Shared style objects for the Select and Combobox components.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Reference (kept in sync with Input.tsx):
|
|
10
|
-
* borderColor: gray.400
|
|
11
|
-
* _hover : primary.lighter
|
|
12
|
-
* _focus : primary.main
|
|
13
|
-
* _invalid : danger.main
|
|
14
|
-
* borderRadius: 6 (Chakra `l2` -> Logician `radii.sm`)
|
|
15
|
-
* minHeight : 40 (Chakra md, `sizes.10`)
|
|
16
|
-
* fontSize : 1em (Chakra textStyle `sm`, inherits responsively)
|
|
17
|
-
* fontWeight : 500 (Chakra textStyle `sm` -> `subtitleAndP.medium`)
|
|
18
|
-
* paddingX : 12px (Chakra md, `px: 3`)
|
|
4
|
+
* These mirror the Input component (`Input.tsx`) so the form controls share
|
|
5
|
+
* the same border, hover, focus and disabled behavior. They are applied on
|
|
6
|
+
* top of Chakra's built-in `select` / `combobox` slot recipes via the `css`
|
|
7
|
+
* prop — only the design-system deltas live here. When `Input.tsx` changes,
|
|
8
|
+
* update these values to match.
|
|
19
9
|
*/
|
|
20
|
-
|
|
21
|
-
export declare const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
10
|
+
/** Select trigger — the clickable control. */
|
|
11
|
+
export declare const triggerStyles: {
|
|
12
|
+
cursor: string;
|
|
13
|
+
_open: {
|
|
14
|
+
borderColor: string;
|
|
15
|
+
};
|
|
16
|
+
bg: string;
|
|
17
|
+
borderColor: string;
|
|
18
|
+
_hover: {
|
|
19
|
+
borderColor: string;
|
|
20
|
+
};
|
|
21
|
+
_focus: {
|
|
22
|
+
borderColor: string;
|
|
23
|
+
};
|
|
24
|
+
_invalid: {
|
|
25
|
+
borderColor: string;
|
|
26
|
+
_hover: {
|
|
27
|
+
borderColor: string;
|
|
28
|
+
};
|
|
29
|
+
_focus: {
|
|
30
|
+
borderColor: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
_disabled: {
|
|
34
|
+
opacity: number;
|
|
35
|
+
cursor: string;
|
|
36
|
+
bg: string;
|
|
37
|
+
color: string;
|
|
38
|
+
fontWeight: string;
|
|
39
|
+
};
|
|
40
|
+
'--focus-color': string;
|
|
41
|
+
'--error-color': string;
|
|
25
42
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
43
|
+
/** Combobox text input — the typeable control. */
|
|
44
|
+
export declare const inputStyles: {
|
|
45
|
+
bg: string;
|
|
46
|
+
borderColor: string;
|
|
47
|
+
_hover: {
|
|
48
|
+
borderColor: string;
|
|
49
|
+
};
|
|
50
|
+
_focus: {
|
|
51
|
+
borderColor: string;
|
|
52
|
+
};
|
|
53
|
+
_invalid: {
|
|
54
|
+
borderColor: string;
|
|
55
|
+
_hover: {
|
|
56
|
+
borderColor: string;
|
|
57
|
+
};
|
|
58
|
+
_focus: {
|
|
59
|
+
borderColor: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
_disabled: {
|
|
63
|
+
opacity: number;
|
|
64
|
+
cursor: string;
|
|
65
|
+
bg: string;
|
|
66
|
+
color: string;
|
|
67
|
+
fontWeight: string;
|
|
68
|
+
};
|
|
69
|
+
'--focus-color': string;
|
|
70
|
+
'--error-color': string;
|
|
71
|
+
};
|
|
72
|
+
/** Dropdown panel for both Select and Combobox. */
|
|
73
|
+
export declare const contentStyles: {
|
|
74
|
+
bg: string;
|
|
75
|
+
borderColor: string;
|
|
76
|
+
borderWidth: string;
|
|
77
|
+
borderRadius: string;
|
|
33
78
|
boxShadow: string;
|
|
34
|
-
|
|
79
|
+
padding: string;
|
|
35
80
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
colors?: SelectColors;
|
|
40
|
-
}) => {
|
|
81
|
+
/** Individual option for both Select and Combobox. */
|
|
82
|
+
export declare const itemStyles: {
|
|
83
|
+
borderRadius: string;
|
|
41
84
|
cursor: string;
|
|
42
|
-
minHeight: number;
|
|
43
|
-
margin: string;
|
|
44
|
-
borderRadius: number;
|
|
45
|
-
fontSize: number;
|
|
46
|
-
backgroundColor: string;
|
|
47
85
|
color: string;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
86
|
+
_highlighted: {
|
|
87
|
+
bg: string;
|
|
88
|
+
};
|
|
89
|
+
_checked: {
|
|
90
|
+
bg: string;
|
|
91
|
+
color: string;
|
|
92
|
+
fontWeight: string;
|
|
93
|
+
};
|
|
94
|
+
_disabled: {
|
|
95
|
+
color: string;
|
|
96
|
+
cursor: string;
|
|
51
97
|
};
|
|
52
98
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
minHeight: number;
|
|
57
|
-
fontSize: string;
|
|
58
|
-
fontWeight: number;
|
|
59
|
-
paddingLeft: number;
|
|
60
|
-
paddingRight: number;
|
|
61
|
-
backgroundColor: string;
|
|
62
|
-
} | {
|
|
63
|
-
border: string;
|
|
64
|
-
boxShadow: string;
|
|
65
|
-
borderRadius: number;
|
|
66
|
-
cursor: string;
|
|
67
|
-
minHeight: number;
|
|
68
|
-
fontSize: string;
|
|
69
|
-
fontWeight: number;
|
|
70
|
-
paddingLeft: number;
|
|
71
|
-
paddingRight: number;
|
|
72
|
-
backgroundColor: string;
|
|
99
|
+
/** Dropdown chevron — softened so it doesn't outweigh adjacent icons. */
|
|
100
|
+
export declare const indicatorStyles: {
|
|
101
|
+
color: string;
|
|
73
102
|
};
|
|
74
103
|
//# sourceMappingURL=Select.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.styles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Select.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH,8CAA8C;AAC9C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIzB,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEvB,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAWtB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,eAAe;;CAE3B,CAAC"}
|