@tecsinapse/cortex-react 2.2.1-beta.0 → 2.2.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Autocomplete/GroupedOptions.js +42 -0
- package/dist/cjs/components/Autocomplete/Option.js +40 -0
- package/dist/cjs/components/Autocomplete/Options.js +36 -0
- package/dist/cjs/components/Autocomplete/Popover.js +34 -0
- package/dist/cjs/components/Autocomplete/Root.js +40 -0
- package/dist/cjs/components/Autocomplete/Trigger.js +47 -0
- package/dist/cjs/components/Autocomplete/context.js +7 -0
- package/dist/cjs/components/Autocomplete/index.js +19 -0
- package/dist/cjs/components/PhoneInput/FlagIcon.js +46 -0
- package/dist/cjs/components/PhoneInput/Option.js +29 -0
- package/dist/cjs/components/PhoneInput/Options.js +121 -0
- package/dist/cjs/components/PhoneInput/Popover.js +22 -0
- package/dist/cjs/components/PhoneInput/Root.js +61 -0
- package/dist/cjs/components/PhoneInput/Trigger.js +115 -0
- package/dist/cjs/components/PhoneInput/context.js +19 -0
- package/dist/cjs/components/PhoneInput/index.js +17 -0
- package/dist/cjs/components/ScrollableDigitSelector.js +1 -1
- package/dist/cjs/components/TimePicker/TimePickerSelector.js +2 -2
- package/dist/cjs/components/Uploader/Files.js +1 -1
- package/dist/cjs/hooks/useAutocompleteGroupedOptions.js +35 -0
- package/dist/cjs/hooks/useAutocompleteOptions.js +35 -0
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/provider/ManagerContext.js +8 -0
- package/dist/cjs/service/SnackbarSonner.js +32 -0
- package/dist/cjs/styles/calendar-cell.js +3 -3
- package/dist/esm/components/Autocomplete/GroupedOptions.js +40 -0
- package/dist/esm/components/Autocomplete/Option.js +38 -0
- package/dist/esm/components/Autocomplete/Options.js +34 -0
- package/dist/esm/components/Autocomplete/Popover.js +32 -0
- package/dist/esm/components/Autocomplete/Root.js +38 -0
- package/dist/esm/components/Autocomplete/Trigger.js +45 -0
- package/dist/esm/components/Autocomplete/context.js +5 -0
- package/dist/esm/components/Autocomplete/index.js +17 -0
- package/dist/esm/components/PhoneInput/FlagIcon.js +25 -0
- package/dist/esm/components/PhoneInput/Option.js +27 -0
- package/dist/esm/components/PhoneInput/Options.js +119 -0
- package/dist/esm/components/PhoneInput/Popover.js +20 -0
- package/dist/esm/components/PhoneInput/Root.js +59 -0
- package/dist/esm/components/PhoneInput/Trigger.js +113 -0
- package/dist/esm/components/PhoneInput/context.js +16 -0
- package/dist/esm/components/PhoneInput/index.js +15 -0
- package/dist/esm/components/ScrollableDigitSelector.js +1 -1
- package/dist/esm/components/TimePicker/TimePickerSelector.js +2 -2
- package/dist/esm/components/Uploader/Files.js +1 -1
- package/dist/esm/hooks/useAutocompleteGroupedOptions.js +33 -0
- package/dist/esm/hooks/useAutocompleteOptions.js +33 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/provider/ManagerContext.js +8 -0
- package/dist/esm/service/SnackbarSonner.js +32 -0
- package/dist/esm/styles/calendar-cell.js +3 -3
- package/dist/types/components/Autocomplete/GroupedOptions.d.ts +2 -0
- package/dist/types/components/Autocomplete/Option.d.ts +2 -0
- package/dist/types/components/Autocomplete/Options.d.ts +2 -0
- package/dist/types/components/Autocomplete/Popover.d.ts +2 -0
- package/dist/types/components/Autocomplete/Root.d.ts +2 -0
- package/dist/types/components/Autocomplete/Trigger.d.ts +2 -0
- package/dist/types/components/Autocomplete/context.d.ts +10 -0
- package/dist/types/components/Autocomplete/index.d.ts +9 -0
- package/dist/types/components/Autocomplete/types.d.ts +50 -0
- package/dist/types/components/PhoneInput/FlagIcon.d.ts +8 -0
- package/dist/types/components/PhoneInput/Option.d.ts +6 -0
- package/dist/types/components/PhoneInput/Options.d.ts +3 -0
- package/dist/types/components/PhoneInput/Popover.d.ts +4 -0
- package/dist/types/components/PhoneInput/Root.d.ts +2 -0
- package/dist/types/components/PhoneInput/Trigger.d.ts +2 -0
- package/dist/types/components/PhoneInput/context.d.ts +15 -0
- package/dist/types/components/PhoneInput/index.d.ts +16 -0
- package/dist/types/components/PhoneInput/types.d.ts +13 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/hooks/useAutocompleteGroupedOptions.d.ts +9 -0
- package/dist/types/hooks/useAutocompleteOptions.d.ts +9 -0
- package/dist/types/hooks/useFileUpload.d.ts +4 -4
- package/dist/types/provider/ManagerContext.d.ts +1 -1
- package/dist/types/service/SnackbarSonner.d.ts +19 -0
- 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,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;
|