@snksergio/design-system 0.5.1 → 0.17.0
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/README.md +345 -293
- package/dist-lib/chunks/{app-shell-BdVam01i.cjs → app-shell-CPx9X7zP.cjs} +417 -307
- package/dist-lib/chunks/app-shell-CPx9X7zP.cjs.map +1 -0
- package/dist-lib/chunks/{app-shell-C_enrPD8.mjs → app-shell-Cy9be0Zx.mjs} +449 -340
- package/dist-lib/chunks/app-shell-Cy9be0Zx.mjs.map +1 -0
- package/dist-lib/chunks/app-shell-mocks-kWIVSzLs.mjs.map +1 -1
- package/dist-lib/chunks/app-shell-mocks-oO_IV3Gw.cjs.map +1 -1
- package/dist-lib/chunks/{badge-B0D_PRxn.mjs → badge-DBdk74KN.mjs} +89 -46
- package/dist-lib/chunks/badge-DBdk74KN.mjs.map +1 -0
- package/dist-lib/chunks/{badge-CUttkO1X.cjs → badge-gU2wtxrn.cjs} +88 -45
- package/dist-lib/chunks/badge-gU2wtxrn.cjs.map +1 -0
- package/dist-lib/chunks/chat-v2-mocks-BV9Wha_Z.cjs.map +1 -1
- package/dist-lib/chunks/chat-v2-mocks-DvZRkhmz.mjs.map +1 -1
- package/dist-lib/chunks/chip-group-2-f_Yo7Y.cjs.map +1 -1
- package/dist-lib/chunks/chip-group-_e-yh1Zq.mjs.map +1 -1
- package/dist-lib/chunks/{clientes-showcase-mocks-CPNOhx1G.cjs → clientes-showcase-mocks-DygUqkkh.cjs} +2 -2
- package/dist-lib/chunks/clientes-showcase-mocks-DygUqkkh.cjs.map +1 -0
- package/dist-lib/chunks/{clientes-showcase-mocks-DEHCKxMK.mjs → clientes-showcase-mocks-ayU1SDOA.mjs} +2 -2
- package/dist-lib/chunks/clientes-showcase-mocks-ayU1SDOA.mjs.map +1 -0
- package/dist-lib/chunks/{page-header-qOywgRWy.cjs → page-header-BZ-WrxV2.cjs} +4 -2
- package/dist-lib/chunks/page-header-BZ-WrxV2.cjs.map +1 -0
- package/dist-lib/chunks/{page-header-DM2G1mdi.mjs → page-header-CQbTGWQ8.mjs} +4 -2
- package/dist-lib/chunks/page-header-CQbTGWQ8.mjs.map +1 -0
- package/dist-lib/chunks/{panel-CCYNbXJR.mjs → panel-DZvENJfF.mjs} +6663 -4978
- package/dist-lib/chunks/panel-DZvENJfF.mjs.map +1 -0
- package/dist-lib/chunks/{panel-CSuFQHMl.cjs → panel-awQFDYLz.cjs} +6644 -4960
- package/dist-lib/chunks/panel-awQFDYLz.cjs.map +1 -0
- package/dist-lib/chunks/useTheme-BUPLZBMs.mjs.map +1 -1
- package/dist-lib/chunks/useTheme-Dee4mo-A.cjs.map +1 -1
- package/dist-lib/index.cjs +3592 -626
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +3667 -717
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/chat.cjs +1 -1
- package/dist-lib/preview/chat.cjs.map +1 -1
- package/dist-lib/preview/chat.mjs +1 -1
- package/dist-lib/preview/chat.mjs.map +1 -1
- package/dist-lib/preview/clientes.cjs +10 -9
- package/dist-lib/preview/clientes.cjs.map +1 -1
- package/dist-lib/preview/clientes.mjs +10 -9
- package/dist-lib/preview/clientes.mjs.map +1 -1
- package/dist-lib/preview/dashboard.cjs +4 -4
- package/dist-lib/preview/dashboard.cjs.map +1 -1
- package/dist-lib/preview/dashboard.mjs +4 -4
- package/dist-lib/preview/dashboard.mjs.map +1 -1
- package/dist-lib/preview/mocks.cjs +1 -1
- package/dist-lib/preview/mocks.mjs +1 -1
- package/dist-lib/src/components/index.d.ts +13 -7
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/shadcn/aspect-ratio.d.ts +4 -0
- package/dist-lib/src/components/shadcn/aspect-ratio.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/calendar.d.ts.map +1 -1
- package/dist-lib/src/components/shadcn/carousel.d.ts +19 -0
- package/dist-lib/src/components/shadcn/carousel.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/collapsible.d.ts +6 -0
- package/dist-lib/src/components/shadcn/collapsible.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/context-menu.d.ts +28 -0
- package/dist-lib/src/components/shadcn/context-menu.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/drawer.d.ts +23 -0
- package/dist-lib/src/components/shadcn/drawer.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/dropdown-menu.d.ts +8 -1
- package/dist-lib/src/components/shadcn/dropdown-menu.d.ts.map +1 -1
- package/dist-lib/src/components/shadcn/hover-card.d.ts +8 -0
- package/dist-lib/src/components/shadcn/hover-card.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/input-otp.d.ts +40 -0
- package/dist-lib/src/components/shadcn/input-otp.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/menubar.d.ts +29 -0
- package/dist-lib/src/components/shadcn/menubar.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/navigation-menu.d.ts +13 -0
- package/dist-lib/src/components/shadcn/navigation-menu.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/popover.d.ts +7 -0
- package/dist-lib/src/components/shadcn/popover.d.ts.map +1 -1
- package/dist-lib/src/components/shadcn/scroll-area.d.ts +11 -0
- package/dist-lib/src/components/shadcn/scroll-area.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/skeleton.d.ts +9 -0
- package/dist-lib/src/components/shadcn/skeleton.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/sonner.d.ts +15 -0
- package/dist-lib/src/components/shadcn/sonner.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/toggle-group.d.ts +13 -0
- package/dist-lib/src/components/shadcn/toggle-group.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/toggle.d.ts +13 -0
- package/dist-lib/src/components/shadcn/toggle.d.ts.map +1 -0
- package/dist-lib/src/components/shadcn/tooltip.d.ts +14 -0
- package/dist-lib/src/components/shadcn/tooltip.d.ts.map +1 -0
- package/dist-lib/src/components/ui/AppShell/app-shell.d.ts.map +1 -1
- package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts +1 -1
- package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/AppShell/user-menu.d.ts.map +1 -1
- package/dist-lib/src/components/ui/ButtonGroup/button-group.d.ts +10 -0
- package/dist-lib/src/components/ui/ButtonGroup/button-group.d.ts.map +1 -0
- package/dist-lib/src/components/ui/ButtonGroup/button-group.styles.d.ts +77 -0
- package/dist-lib/src/components/ui/ButtonGroup/button-group.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/ButtonGroup/button-group.types.d.ts +43 -0
- package/dist-lib/src/components/ui/ButtonGroup/button-group.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/ButtonGroup/index.d.ts +3 -0
- package/dist-lib/src/components/ui/ButtonGroup/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.d.ts +42 -0
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.d.ts.map +1 -0
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.styles.d.ts +72 -0
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/CardCheckbox/index.d.ts +5 -0
- package/dist-lib/src/components/ui/CardCheckbox/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Chart/chart.d.ts +80 -0
- package/dist-lib/src/components/ui/Chart/chart.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Chart/index.d.ts +3 -0
- package/dist-lib/src/components/ui/Chart/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Combobox/combobox.d.ts +15 -0
- package/dist-lib/src/components/ui/Combobox/combobox.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Combobox/combobox.styles.d.ts +62 -0
- package/dist-lib/src/components/ui/Combobox/combobox.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Combobox/combobox.types.d.ts +36 -0
- package/dist-lib/src/components/ui/Combobox/combobox.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Combobox/index.d.ts +3 -0
- package/dist-lib/src/components/ui/Combobox/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/data-list.d.ts +9 -0
- package/dist-lib/src/components/ui/DataList/data-list.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/data-list.types.d.ts +106 -0
- package/dist-lib/src/components/ui/DataList/data-list.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/hooks/use-data-list.d.ts +36 -0
- package/dist-lib/src/components/ui/DataList/hooks/use-data-list.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/index.d.ts +3 -0
- package/dist-lib/src/components/ui/DataList/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/parts/data-list-infinite.d.ts +16 -0
- package/dist-lib/src/components/ui/DataList/parts/data-list-infinite.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/parts/data-list-toolbar.d.ts +32 -0
- package/dist-lib/src/components/ui/DataList/parts/data-list-toolbar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/parts/data-list-virtualized.d.ts +23 -0
- package/dist-lib/src/components/ui/DataList/parts/data-list-virtualized.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataList/utils/apply-filter-model.d.ts +12 -0
- package/dist-lib/src/components/ui/DataList/utils/apply-filter-model.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/builders/column-builders.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/_filter-field.d.ts +19 -0
- package/dist-lib/src/components/ui/DataTable/column-types/_filter-field.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/_shared.d.ts +24 -0
- package/dist-lib/src/components/ui/DataTable/column-types/_shared.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/column-types/column-type-registry.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/badge-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/boolean-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/currency-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/date-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/datetime-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/multi-select-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/number-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/percentage-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/select-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/tags-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/text-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/column-types/definitions/user-column-type.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/data-table.constants.d.ts +21 -0
- package/dist-lib/src/components/ui/DataTable/data-table.constants.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/data-table.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/data-table.styles.d.ts +30 -36
- package/dist-lib/src/components/ui/DataTable/data-table.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/data-table.types.d.ts +163 -15
- package/dist-lib/src/components/ui/DataTable/data-table.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-data-table-columns.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-data-table-controller.d.ts +7 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-data-table-controller.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-data-table-export.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-data-table-query.d.ts +10 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-data-table-query.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-filter-popover-adapter.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/hooks/use-grab-to-scroll.d.ts +24 -0
- package/dist-lib/src/components/ui/DataTable/hooks/use-grab-to-scroll.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-cell-addons.d.ts +41 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-cell-addons.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-cell-addons.styles.d.ts +81 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-cell-addons.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-group-header-row.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/parts/data-table-row.d.ts +76 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-row.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-totalizer-row.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/parts/data-table-tree-toggle.d.ts +35 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-tree-toggle.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/utils/aggregate.d.ts +23 -0
- package/dist-lib/src/components/ui/DataTable/utils/aggregate.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/utils/calculate-column-widths.d.ts.map +1 -1
- package/dist-lib/src/components/ui/DataTable/utils/filter-ops.d.ts +41 -0
- package/dist-lib/src/components/ui/DataTable/utils/filter-ops.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/utils/tree-rows.d.ts +75 -0
- package/dist-lib/src/components/ui/DataTable/utils/tree-rows.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DatePicker/datepicker.d.ts +22 -0
- package/dist-lib/src/components/ui/DatePicker/datepicker.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DatePicker/index.d.ts +3 -0
- package/dist-lib/src/components/ui/DatePicker/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel-parts.d.ts +18 -0
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel-parts.d.ts.map +1 -0
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel.d.ts +7 -5
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel.d.ts.map +1 -1
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel.styles.d.ts +21 -0
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel.types.d.ts +8 -1
- package/dist-lib/src/components/ui/FloatingPanel/floating-panel.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/FloatingPanel/index.d.ts +2 -0
- package/dist-lib/src/components/ui/FloatingPanel/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/FormField/form-field-input.d.ts.map +1 -1
- package/dist-lib/src/components/ui/FormField/form-field-textarea.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Header/header-messages.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Header/header-notifications.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Header/header.types.d.ts +1 -1
- package/dist-lib/src/components/ui/Header/header.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Icon/icon.d.ts +11 -0
- package/dist-lib/src/components/ui/Icon/icon.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Icon/icon.styles.d.ts +60 -0
- package/dist-lib/src/components/ui/Icon/icon.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Icon/icon.types.d.ts +21 -0
- package/dist-lib/src/components/ui/Icon/icon.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Icon/icons.d.ts +2407 -0
- package/dist-lib/src/components/ui/Icon/icons.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Icon/index.d.ts +5 -0
- package/dist-lib/src/components/ui/Icon/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Kpi/index.d.ts +5 -0
- package/dist-lib/src/components/ui/Kpi/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Kpi/kpi-delta.d.ts +11 -0
- package/dist-lib/src/components/ui/Kpi/kpi-delta.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Kpi/kpi-group.d.ts +12 -0
- package/dist-lib/src/components/ui/Kpi/kpi-group.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Kpi/kpi.d.ts +11 -0
- package/dist-lib/src/components/ui/Kpi/kpi.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Kpi/kpi.styles.d.ts +159 -0
- package/dist-lib/src/components/ui/Kpi/kpi.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Kpi/kpi.types.d.ts +46 -0
- package/dist-lib/src/components/ui/Kpi/kpi.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/hooks/use-disclosure-set.d.ts +17 -0
- package/dist-lib/src/components/ui/List/hooks/use-disclosure-set.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/hooks/use-selection-set.d.ts +18 -0
- package/dist-lib/src/components/ui/List/hooks/use-selection-set.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/index.d.ts +4 -0
- package/dist-lib/src/components/ui/List/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/layouts/_sortable-item.d.ts +24 -0
- package/dist-lib/src/components/ui/List/layouts/_sortable-item.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/layouts/grouped-layout.d.ts +24 -0
- package/dist-lib/src/components/ui/List/layouts/grouped-layout.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/layouts/hierarchical-layout.d.ts +28 -0
- package/dist-lib/src/components/ui/List/layouts/hierarchical-layout.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/layouts/standard-layout.d.ts +19 -0
- package/dist-lib/src/components/ui/List/layouts/standard-layout.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/list-item.d.ts +29 -0
- package/dist-lib/src/components/ui/List/list-item.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/list.d.ts +15 -0
- package/dist-lib/src/components/ui/List/list.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/list.styles.d.ts +207 -0
- package/dist-lib/src/components/ui/List/list.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/list.types.d.ts +126 -0
- package/dist-lib/src/components/ui/List/list.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/utils/flatten-tree.d.ts +23 -0
- package/dist-lib/src/components/ui/List/utils/flatten-tree.d.ts.map +1 -0
- package/dist-lib/src/components/ui/List/utils/group-items.d.ts +13 -0
- package/dist-lib/src/components/ui/List/utils/group-items.d.ts.map +1 -0
- package/dist-lib/src/components/ui/MenuSidebar/menu-sidebar.d.ts.map +1 -1
- package/dist-lib/src/components/ui/MenuSidebar/sidebar-panel.d.ts +3 -1
- package/dist-lib/src/components/ui/MenuSidebar/sidebar-panel.d.ts.map +1 -1
- package/dist-lib/src/components/ui/MenuSidebar/sidebar.styles.d.ts +12 -0
- package/dist-lib/src/components/ui/MenuSidebar/sidebar.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/MenuSidebar/sidebar.types.d.ts +1 -1
- package/dist-lib/src/components/ui/MenuSidebar/sidebar.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/PageHeader/page-header.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Panel/index.d.ts +2 -1
- package/dist-lib/src/components/ui/Panel/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Panel/panel-header.d.ts +1 -1
- package/dist-lib/src/components/ui/Panel/panel-header.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Panel/panel.d.ts +2 -1
- package/dist-lib/src/components/ui/Panel/panel.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Panel/panel.styles.d.ts +12 -12
- package/dist-lib/src/components/ui/Panel/panel.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Panel/panel.types.d.ts +1 -1
- package/dist-lib/src/components/ui/Panel/panel.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/category.d.ts +6 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/category.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/command.d.ts +23 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/command.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/footer.d.ts +6 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/footer.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/header.d.ts +6 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/header.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/index.d.ts +3 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/menu-item.d.ts +6 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/menu-item.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/module-selector.d.ts +6 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/module-selector.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/search.d.ts +15 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/search.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.d.ts +6 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.styles.d.ts +204 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.d.ts +181 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/use-single-menu-sidebar.d.ts +22 -0
- package/dist-lib/src/components/ui/SingleMenuSidebar/use-single-menu-sidebar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabelaTeste/mock-data.d.ts +1 -1
- package/dist-lib/src/components/ui/TabelaTeste/mock-data.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Table/table-card-row.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Table/table.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Table/table.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/hooks/use-toolbar-filter-control.d.ts +40 -0
- package/dist-lib/src/components/ui/TableToolbar/hooks/use-toolbar-filter-control.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TableToolbar/hooks/use-toolbar-filters.d.ts +20 -13
- package/dist-lib/src/components/ui/TableToolbar/hooks/use-toolbar-filters.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/hooks/use-toolbar-sort.d.ts +17 -11
- package/dist-lib/src/components/ui/TableToolbar/hooks/use-toolbar-sort.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/index.d.ts +20 -8
- package/dist-lib/src/components/ui/TableToolbar/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/parts/table-toolbar-views.d.ts +9 -1
- package/dist-lib/src/components/ui/TableToolbar/parts/table-toolbar-views.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-actions.d.ts +60 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-actions.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-applied.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-filter-button.d.ts +18 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-filter-button.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-filter-control.d.ts +63 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-filter-control.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-mobile-sheet.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-settings-menu.d.ts +54 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-settings-menu.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-simple-filter-drawer.d.ts +47 -0
- package/dist-lib/src/components/ui/TableToolbar/parts/toolbar-simple-filter-drawer.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TableToolbar/popovers/add-view-modal.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/popovers/cols-popover.d.ts +10 -13
- package/dist-lib/src/components/ui/TableToolbar/popovers/cols-popover.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/popovers/filter-popover.d.ts +26 -26
- package/dist-lib/src/components/ui/TableToolbar/popovers/filter-popover.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/popovers/filter-sql-parser.d.ts +18 -22
- package/dist-lib/src/components/ui/TableToolbar/popovers/filter-sql-parser.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/popovers/more-menu.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/popovers/sort-popover.d.ts +10 -16
- package/dist-lib/src/components/ui/TableToolbar/popovers/sort-popover.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/table-toolbar.d.ts +33 -22
- package/dist-lib/src/components/ui/TableToolbar/table-toolbar.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/table-toolbar.styles.d.ts +2 -2
- package/dist-lib/src/components/ui/TableToolbar/table-toolbar.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TableToolbar/table-toolbar.types.d.ts +16 -3
- package/dist-lib/src/components/ui/TableToolbar/table-toolbar.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Toast/index.d.ts +4 -0
- package/dist-lib/src/components/ui/Toast/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Toast/toast-card.d.ts +35 -0
- package/dist-lib/src/components/ui/Toast/toast-card.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Toast/toast.styles.d.ts +102 -0
- package/dist-lib/src/components/ui/Toast/toast.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.d.ts +23 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/index.d.ts.map +1 -0
- package/dist-lib/src/lib/lucide-types.d.ts +9 -0
- package/dist-lib/src/lib/lucide-types.d.ts.map +1 -0
- package/dist-lib/src/preview/pages/ChatV2/chat-v2.types.d.ts +1 -1
- package/dist-lib/src/preview/pages/ChatV2/chat-v2.types.d.ts.map +1 -1
- package/dist-lib/src/preview/pages/ClientesShowcase/ClientesShowcase.d.ts.map +1 -1
- package/dist-lib/src/preview/pages/ClientesShowcase/clientes-showcase.styles.d.ts +1 -6
- package/dist-lib/src/preview/pages/ClientesShowcase/clientes-showcase.styles.d.ts.map +1 -1
- package/dist-lib/src/preview/pages/ClientesShowcase/components/DetailDrawer/detail-drawer.d.ts.map +1 -1
- package/dist-lib/src/preview/pages/ClientesShowcase/components/DetailDrawer/detail-drawer.styles.d.ts +3 -3
- package/dist-lib/src/utils/color-contrast.d.ts +48 -0
- package/dist-lib/src/utils/color-contrast.d.ts.map +1 -0
- package/dist-lib/theme.css +61 -24
- package/dist-lib/tokens/brands/default/components/spacing.d.ts +22 -0
- package/dist-lib/tokens/brands/default/components/spacing.d.ts.map +1 -1
- package/dist-lib/tokens/brands/default/semantic/color-dark.d.ts +20 -0
- package/dist-lib/tokens/brands/default/semantic/color-dark.d.ts.map +1 -1
- package/dist-lib/tokens/brands/default/semantic/color-light.d.ts +20 -0
- package/dist-lib/tokens/brands/default/semantic/color-light.d.ts.map +1 -1
- package/dist-lib/tokens/brands/default/semantic/elevation.d.ts +4 -4
- package/dist-lib/tokens/brands/default/semantic/elevation.d.ts.map +1 -1
- package/dist-lib/tokens.cjs +49 -4
- package/dist-lib/tokens.cjs.map +1 -1
- package/dist-lib/tokens.mjs +49 -4
- package/dist-lib/tokens.mjs.map +1 -1
- package/package.json +30 -9
- package/dist-lib/chunks/app-shell-BdVam01i.cjs.map +0 -1
- package/dist-lib/chunks/app-shell-C_enrPD8.mjs.map +0 -1
- package/dist-lib/chunks/badge-B0D_PRxn.mjs.map +0 -1
- package/dist-lib/chunks/badge-CUttkO1X.cjs.map +0 -1
- package/dist-lib/chunks/clientes-showcase-mocks-CPNOhx1G.cjs.map +0 -1
- package/dist-lib/chunks/clientes-showcase-mocks-DEHCKxMK.mjs.map +0 -1
- package/dist-lib/chunks/page-header-DM2G1mdi.mjs.map +0 -1
- package/dist-lib/chunks/page-header-qOywgRWy.cjs.map +0 -1
- package/dist-lib/chunks/panel-CCYNbXJR.mjs.map +0 -1
- package/dist-lib/chunks/panel-CSuFQHMl.cjs.map +0 -1
- package/dist-lib/src/components/ui/Avatar/avatar.d.ts +0 -16
- package/dist-lib/src/components/ui/Avatar/avatar.d.ts.map +0 -1
- package/dist-lib/src/components/ui/Avatar/avatar.styles.d.ts.map +0 -1
- package/dist-lib/src/components/ui/Avatar/avatar.types.d.ts.map +0 -1
- package/dist-lib/src/components/ui/Avatar/index.d.ts.map +0 -1
- package/dist-lib/src/components/ui/DataTable/utils/operator-mapping.d.ts +0 -6
- package/dist-lib/src/components/ui/DataTable/utils/operator-mapping.d.ts.map +0 -1
- /package/dist-lib/src/components/ui/{Avatar → avatar-ig}/avatar.styles.d.ts +0 -0
- /package/dist-lib/src/components/ui/{Avatar → avatar-ig}/avatar.types.d.ts +0 -0
- /package/dist-lib/src/components/ui/{Avatar → avatar-ig}/index.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.mjs","sources":["../../src/preview/pages/DashboardShowcase.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { useTheme, type Theme } from \"@/hooks/useTheme\";\r\nimport type { LucideIcon } from \"lucide-react\";\r\nimport {\r\n ArrowRight,\r\n ArrowUpRight,\r\n ArrowDownRight,\r\n Bot,\r\n Calendar,\r\n CheckCircle2,\r\n ChevronDown,\r\n Clock,\r\n Headphones,\r\n Mail,\r\n MessageSquare,\r\n MoreVertical,\r\n Phone,\r\n Search,\r\n Send,\r\n Star,\r\n Sun,\r\n Timer,\r\n TrendingUp,\r\n UserPlus,\r\n} from \"lucide-react\";\r\nimport {\r\n Bar,\r\n BarChart,\r\n CartesianGrid,\r\n Cell,\r\n Pie,\r\n PieChart,\r\n ResponsiveContainer,\r\n Tooltip,\r\n XAxis,\r\n YAxis,\r\n} from \"recharts\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { AppShell } from \"@/components/ui/AppShell\";\r\nimport { Button } from \"@/components/ui/Button/button\";\r\nimport { Chip } from \"@/components/ui/Chip\";\r\nimport { PageHeader } from \"@/components/ui/PageHeader\";\r\nimport { Avatar, AvatarFallback } from \"@/components/shadcn/avatar\";\r\nimport {\r\n APP_SHELL_CONTEXTS,\r\n APP_SHELL_COMMANDS,\r\n APP_SHELL_NOTIFICATIONS,\r\n APP_SHELL_MESSAGES,\r\n APP_SHELL_THEME_OPTIONS,\r\n} from \"../mocks/app-shell-mocks\";\r\n\r\n/* ─────────────────────────────────────────────────────────────\r\n * Tipos + mock data — call center + analytics\r\n * ───────────────────────────────────────────────────────────── */\r\n\r\ntype KpiTone = \"brand\" | \"success\" | \"warning\" | \"info\" | \"danger\" | \"neutral\";\r\n\r\ntype KpiCardData = {\r\n id: string;\r\n title: string;\r\n value: string;\r\n delta?: { value: string; direction: \"up\" | \"down\"; positive: boolean; label: string };\r\n icon: LucideIcon;\r\n tone: KpiTone;\r\n};\r\n\r\nconst KPIS_PRIMARY: KpiCardData[] = [\r\n { id: \"in-conv\", title: \"Em atendimento\", value: \"12\",\r\n delta: { value: \"+3\", direction: \"up\", positive: true, label: \"vs ontem\" },\r\n icon: Phone, tone: \"success\" },\r\n { id: \"waiting\", title: \"Em espera\", value: \"4\",\r\n delta: { value: \"+1\", direction: \"up\", positive: false, label: \"vs ontem\" },\r\n icon: Timer, tone: \"warning\" },\r\n { id: \"finished\", title: \"Resolvidos hoje\", value: \"87\",\r\n delta: { value: \"+12%\", direction: \"up\", positive: true, label: \"vs semana\" },\r\n icon: CheckCircle2, tone: \"info\" },\r\n { id: \"new\", title: \"Novos contatos\", value: \"260\",\r\n delta: { value: \"+24\", direction: \"up\", positive: true, label: \"vs ontem\" },\r\n icon: UserPlus, tone: \"brand\" },\r\n { id: \"talk\", title: \"Tempo médio atend.\", value: \"4m 32s\",\r\n delta: { value: \"-12s\", direction: \"down\", positive: true, label: \"melhorou\" },\r\n icon: Clock, tone: \"neutral\" },\r\n { id: \"wait\", title: \"Tempo médio espera\", value: \"1m 18s\",\r\n delta: { value: \"-8s\", direction: \"down\", positive: true, label: \"melhorou\" },\r\n icon: Timer, tone: \"neutral\" },\r\n];\r\n\r\nconst KPIS_QUALITY: KpiCardData[] = [\r\n { id: \"frt\", title: \"First Response Time\", value: \"42s\",\r\n delta: { value: \"-5s\", direction: \"down\", positive: true, label: \"melhorou\" },\r\n icon: TrendingUp, tone: \"info\" },\r\n { id: \"csat\", title: \"CSAT\", value: \"4.7\",\r\n delta: { value: \"+0.2\", direction: \"up\", positive: true, label: \"vs semana\" },\r\n icon: Star, tone: \"warning\" },\r\n { id: \"nps\", title: \"NPS\", value: \"68\",\r\n delta: { value: \"+5\", direction: \"up\", positive: true, label: \"vs mês\" },\r\n icon: Headphones, tone: \"success\" },\r\n { id: \"ai\", title: \"Resolvido por IA\", value: \"32%\",\r\n delta: { value: \"+4%\", direction: \"up\", positive: true, label: \"vs semana\" },\r\n icon: Bot, tone: \"brand\" },\r\n];\r\n\r\n/* Volume — stacked bars (2 séries: humano + IA) */\r\nconst VOLUME_BY_MONTH = [\r\n { m: \"Jan\", human: 2400, ai: 1200 },\r\n { m: \"Feb\", human: 4000, ai: 2800 },\r\n { m: \"Mar\", human: 3500, ai: 2200 },\r\n { m: \"Apr\", human: 3800, ai: 2900 },\r\n { m: \"May\", human: 2700, ai: 2300 },\r\n { m: \"Jun\", human: 3200, ai: 2700 },\r\n { m: \"Jul\", human: 2600, ai: 2700 },\r\n { m: \"Aug\", human: 4500, ai: 3200 },\r\n { m: \"Sep\", human: 2800, ai: 2700 },\r\n { m: \"Oct\", human: 4200, ai: 2300 },\r\n { m: \"Nov\", human: 2600, ai: 2700 },\r\n { m: \"Dec\", human: 3000, ai: 4000 },\r\n];\r\n\r\n/* Current Visits — origem dos atendimentos (regiões/cidades) */\r\nconst REGIONS = [\r\n { name: \"São Paulo\", value: 1650, color: \"var(--color-fg-brand)\", delta: \"+4.7%\", positive: true },\r\n { name: \"Rio de Janeiro\", value: 350, color: \"var(--color-fg-warning)\", delta: \"+2.1%\", positive: true },\r\n { name: \"Belo Horizonte\", value: 498, color: \"var(--color-fg-info)\", delta: \"-1.7%\", positive: false },\r\n];\r\n\r\n/* Channels — lista estilo Campaign Performance */\r\ntype ChannelKind = \"whatsapp\" | \"telegram\" | \"instagram\" | \"email\" | \"webchat\";\r\n\r\nconst CHANNELS: { id: ChannelKind; name: string; volume: string; color: string; icon: LucideIcon; status: \"active\" | \"paused\" | \"off\" }[] = [\r\n { id: \"whatsapp\", name: \"WhatsApp\", volume: \"8.49k\", color: \"#25d366\", icon: MessageSquare, status: \"active\" },\r\n { id: \"instagram\", name: \"Instagram\", volume: \"6.98k\", color: \"#e1306c\", icon: MessageSquare, status: \"active\" },\r\n { id: \"telegram\", name: \"Telegram\", volume: \"3.21k\", color: \"#0088cc\", icon: Send, status: \"paused\" },\r\n { id: \"email\", name: \"Email\", volume: \"2.14k\", color: \"#8754ec\", icon: Mail, status: \"active\" },\r\n { id: \"webchat\", name: \"Web Chat\", volume: \"1.50k\", color: \"#0a3a2e\", icon: MessageSquare, status: \"off\" },\r\n];\r\n\r\nconst CHANNEL_STATUS_LABEL: Record<\"active\" | \"paused\" | \"off\", string> = {\r\n active: \"Ativo\",\r\n paused: \"Pausado\",\r\n off: \"Desligado\",\r\n};\r\n\r\nconst CHANNEL_STATUS_TONE: Record<\"active\" | \"paused\" | \"off\", \"success\" | \"warning\" | \"neutral\"> = {\r\n active: \"success\",\r\n paused: \"warning\",\r\n off: \"neutral\",\r\n};\r\n\r\n/* Open conversations — atendimentos ativos */\r\ntype OpenConv = {\r\n id: string;\r\n name: string;\r\n initials: string;\r\n hex: string;\r\n channel: ChannelKind;\r\n status: \"attending\" | \"waiting\" | \"ai\";\r\n waitTime: string;\r\n agent?: { initials: string; name: string; hex: string };\r\n};\r\n\r\nconst OPEN_CONVS: OpenConv[] = [\r\n { id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", hex: \"#f59e0b\", channel: \"whatsapp\", status: \"attending\", waitTime: \"2m\", agent: { initials: \"AC\", name: \"Aline Castro\", hex: \"#f59e0b\" } },\r\n { id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", hex: \"#0a3a2e\", channel: \"telegram\", status: \"waiting\", waitTime: \"8m\" },\r\n { id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", hex: \"#8754ec\", channel: \"instagram\", status: \"attending\", waitTime: \"1m\", agent: { initials: \"VC\", name: \"Você\", hex: \"#0a3a2e\" } },\r\n { id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", hex: \"#0088cc\", channel: \"whatsapp\", status: \"ai\", waitTime: \"3m\" },\r\n { id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", hex: \"#1cb280\", channel: \"email\", status: \"waiting\", waitTime: \"14m\" },\r\n];\r\n\r\nconst STATUS_LABEL: Record<OpenConv[\"status\"], string> = {\r\n attending: \"Em atendimento\",\r\n waiting: \"Em espera\",\r\n ai: \"IA\",\r\n};\r\n\r\nconst STATUS_TONE: Record<OpenConv[\"status\"], \"success\" | \"warning\" | \"info\"> = {\r\n attending: \"success\",\r\n waiting: \"warning\",\r\n ai: \"info\",\r\n};\r\n\r\n/* Agents */\r\ntype AgentRow = {\r\n id: string;\r\n name: string;\r\n initials: string;\r\n hex: string;\r\n active: boolean;\r\n resolved: number;\r\n avgTime: string;\r\n csat: number;\r\n};\r\n\r\nconst AGENTS: AgentRow[] = [\r\n { id: \"aline\", name: \"Aline Castro\", initials: \"AC\", hex: \"#f59e0b\", active: true, resolved: 24, avgTime: \"3m 12s\", csat: 4.9 },\r\n { id: \"carlos\", name: \"Carlos Souza\", initials: \"CS\", hex: \"#8754ec\", active: true, resolved: 19, avgTime: \"4m 45s\", csat: 4.7 },\r\n { id: \"maria\", name: \"Maria Lima\", initials: \"ML\", hex: \"#ef4444\", active: false, resolved: 17, avgTime: \"5m 03s\", csat: 4.5 },\r\n { id: \"joao\", name: \"João Pereira\", initials: \"JP\", hex: \"#1cb280\", active: true, resolved: 15, avgTime: \"3m 58s\", csat: 4.8 },\r\n { id: \"you\", name: \"Você\", initials: \"VC\", hex: \"#0a3a2e\", active: true, resolved: 12, avgTime: \"4m 11s\", csat: 4.6 },\r\n];\r\n\r\n/* Traffic Data — origem das conversas (tabela) */\r\ntype TrafficRow = {\r\n source: string;\r\n visits: string;\r\n bounce: string;\r\n goal: number;\r\n goalColor: string;\r\n};\r\n\r\nconst TRAFFIC_ROWS: TrafficRow[] = [\r\n { source: \"Direct\", visits: \"1.300\", bounce: \"30%\", goal: 80, goalColor: \"var(--color-fg-warning)\" },\r\n { source: \"Email Campaign\", visits: \"5.000\", bounce: \"45%\", goal: 40, goalColor: \"var(--color-fg-success)\" },\r\n { source: \"Organic\", visits: \"3.000\", bounce: \"10%\", goal: 55, goalColor: \"var(--color-fg-warning)\" },\r\n { source: \"Paid Search\", visits: \"2.450\", bounce: \"22%\", goal: 68, goalColor: \"var(--color-fg-success)\" },\r\n { source: \"Social\", visits: \"1.870\", bounce: \"55%\", goal: 25, goalColor: \"var(--color-fg-danger)\" },\r\n { source: \"Referral\", visits: \"940\", bounce: \"18%\", goal: 72, goalColor: \"var(--color-fg-success)\" },\r\n];\r\n\r\n/* ─────────────────────────────────────────────────────────────\r\n * Atoms\r\n * ───────────────────────────────────────────────────────────── */\r\n\r\nconst TONE_CLASSES: Record<KpiTone, { bg: string; fg: string }> = {\r\n brand: { bg: \"bg-bg-brand-subtle\", fg: \"text-fg-brand\" },\r\n success: { bg: \"bg-bg-success-muted\", fg: \"text-fg-success\" },\r\n warning: { bg: \"bg-bg-warning-muted\", fg: \"text-fg-warning\" },\r\n info: { bg: \"bg-bg-info-muted\", fg: \"text-fg-info\" },\r\n danger: { bg: \"bg-bg-danger-muted\", fg: \"text-fg-danger\" },\r\n neutral: { bg: \"bg-bg-muted\", fg: \"text-fg-muted\" },\r\n};\r\n\r\n/** KpiCard — title no topo + icon container + value + Chip delta (padronizado). */\r\nfunction KpiCard({ kpi }: { kpi: KpiCardData }) {\r\n const Icon = kpi.icon;\r\n const cls = TONE_CLASSES[kpi.tone];\r\n return (\r\n <article className=\"flex flex-col gap-gp-lg p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm\">\r\n <header className=\"flex items-start justify-between gap-gp-md\">\r\n <h3 className=\"m-0 text-body-md font-semibold text-fg-default\">{kpi.title}</h3>\r\n <span\r\n className={cn(\r\n \"grid place-items-center size-form-lg rounded-radius-lg shrink-0\",\r\n cls.bg, cls.fg,\r\n )}\r\n aria-hidden\r\n >\r\n <Icon className=\"size-icon-md\" strokeWidth={1.8} />\r\n </span>\r\n </header>\r\n <div className=\"flex flex-col gap-gp-xs\">\r\n <div className=\"flex items-center gap-gp-md flex-wrap\">\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n {kpi.value}\r\n </span>\r\n {kpi.delta && (\r\n <Chip\r\n color={kpi.delta.positive ? \"success\" : \"danger\"}\r\n variant=\"soft\"\r\n size=\"sm\"\r\n shape=\"pill\"\r\n >\r\n {kpi.delta.value}\r\n </Chip>\r\n )}\r\n </div>\r\n {kpi.delta && (\r\n <span className=\"text-caption-sm text-fg-subtle\">{kpi.delta.label}</span>\r\n )}\r\n </div>\r\n </article>\r\n );\r\n}\r\n\r\n/** Welcome banner — brand gradient, ilustração SVG, CTA. */\r\nfunction WelcomeBanner() {\r\n return (\r\n <article className=\"relative overflow-hidden bg-bg-brand rounded-radius-xl p-pad-4xl flex items-center gap-gp-2xl flex-1 w-full\">\r\n {/* Texto à esquerda */}\r\n <div className=\"flex flex-col gap-gp-md flex-1 min-w-0 z-[1]\">\r\n <h2 className=\"m-0 flex items-center gap-gp-md text-body-2xl font-bold text-fg-on-brand\">\r\n Boa tarde, Sergio\r\n <Sun className=\"size-icon-md text-fg-warning\" fill=\"currentColor\" />\r\n </h2>\r\n <p className=\"m-0 text-body-md text-fg-on-brand opacity-80 max-w-[480px]\">\r\n Acompanhe a performance da sua equipe hoje.<br />\r\n Snapshot rápido das principais métricas do atendimento.\r\n </p>\r\n <div>\r\n <Button\r\n color=\"secondary\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n iconRight={<ArrowRight />}\r\n className=\"bg-bg-surface text-fg-default hover:bg-bg-muted\"\r\n >\r\n Ver relatório completo\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n </article>\r\n );\r\n}\r\n\r\n/** Key Insights — all-time revenue + stacked bar + legend (legend no footer via mt-auto). */\r\nfunction KeyInsightsCard() {\r\n return (\r\n <article className=\"flex flex-col gap-gp-md p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm h-full\">\r\n <header className=\"flex items-center justify-between gap-gp-md\">\r\n <h3 className=\"m-0 text-body-md font-medium font-bold text-fg-default\">Key Insights</h3>\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"icon-sm\" aria-label=\"Mais opções\">\r\n <MoreVertical />\r\n </Button>\r\n </header>\r\n <p className=\"m-0 text-body-xs font-normal text-fg-muted\">Receita acumulada (anual)</p>\r\n <div className=\"flex items-center gap-gp-md flex-wrap\">\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n R$ 395.7k\r\n </span>\r\n <Chip color=\"success\" variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n +2.7%\r\n </Chip>\r\n </div>\r\n {/* Spacer empurra bar + legend pro bottom do card */}\r\n <div className=\"mt-auto flex flex-col gap-gp-md\">\r\n {/* Stacked bar 3 segmentos */}\r\n <div className=\"flex h-[8px] gap-[2px] rounded-radius-full overflow-hidden\">\r\n <span className=\"bg-bg-brand\" style={{ flex: 4 }} aria-hidden />\r\n <span className=\"bg-bg-warning\" style={{ flex: 3 }} aria-hidden />\r\n <span className=\"bg-bg-info\" style={{ flex: 4 }} aria-hidden />\r\n </div>\r\n <div className=\"flex items-center gap-gp-lg flex-wrap text-caption-sm text-fg-muted\">\r\n <span className=\"inline-flex items-center gap-[5px]\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand\" aria-hidden />\r\n São Paulo\r\n </span>\r\n <span className=\"inline-flex items-center gap-[5px]\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-warning\" aria-hidden />\r\n Rio\r\n </span>\r\n <span className=\"inline-flex items-center gap-[5px]\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-info\" aria-hidden />\r\n MG\r\n </span>\r\n </div>\r\n </div>\r\n </article>\r\n );\r\n}\r\n\r\nfunction SectionCard({\r\n title,\r\n subtitle,\r\n action,\r\n children,\r\n className,\r\n}: {\r\n title: string;\r\n subtitle?: string;\r\n action?: React.ReactNode;\r\n children: React.ReactNode;\r\n className?: string;\r\n}) {\r\n return (\r\n <section\r\n className={cn(\r\n \"flex flex-col gap-gp-2xl p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm\",\r\n className,\r\n )}\r\n >\r\n <header className=\"flex items-center justify-between gap-gp-md\">\r\n <div className=\"flex flex-col gap-[2px] min-w-0\">\r\n <h3 className=\"m-0 text-body-md font-medium font-bold text-fg-default\">{title}</h3>\r\n {subtitle && (\r\n <p className=\"m-0 text-body-xs font-normal text-fg-muted\">{subtitle}</p>\r\n )}\r\n </div>\r\n {action ?? (\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"icon-sm\" aria-label=\"Mais opções\">\r\n <MoreVertical />\r\n </Button>\r\n )}\r\n </header>\r\n {children}\r\n </section>\r\n );\r\n}\r\n\r\n/** Tooltip estilizado pros charts — consome tokens DS. */\r\nconst CHART_TOOLTIP_STYLE: React.CSSProperties = {\r\n borderRadius: 10,\r\n border: \"1px solid var(--color-border-default)\",\r\n background: \"var(--color-bg-surface-elevated)\",\r\n color: \"var(--color-fg-default)\",\r\n fontSize: 12,\r\n boxShadow: \"rgba(0,0,0,0.18) 0 12px 24px -4px\",\r\n padding: \"8px 12px\",\r\n};\r\n\r\nconst CHART_TOOLTIP_LABEL_STYLE: React.CSSProperties = {\r\n color: \"var(--color-fg-muted)\",\r\n fontSize: 11,\r\n marginBottom: 4,\r\n};\r\n\r\n/** Stacked bar chart (humano + IA) com Recharts — tooltip + hover + responsivo. */\r\nfunction VolumeStackedChart() {\r\n return (\r\n <div className=\"flex flex-col gap-gp-lg\">\r\n {/* Header com valor + chip delta + legend + selector ano */}\r\n <div className=\"flex items-center gap-gp-md flex-wrap\">\r\n <div className=\"flex items-baseline gap-gp-md flex-wrap\">\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n R$ 395.7k\r\n </span>\r\n <Chip color=\"success\" variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n +18%\r\n </Chip>\r\n <span className=\"text-body-xs font-normal text-fg-muted\">vs ano passado</span>\r\n </div>\r\n <div className=\"ml-auto flex items-center gap-gp-md\">\r\n <span className=\"inline-flex items-center gap-[4px] text-caption-sm text-fg-muted\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand\" aria-hidden /> Humano\r\n </span>\r\n <span className=\"inline-flex items-center gap-[4px] text-caption-sm text-fg-muted\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand-subtle\" aria-hidden /> IA\r\n </span>\r\n <Button color=\"secondary\" variant=\"outline\" size=\"sm\" iconRight={<ChevronDown />}>\r\n 2026\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Recharts: ResponsiveContainer + BarChart stacked + Tooltip + grid dashed */}\r\n <div style={{ width: \"100%\", height: 280 }}>\r\n <ResponsiveContainer>\r\n <BarChart\r\n data={VOLUME_BY_MONTH}\r\n margin={{ top: 8, right: 8, left: -16, bottom: 0 }}\r\n barCategoryGap={18}\r\n >\r\n <CartesianGrid\r\n stroke=\"var(--color-border-subtle)\"\r\n strokeDasharray=\"4 4\"\r\n vertical={false}\r\n />\r\n <XAxis\r\n dataKey=\"m\"\r\n tickLine={false}\r\n axisLine={false}\r\n fontSize={11}\r\n stroke=\"var(--color-fg-subtle)\"\r\n />\r\n <YAxis\r\n tickLine={false}\r\n axisLine={false}\r\n fontSize={11}\r\n stroke=\"var(--color-fg-subtle)\"\r\n tickFormatter={(v) => (v === 0 ? \"0k\" : `${v / 1000}k`)}\r\n ticks={[0, 2000, 4000, 6000, 8000, 10000]}\r\n domain={[0, 10000]}\r\n />\r\n <Tooltip\r\n cursor={{ fill: \"var(--color-bg-muted)\", opacity: 0.5 }}\r\n contentStyle={CHART_TOOLTIP_STYLE}\r\n labelStyle={CHART_TOOLTIP_LABEL_STYLE}\r\n formatter={(value, name) => {\r\n const label = name === \"human\" ? \"Humano\" : \"IA\";\r\n return [Number(value).toLocaleString(\"pt-BR\"), label];\r\n }}\r\n />\r\n <Bar dataKey=\"human\" stackId=\"x\" fill=\"var(--color-bg-brand)\" radius={[0, 0, 0, 0]} />\r\n <Bar dataKey=\"ai\" stackId=\"x\" fill=\"var(--color-bg-brand-subtle)\" radius={[6, 6, 0, 0]} />\r\n </BarChart>\r\n </ResponsiveContainer>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/** Donut com Recharts PieChart — tooltip + hover + total no centro. */\r\nfunction CurrentVisitsCard() {\r\n const total = REGIONS.reduce((s, r) => s + r.value, 0);\r\n return (\r\n <SectionCard title=\"Origem dos atendimentos\" subtitle=\"Por região\" className=\"h-full\">\r\n {/* Donut — wrapper relativo ancora o center dentro do círculo */}\r\n <div className=\"relative flex items-center justify-center\" style={{ height: 210 }}>\r\n <ResponsiveContainer width=\"100%\" height={210}>\r\n <PieChart margin={{ top: 0, right: 0, bottom: 0, left: 0 }}>\r\n <Pie\r\n data={REGIONS}\r\n dataKey=\"value\"\r\n nameKey=\"name\"\r\n cx=\"50%\"\r\n cy=\"50%\"\r\n innerRadius={70}\r\n outerRadius={92}\r\n paddingAngle={3}\r\n startAngle={90}\r\n endAngle={-270}\r\n stroke=\"none\"\r\n isAnimationActive\r\n >\r\n {REGIONS.map((r) => (\r\n <Cell key={r.name} fill={r.color} />\r\n ))}\r\n </Pie>\r\n <Tooltip\r\n contentStyle={CHART_TOOLTIP_STYLE}\r\n labelStyle={CHART_TOOLTIP_LABEL_STYLE}\r\n formatter={(value) => Number(value).toLocaleString(\"pt-BR\")}\r\n />\r\n </PieChart>\r\n </ResponsiveContainer>\r\n {/* Total absolute no centro do donut */}\r\n <div className=\"absolute inset-0 flex flex-col items-center justify-center pointer-events-none\">\r\n <span className=\"text-caption-sm text-fg-muted\">Total</span>\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n {total.toLocaleString(\"pt-BR\")}\r\n </span>\r\n </div>\r\n </div>\r\n {/* Lista de regiões — mt-auto empurra pro bottom do card */}\r\n <div className=\"mt-auto flex flex-col gap-gp-md\">\r\n {REGIONS.map((r) => (\r\n <div key={r.name} className=\"flex items-center gap-gp-md\">\r\n <span\r\n className=\"size-[10px] rounded-radius-full shrink-0\"\r\n style={{ background: r.color }}\r\n aria-hidden\r\n />\r\n <span className=\"flex-1 text-body-xs text-fg-default\">{r.name}</span>\r\n <span className=\"text-body-xs font-normal text-fg-default [font-variant-numeric:tabular-nums]\">\r\n {r.value.toLocaleString(\"pt-BR\")}\r\n </span>\r\n <Chip\r\n color={r.positive ? \"success\" : \"danger\"}\r\n variant=\"soft\"\r\n size=\"sm\"\r\n shape=\"pill\"\r\n >\r\n {r.delta}\r\n </Chip>\r\n </div>\r\n ))}\r\n </div>\r\n </SectionCard>\r\n );\r\n}\r\n\r\nfunction PersonAvatar({ initials, hex, size = \"md\" }: { initials: string; hex: string; size?: \"sm\" | \"md\" }) {\r\n const cls = size === \"sm\" ? \"size-[24px] text-caption-xs\" : \"size-[32px] text-body-xs font-normal\";\r\n return (\r\n <Avatar className={cls} style={{ background: hex }}>\r\n <AvatarFallback className=\"bg-transparent text-white font-bold\">{initials}</AvatarFallback>\r\n </Avatar>\r\n );\r\n}\r\n\r\nfunction OpenConversationsList() {\r\n return (\r\n <ul className=\"m-0 p-0 list-none flex flex-col\">\r\n {OPEN_CONVS.map((c) => {\r\n const ChIcon = CHANNELS.find((ch) => ch.id === c.channel)?.icon ?? MessageSquare;\r\n return (\r\n <li\r\n key={c.id}\r\n className=\"flex items-center gap-gp-md py-pad-lg border-b border-border-subtle last:border-b-0 cursor-pointer hover:[&>*]:opacity-90 transition-opacity\"\r\n >\r\n <PersonAvatar initials={c.initials} hex={c.hex} size=\"md\" />\r\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\r\n <div className=\"flex items-center gap-gp-sm\">\r\n <span className=\"text-body-sm font-semibold text-fg-default whitespace-nowrap overflow-hidden text-ellipsis\">\r\n {c.name}\r\n </span>\r\n <span className=\"text-caption-sm text-fg-subtle [font-variant-numeric:tabular-nums] shrink-0\">\r\n {c.id}\r\n </span>\r\n </div>\r\n <div className=\"flex items-center gap-gp-sm flex-wrap text-caption-sm text-fg-muted\">\r\n <span className=\"inline-flex items-center gap-[3px]\">\r\n <ChIcon size={11} strokeWidth={1.8} aria-hidden />\r\n {CHANNELS.find((ch) => ch.id === c.channel)?.name ?? c.channel}\r\n </span>\r\n {c.agent && (\r\n <>\r\n <span aria-hidden>·</span>\r\n <span>{c.agent.name}</span>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"flex flex-col items-end gap-[4px] shrink-0\">\r\n <Chip color={STATUS_TONE[c.status]} variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n {STATUS_LABEL[c.status]}\r\n </Chip>\r\n <span className=\"inline-flex items-center gap-[3px] text-caption-sm text-fg-muted [font-variant-numeric:tabular-nums]\">\r\n <Clock size={10} strokeWidth={1.8} aria-hidden />\r\n {c.waitTime}\r\n </span>\r\n </div>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n}\r\n\r\nfunction AgentPerformanceList() {\r\n return (\r\n <ul className=\"m-0 p-0 list-none flex flex-col\">\r\n {AGENTS.map((a, i) => (\r\n <li\r\n key={a.id}\r\n className=\"flex items-center gap-gp-md py-pad-lg border-b border-border-subtle last:border-b-0\"\r\n >\r\n <span className=\"grid place-items-center size-[20px] rounded-radius-full bg-bg-muted text-caption-sm font-bold text-fg-muted shrink-0 [font-variant-numeric:tabular-nums]\">\r\n {i + 1}\r\n </span>\r\n <div className=\"relative shrink-0\">\r\n <PersonAvatar initials={a.initials} hex={a.hex} size=\"md\" />\r\n <span\r\n className={cn(\r\n \"absolute -bottom-[1px] -right-[1px] size-[8px] rounded-radius-full border border-bg-surface\",\r\n a.active ? \"bg-bg-success\" : \"bg-bg-muted\",\r\n )}\r\n aria-label={a.active ? \"online\" : \"offline\"}\r\n />\r\n </div>\r\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\r\n <span className=\"text-body-sm font-semibold text-fg-default whitespace-nowrap overflow-hidden text-ellipsis\">\r\n {a.name}\r\n </span>\r\n <span className=\"text-caption-sm text-fg-muted\">\r\n {a.resolved} resolvidos · {a.avgTime} médio\r\n </span>\r\n </div>\r\n <div className=\"flex items-center gap-[3px] shrink-0 text-body-xs font-semibold text-fg-default\">\r\n <Star size={11} strokeWidth={2} className=\"text-fg-warning fill-current\" aria-hidden />\r\n <span className=\"[font-variant-numeric:tabular-nums]\">{a.csat.toFixed(1)}</span>\r\n </div>\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n}\r\n\r\n/** Canais com volume + status — estilo Campaign Performance. */\r\nfunction ChannelPerformanceList() {\r\n return (\r\n <ul className=\"m-0 p-0 list-none flex flex-col\">\r\n {CHANNELS.map((c) => {\r\n const Icon = c.icon;\r\n return (\r\n <li\r\n key={c.id}\r\n className=\"flex items-center gap-gp-lg py-pad-lg border-b border-border-subtle last:border-b-0\"\r\n >\r\n <span\r\n className=\"grid place-items-center size-[36px] rounded-radius-full shrink-0 text-white\"\r\n style={{ background: c.color }}\r\n aria-hidden\r\n >\r\n <Icon size={16} strokeWidth={1.8} />\r\n </span>\r\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\r\n <span className=\"text-body-sm font-semibold text-fg-default\">{c.name}</span>\r\n <span className=\"text-caption-sm text-fg-muted\">\r\n {c.volume} mensagens\r\n </span>\r\n </div>\r\n <Chip color={CHANNEL_STATUS_TONE[c.status]} variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n {CHANNEL_STATUS_LABEL[c.status]}\r\n </Chip>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n}\r\n\r\n/** Traffic Data — tabela com source/visits/bounce/goal. */\r\nfunction TrafficDataTable() {\r\n return (\r\n <SectionCard\r\n title=\"Origem do tráfego\"\r\n subtitle=\"Fontes de aquisição\"\r\n className=\"flex-1 h-full\"\r\n action={\r\n <div className=\"relative max-w-[200px]\">\r\n <Search\r\n size={14}\r\n strokeWidth={1.8}\r\n className=\"absolute left-pad-lg top-1/2 -translate-y-1/2 text-fg-muted pointer-events-none\"\r\n />\r\n <input\r\n type=\"search\"\r\n placeholder=\"Buscar...\"\r\n className=\"h-form-md pl-[34px] pr-pad-md w-full rounded-radius-md bg-bg-muted border border-border-input text-body-md text-fg-default placeholder:text-fg-muted focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand focus-visible:border-border-brand\"\r\n />\r\n </div>\r\n }\r\n >\r\n <div className=\"overflow-x-auto -mx-pad-2xl px-pad-2xl\">\r\n <table className=\"w-full text-body-md border-separate border-spacing-0\">\r\n <thead>\r\n <tr className=\"text-caption-sm font-bold tracking-[0.04em] text-fg-subtle uppercase\">\r\n <th className=\"text-left pb-pad-md border-b border-border-subtle font-bold\">Fonte</th>\r\n <th className=\"text-right pb-pad-md border-b border-border-subtle font-bold\">Visitas</th>\r\n <th className=\"text-left pb-pad-md pl-pad-2xl border-b border-border-subtle font-bold\">Bounce</th>\r\n <th className=\"text-left pb-pad-md pl-pad-2xl border-b border-border-subtle font-bold\">Meta (%)</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {TRAFFIC_ROWS.map((r) => (\r\n <tr key={r.source} className=\"text-body-xs font-normal\">\r\n <td className=\"py-pad-lg border-b border-border-subtle text-fg-default font-medium\">\r\n {r.source}\r\n </td>\r\n <td className=\"py-pad-lg border-b border-border-subtle text-right text-fg-default [font-variant-numeric:tabular-nums]\">\r\n {r.visits}\r\n </td>\r\n <td className=\"py-pad-sm pl-pad-2xl border-b border-border-subtle text-fg-muted [font-variant-numeric:tabular-nums]\">\r\n {r.bounce}\r\n </td>\r\n <td className=\"py-pad-sm pl-pad-2xl border-b border-border-subtle\">\r\n <div className=\"flex items-center gap-gp-md\">\r\n <div className=\"flex-1 h-[6px] bg-bg-muted rounded-radius-full overflow-hidden min-w-[80px]\">\r\n <div\r\n className=\"h-full rounded-radius-full\"\r\n style={{ width: `${r.goal}%`, background: r.goalColor }}\r\n />\r\n </div>\r\n <span className=\"text-caption-sm font-semibold text-fg-default [font-variant-numeric:tabular-nums] shrink-0 min-w-[32px] text-right\">\r\n {r.goal}%\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n </SectionCard>\r\n );\r\n}\r\n\r\n/* ─────────────────────────────────────────────────────────────\r\n * Page\r\n * ───────────────────────────────────────────────────────────── */\r\n\r\nexport default function DashboardShowcase() {\r\n const { theme, setTheme } = useTheme();\r\n const [period, setPeriod] = useState<string>(\"Últimos 7 dias\");\r\n\r\n return (\r\n <AppShell\r\n contexts={APP_SHELL_CONTEXTS}\r\n defaultActiveContextId=\"inbox\"\r\n defaultActiveItemHref=\"#dashboard\"\r\n breadcrumb={[{ label: \"Dashboard\" }]}\r\n commandGroups={APP_SHELL_COMMANDS}\r\n notifications={{\r\n items: APP_SHELL_NOTIFICATIONS,\r\n onMarkAllRead: () => alert(\"Marcar todas como lidas\"),\r\n onMoreActions: () => alert(\"Mais ações\"),\r\n onViewAll: () => alert(\"Ver todas\"),\r\n }}\r\n messages={{\r\n items: APP_SHELL_MESSAGES,\r\n onNewMessage: () => alert(\"Nova mensagem\"),\r\n onExpand: () => alert(\"Expandir\"),\r\n onViewAll: () => alert(\"Ver todas\"),\r\n }}\r\n theme={theme}\r\n onThemeChange={(id) => setTheme(id as Theme)}\r\n themeOptions={APP_SHELL_THEME_OPTIONS}\r\n >\r\n <PageHeader\r\n title=\"Dashboard\"\r\n description=\"Visão geral do atendimento em tempo real — KPIs, volume, canais e performance da equipe.\"\r\n badge={\r\n <Chip color=\"primary\" variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n Hoje\r\n </Chip>\r\n }\r\n actions={\r\n <>\r\n <Button\r\n color=\"secondary\"\r\n variant=\"outline\"\r\n size=\"icon-md\"\r\n aria-label=\"Mais ações\"\r\n >\r\n <MoreVertical />\r\n </Button>\r\n <Button\r\n color=\"secondary\"\r\n variant=\"outline\"\r\n size=\"md\"\r\n iconLeft={<Calendar />}\r\n iconRight={<ChevronDown />}\r\n onClick={() => {\r\n const next = period === \"Últimos 7 dias\" ? \"Últimos 30 dias\" : \"Últimos 7 dias\";\r\n setPeriod(next);\r\n }}\r\n >\r\n {period}\r\n </Button>\r\n </>\r\n }\r\n />\r\n\r\n {/* Row 1 — Welcome (2/3) + KeyInsights (1/3) — alturas iguais */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\r\n <div className=\"lg:col-span-2 flex\">\r\n <WelcomeBanner />\r\n </div>\r\n <KeyInsightsCard />\r\n </section>\r\n\r\n {/* Row 2 — KPIs primários (6) */}\r\n <section\r\n aria-label=\"KPIs principais\"\r\n className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-gp-2xl\"\r\n >\r\n {KPIS_PRIMARY.map((kpi) => (\r\n <KpiCard key={kpi.id} kpi={kpi} />\r\n ))}\r\n </section>\r\n\r\n {/* Row 3 — Volume stacked (2/3) + Current visits donut (1/3) — alturas iguais */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\r\n <SectionCard\r\n title=\"Volume de atendimentos\"\r\n subtitle=\"Humano vs IA — ano corrente\"\r\n className=\"lg:col-span-2 h-full\"\r\n >\r\n <VolumeStackedChart />\r\n </SectionCard>\r\n <CurrentVisitsCard />\r\n </section>\r\n\r\n {/* Row 4 — KPIs qualidade (4) — APÓS os charts */}\r\n <section\r\n aria-label=\"Qualidade do atendimento\"\r\n className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-gp-2xl\"\r\n >\r\n {KPIS_QUALITY.map((kpi) => (\r\n <KpiCard key={kpi.id} kpi={kpi} />\r\n ))}\r\n </section>\r\n\r\n {/* Row 5 — Open + Agents */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-2 gap-gp-2xl\">\r\n <SectionCard\r\n title=\"Atendimentos em aberto\"\r\n subtitle=\"5 ativos agora\"\r\n action={\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"sm\">\r\n Ver todos\r\n </Button>\r\n }\r\n >\r\n <OpenConversationsList />\r\n </SectionCard>\r\n <SectionCard\r\n title=\"Performance da equipe\"\r\n subtitle=\"Ranking de hoje\"\r\n action={\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"sm\">\r\n Ver equipe\r\n </Button>\r\n }\r\n >\r\n <AgentPerformanceList />\r\n </SectionCard>\r\n </section>\r\n\r\n {/* Row 6 — Channels (1/3) + Traffic Data (2/3). Ambos h-full pra\r\n alturas se igualarem dentro da row do grid. */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\r\n <SectionCard title=\"Canais\" subtitle=\"Volume e status\" className=\"h-full\">\r\n <ChannelPerformanceList />\r\n </SectionCard>\r\n <div className=\"lg:col-span-2 flex\">\r\n <TrafficDataTable />\r\n </div>\r\n </section>\r\n </AppShell>\r\n );\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.mjs","sources":["../../src/preview/pages/DashboardShowcase.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { useTheme, type Theme } from \"@/hooks/useTheme\";\r\nimport type { LucideIcon } from \"@/lib/lucide-types\";\r\nimport {\r\n ArrowRight,\r\n ArrowUpRight,\r\n ArrowDownRight,\r\n Bot,\r\n Calendar,\r\n CheckCircle2,\r\n ChevronDown,\r\n Clock,\r\n Headphones,\r\n Mail,\r\n MessageSquare,\r\n MoreVertical,\r\n Phone,\r\n Search,\r\n Send,\r\n Star,\r\n Sun,\r\n Timer,\r\n TrendingUp,\r\n UserPlus,\r\n} from \"lucide-react\";\r\nimport {\r\n Bar,\r\n BarChart,\r\n CartesianGrid,\r\n Cell,\r\n Pie,\r\n PieChart,\r\n ResponsiveContainer,\r\n Tooltip,\r\n XAxis,\r\n YAxis,\r\n} from \"recharts\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { AppShell } from \"@/components/ui/AppShell\";\r\nimport { Button } from \"@/components/ui/Button/button\";\r\nimport { Chip } from \"@/components/ui/Chip\";\r\nimport { PageHeader } from \"@/components/ui/PageHeader\";\r\nimport { Avatar, AvatarFallback } from \"@/components/shadcn/avatar\";\r\nimport {\r\n APP_SHELL_CONTEXTS,\r\n APP_SHELL_COMMANDS,\r\n APP_SHELL_NOTIFICATIONS,\r\n APP_SHELL_MESSAGES,\r\n APP_SHELL_THEME_OPTIONS,\r\n} from \"../mocks/app-shell-mocks\";\r\n\r\n/* ─────────────────────────────────────────────────────────────\r\n * Tipos + mock data — call center + analytics\r\n * ───────────────────────────────────────────────────────────── */\r\n\r\ntype KpiTone = \"brand\" | \"success\" | \"warning\" | \"info\" | \"danger\" | \"neutral\";\r\n\r\ntype KpiCardData = {\r\n id: string;\r\n title: string;\r\n value: string;\r\n delta?: { value: string; direction: \"up\" | \"down\"; positive: boolean; label: string };\r\n icon: LucideIcon;\r\n tone: KpiTone;\r\n};\r\n\r\nconst KPIS_PRIMARY: KpiCardData[] = [\r\n { id: \"in-conv\", title: \"Em atendimento\", value: \"12\",\r\n delta: { value: \"+3\", direction: \"up\", positive: true, label: \"vs ontem\" },\r\n icon: Phone, tone: \"success\" },\r\n { id: \"waiting\", title: \"Em espera\", value: \"4\",\r\n delta: { value: \"+1\", direction: \"up\", positive: false, label: \"vs ontem\" },\r\n icon: Timer, tone: \"warning\" },\r\n { id: \"finished\", title: \"Resolvidos hoje\", value: \"87\",\r\n delta: { value: \"+12%\", direction: \"up\", positive: true, label: \"vs semana\" },\r\n icon: CheckCircle2, tone: \"info\" },\r\n { id: \"new\", title: \"Novos contatos\", value: \"260\",\r\n delta: { value: \"+24\", direction: \"up\", positive: true, label: \"vs ontem\" },\r\n icon: UserPlus, tone: \"brand\" },\r\n { id: \"talk\", title: \"Tempo médio atend.\", value: \"4m 32s\",\r\n delta: { value: \"-12s\", direction: \"down\", positive: true, label: \"melhorou\" },\r\n icon: Clock, tone: \"neutral\" },\r\n { id: \"wait\", title: \"Tempo médio espera\", value: \"1m 18s\",\r\n delta: { value: \"-8s\", direction: \"down\", positive: true, label: \"melhorou\" },\r\n icon: Timer, tone: \"neutral\" },\r\n];\r\n\r\nconst KPIS_QUALITY: KpiCardData[] = [\r\n { id: \"frt\", title: \"First Response Time\", value: \"42s\",\r\n delta: { value: \"-5s\", direction: \"down\", positive: true, label: \"melhorou\" },\r\n icon: TrendingUp, tone: \"info\" },\r\n { id: \"csat\", title: \"CSAT\", value: \"4.7\",\r\n delta: { value: \"+0.2\", direction: \"up\", positive: true, label: \"vs semana\" },\r\n icon: Star, tone: \"warning\" },\r\n { id: \"nps\", title: \"NPS\", value: \"68\",\r\n delta: { value: \"+5\", direction: \"up\", positive: true, label: \"vs mês\" },\r\n icon: Headphones, tone: \"success\" },\r\n { id: \"ai\", title: \"Resolvido por IA\", value: \"32%\",\r\n delta: { value: \"+4%\", direction: \"up\", positive: true, label: \"vs semana\" },\r\n icon: Bot, tone: \"brand\" },\r\n];\r\n\r\n/* Volume — stacked bars (2 séries: humano + IA) */\r\nconst VOLUME_BY_MONTH = [\r\n { m: \"Jan\", human: 2400, ai: 1200 },\r\n { m: \"Feb\", human: 4000, ai: 2800 },\r\n { m: \"Mar\", human: 3500, ai: 2200 },\r\n { m: \"Apr\", human: 3800, ai: 2900 },\r\n { m: \"May\", human: 2700, ai: 2300 },\r\n { m: \"Jun\", human: 3200, ai: 2700 },\r\n { m: \"Jul\", human: 2600, ai: 2700 },\r\n { m: \"Aug\", human: 4500, ai: 3200 },\r\n { m: \"Sep\", human: 2800, ai: 2700 },\r\n { m: \"Oct\", human: 4200, ai: 2300 },\r\n { m: \"Nov\", human: 2600, ai: 2700 },\r\n { m: \"Dec\", human: 3000, ai: 4000 },\r\n];\r\n\r\n/* Current Visits — origem dos atendimentos (regiões/cidades) */\r\nconst REGIONS = [\r\n { name: \"São Paulo\", value: 1650, color: \"var(--color-fg-brand)\", delta: \"+4.7%\", positive: true },\r\n { name: \"Rio de Janeiro\", value: 350, color: \"var(--color-fg-warning)\", delta: \"+2.1%\", positive: true },\r\n { name: \"Belo Horizonte\", value: 498, color: \"var(--color-fg-info)\", delta: \"-1.7%\", positive: false },\r\n];\r\n\r\n/* Channels — lista estilo Campaign Performance */\r\ntype ChannelKind = \"whatsapp\" | \"telegram\" | \"instagram\" | \"email\" | \"webchat\";\r\n\r\nconst CHANNELS: { id: ChannelKind; name: string; volume: string; color: string; icon: LucideIcon; status: \"active\" | \"paused\" | \"off\" }[] = [\r\n { id: \"whatsapp\", name: \"WhatsApp\", volume: \"8.49k\", color: \"#25d366\", icon: MessageSquare, status: \"active\" },\r\n { id: \"instagram\", name: \"Instagram\", volume: \"6.98k\", color: \"#e1306c\", icon: MessageSquare, status: \"active\" },\r\n { id: \"telegram\", name: \"Telegram\", volume: \"3.21k\", color: \"#0088cc\", icon: Send, status: \"paused\" },\r\n { id: \"email\", name: \"Email\", volume: \"2.14k\", color: \"#8754ec\", icon: Mail, status: \"active\" },\r\n { id: \"webchat\", name: \"Web Chat\", volume: \"1.50k\", color: \"#0a3a2e\", icon: MessageSquare, status: \"off\" },\r\n];\r\n\r\nconst CHANNEL_STATUS_LABEL: Record<\"active\" | \"paused\" | \"off\", string> = {\r\n active: \"Ativo\",\r\n paused: \"Pausado\",\r\n off: \"Desligado\",\r\n};\r\n\r\nconst CHANNEL_STATUS_TONE: Record<\"active\" | \"paused\" | \"off\", \"success\" | \"warning\" | \"neutral\"> = {\r\n active: \"success\",\r\n paused: \"warning\",\r\n off: \"neutral\",\r\n};\r\n\r\n/* Open conversations — atendimentos ativos */\r\ntype OpenConv = {\r\n id: string;\r\n name: string;\r\n initials: string;\r\n hex: string;\r\n channel: ChannelKind;\r\n status: \"attending\" | \"waiting\" | \"ai\";\r\n waitTime: string;\r\n agent?: { initials: string; name: string; hex: string };\r\n};\r\n\r\nconst OPEN_CONVS: OpenConv[] = [\r\n { id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", hex: \"#f59e0b\", channel: \"whatsapp\", status: \"attending\", waitTime: \"2m\", agent: { initials: \"AC\", name: \"Aline Castro\", hex: \"#f59e0b\" } },\r\n { id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", hex: \"#0a3a2e\", channel: \"telegram\", status: \"waiting\", waitTime: \"8m\" },\r\n { id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", hex: \"#8754ec\", channel: \"instagram\", status: \"attending\", waitTime: \"1m\", agent: { initials: \"VC\", name: \"Você\", hex: \"#0a3a2e\" } },\r\n { id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", hex: \"#0088cc\", channel: \"whatsapp\", status: \"ai\", waitTime: \"3m\" },\r\n { id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", hex: \"#1cb280\", channel: \"email\", status: \"waiting\", waitTime: \"14m\" },\r\n];\r\n\r\nconst STATUS_LABEL: Record<OpenConv[\"status\"], string> = {\r\n attending: \"Em atendimento\",\r\n waiting: \"Em espera\",\r\n ai: \"IA\",\r\n};\r\n\r\nconst STATUS_TONE: Record<OpenConv[\"status\"], \"success\" | \"warning\" | \"info\"> = {\r\n attending: \"success\",\r\n waiting: \"warning\",\r\n ai: \"info\",\r\n};\r\n\r\n/* Agents */\r\ntype AgentRow = {\r\n id: string;\r\n name: string;\r\n initials: string;\r\n hex: string;\r\n active: boolean;\r\n resolved: number;\r\n avgTime: string;\r\n csat: number;\r\n};\r\n\r\nconst AGENTS: AgentRow[] = [\r\n { id: \"aline\", name: \"Aline Castro\", initials: \"AC\", hex: \"#f59e0b\", active: true, resolved: 24, avgTime: \"3m 12s\", csat: 4.9 },\r\n { id: \"carlos\", name: \"Carlos Souza\", initials: \"CS\", hex: \"#8754ec\", active: true, resolved: 19, avgTime: \"4m 45s\", csat: 4.7 },\r\n { id: \"maria\", name: \"Maria Lima\", initials: \"ML\", hex: \"#ef4444\", active: false, resolved: 17, avgTime: \"5m 03s\", csat: 4.5 },\r\n { id: \"joao\", name: \"João Pereira\", initials: \"JP\", hex: \"#1cb280\", active: true, resolved: 15, avgTime: \"3m 58s\", csat: 4.8 },\r\n { id: \"you\", name: \"Você\", initials: \"VC\", hex: \"#0a3a2e\", active: true, resolved: 12, avgTime: \"4m 11s\", csat: 4.6 },\r\n];\r\n\r\n/* Traffic Data — origem das conversas (tabela) */\r\ntype TrafficRow = {\r\n source: string;\r\n visits: string;\r\n bounce: string;\r\n goal: number;\r\n goalColor: string;\r\n};\r\n\r\nconst TRAFFIC_ROWS: TrafficRow[] = [\r\n { source: \"Direct\", visits: \"1.300\", bounce: \"30%\", goal: 80, goalColor: \"var(--color-fg-warning)\" },\r\n { source: \"Email Campaign\", visits: \"5.000\", bounce: \"45%\", goal: 40, goalColor: \"var(--color-fg-success)\" },\r\n { source: \"Organic\", visits: \"3.000\", bounce: \"10%\", goal: 55, goalColor: \"var(--color-fg-warning)\" },\r\n { source: \"Paid Search\", visits: \"2.450\", bounce: \"22%\", goal: 68, goalColor: \"var(--color-fg-success)\" },\r\n { source: \"Social\", visits: \"1.870\", bounce: \"55%\", goal: 25, goalColor: \"var(--color-fg-danger)\" },\r\n { source: \"Referral\", visits: \"940\", bounce: \"18%\", goal: 72, goalColor: \"var(--color-fg-success)\" },\r\n];\r\n\r\n/* ─────────────────────────────────────────────────────────────\r\n * Atoms\r\n * ───────────────────────────────────────────────────────────── */\r\n\r\nconst TONE_CLASSES: Record<KpiTone, { bg: string; fg: string }> = {\r\n brand: { bg: \"bg-bg-brand-subtle\", fg: \"text-fg-brand\" },\r\n success: { bg: \"bg-bg-success-muted\", fg: \"text-fg-success\" },\r\n warning: { bg: \"bg-bg-warning-muted\", fg: \"text-fg-warning\" },\r\n info: { bg: \"bg-bg-info-muted\", fg: \"text-fg-info\" },\r\n danger: { bg: \"bg-bg-danger-muted\", fg: \"text-fg-danger\" },\r\n neutral: { bg: \"bg-bg-muted\", fg: \"text-fg-muted\" },\r\n};\r\n\r\n/** KpiCard — title no topo + icon container + value + Chip delta (padronizado). */\r\nfunction KpiCard({ kpi }: { kpi: KpiCardData }) {\r\n const Icon = kpi.icon;\r\n const cls = TONE_CLASSES[kpi.tone];\r\n return (\r\n <article className=\"flex flex-col gap-gp-lg p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm\">\r\n <header className=\"flex items-start justify-between gap-gp-md\">\r\n <h3 className=\"m-0 text-body-md font-semibold text-fg-default\">{kpi.title}</h3>\r\n <span\r\n className={cn(\r\n \"grid place-items-center size-form-lg rounded-radius-lg shrink-0\",\r\n cls.bg, cls.fg,\r\n )}\r\n aria-hidden\r\n >\r\n <Icon className=\"size-icon-md\" strokeWidth={1.8} />\r\n </span>\r\n </header>\r\n <div className=\"flex flex-col gap-gp-xs\">\r\n <div className=\"flex items-center gap-gp-md flex-wrap\">\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n {kpi.value}\r\n </span>\r\n {kpi.delta && (\r\n <Chip\r\n color={kpi.delta.positive ? \"success\" : \"danger\"}\r\n variant=\"soft\"\r\n size=\"sm\"\r\n shape=\"pill\"\r\n >\r\n {kpi.delta.value}\r\n </Chip>\r\n )}\r\n </div>\r\n {kpi.delta && (\r\n <span className=\"text-caption-sm text-fg-subtle\">{kpi.delta.label}</span>\r\n )}\r\n </div>\r\n </article>\r\n );\r\n}\r\n\r\n/** Welcome banner — brand gradient, ilustração SVG, CTA. */\r\nfunction WelcomeBanner() {\r\n return (\r\n <article className=\"relative overflow-hidden bg-bg-brand rounded-radius-xl p-pad-4xl flex items-center gap-gp-2xl flex-1 w-full\">\r\n {/* Texto à esquerda */}\r\n <div className=\"flex flex-col gap-gp-md flex-1 min-w-0 z-[1]\">\r\n <h2 className=\"m-0 flex items-center gap-gp-md text-body-2xl font-bold text-fg-on-brand\">\r\n Boa tarde, Sergio\r\n <Sun className=\"size-icon-md text-fg-warning\" fill=\"currentColor\" />\r\n </h2>\r\n <p className=\"m-0 text-body-md text-fg-on-brand opacity-80 max-w-[480px]\">\r\n Acompanhe a performance da sua equipe hoje.<br />\r\n Snapshot rápido das principais métricas do atendimento.\r\n </p>\r\n <div>\r\n <Button\r\n color=\"secondary\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n iconRight={<ArrowRight />}\r\n className=\"bg-bg-surface text-fg-default hover:bg-bg-muted\"\r\n >\r\n Ver relatório completo\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n </article>\r\n );\r\n}\r\n\r\n/** Key Insights — all-time revenue + stacked bar + legend (legend no footer via mt-auto). */\r\nfunction KeyInsightsCard() {\r\n return (\r\n <article className=\"flex flex-col gap-gp-md p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm h-full\">\r\n <header className=\"flex items-center justify-between gap-gp-md\">\r\n <h3 className=\"m-0 text-body-md font-medium text-fg-default\">Key Insights</h3>\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"icon-sm\" aria-label=\"Mais opções\">\r\n <MoreVertical />\r\n </Button>\r\n </header>\r\n <p className=\"m-0 text-body-xs font-normal text-fg-muted\">Receita acumulada (anual)</p>\r\n <div className=\"flex items-center gap-gp-md flex-wrap\">\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n R$ 395.7k\r\n </span>\r\n <Chip color=\"success\" variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n +2.7%\r\n </Chip>\r\n </div>\r\n {/* Spacer empurra bar + legend pro bottom do card */}\r\n <div className=\"mt-auto flex flex-col gap-gp-md\">\r\n {/* Stacked bar 3 segmentos */}\r\n <div className=\"flex h-[8px] gap-[2px] rounded-radius-full overflow-hidden\">\r\n <span className=\"bg-bg-brand\" style={{ flex: 4 }} aria-hidden />\r\n <span className=\"bg-bg-warning\" style={{ flex: 3 }} aria-hidden />\r\n <span className=\"bg-bg-info\" style={{ flex: 4 }} aria-hidden />\r\n </div>\r\n <div className=\"flex items-center gap-gp-lg flex-wrap text-caption-sm text-fg-muted\">\r\n <span className=\"inline-flex items-center gap-[5px]\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand\" aria-hidden />\r\n São Paulo\r\n </span>\r\n <span className=\"inline-flex items-center gap-[5px]\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-warning\" aria-hidden />\r\n Rio\r\n </span>\r\n <span className=\"inline-flex items-center gap-[5px]\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-info\" aria-hidden />\r\n MG\r\n </span>\r\n </div>\r\n </div>\r\n </article>\r\n );\r\n}\r\n\r\nfunction SectionCard({\r\n title,\r\n subtitle,\r\n action,\r\n children,\r\n className,\r\n}: {\r\n title: string;\r\n subtitle?: string;\r\n action?: React.ReactNode;\r\n children: React.ReactNode;\r\n className?: string;\r\n}) {\r\n return (\r\n <section\r\n className={cn(\r\n \"flex flex-col gap-gp-2xl p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm\",\r\n className,\r\n )}\r\n >\r\n <header className=\"flex items-center justify-between gap-gp-md\">\r\n <div className=\"flex flex-col gap-[2px] min-w-0\">\r\n <h3 className=\"m-0 text-body-md font-medium text-fg-default\">{title}</h3>\r\n {subtitle && (\r\n <p className=\"m-0 text-body-xs font-normal text-fg-muted\">{subtitle}</p>\r\n )}\r\n </div>\r\n {action ?? (\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"icon-sm\" aria-label=\"Mais opções\">\r\n <MoreVertical />\r\n </Button>\r\n )}\r\n </header>\r\n {children}\r\n </section>\r\n );\r\n}\r\n\r\n/** Tooltip estilizado pros charts — consome tokens DS. */\r\nconst CHART_TOOLTIP_STYLE: React.CSSProperties = {\r\n borderRadius: 10,\r\n border: \"1px solid var(--color-border-default)\",\r\n background: \"var(--color-bg-surface-elevated)\",\r\n color: \"var(--color-fg-default)\",\r\n fontSize: 12,\r\n boxShadow: \"rgba(0,0,0,0.18) 0 12px 24px -4px\",\r\n padding: \"8px 12px\",\r\n};\r\n\r\nconst CHART_TOOLTIP_LABEL_STYLE: React.CSSProperties = {\r\n color: \"var(--color-fg-muted)\",\r\n fontSize: 11,\r\n marginBottom: 4,\r\n};\r\n\r\n/** Stacked bar chart (humano + IA) com Recharts — tooltip + hover + responsivo. */\r\nfunction VolumeStackedChart() {\r\n return (\r\n <div className=\"flex flex-col gap-gp-lg\">\r\n {/* Header com valor + chip delta + legend + selector ano */}\r\n <div className=\"flex items-center gap-gp-md flex-wrap\">\r\n <div className=\"flex items-baseline gap-gp-md flex-wrap\">\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n R$ 395.7k\r\n </span>\r\n <Chip color=\"success\" variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n +18%\r\n </Chip>\r\n <span className=\"text-body-xs font-normal text-fg-muted\">vs ano passado</span>\r\n </div>\r\n <div className=\"ml-auto flex items-center gap-gp-md\">\r\n <span className=\"inline-flex items-center gap-[4px] text-caption-sm text-fg-muted\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand\" aria-hidden /> Humano\r\n </span>\r\n <span className=\"inline-flex items-center gap-[4px] text-caption-sm text-fg-muted\">\r\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand-subtle\" aria-hidden /> IA\r\n </span>\r\n <Button color=\"secondary\" variant=\"outline\" size=\"sm\" iconRight={<ChevronDown />}>\r\n 2026\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Recharts: ResponsiveContainer + BarChart stacked + Tooltip + grid dashed */}\r\n <div style={{ width: \"100%\", height: 280 }}>\r\n <ResponsiveContainer>\r\n <BarChart\r\n data={VOLUME_BY_MONTH}\r\n margin={{ top: 8, right: 8, left: -16, bottom: 0 }}\r\n barCategoryGap={18}\r\n >\r\n <CartesianGrid\r\n stroke=\"var(--color-border-subtle)\"\r\n strokeDasharray=\"4 4\"\r\n vertical={false}\r\n />\r\n <XAxis\r\n dataKey=\"m\"\r\n tickLine={false}\r\n axisLine={false}\r\n fontSize={11}\r\n stroke=\"var(--color-fg-subtle)\"\r\n />\r\n <YAxis\r\n tickLine={false}\r\n axisLine={false}\r\n fontSize={11}\r\n stroke=\"var(--color-fg-subtle)\"\r\n tickFormatter={(v) => (v === 0 ? \"0k\" : `${v / 1000}k`)}\r\n ticks={[0, 2000, 4000, 6000, 8000, 10000]}\r\n domain={[0, 10000]}\r\n />\r\n <Tooltip\r\n cursor={{ fill: \"var(--color-bg-muted)\", opacity: 0.5 }}\r\n contentStyle={CHART_TOOLTIP_STYLE}\r\n labelStyle={CHART_TOOLTIP_LABEL_STYLE}\r\n formatter={(value, name) => {\r\n const label = name === \"human\" ? \"Humano\" : \"IA\";\r\n return [Number(value).toLocaleString(\"pt-BR\"), label];\r\n }}\r\n />\r\n <Bar dataKey=\"human\" stackId=\"x\" fill=\"var(--color-bg-brand)\" radius={[0, 0, 0, 0]} />\r\n <Bar dataKey=\"ai\" stackId=\"x\" fill=\"var(--color-bg-brand-subtle)\" radius={[6, 6, 0, 0]} />\r\n </BarChart>\r\n </ResponsiveContainer>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/** Donut com Recharts PieChart — tooltip + hover + total no centro. */\r\nfunction CurrentVisitsCard() {\r\n const total = REGIONS.reduce((s, r) => s + r.value, 0);\r\n return (\r\n <SectionCard title=\"Origem dos atendimentos\" subtitle=\"Por região\" className=\"h-full\">\r\n {/* Donut — wrapper relativo ancora o center dentro do círculo */}\r\n <div className=\"relative flex items-center justify-center\" style={{ height: 210 }}>\r\n <ResponsiveContainer width=\"100%\" height={210}>\r\n <PieChart margin={{ top: 0, right: 0, bottom: 0, left: 0 }}>\r\n <Pie\r\n data={REGIONS}\r\n dataKey=\"value\"\r\n nameKey=\"name\"\r\n cx=\"50%\"\r\n cy=\"50%\"\r\n innerRadius={70}\r\n outerRadius={92}\r\n paddingAngle={3}\r\n startAngle={90}\r\n endAngle={-270}\r\n stroke=\"none\"\r\n isAnimationActive\r\n >\r\n {REGIONS.map((r) => (\r\n <Cell key={r.name} fill={r.color} />\r\n ))}\r\n </Pie>\r\n <Tooltip\r\n contentStyle={CHART_TOOLTIP_STYLE}\r\n labelStyle={CHART_TOOLTIP_LABEL_STYLE}\r\n formatter={(value) => Number(value).toLocaleString(\"pt-BR\")}\r\n />\r\n </PieChart>\r\n </ResponsiveContainer>\r\n {/* Total absolute no centro do donut */}\r\n <div className=\"absolute inset-0 flex flex-col items-center justify-center pointer-events-none\">\r\n <span className=\"text-caption-sm text-fg-muted\">Total</span>\r\n <span className=\"text-body-2xl font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\r\n {total.toLocaleString(\"pt-BR\")}\r\n </span>\r\n </div>\r\n </div>\r\n {/* Lista de regiões — mt-auto empurra pro bottom do card */}\r\n <div className=\"mt-auto flex flex-col gap-gp-md\">\r\n {REGIONS.map((r) => (\r\n <div key={r.name} className=\"flex items-center gap-gp-md\">\r\n <span\r\n className=\"size-[10px] rounded-radius-full shrink-0\"\r\n style={{ background: r.color }}\r\n aria-hidden\r\n />\r\n <span className=\"flex-1 text-body-xs text-fg-default\">{r.name}</span>\r\n <span className=\"text-body-xs font-normal text-fg-default [font-variant-numeric:tabular-nums]\">\r\n {r.value.toLocaleString(\"pt-BR\")}\r\n </span>\r\n <Chip\r\n color={r.positive ? \"success\" : \"danger\"}\r\n variant=\"soft\"\r\n size=\"sm\"\r\n shape=\"pill\"\r\n >\r\n {r.delta}\r\n </Chip>\r\n </div>\r\n ))}\r\n </div>\r\n </SectionCard>\r\n );\r\n}\r\n\r\nfunction PersonAvatar({ initials, hex, size = \"md\" }: { initials: string; hex: string; size?: \"sm\" | \"md\" }) {\r\n const cls = size === \"sm\" ? \"size-[24px] text-caption-xs\" : \"size-[32px] text-body-xs font-normal\";\r\n return (\r\n <Avatar className={cls} style={{ background: hex }}>\r\n <AvatarFallback className=\"bg-transparent text-white font-bold\">{initials}</AvatarFallback>\r\n </Avatar>\r\n );\r\n}\r\n\r\nfunction OpenConversationsList() {\r\n return (\r\n <ul className=\"m-0 p-0 list-none flex flex-col\">\r\n {OPEN_CONVS.map((c) => {\r\n const ChIcon = CHANNELS.find((ch) => ch.id === c.channel)?.icon ?? MessageSquare;\r\n return (\r\n <li\r\n key={c.id}\r\n className=\"flex items-center gap-gp-md py-pad-lg border-b border-border-subtle last:border-b-0 cursor-pointer hover:[&>*]:opacity-90 transition-opacity\"\r\n >\r\n <PersonAvatar initials={c.initials} hex={c.hex} size=\"md\" />\r\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\r\n <div className=\"flex items-center gap-gp-sm\">\r\n <span className=\"text-body-sm font-semibold text-fg-default whitespace-nowrap overflow-hidden text-ellipsis\">\r\n {c.name}\r\n </span>\r\n <span className=\"text-caption-sm text-fg-subtle [font-variant-numeric:tabular-nums] shrink-0\">\r\n {c.id}\r\n </span>\r\n </div>\r\n <div className=\"flex items-center gap-gp-sm flex-wrap text-caption-sm text-fg-muted\">\r\n <span className=\"inline-flex items-center gap-[3px]\">\r\n <ChIcon size={11} strokeWidth={1.8} aria-hidden />\r\n {CHANNELS.find((ch) => ch.id === c.channel)?.name ?? c.channel}\r\n </span>\r\n {c.agent && (\r\n <>\r\n <span aria-hidden>·</span>\r\n <span>{c.agent.name}</span>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"flex flex-col items-end gap-[4px] shrink-0\">\r\n <Chip color={STATUS_TONE[c.status]} variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n {STATUS_LABEL[c.status]}\r\n </Chip>\r\n <span className=\"inline-flex items-center gap-[3px] text-caption-sm text-fg-muted [font-variant-numeric:tabular-nums]\">\r\n <Clock size={10} strokeWidth={1.8} aria-hidden />\r\n {c.waitTime}\r\n </span>\r\n </div>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n}\r\n\r\nfunction AgentPerformanceList() {\r\n return (\r\n <ul className=\"m-0 p-0 list-none flex flex-col\">\r\n {AGENTS.map((a, i) => (\r\n <li\r\n key={a.id}\r\n className=\"flex items-center gap-gp-md py-pad-lg border-b border-border-subtle last:border-b-0\"\r\n >\r\n <span className=\"grid place-items-center size-[20px] rounded-radius-full bg-bg-muted text-caption-sm font-bold text-fg-muted shrink-0 [font-variant-numeric:tabular-nums]\">\r\n {i + 1}\r\n </span>\r\n <div className=\"relative shrink-0\">\r\n <PersonAvatar initials={a.initials} hex={a.hex} size=\"md\" />\r\n <span\r\n className={cn(\r\n \"absolute -bottom-[1px] -right-[1px] size-[8px] rounded-radius-full border border-bg-surface\",\r\n a.active ? \"bg-bg-success\" : \"bg-bg-muted\",\r\n )}\r\n aria-label={a.active ? \"online\" : \"offline\"}\r\n />\r\n </div>\r\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\r\n <span className=\"text-body-sm font-semibold text-fg-default whitespace-nowrap overflow-hidden text-ellipsis\">\r\n {a.name}\r\n </span>\r\n <span className=\"text-caption-sm text-fg-muted\">\r\n {a.resolved} resolvidos · {a.avgTime} médio\r\n </span>\r\n </div>\r\n <div className=\"flex items-center gap-[3px] shrink-0 text-body-xs font-semibold text-fg-default\">\r\n <Star size={11} strokeWidth={2} className=\"text-fg-warning fill-current\" aria-hidden />\r\n <span className=\"[font-variant-numeric:tabular-nums]\">{a.csat.toFixed(1)}</span>\r\n </div>\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n}\r\n\r\n/** Canais com volume + status — estilo Campaign Performance. */\r\nfunction ChannelPerformanceList() {\r\n return (\r\n <ul className=\"m-0 p-0 list-none flex flex-col\">\r\n {CHANNELS.map((c) => {\r\n const Icon = c.icon;\r\n return (\r\n <li\r\n key={c.id}\r\n className=\"flex items-center gap-gp-lg py-pad-lg border-b border-border-subtle last:border-b-0\"\r\n >\r\n <span\r\n className=\"grid place-items-center size-[36px] rounded-radius-full shrink-0 text-white\"\r\n style={{ background: c.color }}\r\n aria-hidden\r\n >\r\n <Icon size={16} strokeWidth={1.8} />\r\n </span>\r\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\r\n <span className=\"text-body-sm font-semibold text-fg-default\">{c.name}</span>\r\n <span className=\"text-caption-sm text-fg-muted\">\r\n {c.volume} mensagens\r\n </span>\r\n </div>\r\n <Chip color={CHANNEL_STATUS_TONE[c.status]} variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n {CHANNEL_STATUS_LABEL[c.status]}\r\n </Chip>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n}\r\n\r\n/** Traffic Data — tabela com source/visits/bounce/goal. */\r\nfunction TrafficDataTable() {\r\n return (\r\n <SectionCard\r\n title=\"Origem do tráfego\"\r\n subtitle=\"Fontes de aquisição\"\r\n className=\"flex-1 h-full\"\r\n action={\r\n <div className=\"relative max-w-[200px]\">\r\n <Search\r\n size={14}\r\n strokeWidth={1.8}\r\n className=\"absolute left-pad-lg top-1/2 -translate-y-1/2 text-fg-muted pointer-events-none\"\r\n />\r\n <input\r\n type=\"search\"\r\n placeholder=\"Buscar...\"\r\n className=\"h-form-md pl-[34px] pr-pad-md w-full rounded-radius-md bg-bg-muted border border-border-input text-body-md text-fg-default placeholder:text-fg-muted focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand focus-visible:border-border-brand\"\r\n />\r\n </div>\r\n }\r\n >\r\n <div className=\"overflow-x-auto -mx-pad-2xl px-pad-2xl\">\r\n <table className=\"w-full text-body-md border-separate border-spacing-0\">\r\n <thead>\r\n <tr className=\"text-caption-sm font-bold tracking-[0.04em] text-fg-subtle uppercase\">\r\n <th className=\"text-left pb-pad-md border-b border-border-subtle font-bold\">Fonte</th>\r\n <th className=\"text-right pb-pad-md border-b border-border-subtle font-bold\">Visitas</th>\r\n <th className=\"text-left pb-pad-md pl-pad-2xl border-b border-border-subtle font-bold\">Bounce</th>\r\n <th className=\"text-left pb-pad-md pl-pad-2xl border-b border-border-subtle font-bold\">Meta (%)</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {TRAFFIC_ROWS.map((r) => (\r\n <tr key={r.source} className=\"text-body-xs font-normal\">\r\n <td className=\"py-pad-lg border-b border-border-subtle text-fg-default font-medium\">\r\n {r.source}\r\n </td>\r\n <td className=\"py-pad-lg border-b border-border-subtle text-right text-fg-default [font-variant-numeric:tabular-nums]\">\r\n {r.visits}\r\n </td>\r\n <td className=\"py-pad-sm pl-pad-2xl border-b border-border-subtle text-fg-muted [font-variant-numeric:tabular-nums]\">\r\n {r.bounce}\r\n </td>\r\n <td className=\"py-pad-sm pl-pad-2xl border-b border-border-subtle\">\r\n <div className=\"flex items-center gap-gp-md\">\r\n <div className=\"flex-1 h-[6px] bg-bg-muted rounded-radius-full overflow-hidden min-w-[80px]\">\r\n <div\r\n className=\"h-full rounded-radius-full\"\r\n style={{ width: `${r.goal}%`, background: r.goalColor }}\r\n />\r\n </div>\r\n <span className=\"text-caption-sm font-semibold text-fg-default [font-variant-numeric:tabular-nums] shrink-0 min-w-[32px] text-right\">\r\n {r.goal}%\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n </SectionCard>\r\n );\r\n}\r\n\r\n/* ─────────────────────────────────────────────────────────────\r\n * Page\r\n * ───────────────────────────────────────────────────────────── */\r\n\r\nexport default function DashboardShowcase() {\r\n const { theme, setTheme } = useTheme();\r\n const [period, setPeriod] = useState<string>(\"Últimos 7 dias\");\r\n\r\n return (\r\n <AppShell\r\n contexts={APP_SHELL_CONTEXTS}\r\n defaultActiveContextId=\"inbox\"\r\n defaultActiveItemHref=\"#dashboard\"\r\n breadcrumb={[{ label: \"Dashboard\" }]}\r\n commandGroups={APP_SHELL_COMMANDS}\r\n notifications={{\r\n items: APP_SHELL_NOTIFICATIONS,\r\n onMarkAllRead: () => alert(\"Marcar todas como lidas\"),\r\n onMoreActions: () => alert(\"Mais ações\"),\r\n onViewAll: () => alert(\"Ver todas\"),\r\n }}\r\n messages={{\r\n items: APP_SHELL_MESSAGES,\r\n onNewMessage: () => alert(\"Nova mensagem\"),\r\n onExpand: () => alert(\"Expandir\"),\r\n onViewAll: () => alert(\"Ver todas\"),\r\n }}\r\n theme={theme}\r\n onThemeChange={(id) => setTheme(id as Theme)}\r\n themeOptions={APP_SHELL_THEME_OPTIONS}\r\n >\r\n <PageHeader\r\n title=\"Dashboard\"\r\n description=\"Visão geral do atendimento em tempo real — KPIs, volume, canais e performance da equipe.\"\r\n badge={\r\n <Chip color=\"primary\" variant=\"soft\" size=\"sm\" shape=\"pill\">\r\n Hoje\r\n </Chip>\r\n }\r\n actions={\r\n <>\r\n <Button\r\n color=\"secondary\"\r\n variant=\"outline\"\r\n size=\"icon-md\"\r\n aria-label=\"Mais ações\"\r\n >\r\n <MoreVertical />\r\n </Button>\r\n <Button\r\n color=\"secondary\"\r\n variant=\"outline\"\r\n size=\"md\"\r\n iconLeft={<Calendar />}\r\n iconRight={<ChevronDown />}\r\n onClick={() => {\r\n const next = period === \"Últimos 7 dias\" ? \"Últimos 30 dias\" : \"Últimos 7 dias\";\r\n setPeriod(next);\r\n }}\r\n >\r\n {period}\r\n </Button>\r\n </>\r\n }\r\n />\r\n\r\n {/* Row 1 — Welcome (2/3) + KeyInsights (1/3) — alturas iguais */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\r\n <div className=\"lg:col-span-2 flex\">\r\n <WelcomeBanner />\r\n </div>\r\n <KeyInsightsCard />\r\n </section>\r\n\r\n {/* Row 2 — KPIs primários (6) */}\r\n <section\r\n aria-label=\"KPIs principais\"\r\n className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-gp-2xl\"\r\n >\r\n {KPIS_PRIMARY.map((kpi) => (\r\n <KpiCard key={kpi.id} kpi={kpi} />\r\n ))}\r\n </section>\r\n\r\n {/* Row 3 — Volume stacked (2/3) + Current visits donut (1/3) — alturas iguais */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\r\n <SectionCard\r\n title=\"Volume de atendimentos\"\r\n subtitle=\"Humano vs IA — ano corrente\"\r\n className=\"lg:col-span-2 h-full\"\r\n >\r\n <VolumeStackedChart />\r\n </SectionCard>\r\n <CurrentVisitsCard />\r\n </section>\r\n\r\n {/* Row 4 — KPIs qualidade (4) — APÓS os charts */}\r\n <section\r\n aria-label=\"Qualidade do atendimento\"\r\n className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-gp-2xl\"\r\n >\r\n {KPIS_QUALITY.map((kpi) => (\r\n <KpiCard key={kpi.id} kpi={kpi} />\r\n ))}\r\n </section>\r\n\r\n {/* Row 5 — Open + Agents */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-2 gap-gp-2xl\">\r\n <SectionCard\r\n title=\"Atendimentos em aberto\"\r\n subtitle=\"5 ativos agora\"\r\n action={\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"sm\">\r\n Ver todos\r\n </Button>\r\n }\r\n >\r\n <OpenConversationsList />\r\n </SectionCard>\r\n <SectionCard\r\n title=\"Performance da equipe\"\r\n subtitle=\"Ranking de hoje\"\r\n action={\r\n <Button color=\"secondary\" variant=\"ghost\" size=\"sm\">\r\n Ver equipe\r\n </Button>\r\n }\r\n >\r\n <AgentPerformanceList />\r\n </SectionCard>\r\n </section>\r\n\r\n {/* Row 6 — Channels (1/3) + Traffic Data (2/3). Ambos h-full pra\r\n alturas se igualarem dentro da row do grid. */}\r\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\r\n <SectionCard title=\"Canais\" subtitle=\"Volume e status\" className=\"h-full\">\r\n <ChannelPerformanceList />\r\n </SectionCard>\r\n <div className=\"lg:col-span-2 flex\">\r\n <TrafficDataTable />\r\n </div>\r\n </section>\r\n </AppShell>\r\n );\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const appShellMocks = require("../chunks/app-shell-mocks-oO_IV3Gw.cjs");
|
|
4
4
|
const chatV2Mocks = require("../chunks/chat-v2-mocks-BV9Wha_Z.cjs");
|
|
5
|
-
const clientesShowcaseMocks = require("../chunks/clientes-showcase-mocks-
|
|
5
|
+
const clientesShowcaseMocks = require("../chunks/clientes-showcase-mocks-DygUqkkh.cjs");
|
|
6
6
|
exports.APP_SHELL_COMMANDS = appShellMocks.APP_SHELL_COMMANDS;
|
|
7
7
|
exports.APP_SHELL_CONTEXTS = appShellMocks.APP_SHELL_CONTEXTS;
|
|
8
8
|
exports.APP_SHELL_LAYOUT_OPTIONS = appShellMocks.APP_SHELL_LAYOUT_OPTIONS;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A, a, b, c, d, e, f } from "../chunks/app-shell-mocks-kWIVSzLs.mjs";
|
|
2
2
|
import { c as c2 } from "../chunks/chat-v2-mocks-DvZRkhmz.mjs";
|
|
3
|
-
import { c as c3 } from "../chunks/clientes-showcase-mocks-
|
|
3
|
+
import { c as c3 } from "../chunks/clientes-showcase-mocks-ayU1SDOA.mjs";
|
|
4
4
|
export {
|
|
5
5
|
A as APP_SHELL_COMMANDS,
|
|
6
6
|
a as APP_SHELL_CONTEXTS,
|
|
@@ -9,32 +9,38 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export * from './ui/AlertModal';
|
|
11
11
|
export * from './ui/AppShell';
|
|
12
|
-
export * from './ui/
|
|
12
|
+
export * from './ui/avatar-ig';
|
|
13
13
|
export * from './ui/Button';
|
|
14
|
+
export * from './ui/ButtonGroup';
|
|
15
|
+
export * from './ui/CardCheckbox';
|
|
14
16
|
export * from './ui/Chip';
|
|
17
|
+
export * from './ui/Combobox';
|
|
15
18
|
export * from './ui/DataTable';
|
|
16
19
|
export * from './ui/FloatingPanel';
|
|
17
20
|
export * from './ui/FooterTable';
|
|
18
21
|
export * from './ui/FormField';
|
|
19
22
|
export * from './ui/Header';
|
|
23
|
+
export * from './ui/Icon';
|
|
20
24
|
export * from './ui/Kanban';
|
|
25
|
+
export * from './ui/Kpi';
|
|
21
26
|
export * from './ui/MenuSidebar';
|
|
22
27
|
export * from './ui/Modal';
|
|
23
28
|
export * from './ui/PageHeader';
|
|
24
29
|
export * from './ui/Panel';
|
|
30
|
+
export * from './ui/SingleMenuSidebar';
|
|
25
31
|
export * from './ui/Table';
|
|
26
|
-
export * from './ui/TabelaTeste';
|
|
27
32
|
/**
|
|
28
33
|
* TableToolbar: re-exporta tudo, mas renomeia SortDirection para evitar
|
|
29
34
|
* colisão com Table (Table.SortDirection = "asc" | "desc" | null vs.
|
|
30
35
|
* TableToolbar.SortDirection = "asc" | "desc").
|
|
31
36
|
*/
|
|
32
|
-
export { TableToolbar, ToolbarSearch, ToolbarDivider, ToolbarSegmented, ToolbarTabs, ToolbarToolButton, ToolbarSaveButton, ToolbarApplied, ToolbarMobileDialog, ToolbarMobileSheet, ToolbarMobileSection, BulkActionsBar, BulkActionButton, MoreMenu, MoreMenuItem, MoreMenuCheckboxItem, MoreMenuRadioGroup, MoreMenuRadioItem, MoreMenuSeparator, MoreMenuLabel, ColsPopover, SortPopover, ViewsPopover, AddViewModal, TableToolbarViews, FilterPopover, DEFAULT_FILTER_OPERATORS, useToolbarFilters, useToolbarSort, } from './ui/TableToolbar';
|
|
33
|
-
export type { TableToolbarProps, ToolbarSearchProps, ToolbarDividerProps, ToolbarSegmentedProps, ToolbarSegmentedItem, ToolbarTabsProps, ToolbarTab, ToolbarToolButtonProps, ToolbarSaveButtonProps, ToolbarAppliedProps, ToolbarMobileDialogProps, ToolbarMobileSheetProps, ToolbarMobileSectionProps, BulkActionsBarProps, BulkActionButtonProps, AppliedFilter, AppliedFilterOp, SortDirection as ToolbarSortDirection, MoreMenuProps, ColsPopoverProps, ColsPopoverColumn, SortPopoverProps, SortPopoverColumn, SortPopoverCriterion, ViewsPopoverProps, ViewsPopoverView, AddViewModalProps, AddViewModalSubmit, TableToolbarViewsProps, TableToolbarViewsItem, FilterPopoverProps, FilterPopoverColumn, FilterPopoverOperator, FilterPopoverEntry, ToolbarFilterEntry, UseToolbarFiltersOptions, ToolbarSortEntry, UseToolbarSortOptions, } from './ui/TableToolbar';
|
|
37
|
+
export { TableToolbar, ToolbarSearch, ToolbarDivider, ToolbarSegmented, ToolbarTabs, ToolbarToolButton, ToolbarSaveButton, ToolbarApplied, ToolbarMobileDialog, ToolbarMobileSheet, ToolbarMobileSection, BulkActionsBar, BulkActionButton, MoreMenu, MoreMenuItem, MoreMenuCheckboxItem, MoreMenuRadioGroup, MoreMenuRadioItem, MoreMenuSeparator, MoreMenuLabel, ColsPopover, ColsPanel, SortPopover, SortPanel, ViewsPopover, AddViewModal, TableToolbarViews, FilterPopover, FilterPanel, isFilterEntryActive, DEFAULT_FILTER_OPERATORS, ToolbarFilterControl, ToolbarSettingsMenu, ToolbarSimpleFilterDrawer, useToolbarFilters, useToolbarSort, useToolbarFilterControl, } from './ui/TableToolbar';
|
|
38
|
+
export type { TableToolbarProps, ToolbarSearchProps, ToolbarDividerProps, ToolbarSegmentedProps, ToolbarSegmentedItem, ToolbarTabsProps, ToolbarTab, ToolbarToolButtonProps, ToolbarSaveButtonProps, ToolbarAppliedProps, ToolbarMobileDialogProps, ToolbarMobileSheetProps, ToolbarMobileSectionProps, BulkActionsBarProps, BulkActionButtonProps, AppliedFilter, AppliedFilterOp, SortDirection as ToolbarSortDirection, MoreMenuProps, ColsPopoverProps, ColsPopoverColumn, SortPopoverProps, SortPopoverColumn, SortPopoverCriterion, ViewsPopoverProps, ViewsPopoverView, AddViewModalProps, AddViewModalSubmit, TableToolbarViewsProps, TableToolbarViewsItem, FilterPopoverProps, FilterPanelProps, FilterPopoverColumn, FilterPopoverOperator, FilterPopoverEntry, ToolbarFilterEntry, ColsPanelProps, SortPanelProps, ToolbarFilterControlProps, ToolbarSettingsMenuProps, ToolbarSettingsMenuView, ToolbarSimpleFilterDrawerProps, UseToolbarFilterControlResult, UseToolbarFiltersOptions, UseToolbarFiltersResult, ToolbarSortEntry, UseToolbarSortOptions, UseToolbarSortResult, } from './ui/TableToolbar';
|
|
34
39
|
export { Badge, badgeVariants } from './shadcn';
|
|
35
|
-
export type { BadgeProps } from './shadcn';
|
|
40
|
+
export type { BadgeProps, BadgeVariantProps } from './shadcn';
|
|
36
41
|
export { Input, inputVariants } from './shadcn';
|
|
37
|
-
export type { InputProps } from './shadcn';
|
|
42
|
+
export type { InputProps, InputVariantProps, InputState } from './shadcn';
|
|
38
43
|
export { InputGroup, InputGroupInput, InputGroupTextarea, InputGroupAddon, InputGroupText, InputGroupButton, } from './shadcn';
|
|
39
|
-
export
|
|
44
|
+
export { inputGroupVariants } from './shadcn';
|
|
45
|
+
export type { InputGroupProps, InputGroupVariantProps, InputGroupInputProps, InputGroupTextareaProps, InputGroupAddonProps, InputGroupAddonAlign, InputGroupTextProps, InputGroupButtonProps, InputGroupState, } from './shadcn';
|
|
40
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
|
|
2
|
+
declare const AspectRatio: import('react').ForwardRefExoticComponent<AspectRatioPrimitive.AspectRatioProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export { AspectRatio };
|
|
4
|
+
//# sourceMappingURL=aspect-ratio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/aspect-ratio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAEpE,QAAA,MAAM,WAAW,kIAA4B,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAwB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIlF,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,aAAuB,EACvB,UAAU,EACV,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAwB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIlF,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,aAAuB,EACvB,UAAU,EACV,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,2CAqFxC;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,2CAuDxC;AAED,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as useEmblaCarousel, UseEmblaCarouselType } from 'embla-carousel-react';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type CarouselApi = UseEmblaCarouselType[1];
|
|
4
|
+
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
5
|
+
type CarouselOptions = UseCarouselParameters[0];
|
|
6
|
+
type CarouselPlugin = UseCarouselParameters[1];
|
|
7
|
+
type CarouselProps = {
|
|
8
|
+
opts?: CarouselOptions;
|
|
9
|
+
plugins?: CarouselPlugin;
|
|
10
|
+
orientation?: "horizontal" | "vertical";
|
|
11
|
+
setApi?: (api: CarouselApi) => void;
|
|
12
|
+
};
|
|
13
|
+
declare const Carousel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & CarouselProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const CarouselContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
declare const CarouselItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const CarouselPrevious: React.ForwardRefExoticComponent<Omit<import('../ui/Button').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
17
|
+
declare const CarouselNext: React.ForwardRefExoticComponent<Omit<import('../ui/Button').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
18
|
+
export { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, };
|
|
19
|
+
//# sourceMappingURL=carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,gBAAgB,EAAE,EACvB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAM7B,KAAK,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAC1C,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAChE,KAAK,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC/C,KAAK,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAE9C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;CACpC,CAAA;AAuBD,QAAA,MAAM,QAAQ,6HAyGb,CAAA;AAGD,QAAA,MAAM,eAAe,6GAmBnB,CAAA;AAGF,QAAA,MAAM,YAAY,6GAmBhB,CAAA;AAGF,QAAA,MAAM,gBAAgB,8KA2BpB,CAAA;AAGF,QAAA,MAAM,YAAY,8KA2BhB,CAAA;AAGF,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
2
|
+
declare const Collapsible: import('react').ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
3
|
+
declare const CollapsibleTrigger: import('react').ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
4
|
+
declare const CollapsibleContent: import('react').ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleContentProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent };
|
|
6
|
+
//# sourceMappingURL=collapsible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAA;AAEnE,QAAA,MAAM,WAAW,kIAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,4IAA0C,CAAA;AAElE,QAAA,MAAM,kBAAkB,yIAA0C,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
3
|
+
declare const ContextMenu: React.FC<ContextMenuPrimitive.ContextMenuProps>;
|
|
4
|
+
declare const ContextMenuTrigger: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React.RefAttributes<HTMLSpanElement>>;
|
|
5
|
+
declare const ContextMenuGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const ContextMenuPortal: React.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
|
|
7
|
+
declare const ContextMenuSub: React.FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
8
|
+
declare const ContextMenuRadioGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
declare const ContextMenuSubTrigger: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
10
|
+
inset?: boolean;
|
|
11
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const ContextMenuSubContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
declare const ContextMenuContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const ContextMenuItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
15
|
+
inset?: boolean;
|
|
16
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
declare const ContextMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
declare const ContextMenuRadioItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const ContextMenuLabel: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
20
|
+
inset?: boolean;
|
|
21
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const ContextMenuSeparator: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const ContextMenuShortcut: {
|
|
24
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
27
|
+
export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
|
|
28
|
+
//# sourceMappingURL=context-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/context-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAKpE,QAAA,MAAM,WAAW,iDAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,sHAA+B,CAAA;AAEvD,QAAA,MAAM,gBAAgB,mHAA6B,CAAA;AAEnD,QAAA,MAAM,iBAAiB,uDAA8B,CAAA;AAErD,QAAA,MAAM,cAAc,oDAA2B,CAAA;AAE/C,QAAA,MAAM,qBAAqB,wHAAkC,CAAA;AAE7D,QAAA,MAAM,qBAAqB;YAGf,OAAO;wCAejB,CAAA;AAGF,QAAA,MAAM,qBAAqB,2KAYzB,CAAA;AAGF,QAAA,MAAM,kBAAkB,wKActB,CAAA;AAGF,QAAA,MAAM,eAAe;YAGT,OAAO;wCAYjB,CAAA;AAGF,QAAA,MAAM,uBAAuB,6KAoB3B,CAAA;AAIF,QAAA,MAAM,oBAAoB,0KAmBxB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGV,OAAO;wCAYjB,CAAA;AAGF,QAAA,MAAM,oBAAoB,0KASxB,CAAA;AAGF,QAAA,MAAM,mBAAmB;8BAGtB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAUvC,CAAA;AAGD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Drawer as DrawerPrimitive } from 'vaul';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const Drawer: {
|
|
4
|
+
({ shouldScaleBackground, ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
declare const DrawerTrigger: React.ForwardRefExoticComponent<import('@radix-ui/react-dialog').DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
8
|
+
declare const DrawerPortal: typeof import('vaul').Portal;
|
|
9
|
+
declare const DrawerClose: React.ForwardRefExoticComponent<import('@radix-ui/react-dialog').DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
10
|
+
declare const DrawerOverlay: React.ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dialog').DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
declare const DrawerContent: React.ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dialog').DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const DrawerHeader: {
|
|
13
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
declare const DrawerFooter: {
|
|
17
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
20
|
+
declare const DrawerTitle: React.ForwardRefExoticComponent<Omit<import('@radix-ui/react-dialog').DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
21
|
+
declare const DrawerDescription: React.ForwardRefExoticComponent<Omit<import('@radix-ui/react-dialog').DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
22
|
+
export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription, };
|
|
23
|
+
//# sourceMappingURL=drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,MAAM,CAAA;AAIhD,QAAA,MAAM,MAAM;0CAGT,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;;CAKnD,CAAA;AAGD,QAAA,MAAM,aAAa,+HAA0B,CAAA;AAE7C,QAAA,MAAM,YAAY,8BAAyB,CAAA;AAE3C,QAAA,MAAM,WAAW,6HAAwB,CAAA;AAEzC,QAAA,MAAM,aAAa,kOASjB,CAAA;AAGF,QAAA,MAAM,aAAa,kOAkBjB,CAAA;AAGF,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAKtC,CAAA;AAGD,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAKtC,CAAA;AAGD,QAAA,MAAM,WAAW,qLAYf,CAAA;AAGF,QAAA,MAAM,iBAAiB,+LASrB,CAAA;AAGF,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAA"}
|
|
@@ -27,7 +27,14 @@ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<Dropd
|
|
|
27
27
|
inset?: boolean;
|
|
28
28
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
29
29
|
declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
-
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> &
|
|
30
|
+
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
31
|
+
/**
|
|
32
|
+
* Em telas <md, transforma o menu em sheet bottom-up colado nas bordas,
|
|
33
|
+
* com backdrop suave (toque fora fecha via dismiss do Radix). Default true.
|
|
34
|
+
* Passe `false` pra manter o popover ancorado no trigger também em mobile.
|
|
35
|
+
*/
|
|
36
|
+
mobileSheet?: boolean;
|
|
37
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
31
38
|
declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
32
39
|
inset?: boolean;
|
|
33
40
|
/** Variante semântica — "destructive" pinta fg-danger e usa bg-danger-muted no hover */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/dropdown-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AAKtE;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAA,MAAM,YAAY,mDAA6B,CAAA;AAE/C,QAAA,MAAM,mBAAmB,0HAAgC,CAAA;AAEzD,QAAA,MAAM,iBAAiB,qHAA8B,CAAA;AAErD,QAAA,MAAM,kBAAkB,yDAA+B,CAAA;AAEvD,QAAA,MAAM,eAAe,sDAA4B,CAAA;AAEjD,QAAA,MAAM,sBAAsB,0HAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/dropdown-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AAKtE;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAA,MAAM,YAAY,mDAA6B,CAAA;AAE/C,QAAA,MAAM,mBAAmB,0HAAgC,CAAA;AAEzD,QAAA,MAAM,iBAAiB,qHAA8B,CAAA;AAErD,QAAA,MAAM,kBAAkB,yDAA+B,CAAA;AAEvD,QAAA,MAAM,eAAe,sDAA4B,CAAA;AAEjD,QAAA,MAAM,sBAAsB,0HAAmC,CAAA;AA2D/D,QAAA,MAAM,sBAAsB;YAGhB,OAAO;wCAiBjB,CAAA;AAKF,QAAA,MAAM,sBAAsB,6KAS1B,CAAA;AAKF,QAAA,MAAM,mBAAmB;IAGrB;;;;OAIG;kBACW,OAAO;wCAsCvB,CAAA;AAIF,QAAA,MAAM,gBAAgB;YAGV,OAAO;IACf,wFAAwF;cAC9E,SAAS,GAAG,aAAa;wCAarC,CAAA;AAIF,QAAA,MAAM,wBAAwB,+KAsB5B,CAAA;AAKF;;;;;;;GAOG;AACH,QAAA,MAAM,qBAAqB,4KAyBzB,CAAA;AAIF,QAAA,MAAM,iBAAiB;YAGX,OAAO;wCAYjB,CAAA;AAIF,QAAA,MAAM,qBAAqB,4KASzB,CAAA;AAIF,QAAA,MAAM,oBAAoB;8BAGvB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAOvC,CAAA;AAGD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3
|
+
/** Default snappy (openDelay 200 / closeDelay 100) — o default do Radix (700) é lento. */
|
|
4
|
+
declare const HoverCard: ({ openDelay, closeDelay, ...props }: React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Root>) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare const HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
6
|
+
declare const HoverCardContent: React.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
8
|
+
//# sourceMappingURL=hover-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../../src/components/shadcn/hover-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,4BAA4B,CAAA;AAIhE,0FAA0F;AAC1F,QAAA,MAAM,SAAS,GAAI,qCAIhB,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,4CAEhE,CAAA;AAED,QAAA,MAAM,gBAAgB,oHAA6B,CAAA;AAEnD,QAAA,MAAM,gBAAgB,oKAcpB,CAAA;AAGF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
|