@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.
Files changed (199) hide show
  1. package/dist/cjs/components/Calendar.js +1 -0
  2. package/dist/cjs/components/CalendarCell.js +1 -0
  3. package/dist/cjs/components/CalendarGrid.js +1 -0
  4. package/dist/cjs/components/DatePickerInput.js +1 -0
  5. package/dist/cjs/components/DatePickerInputBase.js +2 -2
  6. package/dist/cjs/components/DateRangePickerInput.js +1 -0
  7. package/dist/cjs/components/Divider.js +10 -0
  8. package/dist/cjs/components/Input/Box.js +32 -0
  9. package/dist/cjs/components/Input/Face.js +30 -0
  10. package/dist/cjs/components/Input/Left.js +12 -0
  11. package/dist/cjs/components/Input/Right.js +12 -0
  12. package/dist/cjs/components/Input/Root.js +13 -0
  13. package/dist/cjs/components/Input/Search.js +25 -0
  14. package/dist/cjs/components/Input/index.js +19 -0
  15. package/dist/cjs/components/Masonry.js +49 -0
  16. package/dist/cjs/components/Menubar/Categories.js +10 -0
  17. package/dist/cjs/components/Menubar/Category.js +11 -0
  18. package/dist/cjs/components/Menubar/Dropdown.js +23 -0
  19. package/dist/cjs/components/Menubar/DropdownRoot.js +38 -0
  20. package/dist/cjs/components/Menubar/Header.js +25 -0
  21. package/dist/cjs/components/Menubar/IconControlSubItem.js +19 -0
  22. package/dist/cjs/components/Menubar/Item.js +22 -0
  23. package/dist/cjs/components/Menubar/ItemLink.js +18 -0
  24. package/dist/cjs/components/Menubar/Left.js +11 -0
  25. package/dist/cjs/components/Menubar/MostUsed.js +11 -0
  26. package/dist/cjs/components/Menubar/MostUsedItem.js +31 -0
  27. package/dist/cjs/components/Menubar/MostUsedList.js +58 -0
  28. package/dist/cjs/components/Menubar/Right.js +11 -0
  29. package/dist/cjs/components/Menubar/Root.js +11 -0
  30. package/dist/cjs/components/Menubar/Search.js +21 -0
  31. package/dist/cjs/components/Menubar/SubItem.js +20 -0
  32. package/dist/cjs/components/Menubar/index.js +33 -0
  33. package/dist/cjs/components/Popover/Content.js +31 -0
  34. package/dist/cjs/components/Popover/Context.js +15 -0
  35. package/dist/cjs/components/Popover/Provider.js +19 -0
  36. package/dist/cjs/components/Popover/Root.js +14 -0
  37. package/dist/cjs/components/Popover/Trigger.js +11 -0
  38. package/dist/cjs/components/Popover/index.js +15 -0
  39. package/dist/cjs/components/RangeCalendar.js +1 -0
  40. package/dist/cjs/components/Select/Content.js +27 -0
  41. package/dist/cjs/components/Select/GroupedOptions.js +34 -0
  42. package/dist/cjs/components/Select/Option.js +25 -0
  43. package/dist/cjs/components/Select/Options.js +31 -0
  44. package/dist/cjs/components/Select/Popover.js +10 -0
  45. package/dist/cjs/components/Select/Root.js +24 -0
  46. package/dist/cjs/components/Select/Trigger.js +28 -0
  47. package/dist/cjs/components/Select/context.js +10 -0
  48. package/dist/cjs/components/Select/index.js +19 -0
  49. package/dist/cjs/components/TimeFieldInput.js +2 -2
  50. package/dist/cjs/components/Tooltip.js +54 -0
  51. package/dist/cjs/hooks/useFloatingLogic.js +53 -0
  52. package/dist/cjs/hooks/useOutsideClickListener.js +22 -0
  53. package/dist/cjs/index.js +16 -9
  54. package/dist/cjs/provider/MenubarProvider.js +22 -0
  55. package/dist/cjs/provider/SnackbarProvider.js +51 -0
  56. package/dist/cjs/service/SnackbarSonner.js +23 -2
  57. package/dist/cjs/styles/menubar.js +70 -0
  58. package/dist/esm/components/Calendar.js +1 -0
  59. package/dist/esm/components/CalendarCell.js +1 -0
  60. package/dist/esm/components/CalendarGrid.js +1 -0
  61. package/dist/esm/components/DatePickerInput.js +1 -0
  62. package/dist/esm/components/DatePickerInputBase.js +1 -1
  63. package/dist/esm/components/DateRangePickerInput.js +1 -0
  64. package/dist/esm/components/Divider.js +8 -0
  65. package/dist/esm/components/Input/Box.js +30 -0
  66. package/dist/esm/components/Input/Face.js +28 -0
  67. package/dist/esm/components/Input/Left.js +10 -0
  68. package/dist/esm/components/Input/Right.js +10 -0
  69. package/dist/esm/components/Input/Root.js +11 -0
  70. package/dist/esm/components/Input/Search.js +23 -0
  71. package/dist/esm/components/Input/index.js +17 -0
  72. package/dist/esm/components/Masonry.js +47 -0
  73. package/dist/esm/components/Menubar/Categories.js +8 -0
  74. package/dist/esm/components/Menubar/Category.js +9 -0
  75. package/dist/esm/components/Menubar/Dropdown.js +21 -0
  76. package/dist/esm/components/Menubar/DropdownRoot.js +36 -0
  77. package/dist/esm/components/Menubar/Header.js +23 -0
  78. package/dist/esm/components/Menubar/IconControlSubItem.js +17 -0
  79. package/dist/esm/components/Menubar/Item.js +20 -0
  80. package/dist/esm/components/Menubar/ItemLink.js +16 -0
  81. package/dist/esm/components/Menubar/Left.js +9 -0
  82. package/dist/esm/components/Menubar/MostUsed.js +9 -0
  83. package/dist/esm/components/Menubar/MostUsedItem.js +29 -0
  84. package/dist/esm/components/Menubar/MostUsedList.js +56 -0
  85. package/dist/esm/components/Menubar/Right.js +9 -0
  86. package/dist/esm/components/Menubar/Root.js +9 -0
  87. package/dist/esm/components/Menubar/Search.js +19 -0
  88. package/dist/esm/components/Menubar/SubItem.js +18 -0
  89. package/dist/esm/components/Menubar/index.js +31 -0
  90. package/dist/esm/components/Popover/Content.js +29 -0
  91. package/dist/esm/components/Popover/Context.js +12 -0
  92. package/dist/esm/components/Popover/Provider.js +17 -0
  93. package/dist/esm/components/Popover/Root.js +12 -0
  94. package/dist/esm/components/Popover/Trigger.js +9 -0
  95. package/dist/esm/components/Popover/index.js +13 -0
  96. package/dist/esm/components/RangeCalendar.js +1 -0
  97. package/dist/esm/components/Select/Content.js +25 -0
  98. package/dist/esm/components/Select/GroupedOptions.js +32 -0
  99. package/dist/esm/components/Select/Option.js +23 -0
  100. package/dist/esm/components/Select/Options.js +29 -0
  101. package/dist/esm/components/Select/Popover.js +8 -0
  102. package/dist/esm/components/Select/Root.js +22 -0
  103. package/dist/esm/components/Select/Trigger.js +26 -0
  104. package/dist/esm/components/Select/context.js +8 -0
  105. package/dist/esm/components/Select/index.js +17 -0
  106. package/dist/esm/components/TimeFieldInput.js +1 -1
  107. package/dist/esm/components/Tooltip.js +49 -0
  108. package/dist/esm/hooks/useFloatingLogic.js +51 -0
  109. package/dist/esm/hooks/useOutsideClickListener.js +20 -0
  110. package/dist/esm/index.js +8 -2
  111. package/dist/esm/provider/MenubarProvider.js +19 -0
  112. package/dist/esm/provider/SnackbarProvider.js +49 -0
  113. package/dist/esm/service/SnackbarSonner.js +23 -2
  114. package/dist/esm/styles/menubar.js +62 -0
  115. package/dist/types/components/Card.d.ts +3 -4
  116. package/dist/types/components/Divider.d.ts +5 -0
  117. package/dist/types/components/Input/Box.d.ts +3 -0
  118. package/dist/types/components/Input/Face.d.ts +3 -0
  119. package/dist/types/components/Input/Left.d.ts +3 -0
  120. package/dist/types/components/Input/Right.d.ts +3 -0
  121. package/dist/types/components/Input/Root.d.ts +3 -0
  122. package/dist/types/components/Input/Search.d.ts +3 -0
  123. package/dist/types/components/Input/index.d.ts +9 -0
  124. package/dist/types/components/Input/types.d.ts +20 -0
  125. package/dist/types/components/Masonry.d.ts +7 -0
  126. package/dist/types/components/Menubar/Categories.d.ts +3 -0
  127. package/dist/types/components/Menubar/Category.d.ts +8 -0
  128. package/dist/types/components/Menubar/Dropdown.d.ts +3 -0
  129. package/dist/types/components/Menubar/DropdownRoot.d.ts +17 -0
  130. package/dist/types/components/Menubar/Header.d.ts +6 -0
  131. package/dist/types/components/Menubar/IconControlSubItem.d.ts +6 -0
  132. package/dist/types/components/Menubar/Item.d.ts +10 -0
  133. package/dist/types/components/Menubar/ItemLink.d.ts +8 -0
  134. package/dist/types/components/Menubar/Left.d.ts +3 -0
  135. package/dist/types/components/Menubar/MostUsed.d.ts +8 -0
  136. package/dist/types/components/Menubar/MostUsedItem.d.ts +8 -0
  137. package/dist/types/components/Menubar/MostUsedList.d.ts +3 -0
  138. package/dist/types/components/Menubar/Right.d.ts +3 -0
  139. package/dist/types/components/Menubar/Root.d.ts +6 -0
  140. package/dist/types/components/Menubar/Search.d.ts +3 -0
  141. package/dist/types/components/Menubar/SubItem.d.ts +6 -0
  142. package/dist/types/components/Menubar/index.d.ts +15 -0
  143. package/dist/types/components/Menubar/interface.d.ts +4 -0
  144. package/dist/types/components/Popover/Content.d.ts +6 -0
  145. package/dist/types/components/Popover/Context.d.ts +18 -0
  146. package/dist/types/components/Popover/Provider.d.ts +8 -0
  147. package/dist/types/components/Popover/Root.d.ts +8 -0
  148. package/dist/types/components/Popover/Trigger.d.ts +5 -0
  149. package/dist/types/components/Popover/index.d.ts +6 -0
  150. package/dist/types/components/SearchInput.d.ts +0 -10
  151. package/dist/types/components/Select/Content.d.ts +9 -0
  152. package/dist/types/components/Select/GroupedOptions.d.ts +6 -0
  153. package/dist/types/components/Select/Option.d.ts +5 -0
  154. package/dist/types/components/Select/Options.d.ts +5 -0
  155. package/dist/types/components/Select/Popover.d.ts +5 -0
  156. package/dist/types/components/Select/Root.d.ts +8 -0
  157. package/dist/types/components/Select/Trigger.d.ts +5 -0
  158. package/dist/types/components/Select/context.d.ts +7 -0
  159. package/dist/types/components/Select/index.d.ts +8 -0
  160. package/dist/types/components/Tooltip.d.ts +13 -0
  161. package/dist/types/components/index.d.ts +5 -1
  162. package/dist/types/hooks/index.d.ts +2 -0
  163. package/dist/types/hooks/useFloatingLogic.d.ts +46 -0
  164. package/dist/types/hooks/useOutsideClickListener.d.ts +7 -0
  165. package/dist/types/provider/MenubarProvider.d.ts +8 -0
  166. package/dist/types/provider/index.d.ts +2 -0
  167. package/dist/types/styles/menubar.d.ts +350 -0
  168. package/dist/types/tests/Input/Face.test.d.ts +1 -0
  169. package/dist/types/tests/Input/Left.test.d.ts +1 -0
  170. package/dist/types/tests/Input/Right.test.d.ts +1 -0
  171. package/dist/types/tests/Input/Root.test.d.ts +1 -0
  172. package/dist/types/tests/Input/Search.test.d.ts +1 -0
  173. package/dist/types/tests/Menubar/Categories.test.d.ts +1 -0
  174. package/dist/types/tests/Menubar/Category.test.d.ts +1 -0
  175. package/dist/types/tests/Menubar/Dropdown.test.d.ts +1 -0
  176. package/dist/types/tests/Menubar/DropdownRoot.test.d.ts +1 -0
  177. package/dist/types/tests/Menubar/Header.test.d.ts +1 -0
  178. package/dist/types/tests/Menubar/HeaderLeft.test.d.ts +1 -0
  179. package/dist/types/tests/Menubar/HeaderRigth.test.d.ts +1 -0
  180. package/dist/types/tests/Menubar/Item.test.d.ts +1 -0
  181. package/dist/types/tests/Menubar/MostUsed.test.d.ts +1 -0
  182. package/dist/types/tests/Menubar/MostUsedItem.test.d.ts +1 -0
  183. package/dist/types/tests/Menubar/MostUsedList.test.d.ts +1 -0
  184. package/dist/types/tests/Menubar/Root.test.d.ts +1 -0
  185. package/dist/types/tests/Menubar/SubItem.test.d.ts +1 -0
  186. package/dist/types/tests/Popover.test.d.ts +1 -0
  187. package/dist/types/tests/Tooltip.test.d.ts +1 -0
  188. package/dist/types/tests/useOutsideClickListener.test.d.ts +1 -0
  189. package/package.json +7 -4
  190. package/dist/cjs/components/Input.js +0 -81
  191. package/dist/cjs/components/SearchInput.js +0 -83
  192. package/dist/cjs/components/Select.js +0 -101
  193. package/dist/esm/components/Input.js +0 -74
  194. package/dist/esm/components/SearchInput.js +0 -81
  195. package/dist/esm/components/Select.js +0 -96
  196. package/dist/types/components/Input.d.ts +0 -34
  197. package/dist/types/components/Select.d.ts +0 -27
  198. /package/dist/types/tests/{Input.test.d.ts → Divider.test.d.ts} +0 -0
  199. /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;