@tecsinapse/cortex-react 1.3.0-beta.27 → 1.3.0-beta.29

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.
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ require('@internationalized/date');
5
+ require('react-aria');
6
+ require('react-stately');
7
+ require('@floating-ui/react');
8
+ var useOutsideClickListener = require('../../hooks/useOutsideClickListener.js');
9
+ var Context = require('../Popover/Context.js');
10
+
11
+ const Content = ({ children }) => {
12
+ const { setIsOpen } = Context.usePopoverContext();
13
+ const ref = React.useRef(null);
14
+ useOutsideClickListener.useOutsideClickListener({
15
+ ref,
16
+ onClickOutside: () => setIsOpen(false)
17
+ });
18
+ return /* @__PURE__ */ React.createElement("div", { ref }, children);
19
+ };
20
+
21
+ exports.Content = Content;
@@ -10,40 +10,43 @@ require('@floating-ui/react');
10
10
  var Calendar = require('../Calendar/Calendar.js');
11
11
  var DateField = require('./DateField.js');
12
12
  var DatePickerInputBase = require('./DatePickerInputBase.js');
13
+ var index = require('../Popover/index.js');
14
+ var Context = require('../Popover/Context.js');
15
+ var Content = require('./Content.js');
13
16
 
14
- const DatePickerInput = (props) => {
17
+ const DatePickerInputWithPopover = (props) => {
18
+ const { setIsOpen } = Context.usePopoverContext();
15
19
  const { onChange, value, label, variants } = props;
16
20
  const { fieldProps, state, ref } = useDatePickerInput.useDatePickerInput({ value, onChange });
17
- return /* @__PURE__ */ React.createElement("div", { "data-testid": "date-picker-input" }, /* @__PURE__ */ React.createElement(
21
+ return /* @__PURE__ */ React.createElement("div", { ref, "data-testid": "date-picker-input" }, /* @__PURE__ */ React.createElement(index.Popover.Trigger, null, /* @__PURE__ */ React.createElement(
18
22
  DatePickerInputBase.DatePickerInputBase,
19
23
  {
20
- onClickCalendar: () => state.isOpen ? state.close() : state.open(),
21
24
  variants: {
22
25
  ...variants,
23
26
  intent: state.isInvalid ? "error" : variants?.intent
24
27
  },
25
28
  label
26
29
  },
27
- /* @__PURE__ */ React.createElement("div", { ref }, /* @__PURE__ */ React.createElement(
30
+ /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
28
31
  DateField.DateField,
29
32
  {
30
33
  ...fieldProps,
31
34
  onChange: (value2) => {
32
35
  state.setDateValue(value2);
33
- state.close();
34
36
  }
35
37
  }
36
38
  ))
37
- ), state.isOpen ? /* @__PURE__ */ React.createElement("div", { className: "absolute" }, /* @__PURE__ */ React.createElement(
39
+ )), /* @__PURE__ */ React.createElement(index.Popover.Content, { className: "bg-inherit shadow-none border-none" }, /* @__PURE__ */ React.createElement(
38
40
  Calendar.Calendar,
39
41
  {
40
42
  value,
41
43
  onChange: (value2) => {
44
+ setIsOpen(false);
42
45
  state.setDateValue(utils.dateToCalendarDate(value2));
43
- state.close();
44
46
  }
45
47
  }
46
- )) : /* @__PURE__ */ React.createElement(React.Fragment, null));
48
+ )));
47
49
  };
50
+ const DatePickerInput = (props) => /* @__PURE__ */ React.createElement(index.Popover.Root, { placement: "bottom-start", trigger: "click" }, /* @__PURE__ */ React.createElement(Content.Content, null, /* @__PURE__ */ React.createElement(DatePickerInputWithPopover, { ...props })));
48
51
 
49
52
  exports.DatePickerInput = DatePickerInput;
@@ -8,14 +8,12 @@ var index = require('../Input/index.js');
8
8
  const DatePickerInputBase = ({
9
9
  children,
10
10
  variants,
11
- label,
12
- onClickCalendar
11
+ label
13
12
  }) => {
14
13
  return /* @__PURE__ */ React.createElement(index.Input.Face, { variants, "data-testid": "date-picker-input-base" }, /* @__PURE__ */ React.createElement("span", { className: cortexCore.labelStyle({}) }, label), /* @__PURE__ */ React.createElement("div", { className: cortexCore.inputBox("", label, "w-full flex flex-row") }, children), /* @__PURE__ */ React.createElement(index.Input.Right, { className: "" }, /* @__PURE__ */ React.createElement(
15
14
  lia.LiaCalendar,
16
15
  {
17
16
  className: "cursor-pointer mt-centi",
18
- onClick: onClickCalendar,
19
17
  "data-testid": "date-picker-input-base-calendar"
20
18
  }
21
19
  )));
@@ -10,28 +10,30 @@ require('@floating-ui/react');
10
10
  var RangeCalendar = require('../Calendar/RangeCalendar.js');
11
11
  var DateField = require('./DateField.js');
12
12
  var DatePickerInputBase = require('./DatePickerInputBase.js');
13
+ var index = require('../Popover/index.js');
14
+ var Context = require('../Popover/Context.js');
15
+ var Content = require('./Content.js');
13
16
 
14
- const DateRangePickerInput = (props) => {
17
+ const DateRangePickerInputWithPopover = (props) => {
18
+ const { setIsOpen } = Context.usePopoverContext();
15
19
  const { onChange, value, label, variants } = props;
16
20
  const { endFieldProps, startFieldProps, ref, state } = useDateRangePickerInput.useDateRangePickerInput({ value, onChange });
17
- return /* @__PURE__ */ React.createElement("div", { "data-testid": "date-range-picker-input" }, /* @__PURE__ */ React.createElement(
21
+ return /* @__PURE__ */ React.createElement("div", { ref, "data-testid": "date-range-picker-input" }, /* @__PURE__ */ React.createElement(index.Popover.Trigger, null, /* @__PURE__ */ React.createElement(
18
22
  DatePickerInputBase.DatePickerInputBase,
19
23
  {
20
- onClickCalendar: () => state.isOpen ? state.close() : state.open(),
21
24
  variants: {
22
25
  ...variants,
23
26
  intent: state.isInvalid ? "error" : variants?.intent
24
27
  },
25
28
  label
26
29
  },
27
- /* @__PURE__ */ React.createElement("div", { ref, className: "flex flex-row gap-x-micro items-center" }, /* @__PURE__ */ React.createElement(
30
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-row gap-x-micro items-center" }, /* @__PURE__ */ React.createElement(
28
31
  DateField.DateField,
29
32
  {
30
33
  ...startFieldProps,
31
34
  value: utils.dateToCalendarDate(value?.start),
32
35
  onChange: (value2) => {
33
36
  state.setDate("start", value2);
34
- state.close();
35
37
  }
36
38
  }
37
39
  ), /* @__PURE__ */ React.createElement("span", null, "-"), /* @__PURE__ */ React.createElement(
@@ -41,23 +43,23 @@ const DateRangePickerInput = (props) => {
41
43
  value: utils.dateToCalendarDate(value?.end),
42
44
  onChange: (value2) => {
43
45
  state.setDate("end", value2);
44
- state.close();
45
46
  }
46
47
  }
47
48
  ))
48
- ), state.isOpen ? /* @__PURE__ */ React.createElement("div", { className: "absolute" }, /* @__PURE__ */ React.createElement(
49
+ )), /* @__PURE__ */ React.createElement(index.Popover.Content, { className: "bg-inherit shadow-none border-none" }, /* @__PURE__ */ React.createElement(
49
50
  RangeCalendar.RangeCalendar,
50
51
  {
51
52
  value,
52
53
  onChange: (value2) => {
54
+ setIsOpen?.(false);
53
55
  state.setDateRange({
54
56
  start: utils.dateToCalendarDate(value2.start),
55
57
  end: utils.dateToCalendarDate(value2.end)
56
58
  });
57
- state.close();
58
59
  }
59
60
  }
60
- )) : /* @__PURE__ */ React.createElement(React.Fragment, null));
61
+ )));
61
62
  };
63
+ const DateRangePickerInput = (props) => /* @__PURE__ */ React.createElement(index.Popover.Root, { placement: "bottom-start", trigger: "click" }, /* @__PURE__ */ React.createElement(Content.Content, null, /* @__PURE__ */ React.createElement(DateRangePickerInputWithPopover, { ...props })));
62
64
 
63
65
  exports.DateRangePickerInput = DateRangePickerInput;
@@ -21,11 +21,11 @@ require('../Input/Mask.js');
21
21
  require('../Input/Right.js');
22
22
  require('../Input/Root.js');
23
23
  require('../Input/Search.js');
24
+ require('../Popover/Context.js');
24
25
  require('../GroupButton.js');
25
26
  require('../Hint.js');
26
27
  var index = require('./index.js');
27
28
  require('../Modal.js');
28
- require('../Popover/Context.js');
29
29
  require('../../styles/calendar-cell.js');
30
30
  require('../../styles/groupButton.js');
31
31
  require('../../styles/progressBar.js');
@@ -11,7 +11,7 @@ const SelectRoot = ({
11
11
  keyExtractor,
12
12
  labelExtractor
13
13
  }) => {
14
- return /* @__PURE__ */ React.createElement(index.Popover.Provider, null, /* @__PURE__ */ React.createElement(index.Popover.Root, { placement: "bottom", trigger: "click" }, /* @__PURE__ */ React.createElement(context.SelectContext.Provider, { value: { value, keyExtractor, labelExtractor } }, /* @__PURE__ */ React.createElement(Content.Content, null, children))));
14
+ return /* @__PURE__ */ React.createElement(index.Popover.Root, { placement: "bottom", trigger: "click" }, /* @__PURE__ */ React.createElement(context.SelectContext.Provider, { value: { value, keyExtractor, labelExtractor } }, /* @__PURE__ */ React.createElement(Content.Content, null, children)));
15
15
  };
16
16
 
17
17
  exports.SelectRoot = SelectRoot;
@@ -22,6 +22,7 @@ require('../components/Input/Mask.js');
22
22
  require('../components/Input/Right.js');
23
23
  require('../components/Input/Root.js');
24
24
  require('../components/Input/Search.js');
25
+ require('../components/Popover/Context.js');
25
26
  require('../components/GroupButton.js');
26
27
  require('../components/Hint.js');
27
28
  require('../provider/MenubarProvider.js');
@@ -36,7 +37,6 @@ require('../components/Menubar/Header.js');
36
37
  require('../components/Menubar/Item.js');
37
38
  require('../components/Menubar/SubItem.js');
38
39
  require('../components/Modal.js');
39
- require('../components/Popover/Context.js');
40
40
  require('../styles/calendar-cell.js');
41
41
  require('../styles/groupButton.js');
42
42
  require('../styles/progressBar.js');
@@ -0,0 +1,19 @@
1
+ import React__default, { useRef } from 'react';
2
+ import '@internationalized/date';
3
+ import 'react-aria';
4
+ import 'react-stately';
5
+ import '@floating-ui/react';
6
+ import { useOutsideClickListener } from '../../hooks/useOutsideClickListener.js';
7
+ import { usePopoverContext } from '../Popover/Context.js';
8
+
9
+ const Content = ({ children }) => {
10
+ const { setIsOpen } = usePopoverContext();
11
+ const ref = useRef(null);
12
+ useOutsideClickListener({
13
+ ref,
14
+ onClickOutside: () => setIsOpen(false)
15
+ });
16
+ return /* @__PURE__ */ React__default.createElement("div", { ref }, children);
17
+ };
18
+
19
+ export { Content };
@@ -8,40 +8,43 @@ import '@floating-ui/react';
8
8
  import { Calendar } from '../Calendar/Calendar.js';
9
9
  import { DateField } from './DateField.js';
10
10
  import { DatePickerInputBase } from './DatePickerInputBase.js';
11
+ import { Popover } from '../Popover/index.js';
12
+ import { usePopoverContext } from '../Popover/Context.js';
13
+ import { Content } from './Content.js';
11
14
 
12
- const DatePickerInput = (props) => {
15
+ const DatePickerInputWithPopover = (props) => {
16
+ const { setIsOpen } = usePopoverContext();
13
17
  const { onChange, value, label, variants } = props;
14
18
  const { fieldProps, state, ref } = useDatePickerInput({ value, onChange });
15
- return /* @__PURE__ */ React__default.createElement("div", { "data-testid": "date-picker-input" }, /* @__PURE__ */ React__default.createElement(
19
+ return /* @__PURE__ */ React__default.createElement("div", { ref, "data-testid": "date-picker-input" }, /* @__PURE__ */ React__default.createElement(Popover.Trigger, null, /* @__PURE__ */ React__default.createElement(
16
20
  DatePickerInputBase,
17
21
  {
18
- onClickCalendar: () => state.isOpen ? state.close() : state.open(),
19
22
  variants: {
20
23
  ...variants,
21
24
  intent: state.isInvalid ? "error" : variants?.intent
22
25
  },
23
26
  label
24
27
  },
25
- /* @__PURE__ */ React__default.createElement("div", { ref }, /* @__PURE__ */ React__default.createElement(
28
+ /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement(
26
29
  DateField,
27
30
  {
28
31
  ...fieldProps,
29
32
  onChange: (value2) => {
30
33
  state.setDateValue(value2);
31
- state.close();
32
34
  }
33
35
  }
34
36
  ))
35
- ), state.isOpen ? /* @__PURE__ */ React__default.createElement("div", { className: "absolute" }, /* @__PURE__ */ React__default.createElement(
37
+ )), /* @__PURE__ */ React__default.createElement(Popover.Content, { className: "bg-inherit shadow-none border-none" }, /* @__PURE__ */ React__default.createElement(
36
38
  Calendar,
37
39
  {
38
40
  value,
39
41
  onChange: (value2) => {
42
+ setIsOpen(false);
40
43
  state.setDateValue(dateToCalendarDate(value2));
41
- state.close();
42
44
  }
43
45
  }
44
- )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null));
46
+ )));
45
47
  };
48
+ const DatePickerInput = (props) => /* @__PURE__ */ React__default.createElement(Popover.Root, { placement: "bottom-start", trigger: "click" }, /* @__PURE__ */ React__default.createElement(Content, null, /* @__PURE__ */ React__default.createElement(DatePickerInputWithPopover, { ...props })));
46
49
 
47
50
  export { DatePickerInput };
@@ -6,14 +6,12 @@ import { Input } from '../Input/index.js';
6
6
  const DatePickerInputBase = ({
7
7
  children,
8
8
  variants,
9
- label,
10
- onClickCalendar
9
+ label
11
10
  }) => {
12
11
  return /* @__PURE__ */ React__default.createElement(Input.Face, { variants, "data-testid": "date-picker-input-base" }, /* @__PURE__ */ React__default.createElement("span", { className: labelStyle({}) }, label), /* @__PURE__ */ React__default.createElement("div", { className: inputBox("", label, "w-full flex flex-row") }, children), /* @__PURE__ */ React__default.createElement(Input.Right, { className: "" }, /* @__PURE__ */ React__default.createElement(
13
12
  LiaCalendar,
14
13
  {
15
14
  className: "cursor-pointer mt-centi",
16
- onClick: onClickCalendar,
17
15
  "data-testid": "date-picker-input-base-calendar"
18
16
  }
19
17
  )));
@@ -8,28 +8,30 @@ import '@floating-ui/react';
8
8
  import { RangeCalendar } from '../Calendar/RangeCalendar.js';
9
9
  import { DateField } from './DateField.js';
10
10
  import { DatePickerInputBase } from './DatePickerInputBase.js';
11
+ import { Popover } from '../Popover/index.js';
12
+ import { usePopoverContext } from '../Popover/Context.js';
13
+ import { Content } from './Content.js';
11
14
 
12
- const DateRangePickerInput = (props) => {
15
+ const DateRangePickerInputWithPopover = (props) => {
16
+ const { setIsOpen } = usePopoverContext();
13
17
  const { onChange, value, label, variants } = props;
14
18
  const { endFieldProps, startFieldProps, ref, state } = useDateRangePickerInput({ value, onChange });
15
- return /* @__PURE__ */ React__default.createElement("div", { "data-testid": "date-range-picker-input" }, /* @__PURE__ */ React__default.createElement(
19
+ return /* @__PURE__ */ React__default.createElement("div", { ref, "data-testid": "date-range-picker-input" }, /* @__PURE__ */ React__default.createElement(Popover.Trigger, null, /* @__PURE__ */ React__default.createElement(
16
20
  DatePickerInputBase,
17
21
  {
18
- onClickCalendar: () => state.isOpen ? state.close() : state.open(),
19
22
  variants: {
20
23
  ...variants,
21
24
  intent: state.isInvalid ? "error" : variants?.intent
22
25
  },
23
26
  label
24
27
  },
25
- /* @__PURE__ */ React__default.createElement("div", { ref, className: "flex flex-row gap-x-micro items-center" }, /* @__PURE__ */ React__default.createElement(
28
+ /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-row gap-x-micro items-center" }, /* @__PURE__ */ React__default.createElement(
26
29
  DateField,
27
30
  {
28
31
  ...startFieldProps,
29
32
  value: dateToCalendarDate(value?.start),
30
33
  onChange: (value2) => {
31
34
  state.setDate("start", value2);
32
- state.close();
33
35
  }
34
36
  }
35
37
  ), /* @__PURE__ */ React__default.createElement("span", null, "-"), /* @__PURE__ */ React__default.createElement(
@@ -39,23 +41,23 @@ const DateRangePickerInput = (props) => {
39
41
  value: dateToCalendarDate(value?.end),
40
42
  onChange: (value2) => {
41
43
  state.setDate("end", value2);
42
- state.close();
43
44
  }
44
45
  }
45
46
  ))
46
- ), state.isOpen ? /* @__PURE__ */ React__default.createElement("div", { className: "absolute" }, /* @__PURE__ */ React__default.createElement(
47
+ )), /* @__PURE__ */ React__default.createElement(Popover.Content, { className: "bg-inherit shadow-none border-none" }, /* @__PURE__ */ React__default.createElement(
47
48
  RangeCalendar,
48
49
  {
49
50
  value,
50
51
  onChange: (value2) => {
52
+ setIsOpen?.(false);
51
53
  state.setDateRange({
52
54
  start: dateToCalendarDate(value2.start),
53
55
  end: dateToCalendarDate(value2.end)
54
56
  });
55
- state.close();
56
57
  }
57
58
  }
58
- )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null));
59
+ )));
59
60
  };
61
+ const DateRangePickerInput = (props) => /* @__PURE__ */ React__default.createElement(Popover.Root, { placement: "bottom-start", trigger: "click" }, /* @__PURE__ */ React__default.createElement(Content, null, /* @__PURE__ */ React__default.createElement(DateRangePickerInputWithPopover, { ...props })));
60
62
 
61
63
  export { DateRangePickerInput };
@@ -19,11 +19,11 @@ import '../Input/Mask.js';
19
19
  import '../Input/Right.js';
20
20
  import '../Input/Root.js';
21
21
  import '../Input/Search.js';
22
+ import '../Popover/Context.js';
22
23
  import '../GroupButton.js';
23
24
  import '../Hint.js';
24
25
  import { Menubar } from './index.js';
25
26
  import '../Modal.js';
26
- import '../Popover/Context.js';
27
27
  import '../../styles/calendar-cell.js';
28
28
  import '../../styles/groupButton.js';
29
29
  import '../../styles/progressBar.js';
@@ -9,7 +9,7 @@ const SelectRoot = ({
9
9
  keyExtractor,
10
10
  labelExtractor
11
11
  }) => {
12
- return /* @__PURE__ */ React__default.createElement(Popover.Provider, null, /* @__PURE__ */ React__default.createElement(Popover.Root, { placement: "bottom", trigger: "click" }, /* @__PURE__ */ React__default.createElement(SelectContext.Provider, { value: { value, keyExtractor, labelExtractor } }, /* @__PURE__ */ React__default.createElement(Content, null, children))));
12
+ return /* @__PURE__ */ React__default.createElement(Popover.Root, { placement: "bottom", trigger: "click" }, /* @__PURE__ */ React__default.createElement(SelectContext.Provider, { value: { value, keyExtractor, labelExtractor } }, /* @__PURE__ */ React__default.createElement(Content, null, children)));
13
13
  };
14
14
 
15
15
  export { SelectRoot };
@@ -20,6 +20,7 @@ import '../components/Input/Mask.js';
20
20
  import '../components/Input/Right.js';
21
21
  import '../components/Input/Root.js';
22
22
  import '../components/Input/Search.js';
23
+ import '../components/Popover/Context.js';
23
24
  import '../components/GroupButton.js';
24
25
  import '../components/Hint.js';
25
26
  import '../provider/MenubarProvider.js';
@@ -34,7 +35,6 @@ import '../components/Menubar/Header.js';
34
35
  import '../components/Menubar/Item.js';
35
36
  import '../components/Menubar/SubItem.js';
36
37
  import '../components/Modal.js';
37
- import '../components/Popover/Context.js';
38
38
  import '../styles/calendar-cell.js';
39
39
  import '../styles/groupButton.js';
40
40
  import '../styles/progressBar.js';
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ContentProps {
3
+ children: ReactNode;
4
+ }
5
+ export declare const Content: ({ children }: ContentProps) => JSX.Element;
@@ -1,8 +1,7 @@
1
1
  import React from 'react';
2
2
  import { InputPropsBase } from '../Input';
3
3
  interface DatePickerInputBaseProps extends InputPropsBase {
4
- onClickCalendar: () => void;
5
4
  children: React.ReactElement;
6
5
  }
7
- export declare const DatePickerInputBase: ({ children, variants, label, onClickCalendar, }: DatePickerInputBaseProps) => JSX.Element;
6
+ export declare const DatePickerInputBase: ({ children, variants, label, }: DatePickerInputBaseProps) => JSX.Element;
8
7
  export {};
@@ -29,6 +29,3 @@ export interface InputMaskProps extends Omit<InputProps, 'onChange'> {
29
29
  onChange?: (e: InputMaskEvent) => void;
30
30
  mask: Mask;
31
31
  }
32
- export interface InputMaskExpressionProps extends InputMaskProps {
33
- mask: Mask;
34
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-react",
3
- "version": "1.3.0-beta.27",
3
+ "version": "1.3.0-beta.29",
4
4
  "description": "React components based in @tecsinapse/cortex-core",
5
5
  "license": "MIT",
6
6
  "main": "dist/esm/index.js",
@@ -43,5 +43,5 @@
43
43
  "react-dom": ">=18.0.0",
44
44
  "tailwind": ">=3.3.0"
45
45
  },
46
- "gitHead": "43a88a5a80a54451f5e2621363f7164927e5ef47"
46
+ "gitHead": "2ceb508137d792de6f16fd375bd66abe5db90420"
47
47
  }