@loja-integrada/admin-components 0.18.1 → 0.18.3

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.
@@ -10,11 +10,11 @@ var reactTable = require('react-table');
10
10
  var ReactTextMask = _interopDefault(require('react-text-mask'));
11
11
  var Select$1 = require('react-select');
12
12
  var Select$1__default = _interopDefault(Select$1);
13
- var ReactModal = _interopDefault(require('react-modal'));
14
13
  var reactToastify = require('react-toastify');
15
14
  var injectStyle = require('react-toastify/dist/inject-style');
16
15
  var Tippy = _interopDefault(require('@tippyjs/react'));
17
16
  var styled = _interopDefault(require('styled-components'));
17
+ var ReactModal = _interopDefault(require('react-modal'));
18
18
 
19
19
  function _extends() {
20
20
  _extends = Object.assign || function (target) {
@@ -2597,846 +2597,859 @@ var TableComponent = function TableComponent(_ref2) {
2597
2597
 
2598
2598
  var Table = /*#__PURE__*/React__default.memo(TableComponent);
2599
2599
 
2600
- var ItemWrapperClasses = "flex relative py-6 text-f7 leading-4 break-words no-underline";
2601
- var ItemWrapperClassesContainerHover = "before:hover:block before:hover:absolute before:hover:h-full before:hover:w-5 lg:before:hover:w-8 before:hover:top-0 before:hover:-left-5 lg:before:hover:-left-8 before:hover:bg-base-2 after:hover:block after:hover:absolute after:hover:h-full after:hover:w-5 lg:after:hover:w-8 after:hover:top-0 after:hover:-right-5 lg:after:hover:-right-8 after:hover:bg-base-2";
2600
+ var alertTypes = {
2601
+ success: {
2602
+ "class": 'bg-success-light border-success',
2603
+ icon: 'checkCircle',
2604
+ iconClass: 'text-success'
2605
+ },
2606
+ warning: {
2607
+ "class": 'bg-warning-light border-warning',
2608
+ icon: 'exclamationTriangle',
2609
+ iconClass: 'text-warning'
2610
+ },
2611
+ danger: {
2612
+ "class": 'bg-danger-light border-danger',
2613
+ icon: 'ban',
2614
+ iconClass: 'text-danger'
2615
+ },
2616
+ info: {
2617
+ "class": 'bg-base-1 border-inverted-2',
2618
+ icon: 'infoCircle',
2619
+ iconClass: 'text-inverted-2'
2620
+ },
2621
+ primary: {
2622
+ "class": 'bg-primary-light border-primary',
2623
+ icon: 'infoCircle',
2624
+ iconClass: 'text-primary'
2625
+ }
2626
+ };
2602
2627
 
2603
- var DefaultWrapper = function DefaultWrapper(props) {
2604
- var children = props.children,
2605
- restProps = _objectWithoutPropertiesLoose(props, ["children"]);
2628
+ var AlertComponent = function AlertComponent(_ref) {
2629
+ var _ref$type = _ref.type,
2630
+ type = _ref$type === void 0 ? 'info' : _ref$type,
2631
+ _ref$isOpen = _ref.isOpen,
2632
+ isOpen = _ref$isOpen === void 0 ? true : _ref$isOpen,
2633
+ title = _ref.title,
2634
+ subtitle = _ref.subtitle,
2635
+ actions = _ref.actions,
2636
+ _ref$showClose = _ref.showClose,
2637
+ showClose = _ref$showClose === void 0 ? false : _ref$showClose,
2638
+ onClose = _ref.onClose,
2639
+ _ref$hideIcon = _ref.hideIcon,
2640
+ hideIcon = _ref$hideIcon === void 0 ? false : _ref$hideIcon,
2641
+ customIcon = _ref.customIcon;
2606
2642
 
2607
- return React__default.createElement("div", Object.assign({}, restProps), children);
2608
- };
2643
+ var _useState = React.useState(isOpen),
2644
+ alertIsOpen = _useState[0],
2645
+ setAlertIsOpen = _useState[1];
2609
2646
 
2610
- var TableListItemWrapper = function TableListItemWrapper(_ref) {
2611
- var _ref$Wrapper = _ref.Wrapper,
2612
- Wrapper = _ref$Wrapper === void 0 ? DefaultWrapper : _ref$Wrapper,
2613
- _ref$props = _ref.props,
2614
- props = _ref$props === void 0 ? {} : _ref$props,
2615
- children = _ref.children,
2616
- _ref$withHover = _ref.withHover,
2617
- withHover = _ref$withHover === void 0 ? false : _ref$withHover,
2618
- _ref$isInsideContaine = _ref.isInsideContainer,
2619
- isInsideContainer = _ref$isInsideContaine === void 0 ? false : _ref$isInsideContaine;
2620
- return React__default.createElement(Wrapper, Object.assign({
2621
- className: "table-item-wrapper " + ItemWrapperClasses + " " + (withHover ? "hover:bg-base-2 " + (isInsideContainer ? ItemWrapperClassesContainerHover : '') : '')
2622
- }, props), children);
2623
- };
2647
+ React.useEffect(function () {
2648
+ setAlertIsOpen(isOpen);
2649
+ }, [isOpen]);
2624
2650
 
2625
- var TableListItem = function TableListItem(_ref) {
2626
- var _ref$forceBorderDeskt = _ref.forceBorderDesktop,
2627
- forceBorderDesktop = _ref$forceBorderDeskt === void 0 ? false : _ref$forceBorderDeskt,
2628
- title = _ref.title,
2629
- description = _ref.description,
2630
- timestampTime = _ref.timestampTime,
2631
- timestampDate = _ref.timestampDate,
2632
- itemWrapper = _ref.itemWrapper,
2633
- itemWrapperProps = _ref.itemWrapperProps,
2634
- _ref$withHover = _ref.withHover,
2635
- withHover = _ref$withHover === void 0 ? false : _ref$withHover,
2636
- _ref$isInsideContaine = _ref.isInsideContainer,
2637
- isInsideContainer = _ref$isInsideContaine === void 0 ? false : _ref$isInsideContaine,
2638
- withIcon = _ref.withIcon,
2639
- append = _ref.append;
2651
+ var handleOnClose = function handleOnClose() {
2652
+ setAlertIsOpen(false);
2653
+ onClose == null ? void 0 : onClose();
2654
+ };
2655
+
2656
+ if (!alertIsOpen) return null;
2640
2657
  return React__default.createElement("div", {
2641
- className: "table-item border-primary-bold border-opacity-10 border-t first:border-t-0 " + (forceBorderDesktop ? 'lg:first:border-t' : '')
2642
- }, React__default.createElement(TableListItemWrapper, {
2643
- Wrapper: itemWrapper,
2644
- props: itemWrapperProps,
2645
- withHover: withHover,
2646
- isInsideContainer: isInsideContainer
2647
- }, withIcon && React__default.createElement("div", {
2648
- className: "table-item-icon flex items-center justify-center flex-none mr-4"
2658
+ className: "alert border border-l-4 py-4 px-5 rounded w-full relative flex items-start sm:items-center " + alertTypes[type]["class"]
2659
+ }, !hideIcon && React__default.createElement("div", {
2660
+ className: "alert-icon hidden sm:block flex-shrink-0 mr-3 " + alertTypes[type].iconClass
2661
+ }, React__default.createElement(Icon, {
2662
+ icon: customIcon ? customIcon : alertTypes[type].icon,
2663
+ size: 6
2664
+ })), React__default.createElement("div", {
2665
+ className: "flex-grow flex flex-col sm:flex-row items-start sm:items-center justify-between min-w-0"
2649
2666
  }, React__default.createElement("div", {
2650
- className: "table-item-icon-background h-8 w-8 flex items-center justify-center rounded " + (withIcon["class"] || '')
2667
+ className: "flex flex-col justify-center min-w-0 break-words text-f6 tracking-4 leading-5 text-on-base"
2668
+ }, React__default.createElement("span", {
2669
+ className: "alert-title font-semibold"
2670
+ }, title), subtitle && React__default.createElement("span", {
2671
+ className: "alert-subtitle mt-1"
2672
+ }, subtitle)), actions && React__default.createElement("div", {
2673
+ className: "alert-actions flex flex-shrink-0 items-center flex-row sm:flex-row-reverse sm:space-x-reverse space-x-3 mt-3 sm:mt-0 sm:ml-5"
2674
+ }, actions)), (showClose || onClose) && React__default.createElement("div", {
2675
+ className: "alert-close flex-shrink-0 flex ml-5"
2676
+ }, React__default.createElement("button", {
2677
+ className: "p-2 -m-2 text-inverted-2 hover:text-inverted-1",
2678
+ onClick: handleOnClose
2651
2679
  }, React__default.createElement(Icon, {
2652
- icon: withIcon.icon || 'minus',
2680
+ icon: "close",
2681
+ size: 4,
2653
2682
  block: true,
2654
- size: 5
2655
- }))), React__default.createElement("div", {
2656
- className: "table-item-content flex flex-col justify-center flex-auto gap-1.5 min-w-0 w-full"
2657
- }, React__default.createElement("div", {
2658
- className: "table-item-title text-f6 font-semibold"
2659
- }, title), description && React__default.createElement("div", {
2660
- className: "table-item-description"
2661
- }, description)), (timestampTime || timestampDate || append) && React__default.createElement("div", {
2662
- className: "table-item-timestamp-append flex flex-col justify-center items-end shrink-0 gap-1.5 ml-4 min-w-0 max-w-[50%] text-right"
2663
- }, timestampTime && React__default.createElement("div", {
2664
- className: "table-item-timestamp-time w-full"
2665
- }, timestampTime), timestampDate && React__default.createElement("div", {
2666
- className: "table-item-timestamp-date w-full hidden lg:block"
2667
- }, timestampDate), append && React__default.createElement("div", {
2668
- className: "table-item-append w-full"
2669
- }, append))));
2683
+ className: "mt-px sm:mt-0"
2684
+ }))));
2670
2685
  };
2671
2686
 
2672
- var TableListItemLoading = function TableListItemLoading(_ref) {
2673
- var _ref$forceBorderDeskt = _ref.forceBorderDesktop,
2674
- forceBorderDesktop = _ref$forceBorderDeskt === void 0 ? false : _ref$forceBorderDeskt;
2687
+ var Alert = /*#__PURE__*/React__default.memo(AlertComponent);
2688
+
2689
+ var statusTypes = {
2690
+ "default": 'bg-inverted-2',
2691
+ success: 'bg-success',
2692
+ warning: 'bg-warning',
2693
+ danger: 'bg-danger',
2694
+ dangerLight: 'bg-danger-light'
2695
+ };
2696
+
2697
+ var DescriptionComponent = function DescriptionComponent(_ref) {
2698
+ var description = _ref.description,
2699
+ inverted = _ref.inverted;
2700
+ return description && React__default.createElement("span", {
2701
+ className: "text-sm whitespace-normal break-words " + (inverted ? 'mr-2' : 'ml-2')
2702
+ }, description) || null;
2703
+ };
2704
+
2705
+ var StatusComponent = function StatusComponent(_ref2) {
2706
+ var _ref2$type = _ref2.type,
2707
+ type = _ref2$type === void 0 ? 'default' : _ref2$type,
2708
+ description = _ref2.description,
2709
+ _ref2$inverted = _ref2.inverted,
2710
+ inverted = _ref2$inverted === void 0 ? false : _ref2$inverted;
2675
2711
  return React__default.createElement("div", {
2676
- className: "table-item table-item-loading border-primary-bold border-opacity-10 border-t first:border-t-0 " + (forceBorderDesktop ? 'lg:first:border-t' : '')
2677
- }, React__default.createElement(TableListItemWrapper, null, React__default.createElement("div", {
2678
- className: "table-item-icon flex items-center justify-center flex-none mr-4"
2679
- }, React__default.createElement("div", {
2680
- className: "table-item-icon-background h-8 w-8 flex items-center justify-center rounded"
2681
- }, React__default.createElement(LoadingPlaceholder, {
2682
- className: "w-full"
2683
- }))), React__default.createElement("div", {
2684
- className: "table-item-content flex flex-col justify-center flex-auto gap-1.5 min-w-0 w-full"
2685
- }, React__default.createElement("div", {
2686
- className: "table-item-title text-f6 font-semibold"
2687
- }, React__default.createElement(LoadingPlaceholder, {
2688
- className: "w-2/3"
2689
- })), React__default.createElement("div", {
2690
- className: "table-item-description"
2691
- }, React__default.createElement(LoadingPlaceholder, {
2692
- className: "w-1/3"
2693
- }))), React__default.createElement("div", {
2694
- className: "table-item-timestamp flex flex-col justify-center items-end shrink-0 gap-1.5 ml-4 min-w-0 max-w-[50%] text-right"
2695
- }, React__default.createElement("div", {
2696
- className: "table-item-timestamp-time w-full"
2697
- }, React__default.createElement(LoadingPlaceholder, {
2698
- className: "w-16"
2699
- })))));
2712
+ className: "indicator-status inline-block whitespace-nowrap min-w-0"
2713
+ }, inverted && React__default.createElement(DescriptionComponent, {
2714
+ description: description,
2715
+ inverted: inverted
2716
+ }), React__default.createElement("span", {
2717
+ className: "inline-block rounded-full " + statusTypes[type],
2718
+ style: {
2719
+ padding: '0.313rem'
2720
+ }
2721
+ }), !inverted && React__default.createElement(DescriptionComponent, {
2722
+ description: description,
2723
+ inverted: inverted
2724
+ }));
2700
2725
  };
2701
2726
 
2702
- var groupTitleMobileClass = "before:block before:absolute before:h-0 before:w-5 before:-top-px before:-left-5 before:border-t before:border-primary-bold before:border-opacity-10 after:block after:absolute after:h-0 after:w-5 after:-top-px after:-right-5 after:border-t after:border-primary-bold after:border-opacity-10";
2727
+ var Status = /*#__PURE__*/React__default.memo(StatusComponent);
2703
2728
 
2704
- var TableListComponent = function TableListComponent(_ref) {
2705
- var _ref$className = _ref.className,
2729
+ var TagTypes = {
2730
+ neutral: 'bg-base-1 border-inverted-2',
2731
+ primary: 'bg-primary-light border-primary',
2732
+ danger: 'bg-danger-light border-danger',
2733
+ success: 'bg-success-light border-success',
2734
+ warning: 'bg-warning-light border-warning'
2735
+ };
2736
+
2737
+ var TagComponent = function TagComponent(_ref) {
2738
+ var _ref$type = _ref.type,
2739
+ type = _ref$type === void 0 ? 'neutral' : _ref$type,
2740
+ content = _ref.content,
2741
+ _ref$fullWidth = _ref.fullWidth,
2742
+ fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
2743
+ _ref$className = _ref.className,
2706
2744
  className = _ref$className === void 0 ? '' : _ref$className,
2707
- itemWrapper = _ref.itemWrapper,
2708
- _ref$items = _ref.items,
2709
- items = _ref$items === void 0 ? [] : _ref$items,
2710
- _ref$isLoading = _ref.isLoading,
2711
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
2712
- _ref$empty = _ref.empty,
2713
- empty = _ref$empty === void 0 ? {
2714
- title: 'Nenhum registro encontrado'
2715
- } : _ref$empty,
2716
- _ref$withHover = _ref.withHover,
2717
- withHover = _ref$withHover === void 0 ? false : _ref$withHover,
2718
- _ref$isInsideContaine = _ref.isInsideContainer,
2719
- isInsideContainer = _ref$isInsideContaine === void 0 ? false : _ref$isInsideContaine;
2720
- var itemsMemoized = React__default.useMemo(function () {
2721
- var groups = items.reduce(function (groups, item) {
2722
- var groupTitle = item.timestampDate || item.timestampTime || 'no_title';
2745
+ action = _ref.action;
2746
+ return React__default.createElement("div", {
2747
+ className: "tag " + (fullWidth ? 'flex' : 'inline-flex') + " items-center justify-between border rounded px-4 py-2 tracking-4 leading-6 text-f6 text-primary-bold " + TagTypes[type] + " " + className
2748
+ }, React__default.createElement("div", {
2749
+ className: "min-w-0 break-words -my-px"
2750
+ }, content), action && React__default.createElement("div", {
2751
+ className: "-my-px ml-3"
2752
+ }, action));
2753
+ };
2723
2754
 
2724
- if (!groups[groupTitle]) {
2725
- groups[groupTitle] = [];
2726
- }
2755
+ var Tag = /*#__PURE__*/React__default.memo(TagComponent);
2727
2756
 
2728
- groups[groupTitle].push(item);
2729
- return groups;
2730
- }, {});
2731
- return Object.keys(groups).map(function (groupTitle) {
2732
- return {
2733
- title: groupTitle,
2734
- items: groups[groupTitle]
2735
- };
2736
- });
2737
- }, [items]);
2738
- return React__default.createElement("div", {
2739
- className: "table-list tracking-tight " + className
2740
- }, isLoading ? React__default.createElement("div", {
2741
- className: "table-list-loading"
2742
- }, React__default.createElement(TableListItemLoading, null), React__default.createElement(TableListItemLoading, null), React__default.createElement(TableListItemLoading, null), React__default.createElement(TableListItemLoading, null)) : !itemsMemoized || !itemsMemoized.length ? React__default.createElement("div", {
2743
- className: "table-list-empty flex flex-col items-center justify-center gap-5 min-h-[40vh] lg:min-h-[60vh] max-w-sm mx-auto px-4"
2744
- }, empty.illustration && React__default.createElement("div", {
2745
- className: "table-list-empty-illustration text-center"
2746
- }, empty.illustration), React__default.createElement("div", {
2747
- className: "table-list-empty-title text-center text-f4 font-semibold text-primary-bold leading-7"
2748
- }, empty.title), empty.subTitle && React__default.createElement("div", {
2749
- className: "table-list-empty-subtitle text-center text-f6 text-on-base-2 leading-6 -mt-1"
2750
- }, empty.subTitle), empty.action && React__default.createElement("div", {
2751
- className: "table-list-empty-action text-center"
2752
- }, empty.action)) : itemsMemoized.map(function (group, indexGroup) {
2753
- return React__default.createElement("div", {
2754
- key: "group-items-" + indexGroup,
2755
- className: "table-list-group"
2756
- }, group.title && group.title !== 'no_title' && React__default.createElement("div", {
2757
- className: "table-list-title relative lg:hidden border-primary-bold border-opacity-10 " + (indexGroup !== 0 ? "border-t " + (isInsideContainer ? groupTitleMobileClass : '') : '')
2758
- }, React__default.createElement("span", {
2759
- className: "text-f5 text-on-base-2 leading-4 break-words inline-block pt-6 pb-2"
2760
- }, group.title)), React__default.createElement("div", {
2761
- className: "group-items"
2762
- }, group.items.map(function (item, indexItem) {
2763
- return React__default.createElement(TableListItem, {
2764
- key: "group-item-" + indexItem,
2765
- forceBorderDesktop: indexItem === 0 && indexGroup !== 0,
2766
- title: item.title,
2767
- description: item.description,
2768
- timestampTime: item.timestampTime,
2769
- timestampDate: item.timestampDate,
2770
- itemWrapper: itemWrapper,
2771
- itemWrapperProps: item.itemWrapperProps,
2772
- withIcon: item.withIcon,
2773
- append: item.append,
2774
- withHover: withHover,
2775
- isInsideContainer: isInsideContainer
2776
- });
2777
- })));
2778
- }));
2757
+ var contextClass = {
2758
+ success: 'bg-primary-light border-primary-dark',
2759
+ error: 'bg-danger-light border-danger-dark',
2760
+ info: 'bg-secondary-light border-secondary',
2761
+ warning: 'bg-warning-light border-warning-dark',
2762
+ "default": '',
2763
+ dark: ''
2764
+ };
2765
+ var _progressClassName = {
2766
+ success: '!bg-primary-dark',
2767
+ error: '!bg-danger-dark',
2768
+ info: '!bg-secondary-dark',
2769
+ warning: '!bg-warning-dark',
2770
+ "default": '',
2771
+ dark: ''
2779
2772
  };
2780
2773
 
2781
- var TableList = /*#__PURE__*/React__default.memo(TableListComponent);
2774
+ var Container = function Container() {
2775
+ React.useEffect(function () {
2776
+ injectStyle.injectStyle();
2777
+ }, []);
2778
+ return React__default.createElement(reactToastify.ToastContainer, {
2779
+ toastClassName: function toastClassName(props) {
2780
+ return "mb-3 border flex items-top justify-between p-3 pb-4 pr-4 relative rounded shadow-md " + contextClass[(props == null ? void 0 : props.type) || 'info'];
2781
+ },
2782
+ bodyClassName: function bodyClassName() {
2783
+ return "max-w-[95%] text-sm text-on-base break-words";
2784
+ },
2785
+ progressClassName: function progressClassName(props) {
2786
+ return (props == null ? void 0 : props.defaultClassName) + " !h-1 " + _progressClassName[(props == null ? void 0 : props.type) || 'info'];
2787
+ },
2788
+ closeButton: function closeButton(_ref) {
2789
+ var closeToast = _ref.closeToast;
2790
+ return React__default.createElement("div", {
2791
+ className: "-mt-3 -mr-2 cursor-pointer text-on-base hover:text-on-base-2",
2792
+ onClick: closeToast
2793
+ }, React__default.createElement(Icon, {
2794
+ icon: "close",
2795
+ size: 3
2796
+ }));
2797
+ },
2798
+ position: "top-right"
2799
+ });
2800
+ };
2782
2801
 
2783
- var activeStyles = function activeStyles(active) {
2784
- return active ? "border-primary font-semibold" : "border-transparent";
2785
- }; // When using bold at hover, prevent text shift
2802
+ var notify = function notify(content, options) {
2803
+ var type = (options == null ? void 0 : options.type) || 'info';
2804
+ var autoClose = !(typeof (options == null ? void 0 : options.autoClose) === 'boolean') ? options == null ? void 0 : options.autoClose : (options == null ? void 0 : options.autoClose) && 5000;
2805
+ reactToastify.toast(content, _extends({}, options, {
2806
+ type: type,
2807
+ autoClose: autoClose
2808
+ }));
2809
+ };
2786
2810
 
2811
+ var Toast = {
2812
+ Container: Container,
2813
+ notify: notify
2814
+ };
2787
2815
 
2788
- var boldFixStyle = "before:content-[attr(data-title)] before:block before:font-semibold before:h-0 before:overflow-hidden before:visibility-hidden";
2789
- var disabledStyle = 'text-inverted-2 cursor-not-allowed';
2790
- var TabsItem = function TabsItem(_ref) {
2791
- var id = _ref.id,
2792
- title = _ref.title,
2793
- _ref$active = _ref.active,
2794
- active = _ref$active === void 0 ? false : _ref$active,
2795
- _ref$disabled = _ref.disabled,
2796
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
2797
- onChange = _ref.onChange;
2798
- return React__default.createElement("button", {
2799
- id: "btnTab" + id,
2800
- className: "tabs-item " + (active ? 'tabs-item-active' : '') + " group min-w-0 flex-shrink-0 overflow-x-hidden px-2 last:-mr-2 first:-ml-2 " + (disabled ? disabledStyle : ''),
2801
- onClick: function onClick() {
2802
- return onChange(id);
2803
- },
2804
- disabled: disabled
2816
+ var badgeTypes = {
2817
+ neutral: 'bg-inverted-2',
2818
+ primary: 'bg-primary-dark',
2819
+ danger: 'bg-danger-dark',
2820
+ success: 'bg-success-dark',
2821
+ warning: 'bg-warning-dark'
2822
+ };
2823
+ var badgeSizes = {
2824
+ "default": 'px-2 py-0.5 text-xs',
2825
+ small: 'px-1.5 text-[0.70rem]'
2826
+ };
2827
+
2828
+ var BadgeComponent = function BadgeComponent(_ref) {
2829
+ var _ref$type = _ref.type,
2830
+ type = _ref$type === void 0 ? 'neutral' : _ref$type,
2831
+ text = _ref.text,
2832
+ _ref$size = _ref.size,
2833
+ size = _ref$size === void 0 ? 'default' : _ref$size,
2834
+ _ref$expanded = _ref.expanded,
2835
+ expanded = _ref$expanded === void 0 ? false : _ref$expanded;
2836
+ return React__default.createElement("div", {
2837
+ className: "badge items-center justify-center rounded-full " + badgeTypes[type] + " " + badgeSizes[size] + " " + (expanded ? 'flex w-full' : 'inline-flex')
2805
2838
  }, React__default.createElement("span", {
2806
- className: "block tracking-4 text-f6 text-sm py-4 border-b-4 break-words " + (disabled ? '' : 'group-hover:font-semibold') + " " + activeStyles(active) + " " + boldFixStyle,
2807
- "data-title": title
2808
- }, title));
2839
+ className: "tracking-4 font-semibold text-base-1"
2840
+ }, text));
2809
2841
  };
2810
2842
 
2811
- var TabsComponent = function TabsComponent(_ref) {
2812
- var _ref$className = _ref.className,
2813
- className = _ref$className === void 0 ? '' : _ref$className,
2814
- items = _ref.items,
2815
- activeItem = _ref.activeItem,
2816
- onChange = _ref.onChange;
2843
+ var Badge = /*#__PURE__*/React__default.memo(BadgeComponent);
2817
2844
 
2818
- var _useState = React.useState(activeItem),
2819
- currentActiveItem = _useState[0],
2820
- setCurrentActiveItem = _useState[1];
2845
+ var _templateObject;
2821
2846
 
2822
- React.useEffect(function () {
2823
- setCurrentActiveItem(activeItem);
2824
- }, [activeItem]);
2847
+ var TooltipComponent = function TooltipComponent(props) {
2848
+ var _window;
2825
2849
 
2826
- var handleChange = function handleChange(id) {
2827
- if (id === currentActiveItem) return;
2828
- setCurrentActiveItem(id);
2829
- onChange == null ? void 0 : onChange(id);
2830
- };
2850
+ var _React$useState = React__default.useState(false),
2851
+ mounted = _React$useState[0],
2852
+ setMounted = _React$useState[1];
2831
2853
 
2832
- if (!items || !Array.isArray(items)) return null;
2833
- return React__default.createElement("div", {
2834
- className: "tabs w-full flex flex-nowrap overflow-x-auto bg-base-1 border-b border-card-stroke " + className
2835
- }, items == null ? void 0 : items.map(function (item, index) {
2836
- if (!item.id) {
2837
- item.id = encodeURI(item.title);
2854
+ var lazyPlugin = {
2855
+ fn: function fn() {
2856
+ return {
2857
+ onMount: function onMount() {
2858
+ return setMounted(true);
2859
+ },
2860
+ onHidden: function onHidden() {
2861
+ return setMounted(false);
2862
+ }
2863
+ };
2838
2864
  }
2865
+ };
2839
2866
 
2840
- return React__default.createElement(TabsItem, Object.assign({
2841
- key: "tab-item-" + index
2842
- }, item, {
2843
- onChange: handleChange,
2844
- active: currentActiveItem === item.id
2845
- }));
2846
- }));
2847
- };
2867
+ var computedProps = _extends({}, props);
2848
2868
 
2849
- var Tabs = /*#__PURE__*/React__default.memo(TabsComponent);
2869
+ computedProps.plugins = [lazyPlugin].concat(props.plugins || []);
2850
2870
 
2851
- var TimelineItem = function TimelineItem(_ref) {
2852
- var item = _ref.item;
2871
+ if (props.render) {
2872
+ var render = props.render;
2853
2873
 
2854
- var _useState = React.useState(!item.toggle),
2855
- isOpen = _useState[0],
2856
- setIsOpen = _useState[1];
2874
+ computedProps.render = function () {
2875
+ return mounted ? render.apply(void 0, arguments) : '';
2876
+ };
2877
+ } else {
2878
+ computedProps.content = mounted ? props.content : '';
2879
+ }
2857
2880
 
2858
- var iconBackgroundColor = item.iconBackgroundColor || "bg-inverted-2";
2859
- var icon = item.icon || 'minus';
2860
- var showToggle = item.toggle && item.description;
2861
- return React__default.createElement("li", {
2862
- className: "timeline-item relative mb-10 last:mb-0"
2863
- }, React__default.createElement("div", {
2864
- className: "timeline-badge absolute top-0 left-0 flex items-center justify-center text-base-1 w-8 h-8 -ml-3 rounded-full " + iconBackgroundColor
2865
- }, React__default.createElement(Icon, {
2866
- icon: icon,
2867
- size: 4
2868
- })), React__default.createElement("div", {
2869
- className: "ml-7 pt-px"
2870
- }, React__default.createElement("div", {
2871
- className: "timeline-title group py-1 text-f6 leading-6 tracking-4 text-inverted-1 font-semibold break-words " + (showToggle ? 'cursor-pointer' : ''),
2872
- onClick: function onClick() {
2873
- return showToggle && setIsOpen(function (isOpen) {
2874
- return !isOpen;
2875
- });
2876
- }
2877
- }, showToggle && React__default.createElement("button", {
2878
- className: "float-right p-1 -mt-px text-inverted-2 group-hover:text-inverted-1 focus:outline-none"
2879
- }, React__default.createElement(Icon, {
2880
- icon: "angleLeft",
2881
- size: 4,
2882
- className: "-mt-px transition-transform " + (isOpen ? 'rotate-90' : '-rotate-90'),
2883
- block: true
2884
- })), React__default.createElement("span", {
2885
- className: "inline break-words"
2886
- }, item.title)), item.timestamp && React__default.createElement("div", {
2887
- className: "timeline-timestamp mb-1 inline-flex items-center text-xs tracking-4 text-inverted-2 break-words"
2888
- }, React__default.createElement(Icon, {
2889
- icon: "clock",
2890
- size: 3,
2891
- className: "mr-1"
2892
- }), item.timestamp), item.description && React__default.createElement("div", {
2893
- className: "timeline-description mt-1 overflow-hidden text-sm tracking-4 text-inverted-1 break-words transition-max-height " + (isOpen ? 'max-h-96' : 'max-h-0')
2894
- }, item.description)));
2895
- };
2881
+ if (typeof window === 'undefined') {
2882
+ return React__default.createElement(React__default.Fragment, null, props.children);
2883
+ }
2896
2884
 
2897
- var TimelineComponent = function TimelineComponent(_ref) {
2898
- var _ref$className = _ref.className,
2899
- className = _ref$className === void 0 ? '' : _ref$className,
2900
- items = _ref.items,
2901
- _ref$isLoading = _ref.isLoading,
2902
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
2903
- _ref$toggleItems = _ref.toggleItems,
2904
- toggleItems = _ref$toggleItems === void 0 ? true : _ref$toggleItems,
2905
- _ref$emptyTitle = _ref.emptyTitle,
2906
- emptyTitle = _ref$emptyTitle === void 0 ? 'Nenhum registro encontrado' : _ref$emptyTitle;
2907
- if (!isLoading && (!items || !Array.isArray(items))) return null;
2908
- return React__default.createElement("div", {
2909
- className: "w-full bg-base-1 border border-card-stroke rounded p-6 " + className
2910
- }, React__default.createElement("ul", {
2911
- className: "timeline relative list-none py-10 -mt-6 -mb-6 ml-2"
2912
- }, React__default.createElement("li", {
2913
- className: "timeline-line absolute -left-px top-0 bottom-0 bg-card-stroke ml-1",
2914
- style: {
2915
- width: '2px'
2916
- }
2917
- }), isLoading ? React__default.createElement(TimelineItem, {
2918
- item: {
2919
- title: React__default.createElement(LoadingPlaceholder, {
2920
- className: "mt-px pt-px w-1/2"
2921
- }),
2922
- icon: 'loading'
2923
- }
2924
- }) : (items == null ? void 0 : items.length) === 0 ? React__default.createElement(TimelineItem, {
2925
- item: {
2926
- title: emptyTitle,
2927
- icon: 'ban'
2928
- }
2929
- }) : items == null ? void 0 : items.map(function (item, index) {
2930
- var _item$toggle;
2931
-
2932
- return React__default.createElement(TimelineItem, {
2933
- key: "timeline-item-" + index,
2934
- item: _extends({}, item, {
2935
- toggle: (_item$toggle = item.toggle) != null ? _item$toggle : toggleItems
2936
- })
2937
- });
2938
- })));
2939
- };
2940
-
2941
- var Timeline = /*#__PURE__*/React__default.memo(TimelineComponent);
2942
-
2943
- var sizeClasses$1 = {
2944
- small: 'sm:max-w-[600px]',
2945
- "default": 'sm:max-w-4xl',
2946
- large: 'sm:max-w-6xl'
2947
- };
2948
-
2949
- var ModalComponent = function ModalComponent(_ref) {
2950
- var _ref$className = _ref.className,
2951
- className = _ref$className === void 0 ? '' : _ref$className,
2952
- _ref$isOpen = _ref.isOpen,
2953
- isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
2954
- _ref$preventClose = _ref.preventClose,
2955
- preventClose = _ref$preventClose === void 0 ? false : _ref$preventClose,
2956
- _ref$size = _ref.size,
2957
- size = _ref$size === void 0 ? 'default' : _ref$size,
2958
- headerTitle = _ref.headerTitle,
2959
- _ref$headerClose = _ref.headerClose,
2960
- headerClose = _ref$headerClose === void 0 ? 'Fechar' : _ref$headerClose,
2961
- footerActions = _ref.footerActions,
2962
- onClose = _ref.onClose,
2963
- _ref$closeTimeout = _ref.closeTimeout,
2964
- closeTimeout = _ref$closeTimeout === void 0 ? 200 : _ref$closeTimeout,
2965
- _parentSelector = _ref.parentSelector,
2966
- children = _ref.children;
2967
-
2968
- var _useState = React.useState(false),
2969
- modalIsOpen = _useState[0],
2970
- setModalIsOpen = _useState[1];
2971
-
2972
- var _useState2 = React.useState(false),
2973
- modalPreventClose = _useState2[0],
2974
- setModalPreventClose = _useState2[1];
2975
-
2976
- React.useEffect(function () {
2977
- setModalIsOpen(isOpen);
2978
- setModalPreventClose(preventClose);
2979
- }, [isOpen, preventClose]);
2980
-
2981
- var handleRequestCloseFunc = function handleRequestCloseFunc() {
2982
- setModalIsOpen(false);
2983
- };
2984
-
2985
- var handleAfterCloseFunc = function handleAfterCloseFunc() {
2986
- onClose && onClose();
2987
- };
2988
-
2989
- return React__default.createElement(ReactModal, {
2990
- isOpen: modalIsOpen,
2991
- onAfterClose: handleAfterCloseFunc,
2992
- onRequestClose: handleRequestCloseFunc,
2993
- closeTimeoutMS: closeTimeout,
2994
- ariaHideApp: false,
2995
- shouldCloseOnOverlayClick: !modalPreventClose,
2996
- shouldCloseOnEsc: !modalPreventClose,
2997
- overlayClassName: "justify-center items-end sm:items-center flex overflow-hidden w-screen h-full fixed inset-0 z-50 outline-none bg-black bg-opacity-60 pt-16 sm:p-3 focus:outline-none transition " + (modalIsOpen ? 'opacity-100' : 'opacity-0'),
2998
- className: "relative max-h-full p-8 sm:p-10 rounded-t-xl sm:rounded-xl shadow-lg flex flex-col w-full bg-base-1 outline-none focus:outline-none border border-card-stroke break-words " + sizeClasses$1[size] + " " + className,
2999
- bodyOpenClassName: 'ReactModal__Body--open overflow-hidden',
3000
- testId: 'modal-component',
3001
- parentSelector: function parentSelector() {
3002
- return _parentSelector ? _parentSelector : document.body;
3003
- },
3004
- contentElement: function contentElement(props, children) {
3005
- return React__default.createElement("div", Object.assign({}, props), React__default.createElement("div", {
3006
- className: "ReactModal__header w-full flex justify-between items-start"
3007
- }, React__default.createElement("span", {
3008
- className: "min-w-0 text-inverted-2 text-xs font-semibold uppercase break-words " + (headerTitle ? 'pb-3' : '')
3009
- }, headerTitle), React__default.createElement("button", {
3010
- type: "button",
3011
- id: "btnCloseModal",
3012
- className: (preventClose ? 'hidden' : 'flex') + " items-center p-2 pb-1 -mr-2 -mt-3 text-sm font-semibold text-inverted-2 hover:text-inverted-1",
3013
- onClick: handleRequestCloseFunc
3014
- }, headerClose !== false && React__default.createElement("span", {
3015
- className: "pr-2"
3016
- }, headerClose), React__default.createElement(Icon, {
3017
- icon: "close",
3018
- size: 4
3019
- }))), React__default.createElement("div", {
3020
- className: "ReactModal__innerContent flex-auto overflow-x-auto min-w-0 break-words overscroll-none -mx-8 sm:-mx-10 px-8 sm:px-10"
3021
- }, children), footerActions && React__default.createElement("div", {
3022
- className: "ReactModal__footer pt-5"
3023
- }, footerActions));
3024
- }
3025
- }, children);
2885
+ return React__default.createElement(StyledTooltipComponent, Object.assign({}, computedProps, {
2886
+ appendTo: (props == null ? void 0 : props.appendTo) || 'parent',
2887
+ hideOnClick: (props == null ? void 0 : props.hideOnClick) || false,
2888
+ trigger: (props == null ? void 0 : props.trigger) || 'mouseenter',
2889
+ touch: (props == null ? void 0 : props.touch) || ['hold', 400],
2890
+ duration: (props == null ? void 0 : props.duration) || 150,
2891
+ placement: ((_window = window) == null ? void 0 : _window.innerWidth) < 1024 ? 'top' : (props == null ? void 0 : props.placement) || 'top',
2892
+ interactive: (props == null ? void 0 : props.interactive) || false,
2893
+ theme: (props == null ? void 0 : props.theme) || 'dark'
2894
+ }));
3026
2895
  };
3027
2896
 
3028
- var Modal = /*#__PURE__*/React__default.memo(ModalComponent);
3029
-
3030
- var backgroundShadowEffect = ['[background:linear-gradient(#FFFFFF_33%,rgba(255,255,255,0)),linear-gradient(rgba(255,255,255,0),#FFFFFF_66%)_0_100%,radial-gradient(farthest-side_at_50%_0,rgba(156,156,156,0.5),rgba(0,0,0,0)),radial-gradient(farthest-side_at_50%_100%,_rgba(156,156,156,0.5),rgba(0,0,0,0))_0_100%]', '[background-size:100%_15px,100%_15px,100%_5px,100%_5px]', '[background-attachment:local,local,scroll,scroll]', '[background-repeat:no-repeat]', '[background-color:#FFFFFF]', '[&_.form-group_.bg-base-1]:bg-transparent'];
3031
- var SidebarFixedComponent = function SidebarFixedComponent(_ref) {
3032
- var children = _ref.children,
3033
- footerActions = _ref.footerActions,
3034
- _ref$isOpen = _ref.isOpen,
3035
- isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
3036
- onClose = _ref.onClose,
3037
- helpLink = _ref.helpLink;
3038
-
3039
- var _useState = React.useState(false),
3040
- sidebarIsOpen = _useState[0],
3041
- setSidebarIsOpen = _useState[1];
3042
-
3043
- React.useEffect(function () {
3044
- setSidebarIsOpen(isOpen);
3045
- }, [isOpen]);
3046
-
3047
- var handleRequestCloseFunc = function handleRequestCloseFunc() {
3048
- setSidebarIsOpen(false);
3049
- onClose == null ? void 0 : onClose();
3050
- };
3051
-
3052
- return React__default.createElement("div", {
3053
- className: "sidebar-fixed fixed z-40 lg:z-20 right-0 bottom-0 w-full h-full transition-all overflow-x-hidden " + (sidebarIsOpen ? 'pointer-events-auto opacity-100' : 'opacity-0 pointer-events-none')
3054
- }, React__default.createElement("div", {
3055
- className: "sidebar-fixed-backdrop fixed inset-0 h-full w-full bg-black-alpha -z-1",
3056
- onClick: handleRequestCloseFunc
3057
- }), React__default.createElement("div", {
3058
- className: "sidebar-fixed-inner mt-10 sm:mt-0 top-0 bottom-0 right-0 absolute flex flex-col justify-between bg-base-1 transform transition-transform shadow h-auto w-full sm:max-w-[410px] sm:ml-16 rounded-t-lg sm:rounded-none " + (sidebarIsOpen ? 'translate-x-0' : 'translate-x-10')
3059
- }, React__default.createElement("div", {
3060
- className: "sidebar-fixed-header flex justify-between items-center p-3 lg:px-5 text-inverted-2"
3061
- }, React__default.createElement("button", {
3062
- className: "sidebar-fixed-close p-2 hover:text-primary transition-colors",
3063
- onClick: handleRequestCloseFunc
3064
- }, React__default.createElement(Icon, {
3065
- icon: "close",
3066
- block: true,
3067
- size: 4
3068
- })), helpLink && React__default.createElement("a", {
3069
- className: "sidebar-fixed-help p-2 hover:text-primary transition-colors",
3070
- href: helpLink,
3071
- target: "_blank",
3072
- rel: "noreferrer"
3073
- }, React__default.createElement(Icon, {
3074
- icon: "questionCircle",
3075
- block: true,
3076
- size: 4
3077
- }))), React__default.createElement("div", {
3078
- className: "sidebar-fixed-content flex-1 flex-grow w-full overflow-auto overscroll-none px-5 lg:px-7 break-words " + backgroundShadowEffect.join(' ')
3079
- }, children), footerActions && React__default.createElement("div", {
3080
- className: "sidebar-fixed-footer flex justify-between items-center p-5 lg:p-7 lg:pt-6"
3081
- }, footerActions)));
2897
+ var theme = {
2898
+ light: {
2899
+ background: '#fff',
2900
+ color: '#371E56'
2901
+ },
2902
+ dark: {
2903
+ background: '#371E56',
2904
+ color: '#fff'
2905
+ }
3082
2906
  };
3083
- var SidebarFixed = /*#__PURE__*/React__default.memo(SidebarFixedComponent);
2907
+ var StyledTooltipComponent = /*#__PURE__*/styled(Tippy)(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n --bg-color: ", ";\n position: relative;\n background-color: var(--bg-color);\n color: ", ";\n border-radius: 3px;\n font-size: 12px;\n letter-spacing: -0.4px;\n line-height: 1.4;\n outline: 0;\n transition-property: transform, visibility, opacity;\n\n &[data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n }\n\n [data-tippy-root] {\n max-width: calc(100vw - 10px);\n }\n\n &[data-placement^='top'] > .tippy-arrow {\n bottom: 0;\n }\n\n &[data-placement^='top'] > .tippy-arrow:before {\n bottom: -7px;\n left: 0;\n border-width: 8px 8px 0;\n border-top-color: initial;\n transform-origin: center top;\n }\n\n &[data-placement^='bottom'] > .tippy-arrow {\n top: 0;\n }\n\n &[data-placement^='bottom'] > .tippy-arrow:before {\n top: -7px;\n left: 0;\n border-width: 0 8px 8px;\n border-bottom-color: initial;\n transform-origin: center bottom;\n }\n\n &[data-placement^='left'] > .tippy-arrow {\n right: 0;\n }\n\n &[data-placement^='left'] > .tippy-arrow:before {\n border-width: 8px 0 8px 8px;\n border-left-color: initial;\n right: -7px;\n transform-origin: center left;\n }\n\n &[data-placement^='right'] > .tippy-arrow {\n left: 0;\n }\n\n &[data-placement^='right'] > .tippy-arrow:before {\n left: -7px;\n border-width: 8px 8px 8px 0;\n border-right-color: initial;\n transform-origin: center right;\n }\n\n &[data-inertia][data-state='visible'] {\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\n }\n\n .tippy-arrow {\n width: 15px;\n height: 15px;\n color: var(--bg-color);\n }\n\n .tippy-arrow:before {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n\n .tippy-content {\n position: relative;\n padding: 12px 8px;\n z-index: 1;\n }\n"])), function (props) {
2908
+ return theme[props.theme].background;
2909
+ }, function (props) {
2910
+ return theme[props.theme].color;
2911
+ });
2912
+ var Tooltip = /*#__PURE__*/React__default.memo(TooltipComponent);
3084
2913
 
3085
- var alertTypes = {
3086
- success: {
2914
+ var InformationBoxTypes = {
2915
+ tip: {
2916
+ title: 'Dica!',
3087
2917
  "class": 'bg-success-light border-success',
3088
- icon: 'checkCircle',
2918
+ icon: 'lightbulb',
3089
2919
  iconClass: 'text-success'
3090
2920
  },
3091
2921
  warning: {
2922
+ title: 'Atenção!',
3092
2923
  "class": 'bg-warning-light border-warning',
3093
2924
  icon: 'exclamationTriangle',
3094
2925
  iconClass: 'text-warning'
3095
2926
  },
3096
2927
  danger: {
2928
+ title: 'Cuidado!',
3097
2929
  "class": 'bg-danger-light border-danger',
3098
2930
  icon: 'ban',
3099
2931
  iconClass: 'text-danger'
3100
- },
3101
- info: {
3102
- "class": 'bg-base-1 border-inverted-2',
3103
- icon: 'infoCircle',
3104
- iconClass: 'text-inverted-2'
3105
- },
3106
- primary: {
3107
- "class": 'bg-primary-light border-primary',
3108
- icon: 'infoCircle',
3109
- iconClass: 'text-primary'
3110
2932
  }
3111
2933
  };
3112
2934
 
3113
- var AlertComponent = function AlertComponent(_ref) {
2935
+ var InformationBoxComponent = function InformationBoxComponent(_ref) {
3114
2936
  var _ref$type = _ref.type,
3115
- type = _ref$type === void 0 ? 'info' : _ref$type,
3116
- _ref$isOpen = _ref.isOpen,
3117
- isOpen = _ref$isOpen === void 0 ? true : _ref$isOpen,
3118
- title = _ref.title,
3119
- subtitle = _ref.subtitle,
3120
- actions = _ref.actions,
3121
- _ref$showClose = _ref.showClose,
3122
- showClose = _ref$showClose === void 0 ? false : _ref$showClose,
3123
- onClose = _ref.onClose,
3124
- _ref$hideIcon = _ref.hideIcon,
3125
- hideIcon = _ref$hideIcon === void 0 ? false : _ref$hideIcon,
3126
- customIcon = _ref.customIcon;
3127
-
3128
- var _useState = React.useState(isOpen),
3129
- alertIsOpen = _useState[0],
3130
- setAlertIsOpen = _useState[1];
3131
-
3132
- React.useEffect(function () {
3133
- setAlertIsOpen(isOpen);
3134
- }, [isOpen]);
3135
-
3136
- var handleOnClose = function handleOnClose() {
3137
- setAlertIsOpen(false);
3138
- onClose == null ? void 0 : onClose();
3139
- };
3140
-
3141
- if (!alertIsOpen) return null;
2937
+ type = _ref$type === void 0 ? 'tip' : _ref$type,
2938
+ subtitle = _ref.subtitle;
3142
2939
  return React__default.createElement("div", {
3143
- className: "alert border border-l-4 py-4 px-5 rounded w-full relative flex items-start sm:items-center " + alertTypes[type]["class"]
3144
- }, !hideIcon && React__default.createElement("div", {
3145
- className: "alert-icon hidden sm:block flex-shrink-0 mr-3 " + alertTypes[type].iconClass
2940
+ className: "InformationBox pl-4 pr-6 pt-5 pb-6 rounded w-full relative flex items-start mb-3 " + InformationBoxTypes[type]["class"]
2941
+ }, React__default.createElement("div", {
2942
+ className: "w-10 h-10 flex justify-center items-center flex-shrink-0 rounded-full mr-3 bg-base-1"
3146
2943
  }, React__default.createElement(Icon, {
3147
- icon: customIcon ? customIcon : alertTypes[type].icon,
3148
- size: 6
2944
+ icon: InformationBoxTypes[type].icon,
2945
+ className: "InformationBox-icon " + InformationBoxTypes[type].iconClass,
2946
+ size: 4
3149
2947
  })), React__default.createElement("div", {
3150
- className: "flex-grow flex flex-col sm:flex-row items-start sm:items-center justify-between min-w-0"
2948
+ className: "flex-grow flex flex-col sm:flex-row items-start justify-between min-w-0"
3151
2949
  }, React__default.createElement("div", {
3152
- className: "flex flex-col justify-center min-w-0 break-words text-f6 tracking-4 leading-5 text-on-base"
2950
+ className: "flex flex-col justify-center min-w-0 break-words tracking-4 leading-6 text-on-base"
3153
2951
  }, React__default.createElement("span", {
3154
- className: "alert-title font-semibold"
3155
- }, title), subtitle && React__default.createElement("span", {
3156
- className: "alert-subtitle mt-1"
3157
- }, subtitle)), actions && React__default.createElement("div", {
3158
- className: "alert-actions flex flex-shrink-0 items-center flex-row sm:flex-row-reverse sm:space-x-reverse space-x-3 mt-3 sm:mt-0 sm:ml-5"
3159
- }, actions)), (showClose || onClose) && React__default.createElement("div", {
3160
- className: "alert-close flex-shrink-0 flex ml-5"
3161
- }, React__default.createElement("button", {
3162
- className: "p-2 -m-2 text-inverted-2 hover:text-inverted-1",
3163
- onClick: handleOnClose
3164
- }, React__default.createElement(Icon, {
3165
- icon: "close",
3166
- size: 4,
3167
- block: true,
3168
- className: "mt-px sm:mt-0"
3169
- }))));
2952
+ className: "InformationBox-title text-f5 font-bold " + InformationBoxTypes[type].iconClass
2953
+ }, InformationBoxTypes[type].title), subtitle && React__default.createElement("span", {
2954
+ className: "InformationBox-subtitle text-f6 font-regular mt-1"
2955
+ }, subtitle))));
3170
2956
  };
3171
2957
 
3172
- var Alert = /*#__PURE__*/React__default.memo(AlertComponent);
2958
+ var InformationBox = /*#__PURE__*/React__default.memo(InformationBoxComponent);
3173
2959
 
3174
- var statusTypes = {
3175
- "default": 'bg-inverted-2',
3176
- success: 'bg-success',
3177
- warning: 'bg-warning',
3178
- danger: 'bg-danger',
3179
- dangerLight: 'bg-danger-light'
2960
+ var ItemWrapperClasses = "flex relative py-6 text-f7 leading-4 break-words no-underline";
2961
+ var ItemWrapperClassesContainerHover = "before:hover:block before:hover:absolute before:hover:h-full before:hover:w-5 lg:before:hover:w-8 before:hover:top-0 before:hover:-left-5 lg:before:hover:-left-8 before:hover:bg-base-2 after:hover:block after:hover:absolute after:hover:h-full after:hover:w-5 lg:after:hover:w-8 after:hover:top-0 after:hover:-right-5 lg:after:hover:-right-8 after:hover:bg-base-2";
2962
+
2963
+ var DefaultWrapper = function DefaultWrapper(props) {
2964
+ var children = props.children,
2965
+ restProps = _objectWithoutPropertiesLoose(props, ["children"]);
2966
+
2967
+ return React__default.createElement("div", Object.assign({}, restProps), children);
3180
2968
  };
3181
2969
 
3182
- var DescriptionComponent = function DescriptionComponent(_ref) {
3183
- var description = _ref.description,
3184
- inverted = _ref.inverted;
3185
- return description && React__default.createElement("span", {
3186
- className: "text-sm whitespace-normal break-words " + (inverted ? 'mr-2' : 'ml-2')
3187
- }, description) || null;
2970
+ var TableListItemWrapper = function TableListItemWrapper(_ref) {
2971
+ var _ref$Wrapper = _ref.Wrapper,
2972
+ Wrapper = _ref$Wrapper === void 0 ? DefaultWrapper : _ref$Wrapper,
2973
+ _ref$props = _ref.props,
2974
+ props = _ref$props === void 0 ? {} : _ref$props,
2975
+ children = _ref.children,
2976
+ _ref$withHover = _ref.withHover,
2977
+ withHover = _ref$withHover === void 0 ? false : _ref$withHover,
2978
+ _ref$isInsideContaine = _ref.isInsideContainer,
2979
+ isInsideContainer = _ref$isInsideContaine === void 0 ? false : _ref$isInsideContaine;
2980
+ return React__default.createElement(Wrapper, Object.assign({
2981
+ className: "table-item-wrapper " + ItemWrapperClasses + " " + (withHover ? "hover:bg-base-2 " + (isInsideContainer ? ItemWrapperClassesContainerHover : '') : '')
2982
+ }, props), children);
3188
2983
  };
3189
2984
 
3190
- var StatusComponent = function StatusComponent(_ref2) {
3191
- var _ref2$type = _ref2.type,
3192
- type = _ref2$type === void 0 ? 'default' : _ref2$type,
3193
- description = _ref2.description,
3194
- _ref2$inverted = _ref2.inverted,
3195
- inverted = _ref2$inverted === void 0 ? false : _ref2$inverted;
2985
+ var TableListItem = function TableListItem(_ref) {
2986
+ var _ref$forceBorderDeskt = _ref.forceBorderDesktop,
2987
+ forceBorderDesktop = _ref$forceBorderDeskt === void 0 ? false : _ref$forceBorderDeskt,
2988
+ title = _ref.title,
2989
+ description = _ref.description,
2990
+ timestampTime = _ref.timestampTime,
2991
+ timestampDate = _ref.timestampDate,
2992
+ itemWrapper = _ref.itemWrapper,
2993
+ itemWrapperProps = _ref.itemWrapperProps,
2994
+ _ref$withHover = _ref.withHover,
2995
+ withHover = _ref$withHover === void 0 ? false : _ref$withHover,
2996
+ _ref$isInsideContaine = _ref.isInsideContainer,
2997
+ isInsideContainer = _ref$isInsideContaine === void 0 ? false : _ref$isInsideContaine,
2998
+ withIcon = _ref.withIcon,
2999
+ append = _ref.append;
3196
3000
  return React__default.createElement("div", {
3197
- className: "indicator-status inline-block whitespace-nowrap min-w-0"
3198
- }, inverted && React__default.createElement(DescriptionComponent, {
3199
- description: description,
3200
- inverted: inverted
3201
- }), React__default.createElement("span", {
3202
- className: "inline-block rounded-full " + statusTypes[type],
3203
- style: {
3204
- padding: '0.313rem'
3205
- }
3206
- }), !inverted && React__default.createElement(DescriptionComponent, {
3207
- description: description,
3208
- inverted: inverted
3209
- }));
3001
+ className: "table-item border-primary-bold border-opacity-10 border-t first:border-t-0 " + (forceBorderDesktop ? 'lg:first:border-t' : '')
3002
+ }, React__default.createElement(TableListItemWrapper, {
3003
+ Wrapper: itemWrapper,
3004
+ props: itemWrapperProps,
3005
+ withHover: withHover,
3006
+ isInsideContainer: isInsideContainer
3007
+ }, withIcon && React__default.createElement("div", {
3008
+ className: "table-item-icon flex items-center justify-center flex-none mr-4"
3009
+ }, React__default.createElement("div", {
3010
+ className: "table-item-icon-background h-8 w-8 flex items-center justify-center rounded " + (withIcon["class"] || '')
3011
+ }, withIcon.tooltip ? React__default.createElement(Tooltip, {
3012
+ content: withIcon.tooltip.message,
3013
+ placement: withIcon.tooltip.placement
3014
+ }, React__default.createElement("span", null, React__default.createElement(Icon, {
3015
+ icon: withIcon.icon || 'minus',
3016
+ block: true,
3017
+ size: 5
3018
+ }))) : React__default.createElement(Icon, {
3019
+ icon: withIcon.icon || 'minus',
3020
+ block: true,
3021
+ size: 5
3022
+ }))), React__default.createElement("div", {
3023
+ className: "table-item-content flex flex-col justify-center flex-auto gap-1.5 min-w-0 w-full"
3024
+ }, React__default.createElement("div", {
3025
+ className: "table-item-title text-f6 font-semibold"
3026
+ }, title), description && React__default.createElement("div", {
3027
+ className: "table-item-description"
3028
+ }, description)), (timestampTime || timestampDate || append) && React__default.createElement("div", {
3029
+ className: "table-item-timestamp-append flex flex-col justify-center items-end shrink-0 gap-1.5 ml-4 min-w-0 max-w-[50%] text-right"
3030
+ }, timestampTime && React__default.createElement("div", {
3031
+ className: "table-item-timestamp-time w-full"
3032
+ }, timestampTime), timestampDate && React__default.createElement("div", {
3033
+ className: "table-item-timestamp-date w-full hidden lg:block"
3034
+ }, timestampDate), append && React__default.createElement("div", {
3035
+ className: "table-item-append w-full"
3036
+ }, append))));
3210
3037
  };
3211
3038
 
3212
- var Status = /*#__PURE__*/React__default.memo(StatusComponent);
3213
-
3214
- var TagTypes = {
3215
- neutral: 'bg-base-1 border-inverted-2',
3216
- primary: 'bg-primary-light border-primary',
3217
- danger: 'bg-danger-light border-danger',
3218
- success: 'bg-success-light border-success',
3219
- warning: 'bg-warning-light border-warning'
3039
+ var TableListItemLoading = function TableListItemLoading(_ref) {
3040
+ var _ref$forceBorderDeskt = _ref.forceBorderDesktop,
3041
+ forceBorderDesktop = _ref$forceBorderDeskt === void 0 ? false : _ref$forceBorderDeskt;
3042
+ return React__default.createElement("div", {
3043
+ className: "table-item table-item-loading border-primary-bold border-opacity-10 border-t first:border-t-0 " + (forceBorderDesktop ? 'lg:first:border-t' : '')
3044
+ }, React__default.createElement(TableListItemWrapper, null, React__default.createElement("div", {
3045
+ className: "table-item-icon flex items-center justify-center flex-none mr-4"
3046
+ }, React__default.createElement("div", {
3047
+ className: "table-item-icon-background h-8 w-8 flex items-center justify-center rounded"
3048
+ }, React__default.createElement(LoadingPlaceholder, {
3049
+ className: "w-full"
3050
+ }))), React__default.createElement("div", {
3051
+ className: "table-item-content flex flex-col justify-center flex-auto gap-1.5 min-w-0 w-full"
3052
+ }, React__default.createElement("div", {
3053
+ className: "table-item-title text-f6 font-semibold"
3054
+ }, React__default.createElement(LoadingPlaceholder, {
3055
+ className: "w-2/3"
3056
+ })), React__default.createElement("div", {
3057
+ className: "table-item-description"
3058
+ }, React__default.createElement(LoadingPlaceholder, {
3059
+ className: "w-1/3"
3060
+ }))), React__default.createElement("div", {
3061
+ className: "table-item-timestamp flex flex-col justify-center items-end shrink-0 gap-1.5 ml-4 min-w-0 max-w-[50%] text-right"
3062
+ }, React__default.createElement("div", {
3063
+ className: "table-item-timestamp-time w-full"
3064
+ }, React__default.createElement(LoadingPlaceholder, {
3065
+ className: "w-16"
3066
+ })))));
3220
3067
  };
3221
3068
 
3222
- var TagComponent = function TagComponent(_ref) {
3223
- var _ref$type = _ref.type,
3224
- type = _ref$type === void 0 ? 'neutral' : _ref$type,
3225
- content = _ref.content,
3226
- _ref$fullWidth = _ref.fullWidth,
3227
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
3228
- _ref$className = _ref.className,
3069
+ var groupTitleMobileClass = "before:block before:absolute before:h-0 before:w-5 before:-top-px before:-left-5 before:border-t before:border-primary-bold before:border-opacity-10 after:block after:absolute after:h-0 after:w-5 after:-top-px after:-right-5 after:border-t after:border-primary-bold after:border-opacity-10";
3070
+
3071
+ var TableListComponent = function TableListComponent(_ref) {
3072
+ var _ref$className = _ref.className,
3229
3073
  className = _ref$className === void 0 ? '' : _ref$className,
3230
- action = _ref.action;
3074
+ itemWrapper = _ref.itemWrapper,
3075
+ _ref$items = _ref.items,
3076
+ items = _ref$items === void 0 ? [] : _ref$items,
3077
+ _ref$isLoading = _ref.isLoading,
3078
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3079
+ _ref$empty = _ref.empty,
3080
+ empty = _ref$empty === void 0 ? {
3081
+ title: 'Nenhum registro encontrado'
3082
+ } : _ref$empty,
3083
+ _ref$withHover = _ref.withHover,
3084
+ withHover = _ref$withHover === void 0 ? false : _ref$withHover,
3085
+ _ref$isInsideContaine = _ref.isInsideContainer,
3086
+ isInsideContainer = _ref$isInsideContaine === void 0 ? false : _ref$isInsideContaine;
3087
+ var itemsMemoized = React__default.useMemo(function () {
3088
+ var groups = items.reduce(function (groups, item) {
3089
+ var groupTitle = item.timestampDate || item.timestampTime || 'no_title';
3090
+
3091
+ if (!groups[groupTitle]) {
3092
+ groups[groupTitle] = [];
3093
+ }
3094
+
3095
+ groups[groupTitle].push(item);
3096
+ return groups;
3097
+ }, {});
3098
+ return Object.keys(groups).map(function (groupTitle) {
3099
+ return {
3100
+ title: groupTitle,
3101
+ items: groups[groupTitle]
3102
+ };
3103
+ });
3104
+ }, [items]);
3231
3105
  return React__default.createElement("div", {
3232
- className: "tag " + (fullWidth ? 'flex' : 'inline-flex') + " items-center justify-between border rounded px-4 py-2 tracking-4 leading-6 text-f6 text-primary-bold " + TagTypes[type] + " " + className
3233
- }, React__default.createElement("div", {
3234
- className: "min-w-0 break-words -my-px"
3235
- }, content), action && React__default.createElement("div", {
3236
- className: "-my-px ml-3"
3237
- }, action));
3106
+ className: "table-list tracking-tight " + className
3107
+ }, isLoading ? React__default.createElement("div", {
3108
+ className: "table-list-loading"
3109
+ }, React__default.createElement(TableListItemLoading, null), React__default.createElement(TableListItemLoading, null), React__default.createElement(TableListItemLoading, null), React__default.createElement(TableListItemLoading, null)) : !itemsMemoized || !itemsMemoized.length ? React__default.createElement("div", {
3110
+ className: "table-list-empty flex flex-col items-center justify-center gap-5 min-h-[40vh] lg:min-h-[60vh] max-w-sm mx-auto px-4"
3111
+ }, empty.illustration && React__default.createElement("div", {
3112
+ className: "table-list-empty-illustration text-center"
3113
+ }, empty.illustration), React__default.createElement("div", {
3114
+ className: "table-list-empty-title text-center text-f4 font-semibold text-primary-bold leading-7"
3115
+ }, empty.title), empty.subTitle && React__default.createElement("div", {
3116
+ className: "table-list-empty-subtitle text-center text-f6 text-on-base-2 leading-6 -mt-1"
3117
+ }, empty.subTitle), empty.action && React__default.createElement("div", {
3118
+ className: "table-list-empty-action text-center"
3119
+ }, empty.action)) : itemsMemoized.map(function (group, indexGroup) {
3120
+ return React__default.createElement("div", {
3121
+ key: "group-items-" + indexGroup,
3122
+ className: "table-list-group"
3123
+ }, group.title && group.title !== 'no_title' && React__default.createElement("div", {
3124
+ className: "table-list-title relative lg:hidden border-primary-bold border-opacity-10 " + (indexGroup !== 0 ? "border-t " + (isInsideContainer ? groupTitleMobileClass : '') : '')
3125
+ }, React__default.createElement("span", {
3126
+ className: "text-f5 text-on-base-2 leading-4 break-words inline-block pt-6 pb-2"
3127
+ }, group.title)), React__default.createElement("div", {
3128
+ className: "group-items"
3129
+ }, group.items.map(function (item, indexItem) {
3130
+ return React__default.createElement(TableListItem, {
3131
+ key: "group-item-" + indexItem,
3132
+ forceBorderDesktop: indexItem === 0 && indexGroup !== 0,
3133
+ title: item.title,
3134
+ description: item.description,
3135
+ timestampTime: item.timestampTime,
3136
+ timestampDate: item.timestampDate,
3137
+ itemWrapper: itemWrapper,
3138
+ itemWrapperProps: item.itemWrapperProps,
3139
+ withIcon: item.withIcon,
3140
+ append: item.append,
3141
+ withHover: withHover,
3142
+ isInsideContainer: isInsideContainer
3143
+ });
3144
+ })));
3145
+ }));
3238
3146
  };
3239
3147
 
3240
- var Tag = /*#__PURE__*/React__default.memo(TagComponent);
3148
+ var TableList = /*#__PURE__*/React__default.memo(TableListComponent);
3241
3149
 
3242
- var contextClass = {
3243
- success: 'bg-primary-light border-primary-dark',
3244
- error: 'bg-danger-light border-danger-dark',
3245
- info: 'bg-secondary-light border-secondary',
3246
- warning: 'bg-warning-light border-warning-dark',
3247
- "default": '',
3248
- dark: ''
3249
- };
3250
- var _progressClassName = {
3251
- success: '!bg-primary-dark',
3252
- error: '!bg-danger-dark',
3253
- info: '!bg-secondary-dark',
3254
- warning: '!bg-warning-dark',
3255
- "default": '',
3256
- dark: ''
3150
+ var activeStyles = function activeStyles(active) {
3151
+ return active ? "border-primary font-semibold" : "border-transparent";
3152
+ }; // When using bold at hover, prevent text shift
3153
+
3154
+
3155
+ var boldFixStyle = "before:content-[attr(data-title)] before:block before:font-semibold before:h-0 before:overflow-hidden before:visibility-hidden";
3156
+ var disabledStyle = 'text-inverted-2 cursor-not-allowed';
3157
+ var TabsItem = function TabsItem(_ref) {
3158
+ var id = _ref.id,
3159
+ title = _ref.title,
3160
+ _ref$active = _ref.active,
3161
+ active = _ref$active === void 0 ? false : _ref$active,
3162
+ _ref$disabled = _ref.disabled,
3163
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
3164
+ onChange = _ref.onChange;
3165
+ return React__default.createElement("button", {
3166
+ id: "btnTab" + id,
3167
+ className: "tabs-item " + (active ? 'tabs-item-active' : '') + " group min-w-0 flex-shrink-0 overflow-x-hidden px-2 last:-mr-2 first:-ml-2 " + (disabled ? disabledStyle : ''),
3168
+ onClick: function onClick() {
3169
+ return onChange(id);
3170
+ },
3171
+ disabled: disabled
3172
+ }, React__default.createElement("span", {
3173
+ className: "block tracking-4 text-f6 text-sm py-4 border-b-4 break-words " + (disabled ? '' : 'group-hover:font-semibold') + " " + activeStyles(active) + " " + boldFixStyle,
3174
+ "data-title": title
3175
+ }, title));
3257
3176
  };
3258
3177
 
3259
- var Container = function Container() {
3178
+ var TabsComponent = function TabsComponent(_ref) {
3179
+ var _ref$className = _ref.className,
3180
+ className = _ref$className === void 0 ? '' : _ref$className,
3181
+ items = _ref.items,
3182
+ activeItem = _ref.activeItem,
3183
+ onChange = _ref.onChange;
3184
+
3185
+ var _useState = React.useState(activeItem),
3186
+ currentActiveItem = _useState[0],
3187
+ setCurrentActiveItem = _useState[1];
3188
+
3260
3189
  React.useEffect(function () {
3261
- injectStyle.injectStyle();
3262
- }, []);
3263
- return React__default.createElement(reactToastify.ToastContainer, {
3264
- toastClassName: function toastClassName(props) {
3265
- return "mb-3 border flex items-top justify-between p-3 pb-4 pr-4 relative rounded shadow-md " + contextClass[(props == null ? void 0 : props.type) || 'info'];
3266
- },
3267
- bodyClassName: function bodyClassName() {
3268
- return "max-w-[95%] text-sm text-on-base break-words";
3269
- },
3270
- progressClassName: function progressClassName(props) {
3271
- return (props == null ? void 0 : props.defaultClassName) + " !h-1 " + _progressClassName[(props == null ? void 0 : props.type) || 'info'];
3272
- },
3273
- closeButton: function closeButton(_ref) {
3274
- var closeToast = _ref.closeToast;
3275
- return React__default.createElement("div", {
3276
- className: "-mt-3 -mr-2 cursor-pointer text-on-base hover:text-on-base-2",
3277
- onClick: closeToast
3278
- }, React__default.createElement(Icon, {
3279
- icon: "close",
3280
- size: 3
3281
- }));
3282
- },
3283
- position: "top-right"
3284
- });
3190
+ setCurrentActiveItem(activeItem);
3191
+ }, [activeItem]);
3192
+
3193
+ var handleChange = function handleChange(id) {
3194
+ if (id === currentActiveItem) return;
3195
+ setCurrentActiveItem(id);
3196
+ onChange == null ? void 0 : onChange(id);
3197
+ };
3198
+
3199
+ if (!items || !Array.isArray(items)) return null;
3200
+ return React__default.createElement("div", {
3201
+ className: "tabs w-full flex flex-nowrap overflow-x-auto bg-base-1 border-b border-card-stroke " + className
3202
+ }, items == null ? void 0 : items.map(function (item, index) {
3203
+ if (!item.id) {
3204
+ item.id = encodeURI(item.title);
3205
+ }
3206
+
3207
+ return React__default.createElement(TabsItem, Object.assign({
3208
+ key: "tab-item-" + index
3209
+ }, item, {
3210
+ onChange: handleChange,
3211
+ active: currentActiveItem === item.id
3212
+ }));
3213
+ }));
3285
3214
  };
3286
3215
 
3287
- var notify = function notify(content, options) {
3288
- var type = (options == null ? void 0 : options.type) || 'info';
3289
- var autoClose = !(typeof (options == null ? void 0 : options.autoClose) === 'boolean') ? options == null ? void 0 : options.autoClose : (options == null ? void 0 : options.autoClose) && 5000;
3290
- reactToastify.toast(content, _extends({}, options, {
3291
- type: type,
3292
- autoClose: autoClose
3293
- }));
3216
+ var Tabs = /*#__PURE__*/React__default.memo(TabsComponent);
3217
+
3218
+ var TimelineItem = function TimelineItem(_ref) {
3219
+ var item = _ref.item;
3220
+
3221
+ var _useState = React.useState(!item.toggle),
3222
+ isOpen = _useState[0],
3223
+ setIsOpen = _useState[1];
3224
+
3225
+ var iconBackgroundColor = item.iconBackgroundColor || "bg-inverted-2";
3226
+ var iconColor = item.iconColor || "text-base-1";
3227
+ var icon = item.icon || 'minus';
3228
+ var showToggle = item.toggle && item.description;
3229
+ return React__default.createElement("li", {
3230
+ className: "timeline-item relative mb-10 last:mb-0"
3231
+ }, React__default.createElement("div", {
3232
+ className: "timeline-badge absolute top-0 left-0 flex items-center justify-center w-8 h-8 -ml-3 rounded-full " + iconBackgroundColor
3233
+ }, React__default.createElement(Icon, {
3234
+ icon: icon,
3235
+ size: 4,
3236
+ className: iconColor
3237
+ })), React__default.createElement("div", {
3238
+ className: "ml-7 pt-px"
3239
+ }, React__default.createElement("div", {
3240
+ className: "timeline-title group py-1 text-f6 leading-6 tracking-4 text-inverted-1 font-semibold break-words " + (showToggle ? 'cursor-pointer' : ''),
3241
+ onClick: function onClick() {
3242
+ return showToggle && setIsOpen(function (isOpen) {
3243
+ return !isOpen;
3244
+ });
3245
+ }
3246
+ }, showToggle && React__default.createElement("button", {
3247
+ className: "float-right p-1 -mt-px text-inverted-2 group-hover:text-inverted-1 focus:outline-none"
3248
+ }, React__default.createElement(Icon, {
3249
+ icon: "angleLeft",
3250
+ size: 4,
3251
+ className: "-mt-px transition-transform " + (isOpen ? 'rotate-90' : '-rotate-90'),
3252
+ block: true
3253
+ })), React__default.createElement("span", {
3254
+ className: "inline break-words"
3255
+ }, item.title)), item.timestamp && React__default.createElement("div", {
3256
+ className: "timeline-timestamp mb-1 inline-flex items-center text-xs tracking-4 text-inverted-2 break-words"
3257
+ }, React__default.createElement(Icon, {
3258
+ icon: "clock",
3259
+ size: 3,
3260
+ className: "mr-1"
3261
+ }), item.timestamp), item.description && React__default.createElement("div", {
3262
+ className: "timeline-description mt-1 overflow-hidden text-sm tracking-4 text-inverted-1 break-words transition-max-height " + (isOpen ? 'max-h-96' : 'max-h-0')
3263
+ }, item.description)));
3264
+ };
3265
+
3266
+ var TimelineComponent = function TimelineComponent(_ref) {
3267
+ var _ref$className = _ref.className,
3268
+ className = _ref$className === void 0 ? '' : _ref$className,
3269
+ items = _ref.items,
3270
+ _ref$isLoading = _ref.isLoading,
3271
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3272
+ _ref$toggleItems = _ref.toggleItems,
3273
+ toggleItems = _ref$toggleItems === void 0 ? true : _ref$toggleItems,
3274
+ _ref$emptyTitle = _ref.emptyTitle,
3275
+ emptyTitle = _ref$emptyTitle === void 0 ? 'Nenhum registro encontrado' : _ref$emptyTitle;
3276
+ if (!isLoading && (!items || !Array.isArray(items))) return null;
3277
+ return React__default.createElement("div", {
3278
+ className: "w-full bg-base-1 border border-card-stroke rounded p-6 " + className
3279
+ }, React__default.createElement("ul", {
3280
+ className: "timeline relative list-none py-10 -mt-6 -mb-6 ml-2"
3281
+ }, React__default.createElement("li", {
3282
+ className: "timeline-line absolute -left-px top-0 bottom-0 bg-card-stroke ml-1",
3283
+ style: {
3284
+ width: '2px'
3285
+ }
3286
+ }), isLoading ? React__default.createElement(TimelineItem, {
3287
+ item: {
3288
+ title: React__default.createElement(LoadingPlaceholder, {
3289
+ className: "mt-px pt-px w-1/2"
3290
+ }),
3291
+ icon: 'loading'
3292
+ }
3293
+ }) : (items == null ? void 0 : items.length) === 0 ? React__default.createElement(TimelineItem, {
3294
+ item: {
3295
+ title: emptyTitle,
3296
+ icon: 'ban'
3297
+ }
3298
+ }) : items == null ? void 0 : items.map(function (item, index) {
3299
+ var _item$toggle;
3300
+
3301
+ return React__default.createElement(TimelineItem, {
3302
+ key: "timeline-item-" + index,
3303
+ item: _extends({}, item, {
3304
+ toggle: (_item$toggle = item.toggle) != null ? _item$toggle : toggleItems
3305
+ })
3306
+ });
3307
+ })));
3294
3308
  };
3295
3309
 
3296
- var Toast = {
3297
- Container: Container,
3298
- notify: notify
3299
- };
3310
+ var Timeline = /*#__PURE__*/React__default.memo(TimelineComponent);
3300
3311
 
3301
- var badgeTypes = {
3302
- neutral: 'bg-inverted-2',
3303
- primary: 'bg-primary-dark',
3304
- danger: 'bg-danger-dark',
3305
- success: 'bg-success-dark',
3306
- warning: 'bg-warning-dark'
3307
- };
3308
- var badgeSizes = {
3309
- "default": 'px-2 py-0.5 text-xs',
3310
- small: 'px-1.5 text-[0.70rem]'
3312
+ var sizeClasses$1 = {
3313
+ small: 'sm:max-w-[600px]',
3314
+ "default": 'sm:max-w-4xl',
3315
+ large: 'sm:max-w-6xl'
3311
3316
  };
3312
3317
 
3313
- var BadgeComponent = function BadgeComponent(_ref) {
3314
- var _ref$type = _ref.type,
3315
- type = _ref$type === void 0 ? 'neutral' : _ref$type,
3316
- text = _ref.text,
3318
+ var ModalComponent = function ModalComponent(_ref) {
3319
+ var _ref$className = _ref.className,
3320
+ className = _ref$className === void 0 ? '' : _ref$className,
3321
+ _ref$isOpen = _ref.isOpen,
3322
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
3323
+ _ref$preventClose = _ref.preventClose,
3324
+ preventClose = _ref$preventClose === void 0 ? false : _ref$preventClose,
3317
3325
  _ref$size = _ref.size,
3318
3326
  size = _ref$size === void 0 ? 'default' : _ref$size,
3319
- _ref$expanded = _ref.expanded,
3320
- expanded = _ref$expanded === void 0 ? false : _ref$expanded;
3321
- return React__default.createElement("div", {
3322
- className: "badge items-center justify-center rounded-full " + badgeTypes[type] + " " + badgeSizes[size] + " " + (expanded ? 'flex w-full' : 'inline-flex')
3323
- }, React__default.createElement("span", {
3324
- className: "tracking-4 font-semibold text-base-1"
3325
- }, text));
3326
- };
3327
-
3328
- var Badge = /*#__PURE__*/React__default.memo(BadgeComponent);
3327
+ headerTitle = _ref.headerTitle,
3328
+ _ref$headerClose = _ref.headerClose,
3329
+ headerClose = _ref$headerClose === void 0 ? 'Fechar' : _ref$headerClose,
3330
+ footerActions = _ref.footerActions,
3331
+ onClose = _ref.onClose,
3332
+ _ref$closeTimeout = _ref.closeTimeout,
3333
+ closeTimeout = _ref$closeTimeout === void 0 ? 200 : _ref$closeTimeout,
3334
+ _parentSelector = _ref.parentSelector,
3335
+ children = _ref.children;
3329
3336
 
3330
- var _templateObject;
3337
+ var _useState = React.useState(false),
3338
+ modalIsOpen = _useState[0],
3339
+ setModalIsOpen = _useState[1];
3331
3340
 
3332
- var TooltipComponent = function TooltipComponent(props) {
3333
- var _window;
3341
+ var _useState2 = React.useState(false),
3342
+ modalPreventClose = _useState2[0],
3343
+ setModalPreventClose = _useState2[1];
3334
3344
 
3335
- var _React$useState = React__default.useState(false),
3336
- mounted = _React$useState[0],
3337
- setMounted = _React$useState[1];
3345
+ React.useEffect(function () {
3346
+ setModalIsOpen(isOpen);
3347
+ setModalPreventClose(preventClose);
3348
+ }, [isOpen, preventClose]);
3338
3349
 
3339
- var lazyPlugin = {
3340
- fn: function fn() {
3341
- return {
3342
- onMount: function onMount() {
3343
- return setMounted(true);
3344
- },
3345
- onHidden: function onHidden() {
3346
- return setMounted(false);
3347
- }
3348
- };
3349
- }
3350
+ var handleRequestCloseFunc = function handleRequestCloseFunc() {
3351
+ setModalIsOpen(false);
3350
3352
  };
3351
3353
 
3352
- var computedProps = _extends({}, props);
3354
+ var handleAfterCloseFunc = function handleAfterCloseFunc() {
3355
+ onClose && onClose();
3356
+ };
3353
3357
 
3354
- computedProps.plugins = [lazyPlugin].concat(props.plugins || []);
3358
+ return React__default.createElement(ReactModal, {
3359
+ isOpen: modalIsOpen,
3360
+ onAfterClose: handleAfterCloseFunc,
3361
+ onRequestClose: handleRequestCloseFunc,
3362
+ closeTimeoutMS: closeTimeout,
3363
+ ariaHideApp: false,
3364
+ shouldCloseOnOverlayClick: !modalPreventClose,
3365
+ shouldCloseOnEsc: !modalPreventClose,
3366
+ overlayClassName: "justify-center items-end sm:items-center flex overflow-hidden w-screen h-full fixed inset-0 z-50 outline-none bg-black bg-opacity-60 pt-16 sm:p-3 focus:outline-none transition " + (modalIsOpen ? 'opacity-100' : 'opacity-0'),
3367
+ className: "relative max-h-full p-8 sm:p-10 rounded-t-xl sm:rounded-xl shadow-lg flex flex-col w-full bg-base-1 outline-none focus:outline-none border border-card-stroke break-words " + sizeClasses$1[size] + " " + className,
3368
+ bodyOpenClassName: 'ReactModal__Body--open overflow-hidden',
3369
+ testId: 'modal-component',
3370
+ parentSelector: function parentSelector() {
3371
+ return _parentSelector ? _parentSelector : document.body;
3372
+ },
3373
+ contentElement: function contentElement(props, children) {
3374
+ return React__default.createElement("div", Object.assign({}, props), React__default.createElement("div", {
3375
+ className: "ReactModal__header w-full flex justify-between items-start"
3376
+ }, React__default.createElement("span", {
3377
+ className: "min-w-0 text-inverted-2 text-xs font-semibold uppercase break-words " + (headerTitle ? 'pb-3' : '')
3378
+ }, headerTitle), React__default.createElement("button", {
3379
+ type: "button",
3380
+ id: "btnCloseModal",
3381
+ className: (preventClose ? 'hidden' : 'flex') + " items-center p-2 pb-1 -mr-2 -mt-3 text-sm font-semibold text-inverted-2 hover:text-inverted-1",
3382
+ onClick: handleRequestCloseFunc
3383
+ }, headerClose !== false && React__default.createElement("span", {
3384
+ className: "pr-2"
3385
+ }, headerClose), React__default.createElement(Icon, {
3386
+ icon: "close",
3387
+ size: 4
3388
+ }))), React__default.createElement("div", {
3389
+ className: "ReactModal__innerContent flex-auto overflow-x-auto min-w-0 break-words overscroll-none -mx-8 sm:-mx-10 px-8 sm:px-10"
3390
+ }, children), footerActions && React__default.createElement("div", {
3391
+ className: "ReactModal__footer pt-5"
3392
+ }, footerActions));
3393
+ }
3394
+ }, children);
3395
+ };
3355
3396
 
3356
- if (props.render) {
3357
- var render = props.render;
3397
+ var Modal = /*#__PURE__*/React__default.memo(ModalComponent);
3358
3398
 
3359
- computedProps.render = function () {
3360
- return mounted ? render.apply(void 0, arguments) : '';
3361
- };
3362
- } else {
3363
- computedProps.content = mounted ? props.content : '';
3364
- }
3399
+ var backgroundShadowEffect = ['[background:linear-gradient(#FFFFFF_33%,rgba(255,255,255,0)),linear-gradient(rgba(255,255,255,0),#FFFFFF_66%)_0_100%,radial-gradient(farthest-side_at_50%_0,rgba(156,156,156,0.5),rgba(0,0,0,0)),radial-gradient(farthest-side_at_50%_100%,_rgba(156,156,156,0.5),rgba(0,0,0,0))_0_100%]', '[background-size:100%_15px,100%_15px,100%_5px,100%_5px]', '[background-attachment:local,local,scroll,scroll]', '[background-repeat:no-repeat]', '[background-color:#FFFFFF]', '[&_.form-group_.bg-base-1]:bg-transparent'];
3400
+ var SidebarFixedComponent = function SidebarFixedComponent(_ref) {
3401
+ var children = _ref.children,
3402
+ footerActions = _ref.footerActions,
3403
+ _ref$isOpen = _ref.isOpen,
3404
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
3405
+ onClose = _ref.onClose,
3406
+ helpLink = _ref.helpLink;
3365
3407
 
3366
- return React__default.createElement(StyledTooltipComponent, Object.assign({}, computedProps, {
3367
- appendTo: (props == null ? void 0 : props.appendTo) || 'parent',
3368
- hideOnClick: (props == null ? void 0 : props.hideOnClick) || false,
3369
- trigger: (props == null ? void 0 : props.trigger) || 'mouseenter',
3370
- touch: (props == null ? void 0 : props.touch) || ['hold', 400],
3371
- duration: (props == null ? void 0 : props.duration) || 150,
3372
- placement: ((_window = window) == null ? void 0 : _window.innerWidth) < 1024 ? 'top' : (props == null ? void 0 : props.placement) || 'top',
3373
- interactive: (props == null ? void 0 : props.interactive) || false,
3374
- theme: (props == null ? void 0 : props.theme) || 'dark'
3375
- }));
3376
- };
3408
+ var _useState = React.useState(false),
3409
+ sidebarIsOpen = _useState[0],
3410
+ setSidebarIsOpen = _useState[1];
3377
3411
 
3378
- var theme = {
3379
- light: {
3380
- background: '#fff',
3381
- color: '#371E56'
3382
- },
3383
- dark: {
3384
- background: '#371E56',
3385
- color: '#fff'
3386
- }
3387
- };
3388
- var StyledTooltipComponent = /*#__PURE__*/styled(Tippy)(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n --bg-color: ", ";\n position: relative;\n background-color: var(--bg-color);\n color: ", ";\n border-radius: 3px;\n font-size: 12px;\n letter-spacing: -0.4px;\n line-height: 1.4;\n outline: 0;\n transition-property: transform, visibility, opacity;\n\n &[data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n }\n\n [data-tippy-root] {\n max-width: calc(100vw - 10px);\n }\n\n &[data-placement^='top'] > .tippy-arrow {\n bottom: 0;\n }\n\n &[data-placement^='top'] > .tippy-arrow:before {\n bottom: -7px;\n left: 0;\n border-width: 8px 8px 0;\n border-top-color: initial;\n transform-origin: center top;\n }\n\n &[data-placement^='bottom'] > .tippy-arrow {\n top: 0;\n }\n\n &[data-placement^='bottom'] > .tippy-arrow:before {\n top: -7px;\n left: 0;\n border-width: 0 8px 8px;\n border-bottom-color: initial;\n transform-origin: center bottom;\n }\n\n &[data-placement^='left'] > .tippy-arrow {\n right: 0;\n }\n\n &[data-placement^='left'] > .tippy-arrow:before {\n border-width: 8px 0 8px 8px;\n border-left-color: initial;\n right: -7px;\n transform-origin: center left;\n }\n\n &[data-placement^='right'] > .tippy-arrow {\n left: 0;\n }\n\n &[data-placement^='right'] > .tippy-arrow:before {\n left: -7px;\n border-width: 8px 8px 8px 0;\n border-right-color: initial;\n transform-origin: center right;\n }\n\n &[data-inertia][data-state='visible'] {\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\n }\n\n .tippy-arrow {\n width: 15px;\n height: 15px;\n color: var(--bg-color);\n }\n\n .tippy-arrow:before {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n\n .tippy-content {\n position: relative;\n padding: 12px 8px;\n z-index: 1;\n }\n"])), function (props) {
3389
- return theme[props.theme].background;
3390
- }, function (props) {
3391
- return theme[props.theme].color;
3392
- });
3393
- var Tooltip = /*#__PURE__*/React__default.memo(TooltipComponent);
3412
+ React.useEffect(function () {
3413
+ setSidebarIsOpen(isOpen);
3414
+ }, [isOpen]);
3394
3415
 
3395
- var InformationBoxTypes = {
3396
- tip: {
3397
- title: 'Dica!',
3398
- "class": 'bg-success-light border-success',
3399
- icon: 'lightbulb',
3400
- iconClass: 'text-success'
3401
- },
3402
- warning: {
3403
- title: 'Atenção!',
3404
- "class": 'bg-warning-light border-warning',
3405
- icon: 'exclamationTriangle',
3406
- iconClass: 'text-warning'
3407
- },
3408
- danger: {
3409
- title: 'Cuidado!',
3410
- "class": 'bg-danger-light border-danger',
3411
- icon: 'ban',
3412
- iconClass: 'text-danger'
3413
- }
3414
- };
3416
+ var handleRequestCloseFunc = function handleRequestCloseFunc() {
3417
+ setSidebarIsOpen(false);
3418
+ onClose == null ? void 0 : onClose();
3419
+ };
3415
3420
 
3416
- var InformationBoxComponent = function InformationBoxComponent(_ref) {
3417
- var _ref$type = _ref.type,
3418
- type = _ref$type === void 0 ? 'tip' : _ref$type,
3419
- subtitle = _ref.subtitle;
3420
3421
  return React__default.createElement("div", {
3421
- className: "InformationBox pl-4 pr-6 pt-5 pb-6 rounded w-full relative flex items-start mb-3 " + InformationBoxTypes[type]["class"]
3422
+ className: "sidebar-fixed fixed z-40 lg:z-20 right-0 bottom-0 w-full h-full transition-all overflow-x-hidden " + (sidebarIsOpen ? 'pointer-events-auto opacity-100' : 'opacity-0 pointer-events-none')
3422
3423
  }, React__default.createElement("div", {
3423
- className: "w-10 h-10 flex justify-center items-center flex-shrink-0 rounded-full mr-3 bg-base-1"
3424
+ className: "sidebar-fixed-backdrop fixed inset-0 h-full w-full bg-black-alpha -z-1",
3425
+ onClick: handleRequestCloseFunc
3426
+ }), React__default.createElement("div", {
3427
+ className: "sidebar-fixed-inner mt-10 sm:mt-0 top-0 bottom-0 right-0 absolute flex flex-col justify-between bg-base-1 transform transition-transform shadow h-auto w-full sm:max-w-[410px] sm:ml-16 rounded-t-lg sm:rounded-none " + (sidebarIsOpen ? 'translate-x-0' : 'translate-x-10')
3428
+ }, React__default.createElement("div", {
3429
+ className: "sidebar-fixed-header flex justify-between items-center p-3 lg:px-5 text-inverted-2"
3430
+ }, React__default.createElement("button", {
3431
+ className: "sidebar-fixed-close p-2 hover:text-primary transition-colors",
3432
+ onClick: handleRequestCloseFunc
3424
3433
  }, React__default.createElement(Icon, {
3425
- icon: InformationBoxTypes[type].icon,
3426
- className: "InformationBox-icon " + InformationBoxTypes[type].iconClass,
3434
+ icon: "close",
3435
+ block: true,
3427
3436
  size: 4
3428
- })), React__default.createElement("div", {
3429
- className: "flex-grow flex flex-col sm:flex-row items-start justify-between min-w-0"
3430
- }, React__default.createElement("div", {
3431
- className: "flex flex-col justify-center min-w-0 break-words tracking-4 leading-6 text-on-base"
3432
- }, React__default.createElement("span", {
3433
- className: "InformationBox-title text-f5 font-bold " + InformationBoxTypes[type].iconClass
3434
- }, InformationBoxTypes[type].title), subtitle && React__default.createElement("span", {
3435
- className: "InformationBox-subtitle text-f6 font-regular mt-1"
3436
- }, subtitle))));
3437
+ })), helpLink && React__default.createElement("a", {
3438
+ className: "sidebar-fixed-help p-2 hover:text-primary transition-colors",
3439
+ href: helpLink,
3440
+ target: "_blank",
3441
+ rel: "noreferrer"
3442
+ }, React__default.createElement(Icon, {
3443
+ icon: "questionCircle",
3444
+ block: true,
3445
+ size: 4
3446
+ }))), React__default.createElement("div", {
3447
+ className: "sidebar-fixed-content flex-1 flex-grow w-full overflow-auto overscroll-none px-5 lg:px-7 break-words " + backgroundShadowEffect.join(' ')
3448
+ }, children), footerActions && React__default.createElement("div", {
3449
+ className: "sidebar-fixed-footer flex justify-between items-center p-5 lg:p-7 lg:pt-6"
3450
+ }, footerActions)));
3437
3451
  };
3438
-
3439
- var InformationBox = /*#__PURE__*/React__default.memo(InformationBoxComponent);
3452
+ var SidebarFixed = /*#__PURE__*/React__default.memo(SidebarFixedComponent);
3440
3453
 
3441
3454
  var SharedContext = /*#__PURE__*/React__default.createContext({
3442
3455
  variant: 'default',