@tecsinapse/cortex-react 1.3.0-beta.1 → 1.3.0-beta.10

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 +26 -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 +62 -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 +24 -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 +54 -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 +346 -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
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var Root = require('./Root.js');
4
+ var Left = require('./Left.js');
5
+ var Search = require('./Search.js');
6
+ var Right = require('./Right.js');
7
+ var Dropdown = require('./Dropdown.js');
8
+ var MostUsed = require('./MostUsed.js');
9
+ var MostUsedItem = require('./MostUsedItem.js');
10
+ var Header = require('./Header.js');
11
+ var Category = require('./Category.js');
12
+ var Item = require('./Item.js');
13
+ var Categories = require('./Categories.js');
14
+ var SubItem = require('./SubItem.js');
15
+ var DropdownRoot = require('./DropdownRoot.js');
16
+
17
+ const Menubar = {
18
+ Root,
19
+ Header,
20
+ HeaderLeft: Left,
21
+ Search,
22
+ HeaderRight: Right,
23
+ Dropdown,
24
+ MostUsed,
25
+ MostUsedItem,
26
+ Category,
27
+ Categories,
28
+ Item,
29
+ SubItem,
30
+ DropdownRoot
31
+ };
32
+
33
+ exports.Menubar = Menubar;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var clsx = require('clsx');
5
+ var Context = require('./Context.js');
6
+
7
+ const PopoverContent = ({
8
+ children,
9
+ className
10
+ }) => {
11
+ const { isOpen, x, y, strategy, floatingStyles, refs } = Context.usePopoverContext();
12
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, isOpen ? /* @__PURE__ */ React.createElement(
13
+ "div",
14
+ {
15
+ ref: refs.setFloating,
16
+ className: clsx(
17
+ "border border-gray-200 bg-black p-4 rounded-md shadow-lg z-50",
18
+ className
19
+ ),
20
+ style: {
21
+ position: strategy,
22
+ top: y ?? 0,
23
+ left: x ?? 0,
24
+ ...floatingStyles
25
+ }
26
+ },
27
+ children
28
+ ) : /* @__PURE__ */ React.createElement(React.Fragment, null));
29
+ };
30
+
31
+ exports.PopoverContent = PopoverContent;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const Context = React.createContext(void 0);
6
+ const usePopoverContext = () => {
7
+ const context = React.useContext(Context);
8
+ if (!context) {
9
+ throw new Error("usePopoverContext must be used within a PopoverProvider");
10
+ }
11
+ return context;
12
+ };
13
+
14
+ exports.Context = Context;
15
+ exports.usePopoverContext = usePopoverContext;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ require('@internationalized/date');
5
+ require('react-aria');
6
+ require('react-stately');
7
+ var useFloatingLogic = require('../../hooks/useFloatingLogic.js');
8
+ var Context = require('./Context.js');
9
+
10
+ const PopoverProvider = ({
11
+ children,
12
+ placement,
13
+ trigger
14
+ }) => {
15
+ const floatingLogic = useFloatingLogic.useFloatingLogic({ placement, trigger });
16
+ return /* @__PURE__ */ React.createElement(Context.Context.Provider, { value: { ...floatingLogic } }, children);
17
+ };
18
+
19
+ exports.PopoverProvider = PopoverProvider;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var index = require('./index.js');
5
+
6
+ const PopoverRoot = ({
7
+ children,
8
+ placement,
9
+ trigger
10
+ }) => {
11
+ return /* @__PURE__ */ React.createElement(index.Popover.Provider, { placement, trigger }, children);
12
+ };
13
+
14
+ exports.PopoverRoot = PopoverRoot;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var Context = require('./Context.js');
5
+
6
+ const PopoverTrigger = ({ children }) => {
7
+ const { triggerProps } = Context.usePopoverContext();
8
+ return React.cloneElement(children, triggerProps);
9
+ };
10
+
11
+ exports.PopoverTrigger = PopoverTrigger;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var Root = require('./Root.js');
4
+ var Trigger = require('./Trigger.js');
5
+ var Content = require('./Content.js');
6
+ var Provider = require('./Provider.js');
7
+
8
+ const Popover = {
9
+ Root: Root.PopoverRoot,
10
+ Trigger: Trigger.PopoverTrigger,
11
+ Content: Content.PopoverContent,
12
+ Provider: Provider.PopoverProvider
13
+ };
14
+
15
+ exports.Popover = Popover;
@@ -5,6 +5,7 @@ require('@internationalized/date');
5
5
  require('react-aria');
6
6
  require('react-stately');
7
7
  var useRangeCalendar = require('../hooks/useRangeCalendar.js');
8
+ require('@floating-ui/react');
8
9
  var CalendarGrid = require('./CalendarGrid.js');
9
10
  var CalendarHeader = require('./CalendarHeader.js');
10
11
 
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ require('@internationalized/date');
5
+ require('react-aria');
6
+ require('react-stately');
7
+ var useOutsideClickListener = require('../../hooks/useOutsideClickListener.js');
8
+ require('@floating-ui/react');
9
+ var Context = require('../Popover/Context.js');
10
+ var context = require('./context.js');
11
+
12
+ const Content = ({
13
+ children,
14
+ keyExtractor,
15
+ labelExtractor,
16
+ value
17
+ }) => {
18
+ const { setIsOpen } = Context.usePopoverContext();
19
+ const ref = React.useRef(null);
20
+ useOutsideClickListener.useOutsideClickListener({
21
+ ref,
22
+ onClickOutside: () => setIsOpen(false)
23
+ });
24
+ return /* @__PURE__ */ React.createElement(context.SelectContext.Provider, { value: { value, keyExtractor, labelExtractor } }, /* @__PURE__ */ React.createElement("div", { className: "w-full relative bg-white", ref }, children));
25
+ };
26
+
27
+ module.exports = Content;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var cortexCore = require('@tecsinapse/cortex-core');
4
+ var React = require('react');
5
+ var index = require('./index.js');
6
+ var context = require('./context.js');
7
+ var Context = require('../Popover/Context.js');
8
+
9
+ const { groupedTitle, containerGrouped } = cortexCore.selectVariants();
10
+ const SelectGroupedOptions = ({
11
+ onSelect,
12
+ groupedLabelExtractor,
13
+ options
14
+ }) => {
15
+ const { keyExtractor } = React.useContext(context.SelectContext);
16
+ const { setIsOpen } = Context.usePopoverContext();
17
+ const handleSelect = React.useCallback(
18
+ (option) => {
19
+ onSelect(option);
20
+ setIsOpen?.(false);
21
+ },
22
+ [onSelect]
23
+ );
24
+ return /* @__PURE__ */ React.createElement("ul", { role: "select", className: containerGrouped() }, [...options ?? []].map(([key, value]) => /* @__PURE__ */ React.createElement("div", { key }, /* @__PURE__ */ React.createElement("span", { className: groupedTitle() }, groupedLabelExtractor?.(key)), value.map((option) => /* @__PURE__ */ React.createElement(
25
+ index.Select.Option,
26
+ {
27
+ option,
28
+ key: keyExtractor(option),
29
+ onSelectOption: handleSelect
30
+ }
31
+ )))));
32
+ };
33
+
34
+ exports.SelectGroupedOptions = SelectGroupedOptions;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var cortexCore = require('@tecsinapse/cortex-core');
4
+ var React = require('react');
5
+ var context = require('./context.js');
6
+
7
+ const SelectOption = ({
8
+ onSelectOption,
9
+ option
10
+ }) => {
11
+ const { keyExtractor, labelExtractor, value } = React.useContext(context.SelectContext);
12
+ return /* @__PURE__ */ React.createElement(
13
+ "li",
14
+ {
15
+ onClick: () => onSelectOption(option),
16
+ className: cortexCore.option({
17
+ selected: value && keyExtractor(value) === keyExtractor(option)
18
+ }),
19
+ role: "option"
20
+ },
21
+ labelExtractor(option)
22
+ );
23
+ };
24
+
25
+ exports.SelectOption = SelectOption;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var context = require('./context.js');
5
+ var index = require('./index.js');
6
+ var Context = require('../Popover/Context.js');
7
+
8
+ const SelectOptions = ({
9
+ onSelect,
10
+ options
11
+ }) => {
12
+ const { keyExtractor } = React.useContext(context.SelectContext);
13
+ const { setIsOpen } = Context.usePopoverContext();
14
+ const handleSelect = React.useCallback(
15
+ (option) => {
16
+ onSelect(option);
17
+ setIsOpen?.(false);
18
+ },
19
+ [onSelect]
20
+ );
21
+ return /* @__PURE__ */ React.createElement("ul", { role: "select", className: "list-none" }, (options ?? []).map((option) => /* @__PURE__ */ React.createElement(
22
+ index.Select.Option,
23
+ {
24
+ option,
25
+ key: keyExtractor(option),
26
+ onSelectOption: handleSelect
27
+ }
28
+ )));
29
+ };
30
+
31
+ exports.SelectOptions = SelectOptions;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var index = require('../Popover/index.js');
5
+
6
+ const SelectPopover = ({ children }) => {
7
+ return /* @__PURE__ */ React.createElement(index.Popover.Content, { className: "bg-white max-h-[30vh] w-full overflow-y-scroll gap-y-mili flex flex-col" }, children);
8
+ };
9
+
10
+ exports.SelectPopover = SelectPopover;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var Content = require('./Content.js');
5
+ var index = require('../Popover/index.js');
6
+
7
+ const SelectRoot = ({
8
+ children,
9
+ value,
10
+ keyExtractor,
11
+ labelExtractor
12
+ }) => {
13
+ return /* @__PURE__ */ React.createElement(index.Popover.Provider, null, /* @__PURE__ */ React.createElement(index.Popover.Root, { placement: "bottom", trigger: "click" }, /* @__PURE__ */ React.createElement(
14
+ Content,
15
+ {
16
+ keyExtractor,
17
+ labelExtractor,
18
+ value
19
+ },
20
+ children
21
+ )));
22
+ };
23
+
24
+ exports.SelectRoot = SelectRoot;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var cortexCore = require('@tecsinapse/cortex-core');
4
+ var React = require('react');
5
+ var io5 = require('react-icons/io5');
6
+ var context = require('./context.js');
7
+ var index = require('../Popover/index.js');
8
+
9
+ const { button } = cortexCore.selectVariants();
10
+ const SelectTrigger = ({ label, disabled }) => {
11
+ const { value, labelExtractor } = React.useContext(context.SelectContext);
12
+ const placeholder = React.useMemo(
13
+ () => value ? labelExtractor(value) : label,
14
+ [label, value]
15
+ );
16
+ return /* @__PURE__ */ React.createElement(index.Popover.Trigger, null, /* @__PURE__ */ React.createElement(
17
+ "button",
18
+ {
19
+ className: button({ disabled }),
20
+ disabled,
21
+ role: "button"
22
+ },
23
+ /* @__PURE__ */ React.createElement("span", { "data-testid": "select-placeholder" }, placeholder),
24
+ /* @__PURE__ */ React.createElement(io5.IoChevronDownOutline, null)
25
+ ));
26
+ };
27
+
28
+ exports.SelectTrigger = SelectTrigger;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const SelectContext = React.createContext({
6
+ keyExtractor: () => "",
7
+ labelExtractor: () => ""
8
+ });
9
+
10
+ exports.SelectContext = SelectContext;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var GroupedOptions = require('./GroupedOptions.js');
4
+ var Option = require('./Option.js');
5
+ var Options = require('./Options.js');
6
+ var Popover = require('./Popover.js');
7
+ var Root = require('./Root.js');
8
+ var Trigger = require('./Trigger.js');
9
+
10
+ const Select = {
11
+ Root: Root.SelectRoot,
12
+ Trigger: Trigger.SelectTrigger,
13
+ Popover: Popover.SelectPopover,
14
+ Options: Options.SelectOptions,
15
+ GroupedOptions: GroupedOptions.SelectGroupedOptions,
16
+ Option: Option.SelectOption
17
+ };
18
+
19
+ exports.Select = Select;
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var Input = require('./Input.js');
4
+ var index = require('./Input/index.js');
5
5
  var cortexCore = require('@tecsinapse/cortex-core');
6
6
  var TimeField = require('./TimeField.js');
7
7
 
8
8
  const TimeFieldInput = (props) => {
9
9
  const { onChange, value, label, variants } = props;
10
10
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
11
- Input.Input.Face,
11
+ index.Input.Face,
12
12
  {
13
13
  variants,
14
14
  className: "flex flex-row",
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var react = require('@floating-ui/react');
7
+ require('@internationalized/date');
8
+ require('react-aria');
9
+ require('react-stately');
10
+ var useFloatingLogic = require('../hooks/useFloatingLogic.js');
11
+
12
+ const Tooltip = React.forwardRef(
13
+ (props, ref) => {
14
+ const {
15
+ children,
16
+ text,
17
+ trigger = "hover",
18
+ placement = "top",
19
+ width,
20
+ height
21
+ } = props;
22
+ const arrowRef = React.useRef(null);
23
+ const {
24
+ isOpen,
25
+ triggerProps,
26
+ x,
27
+ y,
28
+ strategy,
29
+ refs,
30
+ context,
31
+ floatingStyles
32
+ } = useFloatingLogic.useFloatingLogic({ placement, arrowRef, trigger });
33
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, React.cloneElement(children, triggerProps), isOpen ? /* @__PURE__ */ React.createElement(
34
+ "div",
35
+ {
36
+ ref: ref || refs.setFloating,
37
+ className: "bg-black text-white p-2 rounded z-50 shadow-md text-justify",
38
+ style: {
39
+ position: strategy,
40
+ top: y ?? 0,
41
+ left: x ?? 0,
42
+ width,
43
+ height,
44
+ ...floatingStyles
45
+ }
46
+ },
47
+ text,
48
+ /* @__PURE__ */ React.createElement(react.FloatingArrow, { ref: arrowRef, context, fill: "black" })
49
+ ) : /* @__PURE__ */ React.createElement(React.Fragment, null));
50
+ }
51
+ );
52
+
53
+ exports.Tooltip = Tooltip;
54
+ exports.default = Tooltip;
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var react = require('@floating-ui/react');
5
+
6
+ const useFloatingLogic = ({
7
+ placement,
8
+ trigger,
9
+ arrowRef
10
+ }) => {
11
+ const [isOpen, setIsOpen] = React.useState(false);
12
+ const { x, y, strategy, refs, update, context, floatingStyles } = react.useFloating(
13
+ {
14
+ placement,
15
+ whileElementsMounted: react.autoUpdate,
16
+ middleware: [
17
+ react.offset(10),
18
+ react.flip({
19
+ flipAlignment: true,
20
+ fallbackPlacements: ["right", "bottom", "left", "top"]
21
+ }),
22
+ react.shift(),
23
+ ...arrowRef ? [react.arrow({ element: arrowRef })] : []
24
+ ]
25
+ }
26
+ );
27
+ React.useEffect(() => {
28
+ if (isOpen) update();
29
+ }, [isOpen, update]);
30
+ const triggerProps = {
31
+ ref: refs.setReference,
32
+ ...trigger === "hover" && {
33
+ onMouseEnter: () => setIsOpen(true),
34
+ onMouseLeave: () => setIsOpen(false)
35
+ },
36
+ ...trigger === "click" && {
37
+ onClick: () => setIsOpen((prev) => !prev)
38
+ }
39
+ };
40
+ return {
41
+ isOpen,
42
+ setIsOpen,
43
+ x,
44
+ y,
45
+ strategy,
46
+ refs,
47
+ context,
48
+ floatingStyles,
49
+ triggerProps
50
+ };
51
+ };
52
+
53
+ exports.useFloatingLogic = useFloatingLogic;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const useOutsideClickListener = ({
6
+ ref,
7
+ onClickOutside
8
+ }) => {
9
+ const handleClickOutside = React.useCallback((event) => {
10
+ if (ref.current && !ref.current.contains(event.target)) {
11
+ onClickOutside?.();
12
+ }
13
+ }, []);
14
+ React.useEffect(() => {
15
+ document.addEventListener("click", handleClickOutside, true);
16
+ return () => {
17
+ document.removeEventListener("click", handleClickOutside, true);
18
+ };
19
+ }, [handleClickOutside]);
20
+ };
21
+
22
+ exports.useOutsideClickListener = useOutsideClickListener;
package/dist/cjs/index.js CHANGED
@@ -10,27 +10,33 @@ var Card = require('./components/Card.js');
10
10
  var DatePickerInput = require('./components/DatePickerInput.js');
11
11
  var DateRangePickerInput = require('./components/DateRangePickerInput.js');
12
12
  var DefaultSnack = require('./components/DefaultSnack.js');
13
+ var Divider = require('./components/Divider.js');
13
14
  var Drawer = require('./components/Drawer.js');
14
15
  var GroupButton = require('./components/GroupButton.js');
15
16
  var Hint = require('./components/Hint.js');
16
- var Input = require('./components/Input.js');
17
+ var index = require('./components/Input/index.js');
18
+ var index$1 = require('./components/Menubar/index.js');
17
19
  var Modal = require('./components/Modal.js');
20
+ var index$2 = require('./components/Popover/index.js');
18
21
  var ProgressBar = require('./components/ProgressBar.js');
19
22
  var RangeCalendar = require('./components/RangeCalendar.js');
20
- var Select = require('./components/Select.js');
23
+ var index$3 = require('./components/Select/index.js');
21
24
  var Skeleton = require('./components/Skeleton.js');
22
25
  var Table = require('./components/Table.js');
23
26
  var Tag = require('./components/Tag.js');
24
27
  var TextArea = require('./components/TextArea.js');
25
28
  var TimeFieldInput = require('./components/TimeFieldInput.js');
26
29
  var Toggle = require('./components/Toggle.js');
30
+ var Tooltip = require('./components/Tooltip.js');
27
31
  var useCalendar = require('./hooks/useCalendar.js');
28
32
  var useCalendarCell = require('./hooks/useCalendarCell.js');
29
33
  var useCalendarGrid = require('./hooks/useCalendarGrid.js');
30
34
  var useDatePickerInput = require('./hooks/useDatePickerInput.js');
31
35
  var useDateRangePickerInput = require('./hooks/useDateRangePickerInput.js');
32
36
  var useDebouncedState = require('./hooks/useDebouncedState.js');
37
+ var useOutsideClickListener = require('./hooks/useOutsideClickListener.js');
33
38
  var useRangeCalendar = require('./hooks/useRangeCalendar.js');
39
+ var useFloatingLogic = require('./hooks/useFloatingLogic.js');
34
40
  var SnackbarSonner = require('./service/SnackbarSonner.js');
35
41
 
36
42
 
@@ -46,19 +52,17 @@ exports.Card = Card.Card;
46
52
  exports.DatePickerInput = DatePickerInput.DatePickerInput;
47
53
  exports.DateRangePickerInput = DateRangePickerInput.DateRangePickerInput;
48
54
  exports.DefaultSnack = DefaultSnack.DefaultSnack;
55
+ exports.Divider = Divider.Divider;
49
56
  exports.Drawer = Drawer.Drawer;
50
57
  exports.GroupButton = GroupButton.GroupButton;
51
58
  exports.Hint = Hint.Hint;
52
- exports.Box = Input.Box;
53
- exports.Face = Input.Face;
54
- exports.Input = Input.Input;
55
- exports.Left = Input.Left;
56
- exports.Right = Input.Right;
57
- exports.Root = Input.Root;
59
+ exports.Input = index.Input;
60
+ exports.Menubar = index$1.Menubar;
58
61
  exports.Modal = Modal.Modal;
62
+ exports.Popover = index$2.Popover;
59
63
  exports.ProgressBar = ProgressBar.ProgressBar;
60
64
  exports.RangeCalendar = RangeCalendar.RangeCalendar;
61
- exports.Select = Select.Select;
65
+ exports.Select = index$3.Select;
62
66
  exports.Skeleton = Skeleton.Skeleton;
63
67
  exports.TCell = Table.TCell;
64
68
  exports.TFoot = Table.TFoot;
@@ -72,11 +76,14 @@ exports.Tag = Tag.Tag;
72
76
  exports.TextArea = TextArea.TextArea;
73
77
  exports.TimeFieldInput = TimeFieldInput.TimeFieldInput;
74
78
  exports.Toggle = Toggle.Toggle;
79
+ exports.Tooltip = Tooltip.Tooltip;
75
80
  exports.useCalendar = useCalendar.useCalendar;
76
81
  exports.useCalendarCell = useCalendarCell.useCalendarCell;
77
82
  exports.useCalendarGrid = useCalendarGrid.useCalendarGrid;
78
83
  exports.useDatePickerInput = useDatePickerInput.useDatePickerInput;
79
84
  exports.useDateRangePickerInput = useDateRangePickerInput.useDateRangePickerInput;
80
85
  exports.useDebouncedState = useDebouncedState.useDebouncedState;
86
+ exports.useOutsideClickListener = useOutsideClickListener.useOutsideClickListener;
81
87
  exports.useRangeCalendar = useRangeCalendar.useRangeCalendar;
88
+ exports.useFloatingLogic = useFloatingLogic.useFloatingLogic;
82
89
  exports.SnackbarSonner = SnackbarSonner.SnackbarSonner;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const MenubarContext = React.createContext({
6
+ show: false,
7
+ setShow: () => void 0
8
+ });
9
+ const MenubarProvider = ({ children }) => {
10
+ const [show, setShow] = React.useState(false);
11
+ return /* @__PURE__ */ React.createElement(MenubarContext.Provider, { value: { show, setShow } }, children);
12
+ };
13
+ const useMenubar = () => {
14
+ const context = React.useContext(MenubarContext);
15
+ if (!context) {
16
+ throw new Error("useSnackbar must be used within a SnackbarProvider");
17
+ }
18
+ return [context.show, context.setShow];
19
+ };
20
+
21
+ exports.MenubarProvider = MenubarProvider;
22
+ exports.useMenubar = useMenubar;