@12-apps/ui 6.27.0 → 6.27.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/components/data-display/Alert/Alert.js +5 -4
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js +3 -2
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +4 -3
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.js +5 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +3 -2
- package/dist/_internal/components/data-display/Badge/Badge.animations.js +4 -3
- package/dist/_internal/components/data-display/Badge/Badge.js +8 -7
- package/dist/_internal/components/data-display/Badge/Badge.metrics.js +3 -2
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +6 -5
- package/dist/_internal/components/data-display/Badge/Badge.variants.js +4 -3
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +7 -6
- package/dist/_internal/components/data-display/Banner/Banner.js +5 -4
- package/dist/_internal/components/data-display/Banner/Banner.styles.js +4 -3
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +5 -4
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +6 -5
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +10 -9
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +2 -1
- package/dist/_internal/components/data-display/Carousel/Carousel.js +5 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +2 -1
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +2 -1
- package/dist/_internal/components/data-display/Chart/Chart.js +2 -1
- package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -4
- package/dist/_internal/components/data-display/Chart/chart-context.js +2 -1
- package/dist/_internal/components/data-display/Chart/chart-internals.js +2 -1
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -1
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +5 -4
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +42 -41
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +61 -60
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +9 -8
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -9
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +15 -14
- package/dist/_internal/components/data-display/DataViews/base-card.js +11 -10
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +12 -11
- package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +4 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +8 -7
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +17 -16
- package/dist/_internal/components/data-display/DataViews/card-surface.js +5 -4
- 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 +5 -4
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +6 -5
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +10 -9
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +5 -4
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +7 -6
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +7 -6
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +12 -11
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +5 -4
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +38 -37
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +5 -4
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +17 -16
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -5
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +9 -8
- 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 +7 -6
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +15 -14
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +22 -21
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +14 -13
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +7 -6
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
- package/dist/_internal/components/data-display/DataViews/save-view-preview.js +5 -4
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +8 -7
- package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +5 -4
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +15 -15
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +11 -11
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +18 -17
- 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/Lightbox/Lightbox.js +4 -4
- 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/MapMarkers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +10 -10
- 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/useMapPreview.js +3 -3
- package/dist/_internal/components/data-display/Progress/Progress.js +5 -4
- package/dist/_internal/components/data-display/Progress/Progress.metrics.js +3 -2
- package/dist/_internal/components/data-display/Progress/Progress.styles.js +4 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +2 -1
- package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +2 -1
- package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
- package/dist/_internal/components/data-display/Table/Table.js +2 -2
- package/dist/_internal/components/data-display/index.js +64 -63
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +5 -4
- package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/index.js +9 -8
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +6 -6
- package/dist/_internal/components/form/Button/Button.js +4 -3
- package/dist/_internal/components/form/Button/Button.styles.js +3 -2
- package/dist/_internal/components/form/Calendar/Calendar.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +4 -4
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +6 -6
- package/dist/_internal/components/form/CepField/CepField.js +3 -3
- package/dist/_internal/components/form/Checkbox/Checkbox.js +3 -2
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
- package/dist/_internal/components/form/Command/Command.js +4 -3
- package/dist/_internal/components/form/Command/Command.styles.js +2 -1
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
- package/dist/_internal/components/form/Input/Input.js +2 -2
- package/dist/_internal/components/form/Label/Label.js +2 -1
- package/dist/_internal/components/form/Label/Label.styles.js +2 -1
- package/dist/_internal/components/form/Menubar/Menubar.item.js +2 -1
- package/dist/_internal/components/form/Menubar/Menubar.js +2 -1
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +2 -1
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +2 -1
- package/dist/_internal/components/form/Switch/Switch.js +5 -4
- package/dist/_internal/components/form/Switch/Switch.parts.js +4 -3
- package/dist/_internal/components/form/Switch/Switch.styles.js +3 -2
- package/dist/_internal/components/form/index.js +24 -23
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +7 -7
- package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
- package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
- package/dist/_internal/components/form/total-form/Fields/index.js +15 -15
- package/dist/_internal/components/form/total-form/SubmitButton.js +5 -4
- package/dist/_internal/components/index.js +112 -111
- package/dist/_internal/components/layout/Box/Box.js +5 -4
- package/dist/_internal/components/layout/Card/Card.js +2 -2
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
- package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +6 -5
- package/dist/_internal/components/layout/index.js +9 -9
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +9 -8
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -1
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
- package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
- package/dist/_internal/components/navigation/index.js +18 -17
- package/dist/_internal/components/typography/Heading/Heading.js +5 -4
- package/dist/_internal/components/typography/Heading/Heading.metrics.js +3 -2
- package/dist/_internal/components/typography/Heading/Heading.styles.js +4 -3
- package/dist/_internal/components/typography/Paragraph/Paragraph.js +3 -2
- package/dist/_internal/components/typography/Text/Text.js +4 -3
- package/dist/_internal/components/typography/Text/Text.metrics.js +3 -2
- package/dist/_internal/components/typography/index.js +8 -7
- package/dist/_internal/icons/Icon.js +5 -4
- package/dist/_internal/provider/UiProvider.js +4 -3
- package/dist/_internal/provider/mui-bridge.js +3 -2
- package/dist/_internal/provider/use-ui-theme.js +4 -3
- package/dist/_internal/social-login-button/social-login-button.js +12 -11
- package/dist/_internal/tokens/ink-over.js +17 -0
- package/dist/_internal/tokens/ink-over.js.map +1 -0
- package/dist/_internal/tokens/theme.js +5 -3
- package/dist/_internal/user-avatar/user-avatar.js +12 -11
- package/dist/charts.js +13 -12
- package/dist/{chunk-Q3GSDSK2.js → chunk-236QP424.js} +2 -2
- package/dist/{chunk-JFRKBSWI.js → chunk-237NDIT2.js} +2 -2
- package/dist/chunk-2BYKTBDL.js +33 -0
- package/dist/chunk-2BYKTBDL.js.map +1 -0
- package/dist/{chunk-TQOPF7LD.js → chunk-2L2NWXWJ.js} +2 -2
- package/dist/{chunk-M4NFXC5R.js → chunk-2WSU6OGE.js} +5 -5
- package/dist/{chunk-SZETT7QV.js → chunk-35UG2QDB.js} +2 -2
- package/dist/{chunk-72T5PAW7.js → chunk-3BPDHWVF.js} +9 -9
- package/dist/{chunk-EOHKZGOZ.js → chunk-3PUOLOEP.js} +2 -2
- package/dist/{chunk-ECMJ5VPW.js → chunk-3TFUAKWJ.js} +2 -2
- package/dist/{chunk-4ETQRBZC.js → chunk-46UPILLK.js} +4 -4
- package/dist/{chunk-6VHCSPKK.js → chunk-4H4Y2SX3.js} +3 -3
- package/dist/{chunk-L7S6N67X.js → chunk-4OSGKO7E.js} +2 -2
- package/dist/{chunk-UG76BO5K.js → chunk-5KFZGB5U.js} +2 -2
- package/dist/{chunk-FF3R67WD.js → chunk-5UC2RNOY.js} +4 -4
- package/dist/{chunk-65METCKT.js → chunk-6R567DH4.js} +17 -17
- package/dist/{chunk-G2JPUHEJ.js → chunk-AIBNBWQU.js} +2 -2
- package/dist/{chunk-AIRWM7KK.js → chunk-AVI3XHRQ.js} +4 -4
- package/dist/{chunk-IE7ISTLQ.js → chunk-B443IIQG.js} +4 -4
- package/dist/{chunk-WETAIIKC.js → chunk-BBYCZZBH.js} +2 -2
- package/dist/{chunk-CKJI7JO5.js → chunk-BEWD734I.js} +2 -2
- package/dist/{chunk-RRX6ZTNX.js → chunk-BLT5ZBVL.js} +2 -2
- package/dist/{chunk-MDTSMJ7C.js → chunk-BYMWW65P.js} +3 -3
- package/dist/{chunk-Q3OFOOO7.js → chunk-C5EFVSBN.js} +2 -2
- package/dist/{chunk-Y55ILY2F.js → chunk-C5YBXQTK.js} +3 -3
- package/dist/{chunk-YANLN6HP.js → chunk-D6HDJVQW.js} +5 -5
- package/dist/{chunk-QXFPTRHB.js → chunk-DACURY25.js} +3 -3
- package/dist/{chunk-DIHVWBQV.js → chunk-DEE6IPGI.js} +32 -6
- package/dist/chunk-DEE6IPGI.js.map +1 -0
- package/dist/{chunk-ZA4U5GDU.js → chunk-DORPR2YP.js} +2 -2
- package/dist/{chunk-6YLAVHV4.js → chunk-DTKMBI7B.js} +4 -4
- package/dist/{chunk-JXNT5TUP.js → chunk-DVEYD27F.js} +2 -2
- package/dist/{chunk-CMN26J5Y.js → chunk-E6D2Y5EK.js} +2 -2
- package/dist/{chunk-HKB5C2KY.js → chunk-EMAX7RPN.js} +5 -5
- package/dist/{chunk-ZAJO2B75.js → chunk-EPRA5QLB.js} +2 -2
- package/dist/{chunk-ERX4XIYC.js → chunk-EUKYQXYU.js} +2 -2
- package/dist/{chunk-C3CMEDSO.js → chunk-EVXFEXBS.js} +2 -2
- package/dist/{chunk-OGHW7RQC.js → chunk-EZMCWRXO.js} +2 -2
- package/dist/{chunk-DYESJJ3Q.js → chunk-EZNTM6PT.js} +4 -4
- package/dist/{chunk-67ALTEWH.js → chunk-FGKKLHKY.js} +2 -2
- package/dist/{chunk-SC72DRTX.js → chunk-FJGHP2QW.js} +7 -7
- package/dist/{chunk-45OHGD2B.js → chunk-FJQ5CH4Q.js} +4 -4
- package/dist/{chunk-OXYR2HVK.js → chunk-FOKBP6HR.js} +10 -10
- package/dist/{chunk-22X7TT6Z.js → chunk-FR6AJSMT.js} +5 -5
- package/dist/{chunk-QE2C35TO.js → chunk-FUT7HGWZ.js} +5 -5
- package/dist/{chunk-TUO47RL2.js → chunk-FVPN4YKW.js} +4 -4
- package/dist/{chunk-ZDWU52DJ.js → chunk-G5ZVD5IJ.js} +2 -2
- package/dist/{chunk-NPN7JTRM.js → chunk-GH2DC7PS.js} +4 -4
- package/dist/{chunk-77DF5LKI.js → chunk-GJUIZ5FN.js} +2 -2
- package/dist/{chunk-YJ4HM25H.js → chunk-GLWW2XCP.js} +2 -2
- package/dist/{chunk-7AIHK2XM.js → chunk-H53YNR23.js} +6 -6
- package/dist/{chunk-GT7C6TSM.js → chunk-HDNK7BAX.js} +3 -3
- package/dist/{chunk-7NEUPEV5.js → chunk-HQB5XNK5.js} +2 -2
- package/dist/{chunk-NNXZ5RK5.js → chunk-IQ7WZ3RN.js} +4 -4
- package/dist/{chunk-7KEGJH3Q.js → chunk-IVVOIDE5.js} +3 -3
- package/dist/{chunk-SSWZHR46.js → chunk-J3ZP6EUS.js} +5 -5
- package/dist/{chunk-YPILHGEO.js → chunk-J6CSPDC7.js} +2 -2
- package/dist/{chunk-RRO2EOJB.js → chunk-JB67KPGM.js} +4 -4
- package/dist/{chunk-KAV63FBG.js → chunk-JLBHH2JU.js} +2 -2
- package/dist/{chunk-V5P5Q6HM.js → chunk-JOXBCXVL.js} +8 -8
- package/dist/{chunk-LO2B7FDQ.js → chunk-JPVDZXXX.js} +2 -2
- package/dist/{chunk-P7FQUGED.js → chunk-JRWPI4XF.js} +5 -5
- package/dist/{chunk-OVGASVPW.js → chunk-JVVTSSS4.js} +2 -2
- package/dist/{chunk-IASDP44E.js → chunk-K4N3V7YE.js} +4 -4
- package/dist/{chunk-L7LCSZ3H.js → chunk-K7DCYV5Q.js} +3 -3
- package/dist/{chunk-O7HLQTB7.js → chunk-KCAGCDCQ.js} +3 -3
- package/dist/{chunk-B5SW7I5W.js → chunk-L4D6YLLU.js} +2 -2
- package/dist/{chunk-FOF2RAVQ.js → chunk-L6TCIZFR.js} +4 -4
- package/dist/{chunk-7Z2AQEC5.js → chunk-LCXXPIG3.js} +2 -2
- package/dist/{chunk-5QUSX3TC.js → chunk-LQRJCEFO.js} +5 -5
- package/dist/{chunk-MQPT254A.js → chunk-LSJY4LWZ.js} +4 -4
- package/dist/{chunk-27BL3DNT.js → chunk-MC2WCZK5.js} +13 -13
- package/dist/{chunk-CA7TA36R.js → chunk-MGPA6KTM.js} +2 -2
- package/dist/{chunk-GQJ4NCZ6.js → chunk-MNSW33DU.js} +4 -4
- package/dist/{chunk-MYH7VISV.js → chunk-MSUSZLRE.js} +5 -5
- package/dist/{chunk-WKF54CCK.js → chunk-MVJYIHPH.js} +5 -5
- package/dist/{chunk-EQA4VQEO.js → chunk-NGM5XKAS.js} +2 -2
- package/dist/{chunk-PKFFJAQ6.js → chunk-NGVGTMHT.js} +2 -2
- package/dist/{chunk-3GB6KWHH.js → chunk-NUB4T3RQ.js} +2 -2
- package/dist/{chunk-GTLJYAEG.js → chunk-NWQWUYOV.js} +2 -2
- package/dist/{chunk-4A2Q22HO.js → chunk-O42ZA3TW.js} +3 -3
- package/dist/{chunk-DTIB5KWP.js → chunk-OJCK5RNJ.js} +3 -3
- package/dist/{chunk-OAWEUKUC.js → chunk-OLQDB346.js} +2 -2
- package/dist/{chunk-4IVOHL32.js → chunk-OP6F3NXX.js} +2 -2
- package/dist/{chunk-DWJBOR47.js → chunk-P3NRT6GV.js} +4 -4
- package/dist/{chunk-GBX5ACPF.js → chunk-PCYGUOWJ.js} +4 -4
- package/dist/{chunk-3PJLT5FX.js → chunk-PFZAUMJA.js} +5 -3
- package/dist/{chunk-3PJLT5FX.js.map → chunk-PFZAUMJA.js.map} +1 -1
- package/dist/{chunk-N5PY7IXI.js → chunk-PJTSGHTY.js} +2 -2
- package/dist/{chunk-AGYGNNOM.js → chunk-PQECNGDE.js} +2 -2
- package/dist/{chunk-XNOSTV5F.js → chunk-PTP3CZL4.js} +2 -2
- package/dist/{chunk-X5RDHO6G.js → chunk-QPDDS6DQ.js} +2 -2
- package/dist/{chunk-6SK3MTYJ.js → chunk-QSKJLMNS.js} +4 -4
- package/dist/{chunk-GYQT47YZ.js → chunk-QTZ7I6QS.js} +2 -2
- package/dist/{chunk-WBKWIFXA.js → chunk-QYNCPS5W.js} +6 -6
- package/dist/{chunk-FGK2C7JR.js → chunk-RVGG5YJY.js} +2 -2
- package/dist/{chunk-7FOOLP5H.js → chunk-RXSGHPCR.js} +4 -4
- package/dist/{chunk-LUMF63BM.js → chunk-SFAP5EH5.js} +4 -4
- package/dist/{chunk-DW6GBMLQ.js → chunk-SLMA4UQS.js} +3 -3
- package/dist/{chunk-JD3D6Y4U.js → chunk-SOJQEJAE.js} +7 -7
- package/dist/{chunk-QLI7ES7Z.js → chunk-SONWG2RT.js} +5 -18
- package/dist/chunk-SONWG2RT.js.map +1 -0
- package/dist/{chunk-BBC4KT5G.js → chunk-SQV3HPTZ.js} +23 -5
- package/dist/chunk-SQV3HPTZ.js.map +1 -0
- package/dist/{chunk-LGJ2H4AH.js → chunk-SUWIHCD6.js} +8 -8
- package/dist/{chunk-IV5QQLCS.js → chunk-T2VO32Z2.js} +2 -2
- package/dist/{chunk-VK4ULJFH.js → chunk-T5WNNEP5.js} +2 -2
- package/dist/{chunk-FRW4SYZD.js → chunk-TEE6HNHS.js} +4 -4
- package/dist/{chunk-2LSCK45B.js → chunk-TSEWUY4V.js} +5 -3
- package/dist/{chunk-2LSCK45B.js.map → chunk-TSEWUY4V.js.map} +1 -1
- package/dist/{chunk-DTC224UJ.js → chunk-TX3ZHO5R.js} +5 -5
- package/dist/{chunk-H3BQFEN5.js → chunk-UC6A6ASM.js} +2 -2
- package/dist/{chunk-GSTRPZS4.js → chunk-UKPZVX3J.js} +2 -2
- package/dist/{chunk-EPNCYUQ7.js → chunk-UN5INW6K.js} +4 -4
- package/dist/{chunk-UGL6SJN6.js → chunk-UQNB2W2I.js} +3 -3
- package/dist/{chunk-P7IVAMAU.js → chunk-V7F53GEO.js} +7 -7
- package/dist/{chunk-ZC7RQDZ5.js → chunk-VESIQYBF.js} +5 -5
- package/dist/{chunk-2KVQIGVE.js → chunk-VKH7AENA.js} +2 -2
- package/dist/{chunk-SMZBGHR2.js → chunk-VRKS5K4N.js} +5 -5
- package/dist/{chunk-PW2WLDX3.js → chunk-VVXA7T2M.js} +2 -2
- package/dist/{chunk-2SWQ6HIK.js → chunk-W3FAKT3D.js} +4 -4
- package/dist/{chunk-QQLGSMGE.js → chunk-W5CW7JFZ.js} +2 -2
- package/dist/{chunk-HOJL2GKW.js → chunk-WC3W36AM.js} +4 -4
- package/dist/{chunk-3VZT2FAI.js → chunk-WC5XYWTE.js} +3 -3
- package/dist/{chunk-RFZU5BTG.js → chunk-WYDGPJ3Z.js} +4 -4
- package/dist/{chunk-KOFO6QZY.js → chunk-XGOWREVV.js} +2 -2
- package/dist/{chunk-DF2FFYZ7.js → chunk-XSJWN3WH.js} +7 -7
- package/dist/{chunk-DB2MAYPK.js → chunk-XV2TDULR.js} +2 -2
- package/dist/{chunk-4OHRZW7U.js → chunk-XXE6NTJB.js} +4 -4
- package/dist/{chunk-4G3FGCWX.js → chunk-XXJRT6BP.js} +2 -2
- package/dist/{chunk-LV4UTYAD.js → chunk-XYDW5RQB.js} +2 -2
- package/dist/{chunk-QRX5BYUQ.js → chunk-Y6KPZQPI.js} +4 -4
- package/dist/{chunk-7VN7LFBA.js → chunk-YD77RANW.js} +5 -5
- package/dist/{chunk-77OXG6DH.js → chunk-YFY3YVV6.js} +7 -7
- package/dist/{chunk-PENJBKPH.js → chunk-YTYROOLY.js} +3 -3
- package/dist/data-display/Alert.js +5 -4
- package/dist/data-display/AsyncStateContainer.js +4 -4
- package/dist/data-display/Avatar.js +5 -4
- package/dist/data-display/Badge.js +8 -7
- package/dist/data-display/Banner.js +5 -4
- package/dist/data-display/CardKit.js +11 -10
- package/dist/data-display/Carousel.js +5 -4
- package/dist/data-display/Chart.js +13 -12
- package/dist/data-display/DataViews.js +80 -79
- package/dist/data-display/DescriptionItem.js +5 -4
- package/dist/data-display/FleetMap.js +18 -17
- package/dist/data-display/LazyImage.js +3 -3
- package/dist/data-display/Lightbox.js +4 -4
- package/dist/data-display/LoadingState.js +3 -3
- package/dist/data-display/MapPreview.js +10 -10
- package/dist/data-display/Progress.js +5 -4
- package/dist/data-display/Sheet.js +4 -3
- package/dist/data-display/StatCard.js +3 -3
- package/dist/data-display/Table.js +2 -2
- package/dist/feedback/ConfirmAction.js +5 -4
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/form/AddressAutocomplete.js +6 -6
- package/dist/form/Button.js +4 -3
- package/dist/form/Calendar.js +2 -2
- package/dist/form/CategorySelect.js +8 -8
- package/dist/form/CepField.js +3 -3
- package/dist/form/Checkbox.js +3 -2
- package/dist/form/CodeEditor.js +2 -2
- package/dist/form/Command.js +4 -3
- package/dist/form/DateRangePicker.js +3 -3
- package/dist/form/Input.js +2 -2
- package/dist/form/Label.js +2 -1
- package/dist/form/Menubar.js +2 -1
- package/dist/form/Switch.js +5 -4
- package/dist/form/total-form.js +20 -19
- package/dist/icons.js +5 -4
- package/dist/layout/Box.js +5 -4
- package/dist/layout/Card.js +2 -2
- package/dist/layout/ContentToolbar.js +3 -3
- package/dist/layout/ScrollArea.js +2 -2
- package/dist/layout/SettingsLayout.js +6 -6
- package/dist/layout/Skeleton.js +2 -2
- package/dist/layout/Stack.js +6 -5
- package/dist/native/chunks/{chunk-XI7HTAVN.js → chunk-2HLEFYJ5.js} +2 -2
- package/dist/native/chunks/{chunk-UYREIOEM.js → chunk-6XDMYJBW.js} +2 -2
- package/dist/native/chunks/{chunk-6L4UZBQP.js → chunk-BEPOBULQ.js} +3 -3
- package/dist/native/chunks/{chunk-ZOP7UAZK.js → chunk-CO47ZRXO.js} +2 -2
- package/dist/native/chunks/{chunk-UII3IFLP.js → chunk-NVPXIJ2O.js} +2 -2
- package/dist/native/chunks/{chunk-2SBTJSQE.js → chunk-SOQVMWLQ.js} +5 -5
- package/dist/native/chunks/{chunk-MP3UDWTT.js → chunk-YQDDM6ZW.js} +24 -17
- package/dist/native/chunks/chunk-YQDDM6ZW.js.map +1 -0
- package/dist/native/chunks/{chunk-QEQZ5AF6.js → chunk-YXM4NR2B.js} +3 -3
- package/dist/native/data-display/Alert.js +3 -3
- package/dist/native/data-display/Avatar.js +3 -3
- package/dist/native/data-display/Badge.js +3 -3
- package/dist/native/data-display/Chip.js +3 -3
- package/dist/native/data-display/EmptyState.js +5 -5
- package/dist/native/data-display/ErrorState.js +4 -4
- package/dist/native/data-display/FleetMap.js +6 -6
- package/dist/native/data-display/LoadingState.js +2 -2
- package/dist/native/data-display/Progress.js +2 -2
- package/dist/native/feedback/Dialog.js +3 -3
- package/dist/native/form/Button.js +3 -3
- package/dist/native/form/Checkbox.js +3 -3
- package/dist/native/form/Input.js +3 -3
- package/dist/native/form/Select.js +4 -4
- package/dist/native/form/Switch.js +2 -2
- package/dist/native/icons.js +3 -3
- package/dist/native/layout/Box.js +3 -3
- package/dist/native/layout/Card.js +2 -2
- package/dist/native/layout/Container.js +2 -2
- package/dist/native/layout/Skeleton.js +3 -3
- package/dist/native/layout/Spacer.js +2 -2
- package/dist/native/layout/Stack.js +3 -3
- package/dist/native/provider.js +2 -2
- package/dist/native/tokens.js +1 -1
- package/dist/native/typography/Heading.js +2 -2
- package/dist/native/typography/Paragraph.js +2 -2
- package/dist/native/typography/Text.js +2 -2
- package/dist/navigation/AppHeader.js +11 -10
- package/dist/navigation/NavigationMenu.js +5 -5
- package/dist/navigation/Tabs.js +2 -2
- package/dist/provider.js +5 -4
- package/dist/social-login-button.js +12 -11
- package/dist/tokens.js +5 -3
- package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/tokens/ink-over.d.ts +12 -0
- package/dist/types/tokens/ink-over.d.ts.map +1 -0
- package/dist/types/tokens/theme.d.ts +2 -44
- package/dist/types/tokens/theme.d.ts.map +1 -1
- package/dist/types-native/tokens/ink-over.d.ts +12 -0
- package/dist/types-native/tokens/ink-over.d.ts.map +1 -0
- package/dist/types-native/tokens/theme.d.ts +2 -44
- package/dist/types-native/tokens/theme.d.ts.map +1 -1
- package/dist/typography/Heading.js +5 -4
- package/dist/typography/Paragraph.js +3 -2
- package/dist/typography/Text.js +4 -3
- package/dist/user-avatar.js +12 -11
- package/package.json +1 -1
- package/src/components/form/Switch/Switch.styles.ts +29 -3
- package/src/components/navigation/Tabs/Tabs.tsx +46 -1
- package/src/tokens/ink-over.ts +142 -0
- package/src/tokens/theme.ts +10 -65
- package/dist/chunk-BBC4KT5G.js.map +0 -1
- package/dist/chunk-DIHVWBQV.js.map +0 -1
- package/dist/chunk-QLI7ES7Z.js.map +0 -1
- package/dist/native/chunks/chunk-MP3UDWTT.js.map +0 -1
- /package/dist/{chunk-Q3GSDSK2.js.map → chunk-236QP424.js.map} +0 -0
- /package/dist/{chunk-JFRKBSWI.js.map → chunk-237NDIT2.js.map} +0 -0
- /package/dist/{chunk-TQOPF7LD.js.map → chunk-2L2NWXWJ.js.map} +0 -0
- /package/dist/{chunk-M4NFXC5R.js.map → chunk-2WSU6OGE.js.map} +0 -0
- /package/dist/{chunk-SZETT7QV.js.map → chunk-35UG2QDB.js.map} +0 -0
- /package/dist/{chunk-72T5PAW7.js.map → chunk-3BPDHWVF.js.map} +0 -0
- /package/dist/{chunk-EOHKZGOZ.js.map → chunk-3PUOLOEP.js.map} +0 -0
- /package/dist/{chunk-ECMJ5VPW.js.map → chunk-3TFUAKWJ.js.map} +0 -0
- /package/dist/{chunk-4ETQRBZC.js.map → chunk-46UPILLK.js.map} +0 -0
- /package/dist/{chunk-6VHCSPKK.js.map → chunk-4H4Y2SX3.js.map} +0 -0
- /package/dist/{chunk-L7S6N67X.js.map → chunk-4OSGKO7E.js.map} +0 -0
- /package/dist/{chunk-UG76BO5K.js.map → chunk-5KFZGB5U.js.map} +0 -0
- /package/dist/{chunk-FF3R67WD.js.map → chunk-5UC2RNOY.js.map} +0 -0
- /package/dist/{chunk-65METCKT.js.map → chunk-6R567DH4.js.map} +0 -0
- /package/dist/{chunk-G2JPUHEJ.js.map → chunk-AIBNBWQU.js.map} +0 -0
- /package/dist/{chunk-AIRWM7KK.js.map → chunk-AVI3XHRQ.js.map} +0 -0
- /package/dist/{chunk-IE7ISTLQ.js.map → chunk-B443IIQG.js.map} +0 -0
- /package/dist/{chunk-WETAIIKC.js.map → chunk-BBYCZZBH.js.map} +0 -0
- /package/dist/{chunk-CKJI7JO5.js.map → chunk-BEWD734I.js.map} +0 -0
- /package/dist/{chunk-RRX6ZTNX.js.map → chunk-BLT5ZBVL.js.map} +0 -0
- /package/dist/{chunk-MDTSMJ7C.js.map → chunk-BYMWW65P.js.map} +0 -0
- /package/dist/{chunk-Q3OFOOO7.js.map → chunk-C5EFVSBN.js.map} +0 -0
- /package/dist/{chunk-Y55ILY2F.js.map → chunk-C5YBXQTK.js.map} +0 -0
- /package/dist/{chunk-YANLN6HP.js.map → chunk-D6HDJVQW.js.map} +0 -0
- /package/dist/{chunk-QXFPTRHB.js.map → chunk-DACURY25.js.map} +0 -0
- /package/dist/{chunk-ZA4U5GDU.js.map → chunk-DORPR2YP.js.map} +0 -0
- /package/dist/{chunk-6YLAVHV4.js.map → chunk-DTKMBI7B.js.map} +0 -0
- /package/dist/{chunk-JXNT5TUP.js.map → chunk-DVEYD27F.js.map} +0 -0
- /package/dist/{chunk-CMN26J5Y.js.map → chunk-E6D2Y5EK.js.map} +0 -0
- /package/dist/{chunk-HKB5C2KY.js.map → chunk-EMAX7RPN.js.map} +0 -0
- /package/dist/{chunk-ZAJO2B75.js.map → chunk-EPRA5QLB.js.map} +0 -0
- /package/dist/{chunk-ERX4XIYC.js.map → chunk-EUKYQXYU.js.map} +0 -0
- /package/dist/{chunk-C3CMEDSO.js.map → chunk-EVXFEXBS.js.map} +0 -0
- /package/dist/{chunk-OGHW7RQC.js.map → chunk-EZMCWRXO.js.map} +0 -0
- /package/dist/{chunk-DYESJJ3Q.js.map → chunk-EZNTM6PT.js.map} +0 -0
- /package/dist/{chunk-67ALTEWH.js.map → chunk-FGKKLHKY.js.map} +0 -0
- /package/dist/{chunk-SC72DRTX.js.map → chunk-FJGHP2QW.js.map} +0 -0
- /package/dist/{chunk-45OHGD2B.js.map → chunk-FJQ5CH4Q.js.map} +0 -0
- /package/dist/{chunk-OXYR2HVK.js.map → chunk-FOKBP6HR.js.map} +0 -0
- /package/dist/{chunk-22X7TT6Z.js.map → chunk-FR6AJSMT.js.map} +0 -0
- /package/dist/{chunk-QE2C35TO.js.map → chunk-FUT7HGWZ.js.map} +0 -0
- /package/dist/{chunk-TUO47RL2.js.map → chunk-FVPN4YKW.js.map} +0 -0
- /package/dist/{chunk-ZDWU52DJ.js.map → chunk-G5ZVD5IJ.js.map} +0 -0
- /package/dist/{chunk-NPN7JTRM.js.map → chunk-GH2DC7PS.js.map} +0 -0
- /package/dist/{chunk-77DF5LKI.js.map → chunk-GJUIZ5FN.js.map} +0 -0
- /package/dist/{chunk-YJ4HM25H.js.map → chunk-GLWW2XCP.js.map} +0 -0
- /package/dist/{chunk-7AIHK2XM.js.map → chunk-H53YNR23.js.map} +0 -0
- /package/dist/{chunk-GT7C6TSM.js.map → chunk-HDNK7BAX.js.map} +0 -0
- /package/dist/{chunk-7NEUPEV5.js.map → chunk-HQB5XNK5.js.map} +0 -0
- /package/dist/{chunk-NNXZ5RK5.js.map → chunk-IQ7WZ3RN.js.map} +0 -0
- /package/dist/{chunk-7KEGJH3Q.js.map → chunk-IVVOIDE5.js.map} +0 -0
- /package/dist/{chunk-SSWZHR46.js.map → chunk-J3ZP6EUS.js.map} +0 -0
- /package/dist/{chunk-YPILHGEO.js.map → chunk-J6CSPDC7.js.map} +0 -0
- /package/dist/{chunk-RRO2EOJB.js.map → chunk-JB67KPGM.js.map} +0 -0
- /package/dist/{chunk-KAV63FBG.js.map → chunk-JLBHH2JU.js.map} +0 -0
- /package/dist/{chunk-V5P5Q6HM.js.map → chunk-JOXBCXVL.js.map} +0 -0
- /package/dist/{chunk-LO2B7FDQ.js.map → chunk-JPVDZXXX.js.map} +0 -0
- /package/dist/{chunk-P7FQUGED.js.map → chunk-JRWPI4XF.js.map} +0 -0
- /package/dist/{chunk-OVGASVPW.js.map → chunk-JVVTSSS4.js.map} +0 -0
- /package/dist/{chunk-IASDP44E.js.map → chunk-K4N3V7YE.js.map} +0 -0
- /package/dist/{chunk-L7LCSZ3H.js.map → chunk-K7DCYV5Q.js.map} +0 -0
- /package/dist/{chunk-O7HLQTB7.js.map → chunk-KCAGCDCQ.js.map} +0 -0
- /package/dist/{chunk-B5SW7I5W.js.map → chunk-L4D6YLLU.js.map} +0 -0
- /package/dist/{chunk-FOF2RAVQ.js.map → chunk-L6TCIZFR.js.map} +0 -0
- /package/dist/{chunk-7Z2AQEC5.js.map → chunk-LCXXPIG3.js.map} +0 -0
- /package/dist/{chunk-5QUSX3TC.js.map → chunk-LQRJCEFO.js.map} +0 -0
- /package/dist/{chunk-MQPT254A.js.map → chunk-LSJY4LWZ.js.map} +0 -0
- /package/dist/{chunk-27BL3DNT.js.map → chunk-MC2WCZK5.js.map} +0 -0
- /package/dist/{chunk-CA7TA36R.js.map → chunk-MGPA6KTM.js.map} +0 -0
- /package/dist/{chunk-GQJ4NCZ6.js.map → chunk-MNSW33DU.js.map} +0 -0
- /package/dist/{chunk-MYH7VISV.js.map → chunk-MSUSZLRE.js.map} +0 -0
- /package/dist/{chunk-WKF54CCK.js.map → chunk-MVJYIHPH.js.map} +0 -0
- /package/dist/{chunk-EQA4VQEO.js.map → chunk-NGM5XKAS.js.map} +0 -0
- /package/dist/{chunk-PKFFJAQ6.js.map → chunk-NGVGTMHT.js.map} +0 -0
- /package/dist/{chunk-3GB6KWHH.js.map → chunk-NUB4T3RQ.js.map} +0 -0
- /package/dist/{chunk-GTLJYAEG.js.map → chunk-NWQWUYOV.js.map} +0 -0
- /package/dist/{chunk-4A2Q22HO.js.map → chunk-O42ZA3TW.js.map} +0 -0
- /package/dist/{chunk-DTIB5KWP.js.map → chunk-OJCK5RNJ.js.map} +0 -0
- /package/dist/{chunk-OAWEUKUC.js.map → chunk-OLQDB346.js.map} +0 -0
- /package/dist/{chunk-4IVOHL32.js.map → chunk-OP6F3NXX.js.map} +0 -0
- /package/dist/{chunk-DWJBOR47.js.map → chunk-P3NRT6GV.js.map} +0 -0
- /package/dist/{chunk-GBX5ACPF.js.map → chunk-PCYGUOWJ.js.map} +0 -0
- /package/dist/{chunk-N5PY7IXI.js.map → chunk-PJTSGHTY.js.map} +0 -0
- /package/dist/{chunk-AGYGNNOM.js.map → chunk-PQECNGDE.js.map} +0 -0
- /package/dist/{chunk-XNOSTV5F.js.map → chunk-PTP3CZL4.js.map} +0 -0
- /package/dist/{chunk-X5RDHO6G.js.map → chunk-QPDDS6DQ.js.map} +0 -0
- /package/dist/{chunk-6SK3MTYJ.js.map → chunk-QSKJLMNS.js.map} +0 -0
- /package/dist/{chunk-GYQT47YZ.js.map → chunk-QTZ7I6QS.js.map} +0 -0
- /package/dist/{chunk-WBKWIFXA.js.map → chunk-QYNCPS5W.js.map} +0 -0
- /package/dist/{chunk-FGK2C7JR.js.map → chunk-RVGG5YJY.js.map} +0 -0
- /package/dist/{chunk-7FOOLP5H.js.map → chunk-RXSGHPCR.js.map} +0 -0
- /package/dist/{chunk-LUMF63BM.js.map → chunk-SFAP5EH5.js.map} +0 -0
- /package/dist/{chunk-DW6GBMLQ.js.map → chunk-SLMA4UQS.js.map} +0 -0
- /package/dist/{chunk-JD3D6Y4U.js.map → chunk-SOJQEJAE.js.map} +0 -0
- /package/dist/{chunk-LGJ2H4AH.js.map → chunk-SUWIHCD6.js.map} +0 -0
- /package/dist/{chunk-IV5QQLCS.js.map → chunk-T2VO32Z2.js.map} +0 -0
- /package/dist/{chunk-VK4ULJFH.js.map → chunk-T5WNNEP5.js.map} +0 -0
- /package/dist/{chunk-FRW4SYZD.js.map → chunk-TEE6HNHS.js.map} +0 -0
- /package/dist/{chunk-DTC224UJ.js.map → chunk-TX3ZHO5R.js.map} +0 -0
- /package/dist/{chunk-H3BQFEN5.js.map → chunk-UC6A6ASM.js.map} +0 -0
- /package/dist/{chunk-GSTRPZS4.js.map → chunk-UKPZVX3J.js.map} +0 -0
- /package/dist/{chunk-EPNCYUQ7.js.map → chunk-UN5INW6K.js.map} +0 -0
- /package/dist/{chunk-UGL6SJN6.js.map → chunk-UQNB2W2I.js.map} +0 -0
- /package/dist/{chunk-P7IVAMAU.js.map → chunk-V7F53GEO.js.map} +0 -0
- /package/dist/{chunk-ZC7RQDZ5.js.map → chunk-VESIQYBF.js.map} +0 -0
- /package/dist/{chunk-2KVQIGVE.js.map → chunk-VKH7AENA.js.map} +0 -0
- /package/dist/{chunk-SMZBGHR2.js.map → chunk-VRKS5K4N.js.map} +0 -0
- /package/dist/{chunk-PW2WLDX3.js.map → chunk-VVXA7T2M.js.map} +0 -0
- /package/dist/{chunk-2SWQ6HIK.js.map → chunk-W3FAKT3D.js.map} +0 -0
- /package/dist/{chunk-QQLGSMGE.js.map → chunk-W5CW7JFZ.js.map} +0 -0
- /package/dist/{chunk-HOJL2GKW.js.map → chunk-WC3W36AM.js.map} +0 -0
- /package/dist/{chunk-3VZT2FAI.js.map → chunk-WC5XYWTE.js.map} +0 -0
- /package/dist/{chunk-RFZU5BTG.js.map → chunk-WYDGPJ3Z.js.map} +0 -0
- /package/dist/{chunk-KOFO6QZY.js.map → chunk-XGOWREVV.js.map} +0 -0
- /package/dist/{chunk-DF2FFYZ7.js.map → chunk-XSJWN3WH.js.map} +0 -0
- /package/dist/{chunk-DB2MAYPK.js.map → chunk-XV2TDULR.js.map} +0 -0
- /package/dist/{chunk-4OHRZW7U.js.map → chunk-XXE6NTJB.js.map} +0 -0
- /package/dist/{chunk-4G3FGCWX.js.map → chunk-XXJRT6BP.js.map} +0 -0
- /package/dist/{chunk-LV4UTYAD.js.map → chunk-XYDW5RQB.js.map} +0 -0
- /package/dist/{chunk-QRX5BYUQ.js.map → chunk-Y6KPZQPI.js.map} +0 -0
- /package/dist/{chunk-7VN7LFBA.js.map → chunk-YD77RANW.js.map} +0 -0
- /package/dist/{chunk-77OXG6DH.js.map → chunk-YFY3YVV6.js.map} +0 -0
- /package/dist/{chunk-PENJBKPH.js.map → chunk-YTYROOLY.js.map} +0 -0
- /package/dist/native/chunks/{chunk-XI7HTAVN.js.map → chunk-2HLEFYJ5.js.map} +0 -0
- /package/dist/native/chunks/{chunk-UYREIOEM.js.map → chunk-6XDMYJBW.js.map} +0 -0
- /package/dist/native/chunks/{chunk-6L4UZBQP.js.map → chunk-BEPOBULQ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-ZOP7UAZK.js.map → chunk-CO47ZRXO.js.map} +0 -0
- /package/dist/native/chunks/{chunk-UII3IFLP.js.map → chunk-NVPXIJ2O.js.map} +0 -0
- /package/dist/native/chunks/{chunk-2SBTJSQE.js.map → chunk-SOQVMWLQ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-QEQZ5AF6.js.map → chunk-YXM4NR2B.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/Progress/Progress.metrics.ts"],"sourcesContent":["import type { ProgressSize } from './Progress.base';\nimport { contrastText, GREY, type UiPaletteColor, type UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\n/**\n * THE NUMBERS BOTH `Progress` RENDERERS DRAW WITH.\n *\n * `Progress.styles.ts` (web, emotion over MUI's `LinearProgress` and\n * `CircularProgress`) and `Progress.native.tsx` (React Native, with\n * `react-native-svg` for the arc) read this one table. The web turns the px\n * into rem and the shadows into CSS strings; native uses the numbers.\n *\n * The `CIRCULAR_*` group is MUI's OWN geometry, restated because the native\n * half draws the arc itself: a 44-unit viewBox whose circle is inset by the\n * stroke, with the value expressed as a dash offset — the same arithmetic\n * MUI's `CircularProgress` runs, so the two draw the same sweep.\n */\nexport interface ProgressSizeMetrics {\n /** The linear track's height, in px. The bar's radius is half of it. */\n height: number;\n /** The circular variant's diameter, in px. */\n circularSize: number;\n /** The label's type size, in px. */\n fontSize: number;\n}\n\nexport const PROGRESS_SIZES: Record<ProgressSize, ProgressSizeMetrics> = {\n xs: { height: 2, circularSize: 24, fontSize: 10 },\n sm: { height: 4, circularSize: 32, fontSize: 12 },\n md: { height: 6, circularSize: 40, fontSize: 14 },\n lg: { height: 8, circularSize: 48, fontSize: 16 },\n xl: { height: 10, circularSize: 56, fontSize: 18 },\n};\n\n/** The unfilled track, and an unfilled segment: the hue at a tenth. */\nexport const TRACK_ALPHA = 0.1;\n\n/** The label is MUI's `caption` at the size's own step, in semibold. */\nexport const LABEL_FONT_WEIGHT = 600;\n/** `mt: 1` between a linear or segmented bar and its label. */\nexport const LABEL_MARGIN_TOP_UNITS = 1;\n/** `gap: 0.5` between segments. */\nexport const SEGMENT_GAP_UNITS = 0.5;\n\n/** `glass`: the hue at 80% behind a 10px blur, inside a 30% hairline. */\nexport const GLASS_BAR_ALPHA = 0.8;\nexport const GLASS_BAR_BORDER_ALPHA = 0.3;\nexport const GLASS_BLUR_PX = 10;\n\n/** `glow` on a bar: `0 0 10px 2px alpha(main, 0.4)` and a 1.1 brightness lift. */\nexport const BAR_GLOW = { blur: 10, spread: 2, alpha: 0.4 } as const;\nexport const GLOW_BRIGHTNESS = 1.1;\n/** `glow` on a filled segment: the same shadow, one step tighter. */\nexport const SEGMENT_GLOW = { blur: 6, spread: 1, alpha: 0.4 } as const;\n/** `glow` on the circular arc: `drop-shadow(0 0 8px alpha(main, 0.6))`. */\nexport const CIRCULAR_GLOW = { blur: 8, alpha: 0.6 } as const;\n\n/** MUI's `pulseAnimation`: opacity 1 → 0.7 → 1, every two seconds. */\nexport const PULSE = { durationMs: 2000, dip: 0.7 } as const;\n\n/** `transition: all 0.3s ease` on the bar and on every segment. */\nexport const TRANSITION_MS = 300;\n\n/* ── MUI's `CircularProgress`, restated for the renderer that has no MUI ──── */\n\n/** MUI's `SIZE`: the arc is drawn in a 44-unit box and scaled to the px size. */\nexport const CIRCULAR_VIEWBOX = 44;\n/** MUI puts the determinate arc's start at twelve o'clock. */\nexport const CIRCULAR_ROTATION_DEG = -90;\n/** The circumference of the circle a `thickness` leaves room for. */\nexport const circularCircumference = (thickness: number): number =>\n 2 * Math.PI * ((CIRCULAR_VIEWBOX - thickness) / 2);\n/** MUI's `strokeDashoffset`: the share of the circumference still to run. */\nexport const circularDashOffset = (value: number, thickness: number): number =>\n ((100 - value) / 100) * circularCircumference(thickness);\n\n/**\n * MUI's indeterminate `CircularProgress` never closes the ring: it draws\n * roughly a fifth of it and spins. One turn every 1.4s, as MUI's\n * `circular-rotate` keyframes do.\n */\nexport const CIRCULAR_INDETERMINATE = { arc: 0.25, rotationMs: 1400 } as const;\n/** MUI's `bar1Indeterminate` keyframes: 2.1s a lap, over about a third of the track. */\nexport const LINEAR_INDETERMINATE = { width: 0.35, durationMs: 2100 } as const;\n\n/**\n * `neutral` has no palette slot of its own in MUI, so `Progress.styles.ts` has\n * always drawn it from three greys; `danger` is MUI's `error`, which is what\n * the shared theme calls `danger`. Same colours here.\n */\nexport function progressPalette(theme: UiTheme, color: ColorValue): UiPaletteColor {\n if (color === 'neutral') {\n return {\n light: GREY[300],\n main: GREY[500],\n dark: GREY[700],\n contrastText: contrastText(GREY[500]),\n };\n }\n return theme.palette[color];\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Progress/Progress.metrics.ts"],"sourcesContent":["import type { ProgressSize } from './Progress.base';\nimport { contrastText, GREY, type UiPaletteColor, type UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\n/**\n * THE NUMBERS BOTH `Progress` RENDERERS DRAW WITH.\n *\n * `Progress.styles.ts` (web, emotion over MUI's `LinearProgress` and\n * `CircularProgress`) and `Progress.native.tsx` (React Native, with\n * `react-native-svg` for the arc) read this one table. The web turns the px\n * into rem and the shadows into CSS strings; native uses the numbers.\n *\n * The `CIRCULAR_*` group is MUI's OWN geometry, restated because the native\n * half draws the arc itself: a 44-unit viewBox whose circle is inset by the\n * stroke, with the value expressed as a dash offset — the same arithmetic\n * MUI's `CircularProgress` runs, so the two draw the same sweep.\n */\nexport interface ProgressSizeMetrics {\n /** The linear track's height, in px. The bar's radius is half of it. */\n height: number;\n /** The circular variant's diameter, in px. */\n circularSize: number;\n /** The label's type size, in px. */\n fontSize: number;\n}\n\nexport const PROGRESS_SIZES: Record<ProgressSize, ProgressSizeMetrics> = {\n xs: { height: 2, circularSize: 24, fontSize: 10 },\n sm: { height: 4, circularSize: 32, fontSize: 12 },\n md: { height: 6, circularSize: 40, fontSize: 14 },\n lg: { height: 8, circularSize: 48, fontSize: 16 },\n xl: { height: 10, circularSize: 56, fontSize: 18 },\n};\n\n/** The unfilled track, and an unfilled segment: the hue at a tenth. */\nexport const TRACK_ALPHA = 0.1;\n\n/** The label is MUI's `caption` at the size's own step, in semibold. */\nexport const LABEL_FONT_WEIGHT = 600;\n/** `mt: 1` between a linear or segmented bar and its label. */\nexport const LABEL_MARGIN_TOP_UNITS = 1;\n/** `gap: 0.5` between segments. */\nexport const SEGMENT_GAP_UNITS = 0.5;\n\n/** `glass`: the hue at 80% behind a 10px blur, inside a 30% hairline. */\nexport const GLASS_BAR_ALPHA = 0.8;\nexport const GLASS_BAR_BORDER_ALPHA = 0.3;\nexport const GLASS_BLUR_PX = 10;\n\n/** `glow` on a bar: `0 0 10px 2px alpha(main, 0.4)` and a 1.1 brightness lift. */\nexport const BAR_GLOW = { blur: 10, spread: 2, alpha: 0.4 } as const;\nexport const GLOW_BRIGHTNESS = 1.1;\n/** `glow` on a filled segment: the same shadow, one step tighter. */\nexport const SEGMENT_GLOW = { blur: 6, spread: 1, alpha: 0.4 } as const;\n/** `glow` on the circular arc: `drop-shadow(0 0 8px alpha(main, 0.6))`. */\nexport const CIRCULAR_GLOW = { blur: 8, alpha: 0.6 } as const;\n\n/** MUI's `pulseAnimation`: opacity 1 → 0.7 → 1, every two seconds. */\nexport const PULSE = { durationMs: 2000, dip: 0.7 } as const;\n\n/** `transition: all 0.3s ease` on the bar and on every segment. */\nexport const TRANSITION_MS = 300;\n\n/* ── MUI's `CircularProgress`, restated for the renderer that has no MUI ──── */\n\n/** MUI's `SIZE`: the arc is drawn in a 44-unit box and scaled to the px size. */\nexport const CIRCULAR_VIEWBOX = 44;\n/** MUI puts the determinate arc's start at twelve o'clock. */\nexport const CIRCULAR_ROTATION_DEG = -90;\n/** The circumference of the circle a `thickness` leaves room for. */\nexport const circularCircumference = (thickness: number): number =>\n 2 * Math.PI * ((CIRCULAR_VIEWBOX - thickness) / 2);\n/** MUI's `strokeDashoffset`: the share of the circumference still to run. */\nexport const circularDashOffset = (value: number, thickness: number): number =>\n ((100 - value) / 100) * circularCircumference(thickness);\n\n/**\n * MUI's indeterminate `CircularProgress` never closes the ring: it draws\n * roughly a fifth of it and spins. One turn every 1.4s, as MUI's\n * `circular-rotate` keyframes do.\n */\nexport const CIRCULAR_INDETERMINATE = { arc: 0.25, rotationMs: 1400 } as const;\n/** MUI's `bar1Indeterminate` keyframes: 2.1s a lap, over about a third of the track. */\nexport const LINEAR_INDETERMINATE = { width: 0.35, durationMs: 2100 } as const;\n\n/**\n * `neutral` has no palette slot of its own in MUI, so `Progress.styles.ts` has\n * always drawn it from three greys; `danger` is MUI's `error`, which is what\n * the shared theme calls `danger`. Same colours here.\n */\nexport function progressPalette(theme: UiTheme, color: ColorValue): UiPaletteColor {\n if (color === 'neutral') {\n return {\n light: GREY[300],\n main: GREY[500],\n dark: GREY[700],\n contrastText: contrastText(GREY[500]),\n };\n }\n return theme.palette[color];\n}\n"],"mappings":";;;;;;;;AA0BO,IAAM,iBAA4D;AAAA,EACvE,IAAI,EAAE,QAAQ,GAAG,cAAc,IAAI,UAAU,GAAG;AAAA,EAChD,IAAI,EAAE,QAAQ,GAAG,cAAc,IAAI,UAAU,GAAG;AAAA,EAChD,IAAI,EAAE,QAAQ,GAAG,cAAc,IAAI,UAAU,GAAG;AAAA,EAChD,IAAI,EAAE,QAAQ,GAAG,cAAc,IAAI,UAAU,GAAG;AAAA,EAChD,IAAI,EAAE,QAAQ,IAAI,cAAc,IAAI,UAAU,GAAG;AACnD;AAGO,IAAM,cAAc;AAGpB,IAAM,oBAAoB;AAE1B,IAAM,yBAAyB;AAE/B,IAAM,oBAAoB;AAG1B,IAAM,kBAAkB;AACxB,IAAM,yBAAyB;AAC/B,IAAM,gBAAgB;AAGtB,IAAM,WAAW,EAAE,MAAM,IAAI,QAAQ,GAAG,OAAO,IAAI;AACnD,IAAM,kBAAkB;AAExB,IAAM,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,IAAI;AAEtD,IAAM,gBAAgB,EAAE,MAAM,GAAG,OAAO,IAAI;AAG5C,IAAM,QAAQ,EAAE,YAAY,KAAM,KAAK,IAAI;AAG3C,IAAM,gBAAgB;AAKtB,IAAM,mBAAmB;AAEzB,IAAM,wBAAwB;AAE9B,IAAM,wBAAwB,CAAC,cACpC,IAAI,KAAK,OAAO,mBAAmB,aAAa;AAE3C,IAAM,qBAAqB,CAAC,OAAe,eAC9C,MAAM,SAAS,MAAO,sBAAsB,SAAS;AAOlD,IAAM,yBAAyB,EAAE,KAAK,MAAM,YAAY,KAAK;AAE7D,IAAM,uBAAuB,EAAE,OAAO,MAAM,YAAY,KAAK;AAO7D,SAAS,gBAAgB,OAAgB,OAAmC;AACjF,MAAI,UAAU,WAAW;AACvB,WAAO;AAAA,MACL,OAAO,KAAK,GAAG;AAAA,MACf,MAAM,KAAK,GAAG;AAAA,MACd,MAAM,KAAK,GAAG;AAAA,MACd,cAAc,aAAa,KAAK,GAAG,CAAC;AAAA,IACtC;AAAA,EACF;AACA,SAAO,MAAM,QAAQ,KAAK;AAC5B;","names":[]}
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-6DPAWXZ3.js";
|
|
18
18
|
import {
|
|
19
19
|
Text
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-YTYROOLY.js";
|
|
21
21
|
|
|
22
22
|
// src/components/data-display/DataViews/data-views-display-tabs.tsx
|
|
23
23
|
import ArrowDownwardRoundedIcon from "@mui/icons-material/ArrowDownwardRounded";
|
|
@@ -243,4 +243,4 @@ export {
|
|
|
243
243
|
SortTab,
|
|
244
244
|
DisplayTab
|
|
245
245
|
};
|
|
246
|
-
//# sourceMappingURL=chunk-
|
|
246
|
+
//# sourceMappingURL=chunk-PJTSGHTY.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
useMapPointer,
|
|
5
5
|
useMapSearch,
|
|
6
6
|
useMapView
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-46UPILLK.js";
|
|
8
8
|
|
|
9
9
|
// src/components/data-display/MapPreview/useMapPreview.ts
|
|
10
10
|
import { useMemo, useRef } from "react";
|
|
@@ -53,4 +53,4 @@ var useMapPreview = (props) => {
|
|
|
53
53
|
export {
|
|
54
54
|
useMapPreview
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# sourceMappingURL=chunk-PQECNGDE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
contrastText
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2BYKTBDL.js";
|
|
4
4
|
import {
|
|
5
5
|
alpha,
|
|
6
6
|
darken,
|
|
@@ -130,4 +130,4 @@ export {
|
|
|
130
130
|
gradientSurface,
|
|
131
131
|
alertSurface
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-PTP3CZL4.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-4XK6JQ4D.js";
|
|
4
4
|
import {
|
|
5
5
|
CategorySelect
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3BPDHWVF.js";
|
|
7
7
|
|
|
8
8
|
// src/components/form/total-form/Fields/CategoryField.tsx
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -38,4 +38,4 @@ function CategoryField({
|
|
|
38
38
|
export {
|
|
39
39
|
CategoryField
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-QPDDS6DQ.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useDataViewsLayout
|
|
3
|
-
} from "./chunk-M7E66OSC.js";
|
|
4
1
|
import {
|
|
5
2
|
DataViewsScopeTabs
|
|
6
3
|
} from "./chunk-LYKV3C7B.js";
|
|
4
|
+
import {
|
|
5
|
+
useDataViewsLayout
|
|
6
|
+
} from "./chunk-M7E66OSC.js";
|
|
7
7
|
|
|
8
8
|
// src/components/data-display/DataViews/data-views-scope-tabs.tsx
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -34,4 +34,4 @@ function ScopeTabsSlot({
|
|
|
34
34
|
export {
|
|
35
35
|
ScopeTabsSlot
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
37
|
+
//# sourceMappingURL=chunk-QSKJLMNS.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ACTIVE,
|
|
3
3
|
HOVER
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PTP3CZL4.js";
|
|
5
5
|
|
|
6
6
|
// src/components/data-display/Banner/Banner.styles.ts
|
|
7
7
|
import { alpha, keyframes } from "@mui/material/styles/index.js";
|
|
@@ -134,4 +134,4 @@ export {
|
|
|
134
134
|
bannerPointerStates,
|
|
135
135
|
BANNER_TINT_S
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
137
|
+
//# sourceMappingURL=chunk-QTZ7I6QS.js.map
|
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
MapDecorativePins,
|
|
5
5
|
MapRoads,
|
|
6
6
|
MapScaleBar
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-W3FAKT3D.js";
|
|
8
8
|
import {
|
|
9
9
|
MapTiles
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
getTileCoordinates
|
|
13
|
-
} from "./chunk-TUBCN4DJ.js";
|
|
10
|
+
} from "./chunk-JB67KPGM.js";
|
|
14
11
|
import {
|
|
15
12
|
surfaceBackground
|
|
16
13
|
} from "./chunk-DRADVLHZ.js";
|
|
14
|
+
import {
|
|
15
|
+
getTileCoordinates
|
|
16
|
+
} from "./chunk-TUBCN4DJ.js";
|
|
17
17
|
|
|
18
18
|
// src/components/data-display/MapPreview/StaticMapView.tsx
|
|
19
19
|
import Box from "@mui/material/Box/index.js";
|
|
@@ -59,4 +59,4 @@ var StaticMapView = ({
|
|
|
59
59
|
export {
|
|
60
60
|
StaticMapView
|
|
61
61
|
};
|
|
62
|
-
//# sourceMappingURL=chunk-
|
|
62
|
+
//# sourceMappingURL=chunk-QYNCPS5W.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Input
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XXE6NTJB.js";
|
|
4
4
|
import {
|
|
5
5
|
FormControl,
|
|
6
6
|
FormLabel,
|
|
@@ -122,4 +122,4 @@ export {
|
|
|
122
122
|
CepField,
|
|
123
123
|
CepField_default
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-RVGG5YJY.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useMenuItemState
|
|
3
|
+
} from "./chunk-3L5OZCGA.js";
|
|
1
4
|
import {
|
|
2
5
|
navItemButtonStyles,
|
|
3
6
|
pulseGlow
|
|
4
7
|
} from "./chunk-FYLCSCMR.js";
|
|
5
|
-
import {
|
|
6
|
-
useMenuItemState
|
|
7
|
-
} from "./chunk-3L5OZCGA.js";
|
|
8
8
|
|
|
9
9
|
// src/components/navigation/NavigationMenu/NavigationMenuItem.tsx
|
|
10
10
|
import ChevronRight from "@mui/icons-material/ChevronRight";
|
|
@@ -301,4 +301,4 @@ var renderMenuItem = (item, variant = "vertical", size = "md", collapsed = false
|
|
|
301
301
|
export {
|
|
302
302
|
renderMenuItem
|
|
303
303
|
};
|
|
304
|
-
//# sourceMappingURL=chunk-
|
|
304
|
+
//# sourceMappingURL=chunk-RXSGHPCR.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useTutorialOverlay
|
|
3
|
-
} from "./chunk-RSQMPCCR.js";
|
|
4
1
|
import {
|
|
5
2
|
TutorialStepBody
|
|
6
3
|
} from "./chunk-7WP2HRTW.js";
|
|
4
|
+
import {
|
|
5
|
+
useTutorialOverlay
|
|
6
|
+
} from "./chunk-RSQMPCCR.js";
|
|
7
7
|
|
|
8
8
|
// src/components/feedback/TutorialOverlay/TutorialOverlay.tsx
|
|
9
9
|
import Box from "@mui/material/Box/index.js";
|
|
@@ -271,4 +271,4 @@ export {
|
|
|
271
271
|
TutorialOverlay,
|
|
272
272
|
TutorialOverlay_default
|
|
273
273
|
};
|
|
274
|
-
//# sourceMappingURL=chunk-
|
|
274
|
+
//# sourceMappingURL=chunk-SFAP5EH5.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
headingSx
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XYDW5RQB.js";
|
|
4
4
|
import {
|
|
5
5
|
HEADING_DEFAULT_COLOR,
|
|
6
6
|
HEADING_DEFAULT_LEVEL,
|
|
7
7
|
HEADING_DEFAULT_WEIGHT,
|
|
8
8
|
HEADING_RANK,
|
|
9
9
|
stepOf
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EUKYQXYU.js";
|
|
11
11
|
import {
|
|
12
12
|
resolveTestId,
|
|
13
13
|
withoutTestIdProps
|
|
@@ -61,4 +61,4 @@ Heading.displayName = "Heading";
|
|
|
61
61
|
export {
|
|
62
62
|
Heading
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
64
|
+
//# sourceMappingURL=chunk-SLMA4UQS.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AVATAR_DEFAULTS,
|
|
3
|
+
contentTypeOf,
|
|
4
|
+
pickAvatarContent
|
|
5
|
+
} from "./chunk-3ZVUNSFF.js";
|
|
1
6
|
import {
|
|
2
7
|
AvatarView
|
|
3
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-35UG2QDB.js";
|
|
4
9
|
import {
|
|
5
10
|
BORDER_WIDTH,
|
|
6
11
|
GROUP_HOVER,
|
|
7
12
|
GROUP_MAX,
|
|
8
13
|
GROUP_OVERLAP
|
|
9
14
|
} from "./chunk-FAITHWIO.js";
|
|
10
|
-
import {
|
|
11
|
-
AVATAR_DEFAULTS,
|
|
12
|
-
contentTypeOf,
|
|
13
|
-
pickAvatarContent
|
|
14
|
-
} from "./chunk-3ZVUNSFF.js";
|
|
15
15
|
|
|
16
16
|
// src/components/data-display/Avatar/Avatar.tsx
|
|
17
17
|
import BrokenImage from "@mui/icons-material/BrokenImage";
|
|
@@ -172,4 +172,4 @@ export {
|
|
|
172
172
|
Avatar,
|
|
173
173
|
AvatarGroup
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=chunk-
|
|
175
|
+
//# sourceMappingURL=chunk-SOJQEJAE.js.map
|
|
@@ -2,9 +2,12 @@ import {
|
|
|
2
2
|
cssLengthToPx,
|
|
3
3
|
cssTrackingToEm
|
|
4
4
|
} from "./chunk-AG66JBNH.js";
|
|
5
|
+
import {
|
|
6
|
+
DARK_TEXT_PRIMARY,
|
|
7
|
+
contrastText
|
|
8
|
+
} from "./chunk-2BYKTBDL.js";
|
|
5
9
|
import {
|
|
6
10
|
darken,
|
|
7
|
-
getContrastRatio,
|
|
8
11
|
lighten
|
|
9
12
|
} from "./chunk-6JAIFIPW.js";
|
|
10
13
|
import {
|
|
@@ -15,9 +18,6 @@ import {
|
|
|
15
18
|
var ROOT_FONT_PX = 16;
|
|
16
19
|
var px = (value) => `${value / ROOT_FONT_PX}rem`;
|
|
17
20
|
var TONAL_OFFSET = 0.2;
|
|
18
|
-
var CONTRAST_THRESHOLD = 3;
|
|
19
|
-
var DARK_TEXT_PRIMARY = "rgba(0, 0, 0, 0.87)";
|
|
20
|
-
var LIGHT_TEXT_PRIMARY = "#fff";
|
|
21
21
|
var GREY = {
|
|
22
22
|
50: "#fafafa",
|
|
23
23
|
100: "#f5f5f5",
|
|
@@ -76,17 +76,6 @@ var MODE_DEFAULTS = {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
|
-
function contrastText(background) {
|
|
80
|
-
return getContrastRatio(background, LIGHT_TEXT_PRIMARY) >= CONTRAST_THRESHOLD ? LIGHT_TEXT_PRIMARY : DARK_TEXT_PRIMARY;
|
|
81
|
-
}
|
|
82
|
-
function inkOver(fills, fallback) {
|
|
83
|
-
try {
|
|
84
|
-
const worstCase = (ink) => Math.min(...fills.map((fill) => getContrastRatio(ink, fill)));
|
|
85
|
-
return worstCase(LIGHT_TEXT_PRIMARY) >= worstCase(DARK_TEXT_PRIMARY) ? LIGHT_TEXT_PRIMARY : DARK_TEXT_PRIMARY;
|
|
86
|
-
} catch {
|
|
87
|
-
return fallback;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
79
|
function augmentColor(seed) {
|
|
91
80
|
const partial = typeof seed === "string" ? { main: seed } : seed;
|
|
92
81
|
const main = partial.main ?? partial.light ?? partial.dark;
|
|
@@ -177,8 +166,6 @@ export {
|
|
|
177
166
|
px,
|
|
178
167
|
GREY,
|
|
179
168
|
DEFAULT_BRAND,
|
|
180
|
-
contrastText,
|
|
181
|
-
inkOver,
|
|
182
169
|
augmentColor,
|
|
183
170
|
NEUTRAL,
|
|
184
171
|
TYPE_SIZES,
|
|
@@ -188,4 +175,4 @@ export {
|
|
|
188
175
|
createUiTheme,
|
|
189
176
|
DEFAULT_UI_THEME
|
|
190
177
|
};
|
|
191
|
-
//# sourceMappingURL=chunk-
|
|
178
|
+
//# sourceMappingURL=chunk-SONWG2RT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tokens/theme.ts"],"sourcesContent":["import { darken, lighten } from './color';\nimport { contrastText, DARK_TEXT_PRIMARY, inkOver } from './ink-over';\n\n/*\n RE-EXPORTED rather than moved out of the public surface. Both were published\n from here, and `ink-over.ts` exists because this file reached the 400-line cap\n — a caller should not have to learn that.\n*/\nexport { contrastText, inkOver };\nimport { cssLengthToPx, cssTrackingToEm } from './css-units';\nimport { HEADING_SCALE, type HeadingLevel } from './heading-scale';\n\nimport type { SizeValue } from './vocabulary';\n\n/**\n * THE THEME BOTH RENDERERS READ.\n *\n * On the web every component styles itself from MUI's `Theme`, which is built\n * by the host (`@12-apps/app-shell`'s `createAppTheme` in the origin apps) and\n * reaches a component through emotion's context. React Native has no emotion,\n * no CSS and no MUI, so a native `Button` needs the same decisions — the\n * palette, the spacing unit, the radius, the type scale — from somewhere that\n * does not import a renderer.\n *\n * This is that somewhere. `UiTheme` is a plain object of numbers and colour\n * strings. `createUiTheme` derives it the way MUI's `createPalette` derives its\n * own: a `light` shade is `lighten(main, 0.2)`, a `dark` shade `darken(main,\n * 0.3)`, `contrastText` flips at a 3:1 ratio against `rgba(0, 0, 0, 0.87)`.\n * Same seeds in, same shades out, on both sides — that is the whole basis for\n * a native button being the web button's colour and not a near miss.\n *\n * Numbers are in px on the web and dp on native; both are the CSS-pixel unit\n * a design is drawn in, so a `fontSize: 16` here IS `1rem` in a web style\n * and `16` in a `StyleSheet`. The web components keep their `rem` strings and\n * derive them from these numbers where the two meet (see `px()` below and the\n * `*.metrics.ts` file beside each ported component).\n *\n * `danger` and `neutral` are this package's names (see `./scales`); `danger`\n * is MUI's `error` and `neutral` is drawn from the grey ramp the way\n * `Button.styles.ts` has always drawn it.\n */\n\nexport type UiThemeMode = 'light' | 'dark';\n\nexport interface UiPaletteColor {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\n\nexport type UiGreyStep = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;\n\nexport interface UiPalette {\n mode: UiThemeMode;\n primary: UiPaletteColor;\n secondary: UiPaletteColor;\n success: UiPaletteColor;\n warning: UiPaletteColor;\n info: UiPaletteColor;\n danger: UiPaletteColor;\n neutral: UiPaletteColor;\n text: { primary: string; secondary: string; disabled: string };\n background: { default: string; paper: string };\n divider: string;\n action: {\n active: string;\n hover: string;\n selected: string;\n disabled: string;\n disabledBackground: string;\n focus: string;\n };\n grey: Record<UiGreyStep, string>;\n}\n\n/** One step of the body scale: `fontSize` in px, `lineHeight` as a ratio. */\nexport interface UiTypeStep {\n fontSize: number;\n lineHeight: number;\n}\n\nexport type UiFontWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';\n\nexport interface UiHeadingStep extends UiTypeStep {\n /** In em, so it scales with the step. `undefined` is \"normal\". */\n letterSpacing?: number;\n normalWeight: number;\n}\n\nexport interface UiTypography {\n /**\n * Native has no fallback stacks: a font is either installed and named, or\n * `undefined` and the platform's own. The web default is MUI's Roboto stack.\n */\n fontFamily: string | undefined;\n monospaceFontFamily: string | undefined;\n sizes: Record<SizeValue, UiTypeStep>;\n weights: Record<UiFontWeight, number>;\n heading: Record<HeadingLevel, UiHeadingStep>;\n}\n\nexport interface UiTheme {\n mode: UiThemeMode;\n palette: UiPalette;\n /** MUI's `theme.spacing(n)`: `n` units of {@link UiTheme.spacingUnit}, in px. */\n spacing: (units: number) => number;\n spacingUnit: number;\n /** `md` is MUI's `shape.borderRadius`; the others are its halves and doubles. */\n radius: { sm: number; md: number; lg: number; xl: number; full: number };\n typography: UiTypography;\n zIndex: { appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number };\n}\n\n/** A seed for one palette slot: a hex `main`, or any subset of the four shades. */\nexport type UiPaletteSeed = string | Partial<UiPaletteColor>;\n\nexport interface UiThemeOptions {\n mode?: UiThemeMode;\n palette?: Partial<{\n primary: UiPaletteSeed;\n secondary: UiPaletteSeed;\n success: UiPaletteSeed;\n warning: UiPaletteSeed;\n info: UiPaletteSeed;\n danger: UiPaletteSeed;\n background: Partial<UiPalette['background']>;\n }>;\n typography?: Partial<Pick<UiTypography, 'fontFamily' | 'monospaceFontFamily'>>;\n spacingUnit?: number;\n}\n\nconst ROOT_FONT_PX = 16;\n\n/** The px value as the rem string the web components write. */\nexport const px = (value: number): string => `${value / ROOT_FONT_PX}rem`;\n\n/** MUI's `createPalette` default tonal offset, exactly. */\nconst TONAL_OFFSET = 0.2;\n\nexport const GREY: Record<UiGreyStep, string> = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n};\n\n/**\n * The platform's own seeds. The pair `@12-apps/ui`'s Storybook preview and\n * `@12-apps/app-shell`'s `DEFAULT_THEME_TOKENS` both carry — keep the three in\n * step if the design tokens change.\n */\nexport const DEFAULT_BRAND: Record<UiThemeMode, { primary: string; secondary: string }> = {\n light: { primary: '#6366F1', secondary: '#8B5CF6' },\n dark: { primary: '#818CF8', secondary: '#A78BFA' },\n};\n\n/** MUI's semantic defaults per mode. These are declared shades, not derived. */\nconst SEMANTIC_DEFAULTS: Record<\n UiThemeMode,\n Record<'success' | 'warning' | 'info' | 'danger', UiPaletteColor>\n> = {\n light: {\n success: { main: '#2e7d32', light: '#4caf50', dark: '#1b5e20', contrastText: '#fff' },\n warning: { main: '#ed6c02', light: '#ff9800', dark: '#e65100', contrastText: '#fff' },\n info: { main: '#0288d1', light: '#03a9f4', dark: '#01579b', contrastText: '#fff' },\n danger: { main: '#d32f2f', light: '#ef5350', dark: '#c62828', contrastText: '#fff' },\n },\n dark: {\n success: { main: '#66bb6a', light: '#81c784', dark: '#388e3c', contrastText: DARK_TEXT_PRIMARY },\n warning: { main: '#ffa726', light: '#ffb74d', dark: '#f57c00', contrastText: DARK_TEXT_PRIMARY },\n info: { main: '#29b6f6', light: '#4fc3f7', dark: '#0288d1', contrastText: DARK_TEXT_PRIMARY },\n danger: { main: '#f44336', light: '#e57373', dark: '#d32f2f', contrastText: '#fff' },\n },\n};\n\nconst MODE_DEFAULTS: Record<\n UiThemeMode,\n Pick<UiPalette, 'text' | 'background' | 'divider' | 'action'>\n> = {\n light: {\n text: { primary: DARK_TEXT_PRIMARY, secondary: 'rgba(0, 0, 0, 0.6)', disabled: 'rgba(0, 0, 0, 0.38)' },\n background: { default: '#fff', paper: '#fff' },\n divider: 'rgba(0, 0, 0, 0.12)',\n action: {\n active: 'rgba(0, 0, 0, 0.54)',\n hover: 'rgba(0, 0, 0, 0.04)',\n selected: 'rgba(0, 0, 0, 0.08)',\n disabled: 'rgba(0, 0, 0, 0.26)',\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n focus: 'rgba(0, 0, 0, 0.12)',\n },\n },\n dark: {\n text: { primary: '#fff', secondary: 'rgba(255, 255, 255, 0.7)', disabled: 'rgba(255, 255, 255, 0.5)' },\n background: { default: '#121212', paper: '#121212' },\n divider: 'rgba(255, 255, 255, 0.12)',\n action: {\n active: '#fff',\n hover: 'rgba(255, 255, 255, 0.08)',\n selected: 'rgba(255, 255, 255, 0.16)',\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n focus: 'rgba(255, 255, 255, 0.12)',\n },\n },\n};\n\n\n/**\n * MUI's `augmentColor` for a custom colour: derive whatever shade the seed\n * left out. `light` is one tonal offset up, `dark` one and a half down.\n */\nexport function augmentColor(seed: UiPaletteSeed): UiPaletteColor {\n const partial = typeof seed === 'string' ? { main: seed } : seed;\n const main = partial.main ?? partial.light ?? partial.dark;\n if (!main) {\n throw new Error('@12-apps/ui: a palette seed needs at least a `main` colour.');\n }\n return {\n main,\n light: partial.light ?? lighten(main, TONAL_OFFSET),\n dark: partial.dark ?? darken(main, TONAL_OFFSET * 1.5),\n contrastText: partial.contrastText ?? contrastText(main),\n };\n}\n\nconst semantic = (\n mode: UiThemeMode,\n key: 'success' | 'warning' | 'info' | 'danger',\n seed: UiPaletteSeed | undefined,\n): UiPaletteColor => (seed === undefined ? SEMANTIC_DEFAULTS[mode][key] : augmentColor(seed));\n\n/** `neutral` as `accentFor` in `./scales` has always drawn it: three greys and white. */\nexport const NEUTRAL: UiPaletteColor = {\n main: GREY[600],\n light: GREY[400],\n dark: GREY[800],\n contrastText: '#fff',\n};\n\n/** The body scale `Text` renders, in px. `Text.tsx`'s rem map is this, divided by 16. */\nexport const TYPE_SIZES: Record<SizeValue, UiTypeStep> = {\n xs: { fontSize: 12, lineHeight: 1.2 },\n sm: { fontSize: 14, lineHeight: 1.3 },\n md: { fontSize: 16, lineHeight: 1.5 },\n lg: { fontSize: 18, lineHeight: 1.4 },\n xl: { fontSize: 20, lineHeight: 1.3 },\n};\n\nexport const FONT_WEIGHTS: Record<UiFontWeight, number> = {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n};\n\n// `HEADING_SCALE` speaks CSS, this theme speaks numbers; `./css-units` is the\n// one place that conversion is written.\nconst HEADING_STEPS = Object.fromEntries(\n Object.entries(HEADING_SCALE).map(([level, metrics]) => [\n level,\n {\n fontSize: cssLengthToPx(metrics.fontSize, ROOT_FONT_PX),\n lineHeight: metrics.lineHeight,\n letterSpacing: cssTrackingToEm(metrics.letterSpacing),\n normalWeight: metrics.normalWeight,\n },\n ]),\n) as Record<HeadingLevel, UiHeadingStep>;\n\nexport const WEB_FONT_FAMILY = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\nexport const WEB_MONOSPACE_FONT_FAMILY = 'Monaco, Menlo, \"Ubuntu Mono\", \"Courier New\", monospace';\n\n/**\n * Build the theme. Every field is derived here so a host that changes one\n * seed gets every dependent shade recomputed, on both renderers, identically.\n */\nexport function createUiTheme(options: UiThemeOptions = {}): UiTheme {\n const mode = options.mode ?? 'light';\n const seeds = options.palette ?? {};\n const brand = DEFAULT_BRAND[mode];\n const defaults = MODE_DEFAULTS[mode];\n const spacingUnit = options.spacingUnit ?? 8;\n\n const palette: UiPalette = {\n mode,\n primary: augmentColor(seeds.primary ?? brand.primary),\n secondary: augmentColor(seeds.secondary ?? brand.secondary),\n success: semantic(mode, 'success', seeds.success),\n warning: semantic(mode, 'warning', seeds.warning),\n info: semantic(mode, 'info', seeds.info),\n danger: semantic(mode, 'danger', seeds.danger),\n neutral: NEUTRAL,\n text: defaults.text,\n background: { ...defaults.background, ...seeds.background },\n divider: defaults.divider,\n action: defaults.action,\n grey: GREY,\n };\n\n return {\n mode,\n palette,\n spacing: (units: number) => units * spacingUnit,\n spacingUnit,\n radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999 },\n typography: {\n fontFamily: options.typography?.fontFamily,\n monospaceFontFamily: options.typography?.monospaceFontFamily,\n sizes: TYPE_SIZES,\n weights: FONT_WEIGHTS,\n heading: HEADING_STEPS,\n },\n zIndex: { appBar: 1100, drawer: 1200, modal: 1300, snackbar: 1400, tooltip: 1500 },\n };\n}\n\n/** The palette slot a house colour name resolves to. */\nexport type UiPaletteKey = 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'danger' | 'neutral';\n\nexport const DEFAULT_UI_THEME: UiTheme = createUiTheme();\n"],"mappings":"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","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CustomTabPanel
|
|
3
|
-
} from "./chunk-7UZ2TFIK.js";
|
|
4
1
|
import {
|
|
5
2
|
tabsRootStyles
|
|
6
3
|
} from "./chunk-EWSGWLHN.js";
|
|
4
|
+
import {
|
|
5
|
+
CustomTabPanel
|
|
6
|
+
} from "./chunk-7UZ2TFIK.js";
|
|
7
7
|
|
|
8
8
|
// src/components/navigation/Tabs/Tabs.tsx
|
|
9
9
|
import Close from "@mui/icons-material/Close";
|
|
@@ -66,6 +66,24 @@ var TABS_DEFAULTS = {
|
|
|
66
66
|
disabled: false,
|
|
67
67
|
loading: false
|
|
68
68
|
};
|
|
69
|
+
var OWN_PROPS = /* @__PURE__ */ new Set([
|
|
70
|
+
"items",
|
|
71
|
+
"closeTabLabel",
|
|
72
|
+
"color",
|
|
73
|
+
"size",
|
|
74
|
+
"fullWidth",
|
|
75
|
+
"scrollable",
|
|
76
|
+
"scrollButtons",
|
|
77
|
+
"sticky",
|
|
78
|
+
"stickyOffset",
|
|
79
|
+
"animateContent",
|
|
80
|
+
"animationDuration",
|
|
81
|
+
"persistContent",
|
|
82
|
+
"tabPanelProps",
|
|
83
|
+
"loading",
|
|
84
|
+
"loadingComponent"
|
|
85
|
+
]);
|
|
86
|
+
var domPassthrough = (props) => Object.fromEntries(Object.entries(props).filter(([key]) => !OWN_PROPS.has(key)));
|
|
69
87
|
var definedProps = (props) => Object.fromEntries(
|
|
70
88
|
Object.entries(props).filter(([, value]) => value !== void 0)
|
|
71
89
|
);
|
|
@@ -213,7 +231,7 @@ var Tabs = React.forwardRef(
|
|
|
213
231
|
TabsBar,
|
|
214
232
|
{
|
|
215
233
|
...resolved,
|
|
216
|
-
rest,
|
|
234
|
+
rest: domPassthrough(rest),
|
|
217
235
|
onChange: handleChange,
|
|
218
236
|
onCloseTab: handleTabClose
|
|
219
237
|
}
|
|
@@ -228,4 +246,4 @@ Tabs.displayName = "Tabs";
|
|
|
228
246
|
export {
|
|
229
247
|
Tabs
|
|
230
248
|
};
|
|
231
|
-
//# sourceMappingURL=chunk-
|
|
249
|
+
//# sourceMappingURL=chunk-SQV3HPTZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["import Close from '@mui/icons-material/Close';\nimport Badge from '@mui/material/Badge/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport MuiTab from '@mui/material/Tab/index.js';\nimport MuiTabs from '@mui/material/Tabs/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { CustomTabPanel } from './TabsPanel';\nimport { tabsRootStyles } from './Tabs.styles';\nimport type { TabItem, TabsProps } from './Tabs.types';\n\nconst StyledTabs = styled(MuiTabs, {\n shouldForwardProp: (prop) => !['customVariant', 'size', 'showDividers'].includes(prop as string) })<{ customVariant?: string; size?: string; showDividers?: boolean }>(\n ({ theme, customVariant, size, showDividers }) => ({\n ...tabsRootStyles({ theme, customVariant, size, showDividers }) }),\n);\n\nconst CloseButton = styled(Box)(({ theme }) => ({\n marginLeft: theme.spacing(0.5),\n padding: theme.spacing(0.25),\n width: 20,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n borderRadius: '50%',\n color: theme.palette.action.active,\n '&:hover': {\n backgroundColor: alpha(theme.palette.error.main, 0.1),\n color: theme.palette.error.main } }));\n\nconst BadgeWrapper = styled(Badge)(() => ({\n '& .MuiBadge-badge': {\n right: -6,\n top: 4,\n fontSize: '0.75rem',\n minWidth: 16,\n height: 16,\n padding: 0 } }));\n\nconst TABS_DEFAULTS: Partial<TabsProps> = {\n variant: 'default',\n size: 'md',\n color: 'primary',\n fullWidth: false,\n orientation: 'horizontal',\n showDividers: false,\n centered: false,\n scrollable: false,\n scrollButtons: 'auto',\n sticky: false,\n stickyOffset: 0,\n animateContent: false,\n animationDuration: 300,\n persistContent: false,\n disabled: false,\n loading: false };\n\n/**\n * The props this component OWNS and MUI's `Tabs` does not understand (12-86).\n *\n * `rest` below is spread onto the DOM node, so anything left in it that React\n * cannot place on an element is reported — five `does not recognize the … prop`\n * warnings and three `Received false for a non-boolean attribute`, on every\n * render, in the browser console and in every host's jsdom output.\n *\n * An explicit list rather than `Object.keys(TABS_DEFAULTS)`, because the two\n * sets differ in both directions: `items`, `closeTabLabel`, `tabPanelProps` and\n * `loadingComponent` have no default and still must not reach the DOM, while\n * `orientation`, `centered` and `indicatorColor` are real MUI props that must.\n * An omission rather than more destructuring, so a prop added to `TabsProps`\n * costs a line here instead of an unused `_name` binding.\n *\n * Deliberately NOT here: `onFocus` and `onBlur`. They are ordinary DOM handlers\n * that reach the element through `rest` and nowhere else, so listing them would\n * silently stop them working.\n */\nconst OWN_PROPS = new Set<string>([\n 'items',\n 'closeTabLabel',\n 'color',\n 'size',\n 'fullWidth',\n 'scrollable',\n 'scrollButtons',\n 'sticky',\n 'stickyOffset',\n 'animateContent',\n 'animationDuration',\n 'persistContent',\n 'tabPanelProps',\n 'loading',\n 'loadingComponent',\n]);\n\n/** `props` with every {@link OWN_PROPS} key dropped — what is left is passthrough. */\nconst domPassthrough = (props: Record<string, unknown>): Record<string, unknown> =>\n Object.fromEntries(Object.entries(props).filter(([key]) => !OWN_PROPS.has(key)));\n\n// Strips explicitly-undefined props before the merge, so `prop={undefined}`\n// still falls back to the default as a destructuring default would.\nconst definedProps = (props: TabsProps): Partial<TabsProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<TabsProps>;\n\n// Once the row is scrollable every accepted scrollButtons value ends up as\n// MUI's 'auto'. That is exactly what the previous nested ternary did — it mapped\n// 'on'/'off'/'desktop' to 'auto', and its remaining branch could only ever be\n// 'auto' anyway — so the behaviour is preserved here rather than quietly\n// changed. Worth knowing that scrollButtons=\"off\" therefore still shows buttons.\nconst resolveScrollButtons = (scrollable?: boolean): 'auto' | false =>\n scrollable ? 'auto' : false;\n\nconst buildTabsSx = ({\n fullWidth,\n sticky,\n stickyOffset,\n indicatorColor,\n disabled }: {\n fullWidth?: boolean;\n sticky?: boolean;\n stickyOffset?: number;\n indicatorColor?: string;\n disabled?: boolean;\n}) => ({\n ...(fullWidth && { width: '100%' }),\n // Pin the tab list while panels scroll beneath it. Opaque background + bottom\n // divider so scrolled content does not show through.\n ...(sticky && {\n position: 'sticky',\n top: stickyOffset,\n zIndex: 2,\n backgroundColor: 'background.default',\n borderBottom: 1,\n borderColor: 'divider' }),\n ...(indicatorColor && {\n '& .MuiTabs-indicator': { backgroundColor: indicatorColor } }),\n ...(disabled && { opacity: 0.6, pointerEvents: 'none' }) });\n\n// A tab's label: icon, text, optional close affordance, optionally badged.\nconst TabLabel: React.FC<{\n item: TabItem;\n closeTabLabel: string;\n onClose: (event: React.MouseEvent | React.KeyboardEvent, tabId: string) => void;\n}> = ({ item, closeTabLabel, onClose }) => {\n const content = (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {item.icon}\n <span>{item.label}</span>\n {item.closable && (\n <CloseButton\n onClick={(e) => onClose(e, item.id)}\n role=\"button\"\n tabIndex={0}\n aria-label={closeTabLabel}\n onKeyDown={(e) => {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n onClose(e, item.id);\n }}\n >\n <Close fontSize=\"inherit\" />\n </CloseButton>\n )}\n </Box>\n );\n\n if (item.badge === undefined) return content;\n\n return (\n <BadgeWrapper badgeContent={item.badge} color=\"error\">\n {content}\n </BadgeWrapper>\n );\n};\n\ntype ResolvedTabs = TabsProps;\n\n// The tab strip. Kept in this file because StyledTabs cannot cross a module\n// boundary (TS2742).\nconst TabsBar: React.FC<\n ResolvedTabs & {\n rest: Record<string, unknown>;\n onChange: (event: React.SyntheticEvent, newValue: string) => void;\n onCloseTab: (event: React.MouseEvent | React.KeyboardEvent, tabId: string) => void;\n }\n> = ({ rest, items, value, onChange, onCloseTab, dataTestId, ...p }) => (\n <StyledTabs\n {...rest}\n value={value}\n onChange={onChange}\n customVariant={p.variant}\n size={p.size}\n showDividers={p.showDividers}\n orientation={p.orientation}\n centered={p.centered}\n // MUI only scrolls when its own `variant` is `scrollable`; map our\n // `scrollable` flag onto it so overflowing tab rows actually scroll.\n variant={p.scrollable ? 'scrollable' : 'standard'}\n data-testid={dataTestId ? `${dataTestId}-list` : 'tabs-list'}\n scrollButtons={resolveScrollButtons(p.scrollable)}\n allowScrollButtonsMobile={p.scrollable}\n textColor={p.color}\n indicatorColor={p.color}\n sx={buildTabsSx({\n fullWidth: p.fullWidth,\n sticky: p.sticky,\n stickyOffset: p.stickyOffset,\n indicatorColor: p.indicatorColor,\n disabled: p.disabled })}\n >\n {items.map((item, index) => (\n <MuiTab\n key={item.id}\n value={item.id}\n label={<TabLabel closeTabLabel={p.closeTabLabel} item={item} onClose={onCloseTab} />}\n disabled={item.disabled || p.disabled}\n className={item.className}\n id={`tab-${item.id}`}\n aria-controls={`tabpanel-${item.id}`}\n aria-disabled={item.disabled || p.disabled}\n data-testid={dataTestId ? `${dataTestId}-tab-${index}` : `tabs-tab-${index}`}\n />\n ))}\n </StyledTabs>\n);\n\nconst TabsPanels: React.FC<ResolvedTabs> = ({\n items,\n value,\n variant,\n animateContent,\n animationDuration,\n persistContent,\n loading,\n loadingComponent,\n tabPanelProps,\n dataTestId }) => (\n <Box sx={{ mt: variant === 'enclosed' ? 0 : 2 }}>\n {items.map((item, index) => (\n <CustomTabPanel\n key={item.id}\n id={item.id}\n value={value}\n animate={animateContent}\n animationDuration={animationDuration}\n persist={persistContent}\n loading={loading}\n loadingComponent={loadingComponent}\n className={tabPanelProps?.className}\n dataTestId={dataTestId}\n index={index}\n >\n {item.content}\n </CustomTabPanel>\n ))}\n </Box>\n);\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (tabsProps, ref) => {\n const resolved = { ...TABS_DEFAULTS, ...definedProps(tabsProps) } as TabsProps;\n const {\n // Destructured only to keep it OUT of `rest`, which is spread onto the\n // DOM node — `{...resolved}` below is what actually carries it to\n // `TabsBar`. Same reason as `value` on the next line.\n closeTabLabel: _closeTabLabel,\n value: _value,\n onChange,\n onTabClose,\n className,\n disabled,\n showDividers,\n variant,\n dataTestId,\n ...rest\n } = resolved;\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n if (!disabled) onChange(event, newValue);\n };\n\n const handleTabClose = (event: React.MouseEvent | React.KeyboardEvent, tabId: string) => {\n event.stopPropagation();\n onTabClose?.(tabId);\n };\n\n return (\n <Box className={className} ref={ref} data-testid={dataTestId || 'tabs'}>\n <TabsBar\n {...resolved}\n // The destructuring above drops the props this component USES;\n // `domPassthrough` drops the ones it merely OWNS. Both have to go:\n // `rest` is spread onto the DOM node, and the second group is where\n // 12-86's warnings came from.\n rest={domPassthrough(rest as unknown as Record<string, unknown>)}\n onChange={handleChange}\n onCloseTab={handleTabClose}\n />\n\n {showDividers && variant !== 'enclosed' && <Divider />}\n\n <TabsPanels {...resolved} />\n </Box>\n );\n },\n);\n\nTabs.displayName = 'Tabs';\n"],"mappings":"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","names":[]}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DataViewsDisplayPanel
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EMAX7RPN.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsExportMenu
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-O42ZA3TW.js";
|
|
7
7
|
import {
|
|
8
8
|
renderBulkActions
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XGOWREVV.js";
|
|
10
10
|
import {
|
|
11
11
|
useDataViewsCopy
|
|
12
12
|
} from "./chunk-KHG57NAE.js";
|
|
13
|
-
import {
|
|
14
|
-
ContentToolbar
|
|
15
|
-
} from "./chunk-L2E7TY7P.js";
|
|
16
13
|
import {
|
|
17
14
|
FilterTrigger
|
|
18
15
|
} from "./chunk-LVCUJ7YU.js";
|
|
16
|
+
import {
|
|
17
|
+
ContentToolbar
|
|
18
|
+
} from "./chunk-L2E7TY7P.js";
|
|
19
19
|
import {
|
|
20
20
|
default as default2
|
|
21
21
|
} from "./chunk-6DPAWXZ3.js";
|
|
22
22
|
import {
|
|
23
23
|
Text
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-YTYROOLY.js";
|
|
25
25
|
|
|
26
26
|
// src/components/data-display/DataViews/data-views-toolbar.tsx
|
|
27
27
|
import Divider from "@mui/material/Divider/index.js";
|
|
@@ -133,4 +133,4 @@ function GridToolbar(props) {
|
|
|
133
133
|
export {
|
|
134
134
|
GridToolbar
|
|
135
135
|
};
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-SUWIHCD6.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
TYPE_SIZES,
|
|
10
10
|
WEB_FONT_FAMILY,
|
|
11
11
|
WEB_MONOSPACE_FONT_FAMILY
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-SONWG2RT.js";
|
|
13
13
|
import {
|
|
14
14
|
cssLengthToPx,
|
|
15
15
|
cssTrackingToEm
|
|
@@ -131,4 +131,4 @@ export {
|
|
|
131
131
|
uiThemeFromMui,
|
|
132
132
|
muiThemeOptionsFrom
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=chunk-
|
|
134
|
+
//# sourceMappingURL=chunk-T2VO32Z2.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCardActions
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-C5EFVSBN.js";
|
|
4
4
|
import {
|
|
5
5
|
ConfirmActionDialog
|
|
6
6
|
} from "./chunk-QQS3GQYS.js";
|
|
@@ -50,4 +50,4 @@ function useRemoveConfirm({
|
|
|
50
50
|
export {
|
|
51
51
|
useRemoveConfirm
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-T5WNNEP5.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MARKER_PIXELS_PER_DEGREE
|
|
3
|
-
} from "./chunk-H2J2MTRE.js";
|
|
4
1
|
import {
|
|
5
2
|
BOUNCE_KEYFRAMES
|
|
6
3
|
} from "./chunk-DRADVLHZ.js";
|
|
4
|
+
import {
|
|
5
|
+
MARKER_PIXELS_PER_DEGREE
|
|
6
|
+
} from "./chunk-H2J2MTRE.js";
|
|
7
7
|
|
|
8
8
|
// src/components/data-display/MapPreview/MapMarkers.tsx
|
|
9
9
|
import LocationIcon from "@mui/icons-material/LocationOn";
|
|
@@ -76,4 +76,4 @@ export {
|
|
|
76
76
|
MapMarkers,
|
|
77
77
|
MapCoordinates
|
|
78
78
|
};
|
|
79
|
-
//# sourceMappingURL=chunk-
|
|
79
|
+
//# sourceMappingURL=chunk-TEE6HNHS.js.map
|
|
@@ -3,9 +3,11 @@ import {
|
|
|
3
3
|
ICON_ONLY_PADDING
|
|
4
4
|
} from "./chunk-5LQ7PKMW.js";
|
|
5
5
|
import {
|
|
6
|
-
inkOver,
|
|
7
6
|
px
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SONWG2RT.js";
|
|
8
|
+
import {
|
|
9
|
+
inkOver
|
|
10
|
+
} from "./chunk-2BYKTBDL.js";
|
|
9
11
|
|
|
10
12
|
// src/components/form/Button/Button.styles.ts
|
|
11
13
|
import { alpha, darken, keyframes, lighten } from "@mui/material/styles/index.js";
|
|
@@ -200,4 +202,4 @@ export {
|
|
|
200
202
|
buttonVariantStyles,
|
|
201
203
|
buttonEmphasisStyles
|
|
202
204
|
};
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
205
|
+
//# sourceMappingURL=chunk-TSEWUY4V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Button/Button.styles.ts"],"sourcesContent":["import { alpha, darken, keyframes, lighten } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { BUTTON_SIZES, ICON_ONLY_PADDING as ICON_ONLY_PADDING_PX } from './Button.metrics';\nimport { inkOver, px } from '../../../tokens/theme';\n\n// Define pulse animation globally\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 15px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\ninterface ColorPalette {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n}\n\nconst shade = (\n palette: ColorPalette | undefined,\n key: 'dark' | 'light',\n fallback: ColorPalette,\n): string => palette?.[key] || palette?.main || fallback[key];\n\n/** `neutral` has no MUI palette entry, so its four shades come from grey. */\nconst neutralPalette = (theme: Theme): ColorPalette => ({\n main: theme.palette.grey?.[700] || '#616161',\n dark: theme.palette.grey?.[800] || '#424242',\n light: theme.palette.grey?.[500] || '#9e9e9e',\n contrastText: '#fff',\n});\n\nexport const getColorFromTheme = (theme: Theme, color: string): ColorPalette => {\n if (color === 'neutral') return neutralPalette(theme);\n\n const colorMap: Record<string, ColorPalette> = {\n primary: theme.palette.primary as ColorPalette,\n secondary: theme.palette.secondary as ColorPalette,\n success: theme.palette.success as ColorPalette,\n warning: theme.palette.warning as ColorPalette,\n info: theme.palette.info as ColorPalette,\n danger: theme.palette.error as ColorPalette,\n };\n\n const fallback = theme.palette.primary as ColorPalette;\n const palette = colorMap[color] || fallback;\n\n // Ensure palette has required properties\n return {\n main: palette?.main || fallback.main,\n dark: shade(palette, 'dark', fallback),\n light: shade(palette, 'light', fallback),\n contrastText: palette?.contrastText || '#fff',\n };\n};\n\n// Derived from `Button.metrics.ts`, which the native `Button` reads too — one\n// table, so a size cannot differ between the renderers.\nconst SIZE_MAP: Record<string, CSSObject> = Object.fromEntries(\n Object.entries(BUTTON_SIZES).map(([size, m]) => [\n size,\n { padding: `${m.paddingVertical}px ${m.paddingHorizontal}px`, fontSize: px(m.fontSize) },\n ]),\n);\n\n/** What an unrecognised size falls back to, named so indexing can never be undefined. */\nconst DEFAULT_SIZE: CSSObject = SIZE_MAP.md as CSSObject;\n\n/**\n * A BUTTON THAT IS ONLY AN ICON IS SQUARE.\n *\n * MUI puts a 64px `min-width` on every button, which is right for a label and\n * wrong for a glyph: three dots in a 64px slab reads as a button that failed to\n * load its text, and at the end of a dense row it claims space the row needs.\n * The horizontal padding goes too — a square of padding round a square glyph —\n * and so does the gap MUI reserves beside a start/end icon, since there is\n * nothing on the other side of it.\n *\n * Derived, not declared: a button with an `icon` and no children can only be an\n * icon button, so no consumer has to opt in and none can forget to.\n */\nconst ICON_ONLY_PADDING: Record<string, string> = Object.fromEntries(\n Object.entries(ICON_ONLY_PADDING_PX).map(([size, padding]) => [size, `${padding}px`]),\n);\n\nconst iconOnlySize = (size: string): CSSObject => ({\n minWidth: 0,\n padding: ICON_ONLY_PADDING[size] ?? ICON_ONLY_PADDING.md,\n fontSize: SIZE_MAP[size]?.fontSize ?? DEFAULT_SIZE.fontSize,\n '& .MuiButton-startIcon, & .MuiButton-endIcon': { margin: 0 },\n});\n\n/** The size styles for a button, square when it carries nothing but an icon. */\nexport const buttonSize = (size: string, iconOnly: boolean): CSSObject =>\n iconOnly ? iconOnlySize(size) : (SIZE_MAP[size] ?? DEFAULT_SIZE);\n\n/**\n * MUI centres icons with a negative margin that fights our own padding, so the\n * flex alignment is restated here rather than fought with `!important`.\n */\nexport const iconAlignmentStyles = (theme: Theme): CSSObject => ({\n '& .MuiButton-startIcon, & .MuiButton-endIcon': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 0,\n verticalAlign: 'middle',\n '& > *': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 0,\n },\n },\n '& .MuiButton-startIcon': {\n marginRight: theme.spacing(0.5),\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.spacing(0.5),\n },\n});\n\n// Gradients run between two related hues; the named colours pick a specific pair,\n// anything else runs from its own main to its own dark.\nconst GRADIENT_PAIRS: Record<string, (theme: Theme) => [string, string]> = {\n primary: (theme) => [theme.palette.primary.main, theme.palette.secondary.main],\n secondary: (theme) => [theme.palette.secondary.main, theme.palette.primary.main],\n success: (theme) => [theme.palette.success.light, theme.palette.success.dark],\n warning: (theme) => [theme.palette.warning.light, theme.palette.warning.dark],\n danger: (theme) => [theme.palette.error.light, theme.palette.error.dark],\n};\n\nconst gradientStops = (theme: Theme, color: string, palette: ColorPalette): [string, string] =>\n GRADIENT_PAIRS[color]?.(theme) ?? [palette.main, palette.dark];\n\nconst gradientFor = (theme: Theme, color: string, palette: ColorPalette): string => {\n const [from, to] = gradientStops(theme, color, palette);\n return `linear-gradient(135deg, ${from} 0%, ${to} 100%)`;\n};\n\n/**\n * The label colour for `gradient`, which used to be `#fff` outright (FUT-1924).\n *\n * Every other filled variant reads `palette.contrastText`, derived from `main`\n * — so a white-labelled host handing the library a pale brand got dark ink on\n * its solid buttons and white ink on its gradient one. That store had exactly\n * one button in the library whose label it could not read, in LIGHT mode,\n * before dark mode existed anywhere.\n *\n * `contrastText` is still not the right thing to read, and that is why this\n * goes through {@link inkOver}: a gradient is TWO fills, the named pairs run\n * light-to-dark, and an ink chosen against `main` says nothing about the end\n * the gradient actually reaches. Both stops go in, and the ink has to survive\n * the worse of them.\n */\nconst gradientInk = (theme: Theme, color: string, palette: ColorPalette): string =>\n inkOver(gradientStops(theme, color, palette), palette.contrastText || '#fff');\n\n/**\n * The label colour for the two variants that paint no background of their own.\n *\n * `ghost` and `text` used `palette.main` directly, which is the same mistake\n * the Alert made with its body text: a palette's `main` is chosen to sit UNDER\n * white — it is the fill of a solid button — and it is not chosen to be read AS\n * text. `#6366F1`, the default primary, is 3.6:1 on white and worse on any\n * tinted surface, so a \"Cancelar\" or an \"Agora não\" placed on a coloured panel\n * turned into a smudge. That is precisely where these two variants belong: they\n * exist to be the quiet option NEXT to a solid one, so they are the buttons\n * most likely to be sitting on something other than plain paper.\n *\n * One step darker (lighter, on a dark theme) keeps the hue the caller asked for\n * and buys the contrast back. `main` still drives the hover wash and every\n * bordered variant, so nothing that was already legible moves.\n */\nconst quietInk = (theme: Theme, palette: ColorPalette): string =>\n theme.palette.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\nconst VARIANT_STYLES: Record<\n string,\n (theme: Theme, palette: ColorPalette, color: string) => CSSObject\n> = {\n solid: (theme, palette) => ({\n backgroundColor: palette.main,\n color: palette.contrastText || '#fff',\n '&:hover': {\n backgroundColor: palette.dark,\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[8],\n },\n }),\n outline: (_theme, palette) => ({\n backgroundColor: 'transparent',\n color: palette.main,\n border: `1px solid ${palette.main}`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n borderColor: palette.dark,\n },\n }),\n ghost: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n }),\n text: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n border: `none`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n '&.active': {\n backgroundColor: alpha(palette.main, 0.1),\n color: quietInk(theme, palette),\n },\n }),\n glass: (theme, palette) => ({\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n color: palette.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.2),\n transform: 'translateY(-2px)',\n },\n }),\n gradient: (theme, palette, color) => ({\n background: gradientFor(theme, color, palette),\n color: gradientInk(theme, color, palette),\n '&:hover': {\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[12],\n },\n }),\n};\n\nexport const buttonVariantStyles = (\n theme: Theme,\n variant: string | undefined,\n palette: ColorPalette,\n color: string,\n): CSSObject => VARIANT_STYLES[variant ?? '']?.(theme, palette, color) ?? {};\n\n// Glow effect - applied with !important to override variant shadows\nconst glowStyles = (palette: ColorPalette): CSSObject => ({\n boxShadow: `0 0 20px 5px ${alpha(palette.main, 0.6)}, 0 0 40px 10px ${alpha(palette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n '&:hover': {\n boxShadow: `0 0 25px 8px ${alpha(palette.main, 0.7)}, 0 0 50px 15px ${alpha(palette.main, 0.4)} !important`,\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px) scale(1.02)',\n },\n});\n\n// Pulse animation using pseudo-element\nconst pulseStyles = (palette: ColorPalette): CSSObject => ({\n position: 'relative',\n overflow: 'visible',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%)',\n backgroundColor: palette.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n});\n\n/**\n * glow and pulse are independent flags. The three combinations used to be spelled\n * out one by one, but each is just the union of whichever flags are set.\n */\nexport const buttonEmphasisStyles = (\n palette: ColorPalette,\n glow?: boolean,\n pulse?: boolean,\n): CSSObject => ({\n ...(glow ? glowStyles(palette) : {}),\n ...(pulse ? pulseStyles(palette) : {}),\n});\n"],"mappings":"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","names":["ICON_ONLY_PADDING"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/form/Button/Button.styles.ts"],"sourcesContent":["import { alpha, darken, keyframes, lighten } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { BUTTON_SIZES, ICON_ONLY_PADDING as ICON_ONLY_PADDING_PX } from './Button.metrics';\nimport { inkOver, px } from '../../../tokens/theme';\n\n// Define pulse animation globally\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 15px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\ninterface ColorPalette {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n}\n\nconst shade = (\n palette: ColorPalette | undefined,\n key: 'dark' | 'light',\n fallback: ColorPalette,\n): string => palette?.[key] || palette?.main || fallback[key];\n\n/** `neutral` has no MUI palette entry, so its four shades come from grey. */\nconst neutralPalette = (theme: Theme): ColorPalette => ({\n main: theme.palette.grey?.[700] || '#616161',\n dark: theme.palette.grey?.[800] || '#424242',\n light: theme.palette.grey?.[500] || '#9e9e9e',\n contrastText: '#fff',\n});\n\nexport const getColorFromTheme = (theme: Theme, color: string): ColorPalette => {\n if (color === 'neutral') return neutralPalette(theme);\n\n const colorMap: Record<string, ColorPalette> = {\n primary: theme.palette.primary as ColorPalette,\n secondary: theme.palette.secondary as ColorPalette,\n success: theme.palette.success as ColorPalette,\n warning: theme.palette.warning as ColorPalette,\n info: theme.palette.info as ColorPalette,\n danger: theme.palette.error as ColorPalette,\n };\n\n const fallback = theme.palette.primary as ColorPalette;\n const palette = colorMap[color] || fallback;\n\n // Ensure palette has required properties\n return {\n main: palette?.main || fallback.main,\n dark: shade(palette, 'dark', fallback),\n light: shade(palette, 'light', fallback),\n contrastText: palette?.contrastText || '#fff',\n };\n};\n\n// Derived from `Button.metrics.ts`, which the native `Button` reads too — one\n// table, so a size cannot differ between the renderers.\nconst SIZE_MAP: Record<string, CSSObject> = Object.fromEntries(\n Object.entries(BUTTON_SIZES).map(([size, m]) => [\n size,\n { padding: `${m.paddingVertical}px ${m.paddingHorizontal}px`, fontSize: px(m.fontSize) },\n ]),\n);\n\n/** What an unrecognised size falls back to, named so indexing can never be undefined. */\nconst DEFAULT_SIZE: CSSObject = SIZE_MAP.md as CSSObject;\n\n/**\n * A BUTTON THAT IS ONLY AN ICON IS SQUARE.\n *\n * MUI puts a 64px `min-width` on every button, which is right for a label and\n * wrong for a glyph: three dots in a 64px slab reads as a button that failed to\n * load its text, and at the end of a dense row it claims space the row needs.\n * The horizontal padding goes too — a square of padding round a square glyph —\n * and so does the gap MUI reserves beside a start/end icon, since there is\n * nothing on the other side of it.\n *\n * Derived, not declared: a button with an `icon` and no children can only be an\n * icon button, so no consumer has to opt in and none can forget to.\n */\nconst ICON_ONLY_PADDING: Record<string, string> = Object.fromEntries(\n Object.entries(ICON_ONLY_PADDING_PX).map(([size, padding]) => [size, `${padding}px`]),\n);\n\nconst iconOnlySize = (size: string): CSSObject => ({\n minWidth: 0,\n padding: ICON_ONLY_PADDING[size] ?? ICON_ONLY_PADDING.md,\n fontSize: SIZE_MAP[size]?.fontSize ?? DEFAULT_SIZE.fontSize,\n '& .MuiButton-startIcon, & .MuiButton-endIcon': { margin: 0 },\n});\n\n/** The size styles for a button, square when it carries nothing but an icon. */\nexport const buttonSize = (size: string, iconOnly: boolean): CSSObject =>\n iconOnly ? iconOnlySize(size) : (SIZE_MAP[size] ?? DEFAULT_SIZE);\n\n/**\n * MUI centres icons with a negative margin that fights our own padding, so the\n * flex alignment is restated here rather than fought with `!important`.\n */\nexport const iconAlignmentStyles = (theme: Theme): CSSObject => ({\n '& .MuiButton-startIcon, & .MuiButton-endIcon': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 0,\n verticalAlign: 'middle',\n '& > *': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 0,\n },\n },\n '& .MuiButton-startIcon': {\n marginRight: theme.spacing(0.5),\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.spacing(0.5),\n },\n});\n\n// Gradients run between two related hues; the named colours pick a specific pair,\n// anything else runs from its own main to its own dark.\nconst GRADIENT_PAIRS: Record<string, (theme: Theme) => [string, string]> = {\n primary: (theme) => [theme.palette.primary.main, theme.palette.secondary.main],\n secondary: (theme) => [theme.palette.secondary.main, theme.palette.primary.main],\n success: (theme) => [theme.palette.success.light, theme.palette.success.dark],\n warning: (theme) => [theme.palette.warning.light, theme.palette.warning.dark],\n danger: (theme) => [theme.palette.error.light, theme.palette.error.dark],\n};\n\nconst gradientStops = (theme: Theme, color: string, palette: ColorPalette): [string, string] =>\n GRADIENT_PAIRS[color]?.(theme) ?? [palette.main, palette.dark];\n\nconst gradientFor = (theme: Theme, color: string, palette: ColorPalette): string => {\n const [from, to] = gradientStops(theme, color, palette);\n return `linear-gradient(135deg, ${from} 0%, ${to} 100%)`;\n};\n\n/**\n * The label colour for `gradient`, which used to be `#fff` outright (FUT-1924).\n *\n * Every other filled variant reads `palette.contrastText`, derived from `main`\n * — so a white-labelled host handing the library a pale brand got dark ink on\n * its solid buttons and white ink on its gradient one. That store had exactly\n * one button in the library whose label it could not read, in LIGHT mode,\n * before dark mode existed anywhere.\n *\n * `contrastText` is still not the right thing to read, and that is why this\n * goes through {@link inkOver}: a gradient is TWO fills, the named pairs run\n * light-to-dark, and an ink chosen against `main` says nothing about the end\n * the gradient actually reaches. Both stops go in, and the ink has to survive\n * the worse of them.\n */\nconst gradientInk = (theme: Theme, color: string, palette: ColorPalette): string =>\n inkOver(gradientStops(theme, color, palette), palette.contrastText || '#fff');\n\n/**\n * The label colour for the two variants that paint no background of their own.\n *\n * `ghost` and `text` used `palette.main` directly, which is the same mistake\n * the Alert made with its body text: a palette's `main` is chosen to sit UNDER\n * white — it is the fill of a solid button — and it is not chosen to be read AS\n * text. `#6366F1`, the default primary, is 3.6:1 on white and worse on any\n * tinted surface, so a \"Cancelar\" or an \"Agora não\" placed on a coloured panel\n * turned into a smudge. That is precisely where these two variants belong: they\n * exist to be the quiet option NEXT to a solid one, so they are the buttons\n * most likely to be sitting on something other than plain paper.\n *\n * One step darker (lighter, on a dark theme) keeps the hue the caller asked for\n * and buys the contrast back. `main` still drives the hover wash and every\n * bordered variant, so nothing that was already legible moves.\n */\nconst quietInk = (theme: Theme, palette: ColorPalette): string =>\n theme.palette.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\nconst VARIANT_STYLES: Record<\n string,\n (theme: Theme, palette: ColorPalette, color: string) => CSSObject\n> = {\n solid: (theme, palette) => ({\n backgroundColor: palette.main,\n color: palette.contrastText || '#fff',\n '&:hover': {\n backgroundColor: palette.dark,\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[8],\n },\n }),\n outline: (_theme, palette) => ({\n backgroundColor: 'transparent',\n color: palette.main,\n border: `1px solid ${palette.main}`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n borderColor: palette.dark,\n },\n }),\n ghost: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n }),\n text: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n border: `none`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n '&.active': {\n backgroundColor: alpha(palette.main, 0.1),\n color: quietInk(theme, palette),\n },\n }),\n glass: (theme, palette) => ({\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n color: palette.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.2),\n transform: 'translateY(-2px)',\n },\n }),\n gradient: (theme, palette, color) => ({\n background: gradientFor(theme, color, palette),\n color: gradientInk(theme, color, palette),\n '&:hover': {\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[12],\n },\n }),\n};\n\nexport const buttonVariantStyles = (\n theme: Theme,\n variant: string | undefined,\n palette: ColorPalette,\n color: string,\n): CSSObject => VARIANT_STYLES[variant ?? '']?.(theme, palette, color) ?? {};\n\n// Glow effect - applied with !important to override variant shadows\nconst glowStyles = (palette: ColorPalette): CSSObject => ({\n boxShadow: `0 0 20px 5px ${alpha(palette.main, 0.6)}, 0 0 40px 10px ${alpha(palette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n '&:hover': {\n boxShadow: `0 0 25px 8px ${alpha(palette.main, 0.7)}, 0 0 50px 15px ${alpha(palette.main, 0.4)} !important`,\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px) scale(1.02)',\n },\n});\n\n// Pulse animation using pseudo-element\nconst pulseStyles = (palette: ColorPalette): CSSObject => ({\n position: 'relative',\n overflow: 'visible',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%)',\n backgroundColor: palette.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n});\n\n/**\n * glow and pulse are independent flags. The three combinations used to be spelled\n * out one by one, but each is just the union of whichever flags are set.\n */\nexport const buttonEmphasisStyles = (\n palette: ColorPalette,\n glow?: boolean,\n pulse?: boolean,\n): CSSObject => ({\n ...(glow ? glowStyles(palette) : {}),\n ...(pulse ? pulseStyles(palette) : {}),\n});\n"],"mappings":"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","names":["ICON_ONLY_PADDING"]}
|