@tecsinapse/cortex-react 2.2.1-beta.0 → 2.2.1-beta.2

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 (75) hide show
  1. package/dist/cjs/components/Autocomplete/GroupedOptions.js +42 -0
  2. package/dist/cjs/components/Autocomplete/Option.js +40 -0
  3. package/dist/cjs/components/Autocomplete/Options.js +36 -0
  4. package/dist/cjs/components/Autocomplete/Popover.js +34 -0
  5. package/dist/cjs/components/Autocomplete/Root.js +40 -0
  6. package/dist/cjs/components/Autocomplete/Trigger.js +47 -0
  7. package/dist/cjs/components/Autocomplete/context.js +7 -0
  8. package/dist/cjs/components/Autocomplete/index.js +19 -0
  9. package/dist/cjs/components/PhoneInput/FlagIcon.js +46 -0
  10. package/dist/cjs/components/PhoneInput/Option.js +29 -0
  11. package/dist/cjs/components/PhoneInput/Options.js +121 -0
  12. package/dist/cjs/components/PhoneInput/Popover.js +22 -0
  13. package/dist/cjs/components/PhoneInput/Root.js +61 -0
  14. package/dist/cjs/components/PhoneInput/Trigger.js +115 -0
  15. package/dist/cjs/components/PhoneInput/context.js +19 -0
  16. package/dist/cjs/components/PhoneInput/index.js +17 -0
  17. package/dist/cjs/components/ScrollableDigitSelector.js +1 -1
  18. package/dist/cjs/components/TimePicker/TimePickerSelector.js +2 -2
  19. package/dist/cjs/components/Uploader/Files.js +1 -1
  20. package/dist/cjs/hooks/useAutocompleteGroupedOptions.js +35 -0
  21. package/dist/cjs/hooks/useAutocompleteOptions.js +35 -0
  22. package/dist/cjs/index.js +4 -0
  23. package/dist/cjs/provider/ManagerContext.js +8 -0
  24. package/dist/cjs/service/SnackbarSonner.js +32 -0
  25. package/dist/cjs/styles/calendar-cell.js +3 -3
  26. package/dist/esm/components/Autocomplete/GroupedOptions.js +40 -0
  27. package/dist/esm/components/Autocomplete/Option.js +38 -0
  28. package/dist/esm/components/Autocomplete/Options.js +34 -0
  29. package/dist/esm/components/Autocomplete/Popover.js +32 -0
  30. package/dist/esm/components/Autocomplete/Root.js +38 -0
  31. package/dist/esm/components/Autocomplete/Trigger.js +45 -0
  32. package/dist/esm/components/Autocomplete/context.js +5 -0
  33. package/dist/esm/components/Autocomplete/index.js +17 -0
  34. package/dist/esm/components/PhoneInput/FlagIcon.js +25 -0
  35. package/dist/esm/components/PhoneInput/Option.js +27 -0
  36. package/dist/esm/components/PhoneInput/Options.js +119 -0
  37. package/dist/esm/components/PhoneInput/Popover.js +20 -0
  38. package/dist/esm/components/PhoneInput/Root.js +59 -0
  39. package/dist/esm/components/PhoneInput/Trigger.js +113 -0
  40. package/dist/esm/components/PhoneInput/context.js +16 -0
  41. package/dist/esm/components/PhoneInput/index.js +15 -0
  42. package/dist/esm/components/ScrollableDigitSelector.js +1 -1
  43. package/dist/esm/components/TimePicker/TimePickerSelector.js +2 -2
  44. package/dist/esm/components/Uploader/Files.js +1 -1
  45. package/dist/esm/hooks/useAutocompleteGroupedOptions.js +33 -0
  46. package/dist/esm/hooks/useAutocompleteOptions.js +33 -0
  47. package/dist/esm/index.js +2 -0
  48. package/dist/esm/provider/ManagerContext.js +8 -0
  49. package/dist/esm/service/SnackbarSonner.js +32 -0
  50. package/dist/esm/styles/calendar-cell.js +3 -3
  51. package/dist/types/components/Autocomplete/GroupedOptions.d.ts +2 -0
  52. package/dist/types/components/Autocomplete/Option.d.ts +2 -0
  53. package/dist/types/components/Autocomplete/Options.d.ts +2 -0
  54. package/dist/types/components/Autocomplete/Popover.d.ts +2 -0
  55. package/dist/types/components/Autocomplete/Root.d.ts +2 -0
  56. package/dist/types/components/Autocomplete/Trigger.d.ts +2 -0
  57. package/dist/types/components/Autocomplete/context.d.ts +10 -0
  58. package/dist/types/components/Autocomplete/index.d.ts +9 -0
  59. package/dist/types/components/Autocomplete/types.d.ts +50 -0
  60. package/dist/types/components/PhoneInput/FlagIcon.d.ts +8 -0
  61. package/dist/types/components/PhoneInput/Option.d.ts +6 -0
  62. package/dist/types/components/PhoneInput/Options.d.ts +3 -0
  63. package/dist/types/components/PhoneInput/Popover.d.ts +4 -0
  64. package/dist/types/components/PhoneInput/Root.d.ts +2 -0
  65. package/dist/types/components/PhoneInput/Trigger.d.ts +2 -0
  66. package/dist/types/components/PhoneInput/context.d.ts +15 -0
  67. package/dist/types/components/PhoneInput/index.d.ts +16 -0
  68. package/dist/types/components/PhoneInput/types.d.ts +13 -0
  69. package/dist/types/components/index.d.ts +2 -0
  70. package/dist/types/hooks/useAutocompleteGroupedOptions.d.ts +9 -0
  71. package/dist/types/hooks/useAutocompleteOptions.d.ts +9 -0
  72. package/dist/types/hooks/useFileUpload.d.ts +4 -4
  73. package/dist/types/provider/ManagerContext.d.ts +1 -1
  74. package/dist/types/service/SnackbarSonner.d.ts +19 -0
  75. package/package.json +5 -3
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var cortexCore = require('@tecsinapse/cortex-core');
5
+ var React = require('react');
6
+ var Option = require('./Option.js');
7
+ var useAutocompleteGroupedOptions = require('../../hooks/useAutocompleteGroupedOptions.js');
8
+ var SkeletonOptions = require('../Select/SkeletonOptions.js');
9
+ var context = require('./context.js');
10
+
11
+ const { groupedTitle, list } = cortexCore.selectVariants();
12
+ const AutocompleteGroupedOptions = ({
13
+ onSelect,
14
+ groupedLabelExtractor,
15
+ options
16
+ }) => {
17
+ const { options: _options, isLoading } = useAutocompleteGroupedOptions.useAutocompleteGroupedOptions({
18
+ options
19
+ });
20
+ const context$1 = React.useContext(
21
+ context.AutocompleteContext
22
+ );
23
+ if (!context$1)
24
+ throw new Error(
25
+ "AutocompleteGroupedOptions must be used within AutocompleteRoot"
26
+ );
27
+ const { keyExtractor } = context$1;
28
+ return isLoading ? /* @__PURE__ */ jsxRuntime.jsx(SkeletonOptions.SkeletonOptions, {}) : /* @__PURE__ */ jsxRuntime.jsx("ul", { role: "listbox", className: list(), children: [..._options ?? []].map(([key, value]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
29
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: groupedTitle(), children: groupedLabelExtractor?.(key) }),
30
+ value.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
31
+ Option.AutocompleteOption,
32
+ {
33
+ grouped: true,
34
+ option,
35
+ onSelect
36
+ },
37
+ keyExtractor(option)
38
+ ))
39
+ ] }, key)) });
40
+ };
41
+
42
+ exports.AutocompleteGroupedOptions = AutocompleteGroupedOptions;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var cortexCore = require('@tecsinapse/cortex-core');
5
+ var React = require('react');
6
+ var context = require('./context.js');
7
+
8
+ const AutocompleteOption = ({
9
+ option,
10
+ onSelect,
11
+ grouped = false
12
+ }) => {
13
+ const context$1 = React.useContext(
14
+ context.AutocompleteContext
15
+ );
16
+ if (!context$1)
17
+ throw new Error("AutocompleteOptions must be used within AutocompleteRoot");
18
+ const { setOpen, labelExtractor } = context$1;
19
+ const handleSelect = React.useCallback(
20
+ (option2) => {
21
+ setOpen(false);
22
+ onSelect?.(option2);
23
+ },
24
+ [onSelect, setOpen]
25
+ );
26
+ return /* @__PURE__ */ jsxRuntime.jsx(
27
+ "li",
28
+ {
29
+ onClick: () => handleSelect(option),
30
+ className: cortexCore.option({
31
+ selected: false,
32
+ grouped
33
+ }),
34
+ role: "option",
35
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate flex-1", children: labelExtractor(option) })
36
+ }
37
+ );
38
+ };
39
+
40
+ exports.AutocompleteOption = AutocompleteOption;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var cortexCore = require('@tecsinapse/cortex-core');
5
+ var React = require('react');
6
+ var Option = require('./Option.js');
7
+ var useAutocompleteOptions = require('../../hooks/useAutocompleteOptions.js');
8
+ var SkeletonOptions = require('../Select/SkeletonOptions.js');
9
+ var context = require('./context.js');
10
+
11
+ const { list } = cortexCore.selectVariants();
12
+ const AutocompleteOptions = ({
13
+ options,
14
+ onSelect,
15
+ children
16
+ }) => {
17
+ const context$1 = React.useContext(
18
+ context.AutocompleteContext
19
+ );
20
+ if (!context$1)
21
+ throw new Error("AutocompleteOptions must be used within AutocompleteRoot");
22
+ const { keyExtractor } = context$1;
23
+ const { options: _options, isLoading } = useAutocompleteOptions.useAutocompleteOptions({
24
+ options
25
+ });
26
+ return isLoading ? /* @__PURE__ */ jsxRuntime.jsx(SkeletonOptions.SkeletonOptions, {}) : /* @__PURE__ */ jsxRuntime.jsx("ul", { role: "listbox", className: list(), children: children ?? _options?.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
27
+ Option.AutocompleteOption,
28
+ {
29
+ option,
30
+ onSelect
31
+ },
32
+ keyExtractor(option)
33
+ )) });
34
+ };
35
+
36
+ exports.AutocompleteOptions = AutocompleteOptions;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var react = require('@floating-ui/react');
6
+ var index = require('../Popover/index.js');
7
+ var context = require('./context.js');
8
+ var clsx = require('clsx');
9
+
10
+ const AutocompletePopover = ({
11
+ children,
12
+ className
13
+ }) => {
14
+ const context$1 = React.useContext(context.AutocompleteContext);
15
+ if (!context$1)
16
+ throw new Error("AutocompletePopover must be used within AutocompleteRoot");
17
+ const { triggerWidth } = context$1;
18
+ return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
19
+ index.Popover.Content,
20
+ {
21
+ className: clsx(
22
+ "bg-white shadow-md rounded-md overflow-y-auto max-h-[30vh] outline-none z-9999",
23
+ className
24
+ ),
25
+ style: {
26
+ width: triggerWidth ? `${triggerWidth}px` : "auto"
27
+ },
28
+ initialFocus: -1,
29
+ children
30
+ }
31
+ ) });
32
+ };
33
+
34
+ exports.AutocompletePopover = AutocompletePopover;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var index = require('../Popover/index.js');
6
+ var context = require('./context.js');
7
+
8
+ const AutocompleteRoot = ({
9
+ keyExtractor,
10
+ labelExtractor,
11
+ children
12
+ }) => {
13
+ const [triggerWidth, setTriggerWidth] = React.useState();
14
+ const [open, setOpen] = React.useState(false);
15
+ return /* @__PURE__ */ jsxRuntime.jsx(
16
+ context.AutocompleteContext.Provider,
17
+ {
18
+ value: {
19
+ open,
20
+ setOpen,
21
+ triggerWidth,
22
+ setTriggerWidth,
23
+ keyExtractor,
24
+ labelExtractor
25
+ },
26
+ children: /* @__PURE__ */ jsxRuntime.jsx(
27
+ index.Popover.Root,
28
+ {
29
+ placement: "bottom-start",
30
+ controlled: true,
31
+ isOpen: open,
32
+ setIsOpen: setOpen,
33
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full", children })
34
+ }
35
+ )
36
+ }
37
+ );
38
+ };
39
+
40
+ exports.AutocompleteRoot = AutocompleteRoot;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var index = require('../Popover/index.js');
6
+ var index$1 = require('../Input/index.js');
7
+ var context = require('./context.js');
8
+
9
+ const AutocompleteTrigger = ({
10
+ inputValue,
11
+ onChange,
12
+ label,
13
+ disabled,
14
+ placeholder
15
+ }) => {
16
+ const context$1 = React.useContext(context.AutocompleteContext);
17
+ if (!context$1)
18
+ throw new Error("AutocompleteTrigger must be used within AutocompleteRoot");
19
+ const { setTriggerWidth, setOpen } = context$1;
20
+ const triggerRef = React.useRef(null);
21
+ React.useEffect(() => {
22
+ if (triggerRef.current && setTriggerWidth) {
23
+ const width = triggerRef.current.getBoundingClientRect().width;
24
+ setTriggerWidth(width);
25
+ }
26
+ }, [triggerRef.current, setTriggerWidth]);
27
+ const handleChange = (event) => {
28
+ onChange(event);
29
+ if (event.target.value.length > 0) {
30
+ setOpen(true);
31
+ } else {
32
+ setOpen(false);
33
+ }
34
+ };
35
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: triggerRef, children: /* @__PURE__ */ jsxRuntime.jsx(
36
+ index$1.Input.Root,
37
+ {
38
+ label: label ?? "Selecione uma op\xE7\xE3o",
39
+ value: inputValue,
40
+ onChange: handleChange,
41
+ disabled,
42
+ placeholder
43
+ }
44
+ ) }) });
45
+ };
46
+
47
+ exports.AutocompleteTrigger = AutocompleteTrigger;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const AutocompleteContext = React.createContext(void 0);
6
+
7
+ exports.AutocompleteContext = AutocompleteContext;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var Root = require('./Root.js');
4
+ var Trigger = require('./Trigger.js');
5
+ var Popover = require('./Popover.js');
6
+ var Options = require('./Options.js');
7
+ var Option = require('./Option.js');
8
+ var GroupedOptions = require('./GroupedOptions.js');
9
+
10
+ const Autocomplete = {
11
+ Root: Root.AutocompleteRoot,
12
+ Trigger: Trigger.AutocompleteTrigger,
13
+ Popover: Popover.AutocompletePopover,
14
+ Options: Options.AutocompleteOptions,
15
+ Option: Option.AutocompleteOption,
16
+ GroupedOptions: GroupedOptions.AutocompleteGroupedOptions
17
+ };
18
+
19
+ exports.Autocomplete = Autocomplete;
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Flags = require('country-flag-icons/react/3x2');
5
+
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var Flags__namespace = /*#__PURE__*/_interopNamespaceDefault(Flags);
24
+
25
+ const FlagIcon = ({
26
+ countryCode,
27
+ className = "w-[25px]",
28
+ title
29
+ }) => {
30
+ if (!countryCode) return null;
31
+ const upperCode = countryCode.toUpperCase();
32
+ const FlagComponent = Flags__namespace[upperCode];
33
+ if (!FlagComponent) {
34
+ return null;
35
+ }
36
+ return /* @__PURE__ */ jsxRuntime.jsx(
37
+ FlagComponent,
38
+ {
39
+ className,
40
+ title: title || upperCode,
41
+ "aria-label": `Flag of ${upperCode}`
42
+ }
43
+ );
44
+ };
45
+
46
+ exports.FlagIcon = FlagIcon;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+
5
+ const PhoneInputOption = ({
6
+ country,
7
+ handleSelectCountry,
8
+ disableClick = false
9
+ }) => {
10
+ return /* @__PURE__ */ jsxRuntime.jsxs(
11
+ "button",
12
+ {
13
+ className: "flex w-full h-[2rem] items-center justify-between p-centi cursor-pointer hover:bg-secondary-xlight bg-inherit",
14
+ onClick: () => {
15
+ handleSelectCountry(country);
16
+ },
17
+ disabled: disableClick,
18
+ children: [
19
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: country?.name }),
20
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-secondary-light text-sm", children: [
21
+ "+",
22
+ country?.dialCode
23
+ ] })
24
+ ]
25
+ }
26
+ );
27
+ };
28
+
29
+ exports.PhoneInputOption = PhoneInputOption;
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var Divider = require('../Divider.js');
6
+ var context = require('./context.js');
7
+ var Option = require('./Option.js');
8
+ require('clsx');
9
+ require('../Accordion/context.js');
10
+ require('react-icons/lia');
11
+ require('@internationalized/date');
12
+ require('../Badge.js');
13
+ require('react-icons/md');
14
+ require('@tecsinapse/cortex-core');
15
+ require('react-aria');
16
+ require('react-stately');
17
+ require('../../provider/MenubarContext.js');
18
+ require('../../provider/SnackbarProvider.js');
19
+ require('../../provider/CalendarProvider.js');
20
+ require('../../provider/ManagerContext.js');
21
+ require('../Popover/Context.js');
22
+ require('react-dropzone');
23
+ require('uuid');
24
+ require('@floating-ui/react');
25
+ require('currency.js');
26
+ require('../Calendar/CalendarCell.js');
27
+ require('react-icons/fa');
28
+ require('react-icons/io');
29
+ require('embla-carousel-react');
30
+ require('embla-carousel-autoplay');
31
+ require('../ColorPicker.js');
32
+ require('../DatePicker/DateSegment.js');
33
+ require('../DatePicker/DatePickerInputBase.js');
34
+ require('../GroupButton.js');
35
+ var index = require('../Input/index.js');
36
+ require('../Menubar/Left.js');
37
+ require('../../styles/menubar.js');
38
+ require('../Menubar/Right.js');
39
+ require('../Menubar/Dropdown.js');
40
+ require('../Menubar/MostUsed.js');
41
+ require('../Menubar/MostUsedItem.js');
42
+ require('../Menubar/Header.js');
43
+ require('../Menubar/Item.js');
44
+ require('../../provider/CategoriesContext.js');
45
+ require('../Menubar/SubItem.js');
46
+ require('../ProgressBar/Progress.js');
47
+ require('../RadioButton.js');
48
+ require('../Select/GroupedOptions.js');
49
+ require('../Select/context.js');
50
+ require('../Select/MultiGroupedOptions.js');
51
+ require('../Select/MultiOptions.js');
52
+ require('../Select/Options.js');
53
+ require('../Select/Trigger.js');
54
+ require('../../styles/stepNodeVariants.js');
55
+ require('../TextArea/Box.js');
56
+ require('../TextArea/Face.js');
57
+ require('../TextArea/Left.js');
58
+ require('../TextArea/Right.js');
59
+ require('../TextArea/Root.js');
60
+ require('../TimePicker/TimeFieldInput.js');
61
+ require('../Tooltip.js');
62
+ require('react-icons/hi2');
63
+ require('react-icons/fa6');
64
+ require('react-dom');
65
+ require('react-icons/io5');
66
+ require('../Autocomplete/context.js');
67
+ require('../Autocomplete/Options.js');
68
+ require('../Autocomplete/GroupedOptions.js');
69
+ var reactInternationalPhone = require('react-international-phone');
70
+ require('country-flag-icons/react/3x2');
71
+
72
+ const countries = reactInternationalPhone.defaultCountries.map((c) => {
73
+ return reactInternationalPhone.parseCountry(c);
74
+ });
75
+ const PhoneInputOptions = ({
76
+ hasSearch = true
77
+ }) => {
78
+ const { country, setCountry, setIsOpen } = context.usePhoneContext();
79
+ const [searchText, setSearchText] = React.useState("");
80
+ const filteredCountries = React.useMemo(() => {
81
+ return countries.filter(
82
+ (c) => c.iso2 !== country?.iso2 && (c.name.toLowerCase().includes(searchText.toLowerCase()) || c.dialCode.includes(searchText))
83
+ );
84
+ }, [country, searchText]);
85
+ const handleSelect = (country2) => {
86
+ setCountry?.(country2.iso2);
87
+ setIsOpen?.(false);
88
+ };
89
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full flex flex-col overflow-y-auto", children: [
90
+ hasSearch ? /* @__PURE__ */ jsxRuntime.jsx(
91
+ index.Input.Search,
92
+ {
93
+ onChange: (e) => setSearchText(e.target.value),
94
+ variants: { className: "mx-deca my-centi outline-none" }
95
+ }
96
+ ) : null,
97
+ country ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
98
+ /* @__PURE__ */ jsxRuntime.jsx(
99
+ Option.PhoneInputOption,
100
+ {
101
+ country,
102
+ handleSelectCountry: handleSelect,
103
+ disableClick: true
104
+ }
105
+ ),
106
+ /* @__PURE__ */ jsxRuntime.jsx(Divider.Divider, {})
107
+ ] }) : null,
108
+ filteredCountries.map((country2) => {
109
+ return /* @__PURE__ */ jsxRuntime.jsx(
110
+ Option.PhoneInputOption,
111
+ {
112
+ country: country2,
113
+ handleSelectCountry: handleSelect
114
+ },
115
+ `${country2.dialCode} ${country2.iso2}`
116
+ );
117
+ })
118
+ ] });
119
+ };
120
+
121
+ exports.PhoneInputOptions = PhoneInputOptions;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('@floating-ui/react');
5
+ var index = require('../Popover/index.js');
6
+ var context = require('./context.js');
7
+
8
+ const PhoneInputPopover = ({ children }) => {
9
+ const { triggerWidth } = context.usePhoneContext();
10
+ return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
11
+ index.Popover.Content,
12
+ {
13
+ className: "bg-white shadow-md rounded-md overflow-hidden h-full max-h-[30vh] outline-none z-9999",
14
+ style: {
15
+ width: triggerWidth ? `${triggerWidth}px` : "auto"
16
+ },
17
+ children
18
+ }
19
+ ) });
20
+ };
21
+
22
+ exports.PhoneInputPopover = PhoneInputPopover;
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var index = require('../Popover/index.js');
6
+ var clsx = require('clsx');
7
+ var reactInternationalPhone = require('react-international-phone');
8
+ var context = require('./context.js');
9
+
10
+ const PhoneInputRoot = ({
11
+ children,
12
+ className,
13
+ onChange,
14
+ ...rest
15
+ }) => {
16
+ const [triggerWidth, setTriggerWidth] = React.useState();
17
+ const [isOpen, setIsOpen] = React.useState(false);
18
+ const {
19
+ country,
20
+ handlePhoneValueChange,
21
+ inputRef,
22
+ inputValue,
23
+ phone,
24
+ setCountry
25
+ } = reactInternationalPhone.usePhoneInput({
26
+ countries: reactInternationalPhone.defaultCountries,
27
+ onChange: ({ phone: phone2, ...rest2 }) => {
28
+ onChange?.(phone2, { ...rest2 });
29
+ },
30
+ ...rest
31
+ });
32
+ return /* @__PURE__ */ jsxRuntime.jsx(
33
+ index.Popover.Root,
34
+ {
35
+ placement: "bottom-start",
36
+ controlled: true,
37
+ isOpen,
38
+ setIsOpen,
39
+ children: /* @__PURE__ */ jsxRuntime.jsx(
40
+ context.PhoneInputContext.Provider,
41
+ {
42
+ value: {
43
+ triggerWidth,
44
+ setTriggerWidth,
45
+ isOpen,
46
+ setIsOpen,
47
+ country,
48
+ setCountry,
49
+ handlePhoneValueChange,
50
+ inputValue,
51
+ phone,
52
+ inputRef
53
+ },
54
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx("relative w-full h-full", className), children })
55
+ }
56
+ )
57
+ }
58
+ );
59
+ };
60
+
61
+ exports.PhoneInputRoot = PhoneInputRoot;
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var io5 = require('react-icons/io5');
5
+ require('clsx');
6
+ var React = require('react');
7
+ require('../Accordion/context.js');
8
+ require('react-icons/lia');
9
+ require('@internationalized/date');
10
+ require('../Badge.js');
11
+ require('react-icons/md');
12
+ require('@tecsinapse/cortex-core');
13
+ require('react-aria');
14
+ require('react-stately');
15
+ require('../../provider/MenubarContext.js');
16
+ require('../../provider/SnackbarProvider.js');
17
+ require('../../provider/CalendarProvider.js');
18
+ require('../../provider/ManagerContext.js');
19
+ require('../Popover/Context.js');
20
+ require('react-dropzone');
21
+ require('uuid');
22
+ require('@floating-ui/react');
23
+ require('currency.js');
24
+ require('../Calendar/CalendarCell.js');
25
+ require('react-icons/fa');
26
+ require('react-icons/io');
27
+ require('embla-carousel-react');
28
+ require('embla-carousel-autoplay');
29
+ require('../ColorPicker.js');
30
+ require('../DatePicker/DateSegment.js');
31
+ var index = require('../Popover/index.js');
32
+ require('../DatePicker/DatePickerInputBase.js');
33
+ require('../GroupButton.js');
34
+ var index$1 = require('../Input/index.js');
35
+ require('../Menubar/Left.js');
36
+ require('../../styles/menubar.js');
37
+ require('../Menubar/Right.js');
38
+ require('../Menubar/Dropdown.js');
39
+ require('../Menubar/MostUsed.js');
40
+ require('../Menubar/MostUsedItem.js');
41
+ require('../Menubar/Header.js');
42
+ require('../Menubar/Item.js');
43
+ require('../../provider/CategoriesContext.js');
44
+ require('../Menubar/SubItem.js');
45
+ require('../ProgressBar/Progress.js');
46
+ require('../RadioButton.js');
47
+ require('../Select/GroupedOptions.js');
48
+ require('../Select/context.js');
49
+ require('../Select/MultiGroupedOptions.js');
50
+ require('../Select/MultiOptions.js');
51
+ require('../Select/Options.js');
52
+ require('../Select/Trigger.js');
53
+ require('../../styles/stepNodeVariants.js');
54
+ require('../TextArea/Box.js');
55
+ require('../TextArea/Face.js');
56
+ require('../TextArea/Left.js');
57
+ require('../TextArea/Right.js');
58
+ require('../TextArea/Root.js');
59
+ require('../TimePicker/TimeFieldInput.js');
60
+ require('../Tooltip.js');
61
+ require('react-icons/hi2');
62
+ require('react-icons/fa6');
63
+ require('react-dom');
64
+ require('../Autocomplete/context.js');
65
+ require('../Autocomplete/Options.js');
66
+ require('../Autocomplete/GroupedOptions.js');
67
+ require('./Options.js');
68
+ var context = require('./context.js');
69
+ require('react-international-phone');
70
+ var FlagIcon = require('./FlagIcon.js');
71
+
72
+ const PhoneInputTrigger = ({
73
+ disabled = false,
74
+ label,
75
+ ...rest
76
+ }) => {
77
+ const {
78
+ setIsOpen,
79
+ setTriggerWidth,
80
+ country,
81
+ handlePhoneValueChange,
82
+ inputValue
83
+ } = context.usePhoneContext();
84
+ const triggerRef = React.useRef(null);
85
+ React.useEffect(() => {
86
+ if (triggerRef.current && setTriggerWidth) {
87
+ const width = triggerRef.current.getBoundingClientRect().width;
88
+ setTriggerWidth(width);
89
+ }
90
+ }, [triggerRef.current, setTriggerWidth]);
91
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Popover.Trigger, { disabled, children: /* @__PURE__ */ jsxRuntime.jsxs(index$1.Input.Face, { ref: triggerRef, children: [
92
+ /* @__PURE__ */ jsxRuntime.jsx(
93
+ index$1.Input.Box,
94
+ {
95
+ value: inputValue,
96
+ onChange: handlePhoneValueChange,
97
+ label: label ?? "Insert a phone number",
98
+ ...rest
99
+ }
100
+ ),
101
+ /* @__PURE__ */ jsxRuntime.jsx(index$1.Input.Right, { children: /* @__PURE__ */ jsxRuntime.jsxs(
102
+ "div",
103
+ {
104
+ className: "flex items-center gap-1 cursor-pointer w-full",
105
+ onClick: () => setIsOpen?.(true),
106
+ children: [
107
+ country ? /* @__PURE__ */ jsxRuntime.jsx(FlagIcon.FlagIcon, { countryCode: country.iso2, className: "w-[25px]" }) : null,
108
+ /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronDown, { className: "h-full text-md" })
109
+ ]
110
+ }
111
+ ) })
112
+ ] }) });
113
+ };
114
+
115
+ exports.PhoneInputTrigger = PhoneInputTrigger;