@tecsinapse/cortex-react 1.3.0-beta.1 → 1.3.0-beta.11
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/cjs/components/Calendar.js +1 -0
- package/dist/cjs/components/CalendarCell.js +1 -0
- package/dist/cjs/components/CalendarGrid.js +1 -0
- package/dist/cjs/components/DatePickerInput.js +1 -0
- package/dist/cjs/components/DatePickerInputBase.js +2 -2
- package/dist/cjs/components/DateRangePickerInput.js +1 -0
- package/dist/cjs/components/Divider.js +10 -0
- package/dist/cjs/components/Input/Box.js +32 -0
- package/dist/cjs/components/Input/Face.js +30 -0
- package/dist/cjs/components/Input/Left.js +12 -0
- package/dist/cjs/components/Input/Right.js +12 -0
- package/dist/cjs/components/Input/Root.js +13 -0
- package/dist/cjs/components/Input/Search.js +25 -0
- package/dist/cjs/components/Input/index.js +19 -0
- package/dist/cjs/components/Masonry.js +49 -0
- package/dist/cjs/components/Menubar/Categories.js +10 -0
- package/dist/cjs/components/Menubar/Category.js +11 -0
- package/dist/cjs/components/Menubar/Dropdown.js +23 -0
- package/dist/cjs/components/Menubar/DropdownRoot.js +38 -0
- package/dist/cjs/components/Menubar/Header.js +25 -0
- package/dist/cjs/components/Menubar/IconControlSubItem.js +19 -0
- package/dist/cjs/components/Menubar/Item.js +22 -0
- package/dist/cjs/components/Menubar/ItemLink.js +18 -0
- package/dist/cjs/components/Menubar/Left.js +11 -0
- package/dist/cjs/components/Menubar/MostUsed.js +11 -0
- package/dist/cjs/components/Menubar/MostUsedItem.js +31 -0
- package/dist/cjs/components/Menubar/MostUsedList.js +58 -0
- package/dist/cjs/components/Menubar/Right.js +11 -0
- package/dist/cjs/components/Menubar/Root.js +11 -0
- package/dist/cjs/components/Menubar/Search.js +21 -0
- package/dist/cjs/components/Menubar/SubItem.js +20 -0
- package/dist/cjs/components/Menubar/index.js +33 -0
- package/dist/cjs/components/Popover/Content.js +31 -0
- package/dist/cjs/components/Popover/Context.js +15 -0
- package/dist/cjs/components/Popover/Provider.js +19 -0
- package/dist/cjs/components/Popover/Root.js +14 -0
- package/dist/cjs/components/Popover/Trigger.js +11 -0
- package/dist/cjs/components/Popover/index.js +15 -0
- package/dist/cjs/components/RangeCalendar.js +1 -0
- package/dist/cjs/components/Select/Content.js +27 -0
- package/dist/cjs/components/Select/GroupedOptions.js +34 -0
- package/dist/cjs/components/Select/Option.js +25 -0
- package/dist/cjs/components/Select/Options.js +31 -0
- package/dist/cjs/components/Select/Popover.js +10 -0
- package/dist/cjs/components/Select/Root.js +24 -0
- package/dist/cjs/components/Select/Trigger.js +28 -0
- package/dist/cjs/components/Select/context.js +10 -0
- package/dist/cjs/components/Select/index.js +19 -0
- package/dist/cjs/components/TimeFieldInput.js +2 -2
- package/dist/cjs/components/Tooltip.js +54 -0
- package/dist/cjs/hooks/useFloatingLogic.js +53 -0
- package/dist/cjs/hooks/useOutsideClickListener.js +22 -0
- package/dist/cjs/index.js +16 -9
- package/dist/cjs/provider/MenubarProvider.js +22 -0
- package/dist/cjs/provider/SnackbarProvider.js +51 -0
- package/dist/cjs/service/SnackbarSonner.js +23 -2
- package/dist/cjs/styles/menubar.js +70 -0
- package/dist/esm/components/Calendar.js +1 -0
- package/dist/esm/components/CalendarCell.js +1 -0
- package/dist/esm/components/CalendarGrid.js +1 -0
- package/dist/esm/components/DatePickerInput.js +1 -0
- package/dist/esm/components/DatePickerInputBase.js +1 -1
- package/dist/esm/components/DateRangePickerInput.js +1 -0
- package/dist/esm/components/Divider.js +8 -0
- package/dist/esm/components/Input/Box.js +30 -0
- package/dist/esm/components/Input/Face.js +28 -0
- package/dist/esm/components/Input/Left.js +10 -0
- package/dist/esm/components/Input/Right.js +10 -0
- package/dist/esm/components/Input/Root.js +11 -0
- package/dist/esm/components/Input/Search.js +23 -0
- package/dist/esm/components/Input/index.js +17 -0
- package/dist/esm/components/Masonry.js +47 -0
- package/dist/esm/components/Menubar/Categories.js +8 -0
- package/dist/esm/components/Menubar/Category.js +9 -0
- package/dist/esm/components/Menubar/Dropdown.js +21 -0
- package/dist/esm/components/Menubar/DropdownRoot.js +36 -0
- package/dist/esm/components/Menubar/Header.js +23 -0
- package/dist/esm/components/Menubar/IconControlSubItem.js +17 -0
- package/dist/esm/components/Menubar/Item.js +20 -0
- package/dist/esm/components/Menubar/ItemLink.js +16 -0
- package/dist/esm/components/Menubar/Left.js +9 -0
- package/dist/esm/components/Menubar/MostUsed.js +9 -0
- package/dist/esm/components/Menubar/MostUsedItem.js +29 -0
- package/dist/esm/components/Menubar/MostUsedList.js +56 -0
- package/dist/esm/components/Menubar/Right.js +9 -0
- package/dist/esm/components/Menubar/Root.js +9 -0
- package/dist/esm/components/Menubar/Search.js +19 -0
- package/dist/esm/components/Menubar/SubItem.js +18 -0
- package/dist/esm/components/Menubar/index.js +31 -0
- package/dist/esm/components/Popover/Content.js +29 -0
- package/dist/esm/components/Popover/Context.js +12 -0
- package/dist/esm/components/Popover/Provider.js +17 -0
- package/dist/esm/components/Popover/Root.js +12 -0
- package/dist/esm/components/Popover/Trigger.js +9 -0
- package/dist/esm/components/Popover/index.js +13 -0
- package/dist/esm/components/RangeCalendar.js +1 -0
- package/dist/esm/components/Select/Content.js +25 -0
- package/dist/esm/components/Select/GroupedOptions.js +32 -0
- package/dist/esm/components/Select/Option.js +23 -0
- package/dist/esm/components/Select/Options.js +29 -0
- package/dist/esm/components/Select/Popover.js +8 -0
- package/dist/esm/components/Select/Root.js +22 -0
- package/dist/esm/components/Select/Trigger.js +26 -0
- package/dist/esm/components/Select/context.js +8 -0
- package/dist/esm/components/Select/index.js +17 -0
- package/dist/esm/components/TimeFieldInput.js +1 -1
- package/dist/esm/components/Tooltip.js +49 -0
- package/dist/esm/hooks/useFloatingLogic.js +51 -0
- package/dist/esm/hooks/useOutsideClickListener.js +20 -0
- package/dist/esm/index.js +8 -2
- package/dist/esm/provider/MenubarProvider.js +19 -0
- package/dist/esm/provider/SnackbarProvider.js +49 -0
- package/dist/esm/service/SnackbarSonner.js +23 -2
- package/dist/esm/styles/menubar.js +62 -0
- package/dist/types/components/Card.d.ts +3 -4
- package/dist/types/components/Divider.d.ts +5 -0
- package/dist/types/components/Input/Box.d.ts +3 -0
- package/dist/types/components/Input/Face.d.ts +3 -0
- package/dist/types/components/Input/Left.d.ts +3 -0
- package/dist/types/components/Input/Right.d.ts +3 -0
- package/dist/types/components/Input/Root.d.ts +3 -0
- package/dist/types/components/Input/Search.d.ts +3 -0
- package/dist/types/components/Input/index.d.ts +9 -0
- package/dist/types/components/Input/types.d.ts +20 -0
- package/dist/types/components/Masonry.d.ts +7 -0
- package/dist/types/components/Menubar/Categories.d.ts +3 -0
- package/dist/types/components/Menubar/Category.d.ts +8 -0
- package/dist/types/components/Menubar/Dropdown.d.ts +3 -0
- package/dist/types/components/Menubar/DropdownRoot.d.ts +17 -0
- package/dist/types/components/Menubar/Header.d.ts +6 -0
- package/dist/types/components/Menubar/IconControlSubItem.d.ts +6 -0
- package/dist/types/components/Menubar/Item.d.ts +10 -0
- package/dist/types/components/Menubar/ItemLink.d.ts +8 -0
- package/dist/types/components/Menubar/Left.d.ts +3 -0
- package/dist/types/components/Menubar/MostUsed.d.ts +8 -0
- package/dist/types/components/Menubar/MostUsedItem.d.ts +8 -0
- package/dist/types/components/Menubar/MostUsedList.d.ts +3 -0
- package/dist/types/components/Menubar/Right.d.ts +3 -0
- package/dist/types/components/Menubar/Root.d.ts +6 -0
- package/dist/types/components/Menubar/Search.d.ts +3 -0
- package/dist/types/components/Menubar/SubItem.d.ts +6 -0
- package/dist/types/components/Menubar/index.d.ts +15 -0
- package/dist/types/components/Menubar/interface.d.ts +4 -0
- package/dist/types/components/Popover/Content.d.ts +6 -0
- package/dist/types/components/Popover/Context.d.ts +18 -0
- package/dist/types/components/Popover/Provider.d.ts +8 -0
- package/dist/types/components/Popover/Root.d.ts +8 -0
- package/dist/types/components/Popover/Trigger.d.ts +5 -0
- package/dist/types/components/Popover/index.d.ts +6 -0
- package/dist/types/components/SearchInput.d.ts +0 -10
- package/dist/types/components/Select/Content.d.ts +9 -0
- package/dist/types/components/Select/GroupedOptions.d.ts +6 -0
- package/dist/types/components/Select/Option.d.ts +5 -0
- package/dist/types/components/Select/Options.d.ts +5 -0
- package/dist/types/components/Select/Popover.d.ts +5 -0
- package/dist/types/components/Select/Root.d.ts +8 -0
- package/dist/types/components/Select/Trigger.d.ts +5 -0
- package/dist/types/components/Select/context.d.ts +7 -0
- package/dist/types/components/Select/index.d.ts +8 -0
- package/dist/types/components/Tooltip.d.ts +13 -0
- package/dist/types/components/index.d.ts +5 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useFloatingLogic.d.ts +46 -0
- package/dist/types/hooks/useOutsideClickListener.d.ts +7 -0
- package/dist/types/provider/MenubarProvider.d.ts +8 -0
- package/dist/types/provider/index.d.ts +2 -0
- package/dist/types/styles/menubar.d.ts +350 -0
- package/dist/types/tests/Input/Face.test.d.ts +1 -0
- package/dist/types/tests/Input/Left.test.d.ts +1 -0
- package/dist/types/tests/Input/Right.test.d.ts +1 -0
- package/dist/types/tests/Input/Root.test.d.ts +1 -0
- package/dist/types/tests/Input/Search.test.d.ts +1 -0
- package/dist/types/tests/Menubar/Categories.test.d.ts +1 -0
- package/dist/types/tests/Menubar/Category.test.d.ts +1 -0
- package/dist/types/tests/Menubar/Dropdown.test.d.ts +1 -0
- package/dist/types/tests/Menubar/DropdownRoot.test.d.ts +1 -0
- package/dist/types/tests/Menubar/Header.test.d.ts +1 -0
- package/dist/types/tests/Menubar/HeaderLeft.test.d.ts +1 -0
- package/dist/types/tests/Menubar/HeaderRigth.test.d.ts +1 -0
- package/dist/types/tests/Menubar/Item.test.d.ts +1 -0
- package/dist/types/tests/Menubar/MostUsed.test.d.ts +1 -0
- package/dist/types/tests/Menubar/MostUsedItem.test.d.ts +1 -0
- package/dist/types/tests/Menubar/MostUsedList.test.d.ts +1 -0
- package/dist/types/tests/Menubar/Root.test.d.ts +1 -0
- package/dist/types/tests/Menubar/SubItem.test.d.ts +1 -0
- package/dist/types/tests/Popover.test.d.ts +1 -0
- package/dist/types/tests/Tooltip.test.d.ts +1 -0
- package/dist/types/tests/useOutsideClickListener.test.d.ts +1 -0
- package/package.json +7 -4
- package/dist/cjs/components/Input.js +0 -81
- package/dist/cjs/components/SearchInput.js +0 -83
- package/dist/cjs/components/Select.js +0 -101
- package/dist/esm/components/Input.js +0 -74
- package/dist/esm/components/SearchInput.js +0 -81
- package/dist/esm/components/Select.js +0 -96
- package/dist/types/components/Input.d.ts +0 -34
- package/dist/types/components/Select.d.ts +0 -27
- /package/dist/types/tests/{Input.test.d.ts → Divider.test.d.ts} +0 -0
- /package/dist/types/tests/{SearchInput.test.d.ts → Input/Box.test.d.ts} +0 -0
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
require('clsx');
|
|
5
|
-
require('@internationalized/date');
|
|
6
|
-
require('./Badge.js');
|
|
7
|
-
require('./BaseSnackbar.js');
|
|
8
|
-
require('react-icons/md');
|
|
9
|
-
require('./Card.js');
|
|
10
|
-
var Button = require('./Button.js');
|
|
11
|
-
require('react-aria');
|
|
12
|
-
require('react-stately');
|
|
13
|
-
var useDebouncedState = require('../hooks/useDebouncedState.js');
|
|
14
|
-
require('./CalendarCell.js');
|
|
15
|
-
require('@tecsinapse/cortex-core');
|
|
16
|
-
require('react-icons/fa');
|
|
17
|
-
require('react-icons/lia');
|
|
18
|
-
var Input = require('./Input.js');
|
|
19
|
-
require('react-icons/io');
|
|
20
|
-
require('./GroupButton.js');
|
|
21
|
-
require('./Hint.js');
|
|
22
|
-
require('./Modal.js');
|
|
23
|
-
require('../styles/calendar-cell.js');
|
|
24
|
-
require('../styles/groupButton.js');
|
|
25
|
-
require('../styles/progressBar.js');
|
|
26
|
-
require('./Select.js');
|
|
27
|
-
require('./Tag.js');
|
|
28
|
-
require('./TextArea.js');
|
|
29
|
-
require('./Toggle.js');
|
|
30
|
-
var ai = require('react-icons/ai');
|
|
31
|
-
var io5 = require('react-icons/io5');
|
|
32
|
-
|
|
33
|
-
const inputFace = "bg-white w-full";
|
|
34
|
-
const inputLeft = "flex items-center";
|
|
35
|
-
const SearchInput = ({
|
|
36
|
-
label,
|
|
37
|
-
placeholder,
|
|
38
|
-
isSubmitting = false,
|
|
39
|
-
onChange,
|
|
40
|
-
onClick,
|
|
41
|
-
BOUNCE_TIMEOUT = 1e3
|
|
42
|
-
}) => {
|
|
43
|
-
const [bouncedText, setBouncedText] = React.useState("");
|
|
44
|
-
const [searchInput, setSearchInput] = useDebouncedState.useDebouncedState(
|
|
45
|
-
"",
|
|
46
|
-
setBouncedText,
|
|
47
|
-
BOUNCE_TIMEOUT
|
|
48
|
-
);
|
|
49
|
-
React.useEffect(() => {
|
|
50
|
-
if (onChange) {
|
|
51
|
-
onChange(bouncedText);
|
|
52
|
-
}
|
|
53
|
-
}, [bouncedText]);
|
|
54
|
-
const handleEnterKey = (e) => {
|
|
55
|
-
if (e.key === "Enter" && onClick && searchInput) {
|
|
56
|
-
onClick(searchInput);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-row w-full space-x-mili" }, /* @__PURE__ */ React.createElement(Input.Input.Face, { variants: { className: inputFace } }, !onClick && /* @__PURE__ */ React.createElement(Input.Input.Left, { className: inputLeft }, /* @__PURE__ */ React.createElement(io5.IoSearchOutline, { "data-testid": "icon-search-left" })), /* @__PURE__ */ React.createElement(
|
|
60
|
-
Input.Input.Box,
|
|
61
|
-
{
|
|
62
|
-
placeholder,
|
|
63
|
-
label,
|
|
64
|
-
onChange: (e) => setSearchInput(e.target.value),
|
|
65
|
-
onKeyDown: handleEnterKey,
|
|
66
|
-
disabled: isSubmitting
|
|
67
|
-
}
|
|
68
|
-
)), onClick && /* @__PURE__ */ React.createElement(
|
|
69
|
-
Button.Button,
|
|
70
|
-
{
|
|
71
|
-
variants: {
|
|
72
|
-
intent: "primary",
|
|
73
|
-
size: "square",
|
|
74
|
-
className: "h-11"
|
|
75
|
-
},
|
|
76
|
-
onClick: () => onClick(searchInput),
|
|
77
|
-
disabled: !searchInput || isSubmitting
|
|
78
|
-
},
|
|
79
|
-
isSubmitting ? /* @__PURE__ */ React.createElement("div", { className: "animate-spin" }, /* @__PURE__ */ React.createElement(ai.AiOutlineLoading, { "data-testid": "icon-loading" })) : /* @__PURE__ */ React.createElement(io5.IoSearchOutline, { "data-testid": "icon-search-button" })
|
|
80
|
-
));
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
module.exports = SearchInput;
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var cortexCore = require('@tecsinapse/cortex-core');
|
|
6
|
-
var React = require('react');
|
|
7
|
-
var io = require('react-icons/io');
|
|
8
|
-
var io5 = require('react-icons/io5');
|
|
9
|
-
var Hint = require('./Hint.js');
|
|
10
|
-
var SearchInput = require('./SearchInput.js');
|
|
11
|
-
|
|
12
|
-
const { button, dropdown, groupedTitle, containerGrouped, hintBody } = cortexCore.selectVariants();
|
|
13
|
-
const Select = (props) => {
|
|
14
|
-
const {
|
|
15
|
-
label,
|
|
16
|
-
keyExtractor,
|
|
17
|
-
labelExtractor,
|
|
18
|
-
options,
|
|
19
|
-
value,
|
|
20
|
-
onSelect,
|
|
21
|
-
onSearch,
|
|
22
|
-
disabled,
|
|
23
|
-
grouped,
|
|
24
|
-
groupedLabelExtractor,
|
|
25
|
-
hint,
|
|
26
|
-
placeholderSearchInput,
|
|
27
|
-
variant = "default"
|
|
28
|
-
} = props;
|
|
29
|
-
const [open, setOpen] = React.useState(false);
|
|
30
|
-
const placeholder = React.useMemo(
|
|
31
|
-
() => value ? labelExtractor(value) : label,
|
|
32
|
-
[label, labelExtractor, value]
|
|
33
|
-
);
|
|
34
|
-
const ref = React.useRef(null);
|
|
35
|
-
const handleClickOutside = React.useCallback((event) => {
|
|
36
|
-
if (ref.current && !ref.current.contains(event.target)) {
|
|
37
|
-
setOpen(false);
|
|
38
|
-
}
|
|
39
|
-
}, []);
|
|
40
|
-
const handleSelect = React.useCallback(
|
|
41
|
-
(option) => {
|
|
42
|
-
onSelect(option);
|
|
43
|
-
setOpen(false);
|
|
44
|
-
},
|
|
45
|
-
[onSelect]
|
|
46
|
-
);
|
|
47
|
-
React.useEffect(() => {
|
|
48
|
-
document.addEventListener("click", handleClickOutside, true);
|
|
49
|
-
return () => {
|
|
50
|
-
document.removeEventListener("click", handleClickOutside, true);
|
|
51
|
-
};
|
|
52
|
-
}, [handleClickOutside]);
|
|
53
|
-
const Option = ({ option }) => /* @__PURE__ */ React.createElement(
|
|
54
|
-
"li",
|
|
55
|
-
{
|
|
56
|
-
onClick: () => handleSelect(option),
|
|
57
|
-
className: cortexCore.option(),
|
|
58
|
-
role: "option"
|
|
59
|
-
},
|
|
60
|
-
labelExtractor(option)
|
|
61
|
-
);
|
|
62
|
-
const GroupedOptions = ({ options: options2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, [...options2 ?? []].map(([key, value2]) => /* @__PURE__ */ React.createElement("div", { key, className: containerGrouped() }, /* @__PURE__ */ React.createElement("span", { className: groupedTitle() }, groupedLabelExtractor?.(key)), value2.map((option) => /* @__PURE__ */ React.createElement(Option, { option, key: keyExtractor(option) })))));
|
|
63
|
-
const DefaultOptions = ({ options: options2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, (options2 ?? []).map((option) => /* @__PURE__ */ React.createElement(Option, { option, key: keyExtractor(option) })));
|
|
64
|
-
return /* @__PURE__ */ React.createElement("div", { className: "w-full relative bg-white", ref }, /* @__PURE__ */ React.createElement(
|
|
65
|
-
"button",
|
|
66
|
-
{
|
|
67
|
-
className: button({ disabled, intent: variant }),
|
|
68
|
-
onClick: () => setOpen((prevState) => !prevState),
|
|
69
|
-
disabled
|
|
70
|
-
},
|
|
71
|
-
/* @__PURE__ */ React.createElement("span", { "data-testid": "select-placeholder" }, placeholder),
|
|
72
|
-
/* @__PURE__ */ React.createElement(io5.IoChevronDownOutline, null)
|
|
73
|
-
), /* @__PURE__ */ React.createElement(
|
|
74
|
-
"ul",
|
|
75
|
-
{
|
|
76
|
-
role: "select",
|
|
77
|
-
className: dropdown({
|
|
78
|
-
open
|
|
79
|
-
})
|
|
80
|
-
},
|
|
81
|
-
onSearch ? /* @__PURE__ */ React.createElement("div", { className: "m-mili" }, /* @__PURE__ */ React.createElement(
|
|
82
|
-
SearchInput,
|
|
83
|
-
{
|
|
84
|
-
placeholder: placeholderSearchInput,
|
|
85
|
-
onChange: onSearch
|
|
86
|
-
}
|
|
87
|
-
)) : /* @__PURE__ */ React.createElement(React.Fragment, null),
|
|
88
|
-
grouped ? /* @__PURE__ */ React.createElement(GroupedOptions, { options }) : /* @__PURE__ */ React.createElement(DefaultOptions, { options })
|
|
89
|
-
), hint && /* @__PURE__ */ React.createElement(
|
|
90
|
-
Hint.Hint,
|
|
91
|
-
{
|
|
92
|
-
variants: {
|
|
93
|
-
intent: variant
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
/* @__PURE__ */ React.createElement("div", { className: hintBody() }, variant === "error" ? /* @__PURE__ */ React.createElement(io.IoIosCloseCircleOutline, { "data-testid": "select-hint-error-icon" }) : /* @__PURE__ */ React.createElement(React.Fragment, null), /* @__PURE__ */ React.createElement("span", null, hint))
|
|
97
|
-
));
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
exports.Select = Select;
|
|
101
|
-
exports.default = Select;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { inputBox, labelStyle, input } from '@tecsinapse/cortex-core';
|
|
2
|
-
import { clsx } from 'clsx';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
const getValidChildren = (children) => {
|
|
6
|
-
return React.Children.toArray(children).filter(
|
|
7
|
-
(el) => React.isValidElement(el)
|
|
8
|
-
);
|
|
9
|
-
};
|
|
10
|
-
const Box = React.forwardRef(
|
|
11
|
-
({ id, name, variants, label, placeholder, className, ...rest }, ref) => {
|
|
12
|
-
return /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-col" }, /* @__PURE__ */ React.createElement(
|
|
13
|
-
"input",
|
|
14
|
-
{
|
|
15
|
-
id: id ?? name,
|
|
16
|
-
name,
|
|
17
|
-
placeholder: placeholder ?? " ",
|
|
18
|
-
className: clsx(inputBox(placeholder, label, className)),
|
|
19
|
-
...rest,
|
|
20
|
-
ref,
|
|
21
|
-
"data-testid": "input-input"
|
|
22
|
-
}
|
|
23
|
-
), /* @__PURE__ */ React.createElement(
|
|
24
|
-
"label",
|
|
25
|
-
{
|
|
26
|
-
htmlFor: id ?? name,
|
|
27
|
-
className: labelStyle({ intent: variants?.intent, placeholder }),
|
|
28
|
-
"data-testid": "input-label"
|
|
29
|
-
},
|
|
30
|
-
label
|
|
31
|
-
));
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
const Face = React.forwardRef(
|
|
35
|
-
({ children, variants, className, ...rest }, ref) => {
|
|
36
|
-
const clones = getValidChildren(children).map((el) => {
|
|
37
|
-
return React.cloneElement(el, { ...el.props, variants });
|
|
38
|
-
});
|
|
39
|
-
return /* @__PURE__ */ React.createElement(
|
|
40
|
-
"div",
|
|
41
|
-
{
|
|
42
|
-
...rest,
|
|
43
|
-
className: clsx(input(variants), className),
|
|
44
|
-
id: "input-face",
|
|
45
|
-
ref
|
|
46
|
-
},
|
|
47
|
-
clones
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
);
|
|
51
|
-
const Root = React.forwardRef(
|
|
52
|
-
({ variants, className, ...rest }, ref) => {
|
|
53
|
-
return /* @__PURE__ */ React.createElement(Face, { variants, className }, /* @__PURE__ */ React.createElement(Box, { ...rest, ref }));
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
const Left = React.forwardRef(
|
|
57
|
-
({ children, className, ...rest }, ref) => {
|
|
58
|
-
return /* @__PURE__ */ React.createElement("div", { className: clsx(className, "mr-2.5"), ...rest, ref }, children);
|
|
59
|
-
}
|
|
60
|
-
);
|
|
61
|
-
const Right = React.forwardRef(
|
|
62
|
-
({ children, className, ...rest }, ref) => {
|
|
63
|
-
return /* @__PURE__ */ React.createElement("div", { className: clsx(className, "ml-2.5"), ...rest, ref }, children);
|
|
64
|
-
}
|
|
65
|
-
);
|
|
66
|
-
const Input = {
|
|
67
|
-
Root,
|
|
68
|
-
Face,
|
|
69
|
-
Box,
|
|
70
|
-
Left,
|
|
71
|
-
Right
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export { Box, Face, Input, Left, Right, Root };
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import 'clsx';
|
|
3
|
-
import '@internationalized/date';
|
|
4
|
-
import './Badge.js';
|
|
5
|
-
import './BaseSnackbar.js';
|
|
6
|
-
import 'react-icons/md';
|
|
7
|
-
import './Card.js';
|
|
8
|
-
import { Button } from './Button.js';
|
|
9
|
-
import 'react-aria';
|
|
10
|
-
import 'react-stately';
|
|
11
|
-
import { useDebouncedState } from '../hooks/useDebouncedState.js';
|
|
12
|
-
import './CalendarCell.js';
|
|
13
|
-
import '@tecsinapse/cortex-core';
|
|
14
|
-
import 'react-icons/fa';
|
|
15
|
-
import 'react-icons/lia';
|
|
16
|
-
import { Input } from './Input.js';
|
|
17
|
-
import 'react-icons/io';
|
|
18
|
-
import './GroupButton.js';
|
|
19
|
-
import './Hint.js';
|
|
20
|
-
import './Modal.js';
|
|
21
|
-
import '../styles/calendar-cell.js';
|
|
22
|
-
import '../styles/groupButton.js';
|
|
23
|
-
import '../styles/progressBar.js';
|
|
24
|
-
import './Select.js';
|
|
25
|
-
import './Tag.js';
|
|
26
|
-
import './TextArea.js';
|
|
27
|
-
import './Toggle.js';
|
|
28
|
-
import { AiOutlineLoading } from 'react-icons/ai';
|
|
29
|
-
import { IoSearchOutline } from 'react-icons/io5';
|
|
30
|
-
|
|
31
|
-
const inputFace = "bg-white w-full";
|
|
32
|
-
const inputLeft = "flex items-center";
|
|
33
|
-
const SearchInput = ({
|
|
34
|
-
label,
|
|
35
|
-
placeholder,
|
|
36
|
-
isSubmitting = false,
|
|
37
|
-
onChange,
|
|
38
|
-
onClick,
|
|
39
|
-
BOUNCE_TIMEOUT = 1e3
|
|
40
|
-
}) => {
|
|
41
|
-
const [bouncedText, setBouncedText] = useState("");
|
|
42
|
-
const [searchInput, setSearchInput] = useDebouncedState(
|
|
43
|
-
"",
|
|
44
|
-
setBouncedText,
|
|
45
|
-
BOUNCE_TIMEOUT
|
|
46
|
-
);
|
|
47
|
-
useEffect(() => {
|
|
48
|
-
if (onChange) {
|
|
49
|
-
onChange(bouncedText);
|
|
50
|
-
}
|
|
51
|
-
}, [bouncedText]);
|
|
52
|
-
const handleEnterKey = (e) => {
|
|
53
|
-
if (e.key === "Enter" && onClick && searchInput) {
|
|
54
|
-
onClick(searchInput);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-row w-full space-x-mili" }, /* @__PURE__ */ React.createElement(Input.Face, { variants: { className: inputFace } }, !onClick && /* @__PURE__ */ React.createElement(Input.Left, { className: inputLeft }, /* @__PURE__ */ React.createElement(IoSearchOutline, { "data-testid": "icon-search-left" })), /* @__PURE__ */ React.createElement(
|
|
58
|
-
Input.Box,
|
|
59
|
-
{
|
|
60
|
-
placeholder,
|
|
61
|
-
label,
|
|
62
|
-
onChange: (e) => setSearchInput(e.target.value),
|
|
63
|
-
onKeyDown: handleEnterKey,
|
|
64
|
-
disabled: isSubmitting
|
|
65
|
-
}
|
|
66
|
-
)), onClick && /* @__PURE__ */ React.createElement(
|
|
67
|
-
Button,
|
|
68
|
-
{
|
|
69
|
-
variants: {
|
|
70
|
-
intent: "primary",
|
|
71
|
-
size: "square",
|
|
72
|
-
className: "h-11"
|
|
73
|
-
},
|
|
74
|
-
onClick: () => onClick(searchInput),
|
|
75
|
-
disabled: !searchInput || isSubmitting
|
|
76
|
-
},
|
|
77
|
-
isSubmitting ? /* @__PURE__ */ React.createElement("div", { className: "animate-spin" }, /* @__PURE__ */ React.createElement(AiOutlineLoading, { "data-testid": "icon-loading" })) : /* @__PURE__ */ React.createElement(IoSearchOutline, { "data-testid": "icon-search-button" })
|
|
78
|
-
));
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export { SearchInput as default };
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { selectVariants, option } from '@tecsinapse/cortex-core';
|
|
2
|
-
import React, { useState, useMemo, useRef, useCallback, useEffect } from 'react';
|
|
3
|
-
import { IoIosCloseCircleOutline } from 'react-icons/io';
|
|
4
|
-
import { IoChevronDownOutline } from 'react-icons/io5';
|
|
5
|
-
import { Hint } from './Hint.js';
|
|
6
|
-
import SearchInput from './SearchInput.js';
|
|
7
|
-
|
|
8
|
-
const { button, dropdown, groupedTitle, containerGrouped, hintBody } = selectVariants();
|
|
9
|
-
const Select = (props) => {
|
|
10
|
-
const {
|
|
11
|
-
label,
|
|
12
|
-
keyExtractor,
|
|
13
|
-
labelExtractor,
|
|
14
|
-
options,
|
|
15
|
-
value,
|
|
16
|
-
onSelect,
|
|
17
|
-
onSearch,
|
|
18
|
-
disabled,
|
|
19
|
-
grouped,
|
|
20
|
-
groupedLabelExtractor,
|
|
21
|
-
hint,
|
|
22
|
-
placeholderSearchInput,
|
|
23
|
-
variant = "default"
|
|
24
|
-
} = props;
|
|
25
|
-
const [open, setOpen] = useState(false);
|
|
26
|
-
const placeholder = useMemo(
|
|
27
|
-
() => value ? labelExtractor(value) : label,
|
|
28
|
-
[label, labelExtractor, value]
|
|
29
|
-
);
|
|
30
|
-
const ref = useRef(null);
|
|
31
|
-
const handleClickOutside = useCallback((event) => {
|
|
32
|
-
if (ref.current && !ref.current.contains(event.target)) {
|
|
33
|
-
setOpen(false);
|
|
34
|
-
}
|
|
35
|
-
}, []);
|
|
36
|
-
const handleSelect = useCallback(
|
|
37
|
-
(option) => {
|
|
38
|
-
onSelect(option);
|
|
39
|
-
setOpen(false);
|
|
40
|
-
},
|
|
41
|
-
[onSelect]
|
|
42
|
-
);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
document.addEventListener("click", handleClickOutside, true);
|
|
45
|
-
return () => {
|
|
46
|
-
document.removeEventListener("click", handleClickOutside, true);
|
|
47
|
-
};
|
|
48
|
-
}, [handleClickOutside]);
|
|
49
|
-
const Option = ({ option: option$1 }) => /* @__PURE__ */ React.createElement(
|
|
50
|
-
"li",
|
|
51
|
-
{
|
|
52
|
-
onClick: () => handleSelect(option$1),
|
|
53
|
-
className: option(),
|
|
54
|
-
role: "option"
|
|
55
|
-
},
|
|
56
|
-
labelExtractor(option$1)
|
|
57
|
-
);
|
|
58
|
-
const GroupedOptions = ({ options: options2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, [...options2 ?? []].map(([key, value2]) => /* @__PURE__ */ React.createElement("div", { key, className: containerGrouped() }, /* @__PURE__ */ React.createElement("span", { className: groupedTitle() }, groupedLabelExtractor?.(key)), value2.map((option) => /* @__PURE__ */ React.createElement(Option, { option, key: keyExtractor(option) })))));
|
|
59
|
-
const DefaultOptions = ({ options: options2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, (options2 ?? []).map((option) => /* @__PURE__ */ React.createElement(Option, { option, key: keyExtractor(option) })));
|
|
60
|
-
return /* @__PURE__ */ React.createElement("div", { className: "w-full relative bg-white", ref }, /* @__PURE__ */ React.createElement(
|
|
61
|
-
"button",
|
|
62
|
-
{
|
|
63
|
-
className: button({ disabled, intent: variant }),
|
|
64
|
-
onClick: () => setOpen((prevState) => !prevState),
|
|
65
|
-
disabled
|
|
66
|
-
},
|
|
67
|
-
/* @__PURE__ */ React.createElement("span", { "data-testid": "select-placeholder" }, placeholder),
|
|
68
|
-
/* @__PURE__ */ React.createElement(IoChevronDownOutline, null)
|
|
69
|
-
), /* @__PURE__ */ React.createElement(
|
|
70
|
-
"ul",
|
|
71
|
-
{
|
|
72
|
-
role: "select",
|
|
73
|
-
className: dropdown({
|
|
74
|
-
open
|
|
75
|
-
})
|
|
76
|
-
},
|
|
77
|
-
onSearch ? /* @__PURE__ */ React.createElement("div", { className: "m-mili" }, /* @__PURE__ */ React.createElement(
|
|
78
|
-
SearchInput,
|
|
79
|
-
{
|
|
80
|
-
placeholder: placeholderSearchInput,
|
|
81
|
-
onChange: onSearch
|
|
82
|
-
}
|
|
83
|
-
)) : /* @__PURE__ */ React.createElement(React.Fragment, null),
|
|
84
|
-
grouped ? /* @__PURE__ */ React.createElement(GroupedOptions, { options }) : /* @__PURE__ */ React.createElement(DefaultOptions, { options })
|
|
85
|
-
), hint && /* @__PURE__ */ React.createElement(
|
|
86
|
-
Hint,
|
|
87
|
-
{
|
|
88
|
-
variants: {
|
|
89
|
-
intent: variant
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
/* @__PURE__ */ React.createElement("div", { className: hintBody() }, variant === "error" ? /* @__PURE__ */ React.createElement(IoIosCloseCircleOutline, { "data-testid": "select-hint-error-icon" }) : /* @__PURE__ */ React.createElement(React.Fragment, null), /* @__PURE__ */ React.createElement("span", null, hint))
|
|
93
|
-
));
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
export { Select, Select as default };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { InputBaseVariants } from '@tecsinapse/cortex-core';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export interface InputPropsBase {
|
|
4
|
-
variants?: InputBaseVariants;
|
|
5
|
-
label?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>, InputPropsBase {
|
|
8
|
-
}
|
|
9
|
-
export declare const Box: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
10
|
-
type DivBaseProps = React.HTMLAttributes<HTMLDivElement>;
|
|
11
|
-
export declare const Face: React.ForwardRefExoticComponent<DivBaseProps & Pick<InputPropsBase, "variants"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
-
export declare const Root: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
13
|
-
export declare const Left: React.ForwardRefExoticComponent<DivBaseProps & {
|
|
14
|
-
children: React.ReactNode;
|
|
15
|
-
className?: string | undefined;
|
|
16
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
-
export declare const Right: React.ForwardRefExoticComponent<DivBaseProps & {
|
|
18
|
-
children: React.ReactNode;
|
|
19
|
-
className?: string | undefined;
|
|
20
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
-
export declare const Input: {
|
|
22
|
-
Root: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
23
|
-
Face: React.ForwardRefExoticComponent<DivBaseProps & Pick<InputPropsBase, "variants"> & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
-
Box: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
25
|
-
Left: React.ForwardRefExoticComponent<DivBaseProps & {
|
|
26
|
-
children: React.ReactNode;
|
|
27
|
-
className?: string | undefined;
|
|
28
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
-
Right: React.ForwardRefExoticComponent<DivBaseProps & {
|
|
30
|
-
children: React.ReactNode;
|
|
31
|
-
className?: string | undefined;
|
|
32
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
33
|
-
};
|
|
34
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
interface CommonProps<T> {
|
|
2
|
-
label: string;
|
|
3
|
-
value: T | undefined;
|
|
4
|
-
onSelect: (value: T) => void;
|
|
5
|
-
keyExtractor: (value: T) => string;
|
|
6
|
-
labelExtractor: (value: T) => string;
|
|
7
|
-
onSearch?: (search: string) => void;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
grouped?: boolean;
|
|
10
|
-
variant?: 'error' | 'default';
|
|
11
|
-
hint?: string;
|
|
12
|
-
placeholderSearchInput?: string;
|
|
13
|
-
}
|
|
14
|
-
interface GroupedProps<T> {
|
|
15
|
-
options?: Map<string, T[]>;
|
|
16
|
-
groupedLabelExtractor: (value: string) => string;
|
|
17
|
-
grouped: true;
|
|
18
|
-
}
|
|
19
|
-
interface DefaultProps<T> {
|
|
20
|
-
options?: T[];
|
|
21
|
-
groupedLabelExtractor?: never;
|
|
22
|
-
grouped?: never;
|
|
23
|
-
}
|
|
24
|
-
type ConditionalProps<T> = GroupedProps<T> | DefaultProps<T>;
|
|
25
|
-
type SelectProps<T> = CommonProps<T> & ConditionalProps<T>;
|
|
26
|
-
export declare const Select: <T>(props: SelectProps<T>) => JSX.Element;
|
|
27
|
-
export default Select;
|
|
File without changes
|
|
File without changes
|