@12-apps/ui 6.37.0 → 6.39.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/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.body.js +3 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.cells.js +2 -1
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +4 -4
- package/dist/_internal/components/data-display/DataGrid/DataGrid.model.js +2 -1
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +49 -49
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +61 -62
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +4 -5
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +4 -5
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +9 -10
- package/dist/_internal/components/data-display/DataViews/base-card.js +4 -5
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -6
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -5
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +9 -10
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +14 -14
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +46 -46
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +14 -14
- package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +11 -11
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-overflow-costs.js +4 -3
- package/dist/_internal/components/data-display/DataViews/data-views-overflow.js +3 -2
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +18 -18
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +18 -19
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +17 -17
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +2 -2
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
- package/dist/_internal/components/data-display/DataViews/save-view-preview.js +2 -2
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +4 -4
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +12 -12
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +8 -8
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +13 -13
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -7
- package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/mapProjection.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
- package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
- package/dist/_internal/components/data-display/Table/Table.helpers.js +5 -3
- package/dist/_internal/components/data-display/Table/Table.hooks.js +2 -1
- package/dist/_internal/components/data-display/Table/Table.js +4 -4
- package/dist/_internal/components/data-display/Table/TableParts.hooks.js +4 -2
- package/dist/_internal/components/data-display/Table/TableParts.js +4 -2
- package/dist/_internal/components/data-display/index.js +27 -27
- package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -3
- package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +2 -2
- package/dist/_internal/components/feedback/Modal/Modal.js +3 -2
- package/dist/_internal/components/feedback/Modal/Modal.styles.js +2 -1
- package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
- package/dist/_internal/components/feedback/Sonner/SonnerToast.js +1 -1
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -3
- package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +3 -2
- package/dist/_internal/components/feedback/StackedModal/StackedModal.styles.js +2 -1
- package/dist/_internal/components/feedback/Toast/Toast.js +2 -1
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.geometry.js +1 -1
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.hooks.js +3 -2
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +5 -4
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialStepBody.js +2 -1
- package/dist/_internal/components/feedback/index.js +14 -15
- package/dist/_internal/components/form/Calendar/Calendar.js +5 -4
- package/dist/_internal/components/form/Calendar/CalendarDay.js +2 -1
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +3 -2
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +4 -3
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +5 -5
- package/dist/_internal/components/form/Switch/Switch.js +4 -4
- package/dist/_internal/components/form/Switch/Switch.metrics.js +5 -1
- package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
- package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
- package/dist/_internal/components/form/index.js +9 -9
- package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -2
- package/dist/_internal/components/index.js +117 -118
- package/dist/_internal/components/layout/Accordion/Accordion.js +3 -2
- package/dist/_internal/components/layout/Accordion/Accordion.styles.js +2 -1
- package/dist/_internal/components/layout/Box/Box.js +1 -1
- package/dist/_internal/components/layout/Card/Card.js +3 -3
- package/dist/_internal/components/layout/Card/Card.styles.js +2 -2
- package/dist/_internal/components/layout/CardGrid/CardGrid.js +2 -1
- package/dist/_internal/components/layout/Collapsible/Collapsible.helpers.js +2 -1
- package/dist/_internal/components/layout/Collapsible/Collapsible.js +3 -2
- package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +1 -1
- package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
- package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +1 -1
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +1 -1
- package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +1 -1
- package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +1 -1
- package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +1 -1
- package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
- package/dist/_internal/components/layout/Dashboard/DashboardParts.js +1 -1
- package/dist/_internal/components/layout/Drawer/Drawer.js +2 -1
- package/dist/_internal/components/layout/Resizable/Resizable.helpers.js +8 -3
- package/dist/_internal/components/layout/Resizable/Resizable.hooks.js +3 -2
- package/dist/_internal/components/layout/Resizable/Resizable.js +4 -3
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.helpers.js +1 -1
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +6 -5
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.styles.js +6 -3
- package/dist/_internal/components/layout/ScrollArea/ScrollAreaContent.js +2 -1
- package/dist/_internal/components/layout/ScrollArea/ScrollViewport.js +3 -2
- package/dist/_internal/components/layout/Separator/Separator.js +4 -2
- package/dist/_internal/components/layout/Separator/Separator.styles.js +3 -1
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.items.js +3 -3
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +8 -8
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.styles.js +6 -5
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +5 -5
- package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +3 -3
- package/dist/_internal/components/layout/SettingsLayout/SettingsSectionHeader.js +2 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsStatusMarker.js +2 -2
- package/dist/_internal/components/layout/Sidebar/Sidebar.js +2 -1
- package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -2
- package/dist/_internal/components/layout/Skeleton/Skeleton.styles.js +6 -3
- package/dist/_internal/components/layout/Spacer/Spacer.js +2 -1
- package/dist/_internal/components/layout/Stack/Stack.js +2 -2
- package/dist/_internal/components/layout/TableFilter/TableFilter.js +1 -1
- package/dist/_internal/components/layout/index.js +31 -32
- package/dist/_internal/components/navigation/AppHeader/AppHeader.brand.js +1 -1
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +3 -4
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -2
- package/dist/_internal/components/navigation/AppHeader/AppHeader.js +1 -1
- package/dist/_internal/components/navigation/Breadcrumbs/BreadcrumbEntry.js +2 -2
- package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +3 -3
- package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.styles.js +1 -1
- package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
- package/dist/_internal/components/navigation/CommandPalette/CommandPaletteResults.js +2 -2
- package/dist/_internal/components/navigation/CommandPalette/ShortcutChip.js +1 -1
- package/dist/_internal/components/navigation/ContextMenu/ContextMenu.js +1 -1
- package/dist/_internal/components/navigation/DropdownMenu/DropdownMenu.js +1 -1
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +4 -4
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +6 -6
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.shell.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.styles.js +1 -1
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +4 -4
- package/dist/_internal/components/navigation/Pagination/Pagination.js +3 -3
- package/dist/_internal/components/navigation/Pagination/Pagination.styles.js +1 -1
- package/dist/_internal/components/navigation/Pagination/PaginationParts.js +2 -1
- package/dist/_internal/components/navigation/Tabs/Tabs.js +10 -3
- package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +8 -1
- package/dist/_internal/components/navigation/Tabs/TabsPanel.js +2 -1
- package/dist/_internal/components/navigation/index.js +26 -27
- package/dist/_internal/components/typography/Blockquote/Blockquote.js +1 -1
- package/dist/_internal/components/typography/Code/Code.js +1 -1
- package/dist/_internal/components/typography/Text/Text.js +1 -1
- package/dist/_internal/components/typography/index.js +3 -3
- package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.animations.js +2 -1
- package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +3 -3
- package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.styles.js +2 -2
- package/dist/_internal/components/utility/AspectRatio/AspectRatio.js +2 -1
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.hooks.js +1 -1
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +4 -3
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -1
- package/dist/_internal/components/utility/VirtualList/VirtualList.hooks.js +6 -3
- package/dist/_internal/components/utility/VirtualList/VirtualList.js +3 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +3 -3
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +1 -1
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +2 -2
- package/dist/_internal/components/utility/index.js +12 -12
- package/dist/_internal/social-login-button/social-login-button.js +6 -7
- package/dist/_internal/tokens/shadow.js +19 -8
- package/dist/_internal/tokens/shadow.js.map +1 -1
- package/dist/_internal/user-avatar/user-avatar.js +4 -5
- package/dist/{chunk-J2DAQQQH.js → chunk-222HN7GK.js} +33 -64
- package/dist/chunk-222HN7GK.js.map +1 -0
- package/dist/{chunk-2BIVCYTO.js → chunk-27LOJVR3.js} +5 -5
- package/dist/{chunk-BLJDCMFU.js → chunk-2ARVNCVU.js} +7 -7
- package/dist/chunk-2ARVNCVU.js.map +1 -0
- package/dist/{chunk-CRZXSZ5O.js → chunk-2S752BIJ.js} +2 -2
- package/dist/{chunk-IYTBTK2M.js → chunk-2WU52FLP.js} +19 -30
- package/dist/chunk-2WU52FLP.js.map +1 -0
- package/dist/{chunk-RSQMPCCR.js → chunk-34643ATX.js} +10 -4
- package/dist/chunk-34643ATX.js.map +1 -0
- package/dist/{chunk-6GRZ77IS.js → chunk-3AIRFAI3.js} +13 -12
- package/dist/chunk-3AIRFAI3.js.map +1 -0
- package/dist/{chunk-Q73PTVNO.js → chunk-3FNXOCBD.js} +24 -12
- package/dist/chunk-3FNXOCBD.js.map +1 -0
- package/dist/{chunk-BAQBUKDU.js → chunk-3KREF4ZF.js} +2 -2
- package/dist/{chunk-EL7CMURV.js → chunk-3LSIFHQK.js} +3 -3
- package/dist/chunk-3LSIFHQK.js.map +1 -0
- package/dist/{chunk-MP4VSWHK.js → chunk-3NJMNMWB.js} +12 -2
- package/dist/chunk-3NJMNMWB.js.map +1 -0
- package/dist/{chunk-N52O2OKZ.js → chunk-3NNO6YIH.js} +8 -3
- package/dist/chunk-3NNO6YIH.js.map +1 -0
- package/dist/{chunk-SYN46YL6.js → chunk-3RMDIO4G.js} +3 -3
- package/dist/{chunk-S3D5VBHW.js → chunk-3YOXVNO4.js} +7 -7
- package/dist/{chunk-MJ3BVWPZ.js → chunk-43G3WMYN.js} +12 -7
- package/dist/chunk-43G3WMYN.js.map +1 -0
- package/dist/{chunk-E7MSDXED.js → chunk-43H66TVT.js} +12 -5
- package/dist/chunk-43H66TVT.js.map +1 -0
- package/dist/{chunk-IL7JZKXY.js → chunk-442FSG7G.js} +3 -3
- package/dist/{chunk-JL75FJRG.js → chunk-4ALF5PB5.js} +4 -4
- package/dist/{chunk-DYVAOEW4.js → chunk-4D4LLSQC.js} +6 -5
- package/dist/chunk-4D4LLSQC.js.map +1 -0
- package/dist/{chunk-NEGCJNGJ.js → chunk-4G47KBTP.js} +9 -9
- package/dist/chunk-4G47KBTP.js.map +1 -0
- package/dist/{chunk-MVXFMIVZ.js → chunk-4GB46HLK.js} +8 -4
- package/dist/chunk-4GB46HLK.js.map +1 -0
- package/dist/{chunk-CS3KOKL3.js → chunk-4GWHYLEB.js} +2 -2
- package/dist/{chunk-XJPJ6ESI.js → chunk-4OAKGKK5.js} +3 -3
- package/dist/{chunk-4OEKIFBC.js → chunk-4VMFS3VJ.js} +6 -3
- package/dist/chunk-4VMFS3VJ.js.map +1 -0
- package/dist/{chunk-6CTPDNNX.js → chunk-52G2KRL4.js} +14 -14
- package/dist/chunk-52G2KRL4.js.map +1 -0
- package/dist/{chunk-4CHROSWR.js → chunk-5ETBB2DG.js} +2 -2
- package/dist/{chunk-E7T3A4IR.js → chunk-5JCGBCFJ.js} +2 -2
- package/dist/{chunk-ATSHKSSD.js → chunk-5KNDAC24.js} +20 -7
- package/dist/chunk-5KNDAC24.js.map +1 -0
- package/dist/{chunk-ULTOQ6ZV.js → chunk-5LWB4BYX.js} +80 -89
- package/dist/chunk-5LWB4BYX.js.map +1 -0
- package/dist/{chunk-FC7NQ6XM.js → chunk-5MW7OYBM.js} +2 -2
- package/dist/{chunk-46UPILLK.js → chunk-5NT2M2JI.js} +2 -2
- package/dist/{chunk-MK4CH4VT.js → chunk-5OUEKIWQ.js} +14 -12
- package/dist/chunk-5OUEKIWQ.js.map +1 -0
- package/dist/{chunk-GHXFCMFP.js → chunk-5QAJ3Y5F.js} +3 -3
- package/dist/{chunk-GHXFCMFP.js.map → chunk-5QAJ3Y5F.js.map} +1 -1
- package/dist/{chunk-CPTY6UZ6.js → chunk-6KEXHOIF.js} +5 -4
- package/dist/chunk-6KEXHOIF.js.map +1 -0
- package/dist/{chunk-H5BEWPEY.js → chunk-6N2EDWMG.js} +2 -2
- package/dist/{chunk-BW62QQAG.js → chunk-6N4AA2Y7.js} +2 -2
- package/dist/{chunk-EFHIMCJN.js → chunk-6P2OFMBX.js} +11 -9
- package/dist/chunk-6P2OFMBX.js.map +1 -0
- package/dist/{chunk-GJQYM3PM.js → chunk-6PU3JYVY.js} +2 -2
- package/dist/{chunk-GUW5BUK7.js → chunk-6WBKOM5K.js} +15 -7
- package/dist/chunk-6WBKOM5K.js.map +1 -0
- package/dist/{chunk-7EIOXZWL.js → chunk-74P3YX7R.js} +4 -4
- package/dist/{chunk-VYSFKR32.js → chunk-75CGLX6Q.js} +3 -3
- package/dist/{chunk-VYSFKR32.js.map → chunk-75CGLX6Q.js.map} +1 -1
- package/dist/{chunk-LVEG6XQL.js → chunk-76X6JRVI.js} +19 -33
- package/dist/chunk-76X6JRVI.js.map +1 -0
- package/dist/{chunk-2NLYGZP3.js → chunk-77JL5XVD.js} +13 -9
- package/dist/chunk-77JL5XVD.js.map +1 -0
- package/dist/{chunk-PUBPZOQJ.js → chunk-AG3DY5TH.js} +8 -5
- package/dist/chunk-AG3DY5TH.js.map +1 -0
- package/dist/{chunk-T3WHW7ZC.js → chunk-BAZXVFLR.js} +10 -6
- package/dist/chunk-BAZXVFLR.js.map +1 -0
- package/dist/{chunk-7F7TTOYN.js → chunk-BEGTLELZ.js} +7 -6
- package/dist/chunk-BEGTLELZ.js.map +1 -0
- package/dist/{chunk-VT5HQ2AD.js → chunk-BFMDA6UO.js} +3 -3
- package/dist/{chunk-R75DZ3AK.js → chunk-BVLMKSHX.js} +2 -2
- package/dist/{chunk-75LOTMSN.js → chunk-BWHOCNGW.js} +5 -5
- package/dist/chunk-BWHOCNGW.js.map +1 -0
- package/dist/{chunk-PMP6WJJS.js → chunk-BWMHGENX.js} +20 -19
- package/dist/chunk-BWMHGENX.js.map +1 -0
- package/dist/{chunk-TUBCN4DJ.js → chunk-CB6DTWD5.js} +7 -7
- package/dist/chunk-CB6DTWD5.js.map +1 -0
- package/dist/{chunk-CAHWCSRE.js → chunk-D46SLMCX.js} +22 -8
- package/dist/chunk-D46SLMCX.js.map +1 -0
- package/dist/{chunk-FFOQZRFC.js → chunk-D4FZ3ANG.js} +15 -5
- package/dist/chunk-D4FZ3ANG.js.map +1 -0
- package/dist/{chunk-2OIP3T5O.js → chunk-DBFRCTI5.js} +4 -4
- package/dist/{chunk-2OIP3T5O.js.map → chunk-DBFRCTI5.js.map} +1 -1
- package/dist/{chunk-HNPWZ3W2.js → chunk-DDRKYNPB.js} +4 -4
- package/dist/{chunk-DLJGBJZW.js → chunk-DGMDQHMI.js} +16 -9
- package/dist/chunk-DGMDQHMI.js.map +1 -0
- package/dist/{chunk-IAGOUTI6.js → chunk-DNT5PZLF.js} +21 -12
- package/dist/chunk-DNT5PZLF.js.map +1 -0
- package/dist/{chunk-HU7TX7RB.js → chunk-DUBTI4DI.js} +4 -4
- package/dist/{chunk-DZA7RSLX.js → chunk-DVSO3EG6.js} +19 -11
- package/dist/chunk-DVSO3EG6.js.map +1 -0
- package/dist/{chunk-RMCNEKBZ.js → chunk-DW6F7354.js} +2 -2
- package/dist/{chunk-Q4BQYYPU.js → chunk-E2QIKJX2.js} +11 -5
- package/dist/chunk-E2QIKJX2.js.map +1 -0
- package/dist/{chunk-XJUEHG72.js → chunk-EERUSI52.js} +2 -2
- package/dist/{chunk-NDNYD4FG.js → chunk-EHYI2WCJ.js} +5 -5
- package/dist/{chunk-NB3FGWU4.js → chunk-EQXIW5MQ.js} +2 -2
- package/dist/{chunk-QAP3FW33.js → chunk-ERY6D2OV.js} +35 -23
- package/dist/chunk-ERY6D2OV.js.map +1 -0
- package/dist/{chunk-NPP44TQG.js → chunk-EYZ6QBTV.js} +2 -2
- package/dist/{chunk-NPP44TQG.js.map → chunk-EYZ6QBTV.js.map} +1 -1
- package/dist/{chunk-2ZIHZLF5.js → chunk-F44R7US6.js} +4 -4
- package/dist/{chunk-AROBXRC5.js → chunk-F7JTIHV5.js} +18 -7
- package/dist/chunk-F7JTIHV5.js.map +1 -0
- package/dist/{chunk-U342T7ZR.js → chunk-FOCU4QT5.js} +13 -10
- package/dist/chunk-FOCU4QT5.js.map +1 -0
- package/dist/{chunk-35S6QI5G.js → chunk-FX26DAFF.js} +2 -2
- package/dist/{chunk-FYTLKHEN.js → chunk-FYKFQPVT.js} +19 -18
- package/dist/chunk-FYKFQPVT.js.map +1 -0
- package/dist/{chunk-TVL5V2JK.js → chunk-GGMB6LJH.js} +7 -3
- package/dist/chunk-GGMB6LJH.js.map +1 -0
- package/dist/{chunk-AYLEZM6T.js → chunk-GLFTIGOF.js} +3 -3
- package/dist/{chunk-QEG3P5D4.js → chunk-GLHNMTP6.js} +13 -13
- package/dist/{chunk-7UZ2TFIK.js → chunk-GNCSDUGY.js} +12 -4
- package/dist/chunk-GNCSDUGY.js.map +1 -0
- package/dist/{chunk-L4UP5VYS.js → chunk-GVH7C2PT.js} +2 -2
- package/dist/{chunk-MBSYD3ZU.js → chunk-GWFAINQ7.js} +3 -3
- package/dist/chunk-GWFAINQ7.js.map +1 -0
- package/dist/{chunk-YU26GBNX.js → chunk-H3AQQOTI.js} +9 -4
- package/dist/chunk-H3AQQOTI.js.map +1 -0
- package/dist/{chunk-HTZNB6IV.js → chunk-H5ZTIELC.js} +23 -8
- package/dist/chunk-H5ZTIELC.js.map +1 -0
- package/dist/{chunk-AER4245J.js → chunk-H67EL3CG.js} +6 -6
- package/dist/{chunk-GSFNH4C5.js → chunk-HBP2OU4Q.js} +15 -8
- package/dist/chunk-HBP2OU4Q.js.map +1 -0
- package/dist/{chunk-57JLS55D.js → chunk-HBRQPG7H.js} +7 -7
- package/dist/{chunk-3D6HXKZM.js → chunk-HDJQDMHB.js} +18 -13
- package/dist/chunk-HDJQDMHB.js.map +1 -0
- package/dist/{chunk-HGMBY5LP.js → chunk-HQWJUHR4.js} +18 -11
- package/dist/chunk-HQWJUHR4.js.map +1 -0
- package/dist/{chunk-UZ6AUTE6.js → chunk-I3F4C5SS.js} +7 -7
- package/dist/{chunk-L7SFH3ED.js → chunk-I7GSRTGQ.js} +37 -28
- package/dist/chunk-I7GSRTGQ.js.map +1 -0
- package/dist/{chunk-Q4CAZ2TP.js → chunk-IG23YZZR.js} +6 -5
- package/dist/chunk-IG23YZZR.js.map +1 -0
- package/dist/{chunk-5W4BLTDI.js → chunk-IWFENXST.js} +7 -6
- package/dist/chunk-IWFENXST.js.map +1 -0
- package/dist/{chunk-HXEBKOSM.js → chunk-J5UZB6Y6.js} +2 -2
- package/dist/chunk-J5UZB6Y6.js.map +1 -0
- package/dist/{chunk-4CXEWFKO.js → chunk-J5VWGQSR.js} +2 -2
- package/dist/{chunk-AJ5SDHX5.js → chunk-JCL7WK4G.js} +2 -2
- package/dist/{chunk-MTFCPPZ5.js → chunk-JWZJSXI5.js} +3 -2
- package/dist/chunk-JWZJSXI5.js.map +1 -0
- package/dist/{chunk-5CKDRLRN.js → chunk-JXECOCNA.js} +35 -19
- package/dist/chunk-JXECOCNA.js.map +1 -0
- package/dist/{chunk-WUTHROII.js → chunk-JYWF76Z5.js} +11 -5
- package/dist/chunk-JYWF76Z5.js.map +1 -0
- package/dist/{chunk-B76QCDCE.js → chunk-K4L42FF6.js} +6 -3
- package/dist/chunk-K4L42FF6.js.map +1 -0
- package/dist/{chunk-4JFL62K3.js → chunk-K7FSTB2K.js} +3 -3
- package/dist/{chunk-WE3LJPRN.js → chunk-KE473LK6.js} +2 -2
- package/dist/{chunk-TBF2CPJW.js → chunk-KIHGTL2D.js} +21 -11
- package/dist/chunk-KIHGTL2D.js.map +1 -0
- package/dist/{chunk-3T5Z5HXF.js → chunk-KM3Y5TCG.js} +40 -36
- package/dist/chunk-KM3Y5TCG.js.map +1 -0
- package/dist/{chunk-C55AWF3U.js → chunk-KRQUPE4K.js} +4 -4
- package/dist/{chunk-SJO3K7SB.js → chunk-KXLUMEDX.js} +4 -4
- package/dist/{chunk-RWTFZ7J5.js → chunk-L4G5BZFF.js} +22 -13
- package/dist/chunk-L4G5BZFF.js.map +1 -0
- package/dist/{chunk-HB7ISSLK.js → chunk-L5RQIQIP.js} +26 -22
- package/dist/chunk-L5RQIQIP.js.map +1 -0
- package/dist/{chunk-CQPFSEJB.js → chunk-L7NQCLFU.js} +2 -2
- package/dist/{chunk-DVAAUWTC.js → chunk-LCHCE2G5.js} +2 -2
- package/dist/{chunk-G4HBNILE.js → chunk-LEHMWJNZ.js} +3 -3
- package/dist/{chunk-OATHOXIU.js → chunk-MC4KYGSX.js} +8 -8
- package/dist/chunk-MC4KYGSX.js.map +1 -0
- package/dist/{chunk-P6TNXBDA.js → chunk-MYKWJCR7.js} +9 -9
- package/dist/chunk-MYKWJCR7.js.map +1 -0
- package/dist/{chunk-YVUD3MY4.js → chunk-N23GCN5U.js} +7 -4
- package/dist/chunk-N23GCN5U.js.map +1 -0
- package/dist/{chunk-2TJOCI54.js → chunk-NCEQWEXT.js} +3 -3
- package/dist/{chunk-2TJOCI54.js.map → chunk-NCEQWEXT.js.map} +1 -1
- package/dist/{chunk-IVIHRZEY.js → chunk-NDMPXMW2.js} +12 -8
- package/dist/chunk-NDMPXMW2.js.map +1 -0
- package/dist/{chunk-UUUMNJPP.js → chunk-NLYNRE7L.js} +10 -10
- package/dist/chunk-NLYNRE7L.js.map +1 -0
- package/dist/{chunk-KLWW67WP.js → chunk-NOKN4HRK.js} +12 -11
- package/dist/chunk-NOKN4HRK.js.map +1 -0
- package/dist/{chunk-LIG7TKIB.js → chunk-NYFNF7I5.js} +11 -6
- package/dist/chunk-NYFNF7I5.js.map +1 -0
- package/dist/{chunk-KK57AHWS.js → chunk-OAEYCKBN.js} +2 -2
- package/dist/{chunk-JGRE56GQ.js → chunk-OB56SZGL.js} +2 -2
- package/dist/{chunk-TQ6FPOPD.js → chunk-ODW2D5PN.js} +39 -30
- package/dist/chunk-ODW2D5PN.js.map +1 -0
- package/dist/{chunk-VRDNUY4H.js → chunk-OHC3F7GJ.js} +4 -4
- package/dist/chunk-OHC3F7GJ.js.map +1 -0
- package/dist/{chunk-E4TNDTWV.js → chunk-OL2BEJZR.js} +2 -2
- package/dist/{chunk-ZTYUKEN3.js → chunk-OVXSQQDK.js} +12 -7
- package/dist/chunk-OVXSQQDK.js.map +1 -0
- package/dist/{chunk-ZQL5RXVE.js → chunk-PA3AA55Q.js} +2 -2
- package/dist/{chunk-ZQL5RXVE.js.map → chunk-PA3AA55Q.js.map} +1 -1
- package/dist/{chunk-IKLOIONQ.js → chunk-PCBZYORN.js} +3 -3
- package/dist/{chunk-CQLPDY2J.js → chunk-PRIBOWX4.js} +3 -3
- package/dist/{chunk-F42MJOHM.js → chunk-PVM7XTLZ.js} +64 -62
- package/dist/chunk-PVM7XTLZ.js.map +1 -0
- package/dist/{chunk-LT4NEKXB.js → chunk-QA2ZGCRL.js} +3 -3
- package/dist/{chunk-3TDVGZZN.js → chunk-QBTBRJ2Q.js} +37 -13
- package/dist/chunk-QBTBRJ2Q.js.map +1 -0
- package/dist/{chunk-2E2WOBID.js → chunk-QGFBIUOK.js} +5 -5
- package/dist/chunk-QGFBIUOK.js.map +1 -0
- package/dist/{chunk-2WFDHFK4.js → chunk-QNCWSDXE.js} +26 -11
- package/dist/chunk-QNCWSDXE.js.map +1 -0
- package/dist/{chunk-PQECNGDE.js → chunk-QSRZOXQI.js} +2 -2
- package/dist/{chunk-RHIDWUK7.js → chunk-QUWK7SYN.js} +1 -2
- package/dist/chunk-QUWK7SYN.js.map +1 -0
- package/dist/{chunk-ROT57BP4.js → chunk-R2XVTUVR.js} +2 -2
- package/dist/{chunk-UN5INW6K.js → chunk-R53ZOW4B.js} +8 -4
- package/dist/chunk-R53ZOW4B.js.map +1 -0
- package/dist/{chunk-MVKYNDT2.js → chunk-RKROWJVF.js} +11 -9
- package/dist/chunk-RKROWJVF.js.map +1 -0
- package/dist/{chunk-DCJSHYE5.js → chunk-RSDYS5B3.js} +4 -4
- package/dist/{chunk-NYZO3JNB.js → chunk-RXJQA3FQ.js} +2 -3
- package/dist/chunk-RXJQA3FQ.js.map +1 -0
- package/dist/{chunk-N5GVW6RO.js → chunk-S6IWKDWT.js} +2 -2
- package/dist/{chunk-DB2ZFZVW.js → chunk-SBIZXZPP.js} +3 -3
- package/dist/{chunk-NCPWLHZT.js → chunk-SKT2V2OX.js} +3 -3
- package/dist/{chunk-EOW2ECB3.js → chunk-SNURSSTN.js} +2 -2
- package/dist/{chunk-GRDPGHQJ.js → chunk-SV6JGFHG.js} +9 -5
- package/dist/chunk-SV6JGFHG.js.map +1 -0
- package/dist/{chunk-CZBND7AY.js → chunk-T7DE44SP.js} +2 -2
- package/dist/{chunk-D5SZXH7Q.js → chunk-TNBJ4DK4.js} +7 -3
- package/dist/chunk-TNBJ4DK4.js.map +1 -0
- package/dist/{chunk-3CVTQZQJ.js → chunk-TNYKM4UU.js} +13 -9
- package/dist/chunk-TNYKM4UU.js.map +1 -0
- package/dist/{chunk-3VMGE7CU.js → chunk-TZFBJ47T.js} +3 -3
- package/dist/chunk-TZFBJ47T.js.map +1 -0
- package/dist/{chunk-VFHGILXI.js → chunk-U3DBQXPI.js} +20 -17
- package/dist/chunk-U3DBQXPI.js.map +1 -0
- package/dist/{chunk-QKPD322X.js → chunk-UFNIS7KC.js} +2 -2
- package/dist/chunk-UFNIS7KC.js.map +1 -0
- package/dist/{chunk-BNEWMFVB.js → chunk-UGGJ3KDT.js} +2 -2
- package/dist/{chunk-L4QCIUTJ.js → chunk-UMNXSQ7I.js} +3 -3
- package/dist/{chunk-L4QCIUTJ.js.map → chunk-UMNXSQ7I.js.map} +1 -1
- package/dist/{chunk-2CTTASUD.js → chunk-V5EWCJBT.js} +7 -4
- package/dist/chunk-V5EWCJBT.js.map +1 -0
- package/dist/{chunk-236V2GRH.js → chunk-VCBV5JM7.js} +49 -41
- package/dist/chunk-VCBV5JM7.js.map +1 -0
- package/dist/{chunk-KREWQAEV.js → chunk-VIRYHNEM.js} +2 -2
- package/dist/{chunk-PT2XADGH.js → chunk-VPRNKJHP.js} +9 -6
- package/dist/chunk-VPRNKJHP.js.map +1 -0
- package/dist/{chunk-JXUWWPZR.js → chunk-VQYR64QB.js} +14 -8
- package/dist/chunk-VQYR64QB.js.map +1 -0
- package/dist/{chunk-72DKEBJM.js → chunk-VRPREI27.js} +3 -3
- package/dist/chunk-VRPREI27.js.map +1 -0
- package/dist/{chunk-N6CSXHFJ.js → chunk-WN5PNP6F.js} +2 -2
- package/dist/{chunk-6QLPSMTA.js → chunk-XEWMY4ZM.js} +52 -47
- package/dist/chunk-XEWMY4ZM.js.map +1 -0
- package/dist/{chunk-XR46FSOH.js → chunk-XIG3DXXX.js} +2 -2
- package/dist/{chunk-GHTBUJ6E.js → chunk-XRUW7DMH.js} +2 -2
- package/dist/{chunk-CSTAQX2B.js → chunk-XWZJLXJT.js} +7 -6
- package/dist/chunk-XWZJLXJT.js.map +1 -0
- package/dist/{chunk-PMOEG36E.js → chunk-XZJM6EPC.js} +8 -6
- package/dist/chunk-XZJM6EPC.js.map +1 -0
- package/dist/{chunk-QF6LTUCE.js → chunk-Y2X7LYIN.js} +4 -4
- package/dist/chunk-Y2X7LYIN.js.map +1 -0
- package/dist/{chunk-MBC55H6M.js → chunk-Y5UTYBZW.js} +12 -6
- package/dist/chunk-Y5UTYBZW.js.map +1 -0
- package/dist/{chunk-WTOYEWW6.js → chunk-YBH4SPMM.js} +4 -3
- package/dist/chunk-YBH4SPMM.js.map +1 -0
- package/dist/{chunk-JLQGRZMN.js → chunk-YCCY77W5.js} +3 -3
- package/dist/{chunk-5QWQR7XT.js → chunk-YHGOPZXW.js} +11 -8
- package/dist/chunk-YHGOPZXW.js.map +1 -0
- package/dist/{chunk-6BDYC4RA.js → chunk-YRSR5LVZ.js} +3 -3
- package/dist/{chunk-57JY4OI2.js → chunk-YUXDVW62.js} +3 -3
- package/dist/chunk-YUXDVW62.js.map +1 -0
- package/dist/{chunk-DF4K5XVW.js → chunk-YZVR5ROE.js} +14 -6
- package/dist/chunk-YZVR5ROE.js.map +1 -0
- package/dist/{chunk-RNEYZTE4.js → chunk-Z6MCTGIK.js} +2 -2
- package/dist/{chunk-RNEYZTE4.js.map → chunk-Z6MCTGIK.js.map} +1 -1
- package/dist/{chunk-AUSUCZYR.js → chunk-ZBVU2YWV.js} +5 -5
- package/dist/chunk-ZBVU2YWV.js.map +1 -0
- package/dist/{chunk-VZIB5W5L.js → chunk-ZGCPDA3F.js} +2 -2
- package/dist/data-display/AsyncStateContainer.js +4 -4
- package/dist/data-display/CardKit.js +2 -2
- package/dist/data-display/DataGrid.js +4 -4
- package/dist/data-display/DataViews.js +68 -69
- package/dist/data-display/DescriptionItem.js +2 -2
- package/dist/data-display/FleetMap.js +13 -13
- package/dist/data-display/LazyImage.js +3 -3
- package/dist/data-display/LoadingState.js +3 -3
- package/dist/data-display/MapPreview.js +7 -7
- package/dist/data-display/StatCard.js +3 -3
- package/dist/data-display/Table.js +4 -4
- package/dist/feedback/Dialog.js +3 -3
- package/dist/feedback/Modal.js +3 -2
- package/dist/feedback/Sonner.js +2 -2
- package/dist/feedback/StackedModal.js +4 -3
- package/dist/feedback/Toast.js +2 -1
- package/dist/feedback/TutorialOverlay.js +5 -4
- package/dist/form/Calendar.js +5 -4
- package/dist/form/DateRangePicker.js +5 -5
- package/dist/form/Switch.js +4 -4
- package/dist/form/total-form.js +2 -2
- package/dist/layout/Accordion.js +3 -2
- package/dist/layout/Box.js +1 -1
- package/dist/layout/Card.js +3 -3
- package/dist/layout/CardGrid.js +2 -1
- package/dist/layout/Collapsible.js +3 -2
- package/dist/layout/ContentToolbar.js +7 -7
- package/dist/layout/Dashboard.js +2 -2
- package/dist/layout/Drawer.js +2 -1
- package/dist/layout/Resizable.js +4 -3
- package/dist/layout/ScrollArea.js +6 -5
- package/dist/layout/Separator.js +4 -2
- package/dist/layout/SettingsLayout.js +8 -8
- package/dist/layout/Sidebar.js +2 -1
- package/dist/layout/Skeleton.js +3 -2
- package/dist/layout/Spacer.js +2 -1
- package/dist/layout/Stack.js +2 -2
- package/dist/layout/TableFilter.js +1 -1
- package/dist/native/form/Switch.js +3 -1
- package/dist/native/form/Switch.js.map +1 -1
- package/dist/navigation/AppHeader.js +6 -7
- package/dist/navigation/Breadcrumbs.js +3 -3
- package/dist/navigation/CommandPalette.js +3 -3
- package/dist/navigation/ContextMenu.js +1 -1
- package/dist/navigation/DropdownMenu.js +1 -1
- package/dist/navigation/NavigationMenu.js +6 -6
- package/dist/navigation/Pagination.js +3 -3
- package/dist/navigation/Tabs.js +10 -3
- package/dist/social-login-button.js +6 -7
- package/dist/types/components/data-display/DataGrid/DataGrid.body.d.ts.map +1 -1
- package/dist/types/components/data-display/DataGrid/DataGrid.cells.d.ts +4 -2
- package/dist/types/components/data-display/DataGrid/DataGrid.cells.d.ts.map +1 -1
- package/dist/types/components/data-display/DataGrid/DataGrid.model.d.ts +7 -1
- package/dist/types/components/data-display/DataGrid/DataGrid.model.d.ts.map +1 -1
- package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts +10 -4
- package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-columns.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts +2 -0
- package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-layout-context.d.ts +7 -3
- package/dist/types/components/data-display/DataViews/data-views-layout-context.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-overflow-costs.d.ts +19 -9
- package/dist/types/components/data-display/DataViews/data-views-overflow-costs.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-overflow.d.ts.map +1 -1
- package/dist/types/components/data-display/MapPreview/MapTiles.d.ts.map +1 -1
- package/dist/types/components/data-display/MapPreview/mapProjection.d.ts +6 -1
- package/dist/types/components/data-display/MapPreview/mapProjection.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.helpers.d.ts +6 -0
- package/dist/types/components/data-display/Table/Table.helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.hooks.d.ts +9 -1
- package/dist/types/components/data-display/Table/Table.hooks.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.types.d.ts +6 -2
- package/dist/types/components/data-display/Table/Table.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/TableParts.d.ts +2 -0
- package/dist/types/components/data-display/Table/TableParts.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
- package/dist/types/components/feedback/Modal/Modal.d.ts.map +1 -1
- package/dist/types/components/feedback/Modal/Modal.styles.d.ts.map +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.styles.d.ts.map +1 -1
- package/dist/types/components/feedback/Toast/Toast.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.geometry.d.ts +3 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.geometry.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.hooks.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialStepBody.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.metrics.d.ts +13 -3
- package/dist/types/components/form/Switch/Switch.metrics.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Accordion/Accordion.d.ts.map +1 -1
- package/dist/types/components/layout/Accordion/Accordion.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Box/Box.d.ts +2 -1
- package/dist/types/components/layout/Box/Box.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
- package/dist/types/components/layout/CardGrid/CardGrid.d.ts +9 -7
- package/dist/types/components/layout/CardGrid/CardGrid.d.ts.map +1 -1
- package/dist/types/components/layout/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/types/components/layout/Collapsible/Collapsible.helpers.d.ts +1 -1
- package/dist/types/components/layout/Collapsible/Collapsible.helpers.d.ts.map +1 -1
- package/dist/types/components/layout/Drawer/Drawer.d.ts.map +1 -1
- package/dist/types/components/layout/Resizable/Resizable.d.ts.map +1 -1
- package/dist/types/components/layout/Resizable/Resizable.helpers.d.ts +21 -9
- package/dist/types/components/layout/Resizable/Resizable.helpers.d.ts.map +1 -1
- package/dist/types/components/layout/Resizable/Resizable.hooks.d.ts +13 -3
- package/dist/types/components/layout/Resizable/Resizable.hooks.d.ts.map +1 -1
- package/dist/types/components/layout/Resizable/Resizable.types.d.ts +10 -0
- package/dist/types/components/layout/Resizable/Resizable.types.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.helpers.d.ts +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.helpers.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.styles.d.ts +6 -0
- package/dist/types/components/layout/ScrollArea/ScrollArea.styles.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +4 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollViewport.d.ts.map +1 -1
- package/dist/types/components/layout/Separator/Separator.d.ts.map +1 -1
- package/dist/types/components/layout/Separator/Separator.styles.d.ts +7 -4
- package/dist/types/components/layout/Separator/Separator.styles.d.ts.map +1 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.items.d.ts.map +1 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts.map +1 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.styles.d.ts +4 -4
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts +8 -1
- package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Spacer/Spacer.d.ts.map +1 -1
- package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
- package/dist/types/components/navigation/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/types/components/navigation/AppHeader/AppHeader.details.d.ts.map +1 -1
- package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts +2 -2
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts.map +1 -1
- package/dist/types/components/navigation/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/types/components/navigation/NavigationMenu/NavigationMegaSection.d.ts.map +1 -1
- package/dist/types/components/navigation/NavigationMenu/NavigationMenu.d.ts.map +1 -1
- package/dist/types/components/navigation/NavigationMenu/NavigationMenu.shell.d.ts.map +1 -1
- package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts +2 -2
- package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts.map +1 -1
- package/dist/types/components/navigation/NavigationMenu/NavigationStandardBody.d.ts.map +1 -1
- package/dist/types/components/navigation/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/navigation/Pagination/PaginationParts.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.styles.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/TabsPanel.d.ts.map +1 -1
- package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.animations.d.ts +9 -8
- package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.animations.d.ts.map +1 -1
- package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts +1 -1
- package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts.map +1 -1
- package/dist/types/components/utility/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.hooks.d.ts +3 -2
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.hooks.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts +3 -2
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts +9 -0
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts.map +1 -1
- package/dist/types/components/utility/VirtualList/VirtualList.d.ts.map +1 -1
- package/dist/types/components/utility/VirtualList/VirtualList.hooks.d.ts +24 -28
- package/dist/types/components/utility/VirtualList/VirtualList.hooks.d.ts.map +1 -1
- package/dist/types/components/utility/VirtualList/VirtualList.types.d.ts +17 -0
- package/dist/types/components/utility/VirtualList/VirtualList.types.d.ts.map +1 -1
- package/dist/types/social-login-button/social-login-button.d.ts.map +1 -1
- package/dist/types-native/components/form/Switch/Switch.metrics.d.ts +13 -3
- package/dist/types-native/components/form/Switch/Switch.metrics.d.ts.map +1 -1
- package/dist/typography/Blockquote.js +1 -1
- package/dist/typography/Code.js +1 -1
- package/dist/typography/Text.js +1 -1
- package/dist/user-avatar.js +4 -5
- package/dist/utility/AnimatedIcon.js +3 -3
- package/dist/utility/AspectRatio.js +2 -1
- package/dist/utility/InfiniteScroll.js +4 -3
- package/dist/utility/VirtualList.js +3 -2
- package/dist/utility/WorkflowStep.js +3 -3
- package/package.json +1 -1
- package/src/components/data-display/DataGrid/DataGrid.body.tsx +27 -7
- package/src/components/data-display/DataGrid/DataGrid.cells.tsx +33 -9
- package/src/components/data-display/DataGrid/DataGrid.model.ts +24 -11
- package/src/components/data-display/DataGrid/DataGrid.types.ts +12 -6
- package/src/components/data-display/DataViews/data-views-columns.ts +14 -3
- package/src/components/data-display/DataViews/data-views-grid-helpers.tsx +5 -3
- package/src/components/data-display/DataViews/data-views-layout-context.tsx +12 -9
- package/src/components/data-display/DataViews/data-views-overflow-costs.ts +32 -14
- package/src/components/data-display/DataViews/data-views-overflow.ts +40 -26
- package/src/components/data-display/MapPreview/MapTiles.tsx +16 -9
- package/src/components/data-display/MapPreview/mapProjection.ts +10 -5
- package/src/components/data-display/Table/Table.helpers.ts +7 -1
- package/src/components/data-display/Table/Table.hooks.ts +16 -5
- package/src/components/data-display/Table/Table.types.ts +6 -2
- package/src/components/data-display/Table/TableParts.tsx +38 -42
- package/src/components/feedback/Dialog/Dialog.styles.ts +16 -28
- package/src/components/feedback/Modal/Modal.styles.ts +9 -8
- package/src/components/feedback/Modal/Modal.tsx +3 -2
- package/src/components/feedback/Sonner/Sonner.tsx +4 -4
- package/src/components/feedback/Sonner/SonnerToast.tsx +9 -9
- package/src/components/feedback/StackedModal/StackedModal.parts.tsx +26 -19
- package/src/components/feedback/StackedModal/StackedModal.styles.ts +11 -9
- package/src/components/feedback/Toast/Toast.tsx +11 -7
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.geometry.ts +2 -3
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.hooks.ts +6 -1
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.tsx +43 -37
- package/src/components/feedback/TutorialOverlay/TutorialStepBody.tsx +3 -2
- package/src/components/form/Calendar/Calendar.tsx +4 -2
- package/src/components/form/Calendar/CalendarDay.tsx +6 -3
- package/src/components/form/Calendar/CalendarMonth.tsx +6 -3
- package/src/components/form/Switch/Switch.metrics.ts +19 -5
- package/src/components/form/Switch/Switch.styles.ts +5 -3
- package/src/components/layout/Accordion/Accordion.styles.ts +8 -6
- package/src/components/layout/Accordion/Accordion.tsx +10 -8
- package/src/components/layout/Box/Box.tsx +18 -5
- package/src/components/layout/Card/Card.styles.ts +22 -30
- package/src/components/layout/CardGrid/CardGrid.tsx +37 -24
- package/src/components/layout/Collapsible/Collapsible.helpers.ts +4 -2
- package/src/components/layout/Collapsible/Collapsible.tsx +8 -4
- package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +1 -1
- package/src/components/layout/ContentToolbar/ContentToolbar.tsx +2 -2
- package/src/components/layout/ContentToolbar/FilterTrigger.tsx +2 -2
- package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +1 -1
- package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +2 -2
- package/src/components/layout/ContentToolbar/SortByDropdown.tsx +2 -2
- package/src/components/layout/ContentToolbar/ViewSelector.tsx +2 -2
- package/src/components/layout/Dashboard/Dashboard.tsx +1 -1
- package/src/components/layout/Dashboard/DashboardParts.tsx +1 -1
- package/src/components/layout/Drawer/Drawer.tsx +23 -10
- package/src/components/layout/Resizable/Resizable.helpers.ts +43 -21
- package/src/components/layout/Resizable/Resizable.hooks.ts +17 -9
- package/src/components/layout/Resizable/Resizable.md +9 -5
- package/src/components/layout/Resizable/Resizable.tsx +20 -8
- package/src/components/layout/Resizable/Resizable.types.ts +10 -0
- package/src/components/layout/ScrollArea/ScrollArea.helpers.ts +0 -2
- package/src/components/layout/ScrollArea/ScrollArea.styles.ts +45 -32
- package/src/components/layout/ScrollArea/ScrollArea.tsx +35 -18
- package/src/components/layout/ScrollArea/ScrollArea.types.ts +4 -1
- package/src/components/layout/ScrollArea/ScrollAreaContent.tsx +2 -2
- package/src/components/layout/ScrollArea/ScrollViewport.tsx +6 -4
- package/src/components/layout/Separator/Separator.styles.ts +30 -9
- package/src/components/layout/Separator/Separator.tsx +4 -3
- package/src/components/layout/SettingsLayout/SettingsLayout.items.tsx +4 -2
- package/src/components/layout/SettingsLayout/SettingsLayout.rail.tsx +6 -5
- package/src/components/layout/SettingsLayout/SettingsLayout.styles.ts +9 -7
- package/src/components/layout/SettingsLayout/SettingsLayout.tsx +2 -2
- package/src/components/layout/SettingsLayout/SettingsPanel.tsx +1 -1
- package/src/components/layout/SettingsLayout/SettingsSectionChips.tsx +3 -3
- package/src/components/layout/SettingsLayout/SettingsSectionHeader.tsx +3 -3
- package/src/components/layout/SettingsLayout/SettingsStatusMarker.tsx +2 -2
- package/src/components/layout/Sidebar/Sidebar.tsx +16 -6
- package/src/components/layout/Skeleton/Skeleton.styles.ts +13 -3
- package/src/components/layout/Skeleton/Skeleton.tsx +6 -4
- package/src/components/layout/Spacer/Spacer.tsx +16 -1
- package/src/components/layout/TableFilter/TableFilter.tsx +2 -1
- package/src/components/navigation/AppHeader/AppHeader.brand.tsx +2 -2
- package/src/components/navigation/AppHeader/AppHeader.details.tsx +9 -7
- package/src/components/navigation/AppHeader/AppHeader.identity.tsx +28 -15
- package/src/components/navigation/AppHeader/AppHeader.tsx +18 -6
- package/src/components/navigation/Breadcrumbs/BreadcrumbEntry.tsx +4 -4
- package/src/components/navigation/Breadcrumbs/Breadcrumbs.styles.tsx +15 -15
- package/src/components/navigation/CommandPalette/CommandPalette.tsx +7 -7
- package/src/components/navigation/CommandPalette/CommandPaletteResults.tsx +5 -5
- package/src/components/navigation/CommandPalette/ShortcutChip.tsx +1 -1
- package/src/components/navigation/ContextMenu/ContextMenu.tsx +8 -8
- package/src/components/navigation/DropdownMenu/DropdownMenu.tsx +25 -16
- package/src/components/navigation/NavigationMenu/NavigationMegaSection.tsx +5 -4
- package/src/components/navigation/NavigationMenu/NavigationMenu.shell.tsx +22 -20
- package/src/components/navigation/NavigationMenu/NavigationMenu.styles.ts +11 -11
- package/src/components/navigation/NavigationMenu/NavigationMenu.tsx +7 -2
- package/src/components/navigation/NavigationMenu/NavigationMenuItem.tsx +12 -12
- package/src/components/navigation/NavigationMenu/NavigationStandardBody.tsx +3 -2
- package/src/components/navigation/Pagination/Pagination.styles.ts +18 -18
- package/src/components/navigation/Pagination/Pagination.tsx +2 -1
- package/src/components/navigation/Pagination/PaginationParts.tsx +4 -3
- package/src/components/navigation/Tabs/Tabs.styles.ts +14 -12
- package/src/components/navigation/Tabs/Tabs.tsx +11 -9
- package/src/components/navigation/Tabs/TabsPanel.tsx +10 -3
- package/src/components/typography/Blockquote/Blockquote.tsx +8 -8
- package/src/components/typography/Code/Code.tsx +17 -17
- package/src/components/typography/Text/Text.tsx +2 -2
- package/src/components/utility/AnimatedIcon/AnimatedIcon.animations.ts +38 -35
- package/src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts +51 -46
- package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +1 -1
- package/src/components/utility/AspectRatio/AspectRatio.tsx +13 -2
- package/src/components/utility/InfiniteScroll/InfiniteScroll.hooks.ts +5 -4
- package/src/components/utility/InfiniteScroll/InfiniteScroll.parts.tsx +29 -12
- package/src/components/utility/InfiniteScroll/InfiniteScroll.tsx +11 -5
- package/src/components/utility/InfiniteScroll/InfiniteScroll.types.ts +10 -2
- package/src/components/utility/VirtualList/VirtualList.hooks.ts +101 -112
- package/src/components/utility/VirtualList/VirtualList.tsx +36 -65
- package/src/components/utility/VirtualList/VirtualList.types.ts +20 -3
- package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +7 -7
- package/src/social-login-button/social-login-button.tsx +25 -8
- package/dist/chunk-236V2GRH.js.map +0 -1
- package/dist/chunk-2CTTASUD.js.map +0 -1
- package/dist/chunk-2E2WOBID.js.map +0 -1
- package/dist/chunk-2NLYGZP3.js.map +0 -1
- package/dist/chunk-2WFDHFK4.js.map +0 -1
- package/dist/chunk-3CVTQZQJ.js.map +0 -1
- package/dist/chunk-3D6HXKZM.js.map +0 -1
- package/dist/chunk-3T5Z5HXF.js.map +0 -1
- package/dist/chunk-3TDVGZZN.js.map +0 -1
- package/dist/chunk-3VMGE7CU.js.map +0 -1
- package/dist/chunk-4OEKIFBC.js.map +0 -1
- package/dist/chunk-57JY4OI2.js.map +0 -1
- package/dist/chunk-5CKDRLRN.js.map +0 -1
- package/dist/chunk-5QWQR7XT.js.map +0 -1
- package/dist/chunk-5W4BLTDI.js.map +0 -1
- package/dist/chunk-6CTPDNNX.js.map +0 -1
- package/dist/chunk-6GRZ77IS.js.map +0 -1
- package/dist/chunk-6QLPSMTA.js.map +0 -1
- package/dist/chunk-72DKEBJM.js.map +0 -1
- package/dist/chunk-73BEVJCS.js +0 -28
- package/dist/chunk-73BEVJCS.js.map +0 -1
- package/dist/chunk-75LOTMSN.js.map +0 -1
- package/dist/chunk-7F7TTOYN.js.map +0 -1
- package/dist/chunk-7UZ2TFIK.js.map +0 -1
- package/dist/chunk-AROBXRC5.js.map +0 -1
- package/dist/chunk-ATSHKSSD.js.map +0 -1
- package/dist/chunk-AUSUCZYR.js.map +0 -1
- package/dist/chunk-B76QCDCE.js.map +0 -1
- package/dist/chunk-BLJDCMFU.js.map +0 -1
- package/dist/chunk-CAHWCSRE.js.map +0 -1
- package/dist/chunk-CPTY6UZ6.js.map +0 -1
- package/dist/chunk-CSTAQX2B.js.map +0 -1
- package/dist/chunk-D5SZXH7Q.js.map +0 -1
- package/dist/chunk-DF4K5XVW.js.map +0 -1
- package/dist/chunk-DLJGBJZW.js.map +0 -1
- package/dist/chunk-DYVAOEW4.js.map +0 -1
- package/dist/chunk-DZA7RSLX.js.map +0 -1
- package/dist/chunk-E7MSDXED.js.map +0 -1
- package/dist/chunk-EFHIMCJN.js.map +0 -1
- package/dist/chunk-EL7CMURV.js.map +0 -1
- package/dist/chunk-F42MJOHM.js.map +0 -1
- package/dist/chunk-FFOQZRFC.js.map +0 -1
- package/dist/chunk-FYTLKHEN.js.map +0 -1
- package/dist/chunk-GRDPGHQJ.js.map +0 -1
- package/dist/chunk-GSFNH4C5.js.map +0 -1
- package/dist/chunk-GUW5BUK7.js.map +0 -1
- package/dist/chunk-HB7ISSLK.js.map +0 -1
- package/dist/chunk-HGMBY5LP.js.map +0 -1
- package/dist/chunk-HTZNB6IV.js.map +0 -1
- package/dist/chunk-HXEBKOSM.js.map +0 -1
- package/dist/chunk-IAGOUTI6.js.map +0 -1
- package/dist/chunk-IVIHRZEY.js.map +0 -1
- package/dist/chunk-IYTBTK2M.js.map +0 -1
- package/dist/chunk-J2DAQQQH.js.map +0 -1
- package/dist/chunk-JXUWWPZR.js.map +0 -1
- package/dist/chunk-KLWW67WP.js.map +0 -1
- package/dist/chunk-L7SFH3ED.js.map +0 -1
- package/dist/chunk-LIG7TKIB.js.map +0 -1
- package/dist/chunk-LVEG6XQL.js.map +0 -1
- package/dist/chunk-MBC55H6M.js.map +0 -1
- package/dist/chunk-MBSYD3ZU.js.map +0 -1
- package/dist/chunk-MJ3BVWPZ.js.map +0 -1
- package/dist/chunk-MK4CH4VT.js.map +0 -1
- package/dist/chunk-MP4VSWHK.js.map +0 -1
- package/dist/chunk-MTFCPPZ5.js.map +0 -1
- package/dist/chunk-MVKYNDT2.js.map +0 -1
- package/dist/chunk-MVXFMIVZ.js.map +0 -1
- package/dist/chunk-N52O2OKZ.js.map +0 -1
- package/dist/chunk-NEGCJNGJ.js.map +0 -1
- package/dist/chunk-NYZO3JNB.js.map +0 -1
- package/dist/chunk-OATHOXIU.js.map +0 -1
- package/dist/chunk-P6TNXBDA.js.map +0 -1
- package/dist/chunk-PMOEG36E.js.map +0 -1
- package/dist/chunk-PMP6WJJS.js.map +0 -1
- package/dist/chunk-PT2XADGH.js.map +0 -1
- package/dist/chunk-PUBPZOQJ.js.map +0 -1
- package/dist/chunk-Q4BQYYPU.js.map +0 -1
- package/dist/chunk-Q4CAZ2TP.js.map +0 -1
- package/dist/chunk-Q73PTVNO.js.map +0 -1
- package/dist/chunk-QAP3FW33.js.map +0 -1
- package/dist/chunk-QF6LTUCE.js.map +0 -1
- package/dist/chunk-QKPD322X.js.map +0 -1
- package/dist/chunk-RHIDWUK7.js.map +0 -1
- package/dist/chunk-RSQMPCCR.js.map +0 -1
- package/dist/chunk-RWTFZ7J5.js.map +0 -1
- package/dist/chunk-T3WHW7ZC.js.map +0 -1
- package/dist/chunk-TBF2CPJW.js.map +0 -1
- package/dist/chunk-TQ6FPOPD.js.map +0 -1
- package/dist/chunk-TUBCN4DJ.js.map +0 -1
- package/dist/chunk-TVL5V2JK.js.map +0 -1
- package/dist/chunk-U342T7ZR.js.map +0 -1
- package/dist/chunk-ULTOQ6ZV.js.map +0 -1
- package/dist/chunk-UN5INW6K.js.map +0 -1
- package/dist/chunk-UUUMNJPP.js.map +0 -1
- package/dist/chunk-VFHGILXI.js.map +0 -1
- package/dist/chunk-VRDNUY4H.js.map +0 -1
- package/dist/chunk-WTOYEWW6.js.map +0 -1
- package/dist/chunk-WUTHROII.js.map +0 -1
- package/dist/chunk-YU26GBNX.js.map +0 -1
- package/dist/chunk-YVUD3MY4.js.map +0 -1
- package/dist/chunk-ZTYUKEN3.js.map +0 -1
- /package/dist/{chunk-2BIVCYTO.js.map → chunk-27LOJVR3.js.map} +0 -0
- /package/dist/{chunk-CRZXSZ5O.js.map → chunk-2S752BIJ.js.map} +0 -0
- /package/dist/{chunk-BAQBUKDU.js.map → chunk-3KREF4ZF.js.map} +0 -0
- /package/dist/{chunk-SYN46YL6.js.map → chunk-3RMDIO4G.js.map} +0 -0
- /package/dist/{chunk-S3D5VBHW.js.map → chunk-3YOXVNO4.js.map} +0 -0
- /package/dist/{chunk-IL7JZKXY.js.map → chunk-442FSG7G.js.map} +0 -0
- /package/dist/{chunk-JL75FJRG.js.map → chunk-4ALF5PB5.js.map} +0 -0
- /package/dist/{chunk-CS3KOKL3.js.map → chunk-4GWHYLEB.js.map} +0 -0
- /package/dist/{chunk-XJPJ6ESI.js.map → chunk-4OAKGKK5.js.map} +0 -0
- /package/dist/{chunk-4CHROSWR.js.map → chunk-5ETBB2DG.js.map} +0 -0
- /package/dist/{chunk-E7T3A4IR.js.map → chunk-5JCGBCFJ.js.map} +0 -0
- /package/dist/{chunk-FC7NQ6XM.js.map → chunk-5MW7OYBM.js.map} +0 -0
- /package/dist/{chunk-46UPILLK.js.map → chunk-5NT2M2JI.js.map} +0 -0
- /package/dist/{chunk-H5BEWPEY.js.map → chunk-6N2EDWMG.js.map} +0 -0
- /package/dist/{chunk-BW62QQAG.js.map → chunk-6N4AA2Y7.js.map} +0 -0
- /package/dist/{chunk-GJQYM3PM.js.map → chunk-6PU3JYVY.js.map} +0 -0
- /package/dist/{chunk-7EIOXZWL.js.map → chunk-74P3YX7R.js.map} +0 -0
- /package/dist/{chunk-VT5HQ2AD.js.map → chunk-BFMDA6UO.js.map} +0 -0
- /package/dist/{chunk-R75DZ3AK.js.map → chunk-BVLMKSHX.js.map} +0 -0
- /package/dist/{chunk-HNPWZ3W2.js.map → chunk-DDRKYNPB.js.map} +0 -0
- /package/dist/{chunk-HU7TX7RB.js.map → chunk-DUBTI4DI.js.map} +0 -0
- /package/dist/{chunk-RMCNEKBZ.js.map → chunk-DW6F7354.js.map} +0 -0
- /package/dist/{chunk-XJUEHG72.js.map → chunk-EERUSI52.js.map} +0 -0
- /package/dist/{chunk-NDNYD4FG.js.map → chunk-EHYI2WCJ.js.map} +0 -0
- /package/dist/{chunk-NB3FGWU4.js.map → chunk-EQXIW5MQ.js.map} +0 -0
- /package/dist/{chunk-2ZIHZLF5.js.map → chunk-F44R7US6.js.map} +0 -0
- /package/dist/{chunk-35S6QI5G.js.map → chunk-FX26DAFF.js.map} +0 -0
- /package/dist/{chunk-AYLEZM6T.js.map → chunk-GLFTIGOF.js.map} +0 -0
- /package/dist/{chunk-QEG3P5D4.js.map → chunk-GLHNMTP6.js.map} +0 -0
- /package/dist/{chunk-L4UP5VYS.js.map → chunk-GVH7C2PT.js.map} +0 -0
- /package/dist/{chunk-AER4245J.js.map → chunk-H67EL3CG.js.map} +0 -0
- /package/dist/{chunk-57JLS55D.js.map → chunk-HBRQPG7H.js.map} +0 -0
- /package/dist/{chunk-UZ6AUTE6.js.map → chunk-I3F4C5SS.js.map} +0 -0
- /package/dist/{chunk-4CXEWFKO.js.map → chunk-J5VWGQSR.js.map} +0 -0
- /package/dist/{chunk-AJ5SDHX5.js.map → chunk-JCL7WK4G.js.map} +0 -0
- /package/dist/{chunk-4JFL62K3.js.map → chunk-K7FSTB2K.js.map} +0 -0
- /package/dist/{chunk-WE3LJPRN.js.map → chunk-KE473LK6.js.map} +0 -0
- /package/dist/{chunk-C55AWF3U.js.map → chunk-KRQUPE4K.js.map} +0 -0
- /package/dist/{chunk-SJO3K7SB.js.map → chunk-KXLUMEDX.js.map} +0 -0
- /package/dist/{chunk-CQPFSEJB.js.map → chunk-L7NQCLFU.js.map} +0 -0
- /package/dist/{chunk-DVAAUWTC.js.map → chunk-LCHCE2G5.js.map} +0 -0
- /package/dist/{chunk-G4HBNILE.js.map → chunk-LEHMWJNZ.js.map} +0 -0
- /package/dist/{chunk-KK57AHWS.js.map → chunk-OAEYCKBN.js.map} +0 -0
- /package/dist/{chunk-JGRE56GQ.js.map → chunk-OB56SZGL.js.map} +0 -0
- /package/dist/{chunk-E4TNDTWV.js.map → chunk-OL2BEJZR.js.map} +0 -0
- /package/dist/{chunk-IKLOIONQ.js.map → chunk-PCBZYORN.js.map} +0 -0
- /package/dist/{chunk-CQLPDY2J.js.map → chunk-PRIBOWX4.js.map} +0 -0
- /package/dist/{chunk-LT4NEKXB.js.map → chunk-QA2ZGCRL.js.map} +0 -0
- /package/dist/{chunk-PQECNGDE.js.map → chunk-QSRZOXQI.js.map} +0 -0
- /package/dist/{chunk-ROT57BP4.js.map → chunk-R2XVTUVR.js.map} +0 -0
- /package/dist/{chunk-DCJSHYE5.js.map → chunk-RSDYS5B3.js.map} +0 -0
- /package/dist/{chunk-N5GVW6RO.js.map → chunk-S6IWKDWT.js.map} +0 -0
- /package/dist/{chunk-DB2ZFZVW.js.map → chunk-SBIZXZPP.js.map} +0 -0
- /package/dist/{chunk-NCPWLHZT.js.map → chunk-SKT2V2OX.js.map} +0 -0
- /package/dist/{chunk-EOW2ECB3.js.map → chunk-SNURSSTN.js.map} +0 -0
- /package/dist/{chunk-CZBND7AY.js.map → chunk-T7DE44SP.js.map} +0 -0
- /package/dist/{chunk-BNEWMFVB.js.map → chunk-UGGJ3KDT.js.map} +0 -0
- /package/dist/{chunk-KREWQAEV.js.map → chunk-VIRYHNEM.js.map} +0 -0
- /package/dist/{chunk-N6CSXHFJ.js.map → chunk-WN5PNP6F.js.map} +0 -0
- /package/dist/{chunk-XR46FSOH.js.map → chunk-XIG3DXXX.js.map} +0 -0
- /package/dist/{chunk-GHTBUJ6E.js.map → chunk-XRUW7DMH.js.map} +0 -0
- /package/dist/{chunk-JLQGRZMN.js.map → chunk-YCCY77W5.js.map} +0 -0
- /package/dist/{chunk-6BDYC4RA.js.map → chunk-YRSR5LVZ.js.map} +0 -0
- /package/dist/{chunk-VZIB5W5L.js.map → chunk-ZGCPDA3F.js.map} +0 -0
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
rem
|
|
3
|
+
} from "./chunk-YKCAJ2TN.js";
|
|
4
|
+
|
|
1
5
|
// src/components/feedback/Toast/Toast.tsx
|
|
2
6
|
import SuccessIcon from "@mui/icons-material/CheckCircle";
|
|
3
7
|
import CloseIcon from "@mui/icons-material/Close";
|
|
@@ -81,7 +85,7 @@ var useToast = () => {
|
|
|
81
85
|
}
|
|
82
86
|
return context;
|
|
83
87
|
};
|
|
84
|
-
var renderVariantIcon = (variant) => {
|
|
88
|
+
var renderVariantIcon = (theme, variant) => {
|
|
85
89
|
switch (variant) {
|
|
86
90
|
case "success":
|
|
87
91
|
return /* @__PURE__ */ jsx(SuccessIcon, {});
|
|
@@ -92,7 +96,7 @@ var renderVariantIcon = (variant) => {
|
|
|
92
96
|
case "info":
|
|
93
97
|
return /* @__PURE__ */ jsx(InfoIcon, {});
|
|
94
98
|
case "promise":
|
|
95
|
-
return /* @__PURE__ */ jsx(CircularProgress, { size: 20 });
|
|
99
|
+
return /* @__PURE__ */ jsx(CircularProgress, { size: rem(theme, 20) });
|
|
96
100
|
default:
|
|
97
101
|
return null;
|
|
98
102
|
}
|
|
@@ -109,7 +113,7 @@ var buildToastStyles = (theme, glass) => {
|
|
|
109
113
|
return {
|
|
110
114
|
...baseStyles,
|
|
111
115
|
backgroundColor: alpha(theme.palette.background.paper, 0.1),
|
|
112
|
-
backdropFilter:
|
|
116
|
+
backdropFilter: `blur(${rem(theme, 20)})`,
|
|
113
117
|
border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`
|
|
114
118
|
};
|
|
115
119
|
}
|
|
@@ -135,7 +139,7 @@ var Toast = ({
|
|
|
135
139
|
Alert,
|
|
136
140
|
{
|
|
137
141
|
"data-testid": dataTestId,
|
|
138
|
-
icon: renderVariantIcon(variant),
|
|
142
|
+
icon: renderVariantIcon(theme, variant),
|
|
139
143
|
severity: toAlertSeverity(variant),
|
|
140
144
|
onClose: closable ? handleClose : void 0,
|
|
141
145
|
action: /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
@@ -169,10 +173,11 @@ var Toast = ({
|
|
|
169
173
|
var ToastContainer = ({
|
|
170
174
|
position = "top-right",
|
|
171
175
|
maxToasts = 5,
|
|
172
|
-
gap
|
|
176
|
+
gap,
|
|
173
177
|
className,
|
|
174
178
|
dataTestId = "toast-container"
|
|
175
179
|
}) => {
|
|
180
|
+
const theme = useTheme();
|
|
176
181
|
const context = useContext(ToastContext);
|
|
177
182
|
if (!context) {
|
|
178
183
|
throw new Error("ToastContainer must be used within a ToastProvider");
|
|
@@ -184,8 +189,9 @@ var ToastContainer = ({
|
|
|
184
189
|
zIndex: 9999,
|
|
185
190
|
display: "flex",
|
|
186
191
|
flexDirection: "column",
|
|
187
|
-
gap
|
|
188
|
-
|
|
192
|
+
// `gap` is design px (default 8), read through the type scale.
|
|
193
|
+
gap: rem(theme, gap ?? 8),
|
|
194
|
+
padding: rem(theme, 16),
|
|
189
195
|
pointerEvents: "none"
|
|
190
196
|
};
|
|
191
197
|
switch (position) {
|
|
@@ -230,4 +236,4 @@ export {
|
|
|
230
236
|
Toast,
|
|
231
237
|
ToastContainer
|
|
232
238
|
};
|
|
233
|
-
//# sourceMappingURL=chunk-
|
|
239
|
+
//# sourceMappingURL=chunk-VQYR64QB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/feedback/Toast/Toast.tsx"],"sourcesContent":["import SuccessIcon from '@mui/icons-material/CheckCircle';\nimport CloseIcon from '@mui/icons-material/Close';\nimport ErrorIcon from '@mui/icons-material/Error';\nimport InfoIcon from '@mui/icons-material/Info';\nimport WarningIcon from '@mui/icons-material/Warning';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport Alert from '@mui/material/Alert/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Portal from '@mui/material/Portal/index.js';\nimport Slide from '@mui/material/Slide/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport React, { createContext, useCallback,useContext, useState } from 'react';\n\nimport { rem } from '../../../tokens/relative';\n\nimport type { ToastContainerProps, ToastContextType, ToastItem,ToastProps } from './Toast.types';\n\nconst ToastContext = createContext<ToastContextType | null>(null);\n\ntype PromiseToastOptions<T> = {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n};\n\n// success/error may be a literal or a formatter over the settled value.\nconst resolveToastMessage = <T,>(message: string | ((value: T) => string), value: T): string =>\n typeof message === 'function' ? message(value) : message;\n\n// Shows a persistent \"loading\" toast for the life of a promise, then swaps it\n// for a success or error one. Lives outside the provider so the provider body\n// stays readable; it takes add/remove rather than reaching for context.\nconst trackPromiseWithToasts = async <T,>(\n promiseToResolve: Promise<T>,\n options: PromiseToastOptions<T>,\n addToast: (toast: Omit<ToastProps, 'id'>) => string,\n removeToast: (id: string) => void,\n): Promise<T> => {\n const toastId = addToast({\n message: options.loading,\n variant: 'promise',\n persistent: true,\n });\n\n try {\n const data = await promiseToResolve;\n\n removeToast(toastId);\n addToast({ message: resolveToastMessage(options.success, data), variant: 'success' });\n\n return data;\n } catch (error) {\n removeToast(toastId);\n addToast({ message: resolveToastMessage(options.error, error), variant: 'error' });\n\n throw error;\n }\n};\n\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n\n const removeToast = useCallback((id: string) => {\n setToasts((prev) => prev.filter((toast) => toast.id !== id));\n }, []);\n\n const addToast = useCallback(\n (toast: Omit<ToastProps, 'id'>): string => {\n const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n const newToast: ToastItem = {\n ...toast,\n id,\n timestamp: Date.now(),\n };\n\n setToasts((prev) => [...prev, newToast]);\n\n if (!toast.persistent && toast.duration !== 0) {\n const duration = toast.duration ?? 5000;\n window.setTimeout(() => {\n removeToast(id);\n }, duration);\n }\n\n return id;\n },\n [removeToast],\n );\n\n const clearAllToasts = useCallback(() => {\n setToasts([]);\n }, []);\n\n const promise = useCallback(\n <T,>(promiseToResolve: Promise<T>, options: PromiseToastOptions<T>): Promise<T> =>\n trackPromiseWithToasts(promiseToResolve, options, addToast, removeToast),\n [addToast, removeToast],\n );\n\n const contextValue: ToastContextType = {\n toasts,\n addToast,\n removeToast,\n clearAllToasts,\n promise,\n };\n\n return <ToastContext.Provider value={contextValue}>{children}</ToastContext.Provider>;\n};\n\nexport const useToast = (): ToastContextType => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n\nconst renderVariantIcon = (theme: Theme, variant: ToastProps['variant']) => {\n switch (variant) {\n case 'success':\n return <SuccessIcon />;\n case 'error':\n return <ErrorIcon />;\n case 'warning':\n return <WarningIcon />;\n case 'info':\n return <InfoIcon />;\n case 'promise':\n return <CircularProgress size={rem(theme, 20)} />;\n default:\n return null;\n }\n};\n\n// 'default' and 'promise' have no MUI severity of their own; both read as info.\nconst toAlertSeverity = (variant: ToastProps['variant']) =>\n variant === 'default' || variant === 'promise' ? 'info' : variant;\n\nconst buildToastStyles = (theme: Theme, glass: boolean) => {\n const baseStyles = {\n borderRadius: theme.spacing(1.5),\n transition: theme.transitions.create(['background-color', 'backdrop-filter'], {\n duration: theme.transitions.duration.standard,\n }),\n };\n\n if (glass) {\n return {\n ...baseStyles,\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: `blur(${rem(theme, 20)})`,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n };\n }\n\n return baseStyles;\n};\n\nexport const Toast: React.FC<ToastProps> = ({\n id = '',\n message,\n variant = 'default',\n closable = true,\n action,\n glass = false,\n onClose,\n dataTestId = 'toast',\n}) => {\n const theme = useTheme();\n\n const handleClose = () => {\n if (onClose && id) {\n onClose(id);\n }\n };\n\n return (\n <Alert\n data-testid={dataTestId}\n icon={renderVariantIcon(theme, variant)}\n severity={toAlertSeverity(variant)}\n onClose={closable ? handleClose : undefined}\n action={\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {action && (\n <Button\n data-testid={`${dataTestId}-action`}\n color=\"inherit\"\n size=\"small\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n )}\n {closable && (\n <IconButton\n data-testid={`${dataTestId}-close`}\n aria-label=\"close\"\n color=\"inherit\"\n size=\"small\"\n onClick={handleClose}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n }\n sx={buildToastStyles(theme, glass)}\n >\n <Typography data-testid={`${dataTestId}-message`} variant=\"body2\">{message}</Typography>\n </Alert>\n );\n};\n\nexport const ToastContainer: React.FC<ToastContainerProps> = ({\n position = 'top-right',\n maxToasts = 5,\n gap,\n className,\n dataTestId = 'toast-container',\n}) => {\n const theme = useTheme();\n const context = useContext(ToastContext);\n \n if (!context) {\n throw new Error('ToastContainer must be used within a ToastProvider');\n }\n\n const { toasts, removeToast } = context;\n\n const getPositionStyles = (): React.CSSProperties => {\n const baseStyles: React.CSSProperties = {\n position: 'fixed',\n zIndex: 9999,\n display: 'flex',\n flexDirection: 'column',\n // `gap` is design px (default 8), read through the type scale.\n gap: rem(theme, gap ?? 8),\n padding: rem(theme, 16),\n pointerEvents: 'none',\n };\n\n switch (position) {\n case 'top-left':\n return { ...baseStyles, top: 0, left: 0 };\n case 'top-center':\n return { ...baseStyles, top: 0, left: '50%', transform: 'translateX(-50%)' };\n case 'top-right':\n return { ...baseStyles, top: 0, right: 0 };\n case 'bottom-left':\n return { ...baseStyles, bottom: 0, left: 0, flexDirection: 'column-reverse' };\n case 'bottom-center':\n return {\n ...baseStyles,\n bottom: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n flexDirection: 'column-reverse',\n };\n case 'bottom-right':\n return { ...baseStyles, bottom: 0, right: 0, flexDirection: 'column-reverse' };\n default:\n return { ...baseStyles, top: 0, right: 0 };\n }\n };\n\n return (\n <Portal>\n <Box data-testid={dataTestId} className={className} sx={getPositionStyles()}>\n {toasts.slice(0, maxToasts).map((toast, index) => (\n <Slide\n key={toast.id}\n direction={position.includes('left') ? 'right' : 'left'}\n in={true}\n timeout={300}\n style={{ pointerEvents: 'auto' }}\n >\n <Box data-testid={`${dataTestId}-item-${index}`}>\n <Toast {...toast} onClose={removeToast} dataTestId={toast.dataTestId || `toast-${index}`} />\n </Box>\n </Slide>\n ))}\n </Box>\n </Portal>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -38,7 +38,7 @@ function ViewSelector({
|
|
|
38
38
|
const activeOption = VIEW_OPTIONS.find((option) => option.value === viewMode) ?? VIEW_OPTIONS[0];
|
|
39
39
|
const ActiveIcon = activeOption.icon;
|
|
40
40
|
return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center", gap: 1.5 }, children: [
|
|
41
|
-
viewMode === "grid" && /* @__PURE__ */ jsx(Box, { sx: { width: 96, display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(
|
|
41
|
+
viewMode === "grid" && /* @__PURE__ */ jsx(Box, { sx: { width: sxRem(96), display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(
|
|
42
42
|
Slider,
|
|
43
43
|
{
|
|
44
44
|
"data-testid": "resize-card-slider",
|
|
@@ -77,7 +77,7 @@ function ViewSelector({
|
|
|
77
77
|
onClose: () => setAnchorEl(null),
|
|
78
78
|
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
79
79
|
transformOrigin: { vertical: "top", horizontal: "right" },
|
|
80
|
-
slotProps: { paper: { sx: { minWidth: 180 } } },
|
|
80
|
+
slotProps: { paper: { sx: { minWidth: sxRem(180) } } },
|
|
81
81
|
children: VIEW_OPTIONS.map((option) => {
|
|
82
82
|
const OptionIcon = option.icon;
|
|
83
83
|
const selected = viewMode === option.value;
|
|
@@ -107,4 +107,4 @@ function ViewSelector({
|
|
|
107
107
|
export {
|
|
108
108
|
ViewSelector
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-VRPREI27.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/ContentToolbar/ViewSelector.tsx"],"sourcesContent":["'use client';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport ChevronDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport GridIcon from '@mui/icons-material/GridViewOutlined';\nimport ListIcon from '@mui/icons-material/FormatListBulletedRounded';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport Slider from '@mui/material/Slider/index.js';\n// `SvgIconComponent` is declared inline in @mui/icons-material's barrel and has\n// no module of its own, so the deep-import equivalent is its own definition:\n// `type SvgIconComponent = typeof SvgIcon`.\nimport type SvgIcon from '@mui/material/SvgIcon/index.js';\nimport React, { useState } from 'react';\n\nimport type { ViewMode, ViewSelectorProps } from './ContentToolbar.types';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\nimport { fieldHeight } from '../../../tokens/field-height';\nimport { sxRem } from '../../../tokens/relative';\n\nconst VIEW_OPTIONS: { value: ViewMode; label: string; icon: typeof SvgIcon }[] = [\n { value: 'grid', label: 'Grid View', icon: GridIcon },\n { value: 'list', label: 'List View', icon: ListIcon },\n];\n\n/**\n * View selector: a grid/list dropdown plus a card-size zoom slider (grid mode\n * only). Faithful MUI port of the reference toolbar's view control.\n */\nexport function ViewSelector({\n viewMode,\n onViewModeChange,\n zoom,\n onZoomChange,\n cardSizeLabel,\n}: ViewSelectorProps): React.JSX.Element {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n const activeOption = VIEW_OPTIONS.find((option) => option.value === viewMode) ?? VIEW_OPTIONS[0]!;\n const ActiveIcon = activeOption.icon;\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>\n {viewMode === 'grid' && (\n <Box sx={{ width: sxRem(96), display: 'flex', alignItems: 'center' }}>\n <Slider\n data-testid=\"resize-card-slider\"\n aria-label={cardSizeLabel}\n value={zoom[0] ?? 0}\n onChange={(_, value) => onZoomChange([value as number])}\n min={0}\n max={100}\n step={1}\n size=\"small\"\n />\n </Box>\n )}\n\n <Button\n data-testid=\"view-mode-btn\"\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n aria-label={activeOption.label}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n onClick={(event) => setAnchorEl(event.currentTarget)}\n sx={{ minWidth: 0, height: fieldHeight, px: 1, gap: 1, borderRadius: fieldRadiusPx, color: 'text.secondary' }}\n >\n <ActiveIcon sx={{ fontSize: sxRem(16) }} />\n <ChevronDownIcon sx={{ fontSize: sxRem(14) }} />\n </Button>\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={() => setAnchorEl(null)}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{ paper: { sx: { minWidth: sxRem(180) } } }}\n >\n {VIEW_OPTIONS.map((option) => {\n const OptionIcon = option.icon;\n const selected = viewMode === option.value;\n return (\n <MenuItem\n key={option.value}\n data-testid={`view-mode-${option.value}`}\n onClick={() => {\n onViewModeChange(option.value);\n setAnchorEl(null);\n }}\n sx={{ gap: 1.5 }}\n >\n <ListItemText>{option.label}</ListItemText>\n <OptionIcon sx={{ fontSize: sxRem(16), color: 'text.secondary' }} />\n <ListItemIcon sx={{ minWidth: 'auto !important' }}>\n <CheckIcon sx={{ fontSize: sxRem(16), color: selected ? 'text.primary' : 'transparent' }} />\n </ListItemIcon>\n </MenuItem>\n );\n })}\n </Menu>\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-FKUYRQSP.js";
|
|
4
4
|
import {
|
|
5
5
|
cardStyles
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-76X6JRVI.js";
|
|
7
7
|
import {
|
|
8
8
|
CARD_CONTENT_PADDING_UNITS,
|
|
9
9
|
CARD_HEADER_CHILDREN_PADDING_UNITS,
|
|
@@ -191,4 +191,4 @@ export {
|
|
|
191
191
|
CardActions,
|
|
192
192
|
CardMedia
|
|
193
193
|
};
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-WN5PNP6F.js.map
|
|
@@ -17,62 +17,63 @@ import {
|
|
|
17
17
|
swingAnimation,
|
|
18
18
|
translateAnimation,
|
|
19
19
|
wobbleAnimation
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-KM3Y5TCG.js";
|
|
21
21
|
import {
|
|
22
22
|
neutralTones,
|
|
23
23
|
shadowInk,
|
|
24
24
|
sheen
|
|
25
25
|
} from "./chunk-FQ6UW7IY.js";
|
|
26
26
|
import {
|
|
27
|
-
rem
|
|
27
|
+
rem,
|
|
28
|
+
rems
|
|
28
29
|
} from "./chunk-YKCAJ2TN.js";
|
|
29
30
|
|
|
30
31
|
// src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts
|
|
31
32
|
import { alpha } from "@mui/material/styles/index.js";
|
|
32
33
|
var sizeConfigs = {
|
|
33
|
-
xs: {
|
|
34
|
-
sm: {
|
|
35
|
-
md: {
|
|
36
|
-
lg: {
|
|
37
|
-
xl: {
|
|
34
|
+
xs: { ring: 12, glyph: 10 },
|
|
35
|
+
sm: { ring: 24, glyph: 20 },
|
|
36
|
+
md: { ring: 32, glyph: 28 },
|
|
37
|
+
lg: { ring: 48, glyph: 44 },
|
|
38
|
+
xl: { ring: 64, glyph: 60 }
|
|
38
39
|
};
|
|
39
40
|
var ANIMATIONS = {
|
|
40
|
-
rotate: { keyframes: `${rotateAnimation}`, easing: "linear", scale: 1 },
|
|
41
|
-
pulse: { keyframes: `${pulseAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
42
|
-
translate: { keyframes: `${translateAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
43
|
-
bounce: { keyframes: `${bounceAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
44
|
-
shake: { keyframes: `${shakeAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
45
|
-
flip: { keyframes: `${flipAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
46
|
-
spin: { keyframes: `${spinAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
47
|
-
fadeInOut: { keyframes: `${fadeInOutAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
48
|
-
heartbeat: { keyframes: `${heartbeatAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
49
|
-
wobble: { keyframes: `${wobbleAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
50
|
-
morph: { keyframes: `${morphAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
51
|
-
swing: { keyframes: `${swingAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
52
|
-
jello: { keyframes: `${jelloAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
53
|
-
float: { keyframes: `${floatAnimation}`, easing: "ease-in-out", scale: 2 },
|
|
54
|
-
neonFlicker: { keyframes: `${neonFlickerAnimation}`, easing: "ease-in-out", scale: 2 },
|
|
55
|
-
breathe: { keyframes: `${breatheAnimation}`, easing: "ease-in-out", scale: 1.5 }
|
|
41
|
+
rotate: { keyframes: () => `${rotateAnimation}`, easing: "linear", scale: 1 },
|
|
42
|
+
pulse: { keyframes: () => `${pulseAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
43
|
+
translate: { keyframes: (theme) => `${translateAnimation(theme)}`, easing: "ease-in-out", scale: 1 },
|
|
44
|
+
bounce: { keyframes: (theme) => `${bounceAnimation(theme)}`, easing: "ease-in-out", scale: 1 },
|
|
45
|
+
shake: { keyframes: (theme) => `${shakeAnimation(theme)}`, easing: "ease-in-out", scale: 1 },
|
|
46
|
+
flip: { keyframes: (theme) => `${flipAnimation(theme)}`, easing: "ease-in-out", scale: 1 },
|
|
47
|
+
spin: { keyframes: () => `${spinAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
48
|
+
fadeInOut: { keyframes: () => `${fadeInOutAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
49
|
+
heartbeat: { keyframes: () => `${heartbeatAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
50
|
+
wobble: { keyframes: (theme) => `${wobbleAnimation(theme)}`, easing: "ease-in-out", scale: 1 },
|
|
51
|
+
morph: { keyframes: () => `${morphAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
52
|
+
swing: { keyframes: () => `${swingAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
53
|
+
jello: { keyframes: () => `${jelloAnimation}`, easing: "ease-in-out", scale: 1 },
|
|
54
|
+
float: { keyframes: (theme) => `${floatAnimation(theme)}`, easing: "ease-in-out", scale: 2 },
|
|
55
|
+
neonFlicker: { keyframes: (theme) => `${neonFlickerAnimation(theme)}`, easing: "ease-in-out", scale: 2 },
|
|
56
|
+
breathe: { keyframes: () => `${breatheAnimation}`, easing: "ease-in-out", scale: 1.5 }
|
|
56
57
|
};
|
|
57
|
-
var animationFor = (variant, duration, delay, loop) => {
|
|
58
|
+
var animationFor = (theme, variant, duration, delay, loop) => {
|
|
58
59
|
const spec = ANIMATIONS[variant];
|
|
59
60
|
if (!spec) return "none";
|
|
60
61
|
const iterationCount = loop ? "infinite" : "1";
|
|
61
|
-
return `${spec.keyframes} ${duration * spec.scale}s ${spec.easing} ${iterationCount} ${delay > 0 ? `${delay}s` : "0s"}`;
|
|
62
|
+
return `${spec.keyframes(theme)} ${duration * spec.scale}s ${spec.easing} ${iterationCount} ${delay > 0 ? `${delay}s` : "0s"}`;
|
|
62
63
|
};
|
|
63
64
|
var SHADOWS = {
|
|
64
|
-
soft: (theme) => `0
|
|
65
|
-
hard: (theme) =>
|
|
66
|
-
elevated: (theme) => `0
|
|
65
|
+
soft: (theme) => `0 ${rems(theme, 4, 20)} ${shadowInk(theme, 0.15)}`,
|
|
66
|
+
hard: (theme) => `${rems(theme, 4, 4)} 0px ${shadowInk(theme, 0.25)}`,
|
|
67
|
+
elevated: (theme) => `0 ${rems(theme, 10, 40)} ${shadowInk(theme, 0.2)}, 0 ${rems(theme, 2, 10)} ${shadowInk(theme, 0.1)}`
|
|
67
68
|
};
|
|
68
69
|
var effectStyles = (theme, flags, animation, color) => {
|
|
69
70
|
const { $glass, $metallic, $gradient, $neon, $holographic } = flags;
|
|
70
71
|
return {
|
|
71
72
|
...$glass && {
|
|
72
73
|
background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.2)}, ${alpha(theme.palette.background.paper, 0.1)})`,
|
|
73
|
-
backdropFilter:
|
|
74
|
+
backdropFilter: `blur(${rem(theme, 10)})`,
|
|
74
75
|
border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,
|
|
75
|
-
boxShadow: `inset 0
|
|
76
|
+
boxShadow: `inset 0 ${rems(theme, 1, 1)} ${sheen(theme, 0.3)}, 0 ${rems(theme, 8, 32)} ${shadowInk(theme, 0.1)}`
|
|
76
77
|
},
|
|
77
78
|
...$metallic && {
|
|
78
79
|
background: `linear-gradient(145deg,
|
|
@@ -83,9 +84,9 @@ var effectStyles = (theme, flags, animation, color) => {
|
|
|
83
84
|
${neutralTones(theme).subtle} 100%)`,
|
|
84
85
|
backgroundSize: "200% 200%",
|
|
85
86
|
animation: `${animation}, ${breatheAnimation} 4s ease-in-out infinite`,
|
|
86
|
-
boxShadow: `inset 0
|
|
87
|
-
inset 0 -
|
|
88
|
-
0
|
|
87
|
+
boxShadow: `inset 0 ${rems(theme, 2, 4)} ${sheen(theme, 0.5)},
|
|
88
|
+
inset 0 ${rems(theme, -2, 4)} ${shadowInk(theme, 0.3)},
|
|
89
|
+
0 ${rems(theme, 4, 8)} ${shadowInk(theme, 0.2)}`
|
|
89
90
|
},
|
|
90
91
|
...$gradient && {
|
|
91
92
|
background: `linear-gradient(135deg,
|
|
@@ -96,9 +97,9 @@ var effectStyles = (theme, flags, animation, color) => {
|
|
|
96
97
|
},
|
|
97
98
|
...$neon && {
|
|
98
99
|
color,
|
|
99
|
-
textShadow: `0 0
|
|
100
|
+
textShadow: `0 0 ${rem(theme, 10)} ${color}, 0 0 ${rem(theme, 20)} ${color}, 0 0 ${rem(theme, 30)} ${color}`,
|
|
100
101
|
filter: `brightness(1.2) contrast(1.2)`,
|
|
101
|
-
animation: `${animation}, ${neonFlickerAnimation} 3s ease-in-out infinite`
|
|
102
|
+
animation: `${animation}, ${neonFlickerAnimation(theme)} 3s ease-in-out infinite`
|
|
102
103
|
},
|
|
103
104
|
...$holographic && {
|
|
104
105
|
background: `linear-gradient(45deg,
|
|
@@ -108,7 +109,7 @@ var effectStyles = (theme, flags, animation, color) => {
|
|
|
108
109
|
${theme.palette.warning.main} 75%,
|
|
109
110
|
${theme.palette.primary.main} 100%)`,
|
|
110
111
|
backgroundSize: "400% 400%",
|
|
111
|
-
animation: `${animation}, ${floatAnimation} 6s ease-in-out infinite`,
|
|
112
|
+
animation: `${animation}, ${floatAnimation(theme)} 6s ease-in-out infinite`,
|
|
112
113
|
backgroundClip: "text",
|
|
113
114
|
WebkitBackgroundClip: "text",
|
|
114
115
|
WebkitTextFillColor: "transparent",
|
|
@@ -120,10 +121,10 @@ var effectStyles = (theme, flags, animation, color) => {
|
|
|
120
121
|
"&::before": {
|
|
121
122
|
content: '""',
|
|
122
123
|
position: "absolute",
|
|
123
|
-
inset: -2,
|
|
124
|
+
inset: rem(theme, -2),
|
|
124
125
|
borderRadius: "50%",
|
|
125
126
|
background: "inherit",
|
|
126
|
-
filter:
|
|
127
|
+
filter: `blur(${rem(theme, 10)})`,
|
|
127
128
|
opacity: 0.5,
|
|
128
129
|
zIndex: -1
|
|
129
130
|
}
|
|
@@ -147,14 +148,18 @@ var iconSx = (theme, flags) => {
|
|
|
147
148
|
} = flags;
|
|
148
149
|
const color = $customColor || theme.palette.primary.main;
|
|
149
150
|
const glowColor = $glowColor || color;
|
|
150
|
-
const animation = animationFor($animationVariant, $duration, $delay, $loop);
|
|
151
|
-
const glyphSize = {
|
|
151
|
+
const animation = animationFor(theme, $animationVariant, $duration, $delay, $loop);
|
|
152
|
+
const glyphSize = {
|
|
153
|
+
fontSize: rem(theme, $fontSize),
|
|
154
|
+
width: rem(theme, $fontSize),
|
|
155
|
+
height: rem(theme, $fontSize)
|
|
156
|
+
};
|
|
152
157
|
return {
|
|
153
158
|
display: "inline-flex",
|
|
154
159
|
alignItems: "center",
|
|
155
160
|
justifyContent: "center",
|
|
156
|
-
width: $size,
|
|
157
|
-
height: $size,
|
|
161
|
+
width: rem(theme, $size),
|
|
162
|
+
height: rem(theme, $size),
|
|
158
163
|
color,
|
|
159
164
|
animation,
|
|
160
165
|
position: "relative",
|
|
@@ -166,13 +171,13 @@ var iconSx = (theme, flags) => {
|
|
|
166
171
|
"&::before": {
|
|
167
172
|
content: '""',
|
|
168
173
|
position: "absolute",
|
|
169
|
-
inset: -8,
|
|
174
|
+
inset: rem(theme, -8),
|
|
170
175
|
borderRadius: "50%",
|
|
171
176
|
background: `radial-gradient(circle, ${alpha(glowColor, 0.3)} 0%, transparent 70%)`,
|
|
172
|
-
animation: `${glowPulseAnimation} ${$duration * 1.2}s ease-in-out infinite`,
|
|
177
|
+
animation: `${glowPulseAnimation(theme)} ${$duration * 1.2}s ease-in-out infinite`,
|
|
173
178
|
zIndex: -1
|
|
174
179
|
},
|
|
175
|
-
filter: `drop-shadow(0 0
|
|
180
|
+
filter: `drop-shadow(0 0 ${rem(theme, 8)} ${alpha(glowColor, 0.5)})`
|
|
176
181
|
},
|
|
177
182
|
...effectStyles(theme, flags, animation, color),
|
|
178
183
|
...$ripple && {
|
|
@@ -181,7 +186,7 @@ var iconSx = (theme, flags) => {
|
|
|
181
186
|
position: "absolute",
|
|
182
187
|
inset: 0,
|
|
183
188
|
borderRadius: "50%",
|
|
184
|
-
border:
|
|
189
|
+
border: `${rem(theme, 2)} solid ${color}`,
|
|
185
190
|
animation: `${rippleAnimation} ${$duration * 1.5}s ease-out infinite`
|
|
186
191
|
}
|
|
187
192
|
},
|
|
@@ -198,4 +203,4 @@ export {
|
|
|
198
203
|
sizeConfigs,
|
|
199
204
|
iconSx
|
|
200
205
|
};
|
|
201
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# sourceMappingURL=chunk-XEWMY4ZM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport {\n bounceAnimation,\n breatheAnimation,\n fadeInOutAnimation,\n flipAnimation,\n floatAnimation,\n glowPulseAnimation,\n heartbeatAnimation,\n jelloAnimation,\n morphAnimation,\n neonFlickerAnimation,\n pulseAnimation,\n rippleAnimation,\n rotateAnimation,\n shakeAnimation,\n spinAnimation,\n swingAnimation,\n translateAnimation,\n wobbleAnimation,\n} from './AnimatedIcon.animations';\nimport type { AnimationSize, AnimationVariant } from './AnimatedIcon.types';\nimport { neutralTones, shadowInk, sheen } from '../../../tokens/ink';\nimport { rem, rems } from '../../../tokens/relative';\n\n/** Per size: the ring's edge and the glyph's edge (its font size, width and height), in design px. */\nexport const sizeConfigs: Record<AnimationSize, { ring: number; glyph: number }> = {\n xs: { ring: 12, glyph: 10 },\n sm: { ring: 24, glyph: 20 },\n md: { ring: 32, glyph: 28 },\n lg: { ring: 48, glyph: 44 },\n xl: { ring: 64, glyph: 60 },\n};\n\n/**\n * Every variant produces the same shorthand — keyframes, duration, easing,\n * iteration count, delay — so only the three things that actually differ are\n * tabulated. `scale` multiplies the caller's duration for the variants that\n * read as slower than the rest.\n */\nconst ANIMATIONS: Record<string, { keyframes: (theme: Theme) => string; easing: string; scale: number }> = {\n rotate: { keyframes: () => `${rotateAnimation}`, easing: 'linear', scale: 1 },\n pulse: { keyframes: () => `${pulseAnimation}`, easing: 'ease-in-out', scale: 1 },\n translate: { keyframes: (theme) => `${translateAnimation(theme)}`, easing: 'ease-in-out', scale: 1 },\n bounce: { keyframes: (theme) => `${bounceAnimation(theme)}`, easing: 'ease-in-out', scale: 1 },\n shake: { keyframes: (theme) => `${shakeAnimation(theme)}`, easing: 'ease-in-out', scale: 1 },\n flip: { keyframes: (theme) => `${flipAnimation(theme)}`, easing: 'ease-in-out', scale: 1 },\n spin: { keyframes: () => `${spinAnimation}`, easing: 'ease-in-out', scale: 1 },\n fadeInOut: { keyframes: () => `${fadeInOutAnimation}`, easing: 'ease-in-out', scale: 1 },\n heartbeat: { keyframes: () => `${heartbeatAnimation}`, easing: 'ease-in-out', scale: 1 },\n wobble: { keyframes: (theme) => `${wobbleAnimation(theme)}`, easing: 'ease-in-out', scale: 1 },\n morph: { keyframes: () => `${morphAnimation}`, easing: 'ease-in-out', scale: 1 },\n swing: { keyframes: () => `${swingAnimation}`, easing: 'ease-in-out', scale: 1 },\n jello: { keyframes: () => `${jelloAnimation}`, easing: 'ease-in-out', scale: 1 },\n float: { keyframes: (theme) => `${floatAnimation(theme)}`, easing: 'ease-in-out', scale: 2 },\n neonFlicker: { keyframes: (theme) => `${neonFlickerAnimation(theme)}`, easing: 'ease-in-out', scale: 2 },\n breathe: { keyframes: () => `${breatheAnimation}`, easing: 'ease-in-out', scale: 1.5 },\n};\n\nconst animationFor = (\n theme: Theme,\n variant: AnimationVariant,\n duration: number,\n delay: number,\n loop: boolean,\n) => {\n const spec = ANIMATIONS[variant];\n if (!spec) return 'none';\n\n const iterationCount = loop ? 'infinite' : '1';\n return `${spec.keyframes(theme)} ${duration * spec.scale}s ${spec.easing} ${iterationCount} ${delay > 0 ? `${delay}s` : '0s'}`;\n};\n\nconst SHADOWS: Record<string, (theme: Theme) => string> = {\n soft: (theme) => `0 ${rems(theme, 4, 20)} ${shadowInk(theme, 0.15)}`,\n hard: (theme) => `${rems(theme, 4, 4)} 0px ${shadowInk(theme, 0.25)}`,\n elevated: (theme) =>\n `0 ${rems(theme, 10, 40)} ${shadowInk(theme, 0.2)}, 0 ${rems(theme, 2, 10)} ${shadowInk(theme, 0.1)}`,\n};\n\nexport interface IconStyleFlags {\n $size: number;\n $fontSize: number;\n $animationVariant: AnimationVariant;\n $duration: number;\n $delay: number;\n $loop: boolean;\n $glow: boolean;\n $glass: boolean;\n $glowColor?: string;\n $customColor?: string;\n $metallic?: boolean;\n $gradient?: boolean;\n $shadow?: 'soft' | 'hard' | 'elevated' | 'none';\n $ripple?: boolean;\n $neon?: boolean;\n $holographic?: boolean;\n}\n\n/**\n * The four surface treatments that paint the icon themselves — metallic,\n * gradient, neon and holographic — each run a second animation alongside the\n * chosen one, so they all need the base animation string.\n */\nconst effectStyles = (\n theme: Theme,\n flags: IconStyleFlags,\n animation: string,\n color: string,\n): CSSObject => {\n const { $glass, $metallic, $gradient, $neon, $holographic } = flags;\n\n return {\n ...($glass && {\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.2)}, ${alpha(theme.palette.background.paper, 0.1)})`,\n backdropFilter: `blur(${rem(theme, 10)})`,\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n boxShadow: `inset 0 ${rems(theme, 1, 1)} ${sheen(theme, 0.3)}, 0 ${rems(theme, 8, 32)} ${shadowInk(theme, 0.1)}`,\n }),\n ...($metallic && {\n background: `linear-gradient(145deg,\n ${neutralTones(theme).track} 0%,\n ${neutralTones(theme).muted} 25%,\n ${neutralTones(theme).subtle} 50%,\n ${neutralTones(theme).emphasis} 75%,\n ${neutralTones(theme).subtle} 100%)`,\n backgroundSize: '200% 200%',\n animation: `${animation}, ${breatheAnimation} 4s ease-in-out infinite`,\n boxShadow: `inset 0 ${rems(theme, 2, 4)} ${sheen(theme, 0.5)},\n inset 0 ${rems(theme, -2, 4)} ${shadowInk(theme, 0.3)},\n 0 ${rems(theme, 4, 8)} ${shadowInk(theme, 0.2)}`,\n }),\n ...($gradient && {\n background: `linear-gradient(135deg,\n ${theme.palette.primary.main} 0%,\n ${theme.palette.secondary.main} 100%)`,\n backgroundSize: '200% 200%',\n animation: `${animation}, ${breatheAnimation} 3s ease-in-out infinite`,\n }),\n ...($neon && {\n color,\n textShadow: `0 0 ${rem(theme, 10)} ${color}, 0 0 ${rem(theme, 20)} ${color}, 0 0 ${rem(theme, 30)} ${color}`,\n filter: `brightness(1.2) contrast(1.2)`,\n animation: `${animation}, ${neonFlickerAnimation(theme)} 3s ease-in-out infinite`,\n }),\n ...($holographic && {\n background: `linear-gradient(45deg,\n ${theme.palette.primary.main} 0%,\n ${theme.palette.secondary.main} 25%,\n ${theme.palette.error.main} 50%,\n ${theme.palette.warning.main} 75%,\n ${theme.palette.primary.main} 100%)`,\n backgroundSize: '400% 400%',\n animation: `${animation}, ${floatAnimation(theme)} 6s ease-in-out infinite`,\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n filter: `hue-rotate(0deg)`,\n '@keyframes hueRotate': {\n '0%': { filter: 'hue-rotate(0deg)' },\n '100%': { filter: 'hue-rotate(360deg)' },\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: rem(theme, -2),\n borderRadius: '50%',\n background: 'inherit',\n filter: `blur(${rem(theme, 10)})`,\n opacity: 0.5,\n zIndex: -1,\n },\n }),\n };\n};\n\nexport const iconSx = (theme: Theme, flags: IconStyleFlags): CSSObject => {\n const {\n $size, $fontSize, $animationVariant, $duration, $delay, $loop,\n $glow, $glowColor, $customColor, $shadow, $ripple, $neon,\n } = flags;\n\n const color = $customColor || theme.palette.primary.main;\n const glowColor = $glowColor || color;\n const animation = animationFor(theme, $animationVariant, $duration, $delay, $loop);\n\n // Both selectors size the same glyph — MUI icons render an MuiSvgIcon-root,\n // a bare child renders an svg.\n const glyphSize = {\n fontSize: rem(theme, $fontSize),\n width: rem(theme, $fontSize),\n height: rem(theme, $fontSize),\n };\n\n return {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: rem(theme, $size),\n height: rem(theme, $size),\n color,\n animation,\n position: 'relative' as const,\n cursor: 'default',\n borderRadius: '50%',\n transition: 'all 0.3s ease',\n boxShadow: SHADOWS[$shadow ?? 'none']?.(theme) ?? 'none',\n ...($glow && {\n '&::before': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: rem(theme, -8),\n borderRadius: '50%',\n background: `radial-gradient(circle, ${alpha(glowColor, 0.3)} 0%, transparent 70%)`,\n animation: `${glowPulseAnimation(theme)} ${$duration * 1.2}s ease-in-out infinite`,\n zIndex: -1,\n },\n filter: `drop-shadow(0 0 ${rem(theme, 8)} ${alpha(glowColor, 0.5)})`,\n }),\n ...effectStyles(theme, flags, animation, color),\n ...($ripple && {\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: 0,\n borderRadius: '50%',\n border: `${rem(theme, 2)} solid ${color}`,\n animation: `${rippleAnimation} ${$duration * 1.5}s ease-out infinite`,\n },\n }),\n '& .MuiSvgIcon-root': glyphSize,\n '& svg': glyphSize,\n '&:hover': {\n transform: 'scale(1.05)',\n filter: $neon ? `brightness(1.4) contrast(1.3)` : undefined,\n },\n };\n};\n"],"mappings":"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","names":[]}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-2EAAWOZ2.js";
|
|
10
10
|
import {
|
|
11
11
|
Text
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YBH4SPMM.js";
|
|
13
13
|
import {
|
|
14
14
|
sxRem
|
|
15
15
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -297,4 +297,4 @@ export {
|
|
|
297
297
|
ViewHeader,
|
|
298
298
|
ViewFooter
|
|
299
299
|
};
|
|
300
|
-
//# sourceMappingURL=chunk-
|
|
300
|
+
//# sourceMappingURL=chunk-XIG3DXXX.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Skeleton
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BEGTLELZ.js";
|
|
4
4
|
import {
|
|
5
5
|
rem,
|
|
6
6
|
sxRem
|
|
@@ -205,4 +205,4 @@ export {
|
|
|
205
205
|
StatCard,
|
|
206
206
|
StatCard_default
|
|
207
207
|
};
|
|
208
|
-
//# sourceMappingURL=chunk-
|
|
208
|
+
//# sourceMappingURL=chunk-XRUW7DMH.js.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SettingsStatusMarker
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DBFRCTI5.js";
|
|
4
4
|
import {
|
|
5
5
|
TOUCH_TARGET
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NYFNF7I5.js";
|
|
7
7
|
import {
|
|
8
|
-
rem
|
|
8
|
+
rem,
|
|
9
|
+
sxRem
|
|
9
10
|
} from "./chunk-YKCAJ2TN.js";
|
|
10
11
|
|
|
11
12
|
// src/components/layout/SettingsLayout/SettingsSectionChips.tsx
|
|
@@ -13,7 +14,7 @@ import Box from "@mui/material/Box/index.js";
|
|
|
13
14
|
import { alpha, useTheme } from "@mui/material/styles/index.js";
|
|
14
15
|
import { useEffect, useRef } from "react";
|
|
15
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
|
-
var CHIP_HEIGHT = 34;
|
|
17
|
+
var CHIP_HEIGHT = sxRem(34);
|
|
17
18
|
function prefersReducedMotion() {
|
|
18
19
|
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return false;
|
|
19
20
|
return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
@@ -83,7 +84,7 @@ function SectionChip({
|
|
|
83
84
|
insetInlineEnd: 0,
|
|
84
85
|
top: "50%",
|
|
85
86
|
transform: "translateY(-50%)",
|
|
86
|
-
height: TOUCH_TARGET
|
|
87
|
+
height: rem(theme, TOUCH_TARGET)
|
|
87
88
|
}
|
|
88
89
|
},
|
|
89
90
|
children: [
|
|
@@ -149,4 +150,4 @@ SettingsSectionChips.displayName = "SettingsSectionChips";
|
|
|
149
150
|
export {
|
|
150
151
|
SettingsSectionChips
|
|
151
152
|
};
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-XWZJLXJT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/SettingsLayout/SettingsSectionChips.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport { alpha, useTheme, type Theme } from '@mui/material/styles/index.js';\nimport React, { useEffect, useRef, type RefObject } from 'react';\n\nimport { SettingsStatusMarker } from './SettingsStatusMarker';\nimport { TOUCH_TARGET } from './SettingsLayout.styles';\nimport { rem, sxRem } from '../../../tokens/relative';\n\n/**\n * The chip's drawn height, against `TOUCH_TARGET`'s 44 for the tappable one.\n *\n * The strip sits between a section's header and its first field on the width\n * with the least room for either, so the pill is sized to its text rather than\n * to the thumb — and the thumb is served by the hit area instead.\n */\nconst CHIP_HEIGHT = sxRem(34);\nimport type { SettingsLayoutProps, SettingsNavItem } from './SettingsLayout.types';\n\nexport interface SettingsSectionChipsProps {\n /** The sibling sections to offer — usually the open item's own group. */\n items: SettingsNavItem[];\n /** Which one is open. */\n activeItemId?: string;\n /** Accessible name of the strip, in the host's language. */\n ariaLabel: string;\n linkComponent?: SettingsLayoutProps['linkComponent'];\n onSelectItem?: (id: string) => void;\n testIdPrefix: string;\n}\n\n/** True when the visitor asked the OS for less movement. Re-read per scroll. */\nfunction prefersReducedMotion(): boolean {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return false;\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n/**\n * Keep the open section's chip in view, however the visitor got here.\n *\n * Keyed on `activeItemId` in an effect rather than done in a click handler:\n * arriving by the desktop rail, by a card, by a pasted link and by the browser's\n * back button all have to land the same way, and only one of those is a click on\n * a chip. Every re-render otherwise starts the strip at scroll 0, which parks\n * the active chip off the right edge on any list longer than a screen — the\n * visitor is told where they are by an element they cannot see.\n *\n * `itemsKey` rather than `items`: a host almost always rebuilds that array per\n * render (`groups.flatMap(...)`), and depending on it would re-run this on every\n * render and yank the strip back mid-drag.\n *\n * The key joins on NUL — as the ESCAPE `'\\u0000'`, which it must stay. A\n * literal NUL byte works identically at runtime and makes git classify this file\n * as BINARY: `git diff` prints \"Binary file not shown\" and the GitHub review UI\n * shows nothing at all. This file shipped that way once, and the cost was not\n * the byte — it was a whole change nobody could read.\n */\nfunction useCentreActiveChip(\n stripRef: RefObject<HTMLDivElement | null>,\n activeItemId: string | undefined,\n itemsKey: string,\n): void {\n useEffect(() => {\n const strip = stripRef.current;\n if (!strip || !activeItemId) return;\n // Walked rather than selected: an id is host data, and a section id carrying\n // a quote would turn a selector string into a thrown SyntaxError — which\n // here would take the whole strip down to centre one chip.\n const chip = Array.from(strip.children).find(\n (node): node is HTMLElement =>\n node instanceof HTMLElement && node.dataset.chipId === activeItemId,\n );\n if (!chip) return;\n // Feature-checked, not assumed. `Element.scrollTo` is absent in jsdom and in\n // a few embedded webviews, and an unguarded call there THROWS out of an\n // effect — which React escalates to the nearest error boundary. The whole\n // settings area would go down to centre one chip, and the host's own tests\n // could not render the shell at all. Same reasoning as walking the children\n // instead of building a selector: nothing in here is worth a crash.\n if (typeof strip.scrollTo !== 'function') return;\n const target = chip.offsetLeft + chip.offsetWidth / 2 - strip.clientWidth / 2;\n const left = Math.max(0, Math.min(target, strip.scrollWidth - strip.clientWidth));\n strip.scrollTo({ left, behavior: prefersReducedMotion() ? 'auto' : 'smooth' });\n }, [stripRef, activeItemId, itemsKey]);\n}\n\n/** One chip: a link when the host gave it a target, else a button. */\nfunction SectionChip({\n item,\n active,\n theme,\n linkComponent,\n onSelectItem,\n testIdPrefix,\n}: {\n item: SettingsNavItem;\n active: boolean;\n theme: Theme;\n linkComponent?: SettingsLayoutProps['linkComponent'];\n onSelectItem?: (id: string) => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const asLink = item.href !== undefined && linkComponent !== undefined;\n const behaviour = asLink\n ? { component: linkComponent, href: item.href }\n : { component: 'button' as const, type: 'button' as const, onClick: () => onSelectItem?.(item.id) };\n\n return (\n <Box\n {...behaviour}\n data-chip-id={item.id}\n data-testid={`${testIdPrefix}-chip-${item.id}`}\n aria-current={active ? 'page' : undefined}\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.75,\n flex: '0 0 auto',\n position: 'relative',\n // The chip LOOKS this tall; it is still tapped at `TOUCH_TARGET`.\n //\n // Shrinking `minHeight` alone would have bought a slimmer strip with a\n // smaller hit area — on the one width where the strip IS the navigation\n // and the input is a thumb. The `::after` below keeps the tappable\n // region at the full target while the pill itself takes less room, so\n // this is a visual change and not an accessibility trade.\n minHeight: CHIP_HEIGHT,\n px: 1.5,\n borderRadius: 999,\n cursor: 'pointer',\n font: 'inherit',\n fontSize: rem(theme, 13),\n fontWeight: active ? 700 : 500,\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n color: active ? 'primary.main' : 'text.secondary',\n bgcolor: active ? alpha(theme.palette.primary.main, 0.12) : 'transparent',\n border: `1px solid ${active ? alpha(theme.palette.primary.main, 0.4) : theme.palette.divider}`,\n // Spans the chip's width only, so neighbours never overlap: the strip\n // is a row, and the extra reach is vertical.\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n height: rem(theme, TOUCH_TARGET),\n },\n }}\n >\n {item.status ? (\n <SettingsStatusMarker\n status={item.status}\n label={item.statusLabel}\n testId={`${testIdPrefix}-chip-status-${item.id}`}\n />\n ) : null}\n {item.label}\n </Box>\n );\n}\n\n/**\n * The narrow-width section strip: horizontally scrollable chips for the sections\n * beside the open one.\n *\n * It clips its own overflow — `overflow-x: auto` on the strip, never on an\n * ancestor. A strip that pushes the page wide makes every OTHER screen at that\n * width scroll sideways too, and the cause is nowhere near the symptom.\n */\nexport function SettingsSectionChips({\n items,\n activeItemId,\n ariaLabel,\n linkComponent,\n onSelectItem,\n testIdPrefix,\n}: SettingsSectionChipsProps): React.JSX.Element {\n const theme = useTheme();\n const stripRef = useRef<HTMLDivElement | null>(null);\n useCentreActiveChip(stripRef, activeItemId, items.map((item) => item.id).join('\\u0000'));\n\n return (\n <Box\n ref={stripRef}\n component=\"nav\"\n aria-label={ariaLabel}\n data-testid={`${testIdPrefix}-chips`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 0.75,\n px: 0.25,\n py: 0.25,\n overflowX: 'auto',\n overflowY: 'hidden',\n scrollbarWidth: 'none',\n '&::-webkit-scrollbar': { display: 'none' },\n }}\n >\n {items.map((item) => (\n <SectionChip\n key={item.id}\n item={item}\n active={item.id === activeItemId}\n theme={theme}\n linkComponent={linkComponent}\n onSelectItem={onSelectItem}\n testIdPrefix={testIdPrefix}\n />\n ))}\n </Box>\n );\n}\n\nSettingsSectionChips.displayName = 'SettingsSectionChips';\n"],"mappings":"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","names":[]}
|
|
@@ -10,6 +10,9 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
default as default2
|
|
12
12
|
} from "./chunk-6DPAWXZ3.js";
|
|
13
|
+
import {
|
|
14
|
+
sxRem
|
|
15
|
+
} from "./chunk-YKCAJ2TN.js";
|
|
13
16
|
|
|
14
17
|
// src/components/data-display/DataViews/data-views-layout-context.tsx
|
|
15
18
|
import { createContext, useContext, useEffect, useMemo, useState } from "react";
|
|
@@ -17,7 +20,6 @@ import GridViewOutlinedIcon from "@mui/icons-material/GridViewOutlined";
|
|
|
17
20
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
21
|
var DataViewsLayoutContext = createContext(null);
|
|
19
22
|
var DEFAULT_ZOOM = 35;
|
|
20
|
-
var BASE_CARD_WIDTH = 180;
|
|
21
23
|
var CARD_SCALE_RANGE = { min: 0.75, max: 2 };
|
|
22
24
|
var LAYOUT_STORAGE_KEY = "dataviews:layout";
|
|
23
25
|
var DENSITY_STORAGE_KEY = "dataviews:density";
|
|
@@ -45,7 +47,7 @@ function cardScaleForZoom(zoom) {
|
|
|
45
47
|
return CARD_SCALE_RANGE.min + clamped / 100 * (CARD_SCALE_RANGE.max - CARD_SCALE_RANGE.min);
|
|
46
48
|
}
|
|
47
49
|
function cardMinWidthForZoom(zoom) {
|
|
48
|
-
return Math.round(
|
|
50
|
+
return Math.round(180 * cardScaleForZoom(zoom));
|
|
49
51
|
}
|
|
50
52
|
function isLayout(value) {
|
|
51
53
|
return DATA_VIEWS_LAYOUTS.includes(value);
|
|
@@ -152,8 +154,8 @@ function DataViewsZoomSlider({ testIdPrefix }) {
|
|
|
152
154
|
color: "text.secondary"
|
|
153
155
|
},
|
|
154
156
|
children: [
|
|
155
|
-
/* @__PURE__ */ jsx(GridViewOutlinedIcon, { sx: { fontSize: 14 } }),
|
|
156
|
-
/* @__PURE__ */ jsx(default2, { sx: { width: 88, display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(
|
|
157
|
+
/* @__PURE__ */ jsx(GridViewOutlinedIcon, { sx: { fontSize: sxRem(14) } }),
|
|
158
|
+
/* @__PURE__ */ jsx(default2, { sx: { width: sxRem(88), display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(
|
|
157
159
|
Slider,
|
|
158
160
|
{
|
|
159
161
|
size: "sm",
|
|
@@ -167,7 +169,7 @@ function DataViewsZoomSlider({ testIdPrefix }) {
|
|
|
167
169
|
"data-testid": `${testIdPrefix}-card-zoom`
|
|
168
170
|
}
|
|
169
171
|
) }),
|
|
170
|
-
/* @__PURE__ */ jsx(GridViewOutlinedIcon, { sx: { fontSize: 20 } })
|
|
172
|
+
/* @__PURE__ */ jsx(GridViewOutlinedIcon, { sx: { fontSize: sxRem(20) } })
|
|
171
173
|
]
|
|
172
174
|
}
|
|
173
175
|
);
|
|
@@ -184,4 +186,4 @@ export {
|
|
|
184
186
|
useDataViewsLayout,
|
|
185
187
|
DataViewsZoomSlider
|
|
186
188
|
};
|
|
187
|
-
//# sourceMappingURL=chunk-
|
|
189
|
+
//# sourceMappingURL=chunk-XZJM6EPC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-layout-context.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, useEffect, useMemo, useState, type ReactNode } from \"react\";\n\nimport GridViewOutlinedIcon from \"@mui/icons-material/GridViewOutlined\";\n\nimport { Slider } from \"../../form/Slider\";\nimport { Box } from \"../../../mui/Box\";\nimport { sxRem } from \"../../../tokens/relative\";\n\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { DATA_VIEWS_LAYOUTS, type DataViewsLayout } from \"./data-views-types\";\n\n/**\n * The DataViews layout (view type): the dense \"Tabela\" grid, the \"Grade\" of\n * cards, the \"Lista\" of full-width rows, or the \"Quadro\" board of state columns.\n * Shared across the toolbar (the toggle) and the body (the selector) via context\n * so a single source of truth drives what renders — each layout only appears\n * when the table opts into it (`renderCard` for the grade, `renderListRow` for\n * the lista, `board` + `renderCard` for the quadro).\n */\nexport type { DataViewsLayout };\n\ninterface DataViewsLayoutValue {\n layout: DataViewsLayout;\n setLayout: (layout: DataViewsLayout) => void;\n /** How much air each record gets — see {@link DataViewsDensity}. */\n density: DataViewsDensity;\n setDensity: (density: DataViewsDensity) => void;\n /** Whether the cards layout is available (a `renderCard` was supplied). */\n canUseCards: boolean;\n /** Whether the list layout is available (a `renderListRow` was supplied). */\n canUseList: boolean;\n /** Whether the board layout is available (a `board` config AND a `renderCard`). */\n canUseBoard: boolean;\n /** Card-size zoom (0–100); drives the card grid's min column width. */\n zoom: number;\n setZoom: (zoom: number) => void;\n}\n\nconst DataViewsLayoutContext = createContext<DataViewsLayoutValue | null>(null);\n\n/** Default card zoom (0–100). */\nconst DEFAULT_ZOOM = 35;\n/** The size multiplier the zoom slider spans (0.75× to 2×). */\nconst CARD_SCALE_RANGE = { min: 0.75, max: 2 } as const;\n\n/**\n * Where the user's layout preference is remembered. ONE key for every DataViews\n * table in the app, on purpose: picking \"Grade\" on Produtos is a statement about\n * how this operator likes to read lists, not about that one screen. Every other\n * screen that CAN render cards then opens in cards, and one that cannot falls\n * back without forgetting the preference.\n */\nconst LAYOUT_STORAGE_KEY = \"dataviews:layout\";\n\n/**\n * The density preference, remembered app-wide for the same reason as the layout:\n * an operator who wants tight rows wants them on every list, not on one.\n */\nconst DENSITY_STORAGE_KEY = \"dataviews:density\";\n\n/**\n * How much room each record gets. It means different things per layout, and\n * that is the point — one control, phrased in the terms of what is on screen:\n *\n * - table / list → row height (\"Baixa / Média / Alta\")\n * - cards → how many fit per row (\"Muitos / Médio / Poucos\")\n *\n * The board is unaffected: its cards are already sized by the zoom slider.\n */\nexport type DataViewsDensity = \"compact\" | \"cozy\" | \"comfortable\";\n\n/** Every density this build knows — the guard's single source. */\nconst DENSITIES: readonly DataViewsDensity[] = [\"compact\", \"cozy\", \"comfortable\"];\n\n/** Vertical padding (theme spacing units) per density, for a table or list row. */\nexport const DENSITY_ROW_PADDING: Record<DataViewsDensity, number> = {\n compact: 0.25,\n cozy: 0.75,\n comfortable: 1.5,\n};\n\n/**\n * The card WIDTH each density aims for, as a multiple of the base card width.\n *\n * Density used to cap the column COUNT, with a track floor of\n * `max(baseWidth, 100% / count)`. That base is a constant, so wherever it won\n * the arithmetic every density produced an identical track — \"Muitos\" and\n * \"Medio\" both drew 3 cards of 279px at md — and where the percentage won\n * instead, on a wide screen, the count was pinned and each card grew to a share\n * of the viewport: ~430px of card holding one chip and two lines of text.\n *\n * One width per density fixes both, because the number `auto-fill` divides by\n * now differs per density at every size. The spread is chosen so the three land\n * on DIFFERENT column counts across the range rather than by eye — 4/3/2 at md,\n * 6/4/3 at lg, 7/5/4 at xl, 13/9/8 at 2560.\n */\nexport const DENSITY_CARD_SCALE: Record<DataViewsDensity, number> = {\n compact: 0.84,\n cozy: 1.15,\n comfortable: 1.4,\n};\n\n/** The width a card aims for, in design px: the base width, scaled by zoom, then by density. */\nexport function cardTargetWidthFor(zoom: number, density: DataViewsDensity): number {\n return Math.round(cardMinWidthForZoom(zoom) * DENSITY_CARD_SCALE[density]);\n}\n\n/**\n * The BOARD's column-width multiplier per density.\n *\n * Density means \"how much air a record gets\", and on a board that is the column\n * width — narrow columns fit more etapas on screen, wide ones give each card\n * room to be read. Without this the board was the one layout the Exibição tab\n * offered nothing for: the format tile switched to Quadro and the whole density\n * section vanished, which reads as a control that broke rather than one that\n * does not apply.\n *\n * The spread is deliberately narrower than the card grid's. A board column has\n * a hard floor (`MIN_COLUMN_WIDTH` — a card below it stops being readable), so\n * a multiplier that undershoots it buys nothing and makes \"Estreita\" a tile\n * that does nothing on a phone.\n */\nexport const DENSITY_BOARD_SCALE: Record<DataViewsDensity, number> = {\n compact: 0.95,\n cozy: 1,\n comfortable: 1.25,\n};\n\n/**\n * Map the 0–100 zoom to the card SIZE multiplier. This is the single knob: the\n * card's width is its 180 design px × scale and its padding + typography\n * scale by the same factor, so the whole card grows together (scale 2 → twice\n * the size, proportion preserved by the aspect ratio). Passed to a card via\n * `DataViewCardSelection.scale`.\n */\nexport function cardScaleForZoom(zoom: number): number {\n const clamped = Math.max(0, Math.min(100, zoom));\n return CARD_SCALE_RANGE.min + (clamped / 100) * (CARD_SCALE_RANGE.max - CARD_SCALE_RANGE.min);\n}\n\n/**\n * The card grid's min column width in DESIGN px: the card's width at scale 1 —\n * 180 — times the zoom size multiplier. Drawn through `rem` where the track is\n * built (`cardGridTracks`), so it scales with the theme's type scale.\n */\nexport function cardMinWidthForZoom(zoom: number): number {\n return Math.round(180 * cardScaleForZoom(zoom));\n}\n\n/** Which layouts this table can actually render. */\ninterface LayoutAvailability {\n canUseCards: boolean;\n canUseList: boolean;\n canUseBoard: boolean;\n}\n\n/** Is this a layout string this build knows? Guards whatever is in storage. */\nfunction isLayout(value: unknown): value is DataViewsLayout {\n return DATA_VIEWS_LAYOUTS.includes(value as DataViewsLayout);\n}\n\n/** Is this a density this build knows? Guards whatever is in storage. */\nfunction isDensity(value: unknown): value is DataViewsDensity {\n return DENSITIES.includes(value as DataViewsDensity);\n}\n\n/** The remembered density, or undefined (no window, no value, junk). */\nfunction readStoredDensity(): DataViewsDensity | undefined {\n try {\n if (typeof window === \"undefined\") return undefined;\n const stored = window.localStorage.getItem(DENSITY_STORAGE_KEY);\n return isDensity(stored) ? stored : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Pin a layout to one this table can render. \"Tabela\" is always available, so it\n * is the floor: a page with no `renderCard` never renders a cards body, one with\n * no `renderListRow` never renders a list, and one with no `board` config never\n * renders a board — whatever is stored, saved in a view, or requested.\n */\nfunction pinLayout(layout: DataViewsLayout, available: LayoutAvailability): DataViewsLayout {\n if (layout === \"cards\") return available.canUseCards ? \"cards\" : \"table\";\n if (layout === \"list\") return available.canUseList ? \"list\" : \"table\";\n if (layout === \"board\") return available.canUseBoard ? \"board\" : \"table\";\n return \"table\";\n}\n\n/** The stored cross-screen preference, or undefined (no window, no value, junk). */\nfunction readStoredLayout(): DataViewsLayout | undefined {\n // Guarded rather than assumed: this module is also imported in Node (tests,\n // any SSR host), and a `localStorage` access can throw outright under a\n // restrictive privacy setting — a thrown read must not take the grid with it.\n try {\n if (typeof window === \"undefined\") return undefined;\n const stored = window.localStorage.getItem(LAYOUT_STORAGE_KEY);\n return isLayout(stored) ? stored : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Remember a preference for every other screen. A failed write is not an error. */\nfunction writeStored(key: string, value: string): void {\n try {\n if (typeof window === \"undefined\") return;\n window.localStorage.setItem(key, value);\n } catch {\n // Private mode / quota / disabled storage: the preference simply does not\n // survive the session. Nothing about the current view depends on it.\n }\n}\n\ninterface LayoutProviderProps extends Partial<LayoutAvailability> {\n /** Which layout to show first when the user has expressed no preference. */\n defaultLayout?: DataViewsLayout;\n /**\n * The layout an APPLIED SAVED VIEW pins, when it stored one. It wins over the\n * remembered preference for as long as that view is applied — the view is a\n * snapshot someone chose to keep — but it does NOT overwrite the preference:\n * only the toggle does that, because only the toggle is the user saying so.\n */\n viewLayout?: DataViewsLayout;\n /**\n * Ignore — and stop writing — the remembered cross-screen preference, making\n * `defaultLayout` authoritative for this table.\n *\n * For a table that exists to SHOW a particular layout rather than to be\n * browsed: a Storybook story called \"Board\", a docs example, a screenshot\n * harness. Without it the remembered preference wins, so opening \"Board\"\n * after having clicked Tabela anywhere renders a table — the demonstration\n * silently showing the wrong thing, and a shared link doing it for everyone\n * whose preference differs.\n *\n * A real screen leaves this off: remembering how someone likes to read\n * lists is the point.\n */\n ignoreStoredLayout?: boolean;\n children: ReactNode;\n}\n\n/**\n * Provides the view-type state, seeded from (in order) the applied saved view's\n * layout, the user's remembered cross-screen preference, then `defaultLayout` —\n * each pinned to what this table can actually render.\n */\nexport function DataViewsLayoutProvider({\n canUseCards = false,\n canUseList = false,\n canUseBoard = false,\n defaultLayout = \"table\",\n viewLayout,\n ignoreStoredLayout = false,\n children,\n}: LayoutProviderProps): React.JSX.Element {\n const availability = { canUseCards, canUseList, canUseBoard };\n const [layout, setLayoutState] = useState<DataViewsLayout>(() =>\n pinLayout(\n viewLayout ?? (ignoreStoredLayout ? undefined : readStoredLayout()) ?? defaultLayout,\n availability,\n ),\n );\n const [density, setDensityState] = useState<DataViewsDensity>(\n () => (ignoreStoredLayout ? undefined : readStoredDensity()) ?? \"cozy\",\n );\n const [zoom, setZoom] = useState(DEFAULT_ZOOM);\n // A newly applied view carrying a layout switches to it (its reference-change\n // is the signal, exactly as `appliedState` works for the filters).\n useEffect(() => {\n if (viewLayout) setLayoutState(pinLayout(viewLayout, availability));\n // Availability is derived from props that do not change for a mounted table.\n }, [viewLayout]);\n // Pin again on read: `canUseCards`/`canUseBoard` can flip for a mounted table\n // (a page that supplies `renderCard` only once its card data has loaded), and\n // a stale \"cards\" would otherwise render a cards body with no renderer.\n const effective = pinLayout(layout, availability);\n\n const value = useMemo<DataViewsLayoutValue>(\n () => ({\n layout: effective,\n setLayout: (next: DataViewsLayout) => {\n const pinned = pinLayout(next, availability);\n setLayoutState(pinned);\n // Remember the user's own choice across every screen — see LAYOUT_STORAGE_KEY.\n // A table pinned to a layout does not write: it would teach the\n // preference a value the operator never chose.\n if (!ignoreStoredLayout) writeStored(LAYOUT_STORAGE_KEY, pinned);\n },\n density,\n setDensity: (next: DataViewsDensity) => {\n setDensityState(next);\n if (!ignoreStoredLayout) writeStored(DENSITY_STORAGE_KEY, next);\n },\n canUseCards,\n canUseList,\n canUseBoard,\n zoom,\n setZoom,\n }),\n [effective, density, canUseCards, canUseList, canUseBoard, zoom],\n );\n return <DataViewsLayoutContext.Provider value={value}>{children}</DataViewsLayoutContext.Provider>;\n}\n\n/** Read the current DataViews layout. Throws outside a provider. */\nexport function useDataViewsLayout(): DataViewsLayoutValue {\n const ctx = useContext(DataViewsLayoutContext);\n if (!ctx) {\n throw new Error(\"useDataViewsLayout must be used within a DataViewsLayoutProvider\");\n }\n return ctx;\n}\n\n/**\n * Card-size slider for the toolbar — shown in the CARD-BASED layouts (\"Grade\"\n * and \"Quadro\"), mirroring the tabwoah view-selector's zoom. The board reuses\n * the same `renderCard`, so the same knob scales both.\n *\n * Deliberately ABSENT in \"Lista\" and \"Tabela\" (FUT-733): a list row is\n * full-width and sized by its content, so a card-size multiplier has nothing to\n * act on — a slider that moved and changed nothing would be worse than none.\n */\nexport function DataViewsZoomSlider({ testIdPrefix }: { testIdPrefix: string }): React.JSX.Element | null {\n const { layout, zoom, setZoom } = useDataViewsLayout();\n const copy = useDataViewsCopy();\n if (layout !== \"cards\" && layout !== \"board\") return null;\n return (\n <Box\n sx={{\n display: { xs: \"none\", sm: \"flex\" },\n alignItems: \"center\",\n gap: 1,\n color: \"text.secondary\",\n }}\n >\n <GridViewOutlinedIcon sx={{ fontSize: sxRem(14) }} />\n <Box sx={{ width: sxRem(88), display: \"flex\", alignItems: \"center\" }}>\n <Slider\n size=\"sm\"\n showValue={false}\n value={zoom}\n min={0}\n max={100}\n step={5}\n onChange={(_event, next) => setZoom(Array.isArray(next) ? (next[0] ?? 0) : next)}\n aria-label={copy.display.cardZoom}\n data-testid={`${testIdPrefix}-card-zoom`}\n />\n </Box>\n <GridViewOutlinedIcon sx={{ fontSize: sxRem(20) }} />\n </Box>\n );\n}\n"],"mappings":"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","names":["default"]}
|
|
@@ -7,7 +7,7 @@ var resolveScrollable = (scrollableTarget) => {
|
|
|
7
7
|
}
|
|
8
8
|
return scrollableTarget;
|
|
9
9
|
};
|
|
10
|
-
var useSentinel = ({ testMode,
|
|
10
|
+
var useSentinel = ({ testMode, rootMargin, scrollableTarget }) => {
|
|
11
11
|
const sentinelRef = useRef(null);
|
|
12
12
|
const [isIntersecting, setIsIntersecting] = useState(false);
|
|
13
13
|
useEffect(() => {
|
|
@@ -20,13 +20,13 @@ var useSentinel = ({ testMode, threshold, scrollableTarget }) => {
|
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
root: resolveScrollable(scrollableTarget) || void 0,
|
|
23
|
-
rootMargin
|
|
23
|
+
rootMargin,
|
|
24
24
|
threshold: 0
|
|
25
25
|
}
|
|
26
26
|
);
|
|
27
27
|
observer.observe(sentinelRef.current);
|
|
28
28
|
return () => observer.disconnect();
|
|
29
|
-
}, [testMode,
|
|
29
|
+
}, [testMode, rootMargin, scrollableTarget]);
|
|
30
30
|
return { sentinelRef, isIntersecting };
|
|
31
31
|
};
|
|
32
32
|
var useLoadMore = ({
|
|
@@ -75,4 +75,4 @@ export {
|
|
|
75
75
|
useSentinel,
|
|
76
76
|
useLoadMore
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-Y2X7LYIN.js.map
|